/* ═══════════════════════════════════════════════════════════════════════════
   Tribute Cloud v1.40.5 – Production Stylesheet
   Designed & Powered by Stop Six Corporation · www.stopsix.io
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
    --tc-primary: #5b7a5e;
    --tc-primary-hover: #4a6a4d;
    --tc-heading: inherit;
    --tc-text: inherit;
    --tc-text-light: #888888;
    --tc-bg: transparent;
    --tc-surface: rgba(0,0,0,0.02);
    --tc-border: rgba(0,0,0,0.1);
    --tc-border-light: rgba(0,0,0,0.05);
    --tc-radius: 4px;
    --tc-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
    --tc-sans: 'Source Sans 3', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* ── Theme Integration ──────────────────────────────────────────────────── */
.tc-obit {
    font-family: var(--tc-sans) !important;
    font-weight: 400;
    font-size: 15px;
    color: var(--tc-text);
    line-height: 1.75;
    max-width: 900px;
    margin: 0 auto;
    padding: 0 20px 40px;
    background: transparent;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.tc-obit *, .tc-obit *::before, .tc-obit *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

.tc-obit a { color: var(--tc-primary); text-decoration: none; }
.tc-obit a:hover { color: var(--tc-primary-hover); }
.tc-obit img { max-width: 100%; height: auto; }

/* ── Standalone Obituary Page (no site header) ─────────────────────────── */

body.tc-standalone {
    margin: 0;
    padding: 0;
    background: #fff;
    color: inherit;
    min-height: 100vh;
}

.tc-page-wrap--standalone {
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
}

.tc-page-wrap--standalone .tc-article {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* ── Breadcrumb ────────────────────────────────────────────────────────── */

.tc-breadcrumb {
    padding: 16px 0;
}

.tc-breadcrumb__link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: var(--tc-sans);
    font-size: 0.88rem;
    font-weight: 500;
    color: var(--tc-primary) !important;
    text-decoration: none !important;
    transition: opacity 0.2s;
}

.tc-breadcrumb__link:hover { opacity: 0.7; }

/* ── Header ────────────────────────────────────────────────────────────── */

.tc-header {
    text-align: center;
    padding: 48px 24px 36px;
    margin-bottom: 32px;
    border-bottom: 1px solid var(--tc-border);
    background-size: cover;
    background-position: center;
    background-color: transparent;
    position: relative;
}

.tc-header__content { position: relative; z-index: 1; }

.tc-header__name {
    font-family: var(--tc-serif) !important;
    font-size: 2.6rem;
    font-weight: 400;
    color: var(--tc-heading);
    margin: 0 0 8px !important;
    line-height: 1.2;
    letter-spacing: 0.01em;
}

.tc-header__dates {
    font-family: var(--tc-sans) !important;
    font-size: 1.1rem;
    font-weight: 300;
    color: var(--tc-text-light);
    margin: 0 !important;
    letter-spacing: 0.02em;
}

/* Veteran Header */
.tc-header--veteran {
    background: rgba(0, 40, 104, 0.04);
    border-bottom: 3px solid #002868;
    position: relative;
    overflow: hidden;
}

.tc-header__flag {
    position: absolute;
    right: -30px;
    top: 50%;
    transform: translateY(-50%);
    height: 110%;
    width: auto;
    opacity: 0.12;
    pointer-events: none;
    z-index: 0;
}

.tc-header--veteran .tc-header__name { color: #1a2a4a; }
.tc-header--veteran .tc-header__dates { color: #4a5a7a; }

.tc-header__vet-info { margin-top: 12px; }
.tc-header__vet-info p {
    display: inline-block;
    margin: 0 !important;
    padding: 4px 20px;
    font-size: 0.82rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #fff;
    background: #002868;
    border-radius: 2px;
}

/* ── Body Layout ───────────────────────────────────────────────────────── */

.tc-body {
    display: grid;
    grid-template-columns: 240px minmax(0, 1fr);
    gap: 40px;
    align-items: start;
}

/* ── Sidebar ───────────────────────────────────────────────────────────── */

.tc-sidebar__photo { margin-bottom: 20px; }
.tc-sidebar__img {
    width: 100%;
    display: block;
    border-radius: var(--tc-radius);
    object-fit: contain;
}

.tc-sidebar__share {
    padding: 16px 0;
    border-top: 1px solid var(--tc-border-light);
    border-bottom: 1px solid var(--tc-border-light);
    margin-bottom: 16px;
}

.tc-sidebar__label {
    font-family: var(--tc-sans) !important;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--tc-heading);
    margin: 0 0 10px !important;
}

.tc-share { display: flex; gap: 8px; }
.tc-share__btn {
    display: flex; align-items: center; justify-content: center;
    width: 32px; height: 32px;
    border-radius: 3px;
    border: 1px solid var(--tc-border);
    background: var(--tc-bg);
    color: var(--tc-text-light);
    text-decoration: none !important;
    transition: all 0.2s;
}
.tc-share__btn svg { width: 15px; height: 15px; }
.tc-share__btn:hover { background: var(--tc-primary); border-color: var(--tc-primary); color: #fff !important; }

.tc-sidebar__actions { display: flex; flex-direction: column; gap: 8px; }

.tc-action-btn {
    display: block;
    width: 100%;
    padding: 10px 16px;
    font-family: var(--tc-sans) !important;
    font-size: 0.88rem;
    font-weight: 500;
    text-align: center;
    color: var(--tc-heading) !important;
    background: var(--tc-bg);
    border: 1px solid var(--tc-border);
    border-radius: var(--tc-radius);
    text-decoration: none !important;
    cursor: pointer;
    transition: all 0.2s;
    line-height: 1.4;
}
.tc-action-btn:hover { background: var(--tc-primary); border-color: var(--tc-primary); color: #fff !important; }
.tc-action-btn--live { background: #b91c1c; border-color: #b91c1c; color: #fff !important; }
.tc-action-btn--live:hover { background: #991b1b; }

/* ── Tabs ──────────────────────────────────────────────────────────────── */

.tc-tabs {
    display: flex;
    border-bottom: 2px solid var(--tc-border);
    margin-bottom: 0;
    overflow: visible;
    flex-wrap: wrap;
}

.tc-tabs__btn {
    padding: 16px 24px;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    font-family: var(--tc-sans) !important;
    font-size: 0.95rem;
    font-weight: 500;
    color: var(--tc-text-light);
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.2s;
    letter-spacing: 0.01em;
    min-height: 50px;
    display: flex;
    align-items: center;
}
.tc-tabs__btn:hover { color: var(--tc-heading); }
.tc-tabs__btn--active { color: var(--tc-primary); border-bottom-color: var(--tc-primary); }

/* ── Panels ────────────────────────────────────────────────────────────── */

.tc-panel { display: none; padding: 32px 0; animation: tcPanelIn 0.3s ease; }
.tc-panel--active { display: block; }
@keyframes tcPanelIn { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} }

/* ── Section Headings ──────────────────────────────────────────────────── */

.tc-section-heading {
    font-family: var(--tc-serif) !important;
    font-size: 1.3rem;
    font-weight: 400;
    color: var(--tc-heading);
    margin: 0 0 20px !important;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--tc-border-light);
}

/* ── Obituary Text ─────────────────────────────────────────────────────── */

.tc-obit-text__heading {
    font-family: var(--tc-serif) !important;
    font-size: 1.5rem;
    font-weight: 400;
    color: var(--tc-primary);
    margin: 0 0 24px !important;
    line-height: 1.3;
}

.tc-obit-text__body { font-size: 0.95rem; line-height: 1.85; color: var(--tc-text); }
.tc-obit-text__body p { margin: 0 0 16px !important; }

.tc-text-muted { color: var(--tc-text-light); font-size: 0.92rem; }

/* ── Service Cards ─────────────────────────────────────────────────────── */

.tc-services { margin-top: 36px; }

.tc-svc-card {
    padding: 24px;
    margin-bottom: 16px;
    background: var(--tc-surface);
    border: 1px solid var(--tc-border-light);
    border-radius: var(--tc-radius);
    text-align: center;
}

.tc-svc-card__title { font-family: var(--tc-serif) !important; font-size: 1.15rem; font-weight: 500; color: var(--tc-heading); margin: 0 0 12px !important; }
.tc-svc-card__time { font-size: 1.35rem; font-weight: 600; color: var(--tc-heading); margin: 0 0 4px !important; }
.tc-svc-card__date { font-size: 0.95rem; font-weight: 500; color: var(--tc-heading); margin: 0 0 12px !important; }
.tc-svc-card__desc { font-size: 0.88rem; color: var(--tc-text); line-height: 1.7; }
.tc-svc-card__loc { font-size: 0.88rem; color: var(--tc-text-light); margin: 0 !important; }
.tc-svc-card__addr {
    font-size: 0.85rem;
    color: var(--tc-text-light);
    margin: 8px 0 0 !important;
    line-height: 1.5;
}
.tc-svc-card__dir { display: inline-block; margin-top: 10px; font-size: 0.82rem; font-weight: 500; color: var(--tc-primary) !important; text-decoration: none !important; }
.tc-svc-card__dir:hover { text-decoration: underline !important; }

/* ── Condolences ───────────────────────────────────────────────────────── */

.tc-cond-item { padding: 20px 0; border-bottom: 1px solid var(--tc-border-light); }
.tc-cond-item:last-child { border-bottom: none; }
.tc-cond-item__header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 4px; }
.tc-cond-item__author { font-weight: 600; color: var(--tc-heading); font-size: 0.92rem; }
.tc-cond-item__date { font-size: 0.78rem; color: var(--tc-text-light); }
.tc-cond-item__body { font-size: 0.9rem; line-height: 1.7; margin-top: 6px; }
.tc-cond-count { font-family: var(--tc-serif) !important; font-size: 1.15rem; font-weight: 400; color: var(--tc-heading); margin: 0 0 8px !important; }

/* ── Comment Form ──────────────────────────────────────────────────────── */

.tc-comment-form { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--tc-border); }
.tc-comment-form__note { font-size: 0.82rem; color: var(--tc-text-light); margin: 0 0 16px !important; }

.tc-field { margin-bottom: 14px; }
.tc-field__label { display: block; font-size: 0.82rem; font-weight: 600; color: var(--tc-heading); margin: 0 0 5px !important; }
.tc-field__input {
    display: block; width: 100%;
    padding: 10px 14px;
    font-family: var(--tc-sans) !important;
    font-size: 0.9rem;
    color: var(--tc-heading);
    background: var(--tc-bg);
    border: 1px solid var(--tc-border);
    border-radius: var(--tc-radius);
    transition: border-color 0.2s;
    outline: none;
}
.tc-field__input:focus { border-color: var(--tc-primary); }
.tc-field__textarea { resize: vertical; min-height: 80px; }
.tc-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.tc-captcha { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.tc-captcha__input { max-width: 80px; }

.tc-btn {
    display: inline-block;
    padding: 10px 28px;
    font-family: var(--tc-sans) !important;
    font-size: 0.88rem;
    font-weight: 600;
    border-radius: var(--tc-radius);
    cursor: pointer;
    transition: all 0.2s;
    border: none;
}
.tc-btn--primary { background: var(--tc-primary); color: #fff; }
.tc-btn--primary:hover { background: var(--tc-primary-hover); }

.tc-notice { margin-top: 12px; padding: 12px 16px; border-radius: var(--tc-radius); font-size: 0.88rem; display: none; }
.tc-notice--success { background: #f0f7f0; color: #2d6a2e; border: 1px solid #c4dfc4; }
.tc-notice--error { background: #fdf2f2; color: #9b2c2c; border: 1px solid #fecaca; }

/* ── Gallery ───────────────────────────────────────────────────────────── */

.tc-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin-top: 16px; }
.tc-gallery__item { display: block; border-radius: var(--tc-radius); overflow: hidden; transition: opacity 0.2s; }
.tc-gallery__item:hover { opacity: 0.85; }
.tc-gallery__item img { width: 100%; height: 150px; object-fit: cover; display: block; }

.tc-video { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; border-radius: var(--tc-radius); margin-bottom: 24px; }
.tc-video iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; }

/* ═══════════════════════════════════════════════════════════════════════
   CANDLES
   ═══════════════════════════════════════════════════════════════════════ */

.tc-candle-shelf-wrap {
    background: linear-gradient(180deg, #111827 0%, #1e293b 50%, #0f172a 100%);
    border-radius: 6px;
    padding: 28px 16px 16px;
    margin: 20px 0 24px;
    min-height: 150px;
    position: relative;
}
.tc-candle-shelf { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; align-items: flex-end; min-height: 110px; }
.tc-candles-empty { color: rgba(255,255,255,0.35); text-align: center; padding: 2rem 0; font-size: 0.88rem; width: 100%; }
.tc-candles-total { position: absolute; bottom: 6px; right: 12px; font-size: 0.7rem; color: rgba(255,255,255,0.3); }

.tc-candle-unit { display: flex; flex-direction: column; align-items: center; width: 44px; animation: tcCandleIn 0.6s ease; }
@keyframes tcCandleIn { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }

.tc-candle-stick {
    position: relative; width: 16px;
    border-radius: 3px 3px 2px 2px;
    box-shadow: inset -2px 0 4px rgba(0,0,0,0.12), inset 1px 0 3px rgba(255,255,255,0.15);
}
.tc-candle-stick::before { content: ''; position: absolute; top: -5px; left: 50%; transform: translateX(-50%); width: 1.5px; height: 7px; background: linear-gradient(#333,#555); border-radius: 1px; }
.tc-candle-flame {
    position: absolute; top: -24px; left: 50%; transform: translateX(-50%);
    width: 10px; height: 16px;
    background: radial-gradient(ellipse at 50% 85%, #fff 0%, #ffe066 18%, #ff9500 45%, #ff6600 65%, transparent 100%);
    border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
    animation: tcFlame 0.35s ease-in-out infinite alternate, tcGlow 2s ease-in-out infinite;
}
.tc-candle-flame::after {
    content: ''; position: absolute; bottom: 1px; left: 50%; transform: translateX(-50%);
    width: 4px; height: 8px;
    background: radial-gradient(ellipse at 50% 100%, #fff 0%, #a0d8ef 35%, transparent 100%);
    border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
}
.tc-candle-stick::after { content: ''; position: absolute; top: -8px; left: -6px; right: -6px; height: 16px; background: radial-gradient(ellipse, rgba(255,160,0,0.2) 0%, transparent 70%); pointer-events: none; }
.tc-candle-drip { position: absolute; top: 0; width: 4px; border-radius: 0 0 3px 3px; opacity: 0.5; animation: tcDrip 5s ease-in-out infinite; }

@keyframes tcFlame { 0%{transform:translateX(-50%) scale(1) rotate(-1.5deg)} 100%{transform:translateX(-50%) scale(1.06,.93) rotate(1.5deg)} }
@keyframes tcGlow { 0%,100%{opacity:1} 50%{opacity:.85} }
@keyframes tcDrip { 0%,80%{height:0;opacity:0} 90%{height:8px;opacity:.5} 100%{height:12px;opacity:0} }

.tc-candle-name-tag { font-size: 0.6rem; color: rgba(255,255,255,0.55); margin-top: 4px; max-width: 48px; text-align: center; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Candle Picker */
.tc-candle-form { background: var(--tc-surface); padding: 20px; border-radius: var(--tc-radius); border: 1px solid var(--tc-border-light); }
.tc-candle-form__label { font-weight: 600; font-size: 0.88rem; color: var(--tc-heading); margin: 0 0 10px !important; }
.tc-candle-picker { display: flex; gap: 6px; margin-bottom: 16px; flex-wrap: wrap; }
.tc-candle-picker__item {
    display: flex; flex-direction: column; align-items: center; gap: 3px;
    padding: 8px 6px; border: 1.5px solid var(--tc-border);
    border-radius: var(--tc-radius); background: var(--tc-bg);
    cursor: pointer; transition: all 0.2s; min-width: 52px;
}
.tc-candle-picker__item:hover { border-color: var(--tc-text-light); }
.tc-candle-picker__item--active { border-color: var(--tc-primary); background: #f0f5f0; }

.tc-cprev { display: flex; flex-direction: column; align-items: center; position: relative; width: 12px; height: 30px; }
.tc-cprev__wax { width: 12px; height: 20px; background: var(--wax); border-radius: 2px 2px 1px 1px; }
.tc-cprev__flame { width: 7px; height: 10px; background: radial-gradient(ellipse at 50% 85%, #fff, #ffe066 30%, #ff9500 60%, transparent); border-radius: 50%/60% 60% 40% 40%; animation: tcFlame 0.35s ease-in-out infinite alternate; margin-bottom: -1px; }
.tc-cprev__name { font-size: 0.65rem; font-weight: 500; color: var(--tc-text-light); }

/* ── Footer ────────────────────────────────────────────────────────────── */

.tc-footer { margin-top: 48px; padding-top: 20px; border-top: 1px solid var(--tc-border-light); text-align: center; }
.tc-footer p { font-size: 0.75rem; color: var(--tc-text-light); margin: 0 !important; }
.tc-footer a { color: var(--tc-primary) !important; font-weight: 500; text-decoration: none !important; }

/* ── Archive Page ──────────────────────────────────────────────────────── */

.tc-archive {
    max-width: 1200px;
    margin: 0 auto;
    padding: 40px 20px;
    font-family: var(--tc-sans);
}

.tc-archive__header {
    text-align: center;
    margin-bottom: 36px;
}

.tc-archive__title {
    font-family: var(--tc-serif) !important;
    font-size: 2.2rem;
    font-weight: 400;
    color: var(--tc-heading);
    margin: 0 0 4px !important;
    line-height: 1.2;
}

.tc-archive__subtitle {
    font-family: var(--tc-sans) !important;
    font-size: 1rem;
    font-weight: 300;
    color: var(--tc-text-light);
    margin: 0 !important;
    letter-spacing: 0.02em;
}

.tc-pagination {
    margin-top: 32px;
    text-align: center;
}

.tc-pagination ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    justify-content: center;
    gap: 4px;
    flex-wrap: wrap;
}

.tc-pagination li {
    display: inline-block;
}

.tc-pagination a,
.tc-pagination span {
    display: inline-block;
    padding: 8px 14px;
    font-family: var(--tc-sans);
    font-size: 0.88rem;
    color: var(--tc-text-light);
    border: 1px solid var(--tc-border);
    border-radius: var(--tc-radius);
    text-decoration: none;
    transition: all 0.2s;
}

.tc-pagination a:hover {
    background: var(--tc-primary);
    border-color: var(--tc-primary);
    color: #fff;
}

.tc-pagination .current {
    background: var(--tc-primary);
    border-color: var(--tc-primary);
    color: #fff;
    font-weight: 600;
}

/* ═══════════════════════════════════════════════════════════════════════
   CAROUSEL / RECENT / SEARCH (shortcodes) – 1.5× larger
   ═══════════════════════════════════════════════════════════════════════ */

.tc-carousel-wrap { position: relative; overflow: hidden; margin: 2rem 0; }
.tc-carousel { display: flex; gap: 20px; overflow-x: auto; scroll-behavior: smooth; scroll-snap-type: x mandatory; padding: 6px 0; }
.tc-carousel::-webkit-scrollbar { display: none; }
.tc-carousel-item { flex: 0 0 300px; scroll-snap-align: start; }
.tc-carousel-link {
    display: block; text-decoration: none !important; color: var(--tc-heading) !important;
    border-radius: var(--tc-radius); overflow: hidden;
    border: 1px solid var(--tc-border); transition: box-shadow 0.2s;
}
.tc-carousel-link:hover { box-shadow: 0 6px 18px rgba(0,0,0,0.08); }
.tc-carousel-photo {
    width: 100%; height: 280px;
    display: flex; align-items: center; justify-content: center;
    background: var(--tc-surface);
    position: relative; overflow: hidden;
}
.tc-carousel-photo__img {
    width: 100%; height: 100%;
    object-fit: contain;
    display: block;
}
.tc-carousel-photo__placeholder {
    font-size: 3rem; opacity: 0.2;
}
.tc-no-photo { display: flex; align-items: center; justify-content: center; font-size: 3rem; opacity: 0.25; color: var(--tc-text-light); }
.tc-carousel-flag { position: absolute; top: 10px; right: 10px; font-size: 20px; filter: drop-shadow(0 1px 2px rgba(0,0,0,0.3)); }
.tc-carousel-info { padding: 16px; }
.tc-carousel-info h3 { font-family: var(--tc-serif); font-size: 1.1rem; font-weight: 400; margin: 0 0 4px !important; }
.tc-carousel-info p { margin: 0 !important; font-size: 0.85rem; color: var(--tc-text-light); }
.tc-carousel-prev, .tc-carousel-next {
    position: absolute; top: 50%; transform: translateY(-50%);
    background: rgba(255,255,255,0.96); border: 1px solid var(--tc-border);
    border-radius: 50%; width: 40px; height: 40px; font-size: 1.3rem;
    cursor: pointer; display: flex; align-items: center; justify-content: center; z-index: 2;
    transition: box-shadow 0.2s;
}
.tc-carousel-prev:hover, .tc-carousel-next:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.1); }
.tc-carousel-prev { left: 8px; }
.tc-carousel-next { right: 8px; }

/* Grid — card layout matching carousel size */
.tc-grid { display: grid; grid-template-columns: repeat(var(--tc-cols, 3), 1fr); gap: 20px; margin: 2rem 0; }
.tc-grid__card {
    display: block;
    text-decoration: none !important;
    color: var(--tc-heading) !important;
    border: 1px solid var(--tc-border);
    border-radius: var(--tc-radius);
    overflow: hidden;
    transition: box-shadow 0.2s;
}
.tc-grid__card:hover { box-shadow: 0 6px 18px rgba(0,0,0,0.08); }
.tc-grid__photo {
    width: 100%; height: 280px;
    display: flex; align-items: center; justify-content: center;
    background: var(--tc-surface);
    position: relative; overflow: hidden;
}
.tc-grid__photo__img {
    width: 100%; height: 100%;
    object-fit: contain;
    display: block;
}
.tc-grid__photo__placeholder {
    font-size: 3rem; opacity: 0.2;
}
.tc-grid__flag { position: absolute; top: 10px; right: 10px; font-size: 20px; filter: drop-shadow(0 1px 2px rgba(0,0,0,0.3)); }
.tc-grid__info { padding: 16px; }
.tc-grid__info h3 { font-family: var(--tc-serif); font-size: 1.1rem; font-weight: 400; margin: 0 0 4px !important; }
.tc-grid__dates { margin: 0 !important; font-size: 0.85rem; color: var(--tc-text-light); }
.tc-grid__loc { margin: 2px 0 0 !important; font-size: 0.82rem; color: var(--tc-text-light); }

.tc-search-widget { margin: 1rem 0; }
.tc-search-form { display: flex; gap: 10px; max-width: 500px; }
.tc-search-input { flex: 1; padding: 10px 14px; font-size: 0.92rem; border: 1px solid var(--tc-border); border-radius: var(--tc-radius); outline: none; font-family: var(--tc-sans); }
.tc-search-input:focus { border-color: var(--tc-primary); }
.tc-search-results { margin-top: 14px; }
.tc-search-result {
    display: flex; gap: 14px; align-items: center;
    padding: 12px; border: 1px solid var(--tc-border); border-radius: var(--tc-radius);
    margin-bottom: 8px; text-decoration: none !important; color: var(--tc-heading) !important;
    transition: background 0.2s;
}
.tc-search-result:hover { background: var(--tc-surface); }
.tc-search-result img { width: 50px; height: 50px; object-fit: cover; border-radius: 50%; flex-shrink: 0; }
.tc-search-result-info h4 { margin: 0 !important; font-family: var(--tc-serif); font-size: 0.95rem; font-weight: 400; }
.tc-search-result-info p { margin: 0 !important; font-size: 0.8rem; color: var(--tc-text-light); }

.tc-no-results { color: var(--tc-text-light); font-style: italic; padding: 20px 0; text-align: center; }

/* ── Print ─────────────────────────────────────────────────────────────── */

@media print {
    body * { visibility: hidden; }
    .tc-printable-obituary, .tc-printable-obituary * { visibility: visible; }
    .tc-printable-obituary { position: absolute; left: 0; top: 0; width: 100%; padding: 2rem; font-size: 12pt; line-height: 1.8; font-family: Georgia, serif; }
}

/* ═══════════════════════════════════════════════════════════════════════
   RESPONSIVE — every public-facing component at every breakpoint
   ═══════════════════════════════════════════════════════════════════════ */

/* Global overflow protection */
.tc-obit, .tc-obit * { max-width: 100%; }
.tc-obit img { height: auto; }

/* ── Tablet (768px) ── */
@media (max-width: 768px) {
    .tc-body { grid-template-columns: 1fr; gap: 24px; }
    .tc-sidebar { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; }
    .tc-sidebar__photo { flex: 0 0 160px; }
    .tc-sidebar__img { max-width: 160px; }
    .tc-sidebar__share { flex: 1; min-width: 150px; border-top: none; padding-top: 0; }
    .tc-sidebar__actions { flex: 1; min-width: 150px; flex-direction: row; flex-wrap: wrap; }
    .tc-action-btn { flex: 1; min-width: 120px; padding: 10px 12px; font-size: 0.85rem; }
    .tc-header { padding: 36px 20px 28px; }
    .tc-header__name { font-size: 2rem; }
    .tc-header__flag { height: 90%; right: -20px; }
    .tc-tabs__btn { padding: 14px 14px; font-size: 0.85rem; min-height: 46px; }
    .tc-svc-card { padding: 20px; }
    .tc-svc-card__time { font-size: 1.2rem; }
    .tc-carousel-item { flex: 0 0 260px; }
    .tc-carousel-photo { height: 220px; }
    .tc-grid { grid-template-columns: repeat(2, 1fr) !important; }
    .tc-grid__photo { height: 220px; }
    .tc-candle-picker { gap: 5px; }
    .tc-candle-picker__item { min-width: 48px; padding: 6px 5px; }
    .tc-gallery { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
}

/* ── Phone (480px) ── */
@media (max-width: 480px) {
    .tc-obit { padding: 0 12px 32px; font-size: 14px; }
    .tc-sidebar { flex-direction: column; align-items: center; text-align: center; }
    .tc-sidebar__photo { flex: none; width: 100%; }
    .tc-sidebar__img { max-width: 200px; margin: 0 auto; }
    .tc-sidebar__share { width: 100%; }
    .tc-share { justify-content: center; }
    .tc-sidebar__actions { width: 100%; flex-direction: column; }
    .tc-action-btn { min-width: 0; width: 100%; }
    .tc-header { padding: 28px 14px 22px; margin-bottom: 24px; }
    .tc-header__name { font-size: 1.5rem; }
    .tc-header__dates { font-size: 0.9rem; }
    .tc-header__flag { height: 80%; opacity: 0.08; right: -40px; }
    .tc-header__vet-info p { font-size: 0.72rem; padding: 3px 14px; }
    .tc-breadcrumb { padding: 12px 0; }
    .tc-breadcrumb__link { font-size: 0.82rem; }
    .tc-tabs { gap: 0; }
    .tc-tabs__btn { padding: 11px 8px; font-size: 0.78rem; min-height: 42px; flex: 1; }
    .tc-panel { padding: 24px 0; }
    .tc-section-heading { font-size: 1.15rem; }
    .tc-obit-text__heading { font-size: 1.25rem; }
    .tc-obit-text__body { font-size: 0.9rem; line-height: 1.75; }
    .tc-svc-card { padding: 18px 14px; }
    .tc-svc-card__title { font-size: 1.05rem; }
    .tc-svc-card__time { font-size: 1.15rem; }
    .tc-svc-card__date { font-size: 0.9rem; }
    .tc-svc-card__desc { font-size: 0.85rem; }
    .tc-svc-card__addr { font-size: 0.82rem; }
    .tc-field-row { grid-template-columns: 1fr; }
    .tc-field__input { padding: 9px 12px; font-size: 0.88rem; }
    .tc-btn { padding: 10px 20px; font-size: 0.85rem; width: 100%; text-align: center; }
    .tc-captcha { flex-wrap: wrap; }
    .tc-cond-item { padding: 16px 0; }
    .tc-cond-item__header { flex-direction: column; gap: 2px; }
    .tc-cond-item__date { margin-left: 0; }
    .tc-carousel-item { flex: 0 0 85vw; }
    .tc-carousel-photo { height: 200px; }
    .tc-carousel-info { padding: 12px; }
    .tc-carousel-info h3 { font-size: 1rem; }
    .tc-grid { grid-template-columns: 1fr !important; }
    .tc-grid__photo { height: 200px; }
    .tc-grid__info { padding: 12px; }
    .tc-search-form { flex-direction: column; max-width: 100%; }
    .tc-search-input { width: 100%; }
    .tc-search-result { padding: 10px; gap: 10px; }
    .tc-search-result img { width: 40px; height: 40px; }
    .tc-candle-shelf-wrap { padding: 20px 10px 12px; min-height: 130px; }
    .tc-candle-shelf { gap: 10px; }
    .tc-candle-unit { width: 38px; }
    .tc-candle-stick { width: 14px; }
    .tc-candle-flame { width: 8px; height: 13px; top: -20px; }
    .tc-candle-form { padding: 16px; }
    .tc-candle-picker__item { min-width: 44px; padding: 6px 4px; }
    .tc-cprev { width: 10px; height: 26px; }
    .tc-cprev__wax { width: 10px; height: 17px; }
    .tc-cprev__flame { width: 6px; height: 8px; }
    .tc-gallery { grid-template-columns: repeat(2, 1fr); gap: 6px; }
    .tc-gallery__item img { height: 120px; }
    .tc-footer { margin-top: 32px; padding-top: 16px; }
}

/* ── Small phone (360px) ── */
@media (max-width: 360px) {
    .tc-header__name { font-size: 1.3rem; }
    .tc-tabs__btn { padding: 10px 6px; font-size: 0.72rem; }
    .tc-carousel-item { flex: 0 0 90vw; }
    .tc-sidebar__img { max-width: 170px; }
}
