/* Batch 51 (2026-10-06): Shopping Guide A. Guide only (enqueued on /explore/shopping-guide/ and nowhere else), after batch 31 and the batch 41 background.
   H hero: the tenth anniversary art sits inside the lead box at 480 to 620 px; the heading shrinks to a secondary line; the photo is a fresh arrival scene.
   C cover and contents: the guide cover on the round plaid bow wreath (live text, edition and date from data) beside a short contents block.
   O hotel feature: tree plate behind the arrival text, four owner photographs (a lead and three views), the floor plan placeholder card.
   S Sip and Shop: after the hotel; no shared outer well; only the left editorial group is framed; the rails float on the bright plaid.
   Motion: nothing new moves. Reveals reuse the batch 31 data-gd31 system (once per chapter). The rails keep the batch 28 drift and the batch 41 holds.
   Every colour, radius and timing is an existing site value: red #ef2435, mint #68f8b3, 10 px rounded rectangles, 2 px photo frames. */

/* ---------- H. Landing hero ---------- */
body.om-mvp .gd51-hero .gd30-well{padding-top:clamp(24px,3.5vw,44px)}
.gd51-art{display:block;margin:0 auto 10px;width:100%;max-width:600px;padding:0}
.gd51-art img{display:block;width:100%;height:auto;aspect-ratio:3/2;margin:0 auto;filter:drop-shadow(0 6px 10px rgba(0,0,0,.5))}
/* The heading is now a short supporting headline: about half its old size at desktop (64px to 32px), kept in the shared heading family and natural proportions. */
body.om-mvp .gd51-hero h1#editorial-title{font-size:clamp(22px,2.222vw,32px)!important;line-height:1.08!important;margin:6px 0 12px!important;max-width:none}
body.om-mvp .gd51-hero .om17-date{margin-top:0}
.gd51-hero .editorial-kicker{margin-bottom:0}
.gd51-hero>.editorial-photo{align-self:start;margin-top:8px}
@media(max-width:780px){.gd51-art{max-width:100%}.gd51-hero>.editorial-photo{margin-top:0}}

