:root {
    --shck-green: #174f3b;
    --shck-green-dark: #103b2d;
    --shck-cream: #f5f1e8;
    --shck-ink: #24312c;
    --shck-muted: #66706b;
    --shck-line: rgba(23, 79, 59, 0.18);
    --shck-white: #ffffff;
    --shck-radius-card: 0.55rem;
    --shck-radius-button: 0.38rem;
    --shck-serif: Georgia, 'Times New Roman', serif;
    --shck-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

.shck-home-hero,
.shck-trust-bar,
.shck-services-overview {
    box-sizing: border-box;
    max-width: 100%;
    font-family: var(--shck-sans);
}

.shck-home-hero *,
.shck-trust-bar *,
.shck-services-overview * {
    box-sizing: border-box;
}

.shck-home-hero {
    display: grid;
    grid-template-columns: minmax(0, 41%) minmax(0, 59%);
    min-height: clamp(26rem, 32vw, 29rem);
    background: var(--shck-cream);
    color: var(--shck-ink);
    overflow: hidden;
}

.shck-home-hero__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(2.1rem, 3.5vw, 3.6rem) clamp(2rem, 4.8vw, 5.5rem);
    background: var(--shck-cream);
    align-self: stretch;
}

.shck-eyebrow {
    margin: 0 0 1.25rem;
    color: var(--shck-green);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    line-height: 1.4;
    text-transform: uppercase;
}

.shck-home-hero__headline {
    max-width: 8.9em;
    margin: 0;
    color: var(--shck-green-dark);
    font-family: var(--shck-serif);
    font-size: clamp(3.4rem, 5vw, 5.6rem);
    font-weight: 400;
    letter-spacing: -0.035em;
    line-height: 0.94;
}

.shck-home-hero__copy {
    max-width: 37rem;
    margin-top: 1.65rem;
    color: var(--shck-muted);
    font-size: clamp(1rem, 1.2vw, 1.125rem);
    line-height: 1.7;
}

.shck-home-hero__copy p {
    margin: 0;
}

.shck-home-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    margin-top: 2rem;
}

.shck-button {
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    justify-content: center;
    padding: 0.78rem 1.35rem;
    border: 1px solid var(--shck-green);
    border-radius: var(--shck-radius-button);
    font-family: var(--shck-sans);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color 160ms ease, color 160ms ease, border-color 160ms ease;
}

.shck-button--primary {
    background: var(--shck-green);
    color: var(--shck-white);
}

.shck-button--primary:hover,
.shck-button--primary:focus-visible {
    background: var(--shck-green-dark);
    border-color: var(--shck-green-dark);
    color: var(--shck-white);
}

.shck-button--secondary {
    background: transparent;
    color: var(--shck-green);
}

.shck-button--secondary:hover,
.shck-button--secondary:focus-visible {
    background: var(--shck-green);
    color: var(--shck-white);
}

.shck-home-hero__media {
    position: relative;
    min-height: 100%;
    background: #ddd8cf;
}

.shck-home-hero__media::before {
    content: '';
    position: absolute;
    z-index: 2;
    top: 0;
    bottom: 0;
    left: 0;
    width: clamp(4.5rem, 9vw, 9rem);
    pointer-events: none;
    background: linear-gradient(90deg, var(--shck-cream) 0%, rgba(245, 241, 232, 0.78) 24%, rgba(245, 241, 232, 0.34) 56%, rgba(245, 241, 232, 0) 100%);
}

.shck-home-hero__image,
.shck-home-hero__media > img {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
    min-height: 100%;
    object-fit: cover;
    object-position: center center;
}

.shck-home-hero__image-placeholder {
    width: 100%;
    height: 100%;
    min-height: 26rem;
    background: linear-gradient(135deg, #d8d3ca, #ebe7df);
}

.shck-trust-bar {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
    background: var(--shck-white);
    margin-top: 0 !important;
    border-top: 0;
    border-bottom: 0;
    box-shadow: none;
}

.shck-trust-bar__item {
    position: relative;
    padding: 1.65rem clamp(1rem, 2vw, 2rem) 1.8rem;
    text-align: center;
}

.shck-trust-bar__item + .shck-trust-bar__item::before {
    content: '';
    position: absolute;
    top: 22%;
    bottom: 22%;
    left: 0;
    width: 1px;
    background: var(--shck-line);
}

.shck-trust-bar__icon {
    display: flex;
    width: 3.15rem;
    height: 2.75rem;
    align-items: center;
    justify-content: center;
    margin: 0 auto 0.9rem;
    color: var(--shck-green);
}

.shck-trust-bar__icon svg {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    transform-origin: center;
}

/* Optical normalization: the source SVGs have different proportions and ink density. */
.shck-trust-bar__icon--1 svg { transform: scale(0.96); }
.shck-trust-bar__icon--2 svg { transform: scale(1.18); }
.shck-trust-bar__icon--3 svg { transform: scale(1.24); }
.shck-trust-bar__icon--4 svg { transform: scale(1.08); }

.shck-trust-bar__icon svg,
.shck-trust-bar__icon svg * {
    fill: currentColor;
}

.shck-trust-bar__title {
    margin: 0;
    color: var(--shck-green-dark);
    font-family: var(--shck-sans);
    font-size: 0.95rem;
    font-weight: 700;
    line-height: 1.3;
}

.shck-trust-bar__text {
    max-width: 17rem;
    margin: 0.5rem auto 0;
    color: var(--shck-muted);
    font-size: 0.86rem;
    line-height: 1.55;
}

.shck-trust-bar__text p {
    margin: 0;
}


/* Keep the opening experience visually continuous even when the theme applies block-gap margins. */
.shck-home-hero {
    margin-bottom: -1rem !important;
}

.shck-home-hero + .shck-trust-bar,
.wp-block-post-content > .shck-trust-bar {
    margin-block-start: 0 !important;
}

/* Keep Trust Bar and Our Services visually attached; WordPress themes often add a block gap here. */
.shck-trust-bar + .shck-services-overview,
.wp-block-post-content > .shck-services-overview {
    margin-block-start: 0 !important;
}

.shck-trust-bar {
    margin-bottom: 0 !important;
}


@media (min-width: 1280px) {
    .shck-services-overview__headline {
        white-space: nowrap;
        font-size: clamp(2.05rem, 2.75vw, 3.05rem);
    }
}

.shck-facility-overview__content--has-accent {
    padding-right: clamp(14.25rem, 17vw, 17.75rem);
}

.shck-facility-overview__accent {
    position: absolute;
    z-index: 1;
    right: clamp(1.15rem, 2.4vw, 2.5rem);
    width: 13.75rem;
    color: #6d655e;
    pointer-events: none;
    opacity: 0.94;
    transform-origin: center;
}

.shck-facility-overview__accent--small { width: 11.5rem; }
.shck-facility-overview__accent--medium { width: 13.75rem; }
.shck-facility-overview__accent--large { width: 16rem; }

.shck-facility-overview__accent--upper { top: 20%; transform: translateY(-20%) rotate(-6deg); }
.shck-facility-overview__accent--center { top: 54%; transform: translateY(-50%) rotate(-6deg); }
.shck-facility-overview__accent--lower { bottom: 7%; transform: rotate(-6deg); }

.shck-facility-overview__accent svg {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible;
}

/* Recolor the approved supplied artwork: script stays warm/dark while the botanical remains soft and secondary. */
.shck-facility-overview__accent svg g path:not(.cls-1),
.shck-facility-overview__accent svg g polygon:not(.cls-1),
.shck-facility-overview__accent svg .cls-2 {
    fill: #6d655e !important;
}

.shck-facility-overview__accent svg .cls-3 {
    fill: #c8bda9 !important;
    opacity: 0.62;
}

.shck-facility-overview__accent svg .cls-1 {
    fill: none !important;
}

@media (max-width: 1180px) {
    .shck-facility-overview__accent {
        display: none;
    }
    .shck-facility-overview__content--has-accent {
        padding-right: clamp(2.2rem, 5vw, 5.4rem);
    }
}

@media (max-width: 1024px) {
    .shck-home-hero {
        grid-template-columns: minmax(0, 45%) minmax(0, 55%);
        min-height: 28rem;
    }

    .shck-home-hero__content {
        padding: 2.5rem 2.5rem;
    }

    .shck-home-hero__headline {
        font-size: clamp(3.1rem, 6vw, 4.6rem);
    }

    .shck-trust-bar__item {
        padding-left: 1rem;
        padding-right: 1rem;
    }
}

@media (max-width: 767px) {
    .shck-home-hero__media::before {
        display: block;
        top: auto;
        right: 0;
        bottom: 0;
        left: 0;
        width: 100%;
        height: clamp(4rem, 18vw, 6.5rem);
        background: linear-gradient(180deg, rgba(245, 241, 232, 0) 0%, rgba(245, 241, 232, 0.34) 44%, rgba(245, 241, 232, 0.82) 76%, var(--shck-cream) 100%);
    }

    .shck-home-hero {
        display: flex;
        min-height: 0;
        flex-direction: column;
    }

    .shck-home-hero__media {
        order: 1;
        min-height: 16.5rem;
        aspect-ratio: 16 / 10;
    }

    .shck-home-hero__content {
        order: 2;
        padding: 2.4rem 1.35rem 2.75rem;
    }

    .shck-home-hero__headline {
        max-width: 9em;
        font-size: clamp(3rem, 15vw, 4.3rem);
        line-height: 0.98;
    }

    .shck-home-hero__copy {
        margin-top: 1.35rem;
        font-size: 1rem;
    }

    .shck-home-hero__actions {
        gap: 0.7rem;
        margin-top: 1.65rem;
    }

    .shck-button {
        flex: 1 1 11rem;
    }

    .shck-trust-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .shck-trust-bar__item {
        min-height: 11.5rem;
        padding: 1.6rem 1rem 1.75rem;
    }

    .shck-trust-bar__item + .shck-trust-bar__item::before {
        display: none;
    }

    .shck-trust-bar__item:nth-child(even)::after {
        content: '';
        position: absolute;
        top: 14%;
        bottom: 14%;
        left: 0;
        width: 1px;
        background: var(--shck-line);
    }

    .shck-trust-bar__item:nth-child(n+3) {
        border-top: 1px solid var(--shck-line);
    }
}

@media (max-width: 390px) {
    .shck-home-hero__actions {
        flex-direction: column;
    }

    .shck-button {
        width: 100%;
    }
}



.shck-services-overview {
    width: 100%;
    padding: clamp(1.15rem, 1.8vw, 1.55rem) clamp(1.4rem, 4.2vw, 3rem) clamp(1.7rem, 3.4vw, 2.4rem);
    background: var(--shck-cream);
    color: var(--shck-ink);
    font-family: var(--shck-sans);
}

.shck-services-overview__intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(22rem, 28rem);
    grid-template-rows: auto auto;
    column-gap: clamp(1.5rem, 2.6vw, 2.8rem);
    row-gap: 0.12rem;
    align-items: start;
    width: 100%;
    max-width: 92rem;
    margin: 0 auto 0.85rem;
    text-align: left;
}

