/* Shared reading rhythm and responsive editorial layout. */
@font-face {
  font-family: 'Source Sans 3';
  src: url('fonts/source-sans-3-upright.woff2') format('woff2');
  font-style: normal;
  font-weight: 200 900;
  font-display: swap;
}
:root { --sans: 'Source Sans 3', 'Segoe UI', Arial, sans-serif; }
body { font-family: var(--sans); font-size: 18px; line-height: 1.65; }
.section-band::before, .concerns-section::before, .work-section::before {
  inset: 0;
  box-shadow: none;
  clip-path: none;
  border-radius: 6px;
}
.site-header { position: sticky; top: 0; border-bottom: 1px solid var(--line); }
.section { padding-block: 64px; }
.concerns-section { display: block; padding-block: 56px; }
.concerns-section .section-intro { display: grid; grid-template-columns: 1.1fr 1fr; align-items: end; gap: 0 40px; max-width: none; margin-bottom: 24px; }
.concerns-section .eyebrow { grid-column: 1 / -1; }
.concerns-section h2 { margin: 0; font-size: clamp(30px,3.2vw,40px); }
.concerns-section .section-intro>p:last-child { margin: 0; max-width: 42ch; }
.concerns-list { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
.concerns-list li { align-items: center; min-width: 0; min-height: 80px; padding: 16px 20px; border: 0; border-radius: 4px; background: var(--paper); color: var(--ink); line-height: 1.45; }
.concerns-list li:nth-child(odd) { background: var(--card); }
.work-section, .faq-section, .mbsr-section, .custom-section { padding-block: 56px; }
.eyebrow { margin-bottom: 12px; }
h2 { margin-bottom: 24px; }
.sectionhead { margin-bottom: 28px; }
button, input, select, textarea { font-family: var(--sans); }
p, li, dd { text-wrap: pretty; }
h1, h2, h3 { text-wrap: balance; }
.hero-description, .prose, .service-intro, .service-full-text, .mbsr-intro,
.custom-section p, .faq-item>div, .contact-description, .location-address {
  font-size: 18px;
  line-height: 1.6;
  text-align: start;
}
.prose, .service-full-text, .faq-item>div, .reading { max-width: 65ch; }
.reading { overflow-wrap: break-word; }
.prose p, .service-full-text p, .faq-item p { margin-bottom: 16px; }
.prose p:last-child, .service-full-text p:last-child, .faq-item p:last-child { margin-bottom: 0; }
.hero-practitioner span, .hero-location, .pill, .credentials-list,
.start-grid li, .course-note, .format-disclosure>p, .mbsr-program { font-size: 17px; }
.btn, .textlink, .navlinks { font-size: 16px; }
.hero h1 { font-size: clamp(38px, 3.75vw, 54px); }
.hero { grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 64px; padding-block: 40px 64px; }
.hero-visual { width: 100%; max-width: 370px; justify-self: center; }
.hero-portrait { width: 100%; height: auto; max-height: none; aspect-ratio: 4/5; object-fit: cover; }
.hero-copy { max-width: 570px; }
.hero-description { max-width: 49ch; }
.hero-visual figcaption { font-size: 14px; }
.brand-name { font-size: 14px; }
.about-portrait figcaption { font-size: 14px; }
.heading-link { color: inherit; text-decoration: none; }
.heading-link:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.heading-link:focus-visible { outline: 2px solid var(--green); outline-offset: 5px; border-radius: 2px; }
.textlink {
  border-bottom: 0;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--line);
  text-underline-offset: 5px;
}
.textlink:hover { color: inherit; text-decoration-color: currentColor; }
.article h3 a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 5px; }
.reading p a:not(.btn), .prose p a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.hero-copy .hero-location { margin-top: 20px; }
.enrollment-note { margin: 0 0 16px; color: var(--green); font-size: 17px; line-height: 1.5; }
.service-conditions .btn { max-width: 100%; }
.team-contact-hint { margin: 16px 0 0; color: var(--muted); font-size: 16px; line-height: 1.6; max-width: 50ch; }
.custom-section>div:first-child>.team-contact-hint { font-size: 16px; margin-bottom: 0; }
.team-experience { margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--line); }
.team-experience h2, .team-experience h3 { font-family: var(--sans); font-size: 17px; font-weight: 600; margin-bottom: 16px; }
.team-experience p { color: var(--muted); font-size: 16px; line-height: 1.6; margin-bottom: 12px; }
.team-experience p:last-child { margin-bottom: 0; }

