/* ============================================================
   /wine : the Wine hub (v13)
   ------------------------------------------------------------
   Brief:     docs/briefs/2026-09-21-wine-hub-wp-build.md
   Prototype: prototypes/13/36-wine.html @ b2823457 (client pass 3;
              re-port brief docs/briefs/2026-10-06-wine-hub-report-v13.md)
   Enqueued:  functions.php, gated to is_post_type_archive('wine'), plus
              the rhinory-v4-wine-hub-editor handle for the Site Editor
              canvas.

   ROUTE. /wine/ is the `wine` CPT archive, which the plugin owns and whose
   rewrite slug is the base of every wine PDP permalink. The theme owns the
   archive template, so the hub lives in templates/archive-wine.html.

   REGISTER. Dark chrome (nav / campaign bar / footer) around a LIGHT
   paper body. Two dark breaks are part of the page, not chrome: the
   Reserve-cool #reserve interlude (.wh-dark-band) and the closing
   signature band (.wh-dark).

   SCOPE. Every rule hangs off .rhinory-wine-hub (the block wrapper).
   The .wh-* prefix is page-unique and collides with nothing today, but
   .btn / .btn-primary / .btn-outline are SHARED. .btn is declared
   globally in style.css and about.css scopes its own .btn-outline, so
   the button rules below must stay scoped or they repaint every
   surface. Same call about.css makes.

   NAV-SOLID. See the block at the foot of this file.

   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 visit-hub.css makes. --card / --card-2 /
   --paper-2 have no theme.json preset, so they are literal here.
   ============================================================ */

/* 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-wine-hub. */
.rhinory-page--wine,
.rhinory-wine-hub{
  /* light / paper register (v13-shared.css .light-warm) */
  --paper:#FBF7EE;
  --paper-2:#F7F1E5;
  --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;
  /* dark register, read by the #reserve band and the closing signature
     band (prototypes/13/styles.css :root) */
  --reserve:#211B18;
  --ivory:#F3F2ED;
  --bone:#DAD5CB;
  --rule:rgba(243,242,237,0.16);
  --acacia:#B97727;
  background:var(--paper);
  color:var(--ink-warm);
}

/* The closing signature band has to meet the footer, the way it does in the
   prototype. The shared page shell (style.css `.rhinory-page`) adds 120px of
   padding-bottom for the dark-register surfaces it was written for; on this
   paper page that renders as a pale strip between the dark band and the dark
   footer. Zeroed here rather than in style.css so no other surface moves. */
.rhinory-page--wine{padding-bottom:0}

