/* Components consume tokens; content has no block-number CSS overrides. */
*{box-sizing:border-box}html{font-size:100%;min-width:var(--viewport-min);scroll-behavior:smooth;scroll-padding-top:100px;scrollbar-color:var(--color-scrollbar) var(--color-fog)}body{margin:0;background:var(--color-surface);color:var(--color-ink);font:var(--weight-regular) var(--type-body)/var(--leading-body) var(--font-family);font-synthesis:none}::selection{background:var(--color-blue);color:var(--color-surface)}a{color:var(--link);text-underline-offset:.22em}button,input,select,textarea{font:inherit}button,a,input,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed}img,video{max-width:100%;display:block}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;flex:none}p,h1,h2,h3,h4,figure,dl{margin:0}h1,h2,h3{text-wrap:balance;font-weight:var(--weight-medium)}h1,.type-display{font-size:var(--type-display);line-height:var(--leading-display);letter-spacing:var(--tracking-display)}h2,.type-section{font-size:var(--type-section);line-height:var(--leading-section);letter-spacing:var(--tracking-section)}h3,.type-card{font-size:var(--type-card);line-height:var(--leading-card);letter-spacing:var(--tracking-card)}h4{font-size:var(--type-body);font-weight:var(--weight-medium)}[hidden]{display:none!important}:focus-visible{outline:var(--focus-width) solid var(--link);outline-offset:4px}input{caret-color:var(--color-blue)}strong,b{font-weight:var(--weight-semibold)}.shell{width:min(100% - var(--gutter)*2,var(--content-max));margin-inline:auto}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;z-index:100;left:16px;top:-80px;padding:12px 20px;background:var(--color-surface)}.skip-link:focus{top:12px}.supporting{font-size:var(--type-supporting);line-height:var(--leading-supporting);color:var(--muted)}.ui-text{font-size:var(--type-ui);line-height:var(--leading-ui);font-weight:500}.data-text{font-size:var(--type-data);line-height:var(--leading-data);font-weight:500;font-variant-numeric:tabular-nums}.text-link{text-decoration:underline}.eyebrow{display:flex;align-items:center;gap:var(--space-3);color:var(--link);font-size:var(--type-ui);line-height:var(--leading-ui);font-weight:500}.eyebrow:before{content:'';width:var(--space-8);height:1px;background:currentColor;flex:none}
.action{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);width:min(var(--action-max),100%);min-height:var(--action-height);padding:var(--space-3) 20px;border:1px solid transparent;border-radius:var(--action-radius);background:var(--color-blue);color:var(--color-surface);font-size:var(--type-ui);line-height:var(--leading-ui);font-weight:500;text-decoration:none;text-align:center;transition:background var(--motion-duration),transform var(--motion-duration) var(--motion-ease)}.action--secondary{background:var(--color-surface);border-color:var(--color-line);color:var(--color-ink)}.action:disabled{background:var(--color-disabled-surface);border-color:var(--color-disabled-surface);color:var(--color-muted)}.action--small{width:auto}.action.is-hover{background:var(--color-blue-hover);transform:translateY(-1px)}.action.is-focus{outline:3px solid var(--color-blue);outline-offset:4px}.icon-button{display:inline-grid;place-items:center;width:var(--control-size);height:var(--control-size);padding:0;flex:none;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--text);transition:background var(--motion-duration),color var(--motion-duration)}.icon-button:disabled{opacity:.4}.badge{display:inline-block;font-size:var(--type-supporting);line-height:var(--leading-supporting);padding:var(--space-1) var(--space-3);background:var(--color-fog);color:var(--color-ink)}
.flow-section{background:var(--surface);color:var(--text);padding-block:var(--section-space);border-bottom:1px solid var(--line)}.flow-section--viewport{--section-space:clamp(24px,6dvh,96px);--intro-gap:clamp(16px,2dvh,24px);--viewport-row-gap:clamp(24px,3dvh,48px);min-height:100dvh;display:grid;align-content:center}.section-shell{display:grid;gap:var(--layout-gap);align-items:start}.section-intro{min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--intro-gap)}.section-intro>h2{max-width:25ch}.section-intro>.lead{max-width:var(--measure-intro);color:var(--muted)}.section-intro>.action{margin-top:var(--space-2)}.section-extra{margin-top:var(--space-3);width:100%;font-size:var(--type-supporting);color:var(--muted)}.section-extra strong{color:var(--text)}.proof-head{display:flex;justify-content:space-between;gap:var(--space-4);border-block:1px solid var(--line);padding-block:var(--space-4)}.proof-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.proof-grid>div{padding:var(--space-6) var(--space-4) var(--space-2) 0;display:grid;gap:var(--space-2)}.proof-grid>div+div{border-left:1px solid var(--line);padding-left:var(--space-6)}.proof-grid strong{font-size:var(--type-data);font-weight:500}
.flow-carousel{min-width:0;max-width:100%}.flow-viewport{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}.flow-viewport::-webkit-scrollbar{display:none}.flow-track{display:flex;gap:var(--space-6);padding:0;margin:0;list-style:none}.flow-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;list-style:none}.media-window{overflow:hidden;border-radius:var(--media-radius);background:var(--color-fog)}.media-window picture{display:block}.media-window img{width:100%;aspect-ratio:3/2;object-fit:cover}.media-window button{display:block;width:100%;padding:0;background:none;border:0}.media-window button:focus-visible{outline-offset:-5px}.slide-copy{display:grid;align-content:start;gap:var(--space-4);padding-top:var(--space-6);color:var(--text)}.slide-copy p{color:var(--muted);max-width:var(--measure-body)}.slide-copy .badge,.slide-copy .card-label{font-size:var(--type-supporting);color:var(--link)}.slide-copy ul{margin:0;padding-left:1.2em;color:var(--muted)}.slide-copy>span{font-size:var(--type-supporting);color:var(--link)}.flow-controls{display:flex;align-items:center;gap:var(--space-3);padding-top:var(--space-6)}.flow-counter{font-size:var(--type-ui);font-variant-numeric:tabular-nums;white-space:nowrap;display:flex;gap:var(--space-2)}.flow-counter>span{color:var(--muted)}.flow-progress{height:1px;background:var(--line);flex:1;margin-inline:var(--space-2)}.flow-progress>span{display:block;width:var(--progress,100%);height:2px;background:var(--link)}.flow-tabs{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-6)}.flow-tabs button{background:transparent;color:var(--muted);border:0;border-bottom:2px solid transparent;min-height:44px;padding:8px 12px;font-size:var(--type-ui)}.flow-tabs button[aria-pressed=true]{border-color:var(--link);color:var(--text)}.slide-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6);padding-top:var(--space-6)}.slide-facts p{display:grid;gap:var(--space-2)}.slide-facts b{font-weight:500;color:var(--text)}.slide-facts span{font-size:var(--type-supporting);color:var(--muted)}.slide-facts strong{font-size:var(--type-data);font-weight:500;color:var(--text);font-variant-numeric:tabular-nums}.pattern-panorama .section-intro{max-width:880px}.pattern-panorama .media-window img{aspect-ratio:3/1}.pattern-panorama .slide-copy{max-width:800px}
.ledger{padding:0;margin:0;list-style:none;border-top:1px solid var(--line)}.ledger li{display:grid;grid-template-columns:44px 1fr;gap:var(--space-6);padding-block:var(--space-6);border-bottom:1px solid var(--line)}.ledger li>span{font-size:var(--type-supporting);color:var(--link);font-variant-numeric:tabular-nums}.ledger li>div{display:grid;gap:var(--space-2)}.ledger p{color:var(--muted)}.facts-panel{display:grid;gap:var(--space-6)}.faq-list{display:grid;gap:0}.faq-list details{border-top:1px solid var(--line)}.faq-list details:last-child{border-bottom:1px solid var(--line)}.faq-list summary{display:grid;grid-template-columns:1fr var(--control-size);gap:var(--space-6);align-items:center;cursor:pointer;padding-block:var(--space-6);list-style:none;font-size:var(--type-data);font-weight:500;line-height:1.4}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary svg{border:1px solid var(--line);border-radius:50%;padding:12px;width:var(--control-size);height:var(--control-size);transition:transform var(--motion-duration)}.faq-list details[open] summary svg{transform:rotate(45deg);background:var(--color-blue);color:var(--color-surface);border-color:var(--color-blue)}.faq-answer{color:var(--muted);max-width:var(--measure-body);padding-bottom:var(--space-6)}.contact-panel{display:grid;gap:var(--space-6)}.contact-panel p{color:var(--muted)}.contact-panel img{width:100%;aspect-ratio:3/2;object-fit:cover}.office-list{list-style:none;margin:0;padding:0}.office-list>li{display:grid;gap:var(--space-2);padding-block:var(--space-6);border-top:1px solid var(--line)}.office-list h3{font-size:var(--type-data)}
.preview-notice{background:var(--color-dark);color:var(--color-muted-dark);padding:var(--space-2) var(--space-4);font-size:var(--type-supporting);display:flex;justify-content:center;gap:var(--space-6);flex-wrap:wrap}.preview-notice a{color:var(--color-link-dark)}.site-footer{background:var(--color-dark);color:var(--color-inverse);padding-block:var(--space-16);--link:var(--color-link-dark)}.footer-grid{display:grid;grid-template-columns:1.3fr .7fr 1fr;gap:var(--layout-gap)}.footer-grid h2{font-size:var(--type-card);max-width:22ch}.footer-grid section,.footer-grid nav{display:grid;align-content:start;gap:var(--space-4)}.footer-grid p{color:var(--color-muted-dark);max-width:var(--measure-intro)}.footer-grid a{color:var(--color-inverse)}.footer-grid img{width:180px}.footer-legal{margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px solid var(--color-line-dark);display:grid;gap:var(--space-3);font-size:var(--type-supporting);color:var(--color-muted-dark)}.footer-identity{display:flex;gap:var(--space-6);flex-wrap:wrap}.footer-identity a{margin-left:auto}
.flow-dialog{border:0;padding:0;width:min(100% - 32px,1080px);max-height:calc(100dvh - 32px);color:var(--text);background:var(--surface);overscroll-behavior:contain}.flow-dialog::backdrop{background:rgba(7,24,36,.75)}.dialog-inner{padding:var(--space-12);display:grid;gap:var(--space-8)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:var(--space-6)}.dialog-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--layout-gap)}.dialog-grid>.section-intro h2{font-size:var(--type-section)}.field{display:grid;gap:var(--space-2);font-size:var(--type-ui);font-weight:500}.field input,.field select,.field textarea{min-width:0;width:100%;min-height:48px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-line);border-radius:var(--action-radius);background:var(--color-surface);color:var(--color-ink);font-size:var(--type-body);font-weight:400}.field input::placeholder{color:var(--color-muted)}.field input[aria-invalid=true]{border-color:var(--color-error)}.field-error{display:block;min-block-size:2lh;color:var(--color-error);font-size:var(--type-supporting);line-height:var(--leading-supporting);font-weight:400}.consent-field{display:grid;gap:var(--space-2)}.demo-form{display:grid;gap:var(--space-6)}.consent{display:flex;gap:var(--space-3);font-size:var(--type-supporting);align-items:flex-start}.consent input{width:20px;height:20px;flex:none;margin:2px 0 0;accent-color:var(--color-blue)}.form-status{font-size:var(--type-supporting);color:var(--color-success)}.message{padding:var(--space-4);background:var(--color-fog);font-size:var(--type-supporting)}.message--error{color:var(--color-error)}.message--success{color:var(--color-success)}.menu-links{display:grid;gap:var(--space-6)}.menu-links a{font-size:var(--type-card);color:var(--text);text-decoration:none}.lightbox-image{max-height:70dvh;width:100%;object-fit:contain}.loading-mark{border:2px solid currentColor;border-right-color:transparent;border-radius:50%;width:16px;height:16px;animation:flow-spin .8s linear infinite}@keyframes flow-spin{to{transform:rotate(360deg)}}
@media(min-width:1366px){.pattern-split .section-shell,.pattern-special .section-shell{grid-template-columns:minmax(0,1fr) minmax(0,1.9fr)}.pattern-split .section-intro{position:sticky;top:112px}}
@media(max-width:1023px){.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>section:first-child{grid-column:1/-1}.dialog-grid{grid-template-columns:1fr}.pattern-panorama .media-window img{aspect-ratio:3/2}}
@media(max-width:767px){.flow-section{--layout-gap:32px}.section-intro>h2{max-width:none}.flow-controls{gap:var(--space-2)}.flow-progress{margin-inline:0}.footer-grid{grid-template-columns:1fr}.footer-grid>section:first-child{grid-column:auto}.footer-identity{display:grid;gap:var(--space-2)}.footer-identity a{margin-left:0}.dialog-inner{padding:var(--space-6)}.slide-facts{gap:var(--space-4)}.preview-notice{justify-content:flex-start;gap:var(--space-3)}}
@media(hover:hover) and (pointer:fine){.action:not(:disabled):hover{background:var(--color-blue-hover);color:var(--color-surface);transform:translateY(-1px)}.icon-button:not(:disabled):hover{background:var(--color-blue);border-color:var(--color-blue);color:var(--color-surface)}.flow-tabs button:hover{color:var(--link)}.site-nav a:hover{text-decoration:underline}.media-window button:hover img{filter:brightness(.94)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.action:hover,.action.is-hover{transform:none}}
@media(forced-colors:active){.action,.icon-button,.badge{border:1px solid ButtonText}.flow-progress{background:GrayText}.flow-progress>span{background:Highlight}}
.type-body{font-size:var(--type-body);line-height:var(--leading-body);font-weight:400}

.slide-copy :is(figcaption,article,div:not(.slide-facts)){display:grid;gap:var(--space-4)}


.contact-hours{display:grid;gap:var(--space-2)}
.media-window img{height:auto}

body:has(dialog[open]){overflow:hidden}
.action:not(:disabled):active{background:var(--color-blue-hover);color:var(--color-surface);transform:none}



/* Flowline 2.1: original shell and photo storytelling, shared by every specimen. */
.site-header{position:fixed;inset:0 0 auto;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(16px);border-bottom:1px solid var(--color-line)}
.header-row{display:flex;align-items:center;gap:var(--space-8);min-height:var(--header-height)}
.brand{flex:none}.brand img{width:164px;height:auto}
/* Same transparent brand asset, monochrome on dark footer and menu surfaces. */
.site-footer .brand-logo,.menu-dialog .brand-logo{height:auto;filter:brightness(0) invert(1)}
.site-nav{display:flex;align-items:center;gap:var(--space-6);margin-left:auto}
.site-nav a{color:var(--color-ink);text-decoration:none;font-size:var(--type-ui)}
.header-actions{display:flex;align-items:center;gap:var(--space-3);margin-left:auto}
.header-phone{color:var(--color-blue);font-size:var(--phone-size);font-weight:600;line-height:1.2;text-decoration:none;white-space:nowrap;font-variant-numeric:tabular-nums}
.menu-button,.phone-icon{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);min-height:48px;padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--action-radius);background:transparent;color:var(--text);font-size:var(--type-ui);text-decoration:none}
.phone-icon{display:none;flex:none;padding:0;width:44px;height:44px;min-height:44px}.phone-icon img{width:26px;height:26px}
.hero{position:relative;isolation:isolate;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;gap:var(--space-6);overflow:clip;padding-top:calc(var(--header-height) + var(--space-12));padding-bottom:var(--space-4)}
.hero-image,.hero-video{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-fit:cover;object-position:60% center}
.hero-poster{display:contents}.hero-image{object-position:right center}
@media(max-aspect-ratio:1/1){.hero-image{object-position:center}}
.hero-video{z-index:-2;opacity:0;transition:opacity var(--motion-duration)}.hero.is-playing .hero-video{opacity:1}