/* A single reading column keeps the personal story together. */
.about { grid-template-columns: minmax(0,.85fr) minmax(0,1.25fr); gap: clamp(40px,6vw,88px); }
.about-portrait.has-own-photo { max-width: 400px; }
.about-copy { min-width: 0; }
.about-copy h2 { margin-bottom: 20px; }
.about-copy .prose { max-width: 62ch; }
.about-education { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--line); }
.credentials summary { font-size: 18px; }
.credentials-list { line-height: 1.65; }
.concerns-list li { font-size: 18px; }
.start-grid li { line-height: 1.6; }
.start-grid li::before { margin-bottom: 20px; }
.start-grid strong { font-size: 18px; font-weight: 600; margin-bottom: 8px; }
.service-copy { max-width: 62ch; }
.service-conditions .pill { margin-bottom: 24px; }
.service-meta dt { font-size: 14px; text-transform: none; letter-spacing: 0; }

/* Both offers share a reading column and one calm panel for terms and booking. */
.mbsr-section { display: block; }
.course-card { row-gap: 24px; }
.course-card .mbsr-content { grid-column: 1 / -1; align-self: start; }
.course-subtitle { font-family: var(--sans); font-size: 18px; line-height: 1.5; margin-top: 10px; }
.service-conditions .service-meta { margin: 0 0 28px; }
.service-conditions .service-meta dd { font-size: 19px; line-height: 1.5; }
.service-conditions .service-price dd { font: 30px/1.3 var(--serif); }
.service-conditions .course-rhythm { display: block; margin-top: 4px; color: var(--muted); font-size: 16px; }
.mbsr-panel>summary, .format-disclosure>summary { font-size: 18px; line-height: 1.5; min-height: 64px; padding-block: 14px; }
.mbsr-program { line-height: 1.6; }
.course-card .mbsr-program>ul { grid-template-columns: repeat(2,minmax(0,1fr)); }
.mbsr-program>ul { gap: 24px 32px; margin-block: 16px 24px; }
.mbsr-program strong { margin-bottom: 8px; }
.course-note { margin-top: 20px; padding-left: 0; border-left: 0; font-size: 17px; line-height: 1.6; }
.course-note .course-note-title { margin-bottom: 6px; font-size: 17px; font-weight: 600; }
.custom-section { gap: 72px; }
.custom-section>div:first-child>p { max-width: 44ch; margin-bottom: 20px; }
.format-disclosure>p { font-size: 17px; line-height: 1.65; padding: 4px 0 20px; max-width: 62ch; }
.faq-group>summary { min-height: 68px; padding-block: 16px; }
.faq-item { padding-bottom: 20px; }
.faq-item h4 { font-family: var(--sans); font-size: 18px; line-height: 1.5; }
.faq-contact { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 20px; max-width: 100%; margin-top: 24px; }
.faq-contact p { margin: 0; color: var(--muted); font-size: 16px; }
.faq-contact .ui-icon { flex-shrink: 0; }
.closing>div, .location-info { min-width: 0; }

/* Tonality only: the original office photograph and all its details stay intact. */
.cabinet-photo { filter: saturate(.87) sepia(.08) brightness(1.025) contrast(.97); }
.rental-page .rental-address { font-size: 16px; margin: 16px 0 0; }
.rental-page .cabinet-photo { margin-bottom: 28px; }
.rental-intro p { margin: 0 0 20px; }
.rental-equipment ul { padding-left: 22px; color: var(--muted); line-height: 1.7; }
.rental-equipment li { padding-left: 4px; margin-bottom: 10px; }
.rental-booking { border-top: 1px solid var(--line); margin-top: 32px; padding-top: 28px; }
.rental-page .rental-booking h2 { margin-top: 0; }
.rental-booking .btn { margin-top: 8px; }

