:root {
  color-scheme: dark;
  --bg: #0E0D0B;
  --bg-2: #181510;
  --bg-3: #222018;
  --bg-4: #2C2820;
  --gold: #A8924A;
  --gold-light: #C8AE6A;
  --gold-dim: rgba(168,146,74,0.25);
  --text: #EDE8DC;
  --text-muted: #7A7060;
  --text-heading: #F5F0E4;
  --border: #252018;
  --nav-h: 72px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
img { max-width: 100%; height: auto; }
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:'Source Sans 3',system-ui,sans-serif;font-size:1rem;line-height:1.6;overflow-x:hidden}

/* NAV */
nav{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;height:var(--nav-h);background:var(--bg);border-bottom:1px solid var(--border);z-index:100;display:flex;align-items:center;justify-content:space-between;padding-inline:clamp(20px,5vw,80px)}
.nav-logo img{height:38px;width:auto}
.nav-links{display:flex;gap:clamp(1rem,2vw,2rem);list-style:none;align-items:center}
.nav-links a{color:var(--text-muted);text-decoration:none;font-size:0.8rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;transition:color 0.2s}
.nav-links a:hover{color:var(--gold)}
.nav-cta{border:1px solid var(--gold)!important;color:var(--gold)!important;padding:0.45rem 1.2rem;border-radius:2px}
.nav-cta:hover{background:var(--gold)!important;color:var(--bg)!important}
.nav-toggle{display:none;flex-direction:column;gap:5px;cursor:pointer;border:none;background:none;padding:4px}
.nav-toggle span{display:block;width:24px;height:2px;background:var(--gold);border-radius:1px}

/* LAYOUT */
section{padding-block:clamp(70px,11vw,130px);padding-inline:clamp(20px,5vw,80px)}

/* HERO */
.hero{min-height:100svh;display:flex;align-items:center;padding-top:calc(var(--nav-h) + clamp(60px,10vw,100px));padding-bottom:clamp(60px,10vw,100px);position:relative;overflow:hidden}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 70% at 85% 35%,rgba(168,146,74,0.06) 0%,transparent 65%);pointer-events:none;z-index:1}
.hero::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--border);z-index:1}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(0.45) contrast(1.05)}
.hero-media::after{content:'';position:absolute;inset:0;background:linear-gradient(100deg,var(--bg) 0%,rgba(14,13,11,0.92) 32%,rgba(14,13,11,0.72) 55%,rgba(14,13,11,0.4) 100%)}
.hero-inner{max-width:820px;position:relative;z-index:1}
.eyebrow{font-size:0.7rem;font-weight:700;letter-spacing:0.25em;text-transform:uppercase;color:var(--gold);margin-bottom:1.5rem;display:flex;align-items:center;gap:0.75rem}
.eyebrow::before{content:'';display:block;width:28px;height:1px;background:var(--gold)}
.hero h1{font-family:'Libre Baskerville',Georgia,serif;font-size:clamp(2.8rem,6.5vw,5.5rem);font-weight:700;color:var(--text-heading);line-height:1.06;text-wrap:balance;margin-bottom:1.75rem}
.hero h1 em{font-style:italic;color:var(--gold)}
.hero-sub{font-size:clamp(1rem,2vw,1.2rem);color:var(--text-muted);font-weight:300;line-height:1.75;max-width:560px;margin-bottom:2.5rem}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;align-items:center}
.btn-primary{display:inline-flex;align-items:center;gap:0.5rem;background:var(--gold);color:#0E0D0B;text-decoration:none;font-family:'Source Sans 3',sans-serif;font-size:0.8rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;padding:0.95rem 2rem;border-radius:2px;border:none;cursor:pointer;transition:background 0.2s,transform 0.15s}
.btn-primary:hover{background:var(--gold-light);transform:translateY(-1px)}
.btn-ghost{display:inline-flex;align-items:center;gap:0.5rem;background:transparent;border:1px solid var(--gold-dim);color:var(--gold);text-decoration:none;font-family:'Source Sans 3',sans-serif;font-size:0.8rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;padding:0.95rem 1.75rem;border-radius:2px;cursor:pointer;transition:border-color 0.2s,background 0.2s}
.btn-ghost:hover{border-color:var(--gold);background:rgba(168,146,74,0.07)}
.hero-scroll{position:absolute;bottom:2.5rem;left:clamp(20px,5vw,80px);display:flex;align-items:center;gap:0.75rem;font-size:0.7rem;font-weight:700;letter-spacing:0.2em;text-transform:uppercase;color:var(--text-muted);z-index:1}
.hero-scroll::before{content:'';display:block;width:1px;height:32px;background:var(--gold-dim)}

/* SERVICES */
.services{background:var(--bg-2)}
.section-hdr{margin-bottom:3rem}
.section-label{font-size:0.68rem;font-weight:700;letter-spacing:0.25em;text-transform:uppercase;color:var(--gold);margin-bottom:0.9rem}
.section-title{font-family:'Libre Baskerville',Georgia,serif;font-size:clamp(1.9rem,4vw,3.2rem);font-weight:700;color:var(--text-heading);text-wrap:balance;line-height:1.18;margin-bottom:0.9rem}
.section-sub{font-size:1.05rem;color:var(--text-muted);font-weight:300;line-height:1.7;max-width:520px}
.section-hdr-media{display:grid;grid-template-columns:1.1fr 0.9fr;gap:3rem;align-items:center;margin-bottom:3rem}
.section-hdr-media .section-hdr{margin-bottom:0}
.section-photo{position:relative;border:1px solid var(--border);overflow:hidden;aspect-ratio:4/3}
.section-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(0.4) contrast(1.05)}
.services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:var(--border)}
.svc{background:var(--bg-2);padding:2.5rem 2rem;display:flex;flex-direction:column;gap:1rem;transition:background 0.2s}
.svc:hover{background:var(--bg-3)}
.svc-icon{font-size:1.4rem;line-height:1}
.svc h3{font-family:'Libre Baskerville',serif;font-size:1.1rem;font-weight:700;color:var(--text-heading);line-height:1.3}
.svc p{font-size:0.92rem;color:var(--text-muted);line-height:1.65;flex:1}
.svc-tag{display:inline-block;font-size:0.65rem;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;color:var(--gold);border:1px solid rgba(168,146,74,0.35);padding:0.18rem 0.55rem;border-radius:1px;align-self:flex-start;margin-top:auto}
.svc-photo{position:relative;overflow:hidden;grid-column:span 1;min-height:280px}
.svc-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;filter:grayscale(0.4) contrast(1.05)}

