/* ============================================================
   FROSTLINE HOME SERVICES — direct real-reference build.
   Reference: penguinair.com (Penguin Air, Plumbing & Electrical —
   Phoenix, AZ multi-trade HVAC/Plumbing/Electrical contractor).
   See index.html header comment for full parentage/build notes.
   Design tokens below are pulled directly from the reference's
   live Elementor global CSS (colors, font stack, radii, shadows) —
   not invented. Brand NAME, logo mark, copy, phone/address/pricing
   are original fictional concept-library content (see disclosure
   banner) — this is not the real Penguin Air site or brand.
   ============================================================ */
:root{
  --purple:#9C58A3;
  --purple-dark:#502A52;
  --purple-light:#C08DC3;
  --green:#6FC24D;
  --green-dark:#4F9A35;
  --peach:#FFBC7D;
  --ink:#0B0B0B;
  --text:#3B3B3B;
  --text-soft:#5C5C5C;
  --surface:#FFFFFF;
  --surface-2:#F6F6F6;
  --surface-3:#ECECEC;
  --line:#D1D1D1;
  --line-soft:#CCCCCC;
  --on-dark:rgba(255,255,255,.86);
  --on-dark-muted:rgba(255,255,255,.62);
  --shadow-soft:0 0 10px 0 rgb(0 0 0 / .18);
  --shadow-card:0 8px 16px 0 rgb(0 0 0 / .15);
  --shadow-lift:2px 8px 23px 3px rgb(0 0 0 / .2);
  --ease:cubic-bezier(.16,.84,.44,1);
  --ease-bounce:cubic-bezier(0.34,1.56,0.64,1);
  --header-h:120px;
  --container:1240px;
  --pad:26px;
  --r-sm:8px;
  --r-md:12px;
  --r-lg:18px;
}
@media (max-width:960px){ :root{ --pad:18px; --header-h:98px; } }
*{box-sizing:border-box;}
html,body{margin:0;padding:0; max-width:100%;}
html{scroll-behavior:smooth; overflow-x:hidden;}
body{background:var(--surface); color:var(--text); font-family:"Open Sans",system-ui,sans-serif; -webkit-font-smoothing:antialiased; overflow-x:hidden; width:100%;}
h1,h2,h3,h4{font-family:"Ubuntu",sans-serif; font-weight:700; line-height:1.1; letter-spacing:-.01em; margin:0; color:var(--ink);}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
:focus-visible{outline:3px solid var(--green); outline-offset:2px;}
@media (prefers-reduced-motion: reduce){ *{animation:none !important; transition:none !important;} html{scroll-behavior:auto !important;} }

.container{max-width:var(--container); margin:0 auto; padding:0 var(--pad); width:100%;}
.section{padding:clamp(3.6rem,7vw,6rem) 0;}
.section--surface2{background:var(--surface-2);}
.section--dark{background:var(--purple-dark); color:var(--on-dark);}
.section--dark h2,.section--dark h3{color:#fff;}
.section--dark .lede{color:var(--on-dark-muted);}
.eyebrow{display:inline-flex; align-items:center; gap:.6rem; font-size:.72rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--purple); margin-bottom:.9rem;}
.eyebrow::before{content:""; width:20px; height:2px; background:var(--green); display:inline-block;}
.eyebrow.on-dark{color:var(--peach);}
.section-title{font-size:clamp(1.95rem,4.2vw,3.1rem);}
.lede{font-size:1.02rem; line-height:1.6; color:var(--text-soft); max-width:58ch;}

/* Disclosure banner — fictional concept-library asset notice */
.disclosure{background:var(--ink); color:var(--on-dark); text-align:center; font-size:.76rem; font-weight:600; letter-spacing:.02em; padding:.5rem var(--pad);}
.disclosure strong{color:var(--peach);}

