/* ==========================================================================
   İZKOL — 5.0 design system
   One shell · five scenes · one type scale · one button language
   Sections: 1 tokens · 2 base · 3 shell · 4 header · 5 scenes
             6 buttons & type · 7 hero · 8 results · 9 contact
             10 overlays · 11 seo pages · 12 responsive
   ========================================================================== */

/* 1 · TOKENS ============================================================= */
@font-face{font-family:Nunito;src:url('nunito-regular.woff') format('woff');font-weight:400;font-display:swap}
@font-face{font-family:Nunito;src:url('nunito-bold.woff') format('woff');font-weight:600 900;font-display:swap}

:root{
  /* colour */
  --ink:#0e2c3f;
  --ink-soft:#1d4a63;
  --navy:#102f48;
  --navy-deep:#0b2334;
  --blue:#157fa7;
  --blue-deep:#0f6a8d;
  --blue-light:#4ea8c9;
  --cyan:#8ad6ec;
  --paper:#f7f5ee;
  --paper-bright:#fdfcf7;
  --cream:#efe9dd;
  --canvas:#e7e2d7;
  --muted:#5c7686;
  --muted-soft:#8195a1;
  --line:rgba(16,47,72,.13);
  --line-faint:rgba(16,47,72,.08);
  --line-strong:rgba(16,47,72,.26);
  --shadow-soft:0 26px 64px -36px rgba(11,35,52,.55);
  --shadow-panel:0 30px 70px -42px rgba(11,35,52,.6);

  /* geometry */
  --r-xs:8px;
  --r-sm:12px;
  --r-md:16px;
  --r-lg:22px;
  --r-xl:28px;
  --r-pill:999px;
  --shell-radius:26px;
  --shell-gap:clamp(10px,1.35vw,20px);
  --gutter:clamp(22px,3.6vw,60px);
  --content:1400px;

  /* motion */
  --scene-dur:760ms;
  --scene-ease:cubic-bezier(.22,.61,.36,1);
  --soft-dur:480ms;
  --soft-ease:cubic-bezier(.22,.61,.36,1);
  --fast-dur:260ms;

  /* layout */
  --header-h:76px;
  --dock-h:64px;
  --mobile-bar:0px;
  --cookie-height:0px;
}

/* 2 · BASE =============================================================== */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  min-height:100svh;
  background:var(--canvas);
  color:var(--ink);
  font-family:Nunito,'Segoe UI',Arial,sans-serif;
  font-size:16px;
  line-height:1.6;
  overflow:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.028em;line-height:1.14}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px}
::selection{background:var(--blue);color:#fff}

.eyebrow{
  display:block;
  font-size:11px;
  font-weight:700;
  letter-spacing:.17em;
  line-height:1.5;
  text-transform:uppercase;
  color:var(--muted);
}
.text-cta{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-height:44px;
  font-size:14px;
  font-weight:700;
  color:var(--ink-soft);
  transition:color var(--fast-dur) var(--soft-ease);
}
.text-cta>span{color:var(--blue);font-size:17px;line-height:1;transition:transform var(--fast-dur) var(--soft-ease)}
.text-cta:hover{color:var(--blue-deep)}
.text-cta:hover>span{transform:translate(2px,-2px)}

/* reveal (enabled by .reveal-ready on <html>, neutralised by the noscript block) */
[data-reveal]{opacity:1}
.reveal-ready [data-reveal]{
  opacity:0;
  transform:translate3d(0,16px,0);
  transition:opacity 620ms var(--scene-ease) var(--d,0ms),transform 620ms var(--scene-ease) var(--d,0ms);
  will-change:opacity,transform;
}
.reveal-ready .scene.is-active [data-reveal]{opacity:1;transform:none}

/* 3 · SHELL ============================================================= */
.site-shell{
  position:absolute;
  inset:0;
  background:var(--paper);
  isolation:isolate;
}
.ambient{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.ambient::before{
  content:'';
  position:absolute;
  inset:-20%;
  background:
    radial-gradient(46% 52% at var(--mx,50%) var(--my,42%),rgba(21,127,167,.11),transparent 68%),
    radial-gradient(38% 44% at calc(100% - var(--mx,50%)) 88%,rgba(120,190,214,.09),transparent 70%);
  transform:translate3d(var(--px,0px),var(--py,0px),0);
}
.ambient::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(247,245,238,.86) 0%,rgba(247,245,238,0) 26%,rgba(247,245,238,0) 74%,rgba(247,245,238,.7) 100%);
}
.stage{position:absolute;inset:0;z-index:1}