/* WHY */
.why{background:var(--bg)}
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:3rem;border:1px solid var(--border)}
.why-item{padding:2.5rem 2.5rem;display:flex;flex-direction:column;gap:0.75rem;border-right:1px solid var(--border);border-bottom:1px solid var(--border);transition:background 0.2s}
.why-item:nth-child(2n){border-right:none}
.why-item:nth-last-child(-n+2){border-bottom:none}
.why-item:hover{background:var(--bg-2)}
.why-num{font-family:'Libre Baskerville',serif;font-size:2.5rem;font-weight:700;color:var(--gold);opacity:0.4;line-height:1}
.why-item h3{font-family:'Libre Baskerville',serif;font-size:1.2rem;font-weight:700;color:var(--text-heading);line-height:1.3}
.why-item p{font-size:0.93rem;color:var(--text-muted);line-height:1.7}

/* STATS */
.stats-bar{background:var(--gold);padding-block:clamp(48px,8vw,80px);padding-inline:clamp(20px,5vw,80px)}
.stats-inner{display:grid;grid-template-columns:1fr 1px 1fr 1px 1fr;gap:2rem;max-width:860px;margin:0 auto;align-items:center}
.stat{text-align:center;padding-inline:1rem}
.stat-num{font-family:'Libre Baskerville',serif;font-size:clamp(2.2rem,5vw,3.8rem);font-weight:700;color:#0E0D0B;line-height:1;margin-bottom:0.4rem;font-variant-numeric:tabular-nums}
.stat-num--specialty{font-size:clamp(1.1rem,2vw,1.5rem);line-height:1.25}
.stat-label{font-size:0.72rem;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;color:rgba(14,13,11,0.55)}
.stat-rule{width:1px;background:rgba(14,13,11,0.18);align-self:stretch}

/* TESTIMONIALS */
.testimonials{background:var(--bg)}
.testimonial-grid{columns:3 300px;column-gap:1.5rem;margin-top:3rem}
.testimonial{background:var(--bg-2);border:1px solid var(--border);padding:2.5rem 2.25rem;display:flex;flex-direction:column;gap:1.25rem;transition:background 0.2s;break-inside:avoid;margin-bottom:1.5rem}
.testimonial:hover{background:var(--bg-3)}
.testimonial-mark{font-family:'Libre Baskerville',serif;font-size:3.2rem;line-height:0.55;color:var(--gold);opacity:0.4}
.testimonial blockquote{flex:1;display:flex;flex-direction:column;gap:1rem}
.testimonial p{font-size:1rem;color:var(--text);font-weight:300;line-height:1.8}
.testimonial-author{display:flex;align-items:center;gap:0.9rem;border-top:1px solid var(--border);padding-top:1.4rem;margin-top:0.5rem}
.testimonial-avatar{width:42px;height:42px;border-radius:50%;background:var(--bg-4);color:var(--gold);display:grid;place-items:center;font-family:'Libre Baskerville',serif;font-size:0.9rem;font-weight:700;flex-shrink:0;letter-spacing:0.02em}
.testimonial-name{font-family:'Libre Baskerville',serif;font-size:1rem;font-weight:700;color:var(--text-heading);line-height:1.3}

/* MISSION */
.mission{background:var(--bg-2);padding-inline:clamp(20px,10vw,160px);text-align:center}
.mission-quote{font-family:'Libre Baskerville',serif;font-size:clamp(1.4rem,3.5vw,2.3rem);font-style:italic;color:var(--text-heading);line-height:1.45;text-wrap:balance;max-width:820px;margin:0 auto 2rem}
.mission-quote strong{font-style:normal;color:var(--gold)}
.mission-sub{font-size:1rem;color:var(--text-muted);font-weight:300;max-width:500px;margin:0 auto 2.5rem;line-height:1.75}

/* CONTACT */
.contact{background:var(--bg)}
.contact-inner{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start}
.contact-phone-wrap{margin:1.25rem 0 0.5rem}
.contact-phone{font-family:'Libre Baskerville',serif;font-size:clamp(1.35rem,3vw,2.2rem);word-break:break-word;font-weight:700;color:var(--gold);text-decoration:none;display:block;line-height:1;transition:color 0.2s}
.contact-phone:hover{color:var(--gold-light)}
.contact-tagline{font-size:0.85rem;color:var(--text-muted);margin-top:0.9rem;margin-bottom:2rem}
.contact-meta{display:flex;flex-direction:column;gap:1.25rem;margin-top:2rem}
.contact-row{display:flex;gap:1rem;align-items:flex-start;font-size:0.9rem;color:var(--text-muted)}
.contact-row-lbl{font-size:0.68rem;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;color:var(--gold);min-width:72px;padding-top:2px}
.form{display:flex;flex-direction:column;gap:1.25rem}
.fg{display:flex;flex-direction:column;gap:0.35rem}
.fg label{font-size:0.68rem;font-weight:700;letter-spacing:0.15em;text-transform:uppercase;color:var(--text-muted)}
.fg input,.fg textarea,.fg select{background:var(--bg-2);border:1px solid var(--border);color:var(--text);font-family:'Source Sans 3',sans-serif;font-size:0.95rem;padding:0.75rem 1rem;border-radius:2px;width:100%;outline:none;transition:border-color 0.2s;-webkit-appearance:none}
.fg input:focus,.fg textarea:focus,.fg select:focus{border-color:var(--gold)}
.fg textarea{resize:vertical;min-height:110px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.fg select option{background:var(--bg-2)}
.form-note{font-size:0.8rem;color:var(--text-muted);line-height:1.5}
.hp-field{position:absolute;left:-9999px;top:-9999px}

/* FOOTER */
footer{background:var(--bg-2);border-top:1px solid var(--border);padding-block:2.5rem;padding-inline:clamp(20px,5vw,80px);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1.5rem}
.footer-logo img{height:34px;width:auto;opacity:0.8}
.footer-links{display:flex;gap:1.5rem;list-style:none;flex-wrap:wrap}
.footer-links a{color:var(--text-muted);text-decoration:none;font-size:0.75rem;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;transition:color 0.2s}
.footer-links a:hover{color:var(--gold)}
.footer-copy{font-size:0.78rem;color:var(--text-muted)}
.footer-area{flex-basis:100%;font-size:0.9rem;color:var(--text)}
.hero-scroll a{color:inherit;text-decoration:none}
.hero-scroll a:hover{color:var(--gold-light)}
.footer-social{display:flex;gap:1rem}
.footer-social a{color:var(--text-muted);display:inline-flex;transition:color 0.2s}
.footer-social a:hover{color:var(--gold)}

/* MOBILE */
@media(max-width:860px){
  .nav-links{gap:1.25rem}
  .nav-links a{font-size:0.74rem}
}
@media(max-width:700px){
  .nav-links{display:none}
  .nav-links.open{display:flex;flex-direction:column;position:fixed;top:var(--nav-h);left:0;right:0;background:var(--bg);border-bottom:1px solid var(--border);padding:1.5rem clamp(20px,5vw,80px);gap:1.25rem;z-index:99}
  .nav-toggle{display:flex}
  .why-grid{grid-template-columns:1fr}
  .why-item{border-right:none!important;border-bottom:1px solid var(--border)!important}
  .why-item:last-child{border-bottom:none!important}
  .section-hdr-media{grid-template-columns:1fr;gap:1.5rem}
  .section-photo{aspect-ratio:16/9}
  .stats-inner{grid-template-columns:1fr;gap:2.5rem}
  .stat-rule{display:none}
  .contact-inner{grid-template-columns:1fr;gap:3rem}
  .form-row{grid-template-columns:1fr}
  footer{flex-direction:column;align-items:flex-start}
  .hero-scroll{display:none}
}
@media(max-width:500px){
  .services-grid{grid-template-columns:1fr}
  .testimonial-grid{columns:1}
  .svc-photo{grid-column:span 1}
}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}

.svc h3 a{color:inherit;text-decoration:none}
.svc h3 a:hover{color:var(--gold-light)}
.svc h3 a::after{content:' ↗';color:var(--gold);font-family:'Source Sans 3',sans-serif}
.page-summaries{background:var(--bg-2)}
.page-summaries-inner{max-width:1160px;margin:0 auto}
.page-summaries .section-sub{color:var(--text);max-width:600px}
.summary-group + .summary-group{margin-top:4rem}
.summary-group-title{font-size:0.8rem;font-weight:700;letter-spacing:0.12em;text-transform:uppercase;color:var(--gold-light);padding-bottom:1rem;border-bottom:1px solid var(--gold-dim)}
.summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(2rem,5vw,4rem)}
.page-summary{display:flex;flex-direction:column;padding:2rem 0;border-bottom:1px solid var(--border);min-width:0}
.page-summary h4{font-family:'Libre Baskerville',Georgia,serif;font-size:clamp(1.15rem,2vw,1.4rem);line-height:1.4;color:var(--text-heading);margin-bottom:1rem}
.page-summary ul{padding-left:1.2rem;margin-bottom:1.25rem;color:var(--text)}
.page-summary li + li{margin-top:0.45rem}
.page-summary li::marker{color:var(--gold)}
.summary-link{align-self:flex-start;margin-top:auto;padding-block:0.4rem;color:var(--gold-light);font-weight:600;text-decoration:none;text-underline-offset:0.25em}
.summary-link span{display:inline-block;margin-left:0.35rem;transition:transform 0.2s}
.summary-link:hover{text-decoration:underline}
.summary-link:hover span{transform:translateX(3px)}
@media(max-width:650px){.summary-grid{grid-template-columns:1fr}.summary-group + .summary-group{margin-top:3rem}}
.contact-email{display:inline-block;color:var(--gold);font-size:clamp(1rem,2vw,1.25rem);overflow-wrap:anywhere;margin-top:1rem}
.form-note a,.contact-row a{color:var(--gold-light)}
.btn-primary:disabled{opacity:0.65;cursor:wait;transform:none}
.skip-link{position:fixed;top:0;left:1rem;z-index:200;transform:translateY(-120%);padding:0.75rem 1rem;background:var(--gold);color:var(--bg)}
.skip-link:focus{transform:translateY(0)}
.page-hero{padding-top:calc(var(--nav-h) + clamp(60px,8vw,100px));background:var(--bg-2);border-bottom:1px solid var(--border)}
.page-hero-inner{max-width:1000px;margin:0 auto}
.page-hero h1{font-family:'Libre Baskerville',Georgia,serif;font-size:clamp(2.1rem,5vw,4rem);line-height:1.18;color:var(--text-heading);margin-bottom:1.5rem;text-wrap:balance}
.page-hero .section-sub{max-width:740px;font-size:1.2rem}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:0.6rem;font-size:0.85rem;color:var(--text-muted);margin-bottom:2.5rem}
.breadcrumbs a,.article a{color:var(--gold-light)}
.article a.btn-primary{color:#000}
.page-content{max-width:1160px;margin:0 auto}
.article{max-width:800px;margin:0 auto}
.article h2{font-family:'Libre Baskerville',Georgia,serif;font-size:clamp(1.35rem,3vw,1.9rem);line-height:1.35;color:var(--text-heading);margin:2.5rem 0 1rem}
.article h2:first-child{margin-top:0}
.article p,.article li{color:var(--text);line-height:1.85;margin-bottom:1rem}
.article ul{padding-left:1.3rem}
.article strong{color:var(--gold-light)}
.article .hero-actions{margin-top:2.5rem}
.footer-services{flex-basis:100%;display:flex;flex-wrap:wrap;gap:0.7rem 1.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}
.footer-services a{font-size:0.85rem;color:var(--text-muted);text-decoration:none}
.footer-services a:hover{color:var(--gold-light)}
.nav-links a[aria-current="page"]{color:var(--gold-light)}
.page-hero-with-image{position:relative;overflow:hidden}
.page-hero-with-image .page-hero-inner{position:relative;z-index:1}
.page-hero-with-image .section-sub{color:var(--text)}
.mission-story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-width:1440px;gap:clamp(2rem,5vw,4rem);align-items:center}
.mission-story .article{width:100%;max-width:800px;margin:0 auto}
.mission-story .section-photo{width:100%;max-width:600px;justify-self:end}
.mission-story .article h2{margin-top:0}
@media(max-width:900px){.mission-story{grid-template-columns:1fr}.mission-story .section-photo{justify-self:center}}
@media(max-width:1000px){.nav-links{gap:1rem}.nav-links a{font-size:0.72rem}}
@media(max-width:800px){.nav-links{display:none}.nav-links.open{display:flex;flex-direction:column;position:fixed;top:var(--nav-h);left:0;right:0;background:var(--bg);border-bottom:1px solid var(--border);padding:1.5rem 20px;gap:1.25rem;z-index:99;max-height:calc(100dvh - var(--nav-h));overflow-y:auto}.nav-toggle{display:flex}}