.shck-services-overview__eyebrow {
    grid-column: 1;
    grid-row: 1;
    margin: 0;
}

.shck-services-overview__headline {
    grid-column: 1;
    grid-row: 2;
    margin: 0;
    max-width: none;
    white-space: normal;
    color: var(--shck-ink);
    font-family: var(--shck-serif);
    font-size: clamp(2.05rem, 3vw, 3.25rem);
    font-weight: 400;
    letter-spacing: -0.035em;
    line-height: 0.98;
}

.shck-services-overview__copy {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
    max-width: 28rem;
    margin: 0.12rem 0 0;
    color: var(--shck-ink);
    font-size: 0.92rem;
    line-height: 1.4;
}

.shck-services-overview__copy p { margin: 0; }

.shck-services-overview__grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.65rem;
    max-width: 92rem;
    margin: 0 auto;
    align-items: stretch;
}

.shck-service-card {
    display: flex;
    min-height: 0;
    flex-direction: column;
    align-items: center;
    padding: 0.85rem 0.85rem 0.75rem;
    border: 1px solid rgba(23, 79, 59, 0.10);
    border-radius: var(--shck-radius-card);
    background: var(--shck-white);
    text-align: center;
}

.shck-service-card__icon {
    display: flex;
    width: 2.55rem;
    height: 2.3rem;
    align-items: center;
    justify-content: center;
    margin: 0 auto 0.42rem;
    color: var(--shck-green);
}

.shck-service-card__icon svg { display:block; width:100%; height:100%; max-width:100%; max-height:100%; transform-origin:center; }
.shck-service-card__icon svg, .shck-service-card__icon svg * { fill: currentColor; }
.shck-service-card__icon--1 svg { transform: scale(0.96); }
.shck-service-card__icon--2 svg { transform: scale(1.07); }
.shck-service-card__icon--3 svg { transform: scale(0.96); }
.shck-service-card__icon--4 svg { transform: scale(1.02); }

.shck-service-card__title {
    margin: 0;
    color: var(--shck-ink);
    font-family: var(--shck-serif);
    font-size: 0.96rem;
    font-weight: 400;
    line-height: 1.18;
}

.shck-service-card__line {
    display: none;
}

.shck-service-card__text {
    max-width: 12.5rem;
    margin-top: 0.32rem;
    color: var(--shck-ink);
    font-size: 0.78rem;
    line-height: 1.28;
}

.shck-service-card__text p { margin: 0; }

.shck-service-card__link {
    margin-top: auto;
    padding-top: 0.75rem;
    color: var(--shck-green);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    line-height: 1.2;
    text-decoration:none;
    text-transform:uppercase;
}

.shck-service-card__link:hover, .shck-service-card__link:focus-visible { color: var(--shck-green-dark); }

@media (max-width: 1024px) {
    .shck-services-overview {
        padding-left: 1rem;
        padding-right: 1rem;
    }
    .shck-services-overview__intro {
        grid-template-columns: minmax(0, 1fr) minmax(17rem, 23rem);
        column-gap: 1.25rem;
        row-gap: 0.12rem;
    }
    .shck-services-overview__headline {
        font-size: clamp(1.75rem, 2.7vw, 2.35rem);
    }
    .shck-services-overview__copy {
        font-size: 0.9rem;
    }
    .shck-service-card {
        padding: 0.8rem 0.65rem 0.72rem;
    }
    .shck-service-card__text {
        max-width: 11rem;
        font-size: 0.74rem;
    }
}

@media (max-width: 781px) {
    .shck-services-overview {
        padding: 1.4rem 1rem 2.85rem;
    }
    .shck-services-overview__intro {
        display: block;
        margin-bottom: 1.15rem;
    }
    .shck-services-overview__headline {
        white-space: normal;
        font-size: clamp(2rem, 9vw, 2.8rem);
    }
    .shck-services-overview__copy {
        max-width: 34rem;
        margin-top: 0.75rem;
        font-size: 0.92rem;
        line-height: 1.5;
    }
    .shck-services-overview__grid {
        grid-template-columns: 1fr;
        gap: 0.8rem;
    }
    .shck-service-card {
        display: grid;
        grid-template-columns: 3.15rem minmax(0, 1fr);
        column-gap: 0.9rem;
        align-items: start;
        padding: 0.95rem;
        text-align: left;
    }
    .shck-service-card__icon {
        grid-column: 1;
        grid-row: 1 / span 4;
        width: 2.55rem;
        height: 2.3rem;
        margin: 0;
    }
    .shck-service-card__title,
    .shck-service-card__text,
    .shck-service-card__link {
        grid-column: 2;
    }
    .shck-service-card__text {
        max-width: none;
        margin-top: 0.28rem;
        font-size: 0.84rem;
        line-height: 1.38;
    }
    .shck-service-card__link {
        margin-top: 0.5rem;
        padding-top: 0;
    }
}



/* Standing section-transition rule: adjacent SHCK sections should meet cleanly with no theme-added dead space. */
.shck-services-overview {
    margin-bottom: 0 !important;
}

.shck-services-overview + .shck-facility-overview,
.wp-block-post-content > .shck-facility-overview {
    margin-block-start: 0 !important;
    margin-top: 0 !important;
}

.shck-facility-overview {
    margin-top: 0 !important;
}

.shck-facility-overview {
    display: grid;
    grid-template-columns: minmax(0, 52%) minmax(0, 48%);
    width: 100%;
    min-height: 25rem;
    background: var(--shck-white);
    color: var(--shck-ink);
    font-family: var(--shck-sans);
    overflow: hidden;
}

.shck-facility-overview *,
.shck-facility-overview *::before,
.shck-facility-overview *::after {
    box-sizing: border-box;
}

.shck-facility-overview__media {
    position: relative;
    min-width: 0;
    min-height: 25rem;
    overflow: hidden;
    background: #ddd8cf;
}

.shck-facility-overview__media::after {
    content: '';
    position: absolute;
    z-index: 2;
    top: 0;
    right: 0;
    bottom: 0;
    width: clamp(4.5rem, 8vw, 8rem);
    pointer-events: none;
    background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.32) 52%, var(--shck-white) 100%);
}

.shck-facility-overview__image {
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    height: 100%;
    min-height: 25rem;
    object-fit: cover;
}

.shck-facility-overview__image-placeholder {
    width: 100%;
    height: 100%;
    min-height: 25rem;
    background: linear-gradient(135deg, #d8d3ca, #ebe7df);
}

.shck-facility-overview__content {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding: clamp(2.4rem, 4.4vw, 4.6rem) clamp(2.2rem, 5vw, 5.4rem);
    background: var(--shck-white);
}

.shck-facility-overview__eyebrow {
    margin-bottom: 0.35rem;
}

.shck-facility-overview__headline {
    max-width: 9.5em;
    margin: 0;
    color: var(--shck-ink);
    font-family: var(--shck-serif);
    font-size: clamp(2.35rem, 3.5vw, 3.9rem);
    font-weight: 400;
    letter-spacing: -0.035em;
    line-height: 0.98;
}

.shck-facility-overview__copy {
    max-width: 34rem;
    margin-top: 1rem;
    color: var(--shck-muted);
    font-size: 0.98rem;
    line-height: 1.6;
}

.shck-facility-overview__copy p {
    margin: 0;
}

.shck-facility-overview__button {
    margin-top: 0.75rem;
}

@media (max-width: 1024px) {
    .shck-facility-overview {
        grid-template-columns: minmax(0, 50%) minmax(0, 50%);
        min-height: 23rem;
    }

    .shck-facility-overview__media,
    .shck-facility-overview__image,
    .shck-facility-overview__image-placeholder {
        min-height: 23rem;
    }

    .shck-facility-overview__content {
        padding: 2.5rem 2rem;
    }
}

@media (max-width: 781px) {
    .shck-facility-overview__media::after {
        top: auto;
        right: 0;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 5.5rem;
        background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.34) 50%, var(--shck-white) 100%);
    }

    .shck-facility-overview {
        display: flex;
        flex-direction: column;
        min-height: 0;
    }

    .shck-facility-overview__media {
        min-height: 16rem;
        order: 1;
    }

    .shck-facility-overview__image,
    .shck-facility-overview__image-placeholder {
        min-height: 16rem;
        height: 16rem;
    }

    .shck-facility-overview__content {
        order: 2;
        padding: 2.1rem 1.2rem 2.5rem;
    }

    .shck-facility-overview__headline {
        max-width: 12em;
        font-size: clamp(2.1rem, 9vw, 3rem);
    }
}



.shck-day-rhythm {
    width: 100%;
    padding: clamp(1.6rem, 2.7vw, 2.35rem) clamp(1.35rem, 4.2vw, 3.2rem) clamp(1.9rem, 3vw, 2.6rem);
    background: var(--shck-white);
    color: var(--shck-ink);
    font-family: var(--shck-sans);
}

.shck-day-rhythm *,
.shck-day-rhythm *::before,
.shck-day-rhythm *::after {
    box-sizing: border-box;
}

.shck-day-rhythm__intro {
    max-width: 92rem;
    margin: 0 auto 1.25rem;
    text-align: left;
}

.shck-day-rhythm__eyebrow {
    margin-bottom: 0.32rem;
}

.shck-day-rhythm__headline {
    margin: 0;
    color: var(--shck-ink);
    font-family: var(--shck-serif);
    font-size: clamp(2rem, 3vw, 3rem);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1;
}

.shck-day-rhythm__copy {
    max-width: 46rem;
    margin: 0.55rem 0 0;
    color: var(--shck-muted);
    font-size: 0.9rem;
    line-height: 1.45;
}

.shck-day-rhythm__copy p { margin: 0; }

.shck-day-rhythm__timeline {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    max-width: 92rem;
    margin: 0 auto;
}

.shck-day-rhythm__timeline::before { display: none; }

.shck-day-step {
    position: relative;
    display: grid;
    grid-template-columns: 3.25rem minmax(0, 1fr);
    column-gap: 0.8rem;
    align-items: start;
    min-width: 0;
    padding: 0 1.2rem;
    text-align: left;
}

.shck-day-step:first-child { padding-left: 0; }
.shck-day-step:last-child { padding-right: 0; }