/* 4 · HEADER ============================================================ */
.shell-header{
  position:absolute;
  inset:0 0 auto;
  z-index:14;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  height:var(--header-h);
  padding:0 var(--gutter);
}
.wordmark{
  display:inline-flex;
  align-items:center;
  font-size:clamp(26px,2.1vw,32px);
  font-weight:800;
  letter-spacing:-.045em;
  line-height:1;
  color:var(--navy);
  transition:opacity var(--fast-dur) var(--soft-ease);
}
.wordmark>span{color:var(--blue)}
.wordmark:hover{opacity:.72}
.header-actions{display:flex;align-items:center;gap:12px}
.header-phone{
  font-size:14px;
  font-weight:700;
  color:var(--ink-soft);
  letter-spacing:.01em;
  transition:color var(--fast-dur) var(--soft-ease);
}
.header-phone:hover{color:var(--blue-deep)}
.header-wa{
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:40px;
  padding:9px 16px;
  border:1px solid var(--line-strong);
  border-radius:var(--r-pill);
  font-size:13.5px;
  font-weight:700;
  color:var(--ink-soft);
  transition:background var(--fast-dur) var(--soft-ease),border-color var(--fast-dur) var(--soft-ease),color var(--fast-dur) var(--soft-ease);
}
.header-wa>span{color:var(--blue);font-size:16px;line-height:1}
.header-wa:hover{background:var(--navy);border-color:var(--navy);color:var(--paper)}
.header-wa:hover>span{color:var(--cyan)}
.menu-toggle{
  display:none;
  width:44px;
  height:44px;
  border-radius:var(--r-sm);
  border:1px solid var(--line);
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
}
.menu-toggle>span{display:block;width:19px;height:1.6px;background:var(--ink-soft);transition:transform var(--fast-dur) var(--soft-ease)}
.menu-toggle[aria-expanded="true"]>span:first-child{transform:translateY(3.8px) rotate(45deg)}
.menu-toggle[aria-expanded="true"]>span:last-child{transform:translateY(-3.8px) rotate(-45deg)}
.mobile-menu{
  position:absolute;
  z-index:16;
  top:var(--header-h);
  right:12px;
  left:12px;
  display:flex;
  flex-direction:column;
  padding:10px;
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  background:var(--paper-bright);
  box-shadow:var(--shadow-panel);
  animation:menuIn 240ms var(--soft-ease);
}
@keyframes menuIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
.mobile-menu a{
  display:flex;
  align-items:center;
  min-height:52px;
  padding:12px 14px;
  border-radius:var(--r-sm);
  font-size:16px;
  font-weight:700;
  color:var(--ink);
}
.mobile-menu a:hover{background:var(--cream)}
.mobile-menu-call{margin-top:6px;color:var(--ink-soft)!important;font-size:15px!important}
.mobile-menu-wa{background:var(--navy);color:var(--paper)!important;justify-content:center}
.mobile-menu-close{
  align-self:flex-end;
  min-height:40px;
  padding:8px 12px;
  font-size:13px;
  font-weight:700;
  color:var(--muted);
}

/* 6 · BUTTONS =========================================================== */
.button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:52px;
  padding:14px 24px;
  border-radius:var(--r-pill);
  font-size:15px;
  font-weight:700;
  letter-spacing:-.01em;
  white-space:nowrap;
  transition:background var(--fast-dur) var(--soft-ease),color var(--fast-dur) var(--soft-ease),border-color var(--fast-dur) var(--soft-ease),transform var(--fast-dur) var(--soft-ease);
}
.button>span{font-size:18px;line-height:1;transition:transform var(--fast-dur) var(--soft-ease)}
.button:active{transform:translateY(1px)}
.button-primary{background:var(--navy);color:var(--paper);border:1px solid var(--navy)}
.button-primary:hover{background:var(--blue-deep);border-color:var(--blue-deep)}
.button-primary:hover>span{transform:translateX(3px)}
.button-secondary{background:transparent;color:var(--ink-soft);border:1px solid var(--line-strong)}
.button-secondary:hover{background:var(--paper-bright);border-color:var(--ink-soft);color:var(--ink)}
.button-secondary:hover>span{transform:translate(2px,-2px)}

