/* Presentation-only refinements. No page copy is changed here. */
:root {
  --motion-ease: cubic-bezier(.22,1,.36,1);
  --bg:#3B010B;
  --surface:#560B18;
  --surface-2:#75162D;
  --gold:#F2D9A0;
  --gold-soft:#F2E5C6;
  --gold-dark:#C7A86B;
  --gold-dim:rgba(242,217,160,.17);
  --gold-border:rgba(242,229,198,.26);
  --text:#F2E5C6;
  --muted:#D3BEB4;
  --muted-2:#A98683;
  --maroon:#75162D;
  --maroon-deep:#560B18;
  --maroon-darker:#3B010B;
  --brand-gold:#F2D9A0;
  --brand-maroon:#75162D;
  --brand-saffron:#D79278;
  --brand-plum:#75162D;
  --brand-olive:#B28C72;
  --brand-navy:#560B18;
  --brand-wine:#75162D;
  --brand-brick:#560B18;
  --brand-cream:#F2E5C6;
  --font-serif:"Fraunces",Georgia,serif;
  --font-sans:"Manrope",system-ui,sans-serif;
}
html { overflow-x: clip; }
body { overflow-x: clip; }
.hero__bg,.hero--video .hero__bg,.page-hero--about { background-image:url('../img/hero-bg.jpg?v=stock-2'); }
.page-hero--venues { background-image:url('../img/gallery-02.jpg?v=stock-2'); }
.page-hero--catering { background-image:url('../img/gallery-01.jpg?v=stock-2'); }
.page-hero--saffroni,.saffroni-callout__bg { background-image:url('../img/spread-02.jpg?v=stock-2'); }
.cta-banner__bg { background-image:url('../img/gallery-05.jpg?v=stock-2'); }
.cta-banner__bg--saffroni { background-image:url('../img/spread-04.jpg?v=stock-2'); }

/* Reliable loader: visible on arrival, animated, and removed by JS after load. */
.preloader { opacity: 1; visibility: visible; transform: translateY(0); }
.preloader.is-hidden { opacity: 0; visibility: hidden; transform: translateY(-100%); pointer-events: none; }
.preloader__logo { animation: loader-breathe 1.45s ease-in-out infinite; }
.preloader__fill { animation: loader-progress 1.8s var(--motion-ease) infinite; transform-origin: left; }
@keyframes loader-breathe { 50% { transform: translateY(-7px) scale(1.025); filter: drop-shadow(0 10px 24px rgba(200,169,98,.3)); } }
@keyframes loader-progress { 0% { transform: scaleX(0); } 70%,100% { transform: scaleX(1); } }

/* A visible page-arrival sequence that works without GSAP. */
.site-header { animation: nav-arrive .85s var(--motion-ease) .25s both; }
.site-header { transition:transform .45s var(--motion-ease),opacity .3s ease; }
.site-header.nav-hidden { transform:translateY(-125%); opacity:0; }
.hero__bg,.page-hero { animation: hero-breathe 10s ease-out both; }
.hero__content,.page-hero__content { animation: hero-copy-arrive 1.05s var(--motion-ease) .45s both; }
@keyframes nav-arrive { from { opacity:0; transform:translateY(-28px); } }
@keyframes hero-breathe { from { background-size:112% auto; } to { background-size:cover; } }
@keyframes hero-copy-arrive { from { opacity:0; transform:translateY(38px); filter:blur(7px); } to { opacity:1; transform:none; filter:none; } }

