/* Site-wide alternate palette. Light remains the first-visit default. */
/* Shared by menu links, CTAs, footer anchors and direct fragment navigation. */
html{scroll-padding-top:var(--anchor-offset,120px)}
.theme-toggle{order:4;flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;padding:10px;border:1px solid #b8c9bd;border-radius:50%;color:var(--ink);background:transparent;cursor:pointer;transition:background .2s,border-color .2s}
.theme-toggle[hidden]{display:none}.theme-toggle:hover{background:#e7ece3;border-color:#829e8d}.theme-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.theme-toggle svg{grid-area:1/1;width:21px;height:21px;transition:opacity .3s,transform .4s cubic-bezier(.2,.65,.3,1)}.theme-sun{opacity:0;transform:rotate(-60deg) scale(.6)}.theme-moon{opacity:1;transform:none}.language-short{display:none}
[data-theme="dark"]{--ink:#e5eee5;--paper:#122321;--deep:#0c1918;--rust:#e9af89;--muted:#b3c5bc;--line:#3c5148;color-scheme:dark}
[data-theme="dark"] .theme-sun{opacity:1;transform:none}[data-theme="dark"] .theme-moon{opacity:0;transform:rotate(60deg) scale(.6)}

[data-theme="dark"] .topline{background:#0d1f1c}
[data-theme="dark"] .hero{background:#0e2825;color:#e5eee5}
[data-theme="dark"] .intro-strip{background:#29372d}
[data-theme="dark"] .intro-strip h2>span{color:#c8d7c8}
[data-theme="dark"] .service-card{background:#1d302a;border-color:#354a40}
[data-theme="dark"] .service-card:hover{background:#263d33;box-shadow:0 20px 35px #0002}
[data-theme="dark"] .service-link,[data-theme="dark"] .process-grid li{border-color:var(--line)}
[data-theme="dark"] .local-section{background:#182c27}
[data-theme="dark"] .local-panel{background:#0e2320;color:#e5eee5}
[data-theme="dark"] .about-section{background:#1a2d29}
[data-theme="dark"] .contact{background:#2b382e}
[data-theme="dark"] .contact h2 span{color:var(--peach)}
[data-theme="dark"] .contact-copy>span{color:#c6d2c5}
[data-theme="dark"] .footer{color:#e5eee5}
[data-theme="dark"] .button-peach,[data-theme="dark"] .button-dark,[data-theme="dark"] .nav-cta{background:var(--peach);color:#143e3c}
[data-theme="dark"] .button-peach:hover,[data-theme="dark"] .button-dark:hover,[data-theme="dark"] .nav-cta:hover{background:#ffdbbd}
[data-theme="dark"] .button-outline:hover{background:var(--peach);border-color:var(--peach);color:#143e3c}
[data-theme="dark"] .photo-label,[data-theme="dark"] .skip{color:#143e3c}
[data-theme="dark"] ::selection{background:var(--peach);color:#143e3c}
[data-theme="dark"] .language-toggle,[data-theme="dark"] .theme-toggle{border-color:#536c5e}
[data-theme="dark"] .language-toggle:hover,[data-theme="dark"] .language-switch.is-open .language-toggle,[data-theme="dark"] .theme-toggle:hover{background:#263c32;border-color:#8ca292}
[data-theme="dark"] .language-options{background:#182e27;border-color:#465f50;box-shadow:0 14px 34px #0005}
[data-theme="dark"] .language-options a:hover,[data-theme="dark"] .language-options a:focus-visible{background:#2e4338}
[data-theme="dark"] .language-options a[aria-current]{background:#344d3d}
[data-theme="dark"] .language-code{color:#b9cbbc}
.theme-changing,.theme-changing :where(body,header,section,footer,article,.topline,.local-panel,.language-options,.language-options a,.language-toggle,.theme-toggle,.nav-cta,.button,.photo-label,.skip,h1,h2,h3,p,span,li,summary,a){transition:background-color .4s ease,color .4s ease,border-color .4s ease,box-shadow .4s ease!important}
@media(max-width:1180px){.theme-toggle{order:0}.header nav{order:5}}
@media(max-width:420px){.header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;gap:6px}.header nav{grid-column:1/-1}.header .brand>span{font-size:14px;max-width:66px;line-height:1.2}.header .brand img{width:28px;height:28px}.header .brand{gap:6px;min-width:0}.language-name{display:none}.language-short{display:inline}.language-toggle{padding-inline:9px}.theme-toggle{width:44px;height:44px}.header .language-switch{margin-left:0}.language-options{min-width:208px;right:-50px!important}.has-js .header nav.is-open{display:grid}}
@media(prefers-reduced-motion:reduce){.theme-toggle,.theme-toggle svg,.theme-changing,.theme-changing *{transition:none!important}}

@media(max-width:420px){.header .brand>span{max-width:none}}
/* The responsive navigation expands in normal flow without a display jump. */
.nav-shell,.nav-clip{display:contents}
@media(max-width:1180px){
 .has-js .header-inner{row-gap:0}
 .has-js .nav-shell{display:grid;grid-template-rows:0fr;width:100%;order:5;grid-column:1/-1;transition:grid-template-rows .38s cubic-bezier(.22,.68,.2,1)}
 .has-js .nav-shell.is-open{grid-template-rows:1fr}
 .has-js .nav-clip{display:block;min-height:0;overflow:hidden;visibility:hidden;transition:visibility 0s linear .38s}
 .has-js .nav-shell.is-open .nav-clip{visibility:visible;transition-delay:0s}
 .has-js .header .nav-shell #main-nav{display:flex;gap:12px;padding:16px 5px 5px;margin:0;opacity:0;transform:translateY(-8px);transition:opacity .25s ease,transform .38s cubic-bezier(.22,.68,.2,1)}
 .has-js .header .nav-shell.is-open #main-nav{opacity:1;transform:none}
 .menu-lines{border:0}
 .menu-lines:before,.menu-lines:after{content:'';position:absolute;left:0;width:17px;height:1px;background:var(--ink);transition:transform .3s ease,top .3s ease}
 .menu-lines:before{top:0}.menu-lines:after{top:11px}
 .menu-toggle[aria-expanded="true"] .menu-lines:before{top:5px;transform:rotate(45deg)}
 .menu-toggle[aria-expanded="true"] .menu-lines:after{top:5px;transform:rotate(-45deg)}
}
@media(max-width:620px){.has-js .header .nav-shell #main-nav{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}}
@media(prefers-reduced-motion:reduce){.has-js .nav-shell,.has-js .nav-clip,.has-js .header .nav-shell #main-nav,.menu-lines:before,.menu-lines:after{transition:none}}
.has-js .header .nav-shell a:focus-visible{outline-offset:2px}
/* Typographic gg. signature, shared by both languages and palettes. */
.header .brand .brand-monogram,.footer .brand .brand-monogram{display:block;flex-shrink:0;font-family:'Segoe UI',Arial,sans-serif;font-size:44px;font-weight:750;letter-spacing:-3.5px;line-height:1.15;max-width:none}
.brand-monogram>span{color:var(--rust)}.footer .brand-monogram>span{color:var(--peach)}
@media(max-width:1180px){.header .brand .brand-monogram{font-size:39px}}
@media(max-width:620px){.header .brand .brand-name{display:none}.header .brand .brand-monogram{font-size:38px;letter-spacing:-3px}.header .brand{gap:0}}

/* Keep the face comfortably framed in the two portrait sizes. */
.hero-person img,.about-identity>img{object-position:50% 20%}
/* A face-first crop keeps the small portrait readable at standard and high DPI. */
.hero-avatar{display:block;width:56px;height:56px;flex:0 0 56px;border-radius:50%;overflow:hidden;isolation:isolate;background:#dbe2df;box-shadow:0 0 0 1px #ffffff38}
.hero-person .hero-avatar img{display:block;width:100%;height:100%;max-width:none;border-radius:0;object-fit:cover;object-position:50% 0;transform:scale(1.6);transform-origin:36% 10%}
