/* ============================================================
   Solar For Pubs — shared stylesheet
   Palette: deep green + solar amber + warm neutrals
   Font: Atkinson Hyperlegible
   ============================================================ */
:root{
  --green:#14432E; --green-mid:#1E5B3E; --green-deep:#0C2C1D;
  --green-tint:#8FD3B0; --amber:#F5A623; --amber-light:#FBC65A;
  --cream:#F6F2E8; --paper:#FFFFFF; --ink:#14342A; --muted:#5A6B61;
  --line:#E4E0D4; --radius:14px; --shadow:0 8px 24px rgba(20,67,46,.09);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:'Atkinson Hyperlegible',Arial,Helvetica,sans-serif;
  color:var(--ink);background:var(--cream);line-height:1.62;-webkit-font-smoothing:antialiased;}
h1,h2,h3{line-height:1.12;letter-spacing:-.5px;color:var(--green);margin:0 0 .5em;}
h2{font-size:clamp(1.6rem,3.2vw,2.25rem);}
h3{font-size:1.2rem;}
p{margin:0 0 1em;}
img{max-width:100%;display:block;}
a{color:var(--green);}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px;}
.section{padding:64px 0;}
.section.tight{padding:44px 0;}
.center{text-align:center;}
.lead{font-size:1.12rem;color:#3c4a41;max-width:680px;}
.center .lead{margin-left:auto;margin-right:auto;}
.eyebrow{font-size:.78rem;letter-spacing:3px;text-transform:uppercase;color:#7a8a2b;font-weight:700;margin:0 0 12px;}
.hero .eyebrow{color:var(--amber-light);}

/* buttons */
.btn{display:inline-block;background:var(--amber);color:#3a2600;font-weight:700;text-decoration:none;
  padding:13px 24px;border-radius:999px;white-space:nowrap;box-shadow:0 2px 0 #c9861a;transition:transform .08s ease;border:none;cursor:pointer;font-family:inherit;font-size:1rem;}
.btn:hover{transform:translateY(-1px);}
.btn:focus-visible{outline:3px solid var(--green);outline-offset:2px;}
.btn.ghost{background:transparent;color:var(--cream);border:1.6px solid rgba(255,255,255,.55);box-shadow:none;}
.btn.ghost:hover{border-color:var(--amber-light);color:#fff;}
.btn.green{background:var(--green);color:var(--cream);box-shadow:0 2px 0 var(--green-deep);}

/* header */
header.site{position:sticky;top:0;z-index:60;background:var(--cream);border-bottom:1px solid var(--line);}
.bar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0;}
.logo{display:inline-flex;align-items:center;}
.logo svg{height:50px;width:auto;}
nav.main{display:flex;align-items:center;gap:22px;}
nav.main > a,.dd > button{background:none;border:none;font-family:inherit;cursor:pointer;
  text-decoration:none;color:var(--green);font-weight:700;font-size:.96rem;padding:6px 2px;border-bottom:2px solid transparent;}
nav.main > a:hover,nav.main > a:focus-visible,.dd:hover > button{border-bottom-color:var(--amber);}
.dd{position:relative;}
.dd > button::after{content:" ▾";font-size:.7em;color:var(--muted);}
.dd-menu{position:absolute;top:100%;left:0;margin-top:6px;background:var(--paper);border:1px solid var(--line);
  border-radius:12px;box-shadow:var(--shadow);padding:8px;min-width:230px;display:none;}
.dd-menu::before{content:"";position:absolute;top:-10px;left:0;right:0;height:10px;}
.dd:hover .dd-menu,.dd:focus-within .dd-menu,.dd-menu:hover{display:block;}
.dd-menu a{display:block;padding:9px 12px;border-radius:8px;text-decoration:none;color:var(--green);font-weight:600;font-size:.92rem;}
.dd-menu a:hover,.dd-menu a:focus-visible{background:var(--cream);}
.dd-menu a small{display:block;color:var(--muted);font-weight:400;}
.tel{display:inline-flex;align-items:center;gap:7px;font-weight:700;color:var(--green);text-decoration:none;white-space:nowrap;}
.header-cta{display:flex;align-items:center;gap:16px;}
.menu-btn{display:none;background:none;border:1.5px solid var(--green);color:var(--green);font-weight:700;
  border-radius:999px;padding:9px 15px;font-size:.9rem;cursor:pointer;font-family:inherit;}

/* hero */
.hero{background:radial-gradient(1100px 420px at 88% -25%,rgba(245,166,35,.20),transparent 60%),var(--green);
  color:var(--cream);padding:72px 0;}
.hero.short{padding:56px 0 48px;}
.hero h1{font-size:clamp(2.1rem,4.8vw,3.2rem);color:var(--cream);margin:0 0 16px;max-width:15ch;}
.hero p.sub{font-size:1.16rem;max-width:600px;color:#DCE7DF;margin:0 0 26px;}
.hero .actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;}
.hero .reassure{margin:22px 0 0;color:#B9Cabb;font-size:.92rem;display:flex;flex-wrap:wrap;gap:6px 18px;}
.hero .reassure span::before{content:"✓ ";color:var(--amber-light);font-weight:700;}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;}
.savings-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:26px;}
.savings-card .big{font-size:2.6rem;font-weight:700;color:var(--amber-light);line-height:1;}
.savings-card .lbl{color:#cfe0d3;font-size:.9rem;margin-top:6px;}
.savings-card hr{border:none;border-top:1px solid rgba(255,255,255,.14);margin:18px 0;}
.savings-card .row{display:flex;justify-content:space-between;color:#e7efe9;font-size:.95rem;padding:5px 0;}

/* breadcrumb */
.crumbs{font-size:.85rem;color:#B9Cabb;margin:0 0 14px;}
.crumbs a{color:#cfe0d3;text-decoration:none;}
.crumbs a:hover{text-decoration:underline;}

/* generic grids */
.grid{display:grid;gap:20px;}
.g3{grid-template-columns:repeat(3,1fr);}
.g2{grid-template-columns:repeat(2,1fr);}
.g4{grid-template-columns:repeat(4,1fr);}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:26px;}
.card h3{margin-top:0;}
.icon{width:44px;height:44px;border-radius:10px;background:#FBEFD6;display:flex;align-items:center;justify-content:center;margin-bottom:14px;font-size:1.3rem;}

/* steps */
.steps{counter-reset:step;display:grid;gap:20px;grid-template-columns:repeat(4,1fr);}
.step{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:24px;position:relative;}
.step .num{counter-increment:step;font-weight:700;color:var(--amber);font-size:.9rem;letter-spacing:2px;}
.step .num::before{content:"STEP " counter(step);}

/* trust strip */
.trust{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.trust .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px 26px;padding:22px 24px;}
.badge{display:inline-flex;align-items:center;gap:8px;border:1.4px solid var(--line);border-radius:999px;
  padding:8px 16px;font-weight:700;font-size:.86rem;color:var(--green);background:var(--cream);}
.badge b{color:var(--amber);}

/* table */
.tbl{width:100%;border-collapse:collapse;background:var(--paper);border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);}
.tbl th,.tbl td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--line);font-size:.96rem;}
.tbl thead th{background:var(--green);color:var(--cream);font-weight:700;}
.tbl tr:last-child td{border-bottom:none;}
.tbl td.good{color:#1a7a4e;font-weight:700;}

/* testimonials */
.quote{background:var(--paper);border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:12px;padding:24px;}
.quote p{font-size:1.05rem;color:#2f3d34;margin:0 0 14px;}
.quote .who{font-weight:700;color:var(--green);font-size:.92rem;}
.quote .who span{display:block;color:var(--muted);font-weight:400;}
.stars{color:var(--amber);letter-spacing:2px;margin-bottom:10px;}

/* FAQ */
.faq{background:var(--paper);border:1px solid var(--line);border-radius:12px;margin-bottom:12px;overflow:hidden;}
.faq summary{cursor:pointer;padding:18px 22px;font-weight:700;color:var(--green);list-style:none;display:flex;justify-content:space-between;gap:16px;}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";color:var(--amber);font-size:1.4rem;line-height:1;}
.faq[open] summary::after{content:"–";}
.faq .a{padding:0 22px 20px;color:#3c4a41;}

/* CTA band */
.cta-band{background:radial-gradient(900px 300px at 15% 120%,rgba(245,166,35,.20),transparent 60%),var(--green);color:var(--cream);text-align:center;}
.cta-band h2{color:var(--cream);}
.cta-band p{color:#cfe0d3;max-width:560px;margin:0 auto 24px;}

/* form page */
.formwrap{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:var(--shadow);}
.next3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:8px;}
.next3 .card{padding:20px;}

/* prose */
.prose{max-width:760px;}
.prose h2{margin-top:1.4em;}
.prose ul{padding-left:1.2em;}
.prose li{margin-bottom:.4em;}
.keytakeaways{background:#FBEFD6;border:1px solid #F0D9A6;border-radius:12px;padding:20px 24px;}
.keytakeaways h3{color:#7a5a12;margin-top:0;}

/* footer */
footer.site{background:var(--green);color:var(--cream);padding:56px 0 26px;}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:36px;}
footer .logo svg{height:54px;}
footer p.blurb{color:#C4D4C8;max-width:320px;margin:14px 0 0;font-size:.96rem;}
.fcol h3{font-size:.78rem;letter-spacing:2px;text-transform:uppercase;color:var(--green-tint);margin:0 0 12px;}
.fcol a{display:block;color:var(--cream);text-decoration:none;padding:5px 0;font-size:.96rem;}
.fcol a:hover,.fcol a:focus-visible{color:var(--amber-light);}
.fcontact a{font-weight:700;}
.legal{border-top:1px solid rgba(255,255,255,.14);margin-top:38px;padding-top:18px;display:flex;flex-wrap:wrap;
  gap:8px 18px;justify-content:space-between;align-items:center;color:#A9BCAF;font-size:.84rem;}
.legal nav a{color:#A9BCAF;text-decoration:none;margin-right:14px;}
.legal nav a:hover{color:var(--amber-light);}

/* mobile sticky bar */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:70;display:none;grid-template-columns:1fr 1fr;
  background:var(--green);border-top:1px solid var(--green-deep);box-shadow:0 -4px 16px rgba(0,0,0,.18);}
.mbar a{padding:15px 8px;text-align:center;font-weight:700;text-decoration:none;font-size:1rem;}
.mbar a.call{color:var(--cream);}
.mbar a.quote{background:var(--amber);color:#3a2600;}

/* responsive */
@media(max-width:960px){
  .hero-grid{grid-template-columns:1fr;gap:30px;}
  .g4{grid-template-columns:repeat(2,1fr);}
  .steps{grid-template-columns:repeat(2,1fr);}
  .fgrid{grid-template-columns:1fr 1fr;gap:28px;}
}
@media(max-width:760px){
  nav.main,.header-cta .tel,.header-cta .btn{display:none;}
  .menu-btn{display:inline-flex;}
  nav.main.open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;
    background:var(--cream);border-bottom:1px solid var(--line);padding:10px 24px 18px;gap:4px;}
  nav.main.open > a,nav.main.open .dd > button{padding:12px 4px;border-bottom:1px solid var(--line);width:100%;text-align:left;}
  nav.main.open .dd-menu{position:static;display:block;box-shadow:none;border:none;padding:0 0 6px 12px;}
  .g3,.g2,.g4,.steps,.next3{grid-template-columns:1fr;}
  .fgrid{grid-template-columns:1fr;}
  .mbar{display:grid;}
  body{padding-bottom:56px;}
  .section{padding:48px 0;}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto;transition:none!important;}}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px;border-radius:4px;}

/* ---- case-study grid + region filter ---- */
.filterbar{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:28px 0 30px;}
.filterbar button{font-family:inherit;font-weight:700;font-size:.9rem;cursor:pointer;
  border:1.5px solid var(--line);background:var(--paper);color:var(--green);border-radius:999px;padding:9px 18px;transition:.12s;}
.filterbar button:hover{border-color:var(--amber);}
.filterbar button[aria-pressed="true"]{background:var(--green);color:var(--cream);border-color:var(--green);}
.cs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.cs-card{display:flex;flex-direction:column;gap:6px;background:var(--paper);border:1px solid var(--line);
  border-radius:var(--radius);padding:22px;text-decoration:none;color:var(--ink);transition:.14s;}
.cs-card:hover,.cs-card:focus-visible{border-color:var(--amber);transform:translateY(-2px);box-shadow:var(--shadow);outline:none;}
.cs-card h3{margin:0;font-size:1.12rem;}
.cs-card .loc{color:var(--muted);font-size:.9rem;margin:0;}
.cs-card .res{color:#1a7a4e;font-weight:700;margin:6px 0 0;}
.cs-card .foot{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}
.pill{background:#FBEFD6;color:#7a5a12;font-weight:700;font-size:.76rem;padding:4px 10px;border-radius:999px;white-space:nowrap;}
.tag{background:var(--cream);border:1px solid var(--line);color:var(--green);font-weight:700;font-size:.74rem;padding:4px 10px;border-radius:999px;}
.cs-card.hide{display:none;}
.statline{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 34px;margin-top:8px;}
.statline .s{text-align:center;}
.statline .s b{display:block;font-size:1.7rem;color:var(--amber);line-height:1;}
.statline .s span{color:var(--muted);font-size:.85rem;}
@media(max-width:960px){.cs-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:760px){.cs-grid{grid-template-columns:1fr;}}

/* ---- photography ---- */
.hero.photo{position:relative;background-size:cover;background-position:center;}
.hero.photo::before{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(12,44,29,.94) 0%,rgba(15,52,36,.86) 45%,rgba(15,52,36,.66) 100%);}
.hero.photo .wrap{position:relative;z-index:1;}
.hero.photo .savings-card{background:rgba(9,32,21,.72);backdrop-filter:blur(3px);border-color:rgba(255,255,255,.18);}
.feature{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;}
.feature.rev .media{order:2;}
.media{border-radius:16px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);}
.media img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:16/10;}
.venues-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:30px;}
.venue{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);}
.venue img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;transition:transform .4s ease;}
.venue:hover img{transform:scale(1.05);}
.venue .cap{position:absolute;left:0;right:0;bottom:0;padding:26px 16px 12px;color:#fff;font-weight:700;
  background:linear-gradient(transparent,rgba(9,32,21,.86));font-size:1rem;}
.imground{border-radius:16px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);margin-top:8px;}
.imground img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;}
@media(max-width:960px){.feature{grid-template-columns:1fr;gap:24px;}.feature.rev .media{order:0;}.venues-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:760px){.venues-grid{grid-template-columns:1fr;}}
