/* GLOBAL */
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:#f4f1eb;color:#18211d;font-family:"DM Sans",sans-serif}
a{text-decoration:none;color:inherit}
:focus-visible{outline:3px solid #b8a46b;outline-offset:3px}

/* NAVIGATION */
.nav{height:82px;display:flex;align-items:center;justify-content:space-between;padding:0 5vw;background:#f4f1eb;position:relative;z-index:10;border-bottom:1px solid #d9d5cc}
.logo{font-weight:700;letter-spacing:.12em;font-size:15px}
.logo span{display:block;font-size:8px;letter-spacing:.28em;margin-top:3px;opacity:.65}
.nav nav{display:flex;align-items:center;gap:30px;font-size:13px}
.nav nav a{opacity:.72}
.nav nav a:hover,.nav nav .active{opacity:1}
.nav-cta{background:#18211d!important;color:#fff;padding:12px 18px;opacity:1!important}
.menu{display:none;background:none;border:0;font-size:25px;cursor:pointer}

/* HERO */
.hero{min-height:calc(100vh - 82px);min-height:calc(100svh - 82px);position:relative;display:flex;align-items:flex-end;overflow:hidden;background:#18211d}
.hero-bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,18,14,.82),rgba(10,18,14,.2)),url("images/hero.jpg") center/cover #18211d;transform:scale(1.03);animation:heroZoom 12s ease-out forwards}
.hero-content{position:relative;color:#fff;max-width:850px;padding:10vh 8vw 12vh}
.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:700;margin:0 0 22px}
.hero h1,.page-hero h1{font:600 clamp(48px,7vw,100px)/.98 "Playfair Display",serif;margin:0 0 28px;letter-spacing:-.04em}
.hero h1 em,.page-hero h1 em,h2 em{font-style:italic;font-weight:500}
.lead{font-size:18px;line-height:1.7;max-width:650px;color:rgba(255,255,255,.8)}
.actions{display:flex;align-items:center;gap:28px;margin-top:35px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:22px;background:#b8a46b;color:#18211d;border:0;padding:16px 22px;font:700 12px "DM Sans";letter-spacing:.06em;cursor:pointer;transition:.3s ease}
.btn:hover{transform:translateY(-3px);background:#c9b67c}
.btn:disabled{opacity:.6;cursor:wait}
.text-link{font-size:12px;font-weight:700;letter-spacing:.06em}
.light{color:#fff}
.hero-note{position:absolute;right:5vw;bottom:45px;color:#fff;font-size:11px;line-height:1.7;text-transform:uppercase;letter-spacing:.12em}

/* SECTIONS */
.section{padding:110px 8vw}
.intro{display:grid;grid-template-columns:1fr 2fr;gap:7vw}
.section-label{font-size:10px;letter-spacing:.2em;font-weight:700;color:#6f6c64}
.section h2{font:500 clamp(40px,5vw,70px)/1.05 "Playfair Display";letter-spacing:-.03em;margin:0 0 25px}
.large{font-size:21px;line-height:1.7;max-width:760px;color:#59605a}

/* IMAGE SPLIT */
.image-split{display:grid;grid-template-columns:1.1fr 1fr;min-height:620px}
.photo{background-size:cover;background-position:center;background-color:#2a332e}
.photo-hotel{background-image:url("images/team.jpg")}
.dark-panel{background:#18211d;color:#fff;padding:100px 9vw;display:flex;flex-direction:column;justify-content:center}
.dark-panel h2{font:500 clamp(42px,5vw,68px)/1.05 "Playfair Display";margin:0 0 25px}
.dark-panel p:not(.eyebrow){line-height:1.8;color:#c9cdc9;max-width:450px}

/* SERVICE CARDS */
.section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:55px}
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.service-card{padding:32px;border:1px solid #d7d2c8;min-height:260px;transition:.4s}
.service-card:hover{background:#18211d;color:#fff;transform:translateY(-8px)}
.service-card span,.service-number{font-size:11px;letter-spacing:.1em;opacity:.55}
.service-card h3{font:500 27px/1.15 "Playfair Display";margin:55px 0 15px}
.service-card p{font-size:13px;line-height:1.7;opacity:.7}

/* NUMBERED LABELS (auto 01, 02, 03...) */
.cards,.service-grid,.steps,.principle-list,.autoplay-content{counter-reset:n}
.service-card,.service-grid article,.steps article,.principle-list>div,.autoplay-item{counter-increment:n}
.service-card span::before,.service-number::before,.steps b::before,.principle-list span::before,.autoplay-item span::before{content:counter(n,decimal-leading-zero)}

/* CTA BANNER */
.cta-banner{background:#b8a46b;color:#18211d;padding:75px 8vw;display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:18px}
.cta-banner h2{font:500 clamp(40px,5vw,65px)/1.05 "Playfair Display";margin:0}
.btn-light{background:#fff;color:#18211d}
.btn-light:hover{background:#18211d;color:#fff}

/* PAGE HEROES */
.page-hero{min-height:70vh;display:flex;align-items:end;position:relative;overflow:hidden;background-color:#18211d;background-size:cover;background-position:center}
.service-hero{background-image:linear-gradient(90deg,rgba(10,18,14,.78),rgba(10,18,14,.2)),url("images/services.jpg")}
.why-hero{background-image:linear-gradient(90deg,rgba(10,18,14,.82),rgba(10,18,14,.2)),url("images/why.jpg")}
.process-hero{background-image:linear-gradient(90deg,rgba(10,18,14,.82),rgba(10,18,14,.15)),url("images/process.jpg")}
.contact-hero{background-image:linear-gradient(90deg,rgba(10,18,14,.84),rgba(10,18,14,.2)),url("images/contact.jpg")}

/* SERVICES PAGE */
.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:#d7d2c8;padding:0}
.service-grid article{background:#f4f1eb;padding:70px 7vw;min-height:330px;transition:.4s}
.service-grid article:hover{background:#ebe6dc}
.service-grid h2{font-size:42px;margin:30px 0 18px}
.service-grid p,.principle-list p{max-width:520px;line-height:1.8;color:#656b65}
.service-grid .events-catering{grid-column:1/-1;width:50%;margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center}
.service-grid .events-catering p{margin-left:auto;margin-right:auto}

/* QUOTE */
.quote-strip{padding:100px 8vw;text-align:center;background:#18211d;color:#fff}
.quote-strip p{font:italic 38px "Playfair Display";margin:0}

/* PRINCIPLES */
.principles{display:grid;grid-template-columns:1fr 2fr;gap:8vw}
.principle-list>div{border-top:1px solid #d3cec4;padding:30px 0;display:grid;grid-template-columns:70px 1fr 1.3fr;gap:20px;align-items:center}
.principle-list h2{font-size:38px;margin:0}
.principle-list span{font-size:11px;opacity:.5}

/* PROCESS */
.steps{margin-top:20px;border-left:1px solid #cfcac0}
.steps article{padding:35px 50px;border-bottom:1px solid #d3cec4;display:grid;grid-template-columns:80px 1fr 1.5fr;align-items:center;gap:25px}
.steps b{font-size:12px;opacity:.5}
.steps h2{font-size:38px;margin:0}
.steps p{line-height:1.7;color:#656b65}

/* CONTACT */
.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:10vw}
.contact-details{display:flex;flex-direction:column;gap:12px;margin-top:40px;font-size:14px}
.contact-details a{font-weight:700}
.contact-grid form{display:flex;flex-direction:column;gap:20px}
.contact-grid label{font-size:11px;letter-spacing:.08em;font-weight:700}
.contact-grid input,.contact-grid textarea{display:block;width:100%;margin-top:9px;border:1px solid #cfcac0;background:transparent;padding:16px;font:14px "DM Sans";outline:none}
.contact-grid input:focus,.contact-grid textarea:focus{border-color:#18211d}
.contact-grid .btn{width:max-content}
#form-status{font-size:14px;margin:0;min-height:1.4em}

/* LEGAL */
.legal{max-width:820px;padding-top:80px}
.legal h1{font:500 clamp(40px,5vw,64px)/1.05 "Playfair Display";margin:0 0 30px}
.legal h2{font-size:28px!important;margin:40px 0 12px!important}
.legal p{line-height:1.8;color:#59605a}

/* FOOTER */
.site-footer{position:relative;overflow:hidden;background:#101412;color:#fff}
.footer-cta{position:relative;overflow:hidden;padding:110px 7vw;background:radial-gradient(circle at 80% 30%,rgba(184,164,107,.18),transparent 32%),#101412;border-bottom:1px solid rgba(255,255,255,.1)}
.footer-cta-content{position:relative;z-index:2;max-width:850px}
.footer-eyebrow{display:inline-block;margin-bottom:22px;color:#b8a46b;font-size:11px;font-weight:700;letter-spacing:.22em}
.footer-cta h2{max-width:800px;margin:0 0 24px;color:#fff;font:500 clamp(44px,7vw,88px)/.98 "Playfair Display",serif;letter-spacing:-.04em}
.footer-cta h2 span{display:block;color:#b8a46b}
.footer-cta p{max-width:580px;margin:0 0 35px;color:rgba(255,255,255,.68);font-size:17px;line-height:1.7}
.footer-cta-btn{display:inline-flex;align-items:center;gap:22px;padding:16px 22px;background:#b8a46b;color:#101412;font-weight:700;transition:transform .3s ease,background .3s ease}
.footer-cta-btn span{font-size:20px;transition:transform .3s ease}
.footer-cta-btn:hover{transform:translateY(-4px);background:#d0bd82}
.footer-cta-btn:hover span{transform:translate(4px,-4px)}
.footer-orb{position:absolute;border-radius:50%;pointer-events:none;filter:blur(2px)}
.footer-orb-one{width:420px;height:420px;right:-120px;top:-160px;border:1px solid rgba(184,164,107,.2);box-shadow:0 0 100px rgba(184,164,107,.08)}
.footer-orb-two{width:260px;height:260px;right:120px;bottom:-210px;border:1px solid rgba(255,255,255,.08)}
.footer-main{display:grid;grid-template-columns:2fr 1fr 1.4fr 1.5fr;gap:60px;padding:75px 7vw}
.footer-logo{display:inline-block;margin-bottom:22px;color:#fff;font-size:22px;font-weight:800;letter-spacing:.18em}
.footer-brand p{max-width:330px;margin:0 0 25px;color:rgba(255,255,255,.58);font-size:14px;line-height:1.8}
.footer-location{display:flex;align-items:center;gap:9px;color:#b8a46b;font-size:13px}
.footer-column{display:flex;flex-direction:column;gap:13px}
.footer-column h4{margin:0 0 10px;color:#fff;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.footer-column a{width:fit-content;color:rgba(255,255,255,.58);font-size:14px;transition:color .25s ease,transform .25s ease}
.footer-column a:hover{color:#b8a46b;transform:translateX(4px)}
.footer-contact>a:first-of-type{color:#b8a46b}
.footer-contact p{margin:6px 0 8px;color:rgba(255,255,255,.58);font-size:14px;line-height:1.7}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:22px 7vw;border-top:1px solid rgba(255,255,255,.09);color:rgba(255,255,255,.5);font-size:12px}
.footer-bottom div{display:flex;gap:25px}
.footer-bottom a{color:rgba(255,255,255,.5);transition:color .2s ease}
.footer-bottom a:hover{color:#b8a46b}

/* REQUIREMENTS / VETTING (items stacked in one cell, fade between) */
.requirements-vetting{position:relative;overflow:hidden}
.autoplay-content{display:grid;margin-top:30px}
.requirements-vetting .autoplay-item{grid-area:1/1;opacity:0;transform:translateY(25px);transition:opacity .7s ease,transform .7s ease;pointer-events:none}
.requirements-vetting .autoplay-item.active{opacity:1;transform:none;pointer-events:auto}
.autoplay-item span{font-size:11px;opacity:.5}
.autoplay-item p{max-width:520px;line-height:1.8;color:#656b65}

/* TABLET */
@media(max-width:900px){
.nav{padding:0 6vw}
.menu{display:block}
.nav nav{display:none;position:absolute;top:82px;left:0;right:0;background:#f4f1eb;padding:25px 6vw;flex-direction:column;align-items:flex-start;border-bottom:1px solid #d9d5cc}
.nav.open nav{display:flex}
.hero-content{padding:80px 7vw}
.hero h1,.page-hero h1{font-size:56px}
.hero-note{display:none}
.intro,.image-split,.contact-grid,.principles{grid-template-columns:1fr}
.image-split{min-height:0}
.photo{min-height:420px}
.cards{grid-template-columns:1fr 1fr}
.section-head{display:block}
.section-head .text-link{display:block;margin-top:25px}
.service-grid{grid-template-columns:1fr}
.service-grid .events-catering{width:100%}
.principle-list>div,.steps article{grid-template-columns:50px 1fr}
.principle-list p,.steps p{grid-column:2}
.steps h2{font-size:30px}
.cta-banner{display:block}
.cta-banner .btn{margin-top:25px}
.footer-main{grid-template-columns:1fr 1fr;gap:50px 35px}
}

/* MOBILE */
@media(max-width:600px){
.hero h1,.page-hero h1{font-size:45px}
.lead{font-size:16px}
.cards{grid-template-columns:1fr}
.section{padding:75px 7vw}
.dark-panel{padding:75px 7vw}
.steps article{padding:28px 25px}
.quote-strip p{font-size:28px}
.footer-cta{padding:75px 24px}
.footer-cta h2{font-size:48px}
.footer-cta p{font-size:15px}
.footer-main{grid-template-columns:1fr;padding:55px 24px;gap:40px}
.footer-bottom{flex-direction:column;align-items:flex-start;padding:22px 24px}
.footer-orb-one{width:280px;height:280px;right:-130px}
.footer-orb-two{width:180px;height:180px;right:-50px}
}

/* ANIMATIONS */
@keyframes heroZoom{from{transform:scale(1.1)}to{transform:scale(1.03)}}
.reveal{animation:reveal .9s ease both}
@keyframes reveal{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.scroll-reveal{opacity:0;transform:translateY(25px);transition:opacity .7s ease,transform .7s ease}
.scroll-reveal.visible{opacity:1;transform:none}
/* keep hover effects working on revealed items */
.service-card.scroll-reveal{transition:opacity .7s ease,transform .4s,background .4s,color .4s}
.service-card.scroll-reveal.visible:hover{transform:translateY(-8px)}
.service-grid article.scroll-reveal{transition:opacity .7s ease,transform .7s ease,background .4s}

@media(prefers-reduced-motion:reduce){
.hero-bg,.reveal{animation:none}
.scroll-reveal{opacity:1;transform:none}
.requirements-vetting .autoplay-item{opacity:1;transform:none;grid-area:auto;margin-bottom:30px;transition:none}
}
