/*
Theme Name: Phoenix Plumbing & Heating
Theme URI: https://ppah.ca
Author: Vitrine Collective
Description: Custom theme for Phoenix Plumbing & Heating, residential plumbing and heating in Greater Vancouver.
Version: 1.1.0
License: GNU General Public License v2 or later
Text Domain: phoenix-ph
*/
/* ============================================================
   PHOENIX PLUMBING & HEATING
   Palette taken directly from the van graphics and business card
   ============================================================ */
:root{
  --ink:#15171A;
  --charcoal:#24272D;
  --charcoal-soft:#2D3037;
  --slate:#5A5F66;
  --slate-light:#8A9199;
  --blue:#3BC2DA;
  --blue-deep:#147485;
  --blue-dark:#105B69;
  --blue-pale:#EDFAFC;
  --bone:#F5F3EE;
  --bone-deep:#EBE8E1;
  --white:#FFFFFF;
  --line:#DCD8D0;
  --line-dark:rgba(255,255,255,.14);
  --shell:min(1360px,92vw);
  --ease:cubic-bezier(.16,.84,.44,1);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:96px;-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--bone);color:var(--ink);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  font-size:16.5px;line-height:1.65;font-weight:400;letter-spacing:-0.003em;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
button,input,select,textarea{font:inherit;color:inherit;}

/* ---------- type ---------- */
.display{font-family:'Fraunces',Georgia,serif;font-weight:300;letter-spacing:-0.025em;line-height:1.02;}
.amp{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;font-weight:inherit;font-style:normal;}
h1,h2,h3{margin:0;font-family:'Fraunces',Georgia,serif;font-weight:300;letter-spacing:-0.022em;line-height:1.06;}
h1{font-size:clamp(2.9rem,7.4vw,6.4rem);}
h2{font-size:clamp(2.1rem,4.4vw,3.9rem);}
h3{font-size:clamp(1.25rem,2vw,1.65rem);line-height:1.18;letter-spacing:-0.015em;}
p{margin:0 0 1.15em;}
p:last-child{margin-bottom:0;}
.lede{font-size:clamp(1.05rem,1.55vw,1.28rem);line-height:1.6;color:var(--slate);font-weight:300;max-width:56ch;}
.eyebrow{
  font-size:.685rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase;
  color:var(--blue-deep);display:flex;align-items:center;gap:.85rem;margin:0 0 1.6rem;
}
.eyebrow.on-dark{color:var(--blue);}
.num{
  font-family:'Fraunces',Georgia,serif;font-size:.78rem;letter-spacing:.14em;
  color:var(--slate-light);font-weight:400;
}

/* ---------- shell ---------- */
.shell{width:var(--shell);margin:0 auto;}
section{position:relative;}
.pad{padding:clamp(5rem,10vw,9.5rem) 0;}
.rule{height:1px;background:var(--line);border:0;margin:0;}

/* ---------- header ---------- */
header{
  position:fixed;top:0;left:0;right:0;z-index:200;
  transition:background .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease);
  border-bottom:1px solid transparent;
}
header.solid{background:rgba(245,243,238,.9);backdrop-filter:blur(18px) saturate(1.4);border-bottom-color:var(--line);}
.hdr-in{display:flex;align-items:center;justify-content:space-between;gap:2rem;height:86px;}
.brand{display:flex;align-items:center;gap:.85rem;}
.brand .ppah-logo{width:clamp(150px,15vw,186px);height:auto;flex:none;color:var(--charcoal);
  transition:color .5s var(--ease),transform .5s var(--ease);}
