:root{--navy:#0b2038;--ink:#14283c;--muted:#687787;--cream:#f6f4ef;--gold:#f5b94c;--line:#dfe3e5;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.55}.section-wrap{max-width:1180px;margin:auto;padding-left:32px;padding-right:32px}.site-header{height:84px;background:var(--navy);display:flex;align-items:center;justify-content:space-between;padding:0 max(32px,calc((100% - 1180px)/2));color:#fff}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;color:#fff;font:700 16px/1 'Space Grotesk',sans-serif;letter-spacing:.08em}.brand b{color:var(--gold)}.brand small{display:block;margin-top:6px;font:600 9px/1 'DM Sans',sans-serif;letter-spacing:.2em;color:#91a2b2}.brand-mark{display:grid;place-items:center;width:35px;height:35px;background:var(--gold);color:var(--navy);font:700 21px 'Space Grotesk';clip-path:polygon(22% 0,100% 0,78% 100%,0 100%)}.nav{display:flex;align-items:center;gap:28px}.nav a{color:#dce4eb;text-decoration:none;font-size:14px}.nav a:hover{color:var(--gold)}.nav-phone{border-left:1px solid #506375;padding-left:28px;color:#fff!important;font-weight:700}.menu-toggle{display:none;background:none;border:0;color:#fff;font-size:25px}.hero{min-height:610px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:40px;padding-top:50px;padding-bottom:60px}.eyebrow{color:#9b6410;text-transform:uppercase;letter-spacing:.15em;font-size:12px;font-weight:700;margin:0 0 20px}.status-dot{display:inline-block;width:8px;height:8px;background:#39a675;border-radius:50%;margin-right:8px}.hero h1,h2{font:600 clamp(42px,5.2vw,72px)/1.02 'Space Grotesk',sans-serif;letter-spacing:-.055em;margin:0;color:var(--navy)}h2{font-size:clamp(35px,4.4vw,56px)}h1 em,h2 em{font-style:normal;color:#bd7a1b}.hero-lede{max-width:480px;color:var(--muted);font-size:18px;margin:25px 0 30px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:16px;border:0;border-radius:3px;padding:15px 21px;text-decoration:none;font:700 14px 'DM Sans';cursor:pointer;transition:.2s}.button span{font-size:19px}.button-primary{background:var(--gold);color:var(--navy)}.button-primary:hover{background:#ffc962;transform:translateY(-2px)}.button-ghost{border:1px solid #b3bbc2;color:var(--navy);background:transparent}.button-ghost:hover{border-color:var(--navy)}.trust-row{display:flex;gap:24px;margin-top:32px;color:#71808e;font-size:12px}.hero-visual{position:relative;height:450px;display:grid;place-items:center}.visual-card{height:390px;width:min(350px,80%);background:var(--navy);border-radius:4px;box-shadow:25px 30px 60px #0b203826;color:white;padding:22px;position:relative;z-index:1;overflow:hidden}.visual-card:after{content:'';position:absolute;width:280px;height:280px;border:1px solid #52708b;border-radius:50%;right:-140px;top:70px}.visual-top{display:flex;justify-content:space-between;font:11px 'Space Grotesk';color:#91a2b2;letter-spacing:.12em}.signal{color:#5bc392}.fridge-art{height:230px;width:165px;margin:26px auto 0;border:4px solid #d4dde3;border-radius:9px 9px 5px 5px;position:relative;background:linear-gradient(100deg,#afc3cc,#e8eff0 45%,#99adb8);box-shadow:inset -15px 0 18px #6f889533}.fridge-art:before{content:'';position:absolute;top:60%;left:0;right:0;border-top:3px solid #a7b7be}.fridge-handle{position:absolute;top:18px;right:12px;height:62px;border-left:4px solid #859aa5;border-radius:5px}.fridge-line{position:absolute;top:135px;right:12px;height:62px;border-left:4px solid #859aa5;border-radius:5px}.fridge-display{position:absolute;bottom:22px;left:14px;color:#f5b94c;font:700 12px 'Space Grotesk';letter-spacing:.08em}.fridge-display small{font-size:8px;color:#dbe2e5}.visual-caption{display:flex;flex-direction:column;position:absolute;bottom:20px;left:22px;font:16px 'Space Grotesk'}.visual-caption span{color:#f5b94c}.orbit{position:absolute;border:1px solid #d7c9ad;border-radius:50%;width:390px;height:210px;transform:rotate(-35deg)}.orbit-two{width:260px;height:160px;transform:rotate(55deg);border-color:#e9ddc8}.service-strip{background:#eae9e4;border-top:1px solid #dddcd7;border-bottom:1px solid #dddcd7}.strip-inner{height:78px;display:flex;align-items:center;justify-content:space-between;color:#4d5e6d;text-transform:uppercase;font-size:11px;letter-spacing:.12em}.strip-inner i{width:5px;height:5px;background:var(--gold);border-radius:50%}.content-section{padding-top:110px;padding-bottom:120px}.section-heading{display:flex;justify-content:space-between;gap:50px;align-items:end;margin-bottom:48px}.section-heading>p{max-width:360px;margin:0;color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.service-card{min-height:250px;background:#fff;border:1px solid var(--line);padding:25px;position:relative;transition:.2s}.service-card:hover{transform:translateY(-4px);box-shadow:0 16px 30px #0b203814}.service-card.featured{background:var(--navy);color:#fff}.card-number{position:absolute;top:25px;right:25px;color:#99a7b2;font:11px 'Space Grotesk'}.service-icon{font-size:29px;color:var(--gold);height:65px}.service-card h3{font:600 21px 'Space Grotesk';margin:0 0 8px}.service-card p{color:#73818d;font-size:14px;margin:0 0 18px}.featured p{color:#acbbc6}.service-card a{color:var(--navy);font-size:13px;font-weight:700;text-decoration:none}.featured a{color:var(--gold)}.service-card a span{margin-left:8px}.service-card:last-child{grid-column:span 2}.about-section{background:var(--navy);color:#fff;padding:110px 0}.about-grid{display:grid;grid-template-columns:38% 1fr;gap:80px;align-items:center}.about-section h2{color:#fff}.about-section h2 em{color:var(--gold)}.about-stamp{height:270px;width:270px;border:1px solid #4e6a82;border-radius:50%;display:grid;place-items:center;margin:auto;position:relative}.about-stamp:before,.about-stamp:after{content:'';position:absolute;border:1px solid #4e6a82;border-radius:50%;inset:22px}.about-stamp:after{inset:42px}.about-stamp span{font:600 92px 'Space Grotesk';color:var(--gold)}.about-stamp small{position:absolute;bottom:50px;text-align:center;font-size:9px;letter-spacing:.2em;color:#a9bac7}.about-section .eyebrow{color:var(--gold)}.about-copy{color:#a8b6c1;max-width:470px;font-size:17px;margin:28px 0}.signature{display:flex;align-items:center;gap:14px;color:#dfe7ec}.signature-line{width:40px;border-top:1px solid var(--gold)}.signature strong,.signature small{display:block}.signature small{font-size:12px;color:#8ea2b1;margin-top:3px}.area-section{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:100px;padding-top:120px;padding-bottom:120px}.area-copy>p:not(.eyebrow){color:var(--muted);max-width:390px}.area-list{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;margin-top:28px;color:#536473;font-size:14px}.area-list span:before{content:'↗';color:#bd7a1b;margin-right:8px}.map-card{height:330px;background:#e8e7e1;position:relative;overflow:hidden;border:1px solid #d9d9d3}.map-grid{position:absolute;inset:0;opacity:.55;background-image:linear-gradient(25deg,transparent 48%,#cfd2ce 49%,transparent 50%),linear-gradient(100deg,transparent 48%,#cfd2ce 49%,transparent 50%);background-size:70px 80px}.map-ring{position:absolute;border:1px solid #c6923c;border-radius:50%;width:260px;height:260px;left:50%;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 35px #f5b94c12,0 0 0 70px #f5b94c0a}.map-pin{position:absolute;left:50%;top:50%;transform:translate(-50%,-70%);width:48px;height:48px;display:grid;place-items:center;border-radius:50% 50% 50% 0;transform:translate(-50%,-70%) rotate(-45deg);background:var(--navy);color:var(--gold);font-size:21px}.map-label{position:absolute;left:50%;top:54%;transform:translateX(-50%);color:var(--navy);font:700 12px 'Space Grotesk';letter-spacing:.12em;text-align:center}.map-label small{font:10px 'DM Sans';letter-spacing:.05em;color:#667584}.contact-section{background:#ecebe6;padding:110px 0}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}.contact-lede{color:var(--muted);max-width:400px;margin:25px 0 35px}.contact-details{display:grid;gap:20px}.contact-details a{display:flex;gap:14px;align-items:center;text-decoration:none;color:var(--navy)}.contact-details a>span{width:38px;height:38px;border:1px solid #c8c9c3;border-radius:50%;display:grid;place-items:center;color:#a67422}.contact-details small,.contact-details strong{display:block}.contact-details small{font-size:11px;color:#798590;text-transform:uppercase;letter-spacing:.1em}.booking-form{background:#fff;padding:30px;display:grid;gap:17px;box-shadow:0 15px 35px #0b20380d}.booking-form label{font-size:12px;font-weight:700;color:#60707d}.booking-form input,.booking-form select,.booking-form textarea{display:block;width:100%;border:0;border-bottom:1px solid #cdd4d7;background:#fff;padding:10px 0;font:15px 'DM Sans';color:var(--navy);outline:0;resize:vertical}.booking-form input:focus,.booking-form select:focus,.booking-form textarea:focus{border-color:#b97e20}.form-note{font-size:12px;color:#84909a;margin:0}.footer{background:var(--navy);color:#9bacb8;padding:28px 0}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px}.footer .brand{font-size:13px}.footer .brand-mark{width:28px;height:28px;font-size:17px}.footer p{margin:0;color:#d9e2e7}.footer-inner>span{font-size:11px}
@media(max-width:800px){.section-wrap{padding-left:22px;padding-right:22px}.site-header{padding:0 22px;height:74px}.menu-toggle{display:block}.nav{display:none;position:absolute;z-index:4;top:74px;left:0;right:0;background:var(--navy);padding:20px 22px;flex-direction:column;align-items:flex-start;gap:19px}.nav.open{display:flex}.nav-phone{border-left:0;padding-left:0}.hero{grid-template-columns:1fr;padding-top:72px;padding-bottom:75px;gap:50px}.hero-visual{height:400px}.visual-card{height:350px}.strip-inner{height:auto;padding-top:20px;padding-bottom:20px;gap:15px;flex-wrap:wrap}.strip-inner i{display:none}.content-section,.about-section,.area-section,.contact-section{padding-top:78px;padding-bottom:78px}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:20px}.service-grid{grid-template-columns:1fr 1fr}.service-card:last-child{grid-column:span 2}.about-grid,.area-section,.contact-grid{grid-template-columns:1fr;gap:48px}.about-stamp{width:210px;height:210px}.about-stamp span{font-size:70px}.about-stamp small{bottom:35px}.map-card{height:280px}.footer-inner{flex-wrap:wrap}.footer p{width:100%;order:3}.hero h1{font-size:49px}}
@media(max-width:480px){.hero h1{font-size:43px}.hero-lede{font-size:16px}.trust-row{display:block}.trust-row span{display:block;margin-bottom:8px}.service-grid{grid-template-columns:1fr}.service-card:last-child{grid-column:auto}.visual-card{width:270px}.area-list{grid-template-columns:1fr}.contact-details a strong{font-size:14px}}
/* Maximus Apex palette */
:root{--navy:#17284f;--ink:#1d355d;--muted:#63788d;--cream:#f3f7fa;--gold:#58b2bb;--line:#c7d7e1;--white:#fff}
h1 em,h2 em{color:#58b2bb!important}.eyebrow{color:#367d9c!important}.button-primary{background:#58b2bb!important;color:#17284f!important}.button-primary:hover{background:#76c7cb!important}.service-strip{background:#dce9ef!important}.contact-section{background:#e6f0f3!important}


/* Site-owned booking button. HCPWidget uses the token in its script URL.
   Avoid hcp-button: the provider injects pill-button styles for that class. */
.booking-widget{display:flex;align-items:center;margin:24px 0 36px;min-width:0}
.apex-booking-button{
  appearance:none;display:inline-flex;align-items:center;justify-content:center;
  gap:14px;min-height:56px;max-width:100%;margin:0;padding:16px 28px;
  border:0;border-radius:0;
  background:linear-gradient(135deg,#030b18 0%,#0c2854 46%,#236ed0 100%);
  color:#fff;font:700 15px/1.4 'DM Sans',sans-serif;letter-spacing:.02em;
  text-transform:none;text-decoration:none;cursor:pointer;
  box-shadow:0 0 34px #2f8cff55,0 14px 35px #07152c40;
  transition:transform .2s ease,box-shadow .2s ease
}
.apex-booking-button span{font-size:20px;color:#63b7ff}
.apex-booking-button:hover{transform:translateY(-2px);box-shadow:0 0 36px #2f8cff88,0 16px 34px #07152c55}
.apex-booking-button:focus-visible{outline:3px solid #63b7ff;outline-offset:4px}
.apex-booking-button:active{transform:translateY(0)}
@media(prefers-reduced-motion:reduce){.apex-booking-button{transition:none}}

/* Hero booking: match the schedule card's 518px desktop column width. */
.hero.hero-with-booking{
  max-width:none;margin-left:0;margin-right:0;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:80px;
  align-items:center
}
.hero-with-booking .hero-copy{min-width:0;max-width:696px}
.hero-with-booking .hero-booking{
  width:100%;max-width:518px;margin:0;justify-self:center;align-self:center
}
.hero-booking .apex-booking-button{width:100%;min-height:64px;font-size:18px}
@media(max-width:800px){
  .hero.hero-with-booking{grid-template-columns:minmax(0,1fr);gap:36px}
  .hero-with-booking .hero-booking{max-width:none}
}


/* Align only the white hero area with the schedule columns. */
.hero.hero-with-booking{
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
}


/* Contact block top spacing. */
#contact{padding-top:32px!important}


/* Booking note moved beneath the online booking button. */
.hero-booking{
  flex-direction:column;
  align-items:stretch;
}
.hero-booking-note{
  margin:16px 0 0;
  color:var(--muted);
  font-size:16px;
  line-height:1.5;
}

/* Selected work gallery beside the Book a Visit copy. */
.work-gallery{
  min-width:0;
  align-self:center;
}
.work-collages{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
  min-height:330px;
}
.work-collage{
  position:relative;
  flex:0 0 51%;
  height:300px;
}
.work-collage img{
  position:absolute;
  width:88%;
  height:76%;
  object-fit:cover;
  background:#fff;
  border:7px solid #fff;
  box-shadow:0 14px 30px #07152c38;
  border-radius:2px;
}
.work-collage img:first-child{
  left:0;
  top:9%;
  transform:rotate(-6deg);
  z-index:1;
}
.work-collage img:last-child{
  right:0;
  top:0;
  transform:rotate(6deg);
  z-index:2;
}
.work-collage-washer{
  margin-left:-8%;
}
.work-gallery-caption{
  max-width:520px;
  margin:20px auto 0;
  color:var(--muted);
  text-align:center;
  font-size:17px;
  line-height:1.45;
}
@media(max-width:800px){
  .work-gallery{
    margin-top:8px;
  }
  .work-collages{
    min-height:300px;
  }
  .work-gallery-caption{
    font-size:16px;
  }
}

/* Collage layout: preserve the approved pairs and keep each key detail visible. */
.work-collages{
  min-height:360px;
}
.work-collage{
  flex:0 0 50%;
  height:330px;
}
.work-collage img{
  width:104%;
  height:78%;
}
.work-collage img:first-child{
  left:-2%;
  top:8%;
  z-index:2;
}
.work-collage img:last-child{
  right:-2%;
  top:0;
  z-index:1;
}
.work-collage-dryer img{
  width:94%;
  height:82%;
}
.work-collage-dryer img:first-child{
  left:-2%;
  top:8%;
}
.work-collage-dryer img:last-child{
  right:-5%;
  top:1%;
}
.work-collage-washer{
  margin-left:-6%;
}
.work-collage-washer img{
  width:128%;
  height:64%;
}
.work-collage-washer img:first-child{
  left:-16%;
  top:14%;
}
.work-collage-washer img:last-child{
  right:-18%;
  top:3%;
}
@media(max-width:800px){
  .work-collages{
    min-height:330px;
  }
  .work-collage{
    height:300px;
  }
}

/* Client-supplied collages: use the approved finished compositions as-is. */
.work-collages{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  min-height:0;
}
.work-collage-image{
  display:block;
  width:calc(50% - 9px);
  height:auto;
  max-width:100%;
  border:0;
  box-shadow:0 14px 30px #07152c38;
  border-radius:2px;
}
.work-collage-one{transform:rotate(-2deg)}
.work-collage-two{transform:rotate(2deg)}
.work-gallery-caption{
  max-width:520px;
  margin:20px auto 0;
  color:var(--muted);
  text-align:center;
  font-size:17px;
  line-height:1.45;
}
@media(max-width:800px){
  .work-collages{gap:12px}
  .work-collage-image{width:calc(50% - 6px)}
  .work-gallery-caption{font-size:16px}
}

/* Scroll drum effect: content curls behind the fixed header as it leaves the viewport. */
html{
  background:#07152c;
}
main{
  perspective:1500px;
  perspective-origin:50% 0;
  transform-style:preserve-3d;
}
.site-header{
  position:sticky;
  top:0;
  z-index:100;
  isolation:isolate;
}
.site-header::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:-18px;
  height:22px;
  pointer-events:none;
  background:linear-gradient(to bottom,rgba(7,21,44,.28),transparent);
  opacity:.72;
}
.drum-surface{
  position:relative;
  z-index:1;
  transform-style:preserve-3d;
  transform-origin:50% 0;
  backface-visibility:hidden;
  will-change:transform,filter;
}
@media(max-width:800px){
  main{perspective:1200px}
  .drum-surface{transform-origin:50% 0}
}
@media(prefers-reduced-motion:reduce){
  .drum-surface{
    transform:none!important;
    filter:none!important;
  }
}

/* Fixed footer bar with a matching lower drum edge. */
main{
  padding-bottom:78px!important;
}
.footer{
  position:fixed!important;
  left:0;
  right:0;
  bottom:0;
  z-index:101;
  width:100%;
}
.footer::before{
  content:'';
  position:absolute;
  left:0;
  right:0;
  top:-20px;
  height:24px;
  pointer-events:none;
  background:linear-gradient(to top,rgba(7,21,44,.28),transparent);
  opacity:.72;
}

/* Keep the 3D curl inside the viewport and above the page surfaces. */
html,
body{
  overflow-x:hidden;
}
.footer{
  z-index:101!important;
}


/* Keep both navigation bars fixed while page surfaces curl underneath. */
.site-header{
  position:fixed!important;
  top:0;
  left:0;
  right:0;
  width:100%;
  z-index:102!important;
}
main{
  padding-top:74px!important;
  padding-bottom:78px!important;
}


/* Keep links and controls tappable above the transformed drum surfaces. */
.drum-surface{pointer-events:none}
.drum-surface a,
.drum-surface button,
.drum-surface input,
.drum-surface select,
.drum-surface textarea,
.drum-surface label,
.drum-surface [role="button"]{pointer-events:auto}
.apex-booking-button{touch-action:manipulation}


/* Let mobile taps reach interactive descendants through the 3D content layer. */
main{pointer-events:none}
main a,
main button,
main input,
main select,
main textarea,
main label,
main [role="button"]{pointer-events:auto}
