/* Bridge2Connect — one editorial system, no external fonts or UI framework. */
:root { --navy:#102c39; --navy-deep:#091e2a; --ink:#183440; --muted:#52646b; --cream:#f7f6f2; --paper:#fffefa; --sky:#c6dce5; --pale-blue:#eaf0f1; --line:#d4ddde; --gold:#93693d; --font-sans:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif; --font-serif:Georgia,'Times New Roman',serif; --container:1184px; --gutter:clamp(22px,5.6vw,88px); --header-height:88px; }
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--header-height) + 28px); }
body { margin:0; background:var(--cream); color:var(--ink); font:16px/1.75 var(--font-sans); -webkit-font-smoothing:antialiased; }
::selection { background:var(--sky); color:var(--navy-deep); }
img,picture { display:block; max-width:100%; } img { height:auto; }
a { color:inherit; text-decoration:none; text-underline-offset:.3em; }
button,input,select,textarea { font:inherit; } button,summary { cursor:pointer; } button { color:inherit; }
[hidden] { display:none!important; } button:disabled { cursor:not-allowed; }
a,button,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:2px solid #547788; outline-offset:5px; } main:focus { outline:none; }
input:focus-visible,textarea:focus-visible,select:focus-visible { outline-offset:2px; }
h1,h2,h3,p,figure,blockquote { margin:0; } h1,h2,h3 { font-weight:500; line-height:1.14; letter-spacing:-.036em; text-wrap:balance; }
h1 { font-size:clamp(42px,4.5vw,64px); } h2 { font-size:clamp(32px,3.15vw,44px); } h3 { font-size:24px; letter-spacing:-.025em; }
h1 em { font-family:var(--font-serif); font-weight:400; letter-spacing:-.055em; } p { text-wrap:pretty; } p+p { margin-top:20px; } p a { text-decoration:underline; }
.container { width:min(var(--container),calc(100% - var(--gutter)*2)); margin-inline:auto; }
.section-space { padding-block:clamp(68px,7.5vw,108px); }
.icon { display:inline-block; width:22px; height:22px; flex-shrink:0; vertical-align:middle; }
.muted { color:var(--muted); } .large-paragraph { font-size:clamp(19px,1.7vw,23px); line-height:1.6; letter-spacing:-.015em; }
.eyebrow { margin:0 0 24px; color:#425f6c; font-size:12px; font-weight:600; line-height:1.5; letter-spacing:.035em; }
.eyebrow__number { display:none; }
.button { display:inline-flex; min-height:54px; gap:28px; align-items:center; justify-content:space-between; padding:15px 22px; border:1px solid transparent; border-radius:8px; font-size:13px; font-weight:600; line-height:1.5; transition:background .18s,color .18s,border-color .18s; }
.button .icon { width:18px; height:18px; transition:transform .18s; } .button:hover .icon { transform:translateX(3px); }
.button--primary { background:var(--navy); color:white; } .button--primary:hover { background:#284d5d; }
.button--light { background:#f6f7f3; color:var(--navy-deep); } .button--light:hover { background:#dceaf0; }
.button--outline { border-color:#a9b9be; background:transparent; color:var(--ink); } .button--outline:hover { background:var(--pale-blue); }
.text-link { display:inline-flex; align-items:center; gap:20px; width:fit-content; padding-block:8px; border-bottom:1px solid #a0b0b4; font-size:13px; font-weight:600; line-height:1.5; transition:color .18s,border-color .18s; }
.text-link .icon { width:17px; height:17px; transition:transform .18s; } .text-link:hover { color:#536f7d; border-color:currentColor; } .text-link:hover .icon { transform:translateX(3px); }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
/* Stable, opaque navigation; no shrinking header or hidden focus targets. */
.skip-link { position:fixed; top:-100px; left:20px; z-index:100; padding:12px 20px; color:var(--navy); background:white; } .skip-link:focus { top:14px; }
.site-header { position:sticky; top:0; z-index:30; background:#fffefa; border-bottom:1px solid #e4e8e5; }
.header-inner { min-height:var(--header-height); display:flex; align-items:center; gap:32px; }
.brand { display:block; flex:0 0 auto; } .brand img { width:138px; height:auto; }
.brand-caption { padding-left:26px; border-left:1px solid var(--line); font-size:10px; line-height:1.65; color:var(--muted); }
.site-nav { margin-left:auto; display:flex; align-items:center; gap:34px; font-size:13px; font-weight:500; }
.site-nav>a { position:relative; padding-block:12px; } .site-nav>a:not(.nav-contact)::after { content:''; position:absolute; bottom:5px; left:0; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:left; transition:transform .2s; }
.site-nav>a:hover::after,.site-nav>a[aria-current=page]::after { transform:scaleX(1); }
.site-nav>a.nav-contact { display:flex; align-items:center; gap:26px; padding:12px 18px; background:var(--navy); color:white; border-radius:8px; }
.nav-contact .icon { width:16px; height:16px; } .nav-contact:hover { background:#284d5d!important; } .menu-toggle { display:none; }
/* Still-image hero with bounded scroll parallax, not realtime 3D. */
.hero { position:relative; isolation:isolate; overflow:hidden; color:white; background:var(--navy-deep); }
.hero-image { position:absolute; inset:-88px 0; transform:translate3d(0,var(--hero-drift,0px),0); }
.hero-image img { width:100%; height:100%; object-fit:cover; object-position:58% 54%; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(6,23,34,.90),rgba(6,23,34,.78) 25%,rgba(6,23,34,.28) 57%,rgba(6,23,34,.06) 80%),linear-gradient(0deg,rgba(6,23,34,.70),transparent 35%); }
.hero-inner { position:relative; min-height:clamp(590px,calc(100svh - 88px),760px); display:flex; flex-direction:column; justify-content:center; }
.hero-copy { padding-block:65px 66px; max-width:570px; }
.hero .eyebrow { color:#d2e1e8; font-size:11px; letter-spacing:.04em; margin-bottom:28px; }
.hero h1 { font-size:clamp(58px,5.6vw,82px); line-height:1.07; font-weight:400; letter-spacing:-.05em; text-wrap:initial; } .hero h1 em { color:#c2dce7; white-space:nowrap; }
.hero-lead { max-width:385px; font-size:16px; line-height:1.85; color:#e0e8ed; margin-top:28px; }
.hero-actions { display:flex; align-items:center; gap:24px; flex-wrap:wrap; margin-top:32px; }
.hero-secondary { color:#f2f5f7; border-color:#8299a6; font-size:12px; font-weight:400; } .hero-secondary:hover { color:white; }
.hero-bottom { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-bottom:34px; }
.hero-person { display:flex; align-items:center; gap:14px; } .hero-person img { width:43px; height:43px; object-fit:cover; border-radius:50%; border:1px solid #b7c9d3; }
.hero-person strong { display:block; font-size:13px; font-weight:600; } .hero-person small { display:block; font-size:10px; color:#c3d3dc; } .hero-person>.icon { width:16px; height:16px; margin-left:20px; }
.hero-scroll { display:flex; align-items:center; gap:18px; color:#d4e2e9; font-size:11px; } .hero-scroll .icon { width:17px; height:17px; }
.company-strip { background:var(--paper); border-bottom:1px solid var(--line); padding-block:30px 34px; }
.company-intro { font-size:11px; color:var(--muted); margin-bottom:19px; }
.company-names { display:flex; flex-wrap:wrap; align-items:center; gap:16px 26px; justify-content:space-between; }
.company-names span { font-size:14px; font-weight:600; color:#3d5460; white-space:nowrap; }
/* Editorial overview: readable rows, not repeated feature cards. */
.heading-grid { display:grid; grid-template-columns:1.15fr 1fr; align-items:end; gap:80px; }
.heading-grid>p { max-width:480px; color:var(--muted); line-height:1.8; }
.section-heading { margin-bottom:45px; }
.expertise-overview { display:grid; grid-template-columns:.9fr 1.2fr; gap:clamp(60px,8vw,124px); }
.expertise-heading h2 { max-width:390px; } .expertise-heading>p { max-width:350px; margin-top:27px; color:var(--muted); font-size:15px; }
.service-list { border-top:1px solid #bccacd; }
.service-row { padding:28px 0 27px; border-bottom:1px solid #bccacd; } .service-row:first-child { padding-top:26px; }
.service-row h3 { font-size:26px; } .service-row>p { max-width:490px; margin-top:13px; color:var(--muted); font-size:15px; line-height:1.8; }
.service-row .text-link { margin-top:11px; font-size:12px; }
.about-preview { background:var(--pale-blue); }
.about-grid { width:min(1080px,calc(100% - var(--gutter)*2)); display:grid; grid-template-columns:minmax(260px,380px) minmax(0,1fr); grid-template-rows:auto auto; column-gap:clamp(48px,7vw,100px); row-gap:27px; align-items:start; }
.about-intro { grid-column:2; grid-row:1; align-self:end; } .about-intro h2 { font-size:clamp(32px,3vw,42px); } .about-intro .eyebrow { margin-bottom:19px; }
.portrait-frame { position:relative; width:100%; max-width:380px; margin-inline:auto; }
.about-grid>.portrait-frame { grid-column:1; grid-row:1 / span 2; align-self:center; }
.portrait-window { border-radius:24px; overflow:hidden; background:#d9e2e1; aspect-ratio:4/5; }
.portrait-window>img { width:100%; height:100%; object-fit:cover; object-position:55% 40%; }
.portrait-frame figcaption { padding-top:15px; font-size:11px; color:var(--ink); } .portrait-frame figcaption span { color:var(--muted); }
.about-copy { grid-column:2; grid-row:2; } .about-copy>.large-paragraph { font-size:22px; color:#355461; }
.about-copy>p:not(.large-paragraph) { margin-top:21px; color:var(--muted); font-size:15px; line-height:1.85; }
.about-copy .text-link { margin-top:24px; }
.section-dark { color:#f6f8f5; background:var(--navy-deep); }
.process-section { padding-block:80px 88px; } .section-dark .eyebrow { color:#bed2de; } .section-dark .heading-grid>p { color:#c4d2d9; font-size:15px; }
.steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px; }
.step { border-top:1px solid #536874; padding-top:26px; } .step h3 { font-size:23px; margin-bottom:16px; }
.step>p { font-size:14px; line-height:1.85; color:#c4d2d9; }
.partner-preview { background:var(--cream); } .partner-grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:start; }
.partner-copy { padding-top:6px; } .partner-copy h3 { font-size:24px; margin-bottom:19px; } .partner-copy>p { color:var(--muted); font-size:15px; }
.partner-copy .text-link { margin-top:22px; }
.faq-section { background:var(--paper); border-block:1px solid var(--line); } .faq-layout { display:grid; grid-template-columns:.85fr 1.2fr; gap:100px; }
.faq-layout h2 { font-size:35px; } .faq-layout>.faq-heading>.muted,.faq-layout>div>.muted { margin-top:22px; font-size:14px; } .faq-layout .text-link { margin-top:12px; }
.faq-list details { border-top:1px solid var(--line); } .faq-list details:last-child { border-bottom:1px solid var(--line); }
.faq-list summary { display:flex; gap:22px; align-items:center; list-style:none; padding:24px 0; } .faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary h3 { font-size:16px; font-weight:500; letter-spacing:-.01em; line-height:1.55; } .faq-list summary .icon { width:18px; height:18px; margin-left:auto; transition:transform .2s; }
.faq-list details[open] summary .icon { transform:rotate(45deg); } .faq-answer { padding:0 32px 26px 0; font-size:14px; color:var(--muted); }
/* Closing invitation and footer. */
.contact-cta { padding-block:76px 84px; color:white; background:var(--navy); }
.cta-inner { display:flex; justify-content:space-between; gap:70px; align-items:center; } .contact-cta .eyebrow { color:#c4d7e1; }
.contact-cta h2 { font-size:clamp(36px,4vw,55px); } .cta-aside { max-width:330px; } .cta-aside p { color:#d1dce1; font-size:15px; margin-bottom:25px; }
/* Inner pages share the same scale and image treatment. */
.breadcrumbs { display:flex; gap:12px; font-size:11px; color:var(--muted); margin-bottom:48px; } .breadcrumbs a:hover { text-decoration:underline; }
.page-intro { padding-top:30px; background:var(--pale-blue); padding-bottom:76px; }
.page-intro .page-heading { grid-template-columns:1.2fr 1fr; gap:68px; } .page-heading>p { font-size:17px; line-height:1.8; }
.service-jumps { display:flex; flex-wrap:wrap; gap:22px 36px; padding-top:26px; border-top:1px solid #bac9ce; margin-top:45px; }
.service-jumps a { display:flex; align-items:center; gap:13px; font-size:13px; } .service-jumps .icon { width:16px; height:16px; } .service-jumps a:hover { text-decoration:underline; }
.expertise-detail { background:var(--paper); border-bottom:1px solid var(--line); } .detail-layout { display:grid; grid-template-columns:.78fr 1.3fr; gap:100px; }
.detail-label blockquote { color:#526d78; max-width:300px; font-size:23px; line-height:1.5; letter-spacing:-.025em; } .detail-label .eyebrow { font-size:12px; }
.detail-content h2 { font-size:36px; max-width:560px; margin-bottom:26px; } .detail-content>p { color:var(--muted); font-size:16px; }
.outcomes { margin-block:28px; border-block:1px solid var(--line); padding-block:23px; } .outcomes h3 { font-size:13px; font-weight:600; letter-spacing:0; margin-bottom:18px; }
.outcomes>p { display:flex; align-items:center; gap:12px; font-size:14px; margin-top:11px; } .outcomes .icon { width:17px; height:17px; color:#4b6b69; }
.small-note { padding-block:25px; color:var(--muted); font-size:12px; }
.about-hero { padding-top:30px; } .about-hero-grid { display:grid; grid-template-columns:1.12fr 1fr; gap:90px; align-items:center; }
.about-hero h1 { max-width:570px; font-size:clamp(42px,4.4vw,62px); } .about-hero .large-paragraph { color:var(--muted); font-size:18px; margin-top:28px; max-width:470px; }
.about-hero .text-link { margin-top:27px; } .portrait-frame--about { max-width:380px; }
.biography { background:var(--paper); } .editorial-layout { display:grid; grid-template-columns:.85fr 1.2fr; gap:100px; }
.prose { color:var(--muted); font-size:16px; } .prose .large-paragraph { color:var(--ink); font-size:22px; } .prose .text-link { margin-top:25px; }
.quote-section { padding-block:76px 82px; background:var(--pale-blue); } .quote-section .container { max-width:850px; text-align:center; }
.quote-mark { display:none; } .quote-section blockquote { font-family:var(--font-serif); font-size:clamp(25px,3vw,38px); line-height:1.55; letter-spacing:-.025em; }
.quote-section p { font-size:12px; margin-top:26px; } .quote-section p span { color:var(--muted); }
.principle-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px; } .principle-grid article { padding-top:24px; border-top:1px solid var(--line); }
.principle-grid h2 { font-size:24px; margin-bottom:17px; } .principle-grid p { font-size:15px; color:var(--muted); }
.network-companies { background:var(--paper); } .network-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 60px; margin-top:43px; }
.network-name { min-height:91px; padding:25px 0; border-bottom:1px solid var(--line); display:flex; align-items:center; } .network-name h3 { font-size:24px; font-weight:500; letter-spacing:-.02em; }
.floru-section { background:var(--pale-blue); }
/* Contact: a calm mail composer, not a simulated send endpoint. */
.contact-page { padding-top:30px; } .contact-layout { display:grid; grid-template-columns:.92fr 1.1fr; gap:90px; align-items:start; }
.contact-intro h1 { font-size:clamp(44px,4.5vw,64px); } .contact-intro>.large-paragraph { font-size:17px; color:var(--muted); margin-top:28px; max-width:390px; }
.contact-person { display:flex; align-items:center; gap:18px; margin-top:35px; padding-block:25px; border-block:1px solid var(--line); }
.contact-person img { width:58px; height:58px; border-radius:50%; object-fit:cover; } .contact-person h2 { font-size:18px; letter-spacing:-.02em; } .contact-person p { font-size:12px; color:var(--muted); margin-top:5px; }
.contact-details { display:flex; flex-direction:column; gap:14px; margin-top:23px; } .contact-details:empty { display:none; }
.contact-details a { display:flex; align-items:center; gap:12px; width:fit-content; max-width:100%; font-size:15px; } .contact-details a>span { min-width:0; overflow-wrap:anywhere; } .contact-details .icon { width:19px; height:19px; } .contact-details a:hover { text-decoration:underline; }
.contact-note,.contact-pending { font-size:12px; color:var(--muted); line-height:1.8; margin-top:20px; } .contact-expectation { margin-top:34px; }
.contact-expectation h2 { font-size:13px; letter-spacing:0; font-weight:600; margin-bottom:16px; } .contact-expectation p { display:flex; gap:12px; align-items:center; margin-top:9px; font-size:13px; color:var(--muted); } .contact-expectation .icon { width:16px; height:16px; }
.contact-form-panel { padding:36px; background:var(--paper); border:1px solid #e1e6e2; border-radius:18px; }
.form-title h2 { font-size:25px; } .contact-form-panel>p { font-size:13px; color:var(--muted); margin-top:12px; } #contact-form { margin-top:28px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:17px; } .field { min-width:0; margin-bottom:20px; }
.field label { display:block; font-size:12px; font-weight:600; margin-bottom:8px; } .field label>span { color:#865b2a; }
input,select,textarea { width:100%; background:#fff; color:var(--ink); padding:12px 13px; border:1px solid #acbdc2; border-radius:7px; font-size:14px; line-height:1.65; }
textarea { resize:vertical; min-height:145px; } input::placeholder,textarea::placeholder { color:#687e87; opacity:1; }
input[aria-invalid=true],textarea[aria-invalid=true] { border-color:#b23838; } .field-error { display:block; margin-top:6px; color:#9a3030; font-size:12px; } .field-error:empty { display:none; }
.form-note { font-size:11px; color:var(--muted); line-height:1.8; margin-bottom:21px; } .form-submit { width:100%; } .required-note { display:block; font-size:11px; color:var(--muted); margin-top:12px; }
.message-dialog { color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:18px; padding:0; width:min(610px,calc(100% - 30px)); max-height:90svh; overscroll-behavior:contain; }
.message-dialog::backdrop { background:rgba(6,23,34,.72); } .dialog-inner { position:relative; padding:38px; }
.dialog-close { display:grid; place-items:center; position:absolute; right:13px; top:13px; width:40px; height:40px; background:transparent; border:none; border-radius:50%; }
.dialog-inner h2 { font-size:34px; } .dialog-inner>p { font-size:14px; color:var(--muted); margin-top:20px; } .dialog-inner>textarea { margin-top:21px; min-height:205px; font-size:13px; }
.dialog-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; } .dialog-actions .button { font-size:12px; gap:16px; } .copy-status { min-height:22px; font-size:12px; }
.legal-layout { display:grid; grid-template-columns:.7fr 1.5fr; gap:100px; } .legal-layout aside { font-size:13px; color:var(--muted); } .legal-page h2 { font-size:27px; margin:36px 0 17px; color:var(--ink); }
.legal-page p { font-size:15px; } .notice { padding:23px; border:1px solid #ced9dc; border-radius:12px; background:var(--pale-blue); font-size:14px; margin-bottom:32px; } .notice p { margin-top:9px; }
.not-found { min-height:60svh; display:flex; align-items:center; } .not-found p { color:var(--muted); margin-top:25px; } .not-found .button { margin-top:28px; }
.back-to-top { position:fixed; z-index:25; right:max(26px,env(safe-area-inset-right)); bottom:max(26px,env(safe-area-inset-bottom)); width:48px; height:48px; display:grid; place-items:center; padding:0; background:var(--navy); color:white; border:1px solid #91a8b1; border-radius:50%; box-shadow:0 5px 18px #0a253522; transition:background .18s,transform .18s; animation:top-button-in .18s ease both; }
.back-to-top .icon { width:20px; height:20px; } .back-to-top:hover { background:#2d5262; transform:translateY(-2px); } .back-to-top:focus-visible { outline:2px solid #547788; outline-offset:4px; }
@keyframes top-button-in { from { opacity:0; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
@media (min-width:1800px) { :root { --container:1264px; } .hero h1 { font-size:86px; } .hero-copy { max-width:620px; } }
@media (max-width:1130px) {
  .brand-caption { display:none; } .site-nav { gap:28px; }
  .expertise-overview { gap:58px; } .heading-grid,.partner-grid,.faq-layout,.editorial-layout,.detail-layout,.legal-layout { gap:50px; }
  .contact-layout { gap:48px; } .about-hero-grid { gap:60px; }
  .hero h1 { font-size:66px; } .hero-copy { max-width:510px; } .hero-lead { max-width:355px; }
  .about-grid { column-gap:52px; grid-template-columns:minmax(250px,340px) minmax(0,1fr); } .about-intro h2 { font-size:36px; }
  .form-row { grid-template-columns:1fr; gap:0; } .contact-form-panel { padding:27px; }
}
@media (max-width:899px) {
  :root { --header-height:78px; } .brand img { width:118px; } .header-inner { flex-wrap:wrap; gap:0; }
  .site-nav { flex:0 0 100%; justify-content:space-between; gap:18px; padding-bottom:16px; }
  .js .site-nav { display:none; }
  .js .menu-toggle { display:inline-flex; }
  .expertise-overview { grid-template-columns:.85fr 1.1fr; gap:38px; } .service-row h3 { font-size:23px; } .expertise-heading h2 { font-size:34px; }
  .about-grid { grid-template-columns:minmax(230px,300px) minmax(0,1fr); column-gap:36px; } .about-intro h2 { font-size:32px; } .about-copy>.large-paragraph { font-size:20px; } .about-copy>p:not(.large-paragraph) { font-size:14px; }
  .steps,.principle-grid { gap:28px; } .step h3 { font-size:21px; }
  .page-intro .page-heading { grid-template-columns:1fr; gap:26px; } .page-intro .page-heading>p { max-width:580px; }
  .about-hero-grid { gap:36px; grid-template-columns:1.1fr 1fr; } .about-hero h1 { font-size:44px; } .about-hero .large-paragraph { font-size:16px; }
  .contact-layout { grid-template-columns:1fr 1.1fr; gap:30px; } .contact-intro h1 { font-size:45px; } .contact-details a { font-size:13px; }

}
@media (max-width:650px) {
  :root { --gutter:24px; } .section-space { padding-block:64px; } h2 { font-size:34px; } h3 { font-size:24px; }
  .company-strip { padding-block:25px 29px; } .company-intro { font-size:10px; margin-bottom:18px; } .company-names { justify-content:start; gap:14px 23px; } .company-names span { font-size:12px; }
  .expertise-overview,.heading-grid,.partner-grid,.faq-layout,.editorial-layout,.detail-layout,.legal-layout { grid-template-columns:1fr; gap:32px; }
  .expertise-heading>p { max-width:100%; margin-top:20px; } .service-row { padding-block:25px; } .service-row h3 { font-size:24px; } .service-row>p { font-size:14px; }
  .about-grid { display:flex; flex-direction:column; gap:29px; } .about-intro { width:100%; } .about-intro h2 { font-size:34px; } .about-intro .eyebrow { margin-bottom:17px; }
  .portrait-frame { max-width:300px; } .portrait-window { border-radius:20px; } .portrait-frame figcaption { font-size:11px; padding-top:12px; }
  .about-copy { width:100%; } .about-copy>.large-paragraph { font-size:21px; } .about-copy>p:not(.large-paragraph) { font-size:15px; } .about-copy .text-link { margin-top:22px; }
  .process-section { padding-block:64px; } .section-heading { margin-bottom:32px; } .heading-grid>p { font-size:15px; }
  .steps,.principle-grid { grid-template-columns:1fr; gap:28px; } .step { padding-top:23px; } .step h3 { font-size:23px; margin-bottom:13px; }
  .partner-copy { padding-top:0; } .partner-copy h3 { font-size:22px; } .partner-copy>p { font-size:15px; }
  .faq-layout h2 { font-size:32px; } .faq-list summary { padding-block:22px; gap:15px; } .faq-list summary h3 { font-size:15px; } .faq-answer { padding-right:16px; }
  .contact-cta { padding-block:62px 68px; } .cta-inner { flex-direction:column; align-items:start; gap:28px; } .contact-cta h2 { font-size:39px; } .cta-aside { max-width:100%; }



  .breadcrumbs { margin-bottom:34px; font-size:10px; } .page-intro,.about-hero,.contact-page { padding-top:25px; } .page-intro h1 { font-size:42px; } .page-heading>p { font-size:16px; }
  .service-jumps { margin-top:31px; flex-direction:column; gap:19px; } .service-jumps a { justify-content:space-between; font-size:12px; }
  .detail-label blockquote { max-width:100%; font-size:22px; } .detail-content h2 { font-size:31px; } .detail-content>p { font-size:15px; } .outcomes>p { font-size:13px; }
  .about-hero-grid { grid-template-columns:1fr; gap:36px; } .about-hero h1 { font-size:44px; } .about-hero .large-paragraph { font-size:16px; max-width:100%; } .portrait-frame--about { max-width:300px; }
  .quote-section { padding-block:58px 62px; } .quote-section blockquote { font-size:27px; } .prose { font-size:15px; } .prose .large-paragraph { font-size:20px; }
  .principle-grid h2 { font-size:24px; } .network-grid { gap:0 26px; margin-top:30px; } .network-name { min-height:87px; padding:20px 0; } .network-name h3 { font-size:19px; overflow-wrap:anywhere; }
  .contact-layout { grid-template-columns:1fr; gap:36px; } .contact-intro h1 { font-size:47px; } .contact-intro>.large-paragraph { font-size:16px; max-width:100%; } .contact-details a { font-size:14px; }
  .contact-form-panel { padding:26px 20px; border-radius:14px; } input,select,textarea { font-size:16px; } .form-title h2 { font-size:25px; } .dialog-inner { padding:35px 23px 26px; } .dialog-inner h2 { font-size:29px; } .dialog-actions .button { width:100%; }
  .legal-layout aside { padding-bottom:24px; border-bottom:1px solid var(--line); } .legal-page h2 { font-size:25px; }
  .back-to-top { right:calc(16px + env(safe-area-inset-right)); bottom:calc(16px + env(safe-area-inset-bottom)); width:46px; height:46px; }
}
@media (max-width:359px) { :root { --gutter:18px; } .hero h1 { font-size:37px; } .hero-actions { gap:16px; } .hero-person small { font-size:9px; } .network-name h3 { font-size:17px; } }
/* Navigation and form controls are styled as real components, not OS chrome. */
.site-header { transition:transform 220ms ease,box-shadow 180ms ease; }
.site-header.is-hidden { transform:translateY(-105%); }
.site-header.is-scrolled:not(.is-hidden) { box-shadow:0 4px 18px #102c3909; }
.site-header:focus-within { scroll-margin-top:0; }
.menu-toggle { align-items:center; gap:12px; margin-left:auto; padding:0; border:0; background:none; font-size:12px; font-weight:500; }
.menu-icon,.menu-close { width:44px; height:44px; display:grid; place-items:center; border:1px solid #d3dede; border-radius:50%; background:transparent; color:var(--ink); }
.menu-icon svg { width:23px; height:23px; } .menu-close .icon { width:21px; height:21px; }
.menu-toggle:hover .menu-icon,.menu-close:hover { background:#eaf0f1; }
.mobile-menu { position:fixed; inset:0; width:100%; max-width:none; height:100vh; height:100dvh; max-height:none; margin:0; padding:0; border:0; color:var(--ink); background:var(--cream); overscroll-behavior:contain; }
.mobile-menu:not([open]) { display:none; }
.mobile-menu[open] { display:flex; flex-direction:column; animation:menu-arrive 180ms ease both; }
.mobile-menu::backdrop { background:var(--cream); }
.mobile-menu-top { display:flex; align-items:center; justify-content:space-between; gap:24px; flex:0 0 auto; min-height:88px; padding:calc(12px + env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) 12px max(24px,env(safe-area-inset-left)); border-bottom:1px solid var(--line); }
.mobile-menu-top .brand img { width:114px; } .menu-close { flex-shrink:0; }
.mobile-menu-content { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; display:flex; flex-direction:column; padding:36px 28px max(26px,env(safe-area-inset-bottom)); }
.mobile-menu-label { color:var(--muted); font-size:11px; letter-spacing:.06em; margin-bottom:21px; }
.mobile-nav { display:flex; flex-direction:column; }
.mobile-nav-link { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:16px 0; border-bottom:1px solid #d8e0df; font-size:clamp(27px,7.9vw,40px); line-height:1.1; letter-spacing:-.035em; }
.mobile-nav-link .icon { width:23px; height:23px; color:#57747f; }
.mobile-nav-link[aria-current=page] { color:#557886; } .mobile-nav-link:hover { color:#557886; }
.mobile-menu-contact { margin-top:auto; padding-top:34px; }
.mobile-menu-contact>p { font-size:13px; color:var(--muted); margin-bottom:15px; }
.mobile-menu-contact .button { display:flex; width:100%; min-height:54px; }
.mobile-menu-email { display:block; width:fit-content; margin-top:19px; font-size:13px; color:#46636e; overflow-wrap:anywhere; }
@keyframes menu-arrive { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:none; } }
.custom-select { position:relative; width:100%; }
.select-control { width:100%; display:flex; align-items:center; justify-content:space-between; min-height:51px; gap:18px; padding:13px 18px 13px 16px; border:1px solid #a5b8bd; border-radius:8px; background:white; color:var(--ink); font-size:14px; text-align:left; line-height:1.6; }
.select-control>span { min-width:0; } .select-control svg { width:18px; height:18px; flex:0 0 18px; transition:transform 150ms; }
.select-control[aria-expanded=true] { border-color:#547788; } .select-control[aria-expanded=true] svg { transform:rotate(180deg); }
.select-options { position:absolute; z-index:10; top:calc(100% + 8px); left:0; right:0; margin:0; padding:6px; list-style:none; overflow-y:auto; overscroll-behavior:contain; max-height:290px; border:1px solid #cbd8d9; border-radius:12px; background:#fffefa; box-shadow:0 14px 36px #102c3924; }
.custom-select[data-side=above] .select-options { top:auto; bottom:calc(100% + 8px); }
.select-options li { position:relative; min-height:46px; padding:12px 38px 12px 12px; border-radius:6px; font-size:14px; line-height:1.5; cursor:pointer; }
.select-options li:hover,.select-options li.is-active { background:#e6eeed; color:#183440; }
.select-options li[aria-selected=true]::after { content:''; position:absolute; right:16px; top:19px; width:6px; height:10px; border-right:1.8px solid #294e5c; border-bottom:1.8px solid #294e5c; transform:rotate(45deg); }
.select-control:focus-visible { outline:2px solid #547788; outline-offset:3px; }
select { appearance:none; padding-right:42px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23526b77' stroke-width='1.5'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-position:right 16px center; background-repeat:no-repeat; }
@media (max-width:899px) {
  :root { --header-height:80px; } .header-inner { min-height:80px; } .brand img { width:114px; }
  .hero { display:flex; flex-direction:column; }
  .hero-inner { display:contents; }
  .hero-copy { order:0; width:100%; max-width:none; padding:40px var(--gutter) 30px; background:var(--navy-deep); }
  .hero h1 { font-size:clamp(40px,8.8vw,68px); line-height:1.09; }
  .hero h1 em { white-space:normal; }
  .hero .eyebrow { font-size:11px; margin-bottom:22px; letter-spacing:.025em; }
  .hero-lead { max-width:520px; font-size:16px; line-height:1.75; margin-top:22px; }
  .hero-actions { gap:17px 25px; margin-top:26px; }
  .hero-image { position:relative; order:1; inset:auto; width:100%; aspect-ratio:16/10; max-height:370px; transform:none!important; }
  .hero-image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:64% 52%; }
  .hero-shade { display:none; }
  .hero-bottom { order:2; padding:18px var(--gutter) 22px; margin:0; background:var(--navy-deep); }
  .hero-person img { width:36px; height:36px; } .hero-person strong { font-size:12px; } .hero-person small { font-size:10px; }
  .hero-person>.icon,.hero-scroll { display:none; }
}
@media (max-width:650px) {
  .hero-copy { padding-top:34px; padding-bottom:28px; }
  .hero h1 { font-size:clamp(37px,10.4vw,58px); }
  .hero-lead { font-size:15px; max-width:430px; }
  .hero-actions { display:flex; flex-direction:column; align-items:stretch; gap:9px; }
  .hero-actions .button { min-height:52px; width:100%; }
  .hero-secondary { align-self:center; border-bottom:0; padding:10px 2px; min-height:40px; }
  .hero-image { aspect-ratio:16/10; max-height:310px; }
  .select-control,.select-options li { font-size:16px; }
  .contact-form-panel { padding:25px 18px; }
}
@media (max-width:359px) { .hero h1 { font-size:36px; } .mobile-menu-content { padding-inline:22px; } }
@media (max-height:650px) { .mobile-menu-content { padding-top:18px; } .mobile-menu-label { margin-bottom:9px; } .mobile-nav-link { padding-block:11px; font-size:28px; } .mobile-menu-contact { padding-top:22px; } .mobile-menu-email { margin-top:13px; } }
@media (prefers-reduced-motion:reduce) { .site-header,.mobile-menu,.select-control svg { transition:none; animation:none; } }

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .hero-image { transform:none!important; } .back-to-top:hover,.button:hover .icon,.text-link:hover .icon { transform:none; }
}
@media print {
  .site-header,.site-footer,.back-to-top,.hero-actions,.hero-scroll,.contact-cta { display:none!important; }
  body,.section-dark,.hero { color:#000; background:#fff; } .hero-image,.hero-shade { display:none; }
  .hero h1 em,.hero-lead,.hero .eyebrow,.hero-person small { color:#000; } .hero-inner { min-height:0; } .hero-copy { padding:24px 0; }
  .container { width:100%; } .section-space { padding-block:26px; } details,.portrait-frame { break-inside:avoid; }
}

/* Bilingual controls and balanced company rows. */
.header-controls,.mobile-menu-tools { display:flex; align-items:center; gap:14px; flex:0 0 auto; }





.header-inner { gap:24px; }
.site-nav { gap:28px; }
.company-row { display:contents; }



fieldset[data-form-fields] { min-width:0; padding:0; margin:0; border:0; }
input:focus-visible,textarea:focus-visible { outline:2px solid #587885; outline-offset:3px; }
.custom-select[data-open=true] { z-index:12; }
.select-control { padding-right:20px; }
.select-options li { user-select:none; -webkit-user-select:none; }
@media (max-width:1130px) { .site-nav { gap:24px; } }
@media (max-width:899px) {
  .js .header-inner { flex-wrap:nowrap; gap:12px; }
  .header-controls { margin-left:auto; gap:12px; }
  .menu-toggle { margin:0; }

  .mobile-menu-top { min-height:80px; padding-top:max(10px,env(safe-area-inset-top)); gap:12px; }
  .mobile-menu-tools { gap:12px; }
  .mobile-menu-top .brand img { width:114px; }
  .hero-image { aspect-ratio:16/9; max-height:420px; }
  .hero-image img { object-position:center; }
}
@media (max-width:650px) {
  .company-names { display:flex; flex-direction:column; gap:15px; width:100%; }
  .company-row { display:flex; width:100%; justify-content:space-between; align-items:center; gap:8px; }
  .company-row span { font-size:clamp(10px,2.9vw,12px); letter-spacing:-.01em; font-weight:600; }
  .company-intro { text-align:center; font-size:11px; margin-bottom:22px; }
  .hero-image { max-height:none; aspect-ratio:16/9; }
  .hero h1 { font-size:clamp(37px,10.35vw,54px); }
  .hero .eyebrow { max-width:310px; text-wrap:balance; }
  .hero-person { gap:12px; }
  .hero-person strong { font-weight:500; }
  .hero-bottom { padding-block:17px 20px; }
}

/* Quiet closing layout. Language is intentionally offered only at the bottom. */
.site-footer { background:#f1f3ef; border-top:1px solid #dbe2df; }
.footer-main { display:grid; grid-template-columns:1fr .65fr 1.4fr; grid-template-areas:'brand links contact'; gap:54px; padding-block:60px 48px; }
.footer-brand { grid-area:brand; min-width:0; } .footer-brand img { width:138px; background:transparent; padding:0; }
.footer-brand p { margin-top:21px; color:var(--muted); font-size:13px; line-height:1.8; }
.footer-links { grid-area:links; } .footer-contact { grid-area:contact; min-width:0; }
.footer-main h2 { font-size:12px; font-weight:600; letter-spacing:.01em; margin:5px 0 19px; }
.footer-links nav { display:flex; flex-direction:column; align-items:start; gap:8px; }
.footer-links a { display:inline-block; padding-block:3px; font-size:14px; color:var(--muted); }
.footer-links a:hover,.footer-legal a:hover { color:var(--ink); text-decoration:underline; }
.footer-contact>p { font-size:15px; margin-bottom:8px; color:var(--muted); }
.footer-email { display:inline-flex; align-items:center; gap:12px; max-width:100%; padding-block:5px; font-size:clamp(17px,1.6vw,23px); letter-spacing:-.025em; border-bottom:1px solid #b4c3c6; }
.footer-email .icon { width:18px; height:18px; } .footer-email:hover { border-color:var(--ink); }
.footer-phone { display:block; width:fit-content; font-size:14px; margin-top:12px; }
.footer-utility { border-top:1px solid #cbd6d3; display:flex; align-items:center; justify-content:space-between; gap:18px 28px; padding-block:22px 13px; }
.footer-legal { display:flex; flex-wrap:wrap; align-items:center; gap:12px 30px; font-size:12px; color:var(--muted); }
.footer-credit { margin:0; display:flex; align-items:center; gap:7px; font-size:12px; color:var(--muted); }
.footer-credit a { display:inline-flex; align-items:center; gap:5px; padding-block:7px; color:var(--ink); font-weight:600; text-decoration:none; }
.footer-credit .icon { width:13px; height:13px; } .footer-credit a:hover { text-decoration:underline; }
.footer-language { display:flex; align-items:center; gap:22px; padding-block:0 27px; padding-right:60px; }
.language-label { color:var(--muted); font-size:12px; }
.language-switch { display:flex; align-items:center; gap:24px; }
.language-switch a { display:flex; align-items:center; min-height:44px; font-size:13px; color:var(--muted); position:relative; }
.language-switch a[aria-current=true] { color:var(--ink); font-weight:600; }
.language-switch a[aria-current=true]::after { content:''; position:absolute; bottom:7px; left:0; right:0; height:1px; background:currentColor; }
.language-switch a:hover { color:var(--navy); }
.expertise-photo { margin-top:34px; max-width:390px; } .editorial-image { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:18px; }
.expertise-context-image { margin-top:36px; max-width:340px; } .expertise-context-image .editorial-image { aspect-ratio:5/4; }
.image-credit-note { font-size:13px; line-height:1.8; }
@media(max-width:1130px) {
  .footer-main { grid-template-columns:1fr 1.4fr; grid-template-areas:'brand contact' 'links links'; gap:35px 50px; }
  .footer-links nav { flex-direction:row; flex-wrap:wrap; gap:14px 32px; }
  .footer-email { font-size:21px; } .footer-links h2 { margin-bottom:10px; }
}
@media(max-width:650px) {
  .footer-main { grid-template-columns:minmax(0,1fr); grid-template-areas:'brand' 'contact' 'links'; padding-block:38px 32px; gap:28px; }
  .footer-brand { display:flex; align-items:center; gap:25px; }
  .footer-brand>a { flex:0 0 112px; } .footer-brand img { width:112px; }
  .footer-brand p { margin:0; min-width:0; font-size:12px; line-height:1.65; }
  .footer-main h2 { margin-top:0; margin-bottom:12px; font-size:12px; }
  .footer-contact>p { font-size:14px; margin-bottom:4px; }
  .footer-email { font-size:clamp(17px,5.1vw,22px); gap:10px; } .footer-email .icon { width:16px; height:16px; }
  .footer-links nav { display:grid; grid-template-columns:1fr 1fr; column-gap:24px; row-gap:0; }
  .footer-links a { min-height:42px; display:flex; align-items:center; font-size:14px; }
  .footer-utility { flex-direction:column; align-items:flex-start; gap:10px; padding-top:22px; padding-bottom:10px; }
  .footer-legal { column-gap:18px; row-gap:10px; font-size:11px; }
  .footer-credit { font-size:12px; }
  .footer-language { gap:19px; padding-right:54px; padding-bottom:max(22px,env(safe-area-inset-bottom)); }
  .language-switch { gap:20px; } .language-switch a { font-size:13px; }
  .expertise-photo { margin-top:28px; max-width:none; } .editorial-image { aspect-ratio:16/10; border-radius:14px; }
  .expertise-context-image { margin-top:24px; max-width:none; } .expertise-context-image .editorial-image { aspect-ratio:16/9; }
}
@media(max-width:359px) { .footer-brand { gap:18px; } .footer-brand p { font-size:11px; } .footer-email { font-size:17px; gap:8px; } .footer-legal { flex-direction:column; align-items:flex-start; } }
@media print { .site-header,.mobile-menu,.site-footer,.back-to-top,.hero-actions,.hero-scroll,.contact-cta { display:none!important; } }

/* Inline contact delivery: reuse the site's palette, never show a fake success. */
.contact-security { margin:24px 0; padding-top:18px; border-top:1px solid var(--line); }
.contact-security>p:first-child { font-size:12px; margin:0 0 12px; color:var(--muted); }
#contact-captcha { min-height:78px; max-width:100%; }
.captcha-status { font-size:12px; color:var(--muted); margin-top:8px; }
.captcha-status:empty { display:none; }
.contact-security button,.contact-recovery button,[data-send-another] { background:transparent; color:var(--ink); border:0; border-bottom:1px solid var(--line); border-radius:0; padding:9px 0; font:inherit; font-size:13px; }
.contact-result { margin-top:22px; border:1px solid var(--line); border-radius:12px; padding:20px; font-size:15px; line-height:1.7; background:var(--pale-blue); color:var(--ink); }
.contact-result[data-state=error] { border-color:#b66e63; background:#fcf5f2; color:#6d332c; }
.contact-result[data-state=success] { border-color:#92b5a5; background:#eef5f0; color:#234b3b; }
.contact-result:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
.contact-recovery { margin-top:16px; font-size:13px; color:var(--muted); }
[data-send-another] { margin-top:12px; }
#contact-form[aria-busy=true] .form-submit { opacity:.8; cursor:wait; }
#contact-form[aria-busy=true] .form-submit .icon { animation:contact-pulse 1s ease-in-out infinite alternate; }
@keyframes contact-pulse { to { opacity:.35; } }
@media (prefers-reduced-motion:reduce) { #contact-form[aria-busy=true] .form-submit .icon { animation:none; } }
