/* ============================================
   Palm Bay Landscape Lighting — shared stylesheet
   v1.0 — matches approved homepage mockup skeleton
============================================ */

:root{
  --night:#111823;
  --dusk:#1a2431;
  --panel:#202c3b;
  --line:#2d3a4b;
  --glow:#e6a64b;
  --glow-deep:#c9882f;
  --ink:#f3ecdd;
  --muted:#9aa7b5;
  --shadow:0 14px 34px rgba(0,0,0,.35);
}

*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:'Karla',sans-serif;
  background:var(--night);
  color:var(--ink);
  line-height:1.65;
  font-size:16.5px;
}
h1,h2,h3{font-family:'Fraunces',serif;font-weight:600;line-height:1.18;letter-spacing:.2px;}
a{color:var(--glow);text-decoration:none;}
img{max-width:100%;height:auto;display:block;}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px;}

/* ---------- header ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(17,24,35,.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:14px;}
.brand{font-family:'Fraunces',serif;font-size:1.12rem;color:var(--ink);font-weight:600;}
.brand a{color:var(--ink);}
.brand span{color:var(--glow);}
.navlinks{display:none;gap:26px;font-size:.95rem;font-weight:500;}
.navlinks a{color:var(--muted);}
.navlinks a:hover{color:var(--ink);}
.callbtn{
  background:var(--glow);color:#221703;font-weight:700;
  padding:10px 18px;border-radius:8px;white-space:nowrap;font-size:.95rem;
}
.callbtn:hover{background:var(--glow-deep);}
@media(min-width:840px){.navlinks{display:flex;}}

/* ---------- hero ---------- */
.hero{
  background:
    radial-gradient(120% 90% at 50% 108%, rgba(230,166,75,.28) 0%, rgba(230,166,75,.07) 42%, rgba(17,24,35,0) 70%),
    linear-gradient(180deg,#0d131c 0%, var(--night) 60%);
  border-bottom:1px solid var(--line);
  padding:56px 0 64px;
}
.hero-grid{display:grid;grid-template-columns:1fr;gap:38px;align-items:start;}
@media(min-width:900px){.hero-grid{grid-template-columns:1.15fr .85fr;gap:48px;}}
.eyebrow{
  display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:2.4px;
  text-transform:uppercase;color:var(--glow);margin-bottom:16px;
}
h1{font-size:clamp(1.9rem,4.6vw,2.9rem);margin-bottom:18px;}
.lede{color:var(--ink);opacity:.92;margin-bottom:24px;max-width:60ch;}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px;}
.btn-primary{
  background:var(--glow);color:#221703;font-weight:700;font-size:1.02rem;
  padding:13px 22px;border-radius:9px;display:inline-block;
}
.btn-primary:hover{background:var(--glow-deep);}
.btn-ghost{
  border:1px solid var(--line);color:var(--ink);font-weight:600;
  padding:12px 20px;border-radius:9px;font-size:1rem;display:inline-block;
}
.btn-ghost:hover{border-color:var(--glow);}
.hero-note{font-size:.9rem;color:var(--muted);}


.hero-photo{
  margin:24px 0 14px;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.hero-photo img{
  width:100%;
  height:auto;
  aspect-ratio:3/2;
  object-fit:cover;
}
.hero-photo figcaption{
  color:var(--muted);
  font-size:.9rem;
  line-height:1.4;
  padding:12px 14px 14px;
}
@media(min-width:1020px){.compact-photo-grid{grid-template-columns:repeat(3,1fr);}}

/* ---------- quote form card ---------- */
.quote-card{
  background:var(--dusk);border:1px solid var(--line);border-radius:14px;
  padding:24px;box-shadow:var(--shadow);
}
.quote-card h2{font-size:1.28rem;margin-bottom:6px;}
.quote-card p.sub{font-size:.92rem;color:var(--muted);margin-bottom:16px;}
.field{margin-bottom:12px;}
.field label{display:block;font-size:.82rem;font-weight:700;letter-spacing:.4px;color:var(--muted);margin-bottom:5px;text-transform:uppercase;}
.field input,.field select,.field textarea{
  width:100%;background:var(--night);border:1px solid var(--line);border-radius:8px;
  color:var(--ink);padding:11px 12px;font-family:'Karla',sans-serif;font-size:.98rem;
}
.field textarea{min-height:74px;resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--glow);outline-offset:1px;border-color:var(--glow);}
.quote-card button{
  width:100%;background:var(--glow);color:#221703;font-weight:700;font-size:1.02rem;
  border:none;border-radius:9px;padding:13px;cursor:pointer;font-family:'Karla',sans-serif;
}
.quote-card button:hover{background:var(--glow-deep);}
.consent{font-size:.78rem;color:var(--muted);margin-top:10px;line-height:1.5;}

