/* Ish Travel – private-tour page styles.
 * Generated from phase 2/design/private-tour.html (approved designs, 24 Oct 2026).
 * Edit here from now on; the design HTML is no longer the source. */

.hero h1{font-size:clamp(46px, 7.4vw, 88px); max-width:13ch; line-height:1.02}

.hero__intro{font-size:19px; max-width:46ch; text-shadow:0 1px 14px rgba(0,0,0,.55)}

.hero h1,.hero__eyebrow{text-shadow:0 2px 24px rgba(0,0,0,.3)}

.dest__visual{position:relative; max-width:500px; width:100%; justify-self:center; display:grid; gap:22px}

.dest__visual svg{width:100%; height:auto; display:block; overflow:visible}

.dest__photo{transition:opacity .5s}

.dest__name{font:300 clamp(30px,3.4vw,40px)/1 var(--serif); fill:#fff; font-style:italic}

.dest__sub{font:600 11px var(--sans); letter-spacing:.16em; text-transform:uppercase; fill:#FFD9A8}

.months{display:grid; gap:10px}

.months__head{display:flex; justify-content:space-between; font-size:13px; color:var(--muted)}

.months__head b{color:var(--fg); font-weight:600}

.months ol{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(12,1fr); gap:4px}

.months li{text-align:center; font:600 11px/1 var(--sans); padding:9px 0; border-radius:999px; background:var(--fill); color:var(--muted); transition:background .35s, color .35s}

.months li.on{background:var(--red); color:#fff}

.dest__list a{display:grid; grid-template-columns:1fr auto; align-items:center; gap:4px 18px; padding:18px 4px; text-decoration:none; transition:padding .3s}

.dest__list b{font:300 clamp(26px,3vw,32px)/1.1 var(--serif); transition:color .3s}

.home-tag{font:600 10px/1 var(--sans); letter-spacing:.12em; text-transform:uppercase; color:var(--red); border:1px solid currentColor; border-radius:999px; padding:4px 8px; margin-left:10px; vertical-align:middle; font-style:normal}

@media (max-width:820px){
  .topbar__l a:not(:first-child){display:none}
  .qs{grid-template-columns:1fr 1fr; border-radius:26px}
  .qs__f{border-right:0; border-bottom:1px solid rgba(18,17,15,.12)}
  .qs__f:first-child{grid-column:1 / -1}
  .qs__f:nth-child(3){border-bottom:1px solid rgba(18,17,15,.12)}
  .qs__f:focus-within{border-radius:18px}
  .qs .btn{grid-column:1 / -1; justify-content:center; margin-top:8px}
  .ways,.dest,.cta,.news{grid-template-columns:1fr}
  .way{min-height:440px}
  .way__body{padding:26px}
  .dest__visual{max-width:400px}
  .cta::after{display:none}
}

@media (max-width:560px){
  .topbar__r a:not(.heart){display:none}
  .wa span{display:none}
  .wa{padding:16px}
  .months li{font-size:9px}
  .hdr__bar{height:66px}
  .logo small{display:none}
  .hero .wrap{padding-block:120px 28px}
  .hero__intro{font-size:17px}
  .exp{grid-template-columns:1fr 1fr}
  .why{grid-template-columns:1fr}
  .why div,.why div + div{padding-left:0; border-left:0; border-bottom:1px solid var(--line); padding-bottom:24px}
  .dep{grid-template-columns:1fr auto; grid-template-areas:"d p" "t t" "s b"; gap:12px}
  .ftr__top{grid-template-columns:1fr}
  .news form{flex-direction:column; border-radius:24px}
  .news input{padding:14px 16px}
  .news .btn{justify-content:center}
  .head{margin-bottom:30px}
}

.pt-top{padding-block:28px 0}

.crumbs{font-size:13px; color:var(--muted); display:flex; flex-wrap:wrap; gap:8px; align-items:center}

.crumbs a{text-decoration:none}

.pt-head{margin:20px 0 34px; max-width:720px}

.pt-head h1{font-size:clamp(42px,6vw,64px); margin-top:14px}

.pt-head h1 em{color:var(--red)}

.pt-head p{font-size:18px; margin-top:14px; color:var(--muted)}

.pt-grid{display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:clamp(28px,5vw,70px); align-items:start; padding-bottom:110px}

.errsum{border:1.5px solid var(--red-deep); border-radius:18px; padding:16px 18px; margin-bottom:18px; background:color-mix(in srgb, var(--red-deep) 6%, var(--card))}

.errsum b{color:var(--red-deep)}

.errsum ul{margin:8px 0 0; padding-left:18px; font-size:14px}

.errsum a{color:var(--red-deep); font-weight:600}

.fs{border:1px solid var(--line); border-radius:24px; background:var(--card); padding:clamp(20px,3vw,30px); margin:0 0 18px; display:grid; gap:18px; min-width:0}

.fs legend{float:left; width:100%; padding:0; display:flex; align-items:center; gap:14px}

.fs legend + *{clear:both}

.fs legend i{width:34px; height:34px; border-radius:50%; background:var(--bg-alt); display:grid; place-items:center; font:400 17px/1 var(--serif); font-style:normal; color:var(--red); flex:none}

.fs legend span{font:400 26px/1.15 var(--serif)}

.fs legend small{display:block; font:400 13px var(--sans); color:var(--muted); margin-top:2px}

.row{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:14px 16px}

.f{display:grid; gap:6px; align-content:start; min-width:0}

.f > label,.f > .flabel{font-size:13px; font-weight:600}

.f > label small,.f > .flabel small{font-weight:400; color:var(--muted)}

.f input:not([type=checkbox]):not([type=radio]),.f select,.f textarea{width:100%; border:1px solid var(--line); background:var(--bg); border-radius:12px; padding:13px 14px; font-size:15px; transition:border-color .2s, box-shadow .2s}

.f select{appearance:none; -webkit-appearance:none; background-image:linear-gradient(45deg, transparent 50%, currentColor 50%), linear-gradient(135deg, currentColor 50%, transparent 50%); background-position:calc(100% - 18px) 52%, calc(100% - 13px) 52%; background-size:5px 5px; background-repeat:no-repeat; padding-right:34px}

.f textarea{min-height:100px; resize:vertical}

.f input:focus,.f select:focus,.f textarea:focus{outline:none; border-color:var(--fg); box-shadow:0 0 0 3px color-mix(in srgb, var(--fg) 10%, transparent)}

.err{display:none; font-size:13px; color:var(--red-deep); font-weight:600}

.f.bad .err{display:block}

.f.bad input,.f.bad select{border-color:var(--red-deep)}

.hint{font-size:12.5px; color:var(--muted)}

.phone{display:grid; grid-template-columns:100px minmax(0,1fr); gap:8px}

.nights{display:flex; align-items:center; gap:12px; border-radius:16px; background:var(--bg-alt); padding:12px 16px; font-size:14px}

.nights b{font:400 26px/1 var(--serif); font-variant-numeric:tabular-nums}

.pax{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px}

.pax__item{border:1px solid var(--line); border-radius:18px; padding:14px; display:grid; gap:10px; background:var(--bg)}

.pax__item b{font-size:15px}

.pax__item small{display:block; font-size:12.5px; color:var(--muted); font-weight:400}

.step{display:flex; align-items:center; justify-content:space-between; gap:6px}

.step button{width:38px; height:38px; border-radius:50%; border:1px solid var(--line); background:var(--card); cursor:pointer; font-size:18px; line-height:1}

.step button:disabled{opacity:.35; cursor:not-allowed}

.step output{font:400 26px/1 var(--serif); min-width:30px; text-align:center; font-variant-numeric:tabular-nums}

.acts{display:flex; flex-wrap:wrap; gap:8px}

.acts label{position:relative; cursor:pointer}

.acts input{position:absolute; opacity:0; inset:0; cursor:pointer}

.acts span{display:inline-flex; align-items:center; gap:8px; border:1.5px solid var(--line); border-radius:999px; padding:10px 16px; font-size:14px; font-weight:600; background:var(--bg); transition:.2s}

.acts input:checked + span{background:var(--fg); color:var(--bg); border-color:var(--fg)}

.acts input:focus-visible + span{outline:2px solid var(--red); outline-offset:2px}

.acts span::before{content:"+"; font-weight:400; opacity:.6}

.acts input:checked + span::before{content:"✓"; opacity:1}

.stars3{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:10px}

.stars3 label{position:relative; cursor:pointer}

.stars3 input{position:absolute; opacity:0; inset:0; cursor:pointer}

.stars3 span{display:grid; gap:4px; border:1.5px solid var(--line); border-radius:18px; padding:16px; text-align:center; background:var(--bg); transition:.2s; height:100%}

.stars3 b{font:400 26px/1 var(--serif); color:var(--gold)}

.stars3 em{font-style:normal; font-size:14px; font-weight:600}

.stars3 small{font-size:12px; color:var(--muted)}

.stars3 input:checked + span{border-color:var(--red); background:color-mix(in srgb, var(--red) 5%, var(--card))}

.stars3 input:focus-visible + span{outline:2px solid var(--red); outline-offset:2px}

.f.bad .acts span,.f.bad .stars3 span{border-color:color-mix(in srgb, var(--red-deep) 50%, var(--line))}

.consent{display:grid; gap:12px; font-size:14px; color:var(--muted); border-top:1px solid var(--line); padding-top:16px}

.consent a{color:var(--fg); font-weight:600}

.inline-chk{display:flex; align-items:flex-start; gap:10px; cursor:pointer; color:var(--fg)}

.inline-chk input{accent-color:var(--red); width:18px; height:18px; margin-top:2px; flex:none}

.send{display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap}

.btn--big{padding:17px 28px; font-size:16px}

.mstep{display:none}

.side{position:sticky; top:100px; display:grid; gap:16px}

.attached{border:1px solid var(--line); border-radius:22px; overflow:hidden; background:var(--card)}

.attached img{width:100%; height:140px; object-fit:cover}

.attached div{padding:16px 18px; display:grid; gap:4px}

.attached small{font:600 11px/1 var(--sans); letter-spacing:.14em; text-transform:uppercase; color:var(--muted)}

.attached b{font:400 22px/1.2 var(--serif)}

.attached span{font-size:13px; color:var(--muted)}

.attached .linkbtn{justify-self:start; margin-top:6px}

.linkbtn{background:none; border:0; padding:0; font-weight:600; color:var(--red); cursor:pointer; font-size:13px}

.how{border-radius:22px; background:var(--bg-alt); padding:20px; display:grid; gap:12px}

.how h2{font-size:22px; font-weight:400}

.how ol{list-style:none; margin:0; padding:0; display:grid; gap:12px; counter-reset:h}

.how li{display:grid; grid-template-columns:28px minmax(0,1fr); gap:10px; font-size:14px}

.how li::before{counter-increment:h; content:counter(h); width:26px; height:26px; border-radius:50%; background:var(--card); display:grid; place-items:center; font:400 14px/1 var(--serif); color:var(--red)}

.how li small{display:block; color:var(--muted)}

.wa-box{border:1px solid var(--line); border-radius:22px; padding:18px; display:grid; gap:10px; background:var(--card); font-size:14px}

.wa-box b{font-size:15px}

.online{display:inline-flex; align-items:center; gap:8px; font-size:13px; color:var(--st-tea); font-weight:600}

.online::before{content:""; width:8px; height:8px; border-radius:50%; background:currentColor}

.extra{font-size:12.5px; color:var(--muted); display:grid; gap:4px}

.thanks{max-width:760px; margin:0 auto; padding-block:60px 120px; display:grid; gap:24px}

.thanks__hero{text-align:center; display:grid; justify-items:center; gap:14px}

.thanks__hero h1{font-size:clamp(40px,5.6vw,58px)}

.thanks__hero h1 em{color:var(--red)}

.thanks__hero p{color:var(--muted); max-width:52ch; font-size:17px}

.ref{display:inline-flex; gap:10px; align-items:center; border:1px solid var(--line); border-radius:999px; padding:8px 8px 8px 16px; font-size:14px; background:var(--card)}

.ref b{font:400 20px/1 var(--serif); letter-spacing:.02em}

.ref span{background:color-mix(in srgb, var(--st-ocean) 12%, var(--card)); color:var(--st-ocean); font-weight:700; font-size:12px; padding:6px 10px; border-radius:999px}

.mark{animation:none}

.drop-ok{width:76px; height:100px}

.drop-ok path.d{fill:var(--red); transform-origin:50% 60%; animation:popin .7s cubic-bezier(.2,.9,.3,1.3) both}

.drop-ok path.c{fill:none; stroke:#fff; stroke-width:7; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:60; stroke-dashoffset:60; animation:tick .5s .55s ease forwards}

@keyframes popin{from{transform:scale(.3); opacity:0}}

@keyframes tick{to{stroke-dashoffset:0}}

.panel{border:1px solid var(--line); border-radius:22px; background:var(--card); padding:clamp(20px,3vw,28px); display:grid; gap:12px}

.panel h2{font-size:22px; font-weight:400}

.kv{display:grid; grid-template-columns:170px minmax(0,1fr); gap:8px 16px; font-size:14px}

.kv dt{color:var(--muted)}

.kv dd{margin:0; font-weight:600; min-width:0; overflow-wrap:anywhere}

.next{list-style:none; margin:0; padding:0; display:grid}

.next li{display:grid; grid-template-columns:28px minmax(0,1fr); gap:12px; padding:12px 0; border-top:1px solid var(--line); font-size:14px}

.next li:first-child{border-top:0}

.next li i{width:24px; height:24px; border-radius:50%; border:1.5px solid var(--line); display:grid; place-items:center; font-style:normal; font-size:12px}

.next li.ok i{background:var(--st-tea); border-color:var(--st-tea); color:#fff}

.next li small{display:block; color:var(--muted)}

.t-acts{display:flex; gap:12px; justify-content:center; flex-wrap:wrap}

.demo{position:fixed; left:calc(16px + env(safe-area-inset-left,0px)); bottom:calc(16px + env(safe-area-inset-bottom,0px)); z-index:90; background:var(--fg); color:var(--bg); border-radius:14px; padding:10px 12px; font-size:12px; display:flex; gap:8px; align-items:center; flex-wrap:wrap; max-width:calc(100vw - 32px); box-shadow:0 10px 30px -10px rgba(0,0,0,.4)}

.demo b{font-weight:700; letter-spacing:.06em; text-transform:uppercase; font-size:10px; opacity:.7; cursor:pointer}

.demo button{background:transparent; color:inherit; border:1px solid color-mix(in srgb, var(--bg) 35%, transparent); border-radius:999px; padding:4px 10px; font-size:12px; cursor:pointer}

@media (max-width:980px){
  .pt-grid{grid-template-columns:1fr}
  .side{position:static; order:-1; grid-template-columns:1fr}
  .side .how,.side .wa-box{display:none}
  .attached{display:grid; grid-template-columns:110px minmax(0,1fr)}
  .attached img{height:100%}
}

@media (max-width:720px){
  .row,.pax{grid-template-columns:1fr}
  .pax__item{grid-template-columns:minmax(0,1fr) auto; align-items:center}
  .stars3{grid-template-columns:1fr}
  .stars3 span{grid-template-columns:auto 1fr; text-align:left; align-items:center; column-gap:14px}
  .stars3 b{grid-row:span 2}
  .kv{grid-template-columns:1fr; gap:2px}
  .kv dd{margin-bottom:8px}
  .js .fs:not(.cur){display:none}
  .js .mstep{display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:14px; font-size:13px; font-weight:600; color:var(--muted)}
  .mstep__bar{flex:1; height:4px; border-radius:4px; background:var(--fill); overflow:hidden}
  .mstep__bar i{display:block; height:100%; background:var(--red); transition:width .4s}
  .js .send{display:none}
  .js .send.cur{display:flex}
  .mnext{display:flex; gap:10px; margin-top:4px}
  .mnext .btn{flex:1; justify-content:center}
  .wa span{display:none}
  .wa{padding:16px; bottom:calc(76px + env(safe-area-inset-bottom,0px))}
  .demo:not(.open) button{display:none}
  .demo:not(.open) b::after{content:" ▸"}
}

@media (min-width:721px){ .mnext{display:none} }
