/* =============================================================
   NEW ENGLAND HOME MEDIA — Global Stylesheet
   Shared by index.html, services.html, about.html, contact.html
   -------------------------------------------------------------
   Palette : deep slate / rich navy · crisp cool white · champagne gold
   Type    : Playfair Display (headlines) · Inter (everything else)
   Motif   : gold "viewfinder" corner brackets (the lens crop-mark)
   ============================================================= */

/* ---------- Design tokens ---------- */
:root{
  --ink:        #0F1720;   /* deep slate / rich navy — primary      */
  --ink-2:      #1A2530;   /* raised slate surface                  */
  --ink-soft:   #4A5563;   /* secondary text on light (cool)        */
  --charcoal:   #1F262E;   /* refined charcoal — body text          */
  --paper:      #F6F7F9;   /* crisp cool off-white background        */
  --paper-2:    #FFFFFF;   /* pure white                            */
  --paper-3:    #ECEFF3;   /* cool light gray — subtle section fill  */
  --gold:       #C0A063;   /* refined champagne gold — accent        */
  --gold-deep:  #8F7239;   /* pressed gold                          */
  --champagne:  #E7DFCB;   /* pale gold fill                        */
  --line:       rgba(15,23,32,.12);    /* hairline on light        */
  --line-2:     rgba(255,255,255,.15); /* hairline on dark         */

  /* Playfair Display = elegant serif for headlines & important figures.
     Inter = primary UI font for body, nav, subheadings, labels, buttons. */
  --display: "Playfair Display", Georgia, "Times New Roman", serif;
  --body:    "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono:    "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  --wrap: 1180px;
  --radius: 4px;
  --ease: cubic-bezier(.22,.61,.36,1);
  --shadow: 0 24px 45px -30px rgba(15,23,32,.55);
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family:var(--body);
  color:var(--charcoal);
  background:var(--paper);
  line-height:1.65;
  font-size:clamp(1rem,.96rem + .2vw,1.075rem);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; -webkit-tap-highlight-color:transparent; }
ul{ list-style:none; }
button{ font:inherit; cursor:pointer; border:none; background:none; color:inherit; -webkit-tap-highlight-color:transparent; }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; border-radius:2px; }

/* Major headlines → Playfair Display (elegant serif) */
h1,h2{ font-family:var(--display); font-weight:600; line-height:1.08; letter-spacing:-.005em; color:var(--ink); }
/* Subheadings / card titles → Inter (clean, modern) */
h3,h4{ font-family:var(--body); font-weight:600; line-height:1.2; letter-spacing:-.005em; color:var(--ink); }

/* ---------- Layout helpers ---------- */
.container{ width:min(100% - 2.4rem, var(--wrap)); margin-inline:auto; }
.section{ padding:clamp(3.5rem,7vw,6rem) 0; }
.section--tight{ padding-top:0; }
.section-head{ max-width:660px; margin-bottom:2.8rem; }
.section-head.center{ margin-inline:auto; text-align:center; }
.section-head h2{ font-size:clamp(2rem,1.4rem + 2.6vw,3.1rem); margin:.9rem 0 .8rem; }
.section-head p{ color:var(--ink-soft); font-size:1.06rem; }

