:root{
    --aqua:       #14B8AE;   /* primary teal/aquamarine */
    --aqua-deep:  #0C7E77;
    --aqua-pale:  #E6F8F6;   /* light aqua wash for alt sections */
    --aqua-line:  #CBEEEA;   /* borders/dividers */
    --coral:      #C9A876;   /* sandy accent - used sparingly, never as a background */
    --ink:        #17332F;
    --white:      #FFFFFF;

    --display: "Lora", Georgia, serif;
    --body:    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

    --max: 1120px;
  }

  *{ box-sizing:border-box; margin:0; padding:0; }
  html{ scroll-behavior:smooth; }
  body{
    font-family:var(--body);
    color:var(--ink);
    background:var(--white);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  a{ color:inherit; text-decoration:none; }
  ul{ list-style:none; }

  @media (prefers-reduced-motion: reduce){
    *{ animation-duration:0.01ms !important; transition-duration:0.01ms !important; scroll-behavior:auto !important; }
  }

  .wrap{ max-width:var(--max); margin:0 auto; padding:0 24px; }

  header{
    position:sticky; top:0; z-index:50;
    background:rgba(255,255,255,0.92);
    backdrop-filter:blur(8px);
    border-bottom:1px solid var(--aqua-line);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 24px;
    max-width:var(--max); margin:0 auto;
  }
  .brand{
    font-family:var(--display); font-weight:600; font-size:1.15rem;
    color:var(--aqua-deep); letter-spacing:0.01em;
  }
  .brand span{ display:block; font-family:var(--body); font-weight:500; font-size:0.68rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--aqua); margin-top:2px; }

  .nav-links{ display:none; align-items:center; gap:28px; }
  .nav-links a{ font-size:0.92rem; font-weight:500; color:var(--ink); padding:4px 0; }
  .nav-links a:hover{ color:var(--aqua-deep); }
  .nav-links a:focus-visible{ outline:2px solid var(--coral); outline-offset:4px; }

  .nav-cta{
    display:none; background:var(--aqua); color:var(--white);
    padding:10px 20px; border-radius:100px; font-size:0.88rem; font-weight:600; white-space:nowrap;
  }
  .nav-cta:hover{ background:var(--aqua-deep); }
  .nav-cta:focus-visible{ outline:2px solid var(--coral); outline-offset:3px; }

  .nav-phone{ font-size:0.88rem; font-weight:600; color:var(--aqua-deep); }

  .menu-btn{ background:none; border:none; cursor:pointer; padding:6px; display:flex; flex-direction:column; gap:5px; }
  .menu-btn span{ width:22px; height:2px; background:var(--aqua-deep); display:block; border-radius:2px; }
  .menu-btn:focus-visible{ outline:2px solid var(--coral); outline-offset:4px; }

  .mobile-panel{ display:none; flex-direction:column; background:var(--white); border-top:1px solid var(--aqua-line); padding:8px 24px 20px; }
  .mobile-panel.open{ display:flex; }
  .mobile-panel a{ padding:12px 0; font-size:1rem; font-weight:500; border-bottom:1px solid var(--aqua-line); }
  .mobile-panel .nav-cta{ display:inline-block; margin-top:16px; text-align:center; }

  @media (min-width:900px){
    .nav-links{ display:flex; }
    .nav-cta{ display:inline-block; }
    .nav-phone{ display:none; }
    .menu-btn{ display:none; }
  }

  .hero{
    padding:72px 0 56px;
    background:linear-gradient(180deg, var(--aqua-pale) 0%, var(--white) 100%);
  }
  .hero-grid{ display:grid; grid-template-columns:1fr; gap:40px; align-items:center; }
  @media (min-width:900px){ .hero-grid{ grid-template-columns:1.1fr 0.9fr; gap:52px; } }
  .hero-text{ display:flex; flex-direction:column; align-items:flex-start; gap:22px; }
  .hero-photo{
    width:100%; aspect-ratio:4/3; border-radius:20px; overflow:hidden;
    box-shadow:0 20px 44px rgba(20,184,174,0.16);
  }
  .hero-photo img{ width:100%; height:100%; object-fit:cover; object-position:center 60%; display:block; }
  @media (max-width:899px){ .hero-photo{ aspect-ratio:16/10; } }
  .eyebrow{ font-size:0.78rem; font-weight:600; letter-spacing:0.14em; text-transform:uppercase; color:var(--aqua-deep); }
  h1{
    font-family:var(--display); font-weight:600;
    font-size:clamp(2.3rem, 7vw, 3.6rem);
    line-height:1.08; color:var(--aqua-deep); max-width:15ch;
  }
  h1 em{ font-style:italic; color:var(--coral); }
  .hero-sub{ font-size:1.08rem; color:var(--ink); max-width:46ch; opacity:0.85; }
  .hero-ctas{ display:flex; flex-wrap:wrap; gap:14px; margin-top:6px; }
  .btn-primary{
    background:var(--aqua); color:var(--white);
    padding:15px 30px; border-radius:100px; font-weight:600; font-size:0.96rem; display:inline-block;
    transition:background 0.2s ease, transform 0.2s ease;
  }
  .btn-primary:hover{ background:var(--aqua-deep); transform:translateY(-1px); }
  .btn-primary:focus-visible{ outline:2px solid var(--coral); outline-offset:3px; }
  .btn-ghost{
    border:1.5px solid var(--aqua); color:var(--aqua-deep);
    padding:14px 28px; border-radius:100px; font-weight:600; font-size:0.96rem;
  }
  .btn-ghost:hover{ background:var(--aqua-pale); }
  .btn-ghost:focus-visible{ outline:2px solid var(--coral); outline-offset:3px; }

  .wave-signature{ width:100%; margin-top:8px; }
  .wave-caption{
    display:flex; justify-content:space-between; width:100%;
    font-size:0.72rem; font-weight:600; letter-spacing:0.1em; text-transform:uppercase;
    color:var(--aqua-deep); margin-top:10px; opacity:0.7;
  }
  .wave-path-pain{ stroke:var(--coral); stroke-width:2.5; fill:none; stroke-linecap:round; stroke-linejoin:round; }
  .wave-path-calm{
    stroke:var(--aqua-deep); stroke-width:2.5; fill:none; stroke-linecap:round; stroke-linejoin:round;
    stroke-dasharray:600; stroke-dashoffset:600;
    animation:draw 1.8s 0.3s ease forwards;
  }
  @keyframes draw{ to{ stroke-dashoffset:0; } }

  section{ padding:64px 0; }
  .section-head{ max-width:56ch; margin-bottom:36px; }
  .section-head .eyebrow{ margin-bottom:10px; }
  h2{
    font-family:var(--display); font-weight:600;
    font-size:clamp(1.7rem, 4vw, 2.3rem);
    color:var(--aqua-deep); line-height:1.15;
  }
  .lede{ font-size:1.02rem; opacity:0.85; margin-top:12px; }

  .conditions{ background:var(--white); }
  .cond-grid{ display:flex; flex-wrap:wrap; gap:12px; }
  .cond-item{
    background:var(--aqua-pale); border:1px solid var(--aqua-line); border-radius:100px;
    padding:14px 22px; font-weight:600; font-size:0.94rem; color:var(--aqua-deep);
    display:flex; align-items:center; gap:10px;
    transition:background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
  }
  .cond-item:hover{ background:var(--white); border-color:var(--aqua); transform:translateY(-2px); }
  .cond-item::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--aqua); flex-shrink:0; }

  .imagine{ background:var(--aqua-deep); color:var(--white); text-align:center; }
  .imagine .wrap{ max-width:760px; }
  .imagine .eyebrow{ color:var(--coral); }
  .imagine h2{ color:var(--white); }
  .imagine p{ color:var(--aqua-pale); font-size:1.08rem; margin-top:18px; opacity:0.92; }
  .imagine .btn-primary{ background:var(--coral); color:var(--ink); margin-top:28px; }
  .imagine .btn-primary:hover{ background:#b8925f; }

  .features .wrap{ display:grid; grid-template-columns:1fr; gap:20px; }
  @media (min-width:800px){ .features .wrap{ grid-template-columns:repeat(3,1fr); } }
  .feature-card{
    background:var(--white); border:1px solid var(--aqua-line); border-radius:18px;
    padding:32px 26px; display:flex; flex-direction:column; gap:14px;
    transition:transform 0.2s ease, box-shadow 0.2s ease;
  }
  .feature-card:hover{ transform:translateY(-3px); box-shadow:0 12px 28px rgba(20,184,174,0.12); }
  .feature-icon{ width:44px; height:44px; border-radius:12px; background:var(--aqua-pale); display:flex; align-items:center; justify-content:center; }
  .feature-card h3{ font-family:var(--display); font-weight:600; font-size:1.2rem; color:var(--aqua-deep); }
  .feature-card p{ font-size:0.94rem; opacity:0.8; flex-grow:1; }
  .feature-card .link{ font-weight:600; font-size:0.9rem; color:var(--aqua-deep); }
  .feature-card .link::after{ content:" →"; }

  .about-teaser{ background:var(--aqua-pale); }
  .about-teaser .wrap{ max-width:680px; text-align:center; }
  .about-teaser .eyebrow{ justify-content:center; }
  .about-teaser p{ margin-top:14px; opacity:0.85; }
  .about-teaser .link{ display:inline-block; margin-top:18px; font-weight:600; color:var(--aqua-deep); }
  .about-teaser .link::after{ content:" →"; }

  .testimonial{ background:var(--white); padding-top:76px; }
  .testimonial .wrap{ max-width:640px; text-align:center; }
  .testimonial-card{
    position:relative; background:var(--aqua); color:var(--white);
    border-radius:20px; padding:64px 40px 40px; box-shadow:0 20px 44px rgba(20,184,174,0.22);
  }
  .testimonial-badge{
    width:110px; height:auto; display:block; margin:0 auto;
    position:absolute; top:-56px; left:50%; transform:translateX(-50%);
    filter:drop-shadow(0 8px 16px rgba(0,0,0,0.2));
  }
  .stars{ color:var(--white); font-size:1.1rem; letter-spacing:3px; margin-bottom:22px; opacity:0.95; }
  blockquote{
    font-family:var(--display); font-style:italic; font-weight:500;
    font-size:clamp(1.05rem, 2.4vw, 1.3rem); color:var(--white); line-height:1.55;
  }
  .testimonial cite{
    display:block; margin-top:22px; font-style:normal; font-family:"Caveat", cursive;
    font-weight:700; color:var(--white); font-size:2rem; line-height:1;
  }
  /* Make inline links inside paragraph text visually distinct */
p a{
  color: var(--aqua-deep);
  text-decoration: underline;
  text-underline-offset: 2px;
}
p a:hover{
  color: var(--aqua);
}

  footer{ background:var(--ink); color:var(--white); padding:56px 0 28px; }
  .footer-grid{ display:grid; grid-template-columns:1fr; gap:32px; }
  @media (min-width:700px){ .footer-grid{ grid-template-columns:1.3fr 1fr 1fr; } }
  .footer-brand{ font-family:var(--display); font-weight:600; font-size:1.2rem; color:var(--white); }
  .footer-tag{ font-size:0.9rem; opacity:0.6; margin-top:10px; max-width:32ch; }
  .footer-col h4{ font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--aqua); margin-bottom:14px; }
  .footer-col a, .footer-col p{ display:block; font-size:0.92rem; opacity:0.85; margin-bottom:10px; }
  .footer-col a:hover{ opacity:1; text-decoration:underline; }
  .footer-bottom{
    margin-top:44px; padding-top:24px; border-top:1px solid rgba(255,255,255,0.12);
    display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between;
    font-size:0.8rem; opacity:0.55;
  }

