/* hero: crossfade slideshow */
.hero{position:relative;height:100svh;min-height:620px;overflow:hidden;background:var(--ink);color:var(--ivory)}
.slides{position:absolute;inset:0}
.slide{position:absolute;inset:0;opacity:0;transition:opacity 2.2s ease}
.slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.1);transition:transform 9s linear}
.slide.on{opacity:1}.slide.on img{transform:scale(1)}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(8,26,62,.45) 0%,rgba(8,26,62,.2) 60%),linear-gradient(180deg,rgba(8,26,62,.5) 0%,rgba(8,26,62,0) 30%,rgba(8,26,62,0) 60%,rgba(8,26,62,.7) 100%)}
.hero-c{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:6rem var(--pad) 8rem}
.hero h1{color:var(--ivory);font-size:clamp(3.4rem,9vw,9rem);line-height:.9;font-weight:300;text-shadow:0 4px 40px rgba(8,26,62,.35)}
.hero h1 em{color:var(--ivory);font-weight:300}
.hero p{max-width:34rem;margin:2rem auto 2.6rem;font-size:clamp(1rem,1.2vw,1.1rem);color:rgba(245,249,253,.9)}
.hero .kicker{color:var(--ivory)}
.js .hi{opacity:0;transform:translateY(30px)}.loaded .hi{opacity:1;transform:none;transition:opacity 1.4s ease var(--d,0s),transform 1.4s var(--ease) var(--d,0s)}.capture .hi{opacity:1;transform:none}
.hero-foot{position:absolute;z-index:3;left:var(--pad);right:var(--pad);bottom:2rem;display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;font:500 .62rem/1 var(--sans);letter-spacing:.26em;text-transform:uppercase}
.dots{display:flex;gap:1.6rem}.dots button{background:none;border:0;padding:.4rem 0;color:rgba(245,249,253,.55);font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;border-top:1px solid rgba(245,249,253,.3);padding-top:.9rem;min-width:84px;text-align:left;position:relative}
.dots button.on{color:var(--ivory)}.dots button::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:0;background:var(--blue)}
.dots button.on::before{width:100%;transition:width 6s linear}
.capture .dots button.on::before{width:100%;transition:none}
/* promise */
.promise{padding:clamp(6rem,14vw,12rem) 0;text-align:center}
.promise blockquote{margin:0 auto;max-width:1150px;font:300 clamp(2.1rem,4.6vw,4.4rem)/1.12 var(--serif);color:var(--navy)}
.promise blockquote::before{content:"“";display:block;font-size:2.4em;line-height:.6;color:var(--blue);margin-bottom:.2em}
.promise .sig{margin-top:2.6rem;font:600 .64rem var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--royal)}
/* editorial intro */
.edit{display:grid;grid-template-columns:repeat(12,1fr);gap:0 clamp(1rem,2vw,2rem);align-items:start;padding-bottom:clamp(6rem,12vw,10rem)}
.edit .p1{grid-column:1/6;aspect-ratio:3/4}
.edit .p2{grid-column:4/8;grid-row:2;aspect-ratio:4/5;margin-top:-26%;border:12px solid var(--ivory);z-index:2}
.edit .txt{grid-column:8/13;grid-row:1/3;padding-top:clamp(2rem,8vw,8rem)}
.edit .txt p:not(.lede):not(.kicker){color:var(--muted)}
.edit .num{font:italic 300 clamp(5rem,11vw,10rem)/1 var(--serif);color:var(--sand-2);margin-bottom:-.3em}
/* styles */
.styles{background:var(--sand);padding:clamp(5.5rem,11vw,9rem) 0}
.sec-h{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:clamp(3rem,5vw,4.5rem)}
.sec-h p{max-width:26rem;color:var(--muted);margin:0}
.sgrid{display:grid;grid-template-columns:1.25fr 1fr 1fr 1.25fr;gap:clamp(1rem,1.6vw,1.6rem);align-items:end}
.style .ph{aspect-ratio:3/4.3}.style:nth-child(2) .ph,.style:nth-child(3) .ph{aspect-ratio:3/3.6}
.style:nth-child(even){transform:translateY(3.5rem)}
.style .ph img{transition:transform 1.6s var(--ease)}.style:hover .ph img{transform:scale(1.05)}
.style h3{margin:1.3rem 0 .5rem;font-size:clamp(1.7rem,2.2vw,2.2rem)}
.style h3 small{display:block;font:italic 400 1rem var(--serif);color:var(--royal);margin-bottom:.4rem}
.style p{font-size:.92rem;color:var(--muted);margin:0}
/* destinations carousel */
.dest{padding:clamp(6rem,12vw,10rem) 0 clamp(4rem,8vw,6rem);overflow:hidden}
.ctrls{display:flex;gap:.6rem}.ctrls button{width:54px;height:54px;border:1px solid var(--navy);background:none;color:var(--navy);cursor:pointer;display:grid;place-items:center;transition:background .3s,color .3s}
.ctrls button:hover{background:var(--navy);color:var(--ivory)}.ctrls svg{width:22px;height:12px;fill:none;stroke:currentColor;stroke-width:1.2}
.track{display:flex;gap:clamp(1rem,1.8vw,1.8rem);overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--pad) 1.5rem;scrollbar-width:none;cursor:grab}
.track::-webkit-scrollbar{display:none}
.dc{flex:0 0 clamp(270px,27vw,400px);scroll-snap-align:start;display:block}
.dc .ph{aspect-ratio:3/4.4}.dc .ph img{transition:transform 1.6s var(--ease)}.dc:hover .ph img{transform:scale(1.06)}
.dc .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(8,26,62,.55))}
.dc .n{position:absolute;z-index:2;top:1.2rem;left:1.3rem;font:italic 400 1.1rem var(--serif);color:var(--ivory)}
.dc .go{position:absolute;z-index:2;left:1.3rem;bottom:1.2rem;font:600 .6rem var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--ivory)}
.dc h3{margin:1.2rem 0 .3rem;font-size:clamp(1.9rem,2.4vw,2.4rem)}
.dc p{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0}
.dc.unsure{background:var(--navy);color:var(--ivory);display:flex;flex-direction:column;justify-content:flex-end;padding:2.2rem;aspect-ratio:3/4.4;align-self:flex-start}
.dc.unsure h3{color:var(--ivory);margin-top:0}.dc.unsure p{color:rgba(245,249,253,.75);text-transform:none;letter-spacing:0;font-size:.95rem;margin:1rem 0 2rem}
.progress{height:1px;background:var(--rule);margin:2rem var(--pad) 0;position:relative}.progress i{position:absolute;left:0;top:0;height:1px;background:var(--navy);width:20%}
/* journey */
.journey{padding:clamp(5rem,10vw,8rem) 0 clamp(6rem,12vw,10rem)}
.jgrid{display:grid;grid-template-columns:1fr 1.5fr;gap:clamp(2rem,7vw,7rem)}
.jhead{position:sticky;top:7rem;align-self:start}
.jhead p{color:var(--muted)}
.tl{list-style:none;margin:0;padding:0;position:relative}
.tl::before{content:"";position:absolute;left:2.4rem;top:.5rem;bottom:.5rem;width:1px;background:var(--stone)}
.tl li{position:relative;display:grid;grid-template-columns:4.8rem 1fr;gap:1.4rem;padding-bottom:3.4rem}
.tl li:last-child{padding-bottom:0}
.tl .k{position:relative;z-index:1;width:4.8rem;height:4.8rem;border:1px solid var(--blue);border-radius:50%;background:var(--ivory);display:grid;place-items:center;font:italic 300 1.9rem var(--serif);color:var(--royal)}
.tl h3{font-size:clamp(1.7rem,2.4vw,2.3rem);margin:.9rem 0 .6rem}
.tl p{color:var(--muted);margin:0;max-width:34rem}
/* honeymoon band */
.band{position:relative;min-height:88vh;display:flex;align-items:center;color:var(--ivory);overflow:hidden}
.band .bg{position:absolute;inset:-8% 0;}.band .bg img{width:100%;height:100%;object-fit:cover}
.band::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,26,62,.72),rgba(8,26,62,.15) 65%)}
.band .in{position:relative;z-index:2;max-width:640px}
.band h2{color:var(--ivory)}.band h2 em{color:var(--blue)}
.band p{color:rgba(245,249,253,.86)}
.band .places{font:500 .66rem/2.2 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--blue);margin:1.6rem 0 2.4rem}
/* guests */
.guests{display:grid;grid-template-columns:1fr 1fr;min-height:90vh}
.guests .ph{min-height:520px}
.guests .txt{background:var(--sand);padding:clamp(3rem,8vw,8rem) clamp(1.5rem,6vw,6rem);display:flex;flex-direction:column;justify-content:center}
.guests .txt>p{color:var(--muted)}
.gl{list-style:none;padding:0;margin:1.2rem 0 2.6rem;border-top:1px solid var(--rule)}
.gl li{display:flex;gap:1.2rem;align-items:baseline;padding:1rem 0;border-bottom:1px solid var(--rule);font:300 1.35rem/1.3 var(--serif);color:var(--navy)}
.gl li i{font:italic 400 .95rem var(--serif);color:var(--royal);min-width:1.6rem}
/* begin your story */
.story{padding:clamp(6rem,12vw,10rem) 0}
.sgrid2{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(2.5rem,8vw,8rem);align-items:start}
.story .ph{aspect-ratio:4/5;margin-top:2.5rem}
.story form{padding-top:1rem}
.story .row{display:grid;grid-template-columns:1fr 1fr;gap:0 2rem}
.story .note{font-size:.8rem;color:var(--muted);margin-top:1.4rem}
/* faq */
.faqs{background:var(--sand);padding:clamp(5.5rem,11vw,9rem) 0}
.fgrid{display:grid;grid-template-columns:1fr 1.6fr;gap:clamp(2rem,7vw,7rem)}
@media (max-width:1000px){.sgrid{grid-template-columns:1fr 1fr;row-gap:3rem}.style:nth-child(even){transform:none}.style .ph,.style:nth-child(2) .ph,.style:nth-child(3) .ph{aspect-ratio:3/4}
.jgrid,.fgrid,.sgrid2{grid-template-columns:1fr}.jhead{position:static}.guests{grid-template-columns:1fr}.guests .ph{min-height:0;aspect-ratio:4/3}
.edit .p1{grid-column:1/9}.edit .p2{grid-column:6/13;grid-row:2;margin-top:-30%}.edit .txt{grid-column:1/13;grid-row:3;padding-top:3rem}.story .ph{display:none}}
@media (max-width:600px){.hero h1{font-size:clamp(3rem,15vw,4.4rem)}.hero-foot .cue{display:none}.dots{gap:.8rem;width:100%}.dots button{min-width:0;flex:1;font-size:.52rem;letter-spacing:.14em}
.sec-h{flex-direction:column;align-items:flex-start}.ctrls{display:none}.sgrid{grid-template-columns:1fr}.dc{flex-basis:78vw}
.tl::before{left:1.6rem}.tl li{grid-template-columns:3.2rem 1fr;gap:1rem}.tl .k{width:3.2rem;height:3.2rem;font-size:1.35rem}.tl h3{margin-top:.4rem}
.story .row{grid-template-columns:1fr}.band{min-height:auto;padding:7rem 0}.band::after{background:linear-gradient(180deg,rgba(8,26,62,.35),rgba(8,26,62,.8))}
.promise blockquote{font-size:2rem}.btn{width:100%}}
.edit .num{font-size:clamp(4rem,8vw,7rem);margin-bottom:.4rem;line-height:.8}
.story .ph{aspect-ratio:4/3}
.jhead .d2,.fgrid .d2{font-size:clamp(2.5rem,4.4vw,4.4rem)}
.track{padding-left:max(var(--pad),calc((100vw - 1400px)/2 + var(--pad)));scroll-padding-left:max(var(--pad),calc((100vw - 1400px)/2 + var(--pad)))}
.progress{max-width:calc(1400px - 2*var(--pad));margin-left:auto;margin-right:auto}
@media (max-width:1400px){.progress{margin-left:var(--pad);margin-right:var(--pad)}}
.tl::before{bottom:auto;height:calc(100% - 4.8rem)}
@media (max-width:600px){.hero .kicker.c::before,.hero .kicker.c::after{flex-basis:24px}.hero .kicker{letter-spacing:.24em;font-size:.6rem}
.style .ph,.style:nth-child(2) .ph,.style:nth-child(3) .ph{aspect-ratio:4/3}.dots button span{display:none}}
.band .places{color:#93CDF6}.band h2 em{color:#93CDF6}
