:root{
  --blue:#1c86ff;
  --blue-dark:#0d63cc;
  --accent:#0f4c81;
  --accent-dark:#0a3861;
  --yellow:#ffc93c;
  --green:#1fb959;
  --ink:#f7f9fb;
  --ink-dark:#12202e;
  --slate:rgba(247,249,251,.62);
  --bg:#0a121f;
  --bg-alt:#0e1a2b;
  --card:#e4ebf5;
  --card-title:#0f1e3d;
  --card-body:#3b4a68;
  --card-border:rgba(15,30,61,0.08);
  --line:rgba(247,249,251,.14);
  --radius:16px;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{
  font-family:'Segoe UI', Arial, sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.6;
}
h1,h2,h3{line-height:1.2; font-weight:800;}
.wrap{max-width:1080px; margin:0 auto; padding:0 24px;}
button{font-family:inherit; cursor:pointer;}
a{color:inherit;}

.skip-link { position: absolute; left: 12px; top: -60px; z-index: 1000; background: #fff; color: #0f1e3d; font-weight: 700; padding: 10px 16px; border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.35); }
.skip-link:focus { top: 12px; }

/* HEADER */
header{
  position:sticky; top:0; z-index:100; background:var(--bg);
  border-bottom:1px solid var(--line);
  padding:14px 0;
}
.header-inner{display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;}
.logo{font-size:1.15rem; font-weight:800; color:var(--ink);}
.logo span{color:var(--blue);}
.cat-nav{display:flex; gap:8px; flex-wrap:wrap;}
.cat-btn{
  border:2px solid var(--line); background:var(--bg-alt); color:var(--ink);
  padding:10px 18px; border-radius:999px; font-weight:700; font-size:0.9rem;
  transition:all .15s ease;
}
.cat-btn:hover{border-color:var(--blue);}
.cat-btn.active{background:var(--blue); border-color:var(--blue); color:#fff;}
.currency-select select{
  border:2px solid var(--line); background:var(--bg-alt); color:var(--ink);
  padding:9px 14px; border-radius:999px; font-weight:700; font-size:0.85rem;
  font-family:inherit; cursor:pointer;
}
.currency-select select:focus{outline:none; border-color:var(--accent);}
.basket-btn{
  background:var(--accent); color:#fff; border:none; padding:11px 20px; border-radius:999px;
  font-weight:800; font-size:0.9rem; display:flex; align-items:center; gap:8px;
  transition:background .15s ease;
}
.basket-btn:hover{background:var(--accent-dark);}
.basket-count{
  background:rgba(255,255,255,0.25); border-radius:999px; padding:1px 9px; font-size:0.8rem;
}

/* HERO */
.hero{
  background:linear-gradient(135deg, var(--blue), #59a8ff);
  color:#fff; padding:64px 0 56px; text-align:center;
}
.hero .eyebrow{text-transform:uppercase; letter-spacing:2px; font-size:0.8rem; font-weight:700; opacity:0.9;}
.hero h1{font-size:clamp(1.8rem, 4vw, 2.6rem); margin:12px 0;}
.hero p{font-size:1.05rem; opacity:0.95; max-width:560px; margin:0 auto;}

/* CATEGORY SECTIONS */
.cat-section{padding:56px 0; scroll-margin-top:90px;}
.cat-section.alt{background:var(--bg-alt);}
.cat-section h2{font-size:1.6rem; margin-bottom:6px;}
.section-sub{color:var(--slate); margin-bottom:28px;}

.config-group{margin-bottom:22px;}
.config-label{display:block; font-weight:700; font-size:0.85rem; margin-bottom:10px; color:var(--ink);}
.btn-group{display:flex; flex-wrap:wrap; gap:10px;}
.opt-btn{
  border:1.5px solid var(--card-border); background:var(--card); color:var(--card-title);
  padding:10px 16px; border-radius:12px; font-weight:700; font-size:0.88rem;
  transition:all .15s ease;
}
.opt-btn:hover{border-color:var(--blue);}
.opt-btn.active{background:var(--ink-dark); border-color:var(--ink-dark); color:#fff;}

.text-input{
  width:100%; padding:12px 14px; border-radius:10px; border:1.5px solid var(--line);
  background:var(--bg-alt); font-family:inherit; font-size:0.94rem; color:var(--ink);
}
.text-input:focus{outline:2px solid var(--blue); background:rgba(247,249,251,.06);}

.check-row{
  display:flex; align-items:center; gap:10px; cursor:pointer;
  font-weight:700; font-size:0.85rem; color:var(--ink);
  background:var(--bg-alt); border:2px solid var(--line); border-radius:12px;
  padding:12px 16px;
}
.check-row input{width:18px; height:18px; accent-color:var(--blue); cursor:pointer; flex-shrink:0;}

.child-rates{margin-top:14px; display:flex; flex-direction:column; gap:10px;}
.child-rate-row{display:flex; align-items:center; gap:10px; flex-wrap:wrap;}
.child-rate-row span{font-size:0.85rem; font-weight:700; color:var(--ink); flex-shrink:0;}
.child-rate-row select{
  flex:1; min-width:200px; padding:10px 12px; border-radius:10px; border:1.5px solid var(--card-border);
  background:var(--card); font-family:inherit; font-size:0.85rem; font-weight:600; color:var(--card-title);
}
.child-rate-note{font-size:0.82rem; color:var(--slate); font-weight:600; background:var(--bg-alt); border-radius:10px; padding:12px 14px; margin:0;}

.date-calendar{border:1.5px solid var(--card-border); border-radius:12px; padding:14px 16px; background:var(--card); max-width:360px;}
.cal-header{display:flex; align-items:center; justify-content:space-between; margin-bottom:12px;}
.cal-header span{font-weight:800; font-size:0.95rem; color:var(--card-title);}
.cal-nav{
  width:32px; height:32px; border-radius:50%; border:none; background:var(--bg-alt); color:var(--blue);
  font-size:1.1rem; font-weight:900; display:flex; align-items:center; justify-content:center;
}
.cal-nav:hover:not(:disabled){background:var(--blue); color:#fff;}
.cal-nav:disabled{opacity:0.3; cursor:not-allowed;}
.cal-weekdays{display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-bottom:4px;}
.cal-weekdays span{text-align:center; font-size:0.7rem; font-weight:700; color:var(--card-body); text-transform:uppercase;}
.cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:2px;}
.cal-day{
  aspect-ratio:1; border:none; background:none; border-radius:8px;
  font-weight:700; font-size:0.85rem; color:var(--card-title); font-family:inherit;
  transition:background .15s ease, color .15s ease;
}
.cal-day:hover:not(:disabled){background:var(--card-border);}
.cal-day:disabled{color:#9fb0c2; cursor:not-allowed;}
.cal-day.cal-in-range{background:var(--card-border); border-radius:0;}
.cal-day.cal-checkin, .cal-day.cal-checkout{background:var(--blue); color:#fff; border-radius:8px;}
.cal-selection{margin-top:12px; font-weight:700; font-size:0.88rem; color:var(--ink);}

.stepper{
  display:inline-flex; align-items:center; gap:16px; background:var(--card); border:1.5px solid var(--card-border);
  border-radius:12px; padding:6px 18px; font-weight:800; color:var(--card-title);
}
.step-btn{
  width:30px; height:30px; border-radius:50%; border:none; background:var(--bg-alt); color:var(--blue);
  font-size:1.1rem; font-weight:900; display:flex; align-items:center; justify-content:center;
}
.step-btn:hover{background:var(--blue); color:#fff;}

.price-row{
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px;
  margin-top:30px; padding-top:24px; border-top:1px solid var(--line);
}
.price-display{font-size:1.05rem; color:var(--slate);}
.price-display strong{color:var(--ink); font-size:1.3rem;}
.add-btn{
  background:var(--green); color:#fff; border:none; padding:14px 28px; border-radius:12px;
  font-weight:800; font-size:0.95rem; transition:background .15s ease;
}
.add-btn:hover{background:#189c4c;}
.add-btn:disabled{background:#b9c8d3; cursor:not-allowed;}
.direct-note{color:var(--slate); font-size:0.88rem; margin-top:14px;}
.direct-note a{color:var(--blue); font-weight:700; text-decoration:underline; text-underline-offset:3px;}
.tiny-note{color:var(--slate); font-size:0.78rem; margin-top:10px;}
.unavailable-note{display:none; color:#d64545; font-size:0.82rem; margin-top:10px; font-weight:600;}

.btn-group-scroll{
  max-height:220px; overflow-y:auto; padding:12px; margin:0 -4px;
  border:1.5px solid var(--line); border-radius:12px; background:var(--bg-alt);
}
.hotel-notes-details{margin-top:26px; border-top:1px solid var(--line); padding-top:18px;}
.hotel-notes-details summary{cursor:pointer; font-weight:700; font-size:0.88rem; color:var(--blue); list-style:none;}
.hotel-notes-details summary::-webkit-details-marker{display:none;}
.hotel-notes-details summary::before{content:"▸ "; display:inline-block;}
.hotel-notes-details[open] summary::before{content:"▾ ";}
.hotel-notes-details p{color:var(--slate); font-size:0.82rem; margin-top:8px; line-height:1.55;}

/* BASKET DRAWER */
.basket-overlay{
  position:fixed; inset:0; background:rgba(12,32,46,0.4); z-index:200;
  opacity:0; pointer-events:none; transition:opacity .25s ease;
}
.basket-overlay.open{opacity:1; pointer-events:auto;}
.basket-drawer{
  position:fixed; top:0; right:0; bottom:0; width:min(420px, 100vw); background:var(--card); z-index:210;
  box-shadow:-10px 0 30px rgba(0,0,0,0.4); transform:translateX(100%); transition:transform .3s ease;
  display:flex; flex-direction:column; color:var(--card-title); overflow-y:auto;
}
.basket-drawer.open{transform:translateX(0);}
/* the floating WhatsApp button would sit on top of the basket's total and form */
body.basket-open .wa-float{display:none;}
.basket-header{display:flex; align-items:center; justify-content:space-between; padding:20px 22px; border-bottom:1px solid var(--card-border); position:sticky; top:0; z-index:2; background:var(--card); flex:none;}
.basket-header h3{font-size:1.15rem;}
.basket-close{background:none; border:none; font-size:1.3rem; color:var(--card-body);}
.basket-items{flex:none; min-height:200px; padding:16px 22px;}
.basket-empty{color:var(--card-body); font-size:0.92rem; padding:20px 0; text-align:center;}
.basket-item{
  display:flex; justify-content:space-between; gap:10px; padding:14px 0; border-bottom:1px solid var(--card-border);
}
.basket-item-name{font-weight:700; font-size:0.92rem;}
.basket-item-meta{color:var(--card-body); font-size:0.82rem; margin-top:2px;}
.basket-item-right{text-align:right; display:flex; flex-direction:column; align-items:flex-end; gap:6px;}
.basket-item-price{font-weight:800;}
.basket-item-remove{background:none; border:1.5px solid rgba(214,69,69,.45); border-radius:8px; color:#d64545; font-size:0.84rem; font-weight:700; padding:6px 12px; cursor:pointer;}
.basket-item-remove:hover{background:rgba(214,69,69,.1);}

.basket-nudge{padding:0 22px 18px;}
.basket-nudge-label{font-size:0.76rem; font-weight:700; color:var(--card-body); text-transform:uppercase; letter-spacing:0.4px; margin-bottom:10px;}
.nudge-chips{display:flex; flex-wrap:wrap; gap:6px;}
.nudge-chip{
  display:inline-flex; align-items:center; gap:4px;
  padding:5px 10px; border-radius:999px; font-size:0.76rem; font-weight:700;
  border:1.5px solid var(--card-border); background:#fff; color:var(--card-body);
  font-family:inherit;
}
.nudge-chip.done{background:rgba(31,185,89,.15); border-color:rgba(31,185,89,.4); color:#3ddc82;}
.nudge-chip.missing{cursor:pointer; color:var(--blue); border-color:var(--line); background:var(--bg-alt); transition:border-color .15s ease;}
.nudge-chip.missing:hover{border-color:var(--blue);}

.basket-footer{padding:18px 22px 22px; border-top:1px solid var(--card-border); flex:none;}
.basket-total-row{display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; font-size:1.05rem;}
.basket-total-row strong{font-size:1.35rem; color:var(--blue);}
.fx-note{font-size:0.78rem; color:var(--card-body); margin:-10px 0 16px; text-align:right;}
.field{margin-bottom:14px;}
.field label{display:block; font-size:0.82rem; font-weight:700; margin-bottom:6px;}
.field-optional{font-weight:400; color:var(--card-body);}
.field input{
  width:100%; padding:12px 14px; border-radius:10px; border:1.5px solid var(--card-border);
  background:#fff; color:var(--card-title); font-family:inherit; font-size:0.94rem;
}
.field input:focus{outline:2px solid var(--blue); background:#fff;}
.checkout-btn{
  width:100%; background:var(--blue); color:#fff; border:none; padding:15px; border-radius:12px;
  font-weight:800; font-size:1rem; transition:background .15s ease;
}
.checkout-btn:hover{background:var(--blue-dark);}
.checkout-btn:disabled{background:#b9c8d3; cursor:not-allowed;}
.hp-field{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;}
.checkout-note{font-size:0.78rem; color:var(--card-body); text-align:center; margin-top:10px;}
.checkout-note a{color:inherit; text-decoration:underline; text-underline-offset:2px;}
.checkout-error{color:#d64545; font-size:0.85rem; text-align:center; margin-top:8px; display:none;}

footer{background:var(--ink-dark); color:#b7cbd8; padding:26px 0; margin-top:20px;}
.footer-inner{display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; font-size:0.85rem;}
.footer-inner a{text-decoration:underline; text-underline-offset:2px;}
.footer-inner a:hover{color:#fff;}

.wa-float{
  position:fixed; bottom:26px; right:26px; z-index:220;
  width:58px; height:58px; border-radius:50%;
  background:linear-gradient(135deg, #2be370, #25d366); color:var(--ink-dark);
  display:flex; align-items:center; justify-content:center;
  font-size:27px; text-decoration:none;
  box-shadow:0 14px 32px -8px rgba(37,211,102,0.6);
  transition:transform .2s ease, box-shadow .2s ease;
}
.wa-float:hover{transform:scale(1.1); box-shadow:0 18px 40px -8px rgba(37,211,102,0.7);}

/* SKI IMPRINT — small faint ski tracks (with pole marks) in the empty space beside
   each category heading. Decorative: behind content, no clicks, desktop only. */
.cat-section > .wrap{position:relative; z-index:1;}
#accommodation > .wrap::before, #transfers > .wrap::before, #equipment > .wrap::before, #passes > .wrap::before, #lessons > .wrap::before{
  content:"";
  position:absolute;
  top:-4px; right:24px;
  width:280px; height:140px;
  z-index:-1;
  pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 150'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' x2='1' y1='0' y2='0'%3E%3Cstop offset='0' stop-color='%23b8d8f2' stop-opacity='0'/%3E%3Cstop offset='.2' stop-color='%23b8d8f2' stop-opacity='.5'/%3E%3Cstop offset='.8' stop-color='%23b8d8f2' stop-opacity='.5'/%3E%3Cstop offset='1' stop-color='%23b8d8f2' stop-opacity='0'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cg fill='none' stroke='url(%23g)' stroke-linecap='round'%3E%3Cpath d='M296 6 C236 10 232 56 176 70 S96 96 62 124 S28 142 8 146' stroke-width='2'/%3E%3Cpath d='M296 6 C236 10 232 56 176 70 S96 96 62 124 S28 142 8 146' stroke-width='1.6' transform='translate(3 8)'/%3E%3C/g%3E%3Cg fill='%23b8d8f2' fill-opacity='.4'%3E%3Ccircle cx='230' cy='22' r='1.8'/%3E%3Ccircle cx='172' cy='58' r='1.8'/%3E%3Ccircle cx='132' cy='71' r='1.8'/%3E%3Ccircle cx='92' cy='90' r='1.8'/%3E%3C/g%3E%3C/svg%3E") no-repeat center / contain;
}
/* each imprint heads a different way: falling right or left, steep or shallow */
#accommodation > .wrap::before{transform:scaleX(-1);}
#transfers > .wrap::before{transform:rotate(-28deg) scale(.85);}
#equipment > .wrap::before{transform:scaleX(-1) rotate(16deg);}
#lessons > .wrap::before{transform:scaleX(-1) rotate(-28deg) scale(.85);}
@media (max-width:1100px){
  #accommodation > .wrap::before, #transfers > .wrap::before, #equipment > .wrap::before, #passes > .wrap::before, #lessons > .wrap::before{display:none;}
}

@media (max-width:768px){
  .header-inner{justify-content:center;}
  .basket-drawer{width:100vw;}

  .cat-nav{
    order:3; width:100%;
    flex-wrap:nowrap;
    overflow-x:auto;
    justify-content:flex-start;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
    padding-bottom:4px;
  }
  .cat-nav::-webkit-scrollbar{display:none;}
  .cat-btn{flex-shrink:0;}
}

.lang-switch{display:flex; gap:4px; font-size:0.82rem; font-weight:700;}
.lang-switch a{padding:6px 10px; border-radius:8px; color:var(--slate); text-decoration:none; border:1px solid transparent;}
.lang-switch a:hover{color:var(--ink);}
.lang-switch a.active{color:var(--ink); border-color:var(--line); background:var(--bg-alt);}
@media (max-width:480px){
  /* the child-age dropdown gets the full width so its long labels are readable */
  .child-rate-row span{flex-basis:100%;}
  .child-rate-row select{flex:1 1 100%; min-width:0;}
}