/* 5 · SCENES ============================================================ */
.scene{display:none}
.scene-inner{position:relative;z-index:1}
.scene-main{flex:1 1 auto;min-height:0;display:grid;grid-template-rows:minmax(0,1fr)}
.scene-foot{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:14px}
.scene-index{font-size:12px;font-weight:700;letter-spacing:.18em;color:var(--muted)}
.scene-index>i{font-style:normal;color:var(--line-strong);padding:0 3px}
.scene-hint{font-size:12.5px;color:var(--muted-soft);letter-spacing:.01em}
.scene-next{
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--muted);
  transition:color var(--fast-dur) var(--soft-ease);
}
.scene-next>span{font-size:16px;line-height:1;animation:nudge 2.4s var(--soft-ease) infinite}
@keyframes nudge{0%,72%,100%{transform:translateY(0);opacity:.7}82%{transform:translateY(4px);opacity:1}}
.scene-next:hover{color:var(--ink)}

/* 7 · SCENE 01 · HERO =================================================== */
.hero-grid{display:grid;grid-template-columns:minmax(0,44%) 1fr;align-items:stretch;flex:1 1 auto;min-height:0}
.hero-copy{display:flex;flex-direction:column;justify-content:center;padding-bottom:8px}
.hero-copy h1{
  font-size:clamp(38px,4.3vw,66px);
  line-height:1.06;
  letter-spacing:-.04em;
  margin:20px 0 22px;
}
.hero-copy h1>span{color:var(--blue)}
.hero-lead{font-size:clamp(15px,1.05vw,18px);line-height:1.72;color:var(--ink-soft);max-width:34ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.hero-phone{
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:fit-content;
  margin-top:26px;
  font-size:14px;
  font-weight:700;
  color:var(--muted);
  border-bottom:1px solid var(--line);
  padding-bottom:3px;
  transition:color var(--fast-dur) var(--soft-ease),border-color var(--fast-dur) var(--soft-ease);
}
.hero-phone>span{color:var(--blue);font-size:15px}
.hero-phone:hover{color:var(--blue-deep);border-color:var(--blue-light)}
.hero-media{position:relative;overflow:hidden;border-radius:var(--r-lg) var(--r-lg) 0 0}
.hero-media::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,var(--paper) 0%,rgba(247,245,238,.34) 8%,rgba(247,245,238,0) 26%);
  pointer-events:none;
}
.media-img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:50% 56%;
  transform:scale(1.045);
  transition:transform 1500ms var(--scene-ease);
}
.scene.is-active .media-img{transform:scale(1)}
.hero-media-tag{
  position:absolute;
  left:22px;
  bottom:20px;
  z-index:2;
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:#1b3d4f;
  background:rgba(253,252,247,.82);
  border:1px solid rgba(255,255,255,.7);
  border-radius:var(--r-pill);
  padding:7px 14px;
}

