/* ==========================================================================
   Heritage Crest Build — in-card service gallery overlay
   Polished build. Hover/touch reveals a mini gallery inside each [data-gallery] card.
   ========================================================================== */

:root {
    --sg-gold: #ac8d56;
    --sg-gold-soft: rgba(172, 141, 86, 0.92);
    --sg-ease: cubic-bezier(0.4, 0, 0.2, 1);
}

.serv-box[data-gallery] { position: relative; }

/* Subtle gold dot marker — only when not hovered */
.serv-box[data-gallery]::before {
    content: "";
    position: absolute;
    top: 12px; right: 12px;
    width: 8px; height: 8px;
    border-radius: 50%;
    background: var(--sg-gold);
    box-shadow: 0 0 0 4px rgba(172, 141, 86, 0.18);
    z-index: 5;
    pointer-events: none;
    transition: opacity 0.2s var(--sg-ease);
}
.serv-box[data-gallery]:hover::before { opacity: 0; }

/* The overlay sits inside the card's existing image wrapper, filling it */
.sg-overlay {
    position: absolute;
    inset: 0;
    z-index: 4;
    opacity: 0;
    pointer-events: none;
    background: #0a0a0a;
    transition: opacity 0.3s var(--sg-ease);
    overflow: hidden;
}

.serv-box[data-gallery]:hover .sg-overlay,
.serv-box[data-gallery]:focus-within .sg-overlay,
.serv-box[data-gallery].is-touch-open .sg-overlay {
    opacity: 1;
    pointer-events: auto;
}

/* Disable the legacy 1.1 scale on the underlying card image — overlay handles visuals */
.serv-box[data-gallery]:hover .img-with-animation { transform: none !important; }

/* ---------- Main image with Ken-Burns slow zoom ---------- */
.sg-overlay .sg-main-wrap {
    position: absolute;
    inset: 0;
    overflow: hidden;
}

.sg-overlay .sg-main {
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center;
    transform: scale(1);
    transition: opacity 0.28s var(--sg-ease),
                transform 6s linear;
    will-change: transform;
}
.sg-overlay .sg-main-wrap.is-zooming .sg-main {
    transform: scale(1.06);
}
.sg-overlay .sg-main.is-fading { opacity: 0.35; }

/* Vignette so chips + button pop against any image */
.sg-overlay::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at center, rgba(0,0,0,0) 35%, rgba(0,0,0,0.45) 100%),
        linear-gradient(180deg, rgba(0,0,0,0.35) 0%, rgba(0,0,0,0) 22%, rgba(0,0,0,0) 65%, rgba(0,0,0,0.7) 100%);
    z-index: 2;
    pointer-events: none;
}

/* ---------- Title chip (top-left) ---------- */
.sg-title-chip {
    position: absolute;
    top: 14px; left: 14px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px 6px 10px;
    background: rgba(0,0,0,0.55);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    border-radius: 100px;
    transform: translateY(-6px);
    opacity: 0;
    transition: opacity 0.35s var(--sg-ease) 0.1s,
                transform 0.35s var(--sg-ease) 0.1s;
}
.sg-title-dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: var(--sg-gold);
    box-shadow: 0 0 0 3px rgba(172,141,86,0.25);
}

.serv-box[data-gallery]:hover .sg-title-chip,
.serv-box[data-gallery].is-touch-open .sg-title-chip {
    opacity: 1;
    transform: translateY(0);
}

/* ---------- Counter (top-right) "01 / 08" ---------- */
.sg-counter {
    position: absolute;
    top: 14px; right: 14px;
    z-index: 3;
    display: inline-flex;
    align-items: baseline;
    gap: 3px;
    padding: 4px 10px;
    background: rgba(0,0,0,0.5);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.05em;
    border-radius: 100px;
    opacity: 0;
    transform: translateY(-6px);
    transition: opacity 0.35s var(--sg-ease) 0.15s,
                transform 0.35s var(--sg-ease) 0.15s;
    font-variant-numeric: tabular-nums;
}
.sg-counter-now { color: var(--sg-gold); }
.sg-counter-divider { opacity: 0.5; margin: 0 2px; }
.sg-counter-total { opacity: 0.7; }

.serv-box[data-gallery]:hover .sg-counter,
.serv-box[data-gallery].is-touch-open .sg-counter {
    opacity: 1;
    transform: translateY(0);
}

