/* --------------------------------------------------------------------------
   Multi-page: shared header, dropdown, page shells, services
   -------------------------------------------------------------------------- */

:root {
  --hero-header-h: 5.75rem;
  --hero-pad: 97px;
  --hero-copy-pad: 72px;
  --hero-forest: #1d3328;
  --hero-terra: #8d4d35;
  --hero-cream: #f7f3ea;
}

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 300;
  height: var(--hero-header-h, 5.75rem);
  background: var(--clay, #c9a391);
  transition: background 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.site-header.is-scrolled,
.site-header.site-header--solid {
  background: rgba(201, 163, 145, 0.96);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 8px 24px rgba(53, 47, 43, 0.06);
}

.has-dropdown { position: relative; }
.nav-drop__btn {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--hero-forest, #1d3328);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}
.nav-drop__btn::after {
  content: "";
  width: 0.4rem;
  height: 0.4rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg) translateY(-1px);
  transition: transform 0.2s var(--ease);
}
.has-dropdown.is-open .nav-drop__btn::after {
  transform: rotate(225deg) translateY(-1px);
}
.nav-drop {
  display: none;
  position: absolute;
  top: calc(100% + 0.85rem);
  left: 50%;
  transform: translateX(-50%);
  min-width: 14rem;
  margin: 0;
  padding: 0.65rem;
  list-style: none;
  background: #fffcf7;
  border: 1px solid rgba(53, 47, 43, 0.08);
  border-radius: 1rem;
  box-shadow: 0 18px 40px rgba(53, 47, 43, 0.1);
  z-index: 40;
}
.has-dropdown.is-open .nav-drop { display: block; }
.nav-drop a {
  display: block;
  padding: 0.7rem 0.85rem;
  border-radius: 0.65rem;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--hero-forest, #1d3328);
  text-decoration: none;
}
.nav-drop a:hover { background: rgba(29, 51, 40, 0.06); }

.page-main {
  padding-top: var(--hero-header-h, 5.75rem);
  background: #f7f3ea;
}

.page-hero { padding: 3.5rem 0 2.75rem; background: #f7f3ea; }
.page-hero__inner { max-width: 46rem; }
.page-hero__eyebrow {
  margin: 0 0 0.85rem;
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: #8d4d35;
}
.page-hero h1 {
  margin: 0;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(2.8rem, 6vw, 4.5rem);
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: -0.03em;
  color: #1d3328;
}
.page-hero__lead {
  margin: 1.25rem 0 0;
  max-width: 36rem;
  font-size: 1.15rem;
  line-height: 1.6;
  color: rgba(44, 50, 44, 0.72);
}

.section-block { padding: clamp(3.5rem, 8vw, 6rem) 0; }
.section-block--cream { background: #f7f3ea; }
.section-block--off { background: #faf8f3; }
.section-block--forest { background: #1d3328; color: #f7f3ea; }
.section-block--forest h2,
.section-block--forest .section-label { color: #f7f3ea; }
.section-block--forest p { color: rgba(247, 243, 234, 0.78); }

.services-grid { display: grid; gap: 1.5rem; }
.service-card {
  display: grid;
  gap: 0.85rem;
  padding: 1.75rem 1.6rem;
  background: #fffcf7;
  border-radius: 1.35rem;
  border: 1px solid rgba(53, 47, 43, 0.06);
  text-decoration: none;
  color: inherit;
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.service-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 40px rgba(53, 47, 43, 0.08);
  color: inherit;
}
.service-card--featured {
  background: #1d3328;
  color: #f7f3ea;
  padding: 2.25rem 1.85rem;
}
.service-card--featured:hover { color: #f7f3ea; }
.service-card--featured .service-card__label { color: #d8b8a4; }
.service-card--featured h3 { color: #f7f3ea; }
.service-card--featured p { color: rgba(247, 243, 234, 0.78); }
.service-card--featured .service-card__link { color: #f7f3ea; }
.service-card__label {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8d4d35;
}
.service-card h3 {
  margin: 0;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.65rem, 3vw, 2.15rem);
  font-weight: 400;
  color: #1d3328;
  line-height: 1.15;
}
.service-card p {
  margin: 0;
  max-width: 40rem;
  color: rgba(44, 50, 44, 0.72);
  line-height: 1.6;
}
.service-card__link {
  margin-top: 0.35rem;
  font-weight: 600;
  color: #8d4d35;
}
@media (min-width: 900px) {
  .services-grid {
    grid-template-columns: 1.35fr 1fr;
  }
  .service-card--featured {
    grid-row: 1 / span 3;
    align-content: start;
  }
}

.feature-band {
  display: grid;
  gap: 1.5rem;
  align-items: center;
}
.feature-band h2 {
  margin: 0;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  font-weight: 400;
  line-height: 0.98;
  letter-spacing: -0.03em;
}
.feature-band p {
  margin: 1rem 0 0;
  max-width: 34rem;
  font-size: 1.1rem;
  line-height: 1.6;
}
.feature-band .hero-btn { margin-top: 1.5rem; }
@media (min-width: 900px) {
  .feature-band {
    grid-template-columns: 1.1fr 0.9fr;
    gap: 3rem;
  }
}

.bio-layout { display: grid; gap: 2.5rem; }
@media (min-width: 900px) {
  .bio-layout {
    grid-template-columns: 0.9fr 1.1fr;
    gap: 4rem;
    align-items: start;
  }
}
.bio-portrait {
  margin: 0;
  border-radius: 1.5rem;
  overflow: hidden;
  background: #eadfce;
}
.bio-portrait img {
  width: 100%;
  height: auto;
  display: block;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}
.bio-copy p {
  margin: 0 0 1.35rem;
  font-size: 1.08rem;
  line-height: 1.75;
  color: rgba(44, 50, 44, 0.82);
}
.bio-copy a {
  color: #8d4d35;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.split-sections { display: grid; gap: 2rem; }
@media (min-width: 800px) {
  .split-sections { grid-template-columns: 1fr 1fr; gap: 2.5rem; }
}
.split-card {
  padding: 1.75rem;
  background: #fffcf7;
  border-radius: 1.25rem;
}
.split-card h3 {
  margin: 0 0 0.75rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.85rem;
  font-weight: 400;
  color: #1d3328;
}
.split-card p {
  margin: 0;
  color: rgba(44, 50, 44, 0.72);
  line-height: 1.65;
}
.split-card p + p {
  margin-top: 0.9rem;
  padding-top: 0.9rem;
  border-top: 1px solid rgba(53, 47, 43, 0.08);
}
.split-card .split-card__note {
  font-weight: 600;
  color: #8d4d35;
}

.benefit-list {
  display: grid;
  gap: 0.85rem;
  margin: 1.5rem 0 0;
  padding: 0;
  list-style: none;
}
.benefit-list li {
  padding: 0.95rem 1.1rem;
  background: #fffcf7;
  border-radius: 0.85rem;
  font-weight: 500;
  color: #1d3328;
}

.placeholder-box {
  margin-top: 1rem;
  padding: 1.1rem 1.2rem;
  border: 1px dashed rgba(53, 47, 43, 0.22);
  border-radius: 0.85rem;
  background: rgba(255, 252, 247, 0.6);
  color: rgba(44, 50, 44, 0.65);
  font-size: 0.95rem;
}

.detail-grid { display: grid; gap: 1.25rem; }
.details-title {
  margin: 0 0 1.75rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: 400;
  color: #1d3328;
  letter-spacing: -0.01em;
}
.details-title em {
  font-style: italic;
}
@media (min-width: 700px) {
  .detail-grid { grid-template-columns: 1fr 1fr; }
  .detail-grid > .detail-item:last-child:nth-child(odd) { grid-column: 1 / -1; }
}
.detail-item {
  padding: 1.35rem 1.4rem;
  background: #fffcf7;
  border-radius: 1rem;
}
.detail-item h3 {
  margin: 0 0 0.55rem;
  font-size: 1.05rem;
  color: #1d3328;
}
.detail-item p {
  margin: 0;
  color: rgba(44, 50, 44, 0.68);
  line-height: 1.55;
}

/* Private pricing */
h2.section-label {
  font-family: "Manrope", system-ui, sans-serif;
  line-height: 1.4;
}
.pricing-grid {
  display: grid;
  gap: 1.5rem;
  margin-top: 1.25rem;
}
.price-card {
  padding: clamp(1.6rem, 4vw, 2.25rem);
  background: #fffcf7;
  border-radius: 1.25rem;
  min-width: 0;
}
.price-card--group {
  background: #e7d1c3;
}
.price-card__title {
  margin: 0 0 1rem;
  font-family: "Manrope", system-ui, sans-serif;
  line-height: 1.4;
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #8d4d35;
}
.price-card__amount {
  margin: 0;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(3rem, 7vw, 4rem);
  line-height: 1;
  color: #1d3328;
}
.price-card__amount span {
  font-family: "Manrope", system-ui, sans-serif;
  font-size: 1rem;
  color: rgba(44, 50, 44, 0.72);
}
.price-rates {
  margin: 0;
  display: grid;
  gap: 0.85rem;
}
.price-rates__row dt {
  font-weight: 600;
  color: #1d3328;
}
.price-rates__row dd {
  margin: 0.15rem 0 0;
  line-height: 1.25;
  color: #1d3328;
}
.price-rates__amount {
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.75rem, 3.5vw, 2.1rem);
}
.price-rates__unit {
  font-family: "Manrope", system-ui, sans-serif;
  font-size: 1rem;
  color: rgba(44, 50, 44, 0.72);
}
.price-card__note {
  margin: 1.1rem 0 0;
  color: #352f2b;
  line-height: 1.55;
}
.price-table {
  margin: 1.35rem 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid rgba(53, 47, 43, 0.14);
}
.price-table li {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.15rem 1rem;
  padding: 0.7rem 0;
  border-bottom: 1px solid rgba(53, 47, 43, 0.1);
  font-size: 0.95rem;
}
.price-table__size {
  font-weight: 600;
  color: #1d3328;
}
.price-table__value {
  color: rgba(44, 50, 44, 0.8);
  overflow-wrap: anywhere;
}
.price-table__foot {
  margin: 0.85rem 0 0;
  font-size: 0.9rem;
  color: rgba(44, 50, 44, 0.72);
}
.price-offer {
  margin: 1.5rem 0 0;
  padding: 0.95rem 1.2rem;
  border-left: 3px solid #b9684f;
  background: rgba(231, 209, 195, 0.35);
  border-radius: 0 0.75rem 0.75rem 0;
  font-weight: 600;
  color: #1d3328;
}
.terms-link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  margin-top: 1.5rem;
  padding: 0.8rem 1.35rem;
  border: 1px solid #1d3328;
  border-radius: 999px;
  font-weight: 600;
  color: #1d3328;
  text-decoration: none;
  transition: background 0.2s var(--ease);
}
.terms-link:hover {
  background: rgba(29, 51, 40, 0.06);
  color: #1d3328;
}
@media (min-width: 860px) {
  .pricing-grid {
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    align-items: start;
  }
}

/* Private booking terms */
.terms-section {
  scroll-margin-top: calc(var(--hero-header-h, 5.75rem) + 1rem);
}
.terms-layout {
  display: grid;
  gap: 2rem;
}
.terms-title {
  margin: 0 0 1rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(2rem, 4vw, 2.75rem);
  font-weight: 400;
  line-height: 1.1;
  color: #1d3328;
}
.terms-intro p {
  margin: 0;
  max-width: 34rem;
  line-height: 1.65;
  color: rgba(44, 50, 44, 0.75);
}
.terms-accordion {
  border-top: 1px solid rgba(53, 47, 43, 0.12);
}
.terms-accordion .accordion-trigger {
  font-size: 1.05rem;
  color: #1d3328;
}
.terms-accordion .accordion-panel {
  max-width: none;
}
.terms-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.85rem;
}
.terms-list li {
  position: relative;
  padding-left: 1.1rem;
  line-height: 1.6;
  color: rgba(44, 50, 44, 0.78);
}
.terms-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.65em;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 50%;
  background: #b9684f;
}
.terms-list strong,
.terms-payment strong {
  color: #1d3328;
}
.terms-payment {
  margin-top: 2rem;
  padding: clamp(1.4rem, 3.5vw, 1.85rem);
  background: #fffcf7;
  border-radius: 1.1rem;
}
.terms-payment__title {
  margin: 0 0 0.85rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.6rem;
  font-weight: 400;
  color: #1d3328;
}
.terms-payment p {
  margin: 0;
  line-height: 1.6;
  color: rgba(44, 50, 44, 0.78);
}
.terms-payment p + p {
  margin-top: 0.75rem;
}
@media (min-width: 900px) {
  .terms-layout {
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 3.5rem;
    align-items: start;
  }
  .terms-intro {
    position: sticky;
    top: calc(var(--hero-header-h, 5.75rem) + 1.5rem);
  }
}

.contact-form {
  display: grid;
  gap: 1rem;
  max-width: 36rem;
}
.contact-form label {
  display: grid;
  gap: 0.4rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: #1d3328;
}
.contact-form input,
.contact-form select,
.contact-form textarea {
  width: 100%;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(53, 47, 43, 0.16);
  border-radius: 0.75rem;
  background: #fffcf7;
  font: inherit;
  color: #1d3328;
}
.contact-form textarea { min-height: 8rem; resize: vertical; }
.contact-form .hero-btn { justify-self: start; margin-top: 0.35rem; }

.footer-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.35rem;
  margin-top: 0.35rem;
}
.footer-meta a {
  color: rgba(245, 241, 232, 0.65);
  text-decoration: none;
  font-size: 0.88rem;
}

/* --------------------------------------------------------------------------
   Homepage — editorial design system
   -------------------------------------------------------------------------- */

.home {
  --home-max: 1200px;
  --home-gutter: clamp(1.25rem, 5vw, 4rem);
  --home-section: clamp(4rem, 8vw, 6.5rem);
  --home-forest: #1d3328;
  --home-forest-deep: #16261e;
  --home-terra: #8d4d35;
  --home-ink: rgba(44, 50, 44, 0.76);
  --home-line: rgba(53, 47, 43, 0.12);
  --home-cream: #f7f3ea;
  --home-paper: #fffcf7;
  --home-sand: #f2e9e0;
  --home-clay: #e5cfc1;
  --home-radius: 1rem;
}

.home .container {
  width: min(100% - (var(--home-gutter) * 2), var(--home-max));
}

.home main {
  background: var(--home-cream);
}

.home-section {
  padding: var(--home-section) 0;
}

/* Type scale */
.home-label {
  margin: 0 0 0.9rem;
  font-family: "Manrope", system-ui, sans-serif;
  font-size: 0.74rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--home-terra);
}

.home-h2 {
  margin: 0;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(2.1rem, 3.6vw, 3.1rem);
  font-weight: 400;
  line-height: 1.04;
  letter-spacing: -0.02em;
  color: var(--home-forest);
  text-wrap: balance;
}

.home-body,
.home-body p {
  font-size: 1.06rem;
  line-height: 1.7;
  color: var(--home-ink);
}

.home-body {
  margin: 0;
  max-width: 36rem;
}

.home-body p {
  margin: 0;
}

.home-body p + p {
  margin-top: 1rem;
}

/* Buttons */
.home-btn,
.home .hero-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 3.25rem;
  padding: 0 1.6rem;
  border-radius: 999px;
  border: 1.5px solid transparent;
  font-family: "Manrope", system-ui, sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  line-height: 1;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: none;
  transition: background 0.25s var(--ease), color 0.25s var(--ease), border-color 0.25s var(--ease), transform 0.25s var(--ease);
}

.home-btn:hover,
.home .hero-btn:hover {
  transform: translateY(-1px);
}

.home-btn--primary,
.home .hero-btn--solid {
  background: var(--home-forest);
  border-color: var(--home-forest);
  color: var(--home-cream);
}

.home-btn--primary:hover,
.home .hero-btn--solid:hover {
  background: var(--home-forest-deep);
  border-color: var(--home-forest-deep);
  color: var(--home-cream);
}

.home-btn--secondary,
.home .hero-btn--outline {
  background: transparent;
  border-color: rgba(29, 51, 40, 0.4);
  color: var(--home-forest);
}

.home-btn--secondary:hover,
.home .hero-btn--outline:hover {
  background: rgba(29, 51, 40, 0.05);
  border-color: var(--home-forest);
  color: var(--home-forest);
}

.home-btn:focus-visible,
.home .hero-btn:focus-visible,
.home-link:focus-visible,
.home-card:focus-visible {
  outline: 2px solid var(--home-terra);
  outline-offset: 3px;
}

.home-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 2rem;
}

.home-actions--center {
  justify-content: center;
}

/* Text links */
.home-link {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding-bottom: 0.2rem;
  border-bottom: 1px solid rgba(29, 51, 40, 0.3);
  font-family: "Manrope", system-ui, sans-serif;
  font-size: 0.94rem;
  font-weight: 600;
  color: var(--home-forest);
  text-decoration: none;
  transition: border-color 0.25s var(--ease), color 0.25s var(--ease);
}

.home-link__arrow {
  display: inline-block;
  transition: transform 0.25s var(--ease);
}

.home-link:hover,
.home-card:hover .home-link {
  border-color: var(--home-forest);
  color: var(--home-forest);
}

.home-link:hover .home-link__arrow,
.home-card:hover .home-link__arrow,
.home-btn:hover .home-link__arrow {
  transform: translateX(3px);
}

/* Hero */
.home .hero,
.home .hero__panel {
  min-height: clamp(600px, 84vh, 780px);
  min-height: clamp(600px, 84dvh, 780px);
}

.home .hero__panel {
  max-width: none;
}

.home .hero__copy {
  width: min(100% - (var(--home-gutter) * 2), var(--home-max));
  min-height: inherit;
  margin-inline: auto;
  padding: calc(var(--hero-header-h) + 2rem) 0 3rem;
  justify-content: center;
}

.home .hero__copy > * {
  max-width: 34rem;
}

.home .hero__eyebrow {
  margin-bottom: 1.5rem;
  font-size: 0.74rem;
  letter-spacing: 0.24em;
}

.home .hero__title {
  font-size: clamp(4rem, 6vw, 5.75rem);
  line-height: 0.94;
}

.home .hero__signature {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0.85rem 0 0;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.2rem, 1.55vw, 1.45rem);
  font-style: italic;
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.01em;
  color: rgba(141, 77, 53, 0.82);
}

.home .hero__signature::before {
  content: "";
  flex-shrink: 0;
  width: 1.75rem;
  height: 1px;
  background: currentColor;
  opacity: 0.5;
}

.home .hero__lead {
  margin-top: 2.1rem;
  max-width: 28rem;
  font-size: 1.12rem;
  line-height: 1.65;
  color: var(--home-ink);
}

.home .hero__lead--sub {
  margin-top: 0.6rem;
  font-size: 0.95rem;
  color: rgba(44, 50, 44, 0.58);
}

.home .hero__actions {
  gap: 0.75rem;
  margin-top: 2.25rem;
}

.home .hero__sd {
  right: max(2vw, calc((100vw - var(--home-max)) / 2 - 1rem));
  top: calc(50% + var(--hero-header-h) / 2);
  width: min(38vw, 500px);
  transform: translateY(-50%);
  opacity: 0.16;
}

.home .hero__forms-line {
  opacity: 0.45;
}

.home .hero__actions .hero-btn {
  min-height: 3.25rem;
  padding-inline: 1.6rem;
}

/* Welcome */
.home-welcome {
  background: var(--home-paper);
  border-bottom: 1px solid var(--home-line);
}

.home-welcome__grid {
  display: grid;
  gap: 1.5rem;
}

.home-welcome__body .home-actions {
  margin-top: 1.75rem;
}

/* Ways to work with me */
.home-ways__head {
  max-width: 40rem;
  margin-bottom: clamp(2rem, 4vw, 3rem);
}

.home-ways__grid {
  display: grid;
  gap: 1.25rem;
}

.home-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: clamp(1.6rem, 3vw, 2.5rem);
  background: var(--home-paper);
  border: 1px solid var(--home-line);
  border-radius: var(--home-radius);
  color: inherit;
  text-decoration: none;
  transition: border-color 0.3s var(--ease), transform 0.3s var(--ease);
}