/* 8 · SCENE 04 · RESULTS ================================================ */
.results-layout{display:grid;grid-template-columns:minmax(240px,300px) 1fr;gap:clamp(22px,3vw,52px);height:100%;min-height:0}
.results-aside{display:flex;flex-direction:column;min-width:0}
.results-aside h2{font-size:clamp(30px,2.9vw,44px);line-height:1.1;margin:16px 0 14px}
.results-lead{font-size:15px;line-height:1.7;color:var(--muted);max-width:26ch}
.result-options{display:flex;flex-wrap:wrap;gap:6px;margin:24px 0 0}
.result-options button{
  min-height:40px;
  padding:9px 15px;
  border:1px solid var(--line);
  border-radius:var(--r-pill);
  font-size:13.5px;
  font-weight:700;
  color:var(--muted);
  transition:background var(--fast-dur) var(--soft-ease),color var(--fast-dur) var(--soft-ease),border-color var(--fast-dur) var(--soft-ease);
}
.result-options button:hover{border-color:var(--ink-soft);color:var(--ink)}
.result-options button.selected{background:var(--navy);border-color:var(--navy);color:var(--paper)}
.result-detail{margin-top:auto;padding-top:24px}
.result-detail h3{font-size:clamp(20px,1.7vw,26px);margin:9px 0 8px}
.result-detail p{font-size:14px;line-height:1.65;color:var(--muted);margin-bottom:10px}
.result-note{font-size:12px;line-height:1.6;color:var(--muted-soft);margin-top:18px}
.results-media{min-width:0;min-height:0}
.comparison{
  position:relative;
  height:100%;
  min-height:240px;
  overflow:hidden;
  border-radius:var(--r-lg);
  background:var(--cream);
  cursor:ew-resize;
  touch-action:pan-y;
  user-select:none;
  -webkit-user-select:none;
  --split:50%;
}
.comparison:focus-within{outline:3px solid var(--blue);outline-offset:3px}
.comparison.dragging{cursor:grabbing}
.comparison-layer{position:absolute;inset:0;pointer-events:none}
.comparison-layer img{width:100%;height:100%;object-fit:cover;object-position:center;-webkit-user-drag:none}
.after-layer{clip-path:inset(0 calc(100% - var(--split)) 0 0)}
.compare-label{
  position:absolute;
  top:16px;
  z-index:3;
  padding:6px 13px;
  border-radius:var(--r-pill);
  background:rgba(253,252,247,.9);
  font-size:11.5px;
  font-weight:700;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--ink-soft);
  pointer-events:none;
  transition:opacity var(--fast-dur) var(--soft-ease);
}
.before-label{right:16px}
.after-label{left:16px}
.compare-divider{
  position:absolute;
  top:0;
  bottom:0;
  left:var(--split);
  z-index:3;
  width:2px;
  transform:translateX(-1px);
  background:rgba(255,255,255,.86);
  box-shadow:0 0 14px rgba(14,44,63,.24);
  pointer-events:none;
  transition:opacity var(--fast-dur) var(--soft-ease);
}
.compare-divider>span{
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  display:grid;
  place-items:center;
  width:46px;
  height:46px;
  border-radius:50%;
  background:var(--paper-bright);
  color:var(--blue-deep);
  font-size:19px;
  letter-spacing:3px;
  box-shadow:0 6px 20px rgba(14,44,63,.2);
}
.comparison #compare-range{
  position:absolute;
  inset:0;
  z-index:4;
  width:100%;
  height:100%;
  margin:0;
  opacity:0;
  pointer-events:none;
}

/* 9 · SCENE 05 · CONTACT ================================================ */
.contact-layout{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;max-width:900px;height:100%}
.contact-layout h2{font-size:clamp(34px,3.9vw,60px);line-height:1.08;margin:20px 0 22px}
.contact-layout h2>span{color:var(--blue)}
.contact-lead{font-size:clamp(15px,1.05vw,18px);line-height:1.72;color:var(--ink-soft);max-width:44ch}
.contact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;margin-top:34px}
.contact-phone{
  font-size:clamp(20px,1.9vw,28px);
  font-weight:800;
  letter-spacing:-.03em;
  color:var(--navy);
  border-bottom:2px solid var(--cyan);
  padding-bottom:3px;
  transition:color var(--fast-dur) var(--soft-ease),border-color var(--fast-dur) var(--soft-ease);
}
.contact-phone:hover{color:var(--blue-deep);border-color:var(--blue)}
.contact-note{margin-top:38px;font-size:13px;letter-spacing:.06em;color:var(--muted-soft)}
.shell-footer{
  flex:0 0 auto;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px 26px;
  margin-top:26px;
  padding-top:20px;
  border-top:1px solid var(--line-faint);
  font-size:13px;
  color:var(--muted);
}
.footer-links{display:flex;flex-wrap:wrap;gap:8px 20px}
.footer-links a,.footer-links button,.footer-top{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  font:inherit;
  font-size:13px;
  color:var(--muted);
  transition:color var(--fast-dur) var(--soft-ease);
}
.footer-links a:hover,.footer-links button:hover,.footer-top:hover{color:var(--blue-deep)}
.footer-top{margin-left:auto;gap:8px}
.footer-top>span{color:var(--blue)}