/* ---------- View … CTA (center) ---------- */
.sg-overlay .sg-view {
    position: absolute;
    left: 50%;
    top: 45%;
    transform: translate(-50%, -50%);
    z-index: 4;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 22px;
    background: rgba(255,255,255,0.97);
    color: #0a0a0a !important;
    text-decoration: none;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    border-radius: 2px;
    box-shadow: 0 12px 28px -10px rgba(0,0,0,0.4);
    opacity: 0;
    transition: opacity 0.4s var(--sg-ease) 0.15s,
                top 0.4s var(--sg-ease) 0.15s,
                background 0.3s var(--sg-ease),
                color 0.3s var(--sg-ease);
    white-space: nowrap;
}
.serv-box[data-gallery]:hover .sg-overlay .sg-view,
.serv-box[data-gallery].is-touch-open .sg-overlay .sg-view {
    opacity: 1;
    top: 42%;
}
.sg-overlay .sg-view:hover {
    background: var(--sg-gold);
    color: #fff !important;
}
.sg-overlay .sg-view .sg-arrow {
    display: inline-block;
    transition: transform 0.3s var(--sg-ease);
}
.sg-overlay .sg-view:hover .sg-arrow { transform: translateX(4px); }

/* ---------- Thumbnail strip (bottom) ---------- */
.sg-overlay .sg-thumbs {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    z-index: 3;
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: 5px;
    padding: 28px 10px 10px;
    /* Backdrop already provided by vignette gradient; keep this clean */
}

.sg-overlay .sg-thumb {
    position: relative;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    cursor: pointer;
    background: #1a1a1a;
    border: 0;
    padding: 0;
    border-radius: 2px;
    box-shadow: 0 0 0 1.5px rgba(255,255,255,0.45),
                0 4px 12px -4px rgba(0,0,0,0.6);
    transition: box-shadow 0.22s var(--sg-ease),
                transform 0.22s var(--sg-ease);
    transform: translateY(8px);
    opacity: 0.85;
}

/* Stagger thumb entrance for polish */
.serv-box[data-gallery]:hover .sg-thumb,
.serv-box[data-gallery].is-touch-open .sg-thumb {
    transform: translateY(0);
    opacity: 1;
}
.serv-box[data-gallery]:hover .sg-thumb:nth-child(1) { transition-delay: 0.05s; }
.serv-box[data-gallery]:hover .sg-thumb:nth-child(2) { transition-delay: 0.09s; }
.serv-box[data-gallery]:hover .sg-thumb:nth-child(3) { transition-delay: 0.13s; }
.serv-box[data-gallery]:hover .sg-thumb:nth-child(4) { transition-delay: 0.17s; }
.serv-box[data-gallery]:hover .sg-thumb:nth-child(5) { transition-delay: 0.21s; }
.serv-box[data-gallery]:hover .sg-thumb:nth-child(6) { transition-delay: 0.25s; }
.serv-box[data-gallery]:hover .sg-thumb:nth-child(7) { transition-delay: 0.29s; }
.serv-box[data-gallery]:hover .sg-thumb:nth-child(8) { transition-delay: 0.33s; }

.sg-overlay .sg-thumb img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}

.sg-overlay .sg-thumb:hover {
    box-shadow: 0 0 0 1.5px #fff,
                0 6px 16px -4px rgba(0,0,0,0.7);
    transform: translateY(-2px) !important;
}

.sg-overlay .sg-thumb.is-active {
    box-shadow: 0 0 0 2px var(--sg-gold),
                0 6px 18px -4px rgba(0,0,0,0.7);
    opacity: 1;
}

/* Gold underline under active thumb */
.sg-overlay .sg-thumb.is-active::after {
    content: "";
    position: absolute;
    bottom: -4px; left: 10%; right: 10%;
    height: 2px;
    background: var(--sg-gold);
}

/* ---------- Responsive ---------- */
@media (max-width: 768px) {
    .sg-overlay .sg-thumbs { grid-template-columns: repeat(4, 1fr); }
    .sg-overlay .sg-view { padding: 10px 16px; font-size: 10px; }
    .sg-title-chip, .sg-counter { font-size: 10px; padding: 4px 8px; }
}

@media (prefers-reduced-motion: reduce) {
    .sg-overlay,
    .sg-overlay .sg-main,
    .sg-overlay .sg-main-wrap.is-zooming .sg-main,
    .sg-title-chip,
    .sg-counter,
    .sg-overlay .sg-view,
    .sg-overlay .sg-thumb,
    .sg-overlay .sg-view .sg-arrow {
        transition: none !important;
        transform: none !important;
    }
}