.home-card--alt {
  background: var(--home-sand);
}

.home-card:hover {
  color: inherit;
  border-color: rgba(29, 51, 40, 0.28);
  transform: translateY(-2px);
}

.home-card__label {
  margin: 0 0 1rem;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--home-terra);
}

.home-card__title {
  margin: 0;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.75rem, 2.6vw, 2.2rem);
  font-weight: 400;
  line-height: 1.1;
  letter-spacing: -0.01em;
  color: var(--home-forest);
}

.home-card__text {
  margin: 0.85rem 0 0;
  max-width: 30rem;
  font-size: 1rem;
  line-height: 1.65;
  color: var(--home-ink);
}

.home-card__text {
  margin-bottom: 1.75rem;
}

.home-card__link {
  align-self: flex-start;
  margin-top: auto;
}

/* Why private */
.home-why {
  background: var(--home-cream);
  padding-top: 0;
}

.home-why__title {
  margin-bottom: clamp(1.75rem, 3.5vw, 2.5rem);
}

.home-why__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0 2rem;
}

.home-why__list li {
  padding: 1.35rem 0;
  border-top: 1px solid var(--home-line);
}

.home-why__list h3 {
  margin: 0 0 0.45rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.45rem;
  font-weight: 400;
  line-height: 1.2;
  color: var(--home-forest);
}

