:root{
  --accent:#1E3A8A;
  --secondary:#3B82F6;
  --bg:#F0F4FA;
  --paper:#FFFFFF;
  --text:#0F1729;
  --muted:#5C6A82;
  --rule:#0F1729;
  --space-xs:7px; --space-sm:14px; --space-md:23px; --space-lg:39px; --space-xl:84px;
  --card-padding-y:32px; --card-padding-x:31px; --card-gap:22px; --card-radius:12px;
  --card-border-width:2px; --card-min-height:324px; --card-min-col-width:311px;
  --btn-padding-y:12px; --btn-padding-x:34px; --btn-radius:14px; --btn-gap-from-text:18px;
  --grid-gap:25px; --lh-heading:1.28; --lh-body:1.62; --ls-heading:0.040em;
}

*,*::before,*::after{box-sizing:border-box;min-width:0}
img,svg,video{max-width:100%;height:auto;display:block}
button,input,select,textarea{font:inherit}

html{background:var(--bg)}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:16px; line-height:var(--lh-body);
}
h1,h2,h3,h4{font-family:'Tinos','Times New Roman',Georgia,serif; line-height:var(--lh-heading); letter-spacing:var(--ls-heading); margin:0 0 var(--space-md); color:var(--text)}
p{margin:0 0 var(--space-md)}
a{color:var(--accent); text-decoration:underline; text-underline-offset:3px}
a:hover{color:var(--secondary)}

.wrap{max-width:1180px; margin:0 auto; padding:0 var(--space-md)}
.skip{position:absolute;left:-9999px;top:auto}
.skip:focus{left:var(--space-md);top:var(--space-md);background:var(--text);color:var(--bg);padding:8px 14px;z-index:1000}

/* HEADER */
.site-header{background:var(--paper); border-bottom:2px solid var(--text); position:sticky; top:0; z-index:50}
.site-header__row{display:flex; align-items:center; justify-content:space-between; padding:var(--space-sm) var(--space-md); min-height:64px}
.brandmark{display:inline-flex; align-items:baseline; gap:var(--space-sm); text-decoration:none; color:var(--text)}
.brandmark__name{font-family:'Tinos',serif; font-size:1.4rem; font-weight:700; letter-spacing:0.02em}
.brandmark__rule{display:inline-block; width:34px; height:2px; background:var(--accent)}
.brandmark__sub{font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted)}
.age-badge{display:inline-block; border:2px solid var(--text); padding:4px 10px; font-weight:800; font-size:.85rem; background:var(--accent); color:var(--paper); letter-spacing:.04em}
.age-badge--inline{margin-top:var(--space-sm)}