.ppah-logo .w{fill:currentColor;}
.ppah-logo .m{fill:var(--blue);}
.brand:hover .ppah-logo{transform:translateY(-2px);}
header.over-dark .brand .ppah-logo{color:var(--white);}
.wordmark{line-height:1;}
.wordmark .name{
  font-family:'Fraunces',Georgia,serif;font-weight:600;font-size:1.16rem;
  letter-spacing:.045em;text-transform:uppercase;display:block;color:var(--charcoal);
  transition:color .5s var(--ease);
}
.wordmark .sub{
  display:block;font-size:.535rem;letter-spacing:.3em;text-transform:uppercase;white-space:nowrap;
  font-weight:500;margin-top:.36rem;color:var(--slate);transition:color .5s var(--ease);
}
header.over-dark .wordmark .name{color:var(--white);}
header.over-dark .wordmark .sub{color:rgba(255,255,255,.62);}
header.over-dark #nav a{color:rgba(255,255,255,.78);}
header.over-dark #nav a:hover{color:var(--white);}
header.over-dark .hdr-phone{color:var(--white);}
#nav{display:flex;align-items:center;gap:2.4rem;}
#nav a{
  font-size:.795rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;
  color:var(--slate);position:relative;padding:.4rem 0;transition:color .3s;
}
#nav a::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:1px;
  background:var(--blue-deep);transition:width .45s var(--ease);
}
#nav a:hover{color:var(--ink);}
#nav a:hover::after{width:100%;}
#nav .nav-cta{display:none;}
#nav .nav-cta a::after{display:none;}
.hdr-right{display:flex;align-items:center;gap:1.5rem;}
.hdr-phone{
  font-size:.855rem;font-weight:500;letter-spacing:.02em;color:var(--charcoal);
  display:flex;align-items:center;gap:.5rem;transition:color .5s var(--ease);
}
.hdr-phone svg{width:14px;height:14px;stroke:var(--blue-deep);}
header.over-dark .hdr-phone svg{stroke:var(--blue);}
.burger{display:none;background:none;border:0;padding:.5rem;cursor:pointer;}
.burger span{display:block;width:24px;height:1.5px;background:var(--charcoal);margin:5px 0;transition:.35s var(--ease);}
header.over-dark .burger span{background:var(--white);}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.7rem;
  padding:1.02rem 1.9rem;font-size:.775rem;font-weight:500;letter-spacing:.13em;
  text-transform:uppercase;border:1px solid transparent;cursor:pointer;
  transition:all .42s var(--ease);white-space:nowrap;border-radius:2px;
}
.btn-primary{background:var(--charcoal);color:var(--white);border-color:var(--charcoal);}
.btn-primary:hover{background:var(--blue-deep);border-color:var(--blue-deep);transform:translateY(-2px);}
.btn-blue{background:var(--blue);color:var(--charcoal);border-color:var(--blue);}
.btn-blue:hover{background:var(--white);border-color:var(--white);transform:translateY(-2px);}
.btn-ghost{background:transparent;color:var(--charcoal);border-color:var(--line);}
.btn-ghost:hover{border-color:var(--charcoal);transform:translateY(-2px);}
.btn-ghost-light{background:transparent;color:var(--white);border-color:rgba(255,255,255,.3);}
.btn-ghost-light:hover{border-color:var(--white);background:rgba(255,255,255,.07);transform:translateY(-2px);}
.btn svg{width:14px;height:14px;transition:transform .42s var(--ease);}
.btn:hover svg{transform:translateX(4px);}