.home-why__list p {
  margin: 0;
  max-width: 22rem;
  font-size: 0.98rem;
  line-height: 1.6;
  color: var(--home-ink);
}

/* About */
.home-about {
  background: var(--home-paper);
}

.home-about__grid {
  display: grid;
  gap: 2rem;
  align-items: center;
}

.home-about__media {
  position: relative;
  margin: 0;
}

.home-about__media img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center 30%;
  border-radius: var(--home-radius);
}

.home-about__caption {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  padding: 0.5rem 0.85rem;
  background: rgba(255, 252, 247, 0.92);
  border-radius: 999px;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--home-forest);
}

.home-about__copy .home-h2 {
  margin-bottom: 1.25rem;
}

.home-about__prose {
  max-width: 32rem;
}

.home-about__link {
  margin-top: 2rem;
}

.home-about__links {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 2rem;
  margin-top: 2rem;
}

/* Studio */
.home-studio {
  background: var(--home-paper);
  padding-top: 0;
}

.home-studio__panel {
  display: grid;
  gap: 1.75rem;
  padding: clamp(1.5rem, 4vw, 3.5rem);
  background: var(--home-sand);
  border-radius: calc(var(--home-radius) * 1.25);
  align-items: center;
}

.home-studio__copy .home-h2 {
  margin-bottom: 1.1rem;
}

