/* Product detail v4: existing immersive opening, then one continuous origin-to-enquiry story. */
.product-page { --paper:#f8f7f2; --product-space:clamp(104px,12vw,188px); --product-ink:#2e3e11; --product-pink:#f7cee1; color:var(--product-ink); background:var(--paper); }
.product-page main { padding-top:0; }
.product-page :focus-visible { outline:3px solid var(--orange-text); outline-offset:5px; }
.product-page .product-hero :focus-visible { outline-color:var(--orange-action); }
.product-section__inner { width:min(calc(100% - 48px),var(--page-max)); margin-inline:auto; }
.product-hero__inner { position:relative; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:32px 24px; align-items:end; padding-block:180px 48px; }
.product-hero__heading { grid-column:1/-1; }
.product-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:18px; color:#fff; font:400 15px/1.3 "Hanken Grotesk",sans-serif; }
.product-breadcrumb a { display:inline-flex; min-height:44px; align-items:center; text-underline-offset:5px; }
.product-breadcrumb a:hover { text-decoration:underline; }
.product-breadcrumb > span { opacity:.65; }
.product-page .product-hero h1 { max-width:none; margin:0; color:#fff; font:500 clamp(88px,12vw,172px)/1.05 "Parkinsans",sans-serif; letter-spacing:-.065em; text-wrap:initial; }
.product-page .product-hero h1.product-title--long { font-size:clamp(72px,9vw,130px); }
.product-page .product-hero::after { background:linear-gradient(180deg,rgba(4,23,16,.8),rgba(4,23,16,.62) 100px,transparent 250px),linear-gradient(0deg,rgba(4,23,16,.88),rgba(4,23,16,.38) 36%,transparent 68%),linear-gradient(90deg,rgba(4,23,16,.52),rgba(4,23,16,.16) 55%,transparent 85%); }
.product-hero__actions { display:flex; flex-wrap:wrap; gap:20px clamp(26px,3vw,48px); align-items:center; margin-top:28px; }
.product-hero__explore { display:inline-flex; min-height:44px; align-items:center; color:#fff; font:500 14px/1.2 "Hanken Grotesk",sans-serif; text-decoration:underline; text-underline-offset:4px; text-transform:uppercase; }
.product-hero__explore:hover { text-decoration-thickness:2px; }
.product-page .product-hero .page-button,.product-page .product-sticky-cta .page-button { display:inline-flex; align-items:center; justify-content:center; min-width:156px; min-height:44px; padding:6px 22px; border:0; border-radius:20px; background:var(--product-pink); color:#171717; box-shadow:none; font:500 14px/1.2 "Hanken Grotesk",sans-serif; text-decoration:none; }
.product-page .product-hero .page-button:hover,.product-page .product-sticky-cta .page-button:hover { background:#f2b8d2; color:#171717; }
.product-hero__context { max-width:42ch; margin:16px 0 0; color:rgba(255,255,255,.84); font:400 13px/1.4 "Hanken Grotesk",sans-serif; }
.product-hero__specimen { margin:0; }
.product-section { padding-block:var(--product-space) 0; }
.product-page .product-section h2 { margin:0; color:var(--product-ink); font:600 clamp(44px,5vw,72px)/1.08 "Parkinsans",sans-serif; letter-spacing:-.055em; }
.product-page .product-section .eyebrow { margin:0 0 28px; color:var(--orange-text); font:600 12px/1.3 "Hanken Grotesk",sans-serif; text-transform:uppercase; letter-spacing:.12em; }
.product-intro .product-section__inner { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); column-gap:24px; }
.product-page .product-intro { width:100%; margin-inline:0; }
.product-intro .eyebrow { grid-column:1/-1; }
.product-intro h2 { grid-column:2/12; max-width:25ch; text-align:center; justify-self:center; }
.product-page .product-intro h2 { font-size:clamp(38px,4.6vw,64px); }
.product-facts { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:24px clamp(42px,6vw,110px); margin:clamp(64px,8vw,112px) 0 0; padding:0; }
.product-facts > div { max-width:40ch; }
.product-facts dt { margin:0 0 10px; color:var(--orange-text); font:600 12px/1.3 "Hanken Grotesk",sans-serif; text-transform:uppercase; letter-spacing:.1em; }
.product-facts dd { margin:0; color:var(--ink-deep); font:500 clamp(20px,2vw,28px)/1.2 "Parkinsans",sans-serif; letter-spacing:-.035em; }
.product-intro__note { margin:12px 0 0; color:#53685f; font:400 13px/1.4 "Hanken Grotesk",sans-serif; }
.product-gallery { display:grid; grid-template-columns:minmax(0,1fr); align-items:center; min-width:0; min-height:78svh; padding-top:clamp(76px,8vw,128px); }
.product-gallery .product-section__inner { min-width:0; width:100%; max-width:none; }
.product-gallery__track { --gallery-gap:12px; --gallery-edge:clamp(16px,1.7vw,24px); --gallery-card-width:calc((100vw - 48px) / 2.94); display:flex; gap:var(--gallery-gap); width:100%; height:auto; padding-inline:var(--gallery-edge); overflow-x:auto; overflow-y:hidden; scroll-behavior:auto; scrollbar-width:none; overscroll-behavior-inline:contain; }
.product-gallery__track::-webkit-scrollbar { display:none; }
.product-gallery__slide { position:relative; flex:0 0 var(--gallery-card-width); aspect-ratio:387 / 307; margin:0; overflow:hidden; border-radius:20px; background:#e7e6df; }
.product-gallery__slide img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 47%; }
.product-season { padding-top:calc(var(--product-space) * .75); }
.product-season__heading { display:flex; align-items:end; justify-content:space-between; gap:32px; }
.product-season__heading p { margin:0 0 8px; color:var(--ink-deep); font:500 clamp(18px,2vw,26px)/1.3 "Hanken Grotesk",sans-serif; }
.product-season__months { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:clamp(10px,1.5vw,24px); list-style:none; margin:clamp(44px,6vw,80px) 0 0; padding:0; }
.product-season__month { min-width:0; }
.product-season__month-name { display:block; margin-bottom:14px; color:var(--product-ink); font:500 clamp(11px,1vw,14px)/1.2 "Hanken Grotesk",sans-serif; }
.product-season__month.is-current-season .product-season__month-name { font-weight:700; }
.product-season__days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px 5px; }
.product-season__day { display:block; width:min(100%,5px); aspect-ratio:1; border-radius:50%; background:#d5d8cd; }
.product-season__day.is-season-day { background:#e7a5bf; }
.product-season__month.is-current-season .product-season__day.is-season-day { background:#bf5e89; transform:scale(1.16); }
.product-season.can-animate .product-season__day.is-season-day { opacity:.16; transform:scale(.55); }
.product-season.can-animate.is-illuminating .product-season__day.is-season-day { animation:product-day-glow 360ms var(--ease-out) both; animation-delay:calc(var(--day-order) * 8ms); }
.product-season.can-animate.is-illuminating .product-season__month.is-current-season .product-season__day.is-season-day { animation-name:product-day-glow-current; }
@keyframes product-day-glow { to { opacity:1; transform:scale(1); } }
@keyframes product-day-glow-current { to { opacity:1; transform:scale(1.16); } }
.product-season__note { margin:28px 0 0; color:#53685f; font:400 14px/1.45 "Hanken Grotesk",sans-serif; }
.product-origin__layout { display:grid; grid-template-columns:minmax(0,4fr) minmax(0,8fr); gap:clamp(24px,4vw,72px); align-items:center; }
.product-origin__copy h2 { max-width:13ch; }
.product-origin__copy > p:last-child { margin:34px 0 0; color:var(--orange-text); font:600 clamp(24px,3vw,38px)/1.2 "Parkinsans",sans-serif; }
.product-origin__map { min-width:0; min-height:clamp(480px,64svh,760px); margin:0; display:grid; align-content:center; }
.product-origin__map svg { display:block; width:100%; height:clamp(480px,72svh,700px); overflow:hidden; }
.product-origin__map image { filter:brightness(.16); opacity:.63; }
.product-origin__halo { fill:var(--product-pink); opacity:.65; }
.product-origin__marker { fill:#bc5684; }
.product-origin__label { justify-self:end; margin:0 8% 8px 0; color:var(--product-ink); font:500 clamp(12px,1vw,14px)/1.25 "Hanken Grotesk",sans-serif; }
@media (prefers-reduced-motion:no-preference) {
  .product-origin__halo { transform-box:fill-box; transform-origin:center; animation:product-map-pulse 2.6s ease-in-out infinite; }
  .product-origin__marker { animation:product-map-blink 2.6s ease-in-out infinite; }
}
@keyframes product-map-pulse { 0%,100% { opacity:.18; transform:scale(.75); } 50% { opacity:.55; transform:scale(1.1); } }
@keyframes product-map-blink { 0%,100% { opacity:.5; } 50% { opacity:1; } }
.product-origin__map figcaption { margin-top:-36px; color:var(--ink-deep); font:600 18px/1.2 "Hanken Grotesk",sans-serif; }
.product-origin__map figcaption span { color:#53685f; font-size:13px; font-weight:400; }
.product-varieties > .product-section__inner > h2 { margin-bottom:32px; }
.product-varieties__layout { display:grid; grid-template-columns:minmax(0,5fr) minmax(0,7fr); gap:clamp(28px,5vw,84px); align-items:start; }
.product-varieties__steps { min-width:0; }
.product-varieties__step { display:flex; flex-direction:column; justify-content:center; min-height:70svh; padding-block:80px; opacity:.34; transition:opacity 420ms var(--ease-out); }
.product-varieties__step.is-active { opacity:1; }
.product-varieties__step h3 { max-width:12ch; margin:0; color:var(--product-ink); font:600 clamp(42px,5vw,72px)/1.08 "Parkinsans",sans-serif; letter-spacing:-.05em; }
.product-varieties__media { position:sticky; top:calc(var(--site-header-height,72px) + 20px); height:min(72svh,760px); margin:0; border-radius:var(--media-radius-feature); overflow:hidden; background:#e4e5df; }
.product-varieties__image { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; opacity:0; transition:opacity 550ms var(--ease-out); }
.product-varieties__image.is-active { opacity:1; }
.product-varieties__media figcaption { position:absolute; z-index:1; right:14px; bottom:14px; left:14px; width:max-content; max-width:calc(100% - 28px); padding:9px 12px; border-radius:8px; background:var(--paper); color:var(--ink-deep); font:400 12px/1.3 "Hanken Grotesk",sans-serif; }
.product-related h2 { margin-bottom:clamp(36px,5vw,72px)!important; }
.product-related__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(16px,2vw,28px); width:100%; list-style:none; margin:0; padding:0; }
.product-related__item { min-width:0; }
.product-related__item a { display:block; color:var(--product-ink); text-decoration:none; }
.product-related__item a:focus-visible { border-radius:var(--media-radius); }
.product-related__visual { display:block; width:100%; overflow:hidden; aspect-ratio:1.18; border-radius:var(--media-radius); background:#e4e5df; }
.product-related__visual img { display:block; width:100%; height:100%; object-fit:cover; }
.product-related__meta { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:14px; font:400 18px/1.2 "Hanken Grotesk",sans-serif; text-transform:uppercase; }
.product-related__meta > span { min-width:0; overflow-wrap:anywhere; }
.product-related__meta img { display:block; flex:none; width:18px; height:18px; opacity:.48; transition:opacity 180ms ease; }
.product-related__item:hover .product-related__meta img,.product-related__item:focus-within .product-related__meta img { opacity:1; }
.product-contact { padding-block:clamp(70px,8vw,120px) var(--product-space); background:var(--paper); }
.product-contact__inner { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:24px; align-items:start; }
.product-contact h2 { grid-column:1/7; max-width:19ch; margin:0; color:var(--product-ink); font:500 clamp(36px,4vw,58px)/1.1 "Parkinsans",sans-serif; letter-spacing:-.055em; }
.product-contact__inner > div { grid-column:8/-1; }
.product-contact p { max-width:32ch; margin:0 0 24px; color:var(--product-ink); font:400 18px/1.5 "Hanken Grotesk",sans-serif; }
.product-contact .page-button { font-weight:600; }
.product-sticky-cta { position:fixed; z-index:41; right:0; bottom:0; left:0; display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:76px; padding:12px max(24px,calc((100vw - var(--page-max))/2)); border-radius:20px 20px 0 0; background:var(--paper); color:var(--product-ink); }
.product-related { padding-top:clamp(220px,22vw,340px); padding-bottom:clamp(100px,12vw,180px); }
.product-sticky-cta[hidden] { display:none; }
.product-sticky-cta > span { font:500 18px/1.2 "Parkinsans",sans-serif; }
@media (prefers-reduced-motion:no-preference) { .product-sticky-cta:not([hidden]) { animation:product-sticky-rise 400ms var(--ease-out) both; } }
@keyframes product-sticky-rise { from { opacity:0; transform:translateY(100%); } to { opacity:1; transform:translateY(0); } }
@media (max-width:1000px) { .product-season__months { grid-template-columns:repeat(6,minmax(0,1fr)); gap:30px 18px; } .product-season__days { max-width:74px; } }
/* Keep the complete product action group in the first view on a rotated
   phone without shrinking the normal portrait opening. */
@media (min-width:801px) and (max-height:500px) {
  .product-hero__inner { padding-block:112px 24px; }
  .product-page .product-hero h1 { font-size:clamp(64px,10vw,96px); }
  .product-page .product-hero h1.product-title--long { font-size:clamp(52px,8vw,76px); }
  .product-hero__actions { margin-top:18px; }
}
@media (max-width:800px) {
  .product-page { --product-space:clamp(76px,14vw,112px); }
  .product-section__inner { width:calc(100% - 32px); }
  .product-hero__inner { padding-block:160px 32px; }
  .product-breadcrumb { font-size:14px; margin-bottom:14px; }
  .product-page .product-hero h1 { font-size:clamp(64px,17vw,124px); }
  .product-page .product-hero h1.product-title--long { font-size:clamp(38px,11.6vw,88px); }
  .product-page .product-hero::after { background:linear-gradient(180deg,rgba(4,23,16,.8),rgba(4,23,16,.52) 90px,transparent 220px),linear-gradient(0deg,rgba(4,23,16,.95),rgba(4,23,16,.55) 33%,transparent 70%),linear-gradient(90deg,rgba(4,23,16,.48),rgba(4,23,16,.25) 65%,transparent); }
  .product-intro .product-section__inner { grid-template-columns:1fr; }
  .product-intro .eyebrow,.product-intro h2,.product-facts { grid-column:1; }
  .product-page .product-intro h2 { font-size:clamp(34px,8vw,56px); text-align:left; }
  .product-facts { margin-top:56px; gap:28px 44px; }
  .product-gallery__track { --gallery-card-width:calc((100vw - 44px) / 1.42); }
  .product-season__heading { display:block; }
  .product-season__heading p { margin:18px 0 0; }
  .product-origin__layout { grid-template-columns:1fr; gap:24px; }
  .product-origin__map { min-height:380px; }
  .product-origin__map svg { height:380px; }
  .product-origin__map figcaption { margin-top:-20px; }
  .product-varieties__layout { display:flex; flex-direction:column; gap:0; }
  .product-varieties__media { order:0; align-self:stretch; top:72px; height:42svh; min-height:280px; }
  .product-varieties__steps { order:1; align-self:stretch; }
  .product-varieties__step { min-height:50svh; }
  .product-varieties__step h3 { font-size:clamp(38px,9vw,58px); }
  .product-related__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .product-contact__inner { grid-template-columns:1fr; gap:28px; }
  .product-contact h2,.product-contact__inner > div { grid-column:1; }
  .product-sticky-cta { padding-inline:16px; }
}
@media (max-width:420px) {
  .product-breadcrumb { font-size:13px; }
  .product-hero__actions { gap:12px 20px; }
  .product-hero__explore { font-size:12px; }
  .product-gallery__track { --gallery-card-width:calc(100vw - 72px); }
  .product-season__months { grid-template-columns:repeat(4,minmax(0,1fr)); gap:26px 12px; }
  .product-season__days { gap:5px 4px; }
  .product-related__grid { gap:28px 12px; }
  .product-related__meta { font-size:14px; }
  .product-sticky-cta > span { font-size:14px; }
  .product-sticky-cta .page-button { min-height:44px; padding-inline:14px; font-size:12px; }
}
@media (prefers-reduced-motion:reduce) {
  .product-gallery__track { scroll-behavior:auto; }
  .product-origin__halo,.product-origin__marker { animation:none; }
  .product-varieties__step,.product-varieties__image,.product-related__meta img { transition:none; }
  .product-season.can-animate .product-season__day.is-season-day { opacity:1; transform:none; }
  .product-season.can-animate.is-illuminating .product-season__day.is-season-day { animation:none; }
}
html.motion-paused .product-season__day.is-season-day { animation:none!important; opacity:1!important; transform:none!important; }
