/* =========================================================
   Sweet Tooth Dental — style.css
   Real brand palette from colors.html + logo assets
   ========================================================= */
:root{
  --mint:#14ADE1;        /* deepskyblue — brand main */
  --mint-dark:#2858A0;   /* darkslateblue — brand navy / hover */
  --mint-light:#C1D7E6;  /* lightblue — section tints */
  --coral:#4074B6;       /* steelblue — accent */
  --coral-dark:#2858A0;  /* darkslateblue — accent hover */
  --cream:#EFF9FF;       /* aliceblue-100 — page tint */
  --navy:#25263B;        /* black — dark surfaces / text on light */
  --navy-soft:#7B7C8F;   /* slategray — muted text */
  --white:#ffffff;
  --error:#CF2E2E;       /* firebrick-100 */
  --radius:16px;
  --radius-sm:10px;
  --shadow:0 12px 30px rgba(37,38,59,0.08);
  --ease:cubic-bezier(.22,.9,.3,1);
  --font-heading:"Quicksand", sans-serif;
  --font-body:"Nunito Sans", sans-serif;
  --lava-primary:#031c14;
  --lava-menu-bg:#eff9ff;
  --lava-menu-link:rgba(37,38,59,.42);
  --lava-menu-link-active:#2858A0;
  --lava-cream:#eff9ff;
  --lava-cream-80:rgba(239,249,255,.8);
  --lava-cream-20:rgba(239,249,255,.2);
  --hero-curtain-ease-1:cubic-bezier(.1,.75,.25,1);
  --hero-curtain-ease-2:cubic-bezier(.5,.03,.25,1);
  --hero-bg-enter-delay:.6s;
  --hero-nav-ease:cubic-bezier(.18,.86,.33,1.06);
  --site-header-height:88px;
  --page-ease-slide:cubic-bezier(.1,.75,.25,1);
  --page-ease-fade:cubic-bezier(1,0,.47,.93);
  --page-ease-scale:cubic-bezier(.33,0,.11,1);
}
*{box-sizing:border-box; margin:0; padding:0;}
.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
html{
  scroll-behavior:smooth; background:var(--cream);
  scroll-padding-top:calc(var(--site-header-height) + 12px);
  scrollbar-width:none; -ms-overflow-style:none;
}
html::-webkit-scrollbar{display:none; width:0; height:0;}
body{
  font-family:var(--font-body);
  color:var(--navy);
  background:transparent;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  position:relative;
  overflow-x:hidden;
  scrollbar-width:none; -ms-overflow-style:none;
}
body::-webkit-scrollbar{display:none; width:0; height:0;}
*{scrollbar-width:none; -ms-overflow-style:none;}
*::-webkit-scrollbar{display:none; width:0; height:0;}

/* -------- scroll progress + back to top -------- */
.site-scroll-progress{
  position:fixed; left:0; top:0; z-index:90;
  width:3px; height:100svh; pointer-events:none;
  display:none;
}
@media(max-width:839px){ .site-scroll-progress{display:block;} }
.site-scroll-progress__track{
  width:100%; height:100%;
  background:rgba(37,38,59,.08);
}
.site-scroll-progress__fill{
  width:100%; height:100%;
  background:var(--mint);
  transform:scaleY(0); transform-origin:top center;
  will-change:transform;
}
.scroll-to-top{
  position:fixed; right:clamp(16px,4vw,24px); bottom:clamp(20px,4vw,28px);
  z-index:95; width:56px; height:56px;
  display:grid; place-items:center;
  border:none; background:transparent;
  border-radius:50%; cursor:pointer; padding:0;
  box-shadow:none;
  opacity:0; visibility:hidden; pointer-events:none;
  transform:translateY(10px);
  transition:opacity .35s var(--ease), visibility .35s ease, transform .35s var(--ease);
}
.scroll-to-top.is-visible{
  opacity:1; visibility:visible; pointer-events:auto;
  transform:translateY(0);
}
.scroll-to-top:hover .scroll-to-top__progress{stroke:var(--mint-dark);}
.scroll-to-top__ring{
  grid-area:1/1;
  width:100%; height:100%;
  transform:rotate(-90deg);
}
.scroll-to-top__track{
  fill:none; stroke:rgba(37,38,59,.22); stroke-width:2.5;
}
.scroll-to-top__progress{
  fill:none; stroke:var(--mint); stroke-width:2.5;
  stroke-linecap:round;
  stroke-dasharray:138.23;
  stroke-dashoffset:138.23;
  transition:stroke-dashoffset .15s linear, stroke .25s ease;
}
.scroll-to-top__arrow{
  grid-area:1/1;
  width:30px; height:30px;
  display:block;
  object-fit:contain;
  filter:brightness(0) saturate(100%) invert(14%) sepia(12%) saturate(900%) hue-rotate(196deg) brightness(92%);
  transition:opacity .25s ease, filter .25s ease;
}
.scroll-to-top:hover .scroll-to-top__arrow{
  filter:brightness(0) saturate(100%) invert(28%) sepia(35%) saturate(1200%) hue-rotate(186deg);
  opacity:.92;
}
.site-dot-bg{
  position:fixed; inset:0; width:100%; height:100%;
  z-index:0; display:block; pointer-events:none; background:transparent;
  opacity:1;
}
img{display:block; max-width:100%; height:auto; border-radius:var(--radius);}
a{color:inherit; text-decoration:none;}
h1,h2,h3,h4{font-family:var(--font-heading); font-weight:700; line-height:1.2; color:var(--navy);}
p{color:var(--navy-soft);}
.wrap{max-width:1180px; margin:0 auto; padding:0 24px;}
section{position:relative;}
.eyebrow{display:inline-block; font-family:var(--font-heading); font-weight:700; color:var(--coral); font-size:14px; letter-spacing:.04em; text-transform:uppercase; margin-bottom:10px;}
.section-head{max-width:640px; margin-bottom:44px;}
.section-head.center{margin-inline:auto; text-align:center;}
.section-head h2{font-size:clamp(28px,3.6vw,40px); margin-top:6px;}
.section-head p{margin-top:14px; font-size:17px;}
.accent{color:var(--mint-dark);}

/* -------- reveal on scroll -------- */
.reveal{opacity:0; transform:translateY(26px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}
.reveal-d1{transition-delay:.12s;}
.reveal-d2{transition-delay:.24s;}
.reveal-d1.reveal-done,
.reveal-d2.reveal-done{transition-delay:0s;}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{opacity:1; transform:none; transition:none;}
  .reveal-d1,
  .reveal-d2{transition-delay:0s;}
}

/* -------- buttons -------- */
.btn{
  display:inline-flex; align-items:center; gap:8px; justify-content:center;
  font-family:var(--font-heading); font-weight:700; font-size:15px;
  padding:14px 28px; border-radius:999px; border:2px solid transparent;
  cursor:pointer;
  transition:transform .25s var(--ease), background .3s ease, box-shadow .3s ease, border-color .3s ease;
  white-space:nowrap;
}
.btn-primary{
  background:var(--mint);
  color:var(--white);
  border-color:transparent;
  box-shadow:0 8px 22px rgba(20,173,225,.35);
}
.btn-primary:hover{
  background:#1096c4;
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(20,173,225,.45);
}
.btn-outline{
  background:transparent;
  color:var(--mint-dark);
  border-color:rgba(40,88,160,.25);
  box-shadow:none;
}
.btn-outline:hover{
  background:rgba(20,173,225,.08);
  border-color:var(--mint);
  color:var(--mint-dark);
  transform:translateY(-2px);
  box-shadow:none;
}
.btn-lg{padding:15px 30px; font-size:16px;}
.address-link{
  color:var(--mint); font-weight:700;
  text-decoration:underline; text-decoration-color:rgba(20,173,225,.35);
  text-underline-offset:3px;
  transition:color .25s ease, text-decoration-color .25s ease;
}
.address-link:hover{color:var(--mint-dark); text-decoration-color:var(--mint-dark);}
.link-arrow{display:inline-flex; align-items:center; gap:6px; font-family:var(--font-heading); font-weight:700; color:var(--mint-dark); margin-top:16px; transition:gap .3s ease;}
.link-arrow:hover{gap:12px;}

/* -------- LAVA header + hero -------- */
.lava-btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--font-heading); font-weight:700; font-size:15px;
  padding:14px 28px; border-radius:999px; border:0; cursor:pointer;
  transition:transform .25s var(--ease), background .3s ease;
}
.lava-btn--primary{
  background:var(--mint);
  color:var(--white);
  box-shadow:0 8px 22px rgba(20,173,225,.35);
}
.lava-btn--primary:hover{
  background:#1096c4;
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(20,173,225,.45);
}

.lava-header{
  position:fixed; top:0; left:0; width:100%; z-index:100;
  color:var(--cream);
  background-image:linear-gradient(180deg, rgba(37,38,59,.72) 0%, rgba(37,38,59,.38) 55%, rgba(37,38,59,0) 100%);
  backdrop-filter:blur(3px);
  transition:color .3s ease, background .35s ease, box-shadow .35s ease;
}
.lava-header.lava-header--on-page{
  color:var(--navy);
  background:rgba(239,249,255,.92);
  background-image:none;
  backdrop-filter:blur(8px);
  box-shadow:0 6px 20px rgba(37,38,59,.06);
}
.lava-header.lava-header--on-page .lava-nav-link{
  background-image:linear-gradient(90deg,var(--mint) 50%,var(--navy-soft) 50%);
}
.lava-header.lava-header--on-page .lava-site-nav__item--active .lava-nav-link{
  background-position:0 0; font-weight:600;
}
.lava-header.lava-header--on-page .lava-burger{color:var(--navy);}
.lava-header.lava-header--on-page .lava-header-phone{color:var(--navy);}
.lava-header.lava-header--on-page .lava-logo__img{filter:none;}
.lava-header-grid{
  /* same element carries .wrap, so the side padding has to be restated or the logo sits 24px wide of the content */
  padding:clamp(14px,2vw,22px) 24px;
  display:grid; grid-template-columns:1fr auto; gap:16px; align-items:center;
}
@media(max-width:839px){
  .lava-header .wrap{padding-inline:24px;}
  .lava-header-grid{
    grid-template-columns:1fr 1fr;
    padding:24px 0; gap:0;
  }
  .lava-header-grid__logo{align-self:center;}
  .lava-header-grid__toggle{justify-self:end; align-self:center;}
  .lava-logo__img{
    height:3.5rem; width:auto; max-width:16rem;
  }
  .lava-header--nav-open .lava-logo__img{
    height:3.5rem; max-width:16rem;
  }
}
@media(min-width:840px){
  .lava-header-grid{grid-template-columns:repeat(12,1fr); gap:20px;}
  .lava-header-grid__logo{grid-area:1/1/auto/span 2; z-index:11;}
  .lava-header-grid__main{
    grid-area:1/1/auto/span 12; position:relative;
    display:grid; grid-template-columns:repeat(12,1fr); align-items:center;
  }
  .lava-header-grid__toggle{display:none;}
}
.lava-logo{display:block;}
.lava-logo__img{
  height:3.5rem; width:auto; max-width:16rem;
  border-radius:0; object-fit:contain;
  filter:brightness(0) invert(1);
  transition:filter .35s ease;
}