[data-reveal]{opacity:0; transform:translateY(20px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
[data-reveal].in-view{opacity:1; transform:translateY(0);}
[data-reveal][data-delay="1"]{transition-delay:.08s;}
[data-reveal][data-delay="2"]{transition-delay:.16s;}
[data-reveal][data-delay="3"]{transition-delay:.24s;}

.btn{display:inline-flex; align-items:center; justify-content:center; gap:.55rem; font-family:"Ubuntu",sans-serif; font-weight:700; font-size:.85rem; letter-spacing:.02em; padding:15px 27px; border-radius:var(--r-sm); border:2px solid transparent; cursor:pointer; transition:transform .25s var(--ease-bounce), background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease), box-shadow .25s var(--ease); transform:translate(var(--mx,0),var(--my,0));}
.btn--go{background:var(--green); color:#fff; border-color:var(--green); box-shadow:var(--shadow-card);}
.btn--go:hover{background:var(--green-dark); border-color:var(--green-dark);}
.btn--purple{background:var(--purple); color:#fff; border-color:var(--purple);}
.btn--purple:hover{background:var(--purple-dark); border-color:var(--purple-dark);}
.btn--outline{background:transparent; color:#fff; border-color:rgba(255,255,255,.5);}
.btn--outline:hover{background:rgba(255,255,255,.14); border-color:#fff;}
.btn--outline.on-light{color:var(--purple-dark); border-color:var(--line);}
.btn--outline.on-light:hover{background:var(--surface-2); border-color:var(--purple-dark);}
.btn--sm{padding:10px 18px; font-size:.76rem;}

header.topbar{position:fixed; top:0; left:0; right:0; z-index:900; display:flex; flex-direction:column;}
.nav{display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:16px; padding:12px var(--pad); background:rgba(255,255,255,.86); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-bottom:1px solid rgba(0,0,0,.06); transition:background .3s var(--ease), box-shadow .3s var(--ease);}
.nav.scrolled{background:rgba(255,255,255,.96); box-shadow:0 10px 30px -20px rgba(0,0,0,.4);}
.nav__brand{display:flex; align-items:center; gap:.6rem; font-family:"Ubuntu",sans-serif; font-weight:800; font-size:1.05rem; color:var(--purple-dark); white-space:nowrap;}
.nav__mark{width:42px; height:42px; border-radius:50%; background:var(--purple); display:flex; align-items:center; justify-content:center; flex:none; box-shadow:var(--shadow-soft);}
.nav__mark svg{color:#fff;}
.nav__links{display:flex; gap:1.7rem; font-size:.82rem; font-weight:700; letter-spacing:.03em; color:var(--text); justify-self:center;}
.nav__links a{position:relative; padding:.3rem 0;}
.nav__links a::after{content:""; position:absolute; left:0; right:100%; bottom:-2px; height:2px; background:var(--green); transition:right .25s var(--ease);}
.nav__links a:hover::after, .nav__links a.active::after{right:0;}
.nav__links a:hover, .nav__links a.active{color:var(--purple-dark);}
.nav__cta{display:flex; align-items:center; gap:1rem; justify-self:end;}
.nav__phone{display:flex; align-items:center; gap:.4rem; font-family:"Ubuntu",sans-serif; font-weight:700; font-size:.85rem; color:var(--purple-dark); white-space:nowrap;}
.nav__phone svg{color:var(--green);}
@media (max-width:980px){ .nav__links{display:none;} .nav{grid-template-columns:auto 1fr;} .nav__cta{grid-column:2; justify-self:end;} }
@media (max-width:560px){ .nav__phone{display:none;} }

.page-hero{position:relative; min-height:50vh; display:flex; align-items:center; justify-content:center; overflow:hidden; background:var(--purple-dark); text-align:center; padding:calc(var(--header-h) + 3.2rem) var(--pad) 3.6rem;}
.page-hero__media{position:absolute; inset:0; z-index:0;}
.page-hero__media img{width:100%; height:100%; object-fit:cover;}
.page-hero__scrim{position:absolute; inset:0; background:linear-gradient(180deg, rgba(80,42,82,.62), rgba(11,11,11,.88));}
.page-hero__inner{position:relative; z-index:2; max-width:780px; margin:0 auto;}
.page-hero__inner .eyebrow{justify-content:center;}
.page-hero__inner h1{color:#fff; font-size:clamp(2rem,4.6vw,3.2rem);}
.page-hero__inner p{color:var(--on-dark-muted); font-size:1.05rem; max-width:56ch; margin:1.1rem auto 0;}

.hero{position:relative; min-height:92svh; display:flex; align-items:center; overflow:hidden; background:var(--purple-dark); padding-top:var(--header-h);}
.hero__media{position:absolute; inset:0; z-index:0;}
.hero__media img{width:100%; height:100%; object-fit:cover;}
.hero__scrim{position:absolute; inset:0; background:radial-gradient(120% 90% at 50% 35%, rgba(80,42,82,.55), rgba(11,11,11,.86)), linear-gradient(0deg, rgba(11,11,11,.92), rgba(80,42,82,.2) 60%);}
.hero__inner{position:relative; z-index:2; max-width:900px; margin:0 auto; padding:0 var(--pad); display:flex; flex-direction:column; align-items:center; text-align:center;}
.hero__badge{display:inline-flex; align-items:center; gap:.5rem; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.28); color:#fff; font-size:.76rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; padding:.5rem 1rem; border-radius:100px; margin-bottom:1.3rem; backdrop-filter:blur(6px);}
.hero__badge svg{color:var(--peach);}
.hero__word{font-size:clamp(2.2rem,5.4vw,3.8rem); color:#fff;}
.hero__type{margin-top:.9rem; font-family:"Ubuntu",sans-serif; font-weight:600; font-size:clamp(1.1rem,2.3vw,1.6rem); color:var(--peach);}
.hero__type-text{color:var(--peach);}
.hero__type-caret{display:inline-block; width:3px; height:1.05em; background:var(--peach); margin-left:3px; vertical-align:-3px; animation:blink 1s steps(1) infinite;}
@keyframes blink{50%{opacity:0;}}
.hero__lede{margin:1rem auto 0; font-size:clamp(1rem,1.5vw,1.14rem); line-height:1.55; color:var(--on-dark-muted); max-width:54ch;}
.hero__actions{display:flex; flex-wrap:wrap; justify-content:center; gap:.8rem; margin-top:1.8rem;}
.hero__floats{position:absolute; inset:0; z-index:1; pointer-events:none;}
.hero-float{position:absolute; display:flex; flex-direction:column; gap:.2rem; background:rgba(255,255,255,.94); border-left:3px solid var(--green); border-radius:var(--r-sm); padding:.85rem 1.05rem; max-width:220px; box-shadow:var(--shadow-lift);}
.hero-float__title{font-family:"Ubuntu",sans-serif; font-weight:700; font-size:.92rem; color:var(--purple-dark);}
.hero-float__sub{font-size:.76rem; color:var(--text-soft); line-height:1.35;}
.hero-float--a{top:20%; left:4%; animation:bob 6s ease-in-out infinite;}
.hero-float--b{top:26%; right:4%; animation:bob 7s ease-in-out infinite .6s;}
.hero-float--c{bottom:16%; left:6%; animation:bob 6.5s ease-in-out infinite 1.2s;}
@keyframes bob{0%,100%{transform:translateY(0);} 50%{transform:translateY(-12px);}}
@media (max-width:1120px){ .hero__floats{display:none;} }

.marquee{background:var(--green); color:#fff; overflow:hidden; max-width:100vw;}
.marquee__track{display:flex; width:max-content; animation:mq 30s linear infinite;}
.marquee:hover .marquee__track{animation-play-state:paused;}
.marquee__group{display:flex; align-items:center; padding:.7rem 0; flex-shrink:0;}
.marquee__group span{font-family:"Ubuntu",sans-serif; font-weight:700; text-transform:uppercase; font-size:clamp(.86rem,1.4vw,1.05rem); padding:0 1rem; white-space:nowrap;}
.marquee__dot{opacity:.6; font-size:.7rem;}
@keyframes mq{0%{transform:translateX(0);} 100%{transform:translateX(-50%);}}

.trust-strip{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:clamp(14px,4vw,36px); background:var(--surface-2); border-bottom:1px solid var(--line-soft); padding:14px var(--pad);}
.trust-strip .item{display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--purple-dark); white-space:nowrap;}
.trust-strip .item svg{color:var(--green); flex:none;}

.intro{text-align:center; padding:clamp(3rem,7vw,4.4rem) 0 clamp(2.2rem,5vw,3rem);}
.intro-inner{max-width:760px; margin:0 auto;}
.intro h2{font-size:clamp(1.8rem,4.2vw,2.8rem); margin:.6rem 0 1rem;}
.qualifier{margin-top:1.7rem;}
.qualifier-pills{display:flex; gap:.6rem; flex-wrap:wrap; justify-content:center;}
.qpill{font-family:"Ubuntu",sans-serif; font-size:.85rem; font-weight:700; cursor:pointer; padding:.72rem 1.1rem; border-radius:100px; border:1.5px solid var(--line); background:var(--surface); color:var(--purple-dark); transition:all .18s var(--ease);}
.qpill:hover{border-color:var(--green); color:var(--green-dark);}
.qpill.picked{background:var(--green); border-color:var(--green); color:#fff;}

/* Category system — HVAC / Plumbing / Drain / Electrical */
.cat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1.1rem;}
@media (max-width:1080px){ .cat-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .cat-grid{grid-template-columns:1fr;} }
.cat-card{display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line-soft); border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-card); transition:transform .3s var(--ease-bounce), box-shadow .3s var(--ease);}
.cat-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-lift);}
.cat-card__media{aspect-ratio:4/3; overflow:hidden; position:relative;}
.cat-card__media img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.cat-card:hover .cat-card__media img{transform:scale(1.06);}
.cat-card__tag{position:absolute; top:.8rem; left:.8rem; background:var(--purple); color:#fff; font-family:"Ubuntu",sans-serif; font-weight:700; font-size:.68rem; letter-spacing:.06em; text-transform:uppercase; padding:.35rem .7rem; border-radius:100px;}
.cat-card__body{padding:1.3rem; display:flex; flex-direction:column; flex:1;}
.cat-card__title{font-size:1.15rem; margin-bottom:.55rem;}
.cat-card__list{list-style:none; margin:0 0 1.1rem; padding:0; display:flex; flex-direction:column; gap:.35rem; flex:1;}
.cat-card__list li{font-size:.86rem; color:var(--text-soft); display:flex; gap:.5rem; align-items:flex-start; line-height:1.5;}
.cat-card__list li::before{content:"✓"; color:var(--green); font-weight:700; flex:none;}
.cat-card__more{display:inline-flex; align-items:center; gap:.4rem; font-family:"Ubuntu",sans-serif; font-weight:700; font-size:.78rem; text-transform:uppercase; letter-spacing:.04em; color:var(--purple); transition:gap .3s var(--ease);}
.cat-card:hover .cat-card__more{gap:.75rem;}

/* Membership module — "The Frostline Comfort Club" */
.membership{position:relative; overflow:hidden; background:linear-gradient(160deg, var(--purple) 0%, var(--purple-dark) 100%); border-radius:var(--r-lg); padding:clamp(2rem,5vw,3.2rem); color:#fff; display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,4vw,3.2rem); align-items:center;}
@media (max-width:900px){ .membership{grid-template-columns:1fr; padding:1.8rem;} }
.membership__badge{display:inline-flex; align-items:center; gap:.5rem; background:rgba(255,255,255,.16); border:1px solid rgba(255,255,255,.3); font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; padding:.5rem 1rem; border-radius:100px; margin-bottom:1rem; color:var(--peach);}
.membership h2,.membership h3{color:#fff;}
.membership p{color:var(--on-dark-muted); line-height:1.65;}
.membership__list{list-style:none; margin:1.4rem 0 1.6rem; padding:0; display:grid; gap:.75rem;}
.membership__list li{display:flex; gap:.65rem; align-items:flex-start; font-size:.98rem; color:#fff;}
.membership__check{flex:none; width:24px; height:24px; border-radius:50%; background:var(--green); color:#fff; display:flex; align-items:center; justify-content:center; font-size:.7rem; margin-top:1px;}
.membership__card{background:#fff; border-radius:var(--r-md); padding:1.8rem; color:var(--text); text-align:center; box-shadow:var(--shadow-lift);}
.membership__price{font-family:"Ubuntu",sans-serif; font-weight:800; font-size:2.6rem; color:var(--purple-dark); line-height:1;}
.membership__price span{font-size:1rem; font-weight:600; color:var(--text-soft);}
.membership__price-sub{font-size:.82rem; color:var(--text-soft); margin:.4rem 0 1.3rem;}
.membership__fine{font-size:.74rem; color:var(--text-soft); margin-top:.9rem; line-height:1.5;}

.why__grid{display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(2rem,5vw,4.5rem); align-items:center;}
@media (max-width:900px){ .why__grid{grid-template-columns:1fr; gap:2.2rem;} }
.why__media{position:relative; border-radius:var(--r-lg); overflow:hidden; aspect-ratio:4/5; box-shadow:var(--shadow-lift);}
.why__media img{width:100%; height:100%; object-fit:cover;}
@media (max-width:900px){ .why__media{aspect-ratio:16/11;} }
.why__media-badge{position:absolute; left:1.1rem; bottom:1.1rem; background:var(--green); color:#fff; padding:.8rem 1.1rem; border-radius:var(--r-sm); display:flex; flex-direction:column; line-height:1.1;}
.why__media-badge-top{font-family:"Ubuntu",sans-serif; font-weight:800; font-size:1.15rem;}
.why__media-badge-bot{font-weight:700; font-size:.82rem;}
.why__list{display:flex; flex-direction:column; gap:1rem; margin:1.6rem 0 2rem; list-style:none; padding:0;}
.why__item{display:flex; gap:.85rem; align-items:flex-start; font-size:1rem; color:var(--text); line-height:1.55;}
.why__item strong{color:var(--purple-dark);}
.why__item-icon{flex-shrink:0; width:28px; height:28px; border-radius:var(--r-sm); background:rgba(111,194,77,.15); color:var(--green-dark); display:inline-flex; align-items:center; justify-content:center; margin-top:2px;}

.stats-band{display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; text-align:center;}
@media (max-width:760px){ .stats-band{grid-template-columns:repeat(2,1fr);} }
.stat{padding:1.4rem .8rem;}
.stat__num{font-family:"Ubuntu",sans-serif; font-weight:800; font-size:clamp(1.8rem,4vw,2.6rem); color:var(--peach);}
.stat__label{font-size:.82rem; font-weight:600; letter-spacing:.03em; color:var(--on-dark-muted); margin-top:.3rem;}

.reviews__head{display:flex; justify-content:space-between; align-items:flex-end; gap:2rem; flex-wrap:wrap; margin-bottom:2.2rem;}
.reviews__badge{text-align:right;}
.reviews__stars{color:var(--peach); font-size:1.2rem; letter-spacing:3px; line-height:1;}
.reviews__badge-text{display:block; font-size:.76rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--on-dark-muted); margin-top:.4rem;}
@media (max-width:600px){ .reviews__head{align-items:flex-start;} .reviews__badge{text-align:left;} }
.reviews__carousel{overflow:hidden; -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent); mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.reviews__track{display:flex; gap:1.1rem; width:max-content; animation:rv 46s linear infinite;}
.reviews__carousel:hover .reviews__track{animation-play-state:paused;}
@keyframes rv{0%{transform:translateX(0);} 100%{transform:translateX(-50%);}}
.review-card{flex:0 0 clamp(280px,30vw,360px); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.16); border-radius:var(--r-md); padding:1.5rem; display:flex; flex-direction:column; gap:.8rem;}
.review-card__stars{color:var(--peach); letter-spacing:2px;}
.review-card__text{color:var(--on-dark); line-height:1.6; font-size:.95rem;}
.review-card__author{margin-top:auto; padding-top:.4rem; display:flex; flex-direction:column;}
.review-card__name{font-family:"Ubuntu",sans-serif; font-weight:700; color:#fff;}
.review-card__loc{font-size:.78rem; color:var(--on-dark-muted);}
.placeholder-tag{margin-top:4px; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--peach); background:rgba(255,188,125,.14); display:inline-block; padding:3px 8px; border-radius:4px; width:fit-content;}

.statement{position:relative; text-align:center; overflow:hidden; padding:clamp(60px,9vw,96px) 20px;}
.statement::before{content:""; position:absolute; inset:0; z-index:0; background-size:cover; background-position:center;}
.statement::after{content:""; position:absolute; inset:0; z-index:0; background:linear-gradient(180deg, rgba(80,42,82,.72), rgba(11,11,11,.9));}
.statement-inner{position:relative; z-index:1; max-width:660px; margin:0 auto;}
.statement h2{font-size:clamp(26px,4.2vw,42px); margin:12px 0 16px; color:#fff;}
.statement p{font-size:15.5px; color:var(--on-dark-muted); line-height:1.65; max-width:48ch; margin:0 auto 28px;}

.gallery-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
@media (max-width:760px){ .gallery-grid{grid-template-columns:repeat(2,1fr);} }
.gallery-grid figure{margin:0; border-radius:var(--r-md); overflow:hidden; box-shadow:var(--shadow-card); position:relative;}
.gallery-grid img{aspect-ratio:4/5; object-fit:cover; transition:transform .4s var(--ease); width:100%;}
.gallery-grid figure:hover img{transform:scale(1.05);}
.gallery-grid figcaption{position:absolute; left:0; right:0; bottom:0; background:linear-gradient(0deg, rgba(11,11,11,.82), transparent); color:#fff; font-size:.76rem; font-weight:700; padding:1.4rem .8rem .6rem;}

.founder-note{display:flex; gap:18px; align-items:flex-start; background:var(--surface-2); border:1px solid var(--line-soft); border-radius:var(--r-md); padding:24px; margin-top:2rem;}
.founder-avatar{flex:none; width:54px; height:54px; border-radius:50%; overflow:hidden; box-shadow:var(--shadow-soft);}
.founder-avatar img{width:100%; height:100%; object-fit:cover;}
.founder-name{font-family:"Ubuntu",sans-serif; font-weight:700; font-size:15px; margin:0 0 4px; color:var(--purple-dark);}
.founder-role{font-weight:600; color:var(--text-soft);}
.founder-bio{font-size:14px; line-height:1.6; color:var(--text-soft); margin:0;}

.faq__layout{display:grid; grid-template-columns:1fr 1.3fr; gap:clamp(2rem,5vw,4rem); align-items:start;}
@media (max-width:900px){ .faq__layout{grid-template-columns:1fr; gap:1.8rem;} }
.faq__list{display:flex; flex-direction:column;}
.faq__item{border-top:1px solid var(--line-soft);}
.faq__item:last-child{border-bottom:1px solid var(--line-soft);}
.faq__trigger{display:flex; align-items:center; justify-content:space-between; gap:1.2rem; width:100%; text-align:left; padding:1.3rem .2rem; background:none; border:0; cursor:pointer; font-family:inherit; color:var(--purple-dark); transition:color .25s var(--ease);}
.faq__trigger:hover{color:var(--purple);}
.faq__q{font-family:"Ubuntu",sans-serif; font-weight:700; font-size:clamp(1rem,1.5vw,1.08rem);}
.faq__icon{flex-shrink:0; width:34px; height:34px; border-radius:50%; border:1.5px solid var(--line); color:var(--purple-dark); display:flex; align-items:center; justify-content:center; transition:all .3s var(--ease-bounce);}
.faq__trigger[aria-expanded="true"] .faq__icon{background:var(--green); color:#fff; border-color:var(--green); transform:rotate(45deg);}
.faq__answer{max-height:0; overflow:hidden; transition:max-height .4s var(--ease);}
.faq__answer.open{max-height:320px;}
.faq__answer-inner{padding:0 .2rem 1.3rem;}
.faq__answer p{color:var(--text-soft); line-height:1.7; font-size:.95rem; margin:0;}

.quote-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2rem,5vw,4rem);}
@media (max-width:900px){ .quote-grid{grid-template-columns:1fr; gap:2rem;} }
.quote-why-list{list-style:none; margin:1.4rem 0 0; padding:0; display:grid; gap:.7rem; font-size:.94rem;}
.quote-why-list li{display:flex; gap:.6rem; color:var(--text);}
.qicon{color:var(--green-dark); font-weight:800; flex:none;}
.quote-form-card{background:var(--surface); border:1px solid var(--line-soft); border-radius:var(--r-md); padding:1.8rem; box-shadow:var(--shadow-card);}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
@media (max-width:520px){ .row2{grid-template-columns:1fr;} }
.field{margin-bottom:1rem;}
.field label{display:block; font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:.4rem; color:var(--purple-dark);}
.field input,.field select,.field textarea{width:100%; padding:.8rem .9rem; background:var(--surface-2); border:1.5px solid var(--line-soft); border-radius:6px; color:var(--text); font-family:"Open Sans",sans-serif; font-size:.94rem;}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--purple);}
.field textarea{min-height:100px; resize:vertical;}
.quote-form-card .btn{width:100%; margin-top:.4rem;}
.fineprint{font-size:12px; color:var(--text-soft); text-align:center; margin-top:.8rem;}

.info-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; margin-top:2rem;}
@media (max-width:520px){ .info-grid{grid-template-columns:1fr;} }
.info-card{background:var(--surface); border:1px solid var(--line-soft); border-radius:var(--r-md); padding:1.2rem; box-shadow:var(--shadow-card);}
.info-card b{display:block; font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--purple); margin-bottom:.5rem;}
.info-card p{margin:0; color:var(--text-soft); line-height:1.6; font-size:.92rem;}

/* Static service-area card — used instead of a third-party map iframe (see build notes) */
.area-card{position:relative; border-radius:var(--r-lg); overflow:hidden; min-height:320px; display:flex; align-items:flex-end; box-shadow:var(--shadow-lift);}
.area-card__media{position:absolute; inset:0; z-index:0;}
.area-card__media img{width:100%; height:100%; object-fit:cover;}
.area-card__scrim{position:absolute; inset:0; background:linear-gradient(0deg, rgba(80,42,82,.88), rgba(80,42,82,.15));}
.area-card__body{position:relative; z-index:1; padding:1.8rem; color:#fff;}
.area-card__body h3{color:#fff; margin-bottom:.6rem;}
.area-cities{display:flex; flex-wrap:wrap; gap:.5rem; margin-top:1rem;}
.area-cities span{background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.3); font-size:.78rem; font-weight:600; padding:.4rem .8rem; border-radius:100px;}

footer{background:var(--ink); color:rgba(255,255,255,.7); position:relative;}
footer::before{content:""; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg, var(--purple), var(--green));}
.footer__callband{background:var(--purple-dark); padding:2.6rem 0;}
.footer__callband-inner{display:flex; align-items:center; justify-content:space-between; gap:2rem; flex-wrap:wrap;}
.footer__callband-title{font-size:clamp(1.4rem,3vw,2rem); color:#fff; margin-top:.35rem;}
.footer__callband-actions{display:flex; align-items:center; gap:1.4rem; flex-wrap:wrap;}
.footer__callband-phone{display:inline-flex; align-items:center; gap:.6rem; font-family:"Ubuntu",sans-serif; font-weight:700; font-size:clamp(1.1rem,2.2vw,1.4rem); color:#fff; transition:color .25s var(--ease), transform .25s var(--ease);}
.footer__callband-phone:hover{color:var(--peach); transform:translateX(3px);}
.footer__callband-phone svg{color:var(--green);}
.footer__grid{display:grid; grid-template-columns:1.7fr 1fr 1fr 1.2fr; gap:2.4rem; padding:3rem 0; border-bottom:1px solid rgba(255,255,255,.1);}
@media (max-width:860px){ .footer__grid{grid-template-columns:1fr 1fr; gap:2rem;} .footer__brand{grid-column:1/-1;} }
.footer__logo{display:flex; align-items:center; gap:.6rem; font-family:"Ubuntu",sans-serif; font-weight:800; font-size:1.1rem; color:#fff; margin-bottom:.8rem;}
.footer__logo-badge{width:34px; height:34px; border-radius:50%; background:var(--purple); display:flex; align-items:center; justify-content:center;}
.footer__logo-badge svg{color:#fff;}
.footer__tagline{font-size:.9rem; line-height:1.6; max-width:280px;}
.footer__heading{font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:#fff; margin-bottom:1rem;}
.footer__list{display:flex; flex-direction:column; gap:.6rem;}
.footer__list a{font-size:.88rem; transition:color .2s var(--ease);}
.footer__list a:hover{color:var(--green);}
.footer__bottom{padding:1.3rem 0; display:flex; justify-content:space-between; flex-wrap:wrap; gap:.5rem 1.5rem; font-size:.76rem; color:rgba(255,255,255,.4);}
.concept-tag{text-align:center; font-size:11.5px; color:rgba(255,255,255,.4); padding:14px 0 0;}

.mobile-call{display:none; position:fixed; left:0; right:0; bottom:0; z-index:950; background:var(--green); color:#fff; text-align:center; padding:14px; font-family:"Ubuntu",sans-serif; font-weight:700; letter-spacing:.02em; font-size:.85rem;}
@media (max-width:720px){ .mobile-call{display:block;} body{padding-bottom:54px;} }

/* Services page — category tab system */
.cat-tabs{display:flex; flex-wrap:wrap; gap:.7rem; justify-content:center; margin-bottom:2.4rem;}
.cat-tab{font-family:"Ubuntu",sans-serif; font-weight:700; font-size:.85rem; padding:.75rem 1.3rem; border-radius:100px; border:1.5px solid var(--line); background:var(--surface); color:var(--purple-dark); cursor:pointer; transition:all .2s var(--ease);}
.cat-tab:hover{border-color:var(--purple);}
.cat-tab.active{background:var(--purple); border-color:var(--purple); color:#fff;}
.cat-panel{display:none;}
.cat-panel.active{display:block; animation:fadein .4s var(--ease);}
@keyframes fadein{from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);}}
.cat-panel__head{display:flex; gap:1.4rem; align-items:center; margin-bottom:1.8rem; flex-wrap:wrap;}
.cat-panel__icon{width:56px; height:56px; border-radius:var(--r-md); background:rgba(156,88,163,.12); color:var(--purple); display:flex; align-items:center; justify-content:center; flex:none;}
.subservice-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1rem;}
@media (max-width:860px){ .subservice-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .subservice-grid{grid-template-columns:1fr;} }
.subservice{background:var(--surface); border:1px solid var(--line-soft); border-radius:var(--r-md); padding:1.1rem 1.2rem; display:flex; gap:.7rem; align-items:flex-start; transition:border-color .2s var(--ease), transform .2s var(--ease);}
.subservice:hover{border-color:var(--green); transform:translateY(-2px);}
.subservice__icon{color:var(--green-dark); flex:none; margin-top:2px;}
.subservice h4{font-size:.98rem; margin-bottom:.25rem; color:var(--purple-dark);}
.subservice p{font-size:.84rem; color:var(--text-soft); line-height:1.5; margin:0;}

.financing-band{display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; background:var(--surface-2); border:1px solid var(--line-soft); border-radius:var(--r-lg); padding:1.8rem 2rem; margin-top:2.6rem;}
.financing-band h3{margin-bottom:.4rem;}
.financing-band p{margin:0; color:var(--text-soft); max-width:52ch; font-size:.94rem;}
