/* =========================================================================
   Wonderful Lifestyle — boarding pass × kontsierž
   Register tuletatud teemast: dusk-taevas · horisont · boarding pass · lennukaar
   Ported from the standalone /wonderful-lifestyle build into the CMS template.
   ========================================================================= */

:root{
  --ink:        #0d1f16;   /* öö-tint */
  --ink-2:      #14332a;
  --ink-soft:   #1f4a3a;
  --paper:      #f7f2e9;   /* boarding-pass paber */
  --paper-2:    #efe7d8;
  --ink-line:   rgba(247,242,233,.14);
  --coral:      #ff6b57;
  --amber:      #ffb15c;
  --sky:        #6f93c4;
  --muted:      #9fc7b0;   /* hele tekst öö taustal */
  --muted-ink:  #5d6b7e;   /* hahk tekst paberil */
  --good:       #4fb286;
  --grass:      #2f5e34;   /* jaluse muru-roheline */
  --grass-soft: #a9c6ad;   /* hele muru-tint tekstile */
  --grass-mute: #7a9b7e;   /* hahk muru-tint legaalile */

  --sunset:     linear-gradient(105deg, var(--amber), var(--coral));

  --serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --sans:  "Outfit", system-ui, -apple-system, sans-serif;
  --mono:  "Space Mono", ui-monospace, "Courier New", monospace;

  --wrap: 1180px;
  --pad: clamp(1.1rem, 4vw, 3rem);
  --r: 14px;

  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; background:var(--ink); }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  font-family:var(--sans);
  font-weight:400;
  color:var(--ink);
  background:var(--paper);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

h1,h2,h3,h4{ margin:0; font-weight:400; line-height:1.05; letter-spacing:-.01em; }
p{ margin:0; }
a{ color:inherit; text-decoration:none; }
img,svg{ display:block; max-width:100%; }
button{ font:inherit; cursor:pointer; }
:focus-visible{ outline:2px solid var(--coral); outline-offset:3px; border-radius:4px; }

.wrap{ width:min(var(--wrap), 100% - var(--pad)*2); margin-inline:auto; }

[hidden] { display: none !important; }

.skip-link{
  position:absolute; left:50%; top:-100px; transform:translateX(-50%);
  background:var(--ink); color:var(--paper); padding:.7rem 1.2rem; border-radius:0 0 10px 10px;
  z-index:200; transition:top .2s;
}
.skip-link:focus{ top:0; }

/* ---- ikoonid ---- */
svg[viewBox="0 0 24 24"]{ width:1.15em; height:1.15em; flex:none; }

/* =========================================================================
   Nupud
   ========================================================================= */
.btn{
  display:inline-flex; align-items:center; gap:.5em;
  padding:.85rem 1.4rem; border-radius:999px;
  font-weight:500; font-size:.97rem; letter-spacing:.01em;
  border:1px solid transparent; white-space:nowrap;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s;
}
.btn svg{ width:1.05em; height:1.05em; transition:transform .25s var(--ease); }
.btn-ink{ background:var(--ink); color:var(--paper); }
.btn-ink:hover{ transform:translateY(-2px); box-shadow:0 10px 26px -10px rgba(13,31,22,.6); }
.btn-ink:hover svg{ transform:translateX(3px); }
.btn-sun{ background:var(--sunset); color:#2a160f; font-weight:600; }
.btn-sun:hover{ transform:translateY(-2px); box-shadow:0 14px 30px -12px rgba(255,107,87,.6); }
.btn-sun:hover svg{ transform:translateX(3px); }
.btn-block{ width:100%; justify-content:center; padding-block:1.05rem; font-size:1.05rem; }
.btn-grow{ flex:1; justify-content:center; padding-block:1rem; }
.btn-lg{ padding:1.1rem 2.2rem; font-size:1.1rem; }
.btn-ghost{ background:transparent; color:var(--muted-ink); border-color:var(--paper-2); }
.btn-ghost:hover{ background:var(--paper-2); color:var(--ink); }

.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

/* =========================================================================
   Päis
   ========================================================================= */
.site-head{
  position:fixed; inset:0 0 auto 0; z-index:100;
  transition:background .3s, box-shadow .3s, border-color .3s;
  border-bottom:1px solid transparent;
}
.head-inner{
  width:min(var(--wrap), 100% - var(--pad)*2); margin-inline:auto;
  display:flex; align-items:center; gap:1.5rem;
  padding-block:1.05rem;
}
.site-head[data-scrolled]{
  background:rgba(13,31,22,.86); backdrop-filter:blur(12px) saturate(1.2);
  border-bottom-color:var(--ink-line);
}
.brand{ display:flex; align-items:center; gap:.6rem; color:var(--paper); }
.brand-mark{
  display:grid; place-items:center; width:38px; height:38px; border-radius:11px;
  background:var(--sunset); color:#2a160f;
}
.brand-icon{ width:21px!important; height:21px!important; }
.brand-name{ font-family:var(--serif); font-size:1.32rem; letter-spacing:.01em; }
.brand-name em{ font-style:italic; }

.head-nav{ display:flex; align-items:center; gap:1.55rem; margin-left:auto; }
.head-nav a{ color:var(--muted); font-size:.93rem; position:relative; padding-block:.2rem; }
.head-nav a::after{
  content:""; position:absolute; left:0; bottom:-2px; height:1.5px; width:0;
  background:var(--coral); transition:width .28s var(--ease);
}
.head-nav a:hover{ color:var(--paper); }
.head-nav a:hover::after{ width:100%; }
.head-cta{ padding:.6rem 1.15rem; font-size:.9rem;
  background:transparent; color:var(--paper); border:1px solid var(--ink-line); }
.head-cta:hover{ background:var(--paper); color:var(--ink); border-color:var(--paper); }

/* Keelevalik — kangelase all, nagu lähtefailis (htdocs/wonderful-lifestyle) */
.lang-sw{ display:flex; justify-content:center; align-items:center; gap:1rem;
  margin-top:1.5rem; font-family:var(--mono); font-size:.85rem; letter-spacing:.08em; }
.lang-sw a{ color:var(--muted); padding:.35rem .25rem; min-width:34px; text-align:center;
  transition:color .25s; }
.lang-sw a:hover{ color:var(--paper); }
.lang-sw a.is-active{ color:var(--amber); font-weight:700; }

.head-burger{ display:none; margin-left:auto; background:none; border:0; color:var(--paper);
  padding:.6rem; min-width:44px; min-height:44px; }
.head-burger svg{ width:26px; height:26px; pointer-events:none; }

.mobile-menu{
  position:fixed; inset:64px 0 auto 0; z-index:99;
  background:rgba(13,31,22,.97); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--ink-line);
  display:flex; flex-direction:column; gap:.2rem; padding:1rem var(--pad) 1.8rem;
}
.mobile-menu[hidden]{ display:none; }
.mobile-menu a{ color:var(--muted); padding:.85rem .2rem; border-bottom:1px solid var(--ink-line);
  font-size:1.05rem; }
