/* =========================================================
   Eagle Crest Villa — base.css
   Warm-Comfort: terracotta + cream + oak amber
   Fonts: Source Serif 4 · Inter Tight · JetBrains Mono
   ========================================================= */
:root {
  /* Brand-world tokens — the palette lives in eagle & oak country */
  --cream:       #FBF7F0;
  --parchment:   #F0E9DB;
  --linen:       #FDF9F4;
  --bark:        #221A12;
  --bark-2:      #2E2318;
  --amber:       #A8703A;   /* oak-gold metal accent — WCAG AA on cream */
  --honey:       #C08A52;
  --straw:       #E3CEAD;
  --adobe:       #C4634A;   /* terracotta spot */
  --walnut:      #5A4E44;
  --driftwood:   #7A6E60;

  /* structural aliases used throughout */
  --paper:       var(--cream);
  --paper-2:     var(--parchment);
  --paper-soft:  var(--linen);
  --ink:         var(--bark);
  --ink-2:       var(--bark-2);
  --accent:      var(--amber);
  --accent-2:    var(--honey);
  --accent-soft: var(--straw);
  --spot:        var(--adobe);
  --muted:       var(--walnut);
  --muted-2:     var(--driftwood);
  --line:        rgba(34,26,18,.12);
  --line-2:      rgba(34,26,18,.06);

  --f-display: "Source Serif 4", Georgia, serif;
  --f-body:    "Inter Tight", -apple-system, "Segoe UI", sans-serif;
  --f-mono:    "JetBrains Mono", "SF Mono", Menlo, monospace;

  --container:        1320px;
  --container-narrow: 1040px;
  --gutter: clamp(20px, 4vw, 56px);
  --ease: cubic-bezier(.22,1,.36,1);
  --shadow-soft: 0 1px 2px rgba(0,0,0,.04), 0 12px 32px -16px rgba(0,0,0,.10);
  --shadow-lift: 0 2px 4px rgba(0,0,0,.06), 0 24px 48px -20px rgba(0,0,0,.16);
}

/* ---- RESET ---- */
*{box-sizing:border-box;margin:0;padding:0;min-width:0}
*::selection{background:var(--ink);color:var(--paper)}
html{scroll-behavior:smooth;overflow-x:hidden;width:100%;max-width:100vw;-webkit-text-size-adjust:100%}
body{font-family:var(--f-body);font-size:16px;line-height:1.68;font-weight:400;
  color:var(--ink);background:var(--paper);overflow-x:hidden;width:100%;max-width:100vw;
  position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
section,header,footer{max-width:100vw;overflow-x:clip;position:relative}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none;transition:opacity .35s var(--ease)}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
::-webkit-scrollbar{width:6px}
::-webkit-scrollbar-track{background:var(--paper-2)}
::-webkit-scrollbar-thumb{background:var(--accent)}

/* ---- FILM GRAIN ---- */
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:200;
  opacity:.04;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:200px 200px}
@media(prefers-reduced-motion:reduce){body::after{display:none}}

/* ---- TYPOGRAPHY ---- */
h1,h2,h3,h4,h5{font-family:var(--f-display);font-weight:400;letter-spacing:-.012em;line-height:1.1;color:var(--ink)}
h1{font-size:clamp(2.6rem,6vw,5.2rem)}
h2{font-size:clamp(2rem,4vw,3.4rem)}
h3{font-size:clamp(1.3rem,2.2vw,1.9rem)}
p{color:var(--muted)}
em,.italic{font-style:italic;font-family:var(--f-display)}
.serif{font-family:var(--f-display);font-weight:400;letter-spacing:-.01em}
.eyebrow{font-family:var(--f-body);text-transform:uppercase;letter-spacing:.4em;
  font-size:11px;font-weight:500;color:var(--ink);display:inline-block}
.eyebrow::before{content:"";display:inline-block;width:28px;height:1px;
  background:var(--accent);margin-right:14px;vertical-align:middle}
.label-mono{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--muted-2)}

/* ---- LAYOUT ---- */
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.container-narrow{max-width:var(--container-narrow);margin:0 auto;padding:0 var(--gutter)}
.section{padding:clamp(64px,10vw,140px) 0}
.section--dark{background:var(--ink);color:var(--paper)}
.section--dark h1,.section--dark h2,.section--dark h3{color:var(--paper)}
.section--dark p{color:rgba(251,247,240,.72)}
.section--paper2{background:var(--paper-2)}
.section--adobe{background:var(--adobe);color:var(--linen)}
.section--adobe h2,.section--adobe .eyebrow{color:var(--linen)}
.section--adobe .eyebrow::before{background:var(--linen)}
.grid{display:grid;gap:clamp(24px,4vw,60px)}
.center{text-align:center}
.mt-s{margin-top:16px}.mt-m{margin-top:32px}.mt-l{margin-top:64px}
.maxw-prose{max-width:60ch}

