/* POLAR OZ — Perth aircon cleaning.
   Layout & typographic discipline after the Stripe reference: whisper-weight 300 type,
   hairline dividers, 4px radii, zero shadows, left-aligned columns, generous section gaps.
   Accent = the Polar Oz brand blue (from the logo) in place of Stripe's indigo. */
:root{
  --ink:#0d2236;            /* headings / primary text (navy from the logo) */
  --slate:#5b7185;          /* secondary text */
  --steel:#50617a;          /* tertiary / helper */
  --smoke:#8aa2b8;          /* labels, captions */
  --blue:#2b6ca3;           /* the one action colour */
  --blue-hover:#3a86c6;
  --white:#fff;
  --mist:#f8fafd;           /* quiet band */
  --frost:#e5edf5;          /* borders + dividers */
  --wash:#eef4f9;           /* lightest tinted surface */
  --border-soft:#cfe0ee;    /* ghost button border */
  --gold:#c9a63f;
  --gold-soft:#e3c87a;
  --ink-deep:#0a1725;
  --r:4px;
  --max:1240px;
  --gap:clamp(64px,8vw,96px);
  --ease:cubic-bezier(.22,.8,.3,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Inter Tight','Inter',ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  font-weight:300;font-size:16px;line-height:1.5;color:var(--ink);background:var(--white);
  font-feature-settings:"ss01" on,"tnum" on;-webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}
section{padding:var(--gap) 0}
section+section{border-top:1px solid var(--frost)}

h1,h2,h3,h4{font-weight:300;line-height:1.05}
h1{font-size:clamp(38px,5.4vw,56px);letter-spacing:-1.4px}
h2{font-size:clamp(30px,3.8vw,48px);letter-spacing:-.96px;line-height:1.05}
h3{font-size:clamp(22px,2.2vw,26px);letter-spacing:-.26px;line-height:1.12}
h4{font-size:20px;letter-spacing:-.2px}
.kicker{display:block;font-size:12px;font-weight:400;letter-spacing:.5px;text-transform:uppercase;color:var(--smoke);margin-bottom:20px}
.lead{font-size:clamp(18px,1.7vw,22px);font-weight:300;line-height:1.4;letter-spacing:-.22px;color:var(--slate);max-width:66ch}
.center{text-align:left;margin-inline:0}      /* Stripe rule: body copy is never centred */
p{font-weight:300}

/* buttons ------------------------------------------------------------- */
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--blue);color:#fff;border:1px solid var(--blue);
  border-radius:var(--r);padding:14px 24px;font-size:14px;font-weight:400;letter-spacing:-.14px;cursor:pointer;
  transition:background .2s ease,border-color .2s ease,color .2s ease}
