  :root{
    --bg: #D3BFA1;
    --bg-elevated: #C4AD8C;
    --ink: #1E1610;
    --ink-muted: #4A3A2B;
    --gold: #1E1610;
    --gold-bright: #1E1610;
    --hairline: rgba(40,28,18,0.22);
    --hero-text: #F6E8D4;
    --hero-text-muted: rgba(246,232,212,0.78);
    --hero-line: rgba(246,232,212,0.85);
    --max: 1180px;
  }

  *{box-sizing:border-box; margin:0; padding:0;}

  html{scroll-behavior:smooth;}

  body{
    background:var(--bg);
    color:var(--ink);
    font-family:'Assistant', sans-serif;
    font-weight:300;
    line-height:1.7;
    overflow-x:hidden;
  }

  h1,h2,h3,.serif{
    font-family:'Frank Ruhl Libre', serif;
    font-weight:400;
    letter-spacing:0.01em;
  }

  a{color:inherit; text-decoration:none;}

  .wrap{max-width:var(--max); margin:0 auto; padding:0 32px;}

  /* ---------- Header ---------- */
  header{
    position:fixed;
    top:0; right:0; left:0;
    z-index:50;
    padding:22px 0 0;
    background:rgba(211,191,161,0.94);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
  }

  .logo-row{
    text-align:center;
    margin-bottom:16px;
  }

  .logo-link{
    display:inline-flex;
    flex-direction:column;
    align-items:center;
    gap:4px;
  }

  .logo-icon{
    width:16px;
    height:16px;
  }

  .logo-icon path{
    stroke:var(--gold-bright);
    stroke-width:5;
    fill:none;
    stroke-linejoin:round;
  }

  .logo{
    font-family:'Frank Ruhl Libre', serif;
    font-weight:300;
    font-size:22px;
    letter-spacing:0.34em;
    padding-inline-start:0.34em;
    color:var(--gold-bright);
    direction:ltr;
  }

  nav{
    display:flex;
    justify-content:center;
    gap:44px;
    padding-bottom:16px;
    border-bottom:1px solid var(--hairline);
    max-width:520px;
    margin:0 auto;
  }

  nav a{
    font-size:14.5px;
    color:var(--ink-muted);
    transition:color 0.3s ease;
    position:relative;
  }

  nav a:hover{color:var(--gold-bright);}

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    height:100vh;
    min-height:640px;
    overflow:hidden;
    display:flex;
    align-items:flex-end;
    justify-content:center;
    padding-bottom:9vh;
  }

  .hero-img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:53% 45%;
    filter:grayscale(1) contrast(1.06) brightness(1);
  }

  .hero-overlay{
    position:absolute;
    inset:0;
    background:
      radial-gradient(ellipse at 30% 50%, rgba(0,0,0,0.22) 0%, rgba(0,0,0,0.58) 55%, rgba(0,0,0,0.78) 100%);
  }

  /* the diamond veil: a soft-edged mask positioned in JS exactly over the stone
     (nothing else in the photo). Its opacity is a plain 0%→100% brightness ramp tied
     to scroll — like an iPhone brightness slider — dark at the top, fully revealed
     once you've scrolled through. */
  .diamond-fx{
    position:absolute;
    pointer-events:none;
    mask-image: radial-gradient(circle closest-side, #000 0%, #000 60%, transparent 100%);
    -webkit-mask-image: radial-gradient(circle closest-side, #000 0%, #000 60%, transparent 100%);
  }

  .diamond-dim{
    position:absolute;
    inset:0;
    background:radial-gradient(circle,
      rgba(0,0,0,0.92) 0%,
      rgba(0,0,0,0.76) 55%,
      rgba(0,0,0,0.45) 100%
    );
  }

  /* real sparkle: crisp camera-flash-style glints positioned at facet points on the
     stone (computed in JS). Each one pops in once as you scroll to it and then holds —
     no darkening, no looping, no blinking — like flash photography catching facets
     one after another. */
  .sparkle-unit{
    position:absolute;
    width:0;
    height:0;
    opacity:0;
    pointer-events:none;
    transform:scale(0.25);
    transition:opacity 0.4s ease, transform 0.55s cubic-bezier(.22,1.6,.4,1);
  }

  .sparkle-unit.is-on{
    opacity:1;
    transform:scale(1);
  }

  .spark-ray{
    position:absolute;
    top:0; left:0;
    border-radius:2px;
    background:linear-gradient(90deg, transparent, var(--spark-color, rgba(250,244,234,0.98)) 46%, var(--spark-color, rgba(250,244,234,0.98)) 54%, transparent);
  }

  .spark-ray.h{ width:var(--spark-len, 40px); height:2px; transform:translate(-50%,-50%); }
  .spark-ray.v{ width:2px; height:var(--spark-len, 40px); transform:translate(-50%,-50%); background:linear-gradient(180deg, transparent, var(--spark-color, rgba(250,244,234,0.98)) 46%, var(--spark-color, rgba(250,244,234,0.98)) 54%, transparent); }
  .spark-ray.d1{ width:var(--spark-len-d, 22px); height:1.5px; transform:translate(-50%,-50%) rotate(45deg); opacity:0.75; }
  .spark-ray.d2{ width:var(--spark-len-d, 22px); height:1.5px; transform:translate(-50%,-50%) rotate(-45deg); opacity:0.75; }

  .spark-core{
    position:absolute;
    top:0; left:0;
    width:var(--spark-core, 8px);
    height:var(--spark-core, 8px);
    border-radius:50%;
    background:radial-gradient(circle, var(--spark-color-solid, #fff) 0%, var(--spark-color, rgba(250,244,234,0.65)) 55%, transparent 78%);
    transform:translate(-50%,-50%);
  }

  .story-sparkles{
    --spark-color: rgba(250,244,234,0.98);
    --spark-color-solid: #ffffff;
  }

  .story-sparkles .spark-ray,
  .story-sparkles .spark-core{
    filter:
      drop-shadow(0 0 2px rgba(40,28,18,0.55))
      drop-shadow(0 0 6px rgba(40,28,18,0.3));
  }

  .hero-content{
    position:relative;
    z-index:2;
    text-align:center;
    padding:0 24px;
    max-width:640px;
  }

  .hero-content h1{
    font-size:clamp(40px, 6vw, 68px);
    font-weight:300;
    color:var(--hero-text);
    line-height:1.25;
  }

  .hero-content p{
    margin-top:22px;
    font-size:17px;
    color:var(--hero-text-muted);
    max-width:420px;
    margin-inline:auto;
  }

  .hero-cta{
    display:inline-block;
    margin-top:34px;
    padding:14px 38px;
    border:1px solid var(--hero-line);
    color:var(--hero-text);
    font-size:14.5px;
    letter-spacing:0.04em;
    transition:background 0.35s ease, color 0.35s ease;
  }

  .hero-cta:hover{
    background:var(--hero-text);
    color:#1E1610;
  }

  /* ---------- Origin line ---------- */
  .origin{
    padding:96px 0 72px;
    text-align:center;
  }

  .origin p{
    font-family:'Frank Ruhl Libre', serif;
    font-weight:400;
    font-size:clamp(20px, 2.6vw, 27px);
    color:var(--ink);
    max-width:640px;
    margin:0 auto;
    line-height:1.6;
  }

  .origin .sub{
    font-family:'Assistant', sans-serif;
    font-size:15px;
    color:var(--ink-muted);
    margin-top:18px;
  }

  /* ---------- Collection ---------- */
  .collection{
    padding:24px 0 120px;
  }

  .collection-head{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    margin-bottom:56px;
    border-bottom:1px solid var(--hairline);
    padding-bottom:22px;
  }

  .collection-head h2{
    font-size:32px;
    font-weight:400;
  }

  .collection-head span{
    font-size:14px;
    color:var(--ink-muted);
  }

  .grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:2px;
  }

  .card{
    background:var(--bg-elevated);
    border-top:1px solid var(--gold);
    position:relative;
    overflow:hidden;
    display:flex;
    flex-direction:column;
  }

  .card:nth-child(2){transform:translateY(38px);}
  .card:nth-child(5){transform:translateY(38px);}
  .card:nth-child(3n+2){border-top-color:var(--gold-bright);}

  .card-photo{
    width:100%;
    aspect-ratio:1 / 1;
    overflow:hidden;
    background:#BDA582;
  }

  .card-link{ display:block; }

  .card-photo img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    filter:grayscale(1) contrast(1.05);
    transition:transform 0.6s cubic-bezier(.2,.7,.2,1);
  }

  .card:hover .card-photo img{
    transform:scale(1.055);
  }

  .card-name{
    font-family:'Frank Ruhl Libre', serif;
    font-size:19px;
    font-weight:400;
    margin-top:24px;
    padding:0 24px;
    text-align:center;
  }

  .card-desc{
    font-size:13.5px;
    color:var(--ink-muted);
    text-align:center;
    padding:0 24px;
    margin-top:10px;
    line-height:1.65;
    flex-grow:1;
  }

  .card-price{
    font-size:15px;
    color:var(--gold);
    text-align:center;
    margin-top:16px;
    letter-spacing:0.02em;
  }

  .card-add{
    display:block;
    width:calc(100% - 48px);
    margin:16px 24px 26px;
    padding:12px 0;
    background:transparent;
    border:1px solid var(--gold);
    color:var(--ink);
    font-family:'Assistant', sans-serif;
    font-weight:400;
    font-size:13.5px;
    letter-spacing:0.02em;
    cursor:pointer;
    transition:background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
  }

  .card-add:hover{
    background:var(--gold-bright);
    border-color:var(--gold-bright);
    color:var(--bg);
  }

  .card-add.is-added{
    background:var(--gold-bright);
    border-color:var(--gold-bright);
    color:var(--bg);
  }

  /* ---------- Story (bracelet journey) ---------- */
  .story{
    padding:20px 0 100px;
  }

  .story-media{
    position:relative;
    width:100%;
    line-height:0;
  }

  .story-img{
    width:100%;
    height:auto;
    display:block;
    filter:grayscale(1) contrast(1.05);
  }

  .story-sparkles{
    position:absolute;
    inset:0;
    pointer-events:none;
  }

  .story-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    margin-top:0;
  }

  .story-item{
    padding:34px 28px 0;
    border-top:1px solid var(--hairline);
    text-align:center;
  }

  .story-item h3{
    font-size:19px;
    font-weight:400;
    margin-bottom:12px;
  }

  .story-item p{
    font-size:14.5px;
    color:var(--ink-muted);
    line-height:1.75;
    max-width:230px;
    margin:0 auto;
  }

  .story-link{
    display:inline-block;
    margin-top:18px;
    font-size:14px;
    color:var(--gold-bright);
    border-bottom:1px solid var(--gold-bright);
    padding-bottom:2px;
    transition:opacity 0.3s ease;
  }

  .story-link:hover{ opacity:0.6; }

  @media (max-width:820px){
    .story-grid{ grid-template-columns:repeat(2, 1fr); gap:1px; background:var(--hairline); }
    .story-item{
      background:var(--bg-elevated);
      border-top:none;
      padding:30px 24px 32px;
      margin-top:0;
    }
  }

  @media (max-width:520px){
    .story-grid{ grid-template-columns:1fr; gap:10px; background:none; padding:0 4px; }
    .story-item{
      background:var(--bg-elevated);
      padding:30px 24px 34px;
    }
  }

  /* ---------- Footer ---------- */
  footer{
    border-top:1px solid var(--hairline);
    padding:56px 0 40px;
  }

  .footer-grid{
    display:flex;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:36px;
  }

  .footer-col h3{
    font-size:16px;
    font-weight:400;
    color:var(--gold-bright);
    margin-bottom:14px;
  }

  .footer-col p, .footer-col a{
    display:block;
    font-size:14.5px;
    color:var(--ink-muted);
    margin-bottom:8px;
    transition:color 0.3s ease;
  }

  .footer-col a:hover{color:var(--gold-bright);}

  .footer-bottom{
    margin-top:48px;
    padding-top:24px;
    border-top:1px solid var(--hairline);
    text-align:center;
    font-size:13px;
    color:var(--ink-muted);
    opacity:0.7;
  }

  /* ---------- Cart toggle ---------- */
  .cart-toggle{
    position:absolute;
    left:24px;
    top:24px;
    background:none;
    border:none;
    cursor:pointer;
    padding:6px;
    color:var(--ink);
  }

  .cart-toggle svg{ width:21px; height:21px; display:block; }

  .cart-count{
    position:absolute;
    top:-2px;
    left:-2px;
    min-width:16px;
    height:16px;
    padding:0 3px;
    border-radius:50%;
    background:var(--gold-bright);
    color:var(--bg);
    font-size:10px;
    line-height:16px;
    text-align:center;
    font-family:'Assistant', sans-serif;
  }

  .cart-count[data-empty="true"]{ display:none; }

  /* ---------- Cart drawer ---------- */
  .cart-overlay{
    position:fixed;
    inset:0;
    background:rgba(40,28,18,0.4);
    opacity:0;
    pointer-events:none;
    transition:opacity 0.35s ease;
    z-index:90;
  }

  .cart-overlay.is-open{ opacity:1; pointer-events:auto; }

  .cart-drawer{
    position:fixed;
    top:0; left:0;
    height:100vh;
    width:min(420px, 92vw);
    background:var(--bg);
    z-index:91;
    display:flex;
    flex-direction:column;
    transform:translateX(-100%);
    transition:transform 0.4s cubic-bezier(.2,.7,.2,1);
    box-shadow:8px 0 30px rgba(0,0,0,0.12);
  }

  .cart-drawer.is-open{ transform:translateX(0); }

  .cart-drawer-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:26px 28px 20px;
    border-bottom:1px solid var(--hairline);
  }

  .cart-drawer-head h3{
    font-size:20px;
    font-weight:400;
  }

  .cart-close{
    background:none;
    border:none;
    font-size:19px;
    cursor:pointer;
    color:var(--ink-muted);
    line-height:1;
    padding:4px;
  }

  .cart-items{
    flex:1;
    overflow-y:auto;
    padding:8px 28px;
  }

  .cart-empty{
    color:var(--ink-muted);
    font-size:14.5px;
    text-align:center;
    padding:60px 0;
  }

  .cart-item{
    display:flex;
    gap:16px;
    padding:20px 0;
    border-bottom:1px solid var(--hairline);
    align-items:center;
  }

  .cart-item img{
    width:72px;
    height:72px;
    object-fit:cover;
    filter:grayscale(1) contrast(1.05);
    flex-shrink:0;
  }

  .cart-item-info{ flex:1; min-width:0; }

  .cart-item-name{
    font-family:'Frank Ruhl Libre', serif;
    font-size:16px;
    margin-bottom:4px;
  }

  .cart-item-price{
    font-size:13.5px;
    color:var(--ink-muted);
  }

  .cart-item-qty{
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:10px;
  }

  .qty-btn{
    width:24px;
    height:24px;
    border:1px solid var(--hairline);
    background:none;
    cursor:pointer;
    font-size:14px;
    line-height:1;
    color:var(--ink);
  }

  .qty-val{ font-size:14px; min-width:16px; text-align:center; }

  .cart-item-remove{
    background:none;
    border:none;
    color:var(--ink-muted);
    font-size:12.5px;
    text-decoration:underline;
    cursor:pointer;
    padding:0;
    margin-inline-start:auto;
  }

  .cart-footer{
    padding:22px 28px 30px;
    border-top:1px solid var(--hairline);
  }

  .cart-subtotal{
    display:flex;
    justify-content:space-between;
    font-size:15px;
    margin-bottom:16px;
  }

  .cart-subtotal span:last-child{ color:var(--gold); }

  .cart-checkout{
    display:block;
    width:100%;
    padding:15px 0;
    background:var(--gold-bright);
    color:var(--bg);
    border:none;
    font-family:'Assistant', sans-serif;
    font-size:15px;
    letter-spacing:0.02em;
    cursor:pointer;
    transition:opacity 0.3s ease;
  }

  .cart-checkout:hover{ opacity:0.85; }
  .cart-checkout:disabled{ opacity:0.35; cursor:not-allowed; }

  /* ---------- Checkout modal ---------- */
  .checkout-overlay{
    position:fixed;
    inset:0;
    background:rgba(40,28,18,0.5);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
    opacity:0;
    pointer-events:none;
    transition:opacity 0.35s ease;
    z-index:95;
  }

  .checkout-overlay.is-open{ opacity:1; pointer-events:auto; }

  .checkout-modal{
    background:var(--bg);
    width:min(480px, 100%);
    max-height:88vh;
    overflow-y:auto;
    padding:36px 34px;
    position:relative;
    transform:translateY(14px);
    transition:transform 0.35s ease;
  }

  .checkout-overlay.is-open .checkout-modal{ transform:translateY(0); }

  .checkout-close{
    position:absolute;
    left:20px;
    top:20px;
    background:none;
    border:none;
    font-size:18px;
    cursor:pointer;
    color:var(--ink-muted);
  }

  .checkout-modal h3{
    font-size:23px;
    font-weight:400;
    margin-bottom:6px;
    text-align:center;
  }

  .checkout-sub{
    text-align:center;
    color:var(--ink-muted);
    font-size:13.5px;
    margin-bottom:28px;
  }

  .checkout-summary{
    background:var(--bg-elevated);
    padding:16px 18px;
    margin-bottom:26px;
    font-size:13.5px;
  }

  .checkout-summary-row{
    display:flex;
    justify-content:space-between;
    padding:4px 0;
    color:var(--ink-muted);
  }

  .checkout-summary-row.total{
    color:var(--ink);
    font-size:15px;
    border-top:1px solid var(--hairline);
    margin-top:8px;
    padding-top:12px;
  }

  .checkout-form label{
    display:block;
    font-size:12.5px;
    color:var(--ink-muted);
    margin-bottom:6px;
  }

  .form-row{ margin-bottom:16px; }
  .form-row-split{ display:flex; gap:12px; }
  .form-row-split .form-row{ flex:1; }

  .checkout-form input{
    width:100%;
    padding:11px 12px;
    border:1px solid var(--hairline);
    background:var(--bg);
    font-family:'Assistant', sans-serif;
    font-size:14px;
    color:var(--ink);
  }

  .checkout-form input:focus{
    outline:none;
    border-color:var(--gold-bright);
  }

  .checkout-submit{
    display:block;
    width:100%;
    margin-top:22px;
    padding:15px 0;
    background:var(--gold-bright);
    color:var(--bg);
    border:none;
    font-family:'Assistant', sans-serif;
    font-size:15px;
    cursor:pointer;
    transition:opacity 0.3s ease;
  }

  .checkout-submit:hover{ opacity:0.85; }

  .checkout-note{
    text-align:center;
    font-size:11.5px;
    color:var(--ink-muted);
    margin-top:14px;
    opacity:0.75;
  }

  .checkout-success{
    text-align:center;
    padding:20px 0 6px;
  }

  .checkout-success-mark{
    width:56px;
    height:56px;
    border:1px solid var(--gold-bright);
    border-radius:50%;
    margin:0 auto 22px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
  }

  .checkout-success h3{ margin-bottom:10px; }

  .checkout-success p{
    color:var(--ink-muted);
    font-size:14px;
    line-height:1.7;
    margin-bottom:26px;
  }

  .checkout-success-close{
    display:inline-block;
    padding:13px 34px;
    border:1px solid var(--gold);
    background:none;
    color:var(--ink);
    font-family:'Assistant', sans-serif;
    font-size:14px;
    cursor:pointer;
  }

  @media (max-width:820px){
    nav{gap:26px;}
    .grid{grid-template-columns:repeat(2, 1fr);}
    .card:nth-child(2), .card:nth-child(5){transform:none;}
    .footer-grid{flex-direction:column;}
  }

  @media (max-width:520px){
    .grid{grid-template-columns:1fr;}
    .collection-head{flex-direction:column; align-items:flex-start; gap:8px;}
    .cart-toggle{ left:16px; top:22px; }
  }

  @media (prefers-reduced-motion: reduce){
    .shimmer::before{display:none;}
    html{scroll-behavior:auto;}
  }

  /* ---------- Product detail page ---------- */
  .product-page{
    padding:130px 0 100px;
  }

  .breadcrumb{
    font-size:13px;
    color:var(--ink-muted);
    margin-bottom:36px;
  }

  .breadcrumb a{ color:var(--ink-muted); transition:color 0.3s ease; }
  .breadcrumb a:hover{ color:var(--ink); }

  .product-layout{
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:64px;
    align-items:start;
  }

  .product-gallery{
    position:sticky;
    top:120px;
    aspect-ratio:1 / 1;
    overflow:hidden;
    background:#BDA582;
  }

  .product-gallery img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    filter:grayscale(1) contrast(1.05);
  }

  /* multi-photo gallery variant: stacked absolute images cross-fading */
  .product-gallery.has-multi{
    position:sticky;
    top:120px;
  }

  .product-gallery .gallery-img{
    position:absolute;
    inset:0;
    opacity:0;
    transition:opacity 0.45s ease;
  }

  .product-gallery .gallery-img.is-active{
    opacity:1;
  }

  .gallery-nav{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:38px;
    height:38px;
    border-radius:50%;
    background:rgba(211,191,161,0.9);
    border:1px solid var(--hairline);
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    font-size:19px;
    line-height:1;
    color:var(--ink);
    z-index:5;
    transition:background 0.25s ease;
  }

  .gallery-nav:hover{ background:var(--bg); }
  .gallery-nav.prev{ right:14px; }
  .gallery-nav.next{ left:14px; }

  .gallery-dots{
    position:absolute;
    bottom:16px;
    left:50%;
    transform:translateX(-50%);
    display:flex;
    gap:7px;
    z-index:5;
  }

  .gallery-dot{
    width:7px;
    height:7px;
    border-radius:50%;
    background:rgba(40,28,18,0.32);
    border:none;
    padding:0;
    cursor:pointer;
    transition:background 0.25s ease, transform 0.25s ease;
  }

  .gallery-dot.is-active{
    background:var(--gold-bright);
    transform:scale(1.2);
  }

  .product-info h1{
    font-size:34px;
    font-weight:400;
    margin-bottom:10px;
  }

  .product-price{
    font-size:19px;
    color:var(--gold);
    margin-bottom:26px;
  }

  .product-tagline{
    font-family:'Frank Ruhl Libre', serif;
    font-size:19px;
    line-height:1.7;
    margin-bottom:28px;
    padding-bottom:28px;
    border-bottom:1px solid var(--hairline);
  }

  .product-desc{
    font-size:14.5px;
    color:var(--ink-muted);
    line-height:1.85;
    margin-bottom:30px;
  }

  .product-specs{
    margin-bottom:32px;
  }

  .product-specs h3{
    font-size:14px;
    font-weight:400;
    margin-bottom:14px;
    color:var(--ink-muted);
    letter-spacing:0.01em;
  }

  .spec-row{
    display:flex;
    justify-content:space-between;
    padding:10px 0;
    border-top:1px solid var(--hairline);
    font-size:13.5px;
  }

  .spec-row span:first-child{ color:var(--ink-muted); }
  .spec-row:last-child{ border-bottom:1px solid var(--hairline); }

  .product-qty{
    display:flex;
    align-items:center;
    gap:14px;
    margin-bottom:16px;
  }

  .product-qty .qty-btn{ width:32px; height:32px; font-size:16px; }
  .product-qty .qty-val{ font-size:15px; min-width:20px; }

  .carat-select{
    margin-bottom:22px;
  }

  .carat-select h3{
    font-size:12.5px;
    color:var(--ink-muted);
    margin-bottom:10px;
  }

  .carat-options{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
  }

  .carat-option{
    padding:9px 14px;
    border:1px solid var(--hairline);
    background:none;
    color:var(--ink);
    font-family:'Assistant', sans-serif;
    font-size:13.5px;
    cursor:pointer;
    transition:border-color 0.25s ease, background 0.25s ease, color 0.25s ease;
  }

  .carat-option:hover{ border-color:var(--gold-bright); }

  .carat-option.is-selected{
    background:var(--gold-bright);
    border-color:var(--gold-bright);
    color:var(--bg);
  }

  .size-guide{
    margin-top:14px;
  }

  .size-guide summary{
    font-size:12.5px;
    color:var(--ink-muted);
    cursor:pointer;
    text-decoration:underline;
    list-style:none;
  }

  .size-guide summary::-webkit-details-marker{ display:none; }

  .size-guide-body{
    display:flex;
    align-items:flex-start;
    gap:14px;
    margin-top:14px;
    padding:16px;
    background:var(--bg-elevated);
  }

  .size-guide-icon{
    width:34px;
    height:34px;
    flex-shrink:0;
  }

  .size-guide-body p{
    font-size:12.5px;
    color:var(--ink-muted);
    line-height:1.7;
  }

  .product-add{
    display:block;
    width:100%;
    padding:16px 0;
    background:var(--gold-bright);
    color:var(--bg);
    border:none;
    font-family:'Assistant', sans-serif;
    font-size:15px;
    letter-spacing:0.02em;
    cursor:pointer;
    transition:opacity 0.3s ease;
  }

  .product-add:hover{ opacity:0.85; }
  .product-add.is-added{ opacity:0.6; }

  .product-note{
    text-align:center;
    font-size:12px;
    color:var(--ink-muted);
    margin-top:14px;
    opacity:0.8;
  }

  .cross-sell{
    margin-top:100px;
  }

  .cross-sell h2{
    font-size:24px;
    font-weight:400;
    margin-bottom:28px;
    border-bottom:1px solid var(--hairline);
    padding-bottom:18px;
  }

  .cross-sell-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:24px;
  }

  .cross-card{
    display:block;
    color:inherit;
  }

  .cross-card-photo{
    aspect-ratio:1 / 1;
    overflow:hidden;
    background:#BDA582;
  }

  .cross-card-photo img{
    width:100%; height:100%; object-fit:cover;
    filter:grayscale(1) contrast(1.05);
    transition:transform 0.5s ease;
  }

  .cross-card:hover .cross-card-photo img{ transform:scale(1.05); }

  .cross-card-name{
    font-family:'Frank Ruhl Libre', serif;
    font-size:15.5px;
    margin-top:14px;
    text-align:center;
  }

  .cross-card-price{
    font-size:13px;
    color:var(--gold);
    text-align:center;
    margin-top:4px;
  }

  @media (max-width:820px){
    .product-layout{ grid-template-columns:1fr; gap:32px; }
    .product-gallery{ position:static; }
    .cross-sell-grid{ grid-template-columns:repeat(3, 1fr); gap:14px; }
    .cross-card-name{ font-size:13.5px; }
  }

  @media (max-width:520px){
    .product-page{ padding-top:110px; }
    .cross-sell-grid{ grid-template-columns:1fr 1fr 1fr; }
  }

  /* ---------- WhatsApp floating button ---------- */
  .whatsapp-fab{
    position:fixed;
    bottom:24px;
    left:24px;
    z-index:80;
    width:56px;
    height:56px;
    border-radius:50%;
    background:#1E1610;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 4px 18px rgba(40,28,18,0.28);
    transition:transform 0.25s ease, box-shadow 0.25s ease;
  }

  .whatsapp-fab:hover{
    transform:translateY(-3px);
    box-shadow:0 8px 24px rgba(40,28,18,0.34);
  }

  .whatsapp-fab svg{ width:26px; height:26px; }

  .whatsapp-tooltip{
    position:absolute;
    bottom:68px;
    left:0;
    background:var(--ink);
    color:var(--bg);
    font-family:'Assistant', sans-serif;
    font-size:12.5px;
    padding:8px 14px;
    white-space:nowrap;
    opacity:0;
    transform:translateY(6px);
    pointer-events:none;
    transition:opacity 0.25s ease, transform 0.25s ease;
  }

  .whatsapp-fab:hover .whatsapp-tooltip{
    opacity:1;
    transform:translateY(0);
  }

  @media (max-width:520px){
    .whatsapp-fab{ left:16px; bottom:16px; width:50px; height:50px; }
    .whatsapp-fab svg{ width:23px; height:23px; }
    .whatsapp-tooltip{ display:none; }
  }

  /* ---------- Moissanite vs Diamond comparison ---------- */
  .compare{
    padding:90px 0 100px;
    border-top:1px solid var(--hairline);
  }

  .compare-head{
    text-align:center;
    max-width:560px;
    margin:0 auto 48px;
  }

  .compare-head h2{
    font-size:28px;
    font-weight:400;
    margin-bottom:14px;
  }

  .compare-head p{
    color:var(--ink-muted);
    font-size:14.5px;
    line-height:1.75;
  }

  .compare-table{
    max-width:720px;
    margin:0 auto;
    border-top:1px solid var(--hairline);
  }

  .compare-row{
    display:grid;
    grid-template-columns:1.3fr 1fr 1fr;
    align-items:center;
    border-bottom:1px solid var(--hairline);
    padding:16px 0;
  }

  .compare-row.head{
    padding-top:0;
    padding-bottom:20px;
  }

  .compare-row.head span{
    font-family:'Frank Ruhl Libre', serif;
    font-size:16px;
  }

  .compare-row.head span:first-child{ font-size:13px; color:var(--ink-muted); font-family:'Assistant', sans-serif; }

  .compare-row .label{
    font-size:13.5px;
    color:var(--ink-muted);
  }

  .compare-row .val{
    font-size:14px;
    text-align:center;
  }

  .compare-row .val.win{
    color:var(--gold);
    position:relative;
  }

  .compare-row .val.win::after{
    content:'✓';
    margin-inline-start:6px;
  }

  @media (max-width:620px){
    .compare-row{ grid-template-columns:1fr 0.85fr 0.85fr; padding:14px 0; }
    .compare-row .label, .compare-row .val{ font-size:12.5px; }
    .compare-row.head span{ font-size:14px; }
  }

