@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;1,9..40,300&family=Josefin+Sans:wght@300;400&display=swap');

:root {
  --parchment: #f4f0e8;
  --parchment-dark: #ece7dc;
  --terracotta: #8b4a32;
  --terracotta-light: #a35a3f;
  --terracotta-muted: #c4876c;
  --warm-black: #1e1a17;
  --charcoal: #2e2924;
  --mid-tone: #6b5f52;
  --stone: #9a8e82;
  --sage: #5f7a5a;
  --sage-light: #e8ede6;
  --warm-white: #faf8f4;
  --border: rgba(139,74,50,0.12);
  --border-dark: rgba(30,26,23,0.15);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'DM Sans',sans-serif;background:var(--warm-white);color:var(--warm-black);font-size:16px;line-height:1.6;overflow-x:hidden;}

/* FOCUS VISIBLE - Accessible focus states for keyboard navigation */
:focus-visible{outline:2px solid var(--terracotta-muted);outline-offset:3px;border-radius:4px;}

/* NAV */
.nav{position:sticky;top:0;z-index:100;background:rgba(250,248,244,0.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);padding:0 clamp(24px,5vw,80px);}
.nav-inner{max-width:1280px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:68px;}
.nav-logo{display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;}
.nav-logo-img{height:24px;width:auto;display:block;filter:invert(29%) sepia(50%) saturate(1000%) hue-rotate(330deg) brightness(87%);}
.nav-logo-text{font-family:'Josefin Sans',sans-serif;font-size:0.6rem;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--terracotta);}
@media(min-width:640px){
  .nav-logo{flex-direction:row;align-items:center;gap:10px;}
  .nav-logo-img{height:30px;}
  .nav-logo-text{font-size:0.85rem;letter-spacing:.14em;font-weight:300;}
}
.nav-links{display:flex;align-items:center;gap:2px;list-style:none;}
.nav-links a{font-size:.875rem;font-weight:400;color:var(--mid-tone);text-decoration:none;padding:6px 14px;border-radius:6px;letter-spacing:.01em;transition:color .2s,background .2s;}
.nav-links a:hover,.nav-links a.active{color:var(--warm-black);background:var(--parchment);}
.nav-links a.active{font-weight:500;}
.nav-cta{background:var(--terracotta) !important;color:#fff !important;padding:8px 20px !important;border-radius:8px !important;font-weight:500 !important;white-space:nowrap;}
.nav-cta:hover{background:var(--terracotta-light) !important;}
.nav-hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:8px;margin-right:-8px;background:none;border:none;}
.nav-hamburger span{display:block;width:22px;height:1.5px;background:var(--warm-black);transition:transform .25s,opacity .25s;transform-origin:center;}
.nav-hamburger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.nav-hamburger.open span:nth-child(2){opacity:0;}
.nav-hamburger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.nav-drawer{display:none;position:fixed;inset:68px 0 0 0;background:rgba(250,248,244,0.98);backdrop-filter:blur(16px);z-index:99;flex-direction:column;padding:32px 24px 40px;border-top:1px solid var(--border);opacity:0;pointer-events:none;transition:opacity .2s;}
.nav-drawer.open{opacity:1;pointer-events:all;}
.nav-drawer a{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:300;color:var(--warm-black);text-decoration:none;padding:14px 0;border-bottom:1px solid var(--border);letter-spacing:.01em;transition:color .2s;}
.nav-drawer a:hover{color:var(--terracotta);}
.nav-drawer a:last-child{border-bottom:none;}
.nav-drawer .drawer-cta{margin-top:32px;background:var(--terracotta);color:#fff !important;text-align:center;padding:16px !important;border-radius:10px;font-family:'DM Sans',sans-serif !important;font-size:1rem !important;font-weight:500 !important;border-bottom:none !important;}

/* PAGE HERO (subpages) */
.page-hero{background:var(--warm-black);padding:clamp(72px,12vh,120px) clamp(24px,5vw,80px) clamp(56px,8vh,88px);position:relative;overflow:hidden;}
.page-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(rgba(20,16,13,0.7),rgba(20,16,13,0.7)),radial-gradient(ellipse 60% 70% at 30% 50%,rgba(139,74,50,.18) 0%,transparent 70%);pointer-events:none;}
.page-hero-inner{max-width:1280px;margin:0 auto;}
.page-hero-eyebrow{font-size:.7rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--terracotta-muted);margin-bottom:20px;}
.page-hero-title{font-family:'Cormorant Garamond',serif;font-size:clamp(3rem,7vw,6rem);font-weight:300;line-height:.95;color:var(--parchment);letter-spacing:-.01em;}
.page-hero-title em{font-style:italic;color:var(--terracotta-muted);}
.page-hero-sub{font-size:clamp(.9375rem,1.3vw,1.05rem);font-weight:300;color:rgba(244,240,232,.5);max-width:520px;margin-top:24px;line-height:1.75;}