/* The secondary rental offer closes the page before the contact footer. */
.rental-callout { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 32px 48px; align-items: center; padding: 36px 28px 44px; }
.rental-callout h2 { font-size: 30px; margin: 0 0 12px; text-wrap: pretty; }
.rental-callout p { color: var(--muted); font-size: 17px; line-height: 1.6; margin: 0; max-width: 60ch; }
.rental-callout>.textlink { justify-self: start; }
.site-footer { background: var(--paper); padding-block: 24px; }
.site-footer .footer-top { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 20px 32px; }
.footer-brand { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 24px; min-width: 0; }
.site-footer .footer-brand p { font-size: 14px; line-height: 1.5; margin: 0; }
.footer-contact { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 12px 24px; min-width: 0; scroll-margin-top: 32px; }
.footer-contact-details { display: flex; flex-wrap: wrap; gap: 4px 20px; min-width: 0; }
.footer-contact-detail { display: flex; align-items: center; min-height: 44px; padding-block: 8px; font-size: 16px; overflow-wrap: anywhere; }
.footer-contact-detail:hover { text-decoration: underline; text-underline-offset: 4px; }
.social-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.footer-contact .social-links { margin-top: 0; flex-wrap: nowrap; }
.social-icon { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border: 1px solid var(--green); border-radius: 50%; color: var(--green); background: transparent; }
.social-icon:hover, .social-icon:active { background: var(--green); color: var(--paper); }
.social-icon:focus-visible { outline: 2px solid var(--green); outline-offset: 4px; }
.social-glyph { width: 24px; height: 24px; flex: 0 0 24px; }
.site-footer .footer-payment { grid-column: 2; justify-self: start; }
.back-to-top { transform: translateY(calc(-1 * var(--footer-offset, 0px))); }

