*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#050505;color:#fff}a{color:inherit}.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:200}.progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#fff,#77ad7d)}header{height:86px;background:rgba(5,5,5,.74);backdrop-filter:blur(20px);position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 42px;border-bottom:1px solid rgba(255,255,255,.12)}.brand img{width:150px;max-height:68px;object-fit:contain;display:block}nav{display:flex;gap:24px}nav a{text-decoration:none;color:#d6d6d6;font-size:14px;font-weight:850}.call{background:#fff;color:#050505;text-decoration:none;border-radius:999px;padding:14px 24px;font-weight:950}main{height:100vh;overflow-y:auto;scroll-behavior:smooth;scroll-snap-type:y mandatory}.scene{min-height:100vh;scroll-snap-align:start;scroll-snap-stop:always;position:relative;overflow:hidden;padding:118px 42px 70px}.hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:40px;align-items:center;background:radial-gradient(circle at 86% 14%,rgba(61,130,76,.38),transparent 22%),radial-gradient(circle at 13% 82%,rgba(8,43,85,.85),transparent 28%),linear-gradient(135deg,#030303 0%,#101010 45%,#07192f 100%)}.scene-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(circle at 50% 50%,#000,transparent 75%);opacity:.5}.copy,.floating-devices,.scene-title,.cards,.left-copy,.ba,.examples-only-grid,.timeline,.price-grid,.faq-wrap{opacity:0;transform:translateY(70px) scale(.96);filter:blur(8px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1),filter .9s ease}.scene.active .copy,.scene.active .floating-devices,.scene.active .scene-title,.scene.active .cards,.scene.active .left-copy,.scene.active .ba,.scene.active .examples-only-grid,.scene.active .timeline,.scene.active .price-grid,.scene.active .faq-wrap{opacity:1;transform:none;filter:blur(0)}.eyebrow{display:inline-block;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.08);border-radius:999px;padding:12px 16px;text-transform:uppercase;font-size:13px;letter-spacing:.1em;font-weight:950}h1{font-size:clamp(52px,6.4vw,96px);line-height:.9;letter-spacing:-.075em;margin:28px 0 22px}.lead{font-size:21px;line-height:1.55;color:#d7dde8;max-width:680px;font-weight:650}.btn{display:inline-block;border-radius:999px;background:#fff;color:#050505;text-decoration:none;font-weight:950;padding:17px 24px;margin-right:12px}.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.28)}.floating-devices{position:relative;min-height:570px;perspective:1200px}.laptop{position:absolute;right:2%;top:50%;transform:translateY(-50%) rotateY(-8deg) rotateX(3deg);width:min(720px,92%);background:#1d222a;border:1px solid rgba(255,255,255,.22);border-radius:28px;padding:15px;box-shadow:0 45px 120px rgba(0,0,0,.65)}.browser{height:36px;background:#101318;border-radius:16px 16px 0 0;display:flex;align-items:center;gap:8px;padding:0 14px;color:#7d8796;font-size:12px;font-weight:800}.browser i{width:10px;height:10px;border-radius:50%;background:#657081}.browser span{margin-left:12px}.screen{background:#f8fafc;color:#0b1220;border-radius:0 0 18px 18px;overflow:hidden;padding:24px;min-height:355px}.mini-top{display:flex;align-items:center;gap:18px;font-size:12px}.mini-top b{font-size:20px;color:#082b55;margin-right:auto}.mini-top button,.mini-hero button,.phone button{background:#2f6f38;color:#fff;border:0;border-radius:7px;padding:10px 14px;font-weight:900}.mini-hero{display:grid;grid-template-columns:1fr 220px;gap:22px;align-items:center;margin-top:24px}.mini-hero h3{font-size:42px;line-height:1;margin:0;color:#082b55;letter-spacing:-.05em}.mini-hero p{color:#334155}.portrait{height:190px;border-radius:24px;background:linear-gradient(135deg,#e5efe7,#f6efe7);display:flex;align-items:end;justify-content:center;gap:10px;padding:22px}.portrait i{width:48px;border-radius:30px 30px 8px 8px;background:#9ab49e;height:110px}.portrait i:nth-child(2){height:140px;background:#cda28d}.portrait i:nth-child(3){height:125px;background:#7496b2}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px}.tiles span{border:1px solid #e2e8f0;border-radius:14px;padding:16px;font-weight:900;color:#082b55;background:#fff}.phone{position:absolute;right:0;bottom:20px;width:178px;background:#141820;border:1px solid rgba(255,255,255,.25);border-radius:32px;padding:11px;box-shadow:0 30px 80px rgba(0,0,0,.55);z-index:4}.notch{width:58px;height:7px;background:#050505;border-radius:99px;margin:0 auto 8px}.phone-inner{background:#fff;color:#082b55;border-radius:23px;min-height:310px;padding:14px;font-size:12px}.phone-inner div{height:120px;border-radius:16px;background:linear-gradient(135deg,#e8f0e8,#e9d2c5);margin:12px 0}.phone h4{font-size:22px;line-height:1}.services{background:#061f3e}.transform,.faq{background:#f5f3ee;color:#07172a}.examples{background:#fff;color:#07172a}.process{background:#0a0a0a}.pricing{background:#082b55}.scene-title{max-width:960px;margin:0 auto 38px;text-align:center}.scene-title p,.left-copy p{color:#77ad7d;font-weight:950;letter-spacing:.32em;text-transform:uppercase;font-size:13px}.scene-title h2,.left-copy h2{font-size:clamp(40px,5vw,76px);line-height:.95;letter-spacing:-.06em;margin:12px 0}.cards{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}.cards article,.timeline article,.price-grid article{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.07);border-radius:28px;padding:24px}.cards b,.timeline b,.price-grid b{color:#77ad7d;font-size:28px}.cards p,.timeline p,.price-grid p{line-height:1.55}.transform{display:grid;grid-template-columns:.72fr 1.28fr;gap:40px;align-items:center}.left-copy span{font-size:19px;line-height:1.55;color:#4b5563}.ba{position:relative;overflow:hidden;border-radius:30px;border:1px solid #d4d4d4;box-shadow:0 35px 90px rgba(0,0,0,.18);background:#fff}.ba img{display:block;width:100%;height:auto;user-select:none;pointer-events:none}.after{position:absolute;inset:0;width:50%;overflow:hidden;border-right:2px solid rgba(15,23,42,.28)}.after img{height:100%;width:auto;max-width:none}.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:10}.handle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:8;width:62px;height:62px;border-radius:999px;background:#fff;border:1px solid rgba(0,0,0,.18);box-shadow:0 10px 30px rgba(0,0,0,.22);display:grid;place-items:center;color:#082b55;font-weight:950;font-size:24px;pointer-events:none}.gallery-layout{
  width:min(1180px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(6,1fr);
  grid-template-rows:auto auto;
  gap:18px;
  padding:18px;
  border-radius:34px;
  background:#f4efe7;
  box-shadow:0 34px 95px rgba(0,0,0,.14);
}
.gallery-layout img{
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:18px;
  box-shadow:0 14px 34px rgba(0,0,0,.16);
  background:#fff;
}
.gallery-large{
  aspect-ratio:16/9;
}
.gallery-small{
  aspect-ratio:4/3;
}
.top-left{grid-column:1 / span 3;grid-row:1}
.top-right{grid-column:4 / span 3;grid-row:1}
.bottom-one{grid-column:1 / span 2;grid-row:2}
.bottom-two{grid-column:3 / span 2;grid-row:2}
.bottom-three{grid-column:5 / span 2;grid-row:2}
@media(max-width:760px){
  .gallery-layout{grid-template-columns:1fr;gap:14px;padding:12px}
  .top-left,.top-right,.bottom-one,.bottom-two,.bottom-three{grid-column:1;grid-row:auto}
}.timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}.timeline b{display:grid;place-items:center;width:42px;height:42px;background:#2f6f38;color:#fff;border-radius:999px}.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.price-grid .featured{background:#fff;color:#082b55;transform:translateY(-14px)!important}.faq{display:grid;place-items:center;text-align:center}.faq-wrap{width:min(920px,100%)}.faq img{width:220px}.faq h2{font-size:clamp(42px,5vw,74px);line-height:.95;letter-spacing:-.055em}.faq details{text-align:left;border:1px solid #e5e7eb;border-radius:18px;padding:20px;margin:14px 0;background:#fff}.faq summary{font-weight:950;cursor:pointer}.scroll-hint{position:fixed;right:26px;bottom:24px;z-index:120;color:#fff;font-weight:900;font-size:12px;letter-spacing:.2em;text-transform:uppercase;opacity:.55;writing-mode:vertical-rl}@media(max-width:1100px){nav{display:none}.hero,.transform{grid-template-columns:1fr}.cards,.timeline{grid-template-columns:1fr 1fr}.price-grid{grid-template-columns:1fr}.floating-devices{min-height:480px}}@media(max-width:760px){html,body{overflow:auto}main{height:auto;scroll-snap-type:none}.scene{min-height:auto;scroll-snap-align:none;padding:112px 22px 70px}header{padding:0 18px}.brand img{width:126px;max-height:60px}.call{padding:12px 15px}.cards,.timeline{grid-template-columns:1fr}h1{font-size:50px}.laptop{right:auto;left:0;width:100%;transform:translateY(-50%)}.mini-hero{grid-template-columns:1fr}.portrait{display:none}.phone{width:150px}}
/* Fixed gallery section: no cropping, no overlap */
.gallery-layout { display:none !important; }
.examples-only-grid{
  width:min(1180px,100%);
  margin:0 auto;
  padding:0;
  border-radius:30px;
  overflow:hidden;
  box-shadow:0 34px 95px rgba(0,0,0,.14);
  background:#f6f1e9;
}
.examples-only-grid img{
  display:block;
  width:100%;
  height:auto;
  border-radius:30px;
}
.examples{
  padding-top:110px;
}
.examples .scene-title{
  margin-bottom:26px;
}
@media(max-width:760px){
  .examples-only-grid{border-radius:18px}
  .examples-only-grid img{border-radius:18px}
}

/* FAQ/final section logo fix */
.faq img{
  width:220px;
  max-height:220px;
  object-fit:contain;
  opacity:1 !important;
  filter:none !important;
  background:transparent !important;
}

/* Next-generation Pine Industries hero */
.nextgen-hero{
  display:block !important;
  padding:0 !important;
  background:#020807 !important;
  position:relative;
  min-height:100vh;
  overflow:hidden;
}
.nextgen-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  opacity:.78;
  transform:scale(1.02);
}
.nextgen-vignette{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.54) 34%,rgba(0,0,0,.20) 68%,rgba(0,0,0,.42) 100%),
    linear-gradient(180deg,rgba(0,0,0,.30) 0%,rgba(0,0,0,.06) 48%,rgba(0,0,0,.82) 100%);
  z-index:1;
}
.nextgen-copy{
  position:relative;
  z-index:3;
  width:min(670px,92vw);
  padding:150px 0 0 62px;
  opacity:0;
  transform:translateY(70px) scale(.96);
  filter:blur(8px);
  transition:opacity .9s ease,transform .9s cubic-bezier(.2,.8,.2,1),filter .9s ease;
}
.scene.active .nextgen-copy{opacity:1;transform:none;filter:blur(0)}
.nextgen-kicker{
  color:#23e779;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:15px;
  font-weight:950;
  display:flex;
  align-items:center;
  gap:14px;
  margin:0 0 22px;
}
.nextgen-kicker:after{
  content:"";
  width:34px;
  height:2px;
  background:#23e779;
  display:inline-block;
}
.nextgen-copy h1{
  font-size:clamp(50px,5.4vw,82px);
  line-height:1.02;
  letter-spacing:-.065em;
  margin:0 0 22px;
  color:#fff;
  text-shadow:0 18px 50px rgba(0,0,0,.65);
}
.nextgen-copy h1 span{
  display:block;
  color:#24df73;
  text-shadow:0 0 34px rgba(35,231,121,.38);
}
.nextgen-copy .lead{
  color:#f2fff7;
  font-size:20px;
  line-height:1.5;
  max-width:590px;
}
.nextgen-copy .buttons{margin-top:28px;display:flex;gap:14px;align-items:center}
.nextgen-copy .btn.neon{
  background:linear-gradient(135deg,#24df73,#0faf5f);
  color:#06120b;
  box-shadow:0 0 28px rgba(35,231,121,.34);
}
.nextgen-copy .btn.play{
  border:0;
  background:transparent;
  color:#fff;
  padding-left:0;
}
.hero-stats{
  display:flex;
  gap:34px;
  margin-top:44px;
}
.hero-stats div{
  border-right:1px solid rgba(255,255,255,.22);
  padding-right:28px;
}
.hero-stats div:last-child{border-right:0}
.hero-stats strong{
  display:block;
  color:#23e779;
  font-size:30px;
  line-height:1;
  text-shadow:0 0 18px rgba(35,231,121,.34);
}
.hero-stats span{
  color:#d8efe2;
  font-size:12px;
}
.feature-strip{
  position:absolute;
  z-index:4;
  left:6%;
  right:6%;
  bottom:42px;
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:0;
  border:1px solid rgba(35,231,121,.22);
  border-radius:22px;
  background:rgba(2,10,9,.56);
  backdrop-filter:blur(18px);
  box-shadow:0 0 55px rgba(35,231,121,.15);
  overflow:hidden;
  opacity:0;
  transform:translateY(40px);
  transition:opacity .9s ease .25s,transform .9s ease .25s;
}
.scene.active .feature-strip{opacity:1;transform:none}
.feature-strip article{
  border:0 !important;
  border-right:1px solid rgba(255,255,255,.12) !important;
  border-radius:0 !important;
  background:transparent !important;
  padding:22px 28px !important;
  display:grid;
  grid-template-columns:44px 1fr;
  column-gap:16px;
  align-items:center;
}
.feature-strip article:last-child{border-right:0 !important}
.feature-strip b{
  grid-row:1 / span 2;
  color:#23e779 !important;
  font-size:34px !important;
  text-shadow:0 0 22px rgba(35,231,121,.45);
}
.feature-strip h3{
  margin:0 0 4px;
  color:#5dff9c;
  font-size:16px;
}
.feature-strip p{
  margin:0;
  color:#d9eee4;
  font-size:13px;
  line-height:1.35;
}
@media(max-width:1100px){
  .nextgen-copy{padding-left:34px;padding-top:130px}
  .feature-strip{grid-template-columns:1fr 1fr;position:relative;left:auto;right:auto;bottom:auto;margin:30px 24px 40px}
}
@media(max-width:760px){
  .nextgen-hero{min-height:auto !important;padding-bottom:30px !important}
  .nextgen-bg{opacity:.45}
  .nextgen-copy{padding:125px 22px 20px;width:100%}
  .nextgen-copy h1{font-size:48px}
  .hero-stats{gap:16px;flex-wrap:wrap}
  .feature-strip{grid-template-columns:1fr;margin:24px 18px}
  .feature-strip article{border-right:0 !important;border-bottom:1px solid rgba(255,255,255,.12) !important}
}

/* Cleaned next-gen hero: remove duplicate background text and hero stats */
.nextgen-bg{
  width:68% !important;
  left:auto !important;
  right:0 !important;
  object-fit:cover !important;
  object-position:68% center !important;
  opacity:.82 !important;
}
.nextgen-vignette{
  background:
    linear-gradient(90deg,
      rgba(0,0,0,1) 0%,
      rgba(0,0,0,.98) 28%,
      rgba(0,0,0,.78) 43%,
      rgba(0,0,0,.18) 66%,
      rgba(0,0,0,.42) 100%),
    linear-gradient(180deg,rgba(0,0,0,.22) 0%,rgba(0,0,0,.05) 50%,rgba(0,0,0,.82) 100%) !important;
}
.nextgen-hero:before{
  content:"";
  position:absolute;
  z-index:2;
  left:0;
  top:0;
  bottom:0;
  width:43%;
  background:linear-gradient(90deg,#020807 0%,#020807 74%,rgba(2,8,7,0) 100%);
  pointer-events:none;
}
.hero-stats{display:none !important;}
.nextgen-copy{
  padding-top:160px !important;
  width:min(690px,92vw) !important;
}
.nextgen-copy .lead{
  max-width:620px !important;
}
.feature-strip{
  bottom:38px !important;
}
@media(max-width:1100px){
  .nextgen-bg{
    width:100% !important;
    opacity:.40 !important;
  }
  .nextgen-hero:before{
    width:100%;
    background:rgba(0,0,0,.70);
  }
}

/* Centered pricing section fix */
.centered-pricing{
  width:min(1320px,94%);
  margin:44px auto 0;
  align-items:stretch;
}
.centered-pricing article{
  min-height:360px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  text-align:left;
  padding:42px 40px !important;
  border-radius:32px !important;
  transition:transform .35s ease, box-shadow .35s ease;
}
.centered-pricing article:hover{
  transform:translateY(-6px);
  box-shadow:0 24px 60px rgba(0,0,0,.24);
}
.centered-pricing h3{
  margin:0 0 18px;
  font-size:20px;
  color:inherit;
}
.centered-pricing b{
  font-size:48px !important;
  line-height:1;
  margin-bottom:16px;
  display:block;
}
.price-tag{
  font-size:58px;
  font-weight:950;
  letter-spacing:-.05em;
  margin-bottom:20px;
  color:#ffffff;
  line-height:1;
}
.centered-pricing article p{
  font-size:18px;
  line-height:1.55;
  max-width:420px;
  margin:0;
}
.centered-pricing .featured{
  transform:translateY(-12px);
}
.centered-pricing .featured .price-tag{
  color:#082b55;
}
.centered-pricing .featured b{
  color:#6ca66f !important;
}
@media(max-width:1100px){
  .centered-pricing{
    grid-template-columns:1fr;
    max-width:760px;
  }
  .centered-pricing .featured{
    transform:none;
  }
}

/* Mobile display fix */
@media (max-width: 900px), (pointer: coarse) {
  html,
  body {
    height: auto !important;
    min-height: 100% !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    position: static !important;
  }

  main {
    height: auto !important;
    min-height: 100vh !important;
    overflow: visible !important;
    scroll-snap-type: none !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .scene {
    min-height: auto !important;
    height: auto !important;
    scroll-snap-align: none !important;
    scroll-snap-stop: normal !important;
    overflow: visible !important;
    padding: 112px 22px 64px !important;
  }

  header {
    height: 76px !important;
    padding: 0 16px !important;
  }

  .brand img {
    width: 128px !important;
    max-height: 58px !important;
    object-fit: contain !important;
  }

  .call {
    padding: 10px 14px !important;
    font-size: 13px !important;
  }

  .nextgen-hero {
    display: block !important;
    min-height: 100svh !important;
    padding: 0 0 26px !important;
    overflow: hidden !important;
  }

  .nextgen-bg {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: 64% center !important;
    opacity: .34 !important;
  }

  .nextgen-hero:before {
    width: 100% !important;
    background: linear-gradient(90deg, rgba(0,0,0,.92), rgba(0,0,0,.64)) !important;
  }

  .nextgen-vignette {
    background:
      linear-gradient(180deg, rgba(0,0,0,.28), rgba(0,0,0,.72)) !important;
  }

  .nextgen-copy {
    position: relative !important;
    width: 100% !important;
    padding: 112px 22px 18px !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }

  .nextgen-copy h1 {
    font-size: clamp(42px, 12vw, 58px) !important;
    line-height: .98 !important;
    letter-spacing: -.06em !important;
  }

  .nextgen-copy .lead {
    font-size: 17px !important;
    line-height: 1.5 !important;
    max-width: 100% !important;
  }

  .nextgen-copy .buttons {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 10px !important;
  }

  .feature-strip {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    grid-template-columns: 1fr !important;
    margin: 18px !important;
    opacity: 1 !important;
    transform: none !important;
  }

  .feature-strip article {
    grid-template-columns: 38px 1fr !important;
    padding: 16px !important;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.12) !important;
  }

  .copy,
  .floating-devices,
  .scene-title,
  .cards,
  .left-copy,
  .ba,
  .examples-only-grid,
  .timeline,
  .price-grid,
  .faq-wrap,
  .nextgen-copy,
  .feature-strip {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }

  .services,
  .transform,
  .examples,
  .process,
  .pricing,
  .faq {
    display: block !important;
  }

  .cards,
  .timeline,
  .price-grid,
  .centered-pricing {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
    margin: 22px auto 0 !important;
  }

  .centered-pricing article {
    min-height: auto !important;
    padding: 28px 24px !important;
  }

  .centered-pricing .featured {
    transform: none !important;
  }

  .price-tag {
    font-size: 42px !important;
  }

  .transform {
    grid-template-columns: 1fr !important;
  }

  .ba {
    width: 100% !important;
    border-radius: 18px !important;
  }

  .examples-only-grid {
    width: 100% !important;
    border-radius: 18px !important;
  }

  .examples-only-grid img {
    border-radius: 18px !important;
  }

  .faq img {
    width: 170px !important;
  }

  .faq h2 {
    font-size: 40px !important;
  }

  .scroll-hint,
  .progress {
    display: none !important;
  }
}


/* Mobile polish pass */
.mobile-menu-toggle{display:none;background:rgba(255,255,255,.06);color:#fff;border:1px solid rgba(255,255,255,.25);width:42px;height:42px;border-radius:999px;font-size:20px;font-weight:900}

@media (max-width:900px),(pointer:coarse){
  body{background:#020807!important}
  header{display:grid!important;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;background:rgba(2,8,7,.92)!important;backdrop-filter:blur(18px)}
  header nav{position:fixed;top:76px;left:12px;right:12px;display:none!important;grid-template-columns:1fr 1fr;gap:8px;padding:14px;border:1px solid rgba(35,231,121,.22);border-radius:18px;background:rgba(2,8,7,.96);box-shadow:0 24px 70px rgba(0,0,0,.45);z-index:150}
  body.menu-open header nav{display:grid!important}
  header nav a{display:block;padding:12px;border-radius:12px;background:rgba(255,255,255,.06);color:#fff!important;text-align:center;font-size:13px}
  .mobile-menu-toggle{display:grid!important;place-items:center}
  .nextgen-hero{min-height:auto!important;padding-bottom:0!important;background:radial-gradient(circle at 80% 16%,rgba(35,231,121,.20),transparent 30%),linear-gradient(180deg,#020807 0%,#04120d 55%,#020807 100%)!important}
  .nextgen-bg{position:relative!important;display:block!important;width:100%!important;height:auto!important;max-height:310px!important;object-fit:cover!important;object-position:center top!important;opacity:.92!important;margin-top:76px!important;border-bottom:1px solid rgba(35,231,121,.18);mask-image:linear-gradient(180deg,#000 0%,#000 68%,transparent 100%);-webkit-mask-image:linear-gradient(180deg,#000 0%,#000 68%,transparent 100%)}
  .nextgen-hero:before,.nextgen-vignette{display:none!important}
  .nextgen-copy{padding:18px 22px 10px!important;margin-top:-42px;z-index:5}
  .nextgen-kicker{font-size:11px!important;letter-spacing:.12em!important;margin-bottom:12px!important;color:#39f48b!important}
  .nextgen-kicker:after{width:22px!important}
  .nextgen-copy h1{font-size:42px!important;line-height:.96!important;margin-bottom:14px!important;max-width:94vw}
  .nextgen-copy .lead{font-size:16px!important;line-height:1.45!important;color:#e8fff0!important}
  .nextgen-copy .buttons{flex-direction:row!important;flex-wrap:wrap!important;gap:10px!important;margin-top:18px!important}
  .nextgen-copy .btn{margin:0!important;padding:13px 16px!important;font-size:14px!important}
  .feature-strip{margin:18px 14px 28px!important;border-radius:18px!important;background:rgba(2,10,9,.82)!important}
  .feature-strip article{grid-template-columns:34px 1fr!important;gap:12px!important;padding:16px!important;border-right:0!important;border-bottom:1px solid rgba(255,255,255,.12)!important}
  .feature-strip b{font-size:26px!important}.feature-strip h3{font-size:15px!important}.feature-strip p{font-size:12px!important}
  .scene-title{margin-bottom:22px!important}.scene-title p,.left-copy p{font-size:11px!important;letter-spacing:.22em!important}.scene-title h2,.left-copy h2{font-size:38px!important;line-height:1!important}
  .services article,.timeline article,.price-grid article{border-radius:22px!important;padding:22px!important}
  .transform{padding-top:86px!important}.left-copy{margin-bottom:20px!important}.ba{box-shadow:0 18px 50px rgba(0,0,0,.22)!important}.handle{width:48px!important;height:48px!important;font-size:18px!important}
  .examples{background:#f7f2ea!important}.examples-only-grid{box-shadow:0 20px 55px rgba(0,0,0,.18)!important}
  .centered-pricing b{font-size:34px!important}.price-tag{font-size:46px!important;margin-bottom:14px!important}
  .faq{background:#f6f3ed!important;text-align:center!important}.faq-wrap{width:100%!important}.faq details{padding:16px!important;border-radius:16px!important}.faq summary{font-size:15px!important}
}
@media (max-width:430px){
  .call{display:none!important}
  header{grid-template-columns:auto 1fr auto}
  .brand img{width:138px!important}
  .nextgen-bg{max-height:270px!important}
  .nextgen-copy h1{font-size:38px!important}
  .nextgen-copy .buttons{flex-direction:column!important;align-items:stretch!important}
  .nextgen-copy .btn{text-align:center;width:100%}
}

/* Clean examples section: no embedded banner/header, only five website examples */
.fixed-gallery-wrap,
.gallery-layout {
  display:none !important;
}

.examples-only-grid{
  width:min(1180px,94vw);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:18px;
  padding:18px;
  border-radius:34px;
  background:#f4efe7;
  box-shadow:0 34px 95px rgba(0,0,0,.14);
}

.examples-only-grid img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  border-radius:18px;
  box-shadow:0 14px 34px rgba(0,0,0,.16);
  background:#fff;
}

.examples-only-grid .wide-card{
  grid-column:span 3;
  aspect-ratio:16/9;
}

.examples-only-grid img:not(.wide-card){
  grid-column:span 2;
  aspect-ratio:4/3;
}

.examples .scene-title{
  margin-bottom:24px;
}

@media(max-width:900px),(pointer:coarse){
  .examples-only-grid{
    width:100% !important;
    grid-template-columns:1fr !important;
    gap:14px !important;
    padding:12px !important;
    border-radius:20px !important;
  }
  .examples-only-grid .wide-card,
  .examples-only-grid img:not(.wide-card){
    grid-column:1 !important;
    aspect-ratio:auto !important;
  }
  .examples-only-grid img{
    height:auto !important;
    border-radius:14px !important;
  }
}

/* Image quality pass: stronger rendering, no washed-out overlays */
.ba,
.ba img,
.ba .after,
.ba .after img,
.examples-only-grid img,
.fixed-gallery-wrap img,
.nextgen-bg {
  opacity: 1;
  filter: none;
}

.ba img,
.examples-only-grid img,
.fixed-gallery-wrap img {
  image-rendering: auto;
  backface-visibility: hidden;
  transform: translateZ(0);
}

.ba {
  background: #ffffff !important;
  box-shadow: 0 34px 90px rgba(0,0,0,.22) !important;
}

.ba:before,
.ba:after {
  content: none !important;
}

.after {
  background: transparent !important;
}

.examples-only-grid {
  background: #f5efe6 !important;
}

@media (max-width:900px),(pointer:coarse){
  .ba img,
  .examples-only-grid img {
    filter: saturate(1.08) contrast(1.05);
  }
}

/* Mobile hero revision: keep hero image, remove banner feel, fix hamburger placement */
@media (max-width:900px),(pointer:coarse){
  header{
    display:flex !important;
    justify-content:space-between !important;
    align-items:center !important;
    height:76px !important;
    padding:0 16px !important;
  }

  .brand{
    display:flex !important;
    align-items:center !important;
    min-width:0 !important;
  }

  .brand img{
    width:132px !important;
    max-height:56px !important;
    object-fit:contain !important;
    display:block !important;
  }

  .call{
    display:none !important;
  }

  .mobile-menu-toggle{
    display:grid !important;
    place-items:center !important;
    position:relative !important;
    margin-left:auto !important;
    flex:0 0 44px !important;
    width:44px !important;
    height:44px !important;
    border-radius:999px !important;
    background:rgba(0,0,0,.35) !important;
    border:1px solid rgba(35,231,121,.45) !important;
    color:#fff !important;
    z-index:250 !important;
  }

  header nav{
    top:82px !important;
    left:14px !important;
    right:14px !important;
  }

  .nextgen-hero{
    min-height:100svh !important;
    padding:0 !important;
    overflow:hidden !important;
    background:#020807 !important;
  }

  .nextgen-bg{
    position:absolute !important;
    inset:0 !important;
    width:100% !important;
    height:100% !important;
    max-height:none !important;
    margin-top:0 !important;
    object-fit:cover !important;
    object-position:62% center !important;
    opacity:.58 !important;
    border-bottom:0 !important;
    mask-image:none !important;
    -webkit-mask-image:none !important;
  }

  .nextgen-vignette{
    display:block !important;
    position:absolute !important;
    inset:0 !important;
    background:
      linear-gradient(90deg,rgba(0,0,0,.92) 0%,rgba(0,0,0,.74) 48%,rgba(0,0,0,.32) 100%),
      linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.12) 45%,rgba(0,0,0,.78) 100%) !important;
    z-index:1 !important;
  }

  .nextgen-hero:before{
    display:none !important;
  }

  .nextgen-copy{
    position:relative !important;
    z-index:3 !important;
    width:100% !important;
    padding:124px 22px 24px !important;
    margin-top:0 !important;
    opacity:1 !important;
    transform:none !important;
    filter:none !important;
  }

  .nextgen-copy h1{
    font-size:42px !important;
    line-height:.96 !important;
    max-width:95vw !important;
  }

  .nextgen-copy .lead{
    max-width:92vw !important;
  }

  /* Remove the bottom mobile feature banner/strip so the hero is cleaner */
  .nextgen-hero .feature-strip{
    display:none !important;
  }
}

@media (max-width:430px){
  .brand img{
    width:126px !important;
  }

  .mobile-menu-toggle{
    flex-basis:42px !important;
    width:42px !important;
    height:42px !important;
  }

  .nextgen-copy{
    padding-top:116px !important;
  }

  .nextgen-copy h1{
    font-size:38px !important;
  }
}

/* Mobile: show hero image clearly above the text */
@media (max-width:900px),(pointer:coarse){
  .nextgen-hero{
    display:flex !important;
    flex-direction:column !important;
    min-height:auto !important;
    height:auto !important;
    padding:76px 0 0 !important;
    overflow:visible !important;
    background:#020807 !important;
  }

  .nextgen-bg{
    position:relative !important;
    order:1 !important;
    display:block !important;
    width:100% !important;
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    aspect-ratio:16/10 !important;
    object-fit:cover !important;
    object-position:center center !important;
    opacity:1 !important;
    margin:0 !important;
    border-bottom:1px solid rgba(35,231,121,.24) !important;
    mask-image:none !important;
    -webkit-mask-image:none !important;
    z-index:1 !important;
  }

  .nextgen-vignette,
  .nextgen-hero:before{
    display:none !important;
  }

  .nextgen-copy{
    order:2 !important;
    position:relative !important;
    z-index:2 !important;
    padding:26px 22px 30px !important;
    margin:0 !important;
    background:
      radial-gradient(circle at 80% 0%,rgba(35,231,121,.18),transparent 32%),
      linear-gradient(180deg,#020807 0%,#06140f 100%) !important;
  }

  .nextgen-copy h1{
    margin-top:8px !important;
  }

  .nextgen-hero .feature-strip{
    display:none !important;
  }
}

@media (max-width:430px){
  .nextgen-bg{
    aspect-ratio:16/11 !important;
  }
}

/* Mobile-specific hero image with no embedded text */
@media (max-width:900px),(pointer:coarse){
  .nextgen-bg{
    content:url("assets/mobile-hero-clean.png") !important;
    width:100% !important;
    aspect-ratio:16/11 !important;
    object-fit:cover !important;
    object-position:center center !important;
    background:#020807 !important;
  }
}

@media (max-width:430px){
  .nextgen-bg{
    aspect-ratio:4/3 !important;
  }
}

/* Mobile header wordmark + shorter hero image */
.mobile-wordmark{
  display:none;
}

@media (max-width:900px),(pointer:coarse){
  header{
    height:72px !important;
    padding:0 18px !important;
    gap:12px !important;
  }

  .brand{
    text-decoration:none !important;
    min-width:0 !important;
    flex:1 1 auto !important;
  }

  .brand img{
    display:none !important;
  }

  .mobile-wordmark{
    display:block !important;
    color:#fff !important;
    font-weight:950 !important;
    letter-spacing:.32em !important;
    font-size:24px !important;
    line-height:1 !important;
    white-space:nowrap !important;
  }

  .mobile-wordmark small{
    display:block !important;
    font-size:11px !important;
    letter-spacing:.36em !important;
    margin-top:5px !important;
    color:#e8fff0 !important;
  }

  .mobile-menu-toggle{
    margin-left:10px !important;
    flex:0 0 42px !important;
    width:42px !important;
    height:42px !important;
  }

  .nextgen-hero{
    padding-top:72px !important;
  }

  .nextgen-bg{
    content:url("assets/mobile-hero-clean-cropped.png") !important;
    aspect-ratio:16/8.3 !important;
    max-height:250px !important;
    object-fit:cover !important;
    object-position:center center !important;
  }

  .nextgen-copy{
    padding-top:22px !important;
  }
}

@media (max-width:430px){
  .mobile-wordmark{
    font-size:21px !important;
    letter-spacing:.26em !important;
  }

  .mobile-wordmark small{
    font-size:10px !important;
    letter-spacing:.30em !important;
  }

  .nextgen-bg{
    aspect-ratio:16/9 !important;
    max-height:225px !important;
  }
}

/* Revert desktop logo, mobile-only wordmark banner */
.desktop-logo{
  display:block;
  width:150px;
  max-height:68px;
  object-fit:contain;
}

.mobile-wordmark-img{
  display:none;
}

@media (max-width:900px),(pointer:coarse){
  .desktop-logo{
    display:none !important;
  }

  .mobile-wordmark-img{
    display:block !important;
    width:178px !important;
    max-height:48px !important;
    object-fit:contain !important;
  }

  .brand{
    display:flex !important;
    align-items:center !important;
    flex:1 1 auto !important;
  }

  header{
    padding:0 16px !important;
  }

  .mobile-menu-toggle{
    margin-left:auto !important;
  }
}

@media (max-width:430px){
  .mobile-wordmark-img{
    width:164px !important;
    max-height:44px !important;
  }
}

/* Final logo/banner setup:
   Desktop = full Pine Industries logo with triangle, larger in banner
   Mobile = text-only Pine Industries wordmark
*/

.desktop-logo{
  display:block !important;
  width:235px !important;
  max-height:82px !important;
  object-fit:contain !important;
}

.mobile-wordmark-img{
  display:none !important;
}

header{
  height:88px !important;
  padding:0 28px !important;
}

.brand{
  display:flex !important;
  align-items:center !important;
  flex:0 0 auto !important;
}

@media (max-width:900px),(pointer:coarse){

  header{
    height:74px !important;
    padding:0 16px !important;
  }

  .desktop-logo{
    display:none !important;
  }

  .mobile-wordmark-img{
    display:block !important;
    width:178px !important;
    max-height:48px !important;
    object-fit:contain !important;
  }

  .brand{
    flex:1 1 auto !important;
  }

  .mobile-menu-toggle{
    margin-left:auto !important;
  }
}

@media (max-width:430px){

  .mobile-wordmark-img{
    width:164px !important;
    max-height:44px !important;
  }
}

/* Updated mobile-only wordmark sizing */
@media (max-width:900px),(pointer:coarse){

  .mobile-wordmark-img{
    display:block !important;
    width:190px !important;
    max-height:52px !important;
    object-fit:contain !important;
  }
}

@media (max-width:430px){

  .mobile-wordmark-img{
    width:172px !important;
    max-height:48px !important;
  }
}

/* Corrected mobile-only uploaded Pine Industries wordmark */
.mobile-wordmark-img {
  display: none !important;
}

@media (max-width:900px),(pointer:coarse) {
  .desktop-logo,
  .brand > img.desktop-logo {
    display: none !important;
    visibility: hidden !important;
  }

  .brand {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    flex: 1 1 auto !important;
    min-width: 0 !important;
    text-decoration: none !important;
  }

  .brand > img.mobile-wordmark-img {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 214px !important;
    max-width: calc(100vw - 86px) !important;
    max-height: 54px !important;
    height: auto !important;
    object-fit: contain !important;
    filter: none !important;
  }

  .mobile-wordmark,
  .mobile-wordmark small {
    display: none !important;
  }

  .mobile-menu-toggle {
    flex: 0 0 42px !important;
    width: 42px !important;
    height: 42px !important;
    margin-left: 10px !important;
  }
}

@media (max-width:430px) {
  .brand > img.mobile-wordmark-img {
    width: 194px !important;
    max-height: 50px !important;
  }
}

/* Mobile banner update: use TrueHorizontal logo only on mobile */
.desktop-logo{
  display:block !important;
}

.mobile-wordmark-img{
  display:none !important;
}

@media (max-width:900px),(pointer:coarse){
  .desktop-logo,
  .brand > img.desktop-logo{
    display:none !important;
    visibility:hidden !important;
  }

  .brand > img.mobile-wordmark-img{
    display:block !important;
    visibility:visible !important;
    opacity:1 !important;
    width:218px !important;
    max-width:calc(100vw - 86px) !important;
    max-height:52px !important;
    height:auto !important;
    object-fit:contain !important;
    filter:none !important;
  }

  .brand{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    flex:1 1 auto !important;
    min-width:0 !important;
    text-decoration:none !important;
  }
}

@media (max-width:430px){
  .brand > img.mobile-wordmark-img{
    width:198px !important;
    max-height:48px !important;
  }
}


@media (max-width:900px),(pointer:coarse){
  .top-contact-bar{
    top:74px;
    width:calc(100vw - 20px);
    max-width:none;
    border-radius:18px;
    padding:10px 12px;
    gap:10px;
    flex-direction:column;
  }

  .top-contact-bar a{
    font-size:13px;
  }

  .nextgen-hero{
    padding-top:128px !important;
  }
}


/* Footer contact section */
.site-footer{
  background:#020807;
  border-top:1px solid rgba(255,255,255,.08);
  padding:54px 28px 60px;
  color:#fff;
}

.footer-inner{
  width:min(1180px,94vw);
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:28px;
}

.footer-brand h3{
  margin:0 0 12px;
  font-size:34px;
  line-height:1;
  letter-spacing:-.04em;
}

.footer-brand p{
  margin:0;
  max-width:520px;
  font-size:16px;
  line-height:1.6;
  color:rgba(255,255,255,.72);
}

.footer-contact{
  display:flex;
  flex-direction:column;
  gap:14px;
  align-items:flex-end;
}

.footer-contact a{
  color:#ffffff;
  text-decoration:none;
  font-size:18px;
  font-weight:700;
}

.footer-contact a:hover{
  color:#39f48b;
}

@media (max-width:900px),(pointer:coarse){

  .footer-inner{
    flex-direction:column;
    align-items:flex-start;
    gap:26px;
  }

  .footer-brand h3{
    font-size:28px;
  }

  .footer-contact{
    align-items:flex-start;
  }

  .footer-contact a{
    font-size:16px;
    word-break:break-word;
  }
}

/* Bottom contact section visible inside full-page scroller */
.footer-scene{
  display:grid !important;
  place-items:center !important;
  background:
    radial-gradient(circle at 75% 20%, rgba(35,231,121,.18), transparent 32%),
    linear-gradient(135deg,#020807 0%,#06140f 100%) !important;
  color:#fff !important;
  padding:120px 42px 80px !important;
}

.footer-inner{
  width:min(1180px,94vw);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center;
}

.footer-brand h2{
  margin:0 0 18px;
  font-size:clamp(48px,6vw,92px);
  line-height:.9;
  letter-spacing:-.07em;
}

.footer-brand p{
  margin:0;
  max-width:560px;
  font-size:20px;
  line-height:1.55;
  color:rgba(255,255,255,.76);
}

.footer-contact{
  justify-self:end;
  width:min(520px,100%);
  padding:34px;
  border:1px solid rgba(35,231,121,.22);
  border-radius:28px;
  background:rgba(255,255,255,.06);
  box-shadow:0 30px 90px rgba(0,0,0,.28);
}

.footer-contact h3{
  margin:0 0 22px;
  font-size:34px;
}

.footer-contact p{
  margin:16px 0;
  font-size:22px;
  font-weight:800;
  color:#fff;
}

.footer-contact a{
  color:#39f48b !important;
  text-decoration:none;
  word-break:break-word;
}

.footer-contact a:hover{
  text-decoration:underline;
}

@media (max-width:900px),(pointer:coarse){
  .footer-scene{
    padding:86px 22px 54px !important;
  }

  .footer-inner{
    grid-template-columns:1fr;
    gap:28px;
  }

  .footer-contact{
    justify-self:stretch;
    padding:24px;
  }

  .footer-brand h2{
    font-size:44px;
  }

  .footer-brand p{
    font-size:16px;
  }

  .footer-contact h3{
    font-size:28px;
  }

  .footer-contact p{
    font-size:18px;
  }
}

/* Simplified final contact section */
.footer-scene{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  gap:34px !important;
  background:
    radial-gradient(circle at 50% 12%, rgba(35,231,121,.18), transparent 34%),
    linear-gradient(135deg,#020807 0%,#06140f 100%) !important;
  color:#fff !important;
  padding:110px 30px 80px !important;
}

.footer-inner,
.footer-brand,
.footer-contact{
  display:none !important;
}

.footer-logo-wrap img{
  width:min(460px,82vw) !important;
  max-height:360px !important;
  object-fit:contain !important;
  display:block !important;
  filter:drop-shadow(0 24px 60px rgba(0,0,0,.35));
}

.footer-simple-contact{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:18px !important;
  flex-wrap:wrap !important;
  font-size:24px !important;
  font-weight:850 !important;
}

.footer-simple-contact a{
  color:#39f48b !important;
  text-decoration:none !important;
}

.footer-simple-contact a:hover{
  text-decoration:underline !important;
}

.footer-simple-contact span{
  color:rgba(255,255,255,.45) !important;
}

@media (max-width:900px),(pointer:coarse){
  .footer-scene{
    padding:90px 22px 60px !important;
    gap:24px !important;
  }

  .footer-logo-wrap img{
    width:min(330px,82vw) !important;
  }

  .footer-simple-contact{
    flex-direction:column !important;
    gap:10px !important;
    font-size:18px !important;
  }

  .footer-simple-contact span{
    display:none !important;
  }
}

/* Final requested fixes */

/* Clean desktop hero image with no embedded duplicate text */
@media (min-width:901px){
  .nextgen-bg{
    content:url("assets/desktop-hero-clean-no-text.png") !important;
    width:100% !important;
    left:0 !important;
    right:0 !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:center center !important;
    opacity:1 !important;
  }

  .nextgen-vignette{
    background:
      linear-gradient(90deg,rgba(0,0,0,.60) 0%,rgba(0,0,0,.42) 36%,rgba(0,0,0,.12) 66%,rgba(0,0,0,.35) 100%),
      linear-gradient(180deg,rgba(0,0,0,.20) 0%,rgba(0,0,0,.06) 48%,rgba(0,0,0,.76) 100%) !important;
  }

  .nextgen-hero:before{
    display:none !important;
  }
}

/* Gallery: show full bottom cards, no side cropping */
.examples-only-grid{
  align-items:start !important;
  overflow:visible !important;
  padding:18px !important;
}

.examples-only-grid img{
  object-fit:contain !important;
  height:auto !important;
  max-height:none !important;
  background:#fff !important;
}

.examples-only-grid .wide-card{
  grid-column:span 3 !important;
  aspect-ratio:auto !important;
}

.examples-only-grid img:not(.wide-card){
  grid-column:span 2 !important;
  aspect-ratio:auto !important;
}

/* Pricing: equal height cards */
.centered-pricing{
  align-items:stretch !important;
}

.centered-pricing article,
.price-grid article{
  height:100% !important;
  min-height:360px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

.centered-pricing .featured,
.price-grid .featured{
  transform:none !important;
}

/* Footer: remove faint rectangle/border around logo */
.footer-logo-wrap,
.footer-logo-wrap img{
  border:0 !important;
  outline:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

.footer-logo-wrap img{
  filter:drop-shadow(0 24px 60px rgba(0,0,0,.35)) !important;
}

.footer-scene img{
  border:0 !important;
  outline:0 !important;
}

/* Absolute removal of footer logo border/box */
.footer-logo-wrap{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:0 !important;
  margin:0 auto !important;
  border:none !important;
  outline:none !important;
  background:none !important;
  background-color:transparent !important;
  box-shadow:none !important;
  isolation:isolate !important;
}

.footer-logo-wrap::before,
.footer-logo-wrap::after{
  content:none !important;
  display:none !important;
  border:none !important;
  outline:none !important;
  background:none !important;
  box-shadow:none !important;
}

.footer-logo-wrap img{
  display:block !important;
  border:none !important;
  outline:none !important;
  background:none !important;
  background-color:transparent !important;
  box-shadow:none !important;
  mix-blend-mode:normal !important;
}

/* Remove any generic image/card border inheritance in footer */
.footer-scene *,
.footer-scene img,
.footer-scene div{
  border-color:transparent !important;
}

/* Footer logo uses a cleaned PNG with the border pixels removed from the asset itself */
.footer-logo-wrap{
  background:transparent !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
}
.footer-logo-wrap img{
  width:min(390px,78vw) !important;
  height:auto !important;
  background:transparent !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  filter:none !important;
}


/* =====================================================
   iPad final clean layout
   MacBook look, real page-snap, no page bleed, no gallery crop.
   ===================================================== */

.ipad-gallery-single{display:none;}

html.ipad-final,
html.ipad-final body{
  margin:0 !important;
  height:100% !important;
  overflow:hidden !important;
  background:#020807 !important;
}

html.ipad-final header{
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  height:76px !important;
  padding:0 34px !important;
  z-index:9999 !important;
  background:#050505 !important;
  border-bottom:1px solid rgba(255,255,255,.10) !important;
  box-shadow:none !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
}

html.ipad-final .desktop-logo,
html.ipad-final .brand > img.desktop-logo{
  display:block !important;
  width:160px !important;
  max-height:58px !important;
  object-fit:contain !important;
}

html.ipad-final .mobile-wordmark-img,
html.ipad-final .mobile-menu-toggle,
html.ipad-final .mobile-wordmark{
  display:none !important;
}

html.ipad-final header nav{
  display:flex !important;
  position:static !important;
  gap:20px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

html.ipad-final header nav a{
  color:#d8d8d8 !important;
  background:transparent !important;
  font-size:14px !important;
  padding:0 !important;
}

html.ipad-final .call{
  display:inline-flex !important;
  background:#fff !important;
  color:#050505 !important;
  border-radius:999px !important;
  padding:12px 18px !important;
  font-size:14px !important;
}

html.ipad-final main{
  position:fixed !important;
  top:76px !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  height:calc(100dvh - 76px) !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  scroll-snap-type:y mandatory !important;
  scroll-behavior:smooth !important;
  -webkit-overflow-scrolling:touch !important;
  background:#020807 !important;
}

html.ipad-final main > .scene{
  height:calc(100dvh - 76px) !important;
  min-height:calc(100dvh - 76px) !important;
  max-height:calc(100dvh - 76px) !important;
  overflow:hidden !important;
  scroll-snap-align:start !important;
  scroll-snap-stop:always !important;
  padding:26px 38px !important;
}

/* Hero: full MacBook-style image with no harsh black seam */
html.ipad-final .nextgen-hero{
  position:relative !important;
  display:block !important;
  padding:0 !important;
  background:#020807 !important;
}

html.ipad-final .nextgen-bg{
  content:url("assets/desktop-hero-clean-no-text.png") !important;
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:center center !important;
  opacity:1 !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  margin:0 !important;
  z-index:0 !important;
}

html.ipad-final .nextgen-vignette{
  display:block !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  background:
    linear-gradient(90deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.56) 40%,rgba(0,0,0,.12) 75%,rgba(0,0,0,.32) 100%),
    linear-gradient(180deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,.07) 54%,rgba(0,0,0,.78) 100%) !important;
}

html.ipad-final .nextgen-hero:before{display:none!important;}

html.ipad-final .nextgen-copy{
  position:relative !important;
  z-index:3 !important;
  width:min(580px,48vw) !important;
  padding:48px 0 0 38px !important;
  margin:0 !important;
  text-align:left !important;
  opacity:1 !important;
  transform:none !important;
  filter:none !important;
}

html.ipad-final .nextgen-kicker{
  justify-content:flex-start !important;
  font-size:12px !important;
  margin:0 0 12px !important;
}

html.ipad-final .nextgen-copy h1{
  font-size:clamp(48px,5.2vw,72px) !important;
  line-height:.94 !important;
  margin:0 0 14px !important;
}

html.ipad-final .nextgen-copy .lead{
  font-size:17px !important;
  line-height:1.38 !important;
  max-width:560px !important;
  margin:0 !important;
}

html.ipad-final .nextgen-copy .buttons{
  display:flex !important;
  flex-direction:row !important;
  gap:12px !important;
  justify-content:flex-start !important;
  margin-top:20px !important;
}

html.ipad-final .nextgen-copy .btn{
  width:auto !important;
  padding:13px 18px !important;
  font-size:14px !important;
  margin:0 !important;
}

html.ipad-final .feature-strip{
  display:grid !important;
  position:absolute !important;
  left:42px !important;
  right:42px !important;
  bottom:18px !important;
  grid-template-columns:repeat(5,1fr) !important;
  width:auto !important;
  opacity:1 !important;
  transform:none !important;
  z-index:4 !important;
  border-radius:18px !important;
}

html.ipad-final .feature-strip article{
  padding:12px !important;
  grid-template-columns:28px 1fr !important;
  column-gap:10px !important;
}

html.ipad-final .feature-strip b{font-size:23px!important;}
html.ipad-final .feature-strip h3{font-size:13px!important;margin:0 0 2px!important;}
html.ipad-final .feature-strip p{font-size:11px!important;line-height:1.2!important;}

/* Gallery: one finished composite image so positions cannot break */
html.ipad-final .examples{
  background:#fff !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  padding:26px 34px 24px !important;
}

html.ipad-final .examples .scene-title{
  margin:0 auto 14px !important;
}

html.ipad-final .examples .scene-title p{
  font-size:10px !important;
  letter-spacing:.22em !important;
  margin:0 0 6px !important;
}

html.ipad-final .examples .scene-title h2{
  font-size:clamp(30px,3.55vw,42px) !important;
  line-height:.96 !important;
  margin:0 !important;
}

html.ipad-final .examples-only-grid{
  display:none !important;
}

html.ipad-final .ipad-gallery-single{
  display:block !important;
  width:min(1040px,90vw) !important;
  height:auto !important;
  max-height:calc(100dvh - 220px) !important;
  object-fit:contain !important;
  margin:0 auto !important;
  border-radius:20px !important;
  box-shadow:0 16px 42px rgba(0,0,0,.15) !important;
  background:#f4efe7 !important;
}

/* FAQ and footer do not show previous page at top */
html.ipad-final .faq,
html.ipad-final .footer-scene{
  padding:26px 34px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
}

html.ipad-final .faq{
  background:#f5f3ee !important;
}

html.ipad-final .faq-wrap{
  width:min(900px,88vw) !important;
  margin:0 auto !important;
  opacity:1 !important;
  transform:none !important;
  filter:none !important;
}

html.ipad-final .faq img{width:100px!important;max-height:100px!important;margin-bottom:8px!important;}
html.ipad-final .faq h2{font-size:clamp(32px,4vw,46px)!important;line-height:.98!important;margin:0 0 16px!important;}
html.ipad-final .faq details{padding:12px 16px!important;margin:8px 0!important;border-radius:14px!important;}

html.ipad-final .footer-scene{
  align-items:center !important;
  gap:18px !important;
  background:#020807 !important;
}

html.ipad-final .footer-logo-wrap img{
  width:min(300px,30vw) !important;
  max-height:280px !important;
  object-fit:contain !important;
}

html.ipad-final .footer-simple-contact{
  font-size:20px !important;
  gap:12px !important;
  justify-content:center !important;
}

/* Other pages fit */
html.ipad-final .scene-title{
  margin:0 auto 14px !important;
  max-width:920px !important;
}

html.ipad-final .scene-title h2{
  font-size:clamp(31px,4vw,45px) !important;
  line-height:.96 !important;
}

html.ipad-final .services .cards,
html.ipad-final .timeline{
  grid-template-columns:repeat(5,1fr) !important;
  gap:10px !important;
}

html.ipad-final .services .cards article,
html.ipad-final .timeline article{
  padding:14px 12px !important;
  border-radius:16px !important;
}

html.ipad-final .services .cards p,
html.ipad-final .timeline p{
  font-size:11px !important;
  line-height:1.3 !important;
}

html.ipad-final .transform{
  display:grid !important;
  grid-template-columns:.42fr .58fr !important;
  gap:22px !important;
  align-items:center !important;
}

html.ipad-final .ba,
html.ipad-final .ba img{
  max-height:62dvh !important;
  object-fit:contain !important;
}

html.ipad-final .centered-pricing,
html.ipad-final .price-grid{
  width:min(980px,90vw) !important;
  grid-template-columns:repeat(3,1fr) !important;
  gap:14px !important;
  margin:20px auto 0 !important;
}

html.ipad-final .centered-pricing article,
html.ipad-final .price-grid article{
  height:295px !important;
  min-height:295px !important;
  padding:22px !important;
  transform:none !important;
}


/* =====================================================
   iPad hero match to MacBook version
   Removes the dark text block and lets the live text sit
   directly over the full hero image like desktop.
   ===================================================== */

html.ipad-final .nextgen-hero{
  background:#020807 !important;
  padding:0 !important;
}

html.ipad-final .nextgen-bg{
  content:url("assets/desktop-hero-clean-no-text.png") !important;
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center center !important;
  opacity:1 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  z-index:0 !important;
}

html.ipad-final .nextgen-vignette{
  display:block !important;
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
  background:
    linear-gradient(90deg, rgba(0,0,0,.74) 0%, rgba(0,0,0,.54) 37%, rgba(0,0,0,.12) 70%, rgba(0,0,0,.32) 100%),
    linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,.06) 52%, rgba(0,0,0,.78) 100%) !important;
}

html.ipad-final .nextgen-copy{
  background:transparent !important;
  box-shadow:none !important;
  border:0 !important;
  outline:0 !important;
  position:relative !important;
  z-index:3 !important;
  width:min(610px,48vw) !important;
  max-width:610px !important;
  padding:52px 0 0 38px !important;
  margin:0 !important;
  text-align:left !important;
}

html.ipad-final .nextgen-copy::before,
html.ipad-final .nextgen-copy::after{
  content:none !important;
  display:none !important;
}

html.ipad-final .nextgen-copy h1,
html.ipad-final .nextgen-copy .lead,
html.ipad-final .nextgen-kicker{
  text-align:left !important;
  margin-left:0 !important;
  margin-right:0 !important;
}

html.ipad-final .nextgen-copy h1{
  font-size:clamp(50px,5.35vw,74px) !important;
  line-height:.94 !important;
  margin-bottom:16px !important;
}

html.ipad-final .nextgen-copy .lead{
  max-width:610px !important;
  font-size:17px !important;
  line-height:1.4 !important;
}

html.ipad-final .nextgen-copy .buttons{
  justify-content:flex-start !important;
  margin-top:22px !important;
}

html.ipad-final .nextgen-hero .feature-strip{
  display:grid !important;
  position:absolute !important;
  left:42px !important;
  right:42px !important;
  bottom:18px !important;
  z-index:4 !important;
  background:rgba(2,10,9,.58) !important;
  backdrop-filter:blur(18px) !important;
}

/* Hide the vertical scroll label on iPad where it competes with the hero */
html.ipad-final .scroll-hint{
  display:none !important;
}


/* iPad gallery alignment fix: use one aligned composite image */
.ipad-gallery-single{
  display:none;
}

html.ipad-final .examples-only-grid,
html.ipad-clean .examples-only-grid,
html.ipad-desktop-layout .examples-only-grid,
html.ipad-snap-polished .examples-only-grid{
  display:none !important;
}

html.ipad-final .ipad-gallery-single,
html.ipad-clean .ipad-gallery-single,
html.ipad-desktop-layout .ipad-gallery-single,
html.ipad-snap-polished .ipad-gallery-single{
  display:block !important;
  width:min(1080px,90vw) !important;
  height:auto !important;
  max-height:calc(100dvh - 225px) !important;
  object-fit:contain !important;
  margin:0 auto !important;
  border-radius:22px !important;
  box-shadow:0 18px 48px rgba(0,0,0,.16) !important;
  background:#f4efe7 !important;
}

html.ipad-final .examples,
html.ipad-clean .examples,
html.ipad-desktop-layout .examples,
html.ipad-snap-polished .examples{
  justify-content:center !important;
  overflow:hidden !important;
}


/* Final gallery fixes:
   1. Align the bottom row on MacBook.
   2. Remove tan/pink background around examples on MacBook and iPad.
*/
.examples{
  background:#ffffff !important;
}

.examples-only-grid{
  background:#ffffff !important;
  box-shadow:none !important;
  padding:0 !important;
  border-radius:0 !important;
  gap:18px !important;
  align-items:start !important;
}

.examples-only-grid img{
  display:block !important;
  background:#ffffff !important;
  border-radius:18px !important;
  box-shadow:0 14px 34px rgba(0,0,0,.16) !important;
}

/* MacBook / desktop: force clean 2-over-3 grid with consistent row heights */
@media (min-width:1181px){
  .examples-only-grid{
    width:min(1180px,92vw) !important;
    grid-template-columns:repeat(6,1fr) !important;
    grid-auto-rows:auto !important;
  }

  .examples-only-grid .wide-card{
    grid-column:span 3 !important;
    aspect-ratio:16/9 !important;
    width:100% !important;
    height:auto !important;
    object-fit:cover !important;
  }

  .examples-only-grid img:not(.wide-card){
    grid-column:span 2 !important;
    aspect-ratio:16/10.6 !important;
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
  }
}

/* iPad: show clean white composite and remove beige/tan panel */
html.ipad-final .examples,
html.ipad-clean .examples,
html.ipad-desktop-layout .examples,
html.ipad-snap-polished .examples{
  background:#ffffff !important;
}

html.ipad-final .ipad-gallery-single,
html.ipad-clean .ipad-gallery-single,
html.ipad-desktop-layout .ipad-gallery-single,
html.ipad-snap-polished .ipad-gallery-single{
  background:#ffffff !important;
  box-shadow:none !important;
  border-radius:0 !important;
}


/* FINAL gallery cleanup: remove all surrounding background/border and align bottom row */
.examples{
  background:#ffffff !important;
}

.examples-only-grid{
  background:transparent !important;
  background-color:transparent !important;
  box-shadow:none !important;
  border:0 !important;
  outline:0 !important;
  padding:0 !important;
  border-radius:0 !important;
  overflow:visible !important;
  gap:18px !important;
  align-items:start !important;
}

.examples-only-grid::before,
.examples-only-grid::after{
  content:none !important;
  display:none !important;
}

.examples-only-grid img{
  background:#ffffff !important;
  border:0 !important;
  outline:0 !important;
  display:block !important;
  border-radius:14px !important;
  box-shadow:0 12px 30px rgba(0,0,0,.14) !important;
}

/* Desktop/MacBook gallery card geometry */
@media (min-width:1181px){
  .examples-only-grid{
    width:min(1180px,92vw) !important;
    display:grid !important;
    grid-template-columns:repeat(6,1fr) !important;
    grid-template-rows:auto auto !important;
  }

  .examples-only-grid .wide-card{
    grid-column:span 3 !important;
    width:100% !important;
    height:auto !important;
    aspect-ratio:600/338 !important;
    object-fit:cover !important;
  }

  .examples-only-grid img:not(.wide-card){
    grid-column:span 2 !important;
    width:100% !important;
    height:auto !important;
    aspect-ratio:390/250 !important;
    object-fit:cover !important;
  }
}

/* iPad: use clean single gallery image with no beige panel */
.ipad-gallery-single{
  display:none;
}

html.ipad-final .examples,
html.ipad-clean .examples,
html.ipad-desktop-layout .examples,
html.ipad-snap-polished .examples{
  background:#ffffff !important;
}

html.ipad-final .examples-only-grid,
html.ipad-clean .examples-only-grid,
html.ipad-desktop-layout .examples-only-grid,
html.ipad-snap-polished .examples-only-grid{
  display:none !important;
}

html.ipad-final .ipad-gallery-single,
html.ipad-clean .ipad-gallery-single,
html.ipad-desktop-layout .ipad-gallery-single,
html.ipad-snap-polished .ipad-gallery-single{
  display:block !important;
  width:min(1080px,90vw) !important;
  height:auto !important;
  max-height:calc(100dvh - 225px) !important;
  object-fit:contain !important;
  margin:0 auto !important;
  border-radius:0 !important;
  background:#ffffff !important;
  box-shadow:none !important;
  border:0 !important;
  outline:0 !important;
}


/* iPad gallery black-line removal */
html.ipad-final .ipad-gallery-single,
html.ipad-clean .ipad-gallery-single,
html.ipad-desktop-layout .ipad-gallery-single,
html.ipad-snap-polished .ipad-gallery-single{
  display:block !important;
  background:#ffffff !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  margin-bottom:0 !important;
}

html.ipad-final .examples,
html.ipad-clean .examples,
html.ipad-desktop-layout .examples,
html.ipad-snap-polished .examples{
  background:#ffffff !important;
  border-bottom:0 !important;
  box-shadow:none !important;
}

html.ipad-final .examples::after,
html.ipad-clean .examples::after,
html.ipad-desktop-layout .examples::after,
html.ipad-snap-polished .examples::after{
  content:none !important;
  display:none !important;
}


/* Equalized bottom gallery cards for MacBook + iPad */
.examples-grid-bottom,
.gallery-bottom-row,
.bottom-gallery-row{
  align-items:stretch !important;
}

.examples-grid-bottom .example-card,
.gallery-bottom-row .example-card,
.bottom-gallery-row .example-card{
  height:340px !important;
  min-height:340px !important;
  max-height:340px !important;
  overflow:hidden !important;
  border-radius:22px !important;
  background:#fff !important;
  display:flex !important;
  align-items:stretch !important;
  justify-content:center !important;
}

.examples-grid-bottom .example-card img,
.gallery-bottom-row .example-card img,
.bottom-gallery-row .example-card img{
  width:100% !important;
  height:100% !important;
  object-fit:fill !important;
  display:block !important;
}

/* iPad sizing */
@media (min-width: 768px) and (max-width: 1180px){

  .examples-grid-bottom .example-card,
  .gallery-bottom-row .example-card,
  .bottom-gallery-row .example-card{
    height:300px !important;
    min-height:300px !important;
    max-height:300px !important;
  }

  .examples-grid-bottom .example-card img,
  .gallery-bottom-row .example-card img,
  .bottom-gallery-row .example-card img{
    object-fit:fill !important;
    transform:none !important;
  }
}


/* iPad gallery full-image fix: no cropping on bottom row */
html.ipad-final .examples-only-grid,
html.ipad-clean .examples-only-grid,
html.ipad-desktop-layout .examples-only-grid,
html.ipad-snap-polished .examples-only-grid{
  display:none !important;
}

html.ipad-final .ipad-gallery-single,
html.ipad-clean .ipad-gallery-single,
html.ipad-desktop-layout .ipad-gallery-single,
html.ipad-snap-polished .ipad-gallery-single{
  content:url("assets/ipad-gallery-full-visible.png") !important;
  display:block !important;
  width:min(1080px,90vw) !important;
  height:auto !important;
  max-height:calc(100dvh - 205px) !important;
  object-fit:contain !important;
  object-position:center center !important;
  margin:0 auto !important;
  background:#ffffff !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  border-radius:0 !important;
}

html.ipad-final .examples,
html.ipad-clean .examples,
html.ipad-desktop-layout .examples,
html.ipad-snap-polished .examples{
  background:#ffffff !important;
  overflow:hidden !important;
  justify-content:center !important;
  padding-bottom:18px !important;
}


/* iPad final page fix: cover any visible prior FAQ page when contact page is reached */
html.ipad-final.ipad-footer-fullscreen #contact.footer-scene,
html.ipad-clean.ipad-footer-fullscreen #contact.footer-scene,
html.ipad-desktop-layout.ipad-footer-fullscreen #contact.footer-scene,
html.ipad-snap-polished.ipad-footer-fullscreen #contact.footer-scene{
  position:fixed !important;
  top:76px !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  width:100vw !important;
  height:calc(100dvh - 76px) !important;
  min-height:calc(100dvh - 76px) !important;
  max-height:calc(100dvh - 76px) !important;
  z-index:9000 !important;
  background:
    radial-gradient(circle at 50% 18%, rgba(35,231,121,.12), transparent 34%),
    #020807 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  overflow:hidden !important;
  padding:0 28px !important;
  margin:0 !important;
}

html.ipad-final.ipad-footer-fullscreen #contact.footer-scene::before,
html.ipad-clean.ipad-footer-fullscreen #contact.footer-scene::before,
html.ipad-desktop-layout.ipad-footer-fullscreen #contact.footer-scene::before,
html.ipad-snap-polished.ipad-footer-fullscreen #contact.footer-scene::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:#020807 !important;
  z-index:-1 !important;
}

html.ipad-final.ipad-footer-fullscreen .footer-logo-wrap,
html.ipad-clean.ipad-footer-fullscreen .footer-logo-wrap,
html.ipad-desktop-layout.ipad-footer-fullscreen .footer-logo-wrap,
html.ipad-snap-polished.ipad-footer-fullscreen .footer-logo-wrap{
  margin:0 auto 18px !important;
}

html.ipad-final.ipad-footer-fullscreen .footer-logo-wrap img,
html.ipad-clean.ipad-footer-fullscreen .footer-logo-wrap img,
html.ipad-desktop-layout.ipad-footer-fullscreen .footer-logo-wrap img,
html.ipad-snap-polished.ipad-footer-fullscreen .footer-logo-wrap img{
  width:min(340px,36vw) !important;
  max-height:320px !important;
}

html.ipad-final.ipad-footer-fullscreen .footer-simple-contact,
html.ipad-clean.ipad-footer-fullscreen .footer-simple-contact,
html.ipad-desktop-layout.ipad-footer-fullscreen .footer-simple-contact,
html.ipad-snap-polished.ipad-footer-fullscreen .footer-simple-contact{
  font-size:22px !important;
  text-align:center !important;
}

/* Keep header above the fullscreen final panel */
html.ipad-final.ipad-footer-fullscreen header,
html.ipad-clean.ipad-footer-fullscreen header,
html.ipad-desktop-layout.ipad-footer-fullscreen header,
html.ipad-snap-polished.ipad-footer-fullscreen header{
  z-index:9999 !important;
}


/* iPad footer scroll fix: final page is a normal snap section, not a fixed overlay */
html.ipad-final #contact.footer-scene,
html.ipad-clean #contact.footer-scene,
html.ipad-desktop-layout #contact.footer-scene,
html.ipad-snap-polished #contact.footer-scene{
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  z-index:auto !important;
  width:100% !important;
  height:calc(100dvh - 76px) !important;
  min-height:calc(100dvh - 76px) !important;
  max-height:calc(100dvh - 76px) !important;
  scroll-snap-align:start !important;
  scroll-snap-stop:always !important;
  background:
    radial-gradient(circle at 50% 18%, rgba(35,231,121,.12), transparent 34%),
    #020807 !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  padding:0 28px !important;
  margin:0 !important;
}

html.ipad-final #contact.footer-scene::before,
html.ipad-clean #contact.footer-scene::before,
html.ipad-desktop-layout #contact.footer-scene::before,
html.ipad-snap-polished #contact.footer-scene::before{
  content:none !important;
  display:none !important;
}

html.ipad-final main,
html.ipad-clean main,
html.ipad-desktop-layout main,
html.ipad-snap-polished main{
  overscroll-behavior-y:auto !important;
  -webkit-overflow-scrolling:touch !important;
}

/* Give the last section breathing room without showing the previous page */
html.ipad-final .footer-logo-wrap img,
html.ipad-clean .footer-logo-wrap img,
html.ipad-desktop-layout .footer-logo-wrap img,
html.ipad-snap-polished .footer-logo-wrap img{
  width:min(340px,36vw) !important;
  max-height:320px !important;
}

html.ipad-final .footer-simple-contact,
html.ipad-clean .footer-simple-contact,
html.ipad-desktop-layout .footer-simple-contact,
html.ipad-snap-polished .footer-simple-contact{
  font-size:22px !important;
  text-align:center !important;
  line-height:1.25 !important;
}

/* Disable the class if it remains in cache */
html.ipad-footer-fullscreen #contact.footer-scene{
  position:relative !important;
}


/* iPad final-page snap cleanup:
   final page must occupy the full visible page area and hide any prior FAQ content
   once the snap lands on it.
*/
html.ipad-final main > .scene,
html.ipad-clean main > .scene,
html.ipad-desktop-layout main > .scene,
html.ipad-snap-polished main > .scene{
  scroll-snap-align:start !important;
  scroll-snap-stop:always !important;
}

html.ipad-final #contact.footer-scene,
html.ipad-clean #contact.footer-scene,
html.ipad-desktop-layout #contact.footer-scene,
html.ipad-snap-polished #contact.footer-scene{
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  z-index:auto !important;
  width:100% !important;
  height:calc(100dvh - 76px) !important;
  min-height:calc(100dvh - 76px) !important;
  max-height:calc(100dvh - 76px) !important;
  margin:0 !important;
  padding:0 28px !important;
  background:#020807 !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  scroll-snap-align:start !important;
  scroll-snap-stop:always !important;
}

/* Make the top of the footer page solid black so the FAQ cannot visually bleed through. */
html.ipad-final #contact.footer-scene::before,
html.ipad-clean #contact.footer-scene::before,
html.ipad-desktop-layout #contact.footer-scene::before,
html.ipad-snap-polished #contact.footer-scene::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:
    radial-gradient(circle at 50% 20%, rgba(35,231,121,.12), transparent 34%),
    #020807 !important;
  z-index:0 !important;
}

html.ipad-final #contact.footer-scene > *,
html.ipad-clean #contact.footer-scene > *,
html.ipad-desktop-layout #contact.footer-scene > *,
html.ipad-snap-polished #contact.footer-scene > *{
  position:relative !important;
  z-index:1 !important;
}

html.ipad-final .footer-logo-wrap img,
html.ipad-clean .footer-logo-wrap img,
html.ipad-desktop-layout .footer-logo-wrap img,
html.ipad-snap-polished .footer-logo-wrap img{
  width:min(340px,36vw) !important;
  max-height:320px !important;
}

html.ipad-final .footer-simple-contact,
html.ipad-clean .footer-simple-contact,
html.ipad-desktop-layout .footer-simple-contact,
html.ipad-snap-polished .footer-simple-contact{
  font-size:22px !important;
  text-align:center !important;
  line-height:1.25 !important;
}


/* iPad final page size fix:
   Make the final contact page taller than the visible iPad viewport so it covers
   the prior FAQ page completely and has the same full-page presence as the others.
*/
html.ipad-final #contact.footer-scene,
html.ipad-clean #contact.footer-scene,
html.ipad-desktop-layout #contact.footer-scene,
html.ipad-snap-polished #contact.footer-scene{
  box-sizing:border-box !important;
  margin-top:-220px !important;
  height:calc(100dvh - 76px + 220px) !important;
  min-height:calc(100dvh - 76px + 220px) !important;
  max-height:none !important;
  padding:220px 28px 0 !important;
  background:#020807 !important;
  overflow:hidden !important;
  scroll-snap-align:start !important;
  scroll-snap-stop:always !important;
}

html.ipad-final #contact.footer-scene::before,
html.ipad-clean #contact.footer-scene::before,
html.ipad-desktop-layout #contact.footer-scene::before,
html.ipad-snap-polished #contact.footer-scene::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:
    radial-gradient(circle at 50% 30%, rgba(35,231,121,.13), transparent 34%),
    #020807 !important;
  z-index:0 !important;
}

html.ipad-final #contact.footer-scene > *,
html.ipad-clean #contact.footer-scene > *,
html.ipad-desktop-layout #contact.footer-scene > *,
html.ipad-snap-polished #contact.footer-scene > *{
  position:relative !important;
  z-index:1 !important;
}

/* Keep footer content centered in the visible part of the final page */
html.ipad-final .footer-logo-wrap,
html.ipad-clean .footer-logo-wrap,
html.ipad-desktop-layout .footer-logo-wrap,
html.ipad-snap-polished .footer-logo-wrap{
  margin-top:0 !important;
}

html.ipad-final .footer-logo-wrap img,
html.ipad-clean .footer-logo-wrap img,
html.ipad-desktop-layout .footer-logo-wrap img,
html.ipad-snap-polished .footer-logo-wrap img{
  width:min(340px,36vw) !important;
  max-height:320px !important;
}


/* FINAL iPad FAQ + footer reset.
   Last two pages are each one clean full page.
   No negative margins, no fixed footer overlay, no prior-page bleed.
*/
html.ipad-final main,
html.ipad-clean main,
html.ipad-desktop-layout main,
html.ipad-snap-polished main{
  scroll-snap-type:y mandatory !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
}

html.ipad-final .faq,
html.ipad-clean .faq,
html.ipad-desktop-layout .faq,
html.ipad-snap-polished .faq,
html.ipad-final #contact.footer-scene,
html.ipad-clean #contact.footer-scene,
html.ipad-desktop-layout #contact.footer-scene,
html.ipad-snap-polished #contact.footer-scene{
  position:relative !important;
  top:auto !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  z-index:auto !important;
  width:100% !important;
  height:calc(100dvh - 76px) !important;
  min-height:calc(100dvh - 76px) !important;
  max-height:calc(100dvh - 76px) !important;
  margin:0 !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
  scroll-snap-align:start !important;
  scroll-snap-stop:always !important;
}

