*,*::before,*::after{box-sizing:border-box} img{max-width:100%;height:auto;display:block}
:root{--c:#2350C8;--c-d:#1a3fa3;--ink:#0F172A;--muted:#475569;--tint:#F1F4F9;--line:#DCE2EB;--hf:'Young Serif',Georgia,serif;--bf:'Figtree',system-ui,sans-serif}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;font-family:var(--bf);font-size:17px;line-height:1.6;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--hf);font-weight:400;line-height:1.12;letter-spacing:-.015em;margin:0}
p{margin:0 0 1em}
a{color:var(--c)}
:focus-visible{outline:3px solid #6b8ff0;outline-offset:2px}
.sr,.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip:focus{position:fixed;top:8px;left:8px;width:auto;height:auto;clip:auto;background:#fff;padding:8px 14px;z-index:100}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}

.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:8px;font-weight:600;font-size:16px;text-decoration:none;border:1.5px solid var(--c);transition:background .15s}
.btn-solid{background:var(--c);color:#fff}
.btn-solid:hover{background:var(--c-d)}
.btn-line{color:var(--ink);border-color:#c3ccd9;background:#fff}
.btn-line:hover{border-color:var(--c)}
.btn-lg{min-height:52px;padding:0 26px}

.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line)}
.head-row{display:flex;align-items:center;gap:28px;height:72px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand-mark{width:36px;height:36px;flex:none}
.brand-text{font-family:var(--hf);font-size:21px;margin:0;letter-spacing:-.01em}
.brand-text em{font-style:normal;font-family:var(--bf);font-weight:500;font-size:16px;color:var(--muted);margin-left:2px}
.nav{display:flex;gap:26px;margin-left:auto}
.nav a{color:var(--ink);text-decoration:none;font-size:15.5px;font-weight:500}
.nav a:hover{color:var(--c)}
.head-cta{display:flex;align-items:center;gap:18px}
.head-phone{font-weight:600;color:var(--ink);text-decoration:none;font-variant-numeric:tabular-nums}
.menu-btn{display:none;margin-left:auto;width:46px;height:46px;border:1px solid var(--line);background:#fff;border-radius:8px;cursor:pointer;position:relative}
.bars,.bars::before,.bars::after{position:absolute;left:12px;width:20px;height:2px;background:var(--ink);content:"";transition:transform .2s}
.bars{top:22px}.bars::before{top:-6px;left:0}.bars::after{top:6px;left:0}
.menu-btn[aria-expanded="true"] .bars{background:transparent}
.menu-btn[aria-expanded="true"] .bars::before{transform:translateY(6px) rotate(45deg)}
.menu-btn[aria-expanded="true"] .bars::after{transform:translateY(-6px) rotate(-45deg)}
.mobile-menu{border-top:1px solid var(--line);padding:10px 28px 22px;background:#fff}
.mobile-menu a:not(.btn){display:block;padding:13px 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;font-weight:500}
.mobile-menu .btn{margin-top:16px;width:100%}

/* hero */
.hero{padding:76px 0 96px}
.hero-copy{text-align:center;max-width:820px;margin:0 auto 52px}
.hero h1{font-size:clamp(2.4rem,5.2vw,4.2rem);line-height:1.06;letter-spacing:-.025em;margin-bottom:22px}
.lead{font-size:19.5px;color:#334155;max-width:60ch;margin:0 auto 32px}
.btn-row{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}
.hero-photo{margin:0;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.hero-photo img{width:100%;aspect-ratio:2.3/1;object-fit:cover;object-position:50% 70%}
.hero-strip{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);background:#fff}
.hero-strip li{padding:18px 24px;font-size:15.5px;font-weight:500;font-variant-numeric:tabular-nums}
.hero-strip li+li{border-left:1px solid var(--line)}
.hero-strip span{display:block;font-size:13px;color:var(--muted);font-weight:500;margin-bottom:2px}

/* section heads */
.sec{padding:104px 0}
.sec-tint{background:var(--tint)}
.sec-head{text-align:center;max-width:700px;margin:0 auto 56px}
.sec-head::before{content:"";display:block;width:40px;height:3px;background:var(--c);margin:0 auto 22px;border-radius:2px}
.sec-head h2{font-size:clamp(2rem,3.6vw,3rem);margin-bottom:14px}
.sec-head p{color:var(--muted);font-size:18px;margin:0 auto;max-width:58ch}
.sec-head-left{text-align:left;margin:0 0 36px}
.sec-head-left::before{margin-left:0}

/* package table */
.table-wrap{overflow-x:auto}
.pkg{width:100%;border-collapse:collapse;font-size:16px}
.pkg thead th{text-align:left;vertical-align:bottom;padding:24px 22px 22px;border-bottom:1.5px solid var(--ink);width:24%}
.pkg thead td{width:28%;border-bottom:1.5px solid var(--ink)}
.pkg-name{display:block;font-family:var(--hf);font-size:26px;font-weight:400}
.pkg-size{display:block;color:var(--muted);font-size:14.5px;margin:2px 0 14px}
.pkg-price{display:block;font-size:24px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}
.pkg-note{display:block;font-size:13.5px;color:var(--c);font-weight:600;margin-top:6px}
.pkg .pop{background:#F4F7FE}
.pkg thead .pop{border-top:3px solid var(--c)}
.pkg tbody th{text-align:left;font-weight:500;padding:16px 16px 16px 0;border-bottom:1px solid var(--line)}
.pkg tbody td{padding:16px 22px;border-bottom:1px solid var(--line);color:var(--muted);font-variant-numeric:tabular-nums}
.pkg tbody td.span{color:var(--ink)}
.deal{display:flex;align-items:center;gap:20px;margin-top:40px;padding:22px 26px;border:1px solid var(--line);border-radius:10px}
.deal svg{width:48px;height:48px;flex:none}
.deal p{margin:0;color:#334155}
.deal strong{color:var(--ink)}

/* checker */
.checker{display:grid;grid-template-columns:1.25fr 1fr;gap:40px;align-items:start}
.chk-form fieldset{border:0;margin:0 0 30px;padding:0;min-width:0}
.chk-form legend{font-family:var(--hf);font-size:21px;margin-bottom:14px;padding:0;display:flex;align-items:center;gap:12px}
.chk-form legend span{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1.5px solid var(--c);color:var(--c);font-family:var(--bf);font-size:14px;font-weight:600}
.opts{display:flex;flex-wrap:wrap;gap:10px}
.opts .opt{position:relative;cursor:pointer}
.opts .opt input{position:absolute;opacity:0;width:1px;height:1px}
.opts .opt span{display:inline-flex;align-items:center;min-height:46px;padding:0 18px;background:#fff;border:1.5px solid var(--line);border-radius:8px;font-weight:500;font-size:15.5px}
.opts .opt input:checked+span{border-color:var(--c);color:var(--c);background:#fff;box-shadow:inset 0 0 0 1px var(--c)}
.opts .opt input:focus-visible+span{outline:3px solid #6b8ff0;outline-offset:2px}
.chk-out{background:#fff;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.chk-out img{width:100%;aspect-ratio:16/8;object-fit:cover}
.chk-text{padding:28px 30px 30px}
.chk-tag{font-size:14px;color:var(--muted);font-weight:600;margin-bottom:6px}
.chk-text h3{font-size:28px;margin-bottom:12px;color:var(--c)}
.chk-text p{color:#334155}
.chk-price{margin:0;padding-top:14px;border-top:1px solid var(--line);font-weight:600;color:var(--ink)!important;font-variant-numeric:tabular-nums}

/* included */
.inc-grid{display:grid;grid-template-columns:5fr 7fr;gap:80px;align-items:center}
.inc-photo{margin:0}
.inc-photo img{border-radius:12px;aspect-ratio:4/5;object-fit:cover;object-position:64% 50%;width:100%}
.inc-photo figcaption{font-size:14.5px;color:var(--muted);margin-top:12px}
.inc-copy h2{font-size:clamp(2rem,3.4vw,2.8rem);margin-bottom:16px;max-width:16ch}
.inc-lead{color:var(--muted);font-size:18px;max-width:52ch}
.ticks{list-style:none;margin:28px 0 0;padding:0}
.ticks li{position:relative;padding:15px 0 15px 38px;border-top:1px solid var(--line);color:var(--muted)}
.ticks li:last-child{border-bottom:1px solid var(--line)}
.ticks li::before{content:"";position:absolute;left:4px;top:21px;width:14px;height:8px;border-left:2.5px solid var(--c);border-bottom:2.5px solid var(--c);transform:rotate(-45deg)}
.ticks strong{color:var(--ink);font-weight:600}

/* process */
.proc-grid{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:start}
.proc-photo{margin:0;position:sticky;top:110px}
.proc-photo img{border-radius:12px;aspect-ratio:4/3;object-fit:cover;width:100%}
.proc-photo figcaption{font-size:14.5px;color:var(--muted);margin-top:12px}
.vsteps{list-style:none;margin:0;padding:0;counter-reset:s}
.vsteps li{counter-increment:s;position:relative;padding:0 0 34px 64px}
.vsteps li::before{content:counter(s);position:absolute;left:0;top:-2px;width:40px;height:40px;border-radius:50%;background:#fff;border:1.5px solid var(--c);color:var(--c);display:grid;place-items:center;font-weight:600;font-size:16px;z-index:1}
.vsteps li::after{content:"";position:absolute;left:20px;top:40px;bottom:0;width:1.5px;background:#c3cde0}
.vsteps li:last-child::after{display:none}
.vsteps li:last-child{padding-bottom:0}
.vsteps h3{font-size:22px;margin:4px 0 8px}
.vsteps p{margin:0;color:var(--muted)}

/* family */
.fam-grid{display:grid;grid-template-columns:7fr 5fr;gap:80px;align-items:center}
.fam-copy h2{font-size:clamp(2rem,3.4vw,2.8rem);margin-bottom:22px;max-width:16ch}
.fam-copy p{color:#334155;max-width:58ch}
.crew{margin:28px 0 22px;border-top:1px solid var(--line)}
.crew div{display:grid;grid-template-columns:180px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.crew dt{font-family:var(--hf);font-size:19px}
.crew dd{margin:0;color:var(--muted)}
.reg{font-size:14.5px;color:var(--muted)!important}
.fam-photo{margin:0}
.fam-photo img{border-radius:12px;aspect-ratio:4/5;object-fit:cover;object-position:50% 12%;width:100%}
.fam-photo figcaption{font-size:14.5px;color:var(--muted);margin-top:10px}

/* reviews */
.rev-top{display:grid;grid-template-columns:260px 1fr;gap:56px;align-items:center;max-width:820px;margin:0 auto 56px}
.score{text-align:center}
.score-num{font-family:var(--hf);font-size:84px;line-height:1;margin:0 0 8px;color:var(--c)}
.score-sub{margin:0;color:var(--muted);font-size:15px}
.bars-list{list-style:none;margin:0;padding:0}
.bars-list li{display:grid;grid-template-columns:64px 1fr 40px;gap:14px;align-items:center;font-size:14.5px;padding:4px 0;color:var(--muted)}
.bars-list i{display:block;height:8px;background:#dfe5ef;border-radius:4px;position:relative;overflow:hidden}
.bars-list i::after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--w);background:var(--c);border-radius:4px}
.bars-list b{font-weight:600;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}
.rev-cols{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #cfd7e4}
.rev-cols figure{margin:0;padding:32px 32px 8px}
.rev-cols figure:first-child{padding-left:0}
.rev-cols figure:last-child{padding-right:0}
.rev-cols figure+figure{border-left:1px solid #cfd7e4}
.rev-cols blockquote{margin:0}
.rev-cols p{font-size:17.5px;color:#1e293b}
.rev-cols figcaption{font-size:14.5px;color:var(--muted)}
.rev-cols figcaption strong{display:block;color:var(--ink);font-size:16px}

/* season */
.season-grid{display:grid;grid-template-columns:5fr 7fr;gap:72px;align-items:start}
.season-photo{margin:0}
.season-photo img{border-radius:12px;aspect-ratio:4/3;object-fit:cover;object-position:50% 55%;width:100%}
.cal{padding-top:8px}
.cal-row{display:grid;grid-template-columns:150px repeat(8,1fr);align-items:center;min-height:52px;border-bottom:1px solid var(--line);position:relative}
.cal-row>span[role=rowheader]{font-weight:600;font-size:15.5px}
.cal-head{min-height:40px;border-bottom:1.5px solid var(--ink)}
.cal-head span{font-size:13.5px;color:var(--muted);font-weight:600;text-align:center}
.cal-head span:first-child{text-align:left}
.bar{grid-column:calc(var(--s) + 1)/calc(var(--e) + 2);height:14px;border-radius:7px;background:#9db4ef;margin:0 4px}
.bar.strong{background:var(--c)}
.bar.light{background:#cfdaf6}
.cal-notes{list-style:none;margin:30px 0 0;padding:0}
.cal-notes li{padding:12px 0;color:var(--muted);font-size:16px}
.cal-notes strong{color:var(--ink)}

/* area */
.days{display:grid;grid-template-columns:repeat(5,1fr);gap:0;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.days>div{padding:26px 24px}
.days>div+div{border-left:1px solid var(--line)}
.days h3{font-size:22px;color:var(--c)}
.days p{font-weight:600;font-size:15px;margin:4px 0 12px}
.days ul{list-style:none;margin:0;padding:0}
.days li{padding:7px 0;border-top:1px solid var(--line);color:var(--muted);font-size:15.5px}

/* faq */
.faq-cols{display:grid;grid-template-columns:1fr 1fr;column-gap:72px}
.faq-cols>div{padding:26px 0;border-top:1px solid var(--line)}
.faq-cols h3{font-size:21px;margin-bottom:8px}
.faq-cols p{margin:0;color:var(--muted);max-width:56ch}

/* booking band */
.book{background:var(--c);color:#fff;padding:96px 0}
.book-grid{display:grid;grid-template-columns:5fr 7fr;gap:64px;align-items:center}
.book h2{font-size:clamp(2rem,3.6vw,3rem);margin-bottom:18px}
.book-copy p{color:#dbe4fb;font-size:18px;max-width:42ch}
.book-phone{margin:28px 0 4px}
.book-phone a{font-family:var(--hf);font-size:34px;color:#fff;text-decoration:none;font-variant-numeric:tabular-nums}
.book-small{font-size:15px!important}
.form{background:#fff;color:var(--ink);border-radius:12px;padding:34px}
.f{margin-bottom:16px;border:0;padding:0;min-width:0}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.f>label,.f>legend{display:block;font-weight:600;font-size:15px;margin-bottom:6px;padding:0}
.f input,.f select{width:100%;font:inherit;font-size:16px;padding:11px 12px;border:1px solid #c3ccd9;border-radius:8px;background:#fff;color:var(--ink);min-height:46px}
.size-opts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.size-opts .size-opt{position:relative;cursor:pointer}
.size-opts .size-opt input{position:absolute;opacity:0;width:1px;height:1px}
.size-opts .size-opt span{display:flex;align-items:center;justify-content:center;text-align:center;min-height:48px;padding:4px 8px;border:1.5px solid var(--line);border-radius:8px;font-weight:500;font-size:15px;line-height:1.2}
.size-opts .size-opt input:checked+span{border-color:var(--c);color:var(--c);background:#F4F7FE}
.size-opts .size-opt input:focus-visible+span{outline:3px solid #6b8ff0;outline-offset:2px}
.form button{width:100%;margin-top:6px;cursor:pointer}
.form-thanks{margin:16px 0 0;padding:14px 16px;background:var(--tint);border-left:3px solid var(--c);font-weight:500}

/* footer */
.footer{padding:64px 0 28px;border-top:1px solid var(--line);font-size:15.5px;color:var(--muted)}
.foot-top{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:36px;border-bottom:1px solid var(--line);margin-bottom:36px}
.foot-top .brand-text{font-size:28px;color:var(--ink)}
.foot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.footer h3{font-family:var(--bf);font-weight:600;font-size:14px;color:var(--ink);margin-bottom:10px}
.footer a{color:var(--ink)}
.foot-base{display:flex;justify-content:space-between;gap:16px;margin-top:48px;padding-top:22px;border-top:1px solid var(--line);font-size:14px}
.foot-base p{margin:0}

.callbar{display:none}

@media (max-width:1100px){.head-phone{display:none}.nav{gap:18px}}
@media (max-width:960px){
  .nav,.head-cta{display:none}
  .menu-btn{display:block}
  .hero-strip{grid-template-columns:1fr 1fr}
  .hero-strip li:nth-child(3){border-left:0}
  .hero-strip li:nth-child(n+3){border-top:1px solid var(--line)}
  .checker,.inc-grid,.proc-grid,.fam-grid,.season-grid,.book-grid{grid-template-columns:1fr;gap:40px}
  .proc-photo{position:static}
  .fam-photo{order:-1}
  .fam-photo img{aspect-ratio:1/1}
  .inc-photo img{aspect-ratio:4/3}
  .rev-top{grid-template-columns:1fr;gap:24px}
  .rev-cols{grid-template-columns:1fr}
  .rev-cols figure,.rev-cols figure:first-child,.rev-cols figure:last-child{padding:24px 0}
  .rev-cols figure+figure{border-left:0;border-top:1px solid #cfd7e4}
  .days{grid-template-columns:1fr 1fr}
  .days>div{border-top:1px solid var(--line)}
  .days>div:nth-child(odd){border-left:0}
  .days>div:nth-child(-n+2){border-top:0}
  .faq-cols{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  body{font-size:16.5px}
  .wrap{padding:0 20px}
  .head-row{height:64px}
  .brand-text{font-size:19px}
  .brand-text em{font-size:14px}
  .hero{padding:44px 0 64px}
  .hero h1{font-size:2.5rem}
  .lead{font-size:17.5px}
  .btn-row .btn{width:100%}
  .hero-photo img{aspect-ratio:4/3;object-position:30% 60%}
  .hero-strip{grid-template-columns:1fr}
  .hero-strip li{padding:13px 18px}
  .hero-strip li+li{border-left:0;border-top:1px solid var(--line)}
  .sec{padding:72px 0}
  .sec-head{margin-bottom:40px}
  .pkg{min-width:620px}
  .pkg-name{font-size:22px}
  .pkg-price{font-size:19px}
  .table-wrap{margin:0 -20px;padding:0 20px}
  .deal{flex-direction:column;align-items:flex-start;gap:12px;padding:20px}
  .chk-text{padding:22px}
  .chk-text h3{font-size:24px}
  .crew div{grid-template-columns:1fr;gap:2px}
  .cal-row{grid-template-columns:96px repeat(8,1fr)}
  .cal-row>span[role=rowheader]{font-size:13.5px;line-height:1.25}
  .cal-head span{font-size:11.5px}
  .bar{margin:0 1px;height:12px}
  .days{grid-template-columns:1fr}
  .days>div,.days>div:nth-child(-n+2){border-left:0;border-top:1px solid var(--line)}
  .days>div:first-child{border-top:0}
  .book{padding:72px 0}
  .form{padding:24px 18px}
  .f2{grid-template-columns:1fr;gap:0}
  .size-opts{grid-template-columns:1fr 1fr}
  .foot-top{flex-direction:column;align-items:flex-start}
  .foot-grid{grid-template-columns:1fr;gap:24px}
  .foot-base{flex-direction:column}
  .footer{padding-bottom:96px}
  .callbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--line);padding:8px 10px;gap:8px}
  .callbar a{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:8px;font-weight:600;text-decoration:none;border:1.5px solid var(--c);color:var(--c)}
  .callbar .cb-main{background:var(--c);color:#fff}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.footer .btn{color:#fff}
fieldset.f{margin:0 0 16px}
.sec-head{max-width:760px}
.sec-head p{max-width:62ch}
.pkg-m{display:none}
@media (max-width:640px){
  .table-wrap{display:none}
  .pkg-m{display:block;border-top:1.5px solid var(--ink)}
  .pkg-m>div{padding:18px 0;border-bottom:1px solid var(--line)}
  .pkg-m>div.pop{background:#F4F7FE;margin:0 -20px;padding:18px 20px;border-left:3px solid var(--c)}
  .pkg-m p{margin:0}
  .pm-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
  .pkg-m .pkg-size{margin:2px 0 6px}
  .pm-line{font-size:15px;color:var(--muted)}
  .pm-all{padding-top:16px;font-size:15px;color:var(--muted)}
}
@media (max-width:640px){.days>div:nth-child(n){border-left:0}}
