/* Product pages only. Loaded after site.css. */
  /* ================= Product page v3 =================
     Goldsmiths' order (photos → name → price → finance → buy → promises →
     details), tightened so name, price and the button land on the first screen. */
  a.bar-btn { color: var(--ink); text-decoration: none; }
  .pp { padding: 0 var(--edge) 2rem; overflow-x: clip; }
  .pp .crumbs { padding: 0.75rem 0 0.6rem; }
  .mock-note { margin: 0 0 0.6rem; font-size: 0.6875rem; color: #B42318; letter-spacing: 0.04em; }
  .pp-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }   /* minmax(0,…) stops long content widening the column */
  @media (min-width: 960px) {
    .pp-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 3.5rem; align-items: start; }
    /* The photos scroll with the page (Harry, 14 Oct 2026: a pinned photo made the page feel like two separate pages). */
  }

  /* Photos */
  .pp-gallery { position: relative; background: var(--surface); border-radius: var(--radius); overflow: hidden; }
  .pp-track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; scroll-behavior: smooth; }
  .pp-track::-webkit-scrollbar { display: none; }
  .pp-slide { flex: 0 0 100%; scroll-snap-align: start; aspect-ratio: 1; display: grid; place-items: center; }
  .ph-img { width: 70%; aspect-ratio: 1; display: grid; place-items: center; text-align: center; border-radius: 12px; padding: 1rem;
    background: repeating-linear-gradient(135deg, #ECECEF 0 14px, #E6E6EA 14px 28px); color: #8A8A90; font-size: 0.8125rem; font-weight: 500; }
  .hero-dots { display: flex; justify-content: center; gap: 6px; }
  .hero-dots button { width: 22px; height: 22px; display: grid; place-items: center; }
  .hero-dots span { width: 6px; height: 6px; border-radius: 3px; background: rgba(0, 0, 0, 0.22);
    transition: width var(--d-mid) var(--glide), background-color var(--d-mid) var(--glide); }
  .hero-dots button[aria-current="true"] span { width: 20px; background: var(--ink); }
  .pp-gallery .hero-dots { position: absolute; left: 0; right: 0; bottom: 0.75rem; margin: 0; }
  .pp-gallery .g-arrow { top: calc(50% - 1.375rem); margin: 0; }
  @media (hover: hover) { .pp-gallery:hover .g-arrow { opacity: 1; } }
  .pp-thumbs { display: flex; gap: 0.5rem; margin-top: 0.6rem; overflow-x: auto; scrollbar-width: none; }
  .pp-thumbs::-webkit-scrollbar { display: none; }
  .pp-thumbs button { flex: none; width: 4rem; aspect-ratio: 1; border-radius: 10px; background: var(--surface); display: grid; place-items: center;
    border: 1.5px solid transparent; transition: border-color var(--d-short) var(--glide); }
  .pp-thumbs button span { width: 62%; aspect-ratio: 1; border-radius: 4px; background: #E7E7EA; }
  .pp-thumbs button[aria-current="true"] { border-color: var(--ink); }
  @media (max-width: 959px) {
    .pp-thumbs { display: none; }
    .pp-slide { aspect-ratio: 5 / 4; }          /* a little shorter on phones so name and price show on the first screen */
    .ph-img { width: 58%; }
  }   /* phones: dots + swipe, so the name comes up sooner */

  /* Name, facts, price */
  /* The h1 holds both lines (brand + model, then the description), so search engines see the whole name. */
  .pp-name { max-width: none; font: inherit; letter-spacing: normal; }
  .pp-name > span { display: block; }
  .pp-line1 { font-size: 0.9375rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; font-stretch: 125%; }
  .pp-line2 { margin: 0.35rem 0 0; font-size: 1.125rem; font-weight: 400; line-height: 1.35; max-width: none; }
  .pp-ref { margin-top: 0.3rem; font-size: 0.8125rem; color: var(--muted); letter-spacing: 0.08em; }
  .pp-chips { display: flex; flex-wrap: wrap; gap: 0.35rem; margin-top: 0.8rem; }
  .pp-chips span { padding: 0.3rem 0.65rem; border-radius: 999px; background: var(--surface); font-size: 0.75rem; font-weight: 500; }
  .pp-price-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.2rem 0.7rem; margin-top: 0.75rem; }
  .pp-price { font-size: clamp(1.75rem, 6.5vw, 2.1rem); font-weight: 700; font-stretch: 112%; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; }
  .pp-price.on-sale { color: var(--sale); }
  .pp-rrp { font-size: 0.875rem; color: var(--muted); }
  .pp-rrp s { margin: 0 0.4rem 0 0.25rem; }
  .pp-note { flex-basis: 100%; margin: 0.15rem 0 0; font-size: 0.75rem; color: var(--muted); }
  .test-tag { margin-top: 0.6rem; }

  /* Finance: Goldsmiths' bordered box, but a link only (no figures) */
  .pp-fin { margin-top: 1rem; padding: 0.85rem 1rem; background: #E9EFEE; border-left: 4px solid #2F5D5A; font-size: 0.875rem; }
  .pp-fin a { color: var(--ink); font-weight: 600; }

  /* Buy */
  .pp-actions { display: grid; grid-template-columns: 1fr 3.4rem; gap: 0.6rem; margin-top: 1rem; }
  .pp-buy { display: flex; align-items: center; justify-content: center; height: 3.4rem; border-radius: var(--radius-s);
    background: var(--ink); color: #fff; text-decoration: none; font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.12em;
    text-transform: uppercase; font-stretch: 125%; transition: transform var(--d-short) var(--glide), opacity var(--d-short) var(--glide); }
  .pp-buy:active { transform: scale(0.97); }
  @media (hover: hover) { .pp-buy:hover { opacity: 0.88; } }
  .pp-save { height: 3.4rem; border-radius: var(--radius-s); border: 1px solid var(--rule); background: var(--surface); display: grid; place-items: center; }
  .pp-save svg { width: 1.3rem; height: 1.3rem; fill: none; stroke: var(--ink); stroke-width: 1.6; transition: fill var(--d-short) var(--glide); }
  .pp-save[aria-pressed="true"] svg { fill: var(--ink); }
  .pp-save.pop svg { animation: pop 520ms var(--ease); }
  .pp-small { margin: 0.55rem 0 0; font-size: 0.75rem; color: var(--muted); }
  .pp-small a { color: var(--muted); }

  /* Retailer promises (icon list) */
  .pp-promises { list-style: none; margin: 1.25rem 0 0; padding: 0; display: grid; gap: 0.7rem; }
  .pp-promises li { display: flex; align-items: center; gap: 0.75rem; font-size: 0.9375rem; }
  .pp-promises svg { flex: none; width: 1.3rem; height: 1.3rem; fill: none; stroke: var(--ink); stroke-width: 1.4; }
  .pp-promises a { color: var(--ink); }

  /* Fold-outs */
  .pp-acc { margin-top: 1.5rem; border-top: 1px solid var(--rule); }
  .pp-acc details { border-bottom: 1px solid var(--rule); }
  .pp-acc summary { display: flex; justify-content: space-between; align-items: center; padding: 1.15rem 0; cursor: pointer; list-style: none;
    font-size: 0.9375rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; font-stretch: 125%; }
  .pp-acc summary::-webkit-details-marker { display: none; }
  .pp-acc summary::after { content: ""; width: 0.55rem; height: 0.55rem; border-right: 1.5px solid; border-bottom: 1.5px solid;
    transform: rotate(45deg) translateY(-3px); transition: transform var(--d-short) var(--glide); }
  .pp-acc details[open] summary::after { transform: rotate(-135deg) translateY(-2px); }
  .pp-acc .body { padding: 0 0 1.25rem; font-size: 0.9375rem; line-height: 1.6; }
  .pp-acc .body p { margin: 0 0 0.75rem; }
  .pp-acc .body ul { margin: 0 0 0.75rem; padding-left: 1.1rem; }
  .pp-acc .src { font-size: 0.75rem; color: var(--muted); }
  .pp-acc .pp-fit { margin: 0.75rem 0 1.5rem; font-size: 0.875rem; }
  .pp-acc .pp-fit a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
  .pp-acc .src a { color: var(--muted); }
  .pp-acc .todo { padding: 0.75rem; border: 1px dashed #B42318; color: #B42318; font-size: 0.8125rem; border-radius: 8px; }

  /* Spec table: two-tone rows (from C W Sellors), in groups */
  .spec2 { width: 100%; border-collapse: separate; border-spacing: 0 3px; font-size: 0.9375rem; }
  .spec2 caption { caption-side: top; text-align: left; padding: 0.6rem 0 0.3rem; font-size: 0.625rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
  .spec2 th { width: 44%; padding: 0.7rem 0.85rem; background: #EAEAED; text-align: right; font-weight: 600; vertical-align: top; }
  .spec2 td { padding: 0.7rem 0.85rem; background: var(--surface); vertical-align: top; overflow-wrap: anywhere; }
  .spec2 td.blank { color: #B0B0B5; }

  /* You may also like, with a progress line (as Goldsmiths) */
  .pp-more { margin-top: 2.75rem; }
  .pp-more h2 { margin: 0 0 1rem; font-size: 1.05rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; font-stretch: 125%; }
  .pp-row { display: grid; grid-auto-flow: column; grid-auto-columns: 46%; gap: 0.75rem; overflow-x: auto; scroll-snap-type: x mandatory;
    scrollbar-width: none; margin: 0 calc(var(--edge) * -1); padding: 0 var(--edge); scroll-padding-inline: var(--edge); }
  .pp-more-wrap { position: relative; }
  .pp-more-wrap .g-arrow { top: 36%; z-index: 2; }
  .pp-more-wrap .g-prev { left: -0.5rem; } .pp-more-wrap .g-next { right: -0.5rem; }
  @media (hover: hover) { .pp-more-wrap:hover .g-arrow, .pp-more-wrap .g-arrow:focus-visible { opacity: 1; } }
  .pp-row::-webkit-scrollbar { display: none; }
  @media (min-width: 700px) { .pp-row { grid-auto-columns: 30%; } }
  @media (min-width: 1100px) { .pp-row { grid-auto-columns: 19%; } }
  .pp-card { scroll-snap-align: start; text-decoration: none; color: var(--ink); }
  .pp-card .t { aspect-ratio: 1; display: grid; place-items: center; background: var(--surface); border-radius: var(--radius-s); }
  .pp-card .t span { width: 62%; aspect-ratio: 1; background: #E7E7EA; border-radius: 6px; }
  .pp-card .b { display: block; margin-top: 0.7rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; }
  .pp-card .m { display: block; margin-top: 0.25rem; font-size: 0.875rem; }
  .pp-card .p { display: block; margin-top: 0.4rem; font-size: 0.9375rem; font-weight: 700; }
  .pp-progress { height: 3px; margin-top: 1.1rem; background: var(--rule); border-radius: 2px; overflow: hidden; }
  .pp-progress span { display: block; height: 100%; width: 25%; background: var(--ink); border-radius: 2px; transition: transform 120ms linear; }
  .pp-back { display: inline-block; margin-top: 2rem; color: var(--ink); font-size: 0.75rem; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; text-decoration: none; }

  /* Buy bar on phones once the main button has scrolled away */
  .pp-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; display: flex; align-items: center; gap: 0.75rem;
    padding: 0.7rem var(--edge) calc(0.7rem + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, 0.92); -webkit-backdrop-filter: saturate(180%) blur(18px); backdrop-filter: saturate(180%) blur(18px);
    border-top: 1px solid rgba(0, 0, 0, 0.06); transform: translateY(110%); transition: transform var(--d-mid) var(--glide); }
  .pp-sticky.show { transform: none; }
  .pp-sticky .sp { flex: 1; min-width: 0; }
  .pp-sticky .sp b { display: block; font-size: 1rem; }
  .pp-sticky .sp small { display: block; color: var(--muted); font-size: 0.75rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .pp-sticky .pp-buy { height: 2.9rem; padding: 0 1.25rem; }
  @media (min-width: 960px) { .pp-sticky { display: none; } }
  footer.dark-foot { margin-top: 3rem; }

  /* ================= Type v2: Jost (a Futura-style face, like Goldsmiths') =================
     Calmer than the wide Archivo: no stretched letters, lighter weights, smaller sizes. */
  * { font-stretch: 100% !important; }
  .pp-line1 { font-size: 0.875rem; font-weight: 600; letter-spacing: 0.16em; }
  .pp-line2 { font-size: 1.0625rem; font-weight: 400; letter-spacing: 0.005em; }
  .pp-ref { font-size: 0.8125rem; letter-spacing: 0.06em; }
  .pp-price { font-size: 1.6rem; font-weight: 600; letter-spacing: 0.01em; }
  .pp-rrp, .pp-note, .pp-small { font-weight: 400; }
  .pp-chips span { font-weight: 400; }
  .pp-buy { font-size: 0.75rem; font-weight: 500; letter-spacing: 0.18em; }
  .pp-fin { font-size: 0.875rem; }
  .pp-fin a { font-weight: 500; }
  .pp-promises li { font-size: 0.875rem; }
  .pp-acc summary { font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.16em; padding: 1.05rem 0; }
  .pp-acc .body { font-size: 0.875rem; }
  .spec2 { font-size: 0.875rem; }
  .spec2 th { font-weight: 500; }
  .pp-more h2 { font-size: 0.875rem; font-weight: 600; letter-spacing: 0.16em; }
  .pp-card .b { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.14em; }
  .pp-card .m { font-size: 0.8125rem; }
  .pp-card .p { font-size: 0.875rem; font-weight: 600; }
  .pp-back { font-weight: 500; }
  .crumbs { font-size: 0.8125rem; }
  .wordmark.placeholder { letter-spacing: 0.12em; }
  .foot-statement { font-weight: 500 !important; letter-spacing: 0.2em !important; font-size: clamp(0.9375rem, 3.6vw, 1.25rem) !important; }
  .simple-foot { text-align: center; }
  .simple-foot a { color: #C9CAD0; margin: 0 0.6rem; font-size: 0.8125rem; text-decoration: none; }

  /* ================= Sterling Guild logo =================
     The gold logo was designed on black, so the top bar is black to show it
     exactly as drawn. Name on wider screens, SG monogram on narrow ones. */
  .bar { background: rgba(16, 16, 18, 0.94) !important; color: #fff; border-bottom-color: rgba(255, 255, 255, 0.08) !important; }
  .bar .bar-btn, .bar a.bar-btn, .bar #search-cancel { color: #fff; }
  .bar .bar-btn .badge { background: #D6B88C; color: #111; }
  .bar .search-row input { background: #fff; color: #000; }
  .wordmark.brand { display: flex; align-items: center; justify-content: center; padding: 0 !important; border: 0 !important; line-height: 0; }
  .wordmark.brand img { display: block; height: auto; }
  .wordmark.brand .wm-word { width: clamp(170px, 54vw, 290px); }   /* sharp vector lettering traced from the logo */
  .wordmark.brand .wm-mono { display: none; height: 34px; width: auto; }
  @media (max-width: 359px) { .wordmark.brand .wm-word { display: none; } .wordmark.brand .wm-mono { display: block; } }
  .foot-logo { display: block; width: min(240px, 62vw); height: auto; margin: 0 auto 2.25rem; }

/* Featured in our guides (links back to every guide that includes this watch) */
.pp-featured { max-width: 72rem; margin: 2.5rem auto 0; padding: 0 var(--edge); }
.pp-featured h2 { margin: 0 0 0.8rem; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; }
.pp-featured ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.pp-featured a { display: block; padding: 0.9rem 1.1rem; background: var(--surface); border-radius: var(--radius-s); box-shadow: var(--shadow-1);
  color: var(--ink); text-decoration: none; font-weight: 500; }

/* Product photos (from scripts/photos.mjs). White backgrounds, shown whole. */
.pp-slide img { width: 100%; height: 100%; object-fit: contain; }
.pp-slide img.pp-dial { width: 62%; height: auto; }
.pp-thumbs button img { width: 86%; height: 86%; object-fit: contain; border-radius: 6px; }
.pp-card .t img { width: 86%; height: 86%; object-fit: contain; }

/* Full-screen photos (tap a photo on the watch page). */
.pp-slide.zoomable { cursor: zoom-in; }
html.lb-open { overflow: hidden; }
.lb { width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: #fff; color: var(--ink); }
.lb::backdrop { background: #fff; }
.lb-track { display: flex; width: 100%; height: 100%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior: contain; }
.lb-track::-webkit-scrollbar { display: none; }
.lb-slide { flex: 0 0 100%; height: 100%; scroll-snap-align: start; display: grid; place-items: center; padding: 3.5rem 0.5rem; cursor: zoom-out; }
.lb-slide img { max-width: calc(100vw - 1rem); max-height: calc(100dvh - 7rem); width: auto; height: auto; object-fit: contain; cursor: default; }
.lb-close { position: absolute; top: 0.75rem; right: 0.75rem; padding: 0.55rem 1rem; border: 1px solid var(--rule); border-radius: 999px; background: #fff;
  font: inherit; font-size: 0.8125rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink); cursor: pointer; }
.lb-count { position: absolute; top: 1.2rem; left: 1rem; font-size: 0.8125rem; color: var(--muted); font-variant-numeric: tabular-nums; }
.lb .g-arrow { opacity: 1; }
.lb .lb-prev { left: 0.75rem; } .lb .lb-next { right: 0.75rem; }
@media (hover: none) { .lb .lb-prev, .lb .lb-next { display: none; } }   /* phones: swipe */

/* Touch screens: solid buy bar instead of a blur (smoother scrolling on iPhones). */
@media (hover: none) { .pp-sticky { -webkit-backdrop-filter: none; backdrop-filter: none; background: #fff; } }

/* Sold out: similar watches in stock, so a search for this exact reference still leads somewhere useful. */
.pp-soldout { margin: 1.2rem 0 0.4rem; padding: 1rem; border-radius: var(--radius-s); background: #141518; color: #fff; }
.pp-soldout h2 { margin: 0 0 0.8rem; font-size: 1rem; font-weight: 600; line-height: 1.35; }
.pp-soldout ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.6rem; }
.pp-soldout li a { display: flex; flex-direction: column; gap: 0.3rem; height: 100%; padding: 0.55rem; border-radius: var(--radius-xs); background: #fff; color: #141518; text-decoration: none; font-size: 0.8125rem; line-height: 1.3; }
.pp-soldout li img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
.pp-soldout .so-name b { display: block; font-size: 0.6875rem; letter-spacing: 0.12em; text-transform: uppercase; }
.pp-soldout .so-price { margin-top: auto; font-weight: 600; }
.pp-soldout .so-more { margin: 0.8rem 0 0; }
.pp-soldout .so-more a { color: #D6B88C; font-weight: 600; text-underline-offset: 3px; }
@media (min-width: 1024px) { .pp-soldout ul { grid-template-columns: repeat(4, 1fr); } }

/* Sold out: the Buy button greyed out, not a link (back to normal after the daily update sees it restocked). */
.pp-buy.is-out, .pp-buy.is-out:hover { background: #D9DADF; color: #6B6C72; cursor: not-allowed; opacity: 1; transform: none; pointer-events: none; }

/* Versions: the same watch's other dials, sizes and straps (the "versionInfo" filter in eleventy.config.js). */
.pp-version { margin: 0.4rem 0 0.9rem; font-size: 0.875rem; color: var(--muted); line-height: 1.5; }
.pp-version b { color: var(--ink); font-weight: 600; }
.pp-version a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.pp-versions { max-width: 72rem; margin: 2.5rem auto 0; padding: 0 var(--edge); scroll-margin-top: 5rem; }
.pp-versions h2 { margin: 0 0 0.4rem; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; }
.pp-versions-note { margin: 0 0 0.8rem; font-size: 0.875rem; color: var(--muted); }
.pp-versions-note a { color: var(--ink); font-weight: 600; text-decoration: none; }
.pp-vtable { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid rgba(0, 0, 0, 0.08); border-radius: 12px; }
.pp-vtable table { width: 100%; border-collapse: collapse; font-size: 0.875rem; min-width: 28rem; }
.pp-vtable th, .pp-vtable td { padding: 0.6rem 0.8rem; text-align: left; border-bottom: 1px solid rgba(0, 0, 0, 0.06); white-space: nowrap; }
.pp-vtable thead th { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--muted); background: rgba(0, 0, 0, 0.02); }
.pp-vtable tbody tr:last-child td { border-bottom: 0; }
.pp-vtable tr.this { background: rgba(214, 184, 140, 0.12); }
.pp-vtable td a { color: var(--ink); font-weight: 600; text-decoration: underline; text-decoration-color: #D6B88C; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.pp-vtable .tag { margin-left: 0.4rem; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: #8a6d3b; }
