/* Values, including media breakpoints, are generated from tokens.mjs at build time. */
:root{
  --paper: #F8F6F1;
  --surface: #FFFFFF;
  --surface-soft: #F0ECE3;
  --ink: #192A29;
  --muted: #52605C;
  --line: #D9D8CF;
  --accent: #806226;
  --accent-bright: #B38A43;
  --accent-soft: #ECE3CF;
  --dark: #172D2A;
  --dark-text: #FCFAF5;
  --dark-muted: #D4DDD6;
  --error: #A32720;
  --success: #296448;
  --focus: #176E8E;
  --overlay: rgba(15,31,27,.42);
  --font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --font-display: Georgia, "Times New Roman", serif;
  --weight-normal: 400;
  --weight-medium: 500;
  --weight-bold: 650;
  --text-xs: .75rem;
  --text-sm: .875rem;
  --text-base: 1rem;
  --text-md: 1.125rem;
  --text-lg: 1.25rem;
  --text-xl: 1.5rem;
  --text-2xl: 2rem;
  --text-3xl: 2.75rem;
  --hero-size: clamp(2.7rem,4.6vw,4.85rem);
  --heading-size: clamp(2rem,3.1vw,3.25rem);
  --line-body: 1.65;
  --line-heading: 1.06;
  --tracking-tight: -.043em;
  --tracking-label: .14em;
  --space-0: 0;
  --space-1: .25rem;
  --space-2: .5rem;
  --space-3: .75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-7: 1.75rem;
  --space-8: 2rem;
  --space-10: 2.5rem;
  --space-12: 3rem;
  --space-14: 3.5rem;
  --space-16: 4rem;
  --space-20: 5rem;
  --space-24: 6rem;
  --space-28: 7rem;
  --page-max: 80rem;
  --reading-max: 44rem;
  --gutter: clamp(1.25rem,4vw,4rem);
  --section-gap: clamp(3.5rem,7vw,7rem);
  --header-height: 5.75rem;
  --header-mobile: 4.5rem;
  --button-height: 3.25rem;
  --target: 2.75rem;
  --dock-height: 4.75rem;
  --sidebar: 15.5rem;
  --radius-sm: .3rem;
  --radius-md: .75rem;
  --radius-lg: 1.5rem;
  --radius-pill: 100rem;
  --border: 1px;
  --focus-width: 3px;
  --shadow: 0 18px 48px rgba(25,42,41,.10);
  --shadow-small: 0 5px 18px rgba(25,42,41,.08);
  --motion-fast: 160ms;
  --motion-medium: 260ms;
  --ease: cubic-bezier(.2,.8,.2,1);
  --z-header: 30;
  --z-dock: 35;
  --z-sos: 40;
  --z-modal: 90;
  --icon-size: 1.25rem;
  --logo-size: 3rem;
  --portrait-ratio: 4 / 5;
  --portrait-height: 35rem;
  --portrait-focus: 50% 35%;
  --body-min: 20rem;
  --form-max: 40rem;
  --field-height: 3rem;
  --card-min: 16rem;
  --chart-height: 13rem;
  --qr-size: 14rem;
  --hero-columns: 1.1fr .9fr;
  --hero-gap: clamp(2rem,5vw,5rem);
  --hero-pad: clamp(2rem,4vw,4rem);
  --letter-line: -.01em;
  --image-mono: #DDE1D7;
  --one: 1;
  --zero: 0;
  --bp-phone: 600px;
  --bp-tablet: 900px;
  --bp-navigation: 1120px;
  --bp-wide: 1500px;
}
*{box-sizing:border-box}html{font-size:100%;scroll-padding-top:calc(var(--header-height) + var(--space-6));color-scheme:light}body{margin:var(--zero);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--line-body);color:var(--ink);background:var(--paper);-webkit-text-size-adjust:100%;text-size-adjust:100%}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration-thickness:var(--border);text-underline-offset:var(--space-1)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}a,button,input,select,textarea,summary{touch-action:manipulation}button,a,summary{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:var(--focus-width) solid var(--focus);outline-offset:var(--space-1)}[hidden]{display:none!important}img{max-width:100%;height:auto;display:block}svg{display:block;flex-shrink:0}h1,h2,h3,p,ul,ol,figure{margin:var(--zero)}h1,h2{font-family:var(--font-display);font-weight:var(--weight-normal);letter-spacing:var(--tracking-tight);line-height:var(--line-heading)}h1{font-size:var(--hero-size)}h2{font-size:var(--heading-size)}h3{font-size:var(--text-lg);line-height:1.3;font-weight:var(--weight-bold)}p{overflow-wrap:anywhere}em{font-weight:var(--weight-normal)}input,select,textarea{width:100%;max-width:100%;padding:var(--space-3);border:var(--border) solid var(--line);border-radius:var(--radius-sm);background:var(--surface);font-size:max(1rem,var(--text-base));min-height:var(--field-height)}input[type=checkbox],input[type=radio]{width:var(--space-5);height:var(--space-5);min-height:0;flex:0 0 var(--space-5);accent-color:var(--accent)}input[type=range]{padding:var(--zero);accent-color:var(--accent);min-height:var(--target)}textarea{min-height:var(--space-24);resize:vertical}label{display:block;font-weight:var(--weight-medium)}label>input,label>textarea,label>select{margin-top:var(--space-2)}small,.small{font-size:var(--text-sm)}hr{border:0;border-top:var(--border) solid var(--line);margin:var(--space-8) 0}
/* Shared layout and editorial rhythm. */
.container{width:calc(100% - var(--gutter)*2);max-width:var(--page-max);margin-inline:auto}.narrow{max-width:var(--reading-max)}.section{padding-block:var(--section-gap)}.section-soft{background:var(--surface-soft)}.section-dark{background:var(--dark);color:var(--dark-text)}.section-dark p{color:var(--dark-muted)}.section-dark .eyebrow,.section-dark .accent{color:var(--accent-bright)}.section-dark .text-link{color:var(--dark-text)}.stack>*+*{margin-top:var(--space-6)}.stack-small>*+*{margin-top:var(--space-3)}.split{display:grid;grid-template-columns:1fr 1fr;gap:var(--hero-gap);align-items:start}.grid{display:grid;gap:var(--space-6)}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.eyebrow{display:block;font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent);margin-bottom:var(--space-5)}.lead{font-size:var(--text-md);color:var(--muted);max-width:var(--reading-max)}.muted{color:var(--muted)}.accent{color:var(--accent)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:var(--space-8);margin-bottom:var(--space-12)}.section-heading h2{white-space:pre-line}.section-heading .lead{max-width:var(--form-max)}.icon{width:var(--icon-size);height:var(--icon-size);stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.sr-only{position:absolute;width:var(--border);height:var(--border);padding:0;margin:calc(-1*var(--border));overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:fixed;left:var(--space-4);top:var(--space-4);z-index:100;background:var(--ink);color:var(--surface);padding:var(--space-3);transform:translateY(-200%)}.skip:focus{transform:translateY(0)}
/* One clear top navigation; native disclosure works without JavaScript. */
.site-header{position:sticky;top:0;z-index:var(--z-header);background:var(--paper);border-bottom:var(--border) solid var(--line)}.header-inner{display:flex;align-items:center;gap:var(--space-8);min-height:var(--header-height)}.brand-mark{width:var(--logo-size);height:var(--logo-size);border-radius:var(--radius-pill);object-fit:cover;object-position:50% 30%;border:var(--border) solid var(--accent);flex-shrink:0;background:var(--surface-soft)}
.brand{display:flex;gap:var(--space-3);align-items:center;text-decoration:none;flex-shrink:0}.monogram{display:grid;place-items:center;width:var(--logo-size);height:var(--logo-size);border:var(--border) solid var(--accent);color:var(--accent);font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:var(--tracking-tight)}.brand-name{font-size:var(--text-base);font-weight:var(--weight-bold);line-height:1.25;display:block}.brand-sub{font-size:var(--text-xs);color:var(--muted);display:block;margin-top:var(--space-1)}.desktop-nav{margin-left:auto;display:flex;align-items:center;gap:var(--space-6)}.desktop-nav>a{display:inline-flex;align-items:center;min-height:var(--target);text-decoration:none;font-size:var(--text-sm);white-space:nowrap;border-bottom:var(--border) solid transparent}.desktop-nav>a:hover,.desktop-nav>a[aria-current=page]{color:var(--accent);border-color:var(--accent)}.header-actions{display:flex;gap:var(--space-5);align-items:center;margin-left:auto}.languages{display:flex;gap:var(--space-1);align-items:center}.languages a{display:grid;place-items:center;min-width:var(--space-8);height:var(--target);font-size:var(--text-xs);text-decoration:none;color:var(--muted)}.languages a[aria-current]{color:var(--ink);font-weight:var(--weight-bold);text-decoration:underline;text-decoration-color:var(--accent)}.mobile-menu{display:none}.mobile-menu>summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--target);min-width:var(--target)}summary::-webkit-details-marker{display:none}.mobile-panel{position:absolute;inset-inline:0;top:100%;background:var(--paper);border-bottom:var(--border) solid var(--line);padding:var(--space-6) var(--gutter);max-height:calc(100dvh - var(--header-mobile));overflow:auto;box-shadow:var(--shadow)}.mobile-panel nav{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.mobile-panel a{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);min-height:var(--button-height);text-decoration:none;border-bottom:var(--border) solid var(--line)}.mobile-panel a[aria-current=page]{color:var(--accent);font-weight:var(--weight-bold)}.header-book{white-space:nowrap}.button,.text-link,.icon-button{min-height:var(--target);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);text-decoration:none;border:var(--border) solid transparent;background:transparent}.button{padding:var(--space-3) var(--space-6);min-height:var(--button-height);border-radius:var(--radius-sm);background:var(--ink);color:var(--surface);font-size:var(--text-sm);font-weight:var(--weight-medium);transition:background var(--motion-fast) var(--ease)}.button:hover{background:var(--accent)}.button-light{background:var(--surface);color:var(--ink);border-color:var(--line)}.button-light:hover{background:var(--surface-soft)}.button-gold{background:var(--accent);color:var(--surface)}.button-outline{border-color:currentColor;color:inherit;background:transparent}.text-link{justify-content:start;font-size:var(--text-sm);font-weight:var(--weight-bold);border-bottom-color:var(--line);padding-block:var(--space-2)}.text-link:hover{color:var(--accent);border-color:var(--accent)}.button-row{display:flex;gap:var(--space-5);align-items:center;flex-wrap:wrap}.icon-button{width:var(--target);border-color:var(--line);border-radius:var(--radius-sm);background:var(--surface)}.draft-bar{text-align:center;background:var(--surface-soft);font-size:var(--text-xs);padding:var(--space-2) var(--gutter);color:var(--muted)}
/* Hero: portrait is a real image, not background text baked into an illustration. */
.hero{padding-block:var(--hero-pad) var(--section-gap)}.hero-grid{display:grid;grid-template-columns:var(--hero-columns);gap:var(--hero-gap);align-items:center}.credential{font-size:var(--text-xs);font-weight:var(--weight-medium);display:inline-flex;align-items:center;gap:var(--space-2);color:var(--muted);margin-bottom:var(--space-6)}.credential .icon{color:var(--accent)}.hero h1 span{display:block}.hero h1 em{color:var(--accent)}.hero-text{margin-top:var(--space-6);max-width:var(--reading-max);font-size:var(--text-md);color:var(--muted)}.hero .button-row{margin-top:var(--space-8)}.hero-note{font-size:var(--text-xs);color:var(--muted);margin-top:var(--space-5)}.portrait{position:relative;max-width:100%;border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-soft)}.portrait img{width:100%;aspect-ratio:var(--portrait-ratio);object-fit:cover;object-position:var(--portrait-focus);max-height:var(--portrait-height)}.portrait figcaption{position:absolute;inset-inline:var(--space-5);bottom:var(--space-5);padding:var(--space-4) var(--space-5);background:var(--paper);color:var(--ink);display:flex;justify-content:space-between;gap:var(--space-4);align-items:center;border-left:var(--space-1) solid var(--accent)}.portrait figcaption strong{display:block;font-size:var(--text-base)}.portrait figcaption span{font-size:var(--text-xs);color:var(--muted)}.hero-pillars{display:flex;align-items:center;gap:var(--space-6);margin-top:var(--space-8);padding-top:var(--space-6);border-top:var(--border) solid var(--line);font-size:var(--text-xs);color:var(--muted)}.hero-pillars>span{display:flex;align-items:center;gap:var(--space-2)}.hero-pillars i{width:var(--space-1);height:var(--space-1);background:var(--accent);display:inline-block}.intro-strip{border-top:var(--border) solid var(--line);padding-block:var(--space-6);display:flex;align-items:center;justify-content:space-between;gap:var(--space-6)}.intro-strip p{font-size:var(--text-sm);color:var(--muted)}.intro-strip strong{color:var(--ink);font-weight:var(--weight-medium)}
/* Services use stable links and real text; no click-only cards. */
.service-card{border:var(--border) solid var(--line);padding:var(--space-8);background:var(--surface);display:flex;flex-direction:column;gap:var(--space-4);border-radius:var(--radius-sm);min-width:0}.service-top{display:flex;align-items:center;justify-content:space-between;color:var(--accent);margin-bottom:var(--space-3)}.service-top .icon{width:var(--space-8);height:var(--space-8)}.service-index{font-family:var(--font-display);color:var(--muted);font-size:var(--text-sm)}.service-card p{font-size:var(--text-sm);color:var(--muted)}.service-card .text-link{align-self:flex-start;margin-top:auto}.method-list{list-style:none;padding:0;counter-reset:steps}.method-list li{padding-block:var(--space-6);display:grid;grid-template-columns:var(--space-10) 1fr;gap:var(--space-4);border-bottom:var(--border) solid var(--muted)}.method-list li:first-child{padding-top:0}.method-number{font-family:var(--font-display);font-size:var(--text-xl);color:var(--accent-bright)}.method-list p{font-size:var(--text-sm);margin-top:var(--space-2)}.method-sticky{position:sticky;top:calc(var(--header-height) + var(--space-8))}.audience-list{display:grid;gap:var(--space-5);list-style:none;padding:0}.audience-list li{padding-bottom:var(--space-5);border-bottom:var(--border) solid var(--line);display:flex;gap:var(--space-4);align-items:center}.audience-list .icon{color:var(--accent)}.about-image{border-radius:var(--radius-sm);aspect-ratio:4/3;object-fit:cover;object-position:50% 33%;width:100%}.quote{font-family:var(--font-display);font-size:var(--text-2xl);line-height:1.3;letter-spacing:var(--tracking-tight);white-space:pre-line}.cta-panel{padding:var(--space-12);background:var(--surface-soft);border-left:var(--space-1) solid var(--accent)}.faq-item{border-bottom:var(--border) solid var(--line);padding:var(--space-5) 0}.faq-item summary{list-style:none;font-weight:var(--weight-medium);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:var(--target);cursor:pointer}.faq-item summary::after{content:'+';font-size:var(--text-xl);color:var(--accent)}.faq-item[open] summary::after{content:'\2212'}.faq-item p{margin-top:var(--space-4);color:var(--muted);font-size:var(--text-sm);max-width:var(--reading-max)}.faq-search{margin-bottom:var(--space-6)}.review{padding:var(--space-6);border:var(--border) solid var(--line);background:var(--surface)}.review p{margin-block:var(--space-4)}.stars{color:var(--accent);letter-spacing:var(--space-1)}.contact-links{display:grid;gap:var(--space-4)}.contact-links a{overflow-wrap:anywhere;display:flex;align-items:center;gap:var(--space-3);min-height:var(--target)}.contact-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:var(--hero-gap)}
/* Footer and service panel remain accessible without hovering. */
.site-footer{padding-block:var(--space-12) calc(var(--space-16) + env(safe-area-inset-bottom));background:var(--dark);color:var(--dark-text)}.footer-top{display:flex;gap:var(--space-10);align-items:start;justify-content:space-between;margin-bottom:var(--space-10)}.site-footer .brand-sub{color:var(--dark-muted)}.footer-links{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6)}.footer-links a{display:flex;align-items:center;min-height:var(--target);font-size:var(--text-xs);color:var(--dark-muted)}.footer-bottom{display:flex;justify-content:space-between;gap:var(--space-4);padding-top:var(--space-6);border-top:var(--border) solid var(--muted);font-size:var(--text-xs);color:var(--dark-muted)}.sos-button{position:fixed;right:var(--space-5);bottom:calc(var(--space-5) + env(safe-area-inset-bottom));z-index:var(--z-sos);display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);min-height:var(--target);background:var(--paper);color:var(--ink);border:var(--border) solid var(--accent);border-radius:var(--radius-pill);box-shadow:var(--shadow-small);font-weight:var(--weight-bold)}dialog{border:var(--border) solid var(--line);padding:0;max-width:min(var(--reading-max),calc(100% - var(--space-8)));max-height:calc(100dvh - var(--space-8));border-radius:var(--radius-md);background:var(--paper);color:var(--ink);box-shadow:var(--shadow);z-index:var(--z-modal)}dialog::backdrop{background:var(--overlay)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-5) var(--space-6);position:sticky;top:0;background:var(--paper);border-bottom:var(--border) solid var(--line);z-index:1}.dialog-head h2{font-family:var(--font-body);font-size:var(--text-lg);letter-spacing:normal}.dialog-body{padding:var(--space-6)}.sos-card{padding-block:var(--space-5);border-bottom:var(--border) solid var(--line)}.sos-card p{font-size:var(--text-sm);margin-top:var(--space-3)}.sos-card a{font-size:var(--text-md);min-height:var(--target);display:inline-flex;align-items:center;margin-right:var(--space-4)}.sos-card small{display:block;color:var(--muted)}.emergency{background:var(--surface-soft);padding:var(--space-5);margin-bottom:var(--space-5)}.mobile-dock{display:none}.breadcrumb{display:flex;gap:var(--space-3);align-items:center;padding-block:var(--space-5);font-size:var(--text-xs);color:var(--muted)}.breadcrumb a{min-height:var(--target);display:inline-flex;align-items:center}.page-intro{padding-block:var(--space-10) var(--space-12)}.page-intro h1{font-size:var(--heading-size);max-width:var(--reading-max)}.page-intro p{margin-top:var(--space-5)}
/* Calculators: number inputs remain 16px on iOS to avoid automatic zoom. */
.tool-card{display:block;padding:var(--space-6);border:var(--border) solid var(--line);border-radius:var(--radius-sm);background:var(--surface);text-decoration:none;min-width:0}.tool-card .icon{color:var(--accent);margin-bottom:var(--space-5)}.tool-card p{font-size:var(--text-sm);color:var(--muted);margin-top:var(--space-3)}.tool-card:hover{border-color:var(--accent)}.tool-controls{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);margin-bottom:var(--space-8)}.tool-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);align-items:start}.tool-inputs{background:var(--surface);padding:var(--space-8);border:var(--border) solid var(--line);border-radius:var(--radius-sm)}.field{margin-bottom:var(--space-5)}.field-line{display:flex;gap:var(--space-4);align-items:center;justify-content:space-between}.field-hint{color:var(--muted);font-size:var(--text-xs)}.tool-output{background:var(--dark);color:var(--dark-text);padding:var(--space-8);border-radius:var(--radius-sm)}.tool-output .muted{color:var(--dark-muted)}.result-main{font-family:var(--font-display);font-size:var(--text-3xl);line-height:1.15;margin-top:var(--space-3);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.result-row{display:flex;justify-content:space-between;gap:var(--space-6);border-top:var(--border) solid var(--muted);padding-block:var(--space-4);font-size:var(--text-sm)}.result-row strong{font-variant-numeric:tabular-nums;white-space:nowrap}.chart{width:100%;height:var(--chart-height);margin-block:var(--space-5)}.chart-line{fill:none;stroke:var(--accent-bright);stroke-width:3}.chart-baseline{stroke:var(--muted);stroke-width:1}.chart-fill{fill:var(--accent-bright);opacity:.12}.comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);margin-top:var(--space-8)}.formula{margin-block:var(--space-6);font-size:var(--text-sm)}.table-wrap{overflow:auto;max-width:100%}table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}th,td{padding:var(--space-3);text-align:left;border-bottom:var(--border) solid var(--line)}th{font-weight:var(--weight-bold)}.error{color:var(--error);font-size:var(--text-sm)}.notice{border-left:var(--space-1) solid var(--accent);background:var(--surface-soft);padding:var(--space-5);font-size:var(--text-sm)}.error:empty,.notice:empty{display:none}.success{color:var(--success)}.legal-copy p{margin-bottom:var(--space-5)}
/* Booking and private forms. */
.booking-layout{display:grid;grid-template-columns:1fr var(--sidebar);gap:var(--space-10);align-items:start}.booking-panel{background:var(--surface);padding:var(--space-8);border:var(--border) solid var(--line);border-radius:var(--radius-sm)}.steps{display:flex;gap:var(--space-2);list-style:none;padding:0;margin-bottom:var(--space-8);counter-reset:step}.steps li{flex:1;font-size:var(--text-xs);color:var(--muted);border-top:var(--space-1) solid var(--line);padding-top:var(--space-3)}.steps li[aria-current=step]{color:var(--ink);border-color:var(--accent);font-weight:var(--weight-bold)}.choice-list{display:grid;gap:var(--space-3)}.choice{display:flex;gap:var(--space-4);align-items:center;border:var(--border) solid var(--line);padding:var(--space-5);border-radius:var(--radius-sm);min-height:var(--target);cursor:pointer}.choice:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.check{display:flex;gap:var(--space-3);align-items:flex-start;font-size:var(--text-sm);font-weight:normal}.check input{margin-top:var(--space-1)}.slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(6rem,1fr));gap:var(--space-3);margin-block:var(--space-5)}.slot{padding:var(--space-3);border:var(--border) solid var(--line);background:var(--surface);border-radius:var(--radius-sm);min-height:var(--target);font-variant-numeric:tabular-nums}.slot[aria-pressed=true]{background:var(--ink);color:var(--surface)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}.form-grid>.full{grid-column:1/-1}.booking-aside{position:sticky;top:calc(var(--header-height) + var(--space-8));font-size:var(--text-sm)}.avatar{width:var(--space-20);height:var(--space-20);border-radius:var(--radius-pill);object-fit:cover}.booking-aside h2{font-family:var(--font-body);font-size:var(--text-md);letter-spacing:normal;margin-block:var(--space-4) var(--space-2)}.summary-list{display:grid;grid-template-columns:auto 1fr;gap:var(--space-3) var(--space-6);font-size:var(--text-sm);margin:var(--space-6) 0}.summary-list dt{color:var(--muted)}.summary-list dd{margin:0;overflow-wrap:anywhere}.card-page{max-width:var(--form-max);margin-inline:auto;text-align:center;background:var(--surface);padding:var(--space-10);border:var(--border) solid var(--line);border-radius:var(--radius-md)}.card-page .avatar{margin-inline:auto;width:var(--space-24);height:var(--space-24)}.card-page .button-row{justify-content:center}.qr-preview{width:var(--qr-size);height:var(--qr-size);margin:var(--space-6) auto;background:var(--surface)}.card-page h1{font-size:var(--heading-size)}
/* Administration reuses the same language and input system, without a permanent client account. */
.admin-shell{display:grid;grid-template-columns:var(--sidebar) 1fr;min-height:75vh;gap:var(--space-8);padding-block:var(--space-8)}.admin-sidebar{position:sticky;top:calc(var(--header-height) + var(--space-5));align-self:start;max-height:calc(100dvh - var(--header-height) - var(--space-10));overflow:auto}.admin-sidebar nav{display:grid;gap:var(--space-1)}.admin-sidebar button{display:flex;text-align:left;align-items:center;min-height:var(--target);padding:var(--space-3) var(--space-4);border:0;background:transparent;border-radius:var(--radius-sm);font-size:var(--text-sm)}.admin-sidebar button[aria-current=page]{background:var(--ink);color:var(--surface)}.admin-main{min-width:0}.admin-main h1{font-size:var(--heading-size);margin-bottom:var(--space-8)}.admin-card{padding:var(--space-6);margin-bottom:var(--space-6);border:var(--border) solid var(--line);background:var(--surface);border-radius:var(--radius-sm)}.admin-card h2{font-family:var(--font-body);font-size:var(--text-lg);letter-spacing:normal;line-height:1.4;margin-bottom:var(--space-5)}.admin-actions{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-block:var(--space-4)}.admin-save{position:sticky;bottom:var(--space-3);background:var(--paper);border:var(--border) solid var(--line);padding:var(--space-4);display:flex;align-items:center;gap:var(--space-4);z-index:2;box-shadow:var(--shadow-small)}.admin-item{padding:var(--space-5);border:var(--border) solid var(--line);margin-block:var(--space-4);border-radius:var(--radius-sm)}.admin-tabs-mobile{display:none}.pill{display:inline-flex;align-items:center;min-height:var(--space-6);padding:var(--space-1) var(--space-3);background:var(--surface-soft);border-radius:var(--radius-pill);font-size:var(--text-xs);white-space:nowrap}.pill-success{background:var(--success);color:var(--surface)}.status-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.status-card{padding:var(--space-5);border:var(--border) solid var(--line);border-radius:var(--radius-sm)}.status-card strong{display:block;font-size:var(--text-md)}.status-card p{font-size:var(--text-sm);color:var(--muted);margin-top:var(--space-3)}.availability-row{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:var(--space-3);margin-block:var(--space-3)}.preview-box{border:var(--border) dashed var(--accent);padding:var(--space-6);margin-block:var(--space-5)}.admin-warn{background:var(--accent-soft);padding:var(--space-4);font-size:var(--text-sm);margin-bottom:var(--space-6)}.admin-summary{display:flex;gap:var(--space-3);align-items:center;margin-bottom:var(--space-5)}.admin-summary select{min-width:0}.admin-actions .button{min-height:var(--target)}
/* Breakpoints have a single source in tokens.mjs; no duplicated magic values. */
@media(max-width:1120px){.desktop-nav{display:none}.mobile-menu{display:block}.header-inner{gap:var(--space-4)}.header-actions{margin-left:auto}.hero-grid{grid-template-columns:1fr 1fr}.hero h1{font-size:clamp(2.6rem,4.8vw,4rem)}.hero-pillars{gap:var(--space-4)}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-shell{grid-template-columns:13rem 1fr}.header-actions .button{padding-inline:var(--space-4)}}
@media(max-width:900px){.split,.tool-layout{grid-template-columns:1fr}.method-sticky{position:static}.hero-grid{gap:var(--space-8)}.hero-text{font-size:var(--text-base)}.hero-pillars{flex-wrap:wrap}.section-heading{align-items:start;flex-direction:column;gap:var(--space-5)}.booking-layout{grid-template-columns:1fr}.booking-aside{position:static;display:flex;align-items:center;gap:var(--space-5);grid-row:1}.booking-aside h2{margin:0}.booking-aside p{font-size:var(--text-xs)}.booking-aside .avatar{width:var(--space-16);height:var(--space-16)}.admin-shell{display:block}.admin-sidebar{position:static;max-height:none;margin-bottom:var(--space-6)}.admin-sidebar nav{display:none}.admin-tabs-mobile{display:block}.admin-save{bottom:var(--space-3)}.contact-grid{grid-template-columns:1fr}.about-image{max-height:var(--portrait-height)}}
@media(max-width:600px){html{scroll-padding-top:calc(var(--header-mobile) + var(--space-4))}.header-inner{min-height:var(--header-mobile)}.brand-sub{display:none}.brand-name{font-size:var(--text-sm)}.monogram{width:var(--space-10);height:var(--space-10)}.header-actions{gap:var(--space-2)}.header-book{display:none}.languages a{min-width:var(--space-7)}.mobile-menu>summary .menu-word{display:none}.hero{padding-top:var(--space-8)}.hero-grid{grid-template-columns:1fr;gap:var(--space-10)}.hero h1{font-size:clamp(2.7rem,9.9vw,3.7rem)}.hero-text{margin-top:var(--space-5)}.hero .button-row{gap:var(--space-4);margin-top:var(--space-6)}.hero .button{width:100%}.hero .text-link{margin-inline:auto}.hero-note{text-align:center}.hero-pillars{justify-content:space-between;gap:var(--space-2)}.credential{margin-bottom:var(--space-5)}.portrait img{aspect-ratio:var(--portrait-ratio)}.portrait figcaption{inset-inline:var(--space-4);bottom:var(--space-4)}.intro-strip{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.grid-3,.grid-2,.form-grid,.comparison-grid,.tool-controls{grid-template-columns:1fr}.service-card{padding:var(--space-6)}.cta-panel{padding:var(--space-6)}.footer-top{display:block}.footer-top .brand{margin-bottom:var(--space-6)}.footer-bottom{flex-direction:column}.site-footer{padding-bottom:calc(var(--dock-height) + var(--space-12) + env(safe-area-inset-bottom))}.sos-button{bottom:calc(var(--dock-height) + var(--space-3) + env(safe-area-inset-bottom));right:var(--space-4);padding-inline:var(--space-4)}.mobile-dock{display:flex;position:fixed;bottom:0;inset-inline:0;z-index:var(--z-dock);background:var(--paper);border-top:var(--border) solid var(--line);padding:var(--space-3) var(--gutter) calc(var(--space-3) + env(safe-area-inset-bottom));gap:var(--space-4);align-items:center;min-height:var(--dock-height)}.mobile-dock .button{flex:1;min-height:var(--target)}.mobile-dock .text-link{font-size:var(--text-xs);gap:var(--space-2)}body[data-page=book] .mobile-dock,body[data-page=admin] .mobile-dock,body[data-page=manage] .mobile-dock,body[data-page=prep] .mobile-dock{display:none}body[data-page=book] .sos-button,body[data-page=admin] .sos-button,body[data-page=manage] .sos-button,body[data-page=prep] .sos-button{bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}.tool-inputs,.tool-output,.booking-panel{padding:var(--space-5)}.card-page{padding:var(--space-6)}.result-main{font-size:var(--text-2xl)}.status-grid{grid-template-columns:1fr}.admin-save{margin-right:var(--space-16);flex-wrap:wrap}.steps li{font-size:var(--text-xs);overflow-wrap:anywhere}.mobile-panel nav{grid-template-columns:1fr 1fr}.mobile-panel a{font-size:var(--text-sm);padding-inline:var(--space-2)}.page-intro{padding-top:var(--space-6)}.hero .eyebrow{font-size:var(--text-xs)}.button-row>.button{max-width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(forced-colors:active){.button,.service-card,.sos-button,.slot{border:var(--border) solid ButtonText}.chart-line{stroke:CanvasText}}
@media print{.site-header,.site-footer,.mobile-dock,.sos-button,dialog,.breadcrumb,.button-row,.admin-sidebar,.draft-bar{display:none!important}body{background:white;color:black;font-size:11pt}.container{width:100%;max-width:none}.section{padding-block:1rem}.tool-layout,.split{display:block}.tool-output{background:white;color:black;border:1px solid black}.tool-output .muted{color:black}.chart-line{stroke:black}.portrait{max-width:18rem}.service-card,.tool-card{break-inside:avoid}a{text-decoration:none}.card-page{border:0}.qr-preview{width:12rem;height:12rem}.section-dark{background:white;color:black}.section-dark p{color:black}}

/* Cycle 1: a face and identity remain visible on the first small-screen view. */
.mobile-introduction{display:none}
@media(max-width:600px){.mobile-introduction{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6)}.mobile-introduction .avatar{width:var(--space-14);height:var(--space-14)}.mobile-introduction strong{display:block;font-size:var(--text-sm)}.mobile-introduction small{display:block;color:var(--muted);font-size:var(--text-xs)}.hero .credential{display:none}.hero .eyebrow{margin-bottom:var(--space-5)}}
/* Cycle 1: intrinsic SVG sizes and text magnification must not widen the page. */
.qr-preview svg{width:100%;height:100%}.card-page fieldset{min-width:0}.hero-grid>*,.split>*,.grid>*,.tool-layout>*,.form-grid>*,.contact-grid>*{min-width:0}h1,h2,h3{overflow-wrap:anywhere}.button{min-width:0;white-space:normal;overflow-wrap:anywhere}.brand>span:last-child{min-width:0}.brand-name{overflow-wrap:anywhere}.mobile-introduction>div{min-width:0}.mobile-introduction .avatar{flex-shrink:0}.mobile-introduction small{overflow-wrap:anywhere}
@media(max-width:600px){.header-inner{flex-wrap:wrap;row-gap:0;padding-block:var(--space-2)}.header-inner .brand{min-width:0;max-width:100%;flex-shrink:1}.header-actions{max-width:100%;flex-wrap:wrap}.hero-pillars{flex-wrap:wrap}.mobile-dock .text-link{display:none}.mobile-dock .button{width:100%}.mobile-panel{width:100%}.mobile-panel nav{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-panel a{overflow-wrap:anywhere}.portrait figcaption{flex-wrap:wrap}.card-page{padding-inline:var(--space-4)}.qr-preview{max-width:100%;height:auto;aspect-ratio:1}}

/* Current HTML preview shares the public renderer; width is explicit and internally scrollable. */
.admin-preview-dialog{width:calc(100% - var(--space-8));max-width:var(--page-max)}.admin-preview-dialog .dialog-head select{width:auto}.preview-scroll{overflow:auto;max-width:100%}.preview-scroll iframe{display:block;border:0;height:75dvh;max-width:none;margin-inline:auto}
/* Cycle 5: graceful fallbacks for Safari versions without dynamic viewport/color-mix. */
@supports not (color:color-mix(in srgb,white,black)){.site-header{background:var(--paper)}.inverse .muted{color:var(--paper)}.eyebrow{color:var(--accent)}}
@supports not (height:100dvh){dialog{max-height:90vh}.preview-scroll iframe{height:75vh}.mobile-panel{max-height:80vh}}
