/* Shared multi-page navigation and service-page layouts. */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.nav-dropdown { position: relative; }
.nav-dropdown summary { list-style: none; cursor: pointer; padding-block: 12px; font-size: 15px; white-space: nowrap; }
.nav-dropdown summary::-webkit-details-marker { display: none; }
.nav-dropdown summary > span { margin-left: 5px; color: var(--gold); }
.nav-dropdown summary:hover, .nav-dropdown[open] > summary { color: var(--gold); }
.nav-dropdown summary:focus-visible { outline: 2px solid var(--gold); outline-offset: 5px; }
.nav-submenu { position: absolute; top: calc(100% + 8px); left: -22px; z-index: 20; width: 300px; padding: 12px 22px; background: #100d10; border: 1px solid #644b53; box-shadow: 0 18px 45px #000a; }
.main-navigation .nav-submenu a { display: block; white-space: normal; padding-block: 11px; font-size: 14px; line-height: 1.4; color: var(--pink); }
.main-navigation .nav-submenu a:hover { color: #fff; }
.main-navigation .nav-submenu .all-services { margin-bottom: 6px; color: var(--gold); border-bottom: 1px solid #4a353e; }
.main-navigation a[aria-current="page"] { color: var(--gold); }
.main-navigation .nav-submenu a[aria-current="page"] { color: #fff; text-decoration: underline; }
.service-card { position: relative; transition: background .2s, border-color .2s; }
.service-card:has(.service-link:hover) { background: #120b12; border-color: #f2c7df; }
.service-link::after { content: ''; position: absolute; inset: 0; }
.service-link:focus-visible { outline: none; }
.service-link:focus-visible::after { outline: 2px solid var(--gold); outline-offset: 5px; }
.all-prices { text-align: center; margin-top: 40px; }
.all-prices .button { display: inline-block; }
.eyebrow { color: var(--gold); font-size: 12px; line-height: 1.6; letter-spacing: .13em; text-transform: uppercase; margin-bottom: 18px; }
.eyebrow.centered { text-align: center; }
.inner-header { position: relative; border-bottom: 1px solid #30202b; background: #060407; }
.inner-header .site-header { padding-block: 20px; align-items: center; }
.inner-header .brand { width: 170px; flex-basis: 170px; }
.inner-header .header-right { padding-top: 0; }
.inner-header .header-phone { margin-top: 12px; }
.breadcrumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 9px 12px; padding-block: 30px 12px; color: #b79eab; font-size: 12px; }
.breadcrumbs > span[aria-hidden] { color: #6c4d5f; }
.breadcrumbs [aria-current] { color: var(--pink); }
.breadcrumbs a:hover { text-decoration: underline; }
.page-hero { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 70px; align-items: start; padding-block: 58px 75px; }
.page-hero h1 { font: 400 clamp(38px, 4.3vw, 62px)/1.2 'Merriweather', Georgia, serif; color: var(--pink); margin-bottom: 30px; overflow-wrap: break-word; }
.page-lead { font-size: 18px; line-height: 1.8; color: #cbbbc4; max-width: 680px; }
.theme-line { margin-top: 35px; margin-bottom: 0; font-size: 13px; color: var(--gold); }
.session-card { position: relative; padding: 35px 28px 28px; border: 1px solid #7c556b; background: linear-gradient(145deg,#1c111c,#080509); }
.session-number { display: block; font: 400 50px/1.1 'Merriweather',Georgia,serif; color: #9d748a; margin-bottom: 20px; }
.session-card h2 { font: 400 22px/1.4 'Merriweather',Georgia,serif; text-align: left; margin-bottom: 18px; }
.rate-list { list-style: none; padding: 0; margin: 0; }
.rate-list li { display: flex; justify-content: space-between; gap: 20px; padding-block: 11px; border-bottom: 1px solid #49323e; color: #cbbbc4; }
.rate-list strong { color: #f6eaf1; font-weight: 400; white-space: nowrap; }
.session-card .button { display: block; margin-top: 30px; text-align: center; }
.quiet-link { display: inline-block; margin-top: 18px; font-size: 13px; text-decoration: underline; text-underline-offset: 5px; }
.session-card .quiet-link { display: block; text-align: center; }
.service-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 90px; border-top: 1px solid #392733; padding-top: 65px; }
.service-content > section { margin-bottom: 56px; }
.service-content h2 { text-align: left; font-size: 29px; line-height: 1.45; margin-bottom: 25px; }
.service-content .prose { color: #cbbbc4; line-height: 1.85; }
.focus-section { padding: 30px; background: #130c13; border-left: 2px solid #a07350; }
.focus-section h2 { font-size: 24px; }
.focus-list { margin: 0; padding-left: 20px; color: #d6c5cf; }
.focus-list li { padding-left: 8px; margin-block: 12px; }
.focus-list li::marker { color: var(--gold); }
.session-steps { list-style: none; counter-reset: step; padding: 0; margin: 0; }
.session-steps li { counter-increment: step; position: relative; padding: 0 0 24px 48px; }
.session-steps li::before { content: '0' counter(step); position: absolute; left: 0; top: 1px; color: var(--gold); font-size: 14px; }
.session-steps strong { font-weight: 400; font-size: 18px; }
.session-steps p { color: #cbbbc4; margin-block: 10px 0; font-size: 15px; }
.closing-note { padding-block: 10px 20px; max-width: 600px; }
.closing-note p { font: 400 23px/1.7 'Merriweather',Georgia,serif; color: var(--pink); }
.service-sidebar { align-self: start; padding-top: 2px; }
.service-sidebar h2 { text-align: left; font-size: 23px; line-height: 1.5; margin-bottom: 25px; }
.related-services { list-style: none; padding: 0; margin: 0; }
.related-services a { display: flex; gap: 20px; justify-content: space-between; padding-block: 16px; border-bottom: 1px solid #392733; font-size: 14px; }
.related-services a > span { color: var(--gold); }
.contact-strip { display: flex; align-items: center; justify-content: space-between; gap: 40px; background: #140d15; padding: 40px; margin-top: 65px; border-top: 1px solid #5c3d50; }
.contact-strip h2 { text-align: left; margin-bottom: 18px; font-size: 30px; }
.contact-strip p:last-child { color: #cbbbc4; font-size: 14px; margin-bottom: 0; }
.contact-strip > .button { flex-shrink: 0; text-align: center; }
.inner-page .site-footer { margin-top: 70px; }
.price-hero { align-items: center; padding-bottom: 70px; }
.price-intro { padding-left: 45px; border-left: 1px solid #5a3c4d; }
.price-intro-number { font: 400 88px/1 'Merriweather',Georgia,serif; color: var(--gold); }
.price-intro p { color: #baa6b2; font-size: 15px; line-height: 1.7; margin: 22px 0 0; }
.price-table { border-collapse: collapse; width: 100%; text-align: left; }
.price-table caption { text-align: left; color: #bea6b4; font-size: 13px; padding-bottom: 20px; }
.price-table thead { color: var(--gold); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; border-block: 1px solid #614253; }
.price-table th, .price-table td { padding: 28px 26px; vertical-align: middle; }
.price-table thead th { padding-block: 18px; font-weight: 400; }
.price-table tbody tr { border-bottom: 1px solid #392733; scroll-margin-top: 40px; }
.price-table tbody tr:target { background: #21121e; outline: 1px solid var(--gold); outline-offset: -1px; }
.price-table tbody th { width: 46%; font-weight: 400; font-size: 20px; }
.price-table tbody th a:hover { text-decoration: underline; }
.price-table tbody tr:nth-child(even) { background: #0d080e; }
.price-table tbody tr:target:nth-child(even) { background: #21121e; }
.table-kind { display: block; margin-top: 7px; font-size: 13px; color: #bba5b2; }
.price-table td:nth-child(2) { width: 30%; }
.price-table .rate-list { max-width: 240px; }
.price-table .rate-list li { border: 0; padding-block: 4px; font-size: 15px; }
.price-table td:last-child { text-align: right; }
.price-table .text-link { white-space: nowrap; }
.price-notes { display: grid; grid-template-columns: 1.25fr 1fr; gap: 100px; padding-top: 75px; }
.price-notes h2 { text-align: left; margin-bottom: 24px; font-size: 30px; }
.price-notes h3 { margin-top: 38px; font: 400 23px/1.4 'Merriweather',Georgia,serif; }
.price-notes p:not(.eyebrow) { color: #cbbbc4; line-height: 1.8; }
@media (max-width: 1050px) {
  .nav-dropdown summary { font-size: 14px; }
  .page-hero { gap: 35px; grid-template-columns: minmax(0, 1fr) 280px; }
  .service-layout { gap: 45px; grid-template-columns: minmax(0, 1fr) 230px; }
  .contact-strip { align-items: flex-start; flex-direction: column; }
  .price-notes { gap: 50px; }
  .price-table th, .price-table td { padding-inline: 16px; }
}
@media (max-width: 760px) {
  .main-navigation { max-height: calc(100dvh - 115px); overflow-y: auto; }
  .nav-dropdown summary { font-size: 16px; padding-block: 12px; }
  .nav-submenu { position: static; width: 100%; padding: 0 0 8px 16px; border: 0; border-left: 1px solid #644b53; box-shadow: none; background: none; }
  .main-navigation .nav-submenu a { font-size: 14px; padding-block: 10px; }
  .inner-header .site-header { min-height: 142px; padding-block: 10px; align-items: flex-start; }
  .inner-header .brand { width: 160px; flex-basis: 160px; }
  .inner-header .header-right { padding-top: 19px; }
  .inner-header .header-phone { position: static; margin-top: 12px; font-size: 11px; text-align: right; }
  .inner-header .header-phone span { padding-right: 2px; }
  .inner-header .menu-toggle { margin-left: auto; }
  .inner-header .main-navigation { top: 80px; }
  .breadcrumbs { padding-top: 24px; gap: 8px; font-size: 11px; }
  .page-hero { grid-template-columns: 1fr; gap: 30px; padding-block: 35px 45px; }
  .page-hero h1 { font-size: clamp(32px, 7vw, 42px); margin-bottom: 24px; }
  .page-lead { font-size: 16px; }
  .theme-line { margin-top: 24px; font-size: 12px; }
  .session-card { padding: 24px; }
  .session-number { position: absolute; right: 24px; top: 20px; font-size: 32px; }
  .session-card h2 { margin-right: 50px; }
  .session-card .rate-list { margin-top: 22px; }
  .service-layout { grid-template-columns: 1fr; gap: 35px; padding-top: 40px; }
  .service-content h2 { font-size: 25px; }
  .service-content > section { margin-bottom: 38px; }
  .service-content .prose { font-size: 15px; }
  .focus-section { padding: 24px 20px; }
  .focus-section h2 { font-size: 22px; }
  .focus-list { font-size: 15px; }
  .closing-note p { font-size: 21px; }
  .service-sidebar { border-top: 1px solid #392733; padding-top: 30px; }
  .contact-strip { padding: 28px 22px; gap: 25px; margin-top: 45px; }
  .contact-strip h2 { font-size: 25px; }
  .price-hero { gap: 24px; }
  .price-intro { display: flex; align-items: center; gap: 22px; padding-left: 24px; }
  .price-intro-number { font-size: 56px; }
  .price-intro p { margin: 0; font-size: 14px; }
  .price-table, .price-table tbody, .price-table tr, .price-table th, .price-table td { display: block; }
  .price-table thead { display: none; }
  .price-table caption { display: block; }
  .price-table tbody tr { padding: 22px; border: 1px solid #614253; margin-bottom: 18px; }
  .price-table tbody th, .price-table td:nth-child(2) { width: 100%; }
  .price-table th, .price-table td { padding: 0; }
  .price-table tbody th { font-size: 21px; }
  .price-table .rate-list { max-width: none; margin-block: 23px 18px; }
  .price-table td:last-child { text-align: left; }
  .price-notes { grid-template-columns: 1fr; gap: 20px; padding-top: 35px; }
  .price-notes h2 { font-size: 27px; }
  .price-notes h3 { margin-top: 0; }
  .inner-page .site-footer { margin-top: 45px; }
}
@media print {
  .nav-dropdown, .service-sidebar, .contact-strip { display: none; }
  .page-hero, .service-layout { display: block; }
  .session-card { break-inside: avoid; margin-block: 20px; }
  .price-table tr { break-inside: avoid; }
}