/* FAQ page: fit all content within its page */
html.ipad-final .faq,
html.ipad-clean .faq,
html.ipad-desktop-layout .faq,
html.ipad-snap-polished .faq{
  background:#f5f3ee !important;
  padding:28px 34px 26px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
}

html.ipad-final .faq-wrap,
html.ipad-clean .faq-wrap,
html.ipad-desktop-layout .faq-wrap,
html.ipad-snap-polished .faq-wrap{
  width:min(900px,88vw) !important;
  max-width:900px !important;
  margin:0 auto !important;
  opacity:1 !important;
  transform:none !important;
  filter:none !important;
}

html.ipad-final .faq img,
html.ipad-clean .faq img,
html.ipad-desktop-layout .faq img,
html.ipad-snap-polished .faq img{
  width:86px !important;
  max-height:86px !important;
  margin:0 auto 8px !important;
  display:block !important;
}

html.ipad-final .faq h2,
html.ipad-clean .faq h2,
html.ipad-desktop-layout .faq h2,
html.ipad-snap-polished .faq h2{
  font-size:clamp(30px,3.8vw,44px) !important;
  line-height:.98 !important;
  margin:0 0 14px !important;
  text-align:center !important;
}

html.ipad-final .faq details,
html.ipad-clean .faq details,
html.ipad-desktop-layout .faq details,
html.ipad-snap-polished .faq details{
  padding:11px 15px !important;
  margin:7px 0 !important;
  border-radius:14px !important;
}