.mobile-menu a:last-of-type{ border:0; }
.mobile-menu .btn{ margin-top:.8rem; }

/* =========================================================================
   HERO — horizontal split (foto / paneel) + pealkiri õmblusel
   ========================================================================= */
.hero{
  position:relative; min-height:100vh; min-height:100svh; display:flex; flex-direction:column;
  background:var(--ink); color:var(--paper); isolation:isolate;
}
.hero-top{
  flex:1 1 70vh; min-height:65vh; position:relative; overflow:hidden;
  background:var(--ink);
  padding:clamp(6rem,12vh,8rem) var(--pad) 0;
}
.hero-gallery{
  position:absolute !important; inset:-4% -2%; z-index:0 !important;
}
.hero-slide{
  position:absolute; inset:0; opacity:0; transition:opacity 1.1s var(--ease);
  background-size:cover; background-position:center;
}
.hero-slide.is-active{ opacity:1; }
.hero-overlay{
  position:absolute !important; inset:0; z-index:1 !important; pointer-events:none;
  background:linear-gradient(180deg, rgba(10,26,18,.5) 0%, rgba(13,31,22,0) 28%, rgba(13,31,22,0) 65%, var(--ink) 98%);
}
.hero-top > *{ position:relative; z-index:2; }
.hero-gallery > *{ z-index:0; }
.hero-dots{
  position:absolute; right:clamp(1.4rem, 3vw, 3rem); top:50%; transform:translateY(-50%);
  display:flex; flex-direction:column; gap:.8rem; z-index:10;
}
.hero-dot{
  width:12px; height:12px; border-radius:50%; background:rgba(255,255,255,.18);
  border:2px solid rgba(255,255,255,.75); padding:0; transition:all .3s var(--ease);
  box-shadow:0 1px 7px rgba(0,0,0,.45);
}
.hero-dot:hover{ border-color:var(--paper); }
.hero-dot.is-active{ background:var(--coral); border-color:var(--coral); transform:scale(1.2); }

@media (prefers-reduced-motion: no-preference){
  .hero-slide.is-active{ animation:heroPan 26s ease-in-out infinite alternate; }
}
@media (prefers-reduced-motion: reduce){
  .hero-slide{ transition:none; }
}
@keyframes heroPan{ from{ transform:scale(1.04) translateY(-1%); } to{ transform:scale(1.1) translateY(2%); } }

.hero-kicker{
  font-family:var(--mono); font-size:.76rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--paper); display:inline-flex; align-items:center; gap:.7rem;
  text-shadow:0 2px 14px rgba(0,0,0,.5);
}
.hero-kicker::before{ content:""; width:34px; height:1px; background:var(--amber); }

.hero-title-wrap{
  position:absolute; left:0; right:0; top:64vh; transform:translateY(-100%);
  text-align:center; z-index:5; padding-inline:var(--pad); pointer-events:none;
}
.hero-title{
  font-family:var(--serif);
  font-size:clamp(2.7rem, 9vw, 7rem); line-height:.96; letter-spacing:-.02em;
  text-shadow:0 14px 40px rgba(0,0,0,.45);
}
.hero-title .line2{ display:block; }
.hero-title em{ font-style:italic; }
.hero-title .grad{
  color:var(--amber); /* fallback kui clip ei toeta */
  background:var(--sunset);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; /* Safari: ilma selleta tekst kaob/üle värvitakse */
  color:transparent;
}

.hero-bottom{
  flex:0 0 auto; min-height:44vh; background:var(--ink);
  display:flex; align-items:center; justify-content:center;
  gap:clamp(2rem,6vw,5rem); padding:clamp(3rem,6vh,5rem) var(--pad) clamp(2.5rem,5vh,3.5rem);
  position:relative;
}
.info-col{ max-width:30ch; }
.info-col h3{
  display:flex; align-items:center; gap:.55rem;
  font-family:var(--mono); font-size:.8rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--amber); margin-bottom:.9rem;
}
.info-col h3 svg{ width:1.1em; height:1.1em; }
.info-col p{ color:var(--muted); font-size:1rem; line-height:1.65; }

.hero-scroll{
  position:absolute; bottom:1.6rem; left:50%; transform:translateX(-50%);
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--muted); transition:color .2s; padding:.5rem;
}
.hero-scroll svg{ width:30px; height:30px; }
.hero-scroll:hover{ color:var(--paper); }
@media (prefers-reduced-motion: no-preference){
  .hero-scroll svg{ animation:nudge 1.8s var(--ease) infinite; }
}
@keyframes nudge{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(4px); } }

/* =========================================================================
   SOOVI-ANKEET (#soov)
   ========================================================================= */
.soov{ background:var(--ink); color:var(--paper); padding:clamp(4.5rem,10vh,8rem) 0; }
.soov .sec-title{ color:var(--paper); }
.soov-grid{ display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(2rem,5vw,4.5rem);
  align-items:center; }
.soov-lead{ color:var(--muted); margin:1.4rem 0 1.8rem; max-width:42ch; font-size:1.05rem; }
.soov-points{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.85rem; }
.soov-points li{ display:flex; align-items:center; gap:.7rem; color:var(--paper); font-size:.97rem; }
.soov-points svg{ width:1.2em; height:1.2em; color:var(--coral); flex:none; }