/* ---------- sections ---------- */
section{padding:60px 0;}
section h2{font-size:clamp(1.5rem,3.4vw,2.05rem);margin-bottom:14px;}
.section-intro{color:var(--muted);max-width:64ch;margin-bottom:32px;}
.alt{background:var(--dusk);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}

/* page-inner (for interior pages without full hero) */
.page-head{
  background:
    radial-gradient(90% 100% at 50% 130%, rgba(230,166,75,.22) 0%, rgba(230,166,75,.05) 45%, rgba(17,24,35,0) 72%),
    linear-gradient(180deg,#0d131c 0%, var(--night) 55%);
  padding:52px 0 40px;
  border-bottom:1px solid var(--line);
}
.crumbs{font-size:.85rem;color:var(--muted);letter-spacing:.4px;margin-bottom:14px;}
.crumbs a{color:var(--muted);}
.crumbs a:hover{color:var(--glow);}

/* ---------- cards ---------- */
.cards{display:grid;grid-template-columns:1fr;gap:16px;}
@media(min-width:700px){.cards{grid-template-columns:1fr 1fr;}}
.card{
  background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:24px;
}
.card h3{font-size:1.15rem;margin-bottom:10px;color:var(--ink);}
.card p{font-size:.96rem;color:var(--muted);margin-bottom:14px;}
.card a{font-weight:700;font-size:.94rem;}

/* image slots (Wednesday replaces with generated images) */
.img-slot{
  border:1.5px dashed var(--line);border-radius:12px;background:rgba(32,44,59,.5);
  color:var(--muted);font-size:.85rem;letter-spacing:.3px;
  display:flex;align-items:center;justify-content:center;text-align:center;
  padding:20px;min-height:220px;line-height:1.6;
}
.split{display:grid;grid-template-columns:1fr;gap:32px;align-items:center;}
@media(min-width:860px){.split{grid-template-columns:1fr 1fr;gap:44px;}}


/* ---------- responsive photo treatment ---------- */
.content-img{
  width:100%;
  height:auto;
  aspect-ratio:3/2;
  object-fit:cover;
  border-radius:14px;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  background:var(--panel);
}
.photo-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}
@media(min-width:700px){.photo-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1020px){.photo-grid{grid-template-columns:repeat(3,1fr);}}
.photo-grid figure{
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:14px;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.photo-grid img{
  width:100%;
  height:auto;
  aspect-ratio:3/2;
  object-fit:cover;
}
.photo-grid figcaption{
  color:var(--muted);
  font-size:.94rem;
  line-height:1.45;
  padding:14px 16px 16px;
}
@media(max-width:560px){
  .content-img,.photo-grid figure{border-radius:10px;}
  .photo-grid{gap:14px;}
  .photo-grid figcaption{font-size:.9rem;padding:12px 14px 14px;}
}

/* ---------- signs list ---------- */
.signs{display:grid;grid-template-columns:1fr;gap:14px;}
@media(min-width:760px){.signs{grid-template-columns:1fr 1fr;}}
.sign{
  background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--glow);
  border-radius:10px;padding:16px 18px;font-size:.96rem;
}
.sign strong{display:block;color:var(--ink);margin-bottom:4px;font-size:1rem;}
.sign span{color:var(--muted);}

