/* Existing FinMotors system: metal emblem, photographic rooms, technical copy.
   Keep scene geometry untouched; this pass governs reading and interaction. */
:root{
 --ease-out:cubic-bezier(.23,1,.32,1);
 --ease-in-out:cubic-bezier(.77,0,.175,1);
 --ease-drawer:cubic-bezier(.32,.72,0,1);
 --feedback-time:160ms;
}
.editorial h1,.editorial-third h2{letter-spacing:-.045em}
.service-editorial h2{letter-spacing:-.035em}
.editorial .intro,.service-editorial .intro{font-size:16px;line-height:1.6;color:rgba(var(--ink),.96)}
.eyebrow,.service-editorial .eyebrow{color:rgba(var(--ink),.94)}
.service-price small,.final-note{color:rgba(var(--ink),.92)}
.service-action,.text-action,.primary-action{font-size:15px;font-weight:500}
.service-price>span{max-width:none}
.chapters b{font-weight:500}
.chapters button[aria-current=step] b{font-weight:500}
.chapters i{transition:transform 220ms var(--ease-out)}
.chapters button{transition:opacity var(--feedback-time) var(--ease-out)}
.service-scope summary>span,.menu-scenes>summary>span{transition:transform 200ms var(--ease-out)}
.text-action span,.service-action span,.brochure-list a>span,.brochure-list h3{
 transition:transform 200ms var(--ease-out);
}
.primary-action,.paint-swatch,.tour-icon{transition:transform var(--feedback-time) var(--ease-out)}
/* Preserve tactile feedback without sticky hover travel on touchscreens. */
@media(hover:hover) and (pointer:fine){
 .text-action:hover span{transform:translateY(2px)}
 .services .text-action:hover span,.service-action:hover span,.brochure-list a:hover>span{transform:translate(2px,-2px)}
 .brochure-list a:hover h3{transform:translateX(2px)}
 .paint-swatch:hover i{outline:1px solid #e8edf2;outline-offset:3px}
 .tour-toggle:hover .tour-icon{transform:scale(1.05)}
}
@media(hover:none),(pointer:coarse){
 .text-action:hover span,.services .text-action:hover span,.brochure-list a:hover h3,.brochure-list a:hover>span{transform:none}
 .menu-toggle:hover i:last-child{width:15px}
}
.primary-action:active,.paint-swatch:active{transform:scale(.98)}
.tour-toggle:active .tour-icon{transform:scale(.96)}
:is(.text-action,.service-action,.header-services,.menu-toggle,.menu-close,.paint-toggle,.chapters button):active{opacity:.72}
.paint-toggle:disabled:active{opacity:.35}
.paint-picker{border-radius:2px;background:#0b141e;transform-origin:top right}
.paint-swatch{border-radius:2px}
/* Native dialog and hidden semantics still own focus and interactivity.
   Discrete transitions progressively enhance them; older engines simply open. */
#menu{
 opacity:0;transform:translateY(8px);pointer-events:none;
 transition:opacity 180ms var(--ease-out),transform 220ms var(--ease-drawer),display 220ms allow-discrete,overlay 220ms allow-discrete;
}
#menu[open]{opacity:1;transform:translateY(0);pointer-events:auto}
#menu::backdrop{opacity:0;transition:opacity 180ms var(--ease-out),display 220ms allow-discrete,overlay 220ms allow-discrete}
#menu[open]::backdrop{opacity:1}
.paint-picker{
 opacity:0;transform:translateY(-4px) scale(.985);pointer-events:none;
 transition:opacity 140ms var(--ease-out),transform 180ms var(--ease-out),display 180ms allow-discrete;
}
.paint-picker:not([hidden]){opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
@starting-style{
 #menu[open]{opacity:0;transform:translateY(8px)}
 #menu[open]::backdrop{opacity:0}
 .paint-picker:not([hidden]){opacity:0;transform:translateY(-4px) scale(.985)}
}
/* Every portrait copy block shares the same actual clipping boundary.
   The enlarged brand header used to move the top without reducing its height. */
@media(max-width:760px) and (min-height:551px){
 .stage{--copy-top:max(calc(136px + env(safe-area-inset-top)),17svh);--copy-limit:48svh}
 .editorial,.editorial-third,.service-editorial{
  top:var(--copy-top);max-height:calc(var(--copy-limit) - var(--copy-top) - 8px);
  overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;
  scrollbar-color:rgba(var(--ink),.35) transparent;scroll-padding-block:8px;
  overscroll-behavior:auto;pointer-events:auto;padding-right:5px;
 }
 .header-label b{font-size:12px;color:rgba(var(--ink),.96)}
 .editorial .intro,.editorial-third .intro,.editorial-first .intro{font-size:14px;line-height:1.55}
 .service-action,.text-action,.editorial-first .text-action,.primary-action{font-size:14px;min-height:44px}
 .service-scope summary{min-height:44px}
 .service-price small{line-height:1.5}
}
@media(max-width:760px) and (min-height:551px) and (max-height:740px){
 .stage{--copy-limit:51svh}
}
@media(max-height:550px){
 .editorial .intro{font-size:14px;line-height:1.5}
 .service-action,.text-action,.primary-action{font-size:14px;min-height:44px}
}
@media(prefers-reduced-motion:reduce){
 .text-action span,.service-action span,.brochure-list a>span,.brochure-list h3,
 .service-scope summary>span,.menu-scenes>summary>span,.primary-action,.paint-swatch,.tour-icon,.chapters i,.chapters button{transition:none}
 .text-action:hover span,.services .text-action:hover span,.service-action:hover span,.brochure-list a:hover>span,.brochure-list a:hover h3,
 .primary-action:active,.paint-swatch:active,.tour-toggle:hover .tour-icon,.tour-toggle:active .tour-icon{transform:none}
 #menu,#menu[open],.paint-picker,.paint-picker:not([hidden]){transform:none;transition:opacity 100ms linear,display 100ms allow-discrete,overlay 100ms allow-discrete}
 #menu::backdrop{transition:opacity 100ms linear,display 100ms allow-discrete,overlay 100ms allow-discrete}
 @starting-style{#menu[open],.paint-picker:not([hidden]){transform:none}}
}

/* The final action owns a reserved row outside the scrolling description. */
.editorial-third{display:flex;flex-direction:column;overflow:visible}
.final-copy{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:auto}
.final-copy:focus-visible{outline:2px solid var(--atelier-blue);outline-offset:-2px}
.stage #final-action{
 display:grid;grid-template-columns:minmax(0,1fr) 18px;align-items:center;
 flex:0 0 auto;width:100%;max-width:340px;min-width:0;min-height:48px;
 margin:10px 0 0;padding:12px 14px;gap:12px;border:1px solid #b5c7d32e;
 border-radius:4px;background:#101a23;color:#f5f8fc;text-align:left;
 line-height:1.4;letter-spacing:0;box-sizing:border-box;
}
.stage #final-action .final-action-label{min-width:0;font-size:14px;line-height:1.4;white-space:normal;overflow-wrap:break-word}
.stage #final-action .final-action-arrow{font-size:18px;line-height:1;text-align:right}
.stage #final-action:focus-visible{outline-offset:-4px}
.editorial-third .final-note{flex:0 0 auto;margin:8px 0 0;font-size:12px;line-height:1.45}
@media(hover:hover) and (pointer:fine){.stage #final-action:hover{background:#15354b;border-color:#6cbce0}}
@media(max-width:760px) and (min-height:551px){
 .editorial-third{height:calc(var(--copy-limit) - var(--copy-top) - 8px)}
 .stage #final-action{max-width:none}
}
/* Description groups stay clean; scrolling and touch behavior are retained. */
.service-editorial .service-price,.service-editorial .service-scope{border-top:0}
.stage .editorial,.final-copy{scrollbar-width:none}
.stage .editorial::-webkit-scrollbar,.final-copy::-webkit-scrollbar{display:none}