/* Scroll progress and interactive navigation. */
.scroll-progress { position:fixed; inset:0 auto auto 0; width:100%; height:2px; z-index:10001; transform:scaleX(var(--scroll,0)); transform-origin:left; background:linear-gradient(90deg,var(--gold),var(--gold-soft)); pointer-events:none; }
.nav-link { position:relative; }
.nav-link::after { content:""; position:absolute; left:0; right:0; bottom:-.35rem; height:1px; background:var(--gold-soft); transform:scaleX(0); transform-origin:right; transition:transform .45s var(--motion-ease); }
.nav-link:hover::after,.nav-link:focus-visible::after,.nav-link.is-active::after { transform:scaleX(1); transform-origin:left; }
.site-nav { background:rgba(59,1,11,.84); border-color:rgba(242,217,160,.3); box-shadow:0 8px 34px rgba(29,0,6,.32); }
.site-nav.is-scrolled { background:rgba(59,1,11,.95); }
.nav-overlay { background:#3B010B; }
.footer { background:linear-gradient(180deg,#75162D 0%,#560B18 100%); }
.btn--primary { background:#F2D9A0; color:#3B010B; }
.btn--primary:hover { background:#F2E5C6; }
.preloader { background:radial-gradient(circle at 50% 45%,#7d4b58 0%,#75162D 30%,#560B18 68%,#3B010B 100%); }
.footer-youtube { margin-top:.65rem; font-size:.72rem; letter-spacing:.06em; }

/* More legible, collision-safe display typography. */
.section-title,.page-hero__headline,.catering-hero__headline,.saffroni-hero__headline,.philosophy-headline,.saffroni-callout__headline,.cta-banner__headline {
  max-width:100%; overflow-wrap:normal; word-break:normal; text-wrap:balance; line-height:1.02; padding-bottom:.08em;
}
.section-title { font-size:clamp(2.65rem,5.2vw,5.4rem); }
.page-hero__headline { font-size:clamp(3.5rem,7.8vw,7.7rem); }
.page-hero--venues .page-hero__headline { font-size:clamp(3.3rem,7.2vw,7rem); }
.catering-hero__headline,.saffroni-hero__headline { font-size:clamp(3.5rem,8vw,7.8rem); }
.cta-banner__headline { font-size:clamp(2.55rem,5.8vw,5.6rem); }
.philosophy-headline,.saffroni-callout__headline { font-size:clamp(2.7rem,5.4vw,5.2rem); }

/* Motion system: noticeable but refined. */
.reveal { opacity:0; transform:translateY(34px) scale(.985); filter:blur(5px); transition:opacity .9s var(--motion-ease),transform .9s var(--motion-ease),filter .8s ease; transition-delay:var(--reveal-delay,0s); }
.reveal.is-visible,.reveal.motion-visible { opacity:1; transform:none; filter:none; }
.motion-image { clip-path:inset(0); transform:scale(1); opacity:1; transition:transform 1.1s var(--motion-ease),filter .8s ease; }
.motion-image.motion-visible { transform:scale(1); }
.vertical,.cater-card,.feature-card,.venue-card,.team-member,.belongs-tile,.gallery-item { transition:transform .5s var(--motion-ease),box-shadow .5s ease,border-color .35s ease; }
.vertical:hover,.cater-card:hover,.feature-card:hover,.venue-card:hover,.team-member:hover,.belongs-tile:hover,.gallery-item:hover { transform:translateY(-8px); box-shadow:0 22px 55px rgba(18,13,9,.14); }
.btn { transition:transform .25s var(--motion-ease),background-color .3s,color .3s,border-color .3s; }
.section-label::before { transition:width .8s var(--motion-ease); }
.section-label.motion-visible::before { width:3.5rem; }
.vertical__num,.venue-card__index,.cater-card__num { transition:transform .5s var(--motion-ease),color .3s ease; }
.vertical:hover .vertical__num,.venue-card:hover .venue-card__index,.cater-card:hover .cater-card__num { transform:translateX(7px); color:var(--gold-soft); }

/* Grid containment prevents large headings and prose from occupying each other. */
.about-grid,.legacy-grid,.difference-grid,.philosophy-grid,.section-header--luxury,.venue-story__grid,.rooms-grid { align-items:start; }
.about-grid>*,.legacy-grid>*,.difference-grid>*,.philosophy-grid>*,.section-header--luxury>*,.venue-story__grid>*,.rooms-grid>* { min-width:0; }
.section-header--luxury { column-gap:clamp(2rem,6vw,7rem); }
.convention-block__head { gap:clamp(1.5rem,4vw,4rem); }

@media (max-width:1100px) {
  .section-header--luxury { grid-template-columns:1fr; }
  .section-header__ornament { justify-self:start; margin-top:1rem; }
  .convention-block__head { grid-template-columns:1fr; }
}
@media (max-width:859px) {
  .about-grid,.legacy-grid,.difference-grid,.philosophy-grid,.venue-story__grid,.rooms-grid { grid-template-columns:1fr; row-gap:2.5rem; }
  .page-hero__content,.page-hero__content--center { padding-inline:clamp(1rem,5vw,2rem); }
}
@media (max-width:560px) {
  .section-title { font-size:clamp(2.35rem,12vw,3.65rem); }
  .page-hero__headline,.page-hero--venues .page-hero__headline,.catering-hero__headline,.saffroni-hero__headline { font-size:clamp(3rem,15vw,4.5rem); line-height:.98; }
  .section-title br,.page-hero__headline br,.catering-hero__headline br,.saffroni-hero__headline br { display:none; }
  .cta-banner__headline,.philosophy-headline,.saffroni-callout__headline { font-size:clamp(2.35rem,12vw,3.6rem); }
}
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.01ms!important; }
  .reveal,.motion-image { opacity:1; transform:none; filter:none; clip-path:none; }
}
