
/* ==========================================================================
   Homepage "Our Services" rail (ported from the Dr. Falcone homepage, gilded-child).
   Append to marli-child/style.css. Colors come from the theme's --pColor / --sColor / --aColor.
   ========================================================================== */
.svc {
    --svc-ink: color-mix(in srgb, var(--sColor) 45%, #000);
    --svc-band: linear-gradient(180deg, color-mix(in srgb, var(--sColor) 82%, #000), color-mix(in srgb, var(--sColor) 62%, #000));
    --svc-accent: var(--aColor);
    --svc-accent-soft: color-mix(in srgb, var(--aColor) 60%, #fff);
    --svc-display: 'Fraunces', Georgia, 'Times New Roman', serif;
    --svc-util: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --svc-ease: cubic-bezier(0.22, 0.61, 0.36, 1);
    position: relative;
    isolation: isolate;
    padding: clamp(40px, 5vw, 64px) 0 clamp(36px, 5vw, 64px) clamp(16px, 4vw, 56px);
    font-family: var(--svc-util);
    color: #fff;
    -webkit-font-smoothing: antialiased;
}
.svc::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: -1;
    width: 100%;
    height: 60%;
    background: var(--svc-band);
}
.svc * { box-sizing: border-box; }

.svc__head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    max-width: 1280px;
}
body.mds-body .svc .svc__eyebrow {
    margin: 0 0 12px;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.32em;
    text-transform: uppercase;
    color: var(--svc-accent);
}
body.mds-body .svc .svc__title {
    margin: 0;
    padding: 0 !important;
    font-family: var(--svc-display);
    font-style: italic;
    font-weight: 400;
    font-size: clamp(36px, 5vw, 60px);
    line-height: 1;
    letter-spacing: 0;
    color: var(--sColor);
}
body.mds-body .svc .svc__hint {
    margin: 8px 0 0;
    font-size: 13px;
    letter-spacing: 0.02em;
    color: color-mix(in srgb, var(--sColor) 75%, #000);
}

.svc__nav {
    position: relative;
    z-index: 1;
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    padding-right: clamp(16px, 4vw, 56px);
}
.svc__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border: 1px solid color-mix(in srgb, #fff 45%, transparent);
    border-radius: 50%;
    background: transparent;
    color: #fff;
    font-size: 17px;
    line-height: 1;
    cursor: pointer;
    transition: background .25s var(--svc-ease), border-color .25s var(--svc-ease), color .25s var(--svc-ease),
        opacity .25s var(--svc-ease), transform .25s var(--svc-ease);
}
.svc__arrow:hover:not(:disabled) {
    background: var(--svc-accent);
    border-color: var(--svc-accent);
    color: var(--svc-ink);
}
.svc__arrow:active:not(:disabled) { transform: scale(0.94); }
.svc__arrow:focus-visible { outline: 2px solid var(--svc-accent-soft); outline-offset: 3px; }
.svc__arrow:disabled { opacity: 0.28; cursor: default; }

.svc__rail {
    display: flex;
    gap: 14px;
    margin: 0 auto;
    padding: 42px 2px 24px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.svc__rail::-webkit-scrollbar { display: none; }

.svc .card {
    position: relative;
    flex: 0 0 400px;
    width: 400px;
    height: 560px;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 3px;
    background: var(--svc-ink);
    box-shadow: 0 18px 40px -22px color-mix(in srgb, #000 70%, transparent);
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    scroll-snap-align: start;
    transform: translateY(var(--stagger, 0px));
    will-change: transform;
    transition: flex-basis .55s var(--svc-ease), width .55s var(--svc-ease);
}
.svc .card:nth-child(even) { --stagger: -20px; }
.svc .card:focus-visible { outline: 2px solid var(--svc-accent); outline-offset: 3px; }
.svc .card__bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    filter: grayscale(1) contrast(1.04);
    transition: transform .8s var(--svc-ease), filter .6s var(--svc-ease);
}
.svc .card:hover .card__bg { transform: scale(1.05); }
.svc .card.is-open .card__bg { filter: grayscale(0.35) contrast(1.02); }
.svc .card__scrim {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 38%, color-mix(in srgb, var(--svc-ink) 82%, transparent) 100%);
    transition: opacity .5s var(--svc-ease);
}
.svc .card__label {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 22px;
    z-index: 2;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 10px;
    pointer-events: none;
    transition: opacity .3s var(--svc-ease);
}
.svc .card.is-open .card__label { opacity: 0; }
.svc .card__name {
    font-family: var(--svc-display);
    font-style: italic;
    font-weight: 500;
    font-size: 26px;
    line-height: 1.05;
    color: #fff;
    text-shadow: 0 2px 14px color-mix(in srgb, #000 45%, transparent);
}
.svc .card__panel {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    max-height: 70%;
    background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--svc-ink) 70%, transparent) 30%);
    backdrop-filter: blur(14px) saturate(1.1);
    -webkit-backdrop-filter: blur(14px) saturate(1.1);
    transform: translateY(101%);
    transition: transform .5s var(--svc-ease);
}
.svc .card.is-open .card__panel { transform: translateY(0); }
.svc .card__panel-head { padding: 22px 20px 10px; }
.svc .card__panel-head a {
    font-family: var(--svc-display);
    font-style: italic;
    font-size: 26px;
    line-height: 1.05;
    color: #fff;
    text-decoration: none;
}
.svc .card__panel-head a:hover { color: var(--svc-accent-soft); }
body.mds-body .svc .card__text {
    margin: 10px 0 0;
    font-size: 14px;
    line-height: 1.5;
    color: color-mix(in srgb, #fff 86%, transparent);
}
.svc .card__list {
    flex: 1;
    margin: 0;
    padding: 6px 0 16px;
    overflow-x: hidden;
    overflow-y: auto;
    list-style: none;
    scrollbar-width: thin;
    scrollbar-color: color-mix(in srgb, #fff 30%, transparent) transparent;
}
.svc .card__list ul { margin: 0; padding: 0; list-style: none; }
.svc .card__list li { margin: 0 0 8px; padding: 0; list-style: none; }
.svc .card__list li::before { content: none; display: none; }
.svc .row {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 4px 20px;
    color: color-mix(in srgb, #fff 86%, transparent);
    text-decoration: none;
    transition: background .2s var(--svc-ease), color .2s var(--svc-ease), padding-left .25s var(--svc-ease);
}
.svc .row:hover,
.svc .row:focus-visible {
    padding-left: 24px;
    background: color-mix(in srgb, #fff 6%, transparent);
    color: #fff;
    outline: none;
}
.svc .row__dot {
    flex: 0 0 4px;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--svc-accent);
}
.svc .row__txt {
    flex: 1;
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: .1em;
    text-transform: uppercase;
}

@media (max-width: 780px) {
    .svc { padding: 40px 16px; }
    .svc::before { height: 100%; }
    .svc__head { flex-direction: column; align-items: flex-start; }
    body.mds-body .svc .svc__title,
    body.mds-body .svc .svc__hint { color: #fff; }
    .svc__nav { display: none; }
    .svc__rail { flex-direction: column; gap: 10px; padding: 24px 0 0; overflow: visible; }
    .svc .card,
    .svc .card.is-open {
        flex: 0 0 auto;
        width: 100%;
        height: auto;
        min-height: 84px;
        transform: none !important;
    }
    .svc .card__bg { filter: grayscale(0.4) contrast(1.02); opacity: 0.55; }
    .svc .card.is-open .card__bg { opacity: 0.4; }
    .svc .card__scrim { background: linear-gradient(90deg, color-mix(in srgb, var(--svc-ink) 85%, transparent), color-mix(in srgb, var(--svc-ink) 50%, transparent)); }
    .svc .card__label { position: static; padding: 26px 22px; align-items: center; }
    .svc .card.is-open .card__label { opacity: 1; }
    .svc .card__name { position: relative; z-index: 4; font-size: 24px; }
    .svc .card__panel {
        position: relative;
        display: none;
        max-height: none;
        background: color-mix(in srgb, var(--svc-ink) 90%, transparent);
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
        transform: none;
    }
    .svc .card.is-open .card__panel { display: flex; }
    .svc .card__panel-head a { display: none; }
    .svc .card__panel-head { padding-top: 0; }
}
@media (prefers-reduced-motion: reduce) {
    .svc * { transition-duration: 0.001ms !important; }
}
