/* Services extends the approved palette and typography. */
.services-page h1, .services-page h2 { font-family: 'Instrument Serif', serif; font-weight: 400; color: #4A222C; }
.services-page h1 { font-size: clamp(44px, 6vw, 72px); line-height: 1.02; letter-spacing: -.025em; margin: 14px 0 22px; max-width: 900px; }
.services-page h2 { font-size: clamp(30px, 3.3vw, 42px); line-height: 1.12; margin: 0 0 18px; }
.services-page p { line-height: 1.65; }
.services-page .sec { padding-top: 48px; padding-bottom: 48px; }
.services-page .btn, .services-page .link-arrow, .services-page .ft-links a, .services-page .service-footer-contact a { min-height: 48px; }
.services-page .link-arrow { white-space: normal; }
.services-page .nav-desktop > a { display: inline-flex; align-items: center; min-height: 48px; }
.services-page .nav-desktop [aria-current] { text-decoration: underline; text-underline-offset: 6px; }
.services-page [hidden] { display: none !important; }
.services-page .service-breadcrumb { margin-bottom: 30px; font-size: 14px; }
.services-page .service-breadcrumb ol { display: flex; flex-wrap: wrap; align-items: center; padding: 0; margin: 0; list-style: none; gap: 2px 10px; }
.services-page .service-breadcrumb li { display: inline-flex; align-items: center; }
.services-page .service-breadcrumb li + li::before { content: '/'; color: #A34D5F; margin-right: 10px; }
.services-page .service-breadcrumb a { display: inline-flex; align-items: center; min-height: 48px; }
.services-page .service-intro, .services-page .service-detail-top { padding-top: 14px; padding-bottom: 48px; }
.services-page .service-intro-copy { max-width: 740px; }
.services-page .service-lede { font-size: clamp(18px, 2vw, 21px); max-width: 750px; margin: 0 0 28px; }
.services-page .service-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 28px; }
.services-page .service-options { background: #fff; }
.services-page .service-section-head { max-width: 680px; margin-bottom: 28px; }
.services-page .service-section-head h2 { margin-bottom: 8px; }
.services-page .service-disclosure { font-size: 14px; margin: 6px 0 0; color: #614A51; max-width: 600px; }
.services-page .service-card-grid { display: grid; gap: 24px; }
.services-page .service-card { border-radius: 14px; overflow: hidden; }
.services-page .service-card > a { display: block; }
.services-page .service-card img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.services-page .service-card-pink { background: #F8DCE1; }
.services-page .service-card-lilac { background: #EEE7F5; }
.services-page .service-card-body { padding: 26px; }
.services-page .service-card h2 { font-size: clamp(30px, 3vw, 38px); margin: 12px 0 16px; }
.services-page .service-card h2 a { color: inherit; text-decoration: none; }
.services-page .service-card h2 a:hover { text-decoration: underline; text-underline-offset: 5px; }
.services-page .service-card-body > p:not(.eyebrow):not(.service-card-price) { margin: 0; }
.services-page .service-card-price { color: #6D2E3C; font-weight: 600; margin: 20px 0 6px; font-size: 20px; }
.services-page .service-two-col { display: grid; gap: 34px; }
.services-page .service-two-col > * { min-width: 0; }
.services-page .service-finish .eyebrow { margin-bottom: 14px; }
.services-page .service-prices { width: 100%; border-collapse: collapse; }
.services-page .service-prices th, .services-page .service-prices td { text-align: left; padding: 13px 0; border-bottom: 1px solid #D8C5CC; vertical-align: top; }
.services-page .service-prices th { font-weight: 500; padding-right: 18px; }
.services-page .service-prices thead th { font-size: 14px; color: #6D2E3C; font-weight: 600; }
.services-page .service-prices td, .services-page .service-prices thead th:last-child { text-align: right; white-space: nowrap; }
.services-page .service-small { font-size: 14px; }
.services-page .service-maintenance, .services-page .service-related { background: #EEE7F5; }
.services-page .service-narrow { max-width: 750px; }
.services-page .service-closing { padding-top: 60px; padding-bottom: 68px; text-align: center; }
.services-page .service-closing p { max-width: 620px; margin-left: auto; margin-right: auto; }
.services-page .service-closing .service-actions { justify-content: center; }
.services-page .service-hero-grid { display: grid; gap: 28px; align-items: start; margin-top: 34px; }
.services-page figure { margin: 0; }
.services-page .service-hero img { width: 100%; display: block; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 12px; }
.services-page .service-hero figcaption { padding-top: 14px; font-size: 14px; }
.services-page .service-hero figcaption strong { font-weight: 600; color: #6D2E3C; }
.services-page .service-facts { padding: 26px; background: #F8DCE1; border-radius: 12px; }
.services-page .service-facts h2 { font-size: 32px; }
.services-page .service-start-price { font-family: 'Instrument Serif', serif; font-size: 40px; color: #6D2E3C; margin: 0; }
.services-page .service-facts .service-actions { flex-direction: column; align-items: stretch; gap: 12px; margin-top: 24px; }
.services-page .service-facts .service-prices th, .services-page .service-facts .service-prices td { padding: 9px 0; }
.services-page .service-facts .service-prices th { padding-right: 12px; }
.services-page .service-care { background: #fff; }
.services-page .service-care-panel { background: #FDF8F1; padding: 28px; border-radius: 12px; }
.services-page .service-care .service-two-col { align-items: start; }
.services-page .service-care h2 { font-size: 36px; }
.services-page .service-care p:last-of-type { margin-bottom: 0; }
.services-page .service-care-panel .link-arrow { margin-top: 14px; }
.services-page .service-gallery { display: grid; gap: 28px; }
.services-page .service-gallery img { width: 100%; display: block; aspect-ratio: 1; object-fit: cover; border-radius: 12px; }
.services-page .service-gallery figcaption { padding-top: 13px; font-size: 16px; color: #6D2E3C; }
.services-page .service-questions { background: #fff; }
.services-page .service-faq details { border-bottom: 1px solid #D8C5CC; }
.services-page .service-faq details:first-child { border-top: 1px solid #D8C5CC; }
.services-page .service-faq summary { cursor: pointer; padding: 19px 0; min-height: 60px; font-weight: 500; color: #4A222C; }
.services-page .service-faq details p { padding-bottom: 18px; margin: 0; }
.services-page .service-related .eyebrow { margin-bottom: 14px; }
.services-page .service-footer-contact { display: flex; flex-direction: column; align-items: flex-start; }
.services-page .service-footer-contact a { display: inline-flex; align-items: center; color: #FDF3E8; }
.services-page .ft-links a { display: inline-flex; align-items: center; }
.services-page .service-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
@media (min-width: 768px) {
  .services-page .sec { padding-top: 68px; padding-bottom: 68px; }
  .services-page .service-intro, .services-page .service-detail-top { padding-top: 22px; padding-bottom: 62px; }
  .services-page .service-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .services-page .service-card-body { padding: 32px; }
  .services-page .service-two-col { grid-template-columns: 1fr 1fr; gap: 54px; }
  .services-page .service-hero-grid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
  .services-page .service-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
  .services-page .service-care-panel { padding: 32px; }
}
@media (min-width: 1024px) {
  .services-page .service-hero-grid { grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: 40px; }
  .services-page .service-facts { padding: 30px; }
}
@media (max-width: 389px) {
  .services-page .service-actions { gap: 12px; }
  .services-page .service-facts, .services-page .service-card-body, .services-page .service-care-panel { padding: 22px; }
}

.services-page .service-hero-caption { display: block; margin-top: 4px; color: #614A51; }

/* Service content leads to the price builder before booking. */
.services-page .service-actions > .btn { width: 154px; min-height: 52px; padding: 0 20px; flex: 0 0 auto; font-size: 16px; font-weight: 500; line-height: 1.2; }
.services-page .service-actions > .btn-primary:hover { background: #4A222C; }
.services-page .service-facts .service-actions > .btn { width: 100%; }
.services-page .service-closing > .wrap > p { max-width: 560px; text-wrap: pretty; }
@media (max-width: 767px) {
  .services-page .service-actions { flex-direction: column; align-items: stretch; gap: 12px; max-width: 360px; }
  .services-page .service-actions > .btn { width: 100%; }
  .services-page .service-closing .service-actions { margin-left: auto; margin-right: auto; }
}