.hero-copy{position:relative;max-width:var(--hero-copy-max);display:grid;gap:var(--space-6);color:var(--hero-text)}.hero-copy .eyebrow{color:var(--hero-text)}.hero-copy h1{max-width:18ch}.hero-copy>.lead{max-width:var(--measure-intro);color:var(--hero-text)}
.hero-copy>.eyebrow,.hero-copy>h1,.hero-copy>.lead,.hero-facts{text-shadow:var(--hero-text-shadow)}
.hero-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);width:min(var(--hero-actions-max),100%)}.hero-actions .action{width:100%;padding-inline:var(--space-3)}
.hero-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-8);width:min(100%,var(--hero-facts-max));margin-top:var(--space-6)}.hero-facts>div{min-width:0;display:grid;align-content:start;gap:var(--space-1);padding-left:var(--hero-facts-inset);border-left:1px solid var(--hero-text)}.hero-facts dt{font-size:var(--hero-facts-value);line-height:var(--leading-data);font-weight:var(--weight-semibold);white-space:nowrap}.hero-facts dd{margin:0;font-size:var(--type-supporting);line-height:var(--leading-supporting);color:var(--hero-facts-muted)}
.media-layer{position:fixed;right:max(var(--space-4),env(safe-area-inset-right));bottom:max(var(--space-4),env(safe-area-inset-bottom));z-index:15;display:grid;justify-items:end;gap:var(--space-3);max-width:calc(100vw - var(--space-8));pointer-events:none}.media-layer>*{pointer-events:auto}
.video-status{display:grid;gap:var(--space-1);width:min(320px,100%);padding:var(--space-3) var(--space-4);background:rgba(255,255,255,.96);color:var(--color-ink);font-size:var(--type-supporting);border:1px solid var(--color-line);border-radius:var(--action-radius)}
.video-status progress{height:3px;width:100%;accent-color:var(--color-blue);border:0}.video-status progress::-webkit-progress-bar{background:var(--color-line)}.video-status progress::-webkit-progress-value{background:var(--color-blue)}
.video-toggle{display:grid;place-items:center;flex:none;width:var(--control-size);height:var(--control-size);padding:0;border:1px solid var(--color-line);border-radius:var(--action-radius);background:rgba(255,255,255,.96);color:var(--color-ink)}.video-toggle svg{width:22px;height:22px}.video-toggle [data-icon="play"]{fill:currentColor;stroke:none}.video-toggle [data-icon="pause"]{stroke-width:3}.video-toggle[aria-disabled="true"]{opacity:.6;cursor:progress}
@media(hover:hover) and (pointer:fine){.video-toggle:hover{background:var(--color-blue);border-color:var(--color-blue);color:var(--color-surface)}}
.video-status[hidden],.video-toggle[hidden]{display:none}
.fullscreen-dialog{position:fixed;inset:0;margin:0;width:100%;max-width:none;height:100dvh;max-height:none;overflow:auto;background:var(--surface);color:var(--text)}
.fullscreen-dialog .dialog-inner{min-height:100%;padding:var(--space-4) 0 var(--space-8);grid-template-rows:auto 1fr;gap:var(--space-12)}
.fullscreen-dialog .dialog-top{min-height:calc(var(--header-height) - var(--space-8))}.fullscreen-dialog .dialog-grid{align-self:center;align-items:start;padding-block:var(--space-8)}
.fullscreen-dialog .menu-button{color:var(--text);border-color:var(--line)}.fullscreen-dialog .phone-icon img{filter:brightness(0) invert(1)}
.fullscreen-dialog .supporting,.fullscreen-dialog .consent{color:var(--muted)}
.fullscreen-dialog .field input{background:transparent;color:var(--text);border-color:var(--line)}.fullscreen-dialog .field input::placeholder{color:var(--muted)}
.fullscreen-dialog .field-error{color:var(--color-error-dark)}.fullscreen-dialog .form-status{color:var(--color-success-dark)}
.form-status[data-state="error"]{color:var(--color-error)}.fullscreen-dialog .form-status[data-state="error"]{color:var(--color-error-dark)}
.form-status[data-state="pending"]{color:var(--muted)}
.menu-dialog .dialog-inner{grid-template-rows:auto 1fr auto}
.menu-body{align-self:center;display:grid;gap:var(--space-6);padding-block:var(--space-8)}
.menu-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-16);row-gap:0}
.menu-links a{display:flex;align-items:baseline;gap:var(--space-6);padding-block:var(--space-6);border-bottom:1px solid var(--line);font-size:var(--type-menu);font-weight:500;line-height:1.2;letter-spacing:var(--tracking-card);color:var(--text)}
.menu-links a>span{font-size:var(--type-supporting);color:var(--muted);font-weight:400;letter-spacing:0}
.menu-meta{display:flex;gap:var(--space-8);flex-wrap:wrap;align-items:baseline;border-top:1px solid var(--line);padding-top:var(--space-6);font-size:var(--type-supporting);color:var(--muted)}.menu-meta a{color:var(--text);text-decoration:none}.menu-meta a:first-child{font-size:var(--phone-size);font-weight:500}.menu-meta span{margin-left:auto}
.photo-card{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:end;aspect-ratio:var(--photo-ratio);min-height:420px;overflow:hidden;background:var(--color-dark)}
.photo-card .media-window{position:absolute;inset:0;z-index:-2}.photo-card .media-window picture,.photo-card .media-window img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.photo-copy{position:relative;display:grid;gap:var(--space-3);padding:var(--space-16) var(--photo-inset) var(--photo-inset);background:var(--photo-shade);color:var(--photo-text);margin-top:80px}
.photo-copy h3{max-width:24ch}.photo-copy p{max-width:50ch;color:var(--photo-muted)}.photo-copy>span{font-size:var(--type-supporting);color:var(--photo-muted)}
.photo-tag{position:absolute;top:var(--photo-inset);left:var(--photo-inset);max-width:calc(100% - var(--photo-inset)*2);padding:var(--space-1) var(--space-3);background:rgba(7,24,36,.84);color:var(--photo-text);font-size:var(--type-supporting)}
.pattern-split .section-shell{grid-template-areas:"intro" "media"}.pattern-split .section-shell:has(.section-tail){grid-template-areas:"intro" "media" "tail"}.pattern-split .section-intro{grid-area:intro;position:static;align-self:start}.pattern-split .flow-carousel{grid-area:media}.section-tail{grid-area:tail;display:grid;gap:var(--space-6);align-self:end;min-width:0}.section-tail .section-extra{margin:0;padding:0}.section-tail .action{width:100%}
@media(min-width:1366px){.pattern-split .section-shell{grid-template-areas:"intro media"}.pattern-split .section-shell:has(.section-tail){grid-template-areas:"intro media" "tail media";grid-template-rows:auto 1fr;row-gap:var(--space-8)}}
@media(max-width:1023px){.site-header .site-nav{display:none}.fullscreen-dialog .dialog-grid{grid-template-columns:1fr;align-self:start}}
@media(max-width:767px){.header-row{gap:var(--space-4)}.brand img{width:140px}.hero{padding-top:calc(var(--header-height) + var(--space-8))}.hero-video{object-position:66% center}.hero-facts{gap:var(--space-2);margin-bottom:calc(var(--control-size) + var(--space-4))}.menu-links{grid-template-columns:1fr}.menu-links a{font-size:var(--menu-mobile);gap:var(--space-4);padding-block:var(--space-4)}.menu-meta{display:grid;gap:var(--space-4)}.menu-meta span{margin-left:0}.menu-body{padding-block:0}.fullscreen-dialog .dialog-inner{gap:var(--space-8)}.fullscreen-dialog .dialog-grid{padding-block:0}.photo-card{aspect-ratio:var(--photo-mobile-ratio);min-height:440px}.photo-copy{padding-top:var(--space-12)}}
@media(max-width:680px){.header-phone{display:none}.phone-icon{display:inline-flex}.header-actions{gap:var(--space-2)}.menu-button{min-width:44px;min-height:44px;padding:var(--space-2)}.menu-button>span{display:none}}
@media(hover:hover) and (pointer:fine){.header-phone:hover{color:var(--color-blue-hover)}.menu-links a:hover{color:var(--color-link-dark);border-color:var(--color-link-dark)}.menu-button:hover,.phone-icon:hover{background:var(--color-blue);border-color:var(--color-blue);color:var(--color-surface)}.phone-icon:hover img{filter:brightness(0) invert(1)}}


