:root{
  --brand-color-primary:#af8951;
  --brand-color-secondary:#9a3324;
  --color-bg:#f7f2ea;
  --color-bg-alt:#efe8db;
  --color-dark:#161310;
  --color-dark-border:#2a2520;
  --color-text:#1c1815;
  --color-text-muted:#5c5449;
  --color-text-on-dark:#d9d2c6;
  --color-text-on-dark-muted:#a89e8f;
  --color-footer-bottom:#7c7264;
  --color-border-light:#ddd3c2;
  --color-link-alt:#af1218;
  --font-heading:'Playfair Display',serif;
  --font-body:'Jost',sans-serif;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--color-bg);font-family:var(--font-body);-webkit-font-smoothing:antialiased;color:var(--color-text);}
a{color:var(--brand-color-primary);text-decoration:none;}
a:hover{color:#8a6c3f;}
img{max-width:100%;}
button{font-family:inherit;}
h1,h2,h3{font-family:var(--font-heading);}
@keyframes vendor-scroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* Header */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;background:transparent;transition:background .25s ease;}
.site-header.is-scrolled{background:var(--color-dark);}
.header-inner{max-width:1440px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:14px 32px;gap:20px;}
.logo-link{display:flex;align-items:center;flex-shrink:0;}
.logo-img{height:86px;width:auto;display:block;transition:height .25s ease;}
.site-header.is-scrolled .logo-img{height:57px;}
.mobile-controls{display:none;align-items:center;gap:18px;}
.phone-icon-btn{color:var(--brand-color-primary);font-size:22px;text-decoration:none;padding:10px;margin:-10px;display:flex;align-items:center;}
.menu-btn{background:none;border:none;padding:12px 9px;margin:-6px;min-width:44px;min-height:44px;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;justify-content:center;gap:5px;}
.menu-bar{width:26px;height:2px;background:var(--brand-color-primary);display:block;}
.site-nav{display:flex;align-items:center;gap:clamp(10px,1.1vw,20px);}
.nav-link{color:#f7f2ea;text-decoration:none;text-underline-offset:6px;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;white-space:nowrap;}
.nav-link:hover,.nav-link.active{color:var(--brand-color-primary);text-decoration:underline;}
.nav-phone{color:#f7f2ea;text-decoration:none;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;white-space:nowrap;display:flex;align-items:center;gap:7px;}
.nav-phone-icon{color:var(--brand-color-primary);font-size:15px;}
.nav-contact{background:var(--brand-color-primary);color:var(--color-dark);text-decoration:none;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;font-weight:700;white-space:nowrap;padding:10px 22px;}
.mobile-menu{display:none;background:var(--color-dark);border-top:1px solid var(--color-dark-border);padding:8px 32px 24px;flex-direction:column;gap:2px;max-height:calc(100vh - 90px);overflow-y:auto;}
.mobile-menu.is-open{display:flex;}
.mobile-nav-link{color:#f7f2ea;text-decoration:none;padding:12px 0;font-size:15px;letter-spacing:.04em;text-transform:uppercase;font-weight:600;}
.mobile-nav-link.active,.mobile-nav-contact{color:var(--brand-color-primary);font-weight:700;}
@media (max-width:1279px){ .site-nav{display:none;} .mobile-controls{display:flex;} }
@media (min-width:1280px){ .mobile-menu{display:none !important;} }
@media (max-width:1439px){ .nav-phone{display:none;} }

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:10px;padding:16px 30px;text-decoration:none;font-weight:700;font-size:14px;letter-spacing:.05em;text-transform:uppercase;}
.btn-gold{background:var(--brand-color-primary);color:var(--color-dark);}
.btn-outline{border:1.5px solid #f7f2ea;color:#f7f2ea;}
.btn-outline-dark{border:1.5px solid var(--color-text);color:var(--color-text);}
.btn-sm{padding:15px 26px;font-size:13.5px;}
.btn-row{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;}

/* Hero */
.hero{position:relative;display:flex;align-items:center;background:var(--color-dark);overflow:hidden;}
.hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5;}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,17,14,.35) 0%,rgba(20,17,14,.8) 100%);}
.hero-inner{position:relative;max-width:1440px;margin:0 auto;width:100%;box-sizing:border-box;display:flex;justify-content:center;text-align:center;}
.hero-content{display:flex;flex-direction:column;align-items:center;}
.eyebrow{color:var(--brand-color-primary);font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;margin-bottom:18px;}
.hero-title{color:#f7f2ea;font-size:clamp(32px,4.6vw,50px);line-height:1.12;margin:0 0 20px;font-weight:700;}
.hero-text{color:var(--color-text-on-dark);font-size:17px;line-height:1.65;margin:0 0 32px;max-width:640px;}

#hero-home{min-height:640px;}
#hero-home .hero-overlay{background:linear-gradient(180deg,rgba(20,17,14,.35) 0%,rgba(20,17,14,.75) 100%);}
#hero-home .hero-inner{padding:130px 32px 120px;}
#hero-home .hero-content{max-width:960px;padding-top:40px;}
#hero-home .eyebrow{margin:24px 0 18px;}
#hero-home .hero-title{font-size:clamp(36px,5.5vw,62px);margin:0 0 22px;}
#hero-home .hero-text{margin:0 0 36px;}

.hero-page{min-height:480px;}
.hero-page .hero-inner{padding:170px 32px 90px;}
.hero-page .hero-content{max-width:820px;}

#hero-contact{min-height:420px;}
#hero-contact .hero-inner{padding:170px 32px 80px;}
#hero-contact .hero-content{max-width:780px;}
#hero-contact .hero-text{margin:0;max-width:600px;}

/* Section basics */
.section-header{margin:0 auto 52px;text-align:center;}
.section-eyebrow-red{color:var(--brand-color-secondary);font-size:13px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;margin-bottom:14px;}
.section-title{font-size:clamp(26px,3.2vw,38px);color:var(--color-text);margin:0;line-height:1.2;}

/* Vendor marquee */
#vendors{position:relative;background:var(--color-dark);padding:36px 0;overflow:hidden;}
.vendor-fade{position:absolute;top:0;bottom:0;width:120px;z-index:2;pointer-events:none;}
.vendor-fade-left{left:0;background:linear-gradient(90deg,#161310 0%,rgba(22,19,16,0) 100%);}
.vendor-fade-right{right:0;background:linear-gradient(270deg,#161310 0%,rgba(22,19,16,0) 100%);}
.vendor-track{display:flex;width:max-content;animation:vendor-scroll 54s linear infinite;}
.vendor-item{flex-shrink:0;width:180px;height:100px;margin:0 14px;background:#fff;display:flex;align-items:center;justify-content:center;padding:16px;}
.vendor-item img{max-width:100%;max-height:100%;object-fit:contain;}
.gold-divider{height:6px;background:linear-gradient(90deg,var(--brand-color-primary) 0%,#d9b579 50%,var(--brand-color-primary) 100%);}

/* Categories (home) */
#categories{background:linear-gradient(180deg,#2c4f1e 0%,#3b6727 55%,#2a4a1d 100%);padding:96px 32px;}
#categories .section-header{max-width:1200px;}
#categories .section-eyebrow-red{color:#d9b579;}
#categories .section-title{color:#f7f2ea;}
.category-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:28px;}
.category-card{text-decoration:none;display:block;position:relative;aspect-ratio:4/3;overflow:hidden;}
.category-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease,filter .5s ease;}
.category-card:hover img{transform:scale(1.08);filter:brightness(.7);}
.category-card-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,17,14,.1) 40%,rgba(20,17,14,.9) 100%);pointer-events:none;}
.category-card-body{position:absolute;left:0;right:0;bottom:0;padding:22px 24px;}
.category-card-body h3{font-size:20px;color:#f7f2ea;margin:0 0 8px;}
.category-card-body p{color:var(--color-text-on-dark);font-size:14px;line-height:1.55;margin:0 0 12px;}
.category-card-link{color:var(--brand-color-primary);font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;}

/* Feature / why-us grids */
.features-section{max-width:1200px;margin:0 auto;padding:96px 32px 40px;}
.features-section.pad-bottom{padding-bottom:96px;}
#why-us{max-width:1200px;margin:0 auto;padding:96px 32px 88px;}
.feature-grid{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:40px;}
.features-section .feature-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));}
.feature-num{font-size:40px;color:var(--brand-color-primary);font-weight:700;margin-bottom:14px;}
.feature-item h3{font-size:20px;color:var(--color-text);margin:0 0 10px;}
.feature-item p{color:var(--color-text-muted);font-size:15px;line-height:1.6;margin:0;}
.features-section .feature-item p{line-height:1.65;}

/* Gallery */
.gallery-section{max-width:1200px;margin:0 auto;padding:40px 32px 96px;}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:20px;}
.gallery-grid figure{margin:0;aspect-ratio:4/3;overflow:hidden;}
.gallery-grid img{width:100%;height:100%;object-fit:cover;display:block;}
.gallery-wide{aspect-ratio:16/7;overflow:hidden;margin:0;}
.gallery-wide img{width:100%;height:100%;object-fit:cover;display:block;}

