/* October 15 visual refinement of the restored site.
   References: Deloitte's high-contrast editorial hero, EY's accent-led
   cards, and KPMG's split section rhythm. Ascent colors and assets only. */
:root{
 --brand:#2e6432;
 --brand-hover:#234f28;
 --forest:#12291f;
 --forest-deep:#0e2119;
 --on-dark:#ffffff;
 --on-dark-muted:#d4e0d7;
 --on-dark-link:#c7e6b7;
 --paper:#ffffff;
 --paper-muted:#f2f6f2;
 --selected:#e6f0e3;
 --ink:#17261e;
 --muted:#516359;
 --line:#d6e1d8;
 --green:var(--brand);
 --green-dark:var(--brand-hover);
 --black:var(--forest);
 --white:var(--paper);
 --pale:var(--paper-muted);
 --accent:var(--on-dark-link);
 --editorial-ink:var(--forest);
 --editorial-rule:var(--line);
 --editorial-accent:var(--on-dark-link);
 --editorial-paper:var(--paper-muted);
 --headline-font:Georgia,"Times New Roman",serif;
}
/* A restrained masthead with clear keyboard and pointer states. */
.header{border-bottom:1px solid var(--editorial-rule);box-shadow:0 1px 0 #11181306}
.header .nav-trigger,.header .nav-links>a{font-size:15px;font-weight:500;letter-spacing:0;min-height:44px}
.header .nav-links>a{display:inline-flex;align-items:center}
.header .nav-trigger:hover,.header .nav-links>a:hover{color:var(--green)}
.header .nav-dropdown{border:1px solid var(--editorial-rule);border-top:3px solid var(--green);box-shadow:0 18px 36px #11181314;padding:16px}
.header .nav-dropdown a{padding:14px 16px;border-bottom:1px solid #edf0ec;line-height:1.4;min-height:48px;white-space:normal}
.header .nav-dropdown a:hover,.header .nav-dropdown a:focus-visible{background:#f1f5ef;color:var(--green)}
@media(min-width:1101px){
 .header #nav-services{width:570px}
 .header #nav-industries{width:610px;left:auto;right:0}
 .header #nav-services:not([hidden]),.header #nav-industries:not([hidden]){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 14px}
}
/* Large editorial type, with comfortable spacing rather than heavier weight. */
h1,h2{font-weight:400;letter-spacing:-.04em;text-wrap:balance}
h2{line-height:1.14}
.section{padding-block:clamp(64px,6.5vw,104px)}
.section-top{gap:40px;margin-bottom:44px}
.section-top h2,.search-detail>h2,.two-col>div>h2{font-size:clamp(2rem,3.25vw,3rem)}
.eyebrow{font-size:13px;line-height:1.5;letter-spacing:.15em;font-weight:650}
.section .eyebrow{display:flex;align-items:center;gap:12px}
.section .eyebrow::before{content:"";height:2px;width:32px;background:var(--green);flex:none}
/* One strong flagship surface uses the existing Ascent connection graphic. */
.hero.hero-connected{background:var(--editorial-ink);color:#fff;padding-block:clamp(58px,6vw,92px);border-bottom:1px solid #ffffff18}
.hero-connected>.wrap>.eyebrow{color:var(--editorial-accent);margin-bottom:24px;display:flex;align-items:center;gap:14px}
.hero-connected>.wrap>.eyebrow::before{content:"";width:38px;height:2px;background:var(--editorial-accent);flex:none}
.hero.hero-connected h1{font-size:clamp(2.6rem,4.65vw,4.8rem);line-height:1.08;max-width:1120px;letter-spacing:-.045em;margin-bottom:32px;color:#fff}
.hero.hero-connected h1 span{color:var(--on-dark-link)}
.hero-connected .hero-copy .lead{color:var(--on-dark-muted);font-size:clamp(1rem,1.4vw,1.125rem);line-height:1.75;max-width:62ch}
.hero-connected .hero-copy .actions{gap:18px 30px;align-items:center}
.hero-connected .hero-copy .actions>.text-link{color:#fff}
.hero-connected .button{background:var(--brand);color:var(--on-dark);border:1px solid #7ba67b}
.hero-connected .button:hover{background:var(--brand-hover)}
.hero-connected .connection-orbit{stroke:#ffffff24}
.hero-connected .connection-ring{stroke:#a5ce8e}
.hero-connected .connection-line{stroke:#739b60}
.hero-connected .connections figcaption>a,.hero-connected .connections button{color:var(--on-dark-link)}
.hero-connected .connections button:hover{color:#fff}
.hero-connected .connections a:focus-visible,.hero-connected .connections button:focus-visible{outline-color:#a5ce8e}
.hero-connected .connection-detail{color:var(--ink)}
.feature-strip{background:var(--paper-muted);color:var(--ink);border-bottom:1px solid var(--editorial-rule)}
.feature-strip .wrap{padding-block:30px}
.feature-strip .eyebrow,.feature-strip .text-link{color:var(--green)}
.feature-strip p:not(.eyebrow){line-height:1.6;font-size:17px}
/* Repeated cards share a quiet frame, an accent edge, and aligned links. */
body.page-home .service-grid{gap:24px;border:0}
body.page-home .service-grid .service-card{border:1px solid var(--editorial-rule);border-top:3px solid var(--green);padding:30px 24px;background:#fff;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}
body.page-home .service-card:hover,body.page-home .service-card:focus-within{background:#f7faf5;border-color:#94b382;box-shadow:0 8px 24px #11181308}
body.page-home .service-card h3{font-size:clamp(1.2rem,1.6vw,1.45rem);font-weight:500;line-height:1.25;letter-spacing:-.025em}
body.page-home .service-card p{font-size:16px;line-height:1.7;color:var(--muted)}
body.page-home .service-card>.text-link{font-size:14px;color:var(--green);padding-top:8px}
.insight-card{border-top:3px solid var(--green);border-bottom:1px solid var(--editorial-rule);padding:28px 0;gap:4px}
.insight-card h2,.insight-card h3{font-weight:450;font-size:clamp(1.4rem,2vw,1.85rem);line-height:1.25;letter-spacing:-.03em}
.insight-card .eyebrow{font-size:12px}
.insight-card p{line-height:1.7}
.insight-card .card-link{margin-top:auto;padding-top:18px}
.pale{background:var(--editorial-paper)}
.home-systems{border-top:1px solid var(--editorial-rule)}
.cops-preview{border:1px solid #cbd5cd;box-shadow:0 12px 32px #1118130a}
.cops-preview figcaption{background:#fff;border-top:1px solid var(--editorial-rule);font-size:14px;line-height:1.6}
.future-section .two-col{gap:clamp(32px,5vw,76px);align-items:center}
.service-detail{padding-block:44px;border-color:var(--editorial-rule)}
.service-detail h3{font-weight:450;line-height:1.25}
.service-deliverables>article{border-top:2px solid var(--green);padding-top:24px}
.service-deliverables h3{font-weight:500;line-height:1.3}
.section>.wrap.search-detail{gap:clamp(28px,6vw,80px)}
.faq-item{border-color:var(--editorial-rule)}
.faq-item summary{font-weight:500;min-height:60px;padding-block:20px;line-height:1.5}
.faq-item p{line-height:1.75}
.page-hero{background:var(--editorial-ink);border-bottom:1px solid #ffffff18}
.page-hero h1{font-size:clamp(2.4rem,4.6vw,4.4rem);line-height:1.12;max-width:1020px}
.page-hero .lead{line-height:1.75;color:var(--on-dark-muted);max-width:70ch}
.page-hero .eyebrow{color:var(--editorial-accent)}
.section-index{border-bottom:1px solid var(--editorial-rule);gap:12px 28px}
.section-index a{font-size:14px;font-weight:550;min-height:48px}
.cta-band{background:var(--editorial-ink);border-top:3px solid var(--green);padding-block:clamp(56px,6vw,88px)}
.cta-band h2{max-width:20ch;font-size:clamp(2rem,3.3vw,3.2rem);line-height:1.15}
.cta-band p{color:var(--on-dark-muted);line-height:1.75;max-width:62ch}
.cta-band .button.light{border:1px solid #dce3dd}
.footer{background:var(--forest-deep);padding-top:72px}
.footer .footer-heading{font-weight:600;font-size:14px;letter-spacing:.02em}
.footer-bottom{border-top:1px solid #ffffff24;padding-top:28px}
.footer p,.footer li{line-height:1.7}
.button{border-radius:2px;min-height:48px}
.text-link{line-height:1.6}
@media(max-width:1100px) and (min-width:1001px){
 .header .nav-links{gap:15px}.header .nav-trigger,.header .nav-links>a{font-size:14px}
}
@media(max-width:1000px){
 .header .nav-links>a{display:block}
 .header .nav-dropdown{box-shadow:none;border:0;border-left:2px solid var(--green);padding:0 0 0 12px}
 .header .nav-dropdown a{font-size:16px}
 .hero.hero-connected h1{font-size:clamp(2.5rem,6.5vw,4rem)}
 .hero.hero-connected .hero-bottom{gap:36px}
 .connections{max-width:480px}
 .feature-strip .wrap{padding-block:26px}
 .future-section .two-col{align-items:start}
}
@media(max-width:640px){
 .hero.hero-connected{padding-block:44px}
 .hero.hero-connected h1{font-size:clamp(2.25rem,8.5vw,3rem);line-height:1.12;margin-bottom:22px}
 .hero-connected>.wrap>.eyebrow{font-size:12px;letter-spacing:.11em;gap:10px}
 .hero-connected>.wrap>.eyebrow::before{width:24px}
 .hero-connected .hero-copy .lead{font-size:16px;line-height:1.75}
 .hero-connected .connections{max-width:360px}
 .hero-connected .hero-copy .actions{gap:14px}
 .section{padding-block:56px}
 .section-top{margin-bottom:28px;gap:24px}
 body.page-home .service-grid{gap:18px}
 body.page-home .service-grid .service-card{padding:24px}
 body.page-home .service-card h3{font-size:22px}
 .page-hero{padding-block:44px}
 .page-hero h1{font-size:clamp(2.1rem,8vw,2.8rem)}
 .feature-strip p:not(.eyebrow){font-size:16px}
 .section-index a,.footer a:not(.brand),.social-links a{min-height:44px;padding-block:10px;display:inline-flex;align-items:center}
 .footer{padding-top:48px}
 .cta-band{padding-block:48px}
}
@media(prefers-reduced-motion:reduce){
 body.page-home .service-grid .service-card{transition:none}
}

/* One editorial headline voice; body copy and controls retain Ascent's Inter. */
.hero.hero-connected h1,.page-hero h1,.cta-band h2{
 font-family:var(--headline-font);font-weight:400;letter-spacing:-.032em;line-height:1.13;
}
.hero.hero-connected h1{max-width:1160px;font-size:clamp(2.7rem,4.8vw,4.9rem)}
.page-hero h1{font-size:clamp(2.45rem,4.7vw,4.5rem)}
.page-hero .lead,.hero-connected .hero-copy .lead{font-weight:400;line-height:1.75}
.section-top{align-items:start}
.service-detail{border-bottom:1px solid var(--line)}
body.page-home .service-grid .service-card{border-top-width:2px;box-shadow:none}
body.page-home .service-grid .service-card:hover,body.page-home .service-grid .service-card:focus-within{background:var(--paper-muted);border-color:#8da98f;box-shadow:none}
/* Default text links have a clear brand color on light reading surfaces. */
.text-link,.article-copy a,.legal-copy a,.profile-link,.byline a{color:var(--brand)}
.article-copy a,.legal-copy a,.byline a{ text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em }
.text-link:hover,.article-copy a:hover,.legal-copy a:hover,.profile-link:hover,.byline a:hover{color:var(--brand-hover);text-decoration:underline;text-underline-offset:.2em}
.header .nav-links>a,.header .nav-trigger{color:var(--ink)}
.header .nav-links>a:hover,.header .nav-links>a:focus-visible,.header .nav-trigger:hover,.header .nav-trigger[aria-expanded=true],.header .nav-links a[aria-current=page]{color:var(--brand)}
.header .nav-trigger[aria-expanded=true]{box-shadow:inset 0 -2px var(--brand)}
.header .nav-dropdown{background:var(--paper);color:var(--ink)}
.header .nav-dropdown a:hover,.header .nav-dropdown a:focus-visible{background:var(--selected);color:var(--brand-hover)}
/* The same primary, secondary, hover and focus hierarchy on every route. */
a.button,button.button,.header a.button,.hero a.button{background:var(--brand);color:var(--on-dark);border-color:var(--brand);font-weight:600}
a.button:hover,button.button:hover,.header a.button:hover,.header .nav a.button:hover,.hero a.button:hover{background:var(--brand-hover);color:var(--on-dark);border-color:var(--brand-hover)}
a.button.light,button.button.light,.cta-band a.button.light,.page-hero a.button.light{background:var(--paper);color:var(--brand-hover);border-color:var(--paper)}
a.button.light:hover,button.button.light:hover,.cta-band a.button.light:hover,.page-hero a.button.light:hover{background:var(--selected);color:var(--brand-hover);border-color:var(--selected)}
.button.outline,.button.outline:hover{background:transparent;color:var(--on-dark);border-color:var(--on-dark-link)}
:is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--brand);outline-offset:4px}
:is(.hero-connected,.page-hero,.dark,.cta-band,.footer,.snapshot) :is(a,button,input,select,textarea,summary):focus-visible{outline-color:var(--on-dark-link)}
/* Explicit foregrounds prevent inherited light-theme text on dark surfaces. */
.hero.hero-connected,.page-hero,.cta-band{background:var(--forest);color:var(--on-dark)}
.hero-connected .hero-bottom{border-top-color:#ffffff2e}
.page-hero .breadcrumb,.page-hero .breadcrumb a,.page-hero .breadcrumb [aria-current]{color:var(--on-dark-muted)}
.hero-connected .hero-copy .actions>.text-link,.page-hero .text-link,.page-hero .booking-link,.cta-band .text-link,.cta-band .booking-link,.dark .text-link{color:var(--on-dark-link)}
.hero-connected .hero-copy .actions>.text-link:hover,.page-hero .text-link:hover,.cta-band .text-link:hover,.dark .text-link:hover{color:var(--on-dark);text-decoration:underline}
.hero-connected .connections figcaption>a,.hero-connected .connections button{color:var(--on-dark-link)}
.hero-connected .connections figcaption>a:hover,.hero-connected .connections button:hover{color:var(--on-dark)}
/* White cards and tooltips keep their own light-surface colors. */
.hero-connected .connection-detail{background:var(--paper);color:var(--ink);border-color:#90ac90;border-top-color:var(--brand)}
.hero-connected .connection-detail strong{color:var(--brand)}
.hero-connected .connection-detail p{color:var(--ink)}
body.page-home main>.feature-strip{background:var(--paper-muted);color:var(--ink)}
body.page-home main>.feature-strip .text-link,body.page-home main>.feature-strip .eyebrow{color:var(--brand)}
/* Footer identity, labels, links and controls form one readable dark group. */
body .footer{background:var(--forest-deep);color:var(--on-dark);border-top-color:#315340}
body .footer .brand,body .footer .brand-type,body .footer .brand-type span,body .footer .trademark{color:var(--on-dark)}
body .footer .brand-symbol img{content:url('/assets/ascent-symbol-white.svg')}
body .footer p,body .footer address,body .footer .footer-bottom,body .footer .footer-location{color:var(--on-dark-muted)}
body .footer .footer-heading,body.page-home .footer .footer-heading{color:var(--on-dark);font-weight:600}
body .footer a,body .footer .cookie-settings{color:var(--on-dark-link)}
body .footer a:hover,body .footer .cookie-settings:hover{color:var(--on-dark);text-decoration:underline;text-underline-offset:.2em}
body .footer .brand:hover{color:var(--on-dark);text-decoration:none}
body .footer .footer-bottom{border-color:#315340}
/* Demo side tabs are dark; detail tabs are light. Both use one selected state. */
body.page-cops .demo-sidebar{background:var(--forest-deep);color:var(--on-dark)}
body.page-cops .demo-brand{color:var(--on-dark)}
body.page-cops .demo-sidebar-note{color:var(--on-dark-muted)}
body.page-cops .demo-tab{background:transparent;color:var(--on-dark-muted);border-left:3px solid transparent}
body.page-cops .demo-tab:hover,body.page-cops .demo-tab:focus-visible{background:#1d3b2b;color:var(--on-dark)}
body.page-cops .demo-tab[aria-selected=true],body.page-cops .demo-tab[aria-selected=true]:hover{background:#254a34;color:var(--on-dark);border-left-color:var(--on-dark-link);font-weight:600}
body.page-cops .demo-tab:focus-visible{outline-color:var(--on-dark-link)}
body.page-cops .demo-workspace{background:var(--paper-muted);color:var(--ink)}
body.page-cops .demo-subtabs button{background:var(--paper);color:var(--brand-hover);border-color:#849b88}
body.page-cops .demo-subtabs button:hover{background:var(--selected);color:var(--brand-hover)}
body.page-cops .demo-subtabs button[aria-selected=true]{background:var(--brand);color:var(--on-dark);border-color:var(--brand);font-weight:600}
body.page-cops .demo-subtabs button[aria-selected=true]:hover{background:var(--brand-hover);color:var(--on-dark)}
body.page-cops .demo-playback button{background:var(--paper);color:var(--brand-hover);border-color:#849b88}
body.page-cops .demo-playback button:hover{background:var(--selected);color:var(--brand-hover)}
body.page-cops .demo-bar-column:hover,body.page-cops .demo-bar-column[aria-pressed=true]{background:var(--selected)}
body.page-cops .demo-bar-column:hover i,body.page-cops .demo-bar-column[aria-pressed=true] i{background:var(--brand)}
body.page-home .vision-tabs button{background:var(--paper);color:var(--brand-hover);border-color:#849b88}
body.page-home .vision-tabs button:hover{background:var(--selected);color:var(--brand-hover)}
body.page-home .vision-tabs button[aria-selected=true],body.page-home .vision-tabs button[aria-selected=true]:hover{background:var(--brand);color:var(--on-dark);border-color:var(--brand)}
/* Form and consent surfaces follow the same light/brand/dark rules. */
.inquiry-form input,.inquiry-form textarea,.booking-questions select{background:var(--paper);color:var(--ink);border-color:#849b88;accent-color:var(--brand)}
.inquiry-form input::placeholder,.inquiry-form textarea::placeholder{color:var(--muted);opacity:1}
.booking-reset{background:var(--paper);color:var(--brand-hover);border-color:#849b88}
.booking-reset:hover{background:var(--selected);color:var(--brand-hover)}
.cookie-notice{background:var(--paper);color:var(--ink);border-color:#849b88}
.cookie-notice a{color:var(--brand-hover);text-decoration:underline;text-underline-offset:.2em}
.cookie-actions button{background:var(--paper);color:var(--brand-hover);border-color:var(--brand)}
.cookie-actions button:hover,.cookie-actions button:focus-visible{background:var(--brand);color:var(--on-dark)}
.help-header{background:var(--forest-deep);color:var(--on-dark)}
.help-header .help-title,.help-header .help-close{color:var(--on-dark)}
.help-header p{color:var(--on-dark-link)}
.help-launcher{background:var(--brand);color:var(--on-dark)}
.help-launcher:hover{background:var(--brand-hover);color:var(--on-dark)}
@media(max-width:640px){
 .hero.hero-connected h1{font-size:clamp(2.35rem,9vw,3.1rem);line-height:1.14}
 .page-hero h1{font-size:clamp(2.2rem,8.5vw,2.9rem);line-height:1.15}
 .cta-band h2{font-size:2.2rem;line-height:1.17}
 .header .nav-dropdown{border-left-color:var(--brand)}
 .header .nav-contact a.button{color:var(--on-dark)}
}

.header .nav-trigger[data-section-active=true]{color:var(--brand);box-shadow:inset 0 -2px var(--brand);font-weight:650}
.header .nav-dropdown a[aria-current=page]{background:var(--selected);color:var(--brand-hover);font-weight:650}
.header .nav-links>a[aria-current=page]{color:var(--brand);font-weight:650}
.founder-portrait .profile-link{background:var(--paper);color:var(--brand-hover);border-color:var(--brand)}
.founder-portrait .profile-link:hover,.founder-portrait .profile-link:focus-visible{background:var(--brand);color:var(--on-dark)}

/* Browser and small-screen resilience; the editorial palette remains shared. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.help-panel{max-height:calc(100vh - 116px);max-height:calc(100dvh - 116px)}
.inquiry-form fieldset,.inquiry-form legend,.booking-card,.contact-form-column{min-width:0;max-width:100%}
.help-footer{gap:12px;flex-wrap:wrap}
.page-hero h1,.hero h1,.cta-band h2{overflow-wrap:break-word}
@supports not selector(:focus-visible){
 a:focus,button:focus,input:focus,select:focus,textarea:focus,summary:focus{outline:3px solid var(--brand);outline-offset:4px}
 .hero-connected a:focus,.page-hero a:focus,.cta-band a:focus,.footer a:focus,.demo-sidebar button:focus{outline-color:var(--on-dark-link)}
}
@media(max-width:1000px){
 .nav{height:calc(100vh - var(--header-height));height:calc(100dvh - var(--header-height));padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}
 .nav-links{-webkit-overflow-scrolling:touch}
 .nav-contact{min-width:0}
 .nav-contact .button{white-space:normal;text-align:center}
}
@media(max-width:640px){
 .inquiry-form input:not([type=checkbox]):not([type=radio]),.inquiry-form textarea,.booking-questions select,.help-widget input,.help-widget textarea{font-size:16px}
 .help-panel{
  top:calc(12px + var(--visible-viewport-top,0px));bottom:auto;
  height:calc(100vh - 24px - env(safe-area-inset-bottom,0px));
  height:calc(var(--visible-viewport-height,100vh) - 24px - env(safe-area-inset-bottom,0px));
  max-height:none;
 }
 .help-body{-webkit-overflow-scrolling:touch}
 .help-compose button{width:44px;min-height:44px}
 .cookie-notice{max-height:calc(100vh - 160px - env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 160px - env(safe-area-inset-bottom,0px));overflow-y:auto}
 body.page-cops .demo-subtabs button{min-width:0;white-space:normal}
 body.page-cops .demo-footer,body.page-cops .demo-playback{flex-wrap:wrap}
}
@media(max-width:380px){
 body.page-cops .demo-metrics{grid-template-columns:minmax(0,1fr)}
 body.page-cops .demo-rows>div{flex-wrap:wrap}
 body.page-cops .demo-tablist{grid-template-columns:minmax(0,1fr)}
 .booking-calendar-heading{flex-wrap:wrap}
}
