/* Brand-board divider and centered introduction; no canvas or animation library. */
.hero-section{border-bottom:0}
.hero-separator{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));height:6px;width:100%}
.hero-separator span:nth-child(1){background:#ff6b6b}.hero-separator span:nth-child(2){background:#ffb39c}.hero-separator span:nth-child(3){background:#ffd45a}.hero-separator span:nth-child(4){background:#7ec8ca}.hero-separator span:nth-child(5){background:#cdb4e6}.hero-separator span:nth-child(6){background:#78936b}
.confetti-intro{position:relative;isolation:isolate;overflow:hidden;background:var(--sand);border:0;padding:100px 0 110px;min-height:600px;display:grid;place-items:center}
.intro-statement{position:relative;text-align:center;z-index:1}
.intro-sun{width:90px;height:auto;margin:0 auto 38px}
.confetti-intro h2{font:400 clamp(30px,3.3vw,60px)/1.1 var(--sans);letter-spacing:-.025em;max-width:100%;margin:0;color:var(--ink)}
.confetti-intro h2>span{display:block;text-transform:uppercase}
.confetti-intro h2 em{display:block;font:italic 400 clamp(56px,5.6vw,94px)/1.1 var(--serif);color:var(--wine);margin-top:4px;letter-spacing:-.025em}
.confetti-pieces{position:absolute;inset:0;pointer-events:none;z-index:0}
.confetti-pieces span{position:absolute;width:16px;height:16px;border-radius:50%;--angle:0deg;transform:rotate(var(--angle));animation:confetti-drift 7s ease-in-out infinite alternate}
.confetti-pieces span:nth-child(1){left:8%;top:20%;background:#ff6b6b}
.confetti-pieces span:nth-child(2){left:28%;top:12%;width:11px;height:11px;background:#78936b;animation-delay:-2s}
.confetti-pieces span:nth-child(3){right:13%;top:23%;width:16px;height:34px;border-radius:1px;background:#ffd45a;--angle:-44deg;animation-delay:-4s}
.confetti-pieces span:nth-child(4){left:18%;bottom:28%;width:32px;height:13px;border-radius:1px;background:#7ec8ca;--angle:-30deg;animation-delay:-3s}
.confetti-pieces span:nth-child(5){right:28%;bottom:15%;width:28px;height:11px;border-radius:1px;background:#ffb39c;--angle:17deg;animation-delay:-1s}
.confetti-pieces span:nth-child(6){right:9%;bottom:30%;width:14px;height:14px;background:#cdb4e6;animation-delay:-5s}
@keyframes confetti-drift{from{transform:translate3d(0,0,0) rotate(var(--angle))}to{transform:translate3d(0,-12px,0) rotate(calc(var(--angle) + 9deg))}}
/* Portrait service cards: hover reveals details; the title also toggles on tap/keyboard. */
.service-grid{align-items:start}
.editorial-service .service-image{aspect-ratio:4/5}
.editorial-service .service-body{padding:22px 24px 18px;min-height:0;display:block}
.service--arrival{--service-accent:#ff6b6b}
.service--experiences{--service-accent:#7ec8ca}
.service--lifestyle{--service-accent:#cdb4e6}
.editorial-service .service-body .service-heading{font:400 clamp(26px,2.15vw,36px)/1.18 var(--sans);letter-spacing:-.035em;margin:0}
.service-toggle{display:block;width:100%;text-align:left;font:inherit;letter-spacing:inherit;padding:0;min-height:44px;color:var(--ink)}
.service-toggle em{font:italic 400 1.18em/1.15 var(--serif);letter-spacing:-.025em;color:var(--wine);white-space:nowrap}
.service-expand{margin-top:16px;animation:reveal-arrive .2s ease-out}
.service-expand[hidden],.pillar-tagline[hidden]{display:none}
.editorial-service .service-expand ul{list-style:none;margin:0;padding:0}
.editorial-service .service-expand li{font-size:14px;line-height:1.65;color:var(--ink);border-top:1px solid var(--line);padding:8px 0}
.editorial-service .service-expand li:before{content:none}
.service-quote-link{padding:10px 0 0;min-height:44px;display:inline-flex;align-items:center;gap:12px;font-size:14px;color:var(--wine);border:0;text-decoration:none}
html .editorial-service.reveal-open{box-shadow:none}
@keyframes reveal-arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
/* The five book-spine colors from the client board. */
.brand-pillars{padding:84px 0 100px;background:var(--paper);border-top:1px solid var(--line)}
.pillars-stack{width:min(850px,calc(100% - 48px));margin-inline:auto}
.pillars-stack>h2{font:600 11px/1.6 var(--sans);text-align:center;letter-spacing:.25em;text-transform:uppercase;color:var(--wine);margin:0 0 32px}
.pillar-list{display:grid;gap:8px}
.pillar--travel{background:#ff6b6b}.pillar--people{background:#ffb39c}.pillar--places{background:#ffd45a}.pillar--ideas{background:#7ec8ca}.pillar--experiences{background:#cdb4e6}
.pillar-toggle{display:grid;grid-template-columns:auto minmax(0,1fr) 36px;align-items:center;gap:24px;min-height:80px;width:100%;padding:20px 38px;text-align:left;color:#1c1b19;transition:min-height .2s,box-shadow .2s}
.pillar-name{grid-column:1;font:400 34px/1.2 var(--sans);letter-spacing:.25em;text-transform:uppercase}
.pillar-tagline{grid-column:2;justify-self:center;font:italic 400 28px/1.2 var(--serif);animation:reveal-arrive .2s ease-out}
.pillar-toggle>img{grid-column:3;grid-row:1;width:36px;height:auto}
.pillar.reveal-open .pillar-toggle{min-height:120px;box-shadow:0 18px 28px rgba(28,27,25,.09)}
.pillar-toggle:focus-visible{outline:2px solid #1c1b19;outline-offset:3px}
@media(max-width:1099px){.editorial-service .service-body{padding:20px 18px}.service-toggle em{display:block}.editorial-service .service-body .service-heading{font-size:28px}}
@media(max-width:760px){
 .confetti-intro{padding:76px 0 84px;min-height:470px}
 .intro-sun{width:72px;margin-bottom:30px}
 .confetti-intro h2{font-size:clamp(23px,6vw,34px);line-height:1.17}
 .confetti-intro h2 em{font-size:clamp(36px,10.8vw,58px);margin-top:8px}
 .confetti-pieces span:nth-child(1){left:7%;top:15%;width:12px;height:12px}
 .confetti-pieces span:nth-child(2){left:28%;top:8%;width:8px;height:8px}
 .confetti-pieces span:nth-child(3){right:7%;top:20%;width:10px;height:23px}
 .confetti-pieces span:nth-child(4){left:8%;bottom:17%;width:23px;height:10px}
 .confetti-pieces span:nth-child(5){right:27%;bottom:9%;width:22px;height:8px}
 .confetti-pieces span:nth-child(6){right:7%;bottom:22%;width:10px;height:10px}
 .editorial-service .service-image{aspect-ratio:4/4.3}
 .editorial-service .service-body{min-height:0;padding:24px 24px 18px}
 .editorial-service .service-body .service-heading{font-size:32px}
 .service-toggle em{display:inline}
 .service-expand li{font-size:15px}
 .brand-pillars{padding:62px 0 72px}
 .pillars-stack{width:calc(100% - 40px)}
 .pillars-stack>h2{font-size:10px;letter-spacing:.18em;margin-bottom:26px}
 .pillar-toggle{grid-template-columns:minmax(0,1fr) 30px;gap:12px;padding:20px;min-height:76px}
 .pillar-name{font-size:clamp(17px,4.8vw,26px);letter-spacing:.17em}
 .pillar-toggle>img{grid-column:2;width:30px}
 .pillar-tagline{grid-column:1/-1;grid-row:2;justify-self:start;font-size:25px}
 .pillar.reveal-open .pillar-toggle{min-height:114px}
}
@media(prefers-reduced-motion:reduce){.confetti-pieces span,.service-expand,.pillar-tagline{animation:none}.pillar-toggle{transition:none}}

/* One active story at a time: hover, focus or tap changes the arch-framed photo. */
.stay-story{padding:72px 0;background:var(--sand);color:var(--ink)}
.stay-story-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(48px,6vw,96px);align-items:center}
.stay-story-copy{min-width:0}
.stay-story-copy>h2{font:600 12px/1.6 var(--sans);text-transform:uppercase;letter-spacing:.24em;margin:0 0 34px;color:var(--ink)}
.stay-step{border-top:1px solid var(--line)}
.stay-step:last-child{border-bottom:1px solid var(--line)}
.stay-step h3{font:400 clamp(40px,4.2vw,62px)/1.1 var(--serif);letter-spacing:-.035em;margin:0}
.stay-story-toggle{font:inherit;letter-spacing:inherit;text-align:left;width:100%;min-height:100px;padding:24px 0;color:var(--muted);transition:color .18s}
.stay-step.is-active .stay-story-toggle{color:var(--wine)}
.stay-story-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.stay-story-detail{font:400 16px/1.75 var(--sans);color:var(--ink);margin:0;padding-bottom:26px;animation:reveal-arrive .22s ease-out}
.stay-story-detail[hidden]{display:none}
.stay-story-visual{position:relative;width:100%;max-width:550px;aspect-ratio:4/5;justify-self:end;margin:0;overflow:hidden;border-radius:50% 50% 6px 6px / 40% 40% 6px 6px;background:var(--sand);isolation:isolate}
.stay-story-photo{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;opacity:0;transition:opacity .3s ease;pointer-events:none}
.stay-story-photo.is-active{opacity:1;z-index:1}
.stay-story-photo[data-stay-photo="0"]{object-position:50% 50%}
.stay-story-photo[data-stay-photo="1"]{object-position:65% 50%}
.stay-story-photo[data-stay-photo="2"]{object-position:62% 50%}
@media(max-width:940px){.stay-story-grid{gap:40px}.stay-step h3{font-size:43px}.stay-story-toggle{min-height:86px;padding:20px 0}.stay-story-copy>h2{font-size:11px;letter-spacing:.18em}}
@media(max-width:760px){
 .stay-story{padding:44px 0}
 .stay-story-grid{display:flex;flex-direction:column;gap:28px}
 .stay-story-copy{width:100%;order:1}
 .stay-story-copy>h2{margin-bottom:22px;font-size:11px}
 .stay-story-visual{order:0;width:min(100%,340px);height:280px;aspect-ratio:auto;margin-inline:auto;border-radius:50% 50% 6px 6px / 48% 48% 6px 6px}
 .stay-step h3{font-size:36px}
 .stay-story-toggle{min-height:64px;padding:14px 0}
 .stay-story-detail{font-size:15px;line-height:1.65;padding-bottom:18px}
}
@media(prefers-reduced-motion:reduce){.stay-story-photo,.stay-story-toggle{transition:none}.stay-story-detail{animation:none}}

/* Bright, full-width celebration banner; no color cast on the photograph. */
.moment{display:grid;grid-template-columns:1fr;position:relative;isolation:isolate;min-height:580px;overflow:hidden;background:var(--sand)}
.moment .moment-image{position:absolute;inset:0;height:100%;width:100%;z-index:-2}
.moment .moment-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 56%;filter:none}
.moment:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(24,22,20,.44) 0%,rgba(24,22,20,.44) 52%,rgba(24,22,20,.07) 100%);pointer-events:none}
.moment .moment-copy{padding:94px 32px 114px;align-items:center;justify-content:center;text-align:center;color:#fffdfc}
.moment .moment-copy h2{width:100%;max-width:1280px;margin:0 0 42px;font-weight:400;letter-spacing:-.025em;line-height:1.06;color:#fffdfc;text-shadow:0 2px 18px rgba(24,22,20,.35)}
.moment .moment-copy h2 span{display:block;font:400 clamp(38px,5vw,88px)/1.1 var(--sans);letter-spacing:-.035em;text-transform:uppercase;text-wrap:balance}
.moment .moment-copy h2 em{display:block;margin-top:10px;font:italic 400 clamp(48px,5.7vw,96px)/1.05 var(--serif);letter-spacing:-.035em;color:inherit;text-wrap:balance}
.moment-cta{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:52px;padding:16px 26px;background:#fffdfc;border:1px solid #fffdfc;border-radius:0;color:#1c1b19;font:600 12px/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;transition:background-color .18s,border-color .18s}
.moment-cta:hover{background:var(--sand);border-color:var(--sand)}
.moment-cta:focus-visible{outline:2px solid #fffdfc;outline-offset:5px}
@media(max-width:760px){
 .moment{min-height:470px}
 .moment .moment-copy{padding:68px 24px 76px}
 .moment .moment-copy h2{margin-bottom:30px}
 .moment .moment-copy h2 span{font-size:clamp(32px,6.4vw,48px);line-height:1.15}
 .moment .moment-copy h2 em{font-size:clamp(40px,8vw,60px);line-height:1.07;margin-top:14px}
 .moment-cta{font-size:11px;letter-spacing:.14em;padding:15px 20px;gap:14px}
}
@media(prefers-reduced-motion:reduce){.moment-cta{transition:none}}

/* The shared six-color divider replaces the fine rules at these joins. */
.moment{border-bottom:0}
.confetti-intro+.hero-separator+.services,.moment+.hero-separator+.about{border-top:0}

.stay-story+.hero-separator+.moment{border-top:0}

/* Give the three Confetti ventures their own larger image-led cards. */
.world{border-bottom:0}
.world+.hero-separator+.journal{border-top:0}
.world .world-item{grid-template-columns:minmax(0,1fr);gap:0;padding:0;overflow:visible;border:0;background:transparent;box-shadow:none}
.world .world-item img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:8px 8px 0 0}
.world .world-item>div{padding:30px 26px 0}
.world .world-item h3{font:600 clamp(28px,2.5vw,38px)/1.2 var(--sans);letter-spacing:-.02em;margin:0 0 20px;color:var(--ink)}
.world .world-item p{margin:0 0 14px;color:var(--ink)}
@media(max-width:760px){.world-grid{gap:34px}.world .world-item>div{padding:24px 22px 0}.world .world-item h3{font-size:30px}}

/* Consistent rounded actions, with light text actions in the Confetti world. */
button{border-radius:999px}
.primary,.header .nav-cta,.btn-hero-rose,.moment-cta,.booking-filter button,.logo-comparison button,.close-dialog{border-radius:999px}
.newsletter-fields .primary,.newsletter-fields button{border-radius:5px}
.closing-email{border:none;border-bottom:none;text-decoration:none}
.world .world-item button{border:0;border-radius:999px;padding:6px;min-height:44px;margin-left:-6px;font-size:16px;color:var(--ink)}
.world .world-item button:hover{text-decoration:underline;text-underline-offset:5px}