/* HERO */
.hero{
  position:relative; color:var(--text); border-bottom:2px solid var(--text);
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 40 40'><line x1='0' y1='20' x2='40' y2='20' stroke='white' stroke-opacity='0.20' stroke-width='8'/></svg>"),
    linear-gradient(135deg, #1E3A8A 0%, #3B82F6 50%, #F0F4FA 100%);
  background-repeat:repeat;
  min-height:60vh;
  display:flex; align-items:center;
}
.hero--small{min-height:34vh}
.hero__inner{padding:var(--space-xl) var(--space-md); width:100%}
.hero__eyebrow{font-size:.82rem; letter-spacing:.22em; text-transform:uppercase; font-weight:700; color:var(--text); margin-bottom:var(--space-md); background:var(--paper); display:inline-block; padding:6px 12px; border:2px solid var(--text)}
.hero__title{font-size:clamp(2rem, 5vw, 3.5rem); font-weight:700; letter-spacing:-0.02em; color:#0F1729; text-shadow:3px 3px 0 var(--accent); max-width:18ch; margin-bottom:var(--space-md)}
.hero__sub{font-size:1.125rem; font-weight:500; color:var(--text); max-width:46ch; background:rgba(255,255,255,.7); padding:var(--space-sm) var(--space-md); border-left:4px solid var(--accent); margin-bottom:var(--space-lg)}
.hero__chips{list-style:none; padding:0; margin:var(--space-lg) 0 0; display:flex; flex-wrap:wrap; gap:var(--space-sm)}
.hero__chips li{background:var(--paper); border:2px solid var(--text); padding:6px 12px; font-size:.85rem; font-weight:600}

/* BUTTONS */
.btn{display:inline-block; padding:var(--btn-padding-y) var(--btn-padding-x); font-weight:700; text-decoration:none; cursor:pointer; border:2px solid var(--text); background:var(--paper); color:var(--text); border-radius:0; letter-spacing:.02em; transition:transform .08s ease}
.btn--primary{background:var(--accent); color:var(--paper); border-color:var(--text)}
.btn--primary:hover{color:var(--paper); background:#142970}
.btn--ghost{background:var(--paper); color:var(--text)}
.btn--text{background:transparent; border:none; padding:8px 0; color:var(--accent); text-decoration:underline}
.btn--hard{box-shadow:4px 4px 0 var(--secondary)}
.btn--hard:hover{transform:translate(1px,1px); box-shadow:3px 3px 0 var(--secondary)}
.btn--sm{padding:8px 18px; font-size:.9rem}

/* RULE */
.rule{border:none; height:0; margin:0}
.rule--double{border-top:3px double var(--text); margin:0}

/* SECTIONS */
.block{padding:var(--space-xl) 0}
.section-eyebrow{font-size:.78rem; letter-spacing:.22em; text-transform:uppercase; color:var(--accent); font-weight:700; margin-bottom:var(--space-sm)}
.section-title{font-size:clamp(1.6rem,3vw,2.2rem); max-width:30ch; margin-bottom:var(--space-md)}
.section-lead{font-size:1.05rem; color:var(--muted); max-width:62ch; margin-bottom:var(--space-lg)}

/* TWO COL */
.two-col{display:grid; grid-template-columns:1.4fr 1fr; gap:var(--space-lg); align-items:start}
@media (max-width:760px){.two-col{grid-template-columns:1fr}}
.callout{background:var(--paper); border:2px solid var(--text); border-left:6px solid var(--accent); padding:var(--space-md); font-weight:500}
.reg-list{background:var(--paper); border:2px solid var(--text); padding:var(--space-md); box-shadow:6px 6px 0 var(--accent)}
.reg-list__head{font-weight:700; letter-spacing:.04em; text-transform:uppercase; font-size:.85rem; margin-bottom:var(--space-sm); border-bottom:2px solid var(--text); padding-bottom:8px}
.reg-list ol{margin:0; padding-left:var(--space-md)}
.reg-list li{padding:8px 0; border-bottom:1px solid #d6dbe6; font-size:.95rem}
.reg-list li:last-child{border-bottom:none}
.tag{display:inline-block; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; padding:2px 8px; margin-left:8px; border:1.5px solid var(--text); font-weight:700}
.tag--accent{background:var(--accent); color:var(--paper); border-color:var(--accent)}
.tag--lic{background:var(--paper); color:var(--text)}

/* BRAND CARDS */
.brand-list{list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fit, minmax(var(--card-min-col-width), 1fr)); gap:var(--card-gap)}
.brand-card{display:flex; flex-direction:column; gap: var(--card-gap); min-height:var(--card-min-height); padding:var(--card-padding-y) var(--card-padding-x); background:var(--paper); border:var(--card-border-width) solid var(--text); border-radius:0; box-shadow:6px 6px 0 var(--accent); position:relative}
.brand-card__head{display:grid; grid-template-columns:auto 1fr auto; gap:var(--space-sm); align-items:start; margin-bottom:var(--space-md); padding-bottom:var(--space-sm); border-bottom:2px solid var(--text)}
.brand-card__rank{font-family:'Tinos',serif; font-size:2rem; font-weight:700; color:var(--accent); line-height:1}
.brand-card__id{display:flex; flex-direction:column; gap:6px; min-width:0}
.brand-card__logo{max-height:36px; width:auto; object-fit:contain}
.brand-card__legal{font-size:.74rem; color:var(--muted); margin:0}
.brand-card__score{text-align:right; font-family:'Tinos',serif; min-width: 88px}
.score__num{display:inline-block; font-size:1.6rem; font-weight:700; color:var(--accent)}
.score__den{color:var(--muted); font-size:.95rem}
.score__label{display:block; font-family:'Inter',sans-serif; font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-top:2px}
.brand-card__blurb{font-size:.96rem; margin:0 0 var(--space-sm)}
.brand-card__pills{list-style:none; padding:0; margin:0 0 var(--space-sm); display:flex; flex-wrap:wrap; gap:6px}
.brand-card__pills li{font-size:.74rem; padding:3px 8px; border:1.5px solid var(--text); background:var(--bg); font-weight:600}
.brand-card__detail{margin:var(--space-sm) 0; border:1.5px dashed var(--text); padding:var(--space-sm) var(--space-md); background:#f9fbff}
.brand-card__detail summary{cursor:pointer; font-weight:700; font-size:.85rem; letter-spacing:.06em; text-transform:uppercase; color:var(--accent)}
.brand-card__detail dl{margin:var(--space-sm) 0 0; display:grid; grid-template-columns:auto 1fr; gap:6px var(--space-sm); font-size:.88rem}
.brand-card__detail dt{font-weight:700; text-transform:uppercase; font-size:.72rem; letter-spacing:.08em; color:var(--muted)}
.brand-card__detail dd{margin:0}
.brand-card__foot{display:flex; align-items:center; justify-content:space-between; gap:var(--space-sm); margin-top:var(--space-sm); padding-top:var(--space-sm); border-top:1px solid #d6dbe6; font-size:.78rem; color:var(--muted); flex-wrap:wrap}
.verif{font-style:italic}
.brand-card__cta{margin-top:auto; display:flex; align-items:center; gap:var(--space-md); padding-top:var(--btn-gap-from-text); flex-wrap:wrap}

/* METHODOLOGY */
.numlist{list-style:none; padding:0; margin:0; counter-reset:m}
.numlist li{display:grid; grid-template-columns:auto 1fr; gap:var(--space-md); padding:var(--space-md) 0; border-bottom:2px solid var(--text); align-items:start}
.numlist li:last-child{border-bottom:none}
.numlist .num{font-family:'Tinos',serif; font-size:2.4rem; font-weight:700; color:var(--accent); line-height:1; min-width:2.6rem}
.numlist h3{font-size:1.15rem; margin-bottom:6px}
.numlist p{margin:0; color:var(--text)}

/* TRUST STRIP */
.trust-strip{display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:var(--grid-gap); padding:var(--space-lg) 0}
.trust-strip > div{border-left:4px solid var(--accent); padding:var(--space-sm) var(--space-md); background:var(--paper); border-top:2px solid var(--text); border-right:2px solid var(--text); border-bottom:2px solid var(--text)}
.trust__num{font-family:'Tinos',serif; font-size:2.2rem; font-weight:700; color:var(--accent); margin:0; line-height:1}
.trust__lab{margin:6px 0 0; font-size:.85rem; color:var(--text)}

/* KYC */
.kyc-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:var(--grid-gap)}
.kyc-grid article{background:var(--paper); border:2px solid var(--text); padding:var(--space-md); box-shadow:4px 4px 0 var(--secondary)}
.kyc-grid h3{font-size:1.05rem; margin-bottom:8px}
.kyc-grid p{margin:0; font-size:.92rem}

/* FAQ */
.faq{display:flex; flex-direction:column; gap:var(--space-sm)}
.faq details{background:var(--paper); border:2px solid var(--text); padding:0}
.faq summary{cursor:pointer; padding:var(--space-md); font-weight:700; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:var(--space-md)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+"; font-family:'Tinos',serif; font-size:1.6rem; color:var(--accent); line-height:1; flex-shrink:0}
.faq details[open] summary::after{content:"–"}
.faq details[open] summary{border-bottom:2px solid var(--text); background:var(--bg)}
.faq__body{padding:var(--space-md)}
.faq__body p{margin:0}

/* EDITORIAL */
.editorial-note{max-width:780px}
.pledge{list-style:none; padding:0; margin:0; counter-reset:p}
.pledge li{padding:var(--space-md) 0; border-bottom:1px solid var(--text); font-size:1.02rem}
.pledge li:last-child{border-bottom:none}

/* FOOTER */
.site-footer{background:var(--text); color:var(--bg); border-top:3px double var(--accent); margin-top:var(--space-xl)}
.site-footer .wrap{padding-top:var(--space-xl); padding-bottom:var(--space-lg)}
.site-footer a{color:var(--bg)}
.footer-lead{font-family:'Tinos',serif; font-size:1.4rem; max-width:50ch; margin-bottom:var(--space-lg); border-bottom:2px solid var(--secondary); padding-bottom:var(--space-md)}
.reg-strip{display:flex; flex-wrap:wrap; gap:var(--space-md); align-items:center; padding:var(--space-md) 0; margin-bottom:var(--space-lg); border-bottom:1px solid #2a3550}
.reg-strip a{display:inline-flex; align-items:center; padding:8px; background:transparent; border:none}
.reg-strip a:hover{background:rgba(255,255,255,.06)}
.reg-strip img{max-height:56px; width:auto; background:transparent; padding:0; border:none; filter:brightness(0) invert(1)}
.footer-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:var(--space-lg); margin-bottom:var(--space-lg)}
.footer-head{font-family:'Tinos',serif; font-size:1.15rem; margin-bottom:var(--space-sm); border-bottom:1px solid var(--secondary); padding-bottom:6px}
.footer-links{list-style:none; padding:0; margin:0}
.footer-links li{padding:4px 0}
.disclaimer{font-size:.82rem; color:#a8b3cc; margin-bottom:var(--space-sm); border-top:1px solid #2a3550; padding-top:var(--space-sm)}

/* AGE MODAL */
.age-modal{position:fixed; inset:0; background:rgba(15,23,41,.92); z-index:1000; display:flex; align-items:center; justify-content:center; padding:var(--space-md)}
.age-modal[hidden]{display:none !important}
.age-modal__panel{background:var(--paper); color:var(--text); max-width:520px; width:100%; padding:var(--space-lg); border:3px solid var(--text); box-shadow:10px 10px 0 var(--accent)}
.age-modal h2{margin-bottom:var(--space-sm)}
.age-modal .eyebrow{font-size:.78rem; letter-spacing:.22em; text-transform:uppercase; color:var(--accent); font-weight:700; margin-bottom:var(--space-sm)}
.age-modal__actions{display:flex; gap:var(--space-sm); flex-wrap:wrap; margin:var(--space-md) 0}
.fineprint{font-size:.78rem; color:var(--muted); margin:0}

/* COOKIE BANNER */
.cookie-banner{position:fixed; left:0; right:0; bottom:0; background:var(--text); color:var(--bg); border-top:3px solid var(--accent); z-index:900}
.cookie-banner[hidden]{display:none !important}
.cookie-banner__row{display:flex; align-items:center; justify-content:space-between; gap:var(--space-md); padding:var(--space-sm) var(--space-md); flex-wrap:wrap}
.cookie-banner p{margin:0; font-size:.9rem}
.cookie-banner a{color:var(--bg)}
.cookie-banner__actions{display:flex; gap:var(--space-sm); flex-wrap:wrap}

/* POLICY */
.policy{padding:var(--space-xl) 0; max-width:780px}
.policy h2{margin-top:var(--space-lg); border-bottom:2px solid var(--text); padding-bottom:6px}
.policy h3{margin-top:var(--space-md)}
.policy ul,.policy ol{padding-left:var(--space-md)}

/* BRAND PAGE */
.brand-page{padding:var(--space-xl) 0}
.brand-page__head{display:flex; align-items:center; gap:var(--space-md); border-bottom:3px double var(--text); padding-bottom:var(--space-md); margin-bottom:var(--space-lg); flex-wrap:wrap}
.brand-page__logo{max-height:64px; width:auto}
.spec-table{width:100%; border-collapse:collapse; margin:var(--space-md) 0}
.spec-table th,.spec-table td{border:2px solid var(--text); padding:var(--space-sm) var(--space-md); text-align:left; font-size:.95rem}
.spec-table th{background:var(--bg); width:34%}
.contras{background:var(--paper); border:2px solid var(--text); padding:var(--space-md); border-left:6px solid var(--accent)}
.cta-row{margin:var(--space-lg) 0}
.back-link{display:inline-block; margin-top:var(--space-lg); font-weight:700}

@media (max-width:520px){
  .brand-card__head{grid-template-columns:auto 1fr; }
  .brand-card__score{grid-column:1 / -1; text-align:left; padding-top:var(--space-sm); border-top:1px solid #d6dbe6}
  .hero__title{text-shadow:2px 2px 0 #FFFFFF}
}

/* card-grid-stretch-fix: .brand-list */
.brand-list { align-items: start; }
.brand-list > * { align-self: start; }