.shck-day-step + .shck-day-step {
    border-left: 1px solid rgba(23, 79, 59, 0.16);
}

.shck-day-step__icon {
    grid-column: 1;
    grid-row: 1 / span 2;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    width: 3rem;
    height: 3.2rem;
    margin: 0;
    color: var(--shck-green);
    background: transparent;
}

.shck-day-step__icon svg {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    transform-origin: center;
}

.shck-day-step__icon svg,
.shck-day-step__icon svg * { fill: currentColor; }

.shck-day-step__icon--1 svg { transform: scale(1.00); }
.shck-day-step__icon--2 svg { transform: scale(1.05); }
.shck-day-step__icon--3 svg { transform: scale(0.95); }
.shck-day-step__icon--4 svg { transform: scale(0.92); }

.shck-day-step__title {
    grid-column: 2;
    margin: 0;
    color: var(--shck-ink);
    font-family: var(--shck-serif);
    font-size: 0.96rem;
    font-weight: 400;
    line-height: 1.2;
}

.shck-day-step__text {
    grid-column: 2;
    max-width: 15rem;
    margin-top: 0.22rem;
    color: var(--shck-muted);
    font-size: 0.82rem;
    line-height: 1.42;
}

.shck-day-step__text p { margin: 0; }

@media (max-width: 1024px) {
    .shck-day-rhythm {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .shck-day-step {
        grid-template-columns: 2.8rem minmax(0, 1fr);
        column-gap: 0.65rem;
        padding: 0 0.8rem;
    }

    .shck-day-step__icon {
        width: 2.55rem;
        height: 2.8rem;
    }

    .shck-day-step__title { font-size: 0.98rem; }
    .shck-day-step__text { font-size: 0.76rem; line-height: 1.38; }
}

@media (max-width: 781px) {
    .shck-day-rhythm {
        padding: 2rem 1rem 2.4rem;
    }

    .shck-day-rhythm__intro {
        margin-bottom: 1.15rem;
    }

    .shck-day-rhythm__headline {
        font-size: clamp(2rem, 9vw, 2.8rem);
    }

    .shck-day-rhythm__copy {
        max-width: 34rem;
        font-size: 0.9rem;
        line-height: 1.48;
    }

    .shck-day-rhythm__timeline {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .shck-day-step,
    .shck-day-step:first-child,
    .shck-day-step:last-child {
        grid-template-columns: 3.2rem minmax(0, 1fr);
        column-gap: 0.85rem;
        padding: 0.95rem 0;
        border-left: 0;
    }

    .shck-day-step + .shck-day-step {
        border-left: 0;
        border-top: 1px solid rgba(23, 79, 59, 0.13);
    }

    .shck-day-step__icon {
        width: 2.85rem;
        height: 3.15rem;
    }

    .shck-day-step__title { font-size: 1.08rem; }
    .shck-day-step__text { max-width: none; font-size: 0.88rem; line-height: 1.48; }
}


/* Seamless transition: Our Facility into A Day at Sloughhouse. */
.shck-facility-overview {
    margin-bottom: 0 !important;
}

.shck-facility-overview + .shck-day-rhythm,
.wp-block-post-content > .shck-day-rhythm {
    margin-block-start: 0 !important;
    margin-top: 0 !important;
}

.shck-day-rhythm {
    margin-top: 0 !important;
}


/* Homepage FAQs */
.shck-day-rhythm {
    margin-bottom: 0 !important;
}

.shck-day-rhythm + .shck-faq-overview,
.wp-block-post-content > .shck-faq-overview {
    margin-block-start: 0 !important;
    margin-top: 0 !important;
}

.shck-faq-overview {
    width: 100%;
    margin-top: 0 !important;
    padding: clamp(2.7rem, 4.8vw, 4.6rem) clamp(1.25rem, 4vw, 3rem);
    background: var(--shck-cream);
    color: var(--shck-ink);
    font-family: var(--shck-sans);
}

.shck-faq-overview *,
.shck-faq-overview *::before,
.shck-faq-overview *::after { box-sizing: border-box; }

.shck-faq-overview__inner {
    display: grid;
    grid-template-columns: minmax(18rem, 0.78fr) minmax(0, 1.22fr);
    gap: clamp(3rem, 7vw, 7rem);
    width: 100%;
    max-width: 92rem;
    margin: 0 auto;
    align-items: start;
}

.shck-faq-overview__eyebrow { margin-bottom: 0.35rem; }

.shck-faq-overview__headline {
    max-width: 9.25em;
    margin: 0;
    color: var(--shck-ink);
    font-family: var(--shck-serif);
    font-size: clamp(2.35rem, 3.6vw, 3.8rem);
    font-weight: 400;
    letter-spacing: -0.035em;
    line-height: 0.99;
}

.shck-faq-overview__copy {
    max-width: 26rem;
    margin-top: 1rem;
    color: var(--shck-muted);
    font-size: 0.95rem;
    line-height: 1.6;
}

.shck-faq-overview__copy p { margin: 0; }

.shck-faq-overview__accordion {
    width: 100%;
    border-top: 1px solid rgba(23, 79, 59, 0.18);
}

.shck-faq-item { border-bottom: 1px solid rgba(23, 79, 59, 0.18); }

.shck-faq-item__question {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 1.35rem;
    gap: 1rem;
    align-items: center;
    width: 100%;
    min-height: 4.25rem;
    padding: 1rem 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--shck-ink);
    font-family: var(--shck-serif);
    font-size: 1.18rem;
    font-weight: 400;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
}

.shck-faq-item__question:hover,
.shck-faq-item__question:focus-visible { color: var(--shck-green); }

.shck-faq-item__symbol {
    position: relative;
    display: block;
    width: 1rem;
    height: 1rem;
    justify-self: end;
}

.shck-faq-item__symbol::before,
.shck-faq-item__symbol::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0.9rem;
    height: 1px;
    background: currentColor;
    transform: translate(-50%, -50%);
    transition: opacity 160ms ease;
}

.shck-faq-item__symbol::after { transform: translate(-50%, -50%) rotate(90deg); }
.shck-faq-item__question[aria-expanded="true"] .shck-faq-item__symbol::after { opacity: 0; }

.shck-faq-item__answer {
    color: var(--shck-muted);
    font-size: 0.94rem;
    line-height: 1.65;
}

.shck-faq-item__answer[hidden] { display: none; }

.shck-faq-item__answer-inner {
    max-width: 44rem;
    padding: 0 2.25rem 1.25rem 0;
}

.shck-faq-item__answer-inner p { margin: 0 0 0.7rem; }
.shck-faq-item__answer-inner p:last-child { margin-bottom: 0; }

.shck-faq-overview__empty {
    padding: 1rem 0;
    border-bottom: 1px solid rgba(23, 79, 59, 0.18);
    color: var(--shck-muted);
    font-size: 0.92rem;
    line-height: 1.5;
}

.shck-faq-item__question--preview { cursor: default; }

@media (max-width: 1024px) {
    .shck-faq-overview__inner {
        grid-template-columns: minmax(16rem, 0.72fr) minmax(0, 1.28fr);
        gap: 2.4rem;
    }

    .shck-faq-overview__headline {
        font-size: clamp(2.1rem, 3.2vw, 3rem);
    }
}

@media (max-width: 781px) {
    .shck-faq-overview { padding: 2.4rem 1rem 2.8rem; }
    .shck-faq-overview__inner { display: block; }
    .shck-faq-overview__intro { margin-bottom: 1.65rem; }

    .shck-faq-overview__headline {
        max-width: 11em;
        font-size: clamp(2.05rem, 9vw, 3rem);
    }

    .shck-faq-overview__copy {
        max-width: 34rem;
        margin-top: 0.75rem;
    }

    .shck-faq-item__question {
        min-height: 3.8rem;
        padding: 0.9rem 0;
        font-size: 1.08rem;
    }

    .shck-faq-item__answer-inner { padding: 0 1.8rem 1.05rem 0; }
}


/* Shared booking chooser */
button.shck-button {
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

html.shck-modal-open,
body.shck-modal-open {
    overflow: hidden;
}

.shck-booking-modal[hidden] {
    display: none !important;
}

.shck-booking-modal {
    position: fixed;
    z-index: 999999;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 1.25rem;
    font-family: var(--shck-sans);
}

.shck-booking-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(22, 28, 24, 0.62);
    backdrop-filter: blur(3px);
}

.shck-booking-modal__dialog {
    position: relative;
    z-index: 1;
    width: min(44rem, 100%);
    max-height: calc(100vh - 2.5rem);
    overflow: auto;
    padding: clamp(2rem, 4vw, 3rem);
    border-radius: var(--shck-radius-card);
    background: var(--shck-cream);
    box-shadow: 0 1.5rem 4rem rgba(0,0,0,0.24);
    outline: none;
}

.shck-booking-modal__close {
    position: absolute;
    top: 0.8rem;
    right: 0.8rem;
    width: 2.4rem;
    height: 2.4rem;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--shck-ink);
    font-size: 1.8rem;
    line-height: 1;
    cursor: pointer;
}

.shck-booking-modal__close:hover,
.shck-booking-modal__close:focus-visible {
    background: rgba(23,79,59,0.08);
}

.shck-booking-modal__eyebrow {
    margin-bottom: 0.35rem;
}

.shck-booking-modal__title {
    max-width: 11em;
    margin: 0;
    color: var(--shck-ink);
    font-family: var(--shck-serif);
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1;
}

.shck-booking-modal__description {
    max-width: 35rem;
    margin: 0.9rem 0 0;
    color: var(--shck-muted);
    font-size: 0.96rem;
    line-height: 1.6;
}

.shck-booking-modal__options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
    margin-top: 1.6rem;
}

.shck-booking-modal__option {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    padding: 1.25rem;
    border: 1px solid rgba(23,79,59,0.12);
    border-radius: var(--shck-radius-card);
    background: var(--shck-white);
}

.shck-booking-modal__option h3 {
    margin: 0;
    color: var(--shck-ink);
    font-family: var(--shck-serif);
    font-size: 1.25rem;
    font-weight: 400;
}

.shck-booking-modal__option p {
    margin: 0.5rem 0 1rem;
    color: var(--shck-muted);
    font-size: 0.88rem;
    line-height: 1.5;
}

.shck-booking-modal__option .shck-button {
    margin-top: auto;
}

@media (max-width: 620px) {
    .shck-booking-modal {
        align-items: end;
        padding: 0.75rem;
    }

    .shck-booking-modal__dialog {
        width: 100%;
        max-height: calc(100vh - 1.5rem);
        padding: 1.75rem 1.15rem 1.2rem;
        border-radius: 0.75rem;
    }

    .shck-booking-modal__options {
        grid-template-columns: 1fr;
    }

    .shck-booking-modal__option .shck-button {
        width: 100%;
        justify-content: center;
        text-align: center;
    }
}

