/* Ring page: photo gallery + buying column (matches the Shopify Horizon layout) */
.pdp { padding:24px 0 72px; }
.pdp__grid { max-width:1320px; margin:0 auto; padding:0 48px; display:grid; grid-template-columns:1.15fr 1fr; gap:56px; align-items:start; }

/* Gallery: thumbnails on the left, one large square photo */
.gallery { display:grid; grid-template-columns:64px 1fr; gap:12px; align-items:stretch; }
.gallery__thumbs { display:flex; flex-direction:column; gap:8px; height:0; min-height:100%; overflow-y:auto; scrollbar-width:none; }
.gallery__thumbs::-webkit-scrollbar { display:none; }
.gallery__thumb { flex:0 0 64px; padding:0; border:1px solid transparent; background:#222; cursor:pointer; width:64px; height:64px; opacity:.6; transition:opacity .2s, border-color .2s; }
.gallery__thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.gallery__thumb:hover, .gallery__thumb.is-active { opacity:1; border-color:var(--fg); }
.gallery__stage { position:relative; aspect-ratio:1; background:#1d1d1d; overflow:hidden; }
.gallery__slide { position:absolute; inset:0; margin:0; opacity:0; transition:opacity .35s ease; pointer-events:none; }
.gallery__slide.is-active { opacity:1; pointer-events:auto; }
.gallery__slide img { width:100%; height:100%; object-fit:cover; cursor:zoom-in; display:block; }
.gallery__arrow { position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; border:0; border-radius:50%; background:rgba(21,21,21,.6); color:var(--fg); display:grid; place-items:center; cursor:pointer; opacity:0; transition:opacity .2s; }
.gallery__arrow svg { width:8px; height:12px; }
.gallery__stage:hover .gallery__arrow, .gallery__arrow:focus-visible { opacity:1; }
.gallery__arrow--prev { left:12px; }
.gallery__arrow--next { right:12px; }
.gallery__count { position:absolute; bottom:12px; right:14px; font-size:12px; letter-spacing:.08em; color:var(--fg); background:rgba(21,21,21,.6); padding:4px 10px; }

/* Buying column */
.details { position:sticky; top:96px; }
.details__inner { display:flex; flex-direction:column; gap:22px; padding:0 0 24px; }
.details__title { font-family:'Cormorant',serif; font-weight:400; font-size:36px; line-height:1.15; margin:0; }
.details__price { margin:-10px 0 0; font-size:16px; color:var(--fg); }
.details__desc { color:var(--muted); font-size:15px; }
.details__desc p { margin:0 0 12px; line-height:1.75; }
.details__desc strong { color:var(--fg); font-weight:600; }
.details__desc ul { margin:0 0 12px; padding-left:18px; line-height:1.8; }
.details__desc a { color:var(--fg); }
.details__rule { border:0; border-top:1px solid var(--line); margin:0; }

.notice { margin:0; padding:12px 14px; border:1px solid var(--line); color:var(--muted); font-size:14px; }
.notice--error { border-color:#7a4a4a; color:#E3A6A6; }
.notice a { color:inherit; }

.buy { display:flex; flex-direction:column; gap:22px; }
.opt { border:0; margin:0; padding:0; }
.opt__label { font-size:13px; color:var(--muted); margin-bottom:10px; padding:0; }
.opt__chosen { color:var(--fg); margin-left:6px; }
.opt__values { display:grid; gap:6px; }
.opt__values--finish { grid-template-columns:1fr; }
.opt__values--size { grid-template-columns:repeat(5, 1fr); }
.opt__btn { position:relative; display:block; cursor:pointer; }
.opt__btn input { position:absolute; opacity:0; inset:0; margin:0; cursor:pointer; }
.opt__btn span { display:block; text-align:center; padding:11px 8px; border:1px solid var(--line); font-size:14px; transition:border-color .2s, background .2s, color .2s; }
.opt__btn:hover span { border-color:var(--muted); }
.opt__btn input:checked + span { background:var(--fg); color:var(--bg); border-color:var(--fg); }
.opt__btn input:focus-visible + span { outline:2px solid var(--accent); outline-offset:2px; }

.buy__row { display:flex; gap:10px; }
.qty { display:flex; align-items:center; border:1px solid var(--line); }
.qty__btn { width:40px; height:48px; border:0; background:none; color:var(--fg); font-size:18px; cursor:pointer; }
.qty__input { width:36px; height:48px; border:0; background:none; color:var(--fg); text-align:center; font:inherit; -moz-appearance:textfield; }
.qty__input::-webkit-outer-spin-button, .qty__input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.buy__btn { flex:1; height:50px; border:1px solid var(--fg); background:var(--fg); color:var(--bg); font:inherit; font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; cursor:pointer; transition:background .3s, color .3s; }
.buy__btn:hover { background:transparent; color:var(--fg); }
.buy__btn[disabled] { opacity:.6; cursor:wait; }
.buy__hint { margin:-10px 0 0; color:#E3A6A6; font-size:13px; }
.buy__fine { margin:-8px 0 0; font-size:12px; color:var(--subtle); }

/* Sticky bar after scrolling past the buy button */
.sticky-buy { position:fixed; left:0; right:0; bottom:0; z-index:40; background:rgba(21,21,21,.96); border-top:1px solid var(--line); backdrop-filter:blur(6px); }
.sticky-buy__inner { max-width:1240px; margin:0 auto; padding:10px 48px; display:flex; align-items:center; gap:14px; }
.sticky-buy__inner img { object-fit:cover; }
.sticky-buy__text { display:flex; flex-direction:column; font-size:13px; margin-right:auto; }
.sticky-buy__text span { color:var(--muted); }
.sticky-buy__btn { padding:13px 22px; background:var(--fg); color:var(--bg); text-decoration:none; font-size:11px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; }

/* Zoom view */
.zoom { position:fixed; inset:0; z-index:60; background:rgba(10,10,10,.95); display:grid; place-items:center; padding:24px; }
.zoom img { max-width:100%; max-height:100%; object-fit:contain; }
.zoom__close { position:absolute; top:16px; right:20px; border:0; background:none; color:var(--fg); font-size:36px; line-height:1; cursor:pointer; }

@media (max-width: 900px) {
  .pdp { padding-top:0; }
  .pdp__grid { grid-template-columns:1fr; padding:0; gap:24px; }
  .gallery { grid-template-columns:1fr; }
  .gallery__thumbs { order:2; flex-direction:row; height:auto; min-height:0; overflow-x:auto; padding:0 20px; }
  .gallery__thumb { flex:0 0 56px; width:56px; height:56px; }
  .gallery__arrow { opacity:1; }
  .details { position:static; padding:0 20px; }
  .opt__values--size { grid-template-columns:repeat(4, 1fr); }
  .sticky-buy__inner { padding:10px 16px; }
}

/* ---------- Ring story section (ported from the Shopify "Everlore ring story" section) ---------- */
.evp { --n:#151515; --n2:#0E0E0E; --ox:#8B9094; --li:#B9C3A2; --mo:#ECEAE5; --mu:#C8C6C1; --ln:#2C2C2C;
  background:var(--n); color:var(--mo); font-family:'Manrope',sans-serif; font-weight:400; }
.evp * { box-sizing:border-box; }
.evp-wrap { width:100%; max-width:1240px; margin:0 auto; padding:0 48px; }
.evp-narrow { max-width:760px; }
.evp-center { text-align:center; }
.evp-eyebrow { font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:var(--li); margin:0 0 20px; font-weight:600; }
.evp-h2 { font-family:'Italiana',serif; font-weight:400; font-size:clamp(34px,3.6vw,52px); line-height:1.08; margin:0 0 32px; color:var(--mo); }
.evp-lede { font-size:16px; color:var(--mu); margin:0 0 32px; letter-spacing:.04em; }

.evp-strip { border-top:1px solid var(--ln); border-bottom:1px solid var(--ln); }
.evp-strip__inner { display:flex; justify-content:center; align-items:center; gap:28px; flex-wrap:wrap; padding-top:22px; padding-bottom:22px; font-size:12px; letter-spacing:.2em; text-transform:uppercase; color:var(--mu); }
.evp-strip__inner i { width:5px; height:5px; background:var(--ox); transform:rotate(45deg); display:inline-block; }

.evp-story { padding:120px 0; background:var(--n2); border-bottom:1px solid var(--ln); scroll-margin-top:80px; }
.evp-story__body p { color:var(--mu); font-size:17px; line-height:1.8; font-weight:300; margin:0 0 24px; }
.evp-story__body figure { margin:40px 0; }
.evp-story__body img { width:100%; height:auto; display:block; filter:grayscale(.2); }
.evp-story__body figcaption { margin-top:12px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--ox); }
.evp-story__body blockquote { font-family:'Italiana',serif; font-size:30px; line-height:1.35; margin:48px 0 24px; padding-left:26px; border-left:1px solid var(--li); color:var(--mo); }
.evp-story__body .evp-sign { color:var(--mo); letter-spacing:.06em; }

.evp-steps { padding:120px 0; }
.evp-steps__list { list-style:none; margin:56px 0 0; padding:0; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--ln); border:1px solid var(--ln); }
.evp-steps__list li { background:var(--n); padding:48px 40px; }
.evp-steps__list span { font-family:'Italiana',serif; font-size:30px; color:var(--li); }
.evp-steps__list h3 { font-family:'Italiana',serif; font-weight:400; font-size:28px; margin:20px 0 12px; color:var(--mo); }
.evp-steps__list p { margin:0; color:var(--mu); font-size:15px; line-height:1.7; font-weight:300; }

.evp-faq { padding:0 0 120px; }
.evp-faq details { border-bottom:1px solid var(--ln); }
.evp-faq details:first-of-type { border-top:1px solid var(--ln); }
.evp-faq summary { cursor:pointer; list-style:none; padding:26px 40px 26px 0; position:relative; font-size:17px; color:var(--mo); }
.evp-faq summary::-webkit-details-marker { display:none; }
.evp-faq summary::after { content:'+'; position:absolute; right:0; top:22px; font-size:24px; font-weight:300; color:var(--ox); }
.evp-faq details[open] summary::after { content:'\2013'; }
.evp-faq details p { margin:0 0 26px; color:var(--mu); font-weight:300; line-height:1.75; }

.evp-final { padding:110px 0; background:var(--n2); border-top:1px solid var(--ln); }
.evp-btn { display:inline-block; padding:17px 34px; font-size:12px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; text-decoration:none; border:1px solid var(--mo); background:var(--mo); color:var(--n); transition:background .3s, color .3s; }
.evp-btn:hover { background:transparent; color:var(--mo); }

@media (max-width:900px) {
  .evp-wrap { padding:0 20px; }
  .evp-story, .evp-steps { padding:80px 0; }
  .evp-faq { padding-bottom:80px; }
  .evp-steps__list { grid-template-columns:1fr; }
  .evp-strip__inner { gap:14px; font-size:11px; }
  .evp-story__body blockquote { font-size:24px; }
}

/* Video slides */
.gallery__thumb { position:relative; }
.gallery__play { position:absolute; inset:0; margin:auto; width:22px; height:22px; color:#fff; background:rgba(21,21,21,.55); border-radius:50%; padding:3px; }
.gallery__slide video { width:100%; height:100%; object-fit:cover; display:block; background:#1d1d1d; }
