
:root{--cream:#FAF7F2;--cream2:#F2EDE4;--forest:#3B4A2F;--forestDark:#26311F;--brown:#7A5C3A;--brownDark:#63492F;--gold:#B8915F;--ink:#1D211A;--muted:#666B61;--white:#fff;--border:rgba(59,74,47,.16);--shadow:0 22px 60px rgba(38,49,31,.12);--heading:"Libre Baskerville",Georgia,serif;--body:"Inter",Arial,sans-serif;--max:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--body);line-height:1.65;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{text-decoration:none;color:inherit}.page-wrapper{overflow:hidden}.container{width:min(var(--max),calc(100% - 48px));margin:auto}.section{padding:112px 0}.section-muted{background:var(--cream2)}.section-dark{background:var(--forestDark);color:var(--cream)}.eyebrow{text-transform:uppercase;letter-spacing:.22em;color:var(--brown);font-size:.78rem;font-weight:800}.h1,.h2,.h3{font-family:var(--heading);font-weight:400;line-height:1.08;letter-spacing:-.045em;color:var(--forest);margin:0}.h1{font-size:clamp(3.5rem,7vw,7rem);max-width:780px}.h2{font-size:clamp(2.5rem,5vw,5rem)}.h3{font-size:clamp(1.55rem,2.7vw,2.25rem)}.section-dark .h2,.section-dark .h3{color:var(--cream)}.lead{font-size:clamp(1.02rem,1.35vw,1.23rem);color:var(--muted);max-width:760px;margin:22px auto 0}.section-dark p,.section-dark .lead{color:rgba(250,247,242,.82)}.btn-row{display:flex;gap:16px;flex-wrap:wrap;align-items:center}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:0 28px;border:1px solid transparent;font-weight:800;font-size:.92rem;transition:.24s ease;cursor:pointer}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--brown);border-color:var(--brown);color:#fff}.button-primary:hover{background:var(--brownDark)}.button-secondary{border-color:rgba(250,247,242,.74);color:var(--cream);background:rgba(250,247,242,.04)}.button-light{background:var(--cream);color:var(--forestDark);border-color:var(--cream)}.button-outline{border-color:var(--border);color:var(--forest);background:transparent}
.site-header{position:sticky;top:0;z-index:50;background:rgba(250,247,242,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(59,74,47,.08)}.nav{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:34px}.logo{width:132px}.nav-menu{display:flex;align-items:center;gap:34px;font-size:.96rem}.nav-menu a:hover{color:var(--brown)}.nav-cta{text-transform:uppercase;letter-spacing:.15em;min-height:54px}.mobile-toggle{display:none;width:42px;height:42px;border:1px solid var(--border);background:transparent;position:relative}.mobile-toggle span,.mobile-toggle span:before,.mobile-toggle span:after{content:"";display:block;position:absolute;left:11px;width:18px;height:2px;background:var(--forest)}.mobile-toggle span{top:20px}.mobile-toggle span:before{top:-7px;left:0}.mobile-toggle span:after{top:7px;left:0}
.hero{min-height:calc(100vh - 96px);display:flex;align-items:center;background-image:linear-gradient(90deg,rgba(38,49,31,.90),rgba(59,74,47,.68) 38%,rgba(38,49,31,.28) 72%,rgba(38,49,31,.42)),url("assets/hero-hotel.webp");background-size:cover;background-position:center}.hero-content{width:min(var(--max),calc(100% - 48px));margin:auto;color:var(--cream);padding:98px 0 112px}.hero .eyebrow{color:var(--gold);margin-bottom:38px}.hero .h1{color:var(--cream)}.hero-line{width:70px;height:1px;background:var(--gold);margin:30px 0}.hero p{max-width:560px;color:rgba(250,247,242,.92);font-size:1.08rem;margin:0 0 42px}
.section-header{text-align:center;max-width:980px;margin:0 auto 58px}.section-header.left{text-align:left;margin-left:0}.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}.step-card,.pathway-card,.about-card,.form-card{background:rgba(255,255,255,.56);border:1px solid var(--border);box-shadow:var(--shadow)}.step-card{padding:52px 44px;min-height:390px}.step-number{font-family:var(--heading);font-size:4.2rem;line-height:1;color:rgba(59,74,47,.93);letter-spacing:-.05em}.card-rule{width:88px;height:1px;background:var(--brown);margin:26px 0 24px}.step-card p,.strategy-card p,.pathway-card p,.about-card p,.process-item p{color:#333832;margin:14px 0 0}
.strategy-wrap{display:grid;grid-template-columns:.86fr 1.4fr;gap:64px;align-items:start}.strategy-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--border);border-left:1px solid var(--border)}.strategy-card{padding:42px 38px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:rgba(255,255,255,.32);min-height:320px}.arrow-label,.text-link{color:var(--brown);font-weight:800}.arrow-label{display:inline-block;margin-bottom:18px}.text-link{display:inline-flex;margin-top:22px}
.invest-layout{display:grid;grid-template-columns:1fr .82fr;gap:70px;align-items:center}.invest-copy p{font-size:1.05rem;margin:22px 0 0}.value-list{display:grid;gap:20px}.value-item{padding:28px;background:rgba(250,247,242,.06);border:1px solid rgba(250,247,242,.16)}.value-item h3{margin:0;color:var(--cream)}
.stats-bar{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);background:white;box-shadow:var(--shadow);margin-bottom:18px}.stat{text-align:center;padding:32px 24px;border-right:1px solid var(--border)}.stat:last-child{border-right:0}.stat strong{font-family:var(--heading);font-size:clamp(2rem,4vw,3.2rem);font-weight:400;color:var(--forest);display:block;line-height:1}.stat span{margin-top:12px;display:block;color:var(--muted);font-weight:800;font-size:.88rem}.note{font-size:.84rem;color:var(--muted)}.pathways-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:34px;margin-top:32px}.pathway-card{padding:46px}.pathway-card ul{padding-left:20px;margin:24px 0}.pathway-card li{margin-bottom:10px;color:#343833}
.process-timeline{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid rgba(250,247,242,.16)}.process-item{padding:36px 26px;border-right:1px solid rgba(250,247,242,.16);background:rgba(250,247,242,.04)}.process-item:last-child{border-right:0}.process-item .step-number{font-size:3rem;color:var(--gold)}.process-item h3{color:var(--cream);font-size:1.3rem;margin:22px 0 0}.process-item p{color:rgba(250,247,242,.78)}
.form-layout,.about-layout,.contact-layout{display:grid;grid-template-columns:.82fr 1.1fr;gap:64px;align-items:start}.bullet-list{list-style:none;margin:32px 0 0;padding:0}.bullet-list li{position:relative;border-bottom:1px solid var(--border);padding:12px 0 12px 34px}.bullet-list li:before{content:"•";position:absolute;left:10px;color:var(--brown);font-size:1.6rem;line-height:1}.form-card{padding:42px;background:white}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.field{display:grid;gap:8px}.field.full{grid-column:1/-1}label{color:var(--forest);font-weight:800;font-size:.86rem}input,select,textarea{width:100%;border:1px solid rgba(59,74,47,.22);background:#fffdf9;min-height:52px;padding:14px 15px;font:inherit;color:var(--ink);outline:0}textarea{min-height:136px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--brown);box-shadow:0 0 0 3px rgba(122,92,58,.12)}.form-card .button{width:100%;margin-top:20px}
.faq-wrap{max-width:920px;margin:auto}.faq-item{border-top:1px solid var(--border);background:rgba(255,255,255,.32)}.faq-item:last-child{border-bottom:1px solid var(--border)}.faq-question{width:100%;border:0;background:transparent;padding:28px 8px;text-align:left;font-family:var(--heading);color:var(--forest);font-size:1.35rem;display:flex;justify-content:space-between;cursor:pointer}.faq-question:after{content:"+";font-family:var(--body);color:var(--brown);font-size:1.8rem}.faq-item.active .faq-question:after{content:"−"}.faq-answer{display:none;padding:0 8px 30px;color:#333732}.faq-item.active .faq-answer{display:block}
.about-layout{grid-template-columns:.9fr 1.1fr}.about-copy p{margin:20px 0 0;color:#333732}.about-cards{display:grid;gap:20px;margin-top:36px}.about-card{padding:34px;background:white}.contact-layout{grid-template-columns:.82fr 1fr}.contact-details{display:grid;gap:16px;margin-top:34px}.contact-detail{border-bottom:1px solid rgba(250,247,242,.16);padding-bottom:14px;color:rgba(250,247,242,.84)}.contact-detail strong{display:block;color:var(--gold);font-size:.85rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:4px}
.footer{background:#1f281a;color:rgba(250,247,242,.78);padding:54px 0 34px}.footer-top{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:start;padding-bottom:36px;border-bottom:1px solid rgba(250,247,242,.14)}.footer-logo{width:150px;filter:brightness(1.25);margin-bottom:18px}.footer-nav{display:flex;gap:22px;flex-wrap:wrap;justify-content:flex-end;color:var(--cream)}.footer-disclaimer{font-size:.78rem;line-height:1.7;margin-top:28px}.footer-bottom{display:flex;justify-content:space-between;gap:24px;margin-top:28px;font-size:.82rem;color:rgba(250,247,242,.6)}
.legal-hero{padding:92px 0 54px;border-bottom:1px solid var(--border)}.legal-content{max-width:930px;margin:auto;padding:70px 0 110px}.legal-content h2{font-family:var(--heading);color:var(--forest);font-size:clamp(1.65rem,3vw,2.35rem);line-height:1.2;margin:46px 0 14px}.legal-content h3{color:var(--forest);margin:24px 0 8px}.legal-content p,.legal-content li{color:#333732}.legal-callout{background:var(--forest);color:var(--cream);padding:26px;margin:30px 0;border-left:5px solid var(--brown)}.legal-callout p{color:var(--cream);margin:0}
@media(max-width:1050px){.nav-menu{display:none;position:absolute;top:96px;left:0;right:0;background:var(--cream);border-bottom:1px solid var(--border);padding:24px;flex-direction:column;align-items:flex-start}.nav-menu.open{display:flex}.mobile-toggle{display:block}.steps-grid,.strategy-wrap,.invest-layout,.form-layout,.about-layout,.contact-layout,.footer-top{grid-template-columns:1fr}.process-timeline{grid-template-columns:1fr}.process-item{border-right:0;border-bottom:1px solid rgba(250,247,242,.16)}.footer-nav{justify-content:flex-start}}@media(max-width:760px){.container,.hero-content{width:min(100% - 32px,var(--max))}.section{padding:74px 0}.nav{min-height:82px}.nav-menu{top:82px}.logo{width:106px}.nav-cta{display:none}.hero{min-height:auto;background-position:62% center}.hero-content{padding:84px 0 94px}.h1{font-size:clamp(3rem,14vw,4.8rem)}.h2{font-size:clamp(2.15rem,10vw,3.2rem)}.steps-grid,.strategy-grid,.pathways-grid,.stats-bar,.form-grid{grid-template-columns:1fr}.stat{border-right:0;border-bottom:1px solid var(--border)}.step-card,.strategy-card,.pathway-card,.form-card{padding:32px 24px}.footer-bottom{flex-direction:column}}


/* ==============================
   PROFESSIONAL ANIMATIONS
   Subtle Oak Point motion system
   ============================== */

.preload * {
  transition: none !important;
}

.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity 720ms ease,
    transform 720ms cubic-bezier(.2, .65, .2, 1);
  transition-delay: var(--delay, 0ms);
  will-change: opacity, transform;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.animate-hero .eyebrow,
.animate-hero .h1,
.animate-hero .hero-line,
.animate-hero p,
.animate-hero .btn-row {
  opacity: 0;
  transform: translateY(22px);
  animation: heroRise 850ms cubic-bezier(.2, .65, .2, 1) forwards;
}

.animate-hero .eyebrow { animation-delay: 120ms; }
.animate-hero .h1 { animation-delay: 260ms; }
.animate-hero .hero-line { animation-delay: 420ms; }
.animate-hero p { animation-delay: 540ms; }
.animate-hero .btn-row { animation-delay: 700ms; }

@keyframes heroRise {
  from {
    opacity: 0;
    transform: translateY(22px);
    filter: blur(3px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }
}

.site-header {
  animation: navDrop 650ms ease both;
}

@keyframes navDrop {
  from {
    opacity: 0;
    transform: translateY(-18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.lift-card {
  transition:
    transform 280ms ease,
    box-shadow 280ms ease,
    border-color 280ms ease,
    background-color 280ms ease;
}

.lift-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 28px 70px rgba(38, 49, 31, 0.14);
  border-color: rgba(122, 92, 58, 0.34);
}

.step-card:hover .card-rule,
.strategy-card:hover .card-rule {
  width: 116px;
}

.card-rule {
  transition: width 280ms ease;
}

.button {
  position: relative;
  overflow: hidden;
}

.button::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 0%, rgba(255,255,255,.20) 45%, transparent 70%);
  transform: translateX(-140%);
  transition: transform 520ms ease;
}

.button:hover::before {
  transform: translateX(140%);
}

.button span {
  transition: transform 240ms ease;
}

.button:hover span {
  transform: translateX(4px);
}

.nav-menu a:not(.button) {
  position: relative;
}

.nav-menu a:not(.button)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -8px;
  height: 1px;
  background: var(--brown);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 240ms ease;
}

.nav-menu a:not(.button):hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

.hero {
  background-attachment: fixed;
}

.faq-question {
  transition: color 220ms ease, padding-left 220ms ease;
}

.faq-question:hover {
  color: var(--brown);
  padding-left: 14px;
}

.faq-answer {
  animation: faqOpen 260ms ease both;
}

@keyframes faqOpen {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.stat strong {
  transition: color 240ms ease, transform 240ms ease;
}

.stat:hover strong {
  color: var(--brown);
  transform: translateY(-2px);
}

input,
select,
textarea {
  transition: border-color 200ms ease, box-shadow 200ms ease, background-color 200ms ease;
}

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

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

  .reveal,
  .animate-hero .eyebrow,
  .animate-hero .h1,
  .animate-hero .hero-line,
  .animate-hero p,
  .animate-hero .btn-row {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
}

@media (max-width: 760px) {
  .hero {
    background-attachment: scroll;
  }

  .lift-card:hover {
    transform: none;
  }
}