.services-menu { position: relative; }
.services-menu>summary { display: flex; align-items: center; gap: 9px; min-height: 44px; cursor: pointer; list-style: none; }
.services-menu>summary::-webkit-details-marker { display: none; }
.nav-chevron { width: 7px; height: 7px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); margin-top: -4px; }
.services-menu[open] .nav-chevron { transform: rotate(225deg); margin-top: 4px; }
.services-dropdown { position: absolute; top: 100%; left: -20px; width: 310px; padding: 12px; background: var(--paper); border: 1px solid var(--line); border-radius: 4px; z-index: 30; }
.navlinks .services-dropdown a { display: flex; padding: 10px 12px; line-height: 1.45; font-size: 16px; }
.services-dropdown a:hover, .services-dropdown a[aria-current] { background: var(--surface); }
.service-back { margin-bottom: 28px; }
.service-page .eyebrow { margin-top: 0; }
.service-page h1 .course-subtitle { display: block; margin-top: 12px; font-size: 22px; letter-spacing: 0; }
.service-page-intro { margin-top: 0; }
.service-overview { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: 40px; align-items: start; margin-top: 28px; }
.service-overview-copy { min-width: 0; padding: 28px; background: var(--surface); border-radius: 6px; }
.service-overview-copy>h2 { margin: 0 0 20px; font-size: 30px; }
.service-overview-copy>.audience-tag { margin-top: 20px; }
.service-page .service-meta { grid-template-columns: 1fr; }
.course-overview { align-items: stretch; }
.course-overview>.course-conditions { display: flex; flex-direction: column; }
.course-overview .course-conditions .btn { width: 100%; margin-top: auto; justify-content: space-between; }
@media(min-width:1024px) {
  .course-overview .course-conditions .service-meta { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
}
.reading { margin-block: 48px 64px; }
.reading p { line-height: 1.65; }
.direction-detail { margin-top: 32px; }
.direction-program>ul { padding: 0; list-style: none; }
.direction-program>ul>li { padding-block: 16px; border-bottom: 1px solid var(--line); }
.direction-program>ul>li p { margin: 8px 0 0; }
.direction-faq { margin-top: 40px; }
.direction-question { border-bottom: 1px solid var(--line); padding-block: 20px; }
.direction-question h3 { font: 600 18px/1.5 var(--sans); letter-spacing: 0; margin: 0 0 10px; }
.direction-question>div { color: var(--muted); }
.direction-question p:last-child { margin-bottom: 0; }
@media(max-width:900px) {
  .navlinks .services-menu>summary { padding: 8px; min-height: 44px; font-size: 17px; }
  .services-dropdown { position: static; width: auto; margin: 0 8px 8px; padding: 8px; border: 0; border-left: 1px solid var(--line); border-radius: 0; }
}

@media(max-width:1100px) {
  .navlinks { font-size: 14px; }
  .hero { gap: 40px; }
  .hero-visual { max-width: 340px; }
  .about { gap: 40px; }
  .custom-section { gap: 40px; }
}
@media(max-width:768px) {
  .concerns-section .section-intro { grid-template-columns: 1fr; gap: 8px; }
  .concerns-section .eyebrow { margin-bottom: 0; }
  .concerns-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .concerns-list li:nth-child(n) { background: var(--paper); }
  .concerns-list li:nth-child(4n+1), .concerns-list li:nth-child(4n+4) { background: var(--card); }
  .about { grid-template-columns: 1fr; gap: 32px; }
  .about-portrait.has-own-photo { max-width: 380px; }
  .about-copy .prose { max-width: 65ch; }
  .service-card { grid-template-columns: 1fr; gap: 28px; }
  .course-card { row-gap: 24px; }
  .custom-section { grid-template-columns: 1fr; gap: 32px; }
  .custom-section>div:first-child>p { max-width: 62ch; }
  .faq-item h4 { font-size: 18px; }
  .footer-contact { gap: 12px 20px; }
}
@media(max-width:620px) {
  body { font-size: 17px; }
  .section, .mbsr-section, .custom-section { padding-block: 48px; }
  .work-section, .faq-section { padding-block: 40px; }
  .hero { grid-template-columns: 1fr; gap: 24px; padding-block: 24px 36px; }
  .hero h1 { font-size: clamp(36px,9.5vw,42px); }
  .hero-visual { max-width: 290px; }
  .hero-practitioner { margin-block: 20px; }
  .hero-description p { margin-bottom: 20px; }
  .hero-copy .hero-location { margin-top: 16px; }
  .hero-description, .prose, .service-intro, .service-full-text, .mbsr-intro,
  .custom-section p, .faq-item>div, .contact-description, .location-address { font-size: 17px; line-height: 1.65; }
  .start-grid { row-gap: 24px; }
  .faq-group>summary { min-height: 64px; }
  .nav-cta { font-size: 13px; }
  .concerns-list { grid-template-columns: 1fr; gap: 8px; }
  .concerns-list li { min-height: 52px; padding: 12px 16px; font-size: 17px; }
  .concerns-list li:nth-child(n) { background: var(--paper); }
  .concerns-list li:nth-child(odd) { background: var(--card); }
  .service-conditions .service-meta dd { font-size: 18px; }
  .service-conditions .service-price dd { font-size: 28px; }
  .service-page .service-meta, .course-card .mbsr-program>ul { grid-template-columns: 1fr; }
  .faq-contact { column-gap: 16px; text-align: left; }
  .site-footer .footer-top { column-gap: 16px; }
  .footer-brand { display: block; }
  .footer-brand .logo { font-size: 30px; }
  .site-footer .footer-brand p { margin-top: 4px; font-size: 13px; }
  .site-footer .footer-top.has-contact-details { grid-template-columns: 1fr; }
  .has-contact-details .footer-contact { justify-content: flex-start; }
  .rental-callout { grid-template-columns: 1fr; gap: 20px; padding-block: 28px 36px; }
  .rental-callout h2 { font-size: 26px; }
  .site-footer .footer-payment { grid-column: 1 / -1; }
}
.custom-formats .format-page-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 0;
  border-top: 1px solid var(--line, #D8D2C5);
  color: inherit;
  text-decoration: none;
  font-size: 18px;
}
.custom-formats .format-page-link:last-child { border-bottom: 1px solid var(--line, #D8D2C5); }
.format-page-link span, .faq-page-link span {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-decoration-color: var(--line);
  text-underline-offset: 5px;
}
.format-page-link:hover span, .faq-page-link:hover span { text-decoration-color: currentColor; }
.format-page-link:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.faq-group h3 { margin: 0; font: 400 20px/1.5 var(--sans); letter-spacing: 0; }
.faq-page-link { display: flex; align-items: center; min-height: 68px; padding-block: 16px; color: inherit; }

/* Four clear destinations, followed by one shared contact and location section. */
/* Page sections share one outer rail; prose keeps its own readable line length. */
main.wrap:has(.about-page), main.wrap:has(.service-page), main.wrap:has(.rental-page), main.home-page { max-width: 1096px; }
.reading.service-page, .reading.rental-page { max-width: none; }
.service-page>p, .service-page-intro, .service-page .direction-program, .direction-question>div { max-width: 65ch; }
.service-page, .rental-page { min-width: 0; }
.home-hero { padding-block: 32px 48px; gap: 48px; }
.home-hero .hero-visual { max-width: 320px; }
.home-hero .hero-practitioner { margin-bottom: 16px; }
.home-hero .actions { margin-top: 24px; }
.hero-summary { margin-top: 20px; }
.hero-summary .hero-description { max-width: none; }
.hero-facts { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 16px 0 0; padding: 14px 0 0; border-top: 1px solid var(--line); list-style: none; color: var(--muted); font-size: 15px; line-height: 1.5; }
.hero-facts li { min-width: 0; }
.home-portals { position: relative; padding-block: 16px 48px; }
.portal-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.portal-card { position: relative; display: flex; flex-direction: column; align-items: flex-start; min-width: 0; min-height: 360px; padding: 28px; border: 1px solid var(--line); border-radius: 4px; background: var(--card); color: var(--ink); transition: border-color .18s; }
.portal-about, .portal-teams { background: var(--surface); }
.portal-card h2 { margin: 0 0 16px; font-size: clamp(28px,2.5vw,34px); text-wrap: pretty; }
.portal-card p { margin: 0 0 16px; max-width: 32ch; font-size: 20px; line-height: 1.5; color: var(--muted); }
.portal-about p, .portal-teams p { max-width: 26ch; margin-block: auto; padding-block: 24px; font-size: 24px; line-height: 1.5; }
.portal-subtitle { display: block; margin-top: 12px; font: 17px/1.5 var(--sans); letter-spacing: 0; }
.portal-terms { display: grid; gap: 6px; margin-bottom: 16px; font-size: 17px; line-height: 1.5; }
.portal-terms span:first-child { color: var(--green); font-weight: 600; }
.portal-more { display: block; width: 100%; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--line); font-size: 16px; line-height: 1.5; text-decoration: underline; text-decoration-color: var(--muted); text-decoration-thickness: 1px; text-underline-offset: 5px; }
.portal-card:hover { border-color: var(--green); }
.portal-card:hover .portal-more { text-decoration-color: currentColor; }
.portal-card:focus-visible { outline: 3px solid var(--green); outline-offset: 5px; }
.anchor-alias { position: absolute; top: 0; left: 0; width: 1px; height: 1px; pointer-events: none; }
.contact-location { position: relative; border-top: 1px solid var(--line); }
.contact-location .sectionhead { margin-bottom: 28px; }
.contact-location .location-info { padding-top: 0; }
.contact-location .location-info h3 { font: 600 18px/1.5 var(--sans); margin: 0 0 12px; }
.contact-location .location-info>p { font-size: 17px; line-height: 1.6; }
.contact-location .map { height: 240px; margin-top: 20px; }
.contact-location-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; margin-top: 24px; }
.contact-only { grid-template-columns: 1fr; }
.mobile-services { display: none; }
.about-page { margin-block: 48px 64px; }
.about-page>.service-back { margin-bottom: 16px; }
.about-page>h1 { margin-top: 0; }
.about-page>h1 { font-size: clamp(34px,4vw,46px); }
.about-page-intro { display: grid; grid-template-columns: minmax(0,340px) minmax(0,1fr); gap: 48px; align-items: start; }
.about-page-copy { min-width: 0; }
.about-page-intro figure { width: 100%; }
.about-page-intro img { display: block; width: 100%; height: auto; border-radius: 4px; }
.about-page-intro figcaption { font-size: 14px; color: var(--muted); margin-top: 12px; }
.about-page-details { margin-block: 40px 0; }
.about-concerns { padding-left: 22px; }
.about-concerns li { margin-bottom: 12px; }
.service-page>.service-back { margin-bottom: 16px; }
.service-page>h1 { margin-top: 0; }
.direction-detail { position: relative; }
.page-closing-actions { margin-top: 32px; padding-top: 28px; border-top: 1px solid var(--line); }
.rental-page .rental-early-contact { margin-block: 0 24px; }
.rental-page .rental-intro { margin-top: 24px; }

/* Distinct sections and native disclosures keep detail pages easy to scan. */
.start-section { margin-top: 8px; }
.direction-formats { display: grid; gap: 20px; margin-top: 32px; }
.direction-format { margin: 0; padding: 28px; background: var(--surface); border-radius: 4px; }
.direction-format:nth-child(even) { background: var(--card); }
.service-page .direction-format h2 { margin: 0 0 16px; }
.direction-format>p:last-child { margin-bottom: 0; }
.service-page>.team-contact-hint { margin-block: 16px 20px; }
.team-experience { padding-top: 0; }
.team-experience>summary { padding-block: 16px; min-height: 52px; font-size: 17px; cursor: pointer; }
.team-experience>div { padding-block: 8px 4px; }
.direction-faq { padding: 28px; background: var(--surface); border-radius: 4px; }
.service-page .direction-faq>h2 { margin-top: 0; }
.direction-question { padding: 0; }
.direction-question:last-child { border-bottom: 0; }
.direction-question>summary { padding-block: 18px; min-height: 56px; cursor: pointer; font-size: 18px; font-weight: 600; line-height: 1.5; }
.direction-question>div { padding-block: 0 20px; }
.about-page-details { margin-bottom: 40px; }
.about-page-actions { margin-bottom: 0; padding-top: 32px; }
.about-page-actions .actions { margin-top: 24px; }
.about-direction-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 32px; }
.about-direction-links .textlink { display: flex; align-items: center; min-width: 0; min-height: 64px; padding: 16px 0; border-bottom: 1px solid var(--line); text-decoration: none; line-height: 1.5; }
.about-direction-links .textlink:hover { text-decoration: underline; text-underline-offset: 5px; }
.service-page>.therapy-requests { margin-top: 32px; padding: 28px; }
.service-page>.direction-detail>h2:first-child { margin-top: 0; }
.about-page .about-education { margin-top: 0; padding: 28px; border: 0; border-radius: 4px; background: var(--surface); }
.about-education>h2 { margin: 0 0 24px; font-size: 28px; }
.about-education .credentials-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px 40px; margin: 0; color: var(--muted); }
.about-education .credentials-list li { padding-bottom: 0; }
.home-page .work-section, .about-page .work-section { grid-template-columns: 1fr; gap: 24px; margin-block: 24px 48px; padding: 0; }
.home-page .work-section .section-intro, .about-page .work-section .section-intro { max-width: none; }
.work-section::before { content: none; }
.start-section .section-intro h2 { margin-bottom: 0; }
.start-section .start-grid { gap: 16px; }
.start-section .start-grid li { min-width: 0; padding: 24px; border-radius: 4px; background: var(--surface); }
.start-section .start-grid li::before { margin-bottom: 16px; }

