@font-face { font-family:'West'; src:url('../fonts/west-regularweb.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'West'; src:url('../fonts/west-italicweb.woff2') format('woff2'); font-weight:400; font-style:italic; font-display:swap; }
@font-face { font-family:'West'; src:url('../fonts/west-boldweb.woff2') format('woff2'); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:'Inter'; src:url('../fonts/inter-regular.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'Inter'; src:url('../fonts/inter-semibold.woff2') format('woff2'); font-weight:600; font-style:normal; font-display:swap; }

/* Alton Risk brand tokens. Pairings follow the approved background and foreground matrix. */
:root{
  --black:#1c1a19;
  --white:#f4f4ed;
  --gray:#d1cac5;
  --maroon:#371213;
  --coral:#f5d4d1;
  --burgundy:#210a0b;
  --ochre:#eaa75e;
  --west:'West', Georgia, 'Times New Roman', serif;
  --inter:'Inter', -apple-system, 'Segoe UI', Roboto, sans-serif;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--white); color:var(--black); font-family:var(--inter); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:var(--west); font-weight:700; margin:0 0 .5em; letter-spacing:-.01em;}
p{margin:0 0 1em;}
a{color:inherit;}
:focus-visible{outline:2px solid var(--ochre); outline-offset:3px;}
.wrap{max-width:1120px; margin:0 auto; padding:0 24px;}

/* Header */
header.site{position:sticky; top:0; z-index:50; background:var(--white); border-bottom:1px solid var(--gray);}
header.site .wrap{display:flex; align-items:center; justify-content:space-between; gap:16px; padding-top:12px; padding-bottom:12px;}
header.site img.logo{height:36px; width:auto; display:block;}
header.site nav{display:flex; align-items:center; gap:10px;}
.nav-link{white-space:nowrap; font-weight:600; font-size:14px; text-decoration:none; color:var(--maroon); padding:8px 10px; border-radius:2px; transition:background .2s var(--ease);}
.nav-link:hover{background:var(--gray);}

/* Buttons. Dark fill with white text on light grounds, white fill with maroon text on dark grounds. */
.btn{display:inline-flex; align-items:center; gap:8px; font-family:var(--inter); font-weight:600; font-size:15px; text-decoration:none; border-radius:2px; cursor:pointer; border:1.5px solid transparent; padding:12px 22px; transition:transform .2s var(--ease), background .2s var(--ease), color .2s var(--ease);}
.btn:hover{transform:translateY(-2px);}
.btn:active{transform:translateY(0);}
.btn-primary{background:var(--burgundy); color:var(--white);}
.btn-primary:hover{background:var(--maroon);}
.btn-outline{background:transparent; color:var(--burgundy); border-color:var(--burgundy);}
.btn-outline:hover{background:var(--burgundy); color:var(--white);}
.btn-on-dark{background:var(--white); color:var(--maroon);}
.btn-on-dark:hover{background:var(--coral);}
.btn-ghost-dark{background:transparent; color:var(--white); border-color:var(--coral);}
.btn-ghost-dark:hover{background:var(--coral); color:var(--maroon);}
.btn .arrow{display:inline-block; transition:transform .2s var(--ease);}
.btn:hover .arrow{transform:translateX(4px);}

/* Hero */
.hero{background-color:var(--burgundy); background-image:url('../patterns/tile-dark.svg'); background-repeat:repeat; background-size:130px 130px; color:var(--white); padding:0;}
.hero-inner{background:linear-gradient(180deg, rgba(33,10,11,.94) 0%, rgba(33,10,11,.88) 60%, rgba(33,10,11,.96) 100%); padding:80px 0 68px;}
.eyebrow{font-weight:600; font-size:13px; letter-spacing:.14em; text-transform:uppercase; color:var(--coral); margin-bottom:22px;}
.hero h1{font-size:clamp(32px,4.6vw,54px); line-height:1.08; color:var(--white); max-width:20ch; animation:rise .7s var(--ease) both;}
.hero .subhead{font-size:18px; line-height:1.65; color:var(--coral); max-width:58ch; margin-bottom:28px; animation:rise .7s .08s var(--ease) both;}
.statbar{display:inline-block; font-weight:600; font-size:14px; color:var(--ochre); background:var(--maroon); padding:8px 16px; border-radius:2px; margin-bottom:32px; animation:rise .7s .14s var(--ease) both;}
.hero-ctas{display:flex; flex-wrap:wrap; gap:14px; align-items:center; animation:rise .7s .2s var(--ease) both;}
.hero-note{font-size:13px; color:var(--coral); margin-top:16px;}
@keyframes rise{from{opacity:0; transform:translateY(14px);}to{opacity:1; transform:none;}}

section{padding:68px 0;}
.section-label{font-weight:600; font-size:13px; letter-spacing:.1em; text-transform:uppercase; color:var(--maroon); margin-bottom:14px;}
section h2{font-size:clamp(24px,3vw,36px); color:var(--burgundy); max-width:28ch;}
.lead{font-size:17px; color:var(--maroon); max-width:66ch; margin-bottom:8px;}

/* Direct answer block for answer engines and skimmers */
.answer{background:var(--white); border-bottom:1px solid var(--gray);}
.answer .box{border-left:4px solid var(--burgundy); padding:6px 0 6px 24px; max-width:78ch;}
.answer h2{font-size:clamp(22px,2.6vw,30px); margin-bottom:12px;}
.answer p{font-size:17px; margin:0; color:var(--black);}

.stats-section{background:var(--black); color:var(--white);}
.stats-section .section-label{color:var(--ochre);}
.stats-section h2{color:var(--white);}
.stats-section .lead{color:var(--coral);}
.stat-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:1px; background:var(--maroon); margin-top:36px; border:1px solid var(--maroon);}
.stat-card{background:var(--black); padding:28px 22px; transition:background .25s var(--ease);}
.stat-card:hover{background:var(--burgundy);}
.stat-card .num{font-family:var(--west); font-weight:700; font-size:36px; color:var(--ochre); line-height:1.1; display:block; margin-bottom:10px;}
.stat-card p{font-size:14.5px; color:var(--white); margin:0 0 10px;}
.stat-card .src{font-size:12px; color:var(--coral); margin:0;}
.sources-note{font-size:12.5px; color:var(--coral); margin-top:28px; max-width:80ch;}
.sources-note a{color:var(--white); text-decoration:underline;}

.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:36px;}
.step{background:var(--white); border:1px solid var(--gray); border-radius:4px; padding:28px 24px; transition:transform .25s var(--ease), border-color .25s var(--ease);}
.step:hover{transform:translateY(-4px); border-color:var(--burgundy);}
.step .num{font-family:var(--west); font-weight:700; font-size:30px; color:var(--burgundy); margin-bottom:10px; display:block;}
.step p{margin:0; font-size:15px;}

.coverage-section{background:var(--gray);}
.coverage-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:20px; margin-top:36px;}
.cov-card{background:var(--white); border-radius:4px; padding:26px 22px; border-top:3px solid var(--burgundy); transition:transform .25s var(--ease);}
.cov-card:hover{transform:translateY(-4px);}
.cov-card h3{font-size:18px; margin-bottom:8px; color:var(--burgundy);}
.cov-card p{font-size:14.5px; color:var(--black); margin:0;}