/* Viewport sections resize their composition, while min-content protects readable copy. */
.flow-section--viewport .section-shell {
  height:calc(100dvh - var(--section-space)*2 - 1px);
  min-height:min-content;
  grid-template-rows:auto minmax(min-content,1fr) auto;
  row-gap:var(--viewport-row-gap);
}
.flow-section--viewport .flow-carousel {
  display:grid;
  grid-template-rows:minmax(min-content,1fr) auto;
  align-self:stretch;
}
.flow-section--viewport .flow-viewport {display:flex;min-height:0}
.flow-section--viewport .flow-track {flex:1;min-width:0}
.flow-section--viewport .photo-card {aspect-ratio:auto;min-height:320px}
.flow-section--viewport .section-tail {overflow-wrap:anywhere}
@media(min-width:1366px) {
  .flow-section--viewport .section-shell:has(.section-tail) {
    grid-template-rows:auto minmax(min-content,1fr);
    row-gap:var(--viewport-row-gap);
  }
}
@media(max-width:767px) {
  .flow-section--viewport {
    --section-space:clamp(24px,3dvh,48px);
    --viewport-row-gap:clamp(16px,2.5dvh,32px);
  }
  .flow-section--viewport .photo-card {min-height:280px}
  .flow-section--viewport .photo-copy {padding-top:var(--space-8);margin-top:calc(var(--photo-inset) + 2.5em)}
}

