.header {
    font-family: 'Open Sans', sans-serif;
    display:flex;
    align-items: center;
    width: 100%;
    padding:10px;
    position: relative;
}

.red-section{
  position: relative;
  background: red;
  color: #fff;
  padding: 8px 20px;
  min-height: 38px;           /* gives room so nothing overlaps */
}

/* Center title independent of anything else */
.nameRed{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%);  /* PERFECT center */
  font-weight: 700;
  font-size: 18px;
  white-space: nowrap;
}

/* Contact info pinned to the right, with a gap */
.contact-info{
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  gap: 18px;                  /* <-- the gap you asked for */
  white-space: nowrap;
  font-size: 14px;
}

.button-container {
    display:flex;
    flex-grow: 1;
    justify-content: center;
}

.button {
    font-size:17px; 
    background-color: white; 
    color: black; 
    border-radius: 25px;
    margin: 0 30px;
    padding: 0 5px;
    border: none;
    cursor: pointer;
}

.quote {
  display: inline-block;
  padding: 10px 18px;
  border: 2px solid #2f2f2f;
  border-radius: 999px;
  color: #2f2f2f;
  text-decoration: none;
  font-weight: 700;
  background: rgba(255,255,255,.75);
  backdrop-filter: blur(2px);
  transition: background .2s ease, color .2s ease;
}
.btn:hover { background:#2f2f2f; color:#fff; }


.logo{
    display:inline-block;
    border: 1px solid lightgrey;
    margin: 0 60px;
    width: 150px; 
}

/* overlay that dims + blurs the page */
.drawer-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.2);
  backdrop-filter: blur(5px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .3s;
  z-index: 98;
}

/* drawer panel */
.drawer {
  position: fixed;
  top: 0; right: 0;
  width: 300px; height: 100%;
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(8px);
  box-shadow: -4px 0 20px rgba(0,0,0,.15);
  transform: translateX(100%);
  transition: transform .3s;
  z-index: 99;
  padding: 20px;
}
.drawer nav {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.drawer a {
  display: flex;
  flex-direction: column;
  place-items: center;
  text-decoration: none;
  font-size: 18px;
  font-family: 'Open Sans', sans-serif;
  padding: 10px 18px;
  border: 2px solid #2f2f2f;
  border-radius: 999px;
  color: #2f2f2f;
  text-decoration: none;
  font-weight: 700;
  background: rgba(255,255,255,.75);
  backdrop-filter: blur(2px);
  transition: background .2s ease, color .2s ease;
}
.drawer a:hover { background:#2f2f2f; color:#fff; }


/* buttons */
.menu-toggle, .close {
  font-size: 22px;
  border: none;
  background: transparent;
  cursor: pointer;
}

/* when open */
body.drawer-open .drawer { transform: translateX(0); }
body.drawer-open .drawer-overlay {
  opacity: 1;
  pointer-events: auto;
}
body.drawer-open { overflow: hidden; } /* stop scrolling when open */

.menu-toggle{
    display: none;
    font-size: 50px;
    cursor: pointer;
    background: none;
    border: none;
    padding: 5px;
}

.hero {
    font-family: 'Open Sans', sans-serif;
    position: relative;
    height: clamp(420px, 60vh, 680px);
    overflow: hidden;
}

.hero-media {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;               /* fills without distortion */
    object-position: center;
}

/*.hero-scrim {                
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to bottom,
        rgba(0,0,0,.35),
        rgba(0,0,0,.55)
    );
}*/

.hero-text {
    position: relative;         /* sits above scrim */
    z-index: 1;
    height: 100%;
    display: grid;
    place-items: center;           /* center both axes */
    text-align: center;
    color: black;
    padding: 1rem;
}

.hero-text h2 { font-size: 50px; margin: 0 0 .5rem; }
.hero-text h1 { font-size: 80px; margin: 0 0 .5rem; }
.hero-text p { font-size: 25px; opacity: .95; }

/* Card */
.PD-slab {
  font-family: 'Open Sans', sans-serif;
  background: #ffffff;           /* light grey like your section */
  border-radius: 20px;
  padding: 36px 28px;
  margin: 32px 0;
}

/* Left: big heading */
.PD-title {
  font-size: clamp(28px, 5vw, 56px);
  line-height: 1.1;
  font-weight: 700;
  color: #333;                    /* dark grey similar to screenshot */
  margin: 2;
}

/* Right: paragraph + button at bottom-right */
.PD-copy {
  display: grid;
  gap: 20px;
  
}

.PD-copy p {
  color: #555;
  font-size: clamp(16px, 1.6vw, 18px);
  line-height: 1.6;
  margin: 1;
}

/* Section wrapper (matches your max width rhythm) */
.treatments {
  font-family: 'Open Sans', sans-serif;
  max-width: 1200px;
  margin: 40px auto;
  padding: 0 20px;
}

/* Two-up grid that collapses nicely on mobile */
.treatments-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(260px, 1fr));
  gap: 28px;
}