/* Explore more */
.explore-more{background:var(--color-bg-alt);padding:56px 32px;text-align:center;}
.explore-more p{max-width:760px;margin:0 auto;color:var(--color-text);font-size:16px;line-height:1.7;}
.explore-more a{color:var(--color-link-alt);font-weight:600;}

/* Dark CTA */
.cta-dark{position:relative;background:var(--color-dark);padding:100px 32px;overflow:hidden;}
.cta-dark img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.22;}
.cta-dark-inner{position:relative;max-width:800px;margin:0 auto;text-align:center;}
.cta-dark-inner h2{color:#f7f2ea;font-size:clamp(28px,3.6vw,42px);margin:0 0 20px;line-height:1.2;}
.cta-dark-inner p{color:var(--color-text-on-dark);font-size:17px;line-height:1.65;margin:0 0 36px;}

/* FAQs (required CMS structure) */
.faqs{padding:96px 32px;}
.faqs-inner{max-width:840px;margin:0 auto;}
.faqs-head{text-align:center;margin-bottom:48px;}
.eyebrow-light{color:var(--brand-color-secondary);font-size:13px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;margin-bottom:14px;}
.h2-light{font-size:clamp(26px,3.2vw,36px);color:var(--color-text);margin:0;}
.faq-item{border-bottom:1px solid var(--color-border-light);}
.faq-q{width:100%;background:none;border:none;text-align:left;padding:22px 4px;display:flex;justify-content:space-between;align-items:center;gap:16px;cursor:pointer;font-size:18px;color:var(--color-text);font-family:var(--font-heading);}
.faq-sign{color:var(--brand-color-primary);font-size:22px;flex-shrink:0;}
.faq-answer{display:none;padding:0 4px;margin:0 0 24px;}
.faq-answer p{color:var(--color-text-muted);font-size:15px;line-height:1.65;margin:0;}
.faq-item.is-open .faq-answer{display:block;}

/* Footer */
.site-footer{background:var(--color-dark);padding:80px 32px 0;}
.footer-top{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:48px;padding-bottom:56px;border-bottom:1px solid var(--color-dark-border);}
.footer-logo{height:58px;width:auto;margin-bottom:18px;}
.footer-address{color:var(--color-text-on-dark-muted);font-size:14px;line-height:1.6;margin:0;}
.footer-phone{margin:14px 0 0;}
.footer-phone a{color:var(--brand-color-primary);font-size:15px;font-weight:600;}
.footer-heading{color:#f7f2ea;font-size:13px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 18px;}
.footer-links{display:flex;flex-direction:column;gap:12px;}
.footer-links a{color:var(--color-text-on-dark-muted);font-size:14px;}
.footer-serving{color:var(--color-text-on-dark-muted);font-size:14px;line-height:1.6;margin:0 0 16px;}
.footer-directions{color:var(--brand-color-primary);font-size:14px;font-weight:700;}
.footer-bottom{max-width:1200px;margin:0 auto;padding:24px 0;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;}
.footer-copy{color:var(--color-footer-bottom);font-size:13px;}
.footer-copy a{color:var(--color-footer-bottom);text-decoration:underline;}
.footer-credits{color:var(--color-footer-bottom);font-size:13px;display:flex;flex-wrap:wrap;gap:16px;}
.footer-credits a{color:var(--color-footer-bottom);}

/* Contact page */
.details{max-width:1200px;margin:0 auto;padding:88px 32px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:clamp(32px,5vw,64px);}
.details h2{font-size:26px;color:var(--color-text);margin:0 0 24px;}
.details-label{color:var(--color-text);font-size:16px;line-height:1.7;margin:0 0 6px;font-weight:600;}
.details-value{color:var(--color-text-muted);font-size:15.5px;line-height:1.6;margin:0 0 22px;}
.details-phone a{color:var(--brand-color-primary);font-size:20px;font-weight:700;}
.details-note{color:var(--color-text-muted);font-size:15px;line-height:1.65;margin:0 0 32px;font-style:italic;}
.details-actions{display:flex;gap:14px;flex-wrap:wrap;}
.map-embed{min-height:340px;background:var(--color-bg-alt);display:flex;align-items:center;justify-content:center;}
.map-embed iframe{width:100%;height:100%;min-height:340px;border:0;}

.plan-visit{background:var(--color-bg-alt);padding:80px 32px;}
.plan-visit-inner{max-width:1000px;margin:0 auto;}
.plan-visit-inner .section-header{margin-bottom:44px;}
.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:28px;}
.plan-item{border-top:2px solid var(--brand-color-primary);padding-top:18px;}
.plan-item p{color:var(--color-text);font-size:15.5px;line-height:1.6;margin:0;}

/* Service page */
.trust-block{background:var(--color-bg-alt);padding:64px 32px;}
.trust-block-inner{max-width:800px;margin:0 auto;text-align:center;}
.trust-block-inner h2{font-size:clamp(24px,3vw,32px);color:var(--color-text);margin:0 0 16px;}
.trust-block-inner p{color:var(--color-text-muted);font-size:15.5px;line-height:1.7;margin:0;}

/* Specials page */
.what-goes-special{max-width:1200px;margin:0 auto;padding:96px 32px 40px;}
.special-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:32px;}
.special-item{border-top:2px solid var(--brand-color-primary);padding-top:22px;}
.special-item h3{font-size:19px;color:var(--color-text);margin:0 0 8px;}
.special-item p{color:var(--color-text-muted);font-size:14.5px;line-height:1.6;margin:0;}
.package-pricing{background:var(--color-bg-alt);padding:64px 32px;}
.package-pricing-inner{max-width:800px;margin:0 auto;text-align:center;}
.package-pricing-inner h2{font-size:clamp(24px,3vw,32px);color:var(--color-text);margin:0 0 16px;}
.package-pricing-inner p{color:var(--color-text-muted);font-size:15.5px;line-height:1.7;margin:0;}