/* Partial next-slide preview; trailing space keeps the last card aligned and reachable. */
.flow-carousel--peek {
  container-type:inline-size;
  --carousel-gap:var(--space-6);
  --carousel-ratio:var(--carousel-photo-ratio);
  --carousel-photo-limit:var(--carousel-photo-max);
}
.flow-carousel--peek .flow-track {gap:var(--carousel-gap)}
.flow-carousel--peek .flow-slide {
  flex-basis:calc(100% - var(--carousel-next-peek) - var(--carousel-gap));
}
.flow-carousel--peek .photo-card,
.flow-carousel--peek .flow-slide:not(.photo-card) > .media-window {
  aspect-ratio:auto;
  height:min(calc((100cqi - var(--carousel-next-peek) - var(--carousel-gap))/var(--carousel-ratio)),var(--carousel-photo-limit));
  max-height:var(--carousel-photo-limit);
}
.flow-carousel--peek .photo-card {min-height:min-content}
.flow-carousel--peek .flow-slide:not(.photo-card) > .media-window :is(button,picture,img) {
  height:100%;
  width:100%;
  aspect-ratio:auto;
  object-fit:cover;
}
.flow-carousel--peek .flow-track::after {
  content:"";
  flex:0 0 var(--carousel-next-peek);
}
@media(max-width:767px) {
  .flow-carousel--peek {
    --carousel-gap:var(--space-4);
    --carousel-ratio:var(--carousel-photo-mobile-ratio);
    --carousel-photo-limit:var(--carousel-photo-mobile-max);
  }
}

