/* Sydney Pool Cleaning — shared styles
   Palette from the trade itself: deep-end navy, tile teal, water tint,
   phenol-red (test kit) for CTAs. */

:root{
  --deep:#08303F;
  --tile:#0E8BA8;
  --tile-dark:#0B6F86;
  --water:#E9F5F8;
  --ink:#17323B;
  --muted:#4E6971;
  --coral:#E2544A;
  --coral-dark:#C9423A;
  --line:#CFE4EA;
  --foam:#FFFFFF;
  --radius:14px;
  --shadow:0 10px 30px rgba(8,48,63,.10);
  --display:"Bricolage Grotesque",system-ui,sans-serif;
  --body:"Source Sans 3",system-ui,sans-serif;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}

body{font-family:var(--body);color:var(--ink);background:var(--foam);line-height:1.6;font-size:1.0625rem}
img,svg{display:block;max-width:100%}
a{color:var(--tile-dark)}
a:focus-visible,button:focus-visible{outline:3px solid var(--coral);outline-offset:2px}

h1,h2,h3{font-family:var(--display);line-height:1.12;color:var(--deep);letter-spacing:-.01em}
h1{font-size:clamp(2.1rem,4.6vw,3.4rem);font-weight:800}
h2{font-size:clamp(1.6rem,3vw,2.25rem);font-weight:700}
h3{font-size:1.2rem;font-weight:700}
.lede{font-size:clamp(1.05rem,1.6vw,1.25rem);color:var(--muted);max-width:62ch}

.wrap{max-width:1120px;margin:0 auto;padding:0 clamp(1rem,4vw,2rem)}
section{padding:clamp(3rem,7vw,5rem) 0}
.section-water{background:var(--water)}

.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--tile-dark);margin-bottom:.9rem}
.eyebrow::before{content:"";width:.7rem;height:.7rem;border-radius:3px;background:var(--tile)}