/* Final CTA — clean rebuild v0.1.31 */
.shck-faq-overview {
    margin-bottom: 0 !important;
}

.shck-faq-overview + .shck-final-cta,
.wp-block-post-content > .shck-final-cta {
    margin-block-start: 0 !important;
    margin-top: 0 !important;
}

.shck-final-cta {
    width: 100%;
    margin-top: 0 !important;
    background: var(--shck-green-dark);
    color: var(--shck-white);
    font-family: var(--shck-sans);
    overflow: hidden;
}

.shck-final-cta *,
.shck-final-cta *::before,
.shck-final-cta *::after {
    box-sizing: border-box;
}

.shck-final-cta__inner {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(18rem, 0.75fr);
    align-items: center;
    gap: clamp(2rem, 5vw, 5rem);
    width: 100%;
    max-width: 96rem;
    min-height: 0;
    margin: 0 auto;
    padding: 0 clamp(1.4rem, 4vw, 3.5rem);
    isolation: isolate;
}

/* Foreground content */
.shck-final-cta__content,
.shck-final-cta__contact {
    position: relative;
    z-index: 4;
}

.shck-final-cta__content {
    width: min(39rem, 58vw);
    padding-top: 1.15rem;
    padding-bottom: 1.15rem;
}

.shck-final-cta__eyebrow {
    margin-bottom: 0.18rem;
    color: rgba(255,255,255,0.66);
    font-size: 0.64rem;
    letter-spacing: 0.12em;
    white-space: nowrap;
}

.shck-final-cta__headline {
    max-width: none;
    margin: 0;
    color: var(--shck-white);
    font-family: var(--shck-serif);
    font-size: clamp(1.65rem, 2.2vw, 2.15rem);
    font-weight: 400;
    letter-spacing: -0.03em;
    line-height: 1;
    white-space: nowrap;
}

.shck-final-cta__copy {
    max-width: none;
    margin-top: 0.48rem;
    color: rgba(255,255,255,0.8);
    font-size: 0.78rem;
    line-height: 1.25;
    white-space: nowrap;
}

.shck-final-cta__copy p {
    margin: 0;
}

.shck-final-cta__button {
    margin-top: 0.72rem;
    min-height: 2.25rem;
    padding: 0.58rem 1rem;
    border: 1px solid rgba(255,255,255,0.88);
    background: var(--shck-white);
    color: var(--shck-green-dark);
    font-size: 0.72rem;
}

.shck-final-cta__button:hover,
.shck-final-cta__button:focus-visible {
    background: transparent;
    color: var(--shck-white);
}

/*
 * Image is a non-layout layer.
 * It never determines CTA height.
 * Its height always equals the final CTA band height and width scales naturally.
 */
.shck-final-cta__media {
    position: absolute;
    z-index: 1;
    top: 0;
    bottom: 0;
    left: 50%;
    width: 58%;
    transform: translateX(-42%);
    overflow: hidden;
    pointer-events: none;
}

.shck-final-cta__image {
    position: absolute;
    top: var(--shck-cta-top, 50%);
    left: var(--shck-cta-left, 50%);
    display: block;
    width: auto !important;
    max-width: none !important;
    height: calc(100% * var(--shck-cta-scale, 1)) !important;
    object-fit: contain !important;
    transform: translate(-50%, -50%);
}

.shck-final-cta__image-placeholder {
    position: absolute;
    inset: 0;
    background: rgba(255,255,255,0.04);
}

/*
 * The fade is applied to the IMAGE itself rather than the media container.
 * This guarantees that the actual left/right edge of the photo reaches 0% opacity,
 * even when zoom/focal settings change the photo width inside the media area.
 */
.shck-final-cta__media {
    -webkit-mask-image: none;
    mask-image: none;
}

.shck-final-cta__media::before,
.shck-final-cta__media::after {
    display: none;
}

.shck-final-cta__image {
    /*
     * Elliptical mask: left/right edges are fully transparent,
     * while the tall ellipse keeps the top/bottom of the photo largely intact.
     * This creates a rounded/curved fade boundary instead of a straight vertical one.
     */
    -webkit-mask-image: radial-gradient(
        ellipse 50% 145% at 50% 50%,
        #000 0%,
        #000 var(--shck-cta-fade-core, 51%),
        rgba(0,0,0,0.62) var(--shck-cta-fade-mid, 65%),
        rgba(0,0,0,0.18) var(--shck-cta-fade-soft, 78%),
        transparent 100%
    );
    mask-image: radial-gradient(
        ellipse 50% 145% at 50% 50%,
        #000 0%,
        #000 var(--shck-cta-fade-core, 51%),
        rgba(0,0,0,0.62) var(--shck-cta-fade-mid, 65%),
        rgba(0,0,0,0.18) var(--shck-cta-fade-soft, 78%),
        transparent 100%
    );
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
}

/* Right-side contact stack */
.shck-final-cta__contact {
    justify-self: end;
    width: min(100%, 23rem);
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding-left: 1.55rem;
}

.shck-final-cta__contact::before {
    content: '';
    position: absolute;
    top: 0.05rem;
    bottom: 0.05rem;
    left: 0;
    width: 1px;
    background: rgba(255,255,255,0.68);
}

.shck-final-cta__contact-item {
    display: grid;
    grid-template-columns: 1.45rem minmax(0, 1fr);
    gap: 0.55rem;
    align-items: center;
    min-width: 0;
    color: var(--shck-white);
    text-decoration: none;
}

a.shck-final-cta__contact-item:hover,
a.shck-final-cta__contact-item:focus-visible {
    color: rgba(255,255,255,0.78);
}

.shck-final-cta__contact-icon {
    display: flex;
    width: 1.35rem;
    height: 1.35rem;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,0.82);
}

.shck-final-cta__contact-icon svg {
    display: block;
    width: 100%;
    height: 100%;
}

.shck-final-cta__contact-icon svg,
.shck-final-cta__contact-icon svg * {
    fill: currentColor;
}

.shck-final-cta__contact-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.shck-final-cta__contact-label {
    color: rgba(255,255,255,0.58);
    font-size: 0.57rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.1;
}

.shck-final-cta__contact-value {
    margin-top: 0.07rem;
    color: inherit;
    font-family: var(--shck-serif);
    font-size: 0.81rem;
    line-height: 1.22;
    overflow-wrap: anywhere;
}

/* Tablet: keep the same concept, allow wrapping before layout breaks */
@media (max-width: 1100px) and (min-width: 782px) {
    .shck-final-cta__inner {
        grid-template-columns: minmax(0, 1.1fr) minmax(15rem, 0.9fr);
        gap: 2rem;
        padding: 0 1.25rem;
    }

    .shck-final-cta__content {
        width: min(34rem, 60vw);
    }

    .shck-final-cta__headline,
    .shck-final-cta__copy {
        white-space: normal;
    }

    .shck-final-cta__headline {
        font-size: clamp(1.55rem, 2.8vw, 1.95rem);
    }

    .shck-final-cta__media {
        width: 62%;
        transform: translateX(-40%);
    }

    .shck-final-cta__contact {
        padding-left: 1.2rem;
    }
}

/* Mobile: normal stacked layout */
@media (max-width: 781px) {
    .shck-final-cta__inner {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 1.15rem;
        padding: 2rem 1rem 2.2rem;
    }

    .shck-final-cta__content {
        width: 100%;
        order: 1;
    }

    .shck-final-cta__eyebrow,
    .shck-final-cta__headline,
    .shck-final-cta__copy {
        white-space: normal;
    }

    .shck-final-cta__headline {
        max-width: 10em;
        font-size: clamp(2.15rem, 10vw, 3rem);
    }

    .shck-final-cta__copy {
        max-width: 34rem;
        margin-top: 0.7rem;
        font-size: 0.94rem;
        line-height: 1.5;
    }

    .shck-final-cta__button {
        margin-top: 1rem;
    }

    .shck-final-cta__media {
        position: relative;
        top: auto;
        bottom: auto;
        left: auto;
        order: 2;
        width: 100%;
        height: 17rem;
        transform: none;
        overflow: hidden;
        border-radius: var(--shck-radius-card);
        -webkit-mask-image: none;
        mask-image: none;
    }

    .shck-final-cta__image {
        position: absolute;
        inset: 0;
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
        transform: none;
        -webkit-mask-image: none;
        mask-image: none;
    }

    .shck-final-cta__media::before,
    .shck-final-cta__media::after {
        display: none;
    }

    .shck-final-cta__contact {
        order: 3;
        justify-self: auto;
        width: 100%;
        gap: 0.85rem;
        padding: 0.3rem 0 0;
    }

    .shck-final-cta__contact::before {
        display: none;
    }

    .shck-final-cta__contact-item {
        grid-template-columns: 2rem minmax(0, 1fr);
        gap: 0.7rem;
    }

    .shck-final-cta__contact-icon {
        width: 1.85rem;
        height: 1.85rem;
    }

    .shck-final-cta__contact-value {
        font-size: 0.96rem;
    }
}


/* v0.1.37 — homepage horizontal overflow protection */
.shck-home-hero,
.shck-trust-bar,
.shck-services-overview,
.shck-facility-overview,
.shck-day-rhythm,
.shck-faq-overview,
.shck-final-cta {
    max-width: 100%;
    overflow-x: clip;
}

/*
 * Prevent decorative/absolutely positioned children from widening the page.
 * This keeps intentional fades/overlaps inside their own section without
 * allowing the WordPress content canvas to become wider than the viewport.
 */
.wp-block-post-content:has(.shck-home-hero) {
    max-width: 100%;
    overflow-x: clip;
}

/* Fallback for browsers where :has() is unavailable. */
@supports not selector(:has(*)) {
    .wp-block-post-content {
        overflow-x: hidden;
    }
}