.lava-header-nav{
  display:flex; flex-direction:column; align-items:flex-start; gap:18px;
  position:relative;
}
@media(min-width:840px){
  .lava-header-nav{
    grid-column:2/span 10; justify-self:center;
    align-items:stretch; gap:0; width:fit-content; max-width:100%;
  }
}
.lava-site-nav{
  list-style:none; margin:0; padding:0;
  display:flex; flex-direction:column; gap:18px;
}
@media(min-width:840px){
  .lava-site-nav{
    flex-direction:row; align-items:center; justify-content:center;
    gap:clamp(12px,2vw,28px); padding-bottom:8px;
  }
}
.lava-site-nav__item{position:relative;}
.lava-nav-link{
  display:inline-block; position:relative;
  font-family:var(--font-heading); font-size:clamp(22px,4vw,28px); font-weight:600;
  letter-spacing:.01em;
  background-image:linear-gradient(90deg,var(--mint) 50%,var(--cream) 50%);
  background-size:200% 100%;
  background-position:100% 0;
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
  transition:background-position .45s var(--ease);
}
@media(min-width:840px){
  .lava-nav-link{font-size:16px; font-weight:600; letter-spacing:.02em;}
}
.lava-nav-link:hover{background-position:0 0;}
.lava-site-nav__item--active .lava-nav-link{background-position:0 0;}

/* services dropdown */
.lava-site-nav__item--has-sub{display:flex; flex-wrap:wrap; align-items:center; gap:2px;}
.lava-subnav-toggle{
  display:inline-flex; align-items:center; justify-content:center;
  width:24px; height:24px; padding:0; border:0; border-radius:50%;
  background:none; color:inherit; cursor:pointer;
  transition:transform .3s var(--ease), color .25s ease;
}
.lava-subnav-toggle:hover{color:var(--mint);}
.lava-site-nav__item.is-open .lava-subnav-toggle{transform:rotate(180deg);}
.lava-subnav{display:none;}
.lava-subnav__list{list-style:none; margin:0; padding:0;}
.lava-subnav a{
  display:block; font-family:var(--font-heading); font-weight:600; color:var(--navy);
  transition:color .2s ease, background .2s ease;
}
.lava-subnav a:hover,
.lava-subnav a[aria-current="page"]{color:var(--mint-dark);}
.lava-subnav__all{color:var(--mint-dark) !important;}
@media(min-width:840px){
  .lava-subnav{
    display:block; position:absolute; top:calc(100% + 14px); left:50%; z-index:30;
    width:min(480px,90vw); padding:14px;
    background:var(--white); border-radius:var(--radius);
    box-shadow:0 18px 40px rgba(37,38,59,.16);
    opacity:0; visibility:hidden; translate:-50% 8px;
    transition:opacity .25s ease, translate .3s var(--ease), visibility 0s linear .3s;
  }
  /* invisible bridge so the panel stays open while the pointer crosses the gap */
  .lava-subnav::before{content:""; position:absolute; left:0; right:0; top:-16px; height:16px;}
  .lava-site-nav__item--has-sub:hover .lava-subnav,
  .lava-site-nav__item--has-sub:focus-within .lava-subnav,
  .lava-site-nav__item.is-open .lava-subnav{
    opacity:1; visibility:visible; translate:-50% 0;
    transition:opacity .25s ease, translate .3s var(--ease), visibility 0s;
  }
  .lava-site-nav__item--has-sub:hover .lava-subnav-toggle{transform:rotate(180deg);}
  .lava-subnav__list{display:grid; grid-template-columns:1fr 1fr; gap:2px;}
  .lava-subnav a{font-size:14px; padding:9px 12px; border-radius:var(--radius-sm);}
  .lava-subnav a:hover{background:var(--mint-light);}
  .lava-subnav__all{margin-top:6px; border-top:1px solid rgba(37,38,59,.08); border-radius:0 !important; padding-top:12px !important;}
}
@media(max-width:839px){
  .lava-subnav-toggle{width:40px; height:40px;}
  .lava-subnav-toggle svg{width:20px; height:20px;}
  .lava-header--nav-open .lava-subnav-toggle{color:var(--lava-menu-link);}
  .lava-site-nav__item.is-open .lava-subnav{display:block; flex-basis:100%; padding:12px 0 4px 4px;}
  .lava-subnav__list{display:grid; gap:12px;}
  .lava-subnav a{font-size:18px; font-weight:500; color:var(--lava-menu-link);}
  .lava-subnav__all{margin-top:14px; font-weight:700 !important;}
}

.lava-scroll-progress{
  width:100%; height:2px; background:var(--lava-cream-20); pointer-events:none;
}
.lava-header.lava-header--on-page .lava-scroll-progress{background:rgba(37,38,59,.1);}
@media(max-width:839px){ .lava-scroll-progress{display:none;} }
.lava-scroll-progress__fill{
  height:100%; background:var(--mint); transform:scaleX(0); transform-origin:0 50%;
  will-change:transform;
}

.lava-header-mobile-cta{display:flex; flex-direction:column; gap:14px; margin-top:28px;}
@media(min-width:840px){ .lava-header-mobile-cta{display:none;} }
.lava-header-phone{font-family:var(--font-heading); font-weight:700; font-size:20px; color:inherit;}
.lava-header-mobile-meta{
  display:flex; flex-direction:column; gap:8px;
  margin-top:clamp(20px,5vw,32px); padding-top:clamp(20px,5vw,28px);
  border-top:1px solid rgba(37,38,59,.15);
}
.lava-header-copyright{
  margin:0; font-size:13px; line-height:1.5; color:rgba(37,38,59,.65);
}
.lava-header-privacy{
  font-size:13px; font-weight:600; color:var(--navy);
  transition:color .25s ease;
}
.lava-header-privacy:hover{color:var(--mint-dark);}

.lava-header-grid__toggle{text-align:right; z-index:12;}
@media(min-width:840px){ .lava-menu-dots{display:none;} }
.lava-burger{
  display:flex; align-items:center; justify-content:center;
  background:none; border:none; cursor:pointer; padding:4px; color:inherit;
}
.lava-burger__icon{display:block; width:36px; height:36px;}
.lava-burger__open,
.lava-burger__close{
  transform-box:fill-box; transform-origin:center;
  transition:opacity .3s ease, transform .45s var(--ease);
}
.lava-burger__close{opacity:0; transform:rotate(-90deg);}
.lava-burger[aria-expanded="true"] .lava-burger__open{opacity:0; transform:rotate(90deg);}
.lava-burger[aria-expanded="true"] .lava-burger__close{opacity:1; transform:rotate(0deg);}

@media(max-width:839px){
  .lava-header-grid__main{
    position:fixed; top:0; left:0; z-index:110;
    width:100%; height:100svh;
    padding:clamp(128px,22vw,148px) 24px clamp(48px,10vw,64px) clamp(40px,10vw,56px);
    background:var(--lava-menu-bg); color:var(--navy);
    visibility:hidden; pointer-events:none;
    translate:100% 0;
    transition:translate .55s var(--ease), visibility 0s linear .55s;
    overflow:auto;
    display:flex; flex-direction:column;
  }
  .lava-menu-dots{position:absolute; top:0; left:0; z-index:-1; pointer-events:none;}
  .lava-header--nav-open .lava-header-grid__main{
    visibility:visible; pointer-events:auto;
    translate:0 0;
    transition:translate .55s var(--ease), visibility 0s;
  }
  /* links and CTA drift up into place once the panel has landed */
  .lava-site-nav__item,
  .lava-header-mobile-cta{
    opacity:0; translate:0 18px;
    transition:opacity .45s ease, translate .45s var(--ease);
  }
  .lava-header--nav-open .lava-site-nav__item,
  .lava-header--nav-open .lava-header-mobile-cta{opacity:1; translate:0 0;}
  .lava-header--nav-open .lava-site-nav__item:nth-child(1){transition-delay:.20s;}
  .lava-header--nav-open .lava-site-nav__item:nth-child(2){transition-delay:.26s;}
  .lava-header--nav-open .lava-site-nav__item:nth-child(3){transition-delay:.32s;}
  .lava-header--nav-open .lava-site-nav__item:nth-child(4){transition-delay:.38s;}
  .lava-header--nav-open .lava-site-nav__item:nth-child(5){transition-delay:.44s;}
  .lava-header--nav-open .lava-site-nav__item:nth-child(6){transition-delay:.50s;}
  .lava-header--nav-open .lava-header-mobile-cta{transition-delay:.56s;}
  .lava-header--nav-open{
    color:var(--navy);
    background-image:none;
    background:transparent;
  }
  .lava-header--nav-open .lava-header-grid__logo,
  .lava-header--nav-open .lava-header-grid__toggle{position:relative; z-index:120;}
  .lava-header--nav-open .lava-logo__img{filter:none;}
  .lava-header--nav-open .lava-burger{color:var(--mint-dark);}
  .lava-header--nav-open .lava-nav-link{
    background-image:none;
    -webkit-text-fill-color:currentColor;
    color:var(--lava-menu-link);
    font-size:clamp(28px,7vw,32px); font-weight:400;
    position:relative;
    transition:color .25s ease, font-weight .2s ease;
  }
  .lava-header--nav-open .lava-site-nav__item--active .lava-nav-link{
    color:var(--lava-menu-link-active); font-weight:600;
  }
  .lava-header--nav-open .lava-site-nav__item--active .lava-nav-link::before{
    content:""; position:absolute; left:-24px; top:50%;
    width:8px; height:8px; border-radius:50%;
    background:var(--mint); transform:translateY(-50%);
  }
  .lava-header--nav-open .lava-header-phone{color:var(--mint-dark); text-align:center;}
  /* the panel's left padding is wider than the header's, so pull the CTA back out to line up with the logo */
  .lava-header--nav-open .lava-header-mobile-cta{
    margin-top:auto; padding-top:clamp(28px,6vw,40px);
    margin-left:calc(24px - clamp(40px,10vw,56px));
  }
  .lava-header--nav-open .lava-btn--primary{
    width:100%; justify-content:center;
    background:var(--mint); color:var(--white);
  }
  .lava-header--nav-open .lava-header-copyright{color:rgba(37,38,59,.5);}
  .lava-header--nav-open .lava-header-privacy{color:var(--navy-soft);}
  .lava-header-nav{flex:1; width:100%;}
  .lava-site-nav{gap:clamp(20px,5vw,26px);}
}
@media(max-width:839px) and (prefers-reduced-motion:reduce){
  .lava-header-grid__main,
  .lava-site-nav__item,
  .lava-header-mobile-cta,
  .lava-burger__open,
  .lava-burger__close{transition:none;}
  .lava-header--nav-open .lava-site-nav__item,
  .lava-header--nav-open .lava-header-mobile-cta{transition-delay:0s;}
}