/* 10 · OVERLAYS ========================================================= */
.skip{position:fixed;top:-100px;left:12px;z-index:99;padding:12px 18px;border-radius:var(--r-sm);background:var(--navy);color:var(--paper);font-size:14px;font-weight:700;transition:top var(--fast-dur) var(--soft-ease)}
.skip:focus{top:12px}

.scene-dock{
  position:absolute;
  z-index:14;
  left:50%;
  bottom:calc(12px + env(safe-area-inset-bottom));
  transform:translateX(-50%);
  display:flex;
  align-items:center;
  gap:2px;
  max-width:calc(100% - 24px);
  padding:5px;
  border:1px solid var(--line);
  border-radius:var(--r-pill);
  background:rgba(253,252,247,.9);
  box-shadow:0 20px 44px -26px rgba(11,35,52,.6);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
.scene-dock button{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:42px;
  padding:10px 16px;
  border-radius:var(--r-pill);
  font-size:13.5px;
  font-weight:700;
  color:var(--muted);
  white-space:nowrap;
  transition:background var(--fast-dur) var(--soft-ease),color var(--fast-dur) var(--soft-ease);
}
.scene-dock button:hover{color:var(--ink);background:rgba(16,47,72,.05)}
.scene-dock button[aria-current]{background:var(--navy);color:var(--paper)}
.dock-num{font-size:10px;font-weight:700;letter-spacing:.1em;opacity:.62}
.scene-dock button[aria-current] .dock-num{color:var(--cyan);opacity:1}

dialog{color:var(--ink)}
dialog::backdrop{background:rgba(11,35,52,.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}

/* lightbox */
.lightbox{
  width:min(1120px,94vw);
  max-width:94vw;
  height:min(92svh,1000px);
  max-height:92svh;
  padding:0;
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  background:var(--paper-bright);
  overflow:hidden;
}
.lightbox[open]{display:flex;flex-direction:column}
.lightbox-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-bottom:1px solid var(--line-faint)}
.lightbox-top h2{font-size:17px;letter-spacing:-.01em;margin:0}
.lightbox-close,.gallery-prev,.gallery-next{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  flex-shrink:0;
  border:1px solid var(--line);
  border-radius:50%;
  color:var(--ink-soft);
  font-size:19px;
  transition:background var(--fast-dur) var(--soft-ease),color var(--fast-dur) var(--soft-ease);
}
.lightbox-close:hover,.gallery-prev:hover,.gallery-next:hover{background:var(--navy);color:var(--paper);border-color:var(--navy)}
.gallery-prev,.gallery-next{font-size:24px;line-height:1}
.lightbox-mode{display:flex;gap:7px;justify-content:center;padding:12px}
.lightbox-mode button{
  min-height:42px;
  padding:9px 24px;
  border:1px solid var(--line);
  border-radius:var(--r-pill);
  font-size:14px;
  font-weight:700;
  color:var(--muted);
  transition:background var(--fast-dur) var(--soft-ease),color var(--fast-dur) var(--soft-ease);
}
.lightbox-mode button.selected{background:var(--navy);border-color:var(--navy);color:var(--paper)}
.lightbox-stage{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:0;flex:1;padding:0 16px 14px}
.lightbox-stage>img{min-width:0;max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--r-sm)}
.lightbox-bottom{display:flex;justify-content:space-between;gap:14px;padding:12px 20px;border-top:1px solid var(--line-faint);font-size:12px;color:var(--muted)}