.media-window--tagged {position:relative}

/* Pattern B mobile reuses A's horizontal preview without its photo-height rules. */
@media(max-width:767px) {
  .pattern-panorama .flow-carousel {--carousel-gap:var(--space-4)}
  .pattern-panorama .flow-track {gap:var(--carousel-gap)}
  .pattern-panorama .flow-slide {
    flex-basis:calc(100% - var(--carousel-next-peek) - var(--carousel-gap));
  }
  .pattern-panorama .flow-track::after {
    content:"";
    flex:0 0 var(--carousel-next-peek);
  }
}

/* Pattern B: native scroller shares media/copy rows with the static intro.
   Keep semantic viewport/articles intact; only the unlabelled wrapper loses its box. */
@media(min-width:768px){
.pattern-panorama .section-shell{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto auto;column-gap:var(--layout-gap);row-gap:var(--space-6)}
.pattern-panorama .section-intro{grid-area:2 / 1 / 4 / 2;max-width:none;z-index:1;background:var(--surface)}
.pattern-panorama .flow-carousel{display:contents}
.pattern-panorama .flow-viewport{display:grid;grid-template-rows:subgrid;grid-area:1 / 1 / 3 / -1;min-width:0;align-self:stretch}
.pattern-panorama .flow-track{display:grid;grid-template-rows:subgrid;grid-row:1 / 3;grid-auto-flow:column;grid-auto-columns:100%;column-gap:var(--space-6);min-width:0}
.pattern-panorama .flow-slide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:subgrid;grid-row:1 / 3;column-gap:var(--layout-gap)}
.pattern-panorama .media-window{grid-area:1 / 1 / 2 / -1;min-width:0}
.pattern-panorama .slide-copy{grid-area:2 / 2;grid-template-columns:minmax(0,1fr);padding-top:0;max-width:none;gap:var(--space-4)}
.pattern-panorama .flow-controls{grid-area:3 / 2;min-width:0;padding-top:0;align-self:start}
.pattern-panorama:has(.flow-tabs) .section-shell{grid-template-rows:auto min-content min-content 1fr}
.pattern-panorama:has(.flow-tabs) .section-intro{grid-row:2 / 5}
.pattern-panorama .flow-tabs{grid-area:3 / 2;min-width:0;margin-top:0}
.pattern-panorama:has(.flow-tabs) .flow-controls{grid-row:4}
}
@media(min-width:1024px){
.pattern-panorama .media-window img{object-position:var(--panorama-position,50% 50%)}
}