html.ipad-final .faq summary,
html.ipad-clean .faq summary,
html.ipad-desktop-layout .faq summary,
html.ipad-snap-polished .faq summary{
  font-size:14px !important;
}

html.ipad-final .faq details p,
html.ipad-clean .faq details p,
html.ipad-desktop-layout .faq details p,
html.ipad-snap-polished .faq details p{
  font-size:14px !important;
  line-height:1.32 !important;
  margin:8px 0 0 !important;
}

/* Footer page: exactly one clean full page */
html.ipad-final #contact.footer-scene,
html.ipad-clean #contact.footer-scene,
html.ipad-desktop-layout #contact.footer-scene,
html.ipad-snap-polished #contact.footer-scene{
  background:
    radial-gradient(circle at 50% 20%, rgba(35,231,121,.13), transparent 34%),
    #020807 !important;
  padding:0 34px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  gap:18px !important;
}

html.ipad-final #contact.footer-scene::before,
html.ipad-clean #contact.footer-scene::before,
html.ipad-desktop-layout #contact.footer-scene::before,
html.ipad-snap-polished #contact.footer-scene::before{
  content:none !important;
  display:none !important;
}

html.ipad-final .footer-logo-wrap,
html.ipad-clean .footer-logo-wrap,
html.ipad-desktop-layout .footer-logo-wrap,
html.ipad-snap-polished .footer-logo-wrap{
  margin:0 auto !important;
  padding:0 !important;
}