/* ---------- hero ---------- */
.hero{
  position:relative;background:var(--charcoal);color:var(--white);
  min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;
  overflow:hidden;padding-top:86px;
}
.hero-glow{
  position:absolute;top:-22%;right:-14%;width:78vw;height:78vw;max-width:1050px;max-height:1050px;
  background:radial-gradient(circle at 50% 50%,rgba(59,194,218,.32),rgba(59,194,218,.07) 42%,transparent 66%);
  pointer-events:none;
}
.hero-mark{
  position:absolute;right:-6vw;top:50%;transform:translateY(-50%);
  width:min(60vw,720px);opacity:.09;pointer-events:none;
}
.hero-mark .m{fill:var(--blue);}
/* placeholder photography plate */
.hero-plate{
  position:absolute;right:0;top:0;bottom:0;width:44%;
  background:
    linear-gradient(180deg,rgba(37,38,42,0) 0%,rgba(37,38,42,.55) 78%,var(--charcoal) 100%),
    linear-gradient(150deg,#3E5C6B 0%,#2B3D48 46%,#22252A 100%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 26%);
  mask-image:linear-gradient(90deg,transparent 0,#000 26%);
}

.hero-in{position:relative;z-index:3;padding-bottom:clamp(2.6rem,5vw,4.4rem);padding-top:clamp(4rem,12vh,9rem);}
.hero-copy{max-width:min(920px,72%);}
.hero h1{color:var(--white);}
.hero h1 em{font-style:italic;font-weight:300;color:var(--blue);}
.hero .lede{color:rgba(255,255,255,.72);margin-top:2rem;max-width:50ch;}
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.9rem;}
.hero-rail{
  position:relative;z-index:3;border-top:1px solid var(--line-dark);
  display:grid;grid-template-columns:repeat(4,1fr);
}
.rail-item{padding:2.5rem 2.9rem;border-right:1px solid var(--line-dark);}
.rail-item:first-child{padding-left:0;}
.rail-item:last-child{border-right:0;padding-right:0;}
.rail-item .k{
  font-family:'Fraunces',Georgia,serif;font-size:1.72rem;font-weight:300;
  color:var(--blue);line-height:1;letter-spacing:-.02em;
}
.rail-item .v{
  font-size:.685rem;letter-spacing:.17em;text-transform:uppercase;line-height:1.55;
  color:rgba(255,255,255,.5);margin-top:1.05rem;font-weight:500;
}

/* ---------- section heading ---------- */
.sec-head{display:grid;grid-template-columns:1fr minmax(0,1.05fr);gap:clamp(2rem,6vw,6rem);align-items:end;margin-bottom:clamp(3rem,6vw,5.5rem);}
.sec-head .right{padding-bottom:.4rem;}

/* ---------- services ---------- */
.svc-list{border-top:1px solid var(--line);}
.svc{border-bottom:1px solid var(--line);}
.svc-row{
  width:100%;background:none;border:0;text-align:left;cursor:pointer;
  display:grid;grid-template-columns:70px 1fr auto;gap:clamp(1rem,3vw,2.5rem);
  align-items:center;padding:clamp(1.5rem,2.6vw,2.3rem) 0;transition:padding .5s var(--ease);
}
.svc-row:hover{padding-left:14px;}
.svc-row h3{transition:color .35s;}
.svc-row:hover h3{color:var(--blue-deep);}
.svc-row .tag{
  font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--slate-light);
  display:flex;align-items:center;gap:1.4rem;font-weight:500;
}
.plus{position:relative;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;flex:none;transition:.45s var(--ease);}
.plus::before,.plus::after{content:"";position:absolute;left:50%;top:50%;background:var(--charcoal);transition:.45s var(--ease);}
.plus::before{width:11px;height:1px;transform:translate(-50%,-50%);}
.plus::after{width:1px;height:11px;transform:translate(-50%,-50%);}
.svc-row:hover .plus{border-color:var(--blue-deep);background:var(--blue-pale);}
.svc.open .plus{background:var(--charcoal);border-color:var(--charcoal);transform:rotate(135deg);}
.svc.open .plus::before,.svc.open .plus::after{background:var(--white);}
.svc-body{max-height:0;overflow:hidden;transition:max-height .7s var(--ease);}
.svc.open .svc-body{max-height:760px;}
.svc-body-in{
  display:grid;grid-template-columns:70px 1fr minmax(0,.85fr);gap:clamp(1rem,3vw,2.5rem);
  padding:0 0 clamp(2rem,3.4vw,3rem);
}
.svc-body-in .copy{color:var(--slate);font-size:1.02rem;line-height:1.72;font-weight:300;}
.svc-body-in .copy strong{color:var(--ink);font-weight:500;}
.chips{list-style:none;margin:1.6rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.5rem;}
.chips li{
  font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;font-weight:500;
  padding:.5rem .85rem;background:var(--white);border:1px solid var(--line);color:var(--slate);border-radius:2px;
}
.svc-plate{
  background:linear-gradient(150deg,#9FCEE0 0%,#6FA6BE 45%,#3E6274 100%);
  min-height:220px;border-radius:2px;position:relative;overflow:hidden;
}


/* ---------- experience band ---------- */
.band{background:var(--charcoal);color:var(--white);}
.band .lede{color:rgba(255,255,255,.66);}
.band h2{color:var(--white);}
.band h2 em{font-style:italic;color:var(--blue);}
.exp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-dark);margin-top:clamp(3rem,5vw,4.5rem);border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);}
.exp-cell{background:var(--charcoal);padding:clamp(2rem,3.4vw,3rem) clamp(1.4rem,2.4vw,2.2rem) clamp(2.2rem,3.6vw,3.2rem);}
.exp-cell .k{font-family:'Fraunces',Georgia,serif;font-size:clamp(2.6rem,5vw,4rem);font-weight:300;color:var(--blue);line-height:1;letter-spacing:-.03em;}
.exp-cell h3{color:var(--white);margin:1.4rem 0 .7rem;font-size:1.12rem;}
.exp-cell p{color:rgba(255,255,255,.56);font-size:.94rem;line-height:1.68;font-weight:300;}