.home-studio__copy .home-body {
  max-width: 30rem;
}

.home-studio__copy .home-btn {
  margin-top: 1.75rem;
}

.home-studio__media {
  margin: 0;
}

.home-studio__media img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  object-position: center 55%;
  border-radius: var(--home-radius);
}

/* Final CTA */
.home-cta {
  padding: 0 0 var(--home-section);
  background: var(--home-paper);
}

.home-cta__panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: clamp(2.75rem, 6vw, 4.5rem) clamp(1.5rem, 5vw, 4rem);
  background: var(--home-clay);
  border-radius: calc(var(--home-radius) * 1.25);
  text-align: center;
}

.home-cta__title {
  max-width: 18ch;
}

.home-cta__text {
  margin-top: 1rem;
  max-width: 34rem;
  color: rgba(44, 50, 44, 0.8);
}

.home-cta .home-actions {
  margin-top: 2rem;
}

/* Tablet and up */
@media (min-width: 720px) {
  .home-ways__grid {
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
  }

  .home-why__list {
    grid-template-columns: 1fr 1fr;
  }
}

/* Desktop */
@media (min-width: 960px) {
  .home-welcome__grid {
    grid-template-columns: minmax(0, 0.42fr) minmax(0, 0.58fr);
    gap: clamp(2.5rem, 6vw, 6rem);
    align-items: center;
  }

  .home-welcome__body .home-body {
    font-size: 1.15rem;
  }

  .home-why__list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0 2rem;
  }

  .home-about__grid {
    grid-template-columns: minmax(0, 0.45fr) minmax(0, 0.55fr);
    gap: clamp(3rem, 7vw, 6.5rem);
  }

  .home-studio__panel {
    grid-template-columns: minmax(0, 0.44fr) minmax(0, 0.56fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }
}

/* Hero below desktop */
@media (max-width: 960px) {
  .home .hero,
  .home .hero__panel {
    min-height: auto;
  }

  .home .hero__copy {
    padding: calc(var(--hero-header-h) + 2.5rem) 0 3rem;
  }

  .home .hero__title {
    font-size: clamp(3rem, 9.5vw, 4.25rem);
  }

  .home .hero__sd {
    right: -18%;
    top: auto;
    bottom: 4%;
    width: min(62vw, 22rem);
    transform: none;
    opacity: 0.12;
  }
}

@media (min-width: 561px) and (max-width: 959px) {
  .home-about__media img {
    aspect-ratio: 4 / 3;
    object-position: center 35%;
  }
}