/* ---------- v2: video hero + wordmark ---------- */
.logo{
  font-family:'Bodoni Moda','Frank Ruhl Libre',serif;
  font-weight:400;
  font-size:21px;
  letter-spacing:0.38em;
  padding-inline-start:0.38em;
}
.hero{
  background:#0E0D0B;
  align-items:center;
  justify-content:flex-start;
  padding:0 8vw;
}
.hero-img,.hero-video{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:60% 50%;
}
.hero-img{
  filter:grayscale(1) contrast(1.08) brightness(0.8);
  animation:heroDrift 28s ease-in-out infinite alternate;
}
.hero-video{ opacity:0; transition:opacity 1.2s ease; filter:grayscale(1) contrast(1.05) brightness(0.9); }
.hero-video.is-on{ opacity:1; }
@keyframes heroDrift{ from{transform:scale(1.02);} to{transform:scale(1.1);} }
.hero-overlay{
  background:
    linear-gradient(to left, rgba(28,19,11,0.82) 0%, rgba(28,19,11,0.55) 38%, rgba(28,19,11,0.15) 70%, rgba(28,19,11,0.35) 100%),
    linear-gradient(to top, rgba(28,19,11,0.55), rgba(28,19,11,0) 40%);
}
.hero-content{
  text-align:right;
  padding:0;
  max-width:520px;
  margin-top:60px;
}
.hero-eyebrow{
  font-family:'Bodoni Moda',serif;
  font-size:13px; letter-spacing:0.5em; color:var(--hero-text-muted);
  margin:0 0 26px; direction:ltr; text-align:right;
}
.hero-content h1{
  font-size:clamp(46px, 7vw, 92px);
  font-weight:300;
  line-height:1.08;
  color:var(--hero-text);
}
.hero-content .hero-sub{
  margin:26px 0 0; font-size:17px; color:var(--hero-text-muted); max-width:340px;
}
.hero-cta{ margin-top:38px; padding:14px 42px; }
.hero-scroll{
  position:absolute; bottom:28px; left:50%; width:1px; height:46px;
  background:linear-gradient(to bottom, rgba(246,232,212,0), rgba(246,232,212,0.8));
  animation:scrollHint 2.4s ease-in-out infinite;
}
@keyframes scrollHint{ 0%,100%{opacity:0.25;} 50%{opacity:1;} }
@media (max-width:700px){
  .hero{ padding:0 24px; align-items:flex-end; padding-bottom:12vh; }
  .hero-overlay{ background:linear-gradient(to top, rgba(28,19,11,0.85) 0%, rgba(28,19,11,0.35) 55%, rgba(28,19,11,0.25) 100%); }
  .hero-content{ margin-top:0; }
}
@media (prefers-reduced-motion: reduce){
  .hero-img,.hero-scroll{ animation:none; }
}