/* legal dialog */
.legal-dialog{
  width:min(860px,94vw);
  max-width:94vw;
  max-height:88svh;
  padding:0;
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  background:var(--paper-bright);
  overflow:hidden;
}
.legal-dialog[open]{display:flex;flex-direction:column}
.legal-dialog-top{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px 14px}
.legal-dialog-top h2{font-size:19px;margin:0}
.legal-dialog-close{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;font-size:18px;color:var(--ink-soft)}
.legal-dialog-close:hover{background:var(--navy);color:var(--paper);border-color:var(--navy)}
.legal-dialog-tabs{display:flex;gap:6px;padding:0 22px 14px;flex-wrap:wrap}
.legal-dialog-tabs button{
  min-height:40px;
  padding:8px 16px;
  border:1px solid var(--line);
  border-radius:var(--r-pill);
  font-size:13.5px;
  font-weight:700;
  color:var(--muted);
}
.legal-dialog-tabs button[aria-pressed]{background:var(--navy);border-color:var(--navy);color:var(--paper)}
.legal-dialog-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 22px 26px;border-top:1px solid var(--line-faint)}
.legal-doc-title{font-size:21px;margin:22px 0 4px}
.legal-copy{max-width:70ch}
.legal-copy h4{font-size:17px;margin:22px 0 8px;letter-spacing:-.015em}
.legal-copy p{font-size:15px;line-height:1.8;color:var(--ink-soft);margin:0 0 12px}
.legal-copy a{color:var(--blue-deep);text-decoration:underline;text-underline-offset:3px}
.legal-copy .legal-date,.legal-copy .legal-source{font-size:13px;color:var(--muted)}
.legal-copy code{font-size:13.5px;overflow-wrap:anywhere}

/* cookie consent */
.cookie-banner{
  position:fixed;
  z-index:60;
  left:max(18px,var(--gutter));
  bottom:calc(18px + env(safe-area-inset-bottom));
  width:min(500px,calc(100vw - 36px));
  max-height:calc(100svh - 120px);
  overflow:auto;
  overscroll-behavior:contain;
  padding:22px;
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  background:var(--paper-bright);
  box-shadow:var(--shadow-panel);
  color:var(--ink);
  animation:menuIn 280ms var(--soft-ease);
}
.cookie-banner h2{font-size:19px;margin:0 0 8px}
.cookie-banner p{font-size:14px;line-height:1.65;color:var(--muted);margin:0 0 16px}
.cookie-banner p a{color:var(--blue-deep);text-decoration:underline}
.cookie-actions{display:flex;flex-wrap:wrap;gap:8px}
.cookie-actions button,.cookie-options button{
  flex:1;
  min-height:44px;
  padding:10px 16px;
  border:1px solid var(--line-strong);
  border-radius:var(--r-pill);
  font-size:14px;
  font-weight:700;
  color:var(--ink-soft);
}
.cookie-actions button:hover,.cookie-options button:hover{background:var(--cream)}
.cookie-actions #cookie-accept{background:var(--navy);border-color:var(--navy);color:var(--paper)}
.cookie-actions #cookie-accept:hover{background:var(--blue-deep);border-color:var(--blue-deep)}
.cookie-options{display:grid;gap:10px;padding-bottom:16px}
.cookie-options label{display:flex;align-items:center;gap:10px;font-size:15px;min-height:36px}
.cookie-options input{width:20px;height:20px;accent-color:var(--blue)}
.cookie-options button{justify-self:start;flex:none}

/* 11 · SEO SERVICE PAGES (share the base system) ======================== */
body:not(.is-experience){overflow:auto;min-height:100svh}
.wrap{width:calc(100% - 2 * var(--gutter));max-width:var(--content);margin-inline:auto}
.fixed-home{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:var(--canvas)}
.home-art{position:absolute;inset:0}
.backdrop-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:56% center;opacity:0;transition:opacity .6s var(--soft-ease)}
.backdrop-image.active{opacity:1}
.home-light{position:absolute;inset:0;background:linear-gradient(90deg,rgba(247,245,238,.94) 0%,rgba(247,245,238,.78) 32%,rgba(247,245,238,.18) 68%,rgba(247,245,238,0)),linear-gradient(0deg,rgba(247,245,238,.7),transparent 42%)}
body:not(.is-experience) header{
  position:absolute;
  inset:0 0 auto;
  z-index:3;
  background:transparent;
}
body:not(.is-experience) .nav{display:flex;align-items:center;gap:26px;min-height:86px}
body:not(.is-experience) .nav-wa{margin-left:auto;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:10px 18px;border:1px solid var(--line-strong);border-radius:var(--r-pill);font-size:14px;font-weight:700;color:var(--ink-soft)}
body:not(.is-experience) main,body:not(.is-experience) footer{position:relative;z-index:2}
body:not(.is-experience) main{padding:120px 0 40px}
body:not(.is-experience) footer{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding:26px 0 40px;margin-top:20px;border-top:1px solid var(--line-faint);font-size:13.5px;color:var(--muted)}
body:not(.is-experience) footer a:hover{color:var(--blue-deep)}
.mobile-actions{display:none}