html.ipad-final .footer-logo-wrap img,
html.ipad-clean .footer-logo-wrap img,
html.ipad-desktop-layout .footer-logo-wrap img,
html.ipad-snap-polished .footer-logo-wrap img{
  width:min(320px,34vw) !important;
  max-height:300px !important;
  object-fit:contain !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}

html.ipad-final .footer-simple-contact,
html.ipad-clean .footer-simple-contact,
html.ipad-desktop-layout .footer-simple-contact,
html.ipad-snap-polished .footer-simple-contact{
  font-size:21px !important;
  line-height:1.25 !important;
  text-align:center !important;
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:center !important;
  gap:12px !important;
  margin:0 !important;
}

/* Ensure cached fullscreen class cannot affect layout */
html.ipad-footer-fullscreen #contact.footer-scene{
  position:relative !important;
  margin:0 !important;
  height:calc(100dvh - 76px) !important;
  min-height:calc(100dvh - 76px) !important;
  padding:0 34px !important;
}


/* =====================================================
   FINAL iPAD LAST PAGE CLEANUP
   The footer is a normal scroll-snap section, but its black
   background intentionally extends upward so the FAQ page
   can never be visible above it during the final snap.
   ===================================================== */

html.ipad-final #contact.footer-scene,
html.ipad-clean #contact.footer-scene,
html.ipad-desktop-layout #contact.footer-scene,
html.ipad-snap-polished #contact.footer-scene{
  position:relative !important;
  isolation:isolate !important;
  z-index:5 !important;
  width:100% !important;
  height:calc(100dvh - 76px) !important;
  min-height:calc(100dvh - 76px) !important;
  max-height:calc(100dvh - 76px) !important;
  margin:0 !important;
  padding:0 28px !important;
  box-sizing:border-box !important;
  overflow:visible !important;
  scroll-snap-align:start !important;
  scroll-snap-stop:always !important;
  background:
    radial-gradient(circle at 50% 26%, rgba(35,231,121,.13), transparent 36%),
    #020807 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  gap:18px !important;
}