/* Monospace kicker / eyebrow — the "spec label" motif */
.kicker{
  font-family:var(--mono); font-size:.72rem; letter-spacing:.28em;
  text-transform:uppercase; color:var(--gold-deep);
  display:inline-flex; align-items:center; gap:.7rem;
}
.kicker::before{ content:""; width:26px; height:1px; background:var(--gold); }
.kicker.center{ justify-content:center; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  padding:.95rem 1.7rem; font-family:var(--mono); font-size:.78rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; border-radius:var(--radius);
  transition:transform .25s var(--ease), background .25s var(--ease), color .25s var(--ease), box-shadow .25s var(--ease);
}
.btn-gold{ background:var(--gold); color:var(--ink); box-shadow:0 8px 22px -12px rgba(198,161,91,.9); }
.btn-gold:hover{ background:#d8b56d; transform:translateY(-2px); box-shadow:0 14px 30px -14px rgba(198,161,91,1); }
.btn-ghost{ border:1px solid var(--line-2); color:#fff; }
.btn-ghost:hover{ border-color:var(--gold); color:var(--gold); transform:translateY(-2px); }
.btn-outline{ border:1px solid var(--ink); color:var(--ink); }
.btn-outline:hover{ background:var(--ink); color:var(--paper); transform:translateY(-2px); }
.btn .arrow{ transition:transform .25s var(--ease); }
.btn:hover .arrow{ transform:translateX(4px); }

/* Premium header "Book a Shoot" CTA — gilded gradient + glass sheen */
.nav-cta .btn{
  position:relative; overflow:hidden; isolation:isolate;
  color:var(--ink);
  background:linear-gradient(135deg, #E0C688 0%, var(--gold) 46%, #A5843F 100%);
  border:1px solid rgba(255,255,255,.4);
  box-shadow:0 6px 18px -6px rgba(143,114,57,.55), inset 0 1px 0 rgba(255,255,255,.5);
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  transition:transform .25s var(--ease), box-shadow .3s var(--ease), filter .3s var(--ease);
}
.nav-cta .btn::before{           /* glass sheen across the top */
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,0) 46%);
}
.nav-cta .btn:hover{
  transform:translateY(-2px); filter:saturate(1.06) brightness(1.03);
  box-shadow:0 12px 26px -8px rgba(143,114,57,.72), inset 0 1px 0 rgba(255,255,255,.6);
}
.nav-cta .btn:active{ transform:translateY(0); }

/* ---------- Viewfinder corner-bracket signature ---------- */
.viewfinder{ position:relative; }
.viewfinder > .vf{ position:absolute; width:24px; height:24px; pointer-events:none; }
.vf.tl{ top:0; left:0; border-top:2px solid var(--gold); border-left:2px solid var(--gold); }
.vf.tr{ top:0; right:0; border-top:2px solid var(--gold); border-right:2px solid var(--gold); }
.vf.bl{ bottom:0; left:0; border-bottom:2px solid var(--gold); border-left:2px solid var(--gold); }
.vf.br{ bottom:0; right:0; border-bottom:2px solid var(--gold); border-right:2px solid var(--gold); }

/* =============================================================
   HEADER / STICKY NAV
   ============================================================= */
.site-header{
  position:sticky; top:0; z-index:60;
  background:rgba(246,247,249,.86);
  backdrop-filter:saturate(140%) blur(14px);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid var(--line);
}
.nav{ display:flex; align-items:center; justify-content:space-between; height:80px; }
.brand{ display:flex; align-items:center; gap:.8rem; }
.brand-mark{ height:48px; width:auto; }
/* Two-line wordmark spelling out the full company name */
.brand-word{
  font-family:var(--body); font-weight:700; font-size:.82rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--ink); line-height:1.28; white-space:nowrap;
  display:flex; flex-direction:column;
}
.brand-word .bw2{ font-weight:500; letter-spacing:.28em; color:var(--gold-deep); }

.nav-links{ display:flex; align-items:center; gap:.4rem; }
.nav-link{
  position:relative; font-family:var(--mono); font-size:.74rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; padding:.6rem .85rem;
  color:var(--ink-soft); transition:color .2s var(--ease);
}
.nav-link:hover{ color:var(--ink); }
.nav-link::after{
  content:""; position:absolute; left:.85rem; right:.85rem; bottom:.35rem; height:2px;
  background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .3s var(--ease);
}
.nav-link:hover::after,
.nav-link.active::after{ transform:scaleX(1); }
.nav-link.active{ color:var(--ink); }
.nav-cta{ margin-left:.6rem; }

