
/* styles.css */
/* POLISHER.HU  –  DESKTOP-FIRST INTERAKTÍV KONCEPCIÓ */
:root{--ink:#172331;--muted:#677484;--muted2:#8895a1;--blue:#285e8d;--blue-deep:#173e62;--ice:#f5f7f8;--paper:#fcfdfd;--line:#e0e6e9;--pale:#e9f0f4;--shadow:0 28px 85px rgba(30,55,76,.13);--radius:22px;--header-h:86px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Segoe UI",Inter,Arial,sans-serif;color:var(--ink);background:#f7f8f9;overflow-x:hidden;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}a,button{ -webkit-tap-highlight-color:transparent}img{max-width:100%}em{font-style:normal;color:var(--blue)}::selection{background:#b6d1e5;color:#132f47}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #3b86c1;outline-offset:4px}.page-width{width:min(1480px,calc(100% - 104px));margin:auto}
/* INTRO */
.intro{position:fixed;inset:0;background:#fcfdfd;z-index:90;display:none;align-items:center;justify-content:center;flex-direction:column;overflow:hidden}.intro:before{content:"";position:absolute;inset:-25%;background:radial-gradient(circle at 55% 42%,#eaf0f4 0,transparent 50%);pointer-events:none}.intro-halo{position:absolute;width:min(780px,90vw);aspect-ratio:1;border:1px solid #e9eef1;border-radius:50%;transform:scale(.8);animation:halo 5s ease-out forwards}.intro-logo-holder{position:relative;width:min(495px,72vw);aspect-ratio:697/650;display:grid;place-items:center;filter:drop-shadow(0 13px 22px rgba(47,67,81,.07));transform:scale(.82);opacity:0;animation:introArrive 1.9s .25s cubic-bezier(.2,.7,.15,1) forwards}.intro-logo{width:100%;mix-blend-mode:multiply}.intro-subtext{position:absolute;bottom:9%;left:50%;transform:translateX(-50%);font-size:11px;font-weight:750;letter-spacing:.3em;white-space:nowrap;color:#6b7984;display:flex;align-items:center;gap:20px;opacity:0;animation:fadeUp 1s 1.2s forwards}.intro-loader{display:block;width:66px;height:1px;background:#d5dde2;overflow:hidden}.intro-loader span{display:block;width:100%;height:100%;background:var(--blue);transform:translateX(-100%);animation:loadLine 5s linear forwards}.intro-skip{position:absolute;right:46px;bottom:45px;border:0;color:#6c7985;background:transparent;font-size:12px;letter-spacing:.03em}.intro-skip span{padding-left:10px}.intro.is-leaving{animation:introCurtain 1s ease forwards}.intro.is-leaving .intro-logo-holder{animation:none;opacity:1;transition:transform .98s cubic-bezier(.33,.1,.15,1);transform:translate(calc(-50vw + 133px),calc(-50vh + 78px)) scale(.17)}html[data-intro=new] .intro{display:flex}html[data-intro=new] body{overflow:hidden}html[data-intro=new] .site-header,html[data-intro=new] main,html[data-intro=new] .footer{opacity:0}html[data-intro=seen] .site-header,html[data-intro=seen] main,html[data-intro=seen] .footer{opacity:1;transition:opacity .55s ease}@keyframes introArrive{0%{transform:scale(.7) translateY(28px);opacity:0;filter:blur(9px)}55%{filter:blur(0);opacity:1}100%{transform:scale(1);opacity:1;filter:blur(0)}}@keyframes halo{0%{transform:scale(.65);opacity:0}25%{opacity:.75}100%{transform:scale(1.12);opacity:0}}@keyframes loadLine{to{transform:translateX(0)}}@keyframes fadeUp{to{opacity:1;transform:translate(-50%,-10px)}}@keyframes introCurtain{0%,38%{background:#fcfdfd}100%{background:transparent;visibility:hidden}}
/* HEADER */
.site-header{height:var(--header-h);position:fixed;top:0;left:0;right:0;z-index:45;display:flex;align-items:center;gap:40px;padding:0 clamp(28px,4.5vw,85px);background:rgba(251,252,253,.91);backdrop-filter:blur(16px);border-bottom:1px solid rgba(221,228,232,.75);transition:height .3s ease,box-shadow .3s ease}.site-header.scrolled{height:76px;box-shadow:0 7px 35px rgba(25,53,76,.04)}.brand{display:flex;align-items:center;gap:13px;flex:0 0 auto}.brand-emblem{height:39px;width:39px;display:grid;place-items:center;border:1.8px solid #1a2f3f;border-radius:50%;position:relative}.brand-emblem:before,.brand-emblem:after{content:"";position:absolute;width:19px;height:7px;border-radius:50% 50% 25% 25%;transform:skewX(-21deg);border:2px solid #20394f}.brand-emblem:before{top:11px;left:7px}.brand-emblem:after{width:5px;height:5px;background:var(--blue);border:0;left:17px;top:20px}.brand-name{font-weight:850;font-size:18px;letter-spacing:-.045em;white-space:nowrap;line-height:1}.brand-dot{color:#3b88c3}.brand-name small{display:block;font-size:8px;font-weight:650;letter-spacing:.19em;color:#8a97a2;margin-top:6px}.main-nav{display:flex;align-items:center;gap:31px;margin-left:auto}.nav-link{font-size:13px;color:#647181;white-space:nowrap;font-weight:560;position:relative;padding:10px 0;transition:color .2s}.nav-link:hover,.nav-link.is-active{color:#1b405e}.nav-link.is-active:after{content:"";position:absolute;bottom:2px;left:0;right:0;height:2px;background:#275c87}.header-cta{white-space:nowrap;background:#1b496f;border:0;color:white;padding:15px 22px;border-radius:9px;font-size:12px;font-weight:680;box-shadow:0 7px 18px rgba(21,73,110,.11);transition:transform .2s,background .2s}.header-cta:hover{transform:translateY(-2px);background:#0d395c}.header-cta span{margin-left:22px;font-size:15px}.mobile-toggle,.mobile-nav{display:none}.demo-ribbon{position:fixed;right:0;top:145px;z-index:30;color:#6a7884;background:#e8edefd9;font-size:9px;letter-spacing:.22em;font-weight:740;writing-mode:vertical-rl;padding:18px 10px;border-radius:8px 0 0 8px;pointer-events:none}
/* HERO */
.stage-section{position:relative;scroll-margin-top:var(--header-h)}.hero{min-height:100svh;display:flex;align-items:center;background:linear-gradient(126deg,#fdfefe 9%,#f4f7f8 47%,#eef3f6 100%);padding-top:var(--header-h);overflow:hidden}.hero:after{content:"";position:absolute;bottom:-260px;right:-240px;width:650px;height:650px;border:1px solid rgba(111,142,164,.13);border-radius:50%;box-shadow:0 0 0 110px rgba(198,213,222,.07),0 0 0 220px rgba(198,213,222,.045);pointer-events:none}.hero-glow{position:absolute;inset:0;background:radial-gradient(ellipse 36% 56% at 29% 52%,#fff 10%,transparent 100%);pointer-events:none}.hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr .95fr;align-items:center;gap:clamp(38px,5vw,102px);padding-bottom:62px}.hero-left{position:relative;min-width:0;align-self:center}.section-eyebrow{font-size:10px;letter-spacing:.235em;font-weight:730;color:#627b90;display:flex;align-items:center;gap:14px;margin:0 0 13px}.eyebrow-line{width:28px;height:1px;background:#8096a7}.orbit-box{position:relative;width:min(620px,100%);margin:auto;filter:drop-shadow(0 15px 30px rgba(39,71,95,.035));isolation:isolate}.orbit-logo{display:block;width:100%;mix-blend-mode:multiply}.orbit-hotspots{position:absolute;inset:0}.orb{position:absolute;width:26%;aspect-ratio:1;border-radius:50%;border:1px solid rgba(50,101,140,0);background:transparent;transform:translate(-50%,-50%);padding:0;cursor:pointer;z-index:2;transition:background .3s,border .3s,box-shadow .3s,transform .3s}.orb:hover,.orb:focus-visible{border-color:rgba(47,118,167,.63);background:rgba(80,149,195,.08);box-shadow:0 0 0 8px rgba(63,132,180,.085);transform:translate(-50%,-50%) scale(1.12)}.orb-headlight{left:18%;top:60%;width:27%}.orb-door{left:18.5%;top:32%;width:27%}.orb-piano{left:41.6%;top:17.5%;width:27%}.orb-glass{left:67.5%;top:20%;width:27%}.orb-body{left:83%;top:44%;width:27%}.orb-tooltip{position:absolute;z-index:10;top:50%;left:52%;min-width:220px;background:#173e62;color:white;white-space:nowrap;border-radius:9px;padding:12px 15px;font-size:11px;letter-spacing:.012em;font-weight:650;opacity:0;pointer-events:none;box-shadow:0 12px 35px rgba(22,56,86,.22);transform:translate(-15%,-50%) scale(.95);transition:opacity .2s,transform .2s}.orb:hover .orb-tooltip,.orb:focus-visible .orb-tooltip{opacity:1;transform:translate(0,-50%) scale(1)}.orb-tooltip b{font-weight:500;color:#b8d7ea;margin-left:11px}.orb-headlight .orb-tooltip{left:95%}.orb-door .orb-tooltip{left:95%}.orb-body .orb-tooltip,.orb-glass .orb-tooltip{left:auto;right:96%;transform:translate(15%,-50%)}.orb-body:hover .orb-tooltip,.orb-glass:hover .orb-tooltip{transform:translate(0,-50%)}.hero-side-note{display:flex;align-items:center;gap:9px;font-size:11px;color:#8a98a4;margin:3px 0 0 16%;letter-spacing:.025em}.side-note-dot{height:6px;width:6px;background:#387ead;border-radius:50%}.hero-copy{padding:40px 0 60px}.tagline{font-size:10px;letter-spacing:.175em;font-weight:800;color:#3979a5;display:flex;align-items:center;gap:9px}.tagline-star{font-size:18px}.hero h1{font-size:clamp(52px,5.2vw,94px);letter-spacing:-.075em;font-weight:720;line-height:1.07;margin:28px 0 26px}.hero h1 span{color:#427ba5}.hero-lede{color:#6b7784;font-size:clamp(15px,1.14vw,18px);line-height:1.9;max-width:510px;margin:0}.hero-actions{display:flex;align-items:center;gap:16px;margin-top:36px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;padding:17px 24px;border-radius:10px;min-height:55px;font-size:13px;font-weight:720;transition:transform .22s ease,box-shadow .22s ease,background .22s ease;border:1px solid transparent;line-height:1}.button:hover{transform:translateY(-2px)}.button span{font-size:18px}.button-primary{background:#225780;color:#fff;box-shadow:0 12px 25px rgba(30,92,137,.14)}.button-primary:hover{background:#143f62;box-shadow:0 15px 29px rgba(30,92,137,.24)}.button-text{background:transparent;color:#274962}.button-text:hover{background:#e8eef2}.button-ghost{background:transparent;border:1px solid #cdd9e1;color:#295677}.button-ghost:hover{background:#f1f6f8}.hero-proof{margin-top:54px;display:flex;align-items:center;gap:22px;flex-wrap:wrap;color:#8693a0;font-size:11px}.hero-proof b{color:#315d80;font-size:15px;margin-right:4px}.proof-line{width:27px;height:1px;background:#cbd8e0}.proof-dot{font-size:6px;color:#5294be;vertical-align:middle;margin-left:3px}.scroll-prompt{position:absolute;bottom:27px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;font-size:9px;letter-spacing:.22em;font-weight:780;color:#8b9aa7;z-index:5}.scroll-mouse{width:16px;height:25px;border:1px solid #99a9b4;border-radius:9px;display:grid;place-items:start center;padding-top:5px}.scroll-mouse span{height:5px;width:2px;background:#507c9d;border-radius:2px;animation:mouse 1.7s infinite}.scroll-arrow{font-size:17px;color:#49789a}@keyframes mouse{0%{transform:translateY(0);opacity:1}75%{transform:translateY(6px);opacity:0}100%{opacity:0}}.hero-index{position:absolute;bottom:30px;right:5%;color:#9ba7b0;font-size:11px;letter-spacing:.15em}
/* SERVICES */
.service-section{min-height:100svh;padding:calc(var(--header-h) + 42px) 0 68px}.headlight-section{background:#fff;overflow:hidden}.service-shell{display:grid;grid-template-columns:minmax(330px,.77fr) minmax(520px,1.23fr);align-items:center;gap:clamp(40px,4.8vw,86px);min-height:calc(100vh - 215px)}.section-label{display:flex;align-items:center;gap:16px;font-size:10px;letter-spacing:.19em;color:#657e92;font-weight:760}.section-label>span{display:grid;place-items:center;width:38px;height:38px;border:1px solid #cad7df;border-radius:100%;color:#366e98;font-size:12px;letter-spacing:0}.section-label i{height:1px;width:31px;background:#b7c9d4}.service-story h2,.door-copy h2,.closing-inner h2{font-size:clamp(43px,4.25vw,74px);font-weight:720;line-height:1.09;letter-spacing:-.067em;margin:27px 0}.service-story h2 em,.door-copy h2 em,.closing-inner h2 em{font-style:normal;color:#3c79a4}.service-intro{color:#33485a;line-height:1.84;font-size:clamp(14px,1.02vw,17px);margin:0 0 14px}.service-secondary{color:#778695;line-height:1.9;font-size:13px;margin:0}.service-metrics{display:flex;gap:18px;margin:31px 0 23px;padding:18px 0;border-top:1px solid #e8edef;border-bottom:1px solid #e8edef}.service-metrics>div{display:flex;align-items:center;gap:9px;flex:1}.service-metrics strong{font-size:13px;color:#2d739e}.service-metrics span{font-size:10px;color:#8b99a5}.faq{border-top:1px solid #e5ebef;margin-top:25px}.faq details{border-bottom:1px solid #e5ebef;padding:0 1px}.faq summary{cursor:pointer;display:flex;align-items:center;justify-content:space-between;list-style:none;padding:15px 0;color:#263c4f;font-size:13px;font-weight:650}.faq summary::-webkit-details-marker{display:none}.faq summary span{font-size:21px;font-weight:350;color:#4e84ac;transition:transform .2s}.faq details[open] summary span{transform:rotate(45deg)}.faq p{margin:0 22px 18px 0;color:#778694;font-size:12px;line-height:1.8}.service-actions{display:flex;flex-wrap:wrap;align-items:center;gap:11px;margin-top:28px}.service-actions .button{padding:16px 21px;font-size:12px;min-height:52px}.service-bottom-index{position:absolute;bottom:27px;left:4.5%;font-size:9px;letter-spacing:.21em;color:#b0b9c1}.service-visual{min-width:0}.visual-header{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px}.mini-label{font-size:10px;letter-spacing:.18em;color:#7992a4;font-weight:780}.visual-header h3{font-size:24px;font-weight:650;letter-spacing:-.045em;margin:7px 0 0}.counter{font-size:12px;letter-spacing:.1em;color:#8b9eac}.gallery-shell{background:#eaf0f3;border:1px solid #e8eff3;border-radius:26px;padding:18px 0 6px;box-shadow:var(--shadow);overflow:hidden}.gallery-viewport{height:clamp(290px,33vw,486px);overflow:hidden;position:relative;cursor:default;touch-action:pan-y}.gallery-track{height:100%;display:flex;gap:14px;will-change:transform;transform:translate3d(0,0,0)}.gallery-card{position:relative;flex:0 0 60%;height:100%;overflow:hidden;border-radius:17px;background:#294257;box-shadow:0 14px 35px rgba(27,50,66,.18);isolation:isolate;user-select:none}.gallery-card::before{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(12,30,42,.24),transparent 22%);z-index:3;pointer-events:none}.gallery-photo{position:absolute;inset:0;background-position:center;background-size:cover;pointer-events:none}.gallery-photo--after{filter:saturate(1.12) contrast(1.06) brightness(1.03)}.gallery-photo--before{clip-path:inset(0 calc(100% - var(--reveal,75%)) 0 0);filter:contrast(.88) saturate(.62) brightness(.95) sepia(.15)}.gallery-photo--before:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 58% 54%,rgba(232,236,225,.41),transparent 75%),repeating-linear-gradient(126deg,transparent 0,transparent 37px,rgba(229,231,214,.11) 37px,transparent 38px)}.gallery-divider{position:absolute;z-index:5;top:0;bottom:0;left:var(--reveal,75%);width:2px;background:#fff;box-shadow:0 0 8px rgba(8,19,32,.3);transform:translateX(-50%);pointer-events:none}.gallery-knob{position:absolute;left:50%;top:51%;transform:translate(-50%,-50%);border-radius:50%;width:47px;height:47px;background:white;color:#1d4768;display:grid;place-items:center;box-shadow:0 9px 25px rgba(10,38,57,.32);font-size:20px;letter-spacing:-3px;padding-right:3px}.gallery-stamp{position:absolute;bottom:20px;z-index:5;padding:8px 13px;border-radius:6px;font-size:10px;letter-spacing:.05em;font-weight:800;backdrop-filter:blur(9px);pointer-events:none}.gallery-stamp--before{left:16px;color:white;background:rgba(19,32,42,.68)}.gallery-stamp--after{right:16px;background:rgba(239,247,252,.9);color:#174f7c}.gallery-card:not(.is-current) .gallery-divider,.gallery-card:not(.is-current) .gallery-stamp{opacity:.65}.gallery-card.is-current{cursor:ew-resize}.gallery-controls{display:flex;justify-content:space-between;align-items:center;padding:18px 21px 12px}.gallery-caption{display:flex;align-items:center;gap:10px;color:#687e8e;font-size:11px}.little-dash{width:17px;height:1px;background:#79a0b7}.gallery-arrows{display:flex;gap:9px}.gallery-arrows button{height:36px;width:42px;border-radius:8px;background:white;border:1px solid #dce5eb;color:#2c5978;font-size:19px;transition:background .2s,transform .2s}.gallery-arrows button:hover{background:#d9e8f1;transform:translateY(-2px)}.visual-footnote{color:#94a0aa;font-size:10px;line-height:1.7;margin:17px 6px 0;max-width:700px}.visual-footnote strong{font-weight:670;color:#6d899f}.info-mark{display:inline-grid;place-items:center;border:1px solid #aac0ce;width:15px;height:15px;border-radius:50%;margin-right:7px;font-weight:800;font-size:9px}
/* DOOR */
.door-section{background:linear-gradient(120deg,#ecf1f4 0%,#f9fbfc 48%,#f1f5f7 100%)}.door-grid{min-height:calc(100vh - 210px);display:grid;grid-template-columns:minmax(450px,1fr) minmax(395px,.95fr);gap:clamp(55px,7vw,136px);align-items:center}.door-visual-wrap{min-width:0}.door-visual{height:clamp(420px,43vw,650px);position:relative;border-radius:24px;background:#a8b5be;overflow:hidden;box-shadow:0 25px 65px rgba(43,65,82,.17)}.door-image{position:absolute;inset:0;background-image:linear-gradient(130deg,rgba(13,33,50,.34),transparent 80%),url('assets/door-photo-fallback.jpg');background-size:cover;background-position:center}.door-shine{position:absolute;inset:0;background:linear-gradient(120deg,transparent 36%,rgba(255,255,255,.16) 49%,transparent 52%);transform:translateX(-110%);animation:doorShine 11s ease-in-out infinite}@keyframes doorShine{0%,52%{transform:translateX(-110%)}76%,100%{transform:translateX(110%)}}.door-image-label{position:absolute;left:28px;top:30px;display:flex;align-items:center;gap:14px;color:#ecf3f6;letter-spacing:.13em;font-size:11px;font-weight:770;line-height:1.5;text-shadow:0 2px 4px #1d2a34}.label-star{font-size:36px;font-weight:200}.door-photo-tag{position:absolute;right:25px;bottom:28px;color:#e5eef4;font-size:10px;letter-spacing:.18em;background:rgba(23,43,56,.62);padding:13px 15px;border-radius:6px}.door-visual-note{display:flex;align-items:center;gap:15px;margin:19px 0;color:#8294a2;font-size:11px}.door-visual-note .line{width:36px;height:1px;background:#91a9b9}.door-copy{padding:15px 0 22px}.door-copy h2{font-size:clamp(44px,4.1vw,67px)}.door-copy .faq{margin-top:36px}.door-copy .service-actions{margin-top:30px}
/* CLOSING AND FOOTER */
.closing-section{background:#183b57;color:#fff;padding:112px 0 115px;min-height:64vh;display:flex;align-items:center;overflow:hidden;position:relative}.closing-section:before{content:"";position:absolute;inset:-25% -13%;border-radius:50%;border:1px solid rgba(211,230,242,.1);box-shadow:0 0 0 100px rgba(242,249,255,.025),0 0 0 200px rgba(242,249,255,.012);pointer-events:none}.closing-inner{display:grid;grid-template-columns:1.1fr .72fr;gap:10%;align-items:center;position:relative}.closing-inner .section-eyebrow{color:#acc7d8}.closing-inner h2{font-size:clamp(54px,5.7vw,92px);line-height:1.07;margin:22px 0}.closing-inner h2 em{color:#b9daed}.closing-inner p:not(.section-eyebrow){max-width:590px;color:#bed0dd;line-height:1.9;font-size:15px}.closing-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:21px;padding:38px 40px;backdrop-filter:blur(10px)}.closing-card .mini-label{color:#a5cadd}.closing-card ul{padding:0;list-style:none;margin:20px 0 30px;display:grid;gap:16px}.closing-card li{font-size:13px;color:#d6e4ec;padding-left:19px;position:relative}.closing-card li:before{content:"↗";position:absolute;left:0;color:#91c5e8}.button-light{background:#f2f8fb;color:#1b4c70}.footer{background:#f7f9fa;padding:53px 0 21px}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-bottom:43px}.footer-brand{font-size:23px;font-weight:850;letter-spacing:-.05em}.footer-brand span{color:var(--blue)}.footer-sub{font-size:11px;color:#8f9ca5}.footer-links{display:flex;gap:25px;color:#778896;font-size:12px}.footer-links a:hover{color:#205f8d}.replay{border:1px solid #cad9e3;background:white;padding:14px 19px;border-radius:9px;color:#356784;font-size:12px;font-weight:720}.replay:hover{background:#e5f0f6}.replay span{font-size:20px;vertical-align:middle;margin-right:6px}.footer-legal{border-top:1px solid #e1e9ed;padding-top:19px;display:flex;justify-content:space-between;gap:20px;color:#9aa6af;font-size:10px}
/* TOAST */
.toast{position:fixed;bottom:28px;right:26px;z-index:120;background:#183d5a;color:white;max-width:435px;width:calc(100% - 36px);padding:18px 17px;border-radius:13px;display:flex;align-items:center;gap:15px;box-shadow:0 20px 55px rgba(15,45,68,.31);transform:translateY(140%);opacity:0;pointer-events:none;transition:transform .37s,opacity .37s}.toast.show{opacity:1;transform:translateY(0);pointer-events:auto}.toast-icon{font-size:25px;color:#b5d9ea}.toast div{flex:1;min-width:0}.toast b{font-size:13px;display:block;margin-bottom:4px}.toast div span{font-size:11px;line-height:1.6;color:#c4d9e6;display:block}.toast button{align-self:start;border:0;color:#c8deeb;background:transparent;font-size:22px;line-height:1}.noscript{position:fixed;bottom:0;background:#633;color:white;padding:20px;z-index:999}
@media(max-width:1320px){.main-nav{gap:21px}.header-cta{padding:13px 14px}.page-width{width:calc(100% - 72px)}.hero-inner{gap:27px}.hero h1{font-size:clamp(48px,5.6vw,79px)}.service-shell{grid-template-columns:minmax(300px,.8fr) minmax(460px,1.2fr);gap:40px}.service-story h2{font-size:56px}.service-secondary{font-size:12px}.orb-tooltip{min-width:180px;font-size:10px}}
@media(max-width:1050px){.site-header{padding:0 28px;gap:20px}.main-nav{gap:15px}.main-nav .nav-link{font-size:12px}.header-cta{display:none}.page-width{width:calc(100% - 54px)}.hero-inner{grid-template-columns:1fr 1fr;gap:5px}.hero h1{font-size:clamp(44px,5.7vw,64px)}.hero-lede{font-size:14px}.hero-actions .button{font-size:12px}.hero-proof{gap:10px}.hero-side-note{display:none}.service-shell{display:flex;flex-direction:column;align-items:stretch;padding-top:28px}.service-story{max-width:860px;margin:auto}.service-visual{width:100%}.gallery-viewport{height:500px}.service-story h2{font-size:67px}.door-grid{grid-template-columns:1fr;gap:55px}.door-visual-wrap{order:2}.door-copy{order:1}.door-copy h2{max-width:800px}.door-visual{height:480px}.closing-inner{gap:5%}}
@media(max-width:720px){:root{--header-h:69px}.page-width{width:calc(100% - 36px)}.site-header{padding:0 18px;gap:12px}.brand-name{font-size:16px}.brand-emblem{width:36px;height:36px}.main-nav{display:none}.mobile-toggle{display:block;margin-left:auto;background:transparent;border:0;color:#244b67;font-size:24px}.mobile-nav{display:grid;position:fixed;top:var(--header-h);left:0;right:0;z-index:44;padding:18px;background:#f9fbfc;box-shadow:0 10px 25px #19395415;gap:12px}.mobile-nav[hidden]{display:none}.mobile-nav a{padding:10px 6px;color:#31556f;font-weight:650;font-size:13px}.demo-ribbon{font-size:8px;top:120px}.hero{min-height:100svh;padding-top:var(--header-h);padding-bottom:80px}.hero-inner{grid-template-columns:1fr;gap:0}.hero-left{order:2}.hero-copy{order:1;padding:33px 0 0}.hero h1{font-size:clamp(48px,10vw,73px);margin:16px 0 16px}.hero-lede{font-size:13px;line-height:1.8}.hero-actions{margin-top:20px;gap:6px}.hero-actions .button{padding:13px 13px;font-size:11px;min-height:46px;gap:9px}.hero-proof{display:none}.hero-left .section-eyebrow{display:none}.orbit-box{width:min(380px,87vw);margin:20px auto 2px}.orb-tooltip{min-width:170px;font-size:9px}.hero-index{display:none}.scroll-prompt{bottom:17px;font-size:8px;gap:8px}.service-section{padding:calc(var(--header-h) + 16px) 0 60px}.service-story h2,.door-copy h2{font-size:clamp(42px,10.3vw,58px)}.service-intro{font-size:14px}.service-metrics{gap:8px}.service-metrics>div{gap:6px}.service-metrics span{font-size:9px}.service-actions .button{font-size:12px}.visual-header h3{font-size:20px}.gallery-viewport{height:320px}.gallery-card{flex-basis:80%;border-radius:12px}.gallery-shell{border-radius:16px;padding-top:11px}.gallery-caption{font-size:10px}.gallery-stamp{bottom:10px;font-size:9px}.gallery-knob{height:37px;width:37px;font-size:17px}.door-grid{gap:20px}.door-visual{height:350px}.door-visual-note{font-size:10px}.closing-section{padding:70px 0}.closing-inner{grid-template-columns:1fr;gap:30px}.closing-inner h2{font-size:55px}.closing-card{padding:28px}.footer{padding-top:33px}.footer-inner{align-items:flex-start;flex-direction:column;gap:22px;padding-bottom:23px}.footer-links{flex-wrap:wrap;gap:15px}.footer-legal{flex-direction:column;gap:8px}.intro-subtext{font-size:8px;bottom:13%;letter-spacing:.16em}.intro-skip{bottom:25px;right:21px}.intro.is-leaving .intro-logo-holder{transform:translate(calc(-50vw + 85px),calc(-50vh + 63px)) scale(.10)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}.intro{display:none!important}html[data-intro=new] body{overflow:auto}html[data-intro=new] .site-header,html[data-intro=new] main,html[data-intro=new] .footer{opacity:1}}


/* refinements.css */
/* POLISHER.HU — V2 refinements. Layered over the original prototype CSS. */
:root { --motion-slow: 720ms; }
html { scroll-behavior: auto; }

/* Original artwork in the permanent top-left header. The actual five original
   icon areas remain clickable in the expanded artwork. */
.site-header { gap: clamp(16px,2vw,30px); }
.brand-group { display:flex; align-items:center; gap:14px; flex:0 0 auto; min-width:0; }
.brand-wordmark { display:block; position:relative; }
.header-logo { position:relative; flex:0 0 72px; width:72px; height:68px; z-index:60; }
.header-logo-panel { position:absolute; top:0; left:0; width:72px; aspect-ratio:697/650; border-radius:10px; background:#fff; border:1px solid rgba(156,177,191,.25); box-shadow:0 2px 11px rgba(26,51,70,.04); transition:width 550ms cubic-bezier(.2,.74,.22,1),box-shadow 550ms ease; }
.header-logo:hover .header-logo-panel, .header-logo:focus-within .header-logo-panel,.header-logo.is-expanded .header-logo-panel { width:174px; box-shadow:0 18px 50px rgba(20,47,69,.26); }
.header-logo-image {display:block;width:100%;height:auto;aspect-ratio:697/650;object-fit:contain;border-radius:9px;}
.header-logo-toggle {position:absolute;inset:0;width:100%;height:100%;background:transparent;border:0;cursor:zoom-in;z-index:1;}
.header-logo:hover .header-logo-toggle,.header-logo.is-expanded .header-logo-toggle {cursor:zoom-out;}
.header-hotspots {position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .25s ease .16s;z-index:2;}
.header-logo:hover .header-hotspots,.header-logo:focus-within .header-hotspots,.header-logo.is-expanded .header-hotspots {opacity:1;pointer-events:auto;}
.header-hotspots .orb {z-index:4;}
.header-hotspots .orb-tooltip {font-size:10px;letter-spacing:0;min-width:max-content;padding:10px 12px;z-index:15;}
.header-hotspots .orb:hover,.header-hotspots .orb:focus-visible {background:rgba(80,149,195,.14);}
.header-hotspots .orb-body .orb-tooltip,.header-hotspots .orb-glass .orb-tooltip {min-width:max-content;}
.theme-toggle {border:1px solid #cddae2;background:rgba(255,255,255,.58);color:#335a78;border-radius:9px;height:42px;display:inline-flex;gap:8px;align-items:center;justify-content:center;padding:0 12px;font-weight:680;font-size:12px;white-space:nowrap;transition:background .3s,border-color .3s;}
.theme-toggle:hover,.theme-toggle:focus-visible {background:#e8f1f6;}
.theme-symbol {font-size:19px;line-height:1;}
.main-nav {margin-left:auto;}

/* Same ordering on every service: information always LEFT; photo/gallery RIGHT. */
.headlight-section {overflow:visible;}
.service-shell,.door-grid {display:grid;grid-template-columns:minmax(340px,.84fr) minmax(460px,1.16fr);gap:clamp(30px,4.2vw,78px);align-items:start;min-height:calc(100svh - 220px);}
.service-visual,.door-visual-wrap {position:sticky;top:calc(var(--header-h) + 28px);align-self:start;min-width:0;}
.service-story,.door-copy {min-width:0;}
.service-section {min-height:100svh;padding:calc(var(--header-h) + 32px) 0 78px;}
.door-grid .door-copy{grid-column:1;grid-row:1;}
.door-grid .door-visual-wrap{grid-column:2;grid-row:1;}
.door-visual {height:clamp(340px,33vw,520px);}
/* The gallery retains its own size while an accordion expands alongside it. */
.gallery-shell {contain:layout;}
.gallery-viewport {height:clamp(300px,30vw,455px);}
.gallery-card {backface-visibility:hidden;}

/* Calm, smooth accordions. Closing waits until the 620ms height animation
   finishes before changing the native <details> open state. */
.faq details {overflow:hidden;}
.faq .faq-content {overflow:hidden;}
.faq .faq-content p {padding:0 20px 20px 0;margin:0;font-size:12px;line-height:1.9;}
.faq summary {padding:20px 0;transition:color .3s ease;}
.faq summary:hover {color:#397ca8;}
.faq summary span {transition:transform .55s cubic-bezier(.2,.8,.2,1);}

/* DARK THEME: intentional restyling rather than inversion, so the original
   white artwork is retained and images keep natural colors. */
html[data-theme=dark] {color-scheme:dark;--ink:#eaf1f7;--muted:#b7c4d1;--muted2:#94a8b6;--line:#30475a;--pale:#223849;--paper:#142332;--ice:#182a39;--shadow:0 25px 74px rgba(0,0,0,.3);}
html[data-theme=dark] body {background:#101c28;color:#e4edf5;}
html[data-theme=dark] .site-header {background:rgba(14,26,38,.94);border-bottom:1px solid #2d4252;box-shadow:0 5px 22px #060e1945;}
html[data-theme=dark] .brand-name,html[data-theme=dark] .footer-brand {color:#f0f5fa;}
html[data-theme=dark] .brand-name small,html[data-theme=dark] .footer-sub {color:#91a7b8;}
html[data-theme=dark] .nav-link {color:#adbecc;}
html[data-theme=dark] .nav-link:hover,html[data-theme=dark] .nav-link.is-active {color:#e4f1fa;}
html[data-theme=dark] .nav-link.is-active:after {background:#8abfdf;}
html[data-theme=dark] .theme-toggle {background:#1f374a;border-color:#435c70;color:#eaf3fa;}
html[data-theme=dark] .theme-toggle:hover {background:#2c4a61;}
html[data-theme=dark] .hero {background:linear-gradient(126deg,#122130 9%,#1d3445 52%,#102434 100%);}
html[data-theme=dark] .hero-glow {background:radial-gradient(ellipse 42% 60% at 29% 52%,rgba(57,88,109,.4),transparent 100%);}
html[data-theme=dark] .hero::after {opacity:.45;}
html[data-theme=dark] .hero h1,html[data-theme=dark] .service-story h2,html[data-theme=dark] .door-copy h2 {color:#eef5fb;}
html[data-theme=dark] .hero h1 span,html[data-theme=dark] .service-story h2 em,html[data-theme=dark] .door-copy h2 em {color:#87bfe3;}
html[data-theme=dark] .tagline,html[data-theme=dark] .section-eyebrow,html[data-theme=dark] .section-label {color:#a1cbe2;}
html[data-theme=dark] .hero-lede,html[data-theme=dark] .service-intro {color:#c2d0db;}
html[data-theme=dark] .service-secondary,html[data-theme=dark] .faq .faq-content p {color:#9eb1c1;}
html[data-theme=dark] .hero-proof,html[data-theme=dark] .scroll-prompt,html[data-theme=dark] .counter,html[data-theme=dark] .hero-side-note {color:#a2b5c5;}
html[data-theme=dark] .hero-proof b {color:#bddcf0;}
html[data-theme=dark] .orbit-box {background:#fdfdfd;border-radius:18px;padding:3px;filter:drop-shadow(0 17px 44px rgba(0,0,0,.22));}
html[data-theme=dark] .headlight-section {background:#142330;}
html[data-theme=dark] .door-section {background:linear-gradient(125deg,#1a3042 0%,#142533 68%,#1d3648 100%);}
html[data-theme=dark] .section-label>span {border-color:#3f6177;color:#a9d7ee;}
html[data-theme=dark] .service-metrics,html[data-theme=dark] .faq {border-color:#30485a;}
html[data-theme=dark] .service-metrics>div strong {color:#e2f2fc;}
html[data-theme=dark] .service-metrics>div span {color:#91a8b9;}
html[data-theme=dark] .faq details {border-color:#30485a;}
html[data-theme=dark] .faq summary {color:#d6e5f0;}
html[data-theme=dark] .faq summary:hover {color:#9cd5f3;}
html[data-theme=dark] .faq summary span {color:#86bfdf;}
html[data-theme=dark] .gallery-shell {background:#203648;border-color:#34556a;}
html[data-theme=dark] .gallery-caption {color:#c8d7e1;}
html[data-theme=dark] .gallery-arrows button {background:#2c4a61;border-color:#45677e;color:#e2f3fd;}
html[data-theme=dark] .gallery-arrows button:hover {background:#395f78;}
html[data-theme=dark] .visual-footnote {color:#9db0bd;}
html[data-theme=dark] .visual-footnote strong {color:#b3c9d8;}
html[data-theme=dark] .visual-header h3 {color:#e4f0f8;}
html[data-theme=dark] .mini-label {color:#b0cede;}
html[data-theme=dark] .button-primary,html[data-theme=dark] .header-cta {background:#367cac;color:white;}
html[data-theme=dark] .button-primary:hover,html[data-theme=dark] .header-cta:hover {background:#4994c5;}
html[data-theme=dark] .button-ghost {background:#1d3445;border-color:#4f6e83;color:#d2eafb;}
html[data-theme=dark] .button-ghost:hover {background:#2b4c64;}
html[data-theme=dark] .button-text {color:#bee4f8;}
html[data-theme=dark] .button-text:hover {background:#26485f;}
html[data-theme=dark] .door-visual-note,html[data-theme=dark] .door-photo-tag {color:#d2e1e9;}
html[data-theme=dark] .closing-section {background:#0a1722;}
html[data-theme=dark] .footer {background:#101e2b;}
html[data-theme=dark] .footer-legal {border-color:#304456;color:#8c9fac;}
html[data-theme=dark] .footer-links a {color:#bdcdd8;}
html[data-theme=dark] .footer-links a:hover {color:#fff;}
html[data-theme=dark] .replay {background:#243e50;border-color:#4c6c80;color:#d1eaf9;}
html[data-theme=dark] .replay:hover {background:#33576d;}
html[data-theme=dark] .mobile-nav {background:#152b3d;}
html[data-theme=dark] .mobile-nav a {color:#e0eff8;}
html[data-theme=dark] .mobile-toggle {color:#eaf2f8;}
html[data-theme=dark] .demo-ribbon {background:#284053;color:#d2e4ef;}
html[data-theme=dark] .scroll-mouse {border-color:#a4c0d1;}
html[data-theme=dark] .scroll-arrow {color:#b3d5ec;}

@media(max-width:1320px){
 .service-shell,.door-grid {grid-template-columns:minmax(310px,.92fr) minmax(400px,1.08fr);gap:30px;}
 .brand-group{gap:9px;}
 .brand-wordmark{font-size:16px;}
 .main-nav{gap:16px;}
 .theme-label{display:none;}
 .theme-toggle{width:42px;padding:0;}
}
@media(max-width:1050px){
 .service-shell,.door-grid {display:flex;flex-direction:column;align-items:stretch;}
 .service-visual,.door-visual-wrap {position:relative;top:auto;align-self:auto;width:100%;}
 .door-grid .door-copy,.door-grid .door-visual-wrap {order:initial;}
 .door-grid .door-copy{order:0;}
 .door-grid .door-visual-wrap{order:1;}
 .gallery-viewport{height:clamp(300px,46vw,500px);}
 .brand-wordmark {font-size:14px;}
 .brand-name small{letter-spacing:.1em;}
}
@media(max-width:720px){
 .site-header{gap:9px;}
 .header-logo{width:49px;height:47px;flex-basis:49px;}
 .header-logo-panel{width:49px;}
 .header-logo:hover .header-logo-panel,.header-logo:focus-within .header-logo-panel,.header-logo.is-expanded .header-logo-panel{width:min(174px,47vw);}
 .brand-group{gap:7px;}
 .brand-wordmark{font-size:14px;}
 .brand-wordmark small{font-size:6px;letter-spacing:.09em;}
 .theme-toggle{width:38px;height:38px;flex-shrink:0;margin-left:auto;}
 .mobile-toggle{margin-left:0;}
 .service-section{padding-top:calc(var(--header-h) + 21px);}
 .gallery-viewport{height:330px;}
 .service-shell,.door-grid{gap:35px;}
 .hero{padding-top:calc(var(--header-h) + 10px);}
 .header-hotspots .orb-tooltip{font-size:8px;padding:8px;}
}
@media(max-width:380px){.brand-wordmark{font-size:12px}.brand-wordmark small{font-size:5px}.header-logo{width:42px;flex-basis:42px;height:40px}.header-logo-panel{width:42px}}
@media(prefers-reduced-motion:reduce){.header-logo-panel{transition:none}.faq summary span{transition:none}}
/* Touchscreen opening uses a deliberate tap, never a synthetic hover. */
@media (hover:none) {
  .header-logo:not(.is-expanded):hover .header-logo-panel {width:72px;box-shadow:0 2px 11px rgba(26,51,70,.04);}
  .header-logo:not(.is-expanded):hover .header-hotspots {opacity:0;pointer-events:none;}
  .header-logo:not(.is-expanded) .header-logo-toggle {z-index:5;}
  .header-logo.is-expanded .header-logo-toggle {z-index:1;}
}
@media (hover:none) and (max-width:720px) {
  .header-logo:not(.is-expanded):hover .header-logo-panel {width:49px;}
}
@media (hover:none) and (max-width:380px) {
  .header-logo:not(.is-expanded):hover .header-logo-panel {width:42px;}
}
@media(min-width:721px){.intro.is-leaving .intro-logo-holder{transform:translate(calc(-50vw + 102px),calc(-50vh + 67px)) scale(.145)}}
@media(max-width:720px){.intro.is-leaving .intro-logo-holder{transform:translate(calc(-50vw + 45px),calc(-50vh + 45px)) scale(.09)}}


/* v3.css */
/* Polisher.hu V3 – focused layout, gallery, theme and scrolling refinements. */
:root{scroll-behavior:auto}
html{scroll-behavior:auto}
/* Light mode remains available. Dark is the initial browser preference. */
.service-section{padding-bottom:128px}
/* Both service layouts have fixed, independent right columns. */
.service-visual,.door-visual-wrap{position:sticky;top:calc(var(--header-h) + 28px);align-self:start}
.service-visual .service-actions,.door-visual-wrap .service-actions{margin:17px 0 10px;display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap}
.service-visual .service-actions .button,.door-visual-wrap .service-actions .button{flex:1 1 44%;white-space:nowrap;text-align:center;justify-content:center}
.service-story .service-actions,.door-copy .service-actions{display:none}
.visual-footnote{margin-top:12px}
.door-visual-wrap .door-visual-note{margin:10px 0 0}
/* Every partial thumbnail remains pointer-sensitive and can float into center. */
.gallery-card{cursor:pointer;}
.gallery-card.is-current{cursor:ew-resize;}
.gallery-card:not(.is-current):hover {outline:2px solid rgba(112,185,226,.45);outline-offset:-2px}
.gallery-viewport{user-select:none}
/* Triple-chevron scroll cue: top -> middle -> bottom, then all reset,
   repeating once in 5 seconds. Chevron defined as 2 border strokes. */
.chevron-scroll{position:fixed;bottom:22px;opacity:0;pointer-events:none;left:50%;transform:translateX(-50%);z-index:6;display:flex;align-items:center;flex-direction:column;gap:6px;min-width:144px;text-decoration:none;color:#819daf;cursor:pointer;transition:color .25s,opacity .35s}
.stage-section.cue-active>.chevron-scroll,.closing-section.cue-active>.chevron-scroll{opacity:1;pointer-events:auto}
.chevron-scroll:hover{color:#4da4d9}
.chevron-label{font-size:8px;font-weight:790;letter-spacing:.2em;white-space:nowrap}
.chevron-stack{height:57px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding-bottom:1px}
.chevron-chevron{display:block;width:22px;height:15px;position:relative;transform-origin:center;animation:chevronPulse 5s ease-in-out infinite;filter:drop-shadow(0 1px 2px rgba(36,119,163,.15))}
.chevron-chevron:before,.chevron-chevron:after{content:'';position:absolute;top:5px;width:13px;height:3px;border-radius:3px;background:currentColor}
.chevron-chevron:before{left:0;transform:rotate(36deg);transform-origin:right center}
.chevron-chevron:after{right:0;transform:rotate(-36deg);transform-origin:left center}
.chevron-chevron:nth-child(1){animation-delay:0s}
.chevron-chevron:nth-child(2){animation-delay:0s}
.chevron-chevron:nth-child(3){animation-delay:0s}
/* Scale one arrow at a time: full-cycle timings 0-1.2s top,
   1.2-2.4s center, 2.4-3.6s bottom, 3.6-5s reset/quiet. */
.chevron-chevron:nth-child(1){animation-name:chevronTop}
.chevron-chevron:nth-child(2){animation-name:chevronMiddle}
.chevron-chevron:nth-child(3){animation-name:chevronBottom}
@keyframes chevronTop{0%,2%,82%,100%{transform:scale(1);color:inherit}11%,78%{transform:scale(1.6);color:#80c9f2}}
@keyframes chevronMiddle{0%,25%,82%,100%{transform:scale(1);color:inherit}36%,78%{transform:scale(1.6);color:#80c9f2}}
@keyframes chevronBottom{0%,49%,82%,100%{transform:scale(1);color:inherit}61%,78%{transform:scale(1.6);color:#80c9f2}}
html[data-theme=dark] .chevron-scroll{color:#9bbbd2}
html[data-theme=dark] .chevron-scroll:hover{color:#e6f5ff}
.hero .chevron-scroll{bottom:16px}
/* Service information can grow below the fixed gallery without pushing it. */
.service-shell,.door-grid{align-items:start}
@media(max-width:1050px){
 .service-visual,.door-visual-wrap{position:relative;top:auto;width:100%}
 .service-section{padding-bottom:115px}
 .chevron-scroll{bottom:20px}
}
@media(max-width:720px){
 .hero{padding-bottom:112px}
 .service-section{padding-bottom:110px}
 .chevron-stack{transform:scale(.83);margin-bottom:-4px}
 .chevron-scroll{bottom:14px}
 .service-visual .service-actions,.door-visual-wrap .service-actions{flex-direction:column}
 .service-visual .service-actions .button,.door-visual-wrap .service-actions .button{width:100%;flex:auto}
}
@media(prefers-reduced-motion:reduce){.chevron-chevron{animation:none!important}}


/* v4.css */
/* POLISHER.HU V5 (V4 styles retained): five unified service sections, calm scrolling and V2 mouse cue. */
:root,html{scroll-behavior:auto;}
.main-nav{gap:clamp(9px,1vw,19px)}
.main-nav .nav-link{font-size:clamp(10px,.78vw,12px);white-space:nowrap}
.site-header{gap:clamp(12px,1.6vw,24px)}
.brand-group{gap:10px}
.brand-wordmark{font-size:clamp(13px,1.05vw,18px)}
.header-cta{padding:14px 16px;font-size:12px}
.demo-ribbon{letter-spacing:.15em}
.service-section{min-height:100svh;padding-bottom:132px}
.service-shell{align-items:start;min-height:calc(100svh - 240px)}
.service-visual{position:sticky;top:calc(var(--header-h) + 28px);align-self:start;min-width:0;}
.service-story{min-width:0}
.service-story h2{font-size:clamp(41px,4.2vw,69px)}
.service-actions{margin:17px 0 10px;display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap}
.service-actions .button{flex:1 1 44%;white-space:nowrap;justify-content:center}
.service-bottom-index{pointer-events:none}
/* Default gallery dimensions are identical for every service. */
.gallery-shell{contain:layout}
.gallery-viewport{height:clamp(305px,30vw,455px)}
.gallery-card{backface-visibility:hidden;cursor:pointer}
.gallery-card.is-current{cursor:ew-resize}
.gallery-card:not(.is-current):hover{outline:2px solid rgba(112,185,226,.45);outline-offset:-2px}
.gallery-viewport{user-select:none}
/* The once-per-section V2 scroll mouse, visible only on the active section. */
.chevron-scroll{display:flex;position:fixed;bottom:20px;left:50%;transform:translateX(-50%);flex-direction:column;align-items:center;justify-content:center;gap:8px;min-width:150px;opacity:0;pointer-events:none;z-index:7;color:#93b8d0;text-decoration:none;transition:opacity .35s,color .2s}
.stage-section.cue-active > .chevron-scroll{opacity:1;pointer-events:auto}
.chevron-scroll .scroll-mouse{height:33px;width:21px;border:1.8px solid currentColor;border-radius:12px;display:flex;justify-content:center;align-items:flex-start;padding-top:7px;box-shadow:0 2px 14px #001b2e1a}
.chevron-scroll .scroll-mouse span{width:3px;height:7px;border-radius:5px;background:currentColor;animation:scrollWheelV4 2.15s cubic-bezier(.3,0,.35,1) infinite}
.chevron-scroll .chevron-label{font-size:8px;letter-spacing:.22em;font-weight:790;white-space:nowrap}
@keyframes scrollWheelV4{0%,12%{transform:translateY(0);opacity:1}78%{transform:translateY(10px);opacity:0}100%{transform:translateY(10px);opacity:0}}
.chevron-scroll:hover{color:#e5f5ff}
/* Contact + footer never display a scroll indicator. */
.closing-section .chevron-scroll,.footer .chevron-scroll{display:none!important}
/* Balanced background variations, preserving dark default and light toggle. */
.piano-section{background:linear-gradient(128deg,#f3f6f8 0%,#fff 72%)}
.glass-section{background:linear-gradient(125deg,#f6faff 0%,#edf6fa 100%)}
.body-section{background:linear-gradient(120deg,#f7f9fb 0%,#fff 100%)}
html[data-theme=dark] .piano-section{background:linear-gradient(120deg,#192c3a 0%,#101e2c 100%)}
html[data-theme=dark] .glass-section{background:linear-gradient(120deg,#122737 0%,#152f3f 100%)}
html[data-theme=dark] .body-section{background:linear-gradient(115deg,#192d3d 0%,#142534 100%)}
html[data-theme=dark] .scroll-mouse{border-color:#9bbdd2}
html[data-theme=dark] .chevron-scroll{color:#9bbdd2}
html[data-theme=light] .chevron-scroll{color:#497f9b}
html[data-theme=light] .chevron-scroll:hover{color:#225a83}
@media(max-width:1420px){.main-nav{gap:10px}.site-header{gap:15px}.brand-group{gap:9px}.header-cta{padding:13px 11px}}
@media(max-width:1200px){.main-nav{display:none}.mobile-toggle{display:block!important;background:transparent;border:0;font-size:25px;color:#a6c7dc}.mobile-nav{display:grid;position:fixed;top:var(--header-h);left:0;right:0;z-index:44;padding:18px 28px;background:#162d3c;box-shadow:0 10px 25px #081c2b5f;gap:10px}.mobile-nav[hidden]{display:none}.mobile-nav a{font-size:13px;padding:8px 6px;color:#bcd5e5}.header-cta{margin-left:auto}}
@media(max-width:1050px){.service-visual{position:relative;top:auto;width:100%}.service-shell{display:flex;flex-direction:column;align-items:stretch}.gallery-viewport{height:clamp(300px,46vw,490px)}}
@media(max-width:720px){.header-cta{display:none}.service-section{padding-bottom:110px}.service-story h2{font-size:clamp(40px,10vw,58px)}.gallery-viewport{height:330px}.service-actions{flex-direction:column}.service-actions .button{width:100%;flex:auto}.chevron-scroll{bottom:13px}.chevron-scroll .scroll-mouse{transform:scale(.89)}}
@media(prefers-reduced-motion:reduce){.chevron-scroll .scroll-mouse span{animation:none!important}}


/* v7.css */
/* Polisher.hu V7: gallery/title removal + demo review space */
.service-visual { top:calc(var(--header-h) + 8px); }
.service-visual .visual-header { display:none; }
.service-visual .gallery-controls .gallery-counter { margin-left:auto; margin-right:16px; font-size:11px; font-weight:750; white-space:nowrap; }
.service-visual .gallery-shell { margin-top:0; }
.service-visual .service-actions { margin-top:13px; margin-bottom:7px; }
.service-visual .visual-footnote { margin-top:5px; line-height:1.5; }
/* Fixed-size two-card row, intentionally visually secondary to the gallery. */
.review-preview {margin-top:18px; padding:16px 0 0; border-top:1px solid var(--line,#d9e5ee);}
.review-heading {display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:11px;}
.review-eyebrow {font-size:9px;letter-spacing:.13em;font-weight:740;color:#668aa3;}
.review-heading h3 {margin:4px 0 0; font-size:21px;line-height:1.1;letter-spacing:-.03em;color:var(--ink,#223648);}
.review-demo-badge {white-space:nowrap; font-size:9px;letter-spacing:.07em;font-weight:850; color:#59809b; background:rgba(108,167,201,.11);border:1px solid rgba(118,166,194,.35);border-radius:100px;padding:7px 10px;}
.review-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;}
.review-card {min-width:0; border:1px solid #e2e9ee;background:rgba(249,251,253,.97);border-radius:16px;padding:13px 14px 11px;box-shadow:0 5px 14px rgba(37,69,92,.045);display:flex;flex-direction:column;gap:8px;}
.review-top {display:flex;align-items:center;gap:7px;min-width:0;}
.platform-mark {display:grid;place-items:center;width:23px;height:23px;flex:none;border-radius:7px;font-size:17px;font-weight:900;line-height:1;background:#fff;}
.platform-google {color:#4285f4;border:1px solid #dfe7ef;}
.platform-facebook {font-family:Arial,sans-serif;background:#1877f2;color:#fff; padding-top:5px; font-size:21px;}
.review-platform {font-size:10px;font-weight:800;color:#425e74;min-width:0;}
.review-stars {font-size:11px;letter-spacing:1px;color:#e8ad42;white-space:nowrap;margin-left:auto;}
.review-quote {font-size:11px;line-height:1.55; color:#516878;margin:0;min-height:3em;}
.review-footer {display:flex;align-items:center;gap:6px;margin-top:auto;padding-top:7px;border-top:1px solid #e6edf1;color:#76909e;font-size:9px;font-weight:650;}
.review-avatar {height:19px;width:19px;flex:none;display:grid;place-items:center;border-radius:50%;background:#dce8ef;color:#4c7995;font-size:10px;font-weight:800;}
.review-date {margin-left:auto; font-size:8px;letter-spacing:.06em;white-space:nowrap;opacity:.83;}
.review-disclaimer {font-size:9px;color:#8297a5;line-height:1.45;margin:9px 3px 0;}
html[data-theme=dark] .review-preview {border-top-color:#34556a;}
html[data-theme=dark] .review-heading h3 {color:#e4f1fa;}
html[data-theme=dark] .review-card {background:#1c3242;border-color:#315164;box-shadow:0 5px 15px #07131c12;}
html[data-theme=dark] .review-platform {color:#cbdbe7;}
html[data-theme=dark] .review-quote {color:#bfd0dd;}
html[data-theme=dark] .review-footer {border-top-color:#355165;color:#90acbe;}
html[data-theme=dark] .review-avatar {background:#35576d;color:#e1f1fb;}
html[data-theme=dark] .review-disclaimer {color:#8fa6b7;}
@media(max-width:1350px){.review-top{flex-wrap:wrap}.review-stars{margin-left:0}.review-card{padding:12px}}
@media(max-width:1050px){.service-visual{position:relative;top:auto}.review-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:650px){.review-grid{grid-template-columns:1fr}.review-top{flex-wrap:nowrap}.review-stars{margin-left:auto}.review-card{padding:14px}.review-preview{margin-top:20px}.review-heading h3{font-size:19px}}
/* Make enough vertical room for the new review row on typical laptop displays. */
@media(min-width:1051px){
  .service-visual{margin-top:-20px;top:calc(var(--header-h) + 6px);}
  .service-visual .gallery-viewport{height:clamp(285px,24vw,345px);}
}


/* v8.css */

/* V8 – review streams demo variations */
.review-preview--stream{margin-top:16px}
.review-lanes--paired{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.review-lane{min-width:0}
.review-lane-head{display:flex;align-items:center;gap:8px;margin-bottom:9px;color:var(--ink,#223648)}
.review-lane-head strong{font-size:12px;letter-spacing:.01em}
.review-lane-head span:last-child{margin-left:auto;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#6d8ea6;font-weight:720}
.review-lane-viewport{position:relative;overflow:hidden;border:1px solid #dfe8ee;border-radius:18px;background:rgba(247,250,252,.85);box-shadow:inset 0 1px 0 rgba(255,255,255,.55)}
.review-preview--vertical-demo .review-lane-viewport{height:338px;padding:10px 0}
.review-preview--horizontal-demo .review-lane-viewport{height:210px;padding:10px}
.review-lane-track{will-change:transform}
.review-lane-track--vertical{display:flex;flex-direction:column;gap:14px}
.review-lane-track--horizontal{display:flex;gap:14px;align-items:stretch}
.review-card--marquee{flex:none;cursor:pointer;transition:transform .35s ease, box-shadow .35s ease,border-color .35s ease}
.review-preview--vertical-demo .review-card--marquee{width:auto;min-height:126px;margin:0 10px}
.review-preview--horizontal-demo .review-card--marquee{width:290px;min-height:168px}
.review-lane.is-hovered .review-card--marquee:hover,.review-card--marquee:focus-visible{transform:translateY(-2px);box-shadow:0 10px 22px rgba(32,59,80,.10);border-color:#86b6d0;outline:none}
.review-preview--stream .review-disclaimer{margin-top:11px}
html[data-theme=dark] .review-lane-head{color:#e4f1fa}
html[data-theme=dark] .review-lane-head span:last-child{color:#90acbe}
html[data-theme=dark] .review-lane-viewport{background:rgba(18,33,44,.85);border-color:#35566b;box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
@media(max-width:1050px){
  .review-lanes--paired{grid-template-columns:1fr}
  .review-preview--horizontal-demo .review-card--marquee{width:min(84vw,290px)}
}


/* v9.css */
/* Polisher.hu V9 – kézzel, külön-külön görgethető véleményoszlopok */
.review-preview--manual{margin-top:18px}
.review-scroll-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.review-scroll-column{min-width:0}
.review-scroll-column .review-lane-head{display:flex;align-items:center;gap:7px;margin-bottom:9px}
.review-scroll-column .review-lane-head strong{color:var(--ink,#223648);font-size:12px}
.review-scroll-column .review-lane-head>span:last-child{margin-left:auto;color:#7593a6;font-size:9px;line-height:1.2;text-align:right}
.review-scroll-window{
 --review-card-height:171px;--review-gap:12px;
 height:225px; /* Biztonsági kezdeti méret; a JS pontosan 100% + 30%-ra állítja. */
 overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;
 scroll-behavior:auto;scrollbar-width:thin;scrollbar-color:#759cb4 transparent;
 border-radius:15px;outline-offset:3px;
}
.review-scroll-window:focus-visible{outline:2px solid #89b6d3}
.review-scroll-window::-webkit-scrollbar{width:6px}
.review-scroll-window::-webkit-scrollbar-thumb{background:#759cb4;border-radius:9px}
.review-scroll-track{display:flex;flex-direction:column;gap:var(--review-gap);padding-right:3px;padding-bottom:1px}
.review-card--scroll{
 flex:none;box-sizing:border-box;height:auto;
 min-height:150px;display:flex;flex-direction:column;gap:8px;
}
.review-card--scroll .review-top{flex-wrap:wrap;gap:3px 7px}
.review-card--scroll .review-stars{margin-left:auto}
.review-card--scroll .review-quote{font-size:10.5px;line-height:1.45;min-height:0;overflow:visible;display:block}
.review-card--scroll .review-footer{margin-top:auto;min-width:0;flex-wrap:wrap;gap:4px 6px}
.review-card--scroll .review-date{margin-left:auto}
html[data-theme=dark] .review-scroll-column .review-lane-head strong{color:#e3eff8}
html[data-theme=dark] .review-scroll-column .review-lane-head>span:last-child{color:#a6bdce}
@media(max-width:1300px){.review-scroll-window{--review-card-height:182px}}
@media(max-width:1050px){.review-scroll-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:680px){
 .review-scroll-grid{grid-template-columns:1fr;gap:18px}
 .review-scroll-window{--review-card-height:156px}
 .review-card--scroll .review-quote{font-size:11px}
}

/* V10 – márkaaccentusok, ikonos szekciócímke és egységes CTA-színezés */
:root{
  --polisher-turquoise:#39cbbd;
  --polisher-turquoise-strong:#2bc0b1;
  --polisher-turquoise-soft:#d9f8f3;
  --polisher-booking-blue:#367cac;
  --polisher-booking-blue-hover:#4b91c1;
}

.section-label .section-icon-badge{
  width:46px;height:46px;padding:3px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.92), rgba(226,250,247,.95));
  border:1px solid rgba(57,203,189,.55);
  box-shadow:0 8px 20px rgba(57,203,189,.14), inset 0 0 0 1px rgba(255,255,255,.6);
}
.section-label .section-icon{
  display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;
}

.service-story h2 em,
.closing-inner h2 em,
.hero h1 span,
.tagline,
.side-note-dot,
.little-dash,
.proof-dot,
.service-metrics strong,
.faq summary span,
.review-eyebrow,
.review-demo-badge,
.gallery-demo-mark{
  color:var(--polisher-turquoise);
}
.hero h1 span,
.service-story h2 em,
.closing-inner h2 em{ text-shadow:0 0 22px rgba(57,203,189,.08); }
.hero-proof b{color:var(--polisher-turquoise)}
.eyebrow-line,.proof-line{background:rgba(57,203,189,.55)}
.gallery-demo-mark{border-color:rgba(57,203,189,.38)}
.review-heading h3{color:var(--polisher-turquoise)}
.review-card[data-platform=google], .review-card[data-platform=facebook]{border-color:rgba(57,203,189,.12)}

button.demo-action[data-demo="quote"],
.button.demo-action[data-demo="quote"]{
  background:linear-gradient(135deg,var(--polisher-turquoise),#62e3d7);
  color:#08343a !important;
  border:1px solid rgba(15,126,118,.18);
  box-shadow:0 12px 28px rgba(57,203,189,.28);
}
button.demo-action[data-demo="quote"]:hover,
.button.demo-action[data-demo="quote"]:hover{
  background:linear-gradient(135deg,#45d8ca,#7be8de);
  color:#082e33 !important;
  box-shadow:0 15px 32px rgba(57,203,189,.33);
}
button.demo-action[data-demo="quote"] span,
.button.demo-action[data-demo="quote"] span{color:inherit}

button.demo-action[data-demo="booking"],
.button.demo-action[data-demo="booking"],
.header-cta,
.button-light.demo-action[data-demo="booking"]{
  background:linear-gradient(135deg,var(--polisher-booking-blue),#4a92c2) !important;
  color:#fff !important;
  border:1px solid rgba(37,97,142,.18);
  box-shadow:0 12px 28px rgba(54,124,172,.27);
}
button.demo-action[data-demo="booking"]:hover,
.button.demo-action[data-demo="booking"]:hover,
.header-cta:hover,
.button-light.demo-action[data-demo="booking"]:hover{
  background:linear-gradient(135deg,#4389b9,var(--polisher-booking-blue-hover)) !important;
  color:#fff !important;
}
button.demo-action[data-demo="booking"] .booking-calendar,
.button.demo-action[data-demo="booking"] .booking-calendar{opacity:.9}

/* visszafogott türkiz márkakontúrok */
.gallery-shell,
.review-scroll-window,
.closing-card{
  box-shadow:0 18px 42px rgba(17,43,63,.08), 0 0 0 1px rgba(57,203,189,.08) inset;
}
.orb:hover,.orb:focus-visible,
.header-hotspots .orb:hover,.header-hotspots .orb:focus-visible{
  border-color:rgba(57,203,189,.68);
  background:rgba(57,203,189,.10);
  box-shadow:0 0 0 8px rgba(57,203,189,.08);
}
.nav-link.is-active:after{background:linear-gradient(90deg,var(--polisher-turquoise),#4e91bd)}

html[data-theme=dark] .section-label,
html[data-theme=dark] .tagline,
html[data-theme=dark] .section-eyebrow,
html[data-theme=dark] .review-eyebrow{color:#98d9d1}
html[data-theme=dark] .section-label .section-icon-badge{
  background:radial-gradient(circle at 30% 30%, rgba(240,252,250,.96), rgba(219,248,244,.93));
  border-color:rgba(57,203,189,.6);
  box-shadow:0 8px 24px rgba(57,203,189,.18), 0 0 0 1px rgba(255,255,255,.04) inset;
}
html[data-theme=dark] .service-story h2 em,
html[data-theme=dark] .closing-inner h2 em,
html[data-theme=dark] .hero h1 span,
html[data-theme=dark] .review-heading h3,
html[data-theme=dark] .gallery-demo-mark{color:#5fe2d4}
html[data-theme=dark] .eyebrow-line,
html[data-theme=dark] .proof-line{background:rgba(95,226,212,.55)}
html[data-theme=dark] .gallery-demo-mark{border-color:rgba(95,226,212,.4)}
html[data-theme=dark] .gallery-caption,
html[data-theme=dark] .review-scroll-column .review-lane-head>span:last-child{color:#a9cfd0}
html[data-theme=dark] .gallery-arrows button:hover{background:#21495f}


/* v10_1.css */
/* Polisher.hu V10.1 — pontos V9-es színértékek, változatlan görgetési sebesség */
:root{
  --polisher-v9-turquoise-start:#107a80;
  --polisher-v9-turquoise-end:#17a196;
  --polisher-v9-turquoise-edge:#0b6469;
  --polisher-v9-blue-light:#225780;
  --polisher-v9-blue-dark:#367cac;
}
/* V9 címkiemelések: világosban #3c79a4, sötétben #87bfe3. */
.service-story h2 em{color:#3c79a4 !important;text-shadow:none !important}
html[data-theme=dark] .service-story h2 em{color:#87bfe3 !important;text-shadow:none !important}
/* A grafikus ikonok eredeti vonalrajzát CSS-szűrő színezi türkizre. */
.section-label .section-icon-badge{
  width:48px;height:48px;padding:5px;
  border:1px solid #107a80;
  background:#f1fcfa;
  box-shadow:0 6px 17px rgba(16,122,128,.16);
}
.section-label .section-icon{
  display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;
  filter:url(#polisher-v9-icon-ink);
}
html[data-theme=dark] .section-label .section-icon-badge{
  background:#f1fcfa;border:1px solid #107a80;
  box-shadow:0 6px 18px rgba(16,122,128,.24);
}
/* Google/Facebook vélemények és a többi szakasz változatlanok. */
button.demo-action[data-demo=quote],.button.demo-action[data-demo=quote]{
  background:linear-gradient(112deg,#107a80 0%,#17a196 100%) !important;
  border:1px solid #0b6469 !important;
  color:white !important;
  box-shadow:0 5px 22px rgba(12,155,143,.28),inset 0 1px 0 rgba(255,255,255,.19) !important;
  font-weight:780;
}
button.demo-action[data-demo=quote]:hover,.button.demo-action[data-demo=quote]:hover{
  background:linear-gradient(112deg,#0c878b,#19b2a2) !important;
  border-color:#0b6469 !important;
  color:white !important;
  box-shadow:0 8px 26px rgba(12,175,155,.39) !important;
}
/* Az eredeti, V9-ben ajánlatkérésre használt kék színek a foglaláson. */
button.demo-action[data-demo=booking],.button.demo-action[data-demo=booking],
.header-cta,.button-light.demo-action[data-demo=booking]{
  background:#225780 !important;
  border:1px solid #143f62 !important;
  color:white !important;
  box-shadow:0 12px 25px rgba(30,92,137,.14) !important;
}
button.demo-action[data-demo=booking]:hover,.button.demo-action[data-demo=booking]:hover,
.header-cta:hover,.button-light.demo-action[data-demo=booking]:hover{
  background:#143f62 !important;
  border-color:#10344e !important;
  box-shadow:0 15px 29px rgba(30,92,137,.24) !important;
}
html[data-theme=dark] button.demo-action[data-demo=booking],
html[data-theme=dark] .button.demo-action[data-demo=booking],
html[data-theme=dark] .header-cta,
html[data-theme=dark] .button-light.demo-action[data-demo=booking]{
  background:#367cac !important;border:1px solid #25648d !important;
}
html[data-theme=dark] button.demo-action[data-demo=booking]:hover,
html[data-theme=dark] .button.demo-action[data-demo=booking]:hover,
html[data-theme=dark] .header-cta:hover,
html[data-theme=dark] .button-light.demo-action[data-demo=booking]:hover{
  background:#4994c5 !important;border-color:#25648d !important;
}
/* A rajz teljes képkockájának kör alakú maszkolása: nincs négyszögletes türkiz háttér. */
.section-label .section-icon{
  clip-path:circle(50% at 50% 50%);
}


/* v10_2.css */
/* Polisher.hu V10.2 — színfinomítások, logófrissítés, ikonhover és azonnali beúszás */
:root{
  --polisher-service-blue-light:#3c79a4;
  --polisher-service-blue-dark:#87bfe3;
  --polisher-rim:#107a80;
  --polisher-rim-soft:rgba(23,161,150,.22);
}

/* Címkiemelések: egyezzen a V9 szolgáltatáscímének 2. sorával. */
.hero h1 span,
.service-story h2 em,
.closing-inner h2 em{
  color:var(--polisher-service-blue-light) !important;
  text-shadow:none !important;
}
html[data-theme=dark] .hero h1 span,
html[data-theme=dark] .service-story h2 em,
html[data-theme=dark] .closing-inner h2 em{
  color:var(--polisher-service-blue-dark) !important;
}

/* A vélemények blokk fő színvilága is ugyanaz a kék legyen. */
.review-heading h3,
.review-eyebrow,
.review-demo-badge,
.review-scroll-column .review-lane-head strong,
.review-scroll-column .review-lane-head>span:last-child,
.review-lane-head strong,
.review-lane-head span:last-child{
  color:var(--polisher-service-blue-light) !important;
}
.review-demo-badge{
  background:rgba(60,121,164,.12) !important;
  border-color:rgba(60,121,164,.34) !important;
}
html[data-theme=dark] .review-heading h3,
html[data-theme=dark] .review-eyebrow,
html[data-theme=dark] .review-demo-badge,
html[data-theme=dark] .review-scroll-column .review-lane-head strong,
html[data-theme=dark] .review-scroll-column .review-lane-head>span:last-child,
html[data-theme=dark] .review-lane-head strong,
html[data-theme=dark] .review-lane-head span:last-child{
  color:var(--polisher-service-blue-dark) !important;
}
.review-scroll-window:focus-visible{outline-color:rgba(60,121,164,.55) !important}
.review-scroll-window::-webkit-scrollbar-thumb{background:#6e9fc2 !important}

/* A fejlécben és a fő logón az eredeti logó marad, türkiz karimával körülvéve. */
.intro-logo-holder,
.header-logo-panel,
.orbit-box{
  position:relative;
}
.intro-logo,
.header-logo-image,
.orbit-logo{
  border-radius:28px;
}
.intro-logo-holder::after,
.header-logo-panel::after,
.orbit-box::after{
  content:"";
  position:absolute;
  inset:-6px;
  border-radius:30px;
  border:2px solid var(--polisher-rim);
  box-shadow:0 0 0 5px var(--polisher-rim-soft);
  pointer-events:none;
}
.header-logo-panel::after{inset:-5px}
.orbit-box::after{inset:-8px;border-radius:34px}
html[data-theme=dark] .intro-logo-holder::after,
html[data-theme=dark] .header-logo-panel::after,
html[data-theme=dark] .orbit-box::after{
  box-shadow:0 0 0 6px rgba(23,161,150,.18);
}

/* A szolgáltatásjelölő ikonok türkiz árnyalatúak maradjanak. */
.section-label .section-icon-badge{
  border-color:#107a80 !important;
  background:#f2fcfa !important;
  box-shadow:0 6px 18px rgba(16,122,128,.18) !important;
}
.section-label .section-icon{
  filter:url(#polisher-v9-icon-ink);
}

/* Külön szolgáltatásikonok a logón — hoverre 30%-kal nőjenek, egymásra is lóghatnak. */
.orbit-hotspots .orb,
.header-hotspots .orb{
  overflow:visible;
  background:transparent !important;
  border-color:transparent !important;
  box-shadow:none !important;
}
.orbit-hotspots .orb-plate,
.header-hotspots .orb-plate{
  display:block;
  width:100%;
  height:100%;
  border-radius:50%;
  background:#fff;
  overflow:hidden;
  box-shadow:0 3px 14px rgba(16,33,47,.12), 0 0 0 1px rgba(19,37,51,.10);
  transition:transform .34s cubic-bezier(.22,.74,.24,1), box-shadow .34s ease;
  transform-origin:center center;
}
.orbit-hotspots .orb-thumb,
.header-hotspots .orb-thumb{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:50%;
}
.orbit-hotspots .orb:hover,
.orbit-hotspots .orb:focus-visible,
.header-hotspots .orb:hover,
.header-hotspots .orb:focus-visible{
  transform:translate(-50%,-50%);
  z-index:35;
}
.orbit-hotspots .orb:hover .orb-plate,
.orbit-hotspots .orb:focus-visible .orb-plate,
.header-hotspots .orb:hover .orb-plate,
.header-hotspots .orb:focus-visible .orb-plate{
  transform:scale(1.3);
  box-shadow:0 14px 32px rgba(15,36,51,.26), 0 0 0 2px rgba(23,161,150,.44);
}
.orbit-hotspots .orb .orb-tooltip,
.header-hotspots .orb .orb-tooltip{z-index:40}

/* Finomítsuk a fókuszállapotot úgy, hogy a tényleges kép maradjon hangsúlyos. */
.orbit-hotspots .orb:focus-visible,
.header-hotspots .orb:focus-visible{outline:none}

/* A belső logóképeknél az eredeti színvilág maradjon meg. */
.intro-logo,
.header-logo-image,
.orbit-logo{mix-blend-mode:normal !important}

/* Mobilon se vágódjon túl szorosan a karima. */
@media (max-width:720px){
  .intro-logo,.header-logo-image,.orbit-logo{border-radius:20px}
  .intro-logo-holder::after,.header-logo-panel::after,.orbit-box::after{border-radius:24px}
}


/* v10_3.css */
/* V10.3 – eredeti képréteges logó, folytonos ívű betöltés */
:root{--polisher-cta-turquoise:#107A80;--polisher-cta-turquoise-edge:#0B6469}
.logo-composition{position:relative;display:block;width:100%;aspect-ratio:786/717;background:transparent;isolation:isolate;overflow:visible}
.logo-composition .logo-base{position:absolute;left:0;top:0;width:100%;height:auto;clip-path:none;pointer-events:none;display:block;max-width:none}
.logo-composition .logo-icon{box-sizing:border-box;position:absolute;display:block;width:24.173%;aspect-ratio:1;z-index:2;border:0;background:transparent;border-radius:50%;padding:0;overflow:visible;transform-origin:50% 50%;transform:scale(1);text-decoration:none;cursor:pointer;transition:transform .35s cubic-bezier(.22,.72,.22,1),filter .35s ease}
.logo-composition .logo-icon img{display:block;width:100%;height:100%;border-radius:50%;object-fit:cover;max-width:none;clip-path:circle(49.85% at 50% 50%);background:transparent}
.logo-composition .logo-icon--headlight{left:1.7303%;top:47.9219%}
.logo-composition .logo-icon--door{left:6.1578%;top:19.47%}
.logo-composition .logo-icon--piano{left:29.2112%;top:4.742%}
.logo-composition .logo-icon--glass{left:55.1654%;top:6.9177%}
.logo-composition .logo-icon--body{left:71.1959%;top:30.3487%}
.logo-composition .logo-icon:is(:hover,:focus-visible){z-index:50;transform:scale(1.3);filter:drop-shadow(0 6px 8px rgba(0,0,0,.18));outline:none}
.logo-composition .logo-icon:focus-visible{outline:2px solid #15191d;outline-offset:2px}
/* Első megjelenés: a gép + gyűrű 2,5 másodperc alatt, az ikonok belülről érkeznek. */
.intro{background:#fff!important}
.intro-logo-holder{width:min(600px,79vw);aspect-ratio:786/717;animation:none!important;transform:none;opacity:1!important;filter:none!important;display:block}
.intro-logo-holder::after,.orbit-box::after,.header-logo-panel::after{content:none!important;display:none!important}
.intro .logo-composition{background:transparent!important}
.intro .logo-composition.logo-intro-playing{overflow:hidden}
.intro .logo-composition.logo-intro-playing .logo-icon{pointer-events:none;transition:none!important}
.intro.is-leaving .intro-logo-holder{transform:none!important}
.intro.is-leaving{animation:introCurtain .85s ease forwards}
.intro .intro-subtext{bottom:6%}
html[data-intro=new] .scroll-lab{display:none!important}
/* Landing: azonos ikonok, egérre 30%-os nagyítás, türkiz kör nélkül. */
.orbit-box{filter:drop-shadow(0 15px 30px rgba(39,71,95,.035));padding:0!important;max-width:650px;overflow:visible!important}
html[data-theme=dark] .orbit-box{background:white;border-radius:17px;box-shadow:0 18px 42px rgba(0,0,0,.14)}
.hero .logo-composition{background:transparent}
/* Fejléc: normál állapotban kis logó, kibontva ugyanaz az interaktív képréteg. */
.header-logo-panel{overflow:visible}
.header-logo-image{mix-blend-mode:normal;display:block}
.header-logo-panel .logo-composition.header-hotspots{
 position:absolute!important;left:0;top:0;right:auto;bottom:auto;
 width:100%;height:auto;opacity:0;pointer-events:none;
 z-index:2;border-radius:0;overflow:visible;background:transparent;
 transition:opacity .24s ease
}
.header-logo:hover .logo-composition.header-hotspots,
.header-logo:focus-within .logo-composition.header-hotspots,
.header-logo.is-expanded .logo-composition.header-hotspots{opacity:1;pointer-events:auto}
.header-logo-panel .logo-composition .logo-icon{pointer-events:auto!important}
.header-logo .logo-composition .logo-icon:is(:hover,:focus-visible){z-index:60}
/* Szolgáltatás-kislogók: az eredeti fekete-fehér ikon, 15px türkiz gyűrű, 3px sötét szegély */
.section-label .section-icon-badge,
html[data-theme=dark] .section-label .section-icon-badge{
 width:84px!important;height:84px!important;flex:none;
 box-sizing:border-box;padding:15px!important;border-radius:50%!important;
 border:3px solid var(--polisher-cta-turquoise-edge)!important;
 background:var(--polisher-cta-turquoise)!important;
 box-shadow:0 5px 18px rgba(16,122,128,.17)!important;overflow:hidden
}
.section-label .section-icon,
html[data-theme=dark] .section-label .section-icon{
 width:100%;height:100%;object-fit:cover;border-radius:50%;
 filter:none!important;clip-path:circle(50% at 50% 50%)!important;
 background:white
}
@media(max-width:720px){.intro-logo-holder{width:min(530px,92vw)}.intro .intro-subtext{bottom:7%}}
@media(prefers-reduced-motion:reduce){.logo-composition .logo-icon{transition:none!important}}
/* Semleges fehér vászon a kör alsó részén megtartott eredeti JPEG-háttérhez. */
.intro::before{display:none!important}


/* v10_4.css */
/* V10.4 — original complete circular base, real badge contours, configurable type */
:root{--polisher-logo-hover-scale:1.3}
/* Older CSS clipped 52% of the ring. Restore original complete ring and remove square matte. */
.logo-composition{background:transparent!important;overflow:visible!important}
.logo-composition .logo-base{clip-path:none!important;object-fit:contain;mix-blend-mode:normal!important}
.logo-composition--intro .logo-base{opacity:0}
.logo-composition .logo-icon:is(:hover,:focus-visible){transform:scale(var(--polisher-logo-hover-scale,1.3))}
.logo-composition--hero{isolation:isolate}
.logo-composition--hero .logo-base{z-index:0}
.logo-composition--hero .logo-icon{z-index:3}
.logo-composition--hero .logo-icon:hover,.logo-composition--hero .logo-icon:focus-visible{z-index:6}
.orbit-box,.hero .logo-composition{background:transparent!important}
html[data-theme=dark] .orbit-box{background:transparent!important;border-radius:0!important;box-shadow:none!important}
/* The surrounding white rectangular visual object is replaced by transparent circular pixels. */
.intro-halo{display:none!important}
.intro::before{display:none!important}
.intro-logo-holder{width:min(660px,86vw,72vh);aspect-ratio:786/717;will-change:transform;opacity:1!important;filter:none!important;animation:none!important}
.intro .logo-composition,.intro .intro-logo-holder{overflow:visible!important}
.intro .logo-composition .logo-icon{transition:none!important;pointer-events:none!important}
.intro .intro-subtext{animation:none!important;opacity:.9;transition:opacity .3s}
.intro .intro-loader{display:none}
.intro.is-landing{animation:none!important;transition:background-color 1.08s ease;background-color:transparent!important}
.intro.is-landing .intro-logo-holder{transition:none!important;animation:none!important}
.intro.is-landing .intro-subtext{opacity:0}
.intro.is-landing .intro-skip{opacity:0;pointer-events:none}
html[data-intro=landing] .intro{display:flex}
html[data-intro=landing] .site-header,html[data-intro=landing] main,html[data-intro=landing] .footer{opacity:1;transition:opacity .65s ease}
html[data-intro=landing] .hero .logo-composition--hero{visibility:hidden}
/* Badge only: exactly 5px turquoise rim plus the pre-existing 3px dark keyline. */
.section-label .section-icon-badge,html[data-theme=dark] .section-label .section-icon-badge{padding:5px!important}
/* Arc-placed individual letters sit underneath the round badge layer while they emerge. */
.logo-letter-layer{position:absolute;inset:0;overflow:visible;z-index:4;pointer-events:none;isolation:isolate}
.logo-arc-letter{position:absolute;display:block;left:0;top:0;font-family:Arial,Helvetica,sans-serif;font-weight:800;font-size:var(--arc-letter-size,12px);letter-spacing:0;color:#123a48;text-align:center;line-height:1;white-space:pre;pointer-events:none;opacity:0;text-shadow:0 1px 0 #fff,1px 0 0 #fff,-1px 0 0 #fff;will-change:transform,opacity}
html[data-theme=dark] .logo-arc-letter{color:#0B6469;text-shadow:0 1px 2px #fff}
.logo-arc-letter--visible{opacity:1}
/* Compact header never receives text; preserve its image and separate interactive hotspots. */
.header-logo-panel{background:transparent!important}
.header-logo-image{mix-blend-mode:normal!important}
.header-logo-panel .logo-composition.header-hotspots{background:transparent!important}
/* Configurator: visible but unobtrusive at bottom-right. */
.letter-lab{position:fixed;bottom:18px;right:18px;width:min(385px,calc(100vw - 36px));z-index:85;font-family:inherit;background:rgba(252,254,255,.98);color:#203b4c;border:1px solid #cfdee6;border-radius:14px;box-shadow:0 12px 38px rgba(13,43,61,.22);overflow:hidden}
.letter-lab-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;border:0;border-radius:0;padding:13px 16px;background:#107A80;color:#fff;cursor:pointer;font-size:11px;font-weight:800;letter-spacing:.06em;text-align:left}
.letter-lab-toggle span:first-child{font-size:19px}
.letter-lab-toggle .letter-chevron{transition:transform .22s}
.letter-lab.is-open .letter-chevron{transform:rotate(180deg)}
.letter-lab-body{max-height:min(77vh,690px);overflow-y:auto;padding:15px 17px 17px}
.letter-lab-body[hidden]{display:none!important}
.letter-lab-help{font-size:12px;line-height:1.55;margin:0 0 13px;color:#587184}
.letter-lab-row{border-top:1px solid #e4ebef;padding:9px 0 10px}
.letter-lab-row .letter-lab-head{display:flex;justify-content:space-between;gap:8px;align-items:center;font-size:12px;margin:0 0 6px}
.letter-lab-row .letter-lab-head strong{font-size:11px;font-weight:750}
.letter-lab-row .letter-lab-head output{font-size:11px;font-weight:800;color:#107A80;white-space:nowrap}
.letter-lab-row .letter-lab-tools{display:flex;align-items:center;gap:8px}
.letter-lab-row input[type=range]{flex:1;min-width:0}
.letter-lab-row select{max-width:117px;border:1px solid #cfdee6;border-radius:6px;padding:6px 3px;font-size:10px;background:#fff;color:#203b4c}
.letter-lab input[type=range]{accent-color:#107A80;cursor:pointer}
.letter-lab-settings{border-top:1px solid #d4e2e7;padding:11px 0 0;display:grid;gap:10px}
.letter-lab-settings label{display:grid;gap:7px;font-size:11px;font-weight:700}
.letter-lab-settings label span{display:flex;justify-content:space-between;gap:5px}
.letter-lab-settings output{color:#107A80;font-weight:800}
.letter-lab-buttons{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:17px}
.letter-lab-buttons button{border:1px solid #0B6469;border-radius:8px;padding:10px 5px;background:#107A80;color:white;font-size:11px;font-weight:700;cursor:pointer}
.letter-lab-buttons button.letter-secondary{background:#fff;color:#0B6469}
.letter-lab-status{min-height:19px;margin:10px 0 0;color:#637887;font-size:11px;line-height:1.45}
@media(max-width:720px){.letter-lab{bottom:8px;right:8px;width:min(340px,calc(100vw - 16px))}.letter-lab-body{max-height:63vh}.logo-arc-letter{font-weight:800}}
@media(prefers-reduced-motion:reduce){.intro.is-landing .intro-logo-holder{transition:none!important}}
/* V10.4 QA corrections: readable hover letters in the dark theme and non-overlapping labs */
html[data-theme=dark] .logo-arc-letter{
  color:#dcf9fc!important;
  text-shadow:0 1px 3px #071926,1px 0 2px #071926,-1px 0 2px #071926,0 -1px 2px #071926!important;
}
html[data-theme=light] .logo-arc-letter{
  color:#0B6469!important;
  text-shadow:0 1px 2px rgba(255,255,255,.95),1px 0 1px #fff!important;
}
.letter-lab{bottom:83px;z-index:110}
@media(max-width:720px){.letter-lab{bottom:78px}}


/* v10_5.css */
/* POLISHER.HU V10.5 — timed first-visit reveal, circle-only header badge,
   zero-dark-border service badges and optional hero video preview. */
:root {--polisher-logo-hover-scale:1.14}
/* Remove the extra DARK outline only from service-section badges. */
.section-label .section-icon-badge,
html[data-theme=dark] .section-label .section-icon-badge{
  border:0!important;
  padding:5px!important;
  background:#107A80!important;
  box-shadow:0 5px 18px rgba(16,122,128,.12)!important;
}
/* All five header icons are now true alpha-clipped circles; never paint a square plate. */
.header-logo-panel, .header-logo-panel .header-hotspots,
.header-logo-panel .logo-icon,.header-logo-panel .logo-icon img {
  background:transparent!important;
}
.header-logo-image{border-radius:0!important;object-fit:contain!important}
.header-logo-panel .logo-icon img {clip-path:circle(49.6% at 50% 50%)}
html[data-theme=dark] .header-logo-panel{background:transparent!important}
/* The introductory white screen dissolves in exactly the same 2 s as the logo morph. */
.intro{background-color:#fff!important}
.intro.is-landing {
  background-color:rgba(255,255,255,0)!important;
  transition:background-color 2000ms linear!important;
  animation:none!important;
}
.intro.is-landing .intro-logo-holder{transition:none!important}
/* Site text begins at +1 s and fades for 2 seconds (ends at +3 s).
   Keep the animation class after the intro overlay disappears at +2 s. */
html[data-intro=new] .site-header,html[data-intro=new] main,html[data-intro=new] .footer{opacity:0}
html[data-intro=landing] .site-header,html[data-intro=landing] main,html[data-intro=landing] .footer{opacity:1;transition:none!important}
html[data-intro=landing] .hero .logo-composition--hero{visibility:hidden}
html.intro-page-reveal .demo-ribbon,
html.intro-page-reveal .hero-copy,
html.intro-page-reveal .hero-side-note,
html.intro-page-reveal .hero-left>.section-eyebrow,
html.intro-page-reveal .hero .chevron-scroll,
html.intro-page-reveal .site-header .brand-name,
html.intro-page-reveal .site-header .main-nav,
html.intro-page-reveal .site-header .header-cta,
html.intro-page-reveal .site-header .theme-toggle {
  animation:polisher105TextAppear 2000ms ease 1000ms both!important;
}
@keyframes polisher105TextAppear{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){html.intro-page-reveal .demo-ribbon,
html.intro-page-reveal .hero-copy,html.intro-page-reveal .hero-side-note,html.intro-page-reveal .hero-left>.section-eyebrow,html.intro-page-reveal .hero .chevron-scroll,html.intro-page-reveal .site-header .brand-name,html.intro-page-reveal .site-header .main-nav,html.intro-page-reveal .site-header .header-cta,html.intro-page-reveal .site-header .theme-toggle{animation:none!important;opacity:1!important}}
/* Optional video hero — left 30% existing background, 30–70% crossfade,
   rightmost 30% fully uncovered by the current hero colour palette. */
.hero{isolation:isolate}
.hero-video-area {
  position:absolute;inset:0;z-index:0;pointer-events:none;
  opacity:0;visibility:hidden;transition:opacity 600ms ease,visibility 600ms;
  -webkit-mask-image:linear-gradient(to right,transparent 0%,transparent 30%,#000 70%,#000 100%);
  mask-image:linear-gradient(to right,transparent 0%,transparent 30%,#000 70%,#000 100%);
}
.hero.video-preview-on .hero-video-area{opacity:.88;visibility:visible}
.hero-video-area video {width:100%;height:100%;object-fit:cover;object-position:center;display:block;filter:saturate(.9) contrast(1.04)}
.hero-video-area::after {content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 50%,rgba(16,40,52,.09) 100%)}
.hero .hero-glow{z-index:0}
.hero .hero-inner{z-index:2}
.hero.video-preview-on .hero-copy{filter:drop-shadow(0 1px 4px rgba(250,252,253,.6))}
html[data-theme=dark] .hero.video-preview-on .hero-copy{filter:drop-shadow(0 1px 5px rgba(8,20,29,.8))}
/* Separate preview controls inside the existing letter laboratory. */
.letter-lab-video{border-top:1px solid #d4e2e7;margin-top:12px;padding:13px 0 5px}
.letter-lab-video .video-preview-switch{font-size:11px;display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:750}
.video-preview-switch input{width:17px;height:17px;accent-color:#107A80}
.video-preview-beta{color:#647e8b;font-size:9px;border:1px solid #aec8d0;border-radius:20px;padding:3px 7px}
.letter-lab-video .letter-lab-help{font-size:10px;margin:9px 0}
.letter-lab-video button{border:1px solid #8faeb8;border-radius:8px;padding:7px 10px;background:transparent;color:#0B6469;font-size:10px;font-weight:700;cursor:pointer}
@media(max-width:720px){
 .hero-video-area{-webkit-mask-image:linear-gradient(to bottom,transparent 0%,transparent 24%,#000 76%,#000 100%);mask-image:linear-gradient(to bottom,transparent 0%,transparent 24%,#000 76%,#000 100%)}
 .hero.video-preview-on .hero-video-area{opacity:.54}
}

/* V10.6 tweaks */
.header-logo-panel{background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important}
.header-logo:hover .header-logo-panel,.header-logo:focus-within .header-logo-panel,.header-logo.is-expanded .header-logo-panel{box-shadow:none!important}
.header-logo-image{background:transparent!important}
.header-logo{height:auto!important}
.logo-composition--header .logo-base,.logo-composition--hero .logo-base{opacity:1!important}
.hero.video-preview-on .hero-video-area{opacity:.9;visibility:visible}
.hero.video-preview-on .hero-video-area::after{background:linear-gradient(90deg,rgba(16,40,52,.88) 0%,rgba(16,40,52,.78) 28%,rgba(16,40,52,.45) 52%,rgba(16,40,52,.12) 72%,rgba(16,40,52,0) 100%)}
.hero-video-area video{filter:saturate(.96) contrast(1.03) brightness(.92)}
.logo-composition .logo-icon--body img{filter:contrast(1.18) brightness(.96)}


/* v10_7.css */
/* Polisher.hu V10.7 – pixel-aligned art master and readable arc animation. */
:root{--polisher-logo-hover-scale:1.14}
.logo-composition{aspect-ratio:787/700!important;overflow:visible!important;isolation:isolate}
.logo-composition .logo-base,.logo-composition .logo-reference{
 position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;
 max-width:none;pointer-events:none;z-index:0;
}
.logo-composition .logo-reference{z-index:1;opacity:0}
.logo-composition .logo-icon{
 width:25.667%!important;aspect-ratio:1!important;position:absolute!important;
 border:none!important;border-radius:50%!important;box-shadow:none!important;background:transparent!important;
 padding:0!important;transform-origin:center center!important;z-index:3;
}
/* Values are read directly from the 787x700 pixel master (Logó 3.png). */
.logo-composition .logo-icon--headlight{left:1.1449%!important;top:46.8571%!important}
.logo-composition .logo-icon--door{left:5.7180%!important;top:17%!important}
.logo-composition .logo-icon--piano{left:29.2249%!important;top:1.5714%!important}
.logo-composition .logo-icon--glass{left:55.7814%!important;top:4.1429%!important}
.logo-composition .logo-icon--body{left:71.7916%!important;top:29.1429%!important}
.logo-composition .logo-icon img{
 display:block;width:100%;height:100%;object-fit:cover;object-position:center;
 border:0!important;border-radius:50%;background:transparent!important;
 clip-path:circle(49.85% at 50% 50%)!important;
 opacity:0;transition:opacity 160ms ease;
}
/* At rest the uploaded master remains the only visible drawing. The original
   high-resolution icon fades over precisely its own master circle on hover. */
.logo-composition--hero .logo-icon:is(:hover,:focus-visible),
.logo-composition--header .logo-icon:is(:hover,:focus-visible){
 transform:scale(var(--polisher-logo-hover-scale,1.14))!important;
 z-index:10!important;filter:drop-shadow(0 6px 8px rgba(0,0,0,.16));
}
.logo-composition--hero .logo-icon:is(:hover,:focus-visible) img,
.logo-composition--header .logo-icon:is(:hover,:focus-visible) img{opacity:1!important}
.logo-composition--intro .logo-icon{pointer-events:none!important;transition:none!important}
.logo-composition--intro .logo-icon img{opacity:1!important;transition:none!important}
.logo-composition--intro .logo-base{opacity:0}
/* Non-rectangular transparent original composition; the background isn't boxed. */
.header-logo-panel,.header-logo-panel .logo-composition,.header-logo-panel .logo-icon,
.header-logo-panel .logo-icon img,.orbit-box{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important}
.header-logo-panel{aspect-ratio:787/700!important;transition:width 550ms cubic-bezier(.2,.74,.22,1)!important}
.header-logo-image{aspect-ratio:787/700!important;object-fit:contain!important}
.header-logo-panel .logo-composition.header-hotspots{
 aspect-ratio:787/700!important;width:100%;height:auto!important;left:0!important;top:0!important;
}
/* Preserve the exact V10.5 expansion direction: fixed left anchor, grow to right. */
.header-logo:hover .header-logo-panel,.header-logo:focus-within .header-logo-panel,
.header-logo.is-expanded .header-logo-panel{width:174px!important;transform:none!important}
@media(max-width:720px){.header-logo:hover .header-logo-panel,.header-logo:focus-within .header-logo-panel,.header-logo.is-expanded .header-logo-panel{width:min(174px,47vw)!important}}
@media(hover:none){.header-logo:not(.is-expanded):hover .header-logo-panel{width:49px!important}}
/* During landing, one physical master logo moves to the real hero rect.
   Legacy !important transforms are disabled, and a WAAPI fill holds the last frame. */
.intro{background:#fff!important}
.intro .intro-logo-holder{width:min(660px,86vw,72vh);aspect-ratio:787/700!important;transform:none;animation:none!important;filter:none!important}
.intro .logo-composition{overflow:visible!important}
.intro .intro-subtext{display:none!important}
.intro.is-landing{background-color:transparent!important;transition:background-color 1000ms linear!important;animation:none!important}
.intro.is-landing .intro-logo-holder,
.intro.is-landing .intro-logo-holder .logo-composition{animation:none!important;transition:none!important}
.intro.is-landing .intro-logo-holder{transform:none}
html[data-intro=landing] .hero .logo-composition--hero{visibility:hidden!important}
html.intro-page-reveal .demo-ribbon,
html.intro-page-reveal .hero-copy,
html.intro-page-reveal .hero-side-note,
html.intro-page-reveal .hero-left>.section-eyebrow,
html.intro-page-reveal .hero .chevron-scroll,
html.intro-page-reveal .site-header .brand-name,
html.intro-page-reveal .site-header .main-nav,
html.intro-page-reveal .site-header .header-cta,
html.intro-page-reveal .site-header .theme-toggle{animation:polisher107TextAppear 1000ms ease 500ms both!important}
@keyframes polisher107TextAppear{from{opacity:0}to{opacity:1}}
html[data-intro=new] .hero .logo-composition--hero{visibility:visible}
/* All letters are normal unreflected text. Controlled tilt never exceeds 45°.
   The origin remains hidden behind each enlarged real icon. */
.logo-letter-layer{z-index:4!important}
.logo-arc-letter{transform-origin:center center;transform-style:flat!important;backface-visibility:visible!important}
/* Video-aware glass scrim, only when video is visible, especially in light mode. */
.hero.video-preview-on .hero-copy{position:relative;isolation:isolate;filter:none!important}
.hero.video-preview-on .hero-copy::before{
 content:"";position:absolute;z-index:-1;inset:-27px -32px;
 border-radius:28px;pointer-events:none;
 backdrop-filter:blur(19px) saturate(.9);-webkit-backdrop-filter:blur(19px) saturate(.9);
 background:linear-gradient(120deg,rgba(252,254,255,.93),rgba(248,251,253,.87) 68%,rgba(248,251,253,.76));
 border:1px solid rgba(251,254,255,.66);box-shadow:0 14px 48px rgba(8,33,49,.1);
}
html[data-theme=dark] .hero.video-preview-on .hero-copy::before{
 background:linear-gradient(120deg,rgba(8,24,35,.93),rgba(9,31,43,.82) 66%,rgba(9,31,43,.72));
 border-color:rgba(168,212,221,.16);box-shadow:0 18px 55px rgba(0,0,0,.19);
}
@media(max-width:720px){.intro .intro-logo-holder{width:min(530px,92vw)}.hero.video-preview-on .hero-copy::before{inset:-13px -10px;border-radius:16px}}
@media(prefers-reduced-motion:reduce){html.intro-page-reveal .hero-copy{animation:none!important}}


/* v10_8.css */
/* Polisher.hu V10.8 — refine, do not reposition any of the 5 icons. */
/* Only four expressly chosen characters are mirrored along BOTH local axes. */
.logo-arc-letter-glyph{display:inline-block;transform-origin:50% 50%;white-space:pre;line-height:1;}
.logo-arc-letter-glyph--mirror-xy{transform:scale(-1,-1)!important;}

/* The master artwork now has a white, opaque silhouette behind every icon
   and behind the machine's complete black-ringed main circle. The remaining
   rectangular corners stay transparent. Absolutely no icon offset changes. */
/* Always keep exact V10.7 transparency/transition rules for the separate badge
   images; the white silhouette is baked into the new master PNG files. */
.logo-composition .logo-base{opacity:1;}
.logo-composition--intro .logo-base{opacity:0;}

/* In the V10.5 behavior the growing small logo pushes the brand text to the
   right rather than painting over it. Preserve the V10.7 art and the absence
   of a rounded turquoise outline. */
.brand-group{display:flex;align-items:center;min-width:0}
.header-logo{transition:width 550ms cubic-bezier(.2,.74,.22,1),flex-basis 550ms cubic-bezier(.2,.74,.22,1)!important;}
@media(min-width:721px){
 .header-logo:hover,.header-logo:focus-within,.header-logo.is-expanded{width:174px!important;flex-basis:174px!important;}
}
@media(min-width:381px) and (max-width:720px){
 .header-logo:hover,.header-logo:focus-within,.header-logo.is-expanded{width:min(174px,47vw)!important;flex-basis:min(174px,47vw)!important;}
}
@media(max-width:380px){
 .header-logo:hover,.header-logo:focus-within,.header-logo.is-expanded{width:min(140px,39vw)!important;flex-basis:min(140px,39vw)!important;}
 .header-logo:hover .header-logo-panel,.header-logo:focus-within .header-logo-panel,.header-logo.is-expanded .header-logo-panel{width:min(140px,39vw)!important;}
}
/* The smaller header logo retains no service text or colored rounded frame. */
.header-logo,.header-logo-panel,.header-logo-image,.logo-composition--header{border-color:transparent!important;box-shadow:none!important;}

/* Replace the V10.7 opaque rectangular glass panel with unobtrusive glow
   immediately around letterforms: no square, border or blurred video panel. */
.hero.video-preview-on .hero-copy{filter:none!important;isolation:auto!important;}
.hero.video-preview-on .hero-copy::before{display:none!important;content:none!important;}
html[data-theme=light] .hero.video-preview-on .hero-copy :is(h1,.hero-lede,.hero-proof,.section-eyebrow){
 text-shadow:0 1px 1px rgba(255,255,255,.96),0 0 9px rgba(255,255,255,.96),0 0 25px rgba(255,255,255,.72)!important;
}
html[data-theme=dark] .hero.video-preview-on .hero-copy :is(h1,.hero-lede,.hero-proof,.section-eyebrow){
 text-shadow:0 1px 2px rgba(3,18,27,.92),0 0 10px rgba(3,18,27,.85),0 0 22px rgba(3,18,27,.55)!important;
}
@media(prefers-reduced-motion:reduce){.header-logo{transition:none!important}}


/* v10_9.css */
/* POLISHER V10.9 — targeted corrections validated against the uploaded references.
   Five icon positions in v10_7.css are intentionally preserved verbatim. */
:root{--polisher-logo-hover-scale:1.14}

/* The original artwork is WHITE within the complete circular logo; only the
   outside corners are transparent. No turquoise rectangle around header. */
.logo-composition .logo-base,.header-logo-image{
  object-fit:contain!important;filter:none!important;mix-blend-mode:normal!important;
}
.logo-composition--intro .logo-icon{will-change:left,top,transform,opacity}
/* In the entrance animation JavaScript sets left/top with priority important:
   it must override v10_7.css' five !important stationary icon coordinates. */

/* V10.5 header interaction: the logo grows RIGHTWARD and moves the adjacent
   POLISHER.HU wordmark because the logo element itself grows in flex layout. */
.site-header .brand-group{display:flex!important;align-items:center!important;gap:13px!important;min-width:0;flex-shrink:0}
.site-header .header-logo{
 position:relative!important;flex:0 0 54px!important;width:54px!important;
 height:54px!important;min-width:54px!important;overflow:visible!important;
 transition:width .55s cubic-bezier(.2,.74,.22,1),flex-basis .55s cubic-bezier(.2,.74,.22,1)!important;
 border:none!important;background:transparent!important;box-shadow:none!important;
}
.site-header .header-logo-panel{
 position:relative!important;left:0!important;top:0!important;
 width:100%!important;height:auto!important;aspect-ratio:787/700!important;
 transform:none!important;border:none!important;border-radius:0!important;
 background:transparent!important;box-shadow:none!important;overflow:visible!important;
 transition:none!important;
}
.site-header .header-logo-image{width:100%!important;height:auto!important;aspect-ratio:787/700!important;border:0!important;border-radius:0!important}
.site-header .header-logo-panel .logo-composition.header-hotspots{width:100%!important;height:auto!important;aspect-ratio:787/700!important;transform:none!important}
.site-header .brand-name{flex:0 0 auto!important;min-width:0;transition:opacity .25s ease!important}
@media(hover:hover) and (min-width:721px){
  .site-header .header-logo:hover,.site-header .header-logo:focus-within,.site-header .header-logo.is-expanded{
    flex-basis:174px!important;width:174px!important;
  }
}
@media(max-width:720px){
  .site-header .header-logo{flex-basis:49px!important;width:49px!important;min-width:49px!important;height:49px!important}
  .site-header .header-logo:hover,.site-header .header-logo:focus-within,.site-header .header-logo.is-expanded{
    flex-basis:min(132px,34vw)!important;width:min(132px,34vw)!important;
  }
  .site-header .brand-group{gap:9px!important}
}
@media(hover:none){
  .site-header .header-logo:not(.is-expanded):hover{flex-basis:49px!important;width:49px!important}
}
/* Letter corrections: the glyph, not its circular position, rotates by 180°.
   The other characters remain untouched, as requested. */
.logo-arc-letter-glyph{display:inline-block!important;white-space:pre!important;transform:rotate(0deg);transform-origin:50% 50%!important}
.logo-arc-letter-glyph--mirror-xy{transform:rotate(180deg)!important;transform-origin:center center!important}
.logo-arc-letter{unicode-bidi:normal!important;direction:ltr!important}

/* Preserve the 2-second visual page reveal and a separate text fade that
   starts at second one, ending a second after the moving logo finishes. */
.intro.is-landing{background:transparent!important;transition:background-color 2000ms linear!important}
html.intro-page-reveal .demo-ribbon,
html.intro-page-reveal .hero-copy,
html.intro-page-reveal .hero-side-note,
html.intro-page-reveal .hero-left>.section-eyebrow,
html.intro-page-reveal .hero .chevron-scroll,
html.intro-page-reveal .site-header .brand-name,
html.intro-page-reveal .site-header .main-nav,
html.intro-page-reveal .site-header .header-cta,
html.intro-page-reveal .site-header .theme-toggle{animation:polisher109TextAppear 2000ms ease 1000ms both!important}
@keyframes polisher109TextAppear{from{opacity:0}to{opacity:1}}
/* Video remains unobstructed: no opaque/blurred card beneath hero text. */
.hero.video-preview-on .hero-copy::before{content:none!important;display:none!important}
.hero.video-preview-on .hero-copy{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important}
html[data-theme=light] .hero.video-preview-on .hero-copy :is(h1,.hero-lede,.hero-proof,.tagline){
 text-shadow:0 1px 1px rgba(255,255,255,.95),0 0 10px rgba(255,255,255,.88),0 0 25px rgba(255,255,255,.55)!important;
}
html[data-theme=dark] .hero.video-preview-on .hero-copy :is(h1,.hero-lede,.hero-proof,.tagline){
 text-shadow:0 1px 1px rgba(3,18,27,.92),0 0 11px rgba(3,18,27,.75),0 0 20px rgba(3,18,27,.42)!important;
}
@media(prefers-reduced-motion:reduce){
 .site-header .header-logo{transition:none!important}
 html.intro-page-reveal .hero-copy{animation:none!important}
}
/* Override the older expanded-panel width (174px on the panel itself).
   Only the FLEX CHILD grows: the inner image fills it at 100%. */
.site-header .header-logo:hover .header-logo-panel,
.site-header .header-logo:focus-within .header-logo-panel,
.site-header .header-logo.is-expanded .header-logo-panel{
 width:100%!important;left:0!important;transform:none!important;
}
/* No doubled semi-transparent linework when the hotspot composition becomes visible. */
.site-header .header-logo:hover .header-logo-image,
.site-header .header-logo:focus-within .header-logo-image,
.site-header .header-logo.is-expanded .header-logo-image{opacity:0!important}


/* v10_11.css */
/* Polisher.hu V10.11 — single approved artwork and no double-drawn circles. */
.logo-composition .logo-base,.logo-composition .logo-reference{object-fit:contain!important}
.logo-composition--hero .logo-base,.logo-composition--header .logo-base{opacity:1!important}
.logo-composition--intro .logo-base{opacity:0}
.logo-composition--intro .logo-reference{opacity:0}
.logo-composition--hero .logo-icon img,.logo-composition--header .logo-icon img{opacity:0!important}
.logo-composition--hero .logo-icon:hover img,.logo-composition--hero .logo-icon:focus-visible img,
.logo-composition--header .logo-icon:hover img,.logo-composition--header .logo-icon:focus-visible img{opacity:1!important}
/* Animated icons need to remain visible independently from the static master. */
.logo-composition--intro .logo-icon img{opacity:1!important}
.logo-composition--intro .logo-icon{transition:none!important;animation:none!important}
/* Ensure user-visible, true white interior of the actual original drawing. */
.logo-composition .logo-base,.header-logo-image{mix-blend-mode:normal!important;filter:none!important}
/* Avoid an artificially generated expanding circle and any white/teal square. */
.intro:before,.intro-halo{display:none!important}
.header-logo-panel,.header-logo-image,.header-hotspots{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
/* A clear reading order: each glyph is rotated by its own radial vector. */
.logo-arc-letter-glyph{transform:none!important}
.logo-arc-letter-glyph--mirror-xy{transform:none!important}
/* Header logo retains V10.5 grow-to-right interaction and pushes POLISHER.HU. */
.site-header .header-logo{transition:width .55s cubic-bezier(.2,.74,.22,1),flex-basis .55s cubic-bezier(.2,.74,.22,1)!important}
/* Prevent legacy transform override during the morph. */
.intro.is-landing .intro-logo-holder{animation:none!important;transition:none!important;transform:none}
/* A 2-second intro-to-hero synchronized fade and text reveal. */
.intro.is-landing{background:transparent!important;transition:background-color 2000ms linear!important}
/* Controls only appear once the opening animation has completed. */
html[data-intro=new] .letter-lab,html[data-intro=landing] .letter-lab,
html[data-intro=new] .scroll-lab,html[data-intro=landing] .scroll-lab,
html[data-intro=new] .calibration-panel,html[data-intro=landing] .calibration-panel{
  visibility:hidden!important;pointer-events:none!important;
}


/* v10_12.css */
/* Polisher.hu V10.12 — optimized deliverable */
.logo-composition,.header-logo-panel .logo-composition.header-hotspots{aspect-ratio:786/717!important}
.logo-composition .logo-base,.logo-composition .logo-reference,.header-logo-image{display:block;width:100%;height:auto;image-rendering:auto}
.logo-composition .logo-icon{transform-origin:50% 50%;border-radius:50%;overflow:visible}
.logo-composition .logo-icon img{width:100%;height:100%;display:block;object-fit:cover;clip-path:circle(49.8% at 50% 50%);background:transparent}
/* exact placement from the approved reference drawing */
.logo-composition .logo-icon--headlight{left:1.11%!important;top:47.25%!important;width:25.64%!important}
.logo-composition .logo-icon--door{left:5.69%!important;top:18.79%!important;width:25.64%!important}
.logo-composition .logo-icon--piano{left:29.25%!important;top:4.79%!important;width:23.98%!important}
.logo-composition .logo-icon--glass{left:56.06%!important;top:7.73%!important;width:23.47%!important}
.logo-composition .logo-icon--body{left:71.22%!important;top:30.71%!important;width:24.55%!important}
.logo-composition--hero .logo-icon img,.logo-composition--header .logo-icon img{opacity:0!important}
.logo-composition--hero .logo-icon:hover img,.logo-composition--hero .logo-icon:focus-visible img,
.logo-composition--header .logo-icon:hover img,.logo-composition--header .logo-icon:focus-visible img{opacity:1!important}
.logo-composition--intro .logo-icon img{opacity:1!important}
.logo-composition .logo-icon:is(:hover,:focus-visible){transform:scale(1.16)!important;filter:drop-shadow(0 8px 14px rgba(0,0,0,.18));z-index:60!important}
.header-logo-panel,.header-hotspots,.header-logo-image{background:transparent!important;border:0!important;box-shadow:none!important}
/* ensure the small header logo has no extra rounded square */
.header-logo,.header-logo-panel{background:transparent!important;box-shadow:none!important;border:0!important}
/* intro quality */
.intro .logo-composition,.intro .intro-logo-holder{will-change:transform,opacity}
.intro .logo-composition .logo-base{opacity:0;clip-path:inset(0 100% 0 0)}
.intro .logo-composition .logo-reference{display:none!important}
/* softer text readability on top of the video without a visible hard box */
.hero{position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(9,20,28,.68) 0%,rgba(9,20,28,.58) 16%,rgba(9,20,28,.42) 32%,rgba(9,20,28,.18) 52%,rgba(9,20,28,.02) 72%,rgba(9,20,28,0) 100%);pointer-events:none}
.hero-inner{position:relative;z-index:1}
.hero-video-area video{width:100%;height:100%;object-fit:cover}
/* hide removed lab modules if any stale markup remains */
.scroll-lab,.letter-lab,.calibration-panel{display:none!important}


/* V10.13 clean implementation, overrides prior experimental presentation. */
.logo-composition{aspect-ratio:1008/889!important}
.logo-composition .logo-base{opacity:1!important;object-fit:contain!important;width:100%!important;height:100%!important;clip-path:none!important}
.logo-composition--intro{display:none!important}
.logo-composition .logo-icon--headlight{left:2.18%!important;top:46.8%!important;width:24.4%!important}
.logo-composition .logo-icon--door{left:6.5%!important;top:16.8%!important;width:24.4%!important}
.logo-composition .logo-icon--piano{left:29.9%!important;top:1.4%!important;width:24.2%!important}
.logo-composition .logo-icon--glass{left:56.0%!important;top:2.8%!important;width:25.8%!important}
.logo-composition .logo-icon--body{left:72.2%!important;top:27.7%!important;width:25.4%!important}
.logo-composition .logo-icon img{width:100%!important;height:100%!important;clip-path:circle(49.4% at 50% 50%)!important;object-fit:cover!important}
.logo-composition--hero .logo-icon img,.logo-composition--header .logo-icon img{opacity:0!important}
.logo-composition--hero .logo-icon:is(:hover,:focus-visible) img,.logo-composition--header .logo-icon:is(:hover,:focus-visible) img{opacity:1!important}
.header-logo-image{aspect-ratio:1008/889!important;object-fit:contain!important;width:100%!important;background:transparent!important}
.header-logo-panel,.header-logo,.header-hotspots{background:transparent!important;border:0!important;box-shadow:none!important}
.header-logo-panel .logo-composition.header-hotspots{aspect-ratio:1008/889!important}
/* Always-on main video with a visible right side and smooth left blending. */
.hero .hero-video-area,.hero.video-preview-on .hero-video-area{opacity:1!important;visibility:visible!important;display:block!important;z-index:0!important;
  mask-image:linear-gradient(to right,transparent 0%,transparent 24%,black 72%,black 100%);
  -webkit-mask-image:linear-gradient(to right,transparent 0%,transparent 24%,black 72%,black 100%)}
.hero .hero-video-area video{width:100%;height:100%;object-fit:cover;object-position:center}
.hero .hero-glow{z-index:0!important}
.hero .hero-copy:before{display:none!important;content:none!important}
.hero .hero-copy{filter:none!important}
.hero:before{background:transparent!important}
/* The intro video has its own 16:9 letterboxed canvas; no giant square backdrop. */
.intro-video{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#fff!important;overflow:hidden}
.intro-stage{position:relative;width:min(100vw,177.7777778vh);aspect-ratio:16/9;flex:none;background:#fff;overflow:visible}
.intro-reference-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
.intro-video .intro-logo-holder{position:absolute;left:23.5417%;top:3.2407%;width:52.5%;height:82.3148%;aspect-ratio:auto!important;
  opacity:0;transform-origin:center center!important;z-index:6;animation:none!important;transition:none!important;
  display:block;pointer-events:none;will-change:transform}
.intro-handoff-art{width:100%;height:100%;display:block;object-fit:contain;max-width:none}
.intro-stage.handoff-ready .intro-logo-holder{opacity:1!important}
.intro-stage.handoff-ready .intro-reference-video{opacity:0!important;visibility:hidden!important}
.intro-video.is-landing{background:transparent!important;transition:background-color 2s linear!important}
.intro-video.is-landing .intro-stage{background:transparent!important}
.intro-video.is-landing .intro-reference-video{display:none!important}
html[data-intro=landing] .hero .logo-composition--hero{visibility:hidden!important}
html[data-intro=new] .site-header,html[data-intro=new] main,html[data-intro=new] .footer{opacity:0}
html[data-intro=landing] .site-header,html[data-intro=landing] main,html[data-intro=landing] .footer{opacity:1}
/* Remove old calibration interfaces permanently. */
.letter-lab,.scroll-lab,.calibration-panel{display:none!important}
@media(max-width:720px){.hero .hero-video-area,.hero.video-preview-on .hero-video-area{mask-image:linear-gradient(to bottom,transparent 0%,transparent 28%,black 82%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,transparent 28%,black 82%);opacity:.75!important}}
@media(prefers-reduced-motion:reduce){.intro-video{display:none!important}html[data-intro=new] .site-header,html[data-intro=new] main,html[data-intro=new] .footer{opacity:1!important}}

.hero .hero-video-area::after,.hero.video-preview-on .hero-video-area::after{display:none!important}

/* V10.14: single approved logo master with exact video-derived icon positions. */
.logo-composition,.header-logo-panel .logo-composition.header-hotspots{aspect-ratio:1008/892!important}
.logo-composition .logo-base{object-fit:contain!important;display:block!important;height:100%!important;width:100%!important}
.logo-composition .logo-icon{border-radius:50%!important;overflow:visible!important;background:none!important}
.logo-composition .logo-icon--headlight{left:.794%!important;top:47.53%!important;width:25.99%!important}
.logo-composition .logo-icon--door{left:5.456%!important;top:17.15%!important;width:25.99%!important}
.logo-composition .logo-icon--piano{left:28.87%!important;top:.897%!important;width:26.29%!important}
.logo-composition .logo-icon--glass{left:56.746%!important;top:3.924%!important;width:25.99%!important}
.logo-composition .logo-icon--body{left:72.222%!important;top:28.587%!important;width:26.587%!important}
.logo-composition .logo-icon img{object-fit:cover!important;width:100%!important;height:100%!important;clip-path:circle(49.5% at 50% 50%)!important}
.header-logo-image{aspect-ratio:1008/892!important;object-fit:contain!important}
.site-header .header-logo-panel .logo-composition.header-hotspots{aspect-ratio:1008/892!important}
/* Real circle transparency; no opaque rectangular art behind the logo. */
.logo-composition,.logo-composition .logo-base,.header-logo-image{background:transparent!important;mix-blend-mode:normal!important}
/* Correctly suppress the overlay during ALL frames of the opening film. */
.intro-video .intro-logo-holder{left:24.0625%!important;top:3.05556%!important;width:51.640625%!important;height:81.25%!important;opacity:0!important;visibility:hidden!important;pointer-events:none}
.intro-stage.handoff-ready .intro-logo-holder{opacity:1!important;visibility:visible!important}
.intro-stage.handoff-ready .intro-reference-video{opacity:1!important;visibility:visible!important;display:block!important}
.intro-stage.handoff-moving .intro-reference-video{opacity:0!important;visibility:hidden!important;display:none!important}
.intro-stage.handoff-moving{background:transparent!important}
.intro-video.is-landing .intro-logo-holder{opacity:1!important;visibility:visible!important}
/* Suppress duplicate target art only during the handoff. */
html[data-intro=landing] .logo-composition--hero{visibility:hidden!important}
html[data-intro=landing] .site-header .header-logo-panel{visibility:hidden!important}
/* Restore the circular service name labels on desktop (no settings panel). */
.logo-composition--hero .logo-letter-layer{position:absolute;inset:0;z-index:20;pointer-events:none;overflow:visible;isolation:isolate}
.logo-composition--hero .logo-arc-letter{position:absolute;left:0;top:0;display:block;opacity:0;
 font:800 var(--arc-letter-size,11px)/1 Arial,Helvetica,sans-serif;color:#0c5363;
 white-space:pre;pointer-events:none;text-shadow:0 1px 0 #fff,1px 0 0 #fff,-1px 0 0 #fff;transform-origin:center center;will-change:transform,opacity}
html[data-theme=dark] .logo-composition--hero .logo-arc-letter{color:#0d596b;text-shadow:0 1px 0 #fff,0 0 3px #fff}
.logo-composition--hero .logo-arc-letter-glyph{display:inline-block!important;line-height:1;white-space:pre;transform:none!important}
.logo-composition--hero .logo-icon:is(:hover,:focus-visible){z-index:25!important;transform:scale(1.14)!important}
/* The visitor's landing transition should reveal copy, not add a large rectangle. */
.hero .hero-copy::before{display:none!important;content:none!important}
/* Responsive: the large interactive logo is desktop-only. Center the existing hero copy. */
@media (max-width:720px){
 .hero .hero-left{display:none!important}
 .hero .hero-inner{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;
  text-align:center!important;min-height:calc(100svh - 70px)!important;padding-top:45px!important;padding-bottom:92px!important}
 .hero .hero-copy{width:100%!important;max-width:min(540px,92vw)!important;margin:0 auto!important;text-align:center!important}
 .hero .hero-actions{justify-content:center!important;align-items:center!important}
 .hero .hero-proof{justify-content:center!important;flex-wrap:wrap!important}
 .hero .tagline{justify-content:center!important}
 .hero .hero-copy :is(h1,.hero-lede){margin-left:auto!important;margin-right:auto!important}
 .hero .hero-index{opacity:0!important}
}
@media (prefers-reduced-motion:reduce){.intro-video .intro-logo-holder{transition:none!important}}
/* Avoid the rotated demo ribbon covering centered mobile headings. */
@media(max-width:720px){.demo-ribbon{display:none!important}}

/* V10.15 — célzott mobilos finomítások: desktop változatlan */
.mobile-review-variant{display:none}
@media(max-width:720px){
  /* két bemutató-variáció; a 3–5. szolgáltatás változatlan */
  [data-reviews="headlight"] .review-desktop-original,
  [data-reviews="door"] .review-desktop-original{display:none!important}
  [data-reviews="headlight"] .mobile-review-variant,
  [data-reviews="door"] .mobile-review-variant{display:block}
  [data-reviews="headlight"], [data-reviews="door"]{margin-top:22px!important}
  .mobile-review-variant--single .mobile-review-details{margin-top:0}
  .mobile-review-section-title{font-size:19px;font-weight:750;line-height:1.2;color:var(--ink);margin:0 0 12px}
  .mobile-review-details{margin:0 0 10px;border:1px solid #dae5eb;border-radius:13px;background:rgba(249,252,254,.92);overflow:hidden}
  .mobile-review-details summary{display:flex;align-items:center;gap:10px;min-height:54px;padding:13px 16px;list-style:none;cursor:pointer;color:#274b64;font-size:14px;font-weight:730;touch-action:manipulation}
  .mobile-review-details summary::-webkit-details-marker{display:none}
  .mobile-review-variant--single summary{font-size:18px;color:#1d4e71;letter-spacing:-.02em}
  .mobile-review-chevron{margin-left:auto;font-size:21px;font-weight:400;color:#3c79a4;transform:rotate(0);transition:transform .22s ease}
  .mobile-review-details[open]>.mobile-review-chevron,
  .mobile-review-details[open]>summary .mobile-review-chevron{transform:rotate(180deg)}
  .mobile-review-content{padding:0 12px 15px;border-top:1px solid #e2ebf1}
  .mobile-review-content .review-scroll-grid{display:grid;grid-template-columns:1fr;gap:16px;padding-top:14px}
  .mobile-review-content>.review-scroll-column{padding-top:14px}
  .mobile-review-content .review-scroll-window{overscroll-behavior:contain}
  .mobile-review-content .review-disclaimer{margin:12px 1px 0}
  /* Egységes formájú, teljesen azonos nyilak az öt galérián. */
  .service-section .gallery-controls .gallery-arrows{display:flex;gap:8px;align-items:center;flex:none}
  .service-section .gallery-controls .gallery-arrows button{display:grid!important;place-items:center!important;
    width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;
    padding:0!important;margin:0!important;flex:0 0 44px!important;aspect-ratio:1!important;
    font:600 23px/1 Arial,sans-serif!important;border-radius:50%!important;
    text-align:center!important;box-sizing:border-box!important;transform:none!important}
  .service-section .gallery-controls .gallery-prev,.service-section .gallery-controls .gallery-next{font-variant-ligatures:none}
  /* Szolgáltatási gombok mérete, magassága és igazítása minden mobiloldalon azonos. */
  .service-section .service-actions{display:grid!important;grid-template-columns:minmax(0,1fr)!important;
    gap:11px!important;width:100%!important;align-items:stretch!important;justify-items:stretch!important;margin:18px 0 10px!important}
  .service-section .service-actions>.button{display:flex!important;box-sizing:border-box!important;width:100%!important;
    min-width:0!important;min-height:54px!important;height:54px!important;flex:none!important;
    align-items:center!important;justify-content:center!important;gap:10px!important;
    margin:0!important;padding:0 14px!important;text-align:center!important;
    border-radius:10px!important;font-size:13px!important;line-height:1.15!important;white-space:normal!important}
  .service-section .service-actions>.button span{font-size:16px;line-height:1;flex-shrink:0}
  .service-section .service-actions .booking-calendar{display:none!important}
  /* Csúszka ujjal: széles, megfogható választóvonal, ugyanakkor a galéria
     többi részén megmarad a természetes függőleges görgetés. */
  .gallery-viewport{touch-action:pan-y!important}
  .gallery-card.is-current{touch-action:pan-y!important}
  .gallery-card .gallery-divider{pointer-events:none}
  .gallery-card.is-current .gallery-divider{width:44px!important;background:transparent!important;
    pointer-events:auto!important;touch-action:none!important;z-index:9!important}
  .gallery-card.is-current .gallery-divider::before{content:'';position:absolute;left:calc(50% - 1px);
    top:0;bottom:0;width:2px;background:#fff;box-shadow:0 0 8px rgba(8,19,32,.3);pointer-events:none}
  .gallery-card.is-current .gallery-knob{pointer-events:auto!important;touch-action:none!important;
    width:50px!important;height:50px!important;cursor:ew-resize;user-select:none;-webkit-user-select:none}
}
html{color-scheme:light}
html[data-theme=dark]{color-scheme:dark}
@media(max-width:720px){
  html[data-theme=dark] .mobile-review-details{border-color:#34566a;background:rgba(22,43,56,.96)}
  html[data-theme=dark] .mobile-review-details summary{color:#e3eff8}
  html[data-theme=dark] .mobile-review-variant--single summary{color:#d5eafa}
  html[data-theme=dark] .mobile-review-content{border-top-color:#34566a}
  html[data-theme=dark] .mobile-review-section-title{color:#e3eff8}
}
@media(prefers-reduced-motion:reduce){.mobile-review-chevron{transition:none!important}}
/* Nyitott véleményekre ne kerüljön rá a szekció alján lebegő görgetési jelzés. */
@media(max-width:720px){
  #fenyszoro>.chevron-scroll,#kilincs>.chevron-scroll{display:none!important}
}


/* V10.16: approved refined logo positions from V4 calibration */
.logo-composition,.header-logo-panel .logo-composition.header-hotspots{aspect-ratio:1008/892!important}
.logo-composition .logo-base,.header-logo-image,.intro-handoff-art{opacity:.95!important}
.logo-composition .logo-icon--headlight{left:0.823%!important;top:47.382%!important;width:25.990%!important}
.logo-composition .logo-icon--door{left:5.497%!important;top:17.047%!important;width:25.990%!important}
.logo-composition .logo-icon--piano{left:28.897%!important;top:0.912%!important;width:26.231%!important}
.logo-composition .logo-icon--glass{left:56.376%!important;top:3.782%!important;width:26.034%!important}
.logo-composition .logo-icon--body{left:72.308%!important;top:28.409%!important;width:26.677%!important}
.logo-composition--hero .logo-icon img,.logo-composition--header .logo-icon img{opacity:0!important}
.logo-composition--hero .logo-icon:is(:hover,:focus-visible) img,
.logo-composition--header .logo-icon:is(:hover,:focus-visible) img,
.logo-composition--intro .logo-icon img{opacity:1!important}


/* V10.17 – prepared photo/video galleries. Windshield demo enabled. */
.gallery-card--video{cursor:default!important;background:#142c40;}
.gallery-card--video.is-current{cursor:default!important;}
.gallery-video-surface{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#142c40;overflow:hidden;}
.gallery-video{width:100%;height:100%;object-fit:cover;display:block;background:#142c40;touch-action:manipulation;}
.gallery-card--video:not(.is-current) .gallery-video{pointer-events:none;}
.gallery-video-tag{position:absolute;top:14px;left:14px;border-radius:999px;padding:7px 11px;
  color:#fff;background:rgba(7,28,42,.82);font:750 10px/1.2 Arial,sans-serif;letter-spacing:.07em;
  pointer-events:none;box-shadow:0 2px 9px rgba(0,0,0,.18);}
.gallery-card--video.is-current .gallery-video-tag{top:12px;}
/* Exact vector arrows; shared glyph, size, box model and alignment for all five galleries. */
.service-section .gallery-arrows button{display:flex!important;align-items:center!important;justify-content:center!important;gap:0!important;
  font-family:inherit!important;line-height:1!important;appearance:none;-webkit-appearance:none;}
.service-section .gallery-arrows button>svg{display:block!important;width:20px!important;height:20px!important;
  min-width:20px!important;min-height:20px!important;flex:none!important;margin:0!important;transform:none!important;}
.service-section .gallery-arrows button>svg.gallery-icon--next{transform:rotate(180deg)!important;}
@media(max-width:720px){
  .service-section .gallery-controls .gallery-arrows button.gallery-prev,
  .service-section .gallery-controls .gallery-arrows button.gallery-next{
    width:44px!important;height:44px!important;min-width:44px!important;min-height:44px!important;
    flex:0 0 44px!important;aspect-ratio:1!important;box-sizing:border-box!important;
    display:flex!important;align-items:center!important;justify-content:center!important;
    border-radius:50%!important;padding:0!important;margin:0!important;
    border-width:1px!important;transform:none!important;vertical-align:middle!important;}
  .service-section .gallery-arrows button>svg{width:20px!important;height:20px!important;}
}
/* Light theme: legible copy below the title even with the moving hero background. */
html[data-theme="light"] .hero .hero-copy .hero-lede{color:#243e50!important;text-shadow:0 1px 3px rgba(255,255,255,.5)!important;}
html[data-theme="light"] .hero .hero-copy .hero-proof,
html[data-theme="light"] .hero .hero-copy .hero-proof span{color:#29485b!important;text-shadow:0 1px 2px rgba(255,255,255,.6)!important;}
html[data-theme="light"] .hero .hero-copy .hero-proof b{color:#135678!important;}
html[data-theme="light"] .hero .hero-copy .tagline{color:#23526b!important;}


/* V10.18 — pixel-accurate conversion of the approved 1280×720 logo calibration. */
.logo-composition .logo-icon--headlight{left:1.1127596%!important;top:46.5551839%!important;width:26.5578635%!important}
.logo-composition .logo-icon--door{left:5.7121662%!important;top:16.9397993%!important;width:26.5578635%!important}
.logo-composition .logo-icon--piano{left:28.8872404%!important;top:1.3545151%!important;width:26.4985163%!important}
.logo-composition .logo-icon--glass{left:55.7789318%!important;top:3.9882943%!important;width:26.6023739%!important}
.logo-composition .logo-icon--body{left:71.8249258%!important;top:28.4448161%!important;width:26.4985163%!important}

/* V10.18 — unified approved artwork (no second opacity multiplication). */
.logo-composition,.header-logo-panel .logo-composition.header-hotspots{aspect-ratio:1008/892!important}
.logo-composition .logo-base,.header-logo-image,.intro-handoff-art{opacity:1!important}
.logo-composition .logo-icon img{width:100%!important;height:100%!important;object-fit:contain!important;clip-path:none!important;background:transparent!important}
.logo-composition--hero .logo-icon img,.logo-composition--header .logo-icon img{opacity:0!important}
.logo-composition--hero .logo-icon:is(:hover,:focus-visible) img,
.logo-composition--header .logo-icon:is(:hover,:focus-visible) img{opacity:1!important}
/* Avoid the service-name arcs crossing the section eyebrow. Keep orbit alignment unchanged. */
@media(min-width:721px){.hero .hero-left>.section-eyebrow{position:absolute!important;top:-58px!important;left:0!important;margin:0!important;z-index:35!important}}
/* Light theme: remove all white halos and white text backplates on homepage copy. */
html[data-theme="light"] .hero.video-preview-on .hero-copy,
html[data-theme="light"] .hero.video-preview-on .hero-copy :is(h1,p,span,b,em,.tagline,.hero-lede,.hero-proof),
html[data-theme="light"] .hero.video-preview-on .hero-copy *{text-shadow:none!important;filter:none!important}
html[data-theme="light"] .hero .hero-copy::before{display:none!important;content:none!important}
html[data-theme="light"] .hero.video-preview-on .hero-copy :is(h1,.hero-lede,.hero-proof,.tagline,.section-eyebrow){text-shadow:none!important;background:transparent!important}
html[data-theme="light"] .hero .hero-lede{color:#243c4c!important}
html[data-theme="light"] .hero .hero-proof,
html[data-theme="light"] .hero .hero-proof span{color:#29485b!important}
/* Keep the two native mobile navigation arrows geometrically identical. */
@media(max-width:720px){
 .service-section .gallery-controls .gallery-arrows button{width:44px!important;height:44px!important;
 min-width:44px!important;min-height:44px!important;padding:0!important;box-sizing:border-box!important;
 display:grid!important;place-items:center!important;line-height:1!important;transform:none!important}
 .service-section .gallery-controls .gallery-arrows svg{width:19px!important;height:19px!important;display:block!important;flex:none!important}
}
/* Video continues playing while drifting or centering. Muted, in-gallery loops. */
.gallery-card--video .gallery-video{pointer-events:auto}
.gallery-card--video:not(.is-current) .gallery-video{pointer-events:none}

/* V10.18: match the original 1280×720 coordinate frame during film-to-logo handoff. */
.intro-video .intro-logo-holder{left:23.5937500%!important;top:2.5000000%!important;width:52.6562500%!important;height:83.0555556%!important}


/* V10.19 tweaks */
.logo-composition .logo-base,.header-logo-image,.intro-handoff-art{opacity:1!important}
@media(min-width:721px){.hero .hero-left>.section-eyebrow{top:-22px!important}}
.intro-reference-video{position:absolute!important;inset:0!important;left:-2px!important;width:calc(100% + 4px)!important;height:100%!important;object-fit:cover!important;object-position:center center!important;max-width:none!important;clip-path:inset(0 0 0 2px)!important}
.intro-stage{overflow:hidden!important}


/* V10.20 — verified version-specific overrides (avoid V10.18 stale defaults). */
.logo-composition .logo-base,
.header-logo-image,
.intro-handoff-art {opacity:1!important;}

/* Eyebrow must remain in normal flow: the previous negative absolute top
   could be hidden beneath the fixed header on short displays. */
@media(min-width:721px){
  .hero .hero-left>.section-eyebrow{
    position:relative!important;top:auto!important;left:auto!important;
    transform:none!important;margin:0 0 23px!important;
    display:flex!important;opacity:1!important;visibility:visible!important;
    padding:0 4px!important;z-index:30!important;
  }
  .hero .hero-left {overflow:visible!important;}
}
/* Explicit mobile behavior from V10.15. */
@media(max-width:720px){.hero .hero-left>.section-eyebrow{display:none!important;}}

/* The 1280x720 opening film has a visible edge on some browser scalings;
   crop away 2% on both sides inside its 16:9 stage. Do not move the logo overlay. */
.intro-video .intro-stage{overflow:hidden!important;}
.intro-video .intro-reference-video{
  position:absolute!important;inset:0!important;
  left:0!important;top:0!important;width:100%!important;height:100%!important;
  object-fit:cover!important;object-position:center center!important;
  transform:scale(1.045)!important;transform-origin:50% 50%!important;
  clip-path:none!important;max-width:none!important;
}


/* ===== Polisher.hu V10.21 approved calibrated artwork and interaction ===== */
.logo-composition,.header-logo-panel .logo-composition.header-hotspots,.header-logo-image,.intro-handoff-art{aspect-ratio:658.5000/588.0000!important;}
.logo-composition .logo-base,.header-logo-image,.intro-handoff-art{opacity:1!important;filter:none!important;mix-blend-mode:normal!important;}
.logo-composition .logo-icon--headlight{left:0.379651%!important;top:46.496599%!important;width:27.182992%!important;}
.logo-composition .logo-icon--door{left:5.087320%!important;top:16.377551%!important;width:27.182992%!important;}
.logo-composition .logo-icon--piano{left:28.807897%!important;top:0.527211%!important;width:27.122248%!important;}
.logo-composition .logo-icon--glass{left:56.332574%!important;top:3.205782%!important;width:27.228550%!important;}
.logo-composition .logo-icon--body{left:72.756264%!important;top:28.078231%!important;width:27.122248%!important;}

/* The logo hover artwork is intentionally unchanged, with captions ONLY on hover or focus. */
.logo-composition--hero .logo-letter-layer{pointer-events:none!important;}
.logo-composition--hero .logo-arc-letter{opacity:0;}
/* Same image is used for the film handoff, the desktop orb and the small mobile brand. */
.intro-video .intro-stage.handoff-moving{overflow:visible!important;}
.intro-video .intro-stage.handoff-moving .intro-logo-holder{z-index:99999!important;visibility:visible!important;opacity:1!important;}
.intro-video .intro-logo-holder{aspect-ratio:658.5000/588.0000!important;}
.intro-video.is-landing{overflow:visible!important;}
html[data-intro=landing] .site-header .header-logo-panel{visibility:hidden!important;}
/* Keep the header edge tight on desktop and mobile. */
.site-header{padding-left:clamp(8px,1.15vw,20px)!important;padding-right:clamp(8px,1.15vw,20px)!important;}
.site-header .brand-group{gap:7px!important;}
@media(max-width:720px){.site-header{padding-left:9px!important;padding-right:9px!important;gap:7px!important;}}
/* Vector icons before all quote and booking text. */
.action-symbol{width:18px;height:18px;flex:0 0 18px;display:inline-block;vertical-align:middle;margin-right:7px;}
.button>.action-symbol,.header-cta>.action-symbol{margin-right:3px;}
.service-actions .button[hidden]{display:none!important;}
.service-actions:has(.button[hidden])>.button:not([hidden]){flex:1 1 100%;}
@media(max-width:720px){
  [data-reviews] .review-desktop-original{display:none!important;}
  [data-reviews] .mobile-review-variant--separate{display:block!important;}
  [data-reviews]{margin-top:22px!important;}
}
/* Desktop: light-theme video transitions begin at RIGHT edge, 10% reduction by 15%, fully hidden by 24%. */
@media(min-width:721px){
 html[data-theme="light"] .hero .hero-video-area,
 html[data-theme="light"] .hero.video-preview-on .hero-video-area{
  mask-image:linear-gradient(to left,black 0%,rgba(0,0,0,.90) 15%,transparent 24%,transparent 100%)!important;
  -webkit-mask-image:linear-gradient(to left,black 0%,rgba(0,0,0,.90) 15%,transparent 24%,transparent 100%)!important;
 }
}
.intro-video .intro-logo-holder{left:23.9843750%!important;top:3.1944444%!important;width:51.4453125%!important;height:81.6666667%!important;}


/* === V10.22: reviewed visual and interactive adjustments === */
/* Remove only the large, pale concentric decoration at the homepage lower right. */
.hero::after,.hero:after,
html[data-theme="light"] .hero::after,
html[data-theme="dark"] .hero::after{content:none!important;display:none!important;box-shadow:none!important;border:none!important;}

/* Light mode fade: full footage on the right, 90% at 15%, hidden at 72%.
   Desktop dark mode and the mobile vertical transition remain unchanged. */
@media(min-width:721px){
 html[data-theme="light"] .hero .hero-video-area,
 html[data-theme="light"] .hero.video-preview-on .hero-video-area{
   mask-image:linear-gradient(to left,#000 0%,rgba(0,0,0,.90) 15%,transparent 72%,transparent 100%)!important;
   -webkit-mask-image:linear-gradient(to left,#000 0%,rgba(0,0,0,.90) 15%,transparent 72%,transparent 100%)!important;
 }
}

/* Align intro movie and calibrated artwork to the SAME uncropped 16:9 plane.
   Old V10.21 transform:scale(1.045) enlarged only the film, causing drift. */
.intro-video .intro-stage{aspect-ratio:16/9!important;}
.intro-video .intro-reference-video{
  position:absolute!important;inset:0!important;top:0!important;left:0!important;
  width:100%!important;height:100%!important;
  object-fit:fill!important;object-position:center center!important;
  transform:none!important;clip-path:inset(0 0 0 1px)!important;
  transform-origin:center center!important;
}
/* Keep the logo artwork at exactly its V4-approved position in the 1280x720 movie plane. */
.intro-video .intro-logo-holder{
  left:23.984375%!important;top:3.1944444%!important;
  width:51.4453125%!important;height:81.6666667%!important;
}


/* V10.23 – targeted revisions, the approved intro/logo geometry is unchanged. */
/* Exact shapes from the user's attached icon image; glyph alpha is preserved. */
.action-symbol{
  width:18px!important;height:18px!important;flex:0 0 18px!important;
  display:inline-block!important;vertical-align:middle!important;
  background-color:currentColor!important;mask-size:contain!important;
  mask-position:center!important;mask-repeat:no-repeat!important;
  -webkit-mask-size:contain!important;-webkit-mask-position:center!important;
  -webkit-mask-repeat:no-repeat!important;
}
.action-symbol--quote{-webkit-mask-image:url('assets/approved-icon-quote.png')!important;mask-image:url('assets/approved-icon-quote.png')!important;}
.action-symbol--booking{-webkit-mask-image:url('assets/approved-icon-booking.png')!important;mask-image:url('assets/approved-icon-booking.png')!important;}
/* Show lone buttons at the same dimensions as a two-button desktop pair. */
@media(min-width:721px){
  .service-visual .service-actions:has(>.button[hidden]),
  .door-visual-wrap .service-actions:has(>.button[hidden]){justify-content:center!important;}
  .service-visual .service-actions:has(>.button[hidden])>.button:not([hidden]),
  .door-visual-wrap .service-actions:has(>.button[hidden])>.button:not([hidden]){
    flex:0 1 calc((100% - 12px)/2)!important;
    width:calc((100% - 12px)/2)!important;
    max-width:calc((100% - 12px)/2)!important;
  }
}
/* On narrow displays the existing two buttons are stacked full width;
   the single remaining button keeps that exact width and is centered. */
@media(max-width:720px){
  .service-visual .service-actions:has(>.button[hidden])>.button:not([hidden]),
  .door-visual-wrap .service-actions:has(>.button[hidden])>.button:not([hidden]){
    width:100%!important;max-width:100%!important;justify-self:center!important;
  }
}
/* Light theme: ONLY the two explicitly specified hero copy groups are semibold.
   All other small text and every button label keep their previous font weight. */
html[data-theme="light"] .hero .hero-lede,
html[data-theme="light"] .hero .hero-proof,
html[data-theme="light"] .hero .hero-proof>span{font-weight:600!important;color:#427ba5!important;}
/* Both themes now use the already-approved 0 / 15 / 72 video fade geometry. */
@media(min-width:721px){
 html[data-theme="dark"] .hero .hero-video-area,
 html[data-theme="dark"] .hero.video-preview-on .hero-video-area,
 html[data-theme="light"] .hero .hero-video-area,
 html[data-theme="light"] .hero.video-preview-on .hero-video-area{
    mask-image:linear-gradient(to left,#000 0%,rgba(0,0,0,.90) 15%,transparent 72%,transparent 100%)!important;
    -webkit-mask-image:linear-gradient(to left,#000 0%,rgba(0,0,0,.90) 15%,transparent 72%,transparent 100%)!important;
 }
}
/* Avoid the occasional compositor repaint rectangle when the masked
   homepage movie scrolls past the viewport. Does NOT alter the intro. */
.hero .hero-video-area{backface-visibility:hidden;contain:paint;transform:translateZ(0);}
.hero .hero-video-area video{backface-visibility:hidden;transform:translateZ(0);}
/* Keep previously disabled opaque copy scrims from flashing on compositor changes. */
.hero.video-preview-on .hero-copy::before{content:none!important;display:none!important;}
/* The approved cascade is 40% slower than V10.22 and plays in reverse on close. */
.mobile-menu-lab{display:none!important;}
@media(max-width:1200px){
 .mobile-nav{transform-origin:top right;overflow-y:auto;max-height:calc(100dvh - var(--header-h));}
 .mobile-nav.is-opening{animation:menu23PanelIn .476s ease-out both!important;}
 .mobile-nav.is-opening>a{animation:menu23Item .658s cubic-bezier(.22,.7,.3,1) both!important;}
 .mobile-nav.is-closing{animation:menu23PanelOut .18s ease-in 1.07s both!important;pointer-events:none;}
 .mobile-nav.is-closing>a{animation:menu23Item .658s cubic-bezier(.22,.7,.3,1) reverse both!important;}
 .mobile-nav.is-opening>a:nth-child(1){animation-delay:.042s!important;}
 .mobile-nav.is-opening>a:nth-child(2){animation-delay:.112s!important;}
 .mobile-nav.is-opening>a:nth-child(3){animation-delay:.182s!important;}
 .mobile-nav.is-opening>a:nth-child(4){animation-delay:.252s!important;}
 .mobile-nav.is-opening>a:nth-child(5){animation-delay:.322s!important;}
 .mobile-nav.is-opening>a:nth-child(6){animation-delay:.392s!important;}
 .mobile-nav.is-opening>a:nth-child(7){animation-delay:.462s!important;}
 .mobile-nav.is-closing>a:nth-child(1){animation-delay:.462s!important;}
 .mobile-nav.is-closing>a:nth-child(2){animation-delay:.392s!important;}
 .mobile-nav.is-closing>a:nth-child(3){animation-delay:.322s!important;}
 .mobile-nav.is-closing>a:nth-child(4){animation-delay:.252s!important;}
 .mobile-nav.is-closing>a:nth-child(5){animation-delay:.182s!important;}
 .mobile-nav.is-closing>a:nth-child(6){animation-delay:.112s!important;}
 .mobile-nav.is-closing>a:nth-child(7){animation-delay:.042s!important;}
}
@keyframes menu23PanelIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@keyframes menu23Item{from{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:none}}
@keyframes menu23PanelOut{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-10px)}}
@media(prefers-reduced-motion:reduce){.mobile-nav.is-opening,.mobile-nav.is-closing,.mobile-nav.is-opening>a,.mobile-nav.is-closing>a{animation:none!important;}}


/* V10.24: previous cascade opening speed is preserved. Closing reverses at 1.0x. */
@media(max-width:1200px){
 .mobile-nav.is-closing{animation:menu23PanelOut .13s ease-in .76s both!important}
 .mobile-nav.is-closing>a{animation-duration:.47s!important}
 .mobile-nav.is-closing>a:nth-child(1){animation-delay:.33s!important}
 .mobile-nav.is-closing>a:nth-child(2){animation-delay:.28s!important}
 .mobile-nav.is-closing>a:nth-child(3){animation-delay:.23s!important}
 .mobile-nav.is-closing>a:nth-child(4){animation-delay:.18s!important}
 .mobile-nav.is-closing>a:nth-child(5){animation-delay:.13s!important}
 .mobile-nav.is-closing>a:nth-child(6){animation-delay:.08s!important}
 .mobile-nav.is-closing>a:nth-child(7){animation-delay:.03s!important}
}

/* V10.24: approved HERO accent matches the word 'részletektől'; no button typography changes. */
html[data-theme="light"] .hero .hero-lede,
html[data-theme="light"] .hero .hero-proof,
html[data-theme="light"] .hero .hero-proof>span,
html[data-theme="light"] .hero .hero-proof b{
  color:var(--polisher-turquoise)!important;
  font-weight:600!important;
}
/* Preserve numeric emphasis sizes; the button fonts stay entirely unchanged. */

/* V10.24: the exact approved screenshot icons must appear on desktop too. */
@media(min-width:721px){
 .button .action-symbol,.header-cta .action-symbol{
    display:inline-block!important;visibility:visible!important;opacity:1!important;
    flex:0 0 18px!important;min-width:18px!important;min-height:18px!important;
    width:18px!important;height:18px!important;background-color:currentColor!important;
    mask-position:center!important;-webkit-mask-position:center!important;
    mask-repeat:no-repeat!important;-webkit-mask-repeat:no-repeat!important;
    mask-size:contain!important;-webkit-mask-size:contain!important;
    transform:none!important;
 }
}

/* V10.24 precision: match the actual computed blue of #heroTitle span (részletektől).
   Override former theme/video-preview selectors without touching button lettering. */
html[data-theme="light"] .hero.video-preview-on .hero-copy .hero-lede,
html[data-theme="light"] .hero.video-preview-on .hero-copy .hero-proof,
html[data-theme="light"] .hero.video-preview-on .hero-copy .hero-proof>span,
html[data-theme="light"] .hero.video-preview-on .hero-copy .hero-proof>span>b {
  color:#3c79a4!important;
  font-weight:600!important;
}


/* === V10.25: surgical revisions, unchanged approved video/intro/logo animation === */
/* The exact user-provided raster glyphs must be rendered as images, not as
   text-colour CSS masks, which could resolve to invisible desktop glyphs. */
.action-symbol:is(img) {
  -webkit-mask:none!important;mask:none!important;
  background:none!important;background-color:transparent!important;
  display:inline-block!important;visibility:visible!important;opacity:1!important;
  width:19px!important;height:19px!important;min-width:19px!important;min-height:19px!important;
  flex:0 0 19px!important;object-fit:contain!important;
  vertical-align:middle!important;filter:none!important;
  margin-right:7px!important;align-self:center!important;
}
/* On the light, text-only homepage quote button make the original white icon
   the same dark blue as its label. Solid blue buttons retain the white glyph. */
html[data-theme="light"] .hero .button-text .action-symbol:is(img) {
  filter:brightness(0) saturate(100%) invert(21%) sepia(29%) saturate(964%) hue-rotate(159deg) brightness(91%)!important;
}
/* Override legacy desktop rules that painted a SOLID white background behind
   the former CSS-masked span; without this the actual PNG looks like a square. */
.button > img.action-symbol, .service-actions .button > img.action-symbol,
.site-header .header-cta > img.action-symbol, .hero .button > img.action-symbol,
.closing-card .button > img.action-symbol {
 background:transparent!important;background-color:transparent!important;
 background-image:none!important;-webkit-mask-image:none!important;mask-image:none!important;
}
/* Match the first (non-highlighted) main heading line in the light theme. */
html[data-theme="light"] .hero .hero-proof,
html[data-theme="light"] .hero .hero-proof>span,
html[data-theme="light"] .hero .hero-proof>span>b,
html[data-theme="light"] .hero.video-preview-on .hero-copy .hero-proof,
html[data-theme="light"] .hero.video-preview-on .hero-copy .hero-proof>span,
html[data-theme="light"] .hero.video-preview-on .hero-copy .hero-proof>span>b {
  color:var(--ink)!important;font-weight:600!important;
}
/* Requested two separate sentence lines on sufficiently wide desktops.
   Narrow/mobile screens wrap naturally to avoid clipping. */
@media(min-width:1100px) {
  .hero .hero-lede{max-width:none!important;width:max-content;max-width:calc(100vw - 40px)!important;}
  .hero .hero-lede-line{display:block;white-space:nowrap;}
}
@media(min-width:721px) and (max-width:1099px){
  .hero .hero-lede{max-width:620px!important;text-wrap:balance;}
}
@media(max-width:720px){.hero .hero-lede-line{display:inline;white-space:normal;}}
/* Rectangular double-chevron slider. The vertical before/after line remains;
   only the former round knob appearance changes (hit handling unchanged). */
.gallery-card .gallery-grip,
.gallery-card.is-current .gallery-knob.gallery-grip {
  width:88px!important;height:38px!important;min-width:88px!important;
  border-radius:9px!important;padding:0!important;letter-spacing:normal!important;
  background:rgba(15,36,53,.84)!important;
  color:#fff!important;
  border:1px solid rgba(234,246,255,.54)!important;
  box-shadow:0 4px 16px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.11)!important;
  backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);
  display:flex!important;align-items:center!important;justify-content:center!important;
  transform:translate(-50%,-50%)!important;
  left:50%!important;top:50%!important;
  cursor:ew-resize!important;touch-action:none!important;
}
.gallery-card .gallery-grip-icon {width:74px!important;height:30px!important;display:block;pointer-events:none;flex:none;}
.gallery-card.is-current .gallery-divider {cursor:ew-resize;}
@media(max-width:720px){
 .gallery-card .gallery-grip,
 .gallery-card.is-current .gallery-knob.gallery-grip {
   width:82px!important;min-width:82px!important;height:42px!important;
   border-radius:9px!important;touch-action:none!important;
 }
 .gallery-card .gallery-grip-icon {width:70px!important;height:30px!important;}
}


/* === V10.26 targeted revisions (approved master artwork and intro untouched) === */
/* Collapsed desktop nav: retain theme + menu on the far-right rather than next to wordmark. */
@media(max-width:1200px){
  .site-header .theme-toggle { margin-left:auto!important;flex-shrink:0!important;order:2; }
  .site-header .header-cta { margin-left:0!important;order:3;flex-shrink:0; }
  .site-header .mobile-toggle { margin-left:0!important;order:4;flex-shrink:0; }
  .site-header .brand-group { order:0;min-width:0; }
}
@media(max-width:720px){
  /* Expand approved small header logo 1.6× from the earlier 132 px, without
     resizing icons, shifting the wordmark or displacing the right-side controls. */
  .site-header .header-logo.is-expanded {
    flex:0 0 49px!important;width:49px!important;min-width:49px!important;
  }
  .site-header .header-logo.is-expanded .header-logo-panel {
    position:absolute!important;left:0!important;top:0!important;
    width:min(211.2px,calc(100vw - 90px))!important;max-width:none!important;
    transform-origin:top left!important;z-index:65!important;
  }
  .site-header .header-logo.is-expanded { z-index:65!important; }
}
/* Updated before/after grip: no box, 2× wider arrows and 4× taller glyphs,
   thicker contour and 65% opacity. Divider remains drag-friendly on touch. */
.gallery-card .gallery-grip,
.gallery-card.is-current .gallery-knob.gallery-grip {
  width:168px!important;min-width:168px!important;height:124px!important;
  border:0!important;border-radius:0!important;background:transparent!important;
  background-color:transparent!important;box-shadow:none!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  padding:0!important;overflow:visible!important;
  color:white!important;filter:none!important;
}
.gallery-card .gallery-grip-icon,
.gallery-card.is-current .gallery-grip-icon {
  width:160px!important;height:118px!important;opacity:.65!important;
  display:block!important;overflow:visible!important;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.32));
  pointer-events:none!important;
}
@media(max-width:720px){
 .gallery-card .gallery-grip,.gallery-card.is-current .gallery-knob.gallery-grip{
   width:160px!important;min-width:160px!important;height:120px!important;
   background:transparent!important;border:0!important;box-shadow:none!important;
 }
 .gallery-card .gallery-grip-icon,.gallery-card.is-current .gallery-grip-icon {
   width:154px!important;height:115px!important;opacity:.65!important;
 }
}


/* === V10.27 approved refinements === */
/* Collapsed navigation: full coverage on the left, transparently fades out on the right.
   Keep link text legible in BOTH themes while preserving the cascade animation. */
@media (max-width:1200px) {
  .mobile-nav {
    background:linear-gradient(to right,
      rgba(249,251,252,1) 0%, rgba(249,251,252,.96) 18%,
      rgba(249,251,252,.74) 53%,rgba(249,251,252,0) 100%)!important;
    box-shadow:none!important;
    -webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  }
  html[data-theme="dark"] .mobile-nav {
    background:linear-gradient(to right,
      rgba(22,45,60,1) 0%,rgba(22,45,60,.96) 18%,
      rgba(22,45,60,.74) 53%,rgba(22,45,60,0) 100%)!important;
  }
  html[data-theme="light"] .mobile-nav a {color:#234b66!important;text-shadow:0 1px 1px rgba(249,251,252,.55);}
  html[data-theme="dark"] .mobile-nav a {color:#e4f2fb!important;text-shadow:0 1px 1px rgba(22,45,60,.55);}
}
/* Bring the phone accordion styling to windowed desktop (721–1200px), too;
   otherwise the semantic <details> are closed but lose their card treatment. */
@media (min-width:721px) and (max-width:1200px){
  .mobile-review-section-title{font-size:19px;font-weight:750;line-height:1.2;color:var(--ink);margin:0 0 12px;}
  .mobile-review-details{margin:0 0 10px;border:1px solid #dae5eb;border-radius:13px;background:rgba(249,252,254,.92);overflow:hidden;}
  .mobile-review-details summary{display:flex;align-items:center;gap:10px;min-height:54px;padding:13px 16px;list-style:none;cursor:pointer;color:#274b64;font-size:14px;font-weight:730;touch-action:manipulation;}
  .mobile-review-details summary::-webkit-details-marker{display:none;}
  .mobile-review-chevron{margin-left:auto;font-size:21px;font-weight:400;color:#3c79a4;transition:transform .22s ease;}
  .mobile-review-details[open]>summary .mobile-review-chevron{transform:rotate(180deg);}
  .mobile-review-content{padding:0 12px 15px;border-top:1px solid #e2ebf1;}
  .mobile-review-content .review-scroll-grid{display:grid;grid-template-columns:1fr;gap:16px;padding-top:14px;}
  .mobile-review-content>.review-scroll-column{padding-top:14px;}
  html[data-theme=dark] .mobile-review-details{border-color:#34566a;background:rgba(22,43,56,.96);}
  html[data-theme=dark] .mobile-review-details summary{color:#e3eff8;}
  html[data-theme=dark] .mobile-review-content{border-top-color:#34566a;}
  html[data-theme=dark] .mobile-review-section-title{color:#e3eff8;}
}
/* Give each service two independently closed review accordions whenever the
   main navigation collapses. They form two columns ONLY if their own section
   has enough room: otherwise stack (including ordinary phone widths). */
@media (max-width:1200px) {
  [data-reviews] {container-type:inline-size;}
  [data-reviews] .review-desktop-original {display:none!important;}
  [data-reviews] .mobile-review-variant--separate {display:block!important;}
  [data-reviews] .mobile-review-variant--separate .mobile-review-details {margin-bottom:12px;}
  [data-reviews] .mobile-review-section-title {margin-bottom:12px;}
}
@container (min-width:660px) {
  [data-reviews] .mobile-review-variant--separate {
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:16px;align-items:start;
  }
  .mobile-review-variant--separate .mobile-review-section-title,
  .mobile-review-variant--separate .review-disclaimer {grid-column:1 / -1;}
}
/* Existing phone logo expansion keeps its exact approved dimensions; move
   the brand lettering with the enlarging emblem rather than leaving it under
   the graphic. Do not reflow header's right-side buttons. */
@media(max-width:720px){
  .site-header .brand-wordmark{transition:transform .35s cubic-bezier(.22,.7,.3,1)!important;}
  .site-header .brand-group:has(.header-logo.is-expanded) .brand-wordmark{
    transform:translateX(clamp(75px,calc(211.2px - 49px),162.2px))!important;
    z-index:67!important;
  }
  .site-header .brand-group:has(.header-logo.is-expanded){z-index:66!important;}
}
/* Borderless modern triple-chevron handle. Retain at least 48 px touch target;
   only the icon itself shrinks from the former 4x to 2x height. */
.gallery-card .gallery-grip,.gallery-card.is-current .gallery-knob.gallery-grip{
  width:168px!important;min-width:168px!important;height:72px!important;
  background:transparent!important;border:0!important;border-radius:0!important;
  box-shadow:none!important;backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.gallery-card .gallery-grip-icon,.gallery-card.is-current .gallery-grip-icon{
  width:160px!important;height:64px!important;opacity:.65!important;
}
@media(max-width:720px){
 .gallery-card .gallery-grip,.gallery-card.is-current .gallery-knob.gallery-grip{
    width:160px!important;min-width:160px!important;height:72px!important;
 }
 .gallery-card .gallery-grip-icon,.gallery-card.is-current .gallery-grip-icon{
    width:154px!important;height:62px!important;opacity:.65!important;
 }
}


/* === V10.28: menu bottom fade, stable hover, gallery drag grip === */
@media(max-width:1200px){
  /* Continue the left-to-right gradient below the panel with a soft vertical fade. */
  .mobile-nav::after{
    content:"";position:absolute;left:0;right:0;top:100%;height:38px;
    pointer-events:none;
    background:linear-gradient(to bottom,rgba(249,251,252,.94),transparent);
    -webkit-mask-image:linear-gradient(to right,#000 0%,rgba(0,0,0,.74) 53%,transparent 100%);
    mask-image:linear-gradient(to right,#000 0%,rgba(0,0,0,.74) 53%,transparent 100%);
  }
  html[data-theme="dark"] .mobile-nav::after{
    background:linear-gradient(to bottom,rgba(22,45,60,.94),transparent);
  }
}
/* Hover is a visual-scale only: never transform the LINK's pointer-hit area.
   This prevents flicker when the cursor leaves the bodywork icon. */
.logo-composition--hero .logo-icon:is(:hover,:focus-visible){
  transform:scale(1)!important;filter:none!important;
}
.logo-composition--hero .logo-icon img{
  pointer-events:none!important;
  transform:scale(1);
  transform-origin:50% 50%;
  transition:transform .35s cubic-bezier(.22,.72,.22,1),opacity 160ms ease,filter .35s ease!important;
}
.logo-composition--hero .logo-icon:is(:hover,:focus-visible) img{
  transform:scale(1.14)!important;
  filter:drop-shadow(0 8px 14px rgba(0,0,0,.18));
}
/* Narrow-window labels need extra space at the bodywork icon; no changes to image positions. */
@media(min-width:721px) and (max-width:1200px){
 .logo-composition--hero .logo-letter-layer[data-active-icon="body"]{
   transform:translateX(17px);
 }
}
/* 1.5x high gallery arrow artwork, borderless grip remains transparent. */
.gallery-card .gallery-grip-icon,.gallery-card.is-current .gallery-grip-icon{
  height:96px!important;
}
@media(max-width:720px){
 .gallery-card .gallery-grip-icon,.gallery-card.is-current .gallery-grip-icon{height:93px!important;}
}


.gallery-card .gallery-grip,.gallery-card .gallery-grip-icon{overflow:visible!important;}

/* V10.28: fade the PANEL itself in its otherwise empty lower padding,
   avoiding a hard horizontal cutoff even when the menu has overflow-y:auto. */
@media(max-width:1200px){
 .mobile-nav{
   padding-bottom:54px!important;
   -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 calc(100% - 40px),transparent 100%);
   mask-image:linear-gradient(to bottom,#000 0%,#000 calc(100% - 40px),transparent 100%);
 }
}


/* === V10.29 – precisely restored logo, line-of-copy and stable interactions === */
/* Original V10.27 radial captions are NOT shifted. Only the headline moves on narrow desktops. */
@media(min-width:721px) and (max-width:1200px){
 .logo-composition--hero .logo-letter-layer[data-active-icon="body"]{transform:none!important;}
 .hero .hero-copy h1{position:relative;left:clamp(22px,2.8vw,36px)!important;}
}
/* Positioned in the blank space above the polishing tool. Exactly the same
   fractions on the static logo and the flying logo, regardless of screen size. */
.logo-composition,.intro-logo-holder{container-type:inline-size;}
.logo-motto{
 position:absolute;left:49.8%;top:42.5%;z-index:12;width:49%;
 display:flex;flex-direction:column;align-items:center;justify-content:center;
 text-align:center;white-space:nowrap;pointer-events:none;
 transform:translate(-50%,-50%);
 color:#172331;
 font-family:"Segoe UI",Inter,Arial,sans-serif;
 font-size:4.05cqw;font-weight:720;letter-spacing:-.066em;line-height:1.13;
 text-shadow:none;
}
.logo-composition--hero .logo-motto,.logo-composition--header .logo-motto{opacity:1;}
.intro-logo-holder .logo-motto{opacity:0;}
.intro-logo-holder.is-flying .logo-motto{animation:polisherMottoArrival 2000ms linear both;}
@keyframes polisherMottoArrival{0%,13%{opacity:0}75%,100%{opacity:1}}
/* The wordmark stays readable, even in the compact header logo. */
@media(max-width:720px){.logo-composition--header .logo-motto{font-weight:800;}}
/* Stable artwork split: preserve existing image/video mask settings, avoid
   re-rasterizing a masked video on every mouse leave/return to browser chrome. */
html[data-theme=light] .hero .hero-video-area,
html[data-theme=light] .hero .hero-video-area video{
 transition:none!important;animation:none!important;
}
/* Visually stretch the six chevrons to exactly 1.5 times their previous height.
   A default SVG viewBox with preserveAspectRatio='meet' would prevent this. */
.gallery-card .gallery-grip-icon,.gallery-card.is-current .gallery-grip-icon{
 width:160px!important;height:108px!important;max-height:none!important;
 overflow:visible!important;transform:none!important;
}
@media(max-width:720px){
 .gallery-card .gallery-grip-icon,.gallery-card.is-current .gallery-grip-icon{
    width:154px!important;height:102px!important;
 }
}


/* ================================================================
   V11 – canonical final visual rules (structure finalized)
   This consolidated layer replaces conflicting size/hover rules;
   logo is an RGBA asset, not masked by an overlay.
   ================================================================ */
/* Move the ENTIRE headline/copy/action/proof column together on compact
   DESKTOP windows; original letter arcs and logo positions are unchanged. */
@media (min-width:721px) and (max-width:1200px){
  .hero .hero-copy {position:relative!important;transform:translateX(clamp(22px,2.8vw,36px))!important;}
  .hero .hero-copy h1 {position:static!important;left:auto!important;}
}
/* Double the two-line motto's actual glyph size in BOTH logo variants. */
.logo-composition .logo-motto,.intro-logo-holder .logo-motto{
  font-size:8.10cqw!important;
}
/* Precisely 1.5 × the approved original 30px glyph height. Do not multiply
   the already enlarged values left over from V10.26–V10.29. */
.gallery-card .gallery-grip-icon,.gallery-card.is-current .gallery-grip-icon{
  width:160px!important;height:45px!important;max-height:45px!important;
  aspect-ratio:auto!important;overflow:visible!important;
}
@media(max-width:720px){
  .gallery-card .gallery-grip-icon,.gallery-card.is-current .gallery-grip-icon{
    width:154px!important;height:45px!important;max-height:45px!important;
  }
}
/* Stable desktop hero compositing: remove mask from MOVING VIDEO layers.
   The fade is a static gradient over the playing movie, preventing costly
   live-mask raster rebuilds during browser chrome hover/focus transitions. */
@media(min-width:721px){
  .hero .hero-video-area,.hero.video-preview-on .hero-video-area{
    -webkit-mask-image:none!important;mask-image:none!important;
    contain:none!important;transform:none!important;
    filter:none!important;backface-visibility:visible!important;
    isolation:isolate;
  }
  .hero .hero-video-area video{backface-visibility:visible!important;transform:none!important;}
  .hero .hero-video-area::after,.hero.video-preview-on .hero-video-area::after{
    content:''!important;display:block!important;position:absolute;inset:0;
    background:linear-gradient(to left,
      transparent 0%,rgba(246,248,250,.10) 15%,#f6f8fa 72%,#f6f8fa 100%)!important;
    opacity:1!important;pointer-events:none!important;
  }
  html[data-theme=dark] .hero .hero-video-area::after,
  html[data-theme=dark] .hero.video-preview-on .hero-video-area::after{
    background:linear-gradient(to left,
      transparent 0%,rgba(15,29,42,.10) 15%,#0f1d2a 72%,#0f1d2a 100%)!important;
  }
}
/* Header chrome and hero effects must not trigger a new video raster layer. */
.hero .hero-video-area{transition:none!important;}
/* V11: beat all old theme-specific masked-video overrides; on desktop the
   static gradient overlay alone owns the approved 15–72% fade. */
@media (min-width:721px){
 html[data-theme="light"] .hero .hero-video-area,
 html[data-theme="light"] .hero.video-preview-on .hero-video-area,
 html[data-theme="dark"] .hero .hero-video-area,
 html[data-theme="dark"] .hero.video-preview-on .hero-video-area{
  mask-image:none!important;-webkit-mask-image:none!important;
 }
}


/* V11.1 – fixed glass pagination lane; no card-gesture pagination. */
.gallery-viewport{position:relative;}
.gallery-swipe-bar{
  position:absolute;z-index:30;
  left:50%;bottom:60px;transform:translateX(-50%);
  min-height:48px;display:flex;align-items:center;justify-content:center;
  box-sizing:border-box;border:1px solid rgba(245,250,255,.48);
  border-radius:14px;
  background:rgba(30,54,73,.30);
  -webkit-backdrop-filter:blur(13px) saturate(1.35);
  backdrop-filter:blur(13px) saturate(1.35);
  box-shadow:0 7px 24px rgba(10,29,44,.20),inset 0 1px rgba(255,255,255,.25);
  color:#f9fcff;touch-action:none;user-select:none;-webkit-user-select:none;
  cursor:ew-resize;pointer-events:auto;
  opacity:1;visibility:visible;
  transition:opacity 2s ease,visibility 2s ease;
}
.gallery-swipe-bar__word{
  font:750 12px/1.2 Arial,Helvetica,sans-serif;
  letter-spacing:.16em;color:#fff;
  text-shadow:0 1px 3px rgba(0,0,0,.38);
  white-space:nowrap;pointer-events:none;
}
.gallery-swipe-bar.is-faded{
  opacity:0;visibility:hidden;pointer-events:none;
}
@media(max-width:720px){
  .gallery-swipe-bar{bottom:48px;min-height:44px;border-radius:12px;}
  .gallery-swipe-bar__word{font-size:11px;letter-spacing:.12em;}
}
@media(prefers-reduced-motion:reduce){
  .gallery-swipe-bar{transition:none;}
}


/* V11.2 — touch-only glass pagination, aligned 1 mm above the displayed card bottom. */
.gallery-viewport .gallery-swipe-bar {display:none!important;bottom:1mm!important;}
html.touch-gallery-enabled .gallery-viewport .gallery-swipe-bar{display:flex!important;}
/* The closed glass bar stays mounted but cannot be touched while fading. */
html.touch-gallery-enabled .gallery-viewport .gallery-swipe-bar.is-faded{pointer-events:none!important;}
/* Light theme: proof-line must use the same color as the adjacent proof text. */
html[data-theme="light"] .hero .hero-proof > .proof-line{background:var(--ink)!important;opacity:1!important;}
/* Readable two-line motto even in the small, unexpanded header logo.
   Container-based sizing grows with the logo; text never affects hit targets. */
.site-header .logo-composition--header .logo-motto{
  font-size:clamp(5.7px,9.4cqw,18.5px)!important;
  width:78%!important;font-weight:850!important;
  letter-spacing:-.085em!important;line-height:1.1!important;
  opacity:1!important;visibility:visible!important;
  z-index:16!important;
}
/* Intro handoff: fade the new interactive logo onto the final movie frame,
   then retain the existing flight/motto animation. */
.intro-video .intro-logo-holder{
  transition:opacity 600ms ease!important;
}
.intro-video .intro-stage.handoff-ready .intro-logo-holder{
  opacity:1!important;visibility:visible!important;
}
@media(prefers-reduced-motion:reduce){.intro-video .intro-logo-holder{transition:none!important;}}


/* V11.4: compact header motto visible in rest state; expanded scales as in V11.1. */
.site-header .header-logo-panel .header-logo-image{display:block!important;}
.site-header .header-logo-panel .logo-composition--header{opacity:1!important;visibility:visible!important;z-index:4!important;}
.site-header .logo-composition--header .logo-motto{
 opacity:1!important;visibility:visible!important;display:flex!important;
 font-size:clamp(6px,8.10cqw,14.1px)!important;width:49%!important;font-weight:720!important;
 letter-spacing:-.066em!important;line-height:1.13!important;
 color:#172331!important;text-shadow:none!important;z-index:20!important;
}
@media(max-width:720px){.site-header .logo-composition--header .logo-motto{font-weight:800!important;}}
/* Use the same size ratio as V11.1; on expansion, text scales together with logo. */
.intro-video .intro-logo-holder{transition:opacity 600ms ease!important;}
/* Motto enters while logo flies; twice the fade duration of original V11.1. */
.intro-logo-holder.is-flying .logo-motto{animation:polisherMottoArrivalV114 2000ms linear both!important;}
@keyframes polisherMottoArrivalV114{0%,20%{opacity:0}100%{opacity:1}}


/* V11.5: preserve the approved 211.2px expanded logo and its text.
   Scale the RESTING motto by the SAME factor as the artwork (49/211.2).
   No minimum font-size cap: the 14.1px expanded text becomes 3.27px resting. */
.site-header .logo-composition--header .logo-motto {
  font-size:6.68cqw!important;
  width:49%!important;
  line-height:1.13!important;
  letter-spacing:-.066em!important;
  font-weight:720!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:none!important;
}
@media(max-width:720px){
  .site-header .logo-composition--header .logo-motto {font-weight:800!important;}
  /* Restore the continuous mobile tap-to-zoom width transition. Previous
     stylesheet set transition:none!important on the panel, causing a jump. */
  .site-header .header-logo-panel {
    transition:width 550ms cubic-bezier(.2,.74,.22,1)!important;
    will-change:width;
  }
  .site-header .brand-wordmark {
    transition:transform 550ms cubic-bezier(.2,.74,.22,1)!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .site-header .header-logo-panel,.site-header .brand-wordmark{transition:none!important;}
}


/* V11.6 – selected fingerprint no.2 in the touch-only pagination control. */
.gallery-swipe-bar{gap:clamp(12px,4vw,28px)!important;}
.gallery-swipe-bar__fingerprint{display:block;width:35px;height:41px;max-width:20%;object-fit:contain;filter:brightness(0) invert(1);pointer-events:none;user-select:none;}
.gallery-swipe-bar__chevrons{display:inline-block;color:#fff;font:800 30px/1 Arial,Helvetica,sans-serif;letter-spacing:-.1em;pointer-events:none;user-select:none;text-shadow:0 1px 3px rgba(0,0,0,.32);}
@media(max-width:720px){.gallery-swipe-bar__fingerprint{width:29px;height:34px;}.gallery-swipe-bar__chevrons{font-size:27px;}}
/* Touchscreen browsers keep a synthetic :hover or :focus-within on a tapped
   logo. Only explicit .is-expanded may enlarge the mark on a touch phone.
   This does not change the 550 ms open/close animation. */
@media(max-width:720px) and (hover:none){
  .site-header .header-logo:not(.is-expanded):is(:hover,:focus-within){
    flex:0 0 49px!important;width:49px!important;min-width:49px!important;
  }
  .site-header .header-logo:not(.is-expanded):is(:hover,:focus-within) .header-logo-panel{
    width:100%!important;
  }
  .site-header .header-logo:not(.is-expanded):is(:hover,:focus-within) .header-logo-image{
    opacity:1!important;
  }
  .site-header .header-logo:not(.is-expanded):is(:hover,:focus-within) .header-hotspots{
    pointer-events:none!important;
  }
}


/* V11.7 – preserve V11.6 visuals with targeted handoff, stamps and glass fixes. */
/* The duplicated mobile target must stay entirely invisible WHILE the flying
   logo is on screen; hiding the parent panel alone did not hide children with
   explicit visibility:visible!important. */
html[data-intro="landing"] .site-header .header-logo,
html[data-intro="landing"] .site-header .header-logo *{
  visibility:hidden!important;
  pointer-events:none!important;
}
/* Desktop's final target stays hidden until the animated layer is at rest. */
html[data-intro="landing"] .hero .logo-composition--hero{
  visibility:hidden!important;
}
/* Unhide precisely at the completed flight, with a 200ms cross-dissolve. */
html[data-intro="landing"].logo-handoff-crossfade .hero .logo-composition--hero{
  visibility:visible!important;
}
html[data-intro="landing"].logo-handoff-crossfade .site-header .header-logo,
html[data-intro="landing"].logo-handoff-crossfade .site-header .header-logo *{
  visibility:visible!important;
}
.intro-video .intro-stage.handoff-moving .intro-logo-holder.is-crossfading{
  opacity:0!important;
  transition:opacity 200ms ease!important;
}
/* Before / after labels are real UI labels, not baked into sample photos. */
.gallery-card .gallery-stamp{
  top:16px!important;
  bottom:auto!important;
}
@media(max-width:720px){
  .gallery-card .gallery-stamp{top:10px!important;bottom:auto!important;}
}
/* 30% more see-through: reduce visual opacity to 70% of the V11.6 value. */
.gallery-viewport .gallery-swipe-bar{
  background:rgba(30,54,73,.21)!important;
  border-color:rgba(245,250,255,.336)!important;
  box-shadow:0 7px 24px rgba(10,29,44,.14),inset 0 1px rgba(255,255,255,.175)!important;
  transition:opacity 2s ease,visibility 2s ease!important;
}
/* Fade OUT in 1 second, fade IN in the approved 2 seconds. */
.gallery-viewport .gallery-swipe-bar.is-faded{
  transition:opacity 1s ease,visibility 1s ease!important;
}
@media(prefers-reduced-motion:reduce){
  .gallery-viewport .gallery-swipe-bar,
  .gallery-viewport .gallery-swipe-bar.is-faded{transition:none!important;}
}



/* V11.9: one continuous desktop hero element, no ending copy swap. */
.logo-composition--hero.is-direct-flight{
  display:block!important;visibility:visible!important;opacity:1!important;
  transition:none!important;will-change:transform;
}
.logo-composition--hero.is-direct-flight .logo-motto{
  animation:polisherMottoArrivalV114 2000ms linear both!important;
}
/* While moving, prevent hover/keyboard hotspots from intercepting gestures. */
.logo-composition--hero.is-direct-flight .logo-icon{pointer-events:none!important;}

/* V11.10: override the OLD landing-state hide rule only for the flying
   real hero logo. Otherwise its 2s motion is invisible. */
html[data-intro="landing"] .logo-composition--hero.is-direct-flight,
html[data-intro="landing"] .logo-composition--hero.is-direct-flight .logo-base,
html[data-intro="landing"] .logo-composition--hero.is-direct-flight .logo-icon {
  visibility:visible!important;
}

/* V11.11 – true in-place desktop FLIP, without DOM relocation. */
@media(min-width:721px){
  html[data-intro="landing"] .hero .logo-composition--hero.is-slot-flight,
  html[data-intro="landing"] .hero .logo-composition--hero.is-slot-flight *{
    visibility:visible!important;
  }
  .logo-composition--hero.is-slot-flight{
    display:block!important;opacity:1!important;
    transition:none!important;
    will-change:transform;
  }
  .logo-composition--hero.is-slot-flight .logo-icon{
    pointer-events:none!important;
  }
  .logo-composition--hero.is-slot-flight .logo-motto{
    animation:polisherMottoArrivalV114 2000ms linear both!important;
  }
  .intro-video.is-slot-crossfading{
    opacity:0!important;
    transition:opacity 250ms ease!important;
    pointer-events:none!important;
  }
}