/* Short readable panels, shared identity and calm emphasis across the site. */
.home-hero h1 em { font-family: inherit; font-style: italic; font-weight: inherit; color: var(--accent); }
.space-label { display: inline-flex; align-items: center; min-height: 32px; padding: 4px 14px; margin: 0 0 16px; border-radius: 100px; background: var(--surface); color: var(--green); font: 600 15px/1.5 var(--sans); letter-spacing: 0; }
.practitioner { margin: 0 0 20px; }
.practitioner .practitioner-name { display: block; margin: 0; color: var(--ink); font: 600 18px/1.5 var(--sans); }
.practitioner .practitioner-role { display: block; margin-top: 6px; max-width: 48ch; color: var(--muted); font: 400 16px/1.55 var(--sans); }
.audience-tag { display: inline-flex; flex-wrap: wrap; gap: 0 6px; margin: 0; padding: 7px 12px; border-radius: 4px; background: var(--surface); color: var(--green); font: 600 15px/1.5 var(--sans); }
.audience-tag strong { font: inherit; }
.intro-panel { padding: 20px 24px; background: var(--surface); border-radius: 6px; }
.intro-panel p:last-child { margin-bottom: 0; }
.copy-panel { min-width: 0; padding: 28px; border-radius: 6px; background: var(--surface); }
.copy-panel h2 { margin: 0 0 16px; font-size: 30px; }
.copy-panel p { color: var(--muted); }
.copy-panel p:last-child { margin-bottom: 0; }
.direction-introduction { background: var(--card); }
.direction-introduction>p, .service-page .direction-format>p { max-width: none; }
.direction-introduction>.team-contact-hint { margin-block: 16px 20px; }
.rental-overview { display: grid; gap: 28px; align-items: stretch; margin-block: 28px 32px; }
.rental-overview.has-photo { grid-template-columns: repeat(2,minmax(0,1fr)); }
.rental-page .rental-intro { margin-top: 0; padding: 24px 28px; border-radius: 6px; background: var(--card); }
.rental-page .rental-early-contact { margin: 0; }
.rental-visual { position: relative; min-width: 0; overflow: hidden; border-radius: 4px; }
.rental-page .rental-visual>.cabinet-photo { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; max-height: none; margin: 0; object-fit: cover; }
.rental-intro p:last-child { margin-bottom: 0; }
.rental-equipment { padding: 28px; border-radius: 6px; background: var(--surface); }
.rental-page .rental-equipment h2 { margin-top: 0; }
.rental-equipment ul { margin-bottom: 0; }
.rental-booking { border-top: 0; padding: 28px; border-radius: 6px; background: var(--card); }
.rental-booking>p { max-width: none; }
.rental-terms>strong { display: block; margin-bottom: 8px; color: var(--ink); font-weight: 600; }
.about-page-copy .approach-panel { margin-top: 24px; background: var(--card); border: 1px solid var(--line); }
.about-principles { margin-top: 32px; }
.about-principles>h2 { margin-bottom: 20px; font-size: 30px; }
.statement-grid { display: grid; grid-template-columns: 1fr; gap: 12px; margin: 0; padding: 0; list-style: none; }
.statement-grid>li { position: relative; min-width: 0; padding: 24px 28px 24px 40px; background: var(--card); border-radius: 6px; color: var(--muted); font-size: 18px; line-height: 1.6; }
.statement-grid>li::before { content: ''; position: absolute; top: 33px; left: 22px; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); }
.statement-grid p { margin: 0; }
.therapy-start { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr); gap: 20px 32px; margin-top: 32px; background: var(--surface); }
.service-page .therapy-start h2 { margin: 0; }
.text-points { margin: 0; padding-left: 18px; color: var(--muted); }
.text-points>li { padding-left: 6px; margin-bottom: 16px; }
.text-points>li:last-child { margin-bottom: 0; }
.text-points p { margin: 0; }
.practitioner-card { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px 28px; margin-top: 32px; padding: 24px 28px; border: 1px solid var(--line); border-radius: 6px; }
.practitioner-card .practitioner { margin: 0; }
.course-detail-panels { display: grid; gap: 16px; margin-top: 32px; }
.course-panel { max-width: none; min-width: 0; border-radius: 6px; background: var(--surface); }
.course-panel>summary { min-height: 84px; padding: 24px 28px; color: var(--ink); cursor: pointer; font: 400 26px/1.35 var(--serif); }
.course-panel[open]>summary { padding-bottom: 20px; }
.course-panel.desktop-open>summary { list-style: none; cursor: default; }
.course-panel.desktop-open>summary::marker { content: ''; }
.course-panel.desktop-open>summary::-webkit-details-marker { display: none; }
.course-panel .direction-program { max-width: none; padding: 0 28px 28px; }
.course-facts, .course-panel .direction-program>ul { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; list-style: none; margin: 0; padding: 0 28px 28px; }
.course-panel .direction-program>ul { padding: 0; }
.course-facts>li, .course-panel .direction-program>ul>li { min-width: 0; margin: 0; padding: 20px; border: 0; border-radius: 4px; background: var(--card); color: var(--muted); font-size: 17px; line-height: 1.6; }
.course-facts p { margin: 0; }
.course-panel .direction-program strong { display: block; color: var(--ink); font-weight: 600; line-height: 1.5; }
.course-panel .direction-program p { margin: 10px 0 0; line-height: 1.6; }
@media(max-width:620px) {
  .direction-formats { gap: 16px; }
  .direction-format, .direction-faq, .about-page .about-education { padding: 20px; }
  .service-page .direction-format h2 { font-size: 27px; }
  .direction-question>summary { font-size: 17px; }
  .about-education>h2 { font-size: 26px; }
  .copy-panel { padding: 20px; }
  .service-overview-copy, .rental-page .rental-intro, .rental-equipment, .rental-booking { padding: 20px; }
  .copy-panel h2, .about-principles>h2 { font-size: 27px; }
  .service-overview-copy>h2 { font-size: 27px; }
  .service-page>.therapy-requests { padding: 24px 20px; }
  .start-section .start-grid li { padding: 20px 20px 20px 58px; }
  .start-section .start-grid li::before { left: 20px; top: 25px; margin: 0; }
  .about-direction-links { grid-template-columns: 1fr; }
  .intro-panel { padding: 18px 20px; }
  .statement-grid { grid-template-columns: 1fr; gap: 12px; }
  .statement-grid>li { padding: 20px 20px 20px 34px; font-size: 17px; }
  .statement-grid>li::before { top: 30px; left: 18px; }
  .practitioner-card { padding: 20px; }
  .course-panel>summary { min-height: 76px; padding: 20px; font-size: 24px; }
  .course-facts, .course-panel .direction-program { padding: 0 20px 20px; }
  .course-facts, .course-panel .direction-program>ul { grid-template-columns: 1fr; gap: 12px; }
  .course-facts>li, .course-panel .direction-program>ul>li { padding: 16px; }
}
@media(max-width:900px) {
  .navlinks .services-menu { display: none; }
  .mobile-services { display: block; border-block: 1px solid var(--line); margin-block: 4px; padding-block: 8px; }
  .mobile-nav-label { display: block; padding: 4px 8px; color: var(--muted); font-size: 14px; }
  .navlinks .mobile-services a { display: flex; padding-left: 20px; }
}
@media(max-width:768px) {
  .portal-card { min-height: 340px; padding: 24px; }
  .portal-card h2 { font-size: 28px; }
  .portal-about p, .portal-teams p { font-size: 20px; }
  .about-page-intro { grid-template-columns: 1fr; gap: 28px; }
  .about-page-intro figure { max-width: 340px; }
  .about-education .credentials-list { grid-template-columns: 1fr; }
  .service-overview { grid-template-columns: 1fr; gap: 24px; }
  .therapy-start, .rental-overview.has-photo { grid-template-columns: 1fr; }
  .rental-visual { position: static; }
  .rental-page .rental-visual>.cabinet-photo { position: static; height: auto; object-fit: contain; }
}
@media(max-width:620px) {
  .home-hero { padding-block: 24px 32px; gap: 24px; }
  .home-hero .hero-visual { max-width: 200px; }
  .home-hero .hero-practitioner { margin-block: 16px; }
  .home-hero .hero-description p { margin-bottom: 16px; }
  .home-portals { padding-block: 8px 40px; }
  .portal-grid { grid-template-columns: 1fr; gap: 16px; }
  .portal-card { min-height: 0; padding: 24px; }
  .portal-card h2 { margin-bottom: 16px; }
  .portal-card p { font-size: 17px; margin: 0 0 16px; padding: 0; }
  .portal-more { margin-top: 8px; }
  .portal-terms { margin-bottom: 16px; }
  .about-page { margin-block: 28px 48px; }
  .about-page .service-back { margin-bottom: 16px; }
  .about-page-details { margin-top: 28px; }
  .page-closing-actions .btn { max-width: 100%; }
}