/* ---------- process ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:3px;overflow:hidden;}
.step{background:var(--white);padding:clamp(1.8rem,2.8vw,2.6rem);transition:background .4s var(--ease);position:relative;}
.step::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--blue);opacity:0;transition:opacity .4s var(--ease);}
.step:hover{background:var(--blue-pale);}
.step:hover::before{opacity:1;}
.step .num{display:block;margin-bottom:1.9rem;color:var(--blue-deep);font-weight:500;}
.step h3{font-size:1.1rem;margin-bottom:.7rem;}
.step p{color:var(--slate);font-size:.93rem;line-height:1.66;font-weight:400;}

/* ---------- reviews ---------- */
.reviews{background:var(--white);}
.gwidget{border:1px solid var(--line);border-radius:3px;background:var(--white);overflow:hidden;}
.gw-head{display:grid;grid-template-columns:minmax(0,320px) 1fr;gap:0;border-bottom:1px solid var(--line);}
.gw-score{padding:clamp(2rem,3vw,2.8rem);border-right:1px solid var(--line);}
.gw-logo{display:flex;align-items:center;gap:.6rem;font-size:1.02rem;font-weight:500;letter-spacing:-.01em;}
.gw-logo svg{width:19px;height:19px;}
.gw-rating{
  margin-top:1.5rem;border:1px solid var(--line);border-radius:3px;padding:1.1rem 1.2rem;background:var(--bone);
}
.gw-rating .big{font-family:'Fraunces',Georgia,serif;font-size:2.5rem;font-weight:300;color:var(--charcoal);line-height:1;letter-spacing:-.03em;}
.stars{display:flex;gap:3px;margin-top:.7rem;}
.stars svg{width:16px;height:16px;fill:#FBBC04;stroke:none;}
.gw-rating .note{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin-top:.85rem;font-weight:500;}
.gw-connect{padding:clamp(2rem,3vw,2.8rem);display:flex;flex-direction:column;justify-content:center;}
.gw-connect p{color:var(--slate);font-size:.98rem;font-weight:300;line-height:1.7;max-width:52ch;}
.live-dot{display:inline-flex;align-items:center;gap:.55rem;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;font-weight:500;color:var(--blue-deep);margin-bottom:1rem;}
.live-dot i{width:7px;height:7px;border-radius:50%;background:var(--blue);box-shadow:0 0 0 0 rgba(59,194,218,.7);animation:pulse 2.4s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(59,194,218,.6)}70%{box-shadow:0 0 0 9px rgba(59,194,218,0)}100%{box-shadow:0 0 0 0 rgba(59,194,218,0)}}
.gw-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-bottom:1px solid var(--line);}
.gw-rev{padding:clamp(1.8rem,2.6vw,2.4rem);border-right:1px solid var(--line);border-bottom:1px solid var(--line);}
.gw-list .gw-rev:nth-child(2n){border-right:0;}
.gw-list .gw-rev:nth-last-child(-n+2){border-bottom:0;}
.gw-rev-top{display:flex;align-items:center;gap:.85rem;margin-bottom:1.1rem;}
.gw-av{width:38px;height:38px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;background:var(--blue-pale);color:var(--blue-dark);font-size:.9rem;font-weight:500;}
.gw-name{margin:0;font-size:.97rem;font-weight:500;color:var(--charcoal);letter-spacing:-.01em;}
.gw-meta{display:flex;align-items:center;gap:.7rem;margin-top:.3rem;}
.gw-stars::before{content:'\2605\2605\2605\2605\2605';color:#FBBC04;font-size:.82rem;letter-spacing:.12em;line-height:1;}
.gw-when{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);font-weight:500;}
.gw-rev blockquote{margin:0;font-size:.97rem;font-weight:300;line-height:1.75;color:var(--slate);}
.gw-rev blockquote::before{content:'\201C';display:block;font-family:'Fraunces',Georgia,serif;font-size:2.2rem;line-height:.55;color:var(--blue);opacity:.45;margin-bottom:.45rem;}
.gw-foot{padding:clamp(1.6rem,2.4vw,2.1rem);display:flex;justify-content:center;}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--bone-deep);flex:none;}

/* ---------- service pages ---------- */
.svc-hero{
  position:relative;background:var(--charcoal);color:var(--white);
  padding:calc(86px + clamp(3.5rem,7vw,6.5rem)) 0 clamp(3.5rem,6vw,5.5rem);overflow:hidden;
}
.svc-hero .shell{position:relative;z-index:3;}
.svc-hero h1{
  font-family:'Fraunces',Georgia,serif;font-size:clamp(2.4rem,5.4vw,4.3rem);font-weight:300;
  line-height:1.04;letter-spacing:-.035em;margin:1.5rem 0 1.9rem;color:var(--white);
}
.svc-hero h1 em{font-style:italic;color:var(--blue);}
.svc-hero .lede{color:rgba(255,255,255,.68);max-width:58ch;}
.svc-hero .hero-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.4rem;}
.crumbs{display:flex;align-items:center;gap:.6rem;font-size:.68rem;letter-spacing:.16em;
  text-transform:uppercase;font-weight:500;color:rgba(255,255,255,.42);margin-bottom:2.2rem;}
.crumbs a{color:rgba(255,255,255,.62);}
.crumbs a:hover{color:var(--blue);}

.sp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:clamp(2.5rem,5vw,5rem);align-items:start;}
.sp-main h2{
  font-family:'Fraunces',Georgia,serif;font-size:clamp(1.5rem,2.5vw,2.05rem);font-weight:300;
  line-height:1.18;letter-spacing:-.025em;color:var(--charcoal);margin:0 0 1.3rem;
}
.sp-main h2 + p{margin-top:0;}
.sp-main > h2:not(:first-child){margin-top:clamp(2.6rem,4vw,3.6rem);}
.sp-main p{color:var(--slate);font-size:1.04rem;line-height:1.78;font-weight:300;margin:0 0 1.2rem;max-width:64ch;}

