:root {
  --navy: #061c54;
  --navy-deep: #031139;
  --royal: #1150c4;
  --blue: #097cd5;
  --aqua: #21cfe8;
  --aqua-pale: #c8f7fa;
  --yellow: #ffd31e;
  --orange: #f17f1c;
  --green: #52b767;
  --white: #ffffff;
  --paper: #f7fbff;
  --sand: #f1e4cd;
  --ink: #071a3f;
  --muted: #53637e;
  --line: rgba(6, 28, 84, 0.16);
  --shadow: 0 24px 64px rgba(3, 17, 57, 0.16);
  --display: Impact, Haettenschweiler, "Arial Narrow Bold", "Arial Narrow", sans-serif;
  --body: "Helvetica Neue", Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }

html { color-scheme: light; }

body {
  margin: 0;
  overflow-x: hidden;
  background: var(--white);
  color: var(--ink);
  font-family: var(--body);
  line-height: 1.5;
}

button { font: inherit; }
button, [role="button"] { -webkit-tap-highlight-color: transparent; }

.concept-bar {
  min-height: 30px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 20px;
  padding: 7px clamp(20px, 4vw, 64px);
  background: var(--navy-deep);
  color: rgba(255,255,255,.72);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.concept-bar span:last-child { justify-self: end; }
.concept-center { color: var(--yellow); }

.site-header {
  min-height: 88px;
  display: grid;
  grid-template-columns: 220px 1fr 160px;
  align-items: center;
  gap: 32px;
  padding: 0 clamp(24px, 4.2vw, 68px);
  background: var(--white);
  border-bottom: 1px solid var(--line);
}

.brand { width: 205px; height: 70px; overflow: hidden; }
.logo-crop { position: relative; display: block; width: 205px; height: 70px; overflow: hidden; }
.logo-crop img {
  position: absolute;
  top: -46px;
  left: 0;
  width: 205px;
  height: 205px;
  object-fit: contain;
}

.desktop-nav { display: flex; justify-content: center; gap: clamp(22px, 3vw, 46px); }
.desktop-nav span {
  color: var(--navy);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.header-action,
.button {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 0;
  border-radius: 7px;
  cursor: pointer;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: transform 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}
.header-action { justify-self: end; padding: 12px 18px; background: var(--navy); color: var(--white); }
.button { padding: 14px 20px; }
.button-primary { background: var(--yellow); color: var(--navy); box-shadow: 0 14px 28px rgba(3,17,57,.2); }
.button-yellow { background: var(--yellow); color: var(--navy); }
.header-action:hover, .button:hover { transform: translateY(-2px); }
button:focus-visible { outline: 4px solid rgba(255,211,30,.72); outline-offset: 3px; }
.button svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }

.hero {
  min-height: 760px;
  display: grid;
  grid-template-columns: 43% 57%;
  background: var(--royal);
  color: var(--white);
}

.hero-copy {
  position: relative;
  z-index: 3;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 78px clamp(38px, 4.8vw, 78px) 58px;
  background:
    linear-gradient(148deg, transparent 0 73%, rgba(255,255,255,.06) 73% 74%, transparent 74%),
    var(--royal);
}
.hero-copy::after {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  right: -84px;
  width: 150px;
  height: 100%;
  background: var(--royal);
  clip-path: polygon(0 0, 45% 0, 100% 100%, 0 100%);
}

.eyebrow {
  margin: 0 0 20px;
  color: var(--orange);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.eyebrow-yellow { color: var(--yellow); }

h1, h2, h3, p { margin-top: 0; }
h1, h2 {
  font-family: var(--display);
  font-stretch: condensed;
  font-weight: 900;
  letter-spacing: -.055em;
  line-height: .88;
  text-wrap: balance;
  text-transform: uppercase;
}
h1 { max-width: 620px; margin-bottom: 30px; font-size: clamp(58px, 5.2vw, 88px); }
h1 em { color: var(--yellow); font-style: normal; }
h2 { margin-bottom: 24px; color: var(--navy); font-size: clamp(48px, 5.8vw, 88px); }
.hero-lede { max-width: 560px; margin-bottom: 30px; color: rgba(255,255,255,.88); font-size: clamp(17px, 1.4vw, 21px); line-height: 1.55; }
.hero-actions { display: flex; align-items: center; gap: 20px; }
.hero-note { max-width: 140px; color: rgba(255,255,255,.66); font-size: 11px; font-weight: 700; line-height: 1.35; }
.quick-proof { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; margin: 70px 0 0; border-top: 1px solid rgba(255,255,255,.2); }
.quick-proof div { padding: 20px 12px 0 0; }
.quick-proof dt { color: var(--yellow); font-size: 10px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.quick-proof dd { margin: 5px 0 0; color: rgba(255,255,255,.68); font-size: 10px; line-height: 1.25; }

.pool-playground {
  --water-line: 52%;
  --actor-size: clamp(275px, 25vw, 370px);
  position: relative;
  min-width: 0;
  min-height: 760px;
  overflow: hidden;
  isolation: isolate;
  background: #73d7ed;
}

.scene-sky { position: absolute; inset: 0 0 48%; overflow: hidden; background: linear-gradient(180deg,#66cfea 0%,#c5f1f4 70%,#f4f4dc 100%); }
.sun { position: absolute; top: 44px; right: 10%; width: 102px; aspect-ratio: 1; border-radius: 50%; background: var(--yellow); box-shadow: 0 0 0 18px rgba(255,211,30,.18); }
.cloud { position: absolute; width: 128px; height: 20px; border-radius: 99px; background: rgba(255,255,255,.83); }
.cloud::before,.cloud::after { content:""; position:absolute; bottom:0; border-radius:50%; background:inherit; }
.cloud::before { left: 18px; width: 50px; height: 50px; }
.cloud::after { right: 12px; width: 68px; height: 68px; }
.cloud-a { top: 92px; left: 12%; transform: scale(.72); }
.cloud-b { top: 148px; right: 28%; transform: scale(.42); opacity: .68; }
.palm { position: absolute; bottom: -10px; width: 210px; height: 250px; opacity: .9; }
.palm::before { content:""; position:absolute; left:48%; bottom:0; width:18px; height:185px; border-radius:90% 10% 30% 60%; background:repeating-linear-gradient(173deg,#77431d 0 12px,#a6622c 12px 24px); transform:rotate(-8deg); }
.palm::after { content:""; position:absolute; left:45%; top:12px; width:150px; height:64px; border-radius:100% 5%; background:#137b5b; box-shadow:-78px 26px 0 -4px #168666,-46px -21px 0 -7px #0f6d53,-16px 66px 0 -12px #1c946c; transform:rotate(-10deg); }
.palm-a { right: -36px; }
.palm-b { left: -90px; bottom: -60px; transform: scale(.72) rotate(-9deg); opacity: .55; }

.pool-deck { position: absolute; z-index: 2; inset: 31% 0 44%; background: repeating-linear-gradient(92deg,#f4d29e 0 68px,#d7ad73 68px 72px); border-top: 1px solid rgba(6,28,84,.14); }
.pool-deck::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(255,255,255,.45),transparent 45%); }
.deck-chair { position:absolute; z-index:1; right:6%; bottom:20px; width:116px; height:52px; border:8px solid var(--white); border-top:0; transform:skewX(-12deg); opacity:.76; }
.deck-chair::after { content:""; position:absolute; left:2px; top:-54px; width:96px; height:52px; border:8px solid var(--white); transform:skewX(18deg); }
.deck-pot { position:absolute; z-index:1; left:10%; bottom:20px; width:44px; height:45px; border-radius:8px 8px 16px 16px; background:#f5782a; }
.deck-pot::after { content:""; position:absolute; left:18px; bottom:36px; width:70px; height:58px; border-radius:100% 0; background:#2a996c; box-shadow:-44px 5px 0 -7px #45b978; transform:rotate(-34deg); }

.pool-coping {
  position: absolute;
  z-index: 5;
  top: calc(var(--water-line) - 26px);
  left: -2%;
  width: 104%;
  height: 58px;
  display: grid;
  grid-template-columns: repeat(8,1fr);
  transform: perspective(700px) rotateX(52deg);
  transform-origin: center bottom;
  box-shadow: 0 16px 15px rgba(3,17,57,.2);
}
.pool-coping i { display:block; border-right: 2px solid #a6bad0; border-top: 2px solid #fff; background: linear-gradient(180deg,#fff,#d9e5ed); }

.pool-water {
  position: absolute;
  z-index: 3;
  inset: var(--water-line) 0 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 22% 38%,rgba(255,255,255,.3) 0 2px,transparent 3px),
    linear-gradient(145deg,#28d7e5 0%,#078fd8 46%,#0b61bd 100%);
  transition: background 500ms ease, filter 500ms ease;
}
.pool-water::before { content:""; position:absolute; inset:0; background:repeating-linear-gradient(165deg,transparent 0 32px,rgba(255,255,255,.12) 34px 39px,transparent 41px 66px); animation:waterFlow 8s linear infinite; }
.water-line { position:absolute; left:-15%; width:130%; height:20px; border-radius:50%; border-top:3px solid rgba(255,255,255,.48); animation:waterRipple 4.8s ease-in-out infinite; }
.line-one { top:16%; }.line-two { top:50%; animation-delay:-1.6s; }.line-three { top:78%; animation-delay:-3.2s; }

.leaf-cluster { position:absolute; z-index:4; width:270px; height:270px; object-fit:contain; filter:drop-shadow(0 7px 8px rgba(3,17,57,.28)); transition:opacity 420ms ease, transform 900ms cubic-bezier(.2,.8,.2,1); }
.leaf-target { position:absolute; z-index:7; top:8%; left:39%; width:270px; height:270px; padding:0; border:0; border-radius:50%; background:transparent; cursor:pointer; }
.leaf-target .leaves-main { inset:0; width:100%; height:100%; transform:rotate(-8deg); animation:leavesDrift 5.5s ease-in-out infinite; }
.leaf-hint { position:absolute; z-index:8; left:50%; bottom:8%; padding:7px 10px; border:1px solid rgba(255,255,255,.62); background:rgba(3,17,57,.86); color:white; font-size:8px; font-weight:900; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; opacity:0; transform:translate(-50%,8px); transition:opacity 180ms ease,transform 180ms ease; }
.leaf-target:hover .leaf-hint,.leaf-target:focus-visible .leaf-hint{opacity:1;transform:translate(-50%,0)}
.leaves-small { top:55%; left:9%; width:150px; height:150px; transform:rotate(23deg); animation:leavesDriftSmall 6.4s ease-in-out infinite reverse; }

.water-ripple { position:absolute; z-index:5; top:26%; left:34%; width:160px; height:52px; border:4px solid rgba(255,255,255,.8); border-radius:50%; opacity:0; transform:scale(.2); }
.water-sparkle { position:absolute; z-index:5; width:26px; height:26px; opacity:0; transform:scale(.2); }
.water-sparkle::before,.water-sparkle::after { content:""; position:absolute; background:white; border-radius:99px; }
.water-sparkle::before { left:11px; width:4px; height:26px; }.water-sparkle::after { top:11px; width:26px; height:4px; }
.sparkle-a { top:28%; left:52%; }.sparkle-b { top:58%; left:29%; transform:scale(.72); }

.chemistry-orbit { position:absolute; z-index:6; top:30%; left:55%; width:110px; height:110px; border:2px dashed rgba(255,255,255,.7); border-radius:50%; opacity:0; }
.chemistry-orbit i { position:absolute; width:24px; height:30px; border-radius:60% 60% 70% 70%; background:var(--yellow); clip-path:polygon(50% 0,100% 60%,80% 100%,20% 100%,0 60%); }
.chemistry-orbit i:nth-child(1){left:-10px;top:38px}.chemistry-orbit i:nth-child(2){right:-8px;top:18px;background:#ff73b5}.chemistry-orbit i:nth-child(3){left:42px;bottom:-12px;background:#7be4ff}
.equipment-pulse { position:absolute; z-index:6; top:27%; right:16%; width:88px; height:88px; border:5px solid var(--yellow); border-radius:50%; opacity:0; }
.equipment-pulse::before,.equipment-pulse::after,.equipment-pulse i::before,.equipment-pulse i::after { content:""; position:absolute; background:var(--yellow); border-radius:3px; }
.equipment-pulse::before { width:18px;height:108px;left:30px;top:-15px }.equipment-pulse::after { width:108px;height:18px;left:-15px;top:30px }.equipment-pulse i { position:absolute; inset:19px; border:5px solid white; border-radius:50%; background:var(--blue); }

.tiago-rig {
  position: absolute;
  z-index: 7;
  left: 0;
  bottom: calc(48% - 39px);
  width: var(--actor-size);
  height: var(--actor-size);
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  transform: translate3d(18px,0,0);
  transform-origin: 58% 88%;
  will-change: transform;
}
.tiago-shadow { position:absolute; z-index:-1; left:42%; bottom:8.7%; width:40%; height:6.5%; border-radius:50%; background:rgba(3,17,57,.32); filter:blur(7px); transform-origin:center; }
.tiago-frame { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; opacity:0; pointer-events:none; filter:drop-shadow(0 18px 13px rgba(3,17,57,.22)); transform:scale(.985); transform-origin:58% 88%; }
.tiago-frame.is-visible { opacity:1; transform:scale(1); }
.tiago-rig:not(.is-busy):hover .tiago-frame.is-visible { filter:drop-shadow(0 20px 14px rgba(3,17,57,.27)) brightness(1.04); }
.tiago-gaze-sprite {
  position:absolute;
  z-index:9;
  inset:0;
  opacity:0;
  pointer-events:none;
  background-image:url("assets/tiago-gaze-sprite-v2.png?v=tiago-follow-2");
  background-position:0 0;
  background-repeat:no-repeat;
  background-size:400% 200%;
  filter:drop-shadow(0 18px 13px rgba(3,17,57,.22));
  transform:rotate(0deg);
  transform-origin:58% 88%;
  transition:opacity 70ms ease,transform 75ms linear;
}
.tiago-rig.is-following .tiago-frame { opacity:0; animation:none; }
.tiago-rig.is-following .tiago-gaze-sprite { opacity:1; transform:rotate(var(--body-lean,0deg)); }
.tiago-rig:not(.is-busy):not(.is-following) .tiago-frame.is-visible { animation:tiagoBreathe 3.6s ease-in-out infinite; }

.scene-instruction { position:absolute; z-index:9; top:22px; left:22px; max-width:310px; display:flex; align-items:center; gap:9px; padding:9px 12px; border:1px solid rgba(255,255,255,.45); background:rgba(3,17,57,.86); color:white; font-size:10px; font-weight:700; box-shadow:0 12px 30px rgba(3,17,57,.12); }
.instruction-dot { width:8px; height:8px; flex:0 0 auto; border-radius:50%; background:var(--yellow); box-shadow:0 0 0 5px rgba(255,211,30,.16); }

.pool-controls {
  position: absolute;
  z-index: 10;
  right: 18px;
  bottom: 18px;
  left: 18px;
  display: grid;
  grid-template-columns: repeat(4,1fr);
  background: var(--white);
  border: 1px solid rgba(255,255,255,.5);
  box-shadow: var(--shadow);
}
.pool-choice { position:relative; min-height:98px; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:1px; padding:17px 14px 15px; border:0; border-right:1px solid var(--line); background:white; color:var(--navy); cursor:pointer; text-align:left; transition:background 180ms ease,color 180ms ease,transform 180ms ease; }
.pool-choice:last-child { border-right:0; }
.pool-choice:hover { z-index:1; transform:translateY(-4px); box-shadow:0 12px 22px rgba(3,17,57,.13); }
.pool-choice > span { margin-bottom:7px; color:var(--orange); font-size:9px; font-weight:900; letter-spacing:.12em; }
.pool-choice strong { font-size:12px; line-height:1.1; }.pool-choice small { color:var(--muted); font-size:9px; }
.pool-choice.is-active { background:var(--navy); color:white; }
.pool-choice.is-active > span { color:var(--yellow); }.pool-choice.is-active small { color:rgba(255,255,255,.62); }

.pool-playground[data-scene="water"] .pool-water { background:linear-gradient(145deg,#7ab891 0%,#33999f 45%,#0f6ea9 100%); }
.pool-playground[data-scene="chemistry"] .pool-water { background:linear-gradient(145deg,#3bdfea 0%,#1099df 48%,#7257d1 100%); }
.pool-playground[data-scene="equipment"] .pool-water { background:linear-gradient(145deg,#24cddd 0%,#1477c8 50%,#063d90 100%); }
.pool-playground.scene-clean .leaf-cluster { opacity:0; transform:translate3d(-180px,-140px,0) rotate(-44deg) scale(.25); animation:none; }
.pool-playground.scene-clean .leaf-target { pointer-events:none; }
.pool-playground.scene-clean .leaf-hint { opacity:0; }
.pool-playground.scene-clean .water-ripple { animation:scoopRipple 1s ease-out both; }
.pool-playground.scene-clean .water-sparkle { animation:sparkleIn 1.4s .2s ease-out both; }
.pool-playground.scene-clean .pool-water { filter:saturate(1.15) brightness(1.07); }
.pool-playground.scene-water .water-ripple { left:50%; top:34%; animation:scoopRipple 1.5s ease-out both; }
.pool-playground.scene-water .water-sparkle { animation:sparkleIn 1.5s .15s ease-out both; }
.pool-playground.scene-chemistry .chemistry-orbit { animation:orbitIn 1.8s ease both; }
.pool-playground.scene-equipment .equipment-pulse { animation:equipmentIn 1.8s ease both; }

.section-number { color:var(--royal); font-size:9px; font-weight:900; letter-spacing:.18em; text-transform:uppercase; }
.section-number-light { color:rgba(255,255,255,.52); }
.service-directory { padding:110px clamp(24px,7vw,112px) 130px; background:var(--white); }
.section-intro { display:grid; grid-template-columns:1.1fr 1.35fr; align-items:end; column-gap:clamp(40px,8vw,130px); margin:44px 0 66px; }
.section-intro .eyebrow { grid-column:1; margin-bottom:16px; }
.section-intro h2 { grid-column:1; max-width:720px; margin:0; }
.section-intro > p:last-child { grid-column:2; align-self:end; max-width:500px; margin:0 0 10px; color:var(--muted); font-size:17px; }
.service-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:2px solid var(--navy); }
.service-card { min-height:190px; display:grid; grid-template-columns:70px 1fr auto; align-items:center; gap:24px; padding:28px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:white; }
.service-card:nth-child(2n){border-right:0}.service-featured{background:var(--paper)}
.service-icon { width:56px; height:56px; display:grid; place-items:center; border-radius:50%; background:var(--aqua-pale); color:var(--royal); font-family:Georgia,serif; font-size:29px; }
.service-card p { margin:0 0 5px; color:var(--orange); font-size:9px; font-weight:900; letter-spacing:.15em; text-transform:uppercase; }
.service-card h3 { margin:0; color:var(--navy); font-size:21px; line-height:1.14; }
.service-index { color:rgba(6,28,84,.23); font-family:var(--display); font-size:44px; font-weight:900; }

.process-section { display:grid; grid-template-columns:1fr 1fr; background:var(--navy); color:white; }
.process-copy { padding:110px clamp(35px,7vw,112px); background:linear-gradient(145deg,var(--navy),#083480); }
.process-copy .section-number { margin-bottom:58px; }
.process-copy h2 { max-width:670px; color:white; }
.process-copy > p:not(.eyebrow) { max-width:580px; margin-bottom:30px; color:rgba(255,255,255,.7); font-size:16px; }
.process-list { margin:0; padding:80px clamp(30px,6vw,90px); list-style:none; background:var(--royal); }
.process-list li { min-height:150px; display:grid; grid-template-columns:72px 1fr; gap:26px; align-items:start; padding:30px 0; border-bottom:1px solid rgba(255,255,255,.2); }
.process-list li:last-child{border-bottom:0}.process-list li>span{color:var(--yellow);font-family:var(--display);font-size:34px;font-weight:900;line-height:1}.process-list strong{display:block;margin-bottom:8px;font-size:20px}.process-list p{margin:0;color:rgba(255,255,255,.68);font-size:14px}

.trust-section { padding:110px clamp(24px,7vw,112px) 130px; background:var(--paper); }
.trust-grid { display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(50px,9vw,150px); margin-top:55px; }
.trust-heading h2 { max-width:700px; }
.trust-points { border-top:2px solid var(--navy); }
.trust-points article { display:grid; grid-template-columns:110px 1fr; column-gap:26px; padding:30px 0; border-bottom:1px solid var(--line); }
.trust-points article>span{grid-row:1/3;color:var(--orange);font-size:9px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.trust-points h3{margin:0 0 9px;color:var(--navy);font-size:20px;line-height:1.2}.trust-points p{margin:0;color:var(--muted);font-size:13px}

.reviews-section { padding:110px clamp(24px,7vw,112px) 90px; background:var(--navy-deep); color:white; }
.reviews-head { display:grid; grid-template-columns:1fr auto; gap:50px; align-items:end; }
.reviews-head .section-number{margin-bottom:48px}.reviews-head h2{max-width:920px;color:white;font-size:clamp(46px,5.3vw,80px)}
.review-score { min-width:170px; display:flex; flex-direction:column; align-items:flex-end; padding-bottom:28px; }
.review-score strong{font-family:var(--display);font-size:70px;line-height:.8}.review-score span{margin:12px 0 8px;color:var(--yellow);letter-spacing:.13em}.review-score small{color:rgba(255,255,255,.5);font-size:9px}
.review-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:50px; }
blockquote { margin:0; padding:42px; background:white; color:var(--ink); box-shadow:0 20px 54px rgba(0,0,0,.18); }
blockquote p { margin-bottom:34px; font-family:Georgia,serif; font-size:clamp(22px,2.2vw,33px); line-height:1.3; }
blockquote footer { color:var(--royal); font-size:9px; font-weight:900; letter-spacing:.13em; text-transform:uppercase; }
.source-note { margin:20px 0 0; color:rgba(255,255,255,.44); font-size:9px; }

.area-section { min-height:710px; display:grid; grid-template-columns:1fr 1fr; background:white; }
.area-map { position:relative; min-height:650px; overflow:hidden; background:linear-gradient(145deg,#bff1f2,#38c3d8); }
.area-map::after { content:""; position:absolute; inset:0; background:repeating-radial-gradient(circle at 35% 48%,transparent 0 46px,rgba(255,255,255,.2) 48px 50px); }
.florida-shape { position:absolute; z-index:2; left:26%; top:12%; width:44%; height:67%; background:var(--white); clip-path:polygon(20% 0,57% 5%,75% 15%,87% 35%,100% 51%,95% 64%,77% 61%,72% 83%,59% 100%,50% 94%,54% 67%,45% 49%,25% 33%,0 24%,4% 8%); filter:drop-shadow(0 20px 26px rgba(3,17,57,.15)); }
.area-map strong { position:absolute; z-index:5; left:8%; bottom:10%; color:var(--navy); font-family:var(--display); font-size:clamp(42px,4vw,70px); font-weight:900; letter-spacing:-.05em; line-height:.82; text-transform:uppercase; }
.map-dot { position:absolute; z-index:6; width:14px; height:14px; border-radius:50%; background:var(--orange); box-shadow:0 0 0 7px rgba(241,127,28,.2); }
.dot-one{left:48%;top:54%}.dot-two{left:52%;top:60%}.dot-three{left:45%;top:64%}.map-ring{position:absolute;z-index:4;left:36%;top:43%;width:30%;aspect-ratio:1;border:2px dashed var(--royal);border-radius:50%;animation:mapSpin 20s linear infinite}
.area-copy { display:flex; flex-direction:column; justify-content:center; padding:90px clamp(40px,7vw,110px); }
.area-copy .section-number{margin-bottom:58px}.area-copy h2{max-width:680px}.area-copy>p:not(.eyebrow){max-width:580px;color:var(--muted);font-size:16px}.area-copy ul{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin:28px 0;padding:0;border-top:2px solid var(--navy);list-style:none}.area-copy li{padding:16px 8px;border-bottom:1px solid var(--line);color:var(--navy);font-size:13px;font-weight:800}.area-copy li:nth-child(odd){border-right:1px solid var(--line)}.area-copy small{color:var(--muted);font-size:10px}

.faq-section { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(50px,9vw,150px); padding:110px clamp(24px,7vw,112px) 130px; background:var(--paper); }
.faq-heading .section-number{margin-bottom:58px}.faq-heading h2{max-width:500px}.faq-list{border-top:2px solid var(--navy)}
.faq-item{border-bottom:1px solid var(--line)}.faq-item button{width:100%;display:flex;justify-content:space-between;gap:24px;padding:26px 0;border:0;background:transparent;color:var(--navy);cursor:pointer;text-align:left;font-size:18px;font-weight:800}.faq-item button i{width:30px;height:30px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--aqua-pale);font-style:normal}.faq-answer{display:grid;grid-template-rows:0fr;transition:grid-template-rows 260ms ease}.faq-answer>p{min-height:0;overflow:hidden;margin:0;color:var(--muted);font-size:14px}.faq-item.is-open .faq-answer{grid-template-rows:1fr}.faq-item.is-open .faq-answer>p{padding:0 58px 28px 0}

.closing-section { min-height:650px; display:grid; grid-template-columns:.8fr 1.2fr; align-items:center; overflow:hidden; background:var(--royal); color:white; }
.closing-tiago { align-self:stretch; position:relative; min-height:600px; background:linear-gradient(135deg,var(--aqua),#4ee2ce); clip-path:polygon(0 0,88% 0,100% 100%,0 100%); }
.closing-tiago::after{content:"";position:absolute;left:-15%;right:0;bottom:-30px;height:120px;border-radius:50%;background:#0b82d3;box-shadow:0 -20px 0 rgba(255,255,255,.42)}
.closing-tiago img{position:absolute;z-index:2;left:0;bottom:-2%;width:min(580px,106%);height:auto;filter:drop-shadow(0 24px 20px rgba(3,17,57,.3));transform:rotate(-3deg)}
.closing-copy { padding:90px clamp(38px,8vw,135px); }
.closing-copy h2 { max-width:820px; color:white; }.closing-copy>p:not(.eyebrow){max-width:670px;margin-bottom:32px;color:rgba(255,255,255,.75);font-size:17px}.closing-note{display:block;margin-top:12px;color:rgba(255,255,255,.55);font-size:10px}

.site-footer { position:relative; display:grid; grid-template-columns:.8fr 1.2fr; gap:60px; padding:70px clamp(24px,7vw,112px) 38px; background:var(--navy-deep); color:white; }
.footer-brand{min-height:160px}.logo-crop-footer{width:230px;height:82px}.logo-crop-footer img{top:-51px;width:230px;height:230px}.footer-brand p{margin:22px 0 0;color:rgba(255,255,255,.55);font-size:11px}.footer-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.footer-columns div{display:flex;flex-direction:column;gap:10px}.footer-columns strong{margin-bottom:7px;color:var(--yellow);font-size:10px;letter-spacing:.13em;text-transform:uppercase}.footer-columns span{color:rgba(255,255,255,.62);font-size:12px}.footer-legal{grid-column:1/-1;margin:28px 0 0;padding-top:24px;border-top:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.4);font-size:9px}

.scaffold-toast { position:fixed; z-index:99; right:22px; bottom:22px; max-width:320px; padding:14px 18px; background:var(--navy-deep); color:white; box-shadow:var(--shadow); font-size:11px; font-weight:700; opacity:0; transform:translateY(20px); pointer-events:none; transition:opacity 180ms ease,transform 180ms ease; }
.scaffold-toast.is-visible{opacity:1;transform:translateY(0)}

@keyframes waterFlow { to { transform:translate3d(70px,0,0); } }
@keyframes waterRipple { 0%,100%{transform:translateX(-1%) scaleX(.93);opacity:.45}50%{transform:translateX(2%) scaleX(1.04);opacity:.8} }
@keyframes leavesDrift { 0%,100%{transform:translate3d(0,0,0) rotate(-8deg)}50%{transform:translate3d(24px,10px,0) rotate(4deg)} }
@keyframes leavesDriftSmall { 0%,100%{transform:translate3d(0,0,0) rotate(23deg)}50%{transform:translate3d(-18px,8px,0) rotate(13deg)} }
@keyframes scoopRipple { 0%{opacity:0;transform:scale(.2)}35%{opacity:1}100%{opacity:0;transform:scale(1.9)} }
@keyframes sparkleIn { 0%{opacity:0;transform:scale(.2) rotate(0)}40%,75%{opacity:1}100%{opacity:.2;transform:scale(1.2) rotate(90deg)} }
@keyframes orbitIn { 0%{opacity:0;transform:scale(.4) rotate(-40deg)}40%,100%{opacity:1}100%{transform:scale(1) rotate(360deg)} }
@keyframes equipmentIn { 0%{opacity:0;transform:scale(.35) rotate(-30deg)}45%,100%{opacity:1}100%{transform:scale(1) rotate(70deg)} }
@keyframes mapSpin { to { transform:rotate(360deg); } }
@keyframes tiagoBreathe { 0%,100%{transform:scale(1,1)}50%{transform:scale(1.006,1.014)} }

@media (max-width: 1100px) {
  .site-header{grid-template-columns:190px 1fr 140px;padding-inline:28px}.desktop-nav{gap:18px}.desktop-nav span{font-size:9px}.brand,.logo-crop{width:180px}.logo-crop img{width:180px;height:180px;top:-40px}
  .hero{grid-template-columns:42% 58%;min-height:710px}.hero-copy{padding-inline:36px}.pool-playground{min-height:710px;--actor-size:300px}.quick-proof{margin-top:48px}.pool-choice{padding-inline:9px}.pool-choice strong{font-size:10px}.pool-choice small{font-size:8px}
  .section-intro{grid-template-columns:1fr;row-gap:25px}.section-intro .eyebrow,.section-intro h2,.section-intro>p:last-child{grid-column:1}.trust-grid{grid-template-columns:1fr;gap:25px}.faq-section{grid-template-columns:1fr;gap:35px}
}

@media (max-width: 820px) {
  .concept-bar{grid-template-columns:1fr auto}.concept-center{display:none}.site-header{min-height:76px;grid-template-columns:1fr auto}.brand,.logo-crop{width:178px;height:62px}.logo-crop img{width:178px;height:178px;top:-42px}.desktop-nav{display:none}.header-action{font-size:9px;min-height:42px;padding:10px 13px}
  .hero{display:block;min-height:0}.hero-copy{min-height:620px;padding:75px 28px 70px}.hero-copy::after{display:none}h1{font-size:clamp(62px,15vw,92px)}.hero-lede{font-size:17px}.quick-proof{margin-top:60px}
  .pool-playground{min-height:720px;--actor-size:330px;--water-line:48%}.pool-deck{inset:27% 0 48%}.tiago-rig{bottom:calc(52% - 40px)}.pool-controls{grid-template-columns:repeat(2,1fr)}.pool-choice:nth-child(2){border-right:0}.pool-choice:nth-child(-n+2){border-bottom:1px solid var(--line)}.leaves-main{left:43%}
  .service-directory,.trust-section,.reviews-section,.faq-section{padding:82px 24px 95px}.service-grid{grid-template-columns:1fr}.service-card{border-right:0}.process-section,.area-section,.closing-section{grid-template-columns:1fr}.process-copy,.process-list,.area-copy,.closing-copy{padding:80px 28px}.review-grid{grid-template-columns:1fr}.reviews-head{grid-template-columns:1fr}.review-score{align-items:flex-start;padding:0}.area-map{min-height:520px;order:2}.closing-tiago{min-height:520px;clip-path:none;order:2}.site-footer{grid-template-columns:1fr;padding:60px 24px 35px}.footer-columns{gap:18px}
}

@media (max-width: 520px) {
  .concept-bar{min-height:28px;padding:6px 12px;font-size:7px}.site-header{padding-inline:14px}.brand,.logo-crop{width:156px}.logo-crop img{width:156px;height:156px;top:-34px}.header-action{padding:8px 10px;font-size:8px}
  .hero-copy{min-height:600px;padding:64px 22px 58px}.eyebrow{font-size:9px}h1{font-size:61px}.hero-actions{align-items:flex-start;flex-direction:column;gap:12px}.hero-note{max-width:none}.quick-proof{grid-template-columns:1fr;gap:0;margin-top:42px}.quick-proof div{display:grid;grid-template-columns:64px 1fr;padding-top:12px}
  .pool-playground{min-height:660px;--actor-size:270px;--water-line:46%}.scene-sky{inset:0 0 54%}.pool-deck{inset:24% 0 54%}.pool-coping{top:calc(var(--water-line) - 22px);height:50px}.tiago-rig{bottom:calc(54% - 34px)}.scene-instruction{top:12px;left:12px;right:12px;max-width:none}.pool-controls{left:10px;right:10px;bottom:10px}.pool-choice{min-height:92px;padding:13px 10px}.leaf-target{width:195px;height:195px;left:38%;top:2%}.leaves-small{width:108px;height:108px;left:5%;top:42%}.sun{width:72px;top:55px}.deck-chair{display:none}
  h2{font-size:49px}.service-directory,.trust-section,.reviews-section,.faq-section{padding:70px 20px 82px}.section-intro{margin:38px 0 45px}.section-intro>p:last-child{font-size:15px}.service-card{min-height:155px;grid-template-columns:50px 1fr auto;padding:22px 14px;gap:14px}.service-icon{width:44px;height:44px}.service-card h3{font-size:17px}.service-index{font-size:32px}.process-copy,.process-list,.area-copy,.closing-copy{padding:70px 22px}.process-list li{grid-template-columns:56px 1fr}.trust-points article{grid-template-columns:1fr}.trust-points article>span{grid-row:auto;margin-bottom:8px}.reviews-head h2{font-size:47px}blockquote{padding:27px}blockquote p{font-size:22px}.area-map{min-height:430px}.area-copy ul{grid-template-columns:1fr}.area-copy li:nth-child(odd){border-right:0}.footer-columns{grid-template-columns:1fr}.closing-tiago{min-height:430px}.closing-tiago img{width:118%;left:-10%}
}

@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
