/* =========================================================
   LHAG VISUAL STANDARD
   Loaded last to keep typography, backgrounds and reveal motion consistent.
========================================================= */

:root{
  --cream:#f4f1e9;
  --cream-soft:#f7f4ed;
  --cream-alt:#edeae5;
  --panel:#f2ede3;
  --red:#8b0304;
  --red-deep:#741217;
  --ink:#2b2723;
  --card:#2f2a26;
  --body:#4e4e4e;
  --muted:#68625c;
  --line:rgba(43,39,35,.13);
  --line-red:rgba(139,3,4,.22);
  --hero-wash:linear-gradient(to bottom,rgba(12,10,9,.20) 0%,rgba(12,10,9,.34) 46%,rgba(12,10,9,.60) 100%);
  --font-title:"Americana", Georgia, "Times New Roman", serif;
  --font-body:"Montserrat", Arial, sans-serif;
  --font-ui:var(--font-body);
  --ease:cubic-bezier(.22,.72,.22,1);
}

html{
  background:var(--cream);
}

body{
  background:var(--cream);
  color:var(--body);
  font-family:var(--font-body);
  font-size:14px;
  line-height:1.78;
  font-weight:400;
  letter-spacing:.004em;
}

main{
  background:var(--cream);
}

h1,
h2,
h3,
h4,
h5,
h6{
  color:var(--ink);
  font-family:var(--font-title);
  font-weight:400;
  letter-spacing:.003em;
  text-transform:none;
}

p,
li{
  color:inherit;
}

a,
button,
input,
textarea,
select{
  font-family:var(--font-ui);
}

a{
  transition:color .28s ease, opacity .28s ease;
}

a:hover,
a:focus-visible{
  color:var(--red);
}

::selection{
  background:rgba(139,3,4,.16);
  color:var(--ink);
}

.welcome,
.brand,
.career-philosophy,
.career-jobs,
.story-origin,
.story-faifo,
.offers-detail-page,
.offers-list,
.terms-page,
.policy-page,
.contact-page,
.contact-section--refined,
.contact-property-section,
.footer-lhag__newsletter{
  background:var(--cream);
}

.story-quote,
.offer-card,
.terms-note,
.policy-note,
.contact-map-section,
.contact-map-section--flush{
  background:var(--cream-alt);
}

.offer-detail:nth-child(even),
.offers-anchor-nav,
.offers-detail-nav-wrap{
  background:rgba(237,234,229,.96);
}

.site-header.is-scrolled,
.menu-top,
.menu-overlay{
  background:rgba(244,241,233,.96);
}

.site-header.is-scrolled{
  border-bottom-color:var(--line-red);
}

.hero,
.story-hero,
.offers-hero,
.career-hero,
.contact-hero,
.terms-hero,
.policy-hero{
  background:#0f0b09;
  color:#fff8ee;
}

.story-hero::after,
.offers-hero::after,
.contact-hero .career-hero-overlay,
.career-hero-overlay,
.terms-hero-overlay,
.policy-hero-overlay{
  background:var(--hero-wash);
}

.hero-caption,
.story-hero h1,
.offers-hero h1,
.career-hero h1,
.contact-hero .career-hero-content h1,
.terms-hero h1,
.policy-hero h1{
  color:#fff8ee;
  font-family:var(--font-title);
  font-size:clamp(30px,3vw,36px);
  line-height:1.08;
  font-weight:400;
  letter-spacing:.003em;
  text-shadow:0 6px 34px rgba(0,0,0,.34);
}

.welcome h1,
.section-head h2,
.split h2,
.story-origin-copy h2,
.story-quote p,
.offers-detail-head h2,
.offer-card-copy h2,
.career-section-head h2,
.contact-info h2,
.property-heading,
.terms-intro h2,
.policy-intro h2{
  color:var(--ink);
  font-size:30px;
  line-height:1.14;
  font-weight:400;
  letter-spacing:.003em;
}

.welcome p,
.section-head p,
.story-origin-copy p,
.story-faifo-text p,
.offers-detail-head p,
.offer-intro,
.offer-note,
.career-philosophy p,
.career-empty-state p,
.contact-item p,
.property-info-row,
.terms-intro p,
.terms-block p,
.terms-block li,
.policy-intro p,
.policy-block p,
.policy-block li{
  color:var(--body);
  font-size:14px;
  line-height:1.8;
  font-weight:400;
  letter-spacing:.005em;
}

.eyebrow,
.offers-eyebrow,
.career-section-head span,
.terms-intro span,
.policy-intro span,
.offer-price,
.offer-info-table span,
.terms-number,
.policy-number,
.contact-form span{
  color:var(--red);
  font-family:var(--font-ui);
  font-size:10px;
  line-height:1.2;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.text-link,
.discover,
.offer-book-btn,
.offer-detail-btn,
.offer-share-btn,
.terms-side a,
.policy-side a{
  color:var(--ink);
  font-weight:600;
  letter-spacing:.08em;
}

.text-link::after,
.discover::after,
.offer-book-btn::after,
.terms-side a::after,
.policy-side a::after{
  background:var(--red);
}

.room-btn,
.footer-lhag__newsletter button,
.offer-submit-btn{
  background:var(--red);
  border-color:var(--red);
  color:#fff8ee;
}

.room-btn::before{
  background:var(--red);
}

.contact-form button{
  border-color:var(--red);
  color:var(--red);
}

.contact-form button::before{
  background:var(--red);
}

.footer-lhag{
  background:var(--red-deep);
  color:#fff8ee;
  font-family:var(--font-body);
}

.footer-lhag__newsletter{
  color:var(--ink);
}

.footer-lhag__newsletter h3,
.footer-lhag__col h4{
  font-family:var(--font-title);
}

.fadein-up{
  opacity:0;
  transform:translate3d(0,24px,0);
  filter:blur(1.5px);
  animation:none;
  animation-play-state:running;
  transition:
    opacity .95s var(--ease),
    transform .95s var(--ease),
    filter .95s var(--ease);
  will-change:opacity,transform,filter;
}

.fadein-up.is-visible{
  opacity:1;
  transform:translate3d(0,0,0);
  filter:blur(0);
}

.fadein-up:nth-child(2){
  transition-delay:.05s;
}

.fadein-up:nth-child(3){
  transition-delay:.10s;
}

.fadein-up:nth-child(4){
  transition-delay:.15s;
}

@media(max-width:560px){
  body{
    font-size:14px;
    line-height:1.76;
  }

  .hero-caption,
  .story-hero h1,
  .offers-hero h1,
  .career-hero h1,
  .contact-hero .career-hero-content h1,
  .terms-hero h1,
  .policy-hero h1,
  .welcome h1,
  .section-head h2,
  .story-origin-copy h2,
  .offers-detail-head h2,
  .offer-card-copy h2,
  .career-section-head h2,
  .contact-info h2,
  .property-heading,
  .terms-intro h2,
  .policy-intro h2{
    font-size:30px;
    line-height:1.12;
  }

  .fadein-up{
    transform:translate3d(0,18px,0);
    filter:none;
    transition-duration:.78s;
  }
}

@media(prefers-reduced-motion:reduce){
  html{
    scroll-behavior:auto;
  }

  *,
  *::before,
  *::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    scroll-behavior:auto !important;
    transition-duration:.001ms !important;
  }

  .fadein-up{
    opacity:1;
    transform:none;
    filter:none;
  }
}