.sp-side{position:sticky;top:calc(86px + 1.5rem);display:flex;flex-direction:column;gap:1.2rem;}
.side-card{border:1px solid var(--line);border-radius:3px;background:var(--white);padding:clamp(1.6rem,2.4vw,2rem);}
.side-list{list-style:none;margin:1.2rem 0 0;padding:0;}
.side-list li{
  font-size:.9rem;color:var(--slate);font-weight:400;padding:.72rem 0 .72rem 1.4rem;
  border-bottom:1px solid var(--line);position:relative;line-height:1.5;
}
.side-list li:last-child{border-bottom:0;}
.side-list li::before{content:"";position:absolute;left:0;top:1.12rem;width:6px;height:6px;border-radius:50%;background:var(--blue);}
.side-links{list-style:none;margin:1.1rem 0 0;padding:0;}
.side-links li{border-bottom:1px solid var(--line);}
.side-links li:last-child{border-bottom:0;}
.side-links a{
  display:flex;align-items:center;justify-content:space-between;padding:.78rem 0;
  font-size:.9rem;color:var(--slate);font-weight:400;transition:color .3s;
}
.side-links a::after{content:"\2192";color:var(--blue-deep);opacity:0;transform:translateX(-4px);transition:all .35s var(--ease);}
.side-links a:hover{color:var(--charcoal);}
.side-links a:hover::after{opacity:1;transform:none;}

.sp-more{margin:1.6rem 0 0;}
.sp-more a{
  display:inline-flex;align-items:center;gap:.5rem;font-size:.72rem;letter-spacing:.15em;
  text-transform:uppercase;font-weight:500;color:var(--blue-dark);
}
.sp-more a svg{width:15px;height:15px;transition:transform .35s var(--ease);}
.sp-more a:hover svg{transform:translateX(4px);}

/* services dropdown in the header */
.nav-drop{position:relative;display:inline-flex;align-items:center;}
.nav-drop > .drop{
  position:absolute;top:100%;left:-1.1rem;min-width:238px;background:var(--white);
  border:1px solid var(--line);border-radius:3px;padding:.5rem 0;
  box-shadow:0 18px 44px rgba(36,39,45,.13);
  display:flex;flex-direction:column;opacity:0;visibility:hidden;
  transform:translateY(6px);transition:all .3s var(--ease);z-index:170;
}
.nav-drop:hover > .drop,.nav-drop:focus-within > .drop{opacity:1;visibility:visible;transform:none;}
.nav-drop > .drop a{padding:.62rem 1.1rem;font-size:.72rem;letter-spacing:.1em;color:var(--slate);}
.nav-drop > .drop a::after{display:none;}
.nav-drop > .drop a:hover{color:var(--charcoal);background:var(--bone);}

/* ---------- area ---------- */
.area-grid{display:grid;grid-template-columns:1fr minmax(0,1.1fr);gap:clamp(2.5rem,6vw,6rem);align-items:center;}
.city-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line);}
.city-list li{
  border-bottom:1px solid var(--line);padding:.95rem .4rem;font-size:.95rem;color:var(--slate);
  display:flex;align-items:center;gap:.8rem;font-weight:300;
}
.city-list li::before{content:"";width:5px;height:5px;background:var(--blue);border-radius:50%;flex:none;}
.map-plate{
  aspect-ratio:4/3.1;border-radius:3px;position:relative;overflow:hidden;
  background:linear-gradient(150deg,#DDE9EE 0%,#C7DCE6 50%,#A9C8D6 100%);
  border:1px solid var(--line);
}
.map-plate .grid-lines{position:absolute;inset:0;
  background-image:linear-gradient(rgba(255,255,255,.55) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.55) 1px,transparent 1px);
  background-size:52px 52px;}
.map-plate .pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:74px;opacity:.95;}
.map-plate .pin .drop{fill:var(--charcoal);}
.map-plate .pin .m{fill:var(--blue);}
.map-plate .cap{position:absolute;left:1.1rem;bottom:1rem;font-size:.58rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(37,38,42,.5);}
.ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid rgba(37,38,42,.16);border-radius:50%;}
.ring.a{width:46%;height:46%;}
.ring.b{width:68%;height:68%;border-style:dashed;}
.ring.c{width:90%;height:90%;border-color:rgba(37,38,42,.09);}