/* This is the important part: it paints black above the footer section,
   eliminating the white FAQ strip seen in the iPad screenshots. */
html.ipad-final #contact.footer-scene::before,
html.ipad-clean #contact.footer-scene::before,
html.ipad-desktop-layout #contact.footer-scene::before,
html.ipad-snap-polished #contact.footer-scene::before{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:-100dvh !important;
  height:200dvh !important;
  background:#020807 !important;
  z-index:-2 !important;
  pointer-events:none !important;
}

html.ipad-final #contact.footer-scene::after,
html.ipad-clean #contact.footer-scene::after,
html.ipad-desktop-layout #contact.footer-scene::after,
html.ipad-snap-polished #contact.footer-scene::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:radial-gradient(circle at 50% 25%, rgba(35,231,121,.13), transparent 36%) !important;
  z-index:-1 !important;
  pointer-events:none !important;
}

html.ipad-final #contact.footer-scene > *,
html.ipad-clean #contact.footer-scene > *,
html.ipad-desktop-layout #contact.footer-scene > *,
html.ipad-snap-polished #contact.footer-scene > *{
  position:relative !important;
  z-index:1 !important;
}

html.ipad-final .footer-logo-wrap,
html.ipad-clean .footer-logo-wrap,
html.ipad-desktop-layout .footer-logo-wrap,
html.ipad-snap-polished .footer-logo-wrap{
  margin:0 auto !important;
  padding:0 !important;
}

