/* Shared identity, based on the approved editorial reference. Fonts stay local. */
@font-face{font-family:"Audrey Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/nunito-regular.woff") format("woff")}
@font-face{font-family:"Audrey Sans";font-style:normal;font-weight:800;font-display:swap;src:url("/assets/fonts/nunito-bold.woff") format("woff")}
@font-face{font-family:"Audrey Notes";font-style:normal;font-weight:700;font-display:swap;src:url("/assets/fonts/kalam-bold.woff") format("woff")}
:root{--brand-navy:#07143f;--brand-violet:#6505b5;--brand-cyan:#00bed6;--brand-gold:#e7b54b;--brand-cyan-text:#00758d;--brand-gold-text:#835a15;--navy:var(--brand-navy);--purple:var(--brand-violet);--magenta:var(--brand-violet);--cyan:var(--brand-cyan-text);--gold:var(--brand-gold);--ink:var(--brand-navy);--muted:#536078;--line:#e4dfed;--radius:22px;--shadow:0 14px 38px rgba(7,20,63,.08)}
body{font-family:"Audrey Sans",system-ui,sans-serif;font-size:16px;line-height:1.55;color:var(--ink)}
button,input,select,textarea{font:inherit}
h1,h2,h3,h4{font-family:"Audrey Sans",system-ui,sans-serif;font-weight:800;text-wrap:balance}
h1,.hero h1,.hero-card h1{line-height:1.14;letter-spacing:-.025em}
h2,.modal h2,.contact-modal-head h2,.section-heading h2{line-height:1.22;letter-spacing:-.015em}
h3,.card h3{line-height:1.3;letter-spacing:0}
p,li{overflow-wrap:break-word}
img,svg{max-width:100%}
a,button,input,select,textarea{touch-action:manipulation}
:focus-visible{outline:3px solid var(--brand-violet);outline-offset:4px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:2px}
[id]{scroll-margin-top:110px}
.kicker,.section-heading small,.ref-margin-note>span{font-family:"Audrey Notes","Audrey Sans",sans-serif;letter-spacing:0;text-transform:none}
.btn.primary{background:linear-gradient(115deg,var(--brand-violet),#430c83);color:#fff}
.card,.design-card,.ccn-card{border-color:var(--line)}
.card h3,.design-content h3,.section-heading h2{color:var(--navy)}
.card p{line-height:1.6}
.card .open{color:var(--purple)}
.section-heading{margin-bottom:22px}
.article-section{padding:28px 0}
.essential-card p,.rule-card p,.law-card p,.solution-grid p,.steps-grid p{font-size:.95rem;line-height:1.6}
.essential-card h3,.rule-card h3,.law-card h3,.solution-grid h3,.steps-grid h3{font-size:1.08rem;line-height:1.35}
.hero-card.hero-text-only{grid-template-columns:minmax(0,1fr);min-height:0}
.hero-text-only .hero-copy{padding:clamp(24px,4vw,46px);max-width:960px}
.hero-text-only h1{font-size:clamp(2rem,4vw,3.2rem)}
.site-header nav{flex-wrap:wrap}
.site-header nav a,.back{font-size:.88rem}
.answer{line-height:1.7}
.contact-form{display:grid;gap:20px}
.contact-field{min-width:0}
.contact-field input,.contact-field select,.contact-field textarea{width:100%;box-sizing:border-box;border:1px solid #c6bdd7;border-radius:12px;padding:12px 14px;background:#fff;color:var(--ink);min-height:48px}
.contact-field textarea{min-height:160px;resize:vertical;line-height:1.6}
.contact-field label{display:block;margin-bottom:7px;font-weight:800;color:var(--navy)}
.contact-consent{display:flex;align-items:flex-start;gap:10px;line-height:1.5}
.contact-consent input{width:20px;height:20px;min-height:0;flex:0 0 20px;margin:3px 0 0;accent-color:var(--purple)}
.contact-demo-note{color:#55516b;line-height:1.5}
.contact-msg{color:var(--purple);font-weight:800}
.contact-modal-head h2{font-size:clamp(1.65rem,4vw,2.4rem)}
.contact-modal-box{max-height:calc(100dvh - 32px);overscroll-behavior:contain}
.contact-modal-close{min-width:44px;min-height:44px}
.contact-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.contact-actions .btn{white-space:normal}
.news .note{color:#566079;font-size:.82rem;line-height:1.55}
@media(max-width:700px){
 .nav-inner{flex-wrap:wrap;gap:12px}
 .site-header .brand img{width:150px}
 .site-header nav{order:3;width:100%;margin-left:0;gap:12px}
 .site-header .back{margin-left:auto}
 .hero h1{font-size:clamp(2rem,8vw,3.1rem)}
 .contact-modal{padding:8px}
 .contact-modal-box{max-height:calc(100dvh - 16px);border-radius:20px}
 .contact-modal-head{padding:20px 16px 8px;gap:10px}
 .contact-modal .contact-form{margin:8px 14px 18px;padding:18px}
 .contact-grid{grid-template-columns:minmax(0,1fr)}
 .contact-actions{align-items:stretch;flex-direction:column}
 .contact-actions .btn{width:100%}
 .article-section{padding:22px 0}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*::before,*::after{animation:none!important;transition:none!important}
}
