/* A single opening palette for inner pages; page purpose changes the composition. */
.ko-inner-hero, .ko-inner-hero.ko-contact-hero, .ko-team-hero { border-top: .2rem solid var(--ko-color-secondary); background: var(--ko-color-surface); color: var(--ko-color-text); }
.ko-inner-hero :is(.ko-about-feature, .ko-booking-feature, .ko-editorial-heading, .ko-services-hero-inner) { padding-block: clamp(2.25rem, 3.5vw, 3.25rem); }
.ko-inner-hero :is(.ko-about-feature-copy, .ko-booking-feature-copy, .ko-heading-copy, .ko-services-heading, .ko-services-intro) { color: var(--ko-color-text); }
.ko-inner-hero :is(.ko-about-feature-copy, .ko-booking-feature-copy, .ko-heading-copy, .ko-services-heading) .ko-eyebrow { color: var(--ko-color-secondary); }
.ko-inner-hero :is(.ko-about-feature-copy, .ko-booking-feature-copy, .ko-heading-copy, .ko-services-heading) h1 { color: var(--ko-color-primary); font-size: clamp(3rem, 4.6vw, 4.5rem); }
.ko-inner-hero :is(.ko-about-feature-copy, .ko-booking-feature-copy, .ko-services-heading) .ko-lead, .ko-inner-hero .ko-services-intro .ko-lead { color: var(--ko-color-text); }
.ko-inner-hero :is(.ko-about-feature-copy, .ko-booking-feature-copy) .ko-text-link a { color: var(--ko-color-secondary); }
.ko-inner-hero :is(.ko-about-feature-copy, .ko-booking-feature-copy) .ko-small { color: var(--ko-color-text); }
.ko-appointments-hero .ko-booking-feature-copy .wp-block-button__link { border-color: var(--ko-color-primary); background: var(--ko-color-brand); color: var(--ko-color-text); }
.ko-appointments-hero .ko-booking-feature-copy .wp-block-button__link:hover { border-color: var(--ko-color-secondary); background: var(--ko-color-secondary); color: var(--ko-color-white); }
.ko-appointments-hero .ko-booking-phone { border: 1px solid var(--ko-color-border); border-radius: 1rem; background: var(--ko-color-soft); color: var(--ko-color-text); }
.ko-appointments-hero .ko-booking-phone :is(h2, a) { color: var(--ko-color-primary); }
.ko-team-hero-inner { grid-template-columns: 1fr; padding-block: clamp(2.5rem, 4vw, 4rem); }
.ko-team-hero .ko-eyebrow { color: var(--ko-color-secondary); }
.ko-page-main .ko-team-hero h1 { max-width: 16ch; margin-bottom: 1rem; color: var(--ko-color-primary); font-size: clamp(3rem, 4.6vw, 4.5rem); }
.ko-team-hero .ko-lead { max-width: 58ch; margin: 0; color: var(--ko-color-text); }
.ko-team-people { padding-block: clamp(1.75rem, 2.75vw, 2.5rem); }
.ko-contact-options { margin-block: 0; padding-bottom: clamp(2rem, 3.5vw, 3.25rem); }
.ko-contact-options .ko-contact-option { display: block; grid-column: auto; padding: clamp(1.75rem, 3vw, 2.75rem); border: 1px solid var(--ko-color-border); border-radius: 1rem; background: var(--ko-color-soft); }
.ko-updates-main .ko-archive-intro, .ko-events-main .tribe-events-header__content-title::before { border-top-width: .2rem; }
.ko-updates-main .ko-archive-intro { border-top: .2rem solid var(--ko-color-secondary); }
.ko-updates-main .ko-archive-intro h1 { font-size: clamp(3rem, 4.6vw, 4.5rem); }
.ko-updates-main > .alignwide { padding-block: clamp(1.5rem, 3vw, 2.5rem); }
.ko-service-groups { padding-block: clamp(1.75rem, 3.5vw, 3rem); }
.ko-events-curated-intro { border-top: .2rem solid var(--ko-color-secondary); background: var(--ko-color-surface); }
.ko-events-curated-intro .ko-wrap { padding-block: clamp(2.25rem, 3.5vw, 3.5rem); }
.ko-events-curated-intro h1 { margin: 0 0 .75rem; font-size: clamp(3rem, 4.6vw, 4.5rem); letter-spacing: -.06em; }
.ko-events-curated-intro p:last-child { max-width: 42ch; margin: 0; font-size: var(--ko-type-lead); }
.ko-events-curated-body { max-width: 72rem; padding-block: clamp(2rem, 3.5vw, 3.25rem); }
.ko-events-preview-note, .ko-events-empty { max-width: 54rem; padding: 1.25rem 1.5rem; border-left: .2rem solid var(--ko-color-secondary); background: var(--ko-color-soft); }
.ko-events-preview-note { margin: 0 0 2rem; }
.ko-events-list { border-top: 1px solid var(--ko-color-border); }
.ko-event-row { display: grid; grid-template-columns: 6rem minmax(0, 1fr); gap: clamp(1.5rem, 4vw, 3rem); padding-block: clamp(2rem, 3.5vw, 3rem); border-bottom: 1px solid var(--ko-color-border); }
.ko-event-date time { display: flex; flex-direction: column; align-items: flex-start; color: var(--ko-color-primary); line-height: 1; text-transform: uppercase; }
.ko-event-date span { font-size: var(--ko-type-label); font-weight: 700; letter-spacing: .08em; }
.ko-event-date strong { font-size: clamp(2.5rem, 4vw, 4rem); letter-spacing: -.06em; }
.ko-event-meta { margin: 0 0 .5rem; color: var(--ko-color-secondary); font-size: var(--ko-type-small); font-weight: 700; }
.ko-event-sample { display: inline-block; margin-left: .75rem; padding: .15rem .5rem; border: 1px solid currentColor; border-radius: 1rem; font-size: .75rem; line-height: 1.2; }
.ko-event-copy h2 { margin: 0 0 .75rem; font-size: clamp(1.5rem, 2.5vw, 2rem); }
.ko-event-copy h2 a { color: var(--ko-color-primary); text-decoration: none; }
.ko-event-copy h2 a:hover, .ko-event-copy h2 a:focus-visible { text-decoration: underline; }
.ko-event-copy > p:last-child { max-width: 58ch; margin: 0; }
.ko-events-calendar-page .tribe-events-header__content-title { display: none !important; }
.ko-events-calendar-page .tribe-common.tribe-events .tribe-events-l-container { padding-top: 0; }
.ko-events-calendar-page .tribe-common--breakpoint-medium.tribe-events .tribe-events-calendar-month__day { min-height: 8.25rem; }
.ko-events-calendar-page .tribe-common--breakpoint-medium.tribe-events .tribe-events-c-top-bar__datepicker-container { width: 20rem; min-width: 0; }
.ko-events-calendar-page .tribe-common--breakpoint-medium.tribe-events .datepicker { padding-inline: .25rem; }
.ko-events-calendar-page .tribe-common--breakpoint-medium.tribe-events .datepicker table { width: 100%; }
.ko-events-calendar-page .tribe-common--breakpoint-medium.tribe-events .datepicker .day { width: auto; }
@media (max-width: 782px) {
 .ko-events-calendar-page .tribe-events .tribe-events-c-top-bar__datepicker .tribe-events-c-top-bar__datepicker-container { width: min(15rem, calc(100vw - 2rem)); max-width: min(15rem, calc(100vw - 2rem)); min-width: 0; }
 .ko-events-calendar-page .tribe-events .datepicker { padding-inline: .25rem; }
 .ko-events-calendar-page .tribe-events .datepicker table { width: 100%; }
 .ko-events-calendar-page .tribe-events .datepicker .day { width: auto; }
}
.ko-events-calendar-page .ko-events-preview-wrap { max-width: var(--ko-wide); margin-block: 0 1.5rem; }
.ko-events-calendar-page .ko-events-preview-note { margin: 0; }
.ko-sample-events-preview .tribe-events-c-subscribe-dropdown__container,
.ko-sample-events-preview .tribe-events-c-events-bar { display: none !important; }
.ko-contact-visit-band { background: var(--ko-color-soft); }
.ko-contact-visit-band .ko-content-section { padding-block: clamp(2rem, 3.5vw, 3.25rem); }
.ko-contact-visit-band .ko-section-heading { margin-bottom: 1.25rem; }
.ko-contact-visit-band .ko-location-grid { gap: clamp(1rem, 2vw, 1.5rem); }
.ko-contact-visit-band .ko-location-card,
.ko-contact-visit-band .ko-hours-sheet { padding: clamp(1.5rem, 3vw, 2.5rem); border: 1px solid var(--ko-color-border); border-radius: 1rem; background: var(--ko-color-white); }
.ko-contact-visit-band .ko-arrival-note { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-block: 1.25rem; padding-top: 1.25rem; }
.ko-contact-visit-band .ko-arrival-note p { margin: 0; }
.ko-contact-visit-band .ko-hours-row { padding-block: .9rem; }
.ko-contact-visit-band .ko-hours-sheet .ko-small { margin-top: 1rem; }
.ko-contact-visit-band + .ko-contact-options { padding-top: clamp(2.5rem, 4vw, 4rem); }
.ko-updates-main .ko-results .wp-block-post-template { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem clamp(2rem, 4vw, 4rem); }
.ko-updates-main .ko-results .wp-block-post:first-child { grid-column: 1 / -1; }
.ko-updates-main .ko-result { gap: 1.5rem; border: 0; border-top: 1px solid var(--ko-color-border); border-radius: 0; background: transparent; }
.ko-updates-main .ko-results .wp-block-post:first-child .ko-result { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: clamp(2rem, 5vw, 5rem); border: 1px solid var(--ko-color-border); border-radius: 1rem; background: var(--ko-color-soft); }
.ko-updates-main .ko-results .wp-block-post:not(:first-child) .ko-result { padding: 1.5rem 0; }
/* The About photograph is a wide panorama, so narrow and mid-width columns keep a landscape frame. */
@media (max-width: 1000px) {
 .ko-about-hero .ko-about-image { align-self: center; min-height: 0; aspect-ratio: 4 / 3; }
 .ko-about-hero .ko-about-image img { min-height: 0; max-height: none; aspect-ratio: 4 / 3; }
}
@media (max-width: 782px) {
 .ko-inner-hero :is(.ko-about-feature, .ko-booking-feature, .ko-editorial-heading, .ko-services-hero-inner) { padding-block: 2rem; }
 .ko-inner-hero :is(.ko-about-feature-copy, .ko-booking-feature-copy, .ko-heading-copy, .ko-services-heading) h1, .ko-page-main .ko-team-hero h1 { font-size: clamp(2.75rem, 9vw, 3.5rem); }
 .ko-team-hero-inner { padding-block: 2rem; }
 .ko-team-people { padding-block: 2rem; }
 .ko-appointments-hero .ko-booking-phone { padding: 1.5rem; border: 1px solid var(--ko-color-border); background: var(--ko-color-soft); color: var(--ko-color-text); }
 .ko-appointments-hero .ko-booking-phone :is(h2, a, .ko-phone a) { color: var(--ko-color-primary); }
 .ko-appointments-hero .ko-booking-phone .ko-text-link a { color: var(--ko-color-secondary); }
 .ko-events-curated-intro .ko-wrap { padding-block: 2rem; }
 .ko-event-row { grid-template-columns: 4rem minmax(0, 1fr); gap: 1rem; }
 .ko-contact-visit-band .ko-arrival-note { grid-template-columns: 1fr; }
 .ko-updates-main .ko-results .wp-block-post-template { grid-template-columns: 1fr; }
 .ko-updates-main .ko-results .wp-block-post:first-child { grid-column: auto; }
 .ko-updates-main .ko-results .wp-block-post:first-child .ko-result { grid-template-columns: 1fr; }
}