/* ---------- C. Annual cover and contents ---------- */
.gd51-cover{display:grid;grid-template-columns:minmax(0,640px) minmax(0,1fr);gap:clamp(24px,4vw,64px);align-items:center;margin:0 0 64px}
.gd51-cover-art{position:relative;width:100%;max-width:640px;aspect-ratio:1/1;justify-self:center;container-type:inline-size}
.gd51-wreath-art{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 16px rgba(0,0,0,.45))}
.gd51-cover-text{position:absolute;left:50.6%;top:54%;width:58cqw;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;text-align:center;aspect-ratio:1/1;isolation:isolate;box-sizing:border-box;padding:7cqw 6cqw}
/* The dark seat inside the wreath: a feathered disc, so the live words read on the ring's inner edge without a rectangle. */
.gd51-cover-text::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:50%;pointer-events:none;background:radial-gradient(circle at 50% 50%,rgba(5,5,5,.93) 0,rgba(5,5,5,.92) 62%,rgba(5,5,5,.78) 80%,rgba(5,5,5,0) 100%)}
.gd51-cover-text p,.gd51-cover-text h2{margin:0!important;max-width:none!important}
.gd51-cover-market{font:700 clamp(12px,2.1cqw,14px)/1.25 "OMHM Tomorrow",sans-serif!important;letter-spacing:.1em;text-transform:uppercase;color:#fff;text-wrap:balance}
.gd51-cover-title{margin:.1em 0 .05em!important;font-family:"OMHM Tomorrow",sans-serif;font-weight:800;text-transform:uppercase;font-size:clamp(20px,4.6cqw,32px)!important;line-height:1.04!important;letter-spacing:.01em;text-wrap:balance}
.gd51-cover-edition{font:700 clamp(12px,2.1cqw,14px)/1.25 "OMHM Tomorrow",sans-serif!important;letter-spacing:.1em;text-transform:uppercase;color:#68f8b3}
/* The batch 17 date rule (body.om-mvp .om17-date, white, 2.1rem) also matches this line, so the cover states its own values with matching weight. */
body.om-mvp .gd51-cover .gd51-cover-date{margin-top:.35em!important;font-family:"OMHM Backline",cursive!important;font-size:clamp(19px,3.9cqw,27px)!important;line-height:1.1!important;color:#68f8b3!important}
.gd51-contents{position:relative;isolation:isolate;min-width:0;padding:clamp(20px,2.4vw,32px) clamp(20px,2.6vw,36px)}
.gd51-contents::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:12px;border-left:2px solid #ef2435;background:linear-gradient(100deg,rgba(5,5,5,.94),rgba(5,5,5,.84))}
.gd51-contents .editorial-kicker{margin:0 0 8px}
.gd51-contents ol{list-style:none;counter-reset:gd51;margin:0;padding:0}
.gd51-contents li{counter-increment:gd51;margin:0;padding:0;border-top:1px solid rgba(255,255,255,.22)}
.gd51-contents li:first-child{border-top:0}
.gd51-contents a{display:flex;align-items:baseline;gap:14px;min-height:48px;padding:10px 0;font:800 clamp(17px,1.5vw,20px)/1.2 "OMHM Tomorrow",sans-serif;letter-spacing:.04em;text-transform:uppercase;color:#fff;text-decoration:none;border-radius:6px}
.gd51-contents a::before{content:counter(gd51,decimal-leading-zero);flex:0 0 auto;font:700 13px/1 "OMHM Tomorrow",sans-serif;letter-spacing:.1em;color:#68f8b3}
.gd51-contents a:hover{color:#68f8b3}
.gd51-contents a:focus-visible{outline:3px solid #68f8b3;outline-offset:2px}
@media(max-width:900px){
  .gd51-cover{grid-template-columns:1fr;gap:20px;margin-bottom:40px}
  .gd51-cover-art{max-width:min(100%,520px)}
  .gd51-cover-text{width:70cqw;padding:6cqw 3.5cqw}
  body.om-mvp .gd51-cover .gd51-cover-date{white-space:nowrap}
}

/* ---------- O. Hotel feature ---------- */
.gd51-hotel{--om41-tree-bleed-top:0px;--om41-tree-bleed-bottom:40px;--om41-tree-in:6%;--om41-tree-out:16%;margin-bottom:max(56px,var(--om41-tree-bleed-bottom))}
.gd51-hotel-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(20px,3vw,44px);align-items:start}
/* The plate: the whole rustic snowy tree stands in the left column behind and below the words; the arrival well is the local support over it. */
.gd51-hotel>.gd51-plate{left:0;right:auto;width:calc((100% - clamp(20px,3vw,44px)) * 5 / 12)}
.gd51-hotel>.gd51-plate img{top:auto;bottom:0;left:50%;right:auto;width:auto;height:100%;max-height:960px;max-width:none;transform:translateX(-50%);object-fit:contain}
body.om-mvp .gd51-arrival.editorial-well{background:transparent;box-shadow:none;border-top:0;position:relative;isolation:isolate;padding:clamp(22px,2.6vw,36px)}
body.om-mvp .gd51-arrival.editorial-well::before{--om41-support-a:.9;--om41-support-b:.78;--om41-support-fx:0px;--om41-support-fy:0px;--om41-support-radius:12px;box-shadow:inset 0 0 0 0 transparent;border-top:3px solid #e21b30}
.gd51-arrival h2{font-size:clamp(25px,2.6vw,38px)}
.gd51-group{display:grid;gap:14px;min-width:0}
.gd51-lead,.gd51-view{margin:0}
.gd51-lead img,.gd51-view img{display:block;width:100%;height:auto;object-fit:cover;background:#111}
.gd51-lead img{aspect-ratio:16/9}
.gd51-view img{aspect-ratio:4/3}
.gd51-lead figcaption,.gd51-view figcaption{padding:8px 12px;font:700 13px/1.35 "OMHM Tomorrow",sans-serif;letter-spacing:.04em;color:#68f8b3;background:#090909}
.gd51-views{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gd51-views li{margin:0;padding:0;min-width:0;display:flex}
.gd51-view{display:flex;flex-direction:column;width:100%}
.gd51-view figcaption{flex:1 1 auto}
/* The floor plan placeholder: 16:9 at the group's width, a 2 px red frame over the plaid weave, the approved pin, one mint kicker and one white line. */
.gd51-floorplan{margin:0;aspect-ratio:16/9;width:100%;box-sizing:border-box;border:2px solid #ef2435;border-radius:10px;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;
  background:linear-gradient(rgba(5,5,5,.88),rgba(5,5,5,.88)),url('./journey-weave-tile.jpg') 0 0/94px 93px #0a0a0a}
.gd51-floorplan .gd51-pin{display:block;width:96px;height:96px;object-fit:contain;margin:0 0 4px}
.gd51-floorplan p{margin:0!important;max-width:none!important;text-align:center}
.gd51-floorplan .gd51-floorplan-kicker{font:700 12px/1.3 "OMHM Tomorrow",sans-serif!important;letter-spacing:.14em;text-transform:uppercase;color:#68f8b3}
.gd51-floorplan .gd51-floorplan-line{font:700 17px/1.4 "OMHM Tomorrow",sans-serif!important;color:#fff}
.gd51-floorplan--plan{background:#090909}
.gd51-floorplan--plan img{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:900px){
  .gd51-hotel-grid{grid-template-columns:1fr;gap:20px}
  .gd51-hotel>.gd51-plate{width:100%}
  .gd51-hotel>.gd51-plate img{top:2%;bottom:auto;height:58%;left:82%}
  body.om-mvp .gd51-arrival.editorial-well::before{--om41-support-a:.88;--om41-support-b:.6}
}
@media(max-width:600px){
  .gd51-views{grid-template-columns:1fr 1fr;gap:10px}
  .gd51-views li:last-child{grid-column:1/-1}
  .gd51-floorplan{gap:4px}
  .gd51-floorplan .gd51-pin{width:96px;height:96px}
}

/* ---------- S. Sip and Shop: no shared outer well; the left editorial group alone is framed ---------- */
body.om-mvp .gd28-sip{margin-top:0}
/* The board wrapper no longer carries the batch 26 well class (gd26-board: black fill, 3 px red border, offset shadow). It keeps the batch 28 grid and takes only the width and the centred text rules the old class gave it. */
body.om-mvp .gd28-sip .gd51-board{position:relative;margin:0 auto;width:100%;max-width:1240px;box-sizing:border-box;background:none;border:0;box-shadow:none;border-radius:0;padding:0;overflow:visible;gap:clamp(24px,3vw,44px);align-items:center}
.gd51-board p{max-width:none;margin-inline:0;text-align:center}
body.om-mvp .gd28-sip .gd28-copy{box-sizing:border-box;background:rgba(5,5,5,.92);border:2px solid #ef2435;border-radius:12px;padding:clamp(22px,2.4vw,32px) clamp(18px,2.2vw,30px)}
/* The rails float on the visible plaid. The tall, near-opaque black fades that used to erase faces at the rail ends are gone; only a 20 px soft edge remains so a card never ends on a hard cut. */
body.om-mvp .gd28-sip .gd28-rail{-webkit-mask-image:linear-gradient(180deg,transparent,#000 20px,#000 calc(100% - 20px),transparent);mask-image:linear-gradient(180deg,transparent,#000 20px,#000 calc(100% - 20px),transparent)}
body.om-mvp .gd28-sip .gd28-rails{align-self:start}
@media(max-width:899px){
  body.om-mvp .gd28-sip .gd28-board{gap:20px}
  body.om-mvp .gd28-sip .gd28-rail--m{-webkit-mask-image:linear-gradient(90deg,transparent,#000 20px,#000 calc(100% - 20px),transparent);mask-image:linear-gradient(90deg,transparent,#000 20px,#000 calc(100% - 20px),transparent)}
}
/* The Final Planning pair keeps its two columns now that Sip and Shop has moved up (batch 52 moves the pair to the bottom). */
.editorial-visit{grid-template-areas:"stay plan"}
@media(max-width:900px){.editorial-visit{grid-template-areas:"stay" "plan"}}
@media(prefers-reduced-motion:reduce){body.om-mvp .gd28-sip .gd28-rail{-webkit-mask-image:none;mask-image:none}}
body.om-mvp .gd28-static .gd28-rail,.gd28-static .gd28-rail{-webkit-mask-image:none!important;mask-image:none!important}