/* Mobile */
@media (max-width: 560px) {
  .home {
    --home-section: 3.5rem;
  }

  .home-h2 {
    font-size: clamp(1.95rem, 8.5vw, 2.4rem);
  }

  .home-label {
    margin-bottom: 0.7rem;
  }

  .home .hero__copy {
    padding: calc(var(--hero-header-h) + 1.75rem) 0 2.5rem;
  }

  .home .hero__title {
    font-size: clamp(2.75rem, 12.5vw, 3.4rem);
  }

  .home .hero__signature {
    margin-top: 0.65rem;
    font-size: 1.2rem;
  }

  .home .hero__lead {
    margin-top: 1.6rem;
    font-size: 1.05rem;
  }

  .home .hero__lead--sub {
    margin-top: 0.6rem;
  }

  .home .hero__actions,
  .home-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .home .hero__actions .hero-btn,
  .home-actions .home-btn {
    width: 100%;
  }

  .home-welcome__grid {
    gap: 1rem;
  }

  .home-card {
    padding: 1.5rem;
  }

  .home-card__text {
    margin-bottom: 1.5rem;
  }

  .home-about__grid {
    gap: 1.75rem;
  }

  .home-about__media img {
    aspect-ratio: 5 / 6;
  }

  .home-studio__panel {
    padding: 1.25rem 1.25rem 1.5rem;
  }

  .home-studio__media {
    order: -1;
  }

  .home-studio__copy .home-btn {
    width: 100%;
  }

  .home-cta__panel {
    padding: 2.5rem 1.35rem;
  }

  .home-cta .home-actions {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-card,
  .home-btn,
  .home .hero-btn,
  .home-link__arrow {
    transition: none;
  }

  .home-card:hover,
  .home-btn:hover,
  .home .hero-btn:hover {
    transform: none;
  }
}

/* --------------------------------------------------------------------------
   Studio Classes — editorial layout
   -------------------------------------------------------------------------- */

.studio-benefits {
  padding: 0 0 clamp(3rem, 7vw, 4.5rem);
  background: #f7f3ea;
}

.studio-benefits__panel {
  background: #e7d1c3;
  border-radius: 1.75rem;
  padding: clamp(2.25rem, 5vw, 3.75rem) clamp(1.5rem, 4vw, 3.25rem);
}

.studio-benefits__title {
  margin: 0 0 clamp(2rem, 4vw, 2.75rem);
  max-width: 12ch;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(2rem, 4.2vw, 2.9rem);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: 0.02em;
  color: #1d3328;
  text-wrap: balance;
}

.studio-benefits__list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0;
}

.studio-benefits__item {
  display: grid;
  grid-template-columns: 2.75rem 1fr;
  gap: 0.85rem 1.15rem;
  padding: 1.35rem 0;
  border-top: 1px solid rgba(53, 47, 43, 0.12);
}

.studio-benefits__item:last-child {
  padding-bottom: 0;
}

.studio-benefits__num {
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.05rem;
  font-style: italic;
  color: #8d4d35;
  line-height: 1.4;
  padding-top: 0.1rem;
}

.studio-benefits__item h3 {
  margin: 0 0 0.4rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.35rem, 2.4vw, 1.65rem);
  font-weight: 400;
  color: #0d4a2b;
  line-height: 1.2;
}

.studio-benefits__item p {
  margin: 0;
  max-width: 34rem;
  font-size: 1rem;
  line-height: 1.6;
  color: #352f2b;
}

@media (min-width: 900px) {
  .studio-benefits__panel {
    display: grid;
    grid-template-columns: minmax(14rem, 0.85fr) 1.15fr;
    gap: 3rem;
    align-items: start;
  }

  .studio-benefits__title {
    margin-bottom: 0;
    position: sticky;
    top: calc(var(--hero-header-h, 5.75rem) + 1.5rem);
  }

  .studio-benefits__item {
    grid-template-columns: 3rem 1fr;
    gap: 1rem 1.35rem;
    padding: 1.5rem 0;
  }
}

.studio-split {
  padding: clamp(3rem, 7vw, 5rem) 0;
  background: #faf8f3;
}

.studio-split__grid {
  display: grid;
  gap: 2.5rem;
}

.studio-split__col {
  max-width: 32rem;
}

.studio-split__label {
  margin: 0 0 0.85rem;
  font-size: 0.74rem;
  font-weight: 650;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8d4d35;
}

.studio-split__text {
  margin: 0;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  font-weight: 400;
  line-height: 1.4;
  color: #1d3328;
}

@media (min-width: 800px) {
  .studio-split__grid {
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
  }

  .studio-split__col + .studio-split__col {
    border-left: 1px solid rgba(53, 47, 43, 0.1);
    padding-left: 4rem;
  }
}

@media (max-width: 799px) {
  .studio-split__col + .studio-split__col {
    border-top: 1px solid rgba(53, 47, 43, 0.1);
    padding-top: 2.5rem;
  }
}

.studio-practical {
  padding: clamp(3.25rem, 7vw, 5.5rem) 0;
  background: #f7f3ea;
}

.studio-practical .details-title {
  margin-bottom: 2.25rem;
}

.studio-practical__grid {
  display: grid;
  gap: 2.5rem;
}

.studio-practical__col {
  max-width: 26rem;
}

.studio-practical__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  margin-bottom: 1rem;
  color: #8d4d35;
}

.studio-practical__col h3 {
  margin: 0 0 0.7rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.55rem;
  font-weight: 400;
  color: #1d3328;
}

.studio-practical__col p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.6;
  color: rgba(53, 47, 43, 0.78);
}

.studio-practical__col a {
  color: #8d4d35;
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

.studio-practical__col a:hover {
  color: #0d4a2b;
}

@media (min-width: 900px) {
  .studio-practical__grid {
    grid-template-columns: 1fr 1fr 1fr;
    gap: 2.5rem 3rem;
  }

  .studio-practical__col {
    max-width: none;
  }

  .studio-practical__col + .studio-practical__col {
    border-left: 1px solid rgba(53, 47, 43, 0.1);
    padding-left: 2.5rem;
  }
}

@media (max-width: 899px) {
  .studio-practical__col + .studio-practical__col {
    border-top: 1px solid rgba(53, 47, 43, 0.1);
    padding-top: 2.25rem;
  }
}


.studio-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  color: #315B46;
}

.studio-icon svg {
  width: 100%;
  height: 100%;
  display: block;
  overflow: visible;
}

.studio-icon path,
.studio-icon circle,
.studio-icon rect {
  fill: none;
}

.studio-icon__accent {
  stroke: #B86F58;
}

.studio-icon--label {
  width: 22px;
  height: 22px;
  margin-right: 0.45rem;
}