html.ipad-final .footer-logo-wrap img,
html.ipad-clean .footer-logo-wrap img,
html.ipad-desktop-layout .footer-logo-wrap img,
html.ipad-snap-polished .footer-logo-wrap img{
  width:min(340px,36vw) !important;
  max-height:320px !important;
  object-fit:contain !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}

html.ipad-final .footer-simple-contact,
html.ipad-clean .footer-simple-contact,
html.ipad-desktop-layout .footer-simple-contact,
html.ipad-snap-polished .footer-simple-contact{
  font-size:22px !important;
  line-height:1.25 !important;
  text-align:center !important;
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:center !important;
  gap:12px !important;
  margin:0 !important;
}

/* Prevent old cached footer-fullscreen class from changing behavior */
html.ipad-footer-fullscreen #contact.footer-scene{
  position:relative !important;
  top:auto !important;
  bottom:auto !important;
  height:calc(100dvh - 76px) !important;
  min-height:calc(100dvh - 76px) !important;
  margin:0 !important;
  padding:0 28px !important;
}

/* Final iPad contact page fix */
html.ipad-final #contact.footer-scene,
html.ipad-clean #contact.footer-scene,
html.ipad-desktop-layout #contact.footer-scene,
html.ipad-snap-polished #contact.footer-scene{
  position:relative !important;
  isolation:isolate !important;
  z-index:50 !important;
  width:100% !important;
  height:calc(100dvh - 76px) !important;
  min-height:calc(100dvh - 76px) !important;
  max-height:calc(100dvh - 76px) !important;
  margin:0 !important;
  padding:0 28px !important;
  box-sizing:border-box !important;
  overflow:visible !important;
  scroll-snap-align:start !important;
  scroll-snap-stop:always !important;
  background:#020807 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  gap:18px !important;
}

