/* ============================================================
   /visit/tastings — Wine Tastings (v13)
   ------------------------------------------------------------
   Brief:     docs/briefs/2026-08-30-visit-family-wp-port.md (AC 3)
              docs/briefs/2026-09-04-visit-tasting-section-v13.md (pass 4)
   Prototype: prototypes/13/04b-tastings.html @ ce2bea7f (pass 4 dc42e859)
   Enqueued:  functions.php, gated to is_page('tastings'), plus the
              rhinory-v4-tastings-editor handle for the Site Editor canvas.

   REGISTER. Dark chrome around a light paper body, with two
   deliberate black strips (the Crash Collection block and the Glass
   and Bottle block, which share the same component) and the ink
   dual closer.

   SCOPE. Every rule hangs off .rhinory-tastings (the block wrapper).
   The closer shares its `.xa-dual` / `.xd-*` class family with the
   Experiences closer by design — they are one component — so scoping
   is what keeps the two pages' copies of those rules from fighting.
   The prototype's page-shell rules (.skip-link, #content, bare `a`,
   main.light-warm) are NOT ported; the theme shell owns those.

   TOKENS. The prototype resolves these from styles.css :root plus the
   .light-warm block in v13-shared.css. Only the subset this page reads
   is declared, same call club.css / visit-hub.css / experiences.css make.
   ============================================================ */

/* Declared on BOTH the template <main> and the block wrapper: the front end
   gets the tokens from the page shell, and the Site Editor canvas — which
   renders the block on its own, with no <main> around it — gets the identical
   set from .rhinory-tastings. */
.rhinory-page--tastings,
.rhinory-tastings{
  /* dark register (styles.css :root) */
  --reserve:#211B18;
  --reserve-2:#2A221E;
  --ink:#1C1916;
  --ivory:#F3F2ED;
  --acacia:#B97727;
  --rhino:#A8A199;
  --rule:rgba(243,242,237,0.16);
  --gold-soft:#E2C58F;
  /* light / paper register (v13-shared.css .light-warm) */
  --paper:#FBF7EE;
  --card:#F4EEE0;
  --card-2:#EAE1CE;
  --ink-warm:#2D2926;
  --ink-warm-2:#3A352F;
  --rhino-warm:#717271;
  --rule-warm:rgba(45,41,38,0.10);
  --rule-warm-2:rgba(45,41,38,0.18);
  --burgundy:#520000;
  /* shared type scale (v13-shared.css :root) */
  --type-hero:clamp(46px,6vw,84px);
  --type-h2:clamp(40px,5.4vw,76px);
  --type-h3:clamp(26px,2.6vw,34px);
  --type-lede:18px;
  --type-body:16px;
  background:var(--paper);
  color:var(--ink-warm);
}

/* The prototype's base type is the browser default 16px/1.55; theme.json puts
   the site on 17px. Pinned so every inherited-size element measures the same
   as the design. */
.rhinory-tastings{
  font-family:"Lora",Georgia,serif;
  font-size:16px;
  line-height:1.55;
}
/* The prototype's `main.light-warm a:not(.va-btn):hover` rule, scoped. */
.rhinory-tastings a:not(.tb-btn):hover{color:#520000}
/* styles.css base: images are blocks, links carry no underline, buttons inherit
   type. Site-wide in the prototype, scoped here. The button reset matters
   because the reserve CTAs ship as real <button>s (the drawer delegates on
   [data-rhinory-reserve] via closest(), and a control that opens a panel is a
   button, not a dead href="#" link). */
.rhinory-tastings img{max-width:100%;display:block}
.rhinory-tastings a{color:inherit;text-decoration:none}
.rhinory-tastings button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}

/* theme.json's `elements.heading` sets letter-spacing:-0.01em and line-height:1
   site-wide; the prototype has no equivalent, so a heading there falls to the UA
   default and inherits the body's 1.55. Ported heading rules that state their
   own values still win — this only catches the ones that state neither, which
   otherwise measure off the design (same call visit-hub.css makes). */
.rhinory-tastings :is(h1,h2,h3,h4,h5,h6){letter-spacing:normal;line-height:inherit}

