/* Unified visual states for the approved navy-and-gold design system. */
.sf-page{
 --sf-bg:#0B1F33;
 --sf-alt:#102A44;
 --sf-deep:#071827;
 --sf-surface:#132F4A;
 --sf-surface-hover:#173854;
 --sf-text:#F4F1EA;
 --sf-muted:#B9C3CC;
 --sf-accent:#C6A15B;
 --sf-accent-hover:#D3B46F;
 --sf-accent-dark:#9D7A3E;
 --sf-line:rgba(198,161,91,.28);
 --sf-soft-line:rgba(198,161,91,.18);
 --sf-focus:#D3B46F;
 background-color:var(--sf-bg);
 background-image:
  radial-gradient(circle at 8% 5%,rgba(198,161,91,.032),transparent 31rem),
  linear-gradient(180deg,rgba(255,255,255,.012),transparent 34rem);
 overflow-x:clip;
}

/* Links and controls */
.sf-page a{transition:color .2s ease,background-color .2s ease,border-color .2s ease,transform .2s ease}
.sf-page .sf-prose a{color:var(--sf-text)!important;text-decoration-color:rgba(198,161,91,.58)!important}
.sf-page .sf-prose a:hover{color:var(--sf-accent-hover)!important;text-decoration-color:var(--sf-accent-hover)!important}
.sf-button{border-color:var(--sf-accent);transition:color .2s ease,background-color .2s ease,border-color .2s ease,transform .2s ease}
.sf-button--primary{background:var(--sf-accent);border-color:var(--sf-accent);color:var(--sf-deep)!important}
.sf-button--primary:hover{background:var(--sf-accent-hover);border-color:var(--sf-accent-hover);color:var(--sf-deep)!important}
.sf-button--secondary{background:transparent;border-color:var(--sf-accent);color:var(--sf-text)!important}
.sf-button--secondary:hover{background:rgba(198,161,91,.10);border-color:var(--sf-accent-hover);color:var(--sf-text)!important}
.sf-button--quiet{background:transparent;border-color:var(--sf-accent);color:var(--sf-text)!important}
.sf-button--quiet:hover{background:rgba(198,161,91,.10);border-color:var(--sf-accent-hover)}

/* Header and navigation */
.sf-header{background:var(--sf-bg);border-color:var(--sf-line)}
.sf-nav-inner{border-top-color:var(--sf-soft-line)}
.sf-nav a[aria-current=page],.sf-footer-nav a[aria-current=page]{color:var(--sf-accent-hover);box-shadow:inset 0 -1px var(--sf-accent)}
.sf-nav-panel,.sf-nav-group--mega .sf-nav-panel{background:var(--sf-bg);border-color:var(--sf-line);box-shadow:0 18px 34px rgba(2,11,20,.34)}
.sf-nav .sf-nav-panel a{padding-inline:10px;border-left:1px solid transparent;color:var(--sf-text)}
.sf-nav .sf-nav-panel a:hover,.sf-nav .sf-nav-panel a:focus-visible{background:var(--sf-surface);border-left-color:var(--sf-accent);color:var(--sf-accent-hover)}
.sf-article-menu-toggle{border-bottom-color:var(--sf-line)}
.sf-menu-toggle{border-color:var(--sf-line)!important}

/* Cards and highlighted content */
.sf-card,.directions-card,.about-card{background:var(--sf-surface);border-color:rgba(198,161,91,.22);transition:background-color .2s ease,border-color .2s ease,transform .2s ease}
.sf-card:hover,.directions-card:hover,.about-card:hover{background:var(--sf-surface-hover);border-color:rgba(198,161,91,.55);transform:translateY(-2px)}
.sf-card-link,.directions-card-link{border-top-color:var(--sf-soft-line);color:var(--sf-accent-hover)}
.sf-info,[class$="-emphasis"],[class*="-articles"] h3{background:var(--sf-surface)}
.sf-info{border-left-color:var(--sf-accent)}
.sf-info--attention{background:var(--sf-alt);border-left-color:var(--sf-accent-dark)}

/* FAQ */
.sf-faq{display:grid;gap:8px;border-top:0}
.sf-faq details{overflow:hidden;background:var(--sf-alt);border:1px solid var(--sf-soft-line);border-radius:3px;transition:background-color .2s ease,border-color .2s ease}
.sf-faq details[open]{background:var(--sf-surface);border-color:rgba(198,161,91,.38)}
.sf-faq summary{padding:20px 22px;color:var(--sf-text)}
.sf-faq summary:hover{color:var(--sf-accent-hover)}
.sf-faq-answer{padding:0 22px 22px;color:var(--sf-muted)}
.sf-faq-plus::before,.sf-faq-plus::after{background:var(--sf-accent-hover)}

/* CTA and footer */
.sf-cta{background:var(--sf-deep);border:1px solid var(--sf-line);border-left:2px solid var(--sf-accent);box-shadow:none}
.sf-footer{background:var(--sf-deep);border-top-color:var(--sf-line)}
.sf-footer-bottom{border-top-color:var(--sf-line)}

/* Calm section rhythm on the homepage. */
.sf-home .home-hero,.sf-home .home-section{position:relative;isolation:isolate}
.sf-home .home-hero::before,.sf-home #practice::before,.sf-home #about::before,.sf-home #articles::before,.sf-home #faq::before{
 content:"";position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);background:var(--sf-alt)
}
.sf-home .home-hero::before{background:var(--sf-deep)}
.sf-home .home-urgent{background:var(--sf-alt);border-color:var(--sf-line)}
.sf-home .home-portrait{background:var(--sf-deep)}
.sf-home .home-portrait::after{background:linear-gradient(90deg,var(--sf-deep),transparent 18%),linear-gradient(0deg,var(--sf-deep),transparent 21%)}
.sf-home .home-cost{background:var(--sf-surface);border-left-color:var(--sf-accent)}
.sf-home .home-final{position:relative;isolation:isolate}
.sf-home .home-final::before{content:"";position:absolute;z-index:-1;inset:0 50%;width:100vw;transform:translateX(-50%);background:var(--sf-deep)}

/* Presentation pages retain the same visual language. */
.about-registry,.about-portrait{background:var(--sf-surface);border-color:var(--sf-line)}
.about-portrait::before{border-color:rgba(198,161,91,.55)}
.about-reasons,.directions-cluster{position:relative;isolation:isolate}
.about-reasons::before,.directions-cluster:nth-of-type(even)::before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:100vw;transform:translateX(-50%);background:var(--sf-alt)}

@media(max-width:820px){
 .sf-nav-panel,.sf-nav-group--mega .sf-nav-panel{background:transparent;box-shadow:none}
 .sf-nav .sf-nav-panel a{padding-left:16px;white-space:normal;overflow-wrap:anywhere}
 .sf-article-menu-toggle{color:var(--sf-text)}
}
@media(max-width:560px){
 .sf-faq summary{padding:18px 17px}
 .sf-faq-answer{padding:0 17px 19px}
 .sf-cta{padding:24px 20px}
 .sf-home .home-portrait::after{background:linear-gradient(90deg,var(--sf-deep),transparent 12%,transparent 88%,var(--sf-deep)),linear-gradient(0deg,var(--sf-deep),transparent 20%)}
}
@media(prefers-reduced-motion:reduce){.sf-page *{transition:none!important;transform:none!important}}
