/* Directory pillar summary cards (spread across the page) and methodology. Colors are tokens that can be overridden per site. */
/* Icons: Tabler Icons 3.19.0 (MIT), https://tabler.io/icons */
/* Table rules are scoped as ".sag-dir-summary .sag-dir-summary__…" so theme rules like ".entry-content table th" cannot repaint them. */
.sag-dir-summary, .sag-dir-method {
    --sag-dir-accent: var(--sag-recipe-accent, #2563eb);
    --sag-dir-accent-strong: #1d4ed8;
    --sag-dir-accent-soft: #eaf2ff;
    --sag-dir-ink: #0f1b3d;
    --sag-dir-text: #3b4a6b;
    --sag-dir-muted: #6b7a99;
    --sag-dir-border: #e3ecf8;
    --sag-dir-surface: #f5f9ff;
    --sag-dir-card: #fff;
    --sag-dir-yes: #15803d;
    --sag-dir-yes-bg: #e8f8ee;
    --sag-dir-no: #6b7a99;
    --sag-dir-no-bg: #eef1f6;
    --sag-dir-star: #b45309;
    --sag-dir-star-bg: #fff4d6;
    --sag-dir-third: #c2410c;
    --sag-dir-third-bg: #ffe8dc;
}
.sag-dir-summary {
    container-type: inline-size; margin: 36px 0; padding: clamp(18px, 3.5vw, 32px);
    background: var(--sag-dir-card); border: 1px solid var(--sag-dir-border); border-radius: 24px;
    box-shadow: 0 12px 32px rgba(30, 64, 175, .08), 0 2px 6px rgba(30, 64, 175, .04);
    color: var(--sag-dir-ink); font-family: inherit; line-height: 1.55; box-sizing: border-box;
}
.sag-dir-summary + .sag-dir-summary { margin-top: 20px; }
.sag-dir-summary *, .sag-dir-summary *::before, .sag-dir-summary *::after { box-sizing: border-box; }
.sag-dir-summary p { margin: 0; }
.sag-dir-summary ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.sag-dir-summary li { margin: 0; }
.sag-dir-summary li::marker { content: none; }
.sag-dir-summary li::before { content: none; }
.sag-dir-summary dl, .sag-dir-summary dd { margin: 0; padding: 0; }
.sag-dir-summary dt, .sag-dir-summary dd { text-decoration: none; border: 0; }
.sag-dir-summary table { width: 100%; margin: 0; border-collapse: separate; border-spacing: 0; border: 0; font-size: .95em; background: none; }
.sag-dir-summary :is(.sag-dir-summary__table, .sag-dir-summary__week) tr:nth-child(n) { background: none; border: 0; }
.sag-dir-summary :is(.sag-dir-summary__table, .sag-dir-summary__week) :is(th, td) {
    border: 0; background: var(--sag-dir-card); color: var(--sag-dir-text); padding: 14px 16px;
    text-align: start; vertical-align: middle; font-weight: 400; text-transform: none; letter-spacing: 0;
}
.sag-dir-summary .screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

/* Card header: icon tile, title and subtitle */
.sag-dir-card__head { display: flex; align-items: center; gap: 16px; margin-bottom: 22px; }
.sag-dir-card__icon {
    flex: none; width: 52px; height: 52px; border-radius: 16px;
    background: var(--sag-dir-accent-soft) var(--sag-dir-icon) center / 26px no-repeat;
}
.sag-dir-summary .sag-dir-card__title { font-size: clamp(1.25em, 3.2cqi, 1.6em); font-weight: 800; line-height: 1.2; letter-spacing: -.01em; color: var(--sag-dir-ink); }
.sag-dir-summary .sag-dir-card__sub { margin-top: 4px; font-size: .95em; line-height: 1.4; color: var(--sag-dir-muted); }
.sag-dir-card--overview { --sag-dir-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 13a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v6a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z'/%3E%3Cpath d='M15 9a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v10a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z'/%3E%3Cpath d='M9 5a1 1 0 0 1 1 -1h4a1 1 0 0 1 1 1v14a1 1 0 0 1 -1 1h-4a1 1 0 0 1 -1 -1z'/%3E%3Cpath d='M4 20h14'/%3E%3C/svg%3E"); }
.sag-dir-card__part-icon { flex: none; width: 36px; height: 36px; border-radius: 11px; background: var(--sag-dir-accent-soft) var(--sag-dir-icon) center / 19px no-repeat; --sag-dir-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 9m-6 0a6 6 0 1 0 12 0a6 6 0 1 0 -12 0'/%3E%3Cpath d='M12 15l3.4 5.89l1.598 -3.233l3.598 .232l-3.4 -5.889'/%3E%3Cpath d='M6.802 12l-3.4 5.89l3.598 -.233l1.598 3.232l3.4 -5.889'/%3E%3C/svg%3E"); }
.sag-dir-card--comparison { --sag-dir-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5a2 2 0 0 1 2 -2h14a2 2 0 0 1 2 2v14a2 2 0 0 1 -2 2h-14a2 2 0 0 1 -2 -2v-14z'/%3E%3Cpath d='M3 10h18'/%3E%3Cpath d='M10 3v18'/%3E%3C/svg%3E"); }
.sag-dir-card--week { --sag-dir-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11.795 21h-6.795a2 2 0 0 1 -2 -2v-12a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v4'/%3E%3Cpath d='M18 18m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0'/%3E%3Cpath d='M15 3v4'/%3E%3Cpath d='M7 3v4'/%3E%3Cpath d='M3 11h16'/%3E%3Cpath d='M18 16.496v1.504l1 1'/%3E%3C/svg%3E"); }
.sag-dir-card__part { margin-top: 26px; padding-top: 24px; border-top: 1px solid var(--sag-dir-border); }
.sag-dir-card__part-head { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.sag-dir-summary .sag-dir-card__part-title { font-size: 1.15em; font-weight: 800; line-height: 1.25; color: var(--sag-dir-ink); }
.sag-dir-summary__updated { display: inline-flex; align-items: center; gap: 8px; }
.sag-dir-summary__updated::before { content: ""; flex: none; width: 8px; height: 8px; border-radius: 50%; background: var(--sag-dir-yes); box-shadow: 0 0 0 4px var(--sag-dir-yes-bg); }

/* Stats */
.sag-dir-summary__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin: 0 !important; }
.sag-dir-stat { display: flex; flex-direction: column; padding: 16px; border: 1px solid var(--sag-dir-border); border-radius: 18px; background: var(--sag-dir-surface); }
.sag-dir-summary .sag-dir-stat::before {
    content: ""; order: -2; flex: none; width: 38px; height: 38px; margin-bottom: 12px; border-radius: 12px;
    background: var(--sag-dir-card) var(--sag-dir-icon) center / 19px no-repeat; border: 1px solid var(--sag-dir-border);
}
.sag-dir-stat dd { order: -1; font-size: 1.55em; font-weight: 800; line-height: 1.15; color: var(--sag-dir-ink); white-space: nowrap; }
.sag-dir-stat dt { margin-top: 4px; font-size: .82em; font-weight: 500; line-height: 1.3; color: var(--sag-dir-muted); }
.sag-dir-stat--rating dd { color: var(--sag-dir-star); }
.sag-dir-stat--count { --sag-dir-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21l18 0'/%3E%3Cpath d='M3 7v1a3 3 0 0 0 6 0v-1m0 1a3 3 0 0 0 6 0v-1m0 1a3 3 0 0 0 6 0v-1h-18l2 -4h14l2 4'/%3E%3Cpath d='M5 21l0 -10.15'/%3E%3Cpath d='M19 21l0 -10.15'/%3E%3Cpath d='M9 21v-4a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v4'/%3E%3C/svg%3E"); }
.sag-dir-stat--rating { --sag-dir-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b45309' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z'/%3E%3C/svg%3E"); }
.sag-dir-stat--reviews { --sag-dir-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 20l1.3 -3.9c-2.324 -3.437 -1.426 -7.872 2.1 -10.374c3.526 -2.501 8.59 -2.296 11.845 .48c3.255 2.777 3.695 7.266 1.029 10.501c-2.666 3.235 -7.615 4.215 -11.574 2.293l-4.7 1'/%3E%3C/svg%3E"); }
.sag-dir-stat--sunday { --sag-dir-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z'/%3E%3Cpath d='M16 3l0 4'/%3E%3Cpath d='M8 3l0 4'/%3E%3Cpath d='M4 11l16 0'/%3E%3Cpath d='M8 15h2v2h-2z'/%3E%3C/svg%3E"); }
.sag-dir-stat--phone { --sag-dir-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4h4l2 5l-2.5 1.5a11 11 0 0 0 5 5l1.5 -2.5l5 2v4a2 2 0 0 1 -2 2a16 16 0 0 1 -15 -15a2 2 0 0 1 2 -2'/%3E%3C/svg%3E"); }

/* Highlights */
.sag-dir-summary__highlights { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.sag-dir-highlight { position: relative; padding: 18px; padding-inline: 66px 18px; border: 1px solid var(--sag-dir-border); border-radius: 18px; background: var(--sag-dir-surface); }
.sag-dir-summary .sag-dir-highlight::before {
    content: ""; position: absolute; top: 18px; inset-inline-start: 18px; width: 36px; height: 36px; border-radius: 12px;
    background: var(--sag-dir-card) var(--sag-dir-icon) center / 19px no-repeat; border: 1px solid var(--sag-dir-border);
}
.sag-dir-highlight--best { --sag-dir-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 9m-6 0a6 6 0 1 0 12 0a6 6 0 1 0 -12 0'/%3E%3Cpath d='M12 15l3.4 5.89l1.598 -3.233l3.598 .232l-3.4 -5.889'/%3E%3Cpath d='M6.802 12l-3.4 5.89l3.598 -.233l1.598 3.232l3.4 -5.889'/%3E%3C/svg%3E"); }
.sag-dir-highlight--popular { --sag-dir-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 7m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0'/%3E%3Cpath d='M3 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3Cpath d='M21 21v-2a4 4 0 0 0 -3 -3.85'/%3E%3C/svg%3E"); }
.sag-dir-highlight--sunday { --sag-dir-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 5m0 2a2 2 0 0 1 2 -2h12a2 2 0 0 1 2 2v12a2 2 0 0 1 -2 2h-12a2 2 0 0 1 -2 -2z'/%3E%3Cpath d='M16 3l0 4'/%3E%3Cpath d='M8 3l0 4'/%3E%3Cpath d='M4 11l16 0'/%3E%3Cpath d='M8 15h2v2h-2z'/%3E%3C/svg%3E"); }
.sag-dir-highlight--late, .sag-dir-highlight--h24 { --sag-dir-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z'/%3E%3C/svg%3E"); }
.sag-dir-highlight__kind { font-size: .7em; font-weight: 700; line-height: 1.35; letter-spacing: .06em; text-transform: uppercase; color: var(--sag-dir-accent-strong); }
.sag-dir-highlight__name { margin-top: 5px !important; font-weight: 800; line-height: 1.3; color: var(--sag-dir-ink); }
.sag-dir-highlight__detail { margin-top: 3px !important; font-size: .88em; color: var(--sag-dir-text); }

/* Comparison table */
.sag-dir-summary .sag-dir-summary__table { overflow-x: auto; border: 1px solid var(--sag-dir-border); border-radius: 18px; background: var(--sag-dir-card); }
.sag-dir-summary .sag-dir-summary__table thead th {
    background: var(--sag-dir-surface); color: var(--sag-dir-muted); padding: 15px 16px;
    font-size: .78em; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; white-space: nowrap; text-align: center; border-bottom: 1px solid var(--sag-dir-border);
}
.sag-dir-summary .sag-dir-summary__table thead th:first-child { text-align: start; }
.sag-dir-summary .sag-dir-summary__table tbody th, .sag-dir-summary .sag-dir-summary__table tbody td { padding: 14px 16px; border-top: 1px solid var(--sag-dir-border); white-space: nowrap; }
.sag-dir-summary .sag-dir-summary__table tbody td { text-align: center; }
.sag-dir-summary .sag-dir-summary__table tbody tr:first-child > * { border-top: 0; }
.sag-dir-summary .sag-dir-summary__table tbody tr:hover > * { background: var(--sag-dir-surface); }
.sag-dir-summary .sag-dir-summary__table tbody th { position: sticky; inset-inline-start: 0; z-index: 1; white-space: normal; min-width: 240px; color: var(--sag-dir-ink); font-weight: 800; }
.sag-dir-summary .sag-dir-summary__table tbody th > * { vertical-align: middle; }
.sag-dir-rank {
    display: inline-flex; align-items: center; justify-content: center; flex: none; width: 36px; height: 36px; margin-inline-end: 14px;
    border-radius: 50%; background: var(--sag-dir-no-bg); color: var(--sag-dir-muted); font-size: .92em; font-weight: 800;
}
.sag-dir-rank--1 { background: var(--sag-dir-accent); color: #fff; box-shadow: 0 6px 14px rgba(37, 99, 235, .3); }
.sag-dir-rank--2 { background: var(--sag-dir-accent-soft); color: var(--sag-dir-accent-strong); }
.sag-dir-rank--3 { background: var(--sag-dir-third-bg); color: var(--sag-dir-third); }
.sag-dir-row__name { display: inline-flex; flex-direction: column; max-width: calc(100% - 54px); line-height: 1.3; }
.sag-dir-row__reviews { margin-top: 3px; font-size: .82em; font-weight: 400; color: var(--sag-dir-muted); }
.sag-dir-stars {
    display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: 999px;
    background: var(--sag-dir-star-bg); color: var(--sag-dir-star); font-weight: 800; line-height: 1.2;
}
.sag-dir-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: 999px; font-size: .92em; font-weight: 700; line-height: 1.2; }
.sag-dir-chip.is-yes { background: var(--sag-dir-yes-bg); color: var(--sag-dir-yes); }
.sag-dir-chip.is-no { background: var(--sag-dir-no-bg); color: var(--sag-dir-no); font-weight: 600; }
.sag-dir-chip.is-unknown { background: none; color: var(--sag-dir-no); }

/* Opening days */
.sag-dir-summary .sag-dir-summary__week { overflow-x: auto; border: 1px solid var(--sag-dir-border); border-radius: 18px; background: var(--sag-dir-card); }
.sag-dir-summary .sag-dir-summary__week th, .sag-dir-summary .sag-dir-summary__week td { padding: 10px 6px; text-align: center; border-top: 1px solid var(--sag-dir-border); }
.sag-dir-summary .sag-dir-summary__week thead th { border-top: 0; background: var(--sag-dir-surface); color: var(--sag-dir-muted); font-size: .9em; font-weight: 700; padding: 14px 6px; }
.sag-dir-summary .sag-dir-summary__week thead th:first-child { text-align: start; padding-inline-start: 20px; }
.sag-dir-summary .sag-dir-summary__week thead th.is-today { color: var(--sag-dir-accent-strong); font-weight: 800; }
.sag-dir-summary .sag-dir-summary__week tbody th { text-align: start; padding-inline: 20px 14px; color: var(--sag-dir-ink); font-weight: 700; line-height: 1.3; min-width: 15em; }
.sag-dir-summary .sag-dir-summary__week tbody th::before {
    content: ""; display: inline-block; vertical-align: middle; width: 36px; height: 36px; margin-inline-end: 14px; border-radius: 10px;
    background: var(--sag-dir-accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 21l18 0'/%3E%3Cpath d='M3 7v1a3 3 0 0 0 6 0v-1m0 1a3 3 0 0 0 6 0v-1m0 1a3 3 0 0 0 6 0v-1h-18l2 -4h14l2 4'/%3E%3Cpath d='M5 21l0 -10.15'/%3E%3Cpath d='M19 21l0 -10.15'/%3E%3Cpath d='M9 21v-4a2 2 0 0 1 2 -2h2a2 2 0 0 1 2 2v4'/%3E%3C/svg%3E") center / 19px no-repeat;
}
.sag-dir-week__name { vertical-align: middle; }
.sag-dir-summary .sag-dir-summary__week thead th:not(:first-child) { white-space: nowrap; padding-inline: 8px; }
.sag-dir-summary .sag-dir-week__short { display: none; text-decoration: none; border: 0; cursor: inherit; }
.sag-dir-summary a.sag-dir-link { color: inherit; text-decoration: none; box-shadow: none; }
.sag-dir-summary a.sag-dir-link:hover, .sag-dir-summary a.sag-dir-link:focus-visible { color: var(--sag-dir-accent-strong); text-decoration: underline; text-underline-offset: 3px; }
/* Hover tooltip on each day: that day's hours, or "Open now · Closes at…" for today (filled in the browser). */
.sag-dir-summary .sag-dir-summary__week td[data-tip] { position: relative; }
.sag-dir-summary .sag-dir-summary__week td[data-tip]::after {
    content: attr(data-tip); position: absolute; bottom: calc(100% - 6px); left: 50%; z-index: 3; transform: translateX(-50%);
    padding: 6px 10px; border-radius: 8px; background: var(--sag-dir-ink); color: #fff; font-size: .78em; font-weight: 600; line-height: 1.3; white-space: nowrap;
    box-shadow: 0 6px 16px rgba(15, 27, 61, .2); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .12s ease;
}
.sag-dir-summary .sag-dir-summary__week td[data-tip]:hover::after { opacity: 1; visibility: visible; }
.sag-dir-summary .sag-dir-summary__week td[data-tip]:nth-last-child(-n+2)::after { left: auto; inset-inline-end: 4px; transform: none; }
.sag-dir-summary .sag-dir-summary__week td { width: 52px; }
.sag-dir-summary .sag-dir-summary__week .is-today { background: var(--sag-dir-accent-soft); }
.sag-dir-summary .sag-dir-summary__week thead th.is-today { background: #dbe8ff; }
.sag-dir-day { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; font-weight: 800; line-height: 1; }
.is-open > .sag-dir-day { background: var(--sag-dir-yes-bg); color: var(--sag-dir-yes); }
.is-closed > .sag-dir-day { background: var(--sag-dir-no-bg); color: var(--sag-dir-no); }
.is-today.is-open > .sag-dir-day { background: var(--sag-dir-accent); color: #fff; box-shadow: 0 4px 10px rgba(37, 99, 235, .3); }
.sag-dir-badge { display: inline-block; vertical-align: middle; margin-inline-start: 8px; padding: 2px 10px; border-radius: 999px; background: var(--sag-dir-accent-soft); color: var(--sag-dir-accent-strong); font-size: .8em; font-weight: 700; white-space: nowrap; }

/* Closing sections: H2 and intro paragraph written into the content above the comparison and opening days cards */
.sag-dir-section__intro + .sag-dir-summary { margin-top: 20px; }
/* Business names in the tables link to their review: keep the heading clear of sticky theme headers. */
h3:target { scroll-margin-top: 96px; }

/* Methodology */
.sag-dir-method {
    position: relative; margin: 28px 0; padding: 18px 20px; padding-inline-start: 60px;
    border: 1px solid var(--sag-dir-border); border-radius: 18px; background: var(--sag-dir-surface); color: var(--sag-dir-text); line-height: 1.6;
}
.sag-dir-method::before {
    content: ""; position: absolute; top: 18px; inset-inline-start: 20px; width: 24px; height: 24px; background: var(--sag-dir-accent);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M11.46 20.846a12 12 0 0 1 -7.96 -14.846a12 12 0 0 0 8.5 -3a12 12 0 0 0 8.5 3a12 12 0 0 1 -.09 7.06'/%3E%3Cpath d='M15 19l2 2l4 -4'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' %3E%3Cpath d='M11.46 20.846a12 12 0 0 1 -7.96 -14.846a12 12 0 0 0 8.5 -3a12 12 0 0 0 8.5 3a12 12 0 0 1 -.09 7.06'/%3E%3Cpath d='M15 19l2 2l4 -4'/%3E%3C/svg%3E") center / contain no-repeat;
}
.sag-dir-method p { margin: 0 0 6px; }
.sag-dir-method p:last-child { margin-bottom: 0; }
.sag-dir-method__title { font-weight: 700; color: var(--sag-dir-accent-strong); }
.sag-dir-method__date { font-size: .85em; color: var(--sag-dir-muted); }

/* Comparison rows become cards when the card is narrow: no horizontal scroll. */
@container (max-width: 640px) {
    .sag-dir-summary .sag-dir-summary__table { overflow: visible; border: 0; border-radius: 0; background: none; }
    .sag-dir-summary .sag-dir-summary__table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .sag-dir-summary .sag-dir-summary__table table, .sag-dir-summary .sag-dir-summary__table tbody { display: block; }
    .sag-dir-summary .sag-dir-summary__table tbody tr:nth-child(n) {
        display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 14px; margin-bottom: 12px; padding: 16px;
        border: 1px solid var(--sag-dir-border); border-radius: 16px; background: var(--sag-dir-card);
    }
    .sag-dir-summary .sag-dir-summary__table tbody tr:hover > * { background: none; }
    .sag-dir-summary .sag-dir-summary__table tbody th, .sag-dir-summary .sag-dir-summary__table tbody td { display: block; position: static; min-width: 0; padding: 0; border: 0; background: none; white-space: normal; text-align: start; }
    .sag-dir-summary .sag-dir-summary__table tbody th { grid-column: 1 / -1; display: flex; align-items: center; padding-bottom: 12px; border-bottom: 1px solid var(--sag-dir-border); }
    .sag-dir-summary .sag-dir-summary__table tbody td::before {
        content: attr(data-label); display: block; margin-bottom: 6px; font-size: .72em; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--sag-dir-muted);
    }
}
/* Short day names when the full ones do not fit. */
@container (max-width: 780px) {
    .sag-dir-summary .sag-dir-week__full { display: none; }
    .sag-dir-summary .sag-dir-week__short { display: inline; }
}
@container (max-width: 560px) {
    .sag-dir-card__head { gap: 12px; margin-bottom: 16px; }
    .sag-dir-card__icon { width: 44px; height: 44px; border-radius: 14px; background-size: 22px; }
    .sag-dir-summary__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .sag-dir-stat { padding: 14px; }
    .sag-dir-summary .sag-dir-stat::before { width: 32px; height: 32px; margin-bottom: 10px; background-size: 17px; }
    .sag-dir-stat dd { font-size: 1.3em; }
    /* Opening days: business name on its own line above the seven days. */
    .sag-dir-summary .sag-dir-summary__week { overflow: visible; }
    .sag-dir-summary .sag-dir-summary__week table, .sag-dir-summary .sag-dir-summary__week thead, .sag-dir-summary .sag-dir-summary__week tbody { display: block; }
    .sag-dir-summary .sag-dir-summary__week tr { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); padding: 4px 8px 8px; }
    .sag-dir-summary .sag-dir-summary__week tbody tr:nth-child(n) { border-top: 1px solid var(--sag-dir-border); }
    .sag-dir-summary .sag-dir-summary__week thead tr { padding: 0 8px; background: var(--sag-dir-surface); border-radius: 18px 18px 0 0; }
    .sag-dir-summary .sag-dir-summary__week thead th:first-child { display: none; }
    .sag-dir-summary .sag-dir-summary__week tbody th { grid-column: 1 / -1; display: flex; align-items: center; flex-wrap: wrap; min-width: 0; padding: 8px 4px; background: none; }
    .sag-dir-summary .sag-dir-summary__week tbody th::before { width: 30px; height: 30px; margin-inline-end: 10px; background-size: 16px; }
    .sag-dir-summary .sag-dir-summary__week th, .sag-dir-summary .sag-dir-summary__week td { display: block; width: auto; padding: 4px 0; border: 0; }
    .sag-dir-summary .sag-dir-summary__week thead th { padding: 10px 0; }
    .sag-dir-summary .sag-dir-summary__week td.is-today { border-radius: 10px; }
    .sag-dir-day { width: 30px; height: 30px; font-size: .9em; }
}
@media (max-width: 480px) {
    .sag-dir-summary { padding: 18px 14px; border-radius: 20px; }
    .sag-dir-method { padding-inline-start: 54px; }
}
@media print {
    .sag-dir-summary, .sag-dir-method { border: 1px solid #ddd; background: none; box-shadow: none; break-inside: avoid; }
    .sag-dir-summary .sag-dir-summary__table, .sag-dir-summary .sag-dir-summary__week { overflow: visible; }
    .sag-dir-summary .sag-dir-summary__table tbody th { position: static; }
    .sag-dir-rank, .sag-dir-day, .sag-dir-chip, .sag-dir-stars, .sag-dir-card__icon { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