/* -------- hero — dots show through, no background image -------- */
.lava-main{position:relative; z-index:1;}
body.page-contact .lava-main,
body.page-finance .lava-main,
body.page-inner .lava-main,
body.page-privacy .lava-main{
  padding-top:calc(var(--site-header-height) + 16px);
}
/* -------- generated inner pages (services, locations) -------- */
.breadcrumb{
  display:flex; flex-wrap:wrap; align-items:center; gap:6px;
  font-size:13px; color:var(--navy-soft); margin-bottom:18px;
}
.breadcrumb a{color:var(--mint-dark); font-weight:600;}
.breadcrumb a:hover{text-decoration:underline;}
.breadcrumb span[aria-hidden]{opacity:.45;}
.page-body-section{padding:clamp(8px,1.6vw,16px) 0;}
.page-prose{max-width:760px;}
.page-prose h2{font-size:clamp(23px,3.2vw,31px); margin:clamp(22px,3vw,32px) 0 12px;}
.page-prose h2:first-child{margin-top:0;}
.page-prose p{font-size:16px; line-height:1.72; margin-bottom:14px;}
.page-prose p:last-child{margin-bottom:0;}
.page-prose ul{margin:4px 0 6px 1.15em; list-style:disc;}
.page-prose ol{margin:4px 0 14px 1.3em; list-style:decimal;}
.page-prose ol li::marker{font-weight:700; color:var(--mint-dark);}
.page-prose li strong{color:var(--navy);}
.page-prose li{margin-bottom:9px; color:var(--navy-soft); line-height:1.6;}
.related-heading{font-size:clamp(20px,2.6vw,25px); margin-bottom:16px;}
.related-links{display:flex; flex-wrap:wrap; gap:10px;}
.related-links a{
  background:var(--mint-light); color:var(--mint-dark);
  font-weight:700; font-size:14px; padding:9px 17px; border-radius:999px;
  transition:background .25s ease, color .25s ease, transform .25s var(--ease);
}
.related-links a:hover{background:var(--mint); color:var(--white); transform:translateY(-2px);}
.service-index{
  display:grid; grid-template-columns:1fr; gap:10px;
}
@media(min-width:600px){ .service-index{grid-template-columns:repeat(2,1fr);} }
@media(min-width:1000px){ .service-index{grid-template-columns:repeat(4,1fr);} }
.service-index a{
  display:flex; align-items:center; gap:12px;
  padding:14px 16px;
  border-radius:var(--radius-sm);
  background:var(--white);
  border:1px solid rgba(37,38,59,.08);
  box-shadow:var(--shadow);
  color:var(--navy);
  transition:border-color .25s ease, color .25s ease, transform .25s var(--ease);
}
.service-index a:hover{border-color:var(--mint); color:var(--mint-dark); transform:translateY(-2px);}
.service-index__nr{
  font-family:var(--font-heading); font-weight:700; font-size:12.5px; color:var(--mint);
}
.service-index__title{font-family:var(--font-heading); font-weight:700; font-size:15px; line-height:1.3;}
.page-cta{padding:clamp(28px,4vw,44px) 0 clamp(40px,6vw,72px);}
.page-cta__inner{display:grid; gap:clamp(24px,4vw,44px); align-items:start;}
@media(min-width:840px){
  .page-cta__inner{grid-template-columns:1.05fr .95fr;}
  .page-cta__related{grid-column:1; grid-row:1;}
  .page-cta__related ~ .reveal:not(.payment-card){grid-column:1; grid-row:2;}
  .page-cta__related ~ .payment-card{grid-column:2; grid-row:1 / span 2;}
}
.page-cta__inner:has(.page-cta__related){row-gap:24px;}
.page-body-section + .page-cta{padding-top:8px;}
.page-cta .payment-tags{margin-top:18px;}

.page-intro{padding:clamp(18px,3vw,32px) 0 clamp(12px,2vw,20px);}
.page-intro .section-head{max-width:820px;}
.page-intro .section-head p{margin-bottom:0;}
.page-intro .section-head h1{
  font-family:var(--font-heading);
  font-size:clamp(28px,3.6vw,40px);
  font-weight:700;
  line-height:1.15;
  color:var(--navy);
  margin-top:6px;
}
.page-section{position:relative; z-index:1; background:transparent;}

/* -------- hero page loader — swipe 1: RTL dots | swipe 2: LTR nav + hero -------- */
html.is-hero-loading{overflow:hidden;}
html.is-hero-loading:not(.is-hero-reveal-2) .lava-header,
html.is-hero-loading:not(.is-hero-reveal-2) .hero{
  visibility:hidden;
}
.hero-page-curtain{
  position:fixed; inset:0; z-index:110;
  pointer-events:auto; overflow:hidden;
}
.hero-page-curtain__phase{
  position:absolute; inset:0;
}
.hero-page-curtain__phase--2{
  opacity:0; visibility:hidden; pointer-events:none;
}
.hero-page-curtain__panel{
  position:absolute; inset:0;
  background:linear-gradient(160deg, var(--cream) 35%, var(--mint-light) 100%);
  will-change:transform;
}
/* Swipe 1 — one pass right to left, reveals dots only */
.hero-page-curtain__phase--1 .hero-page-curtain__panel{
  transform-origin:center left;
  animation:hero-swipe1 1.4s var(--hero-bg-enter-delay) var(--hero-curtain-ease-1) forwards;
}
@keyframes hero-swipe1{
  from{transform:scale(1,1);}
  to{transform:scale(0,1);}
}
/* Swipe 2 — one pass left to right, reveals nav + hero */
html.is-hero-reveal-2 .hero-page-curtain__phase--1{display:none;}
html.is-hero-reveal-2 .hero-page-curtain__phase--2{
  opacity:1; visibility:visible; pointer-events:auto;
}
html.is-hero-reveal-2 .lava-header,
html.is-hero-reveal-2 .hero{
  visibility:visible;
}
html.is-hero-reveal-2 .hero-page-curtain__phase--2 .hero-page-curtain__panel{
  transform-origin:center right;
  animation:hero-swipe2 1.7s var(--hero-curtain-ease-2) forwards;
}
@keyframes hero-swipe2{
  from{transform:scale(1,1);}
  to{transform:scale(0,1);}
}
html.hero--loaded .hero-page-curtain{display:none;}
/* nav drops in from above the window while swipe 2 finishes its last ~20% */
@keyframes nav-drop-in{
  from{opacity:0; transform:translateY(calc(-1 * var(--site-header-height, 96px)));}
  to{opacity:1; transform:translateY(0);}
}
html.is-nav-enter .lava-header-grid__logo,
html.is-nav-enter .lava-site-nav__item,
html.is-nav-enter .lava-scroll-progress,
html.is-nav-enter .lava-header-grid__toggle{
  animation:nav-drop-in .72s var(--hero-nav-ease) both;
}
html.is-nav-enter .lava-header-grid__logo{animation-delay:1.3s;}
html.is-nav-enter .lava-header-grid__toggle{animation-delay:1.4s;}
/* the progress rule sits under the links, so it rides in mid-stagger rather than waiting alone */
html.is-nav-enter .lava-scroll-progress{animation-delay:1.5s;}
html.is-nav-enter .lava-site-nav__item:nth-child(1){animation-delay:1.38s;}
html.is-nav-enter .lava-site-nav__item:nth-child(2){animation-delay:1.44s;}
html.is-nav-enter .lava-site-nav__item:nth-child(3){animation-delay:1.50s;}
html.is-nav-enter .lava-site-nav__item:nth-child(4){animation-delay:1.56s;}
html.is-nav-enter .lava-site-nav__item:nth-child(5){animation-delay:1.62s;}
html.is-nav-enter .lava-site-nav__item:nth-child(6){animation-delay:1.68s;}
@media(prefers-reduced-motion:reduce){
  html.is-nav-enter .lava-header-grid__logo,
  html.is-nav-enter .lava-site-nav__item,
  html.is-nav-enter .lava-scroll-progress,
  html.is-nav-enter .lava-header-grid__toggle{animation:none;}
}
@media(prefers-reduced-motion:reduce){
  .hero-page-curtain{display:none;}
  html.is-hero-loading .lava-header,
  html.is-hero-loading .hero{visibility:visible;}
}

.hero{
  position:relative;
  min-height:100svh;
  overflow:hidden;
  background:transparent;
}
@media(min-width:900px){
  .hero{overflow:visible; overflow-x:clip;}
}
.hero__content{position:relative; z-index:3;}