/* Burger */
.burger{ display:none; width:44px; height:44px; align-items:center; justify-content:center; }
.burger span{ position:relative; width:24px; height:2px; background:var(--ink); transition:.3s var(--ease); }
.burger span::before,.burger span::after{ content:""; position:absolute; left:0; width:24px; height:2px; background:var(--ink); transition:.3s var(--ease); }
.burger span::before{ top:-7px; } .burger span::after{ top:7px; }
.burger.open span{ background:transparent; }
.burger.open span::before{ top:0; transform:rotate(45deg); }
.burger.open span::after{ top:0; transform:rotate(-45deg); }

/* =============================================================
   HERO (home) + PAGE HERO (interior pages)
   ============================================================= */
.hero{
  position:relative; color:#fff; isolation:isolate;
  min-height:min(94vh,860px); display:flex; align-items:center; padding:7rem 0 4rem;
}
.hero-bg{ position:absolute; inset:0; z-index:-2; overflow:hidden; }
.hero-bg img{ width:100%; height:100%; object-fit:cover; object-position:center 55%; }
/* Cinematic slate wash: readable text on the left, deep grade at the base, soft vignette */
.hero-bg::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(11,17,24,.60) 0%, rgba(11,17,24,.30) 38%, rgba(11,17,24,.92) 100%),
    linear-gradient(90deg, rgba(11,17,24,.80) 0%, rgba(11,17,24,.34) 52%, rgba(11,17,24,0) 82%),
    radial-gradient(120% 90% at 70% 30%, transparent 55%, rgba(11,17,24,.35) 100%);
}
.hero-inner{ max-width:740px; padding:2.4rem; }
.hero .vf{ width:34px; height:34px; }
.hero .kicker{ color:var(--gold); }
.hero .kicker::before{ background:var(--gold); }
.hero h1{
  color:#fff; font-size:clamp(2.6rem,1.4rem + 5.4vw,5rem); font-weight:600;
  line-height:1.04; margin:1.4rem 0 1.2rem; letter-spacing:-.01em;
}
.hero h1 em{ font-style:italic; font-weight:500; color:var(--gold); }
.hero .lede{ font-size:clamp(1.05rem,1rem + .5vw,1.28rem); color:rgba(255,255,255,.9); max-width:46ch; }
.hero-actions{ display:flex; flex-wrap:wrap; gap:.9rem; margin-top:2.2rem; }

.spec-strip{ display:flex; flex-wrap:wrap; gap:1.6rem 2.4rem; margin-top:2.6rem; padding-top:1.6rem; border-top:1px solid var(--line-2); }
.spec{ display:flex; flex-direction:column; gap:.15rem; }
.spec b{ font-family:var(--display); font-size:1.5rem; font-weight:600; color:#fff; line-height:1; }
.spec span{ font-family:var(--mono); font-size:.66rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.6); }

