.service-detail-page { background: var(--paper); }
.service-detail-page main { overflow: hidden; }
.service-detail-page h1, .service-detail-page h2, .service-detail-page h3 { text-wrap: balance; }
.adolescent-service-page .service-hero h1 { font-size: clamp(3.15rem,6vw,6rem); }
.couple-service-page .service-hero h1 { font-size: clamp(3.2rem,6vw,6.05rem); }
.family-service-page .service-hero h1 { font-size: clamp(3rem,5.65vw,5.7rem); }
.online-service-page .service-hero h1 { font-size: clamp(3.15rem,5.85vw,5.95rem); }
.appointment-service-page .service-hero h1 { font-size: clamp(3.15rem,5.9vw,6rem); }
.local-service-page .service-hero h1 { font-size: clamp(3.05rem,5.7vw,5.8rem); }
.first-session-service-page .service-hero h1 { font-size: clamp(3.05rem,5.8vw,5.9rem); }
.services-overview-page .service-hero h1 { font-size: clamp(3rem,5.65vw,5.75rem); }
.group-service-page .service-hero h1 { font-size: clamp(3rem,5.6vw,5.7rem); }
.about-profile-page .service-hero h1 { font-size: clamp(3.35rem,6.2vw,6.3rem); }
.personal-development-page .service-hero h1 { font-size: clamp(3.1rem,5.9vw,6rem); }
.counselling-service-page .service-hero h1 { font-size: clamp(3rem,5.7vw,5.8rem); }
.addictions-service-page .service-hero h1 { font-size: clamp(3rem,5.65vw,5.75rem); }
.contact-service-page .service-hero h1 { font-size: clamp(3.1rem,5.9vw,6rem); }

