/* =========================================================
   SAWYRA LOOP — Standalone theme (Noir-Clinic)
   ========================================================= */
:root{
  --w:#fff; --paper:#f7f9fb; --mist:#eef2f6; --card:#fff;
  --ink:#0e1620; --ink-2:#141b24; --soft:#48525e; --mute:#8b95a1; --line:#e3e9ef;
  --accent:#c19a3a; --accent-soft:#f6efdb;
  --gold:#b8912f; --gold-lite:#d9b75e; --gold-deep:#8a6a1e;
  --ok:#1a9d6a; --danger:#e0533a;
  --grad:linear-gradient(135deg,#8a6a1e,#d9b75e 45%,#b8912f 70%,#7a5c18);
  --fd:"Literata",Georgia,serif;
  --fb:"Inter",system-ui,-apple-system,sans-serif;
  --mx:1180px; --e:cubic-bezier(.22,.61,.36,1); --radius:12px;
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{ font-family:var(--fb); background:var(--w); color:var(--ink); line-height:1.6; -webkit-font-smoothing:antialiased; }
img{ max-width:100%; height:auto; display:block; }
h1,h2,h3,h4,.disp{ font-family:var(--fd); font-weight:500; letter-spacing:-.5px; line-height:1.1; }
a{ color:var(--accent); text-decoration:none; }
a:hover{ color:var(--gold-deep); }

.sw-skip{ position:absolute; left:-9999px; top:0; background:var(--ink); color:#fff; padding:10px 16px; z-index:9999; }
.sw-skip:focus{ left:8px; top:8px; }

.sw-wrap{ max-width:var(--mx); margin:0 auto; padding:48px 22px; }
.sw-center{ text-align:center; margin-top:2.5rem; }

/* buttons */
.sw-btn{ display:inline-block; padding:15px 30px; border-radius:var(--radius); font-family:var(--fb); font-weight:600; font-size:14px; cursor:pointer; border:0; transition:.2s; text-align:center; }
.sw-btn--dark{ background:var(--ink); color:#fff; }
.sw-btn--dark:hover{ background:var(--accent); color:#fff; }
.sw-btn--ghost{ background:transparent; color:var(--ink); border:1px solid var(--line); }
.sw-btn--ghost:hover{ border-color:var(--accent); color:var(--accent); }

/* =========================================================
   ANNOUNCEMENT + HEADER (single navigation, dark)
   ========================================================= */
.sw-anno{
  background:#000; color:var(--gold-lite); text-align:center;
  font-size:11px; letter-spacing:1.5px; padding:9px 12px; font-weight:500;
  border-bottom:1px solid rgba(255,255,255,.06);
}

.sw-header{ position:sticky; top:0; z-index:100; background:#000; border-bottom:1px solid rgba(255,255,255,.08); }
.sw-header__in{ max-width:var(--mx); margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:12px 22px; }
.sw-header__brand{ display:flex; align-items:center; flex-shrink:0; }
.sw-header__logo,.sw-header .custom-logo{ max-height:46px; width:auto; }
.sw-header__logo-link{ display:inline-block; }

.sw-nav{ flex:1; display:flex; justify-content:center; }
.sw-nav__menu{ list-style:none; display:flex; gap:30px; margin:0; padding:0; }
.sw-nav__menu li{ position:relative; }
.sw-nav__menu a{ color:#e8ecf1; font-size:14px; font-weight:500; letter-spacing:.2px; padding:8px 0; display:inline-block; transition:.2s; }
.sw-nav__menu a:hover,.sw-nav__menu .current-menu-item > a{ color:var(--gold-lite); }
/* dropdowns */
.sw-nav__menu ul.sub-menu{ position:absolute; top:100%; left:0; background:var(--ink-2); list-style:none; min-width:200px; padding:8px 0; border:1px solid rgba(255,255,255,.08); border-radius:10px; opacity:0; visibility:hidden; transform:translateY(6px); transition:.2s; margin:0; }
.sw-nav__menu li:hover > ul.sub-menu{ opacity:1; visibility:visible; transform:none; }
.sw-nav__menu ul.sub-menu a{ display:block; padding:8px 18px; }

.sw-header__actions{ display:flex; align-items:center; gap:16px; flex-shrink:0; }
.sw-cart{ position:relative; color:#e8ecf1; display:flex; align-items:center; }
.sw-cart:hover{ color:var(--gold-lite); }
.sw-cart svg{ width:22px; height:22px; }
.sw-cart__count{ position:absolute; top:-8px; right:-10px; background:var(--gold); color:var(--ink); font-size:10px; font-weight:700; min-width:17px; height:17px; border-radius:100px; display:flex; align-items:center; justify-content:center; padding:0 4px; }

.sw-burger{ display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:6px; }
.sw-burger span{ width:24px; height:2px; background:#e8ecf1; transition:.2s; }

.sw-drawer{ display:none; background:var(--ink-2); border-top:1px solid rgba(255,255,255,.08); }
.sw-drawer.open{ display:block; }
.sw-drawer__menu{ list-style:none; margin:0; padding:8px 22px 16px; }
.sw-drawer__menu li{ border-bottom:1px solid rgba(255,255,255,.06); }
.sw-drawer__menu a{ display:block; padding:14px 0; color:#e8ecf1; font-size:15px; }
.sw-drawer__menu a:hover{ color:var(--gold-lite); }

@media(max-width:900px){
  .sw-nav{ display:none; }
  .sw-burger{ display:flex; }
}

/* =========================================================
   HERO (homepage)
   ========================================================= */
.sw-hero{ position:relative; background:var(--w); overflow:hidden; }
.sw-hero__glow{ position:absolute; inset:0; background:radial-gradient(50% 55% at 70% 40%,rgba(184,145,47,.10),transparent 70%),radial-gradient(40% 40% at 60% 60%,rgba(184,145,47,.06),transparent 70%); pointer-events:none; }
.sw-hero__in{ position:relative; z-index:2; max-width:var(--mx); margin:0 auto; padding:60px 22px 70px; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:30px; min-height:76vh; }
.sw-hero__eyebrow{ display:flex; align-items:center; gap:12px; font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--accent); margin-bottom:24px; font-weight:600; opacity:0; transform:translateY(14px); }
.sw-hero__eyebrow .ln{ width:40px; height:1px; background:var(--accent); opacity:.5; }
.sw-hero__title{ font-size:clamp(3rem,7vw,5.6rem); color:var(--ink); opacity:0; transform:translateY(20px); }
/* "Juwel" in Schreibschrift (Cookie). Cookie läuft kompakt und hat eine
   hohe x-Höhe, deshalb klar größer und leicht abgesenkt. */
.sw-hero__title em{
  font-family:"Cookie",cursive;
  font-style:normal;
  color:#cba63e;
  font-size:1.48em;
  line-height:.82;
  letter-spacing:0;
  padding-right:.05em;
  display:inline-block;
  vertical-align:-.1em;
}
.sw-hero__sub{ color:var(--soft); font-size:1.1rem; max-width:34ch; margin:24px 0 30px; opacity:0; transform:translateY(20px); }
.sw-hero__pulse{ width:100%; max-width:440px; height:60px; margin:0 0 32px; opacity:0; }
.sw-hero__pulse path{ fill:none; stroke:var(--accent); stroke-width:2.2; stroke-linecap:round; stroke-dasharray:1400; stroke-dashoffset:1400; filter:drop-shadow(0 1px 5px rgba(184,145,47,.35)); }
.sw-hero__acts{ display:flex; gap:14px; flex-wrap:wrap; opacity:0; transform:translateY(20px); }

.sw-hero__visual{ position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; opacity:0; transform:scale(.94); }
.sw-hero__ring{ width:min(92%,460px); filter:drop-shadow(0 30px 60px rgba(120,95,30,.16)); animation:sw-float 7s ease-in-out infinite; }
.sw-hero__halo{ position:absolute; width:62%; height:62%; top:34%; left:50%; transform:translate(-50%,-50%); border-radius:50%; background:radial-gradient(circle,rgba(184,145,47,.14),rgba(184,145,47,.08) 50%,transparent 68%); filter:blur(26px); pointer-events:none; }
@keyframes sw-float{ 0%,100%{ transform:translateY(-7px); } 50%{ transform:translateY(7px); } }

/* ---- Ring configurator (line + colour) ---- */
.sw-config{ position:relative; z-index:2; width:100%; max-width:440px; margin:0 auto; }
.sw-config__stage{ position:relative; width:100%; max-width:300px; margin:0 auto; aspect-ratio:1/1; }
.sw-config__img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:contain;
  opacity:0; transform:scale(.96); transition:opacity .45s var(--e),transform .55s var(--e);
  pointer-events:none;
}
.sw-config__img.is-active{ opacity:1; transform:scale(1); pointer-events:auto; }
.sw-config__img.is-missing{ opacity:0 !important; }

.sw-config__now{ text-align:center; margin:2px 0 14px; }
.sw-config__line-name{ display:block; font-family:var(--fd); font-size:1.3rem; color:var(--ink); line-height:1.1; }
.sw-config__color-name{ display:block; font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--mute); margin-top:3px; font-weight:600; }

.sw-config__step{ margin-bottom:12px; }
.sw-config__step-label{ display:block; font-size:10px; letter-spacing:1.5px; text-transform:uppercase; color:var(--mute); font-weight:700; margin-bottom:7px; text-align:center; }

.sw-config__lines{ display:flex; flex-wrap:wrap; gap:7px; justify-content:center; max-width:400px; margin:0 auto; }
.sw-line-btn{
  flex:0 0 calc(25% - 7px * 3 / 4); /* 4 per row */
  background:var(--w); border:1px solid var(--line); color:var(--soft);
  border-radius:100px; padding:7px 10px; font-family:var(--fb); font-size:12.5px; font-weight:600;
  cursor:pointer; transition:.18s; text-align:center; white-space:nowrap;
}
.sw-line-btn:hover{ border-color:var(--gold-lite); color:var(--ink); }
.sw-line-btn.is-active{ border-color:var(--ink); background:var(--ink); color:#fff; }

.sw-config__colors{ display:flex; flex-wrap:wrap; gap:8px; justify-content:center; }
.sw-color-btn{
  display:flex; align-items:center; gap:7px; background:var(--w); border:1px solid var(--line);
  border-radius:100px; padding:5px 13px 5px 5px; cursor:pointer; transition:.18s; font-family:var(--fb);
}
.sw-color-btn .dot{ width:20px; height:20px; border-radius:50%; border:1px solid rgba(0,0,0,.12); flex-shrink:0; }
.sw-color-btn .lbl{ font-size:12px; font-weight:600; color:var(--soft); }
.sw-color-btn:hover{ border-color:var(--gold-lite); }
.sw-color-btn:hover .lbl{ color:var(--ink); }
.sw-color-btn.is-active{ border-color:var(--accent); box-shadow:0 0 0 3px var(--accent-soft); }
.sw-color-btn.is-active .lbl{ color:var(--accent); }

.sw-config__buy{ display:flex; align-items:center; justify-content:center; gap:16px; margin-top:18px; flex-wrap:wrap; }
.sw-config__price{ font-family:var(--fd); font-size:1.5rem; color:var(--ink); }
.sw-config__price del{ color:var(--mute); font-size:1rem; opacity:.7; margin-right:6px; }
.sw-config__price ins{ text-decoration:none; }
.sw-config__cart{ white-space:nowrap; }

/* variant selector (3rd level, e.g. Diamond sym/asym) */
.sw-config__step--variant[hidden]{ display:none; }
.sw-config__variants{ display:flex; flex-wrap:wrap; gap:7px; justify-content:center; }
.sw-variant-btn{
  background:var(--w); border:1px solid var(--line); color:var(--soft);
  border-radius:100px; padding:7px 15px; font-family:var(--fb); font-size:12.5px; font-weight:600;
  cursor:pointer; transition:.18s;
}
.sw-variant-btn:hover{ border-color:var(--gold-lite); color:var(--ink); }
.sw-variant-btn.is-active{ border-color:var(--accent); background:var(--accent-soft); color:var(--accent); }

/* hero entrance (adds .in via JS on load) */
.sw-hero.in .sw-hero__eyebrow{ animation:sw-rise .8s var(--e) .1s forwards; }
.sw-hero.in .sw-hero__title{ animation:sw-rise .9s var(--e) .25s forwards; }
.sw-hero.in .sw-hero__sub{ animation:sw-rise .9s var(--e) .55s forwards; }
.sw-hero.in .sw-hero__pulse{ animation:sw-fade .6s var(--e) .5s forwards; }
.sw-hero.in .sw-hero__pulse path{ animation:sw-draw 2.6s var(--e) .6s forwards; }
.sw-hero.in .sw-hero__acts{ animation:sw-rise .9s var(--e) .9s forwards; }
.sw-hero.in .sw-hero__visual{ animation:sw-pop 1.1s var(--e) .3s forwards; }
.sw-hero.in .sw-config__lines{ animation:sw-rise .8s var(--e) 1.1s forwards; opacity:0; }
@keyframes sw-rise{ to{ opacity:1; transform:none; } }
@keyframes sw-fade{ to{ opacity:1; } }
@keyframes sw-pop{ to{ opacity:1; transform:scale(1); } }
@keyframes sw-draw{ to{ stroke-dashoffset:0; } }

@media(max-width:860px){
  .sw-hero__in{ grid-template-columns:1fr; gap:20px; padding-top:40px; }
  .sw-hero__visual{ order:-1; }
}

/* =========================================================
   TRUST MARQUEE
   ========================================================= */
.sw-trust{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--paper); overflow:hidden; }
.sw-trust__t{ display:flex; gap:56px; padding:16px; white-space:nowrap; animation:sw-scr 26s linear infinite; width:max-content; }
.sw-trust__t span{ font-size:13px; letter-spacing:.5px; color:var(--mute); font-weight:500; display:flex; align-items:center; gap:10px; }
.sw-trust__t span::before{ content:"\25CF"; color:var(--accent); font-size:6px; }
@keyframes sw-scr{ to{ transform:translateX(-50%); } }

/* =========================================================
   SECTIONS (shared)
   ========================================================= */
.sw-sec{ padding:clamp(4rem,8vw,7rem) 22px; position:relative; }
.sw-sec__in{ max-width:var(--mx); margin:0 auto; }
.sw-sec--paper{ background:var(--paper); }
.sw-sec--mist{ background:var(--mist); }
.sw-sec--white{ background:var(--w); }
.sw-kick{ text-align:center; font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--accent); margin-bottom:14px; font-weight:700; }
.sw-h2{ text-align:center; font-size:clamp(2rem,4.5vw,3.2rem); margin:0 0 12px; color:var(--ink); }
.sw-lead{ text-align:center; color:var(--soft); max-width:54ch; margin:0 auto 3rem; font-size:1.05rem; }
.sw-div{ display:block; width:100%; max-width:260px; margin:0 auto 40px; height:38px; }
.sw-div path{ fill:none; stroke:var(--accent); stroke-width:1.6; opacity:.45; }

.sw-rv{ opacity:0; transform:translateY(26px); transition:opacity .8s var(--e),transform .8s var(--e); }
.sw-rv.show{ opacity:1; transform:none; }
.sw-rv.d1{ transition-delay:.1s; } .sw-rv.d2{ transition-delay:.2s; } .sw-rv.d3{ transition-delay:.3s; }

/* stats */
.sw-stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; max-width:920px; margin:0 auto; }
.sw-stat{ text-align:center; padding:28px 18px; border:1px solid var(--line); border-radius:16px; background:var(--w); }
.sw-stat__n{ font-family:var(--fd); font-size:2.8rem; line-height:1; color:var(--ink); }
.sw-stat__l{ font-size:12px; letter-spacing:.5px; text-transform:uppercase; color:var(--mute); margin-top:8px; font-weight:600; }

/* home feature grid */
.sw-featgrid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:18px; }
.sw-fcard{ border:1px solid var(--line); border-radius:16px; padding:28px; background:var(--w); transition:.3s; }
.sw-fcard:hover{ border-color:var(--accent); box-shadow:0 16px 40px rgba(140,110,40,.10); transform:translateY(-4px); }
.sw-fcard h3{ font-size:1.3rem; color:var(--ink); margin-bottom:8px; }
.sw-fcard p{ font-size:13.5px; color:var(--soft); line-height:1.6; }

@media(max-width:860px){ .sw-stats{ grid-template-columns:repeat(2,1fr); } }

/* prose (page content) */
.sw-prose{ max-width:760px; margin:0 auto; }
.sw-prose h2,.sw-prose h3{ margin:1.6rem 0 .8rem; }
.sw-prose p{ margin-bottom:1rem; color:var(--soft); }
.sw-prose ul,.sw-prose ol{ margin:0 0 1rem 1.4rem; color:var(--soft); }

/* final CTA */
.sw-final{ text-align:center; background:#000; color:#fff; position:relative; overflow:hidden; }
.sw-final .gl{ display:none; }
.sw-final h2{ font-size:clamp(2.2rem,5vw,3.6rem); color:#fff; margin-bottom:16px; position:relative; }
.sw-final h2 em{ font-style:italic; color:var(--gold-lite); }
.sw-final p{ color:#aeb8c4; margin-bottom:30px; position:relative; }
.sw-final .sw-div path{ stroke:var(--gold-lite); opacity:.6; }
.sw-final__btn{ background:var(--gold-lite); color:var(--ink); padding:16px 32px; border-radius:var(--radius); font-weight:600; font-size:15px; display:inline-block; position:relative; }
.sw-final__btn:hover{ background:var(--gold); color:#000; }

/* =========================================================
   PRODUCT-PAGE SECTIONS (hooked)
   ========================================================= */
.single-product .sw-eyebrow{ font-size:12px; letter-spacing:1px; text-transform:uppercase; color:var(--accent); margin-bottom:10px; font-weight:700; }
.sw-benefits{ list-style:none; margin:1.2rem 0 1.6rem; padding:0; display:grid; gap:.55rem; }
.sw-benefits li{ position:relative; padding-left:1.9rem; font-size:15px; line-height:1.4; color:var(--soft); }
.sw-benefits li::before{ content:""; position:absolute; left:0; top:2px; width:18px; height:18px; border-radius:50%; background:var(--grad);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center/72% no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='black' d='M9 16.2 4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4z'/></svg>") center/72% no-repeat; }
.sw-gift{ display:flex; gap:10px; align-items:center; background:var(--accent-soft); border:1px solid #e8dcae; border-radius:var(--radius); padding:12px 14px; font-size:13px; color:var(--soft); margin:0 0 26px; }
.sw-gift b{ color:var(--accent); }
.sw-urgency{ display:flex; align-items:center; gap:8px; justify-content:center; margin-top:14px; font-size:12px; color:var(--mute); }
.sw-urgency .dot{ width:8px; height:8px; border-radius:50%; background:var(--danger); animation:sw-pu 1.8s infinite; }
@keyframes sw-pu{ 0%{box-shadow:0 0 0 0 rgba(224,83,58,.4);} 70%{box-shadow:0 0 0 8px rgba(224,83,58,0);} 100%{box-shadow:0 0 0 0 rgba(224,83,58,0);} }
.sw-assure{ display:flex; gap:18px; justify-content:center; margin-top:20px; flex-wrap:wrap; }
.sw-assure span{ font-size:12px; color:var(--mute); display:flex; align-items:center; gap:6px; font-weight:500; }
.sw-assure svg{ width:14px; height:14px; stroke:var(--accent); fill:none; }
.sw-sizelink{ color:var(--accent); font-size:12px; cursor:pointer; text-decoration:underline; display:inline-block; margin:6px 0 0; }

/* feature split rows */
.sw-feat{ display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:center; max-width:var(--mx); margin:0 auto; }
.sw-feat + .sw-feat{ margin-top:90px; }
.sw-feat--r .sw-feat__m{ order:2; }
.sw-feat__m{ border-radius:16px; overflow:hidden; border:1px solid var(--line); aspect-ratio:4/3; background:var(--mist); }
.sw-feat__m img{ width:100%; height:100%; object-fit:cover; }
.sw-feat__b h3{ font-size:1.9rem; color:var(--ink); margin-bottom:14px; }
.sw-feat__b p{ color:var(--soft); margin-bottom:16px; }
.sw-mini{ display:flex; gap:22px; }
.sw-mini .n{ font-family:var(--fd); font-size:1.6rem; color:var(--accent); }
.sw-mini .t{ font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--mute); font-weight:600; }

/* tech cards */
.sw-tech{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:18px; }
.sw-tcard{ border:1px solid var(--line); border-radius:16px; padding:28px; background:var(--w); transition:.3s; }
.sw-tcard:hover{ border-color:var(--accent); box-shadow:0 16px 40px rgba(140,110,40,.10); transform:translateY(-4px); }
.sw-tcard h3{ color:var(--ink); font-size:1.3rem; margin-bottom:8px; }
.sw-tcard p{ font-size:13.5px; color:var(--soft); line-height:1.6; }

/* comparison */
.sw-cmp{ width:100%; border-collapse:separate; border-spacing:0; max-width:720px; margin:0 auto; background:var(--w); border-radius:16px; overflow:hidden; border:1px solid var(--line); box-shadow:0 20px 50px rgba(20,40,80,.06); }
.sw-cmp th,.sw-cmp td{ padding:16px 18px; text-align:center; border-bottom:1px solid var(--line); }
.sw-cmp thead th{ background:var(--ink); color:#fff; font-size:12px; letter-spacing:.5px; font-weight:600; }
.sw-cmp thead th.sw-us{ background:var(--accent); }
.sw-cmp td.sw-us{ background:var(--accent-soft); font-weight:600; }
.sw-cmp tbody td:first-child{ text-align:left; font-size:14px; color:var(--ink); }
.sw-cmp tbody tr:last-child td{ border-bottom:0; }
.sw-tick{ color:var(--ok); font-weight:700; font-size:1.1rem; }
.sw-cross{ color:#d06; opacity:.55; }

/* reviews */
.sw-rw{ display:grid; grid-template-columns:.8fr 1.2fr; gap:40px; max-width:var(--mx); margin:0 auto; align-items:center; }
.sw-rs{ text-align:center; }
.sw-rs .sc{ font-family:var(--fd); font-size:4.2rem; color:var(--ink); line-height:1; }
.sw-rs .st{ color:var(--gold); letter-spacing:2px; font-size:1.3rem; margin:6px 0; }
.sw-rs .ct{ font-size:12px; color:var(--mute); }
.sw-rb{ margin-top:18px; }
.sw-rb .row{ display:flex; align-items:center; gap:10px; font-size:12px; color:var(--mute); margin:5px 0; }
.sw-rb .tr{ flex:1; height:6px; background:var(--mist); border-radius:20px; overflow:hidden; }
.sw-rb .fi{ height:100%; background:var(--accent); }
.sw-rcs{ display:grid; gap:16px; }
.sw-rcard{ border:1px solid var(--line); border-radius:14px; padding:20px; background:var(--w); }
.sw-rcard .top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; }
.sw-rcard .who{ font-weight:600; color:var(--ink); font-size:14px; }
.sw-rcard .who small{ color:var(--mute); font-weight:400; }
.sw-rcard .st{ color:var(--gold); font-size:12px; }
.sw-rcard p{ font-size:13.5px; color:var(--soft); line-height:1.55; }

/* faq */
.sw-faq{ max-width:760px; margin:0 auto; }
.sw-faq__i{ border-bottom:1px solid var(--line); }
.sw-faq__q{ width:100%; text-align:left; background:none; border:0; cursor:pointer; padding:22px 0; font-family:var(--fb); font-weight:600; font-size:1.05rem; color:var(--ink); display:flex; justify-content:space-between; gap:16px; align-items:center; }
.sw-faq__q::after{ content:"+"; color:var(--accent); font-size:1.5rem; transition:.25s; }
.sw-faq__i.open .sw-faq__q::after{ content:"\2013"; }
.sw-faq__a{ max-height:0; overflow:hidden; transition:max-height .35s var(--e); }
.sw-faq__a p{ padding:0 0 22px; color:var(--soft); font-size:14px; line-height:1.65; margin:0; }

/* size modal */
.sw-modal{ position:fixed; inset:0; z-index:9999; display:none; align-items:center; justify-content:center; padding:20px; }
.sw-modal.open{ display:flex; }
.sw-modal__bg{ position:absolute; inset:0; background:rgba(14,22,32,.55); backdrop-filter:blur(3px); }
.sw-modal__box{ position:relative; background:#fff; border-radius:16px; max-width:520px; width:100%; padding:32px; box-shadow:0 30px 80px rgba(0,0,0,.3); max-height:85vh; overflow:auto; }
.sw-modal__box h3{ font-size:1.6rem; margin-bottom:8px; }
.sw-modal__box p{ color:var(--soft); font-size:14px; margin-bottom:18px; }
.sw-modal__close{ position:absolute; top:16px; right:16px; background:none; border:0; font-size:1.6rem; color:var(--mute); cursor:pointer; line-height:1; }
.sw-sizetable{ width:100%; border-collapse:collapse; font-size:14px; }
.sw-sizetable th,.sw-sizetable td{ padding:10px; text-align:center; border-bottom:1px solid var(--line); }
.sw-sizetable thead th{ background:var(--paper); color:var(--ink); font-weight:600; }

@media(max-width:860px){
  .sw-feat{ grid-template-columns:1fr; gap:20px; }
  .sw-feat--r .sw-feat__m{ order:0; }
  .sw-rw{ grid-template-columns:1fr; }
}

/* =========================================================
   WOOCOMMERCE — shop, product, cart, checkout
   ========================================================= */
.sw-woo{ }
/* Hide any stray default page title on the shop (we render our own hero) */
.woocommerce-shop .sw-page__title,
.woocommerce-shop .page-title,
.woocommerce-shop h1.entry-title,
.post-type-archive-product .page-title{ display:none; }

.woocommerce .sw-shop-wrap{ max-width:var(--mx); margin:0 auto; padding:36px 22px 64px; }

/* Hide WooCommerce's plain default header (we render our own hero) */
.woocommerce-products-header{ display:none; }

/* Styled shop hero */
.sw-shop-hero{ text-align:center; max-width:640px; margin:0 auto 44px; }
.sw-shop-hero__eyebrow{ font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--accent); font-weight:700; margin-bottom:12px; }
.sw-shop-hero__title{ font-family:var(--fd); font-size:clamp(2.2rem,5vw,3.4rem); color:var(--ink); margin:0 0 14px; line-height:1.05; }
.sw-shop-hero__sub{ color:var(--soft); font-size:1.05rem; line-height:1.6; margin:0; }

/* Result count + ordering: subtle, centered above the grid */
.woocommerce .woocommerce-result-count{ color:var(--mute); font-size:13px; }
.woocommerce .woocommerce-ordering{ margin-bottom:24px; }
.woocommerce .woocommerce-ordering select{ border:1px solid var(--line); border-radius:10px; padding:9px 14px; font-family:var(--fb); font-size:13px; background:var(--w); color:var(--ink); }

/* Product grid */
.woocommerce ul.products{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin:0; padding:0; list-style:none; }
.woocommerce ul.products::before,.woocommerce ul.products::after{ content:none; display:none; }
.woocommerce ul.products li.product{
  width:auto !important; margin:0 !important; float:none !important; text-align:center;
  background:var(--w); border:1px solid var(--line); border-radius:20px; padding:0; overflow:hidden;
  transition:transform .28s var(--e), box-shadow .28s var(--e), border-color .28s var(--e);
  display:flex; flex-direction:column;
}
.woocommerce ul.products li.product:hover{ border-color:var(--gold-lite); box-shadow:0 22px 50px rgba(140,110,40,.13); transform:translateY(-6px); }

/* Image area with soft gradient backdrop so rings "sit" nicely */
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link{ display:block; }
.woocommerce ul.products li.product a img{
  border-radius:0; margin:0; width:100%; aspect-ratio:1/1; object-fit:contain;
  background:linear-gradient(160deg,#fbfcfd 0%,#f1f4f7 100%); padding:26px 26px 8px; transition:transform .4s var(--e);
}
.woocommerce ul.products li.product:hover a img{ transform:scale(1.04); }

/* Text block */
.woocommerce ul.products li.product .woocommerce-loop-product__title{
  font-family:var(--fd); font-size:1.3rem; color:var(--ink); padding:18px 16px 4px; font-weight:500;
}
.woocommerce ul.products li.product .price{ color:var(--ink); font-weight:600; font-size:1.05rem; display:block; padding:0 16px 4px; }
.woocommerce ul.products li.product .price del{ color:var(--mute); font-weight:400; margin-right:6px; }
.woocommerce ul.products li.product .price ins{ text-decoration:none; }

/* Star rating in the loop */
.woocommerce ul.products li.product .star-rating{ margin:6px auto 0; color:var(--gold); font-size:.9rem; }

/* Add-to-cart button: full-width pill at the bottom */
.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart{
  margin:14px 16px 20px; border-radius:12px; padding:13px 18px; font-weight:600; font-size:13.5px;
  background:var(--ink); color:#fff; display:block; transition:.2s;
}
.woocommerce ul.products li.product .button:hover{ background:var(--accent); color:#fff; }
.woocommerce ul.products li.product .added_to_cart{ background:transparent; color:var(--accent); border:1px solid var(--line); margin-top:0; }

/* Sale badge */
.woocommerce ul.products li.product .onsale{
  position:absolute; top:14px; left:14px; z-index:2; background:var(--accent); color:#fff;
  border-radius:100px; font-weight:700; font-size:11px; letter-spacing:.5px; padding:6px 12px; min-height:auto; min-width:auto; margin:0;
}
.woocommerce ul.products li.product{ position:relative; }

/* Pagination */
.woocommerce nav.woocommerce-pagination{ margin-top:44px; }
.woocommerce nav.woocommerce-pagination ul{ border:0; gap:8px; display:flex; justify-content:center; }
.woocommerce nav.woocommerce-pagination ul li{ border:0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span{
  border:1px solid var(--line); border-radius:10px; min-width:42px; height:42px; line-height:42px; padding:0; color:var(--ink); transition:.2s;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li span.current{ background:var(--ink); color:#fff; border-color:var(--ink); }

/* buttons (global woo) */
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #respond input#submit,
.woocommerce a.button.alt,.woocommerce button.button.alt{
  background:var(--ink); color:#fff; border-radius:10px; font-family:var(--fb); font-weight:600; font-size:14px;
  padding:12px 22px; border:0; transition:.2s; text-transform:none;
}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover{ background:var(--accent); color:#fff; }

/* sale flash */
.woocommerce span.onsale{ background:var(--accent); color:#fff; border-radius:8px; font-weight:600; min-height:auto; min-width:auto; padding:6px 12px; line-height:1; top:10px; left:10px; }

/* single product layout */
.single-product .woocommerce-product-rating{ margin-bottom:22px; }
.single-product .woocommerce-product-rating .star-rating span::before{ color:var(--gold); }

.single-product .variations{ border:0; margin:0 0 10px; }
.single-product .variations tr{ display:block; margin-bottom:6px; }
.single-product .variations th.label{ font-size:12px; letter-spacing:.5px; text-transform:uppercase; color:var(--mute); font-weight:600; text-align:left; padding:14px 0 8px; display:block; }
.single-product .variations td.value{ display:block; }
.single-product .variations select{ border:1px solid var(--line); background:#fff; color:var(--ink); border-radius:10px; padding:11px 14px; font-size:14px; font-family:var(--fb); min-width:220px; }
.single-product .product_meta{ margin-top:18px; font-size:13px; color:var(--mute); }

/* tabs */
.woocommerce-tabs{ max-width:var(--mx); margin:60px auto 0; padding:0 22px; }
.woocommerce-tabs ul.tabs{ padding:0; }
.woocommerce-tabs ul.tabs li{ background:var(--paper); border-color:var(--line); border-radius:8px 8px 0 0; }
.woocommerce-tabs ul.tabs li.active{ background:#fff; border-bottom-color:#fff; }
.woocommerce-tabs ul.tabs li a{ color:var(--ink); font-weight:600; }

/* cart */
.woocommerce-cart .sw-woo,.woocommerce-checkout .sw-woo,.woocommerce-account .sw-woo{ max-width:var(--mx); margin:0 auto; padding:48px 22px; }
.woocommerce table.shop_table{ border-radius:14px; border-color:var(--line); }
.woocommerce table.shop_table th{ color:var(--ink); }
.woocommerce .cart-collaterals .cart_totals,.woocommerce-cart .cart-collaterals .cart_totals{ border-radius:14px; }
.woocommerce-cart table.cart img{ border-radius:8px; }
.woocommerce .quantity .qty{ border:1px solid var(--line); border-radius:8px; }

/* checkout */
.woocommerce-checkout #payment{ background:var(--paper); border-radius:14px; }
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,
.woocommerce-checkout input[type=text],.woocommerce-checkout input[type=email],.woocommerce-checkout input[type=tel]{
  border:1px solid var(--line); border-radius:10px; padding:12px 14px; font-family:var(--fb);
}
.woocommerce #payment #place_order,.woocommerce-checkout button#place_order{ width:100%; padding:16px; font-size:16px; }

/* messages */
.woocommerce-message,.woocommerce-info,.woocommerce-error{ border-top-color:var(--accent); border-radius:10px; }
.woocommerce-message::before,.woocommerce-info::before{ color:var(--accent); }

@media(max-width:860px){
  .woocommerce ul.products{ grid-template-columns:repeat(2,1fr); }
}
@media(max-width:520px){
  .woocommerce ul.products{ grid-template-columns:1fr; }
}

/* =========================================================
   BLOG / PAGE / 404
   ========================================================= */
.sw-page__title,.sw-single__title{ font-size:clamp(2rem,4vw,3rem); margin-bottom:1.5rem; }
.sw-single__media{ border-radius:16px; overflow:hidden; margin-bottom:1.5rem; }
.sw-page__content,.sw-single__content{ color:var(--soft); }
.sw-page__content p,.sw-single__content p{ margin-bottom:1rem; }
.sw-posts{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:26px; }
.sw-post-card{ border:1px solid var(--line); border-radius:16px; overflow:hidden; background:#fff; }
.sw-post-card__media img{ width:100%; aspect-ratio:16/10; object-fit:cover; }
.sw-post-card__body{ padding:22px; }
.sw-post-card__title{ font-size:1.4rem; margin-bottom:10px; }
.sw-post-card__excerpt{ color:var(--soft); font-size:14px; margin-bottom:14px; }
.sw-404{ text-align:center; padding-top:80px; padding-bottom:80px; }
.sw-404__code{ font-family:var(--fd); font-size:6rem; color:var(--accent); line-height:1; }
.sw-404__title{ font-size:2rem; margin:10px 0; }
.sw-404__text{ color:var(--soft); margin-bottom:26px; }
.sw-pagination{ margin-top:40px; text-align:center; }

/* =========================================================
   FOOTER
   ========================================================= */
.sw-foot{ background:#050a10; color:#8b95a1; padding:60px 22px 34px; border-top:1px solid rgba(255,255,255,.06); }
.sw-foot__in{ max-width:var(--mx); margin:0 auto; }
.sw-foot__top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,.08); }
.sw-foot__logo{ height:48px; margin-bottom:16px; }
.sw-foot__tag{ font-size:13px; color:#8b95a1; max-width:34ch; line-height:1.6; }
.sw-foot__wtitle{ color:#e8ecf1; font-size:13px; letter-spacing:1px; text-transform:uppercase; margin-bottom:14px; }
.sw-foot__col ul{ list-style:none; margin:0; padding:0; }
.sw-foot__col li{ margin-bottom:8px; }
.sw-foot__col a{ color:#8b95a1; font-size:14px; }
.sw-foot__col a:hover{ color:var(--gold-lite); }
.sw-foot__bottom{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; padding-top:24px; }
.sw-foot__menu{ list-style:none; display:flex; gap:20px; margin:0; padding:0; }
.sw-foot__menu a{ color:#8b95a1; font-size:12px; letter-spacing:.5px; }
.sw-foot__menu a:hover{ color:var(--gold-lite); }
.sw-foot__cp{ font-size:12px; color:#5a6472; }
@media(max-width:860px){ .sw-foot__top{ grid-template-columns:1fr 1fr; } }
@media(max-width:520px){ .sw-foot__top{ grid-template-columns:1fr; } }

/* =========================================================
   ACCESSIBILITY
   ========================================================= */
@media(prefers-reduced-motion:reduce){
  *{ animation:none !important; }
  .sw-rv{ opacity:1; transform:none; transition:none; }
  .sw-hero__eyebrow,.sw-hero__title,.sw-hero__sub,.sw-hero__acts,.sw-hero__visual,.sw-config__lines,.sw-hero__pulse{ opacity:1 !important; transform:none !important; }
  .sw-hero__pulse path{ stroke-dashoffset:0; }
  .sw-trust__t{ animation:none; }
}
:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }

/* =========================================================
   REVIEWS SECTION (homepage, aggregated across all products)
   ========================================================= */
.sw-reviews__summary{ display:flex; align-items:center; justify-content:center; gap:14px; margin-bottom:34px; flex-wrap:wrap; }
.sw-reviews__score{ font-family:var(--fd); font-size:2.6rem; color:var(--ink); line-height:1; font-weight:500; }
.sw-reviews__stars .star-rating{ color:var(--gold); font-size:1.1rem; }
.sw-reviews__count{ font-size:13px; color:var(--mute); font-weight:600; }

.sw-reviews__grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:18px; }
.sw-review{ border:1px solid var(--line); border-radius:16px; padding:22px; background:var(--w); }
.sw-review__top{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; }
.sw-review__stars .star-rating{ color:var(--gold); font-size:.95rem; }
.sw-review__badge{ font-size:10.5px; letter-spacing:.3px; font-weight:700; color:var(--gold);
  border:1px solid var(--gold-lite); border-radius:100px; padding:3px 9px; white-space:nowrap; }
.sw-review__text{ color:var(--soft); font-size:14px; line-height:1.6; margin-bottom:14px; }
.sw-review__meta{ font-size:12.5px; color:var(--mute); }
.sw-review__meta strong{ color:var(--ink); font-weight:600; }
.sw-reviews__note{ text-align:center; font-size:12.5px; color:var(--mute); margin-top:26px; }

/* =========================================================
   PRODUCT PAGE — custom template (.sw-pd)
   ========================================================= */
.sw-pd{ display:block !important; max-width:var(--mx); margin:0 auto; padding:14px 22px 70px; }
.sw-pd > *{ grid-area:auto !important; }
.sw-pd__crumb{ font-size:12.5px; color:var(--mute); padding:14px 0 0; }
.sw-pd__crumb a{ color:var(--mute); text-decoration:none; }
.sw-pd__crumb a:hover{ color:var(--gold); }
.sw-pd__crumb span{ margin:0 8px; }

.sw-pd__title{
  text-align:center; font-family:var(--fd); font-weight:500;
  font-size:clamp(2.6rem,5.6vw,4.4rem); line-height:1.03; letter-spacing:-1px;
  margin:22px 0 42px; color:var(--ink);
}

.sw-pd__grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:68px; align-items:start; }

/* Gallery */
.sw-pd__gal{ position:sticky; top:104px; }
.sw-pd__stage{
  border-radius:24px; background:linear-gradient(158deg,#fcfdfe 0%,#eef2f6 100%);
  aspect-ratio:1/1; display:flex; align-items:center; justify-content:center; overflow:hidden;
}
.sw-pd__stage img{ width:82%; height:82%; object-fit:contain; }
.sw-pd__thumbs{ display:flex; gap:10px; margin-top:14px; }
.sw-pd__thumb{
  width:72px; height:72px; border-radius:14px; border:1px solid var(--line); background:var(--paper);
  padding:6px; cursor:pointer; transition:.18s;
}
.sw-pd__thumb img{ width:100%; height:100%; object-fit:contain; }
.sw-pd__thumb.is-active{ border-color:var(--gold); box-shadow:0 0 0 3px var(--gold-soft,#f6efdb); }

/* Buy column */
.sw-pd__price{ font-family:var(--fd); font-size:2.5rem; line-height:1; margin-bottom:6px; color:var(--ink); }
.sw-pd__price del{ color:var(--mute); font-size:1.2rem; margin-right:8px; }
.sw-pd__price ins{ text-decoration:none; }
.sw-pd__stock{ display:flex; align-items:center; gap:8px; font-size:13px; color:#1a9d6a; font-weight:600; margin-bottom:26px; }
.sw-pd__stock .dot{ width:7px; height:7px; border-radius:50%; background:#1a9d6a; }

.sw-pd__group{ margin-bottom:24px; }
.sw-pd__ghead{ display:flex; justify-content:space-between; align-items:baseline; margin-bottom:11px; }
.sw-pd__glabel{ font-size:12px; font-weight:700; letter-spacing:.4px; color:var(--ink); }
.sw-pd__gval{ font-size:12.5px; color:var(--mute); }

/* Colour photos, no frames */
.sw-pd__colors{ display:flex; flex-wrap:wrap; gap:20px; }
.sw-pcolor{ width:78px; border:0; background:none; padding:0; cursor:pointer; text-align:center; }
.sw-pcolor__img{ display:block; width:78px; height:78px; opacity:.62; transition:transform .18s var(--e),opacity .18s; }
.sw-pcolor__img img{ width:100%; height:100%; object-fit:contain; }
.sw-pcolor__name{ display:inline-block; font-size:11.5px; color:var(--mute); font-weight:600; margin-top:4px;
  padding-bottom:3px; border-bottom:1.5px solid transparent; transition:.18s; }
.sw-pcolor:hover .sw-pcolor__img{ opacity:.85; transform:scale(1.04); }
.sw-pcolor.is-active .sw-pcolor__img{ opacity:1; }
.sw-pcolor.is-active .sw-pcolor__name{ color:var(--ink); border-bottom-color:var(--gold); }

/* Size buttons (injected by JS) */
.sw-psizes{ margin:0 0 6px; }
.sw-psizes__label{ display:block; font-size:12px; font-weight:700; letter-spacing:.4px; color:var(--ink); margin-bottom:11px; }
.sw-psizes__grid{ display:grid; grid-template-columns:repeat(8,1fr); gap:7px; }
.sw-psize{ border:1px solid var(--line); background:var(--w); border-radius:11px; padding:12px 0;
  font-family:var(--fb); font-size:14px; font-weight:600; color:var(--soft); cursor:pointer; transition:.16s; }
.sw-psize:hover{ border-color:var(--gold-lite); color:var(--ink); }
.sw-psize.is-active{ background:var(--ink); border-color:var(--ink); color:#fff; }

/* Hide the raw variation selects (our pickers drive them) */
.sw-pd .variations{ display:none; }
.sw-pd .reset_variations{ display:none; }
.sw-pd .woocommerce-variation-price{ display:none; }

/* The cart form itself stacks; only the qty+button row is a flex row */
.sw-pd form.cart{ display:block; margin:24px 0 14px; }
.sw-pd .woocommerce-variation-add-to-cart{ display:flex; gap:12px; align-items:stretch; margin-top:18px; }
.sw-pd .quantity input.qty{
  width:70px; height:56px; border:1px solid var(--line); border-radius:13px; text-align:center;
  font-family:var(--fb); font-size:15px; font-weight:600; color:var(--ink); background:var(--w);
}
.sw-pd .single_add_to_cart_button{
  flex:1; height:56px; border:0 !important; border-radius:13px !important; background:var(--ink) !important;
  color:#fff !important; font-family:var(--fb); font-size:15px; font-weight:600; cursor:pointer; margin:0 !important;
  display:flex; align-items:center; justify-content:center; transition:.2s;
}
.sw-pd .single_add_to_cart_button:hover{ background:var(--gold) !important; }
.sw-pd .single_add_to_cart_button.disabled{ opacity:.45; }

.sw-pd__assure{ display:grid; gap:9px; padding-top:20px; border-top:1px solid var(--line); margin-top:8px; }
.sw-pd__assure div{ display:flex; align-items:center; gap:9px; font-size:13px; color:var(--soft); }
.sw-pd__assure svg{ width:15px; height:15px; stroke:var(--gold); fill:none; stroke-width:2; flex:none; }

/* Info sections */
.sw-psec{ padding:clamp(3.5rem,7vw,6rem) 22px; border-top:1px solid var(--line); }
.sw-psec--features{ background:var(--paper); }
.sw-psec--specs{ background:var(--w); }
.sw-psec--faq{ background:var(--paper); }
.sw-psec__in{ max-width:var(--mx); margin:0 auto; }
.sw-psec__in--narrow{ max-width:760px; }
.sw-psec__h2{ font-family:var(--fd); font-size:clamp(1.9rem,3.6vw,2.7rem); font-weight:500; margin-bottom:8px; letter-spacing:-.5px; }
.sw-psec__lead{ color:var(--soft); margin-bottom:2.6rem; max-width:56ch; }

.sw-frow{ display:grid; grid-template-columns:180px 1fr; gap:32px; padding:26px 0; border-top:1px solid var(--line); }
.sw-frow:last-child{ border-bottom:1px solid var(--line); }
.sw-frow h3{ font-family:var(--fd); font-size:1.35rem; font-weight:500; color:var(--ink); }
.sw-frow__metric{ font-family:var(--fd); font-size:1.05rem; color:var(--gold); margin-top:6px; }
.sw-frow p{ color:var(--soft); font-size:14.5px; max-width:62ch; }

.sw-specs{ width:100%; border-collapse:collapse; }
.sw-specs tr{ border-bottom:1px solid var(--line); }
.sw-specs tr:first-child{ border-top:1px solid var(--line); }
.sw-specs th{ text-align:left; padding:15px 0; font-size:13.5px; font-weight:600; width:42%; color:var(--ink); }
.sw-specs td{ padding:15px 0; font-size:14px; color:var(--soft); }

.sw-pfaq__i{ border-bottom:1px solid var(--line); }
.sw-pfaq__q{ width:100%; background:none; border:0; text-align:left; padding:20px 0; cursor:pointer;
  font-family:var(--fb); font-size:1rem; font-weight:600; color:var(--ink);
  display:flex; justify-content:space-between; gap:20px; }
.sw-pfaq__q span{ color:var(--gold); font-size:1.3rem; line-height:1; transition:transform .2s var(--e); }
.sw-pfaq__i.open .sw-pfaq__q span{ transform:rotate(45deg); }
.sw-pfaq__a{ max-height:0; overflow:hidden; transition:max-height .3s var(--e); }
.sw-pfaq__a p{ padding-bottom:20px; color:var(--soft); font-size:14.5px; max-width:64ch; margin:0; }

/* ---- Stacked layout: keep everything through the pay buttons compact ---- */
@media(max-width:1040px){
  .sw-pd__grid{ grid-template-columns:1fr; gap:22px; }
  .sw-pd__gal{ position:static; }
  /* Gallery no longer eats the screen: size it against viewport height */
  .sw-pd__stage{ max-width:min(300px,54vw); max-height:34vh; margin:0 auto; border-radius:20px; }
  .sw-pd__stage img{ width:88%; height:88%; }
  .sw-pd__thumbs{ justify-content:center; margin-top:8px; }
  .sw-pd__thumb{ width:48px; height:48px; border-radius:10px; padding:4px; }

  /* Tighter type + spacing above the buy block */
  .sw-pd{ padding:8px 20px 56px; }
  .sw-pd__title{ font-size:clamp(1.8rem,6vw,2.4rem); margin:10px 0 14px; }
  .sw-pd__crumb{ padding:10px 0 0; }
  .sw-pd__price{ font-size:2rem; }
  .sw-pd__stock{ margin-bottom:18px; font-size:12.5px; }

  /* Compact selectors */
  .sw-pd__group{ margin-bottom:14px; }
  .sw-pd__colors{ gap:12px; }
  .sw-pcolor{ width:54px; }
  .sw-pcolor__img{ width:54px; height:54px; }
  .sw-pcolor__name{ font-size:11px; }
  .sw-psizes__grid{ grid-template-columns:repeat(8,1fr); gap:6px; }
  .sw-psize{ padding:10px 0; font-size:13px; border-radius:9px; }

  .sw-pd form.cart{ margin:16px 0 10px; }
  .sw-pd .woocommerce-variation-add-to-cart{ margin-top:14px; }
  .sw-pd .quantity input.qty,
  .sw-pd .single_add_to_cart_button{ height:50px; }

  /* Assurances move below the pay buttons and stay small */
  .sw-pd__assure{ margin-top:14px; padding-top:14px; gap:7px; }
  .sw-pd__assure div{ font-size:12.5px; }
}

/* Very narrow phones: sizes in two rows of four so they stay tappable */
@media(max-width:420px){
  .sw-psizes__grid{ grid-template-columns:repeat(4,1fr); }
  .sw-pd__stage{ max-width:74vw; }
}

@media(max-width:900px){
  .sw-frow{ grid-template-columns:1fr; gap:8px; }
}

/* Flache Fenster: Galerie und Abstände an der Fensterhöhe ausrichten,
   damit der Kaufbereich inkl. Pay-Buttons erreichbar bleibt. */
@media(max-width:1040px) and (max-height:900px){
  .sw-pd__stage{ max-width:min(260px,48vw); max-height:26vh; }
  .sw-pd__thumb{ width:42px; height:42px; }
  .sw-pd__title{ font-size:clamp(1.6rem,5vw,2.1rem); margin:8px 0 12px; }
  .sw-pd__price{ font-size:1.75rem; }
  .sw-pd__stock{ margin-bottom:14px; }
  .sw-pd__group{ margin-bottom:12px; }
  .sw-pcolor,.sw-pcolor__img{ width:48px; }
  .sw-pcolor__img{ height:48px; }
  .sw-psize{ padding:9px 0; font-size:12.5px; }
  .sw-pd form.cart{ margin:12px 0 8px; }
  .sw-pd .quantity input.qty,.sw-pd .single_add_to_cart_button{ height:46px; }
}
@media(max-width:1040px) and (max-height:740px){
  .sw-pd__stage{ max-width:min(210px,42vw); max-height:22vh; }
  .sw-pd__thumbs{ display:none; }   /* Farbwahl übernimmt die Auswahl */
  .sw-pd__crumb{ display:none; }
}

/* Fallback: show the original selects if a combination can't resolve */
.sw-pd.sw-pd--fallback .variations{ display:table; margin:14px 0; }
.sw-pd.sw-pd--fallback .variations select{
  border:1px solid var(--line); border-radius:10px; padding:11px 14px; font-family:var(--fb);
  font-size:14px; background:var(--w); color:var(--ink); min-width:220px;
}
.sw-pd.sw-pd--fallback .variations th{ font-size:12px; font-weight:700; color:var(--ink); padding:6px 12px 6px 0; text-align:left; }

/* =========================================================
   Literata — Feinschliff
   Literata läuft etwas breiter und kräftiger als Bodoni.
   Große Headlines dürfen daher leichter stehen, engere
   Laufweite hält sie kompakt.
   ========================================================= */
.sw-hero__title,.sw-final h2,.sw-pd__title{ font-weight:400; letter-spacing:-1.2px; }
.sw-h2,.sw-psec__h2,.sw-shop-hero__title{ font-weight:500; letter-spacing:-.6px; }
.sw-frow h3,.sw-fcard h3,.sw-tcard h3,
.woocommerce ul.products li.product .woocommerce-loop-product__title{ font-weight:500; letter-spacing:-.2px; }
/* Preise: kräftig genug, um als Zahl zu wirken */
.sw-pd__price,.sw-config__price,.woocommerce div.product p.price,
.sw-stat__n,.sw-reviews__score{ font-weight:500; letter-spacing:-.5px; }
.sw-config__line-name,.sw-frow__metric{ font-weight:500; }

/* =========================================================
   PRODUCT PAGE — reviews section
   ========================================================= */
.sw-psec--reviews{ background:var(--paper); }

/* Summary: big score + distribution bars */
.sw-rsum{ display:grid; grid-template-columns:200px 1fr; gap:44px; align-items:center; margin-bottom:38px; }
.sw-rsum__big{ text-align:center; }
.sw-rsum__big .n{ font-family:var(--fd); font-size:3.6rem; font-weight:500; line-height:1; letter-spacing:-1px; }
.sw-rsum__big .st{ margin:6px 0; }
.sw-rsum__big .st .star-rating{ color:var(--gold); font-size:1.05rem; margin:0 auto; }
.sw-rsum__big .c{ font-size:12.5px; color:var(--mute); }
.sw-rbars{ display:grid; gap:7px; }
.sw-rbar{ display:flex; align-items:center; gap:11px; font-size:12.5px; color:var(--mute); }
.sw-rbar .lbl{ width:34px; }
.sw-rbar .track{ flex:1; height:7px; background:var(--mist); border-radius:20px; overflow:hidden; }
.sw-rbar .fill{ display:block; height:100%; background:var(--gold); }
.sw-rbar .num{ width:26px; text-align:right; }

/* Review list (WooCommerce markup, restyled) */
.sw-rbox .commentlist{ list-style:none; margin:0 0 34px; padding:0; display:grid; gap:16px; }
.sw-rbox .commentlist li.review,
.sw-rbox .commentlist li.comment{ border:1px solid var(--line); border-radius:16px; padding:22px; background:var(--w); }
.sw-rbox .comment_container{ display:block; }
.sw-rbox .avatar{ display:none; }
.sw-rbox .comment-text{ margin:0; border:0; padding:0; }
.sw-rbox .star-rating{ color:var(--gold); font-size:.95rem; margin-bottom:9px; float:none; }
.sw-rbox .woocommerce-review__author{ color:var(--ink); font-weight:600; font-size:13px; }
.sw-rbox .woocommerce-review__published-date{ color:var(--mute); font-size:12.5px; }
.sw-rbox .woocommerce-review__verified{ font-size:10.5px; font-weight:700; color:var(--gold);
  border:1px solid var(--gold-lite); border-radius:100px; padding:3px 9px; margin-left:8px; white-space:nowrap; }
.sw-rbox .description p{ color:var(--soft); font-size:14.5px; line-height:1.6; margin:8px 0 0; }
.sw-rbox .woocommerce-noreviews{ color:var(--mute); font-size:14px; padding:0 0 24px; }

/* Review form */
.sw-rbox #review_form_wrapper{ border:1px solid var(--line); border-radius:18px; padding:30px; background:var(--w); }
.sw-rbox #reply-title{ font-family:var(--fd); font-size:1.5rem; font-weight:500; display:block; margin-bottom:6px; }
.sw-rbox .comment-notes{ color:var(--soft); font-size:14px; margin-bottom:20px; }
.sw-rbox .comment-form-rating label{ display:block; font-size:12px; font-weight:700; margin-bottom:7px; color:var(--ink); }
.sw-rbox p.stars a{ color:var(--gold); }
.sw-rbox .comment-form label{ display:block; font-size:12px; font-weight:700; margin-bottom:7px; color:var(--ink); }
.sw-rbox .comment-form input[type=text],
.sw-rbox .comment-form input[type=email],
.sw-rbox .comment-form textarea{
  width:100%; border:1px solid var(--line); border-radius:11px; padding:13px 14px;
  font-family:var(--fb); font-size:14px; color:var(--ink); background:var(--w);
}
.sw-rbox .comment-form textarea{ min-height:120px; resize:vertical; }
.sw-rbox .comment-form p{ margin-bottom:16px; }
.sw-rbox .form-submit input[type=submit]{
  height:52px; padding:0 30px; border:0; border-radius:13px; background:var(--ink); color:#fff;
  font-family:var(--fb); font-size:15px; font-weight:600; cursor:pointer; transition:.2s;
}
.sw-rbox .form-submit input[type=submit]:hover{ background:var(--gold); }

@media(max-width:820px){
  .sw-rsum{ grid-template-columns:1fr; gap:22px; }
}

/* Keine "Ähnliche Produkte" / Upsells auf der Produktseite */
.single-product .related,
.single-product .upsells,
.single-product section.related.products,
.single-product section.up-sells{ display:none !important; }

/* =========================================================
   KONFIGURATOR (Startseite) — Größen-Buttons + Kauf-Zustände
   (waren beim CSS-Aufräumen verloren gegangen)
   ========================================================= */
.sw-config__sizes{ display:flex; flex-wrap:wrap; gap:7px; justify-content:center; }
.sw-size-btn{
  min-width:42px; background:var(--w); border:1px solid var(--line); color:var(--soft);
  border-radius:10px; padding:10px 13px; font-family:var(--fb); font-size:13.5px; font-weight:600;
  cursor:pointer; transition:.18s; line-height:1;
}
.sw-size-btn:hover{ border-color:var(--gold-lite); color:var(--ink); }
.sw-size-btn.is-active{ border-color:var(--ink); background:var(--ink); color:#fff; }
.sw-config__cart.is-disabled,.sw-config__cart:disabled{ opacity:.45; cursor:not-allowed; }
.sw-config__hint{ text-align:center; font-size:12px; color:var(--danger); margin-top:10px; font-weight:600; }
.sw-config__step--size{ display:block; }
.sw-config__step--size[hidden]{ display:none; }

/* Bewertungen — Zustand ohne Bewertungen */
.sw-reviews__empty{ text-align:center; max-width:560px; margin:0 auto; padding:34px 24px;
  border:1px dashed var(--line); border-radius:18px; background:var(--paper); }
.sw-reviews__empty-lead{ font-family:var(--fd); font-size:1.35rem; font-weight:500; color:var(--ink); margin-bottom:10px; }
.sw-reviews__empty-sub{ color:var(--soft); font-size:14px; line-height:1.6; margin-bottom:22px; }