/* Contract: one action follows the facts in DOM; desktop places it below the intro. */
.pattern-contract .section-shell{grid-template-areas:"intro" "facts" "tail"}
.pattern-contract .section-intro{grid-area:intro}
.pattern-contract .facts-panel{grid-area:facts;min-width:0}
.pattern-contract .section-tail{align-self:start;width:100%;max-width:var(--action-max)}
@media(min-width:768px){
.pattern-contract .section-shell{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"intro facts" "tail facts";grid-template-rows:auto 1fr;row-gap:var(--space-8)}
}

/* Showcase: one media column with shared photo copy, controls and country tabs. */
.photo-copy ul{margin:0;padding-left:1.2em;color:var(--photo-muted)}
.pattern-showcase .section-shell{grid-template-areas:"intro" "media"}
.pattern-showcase .section-intro{grid-area:intro}
.pattern-showcase .flow-carousel{grid-area:media;container-type:inline-size;--carousel-ratio:var(--carousel-photo-ratio);--carousel-photo-limit:var(--carousel-photo-max)}
.pattern-showcase .photo-card{aspect-ratio:auto;min-height:min(calc(100cqi / var(--carousel-ratio)),var(--carousel-photo-limit))}
@media(max-width:767px){
.pattern-showcase .flow-carousel{--carousel-ratio:var(--carousel-photo-mobile-ratio);--carousel-photo-limit:var(--carousel-photo-mobile-max)}
}
@media(min-width:1024px){
.pattern-showcase .section-shell{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);grid-template-areas:"media intro"}
}

