/* Eight services with warm beige and black contrast sections. */
:root { --black: #171716; --black-band: #171716; --beige: #e5d6c1; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.text-link-button { background:none; border-top:0; border-left:0; border-right:0; cursor:pointer; text-align:left; padding-inline:0; }
.hero-actions .text-link-button { color:var(--black); }
.button { background:var(--black); border-color:var(--black); }
.button:hover { background:#34312d; }
.values-strip { background:var(--black); color:#fffaf3; padding-block:30px; }
.values-strip i { color:#d8c6ae; }
.treatment-section { padding-top:90px; padding-bottom:84px; }
.expanded-treatments { grid-template-columns:repeat(4,minmax(0,1fr)); gap:52px 30px; align-items:stretch; }
.expanded-treatments .treatment-portrait { width:100%; min-width:0; }
.expanded-treatments .treatment-photo { width:100%; flex:none; padding:4px; }
.expanded-treatments .treatment-photo::after { inset:13px; }
.expanded-treatments .treatment-category { font-size:12px; letter-spacing:.08em; margin:18px 0 9px; line-height:1.5; }
.expanded-treatments .future-label { display:inline-block; padding:2px 9px; border-radius:2px; background:#eee4d5; color:#5d503f; margin-top:16px; margin-bottom:8px; }
.expanded-treatments h3 { font-size:clamp(25px,2.25vw,33px); line-height:1.14; margin-bottom:13px; }
.expanded-treatments .treatment-portrait > p:not(.treatment-category) { font-size:16px; line-height:1.65; margin-bottom:8px; flex:1; }
.expanded-treatments .card-link { margin-top:7px; padding-block:10px; font-size:15px; gap:14px; }
.consultation-ribbon { background:var(--black-band); color:#fbf8f1; }
.ribbon-inner { display:grid; grid-template-columns:1.3fr 1fr; gap:80px; padding-block:64px; align-items:center; }
.ribbon-inner .eyebrow { color:#e1d6c5; margin-bottom:16px; }
.ribbon-inner h2 { font-size:clamp(42px,4.1vw,60px); }
.ribbon-action { justify-self:end; }
.ribbon-action p { font-size:17px; line-height:1.8; color:#eee9df; margin-bottom:23px; }
.button-light { background:#f4ecde; border-color:#f4ecde; color:#171716; }
.button-light:hover { background:#fff8ed; }
.skin-focus { background:#e9decd; padding-block:77px; }
.skin-focus .focus-heading .eyebrow { color:#5d503f; }
.skin-focus .concern-tabs button { border-color:#b8a58c; }
.skin-focus .concern-tabs button[aria-selected=true] { background:var(--black); border-color:var(--black); color:white; }
.skin-focus .concern-panel { border-top-color:#bcaa92; }
.skin-focus .panel-number { color:#7d6a53; }
.approach-section { padding-block:91px; }
.approach-photo { background:#ded4c4; min-height:620px; }
.approach-photo img { object-position:48% center; }
.approach-copy > .button { margin-top:3px; white-space:normal; }
.visit-section { background:var(--black); }
.visit-section .button-light { background:#e9ddcb; border-color:#e9ddcb; }
.visit-section .visit-heading .eyebrow { color:#e6d9c5; }
.visit-section .visit-heading > div:last-child > p,
.visit-section .visit-steps p { color:#e7dfd3; }
.visit-section .visit-steps article { border-color:#817366; }
.visit-section .visit-steps article > span { color:#e6d9c5; }
.faq-section { padding-block:90px; }
.closing-section { background:#e1d2bd; color:#171716; }
.closing-inner { padding-block:70px; }
.closing-inner h2 { margin-bottom:20px; }
.closing-copy { position:relative; z-index:1; font-size:18px; line-height:1.8; margin-bottom:26px; }
.closing-actions { display:flex; align-items:center; flex-wrap:wrap; gap:24px; position:relative; z-index:1; }
.closing-actions .text-link { font-size:16px; }
.closing-flower { color:#75614a; opacity:.45; }
.site-footer { background:#f3ecdf; }
.dialog-treatment-image { display:block; width:100%; height:170px; object-fit:cover; object-position:center 40%; margin-bottom:24px; border-radius:3px; }
.mobile-consultation { display:none; }
@media (max-width:1100px) {
  .expanded-treatments { gap:44px 23px; }
  .expanded-treatments h3 { font-size:27px; }
  .expanded-treatments .card-link { font-size:14px; gap:10px; }
  .expanded-treatments .treatment-category { font-size:11px; }
  .ribbon-inner { gap:45px; }
  .ribbon-action p { font-size:16px; }
}
@media (min-width:761px) and (max-width:960px) {
  .expanded-treatments { grid-template-columns:repeat(2,minmax(0,1fr)); gap:44px 36px; }
  .expanded-treatments .treatment-photo { max-width:285px; }
  .expanded-treatments h3 { font-size:31px; }
  .expanded-treatments .card-link { font-size:16px; }
}
@media (max-width:760px) {
  body { padding-bottom:74px; }
  .treatment-section { padding-block:59px; }
  .treatment-section .section-heading h2 { font-size:43px; }
  .treatment-section .filter-row { gap:8px 20px; margin-bottom:29px; }
  .treatment-section .filter { font-size:15px; padding-bottom:10px; }
  .expanded-treatments { grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px 21px; }
  .expanded-treatments .treatment-portrait { padding:0; margin:0; min-height:0; width:100%; }
  .expanded-treatments .treatment-photo { width:100%; max-width:240px; padding:3px; }
  .expanded-treatments .treatment-photo::after { inset:10px; border-width:1px; }
  .expanded-treatments .treatment-category { font-size:11px; letter-spacing:.03em; margin:14px 0 8px; }
  .expanded-treatments .future-label { padding:2px 6px; }
  .expanded-treatments h3 { font-size:25px; margin-bottom:10px; line-height:1.12; letter-spacing:-.045em; }
  .expanded-treatments .treatment-portrait > p:not(.treatment-category) { font-size:16px; line-height:1.6; margin-bottom:8px; }
  .expanded-treatments .card-link { font-size:14px; gap:10px; margin-top:5px; min-height:44px; line-height:1.4; }
  .expanded-treatments .card-link span { font-size:20px; }
  .ribbon-inner { grid-template-columns:1fr; gap:28px; padding-block:48px; }
  .ribbon-inner h2 { font-size:44px; }
  .ribbon-action { justify-self:start; }
  .ribbon-action p { font-size:16px; }
  .ribbon-action .button { font-size:16px; }
  .skin-focus { padding-block:54px; }
  .approach-section { padding-block:58px; }
  .approach-photo { min-height:0; aspect-ratio:1; }
  .approach-photo img { object-position:center center; }
  .faq-section { padding-block:61px; }
  .closing-inner { padding-block:56px; }
  .closing-copy { font-size:17px; max-width:275px; }
  .closing-actions { gap:15px; align-items:flex-start; flex-direction:column; }
  .closing-actions .text-link { min-height:44px; }
  .closing-flower { right:-110px; top:75px; }
  .mobile-consultation { display:flex; align-items:center; justify-content:space-between; gap:12px; position:fixed; left:0; right:0; bottom:0; z-index:18; padding:11px 20px max(11px,env(safe-area-inset-bottom)); border-top:1px solid #cbbda8; background:#f8f5eff5; backdrop-filter:blur(14px); box-shadow:0 -3px 18px #17171610; }
  .mobile-consultation > span { font-size:13px; line-height:1.4; max-width:115px; }
  .mobile-consultation .button { min-height:44px; padding:12px 15px; font-size:14px; gap:16px; }
  .dialog-treatment-image { height:145px; }
}
@media (max-width:360px) {
  .expanded-treatments { gap:28px 16px; }
  .expanded-treatments h3 { font-size:23px; }
  .expanded-treatments .card-link { font-size:13px; gap:6px; }
  .expanded-treatments .treatment-category { font-size:10px; }
  .mobile-consultation { padding-inline:14px; }
}
