/* Shared component geometry; route-specific illustrations stay in page CSS. */
.shared-public-header{height:var(--header-height);max-width:var(--container-width);margin:auto}
.hero-copy .hero-description{max-width:500px;white-space:pre-line}
.page-title,.page-hero .page-title{font-family:var(--font-primary);font-size:var(--font-size-display);font-weight:300;line-height:var(--line-height-display);letter-spacing:-1.8px}
.section-title{font:300 var(--font-size-heading)/var(--line-height-heading) var(--font-primary)}
.card-title{font:400 var(--font-size-subheading)/var(--line-height-heading) var(--font-primary)}
.body{font:400 var(--font-size-body)/var(--line-height-body) var(--font-primary)}
.caption{font:300 var(--font-size-small,11px)/1.5 var(--font-label,Oswald,sans-serif);letter-spacing:1.8px;text-transform:uppercase}
.page-container{max-width:var(--container-width);margin-inline:auto;padding-inline:var(--page-padding-x)}
.shared-public-footer{max-width:var(--container-width,1920px);margin:auto;padding:45px var(--public-inset,clamp(24px,3.9vw,75px)) 28px;color:var(--muted,#777772);font-family:var(--font-primary,Raleway,sans-serif);font-size:12px;line-height:var(--line-height-body,1.65);font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1;background:var(--paper,#f7f6f4);transition:background .2s,color .2s}
.shared-public-footer :is(.footer-contacts,.footer-contacts a,[data-footer-address],.footer-bottom,.footer-bottom span,.footer-bottom .caption,.public-num){font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1}
.shared-public-footer.theme-dark{background:var(--color-background-dark,#1b2023);color:#94a3b8}
.shared-public-footer.theme-dark .footer-grid .brand{color:#f8fafc}
.shared-public-footer.theme-dark .footer-brand .brand-caption{color:#94a3b8}
.shared-public-footer.theme-dark .footer-grid .caption{color:var(--accent,#9c7e68)}
.shared-public-footer.theme-dark .footer-grid a{color:#e2e8f0}
.shared-public-footer.theme-dark .footer-grid a:hover{color:#fff}
.shared-public-footer.theme-dark .footer-grid p{color:#94a3b8}
.shared-public-footer.theme-dark .footer-bottom{border-top-color:rgba(255,255,255,.12);color:#94a3b8}
.shared-public-footer.theme-dark .footer-bottom .caption{color:#94a3b8}
.shared-public-footer.theme-dark .footer-quote blockquote{color:#e2e8f0}
.footer-grid{display:grid;grid-template-columns:1.5fr 1.1fr .9fr 1fr;gap:var(--card-gap,20px);align-items:start}
.footer-brand{display:flex;align-items:center;gap:28px}
.footer-brand .brand-caption{font:300 8px/15px var(--narrow,Oswald,sans-serif);letter-spacing:1.5px;color:var(--muted,#777671);margin:0}
.footer-contacts,.footer-socials{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.footer-contacts span{opacity:.6}
.footer-socials{font:300 9px var(--narrow,Oswald,sans-serif);text-transform:uppercase;letter-spacing:1px}
.footer-grid .portal-entry{margin-top:12px;font-size:10px;display:inline-flex;align-items:center;gap:6px;color:var(--muted,#777772);text-decoration:none;font-family:var(--font-primary,Raleway,sans-serif);transition:color .15s}
.footer-grid .portal-entry:hover{color:var(--ink,#181818)}
.footer-grid .brand{color:var(--ink,#181818);display:block}
.footer-grid .caption{display:block;color:var(--accent,#9c7e68);margin-bottom:12px;font:300 var(--font-size-small,11px)/1.5 var(--font-label,Oswald,sans-serif);letter-spacing:1.8px;text-transform:uppercase}
.footer-grid a{display:block;width:fit-content;color:var(--muted,#777772);text-decoration:none;transition:color .15s}
.footer-grid a:hover{color:var(--ink,#181818)}
.footer-grid a svg{width:16px;height:16px;vertical-align:middle}
.footer-grid p{margin:0;font-size:12px;line-height:var(--line-height-body,1.65);color:var(--muted,#777772)}
.footer-quote{grid-column:1/-1;padding:18px 0;margin-top:12px;border-top:1px dashed var(--line,#dedbd6);font-style:italic}
.footer-quote blockquote{margin:0;font-size:13px;color:var(--ink,#181818)}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:var(--card-gap,20px);margin-top:30px;border-top:1px solid var(--line,#dedbd6);padding-top:24px;font-size:10px;font-family:var(--font-primary,Raleway,sans-serif);color:var(--muted,#777772)}
.footer-bottom .caption{color:var(--muted,#777772);font:300 var(--font-size-small,11px)/1.5 var(--font-label,Oswald,sans-serif);letter-spacing:1.8px;text-transform:uppercase;margin:0}
.shared-public-footer.without-divider .footer-bottom{border-top:0;padding-top:10px}
.shared-public-header .menu-toggle{flex:none}
@media(max-width:900px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.footer-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column;gap:12px}.shared-public-header{padding-inline:var(--page-padding-x)}}
@media(max-width:700px){.hero-copy .hero-description{white-space:normal}}

/* Account access stays next to languages on every public header. */
.shared-public-header .header-account-tools{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex:none}
.shared-public-header .header-account-tools .languages{margin-left:20px;margin-right:6px;gap:12px}
.shared-public-header .theme-toggle,.shared-public-header .account-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:7px;flex:none;color:var(--ink);border-radius:50%;transition:color .18s ease,background-color .18s ease}
.shared-public-header .theme-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.shared-public-header .account-link svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.shared-public-header .theme-toggle:hover,.shared-public-header .account-link:hover{color:var(--accent)}
.shared-public-header .theme-toggle:focus-visible,.shared-public-header .account-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.shared-public-header .account-link svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.shared-public-header .account-link:hover{color:var(--accent)}
@media(min-width:1301px){.shared-public-header .header-account-tools{grid-column:7}.shared-public-header .header-account-tools .languages{margin:0 6px 0 0;gap:12px}}
@media(max-width:700px){.shared-public-header .header-account-tools{margin-right:6px;gap:2px}.shared-public-header .theme-toggle,.shared-public-header .account-link{width:38px;height:38px;padding:6px}.shared-public-header .theme-toggle svg{width:20px;height:20px}.shared-public-header .account-link svg{width:25px;height:25px}}

.brand-image{display:block;width:125px;height:auto;max-height:42px;aspect-ratio:220/40;object-fit:contain}
.account-modal-open{overflow:hidden}
.account-dialog{box-sizing:border-box;width:min(510px,calc(100vw - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:48px 48px 42px;border:1px solid #e2dfdc;border-radius:6px;background:var(--paper);color:var(--ink);overflow:auto;box-shadow:0 24px 90px #0003;--body:var(--cms-font-sans);--narrow:var(--cms-font-sans);font-family:var(--cms-font-sans);font-synthesis:none}
.account-dialog::backdrop{background:rgba(0,0,0,.62)}
.account-dialog .account-close{position:absolute;right:20px;top:20px;width:32px;height:32px;padding:5px;border:0;background:transparent;cursor:pointer;color:var(--ink)}
.account-dialog svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}
.account-eyebrow{display:flex;align-items:center;gap:24px;font:300 10px var(--cms-font-sans);letter-spacing:2px;color:var(--muted);margin:0 0 22px}.account-eyebrow span{width:44px;height:1px;background:var(--accent)}
.account-dialog h2,.account-head h2{font:400 36px/1.15 var(--cms-font-sans);letter-spacing:-1.5px;margin:0 0 18px;white-space:nowrap;font-synthesis:none}
.account-intro{font-size:14px;line-height:1.65;color:var(--muted);margin:0 0 28px}
.account-dialog form>label{display:block;font-size:13px;font-weight:500;margin:18px 0 7px}
.account-field{display:flex;align-items:center;gap:14px;border:1px solid #d0d0d0;border-radius:5px;padding:0 16px;height:50px;background:#ffffff50}
.account-field:focus-within{outline:2px solid var(--accent);outline-offset:2px}.account-field input{width:100%;min-width:0;border:0;background:transparent;outline:0;font:400 14px var(--cms-font-sans);color:var(--ink);height:100%}
.account-field input::placeholder{color:#999}.account-eye{display:flex;padding:5px;border:0;background:transparent;cursor:pointer;color:var(--ink)}
.account-options{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:20px 0 24px;font-size:12px}.account-options label{display:flex;align-items:center;gap:10px}.account-options input{width:20px;height:20px;accent-color:var(--accent);margin:0}.account-help{color:var(--accent);background:none;border:0;text-decoration:underline;padding:0;font:inherit;cursor:pointer}
.account-message{font-size:12px;line-height:1.5;color:#9a5135;margin:0}.account-message:not(:empty){margin-bottom:14px}
.account-submit,.account-access{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;height:50px;border-radius:4px;font:500 14px var(--cms-font-sans);text-decoration:none;cursor:pointer}.account-submit{border:1px solid #161616;background:#111;color:#fff}.account-submit:disabled{opacity:.6;cursor:wait}.account-access{border:1px solid var(--accent);background:transparent;color:var(--ink);margin-top:10px}
.standalone-login .login-panel,.access-page .login-panel,.account-dialog{--body:var(--cms-font-sans);--narrow:var(--cms-font-sans);font-family:var(--cms-font-sans);font-synthesis:none}
.standalone-login .login-panel h1,.access-page .login-panel h1,.account-dialog :is(button,input,select,textarea),.standalone-login .login-panel :is(button,input,select,textarea),.access-page .login-panel :is(button,input,select,textarea){font-family:var(--cms-font-sans);font-synthesis:none}
@media(max-width:550px){.account-dialog{padding:44px 24px 28px}.account-dialog h2{font-size:clamp(25px,7vw,34px)}.account-intro br{display:none}.account-options{font-size:11px}.account-eyebrow{gap:16px}}
html[data-theme="dark"] .shared-public-footer{background:#0f100f;color:var(--muted);border-top:1px solid var(--line)}
html[data-theme="dark"] .shared-public-footer .footer-grid .brand{color:var(--ink)}
html[data-theme="dark"] .shared-public-footer .footer-brand .brand-caption{color:var(--muted)}
html[data-theme="dark"] .shared-public-footer .footer-grid a{color:#d5d2ca}
html[data-theme="dark"] .shared-public-footer .footer-grid a:hover{color:var(--accent)}
html[data-theme="dark"] .shared-public-footer .footer-grid p{color:var(--muted)}
html[data-theme="dark"] .shared-public-footer .footer-bottom{border-top-color:var(--line);color:var(--muted)}
html[data-theme="dark"] .shared-public-footer .footer-bottom .caption{color:var(--muted)}
html[data-theme="dark"] .shared-public-footer .footer-quote blockquote{color:var(--ink)}
html[data-theme="dark"] .account-dialog{background:var(--color-surface);border-color:var(--line);color:var(--ink);box-shadow:0 28px 90px rgba(0,0,0,.7)}
html[data-theme="dark"] .account-field{background:#141413;border-color:var(--line)}
html[data-theme="dark"] .account-field input{color:var(--ink)}
html[data-theme="dark"] .account-field input::placeholder{color:var(--muted)}
html[data-theme="dark"] .account-submit{background:var(--accent);border-color:var(--accent);color:#121211}
html[data-theme="dark"] .account-access{border-color:var(--line);color:var(--ink)}