/* BUTTONS */
.btn-primary{background:var(--terracotta);color:#fff;padding:14px 36px;border-radius:10px;font-size:.9375rem;font-weight:500;letter-spacing:.01em;text-decoration:none;border:none;cursor:pointer;transition:background .2s,transform .15s;display:inline-block;}
.btn-primary:hover{background:var(--terracotta-light);transform:translateY(-1px);}
.btn-ghost{color:var(--mid-tone);padding:14px 28px;border-radius:10px;font-size:.9375rem;font-weight:400;text-decoration:none;border:1px solid var(--border-dark);transition:border-color .2s,color .2s;display:inline-block;}
.btn-ghost:hover{border-color:var(--terracotta-muted);color:var(--warm-black);}
.btn-outline-terra{color:var(--terracotta);padding:12px 28px;border-radius:10px;font-size:.875rem;font-weight:500;text-decoration:none;border:1px solid var(--terracotta);transition:background .2s,color .2s;display:inline-block;}
.btn-outline-terra:hover{background:var(--terracotta);color:#fff;}

/* SECTIONS */
.section{padding:clamp(72px,10vh,120px) clamp(24px,5vw,80px);}
.section-inner{max-width:1280px;margin:0 auto;}
.section-label{font-size:.7rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--terracotta);margin-bottom:16px;}
.section-title{font-family:'Cormorant Garamond',serif;font-size:clamp(2.2rem,4vw,3.4rem);font-weight:300;color:var(--warm-black);line-height:1.15;margin-bottom:20px;}
.section-title em{font-style:italic;color:var(--terracotta);}

/* CTA BANNER */
.cta-banner{background:var(--terracotta);padding:clamp(60px,8vh,96px) clamp(24px,5vw,80px);position:relative;overflow:hidden;}
.cta-banner::before{content:'';position:absolute;top:-40%;right:-10%;width:500px;height:500px;background:rgba(255,255,255,.06);border-radius:50%;pointer-events:none;}
.cta-inner{max-width:1280px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:48px;flex-wrap:wrap;}
.cta-title{font-family:'Cormorant Garamond',serif;font-size:clamp(2rem,4vw,3.2rem);font-weight:300;color:rgba(244,240,232,.95);line-height:1.2;}
.cta-sub{font-size:.9375rem;font-weight:300;color:rgba(244,240,232,.6);margin-top:12px;max-width:420px;}
.btn-cta{background:var(--parchment);color:var(--terracotta);padding:16px 40px;border-radius:10px;font-size:.9375rem;font-weight:500;text-decoration:none;white-space:nowrap;transition:background .2s;display:inline-block;flex-shrink:0;}
.btn-cta:hover{background:#fff;}

/* FOOTER */
footer{background:var(--charcoal);padding:clamp(56px,8vh,80px) clamp(24px,5vw,80px) 36px;}
.footer-inner{max-width:1280px;margin:0 auto;}
.footer-top{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:52px;border-bottom:1px solid rgba(244,240,232,.08);gap:64px;flex-wrap:wrap;}
.footer-brand-col{max-width:260px;}
.footer-logo-link{display:flex;align-items:center;gap:10px;text-decoration:none;margin-bottom:20px;}
.footer-logo-img{height:26px;width:auto;filter:brightness(0) invert(1);opacity:0.6;}
.footer-logo-wordmark{font-family:'Josefin Sans',sans-serif;font-size:.8rem;font-weight:300;letter-spacing:.18em;text-transform:uppercase;color:rgba(244,240,232,.6);}
.footer-tagline{font-size:.875rem;color:rgba(244,240,232,.38);line-height:1.75;margin-bottom:16px;}
.footer-location{font-size:.72rem;letter-spacing:.06em;color:rgba(244,240,232,.22);}
.footer-nav{display:flex;gap:48px;flex-wrap:wrap;}
.footer-col h4{font-size:.65rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:rgba(244,240,232,.28);margin-bottom:18px;}
.footer-col a{display:block;font-size:.875rem;color:rgba(244,240,232,.55);text-decoration:none;margin-bottom:11px;transition:color .2s;}
.footer-col a:hover{color:var(--parchment);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:24px;font-size:.72rem;color:rgba(244,240,232,.2);flex-wrap:wrap;gap:12px;}
.footer-bottom-links{display:flex;gap:24px;}
.footer-bottom a,.footer-bottom-links a{color:rgba(244,240,232,.2);text-decoration:none;transition:color .2s;}
.footer-bottom a:hover,.footer-bottom-links a:hover{color:rgba(244,240,232,.45);}

/* DIVIDER */
.divider{border:none;border-top:1px solid var(--border-dark);margin:0;}

/* RESPONSIVE */
@media(max-width:900px){
  .cta-inner{flex-direction:column;gap:32px;text-align:center;}
  .cta-sub{margin-left:auto;margin-right:auto;}
  .btn-cta{width:100%;text-align:center;}
  .footer-top{flex-direction:column;gap:40px;}
  .footer-brand-col{max-width:none;}
  .footer-nav{gap:32px;}
}
@media(max-width:768px){
  .nav-links{display:none;}
  .nav-hamburger{display:flex;}
  .nav-drawer{display:flex;}
}
@media(max-width:640px){
  .section{padding-top:56px;padding-bottom:56px;}
  .section-title{font-size:clamp(1.9rem,7vw,2.6rem);}
  .page-hero-title{font-size:clamp(2.4rem,10vw,3.5rem);}
  .footer-nav{flex-direction:column;gap:24px;}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:8px;}
}