/* ---- BUTTONS ---- */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-body);
  font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;
  padding:15px 28px;border:1.5px solid var(--ink);background:var(--ink);
  color:var(--paper);transition:all .35s var(--ease)}
.btn:hover{background:transparent;color:var(--ink);opacity:1}
.btn--ghost{background:transparent;color:var(--ink)}
.btn--ghost:hover{background:var(--ink);color:var(--paper)}
.btn--adobe{background:var(--adobe);border-color:var(--adobe);color:var(--linen)}
.btn--adobe:hover{background:transparent;color:var(--adobe);border-color:var(--adobe)}

/* ---- ANNOUNCE ---- */
.announce{background:var(--bark);text-align:center;padding:11px 20px;
  font-size:10.5px;letter-spacing:.36em;text-transform:uppercase;
  color:rgba(253,249,244,.7);font-weight:400}
.announce span{color:var(--honey)}

/* ---- NAV ---- */
.nav{position:sticky;top:0;z-index:100;display:grid;
  grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;
  padding:18px var(--gutter);
  background:color-mix(in srgb,var(--paper) 92%,transparent);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--line);transition:padding .35s var(--ease)}
.nav.scrolled{padding-top:12px;padding-bottom:12px}
.nav-logo{justify-self:start;font-family:var(--f-display);font-size:1.35rem;
  letter-spacing:.02em;color:var(--ink)}
.nav-links{display:flex;gap:28px;justify-self:center;list-style:none;
  font-size:11px;letter-spacing:.26em;text-transform:uppercase;font-weight:500}
.nav-links a:hover{color:var(--adobe);opacity:1}
.nav-links a.active{color:var(--adobe)}
.nav-cta{justify-self:end}
.nav-burger{display:none;flex-direction:column;gap:5px;padding:8px}
.nav-burger span{width:24px;height:1.5px;background:var(--ink);transition:.3s var(--ease)}

/* ---- HERO ---- */
.hero{padding:0}
.hero-grid{display:grid;grid-template-columns:1.1fr 1fr;min-height:92vh;align-items:stretch}
.hero-text{display:flex;flex-direction:column;justify-content:center;
  padding:clamp(48px,8vw,120px) var(--gutter) clamp(48px,8vw,120px) clamp(32px,6vw,calc((100vw - var(--container))/2 + var(--gutter)))}
.hero-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;
  font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;
  color:var(--muted-2);margin-bottom:28px}
.hero-meta-row .dot{width:3px;height:3px;border-radius:50%;background:var(--accent)}
.hero-title{margin-bottom:22px;line-height:1.05}
.hero-tag{font-size:clamp(1rem,1.5vw,1.15rem);max-width:48ch;color:var(--muted)}
.hero-img{position:relative;overflow:hidden;background:var(--parchment)}
.hero-img img{width:100%;height:100%;object-fit:cover}
.hero-img-overlay{position:absolute;inset:0;
  background:linear-gradient(to right,var(--cream) 0%,transparent 30%)}

/* ---- TRUST BAR ---- */
.trust-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.trust-item{padding:clamp(28px,4vw,48px) var(--gutter);text-align:center;
  border-right:1px solid var(--line)}
.trust-item:last-child{border-right:none}
.trust-num{font-family:var(--f-display);font-size:clamp(2rem,3.5vw,3rem);
  color:var(--adobe);letter-spacing:-.02em;line-height:1}
.trust-label{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted-2);margin-top:6px}

/* ---- MARQUEE ---- */
.marquee{overflow:hidden;border-block:1px solid var(--line);
  padding:13px 0;background:var(--paper-2)}
.marquee-track{display:flex;gap:28px;white-space:nowrap;width:max-content;
  font-family:var(--f-mono);font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--muted-2);animation:marq 32s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span:nth-child(even){color:var(--adobe)}
@keyframes marq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee-track{animation:none}}

/* ---- CARDS ---- */
.care-card{background:var(--paper);border:1px solid var(--line);
  border-top:3px solid var(--adobe);padding:32px 28px;
  transition:box-shadow .35s var(--ease)}