/* Card */
.t-card {
  background: #f5f5f6;           /* soft grey like your shot */
  border-radius: 22px;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
  padding: 18px;
  display: grid;
  grid-template-rows: auto auto 1fr auto; /* button sticks to bottom */
  gap: 12px;
}

/* Rounded image */
.t-thumb {
  width: 100%;
  aspect-ratio: 1 / 1;           /* square window; change to 4/3 if you prefer */
  object-fit: cover;
  border-radius: 18px;
  display: block;
}

/* Titles & text */
.t-title {
  margin: 6px 4px 0;
  font-size: clamp(20px, 2.4vw, 28px);
  font-weight: 700;
  color: #333;
}
.t-copy {
  margin: 0 4px;
  color: #666;
  line-height: 1.6;
  font-size: 15px;
  max-width: 56ch;               /* readable line-length like your example */
}

/* CTA button */
.btn {
  display: inline-block;
  padding: 10px 18px;
  border: 2px solid #2f2f2f;
  border-radius: 999px;
  color: #2f2f2f;
  text-decoration: none;
  font-weight: 700;
  background: rgba(255,255,255,.75);
  backdrop-filter: blur(2px);
  transition: background .2s ease, color .2s ease;
}
.btn:hover { background:#2f2f2f; color:#fff; }

/* ===== Before/After Card ===== */
.ba-card{
  max-width: 520px;
  margin: 28px auto;
  padding: 22px 18px 18px;
  background:#3f3f42;        /* dark like your shots */
  color:#fff;
  border-radius: 34px;
  box-shadow: 0 12px 28px rgba(0,0,0,.18);
  text-align:center;
}

.ba-title{
  font-size: clamp(30px, 5vw, 56px);
  line-height: .95;
  letter-spacing:.02em;
  margin: 6px 0 18px;
  font-weight: 800;
}

/* Rounded image window */
.ba-frame{
  position: relative;
  aspect-ratio: 16/10;        /* change to 4/3 if you prefer */
  border-radius: 22px;
  overflow: hidden;
  background:#d9d9db;
  box-shadow: inset 0 2px 12px rgba(0,0,0,.15);
}

/* Stack both images */
.ba-img{
  position:absolute; inset:0;
  width:100%; height:100%;
  object-fit: cover;
  user-select: none;
  pointer-events: none;
  z-index: 0;
}
.ba-img-before{
  width:50%;                   /* JS updates this; 50% default */
  border-right: 2px solid rgba(255,255,255,.7);
}

/* Handle (center knob) */
.ba-handle{
  position:absolute;
  top:50%; left:50%;
  transform: translate(-50%,-50%);
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px;
  border-radius:999px;
  border:none;
  background:#fff;
  color:#333;
  box-shadow: 0 6px 18px rgba(0,0,0,.18);
  cursor: ew-resize;
  z-index:4;
}

/* Range slider (invisible, but accessible/keyboardable) */
.ba-range{
  position:absolute; inset:0; width:100%; height:100%;
  opacity:0; 
  cursor: ew-resize;
  pointer-events: none;
  z-index:1;                   /* sits above images, below badges */
}

/* Badges */
.ba-badge{
  position:absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,.92);
  color:#222;
  padding: 6px 12px;
  border-radius: 999px;
  font-weight:700;
  font-size: 14px;
  z-index:2;
}
.ba-badge-left { left: 16px; }
.ba-badge-right{ right: 16px; }

