/* Shared sensory explorer and branch controls for both landing variants. */
.taste-section {
    --taste-bg: #12100e;
    --taste-surface: #1d1916;
    --taste-text: #fffaf4;
    --taste-muted: #a99e94;
    --taste-line: rgba(212, 163, 89, 0.2);
    --taste-brand: #d4a359;
    position: relative;
    padding: clamp(76px, 9vw, 128px) 0;
    overflow: hidden;
    color: var(--taste-text);
    background: var(--taste-bg);
}

.taste-section--classic {
    --taste-bg: #f4eadc;
    --taste-surface: #fffaf2;
    --taste-text: #211912;
    --taste-muted: #756251;
    --taste-line: rgba(74, 45, 27, 0.15);
    --taste-brand: #b54d2c;
}

.taste-section::before {
    position: absolute;
    inset: -30% auto auto -10%;
    width: min(60vw, 780px);
    aspect-ratio: 1;
    content: "";
    border-radius: 50%;
    background: radial-gradient(circle, color-mix(in srgb, var(--taste-brand) 15%, transparent), transparent 67%);
    pointer-events: none;
}

.taste-shell {
    position: relative;
    z-index: 1;
    width: min(1240px, calc(100% - 40px));
    margin-inline: auto;
}

.taste-heading {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.72fr);
    align-items: end;
    gap: clamp(36px, 8vw, 120px);
    margin-bottom: clamp(38px, 5vw, 64px);
}

.taste-eyebrow,
.taste-profile-label {
    margin: 0 0 10px;
    color: var(--taste-brand);
    font-size: 0.7rem;
    font-weight: 900;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.taste-heading h2 {
    max-width: 780px;
    margin: 0;
    color: var(--taste-text);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.7rem, 5.6vw, 5.25rem);
    font-weight: 600;
    line-height: 0.98;
}

.taste-section--velvet .taste-heading h2 {
    font-family: "Playfair Display", Georgia, serif;
}

.taste-heading h2 em {
    color: var(--taste-brand);
    font-weight: 600;
}

.taste-heading > p {
    margin: 0;
    color: var(--taste-muted);
    line-height: 1.75;
}

.taste-explorer {
    display: grid;
    grid-template-columns: minmax(250px, 0.68fr) minmax(0, 1.62fr);
    min-height: 560px;
    border: 1px solid var(--taste-line);
    border-radius: 26px;
    overflow: hidden;
    background: var(--taste-surface);
    box-shadow: 0 30px 90px rgba(30, 18, 11, 0.15);
}

.taste-tabs {
    display: grid;
    grid-template-rows: repeat(3, 1fr);
    border-right: 1px solid var(--taste-line);
}

.taste-tabs button {
    position: relative;
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    align-content: center;
    gap: 2px 14px;
    padding: 26px 28px;
    color: var(--taste-muted);
    text-align: left;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--taste-line);
    cursor: pointer;
    transition: color 220ms ease, background 220ms ease;
}

.taste-tabs button:last-child { border-bottom: 0; }
.taste-tabs button::after { position: absolute; inset: 18px auto 18px 0; width: 3px; content: ""; border-radius: 0 3px 3px 0; background: var(--taste-brand); transform: scaleY(0); transition: transform 220ms ease; }
.taste-tabs button:hover { color: var(--taste-text); background: color-mix(in srgb, var(--taste-brand) 5%, transparent); }
.taste-tabs button[aria-selected="true"] { color: var(--taste-text); background: color-mix(in srgb, var(--taste-brand) 9%, transparent); }
.taste-tabs button[aria-selected="true"]::after { transform: scaleY(1); }
.taste-tabs button:focus-visible { outline: 3px solid color-mix(in srgb, var(--taste-brand) 65%, white); outline-offset: -5px; }
.taste-tabs button > span { grid-row: 1 / span 2; color: var(--taste-brand); font-size: 0.65rem; font-weight: 900; letter-spacing: 0.1em; }
.taste-tabs strong { font-family: Georgia, "Times New Roman", serif; font-size: 1.25rem; line-height: 1.15; }
.taste-tabs small { font-size: 0.7rem; line-height: 1.4; }

.taste-panels,
.taste-panel { min-width: 0; }
.taste-panel { min-height: 100%; display: grid; grid-template-columns: minmax(320px, 0.92fr) minmax(300px, 1fr); align-items: stretch; }
.taste-panel[hidden] { display: none; }