.studio-icon--btn {
  width: 18px;
  height: 18px;
  color: currentColor;
}

.studio-icon--btn .studio-icon__accent {
  stroke: #B86F58;
}

.studio-book-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
}

.studio-benefits__item {
  display: grid;
  grid-template-columns: 1.75rem 1fr;
  gap: 0.85rem 1rem;
  padding: 1.35rem 0;
  border-top: 1px solid rgba(53, 47, 43, 0.12);
  align-items: start;
}

.studio-benefits__item .studio-icon {
  margin-top: 0.2rem;
}

.studio-split__label {
  display: flex;
  align-items: center;
  margin: 0 0 0.85rem;
  font-size: 0.74rem;
  font-weight: 650;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #8a6a58;
}

.studio-photo__figure {
  margin: 0;
  border-radius: 1.35rem;
  overflow: hidden;
  background: #eadfce;
  box-shadow: 0 18px 48px rgba(53, 47, 43, 0.08);
}

.studio-photo__figure img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  object-position: center 45%;
  filter: contrast(1.04) saturate(1.03);
}

.studio-photo__figure--details {
  margin: 0;
}

.studio-practical__layout {
  display: grid;
  gap: 2rem;
  align-items: start;
}

.studio-practical__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin-bottom: 0.65rem;
  color: #315B46;
}

@media (min-width: 900px) {
  .studio-practical__layout {
    grid-template-columns: minmax(16rem, 0.9fr) minmax(16rem, 1.1fr);
    gap: 2.75rem 3rem;
    align-items: stretch;
  }

  .studio-photo__figure--details {
    max-width: 100%;
    height: 100%;
    align-self: stretch;
  }

  .studio-photo__figure--details img {
    width: 100%;
    height: 100%;
    min-height: 22rem;
    object-fit: cover;
    object-position: center;
  }

  .studio-practical__grid {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0;
  }

  .studio-practical__col + .studio-practical__col {
    border-left: 0;
    padding-left: 0;
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(53, 47, 43, 0.1);
  }
}

.studio-terms-link {
  align-self: flex-start;
  justify-self: start;
  margin-top: 2rem;
}

@media (max-width: 899px) {
  .studio-photo__figure--details {
    margin-bottom: 0.5rem;
  }

  .studio-photo__figure--details img {
    width: 100%;
    height: auto;
    object-fit: contain;
  }
}

.cta-band--studio {
  background: #e7d1c3;
  color: #1d3328;
  padding: clamp(4rem, 9vw, 6rem) 0;
}

.cta-band--studio h2 {
  color: #1d3328;
}

.cta-band--studio p {
  color: rgba(53, 47, 43, 0.78);
}

.cta-band--studio .btn-terracotta {
  background: #1d3328;
  color: #f7f3ea;
  box-shadow: 0 10px 28px rgba(29, 51, 40, 0.18);
}

.cta-band--studio .btn-terracotta:hover {
  background: #0d4a2b;
  color: #f7f3ea;
}

.footer-meta a:hover { color: var(--peach); }

/* --------------------------------------------------------------------------
   Private Pilates — editorial layout
   -------------------------------------------------------------------------- */

.pp {
  --pp-max: 1200px;
  --pp-gutter: clamp(1.25rem, 5vw, 4rem);
  --pp-section: clamp(3.5rem, 7.5vw, 6rem);
  --pp-forest: #1d3328;
  --pp-forest-deep: #16261e;
  --pp-terra: #8d4d35;
  --pp-ink: rgba(44, 50, 44, 0.76);
  --pp-line: rgba(53, 47, 43, 0.12);
  --pp-cream: #f7f3ea;
  --pp-paper: #fffcf7;
  --pp-sand: #f2e9e0;
  --pp-clay: #e5cfc1;
  --pp-radius: 1rem;
}

.pp .container {
  width: min(100% - (var(--pp-gutter) * 2), var(--pp-max));
}

.pp-section {
  padding: var(--pp-section) 0;
}

.pp-label {
  margin: 0 0 0.9rem;
  font-family: "Manrope", system-ui, sans-serif;
  font-size: 0.74rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--pp-terra);
}

.pp-h2 {
  margin: 0;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(2rem, 3.6vw, 3rem);
  font-weight: 400;
  line-height: 1.06;
  letter-spacing: -0.02em;
  color: var(--pp-forest);
  text-wrap: balance;
}

.pp-head {
  max-width: 40rem;
  margin-bottom: clamp(1.75rem, 4vw, 2.75rem);
}

.pp-head--center {
  margin-inline: auto;
  text-align: center;
}

.pp-card {
  min-width: 0;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  background: var(--pp-paper);
  border: 1px solid var(--pp-line);
  border-radius: var(--pp-radius);
}

.pp-card--sand {
  background: var(--pp-sand);
}

/* Hero */
.pp-hero {
  padding: clamp(2.25rem, 6vw, 5rem) 0 clamp(2.5rem, 6vw, 5rem);
  background: var(--pp-cream);
}

.pp-hero__grid {
  display: grid;
  gap: clamp(1.75rem, 4vw, 2.5rem);
  align-items: center;
}

.pp-hero__title {
  margin: 0;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(2.9rem, 6vw, 5rem);
  font-weight: 400;
  line-height: 0.96;
  letter-spacing: -0.03em;
  color: var(--pp-forest);
  text-wrap: balance;
}

.pp-hero__lead {
  margin: 1.35rem 0 0;
  max-width: 34rem;
  font-size: 1.1rem;
  line-height: 1.65;
  color: var(--pp-ink);
}

.pp-hero__media {
  margin: 0;
}

.pp-hero__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: 45% 60%;
  border-radius: var(--pp-radius);
}

/* One-to-one / small group */
.pp-types {
  padding-top: 0;
  background: var(--pp-cream);
}

.pp-types__grid {
  display: grid;
  gap: 1.25rem;
}

.pp-type {
  scroll-margin-top: calc(var(--hero-header-h, 5.75rem) + 1rem);
}

.pp-type__title {
  margin: 0 0 1rem;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.75rem, 2.6vw, 2.1rem);
  font-weight: 400;
  line-height: 1.1;
  color: var(--pp-forest);
}

.pp-type p {
  margin: 0;
  max-width: 34rem;
  font-size: 1rem;
  line-height: 1.65;
  color: var(--pp-ink);
}

.pp-type p + p {
  margin-top: 0.9rem;
  padding-top: 0.9rem;
  border-top: 1px solid var(--pp-line);
}

