/* A quieter photo collection, with the original full-size lightbox links. */
.gallery-section { background:var(--paper); color:var(--ink); }
.gallery-section .eyebrow { color:var(--forest-3); }
.gallery-section .section-heading > p { color:var(--muted); }
.treatment-gallery { grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px 18px; align-items:start; }
.treatment-gallery figure:first-child,.treatment-gallery figure:nth-child(6) { grid-column:span 2; }
.treatment-gallery a { aspect-ratio:3/4; border-radius:16px; background:var(--cream); }
.treatment-gallery figure:first-child a,.treatment-gallery figure:nth-child(6) a { aspect-ratio:3/2; }
.treatment-gallery figcaption { margin-top:12px; color:var(--muted); font-size:13px; line-height:1.5; }
.treatment-gallery .view-mark { width:32px; height:32px; right:12px; bottom:12px; font-size:18px; opacity:0; transform:translateY(4px); transition:opacity .2s,transform .2s; }
.treatment-gallery a:hover .view-mark,.treatment-gallery a:focus-visible .view-mark { opacity:1; transform:none; }
.treatment-gallery a:focus-visible { outline-color:var(--forest-3); }
@media(max-width:860px) {
  .treatment-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 14px; }
  .treatment-gallery figure:nth-child(6) { grid-column:auto; }
  .treatment-gallery figure:nth-child(6) a { aspect-ratio:3/4; }
  .treatment-gallery figure:last-child { grid-column:span 2; }
  .treatment-gallery figure:last-child a { aspect-ratio:16/9; }
}
@media(max-width:680px) {
  :root { --page-pad:22px; }
  .site-header { min-height:72px; padding:10px var(--page-pad); background:rgba(13,32,21,.96); }
  .brand-symbol { width:42px; height:42px; }
  .brand-name strong { font-size:19px; }
  .brand-name small { font-size:8px; letter-spacing:.04em; }
  .nav-toggle { width:44px; height:44px; border:0; }
  .main-nav { top:72px; padding:20px var(--page-pad); max-height:calc(100dvh - 160px); overflow-y:auto; }
  .main-nav a { border-radius:10px; min-height:48px; }
  .main-nav .status-pill { display:none; }
  body.menu-open .mobile-booking-bar { display:none; }
  .hero { min-height:auto; display:block; padding:128px var(--page-pad) 60px; }
  .hero h1 { max-width:10ch; font-size:clamp(42px,11vw,64px); line-height:1.04; letter-spacing:-.035em; }
  .hero .eyebrow { max-width:26ch; font-size:10px; line-height:1.7; }
  .hero-intro { font-size:15px; line-height:1.75; margin-top:22px; }
  .hero-actions { margin-top:26px; gap:10px; }
  .hero-actions .button-secondary { border:0; min-height:44px; text-decoration:underline; text-underline-offset:5px; }
  .hero-card { display:none; } /* Rating remains in the review section. */
  .trust-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .trust-strip div { min-height:84px; padding:16px 12px; }
  .trust-strip div:nth-child(3) { border-left:0; }
  .trust-strip div:nth-child(n+3) { border-top:1px solid var(--line); }
  .trust-strip strong { font-size:16px; }
  .trust-strip span { font-size:11px; line-height:1.5; }
  .content-section,.gallery-section,.reviews-section,.faq-section,.service-section,.contact-section,.map-section { padding:56px var(--page-pad); }
  .section-heading { gap:18px; }
  .section-heading h2,.split-copy h2,.reviews-summary h2,.faq-intro h2,.cta-section h2 { font-size:34px; line-height:1.13; letter-spacing:-.025em; }
  .section-heading > p,.split-copy > p:not(.eyebrow) { font-size:15px; line-height:1.8; }
  .split { gap:28px; }
  .split-media { aspect-ratio:4/3; border-radius:16px; box-shadow:none; }
  .split-media img { object-position:center 35%; }
  .cards-three,.service-page-grid { grid-template-columns:1fr; gap:0; margin-top:28px; }
  .feature-card,.service-page-card { padding:24px 0; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
  .feature-card h3,.service-page-card h3 { margin:10px 0; font-size:26px; }
  .feature-card p,.service-page-card p { margin:8px 0; }
  .feature-card a { margin-top:0; }
  .reviews-section,.faq-layout { gap:28px; }
  .rating-lockup { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:20px; }
  .rating-lockup strong { font-size:34px; }
  .google-review-link { margin-top:8px; font-size:13px; }
  .review-card { padding:22px; border-radius:16px; }
  .review-card p { font-size:20px; line-height:1.5; }
  .review-card cite { line-height:1.6; font-size:10px; }
  .review-controls { margin-top:12px; }
  .faq-list { gap:0; }
  .faq-list details { border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
  .faq-list summary { padding:18px 0; font-size:14px; }
  .faq-list details p { padding:0 0 20px; font-size:14px; }
  .page-hero.has-header-photo { min-height:340px; padding:120px var(--page-pad) 48px; }
  .page-hero h1 { font-size:40px; line-height:1.08; }
  .page-hero p:not(.eyebrow) { font-size:15px; margin-top:18px; }
  .breadcrumbs { font-size:11px; line-height:1.6; }
  .category-card { border-radius:14px; }
  .category-title strong { font-size:21px; }
  .category-title small { font-size:12px; }
  .selection-panel,.treatment-booking { padding:24px; border-radius:16px; box-shadow:none; }
  .visit-steps { gap:0; margin-top:26px; }
  .visit-steps article { padding:24px 0; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
  .visit-steps h3 { margin:10px 0; font-size:25px; }
  .visit-steps p { font-size:15px; margin-bottom:0; }
  .visit-guide-action { padding:24px 0 0; border:0; border-radius:0; gap:16px; }
  .first-visit-intro,.cta-section { padding:48px var(--page-pad); }
  .first-visit-intro { gap:16px; }
  .story-values { margin-top:28px; }
  .story-values article { padding:24px; }
  .badge-strip { display:none; } /* Avoid repeating the rating and trust claims near the footer. */
  .site-footer { padding:40px var(--page-pad); gap:24px; text-align:left; }
  .footer-links { display:grid; grid-template-columns:1fr 1fr; gap:4px 16px; justify-content:start; }
  .footer-links a { display:flex; align-items:center; min-height:44px; font-size:13px; }
  .footer-bottom { font-size:12px; line-height:1.9; }
  .social-links:empty { display:none; }
  .treatment-gallery { margin-top:28px; gap:20px 12px; }
  .treatment-gallery a { border-radius:12px; }
  .treatment-gallery figcaption { font-size:12px; margin-top:8px; }
  .mobile-booking-bar { padding-top:8px; padding-bottom:calc(8px + env(safe-area-inset-bottom,0px)); box-shadow:0 -2px 12px rgba(0,0,0,.08); }
  .mobile-booking-bar a { font-size:13px; }
  input,select,textarea { font-size:16px; }
}
.review-counter,.mobile-hero-action,.mobile-treatment-list { display:none; }
.gallery-more[hidden],.treatment-gallery figure[hidden] { display:none; }
.gallery-more { margin:28px auto 0; }
.visit-step-disclosure { padding:28px; border:1px solid var(--line); border-radius:20px; background:#fff; }
.visit-step-disclosure summary { list-style:none; }
.visit-step-disclosure summary::-webkit-details-marker { display:none; }
.footer-disclosure > summary { display:none; }
.photo-navigation { display:flex; align-items:center; justify-content:center; gap:24px; color:#fff; }
.photo-navigation button { width:48px; height:48px; border:1px solid rgba(255,255,255,.5); border-radius:50%; background:var(--forest); color:#fff; font-size:26px; cursor:pointer; }
.photo-navigation span { min-width:60px; text-align:center; font-size:13px; }
@media(max-width:680px) {
  .hero { padding-top:116px; padding-bottom:48px; }
  .hero-intro { max-width:32ch; }
  .hero-actions { display:none; }
  .mobile-hero-action { display:inline-flex; margin-top:22px; }
  .cards-three { display:none; }
  .mobile-treatment-list { display:block; margin-top:28px; }
  .mobile-treatment-row { display:flex; align-items:center; justify-content:space-between; gap:14px; min-height:90px; padding:18px 0; border-bottom:1px solid var(--line); text-decoration:none; }
  .mobile-treatment-row strong { display:block; font-family:'Playfair Display',Georgia,serif; font-size:23px; }
  .mobile-treatment-row small { display:block; margin-top:8px; color:var(--muted); font-size:13px; }
  .mobile-treatment-row > span:last-child { font-size:23px; }
  .mobile-treatment-list > .button { margin-top:24px; }
  .review-dots { display:none; }
  .review-counter { display:block; min-width:76px; text-align:center; color:var(--muted); font-size:13px; }
  .review-controls { gap:20px; }
  .visit-step-disclosure { padding:0; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
  .visit-step-disclosure summary { display:flex; align-items:center; gap:14px; min-height:76px; padding:14px 0; cursor:pointer; }
  .visit-step-disclosure summary h3 { font-size:22px; flex:1; margin:0; }
  .visit-step-disclosure summary::after { content:'+'; font-size:24px; }
  .visit-step-disclosure[open] summary::after { content:'−'; }
  .visit-step-disclosure > p { font-size:15px; line-height:1.8; color:var(--muted); margin:0 0 20px; }
  .visit-step-disclosure > a { display:inline-flex; min-height:44px; align-items:center; margin-bottom:12px; }
  .footer-disclosure > summary { display:flex; align-items:center; justify-content:space-between; min-height:48px; font-size:14px; cursor:pointer; list-style:none; }
  .footer-disclosure > summary::after { content:'+'; font-size:22px; }
  .footer-disclosure[open] > summary::after { content:'−'; }
  .footer-disclosure > summary::-webkit-details-marker { display:none; }
  .footer-bottom { text-align:left; }
  .treatment-gallery figure:first-child { grid-column:auto; }
  .treatment-gallery figure:first-child a { aspect-ratio:3/4; }
  .lightbox-inner { padding-bottom:16px; }
  #photo-lightbox img { max-height:60dvh; object-fit:contain; }
}
@media(prefers-reduced-motion:reduce) { .treatment-gallery .view-mark { transition:none; } }