/* ---- boarding-pass konsool ---- */
.pass{
  background:var(--paper); color:var(--ink); border-radius:18px;
  box-shadow:0 40px 80px -30px rgba(0,0,0,.6), 0 8px 24px -12px rgba(0,0,0,.4);
  position:relative;
  font-size:.94rem;
}
.pass::before, .pass::after{ /* perforatsiooni sälgud küljel */
  content:""; position:absolute; width:22px; height:22px; border-radius:50%;
  background:var(--ink); top:var(--notch, 50%); transform:translateY(-50%);
}
.pass::before{ left:-11px; }
.pass::after{ right:-11px; }

.pass-head{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:1.1rem 1.5rem; border-bottom:1px dashed var(--paper-2);
}
.pass-head .lbl{ font-family:var(--mono); font-size:.7rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--muted-ink); }
.pass-no{ font-family:var(--mono); font-size:.74rem; color:var(--coral); letter-spacing:.06em; }

/* lennukaar */
.arc{ position:relative; height:64px; margin:.2rem 0 .1rem; }
.arc-svg{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.arc-path{ fill:none; stroke:var(--muted-ink); stroke-width:1.3; stroke-dasharray:2 6;
  opacity:.55; }
.arc-dot{ fill:var(--coral); }
.arc-codes{ position:absolute; inset:0; display:flex; align-items:center;
  justify-content:space-between; padding:0 1.6rem; pointer-events:none; }
.arc-code{ font-family:var(--mono); font-weight:700; font-size:1.5rem; letter-spacing:.04em; }
.arc-code small{ display:block; font-weight:400; font-size:.6rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted-ink); margin-top:.1rem; }
.arc-plane{
  position:absolute; top:0; left:4%; color:var(--ink); will-change:transform,left,top;
}
.arc-plane svg{ width:24px; height:24px; }
@media (prefers-reduced-motion: no-preference){
  .arc-plane{ animation:fly 7s var(--ease) infinite; }
}
@keyframes fly{
  0%   { left:6%;  top:52%; transform:rotate(-18deg); opacity:0; }
  12%  { opacity:1; }
  50%  { top:6%; transform:rotate(8deg); }
  88%  { opacity:1; }
  100% { left:86%; top:30%; transform:rotate(20deg); opacity:0; }
}

.pass-body{ padding:1.3rem 1.5rem 1.5rem; }

.field-grid{ display:grid; grid-template-columns:1fr 1fr; gap:.85rem; }
.field{ display:flex; flex-direction:column; gap:.35rem; }
.field.full{ grid-column:1 / -1; }
.field label{ font-family:var(--mono); font-size:.66rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted-ink); }
.field select, .field input, .field textarea{
  font:inherit; font-size:.96rem; color:var(--ink); width:100%;
  padding:.7rem .85rem; border:1px solid var(--paper-2); border-radius:10px;
  background:#fff; transition:border-color .2s, box-shadow .2s;
}
.field textarea{ resize:vertical; min-height:72px; }
.field select{ appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235d6b7e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right .8rem center; padding-right:2.2rem; }
.field select:focus, .field input:focus, .field textarea:focus{ outline:none; border-color:var(--coral);
  box-shadow:0 0 0 3px rgba(255,107,87,.15); }
.field input.err, .field select.err{ border-color:var(--coral); box-shadow:0 0 0 3px rgba(255,107,87,.18); }

/* segment-valik (reisi tüüp) */
.seg{ display:flex; gap:.3rem; background:var(--paper-2); border-radius:10px; padding:.25rem; }
.seg input{ position:absolute; opacity:0; pointer-events:none; }
.seg label{
  flex:1; text-align:center; font-family:var(--sans); font-size:.82rem; letter-spacing:0;
  text-transform:none; color:var(--muted-ink); padding:.5rem .3rem; border-radius:8px;
  cursor:pointer; transition:background .2s, color .2s;
}
.seg input:checked + label{ background:#fff; color:var(--ink); font-weight:500;
  box-shadow:0 1px 4px rgba(0,0,0,.08); }

/* "üllata mind" tšipp */
.surprise{ display:flex; align-items:center; gap:.5rem; margin-top:.15rem;
  font-size:.82rem; color:var(--muted-ink); cursor:pointer; user-select:none; }
.surprise input{ accent-color:var(--coral); width:1rem; height:1rem; }
.field.is-surprised input[type=text]{ opacity:.45; pointer-events:none; }

.pass-foot{ padding:0 1.5rem 1.5rem; }
.pass-note{ font-family:var(--mono); font-size:.68rem; color:var(--muted-ink);
  text-align:center; margin-top:.8rem; letter-spacing:.02em; }