/* ---------- Shared inner-page header ---------- */
.page-hero{ padding:52px 0 36px; background:linear-gradient(180deg, var(--aqua-pale) 0%, var(--white) 100%); }
.page-hero h1{ font-family:var(--display); font-weight:600; font-size:clamp(2rem, 5.5vw, 2.9rem); color:var(--aqua-deep); line-height:1.12; max-width:20ch; }
.page-hero .eyebrow{ margin-bottom:10px; }
.page-hero .lede{ max-width:56ch; font-size:1.05rem; opacity:0.85; margin-top:14px; }

/* ---------- Service cards ---------- */
.service-list{ display:flex; flex-direction:column; gap:20px; }
.service-card{
  background:var(--white); border:1px solid var(--aqua-line); border-radius:18px;
  padding:30px 28px; display:flex; flex-direction:column; gap:12px;
}
.service-card.featured{ border-color:var(--aqua); background:var(--aqua-pale); }
.service-card h3{ font-family:var(--display); font-weight:600; font-size:1.3rem; color:var(--aqua-deep); }
.service-card .tag{
  display:inline-block; font-size:0.72rem; font-weight:600; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--aqua-deep); background:var(--aqua-line); padding:4px 12px; border-radius:100px; width:fit-content;
}
.service-card p{ font-size:0.96rem; opacity:0.85; }
.service-card .duration{ font-size:0.86rem; font-weight:600; color:var(--aqua-deep); opacity:0.8; }
.service-card .cta{ align-self:flex-start; margin-top:6px; }