/* ---- shared primitives ---- */
.rhinory-wine-hub .wh-wrap{max-width:1280px;margin:0 auto;padding:0 56px}
.rhinory-wine-hub .wh-sec{padding:clamp(84px,9vw,120px) 0;border-top:1px solid var(--rule-warm-2);scroll-margin-top:96px}
.rhinory-wine-hub .wh-paper{background:var(--paper)}
.rhinory-wine-hub .wh-card{background:var(--card)}
.rhinory-wine-hub .wh-h2{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:clamp(40px,5.2vw,72px);line-height:1;letter-spacing:-.012em;margin:0;color:var(--ink-warm);text-wrap:pretty}
.rhinory-wine-hub .wh-h2 .ln,.rhinory-wine-hub .wh-h3 .ln{white-space:nowrap}
.rhinory-wine-hub .wh-h2 em,.rhinory-wine-hub .wh-h3 em{font-style:italic;font-weight:500;color:var(--burgundy)}
.rhinory-wine-hub .wh-h3{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:clamp(30px,3.4vw,46px);line-height:1.02;letter-spacing:-.01em;margin:0;color:var(--ink-warm);text-wrap:pretty}
.rhinory-wine-hub .wh-lede{margin:0;font-family:"Lora",Georgia,serif;font-size:18px;line-height:1.7;color:var(--ink-warm-2);max-width:60ch;text-wrap:pretty}
.rhinory-wine-hub .wh-lede strong,.rhinory-wine-hub .wh-p strong{font-weight:600;color:var(--ink-warm)}
.rhinory-wine-hub .wh-p{margin:0;font-family:"Lora",Georgia,serif;font-size:17px;line-height:1.72;color:var(--ink-warm-2);text-wrap:pretty}
.rhinory-wine-hub .wh-p em{font-style:italic}
.rhinory-wine-hub .wh-p a,.rhinory-wine-hub .wh-lede a{color:var(--burgundy);text-decoration:none;border-bottom:1px solid rgba(82,0,0,.35);transition:border-color .2s}
.rhinory-wine-hub .wh-p a:hover,.rhinory-wine-hub .wh-lede a:hover{border-bottom-color:var(--burgundy)}
.rhinory-wine-hub .wh-meta{font-family:"Josefin Sans",system-ui,sans-serif;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--rhino-warm);display:inline-flex;align-items:center;gap:12px;flex-wrap:wrap}
.rhinory-wine-hub .wh-meta .sep{color:var(--burgundy)}
.rhinory-wine-hub .wh-head{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(32px,5vw,72px);align-items:end;margin-bottom:clamp(44px,5vw,68px)}
.rhinory-wine-hub .wh-head .wh-lede{max-width:56ch}
.rhinory-wine-hub .wh-photo{position:relative;overflow:hidden;background-color:#1a1614;border:1px solid var(--rule-warm-2);box-shadow:inset 0 0 0 1px rgba(0,0,0,.10)}
/* Focal point (inc/photo-control.php): a set --photo-focal holds at every
   width; unset, the bundled photo takes its slot's prototype crop from the
   inline --wh-pos, else center. */
.rhinory-wine-hub .wh-photo-img{position:absolute;inset:0;background-size:cover;background-position:var(--photo-focal,var(--wh-pos,center));filter:saturate(.96) contrast(1.03);transform:scale(1.02);transition:transform .8s cubic-bezier(.2,.7,.2,1)}
/* Photos are <img> since the 11-03 SEO pass (the canvas preview keeps its
   background-image divs, which the rule above still paints). */
.rhinory-wine-hub .wh-photo picture{display:contents}
.rhinory-wine-hub img.wh-photo-img{width:100%;height:100%;display:block;object-fit:cover;object-position:var(--photo-focal,var(--wh-pos,center))}
.rhinory-wine-hub .wh-hero-fig .wh-photo-img{animation:wh-kb 22s ease-in-out infinite alternate}
@keyframes wh-kb{from{transform:scale(1.02)}to{transform:scale(1.12)}}
.rhinory-wine-hub .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}
.rhinory-wine-hub a.wh-photo:hover .wh-photo-img{transform:scale(1.05)}
.rhinory-wine-hub .wh-cap{margin:14px 0 0;font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-weight:500;font-size:19px;line-height:1.35;color:var(--ink-warm-2)}
.rhinory-wine-hub .wh-cap em{color:var(--burgundy)}
.rhinory-wine-hub .wh-ctas{display:flex;gap:14px;flex-wrap:wrap;align-items:stretch;max-width:620px}
.rhinory-wine-hub .wh-ctas .btn{font-weight:600;font-size:13px;min-height:52px;flex:1 1 0;min-width:max-content;justify-content:center;white-space:nowrap}
.rhinory-wine-hub .wh-ctas .btn:only-child{flex:0 0 auto}
.rhinory-wine-hub .wh-ctas .btn-primary,.rhinory-wine-hub .wh-close .btn-primary{background:var(--acacia);color:#1C1916;border:1px solid var(--acacia);box-shadow:0 12px 34px -14px rgba(185,119,39,.5)}
.rhinory-wine-hub .wh-ctas .btn-primary:hover,.rhinory-wine-hub .wh-close .btn-primary:hover{background:var(--reserve);border-color:var(--reserve);color:var(--ivory);transform:translateY(-1px)}
.rhinory-wine-hub .btn-outline{border:1px solid rgba(82,0,0,.45);color:var(--burgundy);background:transparent}
.rhinory-wine-hub .btn-outline:hover{border-color:var(--burgundy);background:rgba(82,0,0,.05);transform:none}
/* Reveals hide their targets only once the page is scripted (html.js,
   inc/wine-hub-head.php), so nothing stays hidden if JS fails. .wh-rv is the
   per-item editorial stagger view.js adds to the terroir columns, bottle cards,
   estate wines, award rows and press quotes (0/100/200/300ms). */
html.js .rhinory-wine-hub .wh-reveal{opacity:0;transform:translate3d(0,22px,0);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
html.js .rhinory-wine-hub .wh-reveal.is-in{opacity:1;transform:none}
html.js .rhinory-wine-hub .wh-rv{opacity:0;transform:translate3d(0,20px,0);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
html.js .rhinory-wine-hub .wh-rv.is-in{opacity:1;transform:none}

/* ---- HERO · light editorial open ---- */
.rhinory-wine-hub .wh-hero{padding:clamp(56px,7vw,96px) 0 clamp(72px,8vw,110px);background:var(--paper)}
.rhinory-wine-hub .wh-hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,88px);align-items:center}
.rhinory-wine-hub .wh-hero h1{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:clamp(50px,6.6vw,96px);line-height:.96;letter-spacing:-.014em;margin:0 0 26px;color:var(--ink-warm);text-wrap:pretty}
.rhinory-wine-hub .wh-hero h1 em{font-style:italic;font-weight:500;color:var(--burgundy)}
.rhinory-wine-hub .wh-hero .wh-lede{margin-bottom:34px}
.rhinory-wine-hub .wh-hero-fig{margin:0}
.rhinory-wine-hub .wh-hero-fig .wh-photo{aspect-ratio:4/5}

/* ---- TERROIRS · two regions, side by side ---- */
.rhinory-wine-hub .wh-duet{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,4vw,56px)}
.rhinory-wine-hub .wh-terroir{display:flex;flex-direction:column;gap:18px}
.rhinory-wine-hub .wh-terroir figure{margin:0 0 8px}
.rhinory-wine-hub .wh-terroir .wh-photo{aspect-ratio:4/3}