/* ---------- booking (scheduler) ---------- */
.booking{background:var(--bone-deep);}
.sched{
  display:grid;grid-template-columns:minmax(0,340px) 1fr;
  background:var(--white);border:1px solid var(--line);border-radius:4px;overflow:hidden;
  box-shadow:0 30px 70px -40px rgba(37,38,42,.32);
}
.sched-side{padding:clamp(1.8rem,3vw,2.6rem);border-right:1px solid var(--line);}
.sched-side .host{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--slate-light);font-weight:500;}
.sched-side h3{margin:.85rem 0 1.4rem;font-size:1.5rem;}
.meta{list-style:none;margin:0 0 1.6rem;padding:0;display:flex;flex-direction:column;gap:.85rem;}
.meta li{display:flex;align-items:center;gap:.75rem;font-size:.93rem;color:var(--slate);font-weight:300;}
.meta svg{width:16px;height:16px;stroke:var(--blue-deep);fill:none;stroke-width:1.5;flex:none;}
.sched-side p{font-size:.9rem;color:var(--slate);line-height:1.7;font-weight:300;}
.sched-side .mark{width:44px;margin-bottom:1.6rem;}
.sched-side .mark .m{fill:var(--blue);}
.sched-side .mark .bird{fill:var(--charcoal);}
.sched-main{padding:clamp(1.8rem,3vw,2.6rem);display:grid;grid-template-columns:1fr minmax(0,210px);gap:clamp(1.5rem,3vw,2.5rem);}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem;}
.cal-head .m{font-family:'Fraunces',Georgia,serif;font-size:1.28rem;font-weight:400;letter-spacing:-.01em;}
.cal-nav{display:flex;gap:.45rem;}
.cal-nav button{
  width:32px;height:32px;border:1px solid var(--line);background:var(--white);border-radius:50%;
  cursor:pointer;display:grid;place-items:center;transition:.3s var(--ease);
}
.cal-nav button:hover:not(:disabled){border-color:var(--charcoal);}
.cal-nav button:disabled{opacity:.32;cursor:not-allowed;}
.cal-nav svg{width:13px;height:13px;stroke:var(--charcoal);fill:none;stroke-width:1.6;}
.dow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:8px;}
.dow span{text-align:center;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--slate-light);font-weight:500;}
.days{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;justify-items:center;}
.dow{max-width:420px;}
.days{max-width:420px;}
.day{
  aspect-ratio:1;width:100%;max-width:48px;border:0;background:none;border-radius:50%;cursor:pointer;
  font-size:.9rem;font-weight:500;color:var(--blue-deep);position:relative;
  display:grid;place-items:center;transition:.28s var(--ease);
}
.day.has{background:var(--blue-pale);}
.day.has:hover{background:var(--blue);color:var(--charcoal);transform:scale(1.06);}
.day.off{color:var(--line);cursor:default;font-weight:300;}
.day.sel{background:var(--charcoal);color:var(--white);}
.day.sel::after{content:"";position:absolute;bottom:5px;width:4px;height:4px;border-radius:50%;background:var(--blue);}
.slots-title{font-size:.83rem;font-weight:500;margin-bottom:1rem;color:var(--charcoal);}
.slots{display:flex;flex-direction:column;gap:.5rem;max-height:288px;overflow-y:auto;padding-right:4px;}
.slot{
  padding:.78rem;border:1px solid var(--blue);background:var(--white);color:var(--blue-deep);
  border-radius:3px;font-size:.87rem;font-weight:500;cursor:pointer;transition:.28s var(--ease);text-align:center;
}
.slot:hover{background:var(--blue-pale);}
.slot.picked{background:var(--charcoal);border-color:var(--charcoal);color:var(--white);}
.slots-empty{font-size:.87rem;color:var(--slate-light);font-weight:300;line-height:1.6;}
.confirm{margin-top:1rem;}
.confirm .btn{width:100%;padding:.95rem 1rem;}
.booked{
  margin-top:1rem;padding:1rem;border:1px solid var(--blue);background:var(--blue-pale);
  border-radius:3px;font-size:.86rem;color:var(--blue-dark);line-height:1.6;display:none;
}
.booked.show{display:block;}

/* ---------- intake form ---------- */
.intake{background:var(--charcoal);color:var(--white);}
.intake h2{color:var(--white);}
.intake h2 em{font-style:italic;color:var(--blue);}
.intake .lede{color:rgba(255,255,255,.64);}
.form-wrap{display:grid;grid-template-columns:minmax(0,.85fr) 1.15fr;gap:clamp(2.5rem,6vw,6rem);align-items:start;}
.form-aside .item{padding:1.5rem 0;border-top:1px solid var(--line-dark);}
.form-aside .item:last-child{border-bottom:1px solid var(--line-dark);}
.form-aside .item .l{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.42);font-weight:500;}
.form-aside .item .v{margin-top:.6rem;font-size:1.02rem;color:var(--white);font-weight:300;}
.form-aside .item .v a:hover{color:var(--blue);}
form{display:grid;gap:1.45rem;}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:1.45rem;}
.field label{display:block;font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.5);font-weight:500;margin-bottom:.7rem;}
.field input,.field select,.field textarea{
  width:100%;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.2);
  padding:.7rem 0;color:var(--white);font-size:1rem;font-weight:300;border-radius:0;
  transition:border-color .4s var(--ease);
}
.field input::placeholder,.field textarea::placeholder{color:rgba(255,255,255,.28);}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-bottom-color:var(--blue);}
.field select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233BC2DA' stroke-width='1.5'><path d='M6 9l6 6 6-6'/></svg>");
  background-repeat:no-repeat;background-position:right .1rem center;background-size:16px;}