/* Interior-page hero (smaller banner with image) */
.page-hero{
  position:relative; color:#fff; isolation:isolate;
  padding:clamp(5rem,10vw,8rem) 0 clamp(3rem,6vw,4.5rem); display:flex; align-items:flex-end; min-height:340px;
}
.page-hero-bg{ position:absolute; inset:0; z-index:-2; overflow:hidden; }
.page-hero-bg img{ width:100%; height:100%; object-fit:cover; }
.page-hero-bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(11,17,24,.52), rgba(11,17,24,.86)); }
.page-hero .kicker{ color:var(--gold); }
.page-hero .kicker::before{ background:var(--gold); }
.page-hero h1{ color:#fff; font-size:clamp(2.2rem,1.5rem + 3vw,3.8rem); margin:1rem 0 .6rem; }
.page-hero p{ color:rgba(255,255,255,.82); max-width:52ch; font-size:1.08rem; }

/* =============================================================
   GRIDS & FEATURE CARDS
   ============================================================= */
.grid{ display:grid; gap:1.1rem; }
.cols-2{ grid-template-columns:repeat(2,1fr); }
.cols-3{ grid-template-columns:repeat(3,1fr); }
.cols-4{ grid-template-columns:repeat(4,1fr); }

.feature{
  position:relative; background:var(--paper-2); border:1px solid var(--line);
  border-radius:var(--radius); padding:1.9rem 1.7rem;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s var(--ease);
}
.feature:hover{ transform:translateY(-4px); box-shadow:var(--shadow); border-color:transparent; }
.feature::before,.feature::after{ content:""; position:absolute; width:16px; height:16px; opacity:0; transition:opacity .3s var(--ease); }
.feature::before{ top:-1px; left:-1px; border-top:2px solid var(--gold); border-left:2px solid var(--gold); }
.feature::after{ bottom:-1px; right:-1px; border-bottom:2px solid var(--gold); border-right:2px solid var(--gold); }
.feature:hover::before,.feature:hover::after{ opacity:1; }
.feature .ico{ width:46px; height:46px; display:grid; place-items:center; margin-bottom:1.1rem; color:var(--gold-deep); background:var(--paper-3); border-radius:var(--radius); }
.feature h3{ font-size:1.28rem; margin-bottom:.5rem; }
.feature p{ color:var(--ink-soft); font-size:.98rem; }

/* =============================================================
   DARK SPLIT PANEL + STAT CARD
   ============================================================= */
.panel-dark{ background:var(--ink); color:rgba(255,255,255,.82); }
.panel-dark h2,.panel-dark h3,.panel-dark h4{ color:#fff; }
.panel-dark .section-head p{ color:rgba(255,255,255,.7); }
.split{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4.5rem); align-items:center; }
.split.top{ align-items:start; }
.check-list{ display:grid; gap:.9rem; margin-top:1.6rem; }
.check-list li{ display:flex; gap:.85rem; align-items:flex-start; }
.check-list svg{ flex:none; margin-top:.15rem; color:var(--gold); }
.stat-card{ position:relative; background:var(--ink-2); border:1px solid var(--line-2); border-radius:6px; padding:2.4rem; }
.stat-card .row{ display:flex; justify-content:space-between; align-items:baseline; padding:1.05rem 0; border-bottom:1px solid var(--line-2); }
.stat-card .row:last-child{ border-bottom:none; }
.stat-card .row b{ font-family:var(--display); font-size:2rem; color:var(--gold); font-weight:600; }
.stat-card .row span{ font-family:var(--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.65); max-width:11rem; text-align:right; }

/* =============================================================
   IMAGE GALLERY (real New England properties)
   ============================================================= */
.gallery{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:1rem; }
.gallery figure{ position:relative; overflow:hidden; border-radius:var(--radius); }
.gallery img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease); }
.gallery figure::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(9,17,27,.55)); opacity:0; transition:opacity .4s var(--ease); }
.gallery figure:hover img{ transform:scale(1.06); }
.gallery figure:hover::after{ opacity:1; }
.gallery figcaption{ position:absolute; left:1rem; bottom:.85rem; z-index:2; font-family:var(--mono); font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:#fff; opacity:0; transform:translateY(6px); transition:.4s var(--ease); }
.gallery figure:hover figcaption{ opacity:1; transform:none; }
.gallery .wide{ grid-column:span 2; }
.gallery .tall{ grid-row:span 2; }

/* =============================================================
   SERVICE LIST (13 services)
   ============================================================= */
.svc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.svc{ background:var(--paper-2); padding:1.5rem 1.4rem; display:flex; gap:1rem; align-items:flex-start; transition:background .25s var(--ease); }
.svc:hover{ background:var(--paper-3); }
.svc .emoji{ font-size:1.5rem; line-height:1; flex:none; }
.svc h4{ font-family:var(--body); font-weight:600; font-size:1rem; color:var(--ink); margin-bottom:.2rem; }
.svc p{ font-size:.86rem; color:var(--ink-soft); }

/* =============================================================
   PRICING PACKAGES
   ============================================================= */
.pricing{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.4rem; align-items:stretch; }
.price-card{
  position:relative; background:var(--paper-2); border:1px solid var(--line); border-radius:8px;
  padding:2.2rem 1.9rem; display:flex; flex-direction:column;
  transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.price-card:hover{ transform:translateY(-5px); box-shadow:0 30px 55px -34px rgba(14,27,42,.55); }
.price-card.featured{ background:var(--ink); color:rgba(255,255,255,.82); border-color:var(--gold); transform:scale(1.015); }
.price-card.featured:hover{ transform:scale(1.015) translateY(-5px); }
.price-card.featured h3,.price-card.featured .price b{ color:#fff; }
.price-card.featured .pkg-for{ color:rgba(255,255,255,.6); }
.price-card.featured li{ color:rgba(255,255,255,.8); }
.price-card.featured .price{ border-color:var(--line-2); }
.price-card.featured li svg{ color:var(--gold); }
.tag{ position:absolute; top:-.8rem; left:50%; transform:translateX(-50%); font-family:var(--mono); font-size:.62rem; font-weight:700; letter-spacing:.2em; text-transform:uppercase; background:var(--gold); color:var(--ink); padding:.4rem .9rem; border-radius:100px; }
.price-card h3{ font-size:1.5rem; }
.pkg-for{ font-family:var(--mono); font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); margin:.5rem 0 1.4rem; }
.price{ display:flex; align-items:baseline; gap:.35rem; margin-bottom:1.5rem; padding-bottom:1.5rem; border-bottom:1px solid var(--line); }
.price b{ font-family:var(--display); font-size:3rem; font-weight:600; color:var(--ink); line-height:1; }
.price-card ul{ display:grid; gap:.75rem; margin-bottom:1.8rem; flex:1; }
.price-card li{ display:flex; gap:.65rem; align-items:flex-start; font-size:.92rem; color:var(--charcoal); }
.price-card li svg{ flex:none; margin-top:.2rem; color:var(--gold-deep); }
.price-card .btn{ width:100%; }

/* Rate table + add-ons */
.rate-table{ width:100%; border-collapse:collapse; font-size:.95rem; }
.rate-table tr{ border-bottom:1px solid var(--line-2); }
.rate-table tr:last-child{ border-bottom:none; }
.rate-table td{ padding:1rem .4rem; color:rgba(255,255,255,.85); }
.rate-table td small{ color:rgba(255,255,255,.5); }
.rate-table td:last-child{ text-align:right; font-family:var(--mono); font-weight:700; color:var(--gold); white-space:nowrap; }
.addon-list{ display:grid; gap:1px; background:var(--line-2); border:1px solid var(--line-2); border-radius:var(--radius); overflow:hidden; }
.addon-list li{ background:var(--ink-2); display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:1.05rem 1.3rem; }
.addon-list .lbl{ font-weight:500; color:#fff; }
.addon-list .lbl small{ color:rgba(255,255,255,.5); font-weight:400; }
.addon-list .amt{ font-family:var(--mono); font-weight:700; color:var(--gold); white-space:nowrap; }

/* Booking notes */
.notes{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.4rem; }
.note{ background:var(--paper-2); border-left:3px solid var(--gold); border-radius:0 var(--radius) var(--radius) 0; padding:1.4rem 1.5rem; }
.note h4{ font-family:var(--mono); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-deep); margin-bottom:.5rem; }
.note p{ font-size:.94rem; color:var(--ink-soft); }

/* =============================================================
   ABOUT PROSE + AREA TAGS
   ============================================================= */
.lead-para{ font-family:var(--display); font-size:clamp(1.35rem,1.1rem + 1.2vw,1.9rem); line-height:1.4; font-weight:400; color:var(--ink); }
.prose p{ margin-bottom:1.15rem; color:var(--ink-soft); }
.prose p:last-child{ margin-bottom:0; }
.about-figure{ position:relative; border-radius:8px; overflow:hidden; }
.about-figure img{ width:100%; height:100%; object-fit:cover; min-height:340px; }
.area-tags{ display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1.4rem; }
.area-tags span{ font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; padding:.45rem .85rem; border:1px solid var(--line); border-radius:100px; color:var(--ink-soft); background:var(--paper-2); }

/* =============================================================
   CONTACT FORM
   ============================================================= */
.contact-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(2rem,5vw,4rem); align-items:start; }
.form-card{ position:relative; background:var(--paper-2); border:1px solid var(--line); border-radius:8px; padding:clamp(1.6rem,3vw,2.6rem); box-shadow:var(--shadow); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; }
.field{ margin-bottom:1.1rem; display:flex; flex-direction:column; }
.field label{ font-family:var(--mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:.5rem; }
.field input,.field select,.field textarea{
  font-family:var(--body); font-size:.98rem; color:var(--charcoal);
  background:var(--paper); border:1px solid var(--line); border-radius:var(--radius);
  padding:.85rem .95rem; transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
.field textarea{ resize:vertical; min-height:130px; }
.field input:focus,.field select:focus,.field textarea:focus{ outline:none; border-color:var(--gold); box-shadow:0 0 0 3px rgba(198,161,91,.18); }
.form-note{ font-size:.82rem; color:var(--ink-soft); margin-top:.9rem; }
.form-status{ margin-top:1rem; font-size:.86rem; letter-spacing:.01em; min-height:1.2em; }
/* Success / error banners after form submission */
.form-status.show{ display:flex; align-items:flex-start; gap:.6rem; padding:.85rem 1rem; border-radius:var(--radius); font-weight:500; }
.form-status.success{ background:rgba(46,125,90,.1); color:#1f6a4c; border:1px solid rgba(46,125,90,.32); }
.form-status.error{ background:rgba(178,58,58,.09); color:#a23636; border:1px solid rgba(178,58,58,.3); }
.form-status.success::before{ content:"✓"; font-weight:700; }
.form-status.error::before{ content:"!"; font-weight:700; }

.contact-aside .info-row{ display:flex; gap:1rem; align-items:flex-start; padding:1.3rem 0; border-bottom:1px solid var(--line); }
.contact-aside .info-row:first-child{ padding-top:0; }
.contact-aside .info-row:last-child{ border-bottom:none; }
.contact-aside .ico{ width:44px; height:44px; flex:none; display:grid; place-items:center; background:var(--paper-3); color:var(--gold-deep); border-radius:var(--radius); }
.contact-aside h4{ font-family:var(--mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:.25rem; }
.contact-aside p{ color:var(--ink); font-weight:500; }
.contact-aside a{ color:var(--gold-deep); }

/* =============================================================
   CTA BAND
   ============================================================= */
.cta-band{ position:relative; background:var(--ink); color:#fff; border-radius:10px; padding:clamp(2.5rem,5vw,4rem); text-align:center; overflow:hidden; }
.cta-band::before{ content:""; position:absolute; inset:0; background:radial-gradient(circle at 50% -20%, rgba(198,161,91,.22), transparent 60%); }
.cta-band > *{ position:relative; }
.cta-band h2{ color:#fff; font-size:clamp(1.8rem,1.3rem + 2.4vw,2.9rem); margin:.9rem auto 1rem; max-width:20ch; }
.cta-band p{ color:rgba(255,255,255,.75); max-width:46ch; margin:0 auto 1.9rem; }

/* =============================================================
   FOOTER
   ============================================================= */
.site-footer{ background:var(--ink); color:rgba(255,255,255,.72); padding:3.4rem 0 2rem; }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:2rem; padding-bottom:2.4rem; border-bottom:1px solid var(--line-2); }
.footer-brand{ margin-bottom:1rem; }
.footer-brand .brand-mark{ height:52px; filter:brightness(0) invert(1); }
.footer-brand .brand-word{ color:#fff; }
.footer-brand .brand-word .bw2{ color:var(--gold); }
.footer-blurb{ font-size:.92rem; max-width:32ch; }
.footer-col h5{ font-family:var(--mono); font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin-bottom:1rem; }
.footer-col a,.footer-col p{ display:block; font-size:.92rem; padding:.28rem 0; color:rgba(255,255,255,.72); transition:color .2s var(--ease); }
.footer-col a:hover{ color:var(--gold); }
.footer-bottom{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem; padding-top:1.6rem; font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; color:rgba(255,255,255,.5); }
.footer-bottom a:hover{ color:var(--gold); }

/* =============================================================
   SCROLL-REVEAL ANIMATION
   ============================================================= */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease); will-change:opacity,transform; }
.reveal.in{ opacity:1; transform:none; }

/* =============================================================
   RESPONSIVE — tablet
   ============================================================= */
@media (max-width:960px){
  .cols-4{ grid-template-columns:repeat(2,1fr); }
  .cols-3{ grid-template-columns:repeat(2,1fr); }
  .svc-grid{ grid-template-columns:repeat(2,1fr); }
  .pricing{ grid-template-columns:1fr; max-width:460px; margin-inline:auto; }
  .price-card.featured{ transform:none; order:-1; }
  .price-card.featured:hover{ transform:translateY(-5px); }
  .split{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; }
  .footer-top{ grid-template-columns:1fr 1fr; }
  .gallery{ grid-template-columns:repeat(2,1fr); grid-auto-rows:190px; }
  .gallery .wide{ grid-column:span 2; }
  .gallery .tall{ grid-row:span 1; }
}

/* =============================================================
   RESPONSIVE — mobile
   ============================================================= */
/* Collapse nav to a burger menu on tablets (incl. iPad portrait) + phones */
@media (max-width:860px){
  .nav{ height:72px; }
  .brand-mark{ height:42px; }
  .brand-word{ font-size:.78rem; letter-spacing:.16em; }
  .burger{ display:flex; }
  /* Clean floating menu panel — no dividers, soft shadow, rounded base */
  .nav-links{
    position:fixed; inset:72px 0 auto 0; flex-direction:column; align-items:stretch; gap:.25rem;
    background:var(--paper-2); border:none; border-radius:0 0 16px 16px;
    padding:1rem 1.4rem 1.6rem;
    transform:translateY(-140%); opacity:0; visibility:hidden;
    transition:transform .38s var(--ease), opacity .3s var(--ease), visibility .38s var(--ease);
    box-shadow:0 26px 50px -22px rgba(15,23,32,.35);
  }
  .nav-links.open{ transform:translateY(0); opacity:1; visibility:visible; }
  /* Menu links: no borders/underlines, generous tap targets, elegant type */
  .nav-link{
    display:block; padding:.95rem .35rem; font-size:1rem; font-weight:600;
    letter-spacing:.06em; text-transform:none; color:var(--ink);
    border:none; border-radius:8px; transition:color .2s var(--ease), background .2s var(--ease);
  }
  .nav-link::after{ display:none; }          /* kill the desktop hover underline */
  .nav-link:hover{ color:var(--gold-deep); }
  .nav-link.active{ color:var(--gold-deep); font-weight:700; }
  .nav-cta{ margin:.9rem 0 0; }
  .nav-cta .btn{ width:100%; }
}

/* Single-column layouts on phones */
@media (max-width:640px){
  .cols-2,.cols-3,.cols-4{ grid-template-columns:1fr; }
  .svc-grid{ grid-template-columns:1fr; }
  .notes,.form-row{ grid-template-columns:1fr; }
  .footer-top{ grid-template-columns:1fr; }
  .gallery{ grid-template-columns:1fr; grid-auto-rows:220px; }
  .gallery .wide,.gallery .tall{ grid-column:auto; grid-row:auto; }
  .hero-inner{ padding:1.6rem; }
  .spec-strip{ gap:1.2rem 1.8rem; }
  .brand-mark{ height:40px; }
  .brand-word{ font-size:.72rem; }
}

/* Motion preference */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
  .reveal{ opacity:1; transform:none; }
}