/* v0.1.38 — mobile-only homepage refinements */
@media (max-width: 781px) {
    /* Hero: shorter mobile service label and centered button text */
    .shck-home-hero__actions .shck-button {
        text-align: center;
        white-space: nowrap;
    }

    /* Trust bar: split the horizontal divider into two inset segments. */
    .shck-trust-bar__item:nth-child(n+3) {
        border-top: 0;
    }

    .shck-trust-bar__item:nth-child(n+3)::before {
        content: '';
        position: absolute;
        top: 0;
        left: 12%;
        right: 12%;
        width: auto;
        height: 1px;
        background: var(--shck-line);
        display: block;
    }

    /* Facility: prevent the CTA button from inheriting mobile flex growth. */
    .shck-facility-overview__button {
        flex: 0 0 auto !important;
        align-self: flex-start;
        width: auto !important;
        min-width: 0;
        min-height: 3rem;
        padding: 0.78rem 1.35rem;
    }

    /* Final CTA: full-bleed image with top/bottom fade between stacked content. */
    .shck-final-cta__media {
        width: calc(100% + 2rem);
        margin-left: -1rem;
        margin-right: -1rem;
        border-radius: 0;
        -webkit-mask-image: none;
        mask-image: none;
    }

    .shck-final-cta__image {
        -webkit-mask-image: linear-gradient(
            180deg,
            transparent 0%,
            rgba(0,0,0,0.2) 8%,
            rgba(0,0,0,0.72) 18%,
            #000 30%,
            #000 70%,
            rgba(0,0,0,0.72) 82%,
            rgba(0,0,0,0.2) 92%,
            transparent 100%
        ) !important;
        mask-image: linear-gradient(
            180deg,
            transparent 0%,
            rgba(0,0,0,0.2) 8%,
            rgba(0,0,0,0.72) 18%,
            #000 30%,
            #000 70%,
            rgba(0,0,0,0.72) 82%,
            rgba(0,0,0,0.2) 92%,
            transparent 100%
        ) !important;
        -webkit-mask-size: 100% 100%;
        mask-size: 100% 100%;
        -webkit-mask-repeat: no-repeat;
        mask-repeat: no-repeat;
    }
}


/* v0.1.40 — FAQ chevron + inset row treatment */
.shck-faq-item {
    position: relative;
    border-top: 0 !important;
}

.shck-faq-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: clamp(0.9rem, 2.2vw, 1.5rem);
    right: clamp(0.9rem, 2.2vw, 1.5rem);
    height: 1px;
    background: var(--shck-line);
}

.shck-faq-item:last-child::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: clamp(0.9rem, 2.2vw, 1.5rem);
    right: clamp(0.9rem, 2.2vw, 1.5rem);
    height: 1px;
    background: var(--shck-line);
}

.shck-faq-item__question {
    padding-left: clamp(0.9rem, 2.2vw, 1.5rem);
    padding-right: clamp(1.15rem, 3vw, 2rem);
}

.shck-faq-item__symbol {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    margin-left: 1rem;
    font-size: 1.15rem;
    line-height: 1;
    transform: rotate(0deg);
    transform-origin: center;
    transition: transform 180ms ease;
}

.shck-faq-item.is-open .shck-faq-item__symbol,
.shck-faq-item__question[aria-expanded="true"] .shck-faq-item__symbol {
    transform: rotate(180deg);
}

@media (max-width: 781px) {
    .shck-faq-item::before,
    .shck-faq-item:last-child::after {
        left: 1rem;
        right: 1rem;
    }

    .shck-faq-item__question {
        padding-left: 1rem;
        padding-right: 1.15rem;
    }

    .shck-faq-item__symbol {
        margin-left: 0.85rem;
    }
}


/* v0.1.41 — clean FAQ chevron and single inset separators */
.shck-faq-overview__accordion {
    border-top: 0 !important;
}

.shck-faq-item {
    border-top: 0 !important;
    border-bottom: 0 !important;
}

/* Only one set of inset separators is used. */
.shck-faq-item::before {
    left: clamp(1rem, 2.5vw, 1.65rem);
    right: clamp(1rem, 2.5vw, 1.65rem);
}

.shck-faq-item:last-child::after {
    left: clamp(1rem, 2.5vw, 1.65rem);
    right: clamp(1rem, 2.5vw, 1.65rem);
}

/* Remove the old plus/minus artwork completely. */
.shck-faq-item__symbol {
    position: relative;
    display: block;
    width: 0.82rem;
    height: 0.82rem;
    margin-left: 1rem;
    justify-self: end;
    font-size: 0;
    line-height: 0;
    transform: rotate(0deg);
    transform-origin: 50% 50%;
    transition: transform 180ms ease;
}

.shck-faq-item__symbol::before {
    content: '';
    position: absolute;
    top: 0.08rem;
    left: 0.08rem;
    width: 0.58rem;
    height: 0.58rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    background: transparent !important;
    transform: rotate(45deg);
    transition: none;
}

.shck-faq-item__symbol::after {
    content: none !important;
    display: none !important;
}

.shck-faq-item__question[aria-expanded="true"] .shck-faq-item__symbol {
    transform: rotate(180deg);
}

@media (max-width: 781px) {
    .shck-faq-item::before,
    .shck-faq-item:last-child::after {
        left: 1rem;
        right: 1rem;
    }

    .shck-faq-item__symbol {
        margin-left: 0.75rem;
        margin-right: 0.1rem;
    }
}