.faq-item{border-bottom:1px solid var(--gray); padding:24px 0;}
.faq-item:first-of-type{border-top:1px solid var(--gray);}
.faq-q{font-family:var(--west); font-weight:700; font-size:19px; color:var(--burgundy); margin-bottom:8px;}
.faq-a{font-size:16px; color:var(--black); margin:0; max-width:78ch;}

.about{background:var(--maroon); color:var(--white);}
.about .section-label{color:var(--ochre);}
.about h2{color:var(--white);}
.about p{color:var(--coral); max-width:70ch;}
.about a.inline{color:var(--white); font-weight:600; text-decoration:underline;}
.about .also{margin-top:24px; font-size:15px;}

.cta-band{background:var(--burgundy); background-image:url('../patterns/tile-dark.svg'); background-repeat:repeat; background-size:130px 130px; padding:0; color:var(--white);}
.cta-inner{background:linear-gradient(180deg, rgba(33,10,11,.94), rgba(33,10,11,.97)); padding:72px 0; text-align:center;}
.cta-inner h2{color:var(--white); max-width:none; margin-left:auto; margin-right:auto;}
.cta-inner .lead{color:var(--coral); margin:0 auto 28px;}
.cta-inner .hero-ctas{justify-content:center; animation:none;}

footer{background:var(--black); color:var(--white); padding:52px 0 28px;}
footer .foot-top{display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:24px; padding-bottom:28px; border-bottom:1px solid var(--maroon);}
footer img.wordmark{height:36px; width:auto; display:block;}
footer .foot-links{font-size:14px; line-height:2;}
footer .foot-bottom{display:flex; flex-direction:column; gap:10px; padding-top:22px; font-size:12.5px; color:var(--coral);}
footer a{color:var(--white); text-decoration:none;}
footer a:hover{text-decoration:underline;}