/* Header */
header{position:sticky;top:0;z-index:50;background:var(--foam);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none;font-family:var(--display);font-weight:800;font-size:1.15rem;color:var(--deep)}
.brand svg{width:34px;height:34px}
.nav-links{display:flex;align-items:center;gap:1.4rem;list-style:none}
.nav-links a{text-decoration:none;color:var(--ink);font-weight:600;font-size:.98rem}
.nav-links a:hover{color:var(--tile-dark)}
.nav-cta{background:var(--coral);color:#fff!important;padding:.55rem 1.05rem;border-radius:999px;font-weight:700}
.nav-cta:hover{background:var(--coral-dark);color:#fff}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:10px;padding:.5rem .7rem;font-size:1.15rem;cursor:pointer;color:var(--deep)}
.has-sub{position:relative}
.sub-toggle{display:inline-flex;align-items:center;gap:.3rem;background:none;border:0;padding:0;font:inherit;font-weight:600;font-size:.98rem;color:var(--ink);cursor:pointer}
.sub-toggle:hover{color:var(--tile-dark)}
.sub-toggle::after{content:"";width:.4rem;height:.4rem;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-.1rem);transition:transform .15s}
.has-sub[data-open="true"] .sub-toggle::after{transform:rotate(-135deg) translateY(-.1rem)}
.subnav{position:absolute;top:calc(100% + .6rem);left:-1rem;min-width:16rem;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 28px rgba(11,58,74,.13);padding:.5rem;list-style:none;display:none;z-index:60}
.has-sub[data-open="true"] .subnav{display:block}
.subnav a{display:block;padding:.55rem .75rem;border-radius:8px;font-weight:600;font-size:.95rem;color:var(--ink)}
.subnav a:hover{background:var(--foam);color:var(--tile-dark)}
.subnav a[aria-current="page"]{color:var(--tile-dark);background:var(--foam)}

/* Buttons */
.btn{display:inline-block;text-decoration:none;font-weight:700;border-radius:999px;padding:.85rem 1.6rem;font-size:1.02rem;text-align:center}
.btn-primary{background:var(--coral);color:#fff}
.btn-primary:hover{background:var(--coral-dark)}
.btn-ghost{border:2px solid var(--deep);color:var(--deep)}
.btn-ghost:hover{background:var(--deep);color:#fff}
.btn-light{background:#fff;color:var(--deep)}
.btn-light:hover{background:var(--water)}

/* Hero */
.hero{background:linear-gradient(180deg,var(--deep) 0%,#0A4257 78%,var(--tile) 130%);color:#E9F5F8;padding:clamp(3rem,7vw,5.5rem) 0 0}
.hero h1{color:#fff}
.hero .lede{color:#C4E2EB}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,4rem);align-items:start;padding-bottom:clamp(3rem,6vw,4.5rem)}
.hero-points{list-style:none;margin:1.6rem 0 2rem;display:grid;gap:.65rem}
.hero-points li{display:flex;gap:.6rem;align-items:baseline;font-weight:600}
.hero-points li::before{content:"✓";color:#7FD6E8;font-weight:800}
.hero-actions{display:flex;gap:.9rem;flex-wrap:wrap}
.hero-phone{margin-top:1.1rem;font-size:.95rem;color:#9FCBD8}
.hero-phone a{color:#fff;font-weight:700;text-decoration:none}

/* Quote card */
.quote-card{background:#fff;color:var(--ink);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.6rem}
.quote-card h2{font-size:1.35rem;margin-bottom:.35rem}
.quote-card p{font-size:.95rem;color:var(--muted);margin-bottom:1rem}
.quote-card label{display:block;font-weight:700;font-size:.85rem;margin:.8rem 0 .25rem}
.quote-card input,.quote-card select,.quote-card textarea{width:100%;padding:.7rem .8rem;border:1.5px solid var(--line);border-radius:10px;font-family:inherit;font-size:1rem;background:#fff;color:var(--ink)}
.quote-card input:focus,.quote-card select:focus,.quote-card textarea:focus{outline:3px solid rgba(14,139,168,.35);border-color:var(--tile)}
.quote-card button{width:100%;margin-top:1.1rem;border:none;cursor:pointer}
.quote-note{font-size:.8rem;color:var(--muted);margin-top:.6rem;text-align:center}

/* Waterline divider (signature) */
.waterline{display:block;width:100%;height:60px;margin-bottom:-1px}

/* Cards */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:2.2rem}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-top:2.2rem}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;display:flex;flex-direction:column;gap:.6rem}
.card h3 a{color:var(--deep);text-decoration:none}
.card h3 a:hover{color:var(--tile-dark)}
.card p{color:var(--muted);font-size:.98rem;flex:1}
.card .more{font-weight:700;text-decoration:none;color:var(--coral-dark)}
.card-icon{width:44px;height:44px;border-radius:12px;background:var(--water);display:grid;place-items:center;color:var(--tile-dark);font-size:1.3rem}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:2.2rem;counter-reset:step}
.step{background:#fff;border-radius:var(--radius);padding:1.6rem;border:1px solid var(--line)}
.step::before{counter-increment:step;content:counter(step);display:grid;place-items:center;width:2.2rem;height:2.2rem;border-radius:50%;background:var(--deep);color:#fff;font-family:var(--display);font-weight:800;margin-bottom:.8rem}

/* Areas */
.areas{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem;margin-top:2.2rem}
.area{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.4rem}
.area h3{margin-bottom:.4rem}
.area p{color:var(--muted);font-size:.95rem}

/* Checklist */
.checklist{list-style:none;display:grid;gap:.6rem;margin-top:1.2rem}
.checklist li{display:flex;gap:.6rem;align-items:baseline}
.checklist li::before{content:"✓";color:var(--tile-dark);font-weight:800}

/* FAQ */
.faq{margin-top:2rem;display:grid;gap:.8rem;max-width:820px}
.faq details{background:#fff;border:1px solid var(--line);border-radius:12px;padding:1rem 1.2rem}
.faq summary{font-weight:700;cursor:pointer;color:var(--deep)}
.faq details p{margin-top:.6rem;color:var(--muted)}

/* CTA band */
.cta-band{background:var(--deep);color:#fff;text-align:center}
.cta-band h2{color:#fff}
.cta-band p{color:#B9DAE4;max-width:56ch;margin:.8rem auto 1.6rem}

/* Page hero (inner pages) */
.page-hero{background:linear-gradient(180deg,var(--deep),#0A4257);color:#fff;padding:clamp(2.5rem,6vw,4rem) 0}
.page-hero h1{color:#fff}
.page-hero .lede{color:#C4E2EB;margin-top:.7rem}
.breadcrumb{font-size:.85rem;margin-bottom:1rem;color:#9FCBD8}
.breadcrumb a{color:#C4E2EB}

/* Prose */
.prose{max-width:72ch}
.prose h2{margin:2.4rem 0 .8rem}
.prose p{margin-bottom:1rem}
.prose ul{margin:0 0 1rem 1.2rem}

/* Footer */
footer{background:var(--deep);color:#B9DAE4;padding:3.5rem 0 2rem;font-size:.95rem}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:2rem;margin-bottom:2.5rem}
.foot-grid h3{color:#fff;font-size:1rem;margin-bottom:.8rem}
.foot-grid ul{list-style:none;display:grid;gap:.45rem}
.foot-grid a{color:#B9DAE4;text-decoration:none}
.foot-grid a:hover{color:#fff}
.foot-brand{font-family:var(--display);font-weight:800;font-size:1.15rem;color:#fff;display:block;margin-bottom:.6rem}
.foot-bottom{border-top:1px solid rgba(255,255,255,.15);padding-top:1.4rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-size:.85rem;color:#7FA9B6}

/* Responsive */
@media (max-width:900px){
  .hero-grid,.grid-3,.grid-2,.steps,.areas{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  .menu-btn{display:block}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;padding:1rem clamp(1rem,4vw,2rem);gap:1rem}
  .nav-links.open{display:flex}
  .has-sub{width:100%}
  .subnav{position:static;min-width:0;width:100%;border:0;border-left:2px solid var(--line);border-radius:0;box-shadow:none;margin:.6rem 0 .2rem;padding:0 0 0 .75rem}
  .subnav a{padding:.45rem 0}
  .subnav a:hover{background:none}
  .subnav a[aria-current="page"]{background:none}
}
@media (max-width:560px){.foot-grid{grid-template-columns:1fr}}