/* ---------- Price table ---------- */
.price-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
  background:var(--aqua-line); border:1px solid var(--aqua-line); border-radius:16px; overflow:hidden;
}
@media (min-width:700px){ .price-grid{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:900px){ .price-grid{ grid-template-columns:repeat(6,1fr); } }
.price-item{ background:var(--white); padding:26px 16px; text-align:center; }
.price-item .mins{ font-size:0.8rem; font-weight:600; letter-spacing:0.04em; text-transform:uppercase; color:var(--aqua-deep); opacity:0.75; }
.price-item .amt{ font-family:var(--display); font-weight:600; font-size:1.7rem; color:var(--aqua-deep); margin-top:6px; }

/* ---------- Simple prose page (Policies) ---------- */
.prose{ max-width:70ch; }
.prose h2{ font-family:var(--display); font-weight:600; font-size:1.4rem; color:var(--aqua-deep); margin-top:34px; margin-bottom:10px; }
.prose h2:first-child{ margin-top:0; }
.prose p{ font-size:0.98rem; opacity:0.88; margin-bottom:14px; }
.prose ul{ margin:0 0 14px 0; display:flex; flex-direction:column; gap:8px; }
.prose li{ font-size:0.98rem; opacity:0.88; padding-left:22px; position:relative; }
.prose li::before{ content:""; position:absolute; left:0; top:9px; width:7px; height:7px; border-radius:50%; background:var(--aqua); }
.callout{
  background:var(--aqua-pale); border-left:3px solid var(--aqua); border-radius:0 12px 12px 0;
  padding:18px 22px; margin:20px 0; font-size:0.94rem;
}

/* ---------- Logo ---------- */
.brand{ display:flex; align-items:center; gap:10px; }
.brand-logo{ height:56px; width:auto; display:block; }
.brand-text{ display:flex; flex-direction:column; }

/* ---------- Bio page ---------- */
.bio-quote{
  font-family:var(--display); font-style:italic; font-weight:500;
  font-size:clamp(1.05rem, 2.2vw, 1.3rem); color:var(--aqua-deep);
  border-left:3px solid var(--aqua); padding-left:22px; margin:36px 0;
  max-width:60ch;
}
.bio-credentials{
  background:var(--aqua-pale); border-radius:16px; padding:26px 28px; margin-top:30px; max-width:60ch;
}
.bio-credentials h3{ font-family:var(--display); font-weight:600; font-size:1.05rem; color:var(--aqua-deep); margin-bottom:12px; }
.bio-credentials ul{ display:flex; flex-direction:column; gap:8px; }
.bio-credentials li{ font-size:0.92rem; opacity:0.85; padding-left:20px; position:relative; }
.bio-credentials li::before{ content:""; position:absolute; left:0; top:8px; width:6px; height:6px; border-radius:50%; background:var(--aqua); }

/* ---------- FAQ accordion ---------- */
.faq-group{ margin-bottom:8px; display:flex; flex-direction:column; gap:14px; }
.faq-group + .faq-group{ margin-top:48px; }
.faq-item{
  background:var(--white); border:1px solid var(--aqua-line); border-radius:14px;
  overflow:hidden; transition:border-color 0.2s ease, box-shadow 0.2s ease;
}
.faq-item[open]{ border-color:var(--aqua); box-shadow:0 8px 24px rgba(20,184,174,0.1); }
.faq-item summary{
  cursor:pointer; padding:20px 24px; font-weight:600; font-size:1rem; color:var(--aqua-deep);
  list-style:none; display:flex; justify-content:space-between; align-items:center; gap:16px;
}
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary::after{
  content:"+"; font-size:1.5rem; font-weight:400; color:var(--white); flex-shrink:0;
  width:28px; height:28px; border-radius:50%; background:var(--aqua);
  display:flex; align-items:center; justify-content:center; line-height:1;
  transition:transform 0.25s ease, background 0.2s ease;
}
.faq-item[open] summary::after{ transform:rotate(135deg); background:var(--aqua-deep); }
.faq-item .faq-answer{
  padding:0 24px 22px; font-size:0.95rem; opacity:0.85; max-width:70ch;
  border-top:1px solid var(--aqua-line); padding-top:16px; margin:0 24px 22px;
}
.faq-item .faq-answer ul{ margin-top:10px; display:flex; flex-direction:column; gap:6px; }
.faq-item .faq-answer li{ padding-left:20px; position:relative; }
.faq-item .faq-answer li::before{ content:""; position:absolute; left:0; top:8px; width:6px; height:6px; border-radius:50%; background:var(--aqua); }

/* ---------- Embedded booking page ---------- */
.booking-wrap{ padding-top:0; }
.booking-frame-holder{
  border-radius:18px; overflow:hidden; border:1px solid var(--aqua-line);
  box-shadow:0 16px 40px rgba(20,184,174,0.1);
  background:var(--white);
  min-height:400px;
}

/* ---------- Contact form ---------- */
.contact-layout{ display:grid; grid-template-columns:1fr; gap:40px; }
@media (min-width:800px){ .contact-layout{ grid-template-columns:0.9fr 1.1fr; } }
.contact-intro p{ font-size:1.02rem; opacity:0.85; margin-top:12px; }
.contact-signoff{ font-family:var(--display); font-style:italic; font-size:1.1rem; color:var(--aqua-deep); margin-top:22px; }
.contact-info{ margin-top:28px; display:flex; flex-direction:column; gap:10px; }
.contact-info a{ font-weight:600; color:var(--aqua-deep); font-size:0.96rem; }

.contact-form{ background:var(--white); border:1px solid var(--aqua-line); border-radius:18px; padding:32px; display:flex; flex-direction:column; gap:18px; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:520px){ .form-row{ grid-template-columns:1fr; } }
.form-field{ display:flex; flex-direction:column; gap:6px; }
.form-field label{ font-size:0.85rem; font-weight:600; color:var(--aqua-deep); }
.form-field input, .form-field select{
  padding:12px 14px; border:1.5px solid var(--aqua-line); border-radius:10px;
  font-family:var(--body); font-size:0.95rem; color:var(--ink); background:var(--white);
}
.form-field input:focus, .form-field select:focus{ outline:none; border-color:var(--aqua); }
.form-submit{
  background:var(--aqua); color:var(--white); border:none; cursor:pointer;
  padding:15px 30px; border-radius:100px; font-weight:600; font-size:0.96rem;
  transition:background 0.2s ease;
}
.form-submit:hover{ background:var(--aqua-deep); }

/* ---------- Legal pages ---------- */
.legal-updated{
  display:inline-block; font-size:0.85rem; font-weight:600; color:var(--aqua-deep);
  background:var(--aqua-pale); padding:6px 16px; border-radius:100px; margin-bottom:8px;
}
.prose h3{ font-family:var(--display); font-weight:600; font-size:1.1rem; color:var(--ink); margin-top:22px; margin-bottom:8px; }
.prose strong{ color:var(--aqua-deep); }

/* ---------- Compact 2-up service cards with expandable details ---------- */
.service-section-head{ margin-bottom:22px; }
.service-section-head + .service-grid{ margin-bottom:48px; }
.service-grid{ display:grid; grid-template-columns:1fr; gap:20px; margin-bottom:20px; }
@media (min-width:700px){ .service-grid{ grid-template-columns:1fr 1fr; } }

.service-card-compact{
  background:var(--white); border:1px solid var(--aqua-line); border-radius:18px;
  padding:28px; display:flex; flex-direction:column; gap:12px;
}
.service-card-compact.featured{ border-color:var(--aqua); background:var(--aqua-pale); }
.service-card-compact h3{ font-family:var(--display); font-weight:600; font-size:1.2rem; color:var(--aqua-deep); }
.service-card-compact .teaser{ font-size:0.94rem; opacity:0.85; }
.service-card-compact .duration{ font-size:0.85rem; font-weight:600; color:var(--aqua-deep); opacity:0.8; }

.service-details{ margin-top:2px; }
.service-details summary{
  cursor:pointer; font-weight:600; color:var(--aqua-deep); font-size:0.88rem;
  list-style:none; display:inline-flex; align-items:center; gap:8px;
}
.service-details summary::-webkit-details-marker{ display:none; }
.service-details summary::after{
  content:"+"; font-size:1.1rem; font-weight:400; color:var(--white); flex-shrink:0;
  width:18px; height:18px; border-radius:50%; background:var(--aqua);
  display:flex; align-items:center; justify-content:center; line-height:1;
  transition:transform 0.25s ease;
}
.service-details[open] summary::after{ transform:rotate(135deg); }
.service-details .details-body{
  margin-top:12px; font-size:0.92rem; opacity:0.85; display:flex; flex-direction:column; gap:10px;
}
.service-card-compact .cta-row{ margin-top:auto; padding-top:6px; }

.phase-list{ display:flex; flex-direction:column; gap:8px; }
.phase-list .phase{ display:flex; justify-content:space-between; gap:12px; font-size:0.92rem; }
.phase-list .phase strong{ color:var(--aqua-deep); }