/* ---------- bullet list ---------- */
.cost-list{list-style:none;display:grid;gap:12px;margin-bottom:24px;}
.cost-list li{
  padding-left:22px;position:relative;color:var(--muted);font-size:.98rem;
}
.cost-list li::before{
  content:"";position:absolute;left:0;top:.55em;width:9px;height:9px;border-radius:50%;
  background:var(--glow);
}
.cost-list li strong{color:var(--ink);}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:1fr;gap:16px;}
@media(min-width:760px){.steps{grid-template-columns:repeat(3,1fr);}}
.step{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:22px;}
.step h3{font-size:1.05rem;margin-bottom:8px;}
.step p{font-size:.94rem;color:var(--muted);}
.step .num{
  display:inline-flex;width:34px;height:34px;border-radius:50%;align-items:center;justify-content:center;
  background:rgba(230,166,75,.15);color:var(--glow);font-weight:700;margin-bottom:12px;font-size:.95rem;
}

/* ---------- FAQ ---------- */
.faq details{
  background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:16px 20px;margin-bottom:12px;
}
.faq summary{
  font-weight:700;cursor:pointer;font-size:1.02rem;color:var(--ink);
  list-style:none;position:relative;padding-right:28px;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";position:absolute;right:2px;top:0;color:var(--glow);font-size:1.2rem;font-weight:400;}
.faq details[open] summary::after{content:"–";}
.faq details p{margin-top:12px;color:var(--muted);font-size:.97rem;}

/* ---------- prose page (privacy, terms, etc) ---------- */
.prose{max-width:74ch;}
.prose h2{margin-top:36px;margin-bottom:12px;font-size:1.3rem;}
.prose h3{margin-top:24px;margin-bottom:8px;font-size:1.1rem;color:var(--ink);}
.prose p{margin-bottom:14px;color:var(--muted);}
.prose ul{margin:0 0 18px 22px;color:var(--muted);}
.prose li{margin-bottom:6px;}

/* ---------- service-area list ---------- */
.area-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;
}
.area-tile{
  background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:14px 16px;font-size:.98rem;color:var(--ink);
}
.area-tile strong{display:block;color:var(--glow);font-size:.82rem;letter-spacing:.4px;text-transform:uppercase;margin-bottom:4px;font-family:'Karla',sans-serif;font-weight:700;}

/* ---------- final CTA ---------- */
.final{
  text-align:center;
  background:
    radial-gradient(90% 130% at 50% 130%, rgba(230,166,75,.3) 0%, rgba(230,166,75,.06) 55%, rgba(26,36,49,0) 78%),
    var(--dusk);
  border-top:1px solid var(--line);
}
.final h2{margin-bottom:12px;}
.final p{color:var(--muted);max-width:52ch;margin:0 auto 26px;}
.final .hero-ctas{justify-content:center;}

/* ---------- footer ---------- */
footer{border-top:1px solid var(--line);padding:44px 0 30px;background:#0d131c;}
.foot-grid{display:grid;grid-template-columns:1fr;gap:28px;margin-bottom:30px;}
@media(min-width:760px){.foot-grid{grid-template-columns:1.2fr 1fr 1fr;}}
footer h4{font-size:.82rem;text-transform:uppercase;letter-spacing:1.6px;color:var(--muted);margin-bottom:12px;font-family:'Karla',sans-serif;font-weight:700;}
footer ul{list-style:none;}
footer li{margin-bottom:8px;font-size:.93rem;}
footer li a{color:var(--ink);opacity:.85;}
footer li a:hover{color:var(--glow);opacity:1;}
.disclosure{font-size:.8rem;color:var(--muted);border-top:1px solid var(--line);padding-top:20px;line-height:1.6;}
.foot-brand{font-family:'Fraunces',serif;font-size:1.05rem;margin-bottom:10px;}
.foot-brand span{color:var(--glow);}
.build-stamp{font-size:.72rem;color:var(--muted);opacity:.6;margin-top:10px;letter-spacing:.4px;}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
