/* 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)/1.5 var(--font-label);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);margin:auto;padding:45px var(--public-inset) 28px;color:var(--muted);font-size:12px;line-height:var(--line-height-body)}
.footer-grid{display:grid;grid-template-columns:1.5fr 1.1fr .9fr 1fr;gap:var(--card-gap);align-items:start}
.footer-brand{display:flex;align-items:center;gap:28px}
.footer-brand .brand-caption{margin:0;font-size:8px;letter-spacing:1.5px}
.footer-contacts,.footer-socials{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.footer-socials{font:300 9px var(--narrow);text-transform:uppercase;letter-spacing:1px}
.footer-grid .portal-entry{margin-top:12px;font-size:10px}
.footer-grid .brand{color:var(--ink)}
.footer-grid .caption{display:block;color:var(--accent);margin-bottom:12px}
.footer-grid a{display:block;width:fit-content}
.footer-grid a svg{width:16px;height:16px;vertical-align:middle}
.footer-grid p{margin:0}
.footer-bottom{display:flex;justify-content:space-between;gap:var(--card-gap);margin-top:30px;border-top:1px solid var(--line);padding-top:24px;font-size: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}.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:12px;flex:none}
.shared-public-header .header-account-tools .languages{margin-left:20px;gap:12px}
.shared-public-header .account-link{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:7px;flex:none;color:var(--ink);border-radius:50%}
.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;gap:12px}}
@media(max-width:700px){.shared-public-header .header-account-tools{margin-right:8px;gap:0}}

.brand-image{display:block;width:125px;height:auto;max-height:42px;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;font-family:var(--body)}
.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(--narrow);letter-spacing:2px;color:var(--muted);margin:0 0 22px}.account-eyebrow span{width:44px;height:1px;background:var(--accent)}
.account-dialog h2{font:400 36px/1.15 var(--body);letter-spacing:-1.5px;margin:0 0 18px;white-space:nowrap}
.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(--body);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(--body);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}
@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}}