html.ipad-final #contact.footer-scene::before,
html.ipad-clean #contact.footer-scene::before,
html.ipad-desktop-layout #contact.footer-scene::before,
html.ipad-snap-polished #contact.footer-scene::before{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:-100dvh !important;
  height:200dvh !important;
  background:#020807 !important;
  z-index:-2 !important;
  pointer-events:none !important;
}

html.ipad-final #contact.footer-scene::after,
html.ipad-clean #contact.footer-scene::after,
html.ipad-desktop-layout #contact.footer-scene::after,
html.ipad-snap-polished #contact.footer-scene::after{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  background:radial-gradient(circle at 50% 25%, rgba(35,231,121,.13), transparent 36%) !important;
  z-index:-1 !important;
  pointer-events:none !important;
}

html.ipad-final #contact.footer-scene > *,
html.ipad-clean #contact.footer-scene > *,
html.ipad-desktop-layout #contact.footer-scene > *,
html.ipad-snap-polished #contact.footer-scene > *{
  position:relative !important;
  z-index:1 !important;
}

html.ipad-final .footer-logo-wrap,
html.ipad-clean .footer-logo-wrap,
html.ipad-desktop-layout .footer-logo-wrap,
html.ipad-snap-polished .footer-logo-wrap{
  margin:0 auto !important;
  padding:0 !important;
}

html.ipad-final .footer-logo-wrap img,
html.ipad-clean .footer-logo-wrap img,
html.ipad-desktop-layout .footer-logo-wrap img,
html.ipad-snap-polished .footer-logo-wrap img{
  width:min(340px,36vw) !important;
  max-height:320px !important;
  object-fit:contain !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}

html.ipad-final .footer-simple-contact,
html.ipad-clean .footer-simple-contact,
html.ipad-desktop-layout .footer-simple-contact,
html.ipad-snap-polished .footer-simple-contact{
  font-size:22px !important;
  line-height:1.25 !important;
  text-align:center !important;
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:center !important;
  gap:12px !important;
  margin:0 !important;
}


/* =====================================================
   FINAL iPAD CONTACT PAGE CLEAN FIX
   Makes the final contact screen visually clean even if iPad Safari
   settles slightly before the snap point.
   ===================================================== */

/* Paint the lower part of the FAQ page black, so no white FAQ strip can show above
   the contact screen during the transition to the final page. */
html.ipad-final .faq,
html.ipad-clean .faq,
html.ipad-desktop-layout .faq,
html.ipad-snap-polished .faq{
  background:
    linear-gradient(to bottom,
      #f5f3ee 0%,
      #f5f3ee 54%,
      #020807 54%,
      #020807 100%) !important;
}

/* Hide FAQ items/button when the scroll is near the bottom of that FAQ section by
   keeping them in the upper half only. */
html.ipad-final .faq-wrap,
html.ipad-clean .faq-wrap,
html.ipad-desktop-layout .faq-wrap,
html.ipad-snap-polished .faq-wrap{
  max-height:54% !important;
  overflow:hidden !important;
}

/* Make contact section exactly a full visible page and centered like the requested image. */
html.ipad-final #contact.footer-scene,
html.ipad-clean #contact.footer-scene,
html.ipad-desktop-layout #contact.footer-scene,
html.ipad-snap-polished #contact.footer-scene{
  position:relative !important;
  width:100% !important;
  height:calc(100dvh - 76px) !important;
  min-height:calc(100dvh - 76px) !important;
  max-height:calc(100dvh - 76px) !important;
  margin:0 !important;
  padding:0 28px !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
  scroll-snap-align:start !important;
  scroll-snap-stop:always !important;
  background:
    radial-gradient(circle at 50% 25%, rgba(35,231,121,.13), transparent 36%),
    #020807 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  gap:18px !important;
  z-index:10 !important;
  isolation:isolate !important;
}

html.ipad-final #contact.footer-scene::before,
html.ipad-clean #contact.footer-scene::before,
html.ipad-desktop-layout #contact.footer-scene::before,
html.ipad-snap-polished #contact.footer-scene::before{
  content:none !important;
  display:none !important;
}

html.ipad-final #contact.footer-scene::after,
html.ipad-clean #contact.footer-scene::after,
html.ipad-desktop-layout #contact.footer-scene::after,
html.ipad-snap-polished #contact.footer-scene::after{
  content:none !important;
  display:none !important;
}

html.ipad-final .footer-logo-wrap,
html.ipad-clean .footer-logo-wrap,
html.ipad-desktop-layout .footer-logo-wrap,
html.ipad-snap-polished .footer-logo-wrap{
  margin:0 auto !important;
  padding:0 !important;
}

html.ipad-final .footer-logo-wrap img,
html.ipad-clean .footer-logo-wrap img,
html.ipad-desktop-layout .footer-logo-wrap img,
html.ipad-snap-polished .footer-logo-wrap img{
  width:min(340px,36vw) !important;
  max-height:320px !important;
  object-fit:contain !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}

html.ipad-final .footer-simple-contact,
html.ipad-clean .footer-simple-contact,
html.ipad-desktop-layout .footer-simple-contact,
html.ipad-snap-polished .footer-simple-contact{
  font-size:22px !important;
  line-height:1.25 !important;
  text-align:center !important;
  color:#2df279 !important;
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:center !important;
  gap:12px !important;
  margin:0 !important;
}


/* =========================================================
   iPad FINAL REBUILD
   Clean FAQ page + clean final contact page.
   The contact section has a black shield above it so the FAQ page
   cannot appear when Safari lands slightly between snap points.
   ========================================================= */

html.ipad-final-rebuild,
html.ipad-final-rebuild body{
  margin:0 !important;
  height:100% !important;
  background:#020807 !important;
  overflow:hidden !important;
}

html.ipad-final-rebuild header{
  height:76px !important;
  position:fixed !important;
  top:0 !important;
  left:0 !important;
  right:0 !important;
  z-index:9999 !important;
  background:#050505 !important;
}

html.ipad-final-rebuild main{
  position:fixed !important;
  top:76px !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  height:calc(100dvh - 76px) !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  scroll-snap-type:y mandatory !important;
  scroll-behavior:smooth !important;
  -webkit-overflow-scrolling:touch !important;
  background:#020807 !important;
}

html.ipad-final-rebuild main > .scene{
  box-sizing:border-box !important;
  height:calc(100dvh - 76px) !important;
  min-height:calc(100dvh - 76px) !important;
  max-height:calc(100dvh - 76px) !important;
  overflow:hidden !important;
  scroll-snap-align:start !important;
  scroll-snap-stop:always !important;
}

/* restore FAQ as a complete cream page */
html.ipad-final-rebuild .faq{
  background:#f5f3ee !important;
  background-image:none !important;
  padding:24px 34px 24px !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  position:relative !important;
  z-index:1 !important;
}

html.ipad-final-rebuild .faq-wrap{
  width:min(900px,88vw) !important;
  max-width:900px !important;
  max-height:none !important;
  overflow:visible !important;
  margin:0 auto !important;
  opacity:1 !important;
  transform:none !important;
  filter:none !important;
}

html.ipad-final-rebuild .faq img{
  width:78px !important;
  max-height:78px !important;
  margin:0 auto 8px !important;
  display:block !important;
}

html.ipad-final-rebuild .faq h2{
  font-size:clamp(30px,3.7vw,43px) !important;
  line-height:.98 !important;
  margin:0 0 12px !important;
  text-align:center !important;
}

html.ipad-final-rebuild .faq details{
  padding:10px 15px !important;
  margin:6px 0 !important;
  border-radius:13px !important;
}

html.ipad-final-rebuild .faq summary{
  font-size:13.5px !important;
}

html.ipad-final-rebuild .faq details p{
  font-size:13.5px !important;
  line-height:1.30 !important;
  margin:7px 0 0 !important;
}

/* clean final contact page */
html.ipad-final-rebuild #contact.footer-scene{
  position:relative !important;
  isolation:isolate !important;
  z-index:20 !important;
  background:#020807 !important;
  background-image:radial-gradient(circle at 50% 24%, rgba(35,231,121,.13), transparent 36%) !important;
  padding:0 28px !important;
  margin:0 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  gap:18px !important;
  overflow:visible !important;
}

/* black shield above final page. This covers any visible remnant of FAQ during snap,
   while keeping contact itself a normal section so scrolling does not get trapped. */