/* CTA under the window */
.ba-cta{
  display:inline-block;
  margin-top: 16px;
  padding: 12px 20px;
  background:#e7e7ea;
  color:#333;
  text-decoration:none;
  border-radius:999px;
  font-weight:700;
  box-shadow: inset 0 3px 10px rgba(255,255,255,.35), 0 4px 14px rgba(0,0,0,.12);
  transition: transform .08s ease, background .18s ease;
}
.ba-cta:hover{ background:#d9d9dd; }
.ba-cta:active{ transform: translateY(1px); }

/* Mobile spacing */
@media (max-width:640px){
  .ba-card{ padding:18px 14px 16px; border-radius:28px; }
  .ba-frame{ border-radius:18px; }
}


/* --- Layout --- */
.mc{
  --gap: 22px;
  max-width: 1200px;
  margin: 36px auto;
  padding: 0 20px;
}
.mc-title{
  font-size: clamp(26px, 4vw, 42px);
  font-weight: 800;
  margin: 0 0 14px;
}

/* viewport with arrows */
.mc-viewport{
  position: relative;
}

/* horizontal scroller */
.mc-track{
  position: relative;
  overflow-x: auto !important; 
  z-index: 1;
  list-style: none;
  margin: 0;
  padding: 8px 0;
  display: flex;
  gap: var(--gap);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
}

/* cards */
.mc-card{
  scroll-snap-align: start;
  flex: 0 0 auto;
  width: 100%;
  border-radius: 18px;
  background: #f2f2f3;
  box-shadow: 0 10px 24px rgba(0,0,0,.10);
  overflow: hidden;
}
.mc-card img{
  display: block;
  width: 100%;
  height: 280px;              /* adjust if you want */
  object-fit: cover;
}
/* arrows */
.mc-nav{
  position: absolute;
  top: 50%;
  pointer-events: auto;
  transform: translateY(-50%);
  width: 40px; 
  height: 40px;
  border: none; 
  border-radius: 999px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 6px 18px rgba(0,0,0,.15);
  cursor: pointer;
  display: grid; 
  place-items: center;
  font-size: 26px; 
  line-height: 1; 
  color: #333;
  z-index: 5;
}
.mc-prev{ left: -8px; }
.mc-next{ right: -8px; }
.mc-nav[disabled]{ opacity:.35; pointer-events:none; }

/* CTA */
.mc-cta{
  display: inline-block;
  margin: 12px auto 0;
  padding: 12px 18px;
  background: #5b5b5b; color: #fff;
  text-decoration: none; border-radius: 999px;
  font-weight: 700;
  box-shadow: inset 0 4px 10px rgba(255,255,255,.2), 0 4px 14px rgba(0,0,0,.10);
}
.mc-cta:hover{ background:#444; }

/* Wrapper card */
.faq{
  max-width: 1100px;
  margin: 40px auto;
  padding: 18px 20px 24px;
  background: #f1f1f2;              /* light grey like your shot */
  border-radius: 22px;
  box-shadow: 0 10px 26px rgba(0,0,0,.08);
}
.faq-title{
  font-size: clamp(28px, 4.6vw, 56px);
  font-weight: 800;
  text-align: center;
  margin: 6px 0 12px;
  letter-spacing: .02em;
}

/* List */
.faq-list{ display: grid; gap: 8px; }

/* Row (question button) */
.faq-q{
  width: 100%;
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px;
  padding: 18px 14px;
  background: #fff;
  border: 1px solid #e7e7ea;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,.04);
  cursor: pointer;
  text-align: left;
  font-size: 16px;
  color: #2a2a2a;
}
.faq-q:hover{ background:#fafafa; }
.faq-q:focus{ outline: 2px solid #9aa6ff; outline-offset: 2px; }

/* Chevron rotation on open */
.faq-chevron{ transition: transform .18s ease; opacity: .8; }
.faq-q[aria-expanded="true"] .faq-chevron{ transform: rotate(180deg); }

/* Answer panel */
.faq-a{
  margin: 6px 10px 12px;
  padding: 0 6px 6px;
  color: #555;
  line-height: 1.6;
  /* smooth open/close */
  overflow: hidden;
  max-height: 0;
  transition: max-height .22s ease;
  border-left: 3px solid #e4e4e7;
}
.faq-a.show{ max-height: 420px; }   /* enough for typical answers */

/* CTA */
.faq-cta{
  display: inline-block;
  margin: 14px auto 0;
  padding: 12px 18px;
  background:#5b5b5b; color:#fff; text-decoration:none;
  border-radius: 999px; font-weight: 700;
  box-shadow: inset 0 4px 10px rgba(255,255,255,.25), 0 4px 14px rgba(0,0,0,.10);
}
.faq-cta:hover{ background:#444; }


:root{
  --footer-bg:#3a3a3f;     /* dark grey like your screenshot */
  --footer-fg:#f2f2f2;
  --footer-dim:#cfcfcf;
  --accent:#ffffff;
}

.site-footer{
  background:var(--footer-bg);
  color:var(--footer-fg);
  border-radius:18px 18px 0 0;  /* rounded top corners */
  margin-top:40px;
  box-shadow:0 -6px 24px rgba(0,0,0,.18) inset;
}

.footer-inner{
  max-width:1200px;
  margin:0 auto;
  padding:28px 20px 18px;
  display:grid;
  grid-template-columns: 1.25fr 1fr 1fr 1fr; /* brand + three link cols */
  gap:28px;
}

.brand-mark{
  font-weight:800;
  letter-spacing:.06em;
  font-size:22px;
}
.brand-mark span{
  display:block;
  font-weight:600;
  opacity:.9;
  margin-top:2px;
}

.brand-blurb{
  margin:10px 0 14px;
  color:var(--footer-dim);
  line-height:1.5;
}

.contact{ font-style:normal; display:grid; gap:10px; }
.address{ color:var(--footer-fg); opacity:.9; }

.contact-row{
  display:inline-flex; gap:10px; align-items:center;
  color:var(--footer-fg); text-decoration:none;
}
.contact-row svg{ opacity:.9; }
.contact-row:hover{ text-decoration:underline; }

/* Socials */
.socials{ display:flex; gap:10px; margin-top:6px; }
.social{
  display:inline-flex; align-items:center; justify-content:center;
  width:32px; height:32px; border-radius:50%;
  background:#2b2b2f; color:var(--accent); text-decoration:none;
  transition:transform .12s ease, background .2s ease;
}
.social:hover{ transform:translateY(-1px); background:#222; }

/* Link columns */
.footer-col h4{
  margin:2px 0 10px; font-size:16px; font-weight:700; color:var(--accent);
}
.footer-col ul{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.footer-col a{
  color:var(--footer-dim); text-decoration:none;
}
.footer-col a:hover{ color:#fff; text-decoration:underline; }

/* Bottom bar */
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.12);
  margin-top:14px;
  text-align:center;
  padding:10px 16px 16px;
  color:var(--footer-dim);
  font-size:14px;
}


@media (max-width: 900px) {
    .button-container {
        display:none;
    }
    .menu-toggle {
        display: block;
        position: absolute;
        right: 50px;
        top: 50%;
        transform: translateY(-50%);
    }
    .header {
        justify-content:flex-start;
    }

    .red-section{
        display:none;
    }
}
@media (max-width: 980px){
  .footer-inner{
    grid-template-columns: 1fr 1fr;
  }
  .mc-card{ 
    width: calc((100% - var(--gap)*2) / 3); 
}
}
@media (max-width: 640px){
  .footer-inner{
    grid-template-columns: 1fr;
  }
  .footer-bottom{ 
    font-size:13px;
  } 
  .ba-card{ 
    padding:18px 14px 16px; 
    border-radius:28px;
  }
  .ba-frame{ 
    border-radius:18px; 
  }
  .faq{ 
    padding: 14px 12px 20px; 
    border-radius:18px; 
  }
  .faq-q{ 
    padding: 16px 12px; 
  }
}
/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
  .btn-cta { transition: none; }
}
@media (max-width: 780px) {
  .treatments-grid { grid-template-columns: 1fr; }
}
@media (min-width: 640px) and (max-width: 979px){
  .mc-card{ width: calc((100% - var(--gap)) / 2); }
}