/* ---- COLLECTIONS ---- */
.rhinory-wine-hub .wh-collections-intro{padding-bottom:0;border-top:1px solid var(--rule-warm-2)}
.rhinory-wine-hub .wh-chapter{padding:clamp(72px,8vw,110px) 0;scroll-margin-top:96px;border-top:1px solid var(--rule-warm)}
.rhinory-wine-hub .wh-chapter:first-of-type{border-top:0}
.rhinory-wine-hub .wh-ch-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,5vw,72px);align-items:start}
.rhinory-wine-hub .wh-chapter:nth-of-type(even) .wh-ch-grid{grid-template-columns:1.15fr .85fr}
.rhinory-wine-hub .wh-chapter:nth-of-type(even) .wh-ch-grid figure{order:2}
.rhinory-wine-hub .wh-ch-grid figure{margin:0;position:sticky;top:120px}
.rhinory-wine-hub .wh-ch-grid .wh-photo{aspect-ratio:4/5}
.rhinory-wine-hub .wh-ch-body{display:flex;flex-direction:column;gap:20px}
.rhinory-wine-hub .wh-ch-body .wh-h3{font-size:clamp(38px,4.6vw,64px)}
.rhinory-wine-hub .wh-meaning{margin:0;font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-weight:500;font-size:clamp(21px,2vw,26px);line-height:1.34;color:var(--ink-warm-2);text-wrap:pretty}
.rhinory-wine-hub .wh-meaning strong{font-style:normal;font-weight:500;color:var(--burgundy)}
.rhinory-wine-hub .wh-ch-price{display:flex;align-items:baseline;gap:12px;padding-top:6px}
.rhinory-wine-hub .wh-ch-price .n{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:40px;line-height:1;color:var(--burgundy)}
.rhinory-wine-hub .wh-ch-price .l{font-family:"Josefin Sans",system-ui,sans-serif;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--rhino-warm)}
.rhinory-wine-hub .wh-ch-body .wh-ctas{padding-top:6px}
.rhinory-wine-hub .wh-fav{margin:clamp(44px,5vw,64px) 0 0;padding-top:22px;border-top:1px solid var(--rule-warm-2);font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:clamp(26px,2.4vw,32px);line-height:1.1;letter-spacing:-.006em;color:var(--ink-warm)}
.rhinory-wine-hub .wh-bottles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:24px}
.rhinory-wine-hub .wh-bottle{display:flex;flex-direction:column;overflow:hidden;background:#fff;border:1px solid var(--rule-warm-2);color:var(--ink-warm);text-decoration:none;transition:border-color .3s ease}
.rhinory-wine-hub .wh-bottle:hover{border-color:var(--burgundy)}
.rhinory-wine-hub .wh-bottle-img{display:block;width:100%;aspect-ratio:4/5;box-sizing:border-box;padding:10.2% 0 7.4%;object-fit:contain;background-color:#fff;background-size:auto 86%;background-repeat:no-repeat;background-position:center 58%;transform-origin:center 58%;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.rhinory-wine-hub a.wh-bottle:focus-visible{outline:2px solid var(--burgundy);outline-offset:3px}
.rhinory-wine-hub .wh-bottle:hover .wh-bottle-img{transform:scale(1.05)}
.rhinory-wine-hub .wh-bottle-body{position:relative;background:#fff;border-top:1px solid var(--rule-warm);padding:20px 22px 22px;display:flex;flex-direction:column;gap:8px;flex:1}
.rhinory-wine-hub .wh-bottle-body h4{margin:0;font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:25px;line-height:1.08;letter-spacing:-.006em}
.rhinory-wine-hub .wh-bottle-go{margin-top:auto;padding-top:14px;display:inline-flex;align-items:center;gap:10px;font-family:"Josefin Sans",system-ui,sans-serif;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--burgundy)}
.rhinory-wine-hub .wh-bottle-go .arr{font-family:"Cormorant Garamond",Georgia,serif;font-size:18px;line-height:0;transition:transform .25s}
.rhinory-wine-hub .wh-bottle:hover .wh-bottle-go .arr{transform:translateX(5px)}
/* The three "Shop the ... Collection" buttons: client-requested, restored by
   the Cowork review of pass 3 (fb-mu5rj2ym / fb-mu5rlov4 / fb-mu5rvf1p). */
.rhinory-wine-hub .wh-ch-shop{margin-top:32px}

/* ---- ESTATE · RHINO RESERVE ---- */
.rhinory-wine-hub .wh-estate-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(36px,5vw,72px);align-items:center}
.rhinory-wine-hub .wh-estate-grid figure{margin:0}
.rhinory-wine-hub .wh-estate-grid .wh-photo{aspect-ratio:4/5}
.rhinory-wine-hub .wh-estate-body{display:flex;flex-direction:column;gap:22px}
.rhinory-wine-hub .wh-estate-wines{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--rule-warm-2);border-bottom:1px solid var(--rule-warm-2)}
.rhinory-wine-hub .wh-ew{padding:22px 22px 24px 0;border-right:1px solid var(--rule-warm)}
.rhinory-wine-hub .wh-ew+.wh-ew{padding-left:22px}
.rhinory-wine-hub .wh-ew:last-child{border-right:0;padding-right:0}
.rhinory-wine-hub .wh-ew h3{margin:0 0 8px;letter-spacing:normal;font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:24px;line-height:1.08}
.rhinory-wine-hub .wh-ew h3 em{display:block;font-style:italic;color:var(--burgundy)}
/* Reserve-cool interlude: the About pattern, a dark band inside a light-warm page. */
.rhinory-wine-hub .wh-sec.wh-dark-band{background:var(--reserve);color:var(--ivory);border-top:1px solid var(--rule)}
.rhinory-wine-hub .wh-dark-band+.wh-sec{border-top-color:var(--rule)}
.rhinory-wine-hub .wh-dark-band .wh-h2{color:var(--ivory);font-weight:600}
.rhinory-wine-hub .wh-dark-band .wh-h2 em{color:var(--acacia);font-weight:600}
.rhinory-wine-hub .wh-dark-band .wh-lede{color:var(--bone)}
.rhinory-wine-hub .wh-dark-band .wh-lede strong{color:var(--ivory)}
.rhinory-wine-hub .wh-dark-band .wh-photo{border-color:var(--rule);box-shadow:inset 0 0 0 1px rgba(0,0,0,.42)}
.rhinory-wine-hub .wh-dark-band .wh-estate-wines{border-color:var(--rule)}
.rhinory-wine-hub .wh-dark-band .wh-ew{border-right-color:var(--rule)}
.rhinory-wine-hub .wh-dark-band .wh-ew h3{color:var(--ivory)}
.rhinory-wine-hub .wh-dark-band .wh-ew h3 em{color:var(--acacia)}
.rhinory-wine-hub .wh-dark-band .wh-ew p{color:var(--bone)}
.rhinory-wine-hub .wh-dark-band .wh-ctas .btn-primary{background:var(--acacia);color:var(--reserve);border-color:var(--acacia);box-shadow:0 12px 34px -14px rgba(185,119,39,.5)}
.rhinory-wine-hub .wh-dark-band .wh-ctas .btn-primary:hover{background:var(--ivory);border-color:var(--ivory);color:var(--reserve)}
.rhinory-wine-hub .wh-ew p{margin:0;font-family:"Lora",Georgia,serif;font-style:italic;font-size:14.5px;line-height:1.6;color:var(--ink-warm-2)}