.service-hero { position: relative; overflow: hidden; background: radial-gradient(circle at 88% 10%, rgba(181,139,69,.18), transparent 29rem), linear-gradient(145deg, #f8f3ea 0%, #f2eadc 100%); }
.service-hero::before, .service-hero::after { content: ""; position: absolute; border: 1px solid rgba(139,75,58,.16); border-radius: 50%; pointer-events: none; }
.service-hero::before { width: 470px; height: 470px; right: -230px; top: 80px; }
.service-hero::after { width: 250px; height: 250px; left: -150px; bottom: -140px; }
.service-hero__grid { position: relative; display: grid; grid-template-columns: minmax(0,1.1fr) minmax(330px,.72fr); gap: clamp(48px,8vw,110px); align-items: center; min-height: 680px; padding-block: clamp(76px,9vw,120px); }
.service-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; color: var(--terra); font-size: .7rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.service-breadcrumb a { text-decoration: none; }
.service-breadcrumb span[aria-hidden="true"] { color: var(--bronze); }
.service-hero h1 { max-width: 780px; margin: 0; color: var(--petrol-950); font-family: var(--serif); font-size: clamp(3.25rem,6.5vw,6.65rem); font-weight: 500; letter-spacing: -.06em; line-height: .93; }
.service-hero h1 em { color: var(--terra); font-weight: 400; }
.service-hero__lead { max-width: 660px; margin: 30px 0 0; color: #454b48; font-size: clamp(1.02rem,1.5vw,1.22rem); line-height: 1.7; }
.service-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.service-hero__trust { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; max-width: 710px; margin-top: 42px; padding-top: 23px; border-top: 1px solid var(--line); }
.service-hero__trust strong, .service-hero__trust span { display: block; }
.service-hero__trust strong { color: var(--petrol-800); font-family: var(--serif); font-size: 1.12rem; font-weight: 600; }
.service-hero__trust span { margin-top: 3px; color: var(--ink-soft); font-size: .72rem; line-height: 1.45; }
.service-orientation { position: relative; padding: clamp(28px,4vw,44px); color: var(--white); background: linear-gradient(160deg,var(--petrol-700),var(--petrol-950)); border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.service-orientation::after { content: "01"; position: absolute; right: 24px; top: 5px; color: rgba(255,255,255,.06); font-family: var(--serif); font-size: 7.5rem; line-height: 1; }
.service-orientation .eyebrow { position: relative; z-index: 1; color: #e1c17e; }
.service-orientation h2 { position: relative; z-index: 1; margin: 0; font-family: var(--serif); font-size: clamp(2rem,3.4vw,3.05rem); font-weight: 500; letter-spacing: -.035em; line-height: 1.05; }
.service-orientation > p:not(.eyebrow) { position: relative; z-index: 1; margin: 22px 0 28px; color: rgba(255,255,255,.72); }
.service-orientation ul { position: relative; z-index: 1; margin: 0; padding: 20px 0 0; list-style: none; border-top: 1px solid rgba(255,255,255,.18); }
.service-orientation li { position: relative; margin: 11px 0; padding-left: 22px; color: rgba(255,255,255,.84); font-size: .84rem; }
.service-orientation li::before { content: ""; position: absolute; left: 0; top: .7em; width: 8px; height: 1px; background: #e1c17e; }

.about-profile-hero .service-hero__grid { grid-template-columns: minmax(0,1.06fr) minmax(340px,.72fr); }
.about-hero-portrait { width: min(100%,470px); justify-self: end; }
.about-hero-portrait::before { width: 92%; right: -35px; top: 30px; }
.about-hero-portrait img { aspect-ratio: .88; object-position: 50% 34%; }
.about-hero-portrait figcaption { width: calc(100% - 24px); }
.profile-statement { padding-block: clamp(58px,8vw,95px); color: var(--white); background: var(--petrol-800); }
.profile-statement__grid { display: grid; grid-template-columns: .42fr 1.25fr .82fr; gap: clamp(30px,6vw,82px); align-items: start; }
.profile-statement .eyebrow { color: #e1c17e; }
.profile-statement blockquote { margin: 0; color: var(--white); font-family: var(--serif); font-size: clamp(2rem,3.4vw,3.3rem); font-weight: 500; letter-spacing: -.035em; line-height: 1.07; }
.profile-statement__grid > p:last-child { margin: 4px 0 0; color: rgba(255,255,255,.7); line-height: 1.72; }

.appointment-contact-card::after { content: "↗"; top: 14px; right: 28px; font-family: var(--sans); font-size: 4.5rem; }
.appointment-contact-card h2 { max-width: 430px; }
.appointment-contact-card > p:last-child { margin-bottom: 0; font-size: .78rem; }
.appointment-contact-options { display: grid; gap: 10px; margin-top: 28px; }
.appointment-contact-link { display: grid; padding: 17px 19px; color: var(--white); background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.2); border-radius: 15px; text-decoration: none; transition: background .2s ease,transform .2s ease; }
.appointment-contact-link:hover { color: var(--white); background: rgba(255,255,255,.12); transform: translateY(-2px); }
.appointment-contact-link span { color: #e1c17e; font-size: .68rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.appointment-contact-link strong { margin-top: 3px; font-family: var(--serif); font-size: 1.55rem; font-weight: 600; }
.appointment-contact-link small { margin-top: 2px; color: rgba(255,255,255,.65); font-size: .7rem; }

.services-directory { background: var(--paper); }
.services-directory__head { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(280px,.72fr); gap: clamp(40px,9vw,120px); align-items: end; }
.services-directory__head h2 { max-width: 800px; }
.services-directory__head > p { margin: 0 0 8px; color: var(--ink-soft); }
.services-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-top: 62px; }
.services-card { position: relative; display: flex; min-height: 342px; flex-direction: column; padding: clamp(28px,3.7vw,44px); overflow: hidden; color: var(--petrol-950); background: #fff; border: 1px solid var(--line); border-radius: 28px; box-shadow: 0 18px 45px rgba(17,39,35,.07); text-decoration: none; transition: transform .22s ease,box-shadow .22s ease,border-color .22s ease; }
.services-card:hover { color: var(--petrol-950); border-color: rgba(181,139,69,.62); box-shadow: 0 24px 55px rgba(17,39,35,.12); transform: translateY(-5px); }
.services-card--wide { grid-column: span 2; }
.services-card--primary { color: var(--white); background: linear-gradient(145deg,var(--petrol-700),var(--petrol-950)); border-color: transparent; }
.services-card--primary:hover { color: var(--white); border-color: transparent; }
.services-card--online { background: linear-gradient(145deg,#f2e8d7,#e9ddca); }
.services-card--contact { background: #f7f1e8; }
.services-card::after { content: ""; position: absolute; width: 210px; height: 210px; right: -115px; top: -105px; border: 1px solid rgba(139,75,58,.14); border-radius: 50%; }
.services-card--primary::after { border-color: rgba(255,255,255,.14); }
.services-card__number { position: absolute; right: 25px; top: 16px; color: rgba(139,75,58,.1); font-family: var(--serif); font-size: 5.5rem; line-height: 1; }
.services-card--primary .services-card__number { color: rgba(255,255,255,.07); }
.services-card__tag { position: relative; z-index: 1; color: var(--terra); font-size: .67rem; font-weight: 850; letter-spacing: .13em; text-transform: uppercase; }
.services-card--primary .services-card__tag { color: #e1c17e; }
.services-card h3 { position: relative; z-index: 1; max-width: 520px; margin: 45px 0 16px; color: inherit; font-family: var(--serif); font-size: clamp(1.9rem,3.1vw,3rem); font-weight: 550; letter-spacing: -.035em; line-height: 1.03; }
.services-card p { position: relative; z-index: 1; max-width: 690px; margin: 0; color: var(--ink-soft); }
.services-card--primary p { color: rgba(255,255,255,.72); }
.services-card__arrow { position: relative; z-index: 1; display: flex; justify-content: space-between; gap: 20px; align-items: center; margin-top: auto; padding-top: 34px; color: var(--petrol-800); border-top: 1px solid var(--line); font-size: .73rem; font-weight: 850; letter-spacing: .04em; }
.services-card__arrow i { font-family: var(--serif); font-size: 1.45rem; font-style: normal; transition: transform .2s ease; }
.services-card:hover .services-card__arrow i { transform: translateX(5px); }
.services-card--primary .services-card__arrow { color: #f0d395; border-color: rgba(255,255,255,.17); }
.appointment-service-page .service-frame a { color: inherit; text-decoration-color: rgba(255,255,255,.45); text-underline-offset: 3px; }
.local-cabinet-card .button { position: relative; z-index: 1; width: 100%; margin-top: 24px; color: var(--white); border-color: rgba(255,255,255,.45); }
.local-service-page .service-frame a { color: inherit; text-decoration-color: rgba(255,255,255,.45); text-underline-offset: 3px; }

.service-section { padding-block: clamp(84px,10vw,140px); }
.service-section h2 { margin: 0; color: var(--petrol-950); font-family: var(--serif); font-size: clamp(2.55rem,5vw,4.7rem); font-weight: 500; letter-spacing: -.05em; line-height: 1.02; }
.service-definition__grid { display: grid; grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr); gap: clamp(54px,10vw,145px); align-items: start; }
.service-definition__intro { position: sticky; top: 150px; }
.service-definition__intro > p:not(.eyebrow) { margin: 28px 0 0; color: var(--ink-soft); font-size: 1.03rem; }
.service-principles { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); counter-reset: principle; }
.service-principles li { display: grid; grid-template-columns: 52px 1fr; gap: 20px; padding: 31px 0; border-bottom: 1px solid var(--line); counter-increment: principle; }
.service-principles li::before { content: "0" counter(principle); padding-top: 4px; color: var(--terra); font-size: .68rem; font-weight: 850; letter-spacing: .1em; }
.service-principles h3 { margin: 0 0 8px; color: var(--petrol-950); font-family: var(--serif); font-size: 1.55rem; font-weight: 600; }
.service-principles p { margin: 0; color: var(--ink-soft); }

.service-topics { color: var(--white); background: var(--petrol-950); }
.service-topics__head { display: grid; grid-template-columns: 1.05fr .8fr; gap: clamp(40px,9vw,120px); align-items: end; }
.service-topics h2 { color: var(--white); }
.service-topics__head > p { margin: 0 0 8px; color: rgba(255,255,255,.64); }
.service-topic-list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 54px; margin-top: 66px; border-top: 1px solid rgba(255,255,255,.16); }
.service-topic-list a { display: grid; grid-template-columns: 38px 1fr auto; gap: 13px; align-items: center; min-height: 84px; border-bottom: 1px solid rgba(255,255,255,.16); text-decoration: none; transition: color .2s ease,padding .2s ease; }
.service-topic-list a:hover { padding-left: 7px; color: #e4c687; }
.service-topic-list span { color: #d2ad64; font-size: .66rem; font-weight: 800; }
.service-topic-list strong { font-family: var(--serif); font-size: 1.08rem; font-weight: 500; }
.service-topic-list i { font-style: normal; }
.service-topics__note { max-width: 880px; margin: 36px 0 0; padding-left: 18px; border-left: 2px solid var(--bronze); color: rgba(255,255,255,.56); font-size: .8rem; }

.service-process { background: var(--ivory); }
.service-process__grid { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: clamp(55px,10vw,145px); align-items: start; }
.service-process__intro > p:not(.eyebrow) { max-width: 480px; margin: 26px 0 0; color: var(--ink-soft); }
.service-process__steps { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.service-process__steps li { display: grid; grid-template-columns: 60px 1fr; gap: 20px; padding: 29px 0; border-bottom: 1px solid var(--line); }
.service-process__steps > li > span { color: var(--terra); font-size: .69rem; font-weight: 850; letter-spacing: .1em; }
.service-process__steps h3 { margin: 0 0 8px; color: var(--petrol-950); font-family: var(--serif); font-size: 1.45rem; font-weight: 600; }
.service-process__steps p { margin: 0; color: var(--ink-soft); }

.service-practitioner__grid { display: grid; grid-template-columns: minmax(310px,.78fr) minmax(0,1.22fr); gap: clamp(50px,9vw,125px); align-items: center; }
.service-practitioner__portrait { position: relative; margin: 0; }
.service-practitioner__portrait::before { content: ""; position: absolute; width: 82%; aspect-ratio: 1; right: -24px; top: 42px; border: 1px solid rgba(181,139,69,.55); border-radius: 50%; }
.service-practitioner__portrait img { position: relative; width: 100%; aspect-ratio: .82; object-fit: cover; object-position: 50% 26%; border-radius: 46% 46% 28px 28px; box-shadow: var(--shadow); }
.service-practitioner__portrait figcaption { position: relative; width: calc(100% - 30px); margin: -38px auto 0; padding: 17px 20px; background: rgba(255,255,255,.94); border: 1px solid rgba(255,255,255,.8); border-radius: var(--radius-sm); box-shadow: 0 17px 38px rgba(17,39,35,.15); text-align: center; }
.service-practitioner__portrait strong, .service-practitioner__portrait span { display: block; }
.service-practitioner__portrait strong { color: var(--petrol-950); font-family: var(--serif); font-size: 1.05rem; }
.service-practitioner__portrait span { margin-top: 3px; color: var(--ink-soft); font-size: .7rem; }
.service-practitioner__copy > p:not(.eyebrow) { color: var(--ink-soft); }
.service-methods { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 30px; padding-top: 25px; border-top: 1px solid var(--line); }
.service-methods span { padding: 8px 12px; color: var(--petrol-800); background: var(--ivory); border: 1px solid var(--line); border-radius: 999px; font-size: .69rem; font-weight: 750; }
.service-method-note { margin-top: 22px; padding-left: 18px; border-left: 2px solid var(--bronze); font-size: .82rem; }

.service-first-session { background: #eee6d9; }
.service-first-session__head { max-width: 840px; }
.service-frame { display: grid; grid-template-columns: 1fr 1fr; margin-top: 60px; overflow: hidden; border-radius: var(--radius-lg); box-shadow: 0 24px 60px rgba(17,39,35,.1); }
.service-frame article { padding: clamp(30px,5vw,55px); background: var(--paper); }
.service-frame article:first-child { color: var(--white); background: var(--petrol-800); }
.service-frame h3 { margin: 0 0 24px; color: var(--petrol-950); font-family: var(--serif); font-size: clamp(1.75rem,3vw,2.45rem); font-weight: 600; }
.service-frame article:first-child h3 { color: var(--white); }
.service-frame ul { margin: 0; padding: 0; list-style: none; }
.service-frame li { position: relative; margin: 15px 0; padding: 0 0 15px 24px; border-bottom: 1px solid var(--line); color: var(--ink-soft); }
.service-frame li:last-child { border-bottom: 0; }
.service-frame article:first-child li { color: rgba(255,255,255,.78); border-color: rgba(255,255,255,.17); }
.service-frame li::before { content: ""; position: absolute; left: 0; top: .7em; width: 8px; height: 1px; background: var(--bronze); }

.service-faq__grid { display: grid; grid-template-columns: minmax(0,.72fr) minmax(0,1.28fr); gap: clamp(50px,9vw,125px); align-items: start; }
.service-faq__intro > p:not(.eyebrow) { margin: 25px 0 0; color: var(--ink-soft); }
.service-faq__list { border-top: 1px solid var(--line); }
.service-faq details { border-bottom: 1px solid var(--line); }
.service-faq summary { position: relative; padding: 24px 45px 24px 0; color: var(--petrol-950); font-family: var(--serif); font-size: 1.23rem; font-weight: 600; cursor: pointer; list-style: none; }
.service-faq summary::-webkit-details-marker { display: none; }
.service-faq summary::after { content: "+"; position: absolute; right: 5px; top: 20px; color: var(--terra); font-family: var(--sans); font-size: 1.45rem; font-weight: 400; transition: transform .2s ease; }
.service-faq details[open] summary::after { transform: rotate(45deg); }
.service-faq details p { max-width: 720px; margin: -5px 0 24px; color: var(--ink-soft); }

.service-closing { color: var(--white); background: var(--terra); }
.service-closing__grid { display: grid; grid-template-columns: 1fr auto; gap: 55px; align-items: center; }
.service-closing .eyebrow { color: #f2d6a3; }
.service-closing h2 { max-width: 820px; color: var(--white); }
.service-closing p:not(.eyebrow) { max-width: 760px; margin: 24px 0 0; color: rgba(255,255,255,.76); }
.service-closing__actions { display: grid; gap: 10px; min-width: 265px; }
.service-closing .button--primary { color: var(--petrol-950); background: var(--white); box-shadow: none; }
.service-closing .button--primary:hover { background: var(--ivory); }
.service-closing .button--outline { color: var(--white); border-color: rgba(255,255,255,.52); }

.service-sources { padding-block: 34px; background: var(--paper); border-bottom: 1px solid var(--line); }
.service-sources__inner { display: flex; justify-content: space-between; gap: 28px; align-items: flex-start; }
.service-sources p { max-width: 750px; margin: 0; color: var(--ink-soft); font-size: .74rem; }
.service-sources ul { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px 18px; margin: 0; padding: 0; list-style: none; font-size: .72rem; font-weight: 750; }
.service-sources a { color: var(--petrol-800); text-decoration-color: rgba(21,63,58,.35); text-underline-offset: 3px; }

@media (max-width: 980px) {
  .service-hero__grid, .service-definition__grid, .service-process__grid, .service-practitioner__grid, .service-faq__grid { grid-template-columns: 1fr; }
  .services-directory__head { grid-template-columns: 1fr; }
  .services-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .service-hero__grid { min-height: auto; }
  .service-orientation { max-width: 720px; }
  .service-definition__intro { position: static; }
  .service-practitioner__portrait { width: min(100%,480px); margin-inline: auto; }
  .service-topics__head { grid-template-columns: 1fr; }
  .service-closing__grid { grid-template-columns: 1fr; }
  .service-closing__actions { display: flex; flex-wrap: wrap; min-width: 0; }
  .about-profile-hero .service-hero__grid, .profile-statement__grid { grid-template-columns: 1fr; }
  .about-hero-portrait { justify-self: center; }
}

@media (max-width: 700px) {
  .service-hero__grid { padding-block: 58px 70px; }
  .service-hero h1 { font-size: clamp(3rem,15vw,4.65rem); }
  .adolescent-service-page .service-hero h1 { font-size: clamp(2.8rem,13vw,4.15rem); }
  .couple-service-page .service-hero h1 { font-size: clamp(2.85rem,13.2vw,4.2rem); }
  .family-service-page .service-hero h1 { font-size: clamp(2.7rem,12.7vw,4.05rem); }
  .online-service-page .service-hero h1 { font-size: clamp(2.8rem,13vw,4.15rem); }
  .appointment-service-page .service-hero h1 { font-size: clamp(2.8rem,13vw,4.15rem); }
  .local-service-page .service-hero h1 { font-size: clamp(2.65rem,12.4vw,3.95rem); }
  .first-session-service-page .service-hero h1 { font-size: clamp(2.7rem,12.6vw,4rem); }
  .services-overview-page .service-hero h1 { font-size: clamp(2.65rem,12.35vw,3.95rem); }
  .group-service-page .service-hero h1 { font-size: clamp(2.65rem,12.3vw,3.92rem); }
  .about-profile-page .service-hero h1 { font-size: clamp(2.85rem,13.4vw,4.3rem); }
  .personal-development-page .service-hero h1 { font-size: clamp(2.7rem,12.7vw,4.05rem); }
  .counselling-service-page .service-hero h1 { font-size: clamp(2.55rem,11.8vw,3.8rem); }
  .addictions-service-page .service-hero h1 { font-size: clamp(2.5rem,11.5vw,3.7rem); }
  .contact-service-page .service-hero h1 { font-size: clamp(2.6rem,12.1vw,3.85rem); }
  .service-hero__trust, .service-topic-list, .service-frame { grid-template-columns: 1fr; }
  .services-grid { grid-template-columns: 1fr; }
  .services-card--wide { grid-column: span 1; }
  .service-hero__trust { gap: 14px; }
  .service-hero__trust div { padding-bottom: 12px; border-bottom: 1px solid var(--line); }
  .service-topic-list { column-gap: 0; }
  .service-principles li, .service-process__steps li { grid-template-columns: 42px 1fr; gap: 13px; }
  .service-sources__inner { display: grid; }
  .service-sources ul { justify-content: flex-start; }
  .profile-statement__grid { gap: 24px; }
}

@media (max-width: 430px) {
  .service-hero__actions, .service-closing__actions { display: grid; }
  .service-hero__actions .button, .service-closing__actions .button { width: 100%; }
  .service-orientation { padding: 27px 23px; border-radius: 25px; }
  .service-topic-list a { grid-template-columns: 32px 1fr auto; }
  .service-frame { border-radius: 25px; }
  .service-practitioner__portrait figcaption { width: calc(100% - 18px); padding-inline: 14px; }
  .services-card { min-height: 330px; padding: 27px 23px; border-radius: 25px; }
  .services-card h3 { margin-top: 40px; font-size: 2rem; }
}