.field select option{background:var(--charcoal);color:var(--white);}
.field textarea{resize:vertical;min-height:104px;}
.chipset{display:flex;flex-wrap:wrap;gap:.55rem;}
.chipset input{position:absolute;opacity:0;width:0;height:0;}
.chipset label{
  margin:0;padding:.62rem 1rem;border:1px solid rgba(255,255,255,.2);border-radius:99px;
  font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:rgba(255,255,255,.66);
  cursor:pointer;transition:.32s var(--ease);font-weight:500;
}
.chipset label:hover{border-color:rgba(255,255,255,.5);color:var(--white);}
.chipset input:checked + label{background:var(--blue);border-color:var(--blue);color:var(--charcoal);}
.dropzone{
  border:1px dashed rgba(255,255,255,.24);border-radius:3px;padding:1.5rem;text-align:center;
  font-size:.85rem;color:rgba(255,255,255,.45);cursor:pointer;transition:.35s var(--ease);font-weight:300;
}
.dropzone:hover{border-color:var(--blue);color:rgba(255,255,255,.72);}
.dropzone strong{color:var(--blue);font-weight:500;}
.form-foot{display:flex;flex-wrap:wrap;align-items:center;gap:1.4rem;justify-content:space-between;margin-top:.4rem;}
.form-foot .fine{font-size:.79rem;color:rgba(255,255,255,.38);font-weight:300;max-width:34ch;line-height:1.6;}
.sent{display:none;padding:1rem 1.2rem;border:1px solid var(--blue);background:rgba(59,194,218,.1);border-radius:3px;font-size:.9rem;color:var(--blue);}
.sent.show{display:block;}

/* ---------- footer ---------- */
footer{background:var(--ink);color:rgba(255,255,255,.6);padding:clamp(4rem,7vw,6rem) 0 2.4rem;}
.f-top{display:grid;grid-template-columns:minmax(0,1.5fr) 1fr 1fr 1fr;gap:clamp(2rem,4vw,3.5rem);padding-bottom:clamp(3rem,5vw,4.5rem);border-bottom:1px solid rgba(255,255,255,.1);}
.f-brand .ppah-logo{width:210px;height:auto;margin-bottom:1.6rem;color:var(--white);}
.f-brand .wm{font-family:'Fraunces',Georgia,serif;font-size:1.3rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--white);}
.f-brand .wms{font-size:.55rem;letter-spacing:.3em;text-transform:uppercase;margin-top:.4rem;color:rgba(255,255,255,.45);font-weight:500;}
.f-brand p{margin-top:1.5rem;font-size:.92rem;line-height:1.7;font-weight:300;max-width:34ch;}
.f-col h4{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.4);margin:0 0 1.3rem;font-weight:500;}
.f-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem;}
.f-col a,.f-col li{font-size:.92rem;font-weight:300;transition:color .3s;}
.f-col a:hover{color:var(--blue);}
.f-bot{padding-top:2.2rem;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;font-size:.78rem;color:rgba(255,255,255,.32);font-weight:300;}
.f-credit{padding-top:1.5rem;text-align:center;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;color:rgba(255,255,255,.22);}
.f-credit a{color:rgba(255,255,255,.42);transition:color .3s;}
.f-credit a:hover{color:var(--blue);}