.hero__layout{
  position:relative; z-index:3;
  min-height:100svh;
  display:grid; grid-template-columns:1fr;
  align-items:center; gap:clamp(28px,4vw,40px);
  padding:clamp(108px,12vw,132px) 0 clamp(48px,6vw,72px);
  box-sizing:border-box;
}
@media(min-width:900px){
  .hero__layout{
    grid-template-columns:1fr 1.15fr;
    align-items:stretch;
    gap:clamp(8px,1.5vw,16px);
    min-height:100svh;
    overflow:visible;
  }
  .hero__copy{
    align-self:center;
    position:relative; z-index:2;
    max-width:520px;
  }
}
.hero__media{display:none; pointer-events:none;}
@media(min-width:900px){
  .hero__media{
    display:block;
    position:relative; z-index:1;
    align-self:stretch;
    min-height:100svh;
    margin:calc(-1 * clamp(108px,12vw,132px)) -12px calc(-1 * clamp(48px,6vw,72px)) -48px;
    overflow:visible;
    border-radius:0;
    box-shadow:none; border:none;
  }
  .hero__image{
    position:absolute;
    top:50%; left:0;
    width:100%; height:90%;
    transform:translateY(-50%);
    object-fit:cover;
    object-position:50% 40%;
    border-radius:0;
    -webkit-mask-image:
      linear-gradient(90deg, transparent 0%, rgba(0,0,0,.2) 15%, rgba(0,0,0,.75) 34%, #000 52%),
      linear-gradient(0deg, transparent 0%, rgba(0,0,0,.12) 8%, #000 20%),
      linear-gradient(270deg, transparent 0%, rgba(0,0,0,.15) 6%, #000 16%);
    -webkit-mask-composite:source-in;
    mask-image:
      linear-gradient(90deg, transparent 0%, rgba(0,0,0,.2) 15%, rgba(0,0,0,.75) 34%, #000 52%),
      linear-gradient(0deg, transparent 0%, rgba(0,0,0,.12) 8%, #000 20%),
      linear-gradient(270deg, transparent 0%, rgba(0,0,0,.15) 6%, #000 16%);
    mask-composite:intersect;
  }
}
@media(max-width:899px){
  .hero{
    position:relative;
    min-height:100svh;
    overflow:hidden;
  }
  .hero::after{
    content:"";
    position:absolute; left:0; right:0; bottom:0; z-index:2;
    height:clamp(80px,18vw,140px);
    background:linear-gradient(to bottom, transparent 0%, var(--cream) 100%);
    pointer-events:none;
  }
  .hero__content{
    position:relative;
    z-index:3;
    min-height:100svh;
  }
  .hero .wrap.hero__layout{
    position:static;
    overflow:visible;
    min-height:100svh;
    margin:0;
    padding:calc(var(--site-header-height) + clamp(24px,5vw,36px)) 24px clamp(48px,10vw,72px);
    display:flex; flex-direction:column; justify-content:center;
    max-width:none;
    width:100%;
    border-radius:0;
    box-shadow:none;
    background:transparent;
  }
  .hero__layout{min-height:100%; padding:0; gap:0;}
  .hero__copy{
    display:flex; flex-direction:column; justify-content:center;
    flex:1; max-width:none; width:100%;
    gap:clamp(14px,3vw,20px);
    position:relative; z-index:2;
  }
  .hero__copy-head,
  .hero__copy-foot{position:relative; z-index:2;}
  .hero__copy-foot{margin-top:0;}
  .hero__media{
    display:block;
    position:absolute;
    z-index:0;
    top:0;
    left:50%;
    transform:translateX(-50%);
    width:100vw;
    height:100%;
    min-height:100svh;
    overflow:hidden;
    border-radius:0;
    pointer-events:none;
  }
  .hero__media::after{
    content:"";
    position:absolute; inset:0; z-index:1;
    background:linear-gradient(
      180deg,
      rgba(37,38,59,.68) 0%,
      rgba(37,38,59,.80) 42%,
      rgba(37,38,59,.88) 100%
    );
  }
  .hero__media .hero__image{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:50% 40%;
    opacity:1;
    mask-image:none;
    -webkit-mask-image:none;
  }
}
@media(min-width:900px){
  .hero__copy{
    display:flex; flex-direction:column; justify-content:center;
  }
}
.hero__copy{
  max-width:520px; width:100%;
  position:relative; z-index:2;
}
@media(min-width:900px){
  .hero__copy-panel{
    position:relative;
    background:rgba(239,249,255,.72);
    backdrop-filter:blur(4px);
    border-radius:var(--radius);
    padding:clamp(24px,3vw,40px);
    box-shadow:0 16px 40px rgba(37,38,59,.08);
    border:1px solid rgba(20,173,225,.12);
  }
  .hero__copy-panel::before{
    content:""; position:absolute; top:-1px; left:28px; right:28px; height:4px;
    border-radius:999px; background:linear-gradient(90deg, var(--mint), var(--mint-dark));
  }
}
.hero__eyebrow{
  display:inline-block; font-family:var(--font-heading); font-weight:700;
  font-size:13px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--mint); margin-bottom:12px;
}
.hero__title{
  font-family:var(--font-heading); font-weight:700;
  font-size:clamp(32px,4.8vw,54px); line-height:1.12;
  color:var(--navy); margin:0;
}
.hero__accent{color:var(--mint-dark);}
.hero__promo{
  margin-top:clamp(14px,2vw,20px);
  display:flex; align-items:center; gap:clamp(10px,2vw,14px);
  max-width:520px; width:100%;
}
.hero__promo-logo{
  flex-shrink:0;
  width:clamp(120px,22vw,168px);
  height:auto;
  border-radius:8px;
  display:block;
}
.hero__promo-copy{
  display:flex; flex-direction:column; justify-content:center; gap:6px;
  flex:1; min-width:0;
}
.hero__promo strong{
  font-family:var(--font-heading);
  font-size:clamp(14px,2.2vw,16px);
  font-weight:700;
  line-height:1.4;
  color:var(--mint);
  text-transform:uppercase;
  letter-spacing:.02em;
}
.hero__promo span{
  font-size:clamp(12px,1.8vw,13px);
  line-height:1.35;
  color:rgba(20,173,225,.85);
  font-style:italic;
}
@media(min-width:900px){
  .hero__promo{
    align-items:center;
    padding:16px 18px;
    border-radius:var(--radius-sm);
    background:rgba(239,249,255,.72);
    backdrop-filter:blur(4px);
    border:1px solid rgba(20,173,225,.22);
    box-shadow:0 8px 24px rgba(37,38,59,.06);
  }
  .hero__promo span{color:rgba(20,173,225,.75);}
}
.hero__text{
  font-size:clamp(16px,2vw,19px); line-height:1.6;
  color:var(--navy-soft); margin:clamp(14px,2.5vw,20px) 0 0; max-width:38ch;
}
.hero__badges{
  list-style:none; display:flex; flex-wrap:wrap; gap:8px;
  margin-top:clamp(16px,2.5vw,22px);
}
.hero__badge{
  display:inline-block; font-size:12px; font-weight:700;
  padding:7px 12px; border-radius:999px;
  background:rgba(20,173,225,.12); color:var(--mint-dark);
  border:1px solid rgba(20,173,225,.22);
}
.hero__actions{
  display:flex; flex-wrap:wrap; gap:12px;
  margin-top:clamp(20px,3vw,28px);
}
.hero__btn{
  display:inline-flex; align-items:center; justify-content:center;
  font-family:var(--font-heading); font-weight:700; font-size:15px;
  padding:14px 28px; border-radius:999px; border:2px solid transparent;
  background:var(--mint); color:var(--white);
  box-shadow:0 8px 22px rgba(20,173,225,.35);
  transition:transform .25s var(--ease), background .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.hero__btn:not(.hero__btn--ghost):hover{
  background:#1096c4;
  transform:translateY(-2px);
  box-shadow:0 12px 28px rgba(20,173,225,.45);
}
.hero__btn--ghost{
  background:transparent;
  color:var(--mint-dark);
  border-color:rgba(40,88,160,.25);
  box-shadow:none;
}
.hero__btn--ghost:hover{
  background:rgba(20,173,225,.08);
  border-color:var(--mint);
  color:var(--mint-dark);
  transform:translateY(-2px);
  box-shadow:none;
}
.hero__locations{
  display:grid; grid-template-columns:1fr 1fr; gap:10px;
  margin-top:clamp(18px,2.5vw,24px); padding-top:18px;
  border-top:1px solid rgba(20,173,225,.18);
}
.hero__location{
  display:flex; flex-direction:column; gap:2px;
  font-size:12px; line-height:1.4; color:var(--navy-soft);
  padding:10px 12px; border-radius:var(--radius-sm);
  background:rgba(20,173,225,.06);
  transition:background .25s ease, color .25s ease;
}
.hero__location strong{font-size:13px; color:var(--navy);}
.hero__location:hover{background:rgba(20,173,225,.14); color:var(--mint-dark);}
.hero__relocation{
  position:relative;
  display:flex; align-items:flex-start; gap:9px;
  margin:10px 0 0; padding:10px 13px;
  border-radius:var(--radius-sm);
  font-size:12px; line-height:1.45; color:var(--navy-soft);
  background:rgba(20,173,225,.07);
  border:1px solid rgba(20,173,225,.26);
}
.hero__relocation strong{color:var(--mint-dark);}
.hero__relocation__dot{
  flex-shrink:0; width:7px; height:7px; margin-top:5px; border-radius:50%;
  background:var(--mint); box-shadow:0 0 8px rgba(20,173,225,.9);
}
/* the glow lives on a pseudo-element so only opacity animates */
.hero__relocation::before{
  content:""; position:absolute; inset:-1px; border-radius:inherit; pointer-events:none;
  box-shadow:0 0 0 1px rgba(20,173,225,.45), 0 0 18px rgba(20,173,225,.42);
  opacity:0; animation:hero-note-glow 4.2s var(--ease) -1.6s infinite;
}
@keyframes hero-note-glow{
  0%,100%{opacity:0;}
  50%{opacity:1;}
}
@media(prefers-reduced-motion:reduce){
  .hero__relocation::before{animation:none; opacity:.45;}
}
@media(max-width:899px){
  .hero__copy-panel{
    background:transparent;
    backdrop-filter:none;
    border:none;
    box-shadow:none;
    padding:0;
    border-radius:0;
  }
  .hero__copy-panel::before{display:none;}
  .hero__title{
    font-size:clamp(28px,7.5vw,36px);
    line-height:1.15;
    color:var(--white);
  }
  .hero__accent{color:var(--mint);}
  .hero__text{
    max-width:none;
    margin:clamp(10px,2vw,14px) 0 0;
    color:rgba(255,255,255,.9);
  }
  .hero__eyebrow{color:var(--mint);}
  .hero__badge{
    background:rgba(255,255,255,.12);
    color:var(--white);
    border-color:rgba(255,255,255,.22);
  }
  .hero__locations{border-top-color:rgba(255,255,255,.18);}
  .hero__location{
    background:rgba(255,255,255,.08);
    color:rgba(255,255,255,.85);
  }
  .hero__location strong{color:var(--white);}
  .hero__relocation{
    background:rgba(255,255,255,.10);
    border-color:rgba(255,255,255,.30);
    color:rgba(255,255,255,.88);
  }
  .hero__relocation strong{color:var(--white);}
  .hero__relocation::before{
    box-shadow:0 0 0 1px rgba(255,255,255,.42), 0 0 18px rgba(193,215,230,.45);
  }
  .hero__btn--ghost{
    color:var(--white);
    border-color:rgba(255,255,255,.45);
  }
  .hero__btn--ghost:hover{
    background:rgba(255,255,255,.1);
    border-color:rgba(255,255,255,.65);
    color:var(--white);
  }
  .hero__promo{
    flex-wrap:wrap;
    background:transparent;
    backdrop-filter:none;
    border:none;
    box-shadow:none;
    padding:0;
  }
  .hero__promo strong{
    color:var(--mint-light);
    font-size:clamp(14px,3.5vw,16px);
  }
  .hero__promo span{
    color:rgba(193,215,230,.95);
  }
}
/* -------- trust strip -------- */
.trust-strip{
  padding:50px 0;
  position:relative;
  z-index:2;
  background:transparent;
}
.trust-grid{display:grid; grid-template-columns:1fr; gap:30px;}
@media(min-width:800px){ .trust-grid{grid-template-columns:repeat(3,1fr);} }
.trust-item{background:var(--white); border-radius:var(--radius); padding:28px; box-shadow:var(--shadow); text-align:center;}
.trust-icon{width:44px; height:44px; border-radius:50%; background:var(--mint); color:var(--white); display:flex; align-items:center; justify-content:center; font-weight:700; margin:0 auto 14px;}
.trust-item h3{color:var(--navy); font-size:19px;}
.trust-item p{color:var(--navy-soft); font-size:14.5px; margin-top:8px;}

/* -------- about -------- */
.about{
  padding:90px 0;
  position:relative;
  isolation:isolate;
}
.about-grid{
  display:grid; grid-template-columns:1fr; gap:50px;
  align-items:start;
}
@media(min-width:900px){
  .about-grid{
    grid-template-columns:1fr 1.1fr;
    align-items:stretch;
  }
}
.about-media{
  position:relative;
  z-index:1;
  min-width:0;
  width:100%;
  display:flex;
  flex-direction:column;
}
@media(min-width:900px){
  .about-media{
    align-self:stretch;
    min-height:100%;
  }
}
.about-copy{
  position:relative;
  z-index:2;
}
.about-copy h1,
.about-copy h2{
  font-family:var(--font-heading);
  font-size:clamp(28px,3.4vw,38px);
  font-weight:700;
  line-height:1.18;
  color:var(--navy);
}
.about-copy p{margin-top:14px; font-size:16px;}
.about-values{display:flex; flex-wrap:wrap; gap:10px; margin-top:22px;}

.about-slideshow{
  position:relative;
  width:100%;
  overflow:hidden;
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:clamp(280px, 55vw, 380px);
}
@media(min-width:900px){
  .about-slideshow{
    min-height:100%;
    height:100%;
  }
}
.about-media__visual{
  position:relative;
  overflow:hidden;
  width:100%;
  max-width:380px;
  margin-inline:auto;
  flex:1;
  min-height:clamp(280px, 55vw, 380px);
}
@media(min-width:900px){
  .about-media__visual{
    max-width:none;
    margin:0;
    min-height:100%;
    height:100%;
  }
}
.about-slideshow__track{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.about-slideshow__slide{
  position:absolute; inset:0; margin:0;
  overflow:hidden;
  opacity:0; transition:opacity .55s var(--ease); pointer-events:none;
}
.about-slideshow__slide.is-active{opacity:1; pointer-events:auto;}
.about-slideshow__arrow{
  position:absolute; top:50%; transform:translateY(-50%);
  width:40px; height:40px; border:none; border-radius:50%;
  background:rgba(37,38,59,.72); color:var(--white);
  font-size:26px; line-height:1; cursor:pointer; z-index:3;
  display:flex; align-items:center; justify-content:center;
  transition:background .25s ease, transform .25s var(--ease);
}
.about-slideshow__arrow:hover{background:var(--coral); transform:translateY(-50%) scale(1.05);}
.about-slideshow__arrow--prev{left:14px;}
.about-slideshow__arrow--next{right:14px;}
.about-slideshow__dots{
  position:absolute; left:0; right:0; bottom:14px; z-index:3;
  display:flex; justify-content:center; gap:8px;
}
.about-slideshow__dot{
  width:8px; height:8px; border-radius:50%; border:none; padding:0;
  background:rgba(37,38,59,.22); cursor:pointer;
  transition:transform .25s ease, background .25s ease;
}
.about-slideshow__dot.is-active{background:var(--mint); transform:scale(1.25);}
.about-media__image{
  position:absolute;
  inset:0;
  width:100%; height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center 50%;
  border-radius:0;
  -webkit-mask-image:
    linear-gradient(270deg, transparent 0%, rgba(0,0,0,.2) 15%, rgba(0,0,0,.75) 34%, #000 52%),
    linear-gradient(0deg, transparent 0%, rgba(0,0,0,.12) 8%, #000 20%),
    linear-gradient(90deg, transparent 0%, rgba(0,0,0,.15) 6%, #000 16%);
  -webkit-mask-composite:source-in;
  mask-image:
    linear-gradient(270deg, transparent 0%, rgba(0,0,0,.2) 15%, rgba(0,0,0,.75) 34%, #000 52%),
    linear-gradient(0deg, transparent 0%, rgba(0,0,0,.12) 8%, #000 20%),
    linear-gradient(90deg, transparent 0%, rgba(0,0,0,.15) 6%, #000 16%);
  mask-composite:intersect;
}
.about-media__image--02{object-position:center 42%;}
.about-media__image--03{object-position:center 36%;}
.about-media__image--05{object-position:center 48%;}
.about-media__image--06{object-position:center 45%;}
@media(max-width:899px){
  .about-media__image{
    -webkit-mask-image:linear-gradient(0deg, transparent 0%, rgba(0,0,0,.35) 6%, #000 18%);
    mask-image:linear-gradient(0deg, transparent 0%, rgba(0,0,0,.35) 6%, #000 18%);
    -webkit-mask-composite:source-over;
    mask-composite:add;
  }
}

.img-placeholder{
  border-radius:var(--radius); background:linear-gradient(135deg, var(--mint-light), rgba(20,173,225,.2));
  min-height:180px;
}
.map-photo{aspect-ratio:16/10; min-height:0;}

/* -------- why us -------- */
.why-us{
  padding:90px 0;
  position:relative;
  z-index:2;
  background:transparent;
}
.why-grid{display:grid; grid-template-columns:1fr; gap:26px;}
@media(min-width:800px){ .why-grid{grid-template-columns:repeat(3,1fr);} }
.why-card{background:var(--white); border-radius:var(--radius); padding:32px; box-shadow:var(--shadow);}
.why-icon{font-size:30px; margin-bottom:14px;}
.why-card h3{font-size:19px;}
.why-card p{margin-top:10px; font-size:15px;}

/* -------- LAVA-layout services (Sweet Tooth colors, transparent bg) -------- */
.lava-services{padding:90px 0;}
.lava-services__header{background:transparent; padding:0 0 44px;}
.lava-services__title{font-family:var(--font-heading); font-size:clamp(32px,4vw,44px); font-weight:700; color:var(--navy); line-height:1.1;}
.lava-services__intro{
  margin-top:16px; max-width:820px;
  font-size:clamp(15px,2vw,17px); line-height:1.65; color:var(--navy-soft);
}
.contact-relocation{
  margin-top:14px; font-size:15px; color:var(--navy-soft);
  max-width:640px; margin-inline:auto;
}
.reviews-heading{
  font-family:var(--font-heading); font-size:18px; font-weight:700;
  color:var(--white); margin-bottom:8px;
}
.lava-services__body{background:transparent; padding:0;}
.lava-services__cards-band,.lava-services__list-band{background:transparent;}

.services-card-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:14px;}
@media(min-width:720px){ .services-card-grid{grid-template-columns:repeat(4,1fr); gap:20px;} }
.services-card-grid__item{min-width:0;}
.services-card-grid__item:first-child{grid-column:span 2; min-height:clamp(11rem,18vw,16rem);}
@media(min-width:720px){ .services-card-grid__item:first-child{grid-column:span 4;} }
.lava-service-card{
  display:block; position:relative; cursor:pointer; overflow:hidden; min-height:clamp(13rem,26vw,20rem);
  background:var(--white); color:var(--navy); border-radius:var(--radius);
  box-shadow:var(--shadow);
  opacity:0; translate:0 48px;
  transition:
    translate 1s var(--page-ease-scale) var(--delay,0s),
    opacity 1s var(--page-ease-scale) var(--delay,0s),
    transform .35s var(--ease),
    box-shadow .35s var(--ease);
}
.services-card-grid__item.is-visible .lava-service-card{opacity:1; translate:0;}
.lava-service-card__media{
  position:absolute; inset:0;
  background:linear-gradient(145deg, var(--mint-light) 0%, rgba(20,173,225,.25) 100%);
}
.lava-service-card__media img{
  width:100%; height:100%; object-fit:cover; display:block;
  transform:scale(1.2); transform-origin:center;
  transition:transform 1s var(--page-ease-scale) var(--delay,0s);
}
.services-card-grid__item.is-visible .lava-service-card__media img{transform:scale(1);}
.lava-service-card:hover .lava-service-card__media img{transform:scale(1.05);}
.lava-service-card__media::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(255,255,255,.94) 0%, rgba(255,255,255,.35) 42%, rgba(255,255,255,.08) 100%);
  pointer-events:none;
}
.lava-service-card__content{
  position:relative; z-index:1; height:100%; min-height:inherit;
  display:flex; flex-direction:column; padding:clamp(16px,3vw,24px);
}
.lava-service-card__head{display:flex; justify-content:space-between; align-items:flex-start; gap:12px;}
.lava-service-card__nr{
  font-family:var(--font-heading); font-size:clamp(16px,2.2vw,22px); font-weight:700; color:var(--coral);
  scale:0; transition:scale 1s var(--page-ease-scale) var(--delay,0s);
}
.services-card-grid__item.is-visible .lava-service-card__nr{scale:1;}
.lava-service-card__arrow{
  width:40px; height:40px; border-radius:50%; flex-shrink:0;
  background:var(--coral); color:var(--white);
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s var(--ease);
}
.lava-service-card:hover .lava-service-card__arrow{transform:rotate(45deg);}
.lava-service-card__title{margin-top:auto; font-family:var(--font-heading); font-size:clamp(18px,2.5vw,26px); font-weight:700; line-height:1.2; color:var(--navy);}

.services-list-item-grid{display:grid; grid-template-columns:1fr; gap:0; margin-top:28px; position:relative; isolation:isolate;}
.services-list-item-grid::before{
  content:""; position:absolute; top:50%; right:0; z-index:-1;
  height:min(130%,980px); aspect-ratio:941/1672; translate:0 -50%;
  background:url("assets/Hero.png") no-repeat center / contain;
  opacity:.28; pointer-events:none;
  -webkit-mask-image:linear-gradient(to left, #000 35%, transparent 100%), linear-gradient(to bottom, transparent 0%, #000 20%, #000 80%, transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to left, #000 35%, transparent 100%), linear-gradient(to bottom, transparent 0%, #000 20%, #000 80%, transparent 100%);
  mask-composite:intersect;
}
@media(max-width:719px){
  .services-list-item-grid::before{
    right:auto; left:50%; translate:-50% -50%;
    width:min(100%,420px); height:auto;
    -webkit-mask-image:linear-gradient(to bottom, transparent 0%, #000 20%, #000 80%, transparent 100%);
    mask-image:linear-gradient(to bottom, transparent 0%, #000 20%, #000 80%, transparent 100%);
  }
}
.services-list-item-grid__item{border-bottom:1px solid rgba(37,38,59,.1);}
.lava-service-row{
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:16px;
  padding:clamp(14px,2vw,20px) 8px; cursor:pointer; color:var(--navy-soft);
  border-radius:var(--radius-sm);
  opacity:0; translate:0 64px;
  transition:
    translate 1s var(--page-ease-scale) var(--delay,0s),
    opacity 1s var(--page-ease-scale) var(--delay,0s),
    color .25s ease, background .25s ease;
}
.services-list-item-grid__item.is-visible .lava-service-row{opacity:1; translate:0;}
@media(min-width:720px){ .lava-service-row{grid-template-columns:72px 1fr auto; gap:24px; padding-inline:12px;} }
.lava-service-row:hover{color:var(--navy); background:rgba(255,255,255,.65);}
.lava-service-row__nr{font-family:var(--font-heading); font-size:clamp(16px,2.2vw,22px); font-weight:700; color:var(--coral);}
.lava-service-row__title{font-family:var(--font-heading); font-size:clamp(17px,2.4vw,24px); font-weight:700; color:var(--navy);}
.lava-service-row__arrow{
  width:40px; height:40px; border-radius:50%;
  background:var(--mint-light); color:var(--mint-dark);
  display:flex; align-items:center; justify-content:center;
  transition:transform .3s var(--ease), background .25s ease;
}
.lava-service-row:hover .lava-service-row__arrow{transform:rotate(45deg); background:var(--coral); color:var(--white);}

/* -------- page transition -------- */
html.is-page-transition,
html.is-page-transition body{overflow-x:hidden;}

@keyframes page-slide-in{
  from{translate:100% 0;}
  to{translate:0 0;}
}
@keyframes page-fade-in{
  from{opacity:0;}
  to{opacity:1;}
}
@keyframes page-scale-in{
  from{scale:1.1;}
  to{scale:1;}
}
@keyframes page-slide-out{
  from{translate:0 0; opacity:1;}
  to{translate:-14% 0; opacity:0;}
}

body.is-page-entering .lava-header,
body.is-page-entering .lava-main,
body.is-page-entering .site-footer{
  animation:page-slide-in 1s var(--page-ease-slide) both;
}
body.is-page-entering .lava-main{
  animation:
    page-slide-in 1s var(--page-ease-slide) both,
    page-fade-in 1s var(--page-ease-fade) both,
    page-scale-in 2s var(--page-ease-scale) both;
}

body.is-page-leaving .lava-header,
body.is-page-leaving .lava-main,
body.is-page-leaving .site-footer{
  animation:page-slide-out .45s var(--page-ease-slide) both;
}

@media(prefers-reduced-motion:reduce){
  body.is-page-entering .lava-header,
  body.is-page-entering .lava-main,
  body.is-page-entering .site-footer,
  body.is-page-leaving .lava-header,
  body.is-page-leaving .lava-main,
  body.is-page-leaving .site-footer{animation:none;}
}

/* -------- team (Lava-style tabs + staggered scroll grid) -------- */
.team{padding:90px 0; overflow:clip;}
.team-members{margin-top:8px;}
.team-subhead{
  font-family:var(--font-heading); font-size:clamp(22px,3vw,28px);
  text-align:center; color:var(--navy); margin:clamp(40px,6vw,64px) 0 28px;
}
.team-member-grid{
  display:grid; grid-template-columns:1fr; gap:clamp(22px,3vw,36px) clamp(18px,2.5vw,28px);
  align-items:start;
}
@media(min-width:700px){ .team-member-grid{grid-template-columns:repeat(2,1fr);} }
@media(min-width:1024px){ .team-member-grid{grid-template-columns:repeat(3,1fr);} }
.team-member-grid--admin{
  grid-template-columns:repeat(2,1fr); gap:12px;
}
@media(min-width:700px){ .team-member-grid--admin{grid-template-columns:repeat(3,1fr); gap:14px;} }
@media(min-width:1024px){ .team-member-grid--admin{grid-template-columns:repeat(4,1fr);} }
.team-member,
.team-member-grid__item--footer{
  display:flex; flex-direction:column; gap:14px;
  opacity:0; translate:0 48px;
  transition:
    translate 1s var(--page-ease-scale) var(--delay,0s),
    opacity 1s var(--page-ease-scale) var(--delay,0s);
}
.team-member.is-visible,
.team-member-grid__item--footer.is-visible{opacity:1; translate:0;}
.team-member--staff{
  gap:0; padding:16px 18px;
  border-radius:var(--radius-sm);
  background:rgba(255,255,255,.72);
  border:1px solid rgba(20,173,225,.16);
  box-shadow:0 6px 18px rgba(37,38,59,.04);
}
.team-member--staff .team-member__name{font-size:16px;}
.team-member--staff .team-member__role{font-size:12px; margin-top:3px;}
.team-member__header{
  position:relative; border-radius:var(--radius); overflow:hidden;
  background:linear-gradient(160deg, rgba(20,173,225,.12), rgba(37,38,59,.08));
  aspect-ratio:680/850;
}
.team-member__image{
  width:100%; height:100%; object-fit:cover; object-position:top center;
  border-radius:0; display:block;
  transition:transform .55s var(--ease);
}
.team-member__link{
  position:absolute; right:14px; bottom:14px; z-index:2;
  width:52px; height:52px; border:none; border-radius:50%; cursor:pointer;
  display:grid; place-items:center;
  background:var(--cream); color:var(--navy);
  box-shadow:0 10px 24px rgba(37,38,59,.16);
  transition:transform .3s var(--ease), background .25s ease, color .25s ease;
}
.team-member__link svg{width:28px; height:28px; display:block;}
.team-member__link:hover,
.team-member:hover .team-member__link{
  background:var(--mint); color:var(--white); transform:rotate(45deg) scale(1.04);
}
.team-member:hover .team-member__image{transform:scale(1.04);}
.team-member__info{padding:0 4px;}
.team-member__name{
  font-family:var(--font-heading); font-size:clamp(18px,2.2vw,22px);
  font-weight:700; color:var(--navy); margin:0;
}
.team-member__role{
  margin-top:4px; color:var(--coral); font-weight:700; font-size:13px;
  text-transform:uppercase; letter-spacing:.03em;
}
.team-member-grid__item--footer{display:flex;}
.team-join-box{
  width:100%; min-height:100%;
  display:flex; flex-direction:column; justify-content:space-between; gap:28px;
  padding:clamp(26px,3vw,36px);
  border-radius:var(--radius);
  background:linear-gradient(160deg, var(--navy) 0%, #1d3a55 100%);
  color:var(--white); box-shadow:var(--shadow);
}
.team-join-box h3{
  font-family:var(--font-heading); font-size:clamp(22px,2.8vw,28px);
  color:var(--white); line-height:1.25; margin:0;
}
.team-join-box p{color:rgba(255,255,255,.78); font-size:15px; line-height:1.55; margin:0;}
.team-join-box__cta{
  display:inline-flex; align-items:center; justify-content:space-between; gap:14px;
  color:var(--white); font-family:var(--font-heading); font-weight:700; font-size:17px;
}
.team-join-box__cta .team-member__link{
  position:static; background:var(--cream); color:var(--navy);
}
.team-join-box__cta:hover .team-member__link{
  background:var(--mint); color:var(--white); transform:rotate(45deg) scale(1.04);
}
.team-note{text-align:center; max-width:720px; margin:48px auto 0; font-size:16px; line-height:1.65;}

.team-modal{
  position:fixed; inset:0; z-index:120;
  display:grid; place-items:center; padding:24px;
}
.team-modal[hidden]{display:none!important;}
.team-modal__backdrop{
  position:absolute; inset:0; background:rgba(37,38,59,.55); backdrop-filter:blur(4px);
}
.team-modal__dialog{
  position:relative; z-index:1; width:min(920px,100%);
  display:grid; grid-template-columns:1fr; gap:0;
  background:var(--cream); border-radius:var(--radius); overflow:hidden;
  box-shadow:0 30px 80px rgba(37,38,59,.28);
  max-height:min(90svh,900px); overflow-y:auto;
}
@media(min-width:800px){ .team-modal__dialog{grid-template-columns:.9fr 1.1fr;} }
.team-modal__close{
  position:absolute; top:12px; right:12px; z-index:2;
  width:42px; height:42px; border:none; border-radius:50%;
  background:rgba(239,249,255,.92); color:var(--navy); cursor:pointer;
  font-size:28px; line-height:1; display:grid; place-items:center;
}
.team-modal__media{background:rgba(20,173,225,.08);}
.team-modal__media img{
  width:100%; height:100%; min-height:280px; max-height:520px;
  object-fit:cover; object-position:top center; border-radius:0;
}
.team-modal__body{padding:clamp(24px,4vw,40px); display:flex; flex-direction:column; gap:12px;}
.team-modal__body h3{font-size:clamp(24px,3vw,32px); margin:0;}
.team-modal__role{
  color:var(--coral); font-weight:700; font-size:13px;
  text-transform:uppercase; letter-spacing:.03em;
}
.team-modal__body p{color:var(--navy-soft); font-size:16px; line-height:1.65; margin:0 0 8px;}
.team-modal__body .hero__btn{align-self:flex-start; margin-top:8px;}
@media(prefers-reduced-motion:reduce){
  .lava-service-card,
  .lava-service-row,
  .team-member,
  .team-member-grid__item--footer{
    opacity:1!important; translate:none!important; transition:none!important;
  }
  .services-card-grid__item.is-visible .lava-service-card__media img,
  .lava-service-card__media img,
  .lava-service-card__nr{
    transform:none!important; scale:1!important; transition:none!important;
  }
  .team-member__image,
  .team-member__link{transition:none;}
}

/* -------- reviews -------- */
.reviews{padding:70px 0;}
.reviews-inner{background:var(--navy); border-radius:var(--radius); padding:44px; box-shadow:var(--shadow); display:grid; grid-template-columns:1fr; gap:24px; align-items:center; text-align:center;}
@media(min-width:800px){ .reviews-inner{grid-template-columns:220px 1fr; text-align:left;} }
.review-score{color:var(--white); text-align:center;}
.review-score .score{font-family:var(--font-heading); font-size:52px; font-weight:700; color:var(--coral);}
.stars{color:#ffc94d; font-size:20px; margin-top:4px;}
.review-score p{color:rgba(255,255,255,.7); margin-top:6px; font-size:14px;}
.reviews blockquote{color:rgba(255,255,255,.85); font-size:18px; font-style:italic; line-height:1.6;}

/* -------- payment -------- */
.payment{padding:90px 0;}
.payment-inner{display:grid; grid-template-columns:1fr; gap:44px;}
@media(min-width:900px){ .payment-inner{grid-template-columns:1.2fr .8fr;} }
.payment p{margin-top:14px; font-size:16px;}
.payment-tags{display:flex; flex-wrap:wrap; gap:10px; margin-top:22px;}
.tag{background:var(--mint-light); color:var(--mint-dark); font-weight:700; font-size:13px; padding:8px 16px; border-radius:999px;}
.payment-card{background:var(--navy); color:var(--white); border-radius:var(--radius); padding:34px; box-shadow:var(--shadow); align-self:start;}
.payment-card h3{color:var(--white);}
.payment-card p{color:rgba(255,255,255,.75); margin-top:8px;}
.payment-card__actions{
  display:flex; flex-direction:column; gap:10px;
  margin-top:14px;
}
.payment-card__actions .hero__btn{width:100%;}
.payment-card .hero__btn--ghost{
  color:var(--white);
  border-color:rgba(255,255,255,.45);
}
.payment-card .hero__btn--ghost:hover{
  color:var(--white);
  background:rgba(20,173,225,.08);
  border-color:var(--mint);
}
.payment-card a:not(.btn):not(.hero__btn){
  color:var(--mint);
  text-decoration:underline;
  text-underline-offset:2px;
}
.payment-card a:not(.btn):not(.hero__btn):hover{color:var(--white);}
.payment h2,
.finance-extra h2{color:var(--navy);}

.payment-faq__inner{display:grid; grid-template-columns:1fr; gap:clamp(40px,5vw,64px);}
@media(min-width:1000px){
  .payment-faq__inner{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:start;}
  .payment-faq__aside{position:sticky; top:calc(var(--site-header-height) + 24px);}
}
.payment-faq .payment{padding:0;}
.payment-faq__aside{display:flex; flex-direction:column; gap:32px;}
.payment-faq__main .section-head{margin:0 0 24px; text-align:left;}
.payment-faq__main .faq-list{max-width:none; margin:0;}

/* -------- finance page -------- */
.finance-plans{padding:60px 0 80px;}
.finance-plan-grid{
  display:grid; grid-template-columns:1fr; gap:24px;
}
@media(min-width:768px){ .finance-plan-grid{grid-template-columns:repeat(2,1fr);} }
.finance-plan-card{
  background:var(--white); border-radius:var(--radius); padding:28px;
  box-shadow:var(--shadow); display:flex; flex-direction:column; gap:12px;
}
.finance-plan-card__logo{
  min-height:64px; display:flex; align-items:center;
}
.finance-plan-card__logo img{
  border-radius:0; max-height:56px; width:auto; max-width:160px; object-fit:contain;
}
.finance-plan-card h3{font-family:var(--font-heading); font-size:20px; color:var(--navy);}
.finance-plan-card p{font-size:15px; color:var(--navy-soft); line-height:1.65;}
.finance-plan-card .link-arrow{margin-top:auto; padding-top:8px;}
.finance-accept{padding:70px 0 80px;}
.finance-accept-grid{
  list-style:none; display:grid;
  grid-template-columns:repeat(2,1fr); gap:16px;
  max-width:960px; margin:0 auto;
}
@media(min-width:600px){ .finance-accept-grid{grid-template-columns:repeat(3,1fr);} }
@media(min-width:900px){ .finance-accept-grid{grid-template-columns:repeat(4,1fr);} }
.finance-accept-item{
  padding:12px 8px;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:8px; text-align:center;
}
.finance-accept-item img{
  border-radius:0; max-height:52px; max-width:160px;
  width:auto; height:auto; object-fit:contain;
}
.finance-accept-item img.finance-logo-light-blue{
  filter:invert(1) sepia(1) saturate(600%) hue-rotate(165deg) brightness(1.05);
}
.finance-accept-item span{
  font-size:13px; font-weight:700; color:var(--navy-soft);
}
.finance-extra{padding:70px 0 90px;}
.finance-extra__inner{
  display:grid; grid-template-columns:1fr; gap:44px;
}
@media(min-width:900px){ .finance-extra__inner{grid-template-columns:1.2fr .8fr;} }

/* -------- faq -------- */
.faq{padding:90px 0;}
.faq-list{max-width:740px; margin:0 auto; display:flex; flex-direction:column; gap:14px;}
.faq-item{background:var(--white); border-radius:var(--radius-sm); box-shadow:var(--shadow); overflow:hidden;}
.faq-question{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:20px 24px; cursor:pointer; font-family:var(--font-heading); font-weight:700; font-size:16px;}
.faq-plus{font-size:22px; color:var(--coral); transition:transform .3s ease; flex-shrink:0;}
.faq-item.open .faq-plus{transform:rotate(45deg);}
.faq-answer{max-height:0; overflow:hidden; transition:max-height .35s ease;}
.faq-answer-inner{padding:0 24px 20px; font-size:15px; color:var(--navy-soft);}

/* -------- enquiry form -------- */
.enquiry{padding:90px 0;}
.enquiry-form{
  max-width:740px;
  margin:40px auto 0;
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
}
.enquiry-form[hidden],
.enquiry-success[hidden]{display:none;}
.enquiry-faq__inner{display:grid; grid-template-columns:1fr; gap:clamp(48px,6vw,72px);}
@media(min-width:1080px){
  .enquiry-faq__inner{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); align-items:start;}
}
@media(min-width:1080px) and (min-height:1040px){
  .enquiry-faq__form{position:sticky; top:calc(var(--site-header-height) + 24px);}
}
.enquiry-faq .section-head{margin:0 0 28px; text-align:left;}
.enquiry-faq .enquiry-form,
.enquiry-faq .enquiry-success{max-width:none; margin:0;}
.enquiry-faq__faq.faq{padding:0;}
.enquiry-faq__faq .faq-list{max-width:none; margin:0;}
@media(min-width:640px){
  .enquiry-form{grid-template-columns:1fr 1fr;}
  .enquiry-form__full{grid-column:1 / -1;}
}
.enquiry-field{display:flex; flex-direction:column; gap:8px;}
.enquiry-field label{
  font-family:var(--font-heading); font-weight:700; font-size:14px; color:var(--navy);
}
.enquiry-field input,
.enquiry-field select,
.enquiry-field textarea{
  width:100%;
  border:1.5px solid rgba(37,38,59,.14);
  border-radius:var(--radius-sm);
  padding:12px 14px;
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.4;
  color:var(--navy);
  background:var(--white);
  box-shadow:var(--shadow);
  appearance:none;
  -webkit-appearance:none;
}
.enquiry-field select{
  padding-right:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%232556A0' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 14px center;
  background-size:14px;
  cursor:pointer;
}
.enquiry-field textarea{resize:vertical; min-height:120px;}
.enquiry-field input:focus,
.enquiry-field select:focus,
.enquiry-field textarea:focus{
  outline:none;
  border-color:var(--mint);
  box-shadow:0 0 0 3px rgba(20,173,225,.18);
}
.enquiry-field input:user-invalid,
.enquiry-field select:user-invalid,
.enquiry-field textarea:user-invalid{
  border-color:var(--error);
}
.enquiry-note{
  margin:0;
  font-size:14px;
  color:var(--navy-soft);
}
.enquiry-note a{
  color:var(--mint-dark);
  text-decoration:underline;
  text-underline-offset:3px;
}
.enquiry-actions{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:16px;
}
.enquiry-actions .hero__btn{
  border:0;
  cursor:pointer;
  font-family:var(--font-heading);
}
.enquiry-actions .hero__btn:disabled{
  opacity:.65;
  cursor:wait;
}
.enquiry-actions__note{
  margin:0; flex:1 1 220px;
  font-size:13.5px; line-height:1.45; color:var(--navy-soft);
}
.enquiry-actions__note a{color:var(--mint-dark); font-weight:700; white-space:nowrap;}
.enquiry-check{
  padding:16px 18px;
  border-radius:var(--radius-sm);
  background:rgba(20,173,225,.07);
  border:1.5px dashed rgba(20,173,225,.35);
}
.enquiry-check input{max-width:120px; text-align:center; font-weight:700;}
.enquiry-check__hint{font-size:12.5px; color:var(--navy-soft);}
.enquiry-status{margin:0; flex-basis:100%; font-size:14.5px; color:var(--navy-soft);}
.enquiry-status.is-success{color:var(--mint-dark);}
.enquiry-status.is-error{color:var(--error);}
.enquiry-hp{
  position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden;
}
.enquiry-success{
  max-width:740px;
  margin:40px auto 0;
  padding:clamp(28px,4vw,44px);
  border-radius:var(--radius);
  background:var(--white);
  box-shadow:var(--shadow);
  text-align:center;
  outline:none;
  animation:enquiry-success-in .6s var(--ease) both;
}
@keyframes enquiry-success-in{
  from{opacity:0; transform:translateY(18px) scale(.98);}
  to{opacity:1; transform:none;}
}
.enquiry-success__icon{
  width:60px; height:60px; margin:0 auto 18px;
  display:grid; place-items:center;
  border-radius:50%;
  color:var(--white);
  background:var(--mint);
  box-shadow:0 10px 26px rgba(20,173,225,.4);
}
.enquiry-success__title{
  margin:0 0 10px;
  font-family:var(--font-heading); font-size:clamp(22px,3vw,28px); color:var(--navy);
}
.enquiry-success__lead{margin:0 auto 26px; max-width:520px; color:var(--navy-soft);}
.enquiry-success__summary{
  margin:0 0 28px;
  display:grid; grid-template-columns:1fr; gap:0;
  text-align:left;
  border:1px solid rgba(37,38,59,.08);
  border-radius:var(--radius-sm);
  overflow:hidden;
}
.enquiry-success__row{
  display:grid; grid-template-columns:1fr; gap:2px;
  padding:12px 16px;
  border-top:1px solid rgba(37,38,59,.08);
}
.enquiry-success__row:first-child{border-top:0;}
.enquiry-success__row:nth-child(odd){background:var(--cream);}
@media(min-width:560px){
  .enquiry-success__row{grid-template-columns:170px 1fr; gap:16px;}
}
.enquiry-success__row dt{
  font-family:var(--font-heading); font-weight:700; font-size:13.5px; color:var(--mint-dark);
}
.enquiry-success__row dd{
  margin:0; font-size:15px; color:var(--navy);
  white-space:pre-wrap; overflow-wrap:anywhere;
}
.enquiry-success__actions{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:14px 22px;
}
.enquiry-success__actions .hero__btn{cursor:pointer; font-family:var(--font-heading);}
.enquiry-success__call{
  font-size:14.5px; font-weight:700; color:var(--mint-dark);
  text-decoration:underline; text-underline-offset:3px;
}
@media (prefers-reduced-motion: reduce){
  .enquiry-success{animation:none;}
}

/* -------- contact -------- */
.contact{padding:90px 0;}
.contact .section-head{margin-inline:auto; text-align:center;}
/* the intro copy and the locations were running together, so the gap scales up */
.contact-grid{display:grid; grid-template-columns:1fr; gap:64px; margin-top:clamp(56px, 7vw, 100px);}
@media(min-width:800px){ .contact-grid{grid-template-columns:repeat(2,1fr); gap:56px;} }
.contact .section-head{padding-bottom:8px;}
.contact .contact-relocation{margin-top:22px;}
/* no card: the locations sit straight on the page's dotted background */
.contact-card{background:none; border-radius:0; padding:0; box-shadow:none;}
.contact-card__place{
  font-family:var(--font-heading); font-size:13px; font-weight:700;
  letter-spacing:.04em; text-transform:uppercase; color:var(--mint-dark);
  margin-bottom:4px;
}
.contact-card h3{font-size:20px; margin-top:0;}
.contact-card__address{margin-top:6px; margin-bottom:16px; color:var(--navy-soft);}
.contact-card p{margin-top:6px; margin-bottom:16px;}
.contact-card img{margin-bottom:10px;}
/* the directions link now sits above the map, so it carries the gap */
.contact-card .link-arrow{margin-top:10px; margin-bottom:20px;}
.contact-map{
  position:relative; isolation:isolate;
  overflow:hidden;
  aspect-ratio:740/627;
  background:none;
}
.contact-map--ready .contact-map__plain{
  opacity:0; visibility:hidden;
  transition:opacity .4s var(--ease), visibility 0s linear .4s;
}
.contact-map__plain{
  position:absolute; inset:0; z-index:1;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:6px; padding:20px; text-align:center;
}
.contact-map__plain p{margin:0; font-size:14.5px; color:var(--navy-soft);}
.contact-map__plain a{
  font-family:var(--font-heading); font-weight:700; font-size:14px;
  color:var(--mint-dark); text-decoration:underline; text-underline-offset:3px;
}
.contact-map .contact-map__canvas.maplibregl-map,
.contact-map .contact-map__canvas{
  position:absolute !important; inset:0; width:100%; height:100%;
  z-index:2; opacity:0; transition:opacity .5s var(--ease);
}
.contact-map.contact-map--ready .contact-map__canvas{opacity:1;}
.contact-map__img{
  display:block; width:100%; height:100%;
  object-fit:contain; object-position:center;
  border-radius:0; background:transparent;
}
.map-pin{display:block; line-height:0;}
.map-pin img{
  display:block; width:40px; height:40px;
  filter:drop-shadow(0 3px 7px rgba(37,38,59,.32));
}
.contact-map .maplibregl-ctrl-group{
  border-radius:var(--radius-sm); overflow:hidden;
  box-shadow:0 4px 14px rgba(37,38,59,.14); border:0;
}
.contact-map .maplibregl-ctrl-attrib{display:none!important;}
.contact-map .maplibregl-ctrl-bottom-right{display:none!important;}
@media(prefers-reduced-motion:reduce){
  .contact-map__canvas{transition:none;}
}

/* -------- legal / policy pages -------- */
.legal{padding:0 0 90px;}
.legal__card{
  background:var(--white); border-radius:var(--radius); box-shadow:var(--shadow);
  padding:clamp(26px,4vw,52px); max-width:900px; margin:0 auto;
}
.legal__intro{font-size:16.5px; color:var(--navy-soft); line-height:1.8;}
.legal__section{margin-top:40px;}
.legal__section h2{
  display:flex; align-items:baseline; gap:12px;
  font-family:var(--font-heading); font-size:clamp(19px,2.3vw,23px); color:var(--navy);
}
.legal__num{color:var(--mint); font-size:15px; font-weight:700; flex-shrink:0;}
.legal__section p{margin-top:12px; font-size:15.5px; color:var(--navy-soft); line-height:1.75;}
.legal__list{list-style:none; margin-top:16px; display:flex; flex-direction:column; gap:12px;}
.legal__list li{
  position:relative; padding-left:26px;
  font-size:15.5px; color:var(--navy-soft); line-height:1.7;
}
.legal__list li::before{
  content:''; position:absolute; left:0; top:.62em;
  width:8px; height:8px; border-radius:50%; background:var(--mint);
}
.legal__list strong{color:var(--navy);}
.legal__contact{
  margin-top:18px; padding:clamp(20px,3vw,28px);
  border-radius:var(--radius-sm); background:var(--cream);
  border:1px solid rgba(20,173,225,.18);
}
.legal__contact-name{font-family:var(--font-heading); font-weight:700; font-size:17px; color:var(--navy);}
.legal__contact p{margin-top:8px; font-size:15.5px;}
.legal__contact a{color:var(--mint-dark); font-weight:700;}
.legal__contact a:hover{color:var(--mint);}

/* -------- shared card lift + mint glow on hover -------- */
.trust-item,
.why-card,
.lava-service-card,
.finance-plan-card,
.payment-card{
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.trust-item:hover,
.why-card:hover,
.lava-service-card:hover,
.finance-plan-card:hover,
.payment-card:hover{
  transform:translateY(-6px);
  box-shadow:
    0 18px 38px rgba(37,38,59,.12),
    0 0 0 1px rgba(20,173,225,.30),
    0 0 30px rgba(20,173,225,.32);
}
.trust-item .trust-icon{transition:transform .35s var(--ease), box-shadow .35s var(--ease);}
.trust-item:hover .trust-icon{
  transform:scale(1.08);
  box-shadow:0 0 18px rgba(20,173,225,.55);
}
@media(prefers-reduced-motion:reduce){
  .trust-item:hover,
  .why-card:hover,
  .lava-service-card:hover,
  .finance-plan-card:hover,
  .contact-card:hover,
  .payment-card:hover,
  .trust-item:hover .trust-icon{transform:none;}
}

/* -------- footer -------- */
.footer-logo{display:inline-block;}
.footer-logo__img{
  height:3.5rem; width:auto; max-width:14rem;
  border-radius:0; object-fit:contain; display:block;
}

.site-footer{background:transparent; color:var(--navy-soft); padding:70px 0 26px; border-top:1px solid rgba(31,41,55,0.1); position:relative; z-index:2; overflow:hidden; isolation:isolate;}
.site-footer::before{
  content:""; position:absolute; top:-45%; bottom:0; right:2%; z-index:-1;
  width:auto; max-width:55%; aspect-ratio:941/1672;
  background:url("assets/Hero.png") no-repeat right bottom / contain;
  opacity:.18; pointer-events:none;
  -webkit-mask-image:linear-gradient(to left, #000 40%, transparent 100%), linear-gradient(to top, #000 50%, transparent 100%);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(to left, #000 40%, transparent 100%), linear-gradient(to top, #000 50%, transparent 100%);
  mask-composite:intersect;
}
/* on mobile the columns stack, so the image sits beside the "Working Hours" list instead */
@media(max-width:899px){
  .site-footer::before{display:none;}
  .footer-grid > .footer-col:nth-child(4){position:relative; isolation:isolate;}
  .footer-grid > .footer-col:nth-child(4)::before{
    content:""; position:absolute; top:50%; right:0; z-index:-1;
    height:130%; aspect-ratio:941/1672; translate:0 -50%;
    background:url("assets/Hero.png") no-repeat center / contain;
    opacity:.22; pointer-events:none;
    -webkit-mask-image:linear-gradient(to left, #000 40%, transparent 100%);
    mask-image:linear-gradient(to left, #000 40%, transparent 100%);
  }
}
.footer-grid{display:grid; grid-template-columns:1fr; gap:36px; padding-bottom:40px; border-bottom:1px solid rgba(31,41,55,.12);}
@media(min-width:900px){ .footer-grid{grid-template-columns:1.4fr repeat(3,1fr);} }
.footer-col h4{color:var(--navy); font-size:15px; margin-bottom:14px;}
.footer-col a, .footer-col p{display:block; font-size:14.5px; margin-bottom:8px; color:var(--navy-soft); transition:color .3s ease;}
.footer-col a:hover{color:var(--coral);}
.footer-brand p{margin-top:14px; max-width:320px;}
.footer-bottom{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:12px; padding-top:22px; font-size:13.5px;}
.footer-bottom a:hover{color:var(--coral);}
