:root{--aqua:#cde1e1;--teal:#a9c7cf;--gold:#f5e19e;--indigo:#2e609a;--rose:#ad6477;--ink:#203f50;--paper:#fbfaf7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.75 Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;max-width:100%}.wrap{max-width:1200px;margin:auto;padding:100px 48px}.eyebrow{font-size:10px;letter-spacing:2.3px;font-weight:700;margin:0 0 22px}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.08;letter-spacing:-1.8px;margin:0}h1{font-size:clamp(52px,5.8vw,88px)}h2{font-size:clamp(38px,4vw,57px)}h3{font-size:29px;letter-spacing:-.6px}em{font-weight:400;color:var(--indigo)}p{margin:0 0 23px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;background:var(--indigo);color:white;padding:15px 25px;font-size:13px;border-radius:2px;transition:background .2s}.button:hover{background:#244b78}.button.small{padding:10px 18px}.actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}.text-link{font-size:13px;border-bottom:1px solid;padding-bottom:5px;display:inline-block}.fine{font-size:12px;opacity:.8;margin:18px 0 0}.skip{position:absolute;top:-90px}.skip:focus{top:0;background:white;padding:12px;z-index:10}header{display:flex;align-items:center;justify-content:space-between;padding:23px 5%;border-bottom:1px solid #d9e0dd;background:var(--paper);position:sticky;top:0;z-index:5}.wordmark{font:22px/1.1 Georgia,serif;letter-spacing:1.2px}.wordmark span{display:block;font:11px/1.7 Arial,sans-serif;letter-spacing:.5px;margin-top:6px}nav{display:flex;align-items:center;gap:27px;font-size:12px}#menu{display:none}.hero{max-width:1600px;margin:auto;padding:75px 7% 0;background:linear-gradient(120deg,#e7eeee,#f5f5ef 60%,#d6e5e6);display:grid;grid-template-columns:1.1fr 1fr;gap:40px}.hero .intro{max-width:450px;margin:30px 0;font-size:15px}.hero-art{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;isolation:isolate}.hero-art img{width:360px;border-radius:50%;mix-blend-mode:multiply}.hero-art>p{text-align:center;font:23px/1.3 Georgia,serif;position:relative;margin-top:0}.orbit{position:absolute;border:1px solid #a7bec0;border-radius:50%;z-index:-1;width:390px;height:440px;top:0;transform:rotate(25deg)}.o2{width:430px;height:380px;top:40px;transform:rotate(-20deg);border-color:#dbc88b}.hero-bottom{grid-column:1/-1;display:flex;justify-content:space-between;padding:26px 0;margin-top:35px;border-top:1px solid #a8c0c3;font-size:9px;letter-spacing:2px}.welcome{text-align:center;max-width:870px}.welcome>p:last-child{max-width:650px;margin:25px auto 0}.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:end;margin-bottom:45px}.section-heading>p{max-width:400px;font-size:14px}.massage{padding-top:20px}.service-list{margin-bottom:35px}details{border-top:1px solid #bacdcc}details:last-child{border-bottom:1px solid #bacdcc}summary{cursor:pointer;padding:23px 0;display:flex;align-items:center;justify-content:space-between;list-style:none;font:24px Georgia,serif}summary::-webkit-details-marker{display:none}summary>span:last-child{font:10px Arial;letter-spacing:2px}details>p{font-size:14px;max-width:750px;margin:0 0 25px}.marconics{background:#e2ecec}.marconics-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:85px;align-items:center}.energy-art{text-align:center}.energy-art img{width:380px;height:auto;mix-blend-mode:multiply;border-radius:50%;margin:0 auto 25px}.energy-art .eyebrow{font-size:9px}.marconics h2{margin-bottom:28px}.marconics p:not(.eyebrow):not(.fine){font-size:14px}.offering-list{list-style:none;padding:0;margin:28px 0}.offering-list li{padding:10px 0;border-top:1px solid #b5cacc;font-size:13px}.offering-list li:before{content:'✧';margin-right:15px;color:var(--indigo)}.about{display:grid;grid-template-columns:1fr 1fr;gap:90px}.script{font:italic 28px Georgia,serif;color:var(--rose);margin:25px 0 35px}.credential{font-size:9px;letter-spacing:1.7px;line-height:2}.about-copy{font-size:14px}.about-copy .large{font:28px/1.35 Georgia,serif}.locations{background:#f1eddf}.location-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:50px}.location-grid article{border-top:1px solid #c8c5b5;padding-top:35px;position:relative}.location-number{position:absolute;right:0;top:24px;font:55px Georgia;color:#d4ceba}.location-grid .eyebrow{margin-bottom:12px}.location-grid p{font-size:14px}.location-grid h3{margin-bottom:25px;max-width:360px}.map{display:block;font-size:11px;margin-top:15px;text-decoration:underline}.booking{text-align:center}.booking>p:not(.eyebrow){max-width:610px;margin:25px auto}.booking-options{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:40px;text-align:left}.booking-options a{border:1px solid #b9caca;padding:25px 20px;font:23px Georgia;position:relative;background:#edf2ef}.booking-options span{display:block;font:9px Arial;letter-spacing:1.5px;margin-bottom:20px}.booking-options b{float:right;font-weight:400}.faq{padding-top:0}footer{background:#203f50;color:#f5f6f1}.footer-grid{padding-top:50px;padding-bottom:40px;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:35px}.footer-grid a{display:block;font-size:12px;line-height:2.5}.footer-grid>a.wordmark{font-size:22px}.footer-bottom{padding-top:20px;padding-bottom:25px;border-top:1px solid #55717c;display:flex;justify-content:space-between;font-size:10px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--rose);outline-offset:5px}@media(max-width:950px){nav{gap:14px}.hero{padding-left:5%;padding-right:5%}.hero-art img{width:280px}.orbit{width:280px;height:350px}.o2{width:310px;height:300px}.wrap{padding-left:30px;padding-right:30px}.marconics-grid{gap:35px}.section-heading{gap:35px}}@media(max-width:700px){header{padding:19px 22px}.wordmark{font-size:19px}#menu{display:block;border:1px solid #abc0c3;background:transparent;padding:5px 12px;font-size:12px}nav{display:none;position:absolute;top:83px;left:0;right:0;background:var(--paper);padding:25px;box-shadow:0 10px 15px #203f5010}nav.open{display:flex;flex-direction:column;align-items:stretch;gap:20px}.hero{grid-template-columns:1fr;padding:50px 25px 0;gap:20px}h1{font-size:57px}.hero-art{padding:25px 0 0}.hero-art img{width:260px}.orbit{top:15px;width:270px;height:290px}.o2{top:40px;width:310px;height:250px}.hero-art>p{font-size:21px}.hero-bottom{gap:18px;flex-wrap:wrap;margin-top:10px;font-size:8px}.wrap{padding:65px 25px}.section-heading,.marconics-grid,.about,.location-grid{grid-template-columns:1fr;gap:30px}.massage{padding-top:0}.section-heading>p{margin-top:20px}.energy-art img{width:240px}.marconics-grid{gap:25px}.about{gap:35px}.location-grid{margin-top:35px;gap:40px}.booking-options{grid-template-columns:1fr}.booking-options a{padding:25px}.booking-options span{margin-bottom:12px}.faq{padding-top:0}summary{font-size:21px;gap:15px}.footer-grid{grid-template-columns:1fr;gap:20px}.footer-bottom{display:block}.footer-bottom span{display:block;margin-bottom:8px}h2{font-size:42px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Soft, rounded shapes drawn from the circular brand mark. */
.button{border-radius:999px;padding:16px 28px;box-shadow:0 6px 18px #2e609a10}.button.small{padding:11px 22px}.hero{border-radius:0 0 48% 5% / 0 0 5% 2%;padding-bottom:24px;background:radial-gradient(ellipse at 88% 24%,#d3e5e5 0,transparent 55%),linear-gradient(120deg,#e7eeee,#f7f5ed 65%,#d6e5e6)}.hero-bottom{border-top-color:#abc3c36e}.hero-art img{box-shadow:0 18px 60px #668d9910}.marconics{border-radius:90px 90px 90px 12px;margin:0 22px;background:radial-gradient(ellipse at 10% 35%,#d1e4e5,transparent 65%),#e7eeee}.locations{border-radius:90px 16px 90px 16px;margin:0 22px;background:linear-gradient(135deg,#f4efdf,#f5f1e9)}.service-list{display:grid;gap:12px}.service-list details{border:1px solid #c3d4d166;border-radius:24px;padding:0 25px;background:#f0f4f0;overflow:hidden;transition:background .2s}.service-list details[open]{background:#e5efed}.service-list details:last-child{border-bottom:1px solid #c3d4d166}.service-list summary{padding:22px 0}.service-list details p{padding-bottom:4px}.location-grid{gap:25px}.location-grid article{border:1px solid #ded9c866;border-radius:34px;padding:35px;background:#ffffff73}.location-number{right:27px;top:20px;opacity:.6}.booking-options{gap:22px}.booking-options a{border:1px solid #bfd0cd80;border-radius:30px;padding:30px 25px;background:linear-gradient(140deg,#e9f1ee,#f5f6ef);transition:transform .2s,box-shadow .2s}.booking-options a:hover{transform:translateY(-4px);box-shadow:0 12px 28px #203f500b}.booking-options a:nth-child(2){background:#f4f0e5}.booking-options a:nth-child(3){background:#f5ecee}.faq details{border-color:#d3dfda}.faq summary{padding-left:8px;padding-right:8px}.text-link{border-radius:0 0 5px 5px}footer{border-radius:70px 70px 0 0}.footer-bottom{border-top-color:#55717c80}#menu{border-radius:999px}@media(max-width:700px){.hero{border-radius:0 0 60px 12px;padding-bottom:12px}.marconics,.locations{margin:0 10px;border-radius:45px 45px 45px 10px}.service-list details{padding:0 20px;border-radius:22px}.service-list summary{font-size:20px}.location-grid article{padding:28px 23px;border-radius:28px}.location-number{right:20px}.booking-options a{border-radius:25px}.footer-grid{padding-top:48px}footer{border-radius:45px 45px 0 0}}
.camilla-portrait{width:235px;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:120px 120px 36px 36px;margin:0 0 30px;box-shadow:12px 12px 0 #cde1e180}.about-copy{align-self:center}@media(max-width:700px){.camilla-portrait{width:210px;margin-bottom:30px}}
.arrow-icon{display:inline-block;width:18px;height:18px;vertical-align:-3px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.booking-options b{display:inline-flex}.clinic-main{padding:75px 25px;background:radial-gradient(ellipse at 10% 20%,#cde1e180,transparent 65%),var(--paper)}.clinic-card{max-width:850px;margin:auto;padding:65px;background:#ffffffb8;border:1px solid #c3d4d180;border-radius:70px 70px 35px 35px;text-align:center}.clinic-card h1{font-size:clamp(40px,5vw,64px)}.clinic-intro{max-width:520px;margin:28px auto 35px}.clinic-card h2{font-size:26px;letter-spacing:-.5px}.clinic-number{display:block;font:clamp(30px,5vw,44px)/1.4 Georgia,serif;color:var(--indigo);margin:16px 0 24px;user-select:all}.clinic-actions{justify-content:center}.copy-number{border:1px solid #a9c7cf;background:transparent;color:var(--ink);padding:14px 25px;border-radius:999px;cursor:pointer;font-size:13px}.copy-number:hover{background:#e5efed}.clinic-details{display:grid;grid-template-columns:1fr 1fr;gap:30px;text-align:left;border-top:1px solid #d3dfda;margin-top:35px;padding-top:30px;font-size:14px}.clinic-details .eyebrow{margin-bottom:12px}.clinic-back{margin-top:30px}@media(max-width:700px){.clinic-main{padding:35px 15px}.clinic-card{padding:40px 23px;border-radius:45px 45px 25px 25px}.clinic-details{grid-template-columns:1fr;gap:10px}.clinic-actions{gap:15px}.clinic-main~footer .footer-bottom{padding-top:35px}header>.text-link{font-size:10px;max-width:110px;text-align:right}}
.hero-art{justify-content:center;gap:30px}.logo-orbits{position:relative;isolation:isolate;width:min(100%,430px);aspect-ratio:1;display:grid;place-items:center;flex-shrink:0}.logo-orbits img{width:84%;margin:0}.logo-orbits .orbit{top:50%;left:50%;width:90%;height:98%;transform:translate(-50%,-50%) rotate(25deg)}.logo-orbits .o2{width:99%;height:88%;transform:translate(-50%,-50%) rotate(-20deg)}.hero-art>p{margin:0 0 10px}.hero-art .orbit{z-index:-1}@media(max-width:950px){.logo-orbits{max-width:340px}}@media(max-width:700px){.hero-art{gap:25px;padding-top:20px}.logo-orbits{width:min(100%,310px)}.hero-art>p{margin:0 0 15px}}

.marconics-offerings {
  grid-column: 1 / -1;
  border-top: 1px solid #b5cacc;
  padding-top: 32px;
}
.marconics-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  margin-top: 24px;
}
.marconics-cards article {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 25px;
  border: 1px solid #b5cacc;
  border-radius: 28px;
  background: #fbfaf7ad;
}
.marconics-cards .eyebrow { margin-bottom: 12px; }
.marconics-cards h4 {
  margin: 0 0 14px;
  font: 23px/1.2 Georgia, serif;
}
.marconics-cards .text-link { margin-top: auto; }
@media (max-width: 850px) {
  .marconics-cards { grid-template-columns: 1fr; }
}

.abmp-membership {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 22px;
  max-width: 280px;
  font-size: 13px;
}
.abmp-membership img { width: 58px; height: auto; flex: none; }

.marconics-grid {
  padding-block: 62px;
  grid-template-columns: minmax(0, 0.75fr) minmax(0, 1.25fr);
  gap: 34px 48px;
}
.marconics .energy-art img {
  width: min(100%, 280px);
  margin: 0 auto;
}
.marconics .eyebrow {
  font-size: 12px;
  letter-spacing: 1.45px;
}
.marconics p:not(.eyebrow):not(.fine),
.marconics .fine {
  font-size: 16px;
  line-height: 1.6;
  opacity: 1;
}
.marconics .button,
.marconics .text-link {
  font-size: 15px;
}
.marconics h2 { margin-bottom: 20px; }
.marconics-offerings { padding-top: 26px; }
@media (max-width: 700px) {
  .marconics-grid {
    padding-block: 38px;
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }
  .marconics .energy-art img { width: min(100%, 165px); }
}

@media (min-width: 701px) {
  .about {
    max-width: 1040px;
    padding-block: 64px;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: clamp(28px, 4vw, 54px);
  }
  .about .camilla-portrait { margin-bottom: 22px; }
  .about .eyebrow { margin-bottom: 13px; }
  .about .script { margin: 16px 0 21px; }
  .about .abmp-membership { margin-top: 16px; }
}

/* Readable secondary text and clear keyboard focus. */
.credential {
  font-size: 11px;
  letter-spacing: 1.25px;
}
.fine {
  font-size: 14px;
  opacity: 1;
}
:where(a, button, summary):focus-visible {
  outline: 2px solid var(--indigo);
  outline-offset: 4px;
}
footer a:focus-visible {
  outline-color: currentColor;
}
.hero-art img {
  height: auto;
}
@media (max-width: 700px) {
  #menu {
    min-height: 44px;
    min-width: 44px;
  }
}

.visit-resources {
  margin-top: 28px;
  padding: clamp(20px, 4vw, 32px);
  background: #fbfaf7;
  border: 1px solid #d3dfda;
  border-radius: 24px;
  text-align: left;
}
.visit-resources h3, .marconics-details h3 { margin-top: 0; }
.resource-list { padding-inline-start: 1.3em; }
.resource-list li + li { margin-top: 8px; }
.marconics-details { padding-block: 0 44px; }
.faq details .resource-list { margin: 0 0 16px; }

.marconics-cards h3 {
  margin: 0 0 14px;
  font: 23px/1.2 Georgia, serif;
}
.marconics-details > .resource-list { margin-top: 24px; }

.home-link { flex: none; font-size: 12px; }
.page-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}
.marconics-page main { padding-block: clamp(24px, 5vw, 64px); }
.marconics-page .marconics-grid {
  padding-block: clamp(38px, 7vw, 84px);
  row-gap: clamp(30px, 5vw, 62px);
}
.marconics-page .marconics-details { padding-bottom: clamp(40px, 7vw, 80px); }
.marconics-portrait-wrap { display: grid; justify-items: center; }
.marconics-portrait-wrap .marconics-portrait {
  width: min(100%, 295px);
  margin: 0;
  height: auto;
  aspect-ratio: auto;
}
@media (max-width: 700px) {
  .marconics-portrait-wrap .marconics-portrait { width: min(100%, 220px); }
  header .home-link { padding-inline: 12px; }
  .page-header-actions { gap: 8px; }
}

.marconics-portrait-wrap .marconics-portrait { transform: scaleX(-1); }

header .nav-book {
  padding-inline: 13px;
  gap: 8px;
  white-space: nowrap;
}
header .nav-book .arrow-icon { width: 14px; height: 14px; }
@media (min-width: 701px) {
  header nav { gap: clamp(10px, 1.8vw, 24px); }
}

/* Camilla’s brand typography. */
h1, h2, h3, .wordmark, .marconics-cards h3, .booking-options a,
.service-list summary, .faq summary, .about-copy .large {
  font-family: "Bodoni Moda", Georgia, serif;
  font-weight: 500;
}
h1 em, h2 em { font-style: normal; }
.about .script, .hero-art > p, .hero-art > p em {
  font-family: "Great Vibes", Georgia, cursive;
  font-style: normal;
  font-size: clamp(27px, 3.3vw, 38px);
  line-height: 1.35;
}

/* Keep body copy clear of the heading immediately above it. */
main :is(h1, h2, h3, h4) + p {
  margin-block-start: clamp(14px, 2vw, 22px);
}

@media (max-width: 700px) {
  header { padding: 12px 16px; gap: 12px; }
  header nav { top: 100%; max-height: calc(100dvh - 80px); overflow-y: auto; padding: 12px 20px; }
  header nav.open { gap: 4px; }
  header nav a, .page-header-actions a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    font-size: 14px;
  }
  .page-header-actions { column-gap: 10px; row-gap: 0; }
  main h1 { font-size: clamp(34px, 9vw, 54px); overflow-wrap: anywhere; }
  main h2 { font-size: clamp(29px, 7.5vw, 42px); }
  .wrap { padding-inline: clamp(16px, 5vw, 25px); }
  .hero { padding-inline: clamp(16px, 5vw, 25px); }
  .hero, .marconics-grid, .about, .location-grid, .booking-options, .marconics-cards {
    grid-template-columns: minmax(0, 1fr);
  }
  .hero-art, .marconics-portrait-wrap { min-width: 0; }
  main .button, main .copy-number { min-height: 44px; }
  main .actions { flex-wrap: wrap; }
  main summary { min-height: 44px; }
  main, footer { overflow-wrap: break-word; }
  .footer-grid a { display: inline-flex; align-items: center; min-height: 44px; }
}

@media (max-width: 700px) {
  .hero-copy, .section-heading, .about-label,
  .marconics-grid > div:not(.marconics-offerings),
  .locations > .wrap > h2, .locations > .wrap > .eyebrow {
    text-align: center;
  }
  .hero-copy .actions, .marconics-grid .actions { justify-content: center; }
  .hero-copy > p, .section-heading > p { margin-inline: auto; }
  .hero-bottom { justify-content: center; text-align: center; }
  .about-label .camilla-portrait, .about-label .abmp-membership {
    margin-inline: auto;
  }
  .about-label .abmp-membership { text-align: left; }
  .section-heading { gap: 8px; margin-bottom: 28px; }
  .footer-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
    padding-block: 38px 20px;
    text-align: center;
  }
  .footer-grid > div { min-width: 0; }
  .footer-grid a {
    display: flex;
    justify-content: center;
    gap: 6px;
    font-size: 14px;
    line-height: 1.35;
    overflow-wrap: anywhere;
  }
  .footer-bottom {
    padding-block: 18px 22px;
    text-align: center;
    font-size: 12px;
    line-height: 1.5;
  }
  .footer-bottom span:last-child { margin-bottom: 0; }
}

.hero-copy h1 { text-wrap: balance; }
.hero-heading-tail { white-space: nowrap; }