.pp-type .pp-type__note {
  font-weight: 600;
  color: var(--pp-terra);
}

/* Why private classes */
.pp-why {
  background: var(--pp-paper);
}

.pp-benefits {
  display: grid;
  gap: 0 2rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pp-benefits li {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 1.1rem 0;
  border-top: 1px solid var(--pp-line);
  font-family: "Instrument Serif", Georgia, serif;
  font-size: 1.4rem;
  line-height: 1.2;
  color: var(--pp-forest);
}

.pp-benefits li::before {
  content: "";
  flex-shrink: 0;
  width: 1.6rem;
  height: 1.6rem;
  border: 1px solid rgba(141, 77, 53, 0.35);
  border-radius: 50%;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%238d4d35' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 8.3l2.3 2.2 4.7-5'/%3E%3C/svg%3E") center / 0.85rem no-repeat;
}

/* Practical details */
.pp-details {
  background: var(--pp-cream);
}

.pp-details__grid {
  display: grid;
  gap: 1rem;
}

.pp-detail {
  min-width: 0;
  padding: 1.35rem 1.4rem;
  background: var(--pp-paper);
  border: 1px solid var(--pp-line);
  border-radius: var(--pp-radius);
}

.pp-detail h3 {
  margin: 0 0 0.5rem;
  font-family: "Manrope", system-ui, sans-serif;
  font-size: 0.74rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--pp-terra);
}

.pp-detail p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.6;
  color: var(--pp-ink);
}

.pp-detail a {
  color: var(--pp-forest);
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: rgba(29, 51, 40, 0.35);
  text-underline-offset: 0.18em;
  overflow-wrap: anywhere;
}

.pp-detail a:hover {
  text-decoration-color: var(--pp-forest);
}

/* Pricing */
.pp-pricing {
  background: var(--pp-paper);
}

.pp-pricing .pp-head {
  margin-bottom: 1.25rem;
}

.pp-pricing__grid {
  display: grid;
  gap: 1.25rem;
  max-width: 60rem;
  margin-inline: auto;
}

.pp-price {
  display: flex;
  flex-direction: column;
  background: var(--pp-cream);
}

.pp-price__title {
  margin: 0 0 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--pp-line);
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.5rem, 2.3vw, 1.85rem);
  font-weight: 400;
  line-height: 1.15;
  color: var(--pp-forest);
}

.pp-price__amount {
  margin: 0;
}

@media (min-width: 720px) {
  .pp-price .pp-price__amount {
    margin-block: auto;
  }
}

.pp-price__figure {
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(2.75rem, 5vw, 3.5rem);
  line-height: 1;
  color: var(--pp-forest);
}

.pp-price__unit {
  font-family: "Manrope", system-ui, sans-serif;
  font-size: 1rem;
  color: var(--pp-ink);
}

.pp-price__rates {
  display: grid;
  gap: 1.1rem;
  margin: 0;
}

.pp-price__row dt {
  margin-bottom: 0.35rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--pp-forest);
}

.pp-price__row dd {
  margin: 0;
  line-height: 1.2;
}

.pp-price__row + .pp-price__row {
  padding-top: 1.1rem;
  border-top: 1px solid var(--pp-line);
}

.pp-price__rates .pp-price__figure {
  font-size: clamp(2.25rem, 4vw, 2.75rem);
}

.pp-offer {
  max-width: 60rem;
  margin: 1.25rem auto 0;
  padding: 0.9rem 1.25rem;
  background: var(--pp-sand);
  border-radius: calc(var(--pp-radius) * 0.75);
  font-size: 0.98rem;
  font-weight: 600;
  line-height: 1.5;
  text-align: center;
  color: var(--pp-forest);
}

.pp-pricing__terms {
  margin: 1.5rem 0 0;
  text-align: center;
}

.pp-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  min-height: 2.75rem;
  font-size: 0.94rem;
  font-weight: 500;
  color: var(--pp-ink);
  text-decoration: underline;
  text-decoration-color: rgba(44, 50, 44, 0.3);
  text-underline-offset: 0.25em;
  transition: color 0.25s var(--ease), text-decoration-color 0.25s var(--ease);
}

.pp-link:hover {
  color: var(--pp-forest);
  text-decoration-color: var(--pp-forest);
}

/* Terms */
.pp-terms {
  background: var(--pp-cream);
}

.pp .terms-accordion {
  border-top: 1px solid var(--pp-line);
}

.pp .terms-accordion .accordion-item {
  border-bottom: 1px solid var(--pp-line);
}

.pp .terms-accordion .accordion-trigger {
  min-height: 3.75rem;
  padding: 1.1rem 0.25rem;
  font-size: 1.02rem;
  color: var(--pp-forest);
  transition: color 0.25s var(--ease);
}

.pp .terms-accordion .accordion-trigger:hover,
.pp .terms-accordion .accordion-trigger[aria-expanded="true"] {
  color: var(--pp-terra);
}

.pp .terms-accordion .accordion-trigger:focus-visible {
  outline: 2px solid var(--pp-terra);
  outline-offset: 2px;
  border-radius: 0.4rem;
}

.pp .terms-accordion .accordion-panel {
  padding: 0 0.25rem 1.5rem;
}

.pp .terms-accordion .accordion-panel:not([hidden]) {
  animation: pp-panel-in 0.35s var(--ease);
}

@keyframes pp-panel-in {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}

/* Final CTA */
.pp-cta {
  padding: var(--pp-section) 0;
  background: var(--pp-paper);
}

.pp-cta__panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: clamp(2.75rem, 6vw, 4.5rem) clamp(1.5rem, 5vw, 4rem);
  background: var(--pp-clay);
  border-radius: calc(var(--pp-radius) * 1.25);
  text-align: center;
}

.pp-cta__text {
  margin: 1rem 0 0;
  max-width: 34rem;
  font-size: 1.06rem;
  line-height: 1.65;
  color: rgba(44, 50, 44, 0.8);
}

.pp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.25rem;
  margin-top: 2rem;
  padding: 0 1.75rem;
  background: var(--pp-forest);
  border: 1.5px solid var(--pp-forest);
  border-radius: 999px;
  font-family: "Manrope", system-ui, sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  color: var(--pp-cream);
  text-decoration: none;
  transition: background 0.25s var(--ease), transform 0.25s var(--ease);
}

.pp-btn:hover {
  background: var(--pp-forest-deep);
  color: var(--pp-cream);
  transform: translateY(-1px);
}