/* Footer clearance for the sticky booking dock. The prototype writes this as
   `body>footer`, which does not describe this theme: the footer is a
   template-part sibling of <main>. This sheet is page-gated, so the bare
   element selector reaches only the Tastings footer. The dock's own
   shrink-to-fit fix (`width:max-content`) is NOT here — it went into the
   SHARED .book-bar rule in style.css, which is what the brief asked for. */
footer.wp-block-template-part{padding-bottom:clamp(104px,12vh,140px)}

/* ============ ported prototype rules (scoped, otherwise verbatim) ============ */

/* v13 vocabulary only. Accents locked: acacia #B97727 (dark) · burgundy #520000 (light).
   Cormorant 500 light / 600 dark. Registers: paper hero + menu card, framed featured block,
   paper members strip, black Crash Collection block, reserve people band, ink closer.
   Sibling: 04-visit-page.html (hub) and 04a-experiences.html. */

/* ---- HERO · light + cinematic, wine-forward. One line, no dark overlay. ---- */
.rhinory-tastings .tb-hero{background:var(--paper);color:var(--ink-warm)}
.rhinory-tastings .tb-hero-type{max-width:1360px;margin:0 auto;padding:clamp(52px,8vh,92px) 40px clamp(40px,6vh,64px);text-align:center}
.rhinory-tastings .tb-hero h1{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:var(--type-hero);line-height:1.0;letter-spacing:-0.012em;color:var(--ink-warm);margin:0 auto;max-width:16ch;text-wrap:balance}
.rhinory-tastings .tb-hero h1 em{font-style:italic;font-weight:500;color:#520000}
.rhinory-tastings .tb-hero-sub{font-family:"Lora",Georgia,serif;font-size:var(--type-lede);line-height:1.66;color:var(--ink-warm-2);margin:18px auto 0;max-width:52ch}
.rhinory-tastings .tb-hero-film{position:relative;width:100%;height:clamp(420px,72svh,740px);overflow:hidden;background:var(--card-2)}
.rhinory-tastings .tb-hero-film img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;display:block;filter:saturate(.94) contrast(1.04);transform:scale(1.03);animation:tbKb 26s ease-out forwards}
@keyframes tbKb{to{transform:scale(1.12)}}
.rhinory-tastings .tb-rv{opacity:0;transform:translateY(20px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
.rhinory-tastings.is-ready .tb-rv{opacity:1;transform:translateY(0)}
.rhinory-tastings.is-ready .tb-rv.d1{transition-delay:.1s}
.rhinory-tastings.is-ready .tb-rv.d2{transition-delay:.2s}
.rhinory-tastings.is-ready .tb-rv.d3{transition-delay:.3s}

/* ---- THE FLIGHTS · a menu, not a button wall. Head centered over the full-width rows. ---- */
.rhinory-tastings .tb-menu{background:var(--card);color:var(--ink-warm);padding:clamp(72px,9vh,120px) 0 clamp(48px,6vh,72px);border-top:1px solid var(--rule-warm-2)}
.rhinory-tastings .tb-sec-head{max-width:1360px;margin:0 auto 52px;padding:0 40px}
.rhinory-tastings .tb-sec-head h2{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:clamp(34px,3.6vw,52px);line-height:1.04;letter-spacing:-0.008em;color:var(--ink-warm);margin:0 0 16px;max-width:24ch;text-wrap:balance}
.rhinory-tastings .tb-sec-head h2 em{font-style:italic;font-weight:500;color:#520000}
.rhinory-tastings .tb-sec-head p{font-family:"Lora",Georgia,serif;font-size:var(--type-lede);line-height:1.68;color:var(--ink-warm-2);margin:0;max-width:58ch}
.rhinory-tastings .tb-menu .tb-sec-head{text-align:center}
.rhinory-tastings .tb-menu .tb-sec-head h2{margin:0 auto 18px;max-width:22ch}
.rhinory-tastings .tb-menu .tb-sec-head p{margin:0 auto;max-width:62ch}
/* "Pick your flight" · a small real heading over the columns, in the section-head type
   (Cormorant 500, ink, centered), one step below the section h2. Not a label. */
.rhinory-tastings .tt-pick{max-width:1360px;margin:0 auto;padding:0 40px 26px;text-align:center}
.rhinory-tastings .tt-pick h3{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:clamp(30px,2.9vw,40px);line-height:1.04;letter-spacing:-0.008em;color:var(--ink-warm);margin:0}
.rhinory-tastings .tb-meta{display:flex;flex-wrap:wrap;align-items:center;font-family:"Josefin Sans",sans-serif;font-size:10px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--rhino-warm);line-height:1.2;margin:0 0 14px}
.rhinory-tastings .tb-meta span{padding:2px 14px;border-left:1px solid var(--rule-warm-2)}
.rhinory-tastings .tb-meta span:first-child{padding-left:0;border-left:0}
.rhinory-tastings .tb-cue{font-family:"Cormorant Garamond",serif;font-style:italic;font-weight:500;font-size:20px;line-height:1.3;color:#520000;margin:0;display:flex;align-items:center;gap:12px}
.rhinory-tastings .tb-cue::before{content:"";flex:none;width:22px;height:1px;background:rgba(82,0,0,0.4)}
.rhinory-tastings .tb-price{text-align:right;font-family:"Cormorant Garamond",serif;font-weight:500;font-size:clamp(42px,4vw,52px);line-height:1;color:#520000}
.rhinory-tastings .tb-price small{display:block;font-family:"Josefin Sans",sans-serif;font-size:10px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:var(--rhino-warm);margin-top:7px}

/* ---- FLIGHT COLUMNS · treatment B from 20-tasting-menu-treatment.html (client pick
       2026-09-10). Three equal columns, the menu's hairline rhythm turned vertical: one rule
       between columns instead of between rows. The Special Offering column takes the card-2
       bed and the 2px burgundy top rule, so it still reads as the rotating one. Pass 4 adds
       a photo at the top of each column. ---- */
.rhinory-tastings .tt-cols{max-width:1360px;margin:0 auto;padding:0 40px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule-warm-2);border-bottom:1px solid var(--rule-warm-2)}
.rhinory-tastings .tt-col{display:flex;flex-direction:column;padding:clamp(26px,2.8vw,38px) clamp(20px,2.2vw,30px);border-left:1px solid var(--rule-warm-2)}
.rhinory-tastings .tt-col:first-child{border-left:0}
.rhinory-tastings .tt-col--season{background:var(--card-2);box-shadow:inset 0 2px 0 0 #520000}
.rhinory-tastings .tt-media{margin:0 0 22px;position:relative;overflow:hidden;aspect-ratio:4/3}
.rhinory-tastings .tt-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.96) contrast(1.03);box-shadow:inset 0 0 0 1px rgba(0,0,0,0.25)}
.rhinory-tastings .tt-col h3{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:clamp(27px,2.5vw,34px);line-height:1.04;letter-spacing:-0.006em;color:var(--ink-warm);margin:0 0 14px}
.rhinory-tastings .tt-col .tb-meta{margin:0 0 16px}
.rhinory-tastings .tt-col .tb-price{text-align:left;font-size:clamp(34px,3.2vw,42px);margin:0 0 16px}
.rhinory-tastings .tt-col .tb-cue{font-size:18.5px}
/* description · plain paragraph under the tagline, B's disclosure body type without the disclosure */
.rhinory-tastings .tt-desc{font-family:"Lora",Georgia,serif;font-size:15.5px;line-height:1.66;color:var(--ink-warm-2);margin:16px 0 0}
/* column foot · the one booking action for the whole flight menu */
.rhinory-tastings .tt-colfoot{max-width:1360px;margin:0 auto;padding:clamp(34px,4vw,48px) 40px 0;display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center}
.rhinory-tastings .tt-colfoot .tb-menufoot-note{max-width:46ch}
.rhinory-tastings .tb-menufoot-note{font-family:"Lora",Georgia,serif;font-size:15px;line-height:1.6;color:var(--ink-warm-2);margin:0;max-width:52ch}
.rhinory-tastings .tb-btn--burgundy{background:#520000;color:var(--paper);border:1px solid #520000;box-shadow:0 14px 34px -14px rgba(82,0,0,.55)}
.rhinory-tastings .tb-btn--burgundy:hover{background:#3D0000;border-color:#3D0000}
/* persistent booking dock · the shared v13 sticky book bar (.book-bar in styles.css):
   centered pill, #241C16 ground, acacia hairline, gold pill CTA, 0.35s rise. No local
   restyling. Two mechanical additions only: the footer clearance the pattern needs, and
   width:max-content, because left:50% with width:auto shrink-to-fits to half the viewport
   and wraps the pill into two lines between 681px and 976px. */

/* ---- MEMBERS NOTE · light strip, frame block, soft link only ---- */
.rhinory-tastings .tb-members{background:var(--card);color:var(--ink-warm);padding:0 40px clamp(72px,9vh,120px)}
.rhinory-tastings .tb-members-grid{display:grid;grid-template-columns:1fr auto;gap:48px;align-items:center;max-width:1360px;margin:0 auto;padding:clamp(26px,2.6vw,36px) clamp(28px,3vw,40px);background:var(--card-2);border:1px solid var(--rule-warm-2)}
.rhinory-tastings .tb-members .tl{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:clamp(24px,2.6vw,32px);line-height:1.14;color:var(--ink-warm);margin:0 0 10px}
.rhinory-tastings .tb-members .tl em{font-style:italic;font-weight:500;color:#520000}
.rhinory-tastings .tb-members p{font-family:"Lora",Georgia,serif;font-size:15.5px;line-height:1.62;color:var(--ink-warm-2);margin:0;max-width:62ch}
.rhinory-tastings .tb-members-link{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;min-width:280px;min-height:44px;border:1px solid rgba(82,0,0,0.42);color:#520000;padding:14px 24px;font-family:"Josefin Sans",sans-serif;font-size:11.5px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;text-decoration:none;transition:background .2s,border-color .2s}
.rhinory-tastings .tb-members-link .ar{transition:transform .25s ease}
.rhinory-tastings .tb-members-link:hover{background:rgba(82,0,0,0.05);border-color:#520000}
.rhinory-tastings .tb-members-link:hover .ar{transform:translateX(5px)}

/* ---- CRASH COLLECTION · the one black block (AC10). Not a portfolio flight, and
       deliberately the quietest block on the page: a slim strip, small type, a text link
       instead of a filled CTA. The portfolio flights above carry the visual weight. ---- */
.rhinory-tastings .tb-crash{background:#0B0908;color:var(--ivory);padding:clamp(54px,7vh,78px) 0;border-top:1px solid rgba(243,242,237,0.14)}
.rhinory-tastings .tb-crash-inner{display:grid;grid-template-columns:clamp(180px,17vw,232px) 1fr auto;gap:clamp(28px,3.2vw,48px);max-width:1360px;margin:0 auto;padding:0 40px;align-items:center}
.rhinory-tastings .tb-crash h2{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:clamp(24px,2.2vw,28px);line-height:1.14;letter-spacing:-0.004em;color:var(--ivory);margin:0 0 10px;max-width:34ch}
.rhinory-tastings .tb-crash h2 em{font-style:italic;font-weight:500;color:var(--acacia)}
.rhinory-tastings .tb-crash p{font-family:"Lora",Georgia,serif;font-size:14.5px;line-height:1.6;color:var(--ivory);opacity:.8;margin:0 0 12px;max-width:60ch}
.rhinory-tastings .tb-crash-meta{display:flex;flex-wrap:wrap;align-items:center;font-family:"Josefin Sans",sans-serif;font-size:10px;font-weight:600;letter-spacing:0.18em;text-transform:uppercase;color:rgba(243,242,237,0.62);line-height:1.2;margin:0}
.rhinory-tastings .tb-crash-meta span{padding:2px 14px;border-left:1px solid rgba(243,242,237,0.2)}
.rhinory-tastings .tb-crash-meta span:first-child{padding-left:0;border-left:0}
.rhinory-tastings .tb-crash-link{display:inline-flex;justify-self:start;align-items:center;gap:10px;min-height:44px;padding:13px 22px;font-family:"Josefin Sans",sans-serif;font-size:10.5px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:rgba(243,242,237,0.88);text-decoration:none;border:1px solid rgba(243,242,237,0.32);background:transparent;white-space:nowrap;transition:color .2s,border-color .2s,background .2s}
.rhinory-tastings .tb-crash-link:hover{color:var(--ivory);border-color:var(--acacia);background:rgba(185,119,39,0.14)}
.rhinory-tastings .tb-crash-link .ar{transition:transform .25s ease}
.rhinory-tastings .tb-crash-link:hover .ar{transform:translateX(4px)}
.rhinory-tastings .tb-crash-media{position:relative;overflow:hidden;margin:0;align-self:stretch}
.rhinory-tastings .tb-crash-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 34%;display:block;filter:saturate(.82) contrast(1.02);box-shadow:inset 0 0 0 1px rgba(243,242,237,0.14)}

/* ---- THE PEOPLE · dark register. One column of prose at one measure, photo held
       beside it, so the head leads straight into the copy instead of stacking two ledes. ---- */
.rhinory-tastings .tb-people{background:var(--reserve);color:var(--ivory);padding:clamp(80px,10vh,124px) 0;border-top:1px solid rgba(243,242,237,0.14)}
.rhinory-tastings .tb-people-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,420px);gap:clamp(36px,5vw,76px);max-width:1180px;margin:0 auto;padding:0 40px;align-items:stretch}
.rhinory-tastings .tb-people-copy{max-width:none}
.rhinory-tastings .tb-people-copy h2{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:clamp(34px,3.6vw,52px);line-height:1.02;letter-spacing:-0.01em;color:var(--ivory);margin:0 0 22px;max-width:20ch;text-wrap:balance}
.rhinory-tastings .tb-people-copy h2 em{font-style:italic;font-weight:600;color:var(--acacia)}
.rhinory-tastings .tb-people-photo{position:relative;overflow:hidden;margin:0;min-height:clamp(420px,50vh,560px)}
.rhinory-tastings .tb-people-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.94) contrast(1.05)}
.rhinory-tastings .tb-people-copy p{font-family:"Lora",Georgia,serif;font-size:16px;line-height:1.68;color:var(--ivory);opacity:.84;margin:0 0 18px;max-width:none}
.rhinory-tastings .tb-people-copy p.tb-people-lede{opacity:.96;margin:0 0 20px}
.rhinory-tastings .tb-people-copy p strong{font-weight:600;opacity:1}
.rhinory-tastings .tb-people-rule{height:1px;background:rgba(243,242,237,0.16);margin:0 0 22px}
/* ---- STAFF PORTRAIT · matched to the .keeper-row treatment on 06-rhino-reserve.html so staff
       bios read at one scale across the site: a large editorial 4/5 portrait held beside the
       bio at a 5fr/7fr split, hairline seam instead of a box, and the keeper lift-and-accent
       hover. One person, so one row rather than the 3-up keeper grid. The source asset is a
       square 708px headshot cropped at the crown, so the plate bottom-anchors the photo on a
       reserve bed and fades its top edge in: that adds real headroom above the head and drops
       the head to roughly shoulders-up scale without a new image. ---- */
.rhinory-tastings .tb-somm{display:grid;grid-template-columns:5fr 7fr;gap:clamp(30px,4.4vw,64px);align-items:center;max-width:1180px;margin:clamp(52px,6.5vh,84px) auto 0;padding:clamp(42px,5vh,64px) 40px 0;border:0;border-top:1px solid rgba(243,242,237,0.16);background:none;transition:transform .25s ease,border-color .25s ease}
.rhinory-tastings .tb-somm:hover{transform:translateY(-4px);border-top-color:var(--acacia)}
.rhinory-tastings .tb-somm-portrait{margin:0;position:relative;overflow:hidden;aspect-ratio:4/5;background:#171310;border:1px solid rgba(243,242,237,0.16);box-shadow:inset 0 0 0 1px rgba(0,0,0,0.4)}
.rhinory-tastings .tb-somm-portrait img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%;filter:saturate(.94) contrast(1.03)}
.rhinory-tastings .tb-somm-body{display:flex;flex-direction:column}
.rhinory-tastings .tb-somm-kicker{font-family:"Josefin Sans",sans-serif;font-size:10px;font-weight:600;letter-spacing:0.24em;text-transform:uppercase;color:var(--acacia);display:flex;align-items:center;gap:12px;margin:2px 0 6px}
.rhinory-tastings .tb-somm-kicker::before{content:"";width:24px;height:1px;background:var(--acacia)}
.rhinory-tastings .tb-somm h3{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:clamp(34px,3.4vw,42px);line-height:1.04;letter-spacing:-0.01em;margin:0 0 10px;color:var(--ivory)}
.rhinory-tastings .tb-somm .role{display:block;font-family:"Josefin Sans",sans-serif;font-size:10px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:rgba(243,242,237,0.6);margin-bottom:18px}
.rhinory-tastings .tb-somm p{font-family:"Lora",Georgia,serif;font-size:15.5px;line-height:1.72;color:var(--ivory);opacity:.88;margin:0;max-width:58ch}

/* ---- TASTING INFORMATION · paper band. The practical detail a tastings page owes a guest,
       which used to sit in the old closer's facts rail. Functional Josefin labels, hairline
       rails, no eyebrow. ---- */
.rhinory-tastings .tb-info{background:var(--paper);color:var(--ink-warm);padding:clamp(72px,9vh,110px) 0;border-top:1px solid var(--rule-warm-2)}
.rhinory-tastings .tb-info-head{max-width:1180px;margin:0 auto 44px;padding:0 40px;text-align:center}
.rhinory-tastings .tb-info-head h2{font-family:"Cormorant Garamond",serif;font-weight:500;font-size:clamp(30px,3.2vw,44px);line-height:1.04;letter-spacing:-0.008em;color:var(--ink-warm);margin:0 auto 16px;max-width:20ch;text-wrap:balance}
.rhinory-tastings .tb-info-head h2 em{font-style:italic;font-weight:500;color:#520000}
.rhinory-tastings .tb-info-head p{font-family:"Lora",Georgia,serif;font-size:16.5px;line-height:1.68;color:var(--ink-warm-2);margin:0 auto;max-width:56ch}
.rhinory-tastings .tb-info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0 clamp(24px,3vw,44px);max-width:1180px;margin:0 auto;padding:0 40px;border-top:1px solid var(--rule-warm-2)}
.rhinory-tastings .tb-info-grid>div{padding:26px 0 0;border-right:1px solid var(--rule-warm-2);padding-right:clamp(24px,3vw,44px)}
.rhinory-tastings .tb-info-grid>div:last-child{border-right:0;padding-right:0}
.rhinory-tastings .tb-info-grid .k{display:block;font-family:"Josefin Sans",sans-serif;font-size:10px;font-weight:600;letter-spacing:0.22em;text-transform:uppercase;color:#520000;margin-bottom:11px}
.rhinory-tastings .tb-info-grid .v{display:block;font-family:"Cormorant Garamond",serif;font-weight:500;font-size:23px;line-height:1.18;color:var(--ink-warm)}
.rhinory-tastings .tb-info-grid .v a{text-decoration:none;border-bottom:1px solid rgba(82,0,0,0.28)}
.rhinory-tastings .tb-info-grid .v a:hover{color:#520000;border-bottom-color:#520000}
.rhinory-tastings .tb-info-grid small{display:block;font-family:"Lora",Georgia,serif;font-size:13.5px;line-height:1.55;color:var(--rhino-warm);margin-top:8px}
.rhinory-tastings .tb-info-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 22px;max-width:1180px;margin:38px auto 0;padding:0 40px;font-family:"Lora",Georgia,serif;font-size:15px;line-height:1.6;color:var(--ink-warm-2)}
.rhinory-tastings .tb-info-foot a{display:inline-flex;align-items:center;gap:9px;min-height:44px;font-family:"Josefin Sans",sans-serif;font-size:10.5px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:#520000;text-decoration:none;border-bottom:1px solid rgba(82,0,0,0.32)}
.rhinory-tastings .tb-info-foot a:hover{border-bottom-color:#520000}
.rhinory-tastings .tb-info-foot .ar{transition:transform .25s ease}
.rhinory-tastings .tb-info-foot a:hover .ar{transform:translateX(4px)}

/* ---- DUAL-PATH CLOSER · two equal doors. Same pattern and class names as the closers on
       04-visit-page.html and 04a-experiences.html, so the Visit-family pages share one
       component. Burgundy = wine (this page's own action, so it sits first), gold = rhino,
       brown ground. Pass 4 (2026-09-11): same column width, title size, button fill and
       padding on both doors, copied from 04a. ---- */
.rhinory-tastings .xa-dual{background:var(--ink);color:var(--ivory);border-top:1px solid rgba(243,242,237,0.16)}
.rhinory-tastings .xd-grid{display:grid;grid-template-columns:1fr 1fr;max-width:1360px;margin:0 auto}
.rhinory-tastings .xd{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;text-align:center;min-height:clamp(320px,42vh,428px);padding:clamp(54px,7vh,86px) clamp(26px,4vw,56px);text-decoration:none;color:inherit;transition:background .28s ease}
.rhinory-tastings .xd:focus-visible{outline:2px solid var(--acacia);outline-offset:-8px}
.rhinory-tastings .xd-title{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:clamp(34px,4.2vw,60px);line-height:1.02;letter-spacing:-0.014em;color:var(--ivory);max-width:22ch;text-wrap:balance}
.rhinory-tastings .xd-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;padding:15px 30px;font-family:"Josefin Sans",sans-serif;font-size:11.5px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;transition:background .2s,color .2s,border-color .2s,transform .2s}
.rhinory-tastings .xd-link .arrow{width:16px;height:1px;background:currentColor;position:relative;transition:width .2s}
.rhinory-tastings .xd-link .arrow::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.rhinory-tastings .xd:hover .xd-link{transform:translateY(-1px)}
.rhinory-tastings .xd:hover .xd-link .arrow{width:22px}
.rhinory-tastings .xd--wine{background:#520000;box-shadow:0 0 60px -20px rgba(82,0,0,.9)}
.rhinory-tastings .xd--wine .xd-link{background:var(--ivory);color:#520000;border:1px solid var(--ivory);box-shadow:0 14px 38px -16px rgba(10,8,7,.6)}
.rhinory-tastings .xd--wine:hover{background:#3D0000}
.rhinory-tastings .xd--wine:hover .xd-link{background:var(--gold-soft);border-color:var(--gold-soft)}
.rhinory-tastings .xd--wine:focus-visible{outline-color:var(--ivory)}
.rhinory-tastings .xd--rhino{background:var(--ink)}
.rhinory-tastings .xd--rhino .xd-link{background:var(--acacia);color:#1C1916;border:1px solid var(--acacia);box-shadow:0 14px 38px -16px rgba(185,119,39,.6)}
.rhinory-tastings .xd--rhino:hover .xd-link{background:var(--ivory);border-color:var(--ivory)}
.rhinory-tastings .tb-btn{display:inline-flex;align-items:center;gap:12px;min-height:48px;padding:17px 32px;font-family:"Josefin Sans",sans-serif;font-size:12px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .2s,color .2s,transform .2s,border-color .2s}
.rhinory-tastings .tb-btn:hover{transform:translateY(-1px)}
.rhinory-tastings .tb-btn .arrow{width:16px;height:1px;background:currentColor;position:relative;transition:width .2s}
.rhinory-tastings .tb-btn .arrow::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid currentColor;border-right:1px solid currentColor;transform:rotate(45deg)}
.rhinory-tastings .tb-btn:hover .arrow{width:22px}

/* ---- reveal ---- */
.rhinory-tastings .tb-reveal>*{opacity:0;transform:translateY(20px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.rhinory-tastings .tb-reveal.is-in>*{opacity:1;transform:translateY(0)}
.rhinory-tastings .tb-reveal.is-in>*:nth-child(2){transition-delay:.1s}
.rhinory-tastings .tb-reveal.is-in>*:nth-child(3){transition-delay:.2s}
.rhinory-tastings .tb-reveal.is-in>*:nth-child(4){transition-delay:.3s}
@media (max-width:1024px){
  .rhinory-tastings .tt-cols{grid-template-columns:1fr}
  .rhinory-tastings .tt-col{border-left:0;border-top:1px solid var(--rule-warm-2)}
  .rhinory-tastings .tt-col:first-child{border-top:0}
  .rhinory-tastings .tt-media{aspect-ratio:16/10}
  .rhinory-tastings .tb-crash-inner{grid-template-columns:clamp(150px,20vw,190px) 1fr;gap:26px 30px}
  .rhinory-tastings .tb-crash-link{grid-column:2}
  .rhinory-tastings .tb-people-grid{grid-template-columns:1fr;gap:36px}
  .rhinory-tastings .tb-people-copy{max-width:none}
  .rhinory-tastings .tb-people-photo{aspect-ratio:16/10;min-height:0}
  .rhinory-tastings .tb-members-grid{grid-template-columns:1fr;gap:28px}
  .rhinory-tastings .tb-somm{grid-template-columns:1fr;gap:30px}
  .rhinory-tastings .tb-somm-portrait{max-width:430px;aspect-ratio:4/5}
  .rhinory-tastings .tb-info-grid{grid-template-columns:1fr 1fr;gap:0 clamp(24px,3vw,40px)}
  .rhinory-tastings .tb-info-grid>div:nth-child(2n){border-right:0;padding-right:0}
  .rhinory-tastings .tb-info-grid>div:nth-child(n+3){margin-top:26px;border-top:1px solid var(--rule-warm-2)}
  .rhinory-tastings .xd-grid{grid-template-columns:1fr}
}
@media (max-width:720px){
  .rhinory-tastings .tb-hero-type, .rhinory-tastings .tb-sec-head, .rhinory-tastings .tt-pick, .rhinory-tastings .tt-cols, .rhinory-tastings .tt-colfoot, .rhinory-tastings .tb-people-grid, .rhinory-tastings .tb-crash-inner, .rhinory-tastings .tb-info-head, .rhinory-tastings .tb-info-grid, .rhinory-tastings .tb-info-foot{padding-left:22px;padding-right:22px}
  .rhinory-tastings .tb-info-grid{grid-template-columns:1fr}
  .rhinory-tastings .tb-info-grid>div{border-right:0;padding-right:0}
  .rhinory-tastings .tb-info-grid>div:nth-child(n+2){margin-top:24px;border-top:1px solid var(--rule-warm-2)}
  .rhinory-tastings .tt-colfoot .tb-btn{width:100%;justify-content:center}
  .rhinory-tastings .tb-members{padding-left:22px;padding-right:22px}
  .rhinory-tastings .tb-hero-film{height:clamp(300px,52svh,460px)}
  .rhinory-tastings .tb-crash-inner{grid-template-columns:1fr;gap:20px}
  .rhinory-tastings .tb-crash-media{max-width:180px;aspect-ratio:1/1}
  .rhinory-tastings .tb-crash-link{grid-column:1}
  .rhinory-tastings .tb-somm{gap:24px;padding-left:22px;padding-right:22px}
  .rhinory-tastings .tb-somm-portrait{max-width:none}
  .rhinory-tastings .tb-members-link{min-width:0;width:100%}
}
@media (prefers-reduced-motion:reduce){
  .rhinory-tastings .tb-hero-film img{animation:none}
  .rhinory-tastings .book-bar{transition:opacity .35s ease}
  .rhinory-tastings .tb-rv, .rhinory-tastings .tb-reveal>*{opacity:1;transform:none;transition:none}
  .rhinory-tastings .tb-btn:hover{transform:none}
  .rhinory-tastings .tb-somm{transition:none}
  .rhinory-tastings .tb-somm:hover{transform:none}
}