/* 12 · RESPONSIVE ======================================================= */

/* ≥1180px — the floating dock shows its section numbers */
@media (min-width:1180px){
  :root{--header-h:82px;--dock-h:66px}
}

/* 1024px and up — the desktop experience: fixed shell, one wheel = one scene */
@media (min-width:1024px){
  body{overflow:hidden}
  .site-shell{
    inset:var(--shell-gap);
    border:1px solid rgba(16,47,72,.1);
    border-radius:var(--shell-radius);
    box-shadow:var(--shadow-soft);
    overflow:hidden;
  }
  .scene{
    position:absolute;
    inset:0;
    display:block;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translate3d(0,26px,0) scale(.99);
    transition:opacity var(--scene-dur) var(--scene-ease),transform var(--scene-dur) var(--scene-ease),visibility 0s linear var(--scene-dur);
  }
  .stage[data-dir="prev"] .scene{transform:translate3d(0,-26px,0) scale(.99)}
  .scene.is-active{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
    transition-delay:0s;
  }
  .stage.no-anim .scene{transition:none!important}
  .scene-inner{
    display:flex;
    flex-direction:column;
    height:100%;
    padding:calc(var(--header-h) + 4px) var(--gutter) calc(var(--dock-h) + 10px);
    overflow-y:auto;
    overscroll-behavior-y:contain;
  }

  /* hero bleeds to the shell edge on the right; its footer floats over the copy column */
  .scene-hero .scene-inner{padding:0}
  .hero-copy{padding:calc(var(--header-h) + 26px) var(--gutter) calc(var(--dock-h) + 30px)}
  .hero-media{border-radius:0}
  .scene-hero .scene-foot{
    position:absolute;
    left:var(--gutter);
    right:auto;
    bottom:calc(var(--dock-h) + 30px);
    max-width:38%;
    padding-top:0;
  }

  .results-media,.comparison{height:100%}
  .contact-layout{padding-bottom:6px}
}

/* 1023px and below — the mobile experience: one continuous vertical flow */
@media (max-width:1023.98px){
  :root{--header-h:66px;--dock-h:60px;--shell-radius:0px}
  body{height:100svh}
  .site-shell{
    overflow-y:auto;
    overflow-x:hidden;
    overscroll-behavior-y:contain;
    scroll-snap-type:y proximity;
    -webkit-overflow-scrolling:touch;
  }
  /* the scenes flow normally here, so the stage must not be pinned anymore */
  .stage{position:relative;inset:auto;height:auto}
  .scene{display:block;scroll-snap-align:start;scroll-snap-stop:normal}
  .scene-inner{
    display:flex;
    flex-direction:column;
    min-height:100svh;
    padding:calc(var(--header-h) + 18px) var(--gutter) calc(var(--dock-h) + 22px + env(safe-area-inset-bottom));
  }
  .scene-main{flex:0 0 auto;grid-template-rows:auto;padding-top:12px}
  .scene-foot{margin-top:26px}
  .scene-inner{overflow:visible}

  .hero-grid{grid-template-columns:1fr;gap:20px;height:auto}
  .hero-copy{padding:0}
  .hero-copy h1{margin:14px 0 16px}
  .hero-actions{margin-top:24px}
  .hero-phone{margin-top:18px}
  .hero-media{aspect-ratio:4/3;border-radius:var(--r-lg);max-height:46svh}
  .hero-media::after{background:linear-gradient(180deg,var(--paper) 0%,rgba(247,245,238,.2) 14%,rgba(247,245,238,0) 34%)}
  .hero-media-tag{left:14px;bottom:14px;font-size:10.5px;padding:6px 12px}

  .services-layout{grid-template-columns:1fr;gap:26px;height:auto}
  .services-stage{display:flex;flex-direction:column;gap:20px}
  .service-media{aspect-ratio:3/2;min-height:0}
  .result-options{margin-top:20px}
  .result-detail{margin-top:0;padding-top:22px}
  .comparison{min-height:300px;aspect-ratio:4/3;height:auto}
  .contact-layout{height:auto;padding:8px 0 0}
  .contact-layout h2{margin:16px 0 18px}
  .contact-actions{margin-top:28px}
  .contact-note{margin-top:28px}
  .shell-footer{margin-top:34px;padding-top:18px}
  .footer-top{margin-left:0;width:100%}
}

