/* October client review: consistent alignment, galleries and calls to action. */
h1:focus,h2:focus { outline:0!important; box-shadow:none!important; }
:is(.dinner-page,.party-page,.theme-page,.country-page,.graduation-page,.graduation-11-page,.graduation-9-page) .hero.dark .hero-content,
:is(.dinner-page,.party-page,.theme-page,.country-page,.graduation-page,.graduation-11-page,.graduation-9-page) .hero.dark h1,
:is(.dinner-page,.party-page,.theme-page,.country-page,.graduation-page,.graduation-11-page,.graduation-9-page) .hero.dark h2 { text-align:left; }
:is(.dinner-page,.party-page,.theme-page,.country-page,.graduation-page,.graduation-11-page,.graduation-9-page) .hero.dark .hero-content { margin-inline:0; }
:is(.dinner-page,.party-page,.theme-page,.country-page,.graduation-page,.graduation-11-page,.graduation-9-page) main h1:focus,
:is(.dinner-page,.party-page,.theme-page,.country-page,.graduation-page,.graduation-11-page,.graduation-9-page) main h2:focus,
.editorial-page main h1:focus,.editorial-page main h2:focus { outline:0; }

/* Keep prominent photos crisp, proportional and anchored to their copy. */
.dinner-page .split-photo { object-position:center 38%; }
.country-page .split:not(.reverse) { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.country-page .split:not(.reverse) .split-photo { grid-column:2; grid-row:1; width:100%; height:clamp(360px,42vw,600px); object-fit:cover; }
.country-page .split:not(.reverse) .split-copy { grid-column:1; grid-row:1; }
.theme-page .theme-intro .split-photo { min-height:360px; height:clamp(360px,42vw,600px); object-fit:cover; }
.graduation-11-page .graduation-11-intro .split-photo,
.graduation-9-page .graduation-9-intro .split-photo { grid-column:2; grid-row:1; }
.graduation-11-page .graduation-11-intro .split-copy,
.graduation-9-page .graduation-9-intro .split-copy { grid-column:1; grid-row:1; }

/* Gallery JS turns these into a swipeable, compact photo ribbon. */
:is(.dinner-page,.party-page,.theme-page,.country-page,.graduation-page,.graduation-11-page,.graduation-9-page) :is(.dinner-gallery-grid,.party-gallery-grid,.country-gallery-grid,.graduation-11-gallery-grid,.graduation-9-gallery-grid,.theme-gallery-grid) { max-width:100%; }
.editorial-page .w-service-gallery .w-gallery img { aspect-ratio:3/2; height:auto; }
.editorial-page .w-service-gallery .w-gallery[data-premium-gallery] { padding-bottom:8px; }
.editorial-page .w-values-layout>img { height:420px; filter:none; mask-image:none; object-position:center; }
.editorial-page .w-services .format h3 { font:500 clamp(20px,2vw,28px)/1.12 'Manrope',sans-serif; letter-spacing:.015em; }
.editorial-page .w-services .format h3 span { font:400 11px/1.6 'Manrope',sans-serif; letter-spacing:.02em; }
html:not([data-page="home"]) .premium-gallery-section [data-premium-gallery].premium-gallery-slider>figure { flex:0 0 min(28vw,390px)!important; width:min(28vw,390px)!important; }
.graduation-page .graduation-story video { display:block; width:100%; max-height:none; height:clamp(300px,52vw,720px); aspect-ratio:16/9; object-fit:cover; }
.editorial-page .w-signature { font-style:normal!important; }
.event-process .steps.carousel-track>.step { grid-template-rows:auto auto auto; align-content:center; }
.event-process .steps .step .number { grid-column:2; grid-row:1; align-self:end; margin:0 30px 14px 0; }
.event-process .steps .step h3 { grid-column:2; grid-row:2; align-self:start; margin:0 30px 15px 0; }
.event-process .steps .step p { grid-column:2; grid-row:3; align-self:start; }
.theme-page .theme-formats-grid .theme-format-card { overflow:hidden; }
.theme-page .theme-formats-grid .theme-format-card>img { display:block; width:100%; height:230px; object-fit:cover; }
.has-event-reveal :is(.theme-page,.editorial-page,.dinner-page,.party-page,.country-page,.graduation-page,.graduation-11-page,.graduation-9-page) :is(.theme-format-card,.theme-benefits-grid>*,.w-included .w-benefits article,.w-stories .w-gallery figure,.dinner-gallery-grid>*,.party-gallery-grid>*,.country-gallery-grid>*,.graduation-11-gallery-grid>*,.graduation-9-gallery-grid>*) { opacity:0; transform:translateY(18px); transition:opacity .65s ease,transform .65s cubic-bezier(.2,.7,.2,1); }
.has-event-reveal :is(.theme-page,.editorial-page,.dinner-page,.party-page,.country-page,.graduation-page,.graduation-11-page,.graduation-9-page) :is(.theme-format-card,.theme-benefits-grid>*,.w-included .w-benefits article,.w-stories .w-gallery figure,.dinner-gallery-grid>*,.party-gallery-grid>*,.country-gallery-grid>*,.graduation-11-gallery-grid>*,.graduation-9-gallery-grid>*).is-visible { opacity:1; transform:none; }

/* The homepage's feature cards reveal as they enter the viewport. Apply the
   same staggered reveal to every inner-page feature strip, including touch. */
html.has-event-reveal[data-page="home"] main > .features > div,
html.has-event-reveal body:is(.event-page,.dinner-page,.party-page,.theme-page,.country-page,.graduation-page,.graduation-11-page,.graduation-9-page) main > .features > div {
  --feature-reveal-delay: 0ms;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .65s ease var(--feature-reveal-delay), transform .7s cubic-bezier(.2,.7,.2,1) var(--feature-reveal-delay);
}
html.has-event-reveal[data-page="home"] main > .features > div:nth-child(2),
html.has-event-reveal body:is(.event-page,.dinner-page,.party-page,.theme-page,.country-page,.graduation-page,.graduation-11-page,.graduation-9-page) main > .features > div:nth-child(2) { --feature-reveal-delay: 90ms; }
html.has-event-reveal[data-page="home"] main > .features > div:nth-child(3),
html.has-event-reveal body:is(.event-page,.dinner-page,.party-page,.theme-page,.country-page,.graduation-page,.graduation-11-page,.graduation-9-page) main > .features > div:nth-child(3) { --feature-reveal-delay: 180ms; }
html.has-event-reveal[data-page="home"] main > .features > div:nth-child(4),
html.has-event-reveal body:is(.event-page,.dinner-page,.party-page,.theme-page,.country-page,.graduation-page,.graduation-11-page,.graduation-9-page) main > .features > div:nth-child(4) { --feature-reveal-delay: 270ms; }
html.has-event-reveal[data-page="home"] main > .features > div.is-visible,
html.has-event-reveal body:is(.event-page,.dinner-page,.party-page,.theme-page,.country-page,.graduation-page,.graduation-11-page,.graduation-9-page) main > .features > div.is-visible { opacity: 1; transform: none; }

/* Consistent, readable CTA rhythm instead of competing adjacent buttons. */
:is(.dinner-page,.party-page,.theme-page,.country-page,.graduation-page,.graduation-11-page,.graduation-9-page) .split-copy :is(.button,.w-actions),
.editorial-page .w-actions { display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
.editorial-page .w-actions>* { margin:0!important; }
:is(.dinner-page,.party-page,.theme-page,.country-page,.graduation-page,.graduation-11-page,.graduation-9-page) .hero-content .button { margin-top:24px; }
.editorial-page .w-contact .w-container { align-items:flex-start; flex-direction:column; gap:12px; }
.editorial-page .w-contact .button { margin:0; }

/* Film stills for service pages that should lead with a photograph. */
html[data-page="wedding-partial"] .w-service-hero .w-hero-media,
html[data-page="wedding-consultation"] .w-service-hero .w-hero-media,
html[data-page="wedding-coordination"] .w-service-hero .w-hero-media { background-position:center; background-size:cover; }
html[data-page="wedding-partial"] .w-service-hero .w-hero-media { background-image:url('../assets/events/wedding-main-3273-poster.webp'); }
html[data-page="wedding-consultation"] .w-service-hero .w-hero-media { background-image:url('../assets/events/wedding-main-3273-poster.webp'); }
html[data-page="wedding-coordination"] .w-service-hero .w-hero-media { background-image:url('../assets/events/wedding-main-3273-poster.webp'); }
html[data-page="wedding-partial"] .w-service-hero .w-hero-media video,
html[data-page="wedding-consultation"] .w-service-hero .w-hero-media video,
html[data-page="wedding-coordination"] .w-service-hero .w-hero-media video { opacity:0; }

/* Tone down solid wine slabs while preserving the brand palette. */
.editorial-page .w-wine:not(.w-about) { background-image:linear-gradient(112deg,#681024 0%,#7d2639 52%,#4b1022 100%); }
.editorial-page .w-support.w-wine { background:linear-gradient(112deg,#681024 0%,#7d2639 52%,#4b1022 100%); }
.editorial-page .w-detail-banner.w-wine:after { background:linear-gradient(90deg,#551025d9,#68102470 54%,#55102532); }
.graduation-page .graduation-story,
.graduation-11-page .graduation-11-banner,
.graduation-9-page .graduation-9-banner { background-color:#681024; }

/* Wedding included cards remain easy to swipe on touch screens. */
@media(max-width:760px){
 .country-page .split:not(.reverse) { display:flex; flex-direction:column-reverse; }
 .country-page .split:not(.reverse) .split-photo { height:auto; min-height:0; aspect-ratio:4/3; }
 .graduation-11-page .graduation-11-intro,
 .graduation-9-page .graduation-9-intro { display:flex; flex-direction:column-reverse; }
 .editorial-page .w-included .w-benefits { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; padding:4px 6vw 18px; margin-inline:-6vw; scrollbar-width:none; }
 .editorial-page .w-included .w-benefits::-webkit-scrollbar { display:none; }
 .editorial-page .w-included .w-benefits article { flex:0 0 min(78vw,320px); min-height:230px; scroll-snap-align:start; border:1px solid #d4bfc0!important; background:#f8f3ed; }
 .editorial-page .w-included .w-benefits h3 { margin:0; }
 .editorial-page .w-contact .w-container { display:flex; }
 .editorial-page .w-contact .button { width:100%; }
 .editorial-page .w-values-layout>img { height:280px; }
 html:not([data-page="home"]) .premium-gallery-section [data-premium-gallery].premium-gallery-slider>figure { flex-basis:78vw!important; width:78vw!important; }
 html:not([data-page="home"]) .premium-gallery-section [data-premium-gallery].premium-gallery-slider { gap:12px; }
 .event-process .steps.carousel-track>.step { display:flex; flex-direction:column; align-content:initial; }
 .event-process .steps .step .number { margin:24px 24px 8px; }
 .event-process .steps .step h3 { margin:0 24px 14px; }
 .event-process .steps .step p { margin:0 24px 28px; }
 .theme-page .theme-formats-grid .theme-format-card>img { height:200px; }
}
@media(prefers-reduced-motion:no-preference){
 .editorial-page .w-included .w-benefits article { transition:transform .35s ease,box-shadow .35s ease; }
 .editorial-page .w-included .w-benefits article:hover { transform:translateY(-4px); box-shadow:0 16px 35px #55102512; }
}
@media(prefers-reduced-motion:reduce){
 .has-event-reveal :is(.theme-format-card,.theme-benefits-grid>*,.w-included .w-benefits article,.w-stories .w-gallery figure,.dinner-gallery-grid>*,.party-gallery-grid>*,.country-gallery-grid>*,.graduation-11-gallery-grid>*,.graduation-9-gallery-grid>*) { opacity:1!important; transform:none!important; transition:none!important; }
 html.has-event-reveal[data-page="home"] main > .features > div,
 html.has-event-reveal body:is(.event-page,.dinner-page,.party-page,.theme-page,.country-page,.graduation-page,.graduation-11-page,.graduation-9-page) main > .features > div { opacity:1!important; transform:none!important; transition:none!important; }
}