.pp-btn:focus-visible,
.pp-link:focus-visible,
.pp-detail a:focus-visible {
  outline: 2px solid var(--pp-terra);
  outline-offset: 3px;
}

@media (max-width: 559px) {
  .pp-btn {
    width: 100%;
  }

  .pp-benefits li {
    font-size: 1.25rem;
    padding: 0.95rem 0;
  }
}

@media (min-width: 560px) {
  .pp-benefits {
    grid-template-columns: 1fr 1fr;
  }

  .pp-details__grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (min-width: 560px) and (max-width: 959px) {
  .pp-details__grid > .pp-detail:last-child:nth-child(odd) {
    grid-column: 1 / -1;
  }
}

@media (min-width: 720px) {
  .pp-types__grid,
  .pp-pricing__grid {
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem;
  }
}

@media (min-width: 900px) {
  .pp-hero__grid {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: clamp(2.5rem, 5vw, 4.5rem);
  }

  .pp-hero__media img {
    aspect-ratio: 5 / 4;
  }
}

@media (min-width: 960px) {
  .pp-benefits {
    grid-template-columns: repeat(3, 1fr);
    gap: 0 2.5rem;
  }

  .pp-details__grid {
    grid-template-columns: repeat(6, 1fr);
    gap: 1.25rem;
  }

  .pp-details__grid > .pp-detail {
    grid-column: span 2;
  }

  .pp-details__grid > .pp-detail:nth-child(4),
  .pp-details__grid > .pp-detail:nth-child(5) {
    grid-column: span 3;
  }
}

@media (prefers-reduced-motion: reduce) {
  .pp .terms-accordion .accordion-panel:not([hidden]) {
    animation: none;
  }

  .pp-btn:hover {
    transform: none;
  }
}

@media (max-width: 860px) {
  .has-dropdown.is-open .nav-drop,
  .nav-drop {
    position: static;
    transform: none;
    display: none;
    box-shadow: none;
    border: 0;
    background: transparent;
    padding: 0 0 0 0.5rem;
    min-width: 0;
  }
  .has-dropdown.is-open .nav-drop { display: block; }
  .nav-drop a { padding: 0.55rem 0; }
  .nav-drop__btn {
    padding: 0.7rem 0;
    font-size: 1.05rem;
  }
}

/* --------------------------------------------------------------------------
   Body Control Pilates
   -------------------------------------------------------------------------- */

.pp-btn--secondary {
  background: transparent;
  border-color: rgba(29, 51, 40, 0.4);
  color: var(--pp-forest);
}

.pp-btn--secondary:hover {
  background: rgba(29, 51, 40, 0.05);
  border-color: var(--pp-forest);
  color: var(--pp-forest);
}

/* Hero */
.bcp-hero__line {
  display: block;
  width: min(15rem, 60%);
  height: auto;
  margin-top: clamp(1.5rem, 3vw, 2.25rem);
  color: #b9684f;
  opacity: 0.7;
}

.bcp-hero__media img {
  object-position: center 40%;
}

/* Mat Pilates */
.bcp-mat {
  background: var(--pp-paper);
}

.bcp-mat__grid {
  display: grid;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}

.bcp-mat__mark {
  display: block;
  width: 3.25rem;
  height: 1.1rem;
  margin-bottom: 1.5rem;
  border: 1.3px solid rgba(141, 77, 53, 0.55);
  border-radius: 999px;
}

.bcp-mat__statement {
  margin: 0;
  max-width: 30ch;
  font-family: "Instrument Serif", Georgia, serif;
  font-size: clamp(1.7rem, 3vw, 2.5rem);
  font-weight: 400;
  line-height: 1.22;
  letter-spacing: -0.01em;
  color: var(--pp-forest);
  text-wrap: pretty;
}

.bcp-mat__media {
  margin: 0;
}

.bcp-mat__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 999px 999px var(--pp-radius) var(--pp-radius);
}

/* What is Body Control Pilates? */
.bcp-what {
  background: var(--pp-cream);
  border-top: 1px solid var(--pp-line);
}

.bcp-what__grid {
  display: grid;
  gap: 1.5rem;
}

.bcp-what__body {
  max-width: 38rem;
}

.bcp-what__body p {
  margin: 0;
  font-size: 1.08rem;
  line-height: 1.75;
  color: var(--pp-ink);
}

.bcp-what__body p + p {
  margin-top: 1.25rem;
}

.bcp-what__body p:first-child {
  font-size: clamp(1.12rem, 1.6vw, 1.22rem);
  color: rgba(44, 50, 44, 0.86);
}

/* Pillars */
.bcp-pillars {
  background: var(--pp-paper);
}

.bcp-pillars__intro {
  margin: 1rem auto 0;
  max-width: 34rem;
  font-size: 1.06rem;
  line-height: 1.65;
  color: var(--pp-ink);
}

.bcp-pillars__grid {
  display: grid;
  gap: 1rem;
}

.bcp-pillar {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  background: #faf6ef;
  border: 1px solid var(--pp-line);
  border-radius: calc(var(--pp-radius) * 1.25);
}

.bcp-pillar__icon {
  box-sizing: content-box;
  width: 2.75rem;
  height: 2.75rem;
  margin-bottom: 1.5rem;
  padding: 0.85rem;
  background: var(--pp-sand);
  border-radius: 50%;
  color: var(--pp-terra);
}

.bcp-pillar__title {
  margin: 0 0 0.75rem;
  font-family: "Manrope", system-ui, sans-serif;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 0.2em;
  color: var(--pp-forest);
}

.bcp-pillar p {
  margin: 0;
  font-size: 1rem;
  line-height: 1.65;
  color: var(--pp-ink);
}

/* CTA */
.bcp-cta {
  padding-top: 0;
}

.bcp-cta__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem;
  margin-top: 2rem;
}

.bcp-cta__actions .pp-btn {
  margin-top: 0;
}

@media (max-width: 559px) {
  .bcp-cta__actions {
    width: 100%;
  }
}

@media (min-width: 720px) {
  .bcp-mat__grid {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  }

  .bcp-pillars__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
  }
}

@media (min-width: 720px) and (max-width: 959px) {
  .bcp-pillars__grid {
    grid-template-columns: 1fr;
    max-width: 36rem;
    margin-inline: auto;
  }
}

@media (min-width: 960px) {
  .bcp-what__grid {
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 4rem;
    align-items: start;
  }

  .bcp-pillars__grid {
    gap: 1.5rem;
  }
}

@media (max-width: 899px) {
  .bcp-hero__media img {
    aspect-ratio: 16 / 10;
  }
}