/* v0.1.42 — real-device mobile width/button normalization */
@media (max-width: 781px) {

    /*
     * Mobile CTA convention:
     * All section CTA buttons use full available width when shown on mobile,
     * but retain normal compact button height.
     */
    .shck-home-hero__actions {
        display: grid;
        grid-template-columns: 1fr;
        gap: 0.65rem;
        width: 100%;
    }

    .shck-home-hero__actions .shck-button,
    .shck-facility-overview__button,
    .shck-final-cta__button {
        width: 100% !important;
        max-width: none !important;
        min-height: 0 !important;
        height: auto !important;
        padding: 0.78rem 1rem !important;
        line-height: 1.15 !important;
        text-align: center;
        justify-content: center;
        align-items: center;
        white-space: nowrap;
        box-sizing: border-box;
    }

    .shck-facility-overview__button {
        align-self: stretch;
    }

    /*
     * Guard against intrinsic-width children making mobile sections wider
     * than the actual viewport on physical devices.
     */
    .shck-day-rhythm,
    .shck-day-rhythm__intro,
    .shck-day-rhythm__timeline,
    .shck-day-step,
    .shck-day-step__content,
    .shck-faq-overview,
    .shck-faq-overview__inner,
    .shck-faq-overview__intro,
    .shck-faq-overview__accordion,
    .shck-faq-item,
    .shck-faq-item__question,
    .shck-faq-item__answer {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    /* A Day at Sloughhouse: force each moment to fit the mobile canvas. */
    .shck-day-rhythm {
        overflow: hidden;
    }

    .shck-day-rhythm__timeline {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
        overflow: hidden;
    }

    .shck-day-step {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        column-gap: 0.9rem;
        overflow: hidden;
    }

    .shck-day-step__content,
    .shck-day-step__title,
    .shck-day-step__text,
    .shck-day-rhythm__headline,
    .shck-day-rhythm__copy {
        min-width: 0;
        max-width: 100%;
        overflow-wrap: anywhere;
        word-break: normal;
        white-space: normal;
    }

    /*
     * FAQ: keep question/answer text within the screen and reserve
     * only the necessary width for the chevron.
     */
    .shck-faq-overview {
        overflow: hidden;
    }

    .shck-faq-item__question {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        column-gap: 0.8rem;
        align-items: center;
    }

    .shck-faq-item__question-text,
    .shck-faq-item__answer,
    .shck-faq-item__answer-inner,
    .shck-faq-overview__headline,
    .shck-faq-overview__copy {
        min-width: 0;
        max-width: 100%;
        overflow-wrap: anywhere;
        word-break: normal;
        white-space: normal;
    }

    .shck-faq-item__symbol {
        margin-left: 0;
        margin-right: 0.1rem;
    }
}


/* v0.1.43 — booking modal mobile cleanup + FAQ alignment/responsiveness */

/* FAQ answers align with the question text on all breakpoints. */
.shck-faq-item__answer,
.shck-faq-item__answer-inner {
    padding-left: clamp(0.9rem, 2.2vw, 1.5rem);
    padding-right: clamp(1.15rem, 3vw, 2rem);
    margin-left: 0;
    max-width: 100%;
    box-sizing: border-box;
}

/* Keep FAQ layout fluid and fully visible through tablet widths. */
@media (min-width: 782px) and (max-width: 1180px) {
    .shck-faq-overview__inner {
        grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
        gap: clamp(1.5rem, 3vw, 3rem);
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .shck-faq-overview__intro,
    .shck-faq-overview__accordion,
    .shck-faq-item,
    .shck-faq-item__question,
    .shck-faq-item__answer,
    .shck-faq-item__answer-inner,
    .shck-faq-item__question-text {
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    .shck-faq-overview__headline,
    .shck-faq-overview__copy,
    .shck-faq-item__question-text,
    .shck-faq-item__answer,
    .shck-faq-item__answer-inner {
        white-space: normal;
        overflow-wrap: anywhere;
    }
}

/* Mobile booking modal must stay fully inside the viewport. */
@media (max-width: 781px) {
    .shck-booking-modal,
    .shck-booking-modal__dialog,
    .shck-booking-modal__content {
        box-sizing: border-box;
    }

    .shck-booking-modal {
        padding: 0.75rem !important;
        align-items: center;
        justify-content: center;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .shck-booking-modal__dialog {
        position: relative;
        width: min(100%, 28rem) !important;
        max-width: calc(100vw - 1.5rem) !important;
        max-height: calc(100dvh - 1.5rem) !important;
        margin: auto !important;
        overflow-y: auto;
        border-radius: var(--shck-radius-card);
    }

    .shck-booking-modal__content {
        padding: 1.25rem 1rem 1rem !important;
    }

    .shck-booking-modal__close {
        position: sticky;
        top: 0.35rem;
        float: right;
        z-index: 3;
        width: 2.25rem !important;
        height: 2.25rem !important;
        min-width: 2.25rem !important;
        min-height: 2.25rem !important;
        padding: 0 !important;
        margin: 0 0 0.25rem 0.5rem;
        line-height: 1;
    }

    .shck-booking-modal__title {
        font-size: clamp(1.55rem, 7vw, 2rem) !important;
        line-height: 1.05 !important;
        margin-bottom: 0.55rem !important;
    }

    .shck-booking-modal__copy {
        font-size: 0.95rem !important;
        line-height: 1.45 !important;
        margin-bottom: 0.9rem !important;
    }

    .shck-booking-modal__actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 0.6rem !important;
        width: 100%;
    }

    .shck-booking-modal__actions .shck-button,
    .shck-booking-modal__actions a,
    .shck-booking-modal__actions button {
        width: 100% !important;
        max-width: none !important;
        min-height: 0 !important;
        height: auto !important;
        padding: 0.72rem 0.9rem !important;
        font-size: 0.82rem !important;
        line-height: 1.15 !important;
        white-space: normal !important;
        text-align: center;
        box-sizing: border-box;
    }

    .shck-faq-item__answer,
    .shck-faq-item__answer-inner {
        padding-left: 1rem;
        padding-right: 1.15rem;
    }
}


/* v0.1.44 — tablet A Day at Sloughhouse fluid-width fix */
@media (min-width: 782px) and (max-width: 1180px) {
    .shck-day-rhythm {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        overflow: hidden;
        box-sizing: border-box;
    }

    .shck-day-rhythm__intro,
    .shck-day-rhythm__timeline {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    /*
     * Allow the four moments to shrink cleanly instead of preserving
     * intrinsic widths that can push the last item beyond the viewport.
     */
    .shck-day-rhythm__timeline {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 0;
    }

    .shck-day-step {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        column-gap: clamp(0.55rem, 1.1vw, 0.9rem);
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
        overflow: hidden;
    }

    .shck-day-step__content,
    .shck-day-step__title,
    .shck-day-step__text {
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
        white-space: normal;
        overflow-wrap: anywhere;
        word-break: normal;
    }

    .shck-day-step__title {
        line-height: 1.15;
    }

    .shck-day-step__text {
        line-height: 1.35;
    }

    /*
     * Keep divider lines inside each grid cell so they cannot contribute
     * to page width at intermediate tablet sizes.
     */
    .shck-day-step + .shck-day-step::before {
        left: 0;
        right: auto;
    }
}


/* v0.1.45 — compact mobile booking modal buttons + fluid FAQ transition widths */

/* FAQ must remain fully inside the viewport before the mobile breakpoint too. */
@media (min-width: 782px) and (max-width: 1380px) {
    .shck-faq-overview {
        overflow: hidden;
    }

    .shck-faq-overview__inner {
        width: min(100%, 92rem);
        max-width: 100%;
        min-width: 0;
        grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
        gap: clamp(1.25rem, 2.5vw, 2.75rem);
        padding-left: clamp(1.25rem, 3vw, 3rem);
        padding-right: clamp(1.25rem, 3vw, 3rem);
        box-sizing: border-box;
    }

    .shck-faq-overview__intro,
    .shck-faq-overview__accordion,
    .shck-faq-item,
    .shck-faq-item__question,
    .shck-faq-item__question-text,
    .shck-faq-item__answer,
    .shck-faq-item__answer-inner {
        width: auto;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
    }

    .shck-faq-overview__headline,
    .shck-faq-overview__copy,
    .shck-faq-item__question-text,
    .shck-faq-item__answer,
    .shck-faq-item__answer-inner {
        white-space: normal !important;
        overflow-wrap: anywhere;
        word-break: normal;
    }
}

/* Mobile booking modal: compact buttons, no horizontal spill, no scrolling needed. */
@media (max-width: 781px) {
    .shck-booking-modal {
        padding: 0.5rem !important;
        overflow: hidden !important;
    }

    .shck-booking-modal__dialog {
        width: calc(100vw - 1rem) !important;
        max-width: 24rem !important;
        max-height: calc(100dvh - 1rem) !important;
        overflow: hidden !important;
        margin: auto !important;
    }

    .shck-booking-modal__content {
        padding: 0.9rem 0.85rem 0.85rem !important;
        overflow: hidden !important;
    }

    .shck-booking-modal__close {
        position: absolute !important;
        top: 0.5rem !important;
        right: 0.5rem !important;
        float: none !important;
        width: 1.9rem !important;
        height: 1.9rem !important;
        min-width: 1.9rem !important;
        min-height: 1.9rem !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .shck-booking-modal__title {
        padding-right: 2.4rem;
        font-size: clamp(1.35rem, 6vw, 1.75rem) !important;
        margin: 0 0 0.4rem !important;
        line-height: 1.05 !important;
    }

    .shck-booking-modal__copy {
        font-size: 0.88rem !important;
        line-height: 1.35 !important;
        margin: 0 0 0.7rem !important;
    }

    .shck-booking-modal__actions {
        display: flex !important;
        flex-direction: column !important;
        gap: 0.45rem !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    .shck-booking-modal__actions .shck-button,
    .shck-booking-modal__actions a,
    .shck-booking-modal__actions button {
        display: flex !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        height: 2.45rem !important;
        padding: 0.5rem 0.7rem !important;
        margin: 0 !important;
        font-size: 0.74rem !important;
        line-height: 1.05 !important;
        letter-spacing: 0.05em !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis;
        box-sizing: border-box !important;
        justify-content: center !important;
        align-items: center !important;
        flex: 0 0 auto !important;
    }
}


/* v0.1.46 — correct modal targets + smooth FAQ scaling */

/* 
 * FAQ: keep one consistent structure while the viewport shrinks.
 * The outer FAQ section already supplies responsive page padding, so the
 * inner grid must not add a second layer of horizontal padding.
 */
.shck-faq-overview {
    --shck-faq-row-inset: clamp(0.8rem, 1.6vw, 1.65rem);
}

.shck-faq-overview__inner,
.shck-faq-overview__intro,
.shck-faq-overview__accordion,
.shck-faq-item,
.shck-faq-item__question,
.shck-faq-item__question-text,
.shck-faq-item__answer,
.shck-faq-item__answer-inner {
    min-width: 0;
    box-sizing: border-box;
}

.shck-faq-item::before,
.shck-faq-item:last-child::after {
    left: var(--shck-faq-row-inset) !important;
    right: var(--shck-faq-row-inset) !important;
}

.shck-faq-item__question {
    grid-template-columns: minmax(0, 1fr) 0.9rem !important;
    column-gap: clamp(0.65rem, 1.2vw, 1rem) !important;
    padding-left: var(--shck-faq-row-inset) !important;
    padding-right: var(--shck-faq-row-inset) !important;
}

.shck-faq-item__symbol {
    justify-self: end !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.shck-faq-item__answer,
.shck-faq-item__answer-inner {
    padding-left: var(--shck-faq-row-inset) !important;
    padding-right: var(--shck-faq-row-inset) !important;
}

/* Smooth desktop-to-tablet behavior instead of waiting for a hard snap. */
@media (min-width: 782px) and (max-width: 1380px) {
    .shck-faq-overview__inner {
        width: 100% !important;
        max-width: 92rem !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        grid-template-columns:
            minmax(15rem, clamp(15rem, 32vw, 30rem))
            minmax(0, 1fr) !important;
        gap: clamp(1.25rem, 3.5vw, 4.25rem) !important;
    }

    .shck-faq-overview__headline {
        max-width: 100%;
        font-size: clamp(2.05rem, 3.4vw, 3.35rem);
    }

    .shck-faq-overview__copy,
    .shck-faq-item__question-text,
    .shck-faq-item__answer,
    .shck-faq-item__answer-inner {
        max-width: 100%;
        white-space: normal !important;
        overflow-wrap: break-word;
        word-break: normal;
    }
}

/*
 * MOBILE BOOKING MODAL
 * The markup uses __options and __option, so size those actual elements.
 * The cards are intentionally compact; their buttons are normal-height.
 */
@media (max-width: 781px) {
    .shck-booking-modal {
        padding: 0.5rem !important;
        overflow: hidden !important;
    }

    .shck-booking-modal__dialog {
        width: min(23rem, calc(100vw - 1rem)) !important;
        max-width: calc(100vw - 1rem) !important;
        max-height: calc(100dvh - 1rem) !important;
        padding: 1rem 0.85rem 0.85rem !important;
        overflow: hidden !important;
        margin: auto !important;
    }

    .shck-booking-modal__close {
        top: 0.4rem !important;
        right: 0.4rem !important;
        width: 1.85rem !important;
        height: 1.85rem !important;
        min-width: 1.85rem !important;
        min-height: 1.85rem !important;
        font-size: 1.35rem !important;
    }

    .shck-booking-modal__eyebrow {
        margin-bottom: 0.2rem !important;
        font-size: 0.62rem !important;
    }

    .shck-booking-modal__title {
        max-width: calc(100% - 2rem) !important;
        margin: 0 !important;
        font-size: clamp(1.35rem, 6vw, 1.7rem) !important;
        line-height: 1.05 !important;
    }

    .shck-booking-modal__description {
        max-width: 100% !important;
        margin: 0.45rem 0 0 !important;
        font-size: 0.84rem !important;
        line-height: 1.35 !important;
    }

    .shck-booking-modal__options {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 0.45rem !important;
        width: 100% !important;
        margin-top: 0.7rem !important;
    }

    .shck-booking-modal__option {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 0.22rem !important;
        width: 100% !important;
        min-width: 0 !important;
        padding: 0.6rem 0.65rem !important;
        box-sizing: border-box !important;
    }

    .shck-booking-modal__option h3 {
        margin: 0 !important;
        font-size: 1rem !important;
        line-height: 1.1 !important;
    }

    .shck-booking-modal__option p {
        margin: 0.15rem 0 0.4rem !important;
        font-size: 0.76rem !important;
        line-height: 1.25 !important;
    }

    .shck-booking-modal__option .shck-button {
        display: inline-flex !important;
        width: auto !important;
        max-width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0.55rem 0.75rem !important;
        justify-self: start !important;
        align-self: start !important;
        flex: none !important;
        font-size: 0.72rem !important;
        line-height: 1.1 !important;
        letter-spacing: 0.045em !important;
        white-space: normal !important;
        text-align: center !important;
        box-sizing: border-box !important;
    }
}


/* v0.1.47 — authoritative FAQ responsive layout rebuild */

/*
 * IMPORTANT: The FAQ section itself previously used width:100% plus horizontal
 * padding without its own border-box sizing. At intermediate widths that could
 * make the section physically wider than the viewport. Keep the section itself
 * border-box, not only its descendants.
 */
.shck-faq-overview {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow-x: clip !important;
    --shck-faq-row-inset: clamp(0.85rem, 1.35vw, 1.55rem);
}

.shck-faq-overview__inner {
    display: grid !important;
    grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr) !important;
    gap: clamp(1.4rem, 4vw, 6.5rem) !important;
    width: 100% !important;
    max-width: 92rem !important;
    min-width: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    box-sizing: border-box !important;
}

.shck-faq-overview__intro,
.shck-faq-overview__accordion,
.shck-faq-item,
.shck-faq-item__question,
.shck-faq-item__question-text,
.shck-faq-item__answer,
.shck-faq-item__answer-inner {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.shck-faq-overview__accordion {
    width: 100% !important;
    overflow: visible !important;
    border-top: 0 !important;
}

.shck-faq-item {
    position: relative;
    width: 100% !important;
    border: 0 !important;
}

/* One divider system only; the inset scales continuously with viewport width. */
.shck-faq-item::before,
.shck-faq-item:last-child::after {
    content: '' !important;
    position: absolute !important;
    left: var(--shck-faq-row-inset) !important;
    right: var(--shck-faq-row-inset) !important;
    width: auto !important;
    height: 1px !important;
    background: var(--shck-line) !important;
}

.shck-faq-item::before {
    top: 0 !important;
}

.shck-faq-item:last-child::after {
    bottom: 0 !important;
}

/*
 * The question always remains a two-column row:
 * flexible text + a dedicated chevron column.
 * Nothing changes structure before the mobile breakpoint.
 */
.shck-faq-item__question {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 0.9rem !important;
    column-gap: clamp(0.65rem, 1.1vw, 1rem) !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding-left: var(--shck-faq-row-inset) !important;
    padding-right: var(--shck-faq-row-inset) !important;
    box-sizing: border-box !important;
}

.shck-faq-item__question-text {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
}

.shck-faq-item__symbol {
    grid-column: 2 !important;
    justify-self: end !important;
    align-self: center !important;
    width: 0.82rem !important;
    height: 0.82rem !important;
    margin: 0 !important;
    flex: none !important;
}

/* Answer begins on the same left edge as the question text. */
.shck-faq-item__answer,
.shck-faq-item__answer-inner {
    width: 100% !important;
    margin-left: 0 !important;
    padding-left: var(--shck-faq-row-inset) !important;
    padding-right: var(--shck-faq-row-inset) !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
}

.shck-faq-item__answer-inner {
    padding-bottom: 1.2rem !important;
}

/*
 * Desktop → tablet is intentionally NOT a separate layout.
 * The same two-column grid simply contracts fluidly all the way to 782px.
 */
@media (min-width: 782px) {
    .shck-faq-overview__headline {
        max-width: 100% !important;
        font-size: clamp(2.05rem, 3.15vw, 3.8rem) !important;
    }

    .shck-faq-overview__copy {
        max-width: min(100%, 26rem) !important;
    }
}

/* Only the true mobile breakpoint changes the FAQ structure. */
@media (max-width: 781px) {
    .shck-faq-overview {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
        --shck-faq-row-inset: 1rem;
    }

    .shck-faq-overview__inner {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    .shck-faq-overview__intro {
        width: 100% !important;
        margin-bottom: 1.65rem !important;
    }

    .shck-faq-item__question {
        grid-template-columns: minmax(0, 1fr) 0.9rem !important;
    }
}


/* v0.1.48 — FAQ desktop/tablet layout: flex-based clean override
 *
 * Previous grid-based revisions were still inheriting several older FAQ
 * breakpoint rules. This override intentionally removes grid sizing from the
 * desktop/tablet FAQ and lets the two sides flex continuously until mobile.
 */
@media (min-width: 782px) {
    .wp-block-post-content > .shck-faq-overview,
    .shck-faq-overview {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        box-sizing: border-box !important;
    }

    .shck-faq-overview__inner {
        display: flex !important;
        flex-direction: row !important;
        align-items: flex-start !important;
        width: 100% !important;
        max-width: 92rem !important;
        min-width: 0 !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        gap: clamp(1.5rem, 4vw, 6rem) !important;
        box-sizing: border-box !important;
    }

    .shck-faq-overview__intro {
        flex: 0 1 clamp(17rem, 34vw, 31rem) !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: clamp(17rem, 34vw, 31rem) !important;
        box-sizing: border-box !important;
    }

    .shck-faq-overview__accordion {
        flex: 1 1 0 !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
        box-sizing: border-box !important;
        overflow: visible !important;
    }

    .shck-faq-item,
    .shck-faq-item__question,
    .shck-faq-item__question-text,
    .shck-faq-item__answer,
    .shck-faq-item__answer-inner {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /*
     * Question row never changes structure while desktop/tablet is active:
     * text consumes the available width; chevron owns the final 14px.
     */
    .shck-faq-item__question {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 0.875rem !important;
        column-gap: clamp(0.65rem, 1vw, 0.95rem) !important;
        padding-left: clamp(0.7rem, 1.15vw, 1.35rem) !important;
        padding-right: clamp(0.7rem, 1.15vw, 1.35rem) !important;
    }

    .shck-faq-item__question-text {
        grid-column: 1 !important;
        overflow: visible !important;
        white-space: normal !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
    }

    .shck-faq-item__symbol {
        grid-column: 2 !important;
        justify-self: end !important;
        align-self: center !important;
        margin: 0 !important;
        width: 0.8rem !important;
        height: 0.8rem !important;
    }

    .shck-faq-item::before,
    .shck-faq-item:last-child::after {
        left: clamp(0.7rem, 1.15vw, 1.35rem) !important;
        right: clamp(0.7rem, 1.15vw, 1.35rem) !important;
    }

    .shck-faq-item__answer,
    .shck-faq-item__answer-inner {
        margin-left: 0 !important;
        padding-left: clamp(0.7rem, 1.15vw, 1.35rem) !important;
        padding-right: clamp(0.7rem, 1.15vw, 1.35rem) !important;
        white-space: normal !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
    }

    .shck-faq-overview__headline {
        max-width: 100% !important;
        font-size: clamp(2rem, 3.2vw, 3.8rem) !important;
    }

    .shck-faq-overview__copy {
        max-width: 100% !important;
    }
}

/*
 * Give the FAQ a little more room before the true mobile layout.
 * At this range it remains two-column, but the intro deliberately gives
 * more space to the accordion instead of allowing the right side to clip.
 */
@media (min-width: 782px) and (max-width: 1120px) {
    .shck-faq-overview__inner {
        gap: clamp(1.15rem, 2.5vw, 2rem) !important;
    }

    .shck-faq-overview__intro {
        flex-basis: clamp(14.5rem, 30vw, 20rem) !important;
        max-width: clamp(14.5rem, 30vw, 20rem) !important;
    }

    .shck-faq-overview__headline {
        font-size: clamp(1.9rem, 3.3vw, 2.7rem) !important;
    }
}

/* Mobile remains the existing stacked layout. */
@media (max-width: 781px) {
    .shck-faq-overview__inner {
        display: block !important;
    }
}


/* v0.1.49 — visually separate A Day at Sloughhouse from Our Facility */
.shck-day-rhythm {
    background: #f4f6f1;
}

/* Preserve intentional section transitions with no accidental gap. */
.shck-facility-overview + .shck-day-rhythm,
.shck-day-rhythm + .shck-faq-overview {
    margin-block-start: 0 !important;
}


/* v0.1.50 — FAQ background reset to white */
.shck-faq-overview {
    background: #ffffff !important;
}


/* v0.1.51 — premium headline line-height normalization */
/*
 * Multi-line serif headlines need deliberate vertical breathing room.
 * These values keep the typography compact, but prevent ascenders/descenders
 * from visually colliding when a headline wraps to two or more lines.
 */
.shck-home-hero__headline {
    line-height: 1.08 !important;
}

.shck-services-overview__headline,
.shck-facility-overview__headline,
.shck-day-rhythm__headline,
.shck-faq-overview__headline,
.shck-final-cta__headline {
    line-height: 1.12 !important;
}

/* Slightly more room on smaller screens where headlines wrap more often. */
@media (max-width: 1180px) {
    .shck-home-hero__headline {
        line-height: 1.10 !important;
    }

    .shck-services-overview__headline,
    .shck-facility-overview__headline,
    .shck-day-rhythm__headline,
    .shck-faq-overview__headline,
    .shck-final-cta__headline {
        line-height: 1.15 !important;
    }
}

@media (max-width: 781px) {
    .shck-home-hero__headline {
        line-height: 1.12 !important;
    }

    .shck-services-overview__headline,
    .shck-facility-overview__headline,
    .shck-day-rhythm__headline,
    .shck-faq-overview__headline,
    .shck-final-cta__headline {
        line-height: 1.16 !important;
    }
}


/* v0.1.54 — restrained premium homepage polish */

/*
 * A Day at Sloughhouse:
 * lock the title row so each description begins on the same horizontal line.
 * The icon no longer dictates the vertical position of the text rows.
 */
@media (min-width: 782px) {
    .shck-day-step {
        grid-template-columns: 3.25rem minmax(0, 1fr);
        grid-template-rows: 1.45rem auto;
        align-content: start;
    }

    .shck-day-step__icon {
        grid-column: 1;
        grid-row: 1 / 3;
        align-self: start;
        width: 3rem;
        height: 3rem;
    }

    .shck-day-step__title {
        grid-column: 2;
        grid-row: 1;
        align-self: start;
        line-height: 1.2;
    }

    .shck-day-step__text {
        grid-column: 2;
        grid-row: 2;
        align-self: start;
        margin-top: 0.28rem;
    }

    /* Optical normalization only — preserve each supplied SVG's proportions. */
    .shck-day-step__icon--1 svg { transform: scale(0.98); }
    .shck-day-step__icon--2 svg { transform: scale(1.10); }
    .shck-day-step__icon--3 svg { transform: scale(0.96); }
    .shck-day-step__icon--4 svg { transform: scale(0.98); }
}

/*
 * Editorial rhythm:
 * consistent relationships between eyebrow, headline, body copy, and content.
 * Section heights/layouts remain intentionally different.
 */
.shck-services-overview__eyebrow,
.shck-facility-overview__eyebrow,
.shck-day-rhythm__eyebrow,
.shck-faq-overview__eyebrow {
    margin-bottom: 0.42rem;
}

.shck-facility-overview__copy,
.shck-day-rhythm__copy,
.shck-faq-overview__copy {
    margin-top: 0.72rem;
}

.shck-services-overview__grid,
.shck-day-rhythm__timeline {
    margin-top: 0.15rem;
}

/* Keep body typography calm and consistent without flattening section hierarchy. */
.shck-services-overview__copy,
.shck-facility-overview__copy,
.shck-day-rhythm__copy,
.shck-faq-overview__copy {
    line-height: 1.52;
}

/*
 * Button consistency:
 * same compact height, radius, and typographic treatment across homepage CTAs.
 * Color treatment remains section-specific.
 */
.shck-home-hero__actions .shck-button,
.shck-facility-overview__button,
.shck-final-cta__button {
    min-height: 3rem;
    padding: 0.78rem 1.35rem;
    border-radius: var(--shck-radius-button);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1;
}

/* Keep separators visually consistent and understated. */
.shck-day-step + .shck-day-step,
.shck-trust-bar__item + .shck-trust-bar__item::before {
    border-color: rgba(23, 79, 59, 0.14);
}

@media (max-width: 1024px) and (min-width: 782px) {
    .shck-day-step {
        grid-template-columns: 2.8rem minmax(0, 1fr);
        grid-template-rows: 1.45rem auto;
    }

    .shck-day-step__icon {
        width: 2.55rem;
        height: 2.7rem;
    }
}

@media (max-width: 781px) {
    /*
     * Mobile retains the intentionally stacked layout.
     * Give the same clear title-to-body relationship without forcing equal-height rows.
     */
    .shck-day-step {
        grid-template-rows: auto auto;
    }

    .shck-day-step__icon {
        grid-row: 1 / 3;
    }

    .shck-day-step__text {
        margin-top: 0.3rem;
    }

    .shck-home-hero__actions .shck-button,
    .shck-facility-overview__button,
    .shck-final-cta__button {
        min-height: 0 !important;
        height: auto !important;
        padding: 0.78rem 1rem !important;
        line-height: 1.15 !important;
    }
}


/* v0.1.55 — Dog Services interior page foundation */

/* Interior hero: related to the homepage, but intentionally more editorial/compact. */
.shck-interior-hero {
    width: 100%;
    max-width: 100%;
    background: #f4f6f1;
    color: var(--shck-green);
    box-sizing: border-box;
    overflow: clip;
}

.shck-interior-hero__inner {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    min-height: clamp(27rem, 44vw, 39rem);
}

.shck-interior-hero__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(3.25rem, 6vw, 6.5rem) clamp(1.5rem, 5vw, 6rem);
    padding-left: max(clamp(1.5rem, 5vw, 6rem), calc((100vw - 92rem) / 2 + 1.5rem));
}

.shck-interior-hero__eyebrow {
    margin-bottom: 0.6rem;
}

.shck-interior-hero__headline {
    margin: 0;
    max-width: 11ch;
    font-family: var(--shck-serif);
    font-size: clamp(2.9rem, 5vw, 5.25rem);
    font-weight: 400;
    line-height: 1.08;
    letter-spacing: -0.035em;
}

.shck-interior-hero__copy {
    max-width: 34rem;
    margin-top: 1rem;
    font-size: clamp(1rem, 1.2vw, 1.15rem);
    line-height: 1.58;
    color: var(--shck-text);
}

.shck-interior-hero__copy p {
    margin: 0;
}

.shck-interior-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    margin-top: 1.5rem;
}

.shck-interior-hero__media {
    position: relative;
    min-width: 0;
    overflow: hidden;
    background: #e9ece5;
}

.shck-interior-hero__image,
.shck-interior-hero__placeholder {
    width: 100%;
    height: 100%;
    min-height: 100%;
    display: block;
}

.shck-interior-hero__image {
    object-fit: cover;
}

.shck-interior-hero__media::after {
    content: '';
    position: absolute;
    inset: 0 auto 0 0;
    width: 12%;
    pointer-events: none;
    background: linear-gradient(90deg, #f4f6f1 0%, rgba(244,246,241,0) 100%);
}

/* Boarding feature area */
.shck-dog-boarding {
    scroll-margin-top: 2rem;
    background: #fff;
    color: var(--shck-text);
    overflow: clip;
}

.shck-dog-boarding__feature {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    min-height: clamp(28rem, 43vw, 38rem);
}

.shck-dog-boarding__media {
    position: relative;
    min-width: 0;
    overflow: hidden;
    background: #f1f0eb;
}

.shck-dog-boarding__image,
.shck-dog-boarding__placeholder {
    width: 100%;
    height: 100%;
    min-height: 100%;
    display: block;
}

.shck-dog-boarding__image {
    object-fit: cover;
}

.shck-dog-boarding__media::after {
    content: '';
    position: absolute;
    inset: 0 0 0 auto;
    width: 11%;
    pointer-events: none;
    background: linear-gradient(270deg, #fff 0%, rgba(255,255,255,0) 100%);
}

.shck-dog-boarding__intro {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(3rem, 5.5vw, 6rem) clamp(1.5rem, 5vw, 6rem);
    padding-right: max(clamp(1.5rem, 5vw, 6rem), calc((100vw - 92rem) / 2 + 1.5rem));
}

.shck-dog-boarding__eyebrow {
    margin-bottom: 0.55rem;
}

.shck-dog-boarding__headline {
    margin: 0;
    max-width: 11ch;
    font-family: var(--shck-serif);
    font-size: clamp(2.55rem, 4vw, 4.4rem);
    font-weight: 400;
    line-height: 1.1;
    letter-spacing: -0.03em;
    color: var(--shck-green);
}

.shck-dog-boarding__copy {
    max-width: 35rem;
    margin-top: 0.9rem;
    line-height: 1.58;
}

.shck-dog-boarding__copy p {
    margin: 0;
}

.shck-dog-boarding__button {
    align-self: flex-start;
    margin-top: 1.35rem;
}

/* Boarding data/pricing */
.shck-dog-boarding__pricing {
    background: #f4f6f1;
    padding: clamp(3rem, 5vw, 5rem) max(clamp(1.25rem, 5vw, 5rem), calc((100vw - 92rem) / 2 + 1.5rem));
}

.shck-dog-boarding__pricing-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 2rem;
    max-width: 92rem;
    margin: 0 auto 1.15rem;
}

.shck-dog-boarding__pricing-head h3 {
    margin: 0;
    font-family: var(--shck-serif);
    font-size: clamp(1.8rem, 2.8vw, 2.75rem);
    font-weight: 400;
    line-height: 1.12;
    color: var(--shck-green);
}

.shck-dog-boarding__pricing-head p {
    margin: 0;
    max-width: 28rem;
    text-align: right;
    font-size: 0.82rem;
    line-height: 1.45;
    color: var(--shck-muted);
}

.shck-dog-boarding__rows {
    max-width: 92rem;
    margin: 0 auto;
    border-top: 1px solid rgba(23,79,59,0.18);
}

.shck-dog-boarding__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: clamp(2rem, 5vw, 6rem);
    padding: 1.35rem 0;
    border-bottom: 1px solid rgba(23,79,59,0.18);
}

.shck-dog-boarding__row-main {
    min-width: 0;
}

.shck-dog-boarding__row-title {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.45rem 0.8rem;
}

.shck-dog-boarding__row-title h4 {
    margin: 0;
    font-size: 1.04rem;
    font-weight: 700;
    color: var(--shck-green);
}

.shck-dog-boarding__row-title span {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--shck-muted);
}

.shck-dog-boarding__row-main > p {
    margin: 0.35rem 0 0;
    max-width: 48rem;
    line-height: 1.48;
    color: var(--shck-muted);
}

.shck-dog-boarding__sizes {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 1rem;
    margin-top: 0.65rem;
    font-size: 0.78rem;
    color: var(--shck-muted);
}

.shck-dog-boarding__sizes span + span {
    position: relative;
    padding-left: 1rem;
}

.shck-dog-boarding__sizes span + span::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: currentColor;
    transform: translateY(-50%);
    opacity: 0.55;
}

.shck-dog-boarding__details {
    max-width: 48rem;
    margin-top: 0.7rem;
    font-size: 0.86rem;
    line-height: 1.48;
}

.shck-dog-boarding__details p {
    margin: 0.35rem 0 0;
}

.shck-dog-boarding__row-price {
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
    white-space: nowrap;
    color: var(--shck-green);
}

.shck-dog-boarding__row-price strong {
    font-family: var(--shck-serif);
    font-size: 1.8rem;
    font-weight: 400;
    line-height: 1;
}

.shck-dog-boarding__row-price span {
    font-size: 0.72rem;
    color: var(--shck-muted);
}

.shck-service-price__prefix {
    display: block;
    margin-right: 0.2rem;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    font-size: 0.62rem !important;
    font-weight: 700;
}

.shck-dog-boarding__additional {
    grid-column: 1 / -1;
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(23,79,59,0.10);
}

.shck-dog-boarding__additional-row {
    display: flex;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 0.28rem 0;
    font-size: 0.79rem;
}

.shck-dog-boarding__additional-row span {
    display: flex;
    flex-direction: column;
}

.shck-dog-boarding__additional-row small {
    margin-top: 0.1rem;
    color: var(--shck-muted);
}

.shck-dog-boarding__additional-row strong {
    white-space: nowrap;
    color: var(--shck-green);
}

.shck-dog-boarding__additional-row em {
    font-style: normal;
    font-weight: 400;
    color: var(--shck-muted);
}

.shck-dog-boarding__empty {
    max-width: 92rem;
    margin: 0 auto;
    padding: 1rem 0;
    color: var(--shck-muted);
}

@media (max-width: 1024px) {
    .shck-interior-hero__inner,
    .shck-dog-boarding__feature {
        grid-template-columns: 1fr 1fr;
    }

    .shck-interior-hero__headline {
        font-size: clamp(2.5rem, 5vw, 3.8rem);
    }

    .shck-dog-boarding__headline {
        font-size: clamp(2.3rem, 4.5vw, 3.35rem);
    }
}

@media (max-width: 781px) {
    .shck-interior-hero__inner,
    .shck-dog-boarding__feature {
        display: flex;
        flex-direction: column;
        min-height: 0;
    }

    .shck-interior-hero__content {
        order: 1;
        padding: 2.75rem 1rem 2.25rem;
    }

    .shck-interior-hero__media {
        order: 2;
        height: 18rem;
    }

    .shck-interior-hero__media::after {
        inset: 0 0 auto 0;
        width: auto;
        height: 18%;
        background: linear-gradient(180deg, #f4f6f1 0%, rgba(244,246,241,0) 100%);
    }

    .shck-interior-hero__headline,
    .shck-dog-boarding__headline {
        max-width: 100%;
        line-height: 1.12;
    }

    .shck-interior-hero__actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .shck-interior-hero__actions .shck-button,
    .shck-dog-boarding__button {
        width: 100% !important;
        max-width: none !important;
        min-height: 0 !important;
        height: auto !important;
        padding: 0.78rem 1rem !important;
        text-align: center;
        justify-content: center;
    }

    .shck-dog-boarding__media {
        order: 1;
        height: 19rem;
    }

    .shck-dog-boarding__intro {
        order: 2;
        padding: 2.6rem 1rem 2.8rem;
    }

    .shck-dog-boarding__media::after {
        inset: auto 0 0 0;
        width: auto;
        height: 18%;
        background: linear-gradient(0deg, #fff 0%, rgba(255,255,255,0) 100%);
    }

    .shck-dog-boarding__pricing {
        padding: 2.75rem 1rem;
    }

    .shck-dog-boarding__pricing-head {
        display: block;
        margin-bottom: 1rem;
    }

    .shck-dog-boarding__pricing-head p {
        margin-top: 0.45rem;
        text-align: left;
    }

    .shck-dog-boarding__row {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.75rem;
        padding: 1.2rem 0;
    }

    .shck-dog-boarding__row-price {
        justify-content: flex-start;
    }

    .shck-dog-boarding__additional-row {
        gap: 1rem;
    }
}