/* Shared contact window */
.contact-popup{position:fixed;inset:calc(var(--nav-h) + 16px) max(16px,env(safe-area-inset-right)) auto auto;margin:0;width:min(420px,calc(100% - 32px));max-height:calc(100dvh - var(--nav-h) - 32px);overflow-y:auto;z-index:120;padding:clamp(20px,4vw,32px);background:var(--bg);color:var(--text);border:1px solid var(--gold-dim);border-top:3px solid var(--gold);border-radius:6px;box-shadow:0 24px 80px rgba(0,0,0,0.5);overscroll-behavior:contain}
.contact-popup-header{position:relative;padding-right:36px;margin-bottom:1.5rem}
.contact-popup-header .section-label{margin-bottom:0.5rem}
.contact-popup-header h2{font-family:'Libre Baskerville',serif;color:var(--text-heading);font-size:clamp(1.4rem,5vw,1.8rem);line-height:1.35;margin-bottom:0.75rem}
.contact-popup-header p{font-size:0.95rem;color:var(--gold-light);line-height:1.5}
.contact-popup-close{position:absolute;top:-10px;right:-10px;width:44px;height:44px;border:1px solid var(--border);border-radius:2px;background:var(--bg-2);color:var(--text);font-size:1.8rem;cursor:pointer}
.contact-popup-close:hover{border-color:var(--gold);color:var(--gold-light)}
.contact-popup .form{gap:0.85rem}
.contact-popup .fg label,.contact-popup .form-note{color:var(--gold-light)}
.contact-popup .fg textarea{min-height:85px}
.contact-popup .btn-primary{justify-content:center}
.contact-popup-launcher{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));z-index:110;box-shadow:0 4px 24px rgba(0,0,0,0.35)}
.contact-popup-close:focus-visible,.contact-popup-launcher:focus-visible{outline:2px solid var(--gold-light);outline-offset:4px}
.contact-popup-launcher[hidden]{display:none}
@media(max-width:480px){.contact-popup{max-height:60dvh}.contact-popup .form-row{grid-template-columns:1fr}}

/* Links to the next page, before the statistics banner */
.page-bridge{margin-top:3rem;padding-top:2rem;border-top:1px solid var(--gold-dim)}