.taste-visual {
    position: relative;
    min-height: 560px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-right: 1px solid var(--taste-line);
    background:
        radial-gradient(circle at 50% 52%, color-mix(in srgb, var(--taste-accent) 28%, transparent) 0 12%, transparent 13%),
        radial-gradient(circle at 50% 52%, transparent 0 31%, color-mix(in srgb, var(--taste-accent) 26%, transparent) 31.4% 31.8%, transparent 32%),
        radial-gradient(circle at 50% 52%, transparent 0 46%, color-mix(in srgb, var(--taste-accent) 16%, transparent) 46.4% 46.8%, transparent 47%),
        color-mix(in srgb, var(--taste-surface) 88%, var(--taste-accent));
}

.taste-visual::before {
    position: absolute;
    width: 54%;
    aspect-ratio: 1;
    content: "";
    border-radius: 50%;
    background: radial-gradient(circle at 35% 28%, color-mix(in srgb, var(--taste-accent) 60%, white), var(--taste-accent) 48%, color-mix(in srgb, var(--taste-accent) 60%, black));
    filter: blur(0.2px);
    opacity: 0.82;
    box-shadow: 0 30px 60px color-mix(in srgb, var(--taste-accent) 24%, transparent);
}

.taste-cup {
    position: relative;
    z-index: 2;
    width: 122px;
    height: 80px;
    border-radius: 8px 8px 52px 52px;
    background: linear-gradient(145deg, #fffdf8, #d9cdc0);
    box-shadow: 0 22px 40px rgba(20, 10, 5, 0.3);
}

.taste-cup::before { position: absolute; inset: -10px 5px auto; height: 20px; content: ""; border-radius: 50%; background: #4a2a1c; border: 7px solid #f3ece3; box-shadow: inset 0 3px 0 rgba(255,255,255,.16); }
.taste-cup::after { position: absolute; top: 15px; right: -31px; width: 34px; height: 40px; content: ""; border: 10px solid #e8ded3; border-left: 0; border-radius: 0 30px 30px 0; }
.taste-cup span { position: absolute; right: 10px; bottom: -11px; left: -9px; height: 14px; border-radius: 50%; background: rgba(20,10,5,.18); filter: blur(5px); }

.taste-orbit { position: absolute; z-index: 3; min-height: 34px; display: inline-flex; align-items: center; padding: 0 12px; color: var(--taste-text); background: color-mix(in srgb, var(--taste-surface) 82%, transparent); border: 1px solid color-mix(in srgb, var(--taste-accent) 42%, transparent); border-radius: 999px; box-shadow: 0 10px 28px rgba(15,8,4,.18); backdrop-filter: blur(12px); font-size: .66rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }
.taste-orbit--one { top: 17%; left: 12%; }
.taste-orbit--two { top: 26%; right: 8%; }
.taste-orbit--three { right: 14%; bottom: 16%; }

.taste-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: clamp(34px, 5vw, 68px);
}

.taste-content h3 { margin: 0; color: var(--taste-text); font-family: Georgia, "Times New Roman", serif; font-size: clamp(2.25rem, 4vw, 4.25rem); font-weight: 600; line-height: 1; }
.taste-description { max-width: 520px; margin: 22px 0 30px; color: var(--taste-muted); line-height: 1.7; }
.taste-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0; border-top: 1px solid var(--taste-line); }
.taste-facts div { padding: 16px 14px 16px 0; border-bottom: 1px solid var(--taste-line); }
.taste-facts div:nth-child(odd) { border-right: 1px solid var(--taste-line); }
.taste-facts div:nth-child(even) { padding-left: 18px; }
.taste-facts dt { color: var(--taste-muted); font-size: 0.62rem; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.taste-facts dd { margin: 4px 0 0; color: var(--taste-text); font-size: 0.86rem; font-weight: 800; }
.taste-method { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 22px 0 0; color: var(--taste-muted); font-size: 0.72rem; }
.taste-method strong { color: var(--taste-brand); font-size: 0.82rem; letter-spacing: 0.05em; text-transform: uppercase; }
.taste-disclaimer { margin: 18px 0 0; color: var(--taste-muted); font-size: 0.7rem; font-style: italic; text-align: right; }

.taste-panel.is-entering .taste-visual,
.taste-panel.is-entering .taste-content { animation: taste-enter 420ms cubic-bezier(.2,.75,.25,1) both; }
.taste-panel.is-entering .taste-content { animation-delay: 60ms; }

.branch-switcher {
    --switch-bg: rgba(255,255,255,.04);
    --switch-text: inherit;
    --switch-muted: currentColor;
    --switch-line: rgba(128,128,128,.24);
    --switch-active-bg: #d4a359;
    --switch-active-text: #17110c;
    display: flex;
    align-items: center;
    gap: 8px;
    margin: -10px 0 28px;
    padding: 6px;
    overflow-x: auto;
    border: 1px solid var(--switch-line);
    border-radius: 999px;
    background: var(--switch-bg);
    scrollbar-width: none;
}

.classic-home .branch-switcher { --switch-bg: rgba(255,255,255,.58); --switch-line: rgba(60,39,23,.14); --switch-active-bg: #3a2117; --switch-active-text: #fffaf2; }
.branch-switcher::-webkit-scrollbar { display: none; }
.branch-switcher button { flex: 0 0 auto; min-height: 40px; padding: 0 15px; color: var(--switch-text); background: transparent; border: 0; border-radius: 999px; cursor: pointer; font: inherit; font-size: .7rem; font-weight: 850; transition: color 180ms ease, background 180ms ease, transform 180ms ease; }
.branch-switcher button:hover { transform: translateY(-1px); }
.branch-switcher button.is-active { color: var(--switch-active-text); background: var(--switch-active-bg); }
.branch-switcher [data-branch-status] { flex: 1 0 180px; margin: 0 10px 0 auto; color: var(--switch-muted); font-size: .68rem; opacity: .68; text-align: right; }
[data-branch-card] { transition: opacity 220ms ease, transform 220ms ease, border-color 220ms ease, box-shadow 220ms ease; }
.has-branch-selection [data-branch-card]:not(.is-selected) { opacity: .58; transform: scale(.985); }
.velvet-home [data-branch-card].is-selected { border-color: rgba(212,163,89,.56); box-shadow: 0 24px 70px rgba(0,0,0,.34), 0 0 0 1px rgba(212,163,89,.16); }
.classic-home [data-branch-card].is-selected { border-color: rgba(181,77,44,.44); box-shadow: 0 24px 58px rgba(58,33,23,.16); }

@keyframes taste-enter {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1040px) {
    .taste-explorer { grid-template-columns: minmax(0, 1fr); }
    .taste-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: auto; border-right: 0; border-bottom: 1px solid var(--taste-line); }
    .taste-tabs button { border-right: 1px solid var(--taste-line); border-bottom: 0; }
    .taste-tabs button:last-child { border-right: 0; }
    .taste-tabs button::after { inset: auto 18px 0; width: auto; height: 3px; transform: scaleX(0); }
    .taste-tabs button[aria-selected="true"]::after { transform: scaleX(1); }
}

@media (max-width: 780px) {
    .taste-heading { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .taste-heading h2 { font-size: clamp(2.55rem, 12vw, 4.2rem); }
    .taste-explorer { border-radius: 18px; }
    .taste-tabs { display: flex; overflow-x: auto; scrollbar-width: none; }
    .taste-tabs::-webkit-scrollbar { display: none; }
    .taste-tabs button { min-width: 220px; padding: 20px; }
    .taste-panel { grid-template-columns: minmax(0, 1fr); }
    .taste-visual { min-height: 390px; border-right: 0; border-bottom: 1px solid var(--taste-line); }
    .taste-content { padding: 34px 24px 38px; }
    .taste-disclaimer { text-align: left; }
    .branch-switcher [data-branch-status] { display: none; }
}

@media (max-width: 420px) {
    .taste-shell { width: calc(100% - 28px); }
    .taste-facts { grid-template-columns: minmax(0, 1fr); }
    .taste-facts div:nth-child(odd) { border-right: 0; }
    .taste-facts div:nth-child(even) { padding-left: 0; }
    .taste-method { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .taste-panel.is-entering .taste-visual,
    .taste-panel.is-entering .taste-content { animation: none; }
    [data-branch-card], .taste-tabs button { transition: none; }
}