/* FAQ: one image with its introduction, followed by a question-only column. */
.pattern-faq .faq-cover{aspect-ratio:auto;min-height:440px;min-width:0}
.pattern-faq .faq-cover img{object-position:80% 35%}
.pattern-faq .photo-copy{--text:var(--photo-text);--muted:var(--photo-muted);--link:var(--color-link-dark);margin-top:0;gap:var(--intro-gap)}
.pattern-faq .photo-copy>.eyebrow{color:var(--link)}
.pattern-faq .faq-list{min-width:0}
@media(min-width:768px){.pattern-faq .section-shell{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:767px){.pattern-faq .faq-cover{min-height:220px}}

/* Contacts: content and offices together; live map with an independent caption row. */
.contact-content{min-width:0;display:grid;gap:var(--space-6)}
.contact-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);width:min(var(--action-max),100%);margin-top:var(--space-2)}
.contact-actions>.action{width:auto;flex:1 1 calc((var(--action-max) - var(--space-3))/2)}
.contact-map{min-width:0;margin:0;display:grid;gap:var(--space-4)}
.contact-map-frame{display:block;width:100%;height:clamp(320px,40vw,600px);border:0;background:var(--color-fog)}
.contact-map-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}
.contact-map-footer>span{min-width:0;color:var(--muted)}
.contact-map-footer>.action{flex-shrink:0}
@media(min-width:1024px){.pattern-contacts .section-shell{grid-template-columns:minmax(0,1fr) minmax(0,1.9fr)}}