html.ipad-final-rebuild #contact.footer-scene::before{
  content:"" !important;
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  top:-70dvh !important;
  height:70dvh !important;
  background:#020807 !important;
  z-index:-1 !important;
  pointer-events:none !important;
}

html.ipad-final-rebuild #contact.footer-scene::after{
  content:none !important;
  display:none !important;
}

html.ipad-final-rebuild #contact.footer-scene > *{
  position:relative !important;
  z-index:1 !important;
}

html.ipad-final-rebuild .footer-logo-wrap{
  margin:0 auto !important;
  padding:0 !important;
}

html.ipad-final-rebuild .footer-logo-wrap img{
  width:min(340px,36vw) !important;
  max-height:320px !important;
  object-fit:contain !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}

html.ipad-final-rebuild .footer-simple-contact{
  color:#2df279 !important;
  font-size:22px !important;
  line-height:1.25 !important;
  text-align:center !important;
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:center !important;
  gap:12px !important;
  margin:0 !important;
}

/* Neutralize old experimental classes if Safari caches them */
html.ipad-final-rebuild.ipad-footer-fullscreen #contact.footer-scene,
html.ipad-final-rebuild #contact.footer-scene{
  top:auto !important;
  bottom:auto !important;
}


/* =====================================================
   ABSOLUTE iPAD CONTACT OVERLAY FIX
   When the final page is visible, a fixed black layer covers
   the content area behind it so the prior FAQ page cannot show.
   This does not use fixed footer positioning, so scrolling still works.
   ===================================================== */

/* restore FAQ page itself so it is not half black when viewed normally */
html.ipad-final-rebuild .faq,
html.ipad-final .faq,
html.ipad-clean .faq,
html.ipad-desktop-layout .faq,
html.ipad-snap-polished .faq{
  background:#f5f3ee !important;
  background-image:none !important;
}

html.ipad-final-rebuild .faq-wrap,
html.ipad-final .faq-wrap,
html.ipad-clean .faq-wrap,
html.ipad-desktop-layout .faq-wrap,
html.ipad-snap-polished .faq-wrap{
  max-height:none !important;
  overflow:visible !important;
}

/* black viewport cover turns on only when contact page is visible */
body.ipad-contact-overlay-on::before{
  content:"" !important;
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  top:76px !important;
  bottom:0 !important;
  background:
    radial-gradient(circle at 50% 30%, rgba(35,231,121,.13), transparent 36%),
    #020807 !important;
  z-index:7000 !important;
  pointer-events:none !important;
}

/* keep header above overlay */
body.ipad-contact-overlay-on header{
  z-index:9999 !important;
}

/* keep final page content above overlay */
body.ipad-contact-overlay-on #contact.footer-scene{
  position:relative !important;
  z-index:8000 !important;
  background:transparent !important;
  background-image:none !important;
}

/* normal final page layout */
html.ipad-final-rebuild #contact.footer-scene,
html.ipad-final #contact.footer-scene,
html.ipad-clean #contact.footer-scene,
html.ipad-desktop-layout #contact.footer-scene,
html.ipad-snap-polished #contact.footer-scene{
  width:100% !important;
  height:calc(100dvh - 76px) !important;
  min-height:calc(100dvh - 76px) !important;
  max-height:calc(100dvh - 76px) !important;
  margin:0 !important;
  padding:0 28px !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
  scroll-snap-align:start !important;
  scroll-snap-stop:always !important;
  background:
    radial-gradient(circle at 50% 30%, rgba(35,231,121,.13), transparent 36%),
    #020807 !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  align-items:center !important;
  gap:18px !important;
}

html.ipad-final-rebuild #contact.footer-scene::before,
html.ipad-final #contact.footer-scene::before,
html.ipad-clean #contact.footer-scene::before,
html.ipad-desktop-layout #contact.footer-scene::before,
html.ipad-snap-polished #contact.footer-scene::before,
html.ipad-final-rebuild #contact.footer-scene::after,
html.ipad-final #contact.footer-scene::after,
html.ipad-clean #contact.footer-scene::after,
html.ipad-desktop-layout #contact.footer-scene::after,
html.ipad-snap-polished #contact.footer-scene::after{
  content:none !important;
  display:none !important;
}

body.ipad-contact-overlay-on #contact.footer-scene > *{
  position:relative !important;
  z-index:8001 !important;
}

html.ipad-final-rebuild .footer-logo-wrap img,
html.ipad-final .footer-logo-wrap img,
html.ipad-clean .footer-logo-wrap img,
html.ipad-desktop-layout .footer-logo-wrap img,
html.ipad-snap-polished .footer-logo-wrap img{
  width:min(340px,36vw) !important;
  max-height:320px !important;
  object-fit:contain !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}

html.ipad-final-rebuild .footer-simple-contact,
html.ipad-final .footer-simple-contact,
html.ipad-clean .footer-simple-contact,
html.ipad-desktop-layout .footer-simple-contact,
html.ipad-snap-polished .footer-simple-contact{
  color:#2df279 !important;
  font-size:22px !important;
  line-height:1.25 !important;
  text-align:center !important;
  display:flex !important;
  flex-wrap:wrap !important;
  justify-content:center !important;
  gap:12px !important;
  margin:0 !important;
}


/* =====================================================
   FINAL iPad contact screen with actual content.
   This directly draws the desired last page on top of the scroll area.
   ===================================================== */

/* Disable prior body overlay pseudo if it exists; the new overlay contains content. */
body.ipad-contact-overlay-on::before{
  display:none !important;
  content:none !important;
}

.ipad-contact-final-screen{
  display:none;
}

/* Show only on iPad/tablet when JS detects the final contact section */
body.show-ipad-contact-final .ipad-contact-final-screen{
  display:flex !important;
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  top:76px !important;
  bottom:0 !important;
  z-index:9500 !important;
  background:
    radial-gradient(circle at 50% 20%, rgba(35,231,121,.16), transparent 38%),
    #020807 !important;
  align-items:center !important;
  justify-content:center !important;
  pointer-events:none !important;
}

body.show-ipad-contact-final header{
  z-index:9999 !important;
}

.ipad-contact-final-inner{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:26px !important;
  transform:translateY(-1vh) !important;
}

.ipad-contact-final-logo{
  width:min(380px,39vw) !important;
  max-height:360px !important;
  object-fit:contain !important;
  display:block !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}

.ipad-contact-final-info{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-wrap:wrap !important;
  gap:18px !important;
  color:#2df279 !important;
  font-size:24px !important;
  font-weight:950 !important;
  line-height:1.2 !important;
  text-align:center !important;
  text-shadow:0 0 18px rgba(45,242,121,.12) !important;
}

.ipad-contact-final-info a{
  color:#2df279 !important;
  text-decoration:none !important;
}

.ipad-contact-dot{
  color:rgba(255,255,255,.45) !important;
}

/* Keep underlying contact as a normal snap page so scrolling is not trapped. */
html.ipad-final-rebuild #contact.footer-scene,
html.ipad-final #contact.footer-scene,
html.ipad-clean #contact.footer-scene,
html.ipad-desktop-layout #contact.footer-scene,
html.ipad-snap-polished #contact.footer-scene{
  background:#020807 !important;
  min-height:calc(100dvh - 76px) !important;
  height:calc(100dvh - 76px) !important;
  scroll-snap-align:start !important;
  scroll-snap-stop:always !important;
}

/* Mobile should not use this tablet overlay */
@media (max-width:767px){
  body.show-ipad-contact-final .ipad-contact-final-screen{
    display:none !important;
  }
}


/* Dental before/after slider updated images */
.ba,
.before-after,
.comparison,
.slider-comparison{
  aspect-ratio:16/9 !important;
  max-height:min(68dvh, 720px) !important;
  overflow:hidden !important;
  border-radius:26px !important;
  background:#fff !important;
}

.ba img,
.before-after img,
.comparison img,
.slider-comparison img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
  background:#fff !important;
}

/* Make the visual contrast clearer in the before/after section */
.transform .left-copy p,
.transform .left-copy span{
  color:#3e4a5a !important;
}


/* Rev 2: dental before/after sizing and background fix */
.ba,
.before-after,
.comparison,
.slider-comparison{
  background:#eae2d6 !important;
}

.ba img,
.before-after img,
.comparison img,
.slider-comparison img{
  background:transparent !important;
}

.ba > img{
  object-fit:contain !important;
  object-position:center center !important;
}

.ba .after img{
  object-fit:contain !important;
  object-position:center center !important;
}


/* FINAL FIX: keep AFTER image full vertical height during slider movement.
   The AFTER layer is no longer resized by width. It stays full-size and is only clipped. */
.before-after-slider,
.before-after,
.ba-slider,
.comparison-slider,
.slider-comparison,
.ba{
  position:relative !important;
  overflow:hidden !important;
  border-radius:26px !important;
  background:#eee5ce !important;
}

/* Any direct images in the comparison are full-size layers */
.before-after-slider img,
.before-after img,
.ba-slider img,
.comparison-slider img,
.slider-comparison img,
.ba img{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  display:block !important;
}

/* BEFORE remains full frame */
.before-after-slider .before,
.before-after .before,
.ba-slider .before,
.comparison-slider .before,
.slider-comparison .before,
.ba .before,
img.before,
img.ba-before,
img[src*="before"],
img[src*="dental-before"]{
  object-fit:contain !important;
  object-position:center center !important;
  background:#eee5ce !important;
  z-index:1 !important;
}

/* AFTER remains full frame and gets revealed by clipping, not by scaling */
.before-after-slider .after,
.before-after .after,
.ba-slider .after,
.comparison-slider .after,
.slider-comparison .after,
.ba .after,
img.after,
img.ba-after,
img[src*="after"],
img[src*="dental-after"]{
  object-fit:cover !important;
  object-position:center center !important;
  background:#ffffff !important;
  z-index:2 !important;
  width:100% !important;
  height:100% !important;
  min-width:100% !important;
  min-height:100% !important;
  clip-path:inset(0 calc(100% - var(--slider-position, var(--position, var(--pos, 50%)))) 0 0) !important;
}

/* If there is an after wrapper, it should NOT set the image height/width. */
.after-wrapper,
.after-wrap,
.ba-after-wrap,
.before-after__after,
.comparison-after{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  overflow:visible !important;
  clip-path:inset(0 calc(100% - var(--slider-position, var(--position, var(--pos, 50%)))) 0 0) !important;
  z-index:2 !important;
  background:#ffffff !important;
}

.after-wrapper img,
.after-wrap img,
.ba-after-wrap img,
.before-after__after img,
.comparison-after img{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:cover !important;
  object-position:center center !important;
}

/* Keep divider/handle above both image layers */
.slider-handle,
.ba-handle,
.comparison-handle,
.handle,
.divider,
.slider-divider{
  z-index:10 !important;
}


/* Updated old dental before image */
img[src*="dental-before-rev1"]{
  background:#eee5ce !important;
  object-fit:contain !important;
  object-position:center center !important;
}

/* Keep before/after images the same full frame size */
.before-after-slider img,
.before-after img,
.ba-slider img,
.comparison-slider img,
.slider-comparison img,
.ba img{
  max-width:none !important;
  max-height:none !important;
}


/* iPad + mobile BEFORE / AFTER label visibility fix */
.before-after-label,
.before-after-eyebrow,
.before-after-copy .eyebrow,
.slider-label,
.section-label,
.overline,
.kicker,
.before-after-text small,
.before-after-text .small-label {
    color: #1f2b46 !important;
    opacity: 1 !important;
    visibility: visible !important;
    -webkit-text-fill-color: #1f2b46 !important;
}

/* Explicitly target the actual text block */
.before-after-copy p:first-child,
.before-after-content p:first-child,
.before-after-left p:first-child {
    color: #1f2b46 !important;
    font-weight: 700 !important;
    letter-spacing: 0.22em !important;
    text-transform: uppercase !important;
    opacity: 1 !important;
}

/* iPad Safari rendering fix */
@media screen and (max-width: 1366px) {
    .before-after-copy p:first-child,
    .before-after-content p:first-child,
    .before-after-left p:first-child {
        color: #1f2b46 !important;
        -webkit-text-fill-color: #1f2b46 !important;
    }
}


/* FINAL iPad BEFORE / AFTER green label fix */
@media screen and (min-width: 768px) and (max-width: 1366px) {
  #transform .left-copy p,
  .transform .left-copy p,
  .before-after-label,
  .before-after-eyebrow,
  .before-after-copy .eyebrow,
  .before-after-copy p:first-child,
  .before-after-content p:first-child,
  .before-after-left p:first-child,
  .slider-label,
  .section-label,
  .overline {
    color: #77ad7d !important;
    -webkit-text-fill-color: #77ad7d !important;
    opacity: 1 !important;
    visibility: visible !important;
    font-weight: 900 !important;
    letter-spacing: 0.32em !important;
    text-transform: uppercase !important;
  }
}

/* Match MacBook green on all screen sizes for this specific section */
#transform .left-copy p,
.transform .left-copy p {
  color: #77ad7d !important;
  -webkit-text-fill-color: #77ad7d !important;
  opacity: 1 !important;
}