/* ---- wizard (progressive enhancement) ---- */
.wprog{ display:none; }
.pass.js .wprog{
  display:flex; list-style:none; margin:0; padding:.9rem 1.5rem 0; gap:.4rem;
  font-family:var(--mono); font-size:.66rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--muted-ink);
}
.pass.js .wprog li{ display:flex; align-items:center; gap:.45rem; flex:1; }
.pass.js .wprog li span{
  display:grid; place-items:center; width:22px; height:22px; border-radius:50%;
  border:1px solid var(--paper-2); font-size:.62rem; transition:.25s;
}
.pass.js .wprog li.is-active{ color:var(--ink); }
.pass.js .wprog li.is-active span{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.pass.js .wprog li.is-done span{ background:var(--good); color:#fff; border-color:var(--good); }

.wstep{ border:0; padding:0; margin:0; min-width:0; }
.wstep + .wstep{ margin-top:1.6rem; padding-top:1.6rem; border-top:1px dashed var(--paper-2); }
.pass.js .wsteps-wrap{ display:grid; }
.pass.js .wstep{
  grid-area: 1 / 1;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  margin:0; padding:0; border:0;
  transition: opacity .35s var(--ease), visibility .35s;
}
.pass.js .wstep.is-active{
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  z-index: 2;
  animation:stepIn .35s var(--ease);
}
@keyframes stepIn{ from{ opacity:0; transform:translateX(10px); } to{ opacity:1; transform:none; } }
.wstep-q{ font-family:var(--serif); font-size:1.4rem; padding:0; margin:0 0 1.1rem; color:var(--ink); }

/* range */
.range{ width:100%; -webkit-appearance:none; appearance:none; height:5px; border-radius:99px;
  background:linear-gradient(90deg, var(--coral), var(--amber)); padding:0; border:0; }
.range::-webkit-slider-thumb{ -webkit-appearance:none; width:22px; height:22px; border-radius:50%;
  background:#fff; border:2px solid var(--coral); box-shadow:0 2px 8px rgba(0,0,0,.2); cursor:pointer; }
.range::-moz-range-thumb{ width:20px; height:20px; border-radius:50%; background:#fff;
  border:2px solid var(--coral); cursor:pointer; }
.range-ends{ display:flex; justify-content:space-between; font-size:.74rem; color:var(--muted-ink);
  margin-top:.4rem; }
.flex-hint{ float:right; color:var(--coral); text-transform:none; letter-spacing:0; font-weight:600; }

/* addons */
.addon-grid{ display:grid; grid-template-columns:1fr 1fr; gap:.6rem; margin-bottom:1.4rem; }
.addon{ display:flex; align-items:center; gap:.6rem; padding:.7rem .8rem; border:1px solid var(--paper-2);
  border-radius:10px; cursor:pointer; transition:border-color .2s, background .2s; position:relative; }
.addon input{ position:absolute; opacity:0; }
.addon-box{ display:grid; place-items:center; width:20px; height:20px; border-radius:6px;
  border:1px solid var(--paper-2); flex:none; transition:.2s; }
.addon-box svg{ width:14px; height:14px; color:#fff; opacity:0; transition:.15s; }
.addon-ic{ display:flex; color:var(--muted-ink); }
.addon-ic svg{ width:1.2em; height:1.2em; }
.addon-txt{ font-size:.86rem; line-height:1.2; }
.addon:hover{ border-color:var(--coral); }
.addon input:checked ~ .addon-box{ background:var(--coral); border-color:var(--coral); }
.addon input:checked ~ .addon-box svg{ opacity:1; }
.addon input:checked ~ .addon-ic{ color:var(--coral); }
.addon:has(input:checked){ border-color:var(--coral); background:rgba(255,107,87,.05); }
.addon input:focus-visible ~ .addon-box{ outline:2px solid var(--coral); outline-offset:2px; }

.contact-grid{ margin-top:.4rem; }
.consent{ display:flex; gap:.6rem; align-items:flex-start; font-size:.85rem; color:var(--muted-ink);
  text-transform:none; letter-spacing:0; line-height:1.45; cursor:pointer; }
.consent input{ width:1.05rem; height:1.05rem; accent-color:var(--coral); flex:none; margin-top:.15rem; }

.wnav{ display:flex; gap:.7rem; }

/* =========================================================================
   Soovi-ankeedi täiendused — korduvad read, tšipid, ülevaade
   ========================================================================= */
.field label svg{ width:.95em; height:.95em; vertical-align:-.15em; margin-right:.25em; color:var(--muted-ink); }

.field-head{ display:flex; align-items:center; justify-content:space-between; gap:.6rem; }

/* välja-grupid (selgem jaotus) */
.fgroup{ padding-top:1.5rem; margin-top:1.5rem; border-top:1px solid var(--paper-2); }
.fgroup:first-of-type{ padding-top:0; margin-top:0; border-top:0; }
.fgroup-h{ display:flex; align-items:center; gap:.5rem; margin:0 0 1rem;
  font-family:var(--mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase;
  color:var(--coral); }
.fgroup-h svg{ width:1.05em; height:1.05em; }
.fgroup .seg{ margin-bottom:1rem; }

/* marsruut / kuupäevad — lähte- ja sihtväli ühel real, joondatud */
.route{ display:grid; grid-template-columns:1fr 1fr; gap:.85rem; align-items:start; }
.route-dest{ display:flex; flex-direction:column; gap:.55rem; min-width:0; }
.route-dest-lbl{ font-family:var(--mono); font-size:.66rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--muted-ink); }
.route-dest-lbl svg{ width:.95em; height:.95em; vertical-align:-.15em; margin-right:.25em; }
.route-dest .surprise{ margin-top:.1rem; }
.dates-flex-toggle{ margin-top:.9rem; }

/* päris kuupäevavalijad */
.field input[type=date]{ font:inherit; font-size:.96rem; color:var(--ink); width:100%;
  padding:.62rem .85rem; border:1px solid var(--paper-2); border-radius:10px; background:#fff;
  transition:border-color .2s, box-shadow .2s; }
.field input[type=date]:focus{ outline:none; border-color:var(--coral); box-shadow:0 0 0 3px rgba(255,107,87,.15); }
.field input[type=date]::-webkit-calendar-picker-indicator{ cursor:pointer; opacity:.55; }
.field input[type=date]:hover::-webkit-calendar-picker-indicator{ opacity:1; }

/* reisijate steppurid */
.stepper{ display:flex; align-items:stretch; border:1px solid var(--paper-2); border-radius:10px;
  overflow:hidden; background:#fff; }
.stepper .step-btn{ flex:none; width:44px; display:grid; place-items:center; background:var(--paper-2);
  border:0; color:var(--ink); cursor:pointer; font-size:1.2rem; line-height:1; transition:background .15s, color .15s; }
.stepper .step-btn:hover:not(:disabled){ background:var(--coral); color:#fff; }
.stepper .step-btn:disabled{ opacity:.4; cursor:not-allowed; }
.stepper .step-btn svg{ width:1.05em; height:1.05em; }
.stepper input{ flex:1; min-width:0; text-align:center; border:0; background:transparent;
  font:inherit; font-size:1.05rem; font-weight:600; color:var(--ink); padding:.55rem 0;
  -moz-appearance:textfield; }
.stepper input::-webkit-outer-spin-button, .stepper input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.stepper input:focus{ outline:none; }

/* nähtav vea-riba (nupu juures) */
.form-err{ display:flex; align-items:center; gap:.5rem; margin:0 0 .85rem; padding:.7rem .9rem;
  background:rgba(255,107,87,.1); border:1px solid rgba(255,107,87,.4); border-radius:10px;
  color:var(--coral); font-size:.86rem; font-weight:500; }
.form-err[hidden]{ display:none; }
.form-err::before{ content:"!"; display:grid; place-items:center; flex:none; width:18px; height:18px;
  border-radius:50%; background:var(--coral); color:#fff; font-size:.72rem; font-weight:700; }
.flex-toggle{ display:inline-flex; align-items:center; gap:.35rem;
  font-family:var(--sans); font-size:.74rem; text-transform:none; letter-spacing:0;
  color:var(--muted-ink); cursor:pointer; font-weight:500; user-select:none; }
.flex-toggle input{ accent-color:var(--coral); width:.95rem; height:.95rem; margin:0; }

/* korduvad read (sihtkohad / ajaaknad / reisijad) */
.repeat{ display:flex; flex-direction:column; gap:.55rem; }
.repeat.is-disabled{ opacity:.5; }
.repeat-row{ display:flex; gap:.5rem; align-items:center; }
.repeat-row > input{ flex:1; min-width:0; font:inherit; font-size:.96rem; color:var(--ink);
  padding:.7rem .85rem; border:1px solid var(--paper-2); border-radius:10px; background:#fff;
  transition:border-color .2s, box-shadow .2s; }
.repeat-row > input:focus{ outline:none; border-color:var(--coral); box-shadow:0 0 0 3px rgba(255,107,87,.15); }
.repeat-row > input.err{ border-color:var(--coral); box-shadow:0 0 0 3px rgba(255,107,87,.18); }
.pax-row .pax-age{ flex:0 0 5.5rem; }
.repeat-del{ flex:none; display:grid; place-items:center; width:38px; height:38px; border-radius:9px;
  border:1px solid var(--paper-2); background:#fff; color:var(--muted-ink); cursor:pointer; transition:.2s; }
.repeat-del:hover{ border-color:var(--coral); color:var(--coral); }
.repeat-del svg{ width:1.05em; height:1.05em; }

.add-line{ display:inline-flex; align-items:center; gap:.4rem; margin-top:.6rem;
  background:none; border:0; padding:.2rem 0; cursor:pointer;
  font-family:var(--mono); font-size:.74rem; letter-spacing:.04em; color:var(--coral); }
.add-line:hover{ color:var(--ink); }
.add-line svg{ width:1.05em; height:1.05em; }

/* valikulised süvendused */
.more{ margin-top:1rem; border-top:1px dashed var(--paper-2); }
.more > summary{ display:flex; align-items:center; gap:.5rem; padding:.9rem 0 .2rem;
  cursor:pointer; list-style:none; font-family:var(--mono); font-size:.72rem; letter-spacing:.06em;
  text-transform:uppercase; color:var(--muted-ink); }
.more > summary::-webkit-details-marker{ display:none; }
.more > summary svg:first-child{ width:1em; height:1em; }
.more > summary span{ text-transform:none; letter-spacing:0; color:#aeb6c2; }
.more > summary::after{ content:""; width:7px; height:7px; margin-left:auto;
  border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor;
  transform:rotate(45deg); transition:transform .2s; opacity:.7; }
.more[open] > summary::after{ transform:rotate(-135deg); }
.more-body{ padding:.5rem 0 .4rem; }
.more-hint{ font-size:.82rem; color:var(--muted-ink); margin:0 0 .8rem; }

/* "lisa oma soov" — vabad tšipid */
.chip-add{ display:flex; gap:.5rem; }
.chip-add input{ flex:1; min-width:0; font:inherit; font-size:.96rem; color:var(--ink);
  padding:.7rem .85rem; border:1px solid var(--paper-2); border-radius:10px; background:#fff;
  transition:border-color .2s, box-shadow .2s; }
.chip-add input:focus{ outline:none; border-color:var(--coral); box-shadow:0 0 0 3px rgba(255,107,87,.15); }
.btn-sm{ padding:.55rem .9rem; font-size:.85rem; flex:none; }
.chips{ display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.7rem; }
.chips:empty{ margin-top:0; }
.chip{ display:inline-flex; align-items:center; gap:.45rem; padding:.4rem .4rem .4rem .8rem;
  background:rgba(255,107,87,.08); border:1px solid rgba(255,107,87,.3); border-radius:99px;
  font-size:.85rem; color:var(--ink); }
.chip-x{ display:grid; place-items:center; width:20px; height:20px; border-radius:50%;
  border:0; background:rgba(0,0,0,.06); color:var(--muted-ink); cursor:pointer; font-size:1.05rem;
  line-height:1; padding:0; transition:.15s; }
.chip-x:hover{ background:var(--coral); color:#fff; }

/* kontakti eraldaja */
.contact-divider{ display:flex; align-items:center; gap:.9rem; margin:1.7rem 0 1.1rem;
  font-family:var(--mono); font-size:.68rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted-ink); }
.contact-divider span{ flex:none; }
.contact-divider::before, .contact-divider::after{ content:""; height:1px; flex:1; background:var(--paper-2); }

/* progress klikitav */
.pass.js .wprog li.is-clickable{ cursor:pointer; }

/* ülevaate samm (3) / kinnituse boarding-pass */
.wstep-review{ display:none; }
.pass.js .wstep-review{ display:block; }
.review-lead{ font-size:.9rem; color:var(--muted-ink); margin:0 0 1.2rem; }
.review{ display:flex; flex-direction:column; gap:1rem; }
.review-card{ border:1px solid var(--paper-2); border-radius:13px; padding:1rem 1.1rem; background:#fafbfc; }
.review-card-head{ display:flex; align-items:center; justify-content:space-between; gap:.6rem; margin-bottom:.85rem; }
.review-card-head h3{ font-family:var(--serif); font-size:1.12rem; margin:0; color:var(--ink); }
.review-edit{ display:inline-flex; align-items:center; gap:.35rem; background:none; border:0; cursor:pointer;
  font-family:var(--mono); font-size:.7rem; letter-spacing:.05em; text-transform:uppercase; color:var(--coral); }
.review-edit:hover{ color:var(--ink); }
.review-edit svg{ width:1.05em; height:1.05em; }

.thanks-pass{ width:100%; max-width:480px; margin:2rem auto 0; text-align:left; }
.recap{ display:grid; grid-template-columns:1fr 1fr; gap:.9rem 1.4rem; margin:0; }
.recap > div{ display:flex; flex-direction:column; gap:.15rem; }
.recap-full{ grid-column:1 / -1; }
.recap dt{ font-family:var(--mono); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted-ink); }
.recap dd{ margin:0; color:var(--ink); font-size:.96rem; }

/* =========================================================================
   Sektsiooni-pead, jagatud
   ========================================================================= */
.sec-sub{ color:var(--muted-ink); margin-top:1rem; max-width:48ch; font-size:1.02rem; }
.sec-head-light .sec-sub{ color:var(--muted); }
.sec-title{ font-family:var(--serif); font-size:clamp(2rem,4.2vw,3.1rem); line-height:1.02; }
.sec-title em{ font-style:italic; color:var(--coral); }

/* =========================================================================
   KÕIK TEHTUD — reisi teekond (horisontaalne timeline)
   ========================================================================= */
.journey{ background:var(--ink); color:var(--paper); padding:clamp(1.5rem,4vh,3rem) 0 clamp(3rem,6vh,4.5rem);
  position:relative; overflow:hidden; }

.journey .wrap{ position:relative; z-index:1; }
.sec-head-light .sec-title{ color:var(--paper); }
.sec-head-light .sec-title em{ color:var(--amber); }

.jt{ position:relative; z-index:1; margin-top:0; }
.jt-track{
  display:flex; gap:1.2rem; overflow-x:auto; scroll-snap-type:x mandatory;
  scroll-behavior:smooth; padding:.5rem max(1.1rem, calc(50% - 260px)) 1.5rem;
  scrollbar-width:none;
}
.jt-track::-webkit-scrollbar{ display:none; }
.jt-track:focus-visible{ outline:2px solid var(--coral); outline-offset:-4px; }
@media (prefers-reduced-motion: reduce){ .jt-track{ scroll-behavior:auto; } }

.jt-stage{
  flex:0 0 min(800px, 90vw); scroll-snap-align:center; position:relative;
  padding:0.5rem 1rem; min-height:180px; display:flex; flex-direction:column; align-items:center; text-align:center;
  opacity: 0; transition: opacity .5s var(--ease), transform .5s var(--ease);
  transform: translateY(10px) scale(0.95);
  pointer-events: none;
}
.jt-stage.is-active{
  opacity: 1; transform: translateY(0) scale(1);
  pointer-events: auto;
}
.jt-num{ font-family:var(--serif); font-size:12rem; line-height:.8; font-style:italic;
  color:rgba(247,242,233,.03); position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); z-index:0; pointer-events:none; }
.jt-ic{ display:grid; place-items:center; width:64px; height:64px; border-radius:50%;
  color:var(--amber); margin-bottom:1.4rem; position:relative; z-index:1; }
.jt-ic svg{ width:32px; height:32px; }
.jt-stage h3{ font-family:var(--serif); font-size:2rem; margin-bottom:1rem; position:relative; z-index:1; }
.jt-stage p{ color:var(--muted); font-size:1.1rem; line-height:1.6; max-width:64ch; position:relative; z-index:1; margin-inline:auto; }

/* alumine timeline-riba (dots + labels + ühendusjoon) */
.jt-nav{ display:flex; align-items:flex-start; gap:.4rem; position:relative; margin-top:1.5rem;
  padding-top:1.4rem; }
.jt-nav::before{ content:""; position:absolute; top:calc(1.4rem + 8px); left:8%; right:8%;
  height:2px; background:var(--ink-line); }
.jt-step{ flex:1; display:flex; flex-direction:column; align-items:center; gap:.6rem;
  background:none; border:0; padding:.2rem; color:var(--muted-ink); cursor:pointer;
  position:relative; z-index:1; transition:color .3s; font-family:var(--mono);
  font-size:.72rem; letter-spacing:.06em; }
.jt-dot{ width:16px; height:16px; border-radius:50%; background:var(--ink);
  border:3px solid #3a604a; transition:all .3s var(--ease); }
.jt-step:hover{ color:var(--paper); }
.jt-step:hover .jt-dot{ border-color:var(--amber); transform:scale(1.15); }
.jt-step[aria-current="step"]{ color:var(--amber); }
.jt-step[aria-current="step"] .jt-dot{ border-color:var(--coral); background:var(--coral);
  transform:scale(1.3); box-shadow:0 0 0 5px rgba(255,107,87,.18); }

/* =========================================================================
   HINNAMUDEL — Skyscanner vs meie
   ========================================================================= */
.deals{ background:var(--paper); padding:clamp(4.5rem,10vh,7.5rem) 0; }
.deals > .wrap > .sec-head{ max-width:64ch; margin-inline:auto; text-align:center; }
.deals > .wrap > .sec-head .sec-sub{ margin-inline:auto; }
.deal-disclaim{ text-align:center; font-family:var(--mono); font-size:.72rem; color:var(--muted-ink);
  margin-top:2.2rem; letter-spacing:.02em; }

.price-versus{
  position:relative; background:#fff; border:1px solid var(--paper-2); border-radius:var(--r);
  box-shadow:0 22px 54px -30px rgba(13,31,22,.5);
  padding:clamp(1.8rem,4vw,3rem); max-width:880px; margin-inline:auto; }

.pv-grid{ display:grid; grid-template-columns:1fr auto 1fr; align-items:center;
  gap:clamp(1rem,4vw,2.5rem); }
.pv-side{ display:flex; flex-direction:column; gap:.6rem; }
.pv-ref{ text-align:left; }
.pv-you{ text-align:right; align-items:flex-end; }
.pv-lbl{ font-family:var(--mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--muted-ink); }
.pv-amt{ font-family:var(--serif); line-height:1.08; display:inline-block; }
.pv-ref .pv-amt{ font-size:clamp(2rem,5vw,2.9rem); color:var(--muted-ink); }
.pv-ref .pv-amt s{ text-decoration-thickness:2px; text-decoration-color:rgba(93,107,126,.5); }
.pv-you .pv-amt{ font-size:clamp(2.8rem,7vw,4.6rem); font-weight:600; padding-block:.04em;
  background:var(--sunset); -webkit-background-clip:text; background-clip:text; color:transparent; }

.pv-delta{ display:flex; flex-direction:column; align-items:center; gap:.35rem;
  padding:1rem 1.3rem; border-radius:18px;
  background:linear-gradient(180deg, rgba(255,177,92,.16), rgba(255,107,87,.12));
  border:1px solid rgba(255,107,87,.28); }
.pv-delta-ic{ display:grid; place-items:center; color:var(--coral); }
.pv-delta-ic svg{ width:26px; height:26px; }
.pv-delta-amt{ font-family:var(--serif); font-size:clamp(1.5rem,4vw,2.1rem); line-height:1; color:var(--coral); white-space:nowrap; }

.pv-meter{ margin-top:clamp(1.7rem,3.5vw,2.4rem); }
.pv-meter-track{ position:relative; height:16px; border-radius:99px; overflow:hidden;
  background:linear-gradient(90deg,#cfd5de,#b6bfcc); }
.pv-meter-fill{ position:absolute; inset:0 auto 0 0; width:0; border-radius:99px;
  background:var(--sunset); box-shadow:2px 0 0 rgba(13,31,22,.18); transition:width 1.2s var(--ease); }
[data-reveal].in .pv-meter-fill{ width:var(--w); }
@media (prefers-reduced-motion: reduce){ .pv-meter-fill{ transition:none; } }

.pv-split{ margin-top:clamp(1.2rem,2.5vw,1.6rem); display:flex; flex-direction:column; gap:.4rem; text-align:center; }
.pv-split-row{ font-size:1.02rem; color:var(--muted-ink); line-height:1.5; }
.pv-split-row b{ color:var(--ink); font-weight:600; }
.pv-split-fee{ opacity:.75; }

@media (max-width: 620px){
  .pv-grid{ grid-template-columns:1fr; gap:.4rem; text-align:center; }
  .pv-ref, .pv-you{ text-align:center; align-items:center; }
  .pv-delta{ order:3; flex-direction:row; margin-top:.4rem; }
}

/* tagatised — kolm lubadust */
.fare-terms{ max-width:880px; margin:clamp(2.4rem,4vw,3.4rem) auto 0;
  background:var(--ink); color:var(--paper); border-radius:var(--r);
  padding:clamp(2.2rem,4vw,3rem) clamp(1.4rem,3vw,2.2rem);
  display:grid; grid-template-columns:repeat(3,1fr);
  box-shadow:0 28px 64px -34px rgba(13,31,22,.65); }
.fare-term{ padding:.2rem clamp(1rem,2.4vw,1.9rem); }
.fare-term + .fare-term{ border-left:1px dashed rgba(247,242,233,.16); }
.fare-term h3{ font-family:var(--serif); font-size:1.3rem; line-height:1.16; margin-bottom:.6rem; color:var(--paper); }
.fare-term p{ color:var(--muted); font-size:.92rem; line-height:1.6; }
@media (max-width: 720px){
  .fare-terms{ grid-template-columns:1fr; }
  .fare-term{ padding:1.4rem .3rem; }
  .fare-term + .fare-term{ border-left:0; border-top:1px dashed rgba(247,242,233,.16); }
}

/* näidissihtkohad — võit sees */
.price-showcase{ margin-top:clamp(3rem,6vw,4.5rem); }
.sec-head--mini{ max-width:60ch; margin:0 auto clamp(1.6rem,3vw,2.4rem); text-align:center; }
.sec-head--mini h3{ font-family:var(--serif); font-size:clamp(1.6rem,3.2vw,2.3rem); line-height:1.05; }
.sec-head--mini .sec-sub{ margin-inline:auto; }

.deal-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem; }
.deal{ position:relative; border-radius:var(--r); overflow:hidden; background:#fff; color:inherit;
  border:1px solid var(--paper-2); box-shadow:0 14px 34px -22px rgba(13,31,22,.4);
  transition:transform .3s var(--ease), box-shadow .3s; display:flex; flex-direction:column; }
.deal:hover{ transform:translateY(-5px); box-shadow:0 24px 50px -24px rgba(13,31,22,.5); }
.deal:focus-visible{ outline:2px solid var(--coral); outline-offset:3px; }
.deal-photo{ aspect-ratio:4/3.2; background-size:cover; background-position:center; position:relative; }
.deal-photo::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(13,31,22,.15) 0%, transparent 35%, rgba(13,31,22,.4)); }
.deal-route{ position:absolute; top:.8rem; left:.8rem; z-index:1;
  font-family:var(--mono); font-weight:700; font-size:.78rem; letter-spacing:.06em; color:#fff;
  background:rgba(13,31,22,.55); backdrop-filter:blur(4px); padding:.3rem .6rem; border-radius:99px; }
.deal-route span{ color:var(--amber); margin:0 .15rem; }
.deal-save{ position:absolute; top:.8rem; right:.8rem; z-index:1;
  font-family:var(--mono); font-weight:800; font-size:1rem; letter-spacing:.02em; color:#2a160f;
  background:var(--sunset); padding:.4rem .8rem; border-radius:99px;
  box-shadow:0 6px 16px -6px rgba(255,107,87,.7); }
.deal-body{ padding:1rem 1.1rem 1.2rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.deal-top{ display:flex; align-items:baseline; justify-content:space-between; gap:.5rem; }
.deal-top h4{ font-family:var(--serif); font-size:1.4rem; font-weight:500; }
.deal-month{ font-family:var(--mono); font-size:.72rem; color:var(--muted-ink); text-transform:capitalize; }
.deal-meta{ color:var(--muted-ink); font-size:.84rem; }
.deal-price{ margin-top:auto; padding-top:.4rem; display:flex; align-items:baseline;
  justify-content:space-between; gap:.5rem; flex-wrap:wrap; border-top:1px solid var(--paper-2); }
.deal-sky{ font-family:var(--mono); font-size:.74rem; color:var(--muted-ink); }
.deal-sky s{ color:var(--muted-ink); }
.deal-yours{ font-family:var(--serif); font-size:1.55rem; color:var(--coral); display:inline-flex;
  align-items:baseline; gap:.35rem; }
.deal-from{ font-family:var(--sans); font-size:.7rem; letter-spacing:.04em; text-transform:uppercase;
  color:var(--muted-ink); }

/* =========================================================================
   ARVUSTUSED
   ========================================================================= */
.reviews{ background:var(--paper); color:var(--ink); padding:clamp(2rem,5vh,3rem) 0; }
.review-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.review{ background:#fff; border:1px solid var(--paper-2); border-radius:var(--r);
  box-shadow:0 14px 34px -24px rgba(13,31,22,.4);
  padding:1.8rem 1.6rem; margin:0; display:flex; flex-direction:column; gap:1rem; }
.review-stars{ display:flex; gap:.15rem; color:var(--amber); }
.review-stars svg{ width:1.05em; height:1.05em; fill:var(--amber); stroke:var(--amber); }
.review blockquote{ margin:0; font-family:var(--serif); font-size:1.18rem; line-height:1.45;
  font-style:italic; color:var(--ink); }
.review figcaption{ display:flex; flex-direction:column; margin-top:auto; }
.review figcaption strong{ font-weight:500; }
.review figcaption span{ color:var(--muted-ink); font-size:.85rem; }

/* =========================================================================
   KKK
   ========================================================================= */
.faq{ background:var(--paper); padding:clamp(4.5rem,10vh,7.5rem) 0; }
.faq-grid{ max-width:760px; margin-inline:auto; }
.faq-intro{ text-align:center; margin-bottom:clamp(2rem,4vw,3rem); }
.faq-intro .sec-sub{ margin-inline:auto; }
.faq-intro .sec-sub a{ color:var(--coral); text-decoration:underline; text-underline-offset:3px; }
.faq-list{ display:flex; flex-direction:column; }
.faq-item{ border-bottom:1px solid var(--paper-2); }
.faq-item summary{ display:flex; align-items:center; justify-content:space-between; gap:1rem;
  padding:1.25rem 0; cursor:pointer; list-style:none; font-size:1.1rem; color:var(--ink); }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary svg{ width:1.2em; height:1.2em; color:var(--coral); transition:transform .3s var(--ease); flex:none; }
.faq-item[open] summary svg{ transform:rotate(180deg); }
.faq-a{ overflow:hidden; }
.faq-a p{ padding:0 0 1.3rem; color:var(--muted-ink); max-width:60ch; }
@media (prefers-reduced-motion: no-preference){
  .faq-item[open] .faq-a{ animation:faqIn .3s var(--ease); }
}
@keyframes faqIn{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }

/* =========================================================================
   CTA
   ========================================================================= */
.cta{ padding:clamp(5rem,10vh,7rem) 0 4rem; text-align:center; position:relative; overflow:hidden; }
.cta-inner{ max-width:540px; margin: 0 auto; }
.cta-title{ font-family:var(--serif); font-size:clamp(2.4rem,6vw,4rem); margin-bottom:1.2rem; }
.cta-title em{ font-style:italic; color:var(--amber); }
.cta p{ font-size:1.15rem; color:var(--muted-ink); margin-bottom:2.2rem; }
.cta-inner .btn{ margin-top:.6rem; }

/* =========================================================================
   main — rounded frame over the footer
   ========================================================================= */
main {
  position: relative;
  z-index: 2;
  background: var(--paper);
  border-bottom-left-radius: 40px;
  border-bottom-right-radius: 40px;
  box-shadow: 0 20px 50px rgba(0,0,0,0.5);
  overflow: hidden;
  margin-bottom: -40px; /* forces the bottom rounded edge to stay visible, framing the footer */
}

/* =========================================================================
   Jalus
   ========================================================================= */
/* The CMS wraps the footer in <section class="cms-block--footer"> that is exactly
   footer-height, which makes position:sticky inert and kills the standalone's
   footer-reveal. display:contents releases it; keep the wrapper box in edit mode
   so the block stays clickable in the editor. */
body:not(.cms-edit-mode) .cms-block--footer{ display:contents; }

.site-foot{
  background:var(--grass);
  color:var(--paper);
  position:sticky;
  bottom:0;
  left:0;
  width:100%;
  z-index:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  padding:clamp(5rem, 8vh, 7rem) 2rem 3rem;
  box-sizing:border-box;
  text-align:center;
}
.f-logo { font-family:var(--serif); font-size:8vw; line-height:1; margin:0 0 30px; font-weight:600; letter-spacing:-2px; color:var(--paper); }
.f-nav { display:flex; gap:40px; margin-bottom:50px; flex-wrap:wrap; justify-content:center; }
.f-nav a { color:var(--grass-soft); text-decoration:none; font-size:.9rem; text-transform:uppercase; letter-spacing:2px; transition:color 0.3s; }
.f-nav a:hover { color:var(--paper); }
.f-legal { color:var(--grass-mute); font-size:.8rem; letter-spacing:1px; }

@media(max-width: 600px) {
  .f-nav { flex-direction:column; gap:20px; }
  .f-logo { font-size:3rem; }
  .site-foot { padding: 4rem 2rem 3rem; }
  .jt-nav{ gap:.25rem; }
  .jt-step{ min-width:0; font-size:.56rem; letter-spacing:.02em; overflow-wrap:anywhere; }
}

/* =========================================================================
   Reveal (default to life — reduced-motion'iga maha)
   ========================================================================= */
@media (prefers-reduced-motion: no-preference){
  [data-reveal]{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
  [data-reveal].in{ opacity:1; transform:none; }
  [data-reveal][data-d="1"]{ transition-delay:.1s; }
  [data-reveal][data-d="2"]{ transition-delay:.2s; }
  [data-reveal][data-d="3"]{ transition-delay:.3s; }
}

/* =========================================================================
   Responsive
   ========================================================================= */
@media (max-width: 1040px){
  .deal-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width: 900px){
  .head-nav, .head-cta{ display:none; }
  .head-burger{ display:block; }
  .soov-grid{ grid-template-columns:1fr; gap:2.5rem; }
  .pass{ max-width:560px; width:100%; }
  .review-row{ grid-template-columns:1fr; }
  .hero{ min-height:auto; }
  .hero-top{ flex:0 0 auto; min-height:48vh; }
  .hero-title-wrap{ position:static; transform:none; text-align:left;
    margin-top:-2.6rem; padding:0 var(--pad) 1.4rem; }
  .hero-bottom{ flex-direction:column; align-items:flex-start; gap:1.8rem;
    min-height:auto; padding-top:1rem; padding-bottom:5rem; }
}
@media (max-width: 560px){
  .field-grid, .addon-grid, .route{ grid-template-columns:1fr; }
  .deal-grid{ grid-template-columns:1fr; gap:1.3rem; }
  .hero-top{ min-height:50vh; }
  .hero-title{ font-size:clamp(2.6rem,12vw,4rem); }
  .wnav{ flex-wrap:wrap; }
}