.btn::after{display:none}
.btn:hover{background:var(--blue-hover);border-color:var(--blue-hover)}
.btn.dark,.btn.ghost,.btn.white{background:transparent;color:var(--blue);border:1px solid var(--border-soft)}
.btn.dark:hover,.btn.ghost:hover{background:var(--wash);border-color:var(--blue)}
.btn.white{background:transparent;border:1px solid rgba(255,255,255,.45);color:#fff}
.btn.white:hover{background:rgba(255,255,255,.12)}
.btn.lg{padding:15px 26px}

/* top bar + header ---------------------------------------------------- */
.topbar{background:var(--white);border-bottom:1px solid var(--frost);font-size:13px;color:var(--slate);padding:9px 0;font-weight:400}
.topbar .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.topbar b{color:var(--ink);font-weight:400}
header{position:sticky;top:0;z-index:90;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--frost)}
header.sticky{background:#fff}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;height:76px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{width:38px;height:38px;border-radius:var(--r)}
.brand b{display:block;font-weight:400;letter-spacing:.2em;font-size:15px;color:var(--ink)}
.brand b i{font-style:normal;color:var(--blue)}
.brand small{display:block;font-size:9.5px;letter-spacing:.16em;color:var(--smoke);white-space:nowrap;font-weight:400}
nav ul{display:flex;gap:24px;list-style:none;font-size:14px;font-weight:400}
nav a{color:var(--ink);padding:4px 0;transition:color .2s}
nav a:hover{color:var(--blue)}
.navbtns{display:flex;gap:8px;align-items:center}
.burger{display:none;background:transparent;border:1px solid var(--frost);border-radius:var(--r);padding:10px 13px;cursor:pointer;color:var(--ink)}

/* hero ---------------------------------------------------------------- */
.hero{position:relative;color:var(--white);overflow:hidden;padding:clamp(72px,9vw,120px) 0;border-bottom:1px solid var(--frost)}
.hero .bg{position:absolute;inset:0;z-index:0}
.hero .bg img{width:100%;height:100%;object-fit:cover}
.hero .bg::after{content:"";position:absolute;inset:0;background:#0d2236;opacity:.93}
.hero .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.25fr .75fr;gap:56px;align-items:end}
.hero .kicker{color:#9fc0da}
.hero h1{margin-bottom:24px}
.hero h1 em{font-style:normal;color:#9fc0da}
.hero p{color:#c3d4e1;font-size:clamp(18px,1.7vw,22px);line-height:1.4;letter-spacing:-.22px;max-width:56ch}
.hero .btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:32px}
.hcard{border-top:1px solid rgba(255,255,255,.22)}
.hcard h3{font-size:14px;font-weight:400;letter-spacing:.5px;text-transform:uppercase;color:#9fc0da;padding:20px 0 8px}
.hcard .li{display:flex;gap:10px;align-items:flex-start;padding:9px 0;font-size:15px;color:#c3d4e1;border-top:1px solid rgba(255,255,255,.1)}
.hcard .li svg{flex:none;margin-top:4px;stroke:#9fc0da}

/* trust --------------------------------------------------------------- */
.trust{background:var(--white);border-bottom:1px solid var(--frost)}
.trust .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-top:28px;padding-bottom:28px}
.trust div{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--steel);font-weight:400}
.trust .ic{width:28px;height:28px;display:grid;place-items:center;flex:none;color:var(--blue)}
.trust .ic svg{stroke-width:1.5}

/* service cards ------------------------------------------------------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.card{background:var(--white);border:1px solid var(--frost);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;
  transition:border-color .25s ease}
.card:hover{border-color:var(--border-soft)}
.card .ph{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--wash);border-bottom:1px solid var(--frost)}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.card:hover .ph img{transform:scale(1.04)}
.card .ph b{position:absolute;left:16px;top:16px;background:#fff;color:var(--ink);font-size:12px;font-weight:400;
  padding:5px 12px;border-radius:9999px;border:1px solid var(--frost)}
.card .tx{padding:32px;display:flex;flex-direction:column;flex:1}
.card h3{margin-bottom:12px}
.card p{color:var(--steel);font-size:16px;line-height:1.4}
.card ul{list-style:none;margin-top:20px;font-size:15px}
.card li{display:flex;gap:10px;padding:5px 0;color:var(--steel)}
.card li svg{flex:none;margin-top:6px;color:var(--blue);stroke-width:2}
.price{margin-top:auto;padding-top:24px;font-size:20px;letter-spacing:-.2px;color:var(--ink)}
.price span{color:var(--slate);font-size:14px}

/* why ----------------------------------------------------------------- */
.why{background:var(--white)}
.why4{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;margin-top:48px}
.why4 div{border-top:1px solid var(--frost);padding-top:24px}
.why4 .ic{width:24px;height:24px;color:var(--blue);margin-bottom:20px}
.why4 .ic svg{width:24px;height:24px;stroke-width:1.5}
.why4 h3{font-size:20px;letter-spacing:-.2px;margin-bottom:8px}
.why4 p{font-size:15px;color:var(--steel);line-height:1.45}

/* animated process ---------------------------------------------------- */
.proc{background:var(--mist)}
.proc h2,.proc .kicker{color:var(--ink)}
.proc .kicker{color:var(--smoke)}
.proc .lead{color:var(--slate)}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:40px 0 24px}
.tab{background:#fff;border:1px solid var(--frost);color:var(--ink);border-radius:var(--r);padding:10px 18px;
  font-size:14px;font-weight:400;cursor:pointer;transition:.2s}
.tab:hover{border-color:var(--border-soft)}
.tab.on{background:var(--blue);border-color:var(--blue);color:#fff}
.stage{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.scene{background:#0d2236;border:1px solid var(--frost);border-radius:var(--r);overflow:hidden;position:relative;aspect-ratio:16/10}
.scene svg{width:100%;height:100%;display:block}
.scenes>.scene{display:none}
.scenes>.scene.on{display:block}
.steps{list-style:none}
.steps li{display:flex;gap:16px;padding:16px 0;border-top:1px solid var(--frost);opacity:.45;cursor:pointer;transition:opacity .25s ease}
.steps li .n{width:24px;height:24px;border-radius:9999px;border:1px solid var(--border-soft);display:grid;place-items:center;
  font-size:12px;font-weight:400;flex:none;color:var(--slate);transition:.25s}
.steps li h4{font-size:18px;letter-spacing:-.18px;margin-bottom:2px;color:var(--ink)}
.steps li p{font-size:14px;color:var(--steel);line-height:1.45}
.steps li.on{opacity:1}
.steps li.on .n{background:var(--blue);border-color:var(--blue);color:#fff}
.bar{height:2px;background:var(--frost);margin-top:20px;overflow:hidden}
.bar i{display:block;height:100%;width:0;background:var(--blue)}

/* scene states */
.scene .sheet,.scene .bagpart,.scene .foam,.scene .water,.scene .flow,.scene .sparkle,.scene .vac,.scene .newpad{
  opacity:0;transition:opacity .35s ease}
.scene .dirt circle,.scene .dirt ellipse{transition:opacity .45s ease,transform .45s ease}
.scene .lid{transition:transform .5s var(--ease),opacity .4s ease}
.scene .grill{transition:transform .5s var(--ease)}
.scene[data-step="1"] .sheet,.scene[data-step="2"] .sheet,.scene[data-step="3"] .sheet,.scene[data-step="4"] .sheet{opacity:.5}
.scene[data-step="1"] .bagpart,.scene[data-step="2"] .bagpart,.scene[data-step="3"] .bagpart,.scene[data-step="4"] .bagpart{opacity:1}
.scene[data-step="2"] .lid,.scene[data-step="3"] .lid,.scene[data-step="4"] .lid{transform:translateY(-26px);opacity:.18}
.scene[data-step="2"] .grill,.scene[data-step="3"] .grill,.scene[data-step="4"] .grill{transform:translateY(26px)}
.scene[data-step="3"] .foam,.scene[data-step="3"] .vac,.scene[data-step="3"] .flow{opacity:1}
.scene[data-step="3"] .dirt circle,.scene[data-step="3"] .dirt ellipse{opacity:.45}
.scene[data-step="4"] .water,.scene[data-step="4"] .flow,.scene[data-step="4"] .sparkle,.scene[data-step="4"] .newpad{opacity:1}
.scene[data-step="4"] .dirt circle,.scene[data-step="4"] .dirt ellipse{opacity:0;transform:translateY(12px)}
.scene .spin{transform-box:fill-box;transform-origin:center;animation:spin 2.2s linear infinite;animation-play-state:paused}
.scene[data-step="4"] .spin{animation-play-state:running}
@keyframes spin{to{transform:rotate(360deg)}}
.scene .jet{stroke-dasharray:4 8;animation:jet .38s linear infinite}
@keyframes jet{to{stroke-dashoffset:-12}}
.scene .drop{animation:drop 1.1s ease-in infinite}
@keyframes drop{0%{transform:translateY(0);opacity:0}18%{opacity:1}100%{transform:translateY(42px);opacity:0}}
.scene .shine{animation:shine 1.5s ease-in-out infinite}
@keyframes shine{0%,100%{opacity:.2;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}

/* pricing ------------------------------------------------------------- */
.plans{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:48px}
.plan{border:1px solid var(--frost);border-radius:var(--r);padding:32px;background:var(--white);display:flex;flex-direction:column}
/* premium — dark ink + gold */
.plan.best{background:var(--ink-deep);border-color:rgba(201,166,63,.45);color:#fff;position:relative}
.plan.best::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,var(--gold),var(--gold-soft),var(--gold))}
.plan.best .tag{color:var(--gold-soft)}
.plan.best h3{color:#fff}
.plan.best .amt{color:var(--gold-soft)}
.plan.best .cur{color:#9fb0c0}
.plan.best ul{border-top-color:rgba(255,255,255,.14)}
.plan.best li{color:#d4dfe8}
.plan.best li svg{color:var(--gold)}
.plan .tag{font-size:12px;font-weight:400;letter-spacing:.5px;text-transform:uppercase;color:var(--smoke)}
.plan h3{margin:12px 0 16px}
.plan .amt{font-size:clamp(40px,4.4vw,56px);font-weight:300;letter-spacing:-1.4px;line-height:1.03;color:var(--ink)}
.plan .cur{font-size:14px;color:var(--slate);margin-top:4px}
.plan ul{list-style:none;margin:24px 0 0;border-top:1px solid var(--frost);padding-top:20px}
.plan li{display:flex;gap:10px;padding:7px 0;font-size:15px;color:var(--steel)}
.plan li svg{flex:none;margin-top:6px;color:var(--blue);stroke-width:2}
.addons{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:24px}
.addon{border-top:1px solid var(--frost);padding-top:24px}
.addon .tag{font-size:12px;letter-spacing:.5px;text-transform:uppercase;color:var(--smoke);font-weight:400}
.addon .amt{font-size:32px;font-weight:300;letter-spacing:-.64px;margin-top:8px;color:var(--ink)}
.addon p{font-size:14px;color:var(--steel);margin-top:8px;line-height:1.45}

/* band ---------------------------------------------------------------- */
.band{background:#0d2236;color:#fff;border-radius:var(--r);padding:clamp(32px,4vw,48px);
  display:flex;gap:32px;align-items:center;justify-content:space-between;flex-wrap:wrap;position:relative;overflow:hidden}
.band h2{font-size:clamp(26px,2.8vw,32px);letter-spacing:-.64px}
.band p{color:#b8cadb;margin-top:8px;font-size:17px}
.band.bg>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.band.bg::after{content:"";position:absolute;inset:0;background:#0d2236;opacity:.9;z-index:1}
.band.bg>div,.band.bg>a{position:relative;z-index:2}

/* gallery ------------------------------------------------------------- */
.gal{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:48px}
.gal figure{position:relative;overflow:hidden;aspect-ratio:1;border:1px solid var(--frost);border-radius:var(--r)}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.gal figure:hover img{transform:scale(1.05)}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:16px 14px 12px;color:#fff;font-size:13px;font-weight:400;
  background:linear-gradient(transparent,rgba(13,34,54,.86));opacity:0;transition:opacity .3s}
.gal figure:hover figcaption{opacity:1}

/* contact ------------------------------------------------------------- */
.quote{background:var(--mist)}
.qgrid{display:grid;grid-template-columns:1.15fr .85fr;gap:32px;align-items:start;margin-top:48px}
.form{background:#fff;border:1px solid var(--frost);border-radius:var(--r);padding:clamp(24px,3vw,32px)}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.f{display:flex;flex-direction:column;gap:7px}
.f.full{grid-column:1/-1}
.f label{font-size:13px;font-weight:400;color:var(--slate)}
.f input,.f select,.f textarea{border:1px solid var(--frost);border-radius:var(--r);padding:11px 12px;background:#fff;
  font-size:15px;outline:none;transition:border-color .2s}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--blue)}
.seg{display:flex;gap:8px;flex-wrap:wrap}
.seg label{border:1px solid var(--frost);border-radius:var(--r);padding:9px 16px;font-size:14px;cursor:pointer;transition:.2s;color:var(--steel)}
.seg label:hover{border-color:var(--border-soft)}
.seg input{display:none}
.seg label:has(input:checked){background:var(--blue);border-color:var(--blue);color:#fff}
.drop{border:1px dashed var(--border-soft);border-radius:var(--r);padding:28px;text-align:center;cursor:pointer;transition:.2s;background:var(--mist)}
.drop:hover,.drop.over{border-color:var(--blue);background:var(--wash)}
.drop b{color:var(--ink);font-weight:400}
.drop p{color:var(--steel);font-size:14px}
.thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.thumbs div{width:72px;height:72px;border-radius:var(--r);overflow:hidden;position:relative;border:1px solid var(--frost)}
.thumbs img{width:100%;height:100%;object-fit:cover}
.thumbs button{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:9999px;border:0;background:rgba(13,34,54,.8);color:#fff;cursor:pointer;line-height:1;font-size:11px}
.est{background:#fff;border:1px solid var(--frost);border-radius:var(--r);padding:32px;position:sticky;top:96px}
.est h3{margin-bottom:8px}
.est .sm{color:var(--steel);font-size:14px;line-height:1.45}
.est .row{display:flex;gap:14px;padding:14px 0;border-top:1px solid var(--frost);font-size:15px;color:var(--ink)}
.est .row span:first-child{color:var(--smoke);min-width:18px;font-variant-numeric:tabular-nums}
.ok{display:none;background:var(--wash);border:1px solid var(--border-soft);border-radius:var(--r);padding:16px;margin-top:16px;font-size:15px;color:var(--ink)}
.ok.show{display:block}
.note{font-size:13px;color:var(--steel);margin-top:16px}

/* faq ----------------------------------------------------------------- */
.ac{border-bottom:1px solid var(--frost)}
.ac:first-of-type{border-top:1px solid var(--frost)}
.ac .h{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:24px 0;cursor:pointer;font-size:20px;
  font-weight:300;letter-spacing:-.2px;color:var(--ink)}
.ac .h .pm{width:20px;height:20px;display:grid;place-items:center;flex:none;color:var(--blue);font-size:18px;transition:transform .3s var(--ease)}
.ac.open .h .pm{transform:rotate(45deg)}
.ac .b{max-height:0;overflow:hidden;transition:max-height .4s var(--ease)}
.ac .b p{padding-bottom:24px;color:var(--steel);max-width:76ch;font-size:16px;line-height:1.5}

/* footer -------------------------------------------------------------- */
footer{background:var(--mist);border-top:1px solid var(--frost);color:var(--steel);padding:64px 0 32px}
footer h4{color:var(--ink);font-size:13px;font-weight:400;letter-spacing:.5px;text-transform:uppercase;margin-bottom:14px}
footer a{display:block;padding:5px 0;font-size:15px;color:var(--steel);transition:color .2s}
footer a:hover{color:var(--blue)}
.fg4{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px}
footer .brand b{color:var(--ink)}footer .brand small{color:var(--smoke)}
.fbot{margin-top:48px;padding-top:24px;border-top:1px solid var(--frost);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--smoke)}
.copy{background:#fff;border:1px solid var(--frost);color:var(--blue);border-radius:var(--r);padding:5px 12px;font-size:13px;cursor:pointer;transition:.2s}
.copy:hover{border-color:var(--blue)}
.copy.done{background:var(--blue);border-color:var(--blue);color:#fff}

/* reveal + fab -------------------------------------------------------- */
.rv{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.in{opacity:1;transform:none}
.d1{transition-delay:.06s}.d2{transition-delay:.12s}.d3{transition-delay:.18s}.d4{transition-delay:.24s}
.callfab{position:fixed;right:20px;bottom:20px;z-index:95;transform:translateY(130%);transition:transform .4s var(--ease)}
.callfab.show{transform:none}

@media(max-width:960px){
  .hero .wrap,.stage,.qgrid{grid-template-columns:1fr}
  .cards,.why4,.trust .wrap,.fg4,.addons{grid-template-columns:1fr 1fr}
  .gal{grid-template-columns:1fr 1fr}
  nav ul{display:none}
  .burger{display:block}
  nav.open ul{display:flex;position:absolute;left:0;right:0;top:76px;background:#fff;flex-direction:column;gap:16px;
    padding:24px;border-bottom:1px solid var(--frost)}
  .est{position:static}
  .plans{grid-template-columns:1fr}
}
@media(max-width:620px){
  .cards,.why4,.trust .wrap,.fg,.fg4,.addons{grid-template-columns:1fr}
  .navbtns .btn.dark{display:none}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}}