/* Home services: the heading uses the full width as a title-and-intro row, and
   each care category is one open index row so titles, arrows, and descriptions
   line up in columns instead of leaving half of every row empty. */
.ko-home-care-heading { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); column-gap: clamp(2rem, 7vw, 7rem); align-items: center; max-width: none; margin-bottom: 1.75rem; }
.ko-home-care-heading .ko-eyebrow { grid-column: 1; }
.ko-home-care-heading h2 { grid-column: 1; max-width: 12ch; margin: 0; }
.ko-home-care-heading > p:last-child { grid-column: 2; max-width: 34ch; margin: 0; font-size: 1.125rem; }
.ko-home-care-list { grid-template-columns: 1fr; gap: 0; }
.ko-home-care-item { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.25fr); column-gap: clamp(1.5rem, 4vw, 4rem); align-items: baseline; padding-block: 1.5rem; }
.ko-home-care-item h3 { margin: 0; font-size: clamp(1.35rem, 2vw, 1.6rem); }
.ko-home-care-item h3 a { display: inline-flex; align-items: baseline; gap: .5rem; justify-content: flex-start; }
.ko-home-care-item p { max-width: 54ch; font-size: 1rem; }
.ko-home-care-item h3 span { transition: transform .18s ease; }
.ko-home-care-item:hover h3 span { transform: translate(2px, -2px); }
@media (max-width: 782px) {
 .ko-home-care-heading { display: block; margin-bottom: 1.5rem; }
 .ko-home-care-heading h2 { margin-bottom: 1rem; }
 .ko-home-care-item { display: block; }
 .ko-home-care-item h3 { margin-bottom: .5rem; }
}

/* Events and Updates sit outside the page tree, so mark the matching top-bar
   item while browsing the calendar or a single update. */
:is(.post-type-archive-tribe_events, .single-tribe_events) .ko-masthead .wp-block-navigation-item__content[href$="/events/"],
:is(.blog, .single-post) .ko-masthead .wp-block-navigation-item__content[href$="/updates/"] {
 color: var(--ko-color-secondary);
 text-decoration: underline;
 text-decoration-thickness: .15em;
 text-underline-offset: .55em;
}