.care-card:hover{box-shadow:var(--shadow-lift)}
.care-card h3{margin-top:16px}
.care-card p{margin-top:8px;font-size:.95rem}
.care-icon{width:40px;height:40px;color:var(--adobe)}

/* ---- TESTIMONIALS ---- */
.testimonial-block{max-width:72ch;margin:0 auto}
.testimonial-quote{font-family:var(--f-display);font-size:clamp(1.4rem,2.6vw,2rem);
  font-style:italic;color:var(--paper);line-height:1.45;position:relative}
.testimonial-quote::before{content:'\201C';font-size:5rem;line-height:0;
  vertical-align:-.4em;color:var(--adobe);margin-right:8px}
.testimonial-cite{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(253,249,244,.55);margin-top:20px}

/* ---- FAQ ---- */
details{border-bottom:1px solid var(--line);padding:20px 0}
details summary{font-family:var(--f-display);font-size:1.15rem;cursor:pointer;
  list-style:none;display:flex;justify-content:space-between;align-items:center;
  gap:16px;color:var(--ink)}
details summary::-webkit-details-marker{display:none}
details summary::after{content:'+';font-family:var(--f-body);font-size:1.4rem;
  color:var(--adobe);flex-shrink:0;transition:.3s var(--ease)}
details[open] summary::after{content:'−'}
details p{margin-top:14px;font-size:.95rem;max-width:64ch}

/* ---- CONTACT FORM ---- */
.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.form-field label{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted-2)}
.form-field input,.form-field textarea,.form-field select{
  font-family:var(--f-body);font-size:.95rem;padding:12px 14px;
  border:1px solid var(--line);background:var(--paper);color:var(--ink);
  border-radius:2px;outline:none;transition:border-color .25s var(--ease)}
.form-field input:focus,.form-field textarea:focus{border-color:var(--adobe)}
.form-field textarea{resize:vertical;min-height:110px}

/* ---- REVEAL ---- */
.reveal{opacity:0;transform:translateY(22px);
  transition:opacity .9s var(--ease),transform .9s var(--ease)}
.reveal.is-in,.no-js .reveal{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ---- IMAGE FALLBACK ---- */
.img-fallback{display:flex;align-items:center;justify-content:center;
  background:var(--paper-2);border:1px solid var(--line);min-height:260px}
.img-fallback-cap{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--muted-2);padding:24px;text-align:center}

/* ---- FOOTER ---- */
.footer{background:var(--bark);color:var(--paper);
  padding:clamp(56px,8vw,100px) 0 0}
.footer h3,.footer .serif{color:var(--paper)}
.footer p{color:rgba(251,247,240,.65)}
.footer a{color:rgba(251,247,240,.65)}
.footer a:hover{color:var(--honey);opacity:1}
.footer-bottom{margin-top:56px;padding:20px var(--gutter);
  border-top:1px solid rgba(251,247,240,.12);
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:12px}
.footer-credit{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.06em;
  color:rgba(251,247,240,.4)}
.footer-credit a{color:rgba(251,247,240,.4)}
.footer-credit a:hover{color:var(--honey);opacity:1}
.footer-copy{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.04em;
  color:rgba(251,247,240,.4)}

/* ---- PAGE HERO (inner pages) ---- */
.page-hero{background:var(--paper-2);padding:clamp(60px,10vw,120px) 0 clamp(48px,7vw,90px)}
.page-hero .eyebrow{color:var(--adobe)}
.page-hero .eyebrow::before{background:var(--adobe)}

/* ---- RESPONSIVE ---- */
@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;min-height:auto}
  .hero-img{height:55vw;min-height:280px}
  .hero-img-overlay{background:linear-gradient(to bottom,var(--cream) 0%,transparent 40%)}
  .trust-bar{grid-template-columns:repeat(2,1fr)}
  .trust-item{border-right:none;border-bottom:1px solid var(--line)}
  .trust-item:nth-child(odd){border-right:1px solid var(--line)}
}
@media(max-width:860px){
  .nav-links{display:none}
  .nav-burger{display:flex}
  .nav{grid-template-columns:1fr auto}
  .nav-cta{display:none}
  .nav-links.open{display:flex;position:fixed;inset:58px 0 auto 0;
    flex-direction:column;background:var(--paper);
    padding:32px var(--gutter);gap:20px;
    border-bottom:1px solid var(--line);z-index:99}
  .grid{gap:28px}
}
@media(max-width:560px){
  .trust-bar{grid-template-columns:1fr 1fr}
  .footer-bottom{flex-direction:column;align-items:flex-start}
}