/* ---- RECOGNITION · most recent awards first ---- */
.rhinory-wine-hub .wh-awards{border-top:1px solid var(--rule-warm-2);margin-bottom:clamp(40px,5vw,64px)}
.rhinory-wine-hub .wh-award{display:grid;grid-template-columns:200px 1fr auto;gap:28px;align-items:center;padding:26px 0;border-bottom:1px solid var(--rule-warm)}
.rhinory-wine-hub .wh-award .score{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:clamp(56px,6vw,84px);line-height:.85;letter-spacing:-.02em;color:var(--burgundy);display:flex;align-items:baseline;gap:8px}
.rhinory-wine-hub .wh-award .score small{font-family:"Josefin Sans",system-ui,sans-serif;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--rhino-warm)}
.rhinory-wine-hub .wh-award .score.word{font-size:clamp(28px,3vw,40px);letter-spacing:-.01em;line-height:1}
.rhinory-wine-hub .wh-award-body{display:flex;flex-direction:column;gap:8px}
.rhinory-wine-hub .wh-award-body h3{margin:0;letter-spacing:normal;font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:clamp(24px,2.4vw,32px);line-height:1.08}
.rhinory-wine-hub .wh-award-body h3 em{font-style:italic;color:var(--burgundy)}
.rhinory-wine-hub .wh-award-body blockquote{margin:0;font-family:"Lora",Georgia,serif;font-style:italic;font-size:16px;line-height:1.6;color:var(--ink-warm-2);max-width:60ch}
.rhinory-wine-hub .wh-award-note{margin:0;font-family:"Lora",Georgia,serif;font-size:16px;line-height:1.6;color:var(--ink-warm-2);max-width:58ch}
.rhinory-wine-hub .wh-award-list{margin:6px 0 0;padding:0;list-style:none;display:flex;flex-direction:column}
.rhinory-wine-hub .wh-award-list li{display:grid;grid-template-columns:172px 1fr;gap:18px;align-items:baseline;padding:12px 0;border-top:1px solid var(--rule-warm);font-family:"Lora",Georgia,serif;font-size:16px;line-height:1.55;color:var(--ink-warm-2)}
.rhinory-wine-hub .wh-award-list li:first-child{border-top:0;padding-top:4px}
.rhinory-wine-hub .wh-award-list li:last-child{padding-bottom:0}
.rhinory-wine-hub .wh-award-list .mdl{font-family:"Josefin Sans",system-ui,sans-serif;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--burgundy)}
.rhinory-wine-hub .wh-award-list .yr{font-family:"Josefin Sans",system-ui,sans-serif;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--rhino-warm);margin-left:10px;white-space:nowrap}
.rhinory-wine-hub .wh-award .when{font-family:"Josefin Sans",system-ui,sans-serif;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--rhino-warm);white-space:nowrap}
.rhinory-wine-hub .wh-award .when a{color:var(--burgundy);text-decoration:none;display:inline-flex;align-items:center;gap:9px;min-height:44px}
.rhinory-wine-hub .wh-award-list .wines{display:block;margin-top:6px;font-style:italic;font-size:14.5px;line-height:1.6;color:var(--ink-warm-2)}
.rhinory-wine-hub .wh-award .when a .arr{font-family:"Cormorant Garamond",Georgia,serif;font-size:18px;line-height:0;transition:transform .25s}
.rhinory-wine-hub .wh-award .when a:hover .arr{transform:translateX(5px)}
.rhinory-wine-hub .wh-press{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.rhinory-wine-hub .wh-quote{margin:0;background:#fff;border:1px solid var(--rule-warm-2);padding:28px 30px 30px;display:flex;flex-direction:column;gap:16px}
.rhinory-wine-hub .wh-quote .pub{font-family:"Cormorant Garamond",Georgia,serif;font-weight:500;font-size:22px;color:var(--burgundy);line-height:1}
.rhinory-wine-hub .wh-quote blockquote{margin:0;font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-weight:500;font-size:clamp(21px,1.9vw,25px);line-height:1.34;color:var(--ink-warm);text-wrap:pretty}
.rhinory-wine-hub .wh-quote .attr{margin-top:auto;padding-top:14px;border-top:1px solid var(--rule-warm);display:flex;flex-direction:column;gap:4px}
.rhinory-wine-hub .wh-quote .attr strong{font-family:"Lora",Georgia,serif;font-weight:600;font-size:14px;color:var(--ink-warm)}
.rhinory-wine-hub .wh-quote .attr span{font-family:"Josefin Sans",system-ui,sans-serif;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--rhino-warm)}

/* ---- CLOSE: gray pre-footer band + dark closer band ----
   The gray is the prototype's page-local mix (canon § 5); there is no shared
   gray token yet. */
.rhinory-wine-hub .wh-close{--wh-closer-gray:color-mix(in oklab,var(--rhino-warm) 16%,var(--paper));background:var(--wh-closer-gray);border-top:1px solid var(--rule-warm-2);padding:clamp(84px,9vw,120px) 0}
.rhinory-wine-hub .wh-close-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(36px,5vw,72px);align-items:center}
.rhinory-wine-hub .wh-close .btn-outline{border-color:var(--burgundy)}
.rhinory-wine-hub .wh-close .wh-ctas{flex-direction:column;flex-wrap:nowrap;align-items:stretch;max-width:none}
.rhinory-wine-hub .wh-close .wh-ctas .btn{flex:0 0 auto;justify-content:space-between}
.rhinory-wine-hub .wh-dark{background:#1A1512;color:var(--ivory);padding:72px 0 76px;text-align:center}
.rhinory-wine-hub .wh-dark .wh-wrap{display:flex;flex-direction:column;align-items:center;gap:22px}
.rhinory-wine-hub .wh-sig{display:inline-flex;align-items:center;gap:22px;font-family:"Cormorant Garamond",Georgia,serif;font-style:italic;font-weight:500;font-size:clamp(30px,3.4vw,44px);line-height:1;color:var(--ivory)}
.rhinory-wine-hub .wh-sig::before,.rhinory-wine-hub .wh-sig::after{content:"";width:48px;height:1px;background:var(--acacia)}
.rhinory-wine-hub .wh-triad{font-family:"Josefin Sans",system-ui,sans-serif;font-size:12px;font-weight:600;letter-spacing:.34em;text-transform:uppercase;color:var(--acacia)}

/* ---- RESPONSIVE ---- */
@media (max-width:1024px){.rhinory-wine-hub .wh-wrap{padding:0 40px}}
@media (max-width:900px){
  .rhinory-wine-hub .wh-hero-grid,.rhinory-wine-hub .wh-head,.rhinory-wine-hub .wh-duet,.rhinory-wine-hub .wh-ch-grid,.rhinory-wine-hub .wh-chapter:nth-of-type(even) .wh-ch-grid,.rhinory-wine-hub .wh-estate-grid,.rhinory-wine-hub .wh-close-grid{grid-template-columns:1fr;gap:32px}
  .rhinory-wine-hub .wh-chapter:nth-of-type(even) .wh-ch-grid figure{order:0}
  .rhinory-wine-hub .wh-ch-grid figure{position:static}
  .rhinory-wine-hub .wh-ch-grid .wh-photo,.rhinory-wine-hub .wh-hero-fig .wh-photo,.rhinory-wine-hub .wh-estate-grid .wh-photo{aspect-ratio:4/3}
  /* Bottle cards stay three across (no orphan third card); quotes go to one column. */
  .rhinory-wine-hub .wh-press{grid-template-columns:1fr}
  .rhinory-wine-hub .wh-award{grid-template-columns:140px 1fr;gap:20px}
  .rhinory-wine-hub .wh-award .when{grid-column:2}
}
@media (max-width:640px){
  .rhinory-wine-hub .wh-wrap{padding:0 22px}
  .rhinory-wine-hub .wh-hero{padding-top:40px}
  .rhinory-wine-hub .wh-estate-wines{grid-template-columns:1fr}
  /* Fan favorites: a sideways scroll-snap row, 74% cards with the next peeking. */
  .rhinory-wine-hub .wh-bottles{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 22px;margin:24px -22px 0;padding:0 22px 10px;scrollbar-width:thin;overscroll-behavior-x:contain}
  .rhinory-wine-hub .wh-bottle{flex:0 0 74%;scroll-snap-align:start}
  .rhinory-wine-hub .wh-ew{border-right:0;border-bottom:1px solid var(--rule-warm);padding:18px 0}
  .rhinory-wine-hub .wh-ew+.wh-ew{padding-left:0}
  .rhinory-wine-hub .wh-ew:last-child{border-bottom:0}
  .rhinory-wine-hub .wh-award{grid-template-columns:1fr;gap:12px}
  .rhinory-wine-hub .wh-award .when{grid-column:1}
  .rhinory-wine-hub .wh-award-list li{grid-template-columns:1fr;gap:4px}
  .rhinory-wine-hub .wh-ctas{max-width:none}
  .rhinory-wine-hub .wh-ctas .btn,.rhinory-wine-hub .wh-ctas .btn:only-child{flex:1 1 100%;min-width:0}
  .rhinory-wine-hub .wh-sig::before,.rhinory-wine-hub .wh-sig::after{width:24px}
}
@media (prefers-reduced-motion:reduce){
  html.js .rhinory-wine-hub .wh-reveal,html.js .rhinory-wine-hub .wh-rv{opacity:1;transform:none;transition:none}
  .rhinory-wine-hub .wh-hero-fig .wh-photo-img{animation:none}
  .rhinory-wine-hub .wh-photo-img,.rhinory-wine-hub .wh-bottle,.rhinory-wine-hub .wh-bottle-img,.rhinory-wine-hub .wh-bottle-go .arr{transition:none}
  .rhinory-wine-hub .wh-bottle:hover .wh-bottle-img{transform:none}
}

/* ============================================================
   NAV-SOLID · light-open page
   ------------------------------------------------------------
   Prototype: prototypes/13/styles.css ~L147.

   The resting nav is tuned to float over dark heroes. This page opens
   on a paper hero, where the translucent brown composites over cream
   into muddy gray. The prototype opts in with body.nav-solid, swapping
   the resting fill for near-solid dark chrome aligned to the is-stuck
   value so compress-on-scroll stays seamless.

   PORTED, NOT COPIED. The prototype paints nav.top's background on the
   element. The theme does NOT: style.css:818 moves the background onto
   .rhinory-nav::before, because backdrop-filter on the nav itself
   created a containing block that clipped the SDK side-cart drawer. So
   both rules below target ::before, or they would paint nothing.

   The stuck rule is restated for the same reason the prototype
   restates it: body.nav-solid .rhinory-nav::before (0,2,2) would
   otherwise outrank .rhinory-nav.is-stuck::before (0,2,1) and freeze
   the resting fill through the scroll transition. Blur, border, gold
   accents, logo and link colors are untouched.

   Scope is belt-and-braces: this file is enqueued only on the /wine/
   archive, AND the body.nav-solid class is added only there.
   ============================================================ */
body.nav-solid .rhinory-nav::before{background:rgba(28,21,16,0.97)}
body.nav-solid .rhinory-nav.is-stuck::before{background:rgba(28,21,16,0.92)}

/* ---- Nicole Nov 4: the Gifts template (prototype 36 on catalog.css) ----
   One image on the page (the hero): the terroirs, chapters and estate band
   are copy only, and each chapter's Fan Favorites are the plugin's catalog
   cards, painted by gifting.css + catalog.css inside .wh-favs. */
.rhinory-wine-hub .wh-terroir-h{margin:0;font-family:var(--ff-display);font-weight:500;font-size:clamp(26px,2.4vw,32px);line-height:1.08;color:var(--ink-warm)}
.rhinory-wine-hub .wh-duet{border-top:1px solid var(--rule-warm-2,rgba(45,41,38,.2));padding-top:28px}
.rhinory-wine-hub .wh-ch-grid.wh-ch-grid--text,
.rhinory-wine-hub .wh-chapter:nth-of-type(even) .wh-ch-grid.wh-ch-grid--text{grid-template-columns:minmax(0,1fr);max-width:860px}
.rhinory-wine-hub .wh-favs{margin-top:24px}
.rhinory-wine-hub .wh-estate-grid.wh-estate-grid--text{grid-template-columns:minmax(0,1fr);max-width:960px}
.rhinory-wine-hub .wh-estate-ctas{display:grid;grid-template-columns:repeat(2,minmax(0,max-content));gap:24px 40px;align-items:start}
.rhinory-wine-hub .wh-estate-cta{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.rhinory-wine-hub .wh-estate-cta p{margin:0;font-family:var(--ff-label);font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--bone)}
.rhinory-wine-hub .wh-dark-band .wh-estate-cta .btn-outline{color:var(--ivory);border-color:rgba(243,242,237,.48)}
.rhinory-wine-hub .wh-dark-band .wh-estate-cta .btn-outline:hover{border-color:var(--ivory)}
@media (max-width:640px){.rhinory-wine-hub .wh-estate-ctas{grid-template-columns:minmax(0,1fr)}}

/* Pre-lock fix R5: at 360 the estate CTA button ("Join the Conservation
   Circle") ran 10 px past the screen; it wraps inside its column instead. */
@media (max-width:640px){.rhinory-wine-hub .wh-estate-cta{min-width:0;max-width:100%}.rhinory-wine-hub .wh-estate-cta .btn{max-width:100%;white-space:normal;text-align:center;min-width:0}}