/* ---------- reveal ---------- */
.rv{opacity:0;transform:translateY(16px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.rv.in{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important;}
  .rv{opacity:1;transform:none;}
  html{scroll-behavior:auto;}
}

/* ---------- responsive ---------- */
@media(max-width:1080px){
  .sp-grid{grid-template-columns:1fr;}
  .sp-side{position:static;}
  .hero-plate{width:38%;}
  .hero-copy{max-width:100%;}
    .steps{grid-template-columns:repeat(2,1fr);}
  .exp-grid{grid-template-columns:1fr;}
  .sched{grid-template-columns:1fr;}
  .sched-side{border-right:0;border-bottom:1px solid var(--line);}
  .f-top{grid-template-columns:1fr 1fr;}
}
@media(max-width:900px){
  #nav{
    position:fixed;inset:0;background:var(--charcoal);flex-direction:column;
    justify-content:center;gap:2.2rem;transform:translateY(-100%);
    transition:transform .6s var(--ease);z-index:150;
  }
  #nav.open{transform:none;}
  #nav a{font-size:1.15rem;color:rgba(255,255,255,.8);letter-spacing:.14em;}
  .nav-drop{flex-direction:column;gap:1rem;}
  .nav-drop > .drop{position:static;opacity:1;visibility:visible;transform:none;
    background:transparent;border:0;box-shadow:none;padding:0;gap:.9rem;min-width:0;align-items:center;}
  .nav-drop > .drop a{color:rgba(255,255,255,.55);font-size:.85rem;padding:0;}
  .nav-drop > .drop a:hover{background:transparent;color:var(--white);}
  .burger{display:block;position:relative;z-index:160;}
  .burger.x span{background:var(--white);}
  .burger.x span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
  .burger.x span:nth-child(2){opacity:0;}
  .burger.x span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
  .hdr-phone{display:none;}
  #nav .nav-cta{
    display:flex;gap:.8rem;flex-direction:column;align-items:center;margin-top:1rem;
  }
  #nav .nav-cta a{font-size:.78rem;letter-spacing:.13em;}
  .hero-plate{display:none;}
  .hero-mark{right:-24vw;opacity:.06;}
  .hero-rail{grid-template-columns:repeat(2,1fr);}
  .rail-item{padding:1.9rem 1.6rem;}
  .rail-item:nth-child(odd){padding-left:0;}
  .rail-item:nth-child(2n){border-right:0;padding-right:0;}
  .rail-item:nth-child(-n+2){border-bottom:1px solid var(--line-dark);}
  .rail-item{padding:1.4rem 1.2rem 1.4rem 0;border-bottom:1px solid var(--line-dark);}
  .rail-item:nth-child(2n){border-right:0;}
  .rail-item:nth-child(n+3){border-bottom:0;}
  .sec-head{grid-template-columns:1fr;gap:1.8rem;}
  .svc-body-in{grid-template-columns:1fr;}
  .svc-plate{display:none;}
  .area-grid{grid-template-columns:1fr;}
  .sched-main{grid-template-columns:1fr;}
  .form-wrap{grid-template-columns:1fr;}
  .gw-head{grid-template-columns:1fr;}
  .gw-score{border-right:0;border-bottom:1px solid var(--line);}
  .gw-list{grid-template-columns:1fr;}
  .gw-rev{border-right:0;border-bottom:1px solid var(--line);}
  .gw-list .gw-rev:last-child{border-bottom:0;}
}
@media(max-width:760px){
  .hdr-in > .hdr-right > .btn{display:none;}
  .wordmark .name{font-size:1.04rem;}
  .wordmark .sub{font-size:.5rem;letter-spacing:.24em;}
}
@media(max-width:640px){
  body{font-size:16px;}
  .hero{min-height:auto;padding-bottom:0;}
  .hero-in{padding-top:6.5rem;padding-bottom:3rem;}
  .hero-actions{flex-direction:column;align-items:stretch;}
  .hero-actions .btn{width:100%;}
  .svc-row{grid-template-columns:44px 1fr auto;gap:1rem;}
  .svc-row .tag span{display:none;}
  .svc-body-in{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr;}
  .city-list{grid-template-columns:1fr;}
  .f2{grid-template-columns:1fr;}
  .f-top{grid-template-columns:1fr;}
  .form-foot{flex-direction:column;align-items:stretch;}
  .form-foot .btn{width:100%;}
  .slots{max-height:none;}
}

/* ---------- theme additions ---------- */
/* honeypot: hidden from people, visible to bots */
.ppah-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}
/* the real file input sits behind the styled dropzone label */
.field .ppah-file,.ppah-file{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;border:0!important;opacity:0;overflow:hidden;}
.dropzone{display:block;}
.dropzone:focus-within{border-color:var(--blue);color:rgba(255,255,255,.72);}
/* confirmation / error flash */
.sent{margin-top:1.4rem;}
.sent.show{display:block;}


/* ---------- quick contact ---------- */
.ppah-fab{position:fixed;right:clamp(1rem,2.4vw,1.75rem);bottom:clamp(1rem,2.4vw,1.75rem);z-index:150;display:flex;flex-direction:column;gap:.7rem;}
.fab{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;box-shadow:0 6px 22px -8px rgba(21,23,26,.5);transition:transform .35s var(--ease),background .35s var(--ease);}
.fab svg{width:21px;height:21px;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;}
.fab-mail{background:var(--charcoal);border:1px solid rgba(255,255,255,.2);}
.fab-mail svg{stroke:var(--blue);}
.fab-mail:hover{background:var(--charcoal-soft);}
.fab-call{background:var(--blue);}
.fab-call svg{stroke:var(--charcoal);}
.fab-call:hover{background:var(--white);}
.fab:hover{transform:translateY(-3px);}
.fab:focus-visible{outline:2px solid var(--blue);outline-offset:3px;}
@media (max-width:600px){.fab{width:48px;height:48px;}.fab svg{width:19px;height:19px;}}
@media (prefers-reduced-motion:reduce){.fab{transition:none;}.fab:hover{transform:none;}}