/* ---------- v3: travertine direction ---------- */
.hero{ background:#0B0705; overflow:hidden; }
.hero::before{
  content:""; position:absolute; top:50%; left:26%; width:min(70vw,900px); height:min(70vw,900px);
  transform:translate(-50%,-50%);
  background:radial-gradient(circle, rgba(201,172,138,0.22) 0%, rgba(201,172,138,0) 62%);
  pointer-events:none;
}
.hero-medallion{
  position:absolute; top:50%; left:26%;
  width:min(44vw, 640px); aspect-ratio:1/1;
  transform:translate(-50%,-50%);
  object-fit:cover;
  transition:opacity 1.2s ease;
  filter:contrast(1.02);
}
.hero-video.is-on ~ .hero-medallion{ opacity:0; }
.hero-overlay{ background:none; }
.hero-video.is-on ~ .hero-overlay{ background:linear-gradient(to left, rgba(11,7,5,0.78), rgba(11,7,5,0.25) 70%); }
.hero-content{ position:relative; z-index:2; margin-inline-start:0; }
@media (max-width:900px){
  .hero{ flex-direction:column; justify-content:flex-end; align-items:flex-start; padding:0 24px 11vh; }
  .hero::before{ left:50%; top:34%; width:110vw; height:110vw; }
  .hero-medallion{ left:50%; top:34%; width:min(78vw,420px); }
  .hero-content{ margin-top:0; }
  .hero-content h1{ font-size:clamp(38px,11vw,56px); }
}
@media (prefers-reduced-motion: reduce){ .hero-medallion{ transition:none; } }

/* ---------- v4: full-bleed hero art, dark header with the logo's lettering colour ---------- */
header{
  background:linear-gradient(to bottom, rgba(14,8,5,0.82), rgba(14,8,5,0));
  backdrop-filter:none; -webkit-backdrop-filter:none;
  transition:background 0.4s ease;
}
header.is-solid{ background:rgba(20,12,7,0.95); }
.logo{ color:#EBD5B8; }
nav{ border-bottom-color:rgba(235,213,184,0.22); }
nav a{ color:#CDB899; }
nav a:hover{ color:#F6E3C9; }
.cart-toggle{ color:#EBD5B8; }

.hero{ padding:0 6vw 10vh; flex-direction:row; align-items:flex-end; justify-content:flex-end; background:#0B0705; }
.hero::before{ display:none; }
.hero-art{
  position:absolute; top:0; left:50%; transform:translateX(-50%);
  height:100%; width:auto; max-width:none; aspect-ratio:1/1;
  object-fit:cover; filter:none; animation:none;
  -webkit-mask-image:linear-gradient(to right, transparent 0, #000 20%, #000 80%, transparent 100%);
          mask-image:linear-gradient(to right, transparent 0, #000 20%, #000 80%, transparent 100%);
  transition:opacity 1.2s ease;
}
.hero-video.is-on ~ .hero-art{ opacity:0; }
.hero-overlay{
  background:linear-gradient(to top, rgba(11,7,5,0.7) 0%, rgba(11,7,5,0.2) 36%, rgba(11,7,5,0) 60%),
             linear-gradient(to bottom, rgba(11,7,5,0.45), rgba(11,7,5,0) 20%);
}
.hero-content{ margin:0; max-width:460px; }
.hero-content h1{ font-size:clamp(40px,5vw,70px); }
@media (max-width:900px){
  .hero{ flex-direction:column; padding:calc(100vw + 6px) 24px 6vh; justify-content:flex-start; align-items:flex-start; }
  .hero-art{ left:0; transform:none; width:100%; height:auto; -webkit-mask-image:none; mask-image:none; }
  .hero-overlay{
    background:linear-gradient(to bottom, rgba(11,7,5,0.4) 0%, rgba(11,7,5,0) 16%, rgba(11,7,5,0) 62%, #0B0705 100vw);
  }
  .hero-content{ max-width:none; }
  .hero-content h1{ font-size:clamp(38px,11vw,56px); }
}

/* ---------- v5: sticky solid header (always visible below any host bar) ---------- */
header{
  position:sticky; top:env(safe-area-inset-top, 0px);
  background:rgba(20,12,7,0.97);
}
header.is-solid{ background:rgba(20,12,7,0.97); }
html{ scroll-padding-top:110px; }
.product-page{ padding-top:48px; }
.hero{ min-height:600px; height:calc(100vh - 110px); }
@media (max-width:900px){ .hero{ height:auto; min-height:calc(100vh - 100px); } }

/* ---------- v6: portrait hero art, Hebrew tagline + button in the image's own style ---------- */
.hero{ display:block; padding:0; height:calc(100vh - 110px); min-height:560px; background:#0B0705; overflow:hidden; position:relative; }
.hero-frame{
  position:absolute; top:0; left:50%; transform:translateX(-50%);
  height:100%; aspect-ratio:940/1672; max-width:none;
  font-family:'Frank Ruhl Libre',serif; font-weight:300; color:#F1DFCB;
  container-type:inline-size;
}
.hero .hero-art{
  position:absolute; inset:0; width:100%; height:100%; left:0; top:0; transform:none;
  object-fit:cover; opacity:1; animation:none;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 8%,#000 92%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 8%,#000 92%,transparent 100%);
}
.hero-tag{
  position:absolute; left:0; right:0; top:50.6%; margin:0; text-align:center;
  font-size:2.9cqw; letter-spacing:0.28em; padding-inline-start:0.28em; color:#EBD5BC;
}
.hero-explore{
  position:absolute; left:0; right:0; top:90.2%; display:flex; flex-direction:column; align-items:center; gap:2.4cqw;
  font-size:2.5cqw; letter-spacing:0.3em; padding-inline-start:0.3em; color:#EBD5BC; text-decoration:none; background:none; border:0;
}
.hero-explore svg{ width:4.6cqw; height:auto; }
.hero-explore:hover{ color:#fff; }
@media (max-width:900px){
  .hero{ height:auto; min-height:0; aspect-ratio:940/1672; max-height:calc(100vh - 100px); }
  .hero-frame{ height:100%; }
  .hero .hero-art{ -webkit-mask-image:none; mask-image:none; }
}
@media (max-width:900px) and (min-aspect-ratio:940/1672){ .hero{ aspect-ratio:auto; height:calc(100vh - 100px); } }
.hero::before{
  display:block !important; content:""; position:absolute; inset:-60px;
  background:url(../brand/avital-hero-clean.jpg) center/cover no-repeat;
  filter:blur(46px) brightness(0.42) saturate(0.9); transform:scale(1.1);
}
.hero-tag{ letter-spacing:0.16em; padding-inline-start:0.16em; }
.hero-explore{ letter-spacing:0.2em; padding-inline-start:0.2em; }
@media (max-width:900px){
  .hero-tag{ font-size:3.5cqw; }
  .hero-explore{ font-size:3.1cqw; }
  .hero-explore svg{ width:6cqw; }
}
.hero::before{ display:none !important; }

/* ---------- v7: full-screen gate (splash) before the site ---------- */
.hero{ display:none; }
body.is-gated{ overflow:hidden; }
body.is-gated header, body.is-gated .whatsapp-fab{ visibility:hidden; }
.gate{
  position:fixed; inset:0; z-index:1000; background:#0B0705; overflow:hidden;
  opacity:1; transition:opacity 1s ease, visibility 0s linear 1s;
}
.gate.is-out{ opacity:0; visibility:hidden; pointer-events:none; }
.gate[hidden]{ display:none; }
.gate-frame{
  position:absolute; top:0; left:50%; transform:translateX(-50%);
  height:100vh; height:100dvh; aspect-ratio:940/1672;
  font-family:'Frank Ruhl Libre',serif; font-weight:300; color:#EBD5BC;
  container-type:inline-size;
}
.gate-art{
  position:absolute; inset:0; width:100%; height:100%; display:block; max-width:none;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 8%,#000 92%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0,#000 8%,#000 92%,transparent 100%);
}
.gate-tag{
  position:absolute; left:0; right:0; top:50.6%; margin:0; text-align:center;
  font-size:3.2cqw; letter-spacing:0.16em; padding-inline-start:0.16em;
}
.gate-explore{
  position:absolute; left:0; right:0; top:89.5%; display:flex; flex-direction:column; align-items:center; gap:2.6cqw;
  font-size:3cqw; letter-spacing:0.2em; padding-inline-start:0.2em; color:#EBD5BC; text-decoration:none;
  animation:gateNudge 2.6s ease-in-out infinite;
}
.gate-explore svg{ width:6cqw; height:auto; }
.gate-explore:hover{ color:#fff; }
@keyframes gateNudge{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(5px);} }
@media (max-width:900px){ .gate-art{ -webkit-mask-image:none; mask-image:none; } }
@media (prefers-reduced-motion:reduce){ .gate-explore{ animation:none; } .gate{ transition:none; } }

/* ---------- v8: stone palette - espresso and travertine bands ---------- */
.origin,.collection,footer{
  --bg:#1C130B; --bg-elevated:#2B1E14; --ink:#EADCC6; --ink-muted:#B09C82;
  --gold:#D9BF9C; --gold-bright:#D9BF9C; --hairline:rgba(234,220,198,0.2);
  background:var(--bg); color:var(--ink);
}
.collection .product-card img, .product-card img, .product-media img{ filter:sepia(0.4) saturate(0.85) contrast(0.96) brightness(0.93); }
body{ background:#D3BFA1; }
section img, main img, .card-photo img, .product-page img, .gallery img{ filter:sepia(0.5) saturate(0.9) contrast(0.95) brightness(0.9); }
.cart-drawer{ box-shadow:none; }
.cart-drawer.is-open{ box-shadow:8px 0 30px rgba(0,0,0,0.25); }
.cart-drawer{ background:#2B1E14; color:#EADCC6; }

/* ---------- v9: warm product photography, no grayscale/tint ---------- */
section img, main img, .card-photo img, .product-page img, .gallery img, .gallery-img, .cross-card-photo img{ filter:none !important; }
.card-photo img, .cross-card-photo img{ object-position:center 48%; }
.story-img{ filter:sepia(0.5) saturate(0.9) brightness(0.9) !important; }

/* ---------- v10: collections + stone strip ---------- */
.col-group{ margin-bottom:72px; }
.col-group:last-child{ margin-bottom:0; }
.col-title{ display:flex; flex-direction:column; align-items:center; gap:6px; margin:0 0 34px; text-align:center; }
.col-name{ font-family:'Bodoni Moda',serif; font-size:clamp(26px,5vw,40px); letter-spacing:0.32em; padding-inline-start:0.32em; font-weight:400; color:var(--ink); }
.col-label{ font-size:13px; letter-spacing:0.3em; color:var(--ink-muted); }
.grid.grid-2{ grid-template-columns:repeat(2,1fr); max-width:900px; margin:0 auto; gap:2px; }
@media (max-width:520px){ .grid.grid-2{ grid-template-columns:1fr; } }
.card-no{ display:block; font-family:'Jost','Assistant',sans-serif; font-size:11px; letter-spacing:0.3em; color:var(--ink-muted); padding:18px 24px 0; text-align:center; }
.card-photo img{ object-position:center 45%; }
.story-img{ filter:none !important; }
.story{ background:#D3BFA1; }
.story-media{ background:#D3BFA1; }
.story-sparkles{ --spark-color:rgba(255,248,236,0.95); --spark-color-solid:#fffaf0; }

/* ---------- v11: desktop gate (landscape) ---------- */
.gate-wide{ display:none; }
@media (min-aspect-ratio:1/1){
  .gate-frame{ display:none; }
  .gate-wide{ display:block; position:absolute; inset:0; }
  .gate-frame-wide{
    position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
    width:max(100vw, calc(100vh * 1.7769)); aspect-ratio:1672/941;
    container-type:inline-size; font-family:'Frank Ruhl Libre',serif; font-weight:300; color:#EBD5BC;
  }
  .gate-art-wide{ position:absolute; inset:0; width:100%; height:100%; display:block; max-width:none; }
  .gate-rule{ position:absolute; left:0; right:0; top:51.2%; display:flex; align-items:center; justify-content:center; gap:1.1cqw; }
  .gate-rule i{ display:block; width:8.2cqw; height:1px; background:#EBD5BC; opacity:0.8; }
  .gate-rule b{ display:block; width:0.9cqw; height:0.9cqw; background:#EBD5BC; transform:rotate(45deg) scale(0.62,1); clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%); transform:none; }
  .gate-tag-wide{ position:absolute; left:0; right:0; top:55%; margin:0; text-align:center; font-size:1.55cqw; letter-spacing:0.2em; padding-inline-start:0.2em; }
  .gate-explore-wide{
    position:absolute; left:0; right:0; bottom:6vh; top:auto; margin:0 auto; width:max-content;
    font-size:clamp(15px,1.35vw,22px); gap:12px;
  }
  .gate-explore-wide svg{ width:34px; }
}

/* ---------- v12: aligned cards, compact comparison near the bottom ---------- */
.card:nth-child(n){ transform:none !important; }
.grid.grid-2{ align-items:stretch; }
.grid.grid-2 .card{ display:flex; flex-direction:column; }
.grid.grid-2 .card .card-add{ margin-top:auto; }
.card-photo{ aspect-ratio:4/5; }
.compare{ padding:56px 0 64px; background:#D3BFA1; }
.compare .wrap{ max-width:620px; }
.compare-head h2{ font-size:22px; }
.compare-head p{ font-size:13.5px; max-width:460px; margin-inline:auto; }
.compare-head{ margin-bottom:22px; }
.compare-row{ padding:9px 0; }
.compare-row .label,.compare-row .val{ font-size:13px; }
.compare-row.head span{ font-size:13px; }

/* ---------- v13: refined editorial layer (inspired by classic maison sites) ---------- */
.announce{ background:#2B1E14; color:#D9C7AA; text-align:center; font-size:12px; letter-spacing:0.14em; padding:9px 12px; }
.announce span{ margin:0 12px; opacity:0.5; }
nav a{ font-size:13px; letter-spacing:0.12em; }
.eyebrow{ display:block; font-family:'Bodoni Moda',serif; font-size:13px; letter-spacing:0.5em; color:var(--ink-muted); margin-bottom:22px; }
.text-link{ display:inline-block; background:none !important; border:0 !important; padding:0 0 4px !important; font-size:13px; letter-spacing:0.14em; color:var(--ink); border-bottom:1px solid currentColor !important; cursor:pointer; width:auto !important; }
.text-link:hover{ opacity:0.6; }

/* origin as a split feature */
.origin{ padding:0; }
.origin-split{ max-width:1180px; display:grid; grid-template-columns:1fr 1fr; gap:0; align-items:stretch; padding:0 !important; }
.origin-img{ min-height:520px; }
.origin-img img{ width:100%; height:100%; object-fit:cover; display:block; }
.origin-text{ display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:64px 8% ; text-align:start; gap:0; }
.origin-text p{ font-family:'Frank Ruhl Libre',serif; font-weight:300; font-size:clamp(22px,2.4vw,32px); line-height:1.5; margin:0 0 18px; }
.origin-text p.sub{ font-family:'Assistant',sans-serif; font-size:15px; color:var(--ink-muted); margin-bottom:34px; }
@media (max-width:760px){ .origin-split{ grid-template-columns:1fr; } .origin-img{ min-height:0; aspect-ratio:4/5; } .origin-text{ padding:44px 24px 56px; } }

/* collections */
.col-desc{ margin:10px 0 0; font-size:14px; color:var(--ink-muted); max-width:420px; }
.card{ background:transparent !important; border-top:0 !important; text-align:start; }
.grid.grid-2{ gap:28px; max-width:980px; }
.card-photo{ aspect-ratio:4/5; }
.card-no{ padding:16px 0 0; text-align:start; }
.card-link .card-name,.card-name{ text-align:start; font-size:19px; font-weight:400; padding:6px 0 0; }
.card-desc{ text-align:start; font-size:13.5px; padding:0; margin:8px 0 0; }
.card-price{ text-align:start; font-size:15px; margin:12px 0 0; padding:0; }
.card .card-add{ margin-top:16px; align-self:flex-start; }
.grid.grid-2 .card .card-add{ margin-top:16px; }

/* story: quiet columns */
.story-item{ background:transparent !important; border:0 !important; border-top:1px solid var(--hairline) !important; text-align:start !important; padding:28px 4px 8px !important; }
.story-grid{ gap:40px !important; background:none !important; }
.story-item h3{ font-size:15px; letter-spacing:0.14em; margin-bottom:10px; }

/* product page */
.product-collection{ font-family:'Jost','Assistant',sans-serif; font-size:11px; letter-spacing:0.32em; color:var(--ink-muted); margin:0 0 12px; }
.product-info h1{ font-size:30px; }
.product-gallery{ position:sticky; top:128px; align-self:start; }
.acc{ border-top:1px solid var(--hairline); padding:16px 0; }
.acc:last-of-type{ border-bottom:1px solid var(--hairline); }
.acc summary{ list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; font-size:14px; letter-spacing:0.14em; }
.acc summary::-webkit-details-marker{ display:none; }
.acc summary::after{ content:"+"; font-size:20px; font-weight:200; }
.acc[open] summary::after{ content:"–"; }
.acc .spec-row{ border:0 !important; padding:8px 0 0; font-size:13.5px; }
.acc p{ margin:12px 0 0; font-size:13.5px; color:var(--ink-muted); }
@media (max-width:900px){ .product-gallery{ position:static; } }
.product-add{ border-radius:0; letter-spacing:0.14em; }
.origin-split{ max-width:none !important; width:100%; }
.origin-img img{ object-position:center 55%; }
@media (max-width:600px){ .announce{ font-size:11px; letter-spacing:0.08em; } .announce span, .announce{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } }

/* ---------- v14: separate collections ---------- */
.col-tiles{ display:grid; grid-template-columns:1fr 1fr; gap:28px; max-width:980px; margin:0 auto; }
.col-tile{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:8px; }
.col-tile-img{ width:100%; aspect-ratio:4/5; overflow:hidden; margin-bottom:18px; }
.col-tile-img img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.col-tile:hover .col-tile-img img{ transform:scale(1.04); }
.col-tile .text-link{ margin-top:12px; }
@media (max-width:640px){ .col-tiles{ grid-template-columns:1fr; gap:44px; } }
.collection-page{ padding:48px 0 90px; }
.collection-page .col-title-lg{ margin:34px 0 46px; }
.collection-page .col-title-lg .col-name{ font-size:clamp(32px,6vw,54px); }
.col-other{ text-align:center; margin-top:64px; }
nav{ gap:clamp(14px,3vw,34px); }

/* ---------- v15: three bars at the top that collapse to one, then slide away ---------- */
:root{ --logo-h:104px; --nav-h:54px; }
@media (max-width:600px){ :root{ --logo-h:80px; --nav-h:50px; } }
header{
  position:sticky !important; top:calc(env(safe-area-inset-top, 0px) - var(--logo-h)) !important;
  padding:0 !important; background:#16100A !important;
  transition:transform .55s cubic-bezier(.2,.7,.2,1);
}
header.is-away{ transform:translateY(-100%); }
header .logo-row{ height:var(--logo-h); margin:0 !important; display:flex; align-items:center; justify-content:center; }
header .logo{ font-size:42px; letter-spacing:0.42em; padding-inline-start:0.42em; font-weight:300; }
@media (max-width:600px){ header .logo{ font-size:30px; letter-spacing:0.36em; padding-inline-start:0.36em; } }
header nav{
  max-width:none !important; width:100%; height:var(--nav-h); padding:0 !important; align-items:center;
  border-top:1px solid rgba(234,220,198,0.12); border-bottom:1px solid rgba(234,220,198,0.16) !important;
}
header nav a{ font-size:12.5px; letter-spacing:0.16em; color:#CDB899; }
header .cart-toggle{ top:auto !important; bottom:calc((var(--nav-h) - 22px)/2); left:clamp(16px,3vw,32px) !important; }
html{ scroll-padding-top:70px; }
.announce{ background:#2B1E14; }
@media (max-width:600px){
  header nav{ gap:13px !important; padding:0 0 0 44px !important; }
  header nav a{ font-size:11.5px; letter-spacing:0.07em; white-space:nowrap; }
  header .cart-toggle{ left:12px !important; }
}

/* ---------- v16: shop by category ---------- */
.categories{ padding:80px 0 90px; background:#D3BFA1; }
.categories .collection-head{ border-bottom:1px solid var(--hairline); }
.categories{ --ink:#1E1610; --ink-muted:#5E4C39; --hairline:rgba(40,28,18,0.22); color:var(--ink); }
.cat-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; max-width:1100px; margin:0 auto; }
.cat-tile{ display:flex; flex-direction:column; align-items:center; gap:14px; text-align:center; }
.cat-img{ display:block; width:100%; aspect-ratio:1/1; overflow:hidden; background:#C4AD8C; }
.cat-img img{ width:100%; height:100%; object-fit:cover; object-position:center 45%; display:block; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
a.cat-tile:hover .cat-img img{ transform:scale(1.05); }
.cat-name-sm{ font-size:13px; letter-spacing:0.22em; color:var(--ink); padding-bottom:3px; border-bottom:1px solid transparent; }
a.cat-tile:hover .cat-name-sm{ border-color:currentColor; }
.cat-soon{ display:flex; align-items:center; justify-content:center; color:rgba(40,28,18,0.55); background:linear-gradient(160deg,#CDB794,#BFA57F); }
.cat-soon svg{ width:38%; }
.cat-tile.is-soon{ opacity:0.85; cursor:default; }
.cat-soon-label{ font-size:11px; letter-spacing:0.3em; color:var(--ink-muted); margin-top:-6px; }
.cat-name{ font-family:'Frank Ruhl Libre',serif !important; letter-spacing:0.06em !important; }
@media (max-width:760px){ .cat-grid{ grid-template-columns:repeat(2,1fr); gap:28px 16px; } }
a.announce{ display:block; color:#D9C7AA; letter-spacing:0.18em; }
a.announce:hover{ color:#fff; }
.col-tile.is-soon{ cursor:default; opacity:.9; }
.col-tile-img.cat-soon{ display:flex; align-items:center; justify-content:center; color:rgba(234,220,198,0.45); background:linear-gradient(160deg,#2B1E14,#1F150D); border:1px solid rgba(234,220,198,0.12); }
.col-tile-img.cat-soon svg{ width:34%; }
.collection .col-name.cat-name{ font-size:clamp(26px,4vw,36px); }

/* v17: tighter first screen + slight zoom-out on desktop */
.origin-img{ min-height:0; height:clamp(340px,52vh,500px); }
.origin-text{ padding:36px 7%; }
.origin-text p{ font-size:clamp(20px,2vw,28px); }
.origin-text p.sub{ margin-bottom:24px; }
@media (min-width:901px){
  :root{ --logo-h:88px; --nav-h:48px; }
  section, footer{ zoom:.88; }
  .origin-img{ height:clamp(320px,50vh,460px); }
}
@media (max-width:760px){ .origin-img{ height:auto; aspect-ratio:4/5; } }
.col-tiles{ max-width:760px; margin-inline:auto; gap:32px; }
.col-tile-img{ aspect-ratio:1/1; }
.col-tile .col-name{ font-size:clamp(20px,2.2vw,26px) !important; letter-spacing:.04em !important; }
.collection .collection-head{ margin-bottom:28px; }
.collection{ padding-block:48px 56px; }

/* ---------- v18: redesign polish (quiet luxury, restraint) ---------- */
.collection{
  --bg:#D3BFA1; --bg-elevated:#C4AD8C; --ink:#1E1610; --ink-muted:#5E4C39;
  --gold:#1E1610; --gold-bright:#1E1610; --hairline:rgba(40,28,18,0.22);
  background:#D3BFA1; color:#1E1610; padding-block:84px 96px;
}
.collection-intro{ text-align:center; max-width:520px; margin:0 auto 64px; }
.collection-intro h2{ font-size:clamp(26px,3.2vw,34px); font-weight:400; margin:0 0 16px; letter-spacing:.02em; }
.collection-intro p{ font-size:15px; line-height:1.9; color:var(--ink-muted); margin:0; }
.grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:32px; max-width:1100px; margin:0 auto; }
.grid-4 .card{ display:flex; flex-direction:column; transform:none !important; }
.grid-4 .card-photo{ aspect-ratio:4/5; overflow:hidden; }
.grid-4 .card-photo img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .8s cubic-bezier(.2,.7,.2,1); }
.grid-4 .card:hover .card-photo img{ transform:scale(1.03); }
.grid-4 .card-name{ font-size:18px; padding:16px 0 0; }
.grid-4 .card-price{ margin:8px 0 0; font-size:15px; }
.grid-4 .card-desc{ margin:6px 0 0; font-size:12.5px; color:var(--ink-muted); letter-spacing:.02em; }
.grid-4 .text-link{ margin-top:14px; align-self:flex-start; font-size:13px; }
@media (max-width:980px){ .grid-4{ grid-template-columns:repeat(2,1fr); gap:36px 20px; } }
@media (max-width:420px){ .grid-4{ gap:32px 14px; } .grid-4 .card-name{ font-size:16px; } .grid-4 .card-desc{ font-size:12px; } }

.origin-text .sub{ line-height:1.9; }
.approach{ padding-block:84px 96px; text-align:center; }
.approach h2{ font-size:clamp(22px,2.6vw,28px); font-weight:400; margin:0 0 56px; }
.approach-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:48px; max-width:900px; margin:0 auto; }
.approach-grid h3{ font-size:17px; font-weight:400; margin:0 0 10px; }
.approach-grid p{ font-size:14px; color:var(--ink-muted); line-height:1.85; max-width:240px; margin:0 auto; }
@media (max-width:700px){ .approach-grid{ grid-template-columns:1fr; gap:36px; } .approach{ padding-block:64px 72px; } }

.moiss{ padding:72px 0 88px; border-top:1px solid var(--hairline); text-align:center; background:#D3BFA1; }
.moiss .wrap{ max-width:620px; }
.moiss h2{ font-size:clamp(22px,2.6vw,28px); font-weight:400; margin:0 0 16px; }
.moiss-lead{ font-size:14.5px; line-height:1.9; color:var(--ink-muted); margin:0 0 36px; }
.moiss-grid{ display:flex; justify-content:center; gap:14px 40px; flex-wrap:wrap; font-size:13px; letter-spacing:.06em; }
.moiss-grid span{ padding-top:14px; border-top:1px solid var(--hairline); min-width:120px; }

footer .footer-col span{ display:block; font-size:14px; color:rgba(234,220,198,0.55); line-height:2; }
footer .footer-sub{ margin-top:26px; }
.footer-bottom{ text-align:center; }

.acc-group{ margin-top:40px; }
.acc .prod-lead{ margin:12px 0 10px; }
.acc p + p{ margin-top:10px; }
.acc b{ font-weight:500; color:var(--ink); }
.product-info h1{ font-size:clamp(26px,3vw,34px); }
.product-info .carat-select h3{ font-size:14px; letter-spacing:.06em; font-weight:400; }
.product-add{ background:#1C130B; color:#EADCC6; min-height:52px; width:100%; }
.product-note{ text-align:center; }
.size-guide summary{ font-size:13px; }

/* story page */
.story-page{ padding:56px 0 120px; }
.story-text{ max-width:560px; margin:56px auto 0; text-align:center; display:flex; flex-direction:column; align-items:center; gap:26px; }
.story-text .eyebrow{ font-family:'Jost','Assistant',sans-serif; font-size:12px; letter-spacing:.42em; color:var(--ink-muted); }
.story-text p{ font-family:'Frank Ruhl Libre',serif; font-weight:300; font-size:clamp(19px,2.2vw,23px); line-height:1.95; margin:0; }
.story-text p.lead{ font-size:clamp(23px,3vw,30px); }
.story-sign{ margin-top:34px; padding-top:34px; border-top:1px solid var(--hairline); width:100%; display:flex; flex-direction:column; align-items:center; gap:12px; }
.story-sign .logo{ font-family:'Bodoni Moda',serif; font-size:30px; letter-spacing:.42em; padding-inline-start:.42em; }
.story-sign span:last-child{ font-size:14px; letter-spacing:.14em; color:var(--ink-muted); }
.story-text .text-link{ margin-top:18px; }
.story-sign .logo{ color:var(--ink) !important; }
.story-text{ width:100%; }
.story-text p{ overflow-wrap:break-word; max-width:100%; text-wrap:balance; }

/* product gallery: static, scrolls with the page, never overlaps text */
.product-gallery, .product-gallery.has-multi{ position:relative !important; top:auto !important; z-index:0; }
.product-info{ position:relative; z-index:1; }

/* ---------- v19: video hero (replaces the full-screen gate) ---------- */
.vhero{
  position:relative; background:#241710; overflow:hidden;
  height:calc(100svh - var(--logo-h) - var(--nav-h)); min-height:520px; max-height:90vh;
  --hero-ivory:#E6D6BC;
}
.vhero-stage{ position:absolute; inset:0; display:flex; justify-content:center; will-change:opacity,transform; }
.vhero-video{
  height:100%; width:min(100%,860px); display:block; object-fit:cover; object-position:50% 62%; filter:none !important;
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 22%,#000 78%,transparent 100%);
          mask-image:linear-gradient(to right,transparent 0,#000 22%,#000 78%,transparent 100%);
}
.vhero-light{
  position:absolute; top:0; bottom:0; left:50%; width:min(100%,860px); transform:translateX(-50%);
  pointer-events:none; opacity:var(--li,0); mix-blend-mode:soft-light; --lx:50%; --ly:40%;
  background:radial-gradient(ellipse 60% 65% at var(--lx) var(--ly), rgba(255,232,200,.55) 0%, rgba(255,232,200,.18) 50%, rgba(255,232,200,0) 80%);
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 22%,#000 78%,transparent 100%);
          mask-image:linear-gradient(to right,transparent 0,#000 22%,#000 78%,transparent 100%);
}
.vhero-copy{
  position:absolute; left:0; right:0; bottom:clamp(22px,5vh,46px);
  display:flex; flex-direction:column; align-items:center; text-align:center; color:var(--hero-ivory);
}
.vhero-name{
  font-family:'Bodoni Moda',serif; font-weight:400; font-size:clamp(34px,4.6vw,60px);
  letter-spacing:.42em; padding-inline-start:.42em; line-height:1.05; margin:0; color:var(--hero-ivory);
}
.vhero-coll{
  font-family:'Jost','Assistant',sans-serif; font-size:clamp(10px,.95vw,12.5px); letter-spacing:.5em;
  padding-inline-start:.5em; margin:12px 0 0; text-transform:uppercase; color:var(--hero-ivory); opacity:.82;
}
.vhero-tag{
  font-family:'Frank Ruhl Libre',serif; font-weight:300; font-size:clamp(15px,1.4vw,19px); letter-spacing:.14em;
  margin:20px 0 0; color:var(--hero-ivory);
}
.vhero-cta{
  margin-top:14px; font-size:13px; letter-spacing:.12em; color:var(--hero-ivory);
  border-bottom:1px solid rgba(230,214,188,.55); padding-bottom:3px; transition:opacity .4s ease;
}
.vhero-cta:hover{ opacity:.7; }
@media (max-width:700px){
  .vhero{ max-height:none; }
  .vhero-video{ width:100%; object-fit:cover; object-position:50% 50%; -webkit-mask-image:none; mask-image:none; }
}
html{ scroll-padding-top:56px; }

/* ---------- v20: accessibility, consent, legal pages ---------- */
.skip-link{ position:absolute; inset-inline-start:8px; top:-80px; z-index:10000; background:#1C130B; color:#EADCC6; padding:10px 16px; font-size:14px; }
.skip-link:focus{ top:8px; }
:focus-visible{ outline:2px solid #1E1610; outline-offset:3px; }
.gate :focus-visible, header :focus-visible, footer :focus-visible, .origin :focus-visible, .vhero :focus-visible, .cart-drawer :focus-visible, .announce:focus-visible{ outline-color:#EADCC6; }
.cart-consent{ display:flex; align-items:flex-start; gap:10px; font-size:13px; line-height:1.6; margin:14px 0 6px; cursor:pointer; }
.cart-consent input{ margin-top:4px; width:16px; height:16px; accent-color:#D9BF9C; flex:none; }
.cart-consent a{ text-decoration:underline; }
.cart-note{ font-size:12px; line-height:1.6; color:#B09C82; margin:0 0 12px; }
.product-note a{ text-decoration:underline; }
footer .footer-col a, footer .footer-col span{ display:block; }
.legal-page{ padding:56px 0 110px; }
.legal{ max-width:720px; margin:48px auto 0; }
.legal h1{ font-size:clamp(26px,3.4vw,36px); font-weight:400; margin:0 0 8px; }
.legal-date{ font-size:13px; color:var(--ink-muted); margin:0 0 36px; }
.legal h2{ font-size:19px; font-weight:400; margin:34px 0 10px; }
.legal p, .legal li{ font-size:15.5px; line-height:1.95; color:var(--ink); }
.legal ul{ padding-inline-start:22px; margin:0; }
.legal li{ margin-bottom:6px; }
.legal a{ text-decoration:underline; }
.legal b{ font-weight:500; }
.todo{ background:rgba(255,230,150,.55); color:#1E1610; padding:1px 5px; font-style:normal; }
.cart-drawer .cart-checkout{ background:#EADCC6; color:#1C130B; opacity:1; }
.cart-drawer .cart-checkout:disabled{ opacity:.35; }

/* ---------- v21: accessibility menu ---------- */
.a11y-fab{ position:fixed; right:22px; bottom:22px; z-index:9000; width:54px; height:54px; border-radius:50%; border:1px solid rgba(234,220,198,.35); background:#1C130B; color:#EADCC6; display:flex; align-items:center; justify-content:center; cursor:pointer; box-shadow:0 6px 18px rgba(0,0,0,.28); padding:0; }
.a11y-fab svg{ width:28px; height:28px; }
.a11y-fab:hover{ background:#2B1E14; }
body.is-gated .a11y-fab, body.is-gated .a11y-panel{ visibility:hidden; }
.a11y-panel{ position:fixed; right:22px; bottom:90px; z-index:9001; width:min(320px,calc(100vw - 32px)); max-height:calc(100vh - 120px); overflow:auto; background:#1C130B; color:#EADCC6; border:1px solid rgba(234,220,198,.25); padding:18px; font-family:'Assistant',sans-serif; font-size:14px; box-shadow:0 12px 36px rgba(0,0,0,.35); }
.a11y-panel[hidden]{ display:none; }
.a11y-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; font-size:17px; font-weight:400; }
.a11y-x{ background:none; border:0; color:inherit; font-size:18px; cursor:pointer; padding:4px 8px; }
.a11y-row{ display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; gap:10px; }
.a11y-pair{ display:flex; gap:6px; }
.a11y-panel button{ font-family:inherit; }
.a11y-pair button, .a11y-opt, .a11y-reset{ background:transparent; color:#EADCC6; border:1px solid rgba(234,220,198,.4); padding:9px 12px; font-size:13.5px; cursor:pointer; line-height:1.3; }
.a11y-pair button{ min-width:44px; }
.a11y-grid{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.a11y-opt[aria-pressed="true"]{ background:#EADCC6; color:#1C130B; border-color:#EADCC6; }
.a11y-foot{ display:flex; justify-content:space-between; align-items:center; margin-top:14px; font-size:13px; gap:10px; }
.a11y-foot a{ text-decoration:underline; }
.a11y-fab:focus-visible, .a11y-panel :focus-visible{ outline:2px solid #EADCC6; outline-offset:2px; }
@media (max-width:600px){ .a11y-fab{ right:16px; bottom:16px; width:50px; height:50px; } .a11y-panel{ right:16px; bottom:76px; } }

/* options */
html.a11y-links a{ text-decoration:underline !important; text-underline-offset:3px; }
html.a11y-font body, html.a11y-font body *{ font-family:Arial,'Assistant',sans-serif !important; letter-spacing:normal !important; }
html.a11y-spacing p, html.a11y-spacing li, html.a11y-spacing a, html.a11y-spacing span{ line-height:2 !important; letter-spacing:.04em !important; word-spacing:.14em !important; }
html.a11y-heads h1, html.a11y-heads h2, html.a11y-heads h3{ outline:2px solid currentColor; outline-offset:4px; }
html.a11y-still *, html.a11y-still *::before, html.a11y-still *::after{ animation:none !important; transition:none !important; scroll-behavior:auto !important; }
html.a11y-still .vhero-light{ display:none; }
html.a11y-text-1 section, html.a11y-text-1 footer, html.a11y-text-1 main{ zoom:1.12; }
html.a11y-text-2 section, html.a11y-text-2 footer, html.a11y-text-2 main{ zoom:1.26; }
html.a11y-text-3 section, html.a11y-text-3 footer, html.a11y-text-3 main{ zoom:1.42; }
@media (min-width:901px){
  html.a11y-text-1 section, html.a11y-text-1 footer{ zoom:1; }
  html.a11y-text-2 section, html.a11y-text-2 footer{ zoom:1.12; }
  html.a11y-text-3 section, html.a11y-text-3 footer{ zoom:1.26; }
}
html.a11y-text-1 .vhero, html.a11y-text-2 .vhero, html.a11y-text-3 .vhero{ zoom:1; }

/* checkout is a real link to WhatsApp */
a.cart-checkout{display:block; text-align:center; text-decoration:none; box-sizing:border-box;}
a.cart-checkout[aria-disabled="true"]{opacity:.45; pointer-events:none; cursor:default;}

/* Instagram feed (preview) */
.ig{ padding:80px 0 88px; border-top:1px solid var(--hairline); }
.ig .wrap{ max-width:960px; }
.ig-head{ display:flex; align-items:center; gap:20px; margin:0 0 32px; flex-wrap:wrap; }
.ig-avatar{ width:80px; height:80px; border-radius:50%; object-fit:cover; border:1px solid var(--hairline); }
.ig-meta{ flex:1; min-width:220px; }
.ig-meta h2{ font-size:clamp(20px,2.4vw,26px); font-weight:400; margin:0 0 8px; direction:ltr; text-align:right; }
.ig-meta h2 a{ color:inherit; text-decoration:none; }
.ig-stats{ display:flex; gap:22px; list-style:none; padding:0; margin:0 0 8px; font-size:14px; color:var(--ink-muted); }
.ig-stats b{ color:var(--ink); font-weight:600; margin-left:4px; }
.ig-bio{ margin:0; font-size:13.5px; color:var(--ink-muted); letter-spacing:.02em; }
.ig-follow{ display:inline-flex; align-items:center; gap:10px; padding:12px 26px; border:1px solid var(--ink); color:var(--ink); text-decoration:none; font-size:13px; letter-spacing:.12em; border-radius:999px; transition:background .25s,color .25s; }
.ig-follow svg{ width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.4; }
.ig-follow:hover{ background:var(--ink); color:var(--bg); }
.ig-grid{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
.ig-tile{ position:relative; display:block; aspect-ratio:1/1; overflow:hidden; background:var(--bg-elevated); }
.ig-tile img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .6s ease; }
.ig-hover{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(30,22,16,.32); opacity:0; transition:opacity .3s; }
.ig-hover svg{ width:30px; height:30px; fill:none; stroke:#F6E8D4; stroke-width:1.4; }
.ig-tile:hover img{ transform:scale(1.04); }
.ig-tile:hover .ig-hover, .ig-tile:focus-visible .ig-hover{ opacity:1; }
@media (max-width:600px){
  .ig{ padding:56px 0 64px; }
  .ig-head{ gap:14px; }
  .ig-avatar{ width:64px; height:64px; }
  .ig-stats{ gap:14px; font-size:13px; }
  .ig-follow{ width:100%; justify-content:center; }
  .ig-grid{ gap:3px; }
}

/* five-piece collection grid */
.grid-4.grid-5{ grid-template-columns:repeat(5,minmax(0,1fr)); gap:24px; max-width:1240px; }
@media (max-width:980px){
  .grid-4.grid-5{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 20px; }
  .grid-4.grid-5 .card:last-child:nth-child(odd){ grid-column:1 / -1; width:calc(50% - 10px); justify-self:center; }
}

/* story strip: four real photos edge to edge, flush under the origin block */
.story{ padding-top:0 !important; }
.story-strip{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:0; line-height:0; background:none !important; }
.story-strip img{ width:100%; aspect-ratio:1/1; object-fit:cover; display:block; filter:none !important; }
@media (max-width:760px){ .story-strip{ grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* collection photos melt into the page: soft feathered edges on the stone */
.grid-5 .card-photo{ background:transparent; }
.grid-5 .card-photo img{
  -webkit-mask-image:radial-gradient(ellipse 72% 70% at 50% 50%, #000 58%, rgba(0,0,0,.6) 80%, transparent 100%);
          mask-image:radial-gradient(ellipse 72% 70% at 50% 50%, #000 58%, rgba(0,0,0,.6) 80%, transparent 100%);
}

/* story page: the brand mark above the story, at logo size */
.story-logo{ font-family:'Bodoni Moda',serif; font-weight:400; font-size:clamp(40px,6vw,68px); letter-spacing:.42em; padding-inline-start:.42em; line-height:1; color:var(--ink); margin-bottom:14px; }

/* six pieces: three per row on desktop, two on phones */
.grid-4.grid-5.grid-6{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px 28px; max-width:1000px; }
@media (max-width:980px){ .grid-4.grid-5.grid-6{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 16px; } }
/* a seventh piece sits centred on its own row */
@media (min-width:981px){ .grid-4.grid-5.grid-6 .card:last-child:nth-child(3n+1){ grid-column:2; } }

/* collection: quiet filter chips and a sort select */
.collection-tools{ max-width:1000px; margin:0 auto 34px; display:flex; align-items:center; justify-content:space-between; gap:16px 24px; flex-wrap:wrap; }
.filter-chips{ display:flex; gap:8px; flex-wrap:wrap; }
.chip{ font:inherit; font-size:13px; letter-spacing:.06em; color:var(--ink); background:transparent; border:1px solid var(--hairline); border-radius:999px; padding:8px 18px; cursor:pointer; transition:background .25s, color .25s, border-color .25s; }
.chip:hover{ border-color:var(--ink); }
.chip.is-active{ background:var(--ink); color:var(--bg); border-color:var(--ink); }
.sort-select{ display:flex; align-items:center; gap:10px; font-size:13px; color:var(--ink-muted); }
.sort-select select{ font:inherit; font-size:13px; color:var(--ink); background:transparent; border:0; border-bottom:1px solid var(--hairline); padding:6px 4px 6px 22px; cursor:pointer; }
.grid-6.is-filtered .card:last-child:nth-child(3n+1){ grid-column:auto; }
@media (max-width:600px){
  .collection-tools{ justify-content:center; }
  .filter-chips{ justify-content:center; }
  .chip{ padding:7px 14px; font-size:12.5px; }
}
.cart-shipping{ margin:6px 0 0; font-size:12.5px; color:var(--ink-muted); text-align:start; }