/* Request Access modal (native dialog: focus trap and Escape handled by the browser) */
dialog.access{border:none; padding:0; background:transparent; max-width:min(680px, calc(100vw - 24px)); width:100%; max-height:calc(100vh - 24px); overflow:visible;}
dialog.access::backdrop{background:rgba(33,10,11,.78); backdrop-filter:blur(3px);}
dialog.access[open]{animation:pop .3s var(--ease);}
dialog.access[open]::backdrop{animation:fade .3s var(--ease);}
@keyframes pop{from{opacity:0; transform:translateY(16px) scale(.98);}to{opacity:1; transform:none;}}
@keyframes fade{from{opacity:0;}to{opacity:1;}}
.access-card{position:relative; background:var(--white); color:var(--black); border-radius:6px; padding:34px 32px 28px; border-top:4px solid var(--burgundy); max-height:calc(100vh - 24px); overflow:auto;}
.access-card h2{font-size:26px; color:var(--burgundy); margin-bottom:6px; max-width:none;}
.access-card .sub{font-size:15px; color:var(--maroon); margin-bottom:20px;}
.access-close{position:absolute; top:10px; right:12px; width:40px; height:40px; border:none; background:transparent; font-size:26px; line-height:1; color:var(--maroon); cursor:pointer; border-radius:2px;}
.access-close:hover{background:var(--gray);}
.access-form{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.access-form .field{display:flex; flex-direction:column; gap:6px;}
.access-form .field.full{grid-column:1 / -1;}
.access-form label{font-weight:600; font-size:13px; color:var(--burgundy);}
.access-form input, .access-form select, .access-form textarea{font-family:var(--inter); font-size:15px; color:var(--black); border:1px solid var(--gray); border-radius:3px; padding:11px 12px; background:var(--white); width:100%;}
.access-form textarea{min-height:84px; resize:vertical;}
.access-form input:focus, .access-form select:focus, .access-form textarea:focus{outline:2px solid var(--burgundy); outline-offset:0; border-color:var(--burgundy);}
.access-form .row{grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:4px;}
.access-form .note{grid-column:1 / -1; font-size:12.5px; color:var(--maroon); margin:0;}
.hp{position:absolute; left:-9999px; height:0; width:0; overflow:hidden;}
.access-error{grid-column:1 / -1; color:var(--maroon); font-weight:600; font-size:14px; margin:0; display:none;}
.access-done{display:none;}
.access-done h2{margin-bottom:10px;}
.access-done p{font-size:16px;}
.access-done .row{display:flex; flex-wrap:wrap; gap:12px; margin-top:18px;}

@media (max-width:760px){
  .steps{grid-template-columns:1fr;}
  .hero-inner{padding:54px 0 46px;}
  section{padding:50px 0;}
  header.site .nav-link.hide-sm{display:none;}
}
@media (max-width:520px){
  header.site .nav-link{display:none;}
  header.site .btn{padding:10px 16px; font-size:14px; white-space:nowrap;}
}
@media (max-width:640px){
  .access-form{grid-template-columns:1fr;}
  .access-card{padding:28px 20px 22px;}
  header.site img.logo{height:35px;}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important; transition:none !important; scroll-behavior:auto !important;}
}

/* Guide pages */
.hero-lite .hero-inner{padding-top:48px;padding-bottom:48px;}
.crumbs{font-size:13px;margin-bottom:14px;opacity:.85;}
.crumbs a{color:inherit;text-decoration:underline;text-underline-offset:3px;}
.guide{padding:56px 0 24px;background:var(--white);}
.guide .wrap{max-width:820px;}
.guide h2{font-size:clamp(22px,2.6vw,30px);margin:40px 0 14px;}
.guide h2:first-child{margin-top:0;}
.guide p{font-size:17px;line-height:1.7;margin:0 0 18px;max-width:70ch;}
.guide ul{margin:0 0 20px 22px;padding:0;max-width:70ch;font-size:17px;line-height:1.7;}
.guide li{margin-bottom:8px;}
.guide .updated{font-size:13px;opacity:.7;margin-top:36px;}
.guides-section{background:var(--gray);}
.guide-card{display:block;text-decoration:none;color:inherit;transition:transform .2s ease, box-shadow .2s ease;}
.guide-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px rgba(33,10,11,.12);}
.guide-links{margin:0 0 18px 20px;font-size:17px;line-height:1.9;}