/* tablet — two column service and results layouts before the dock collapses */
@media (min-width:640px) and (max-width:1023.98px){
  .services-layout{grid-template-columns:minmax(200px,250px) 1fr}
  .results-layout{grid-template-columns:minmax(190px,240px) 1fr}
}

/* 860px and below — compact header, sheet navigation */
@media (max-width:859.98px){
  :root{--gutter:22px}
  .header-phone{display:none}
  .header-wa{padding:9px 13px;font-size:12.5px;gap:7px}
  .menu-toggle{display:flex}
  .services-layout,.results-layout{grid-template-columns:1fr}
}

/* 600px and below — phone */
@media (max-width:599.98px){
  :root{--header-h:60px;--gutter:18px}
  .header-wa>span{display:none}
  .header-wa{padding:9px 12px}
  .eyebrow{font-size:10px;letter-spacing:.14em}
  .hero-copy h1{font-size:clamp(32px,9.4vw,44px);letter-spacing:-.035em}
  .hero-lead{font-size:15px;line-height:1.66;max-width:100%}
  .hero-actions{gap:10px;margin-top:22px}
  .hero-actions .button{flex:1 1 100%}
  .results-aside h2{font-size:clamp(27px,8vw,34px)}
  .contact-layout h2{font-size:clamp(28px,8.4vw,36px)}
  .contact-actions{gap:12px 20px}
  .contact-actions .button{width:100%}
  .contact-phone{font-size:22px}
  .compare-divider>span{width:40px;height:40px;font-size:17px}
  .shell-footer{font-size:12.5px;gap:10px 18px}
  .footer-links{gap:6px 16px}
  .legal-dialog-body,.legal-dialog-top,.legal-dialog-tabs{padding-inline:16px}
  .lightbox{width:100vw;max-width:100vw;height:100svh;max-height:100svh;border-radius:0;border:0}
  .cookie-banner{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));width:auto;padding:18px}
}

/* very short desktop viewports — 1366×768 and similar */
@media (min-width:1024px) and (max-height:820px){
  :root{--header-h:70px;--dock-h:60px;--gutter:clamp(20px,3.1vw,48px)}
  .scene-inner{padding-top:calc(var(--header-h) + 2px)}
  .hero-copy h1{font-size:clamp(34px,3.6vw,52px);margin:16px 0 18px}
  .hero-actions{margin-top:24px}
  .hero-phone{margin-top:18px}
  .services-aside h2{font-size:clamp(26px,2.5vw,38px)}
  .results-aside h2{font-size:clamp(26px,2.4vw,36px)}
  .contact-layout h2{font-size:clamp(30px,3.3vw,48px);margin:16px 0 18px}
  .contact-note{margin-top:28px}
  .scene-foot{padding-top:10px}
  .shell-footer{padding-top:16px;margin-top:18px}
}

/* 13 · MOTION PREFERENCES =============================================== */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
  .reveal-ready [data-reveal]{opacity:1!important;transform:none!important}
  .media-img{transform:none!important}
  .ambient{display:none}
  .site-shell{scroll-snap-type:none}
}
