/* fonts */
@font-face{font-family:Gloock;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gloock-400-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Gloock;font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gloock-400.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/geist-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(fonts/geist.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* tokens */
:root{
  --ivory:#faf8f2; --blush:#efebe3; --powder:#e5dfd5; --linen:#bdb5aa; --imagebg:#e9e4db;
  --ink:#3b3530; --text:#2e2925; --muted:#6f675f; --line:#dcd5ca; --line-2:#dbd6c9;
  --strong:#2e2925; --white:#fff; --gold:#e4ca9e;
  --display:Gloock,'Times New Roman',Georgia,serif;
  --ui:Geist,-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
  --page-x:clamp(16px, 1.143px + 3.8095vw, 56px);
  --sec-y:clamp(64px, 46.914px + 4.381vw, 110px);
  --gap-l:clamp(20px, 12.571px + 1.9048vw, 40px);
  --gap-xl:clamp(28px, 8.686px + 4.9524vw, 80px);
  --grid-gap:10px;
  --radius-pill:999px;
  --ease:cubic-bezier(.22,.61,.36,1);
}
*,*::before,*::after{box-sizing:border-box}
/* Any rule that sets a display value outranks the browser's own [hidden] rule, so an element the
   theme's JS hides with el.hidden=true stays on screen — silently, with nothing in the console.
   This is the normalize rule for exactly that, and it is why the bag drawer, the mega panels,
   the filter rail and the builder's detail view can all be toggled with .hidden. */
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ivory);color:var(--text);font-family:var(--ui);font-size:14px;line-height:1.6;font-weight:400;overflow-x:clip}
img,svg,video{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,h4,h5,h6,p,figure,ul,ol{margin:0;padding:0}
ul,ol{list-style:none}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.ea-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* a skip link is invisible until it is reached by the keyboard, and then it has to be a real
   target — not the 1x1 box every other visually hidden label is */
a.ea-sr:focus,a.ea-sr:focus-visible{position:fixed;left:16px;top:16px;z-index:200;width:auto;height:auto;min-height:44px;display:inline-flex;align-items:center;margin:0;padding:0 18px;clip:auto;overflow:visible;background:var(--ink);color:var(--ivory);font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.ea-wrap{padding-inline:var(--page-x)}
.ea-sec{padding-block:var(--sec-y)}

/* type */
.ea-d1,.ea-d2,.ea-d3,.ea-d4,.ea-d5,.ea-d6{font-family:var(--display);font-weight:400;letter-spacing:-.01em;line-height:.88;text-transform:uppercase;color:var(--text);overflow-wrap:break-word}
.ea-d1{font-size:clamp(62px, 29.314px + 8.381vw, 150px)}
.ea-d2{font-size:clamp(50px, 17.314px + 8.381vw, 138px)}
.ea-d3{font-size:clamp(60px, 34px + 6.6667vw, 130px)}
.ea-d4{font-size:clamp(40px, 20.686px + 4.9524vw, 92px);line-height:.92;letter-spacing:-.02em}
.ea-d5{font-size:clamp(54px, 45.086px + 2.2857vw, 78px)}
.ea-d6{font-size:clamp(30px, 22.571px + 1.9048vw, 50px);line-height:1.06}
/* a display word longer than its column breaks instead of widening the page */
.ea-h2{overflow-wrap:break-word;font-family:var(--display);font-weight:400;font-size:clamp(30px, 24.8px + 1.3333vw, 44px);line-height:1.06;letter-spacing:-.01em;text-transform:uppercase;color:var(--text)}
.ea-h3{overflow-wrap:break-word;font-family:var(--display);font-weight:400;font-size:clamp(21px, 18.4px + 0.6667vw, 28px);line-height:1.08;letter-spacing:-.01em;text-transform:uppercase;color:var(--text)}
.ea-h4{overflow-wrap:break-word;font-family:var(--display);font-weight:400;font-size:clamp(24px, 21.771px + 0.5714vw, 30px);line-height:1;letter-spacing:-.01em;text-transform:uppercase}
.ea-h5{font-family:var(--display);font-weight:400;font-size:16px;line-height:1.2;letter-spacing:.01em;text-transform:uppercase;color:var(--text)}
.ea-pale{color:var(--powder)}
.ea-eyebrow{font-weight:500;font-size:11px;line-height:1.3;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.ea-caption{font-weight:500;font-size:10px;line-height:1.3;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ea-body{font-size:14px;line-height:1.6;color:var(--muted)}
.ea-body-l{font-weight:300;font-size:17px;line-height:1.55;color:var(--muted)}
.ea-small{font-size:12px;line-height:1.55;color:var(--muted)}
.ea-small-strong{font-weight:500;font-size:12px;line-height:1.55;color:var(--text)}
.ea-price{font-weight:500;font-size:14px;line-height:1.2;color:var(--text)}
.ea-label{font-weight:500;font-size:12px;line-height:1.3;letter-spacing:.06em;text-transform:uppercase;color:var(--text)}

/* primitives */
/* Button — the Figma's "Ribbon" rect is a 0-width fill that sweeps across on hover */
.ea-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:17px 34px;border-radius:var(--radius-pill);overflow:hidden;isolation:isolate;
  font-weight:500;font-size:11px;line-height:1;letter-spacing:.1em;text-transform:uppercase;
  min-height:48px;transition:color .3s var(--ease)}
.ea-btn__t{position:relative;z-index:2;white-space:nowrap}
.ea-btn .ea-ic{position:relative;z-index:2;width:14px;height:14px;opacity:0;transform:translateX(-6px);transition:opacity .3s var(--ease),transform .3s var(--ease)}
.ea-btn::before{content:"";position:absolute;inset:0;z-index:1;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.ea-btn:hover .ea-ic,.ea-btn:focus-visible .ea-ic{opacity:1;transform:translateX(0)}
.ea-btn:hover::before,.ea-btn:focus-visible::before{transform:scaleX(1)}
.ea-btn--primary{background:var(--ink);color:#fff}
.ea-btn--primary::before{background:#2a2521}
.ea-btn--outline{border:1px solid var(--strong);color:var(--strong);padding:16px 33px;min-height:50px}
.ea-btn--outline::before{background:var(--ink)}
.ea-btn--outline:hover,.ea-btn--outline:focus-visible{color:#fff}
.ea-btn--light{border:1px solid var(--ivory);color:#fff;padding:16px 33px;min-height:50px}
.ea-btn--light::before{background:var(--ivory)}
.ea-btn--light:hover,.ea-btn--light:focus-visible{color:var(--text)}
.ea-btn--lg{padding:20px 34px;min-height:54px}
.ea-btn--block{display:flex;width:100%}

/* Text link with the growing 25px rule under it */
.ea-link{display:inline-flex;align-items:center;gap:8px;padding-bottom:6px;position:relative;
  font-weight:500;font-size:11px;line-height:1;letter-spacing:.1em;text-transform:uppercase;color:var(--strong)}
.ea-link .ea-ic{width:13px;height:13px;transition:transform .3s var(--ease)}
.ea-link::after{content:"";position:absolute;left:0;bottom:0;width:25px;height:1px;background:currentColor;transition:width .35s var(--ease)}
.ea-link::before{content:"";position:absolute;inset:-14px -10px}
/* the rule is 19px tall by design; the hit area is grown to 44px without moving anything */
.ea-link:hover::after,.ea-link:focus-visible::after{width:100%}
.ea-link:hover .ea-ic{transform:translateX(3px)}
.ea-link--light{color:#fff}

/* Chip (PDP options, ring size, mobile facets) */
.ea-chip{position:relative;display:inline-flex;align-items:center;justify-content:center;padding:10px 16px;min-height:41px;
  background:#fff;border:1px solid var(--line);font-size:12px;line-height:1.55;color:var(--text);
  transition:background .2s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}
/* the Figma chip is 41px tall; the hit area is grown to 44 without moving the border */
.ea-chip::before{content:"";position:absolute;inset:-2px}
.ea-chip:hover{border-color:var(--strong)}
.ea-chip[aria-pressed="true"],.ea-chip.is-on{background:var(--ink);border-color:var(--ink);color:#fff}

/* Accordion */
.ea-acc{border-bottom:1px solid var(--line)}
.ea-acc__btn{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px;
  padding:20px 0;text-align:left;font-weight:500;font-size:14px;line-height:1.6;color:var(--text)}
.ea-acc__btn .ea-ic{width:16px;height:16px;flex:0 0 16px;transition:transform .3s var(--ease)}
.ea-acc__btn[aria-expanded="true"] .ea-ic{transform:rotate(45deg)}
.ea-acc__p{display:grid;grid-template-rows:0fr;transition:grid-template-rows .32s var(--ease)}
.ea-acc__btn[aria-expanded="true"]+.ea-acc__p{grid-template-rows:1fr}
.ea-acc__in{overflow:hidden}
.ea-acc__in>div{padding:0 0 20px;font-size:14px;line-height:1.6;color:var(--muted);max-width:60ch}
@media (max-width:767px){
  .ea-acc__btn{padding:16px 0;font-size:12px;line-height:1.55}
}

/* Toggle switch */
.ea-switch{position:relative;flex:0 0 40px;width:40px;height:22px;border-radius:11px;background:var(--line);transition:background .25s var(--ease)}
.ea-switch::before{content:"";position:absolute;inset:-11px}
.ea-switch::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .25s var(--ease)}
.ea-switch[aria-pressed="true"]{background:#3b3630}
.ea-switch[aria-pressed="true"]::after{transform:translateX(18px)}

/* Promises strip */
.ea-promises{padding:0 var(--page-x) clamp(48px, 36.114px + 3.0476vw, 80px)}
.ea-promise-strip{display:grid;grid-template-columns:repeat(5,1fr);background:var(--powder)}
.ea-promise{display:flex;align-items:center;justify-content:center;gap:12px;padding:24px 20px}
.ea-promise .ea-ic{width:24px;height:24px;flex:0 0 24px;color:var(--ink)}
.ea-promise b{display:block;font-weight:500;font-size:12px;line-height:1.55;color:var(--text)}
.ea-promise span{display:block;font-size:12px;line-height:1.55;color:var(--muted)}
@media (max-width:1023px){
  .ea-promise-strip{grid-template-columns:1fr;padding:8px 18px}
  .ea-promise{justify-content:flex-start;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}
  .ea-promise:last-child{border-bottom:0}
  .ea-promise__t{display:flex;align-items:center;gap:10px}
  .ea-promise .ea-ic{width:20px;height:20px;flex:0 0 20px}
}

/* Marquee */
.ea-marquee{background:var(--linen);overflow:hidden;padding-block:clamp(16px, 11.543px + 1.1429vw, 28px)}
.ea-marquee__strip{display:flex;width:max-content;animation:ea-marq 38s linear infinite}
.ea-marquee__seg{display:flex;align-items:center;gap:clamp(21.6px, 16.251px + 1.3714vw, 36px);padding-right:clamp(21.6px, 16.251px + 1.3714vw, 36px)}
.ea-marquee__seg span{font-family:var(--display);font-size:clamp(24px, 18.057px + 1.5238vw, 40px);line-height:1.2;text-transform:uppercase;color:#fff;white-space:nowrap}
.ea-marquee__seg .ea-spark{width:clamp(12px, 9.029px + 0.7619vw, 20px);height:clamp(12px, 9.029px + 0.7619vw, 20px);flex:none;fill:#fff}
@keyframes ea-marq{from{transform:translateX(0)}to{transform:translateX(-33.3333%)}}
@media (prefers-reduced-motion:reduce){.ea-marquee__strip{animation:none}}

/* Icons */
.ea-ic{width:20px;height:20px;flex:none}
/* Shape glyph discs + chips */
.ea-shape{width:100%;height:100%;fill:none;stroke:currentColor;stroke-linejoin:round;stroke-width:1.28}
.ea-spark{fill:currentColor}

/* Media boxes */
.ea-ph{background:var(--imagebg);display:flex;align-items:center;justify-content:center;overflow:hidden}
.ea-ph img{width:100%;height:100%;object-fit:cover}
.ea-ph__mark{font-family:var(--display);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#a89f93;text-align:center;padding:12px}
.ea-empty{padding:40px 0;font-size:14px;line-height:1.6;color:var(--muted)}

/* wordmark */
.ea-wm{display:flex;align-items:center;justify-content:center;gap:var(--wm-gap,41px);font-family:var(--display);font-weight:400;
  line-height:.9;letter-spacing:-.01em;font-size:var(--wm-size,200px);text-transform:uppercase;white-space:nowrap}
.ea-wm__a{color:var(--wm-a,#fff)}
.ea-wm__b{color:var(--wm-b,var(--gold))}
.ea-wm__s{flex:none;width:calc(var(--wm-size,200px) * .335);height:calc(var(--wm-size,200px) * .335);color:var(--gold)}
.ea-wm__s svg{width:100%;height:100%}

/* cards */
.ea-card{position:relative;display:flex;flex-direction:column;background:var(--ivory);border:1px solid var(--line)}
.ea-card__media{position:relative;display:block;aspect-ratio:308/388;background:var(--imagebg);overflow:hidden}
.ea-card--rail .ea-card__media{aspect-ratio:323/388}
.ea-card__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .45s var(--ease),transform .7s var(--ease)}
.ea-card__img--alt{opacity:0}
.ea-card:hover .ea-card__img--alt{opacity:1}
.ea-card:hover .ea-card__img{transform:scale(1.03)}
.ea-card__tag{position:absolute;top:14px;left:14px;padding:5px 10px;background:var(--ivory);
  font-weight:500;font-size:10px;line-height:1.3;letter-spacing:.1em;text-transform:uppercase;color:var(--text)}
.ea-card__wish{position:absolute;top:8px;right:8px;z-index:2;display:inline-flex;align-items:center;justify-content:center;
  width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.7);color:var(--text)}
.ea-card__wish .ea-ic{width:16px;height:16px}
.ea-card__wish::after{content:"";position:absolute;inset:-7px}
.ea-card__qv{position:absolute;left:50%;transform:translate(-50%,8px);z-index:2;display:inline-flex;align-items:center;gap:8px;
  padding:12px 16px;min-height:37px;background:var(--ivory);color:var(--text);opacity:0;pointer-events:none;
  font-weight:500;font-size:11px;line-height:1;letter-spacing:.1em;text-transform:uppercase;transition:opacity .3s var(--ease),transform .3s var(--ease)}
.ea-card__qv .ea-ic{width:13px;height:13px}
.ea-card:hover .ea-card__qv,.ea-card:focus-within .ea-card__qv{opacity:1;pointer-events:auto;transform:translate(-50%,-14px)}
/* md Step 15 — one card everywhere, and a long title stops at two lines instead of pushing the
   price out of the tile. The min-height keeps a one-line title from making its row shorter than
   its neighbours, so a grid row still lines up. */
.ea-card{height:100%}
.ea-card__txt{display:flex;flex-direction:column;gap:4px;padding:16px 16px 20px}
.ea-card__name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.4em}
.ea-card__tag--save{background:var(--ink);color:var(--ivory)}
.ea-card__metals{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.ea-card__metal{position:relative;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;border:1px solid var(--line)}
.ea-card__metal i{display:block;width:10px;height:10px;border-radius:50%}
/* 16px dots, 6px apart. Vertically there is nothing to collide with, so the reach is generous;
   sideways it stops at half the gap, or one swatch would answer for the next. */
.ea-card__metal::after{content:"";position:absolute;inset:-14px -3px}
.ea-card__metal.is-on,.ea-card__metal[aria-current="true"]{border-color:var(--ink)}
/* While the picked metal is on its way, the photo dims under the
   theme's own shimmer and the name and price go quiet. The new photo is never swapped in before
   it has loaded, so a card can't show the old metal's picture under the new name. */
[data-card].is-swapping .ea-card__media{position:relative}
[data-card].is-swapping .ea-card__media::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,var(--sand) 30%,var(--ivory) 50%,var(--sand) 70%);background-size:220% 100%;animation:eaSweep 1.4s linear infinite;opacity:.85}
[data-card].is-swapping .ea-card__img{opacity:.55;transition:opacity .2s}
[data-card].is-swapping .ea-card__name,[data-card].is-swapping .ea-price{opacity:.5}
@media (prefers-reduced-motion:reduce){
  [data-card].is-swapping .ea-card__media::after{animation:none}
}
@media (max-width:767px){
  .ea-card__txt{padding:16px 12px 20px}
  .ea-card__qv{display:none}
}

/* the shared grid: 4 up on desktop, 2 up below 1024 */
.ea-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--grid-gap);align-content:start;align-items:start}
.ea-grid--rail{grid-template-columns:repeat(4,1fr)}
@media (max-width:1023px){ .ea-grid,.ea-grid--rail{grid-template-columns:repeat(2,1fr);gap:clamp(6px, 4.514px + 0.381vw, 10px)} }

/* quick view */
.ea-qv{position:fixed;inset:0;z-index:135;display:flex;align-items:center;justify-content:center}
.ea-qv[hidden]{display:none}
.ea-qv__scrim{position:absolute;inset:0;background:#2e2925;opacity:.5}
.ea-qv__panel{position:relative;z-index:2;width:min(920px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;background:var(--ivory)}
.ea-qv__x{position:absolute;top:10px;right:10px;z-index:3;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.ea-qvbody{display:flex;gap:0}
.ea-qvbody__media{flex:0 0 46%;aspect-ratio:4/5}
.ea-qvbody__info{flex:1 1 auto;display:flex;flex-direction:column;gap:16px;padding:40px 36px;justify-content:center}
.ea-qvbody__price{font-size:21px;line-height:1;letter-spacing:-.01em}
@media (max-width:767px){ .ea-qvbody{flex-direction:column} .ea-qvbody__media{flex:0 0 auto} .ea-qvbody__info{padding:24px 20px 32px} }

/* header */
.ea-head{position:relative;z-index:60;background:var(--ivory)}
.ea-head--overlay{position:absolute;inset:0 0 auto;background:transparent;color:#fff}
/* md Step 3's ticker. The strip keeps one line's height and the messages cross-fade in place, so
   the header never jumps as they rotate. With JS off the first one simply stays. */
.ea-ann{position:relative;background:var(--powder);text-align:center;padding:10px 16px;min-height:33px}
.ea-ann__t{position:absolute;left:16px;right:16px;top:10px;font-weight:500;font-size:10px;line-height:1.3;letter-spacing:.1em;text-transform:uppercase;color:var(--text);opacity:0;transition:opacity .5s var(--ease);pointer-events:none}
.ea-ann__t.is-on{opacity:1}
.ea-head__row{display:flex;align-items:center;gap:16px;padding:20px var(--page-x);min-height:62px}
.ea-head--overlay .ea-head__row{padding-top:26px;padding-bottom:0;min-height:0}
.ea-head__l,.ea-head__r{display:flex;align-items:center;gap:18px;flex:1 1 0;min-width:0}
.ea-head__r{justify-content:flex-end}
.ea-head__logo,.ea-menu__logo{display:inline-flex;align-items:center;min-height:44px;font-family:var(--display);font-size:22px;line-height:1;letter-spacing:.02em;text-transform:uppercase;color:var(--text);white-space:nowrap}
.ea-head__burger{display:none;gap:10px}
.ea-head__burger-t{display:none;font-weight:500;font-size:11px;line-height:1;letter-spacing:.1em;text-transform:uppercase}
@media (min-width:1024px){ .ea-head--overlay .ea-head__burger-t{display:inline} }
.ea-head--overlay .ea-head__burger{display:inline-flex}
.ea-consult{display:inline-flex;align-items:center;min-height:44px;gap:8px;font-weight:500;font-size:11px;line-height:1;letter-spacing:.1em;text-transform:uppercase}
.ea-consult .ea-ic{width:15px;height:15px}
.ea-hicon{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;color:inherit}
.ea-head__row .ea-hicon{margin-inline:-12px}
.ea-hicon .ea-ic{width:19px;height:19px}
.ea-head--overlay .ea-hicon .ea-ic{width:20px;height:20px}
.ea-hicon__n{font-weight:500;font-size:12px;line-height:1.55;margin-left:4px}
.ea-hicon__n[hidden]{display:none}
.ea-head__search{display:none}

.ea-nav__list{display:flex;align-items:center;justify-content:center;gap:44px}
.ea-nav--overlay .ea-nav__list{gap:36px}
.ea-nav__link{position:relative;display:inline-flex;align-items:center;padding:9px 0;font-weight:500;font-size:11px;line-height:1;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.ea-nav__link::before{content:"";position:absolute;inset:-8px -8px}
.ea-nav__link i{position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--ink);transform:scaleX(0);transform-origin:center;transition:transform .3s var(--ease)}
.ea-nav--overlay .ea-nav__link i{background:#fff}
.ea-nav__link:hover i,.ea-nav__link[aria-expanded="true"] i,.ea-nav__link.is-on i{transform:scaleX(1)}
.ea-nav--row{display:flex;justify-content:center;padding:0 var(--page-x) 18px;border-bottom:1px solid var(--line)}
.ea-nav--overlay{flex:0 0 auto}

/* md Step 26 — the two floating controls */
.ea-float{position:fixed;bottom:22px;z-index:95;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border-radius:var(--radius-pill);background:var(--ink);color:var(--ivory);box-shadow:0 6px 22px rgba(26,23,28,.18)}
.ea-float--call{left:20px;padding:0 18px;font-weight:500;font-size:11px;line-height:1;letter-spacing:.1em;text-transform:uppercase}
.ea-float--call .ea-ic{width:16px;height:16px}
/* the platform's chat bubble lives in the bottom-right corner on a published store, so this sits above it */
.ea-float--top{right:20px;bottom:88px;width:44px;padding:0;background:var(--ivory);color:var(--ink);border:1px solid var(--line)}
.ea-float--top .ea-ic{width:15px;height:15px;transform:rotate(180deg)}
.ea-float:hover{opacity:.9}
@media (max-width:560px){
  .ea-float--call{left:14px;bottom:16px;padding:0 14px}
  .ea-float--top{right:14px;bottom:82px}
}

/* saved pieces */
.ea-wishd__find{position:relative;display:flex;align-items:center;gap:8px;margin:0 24px;padding:0 12px;border:1px solid var(--line)}
.ea-wishd__find .ea-ic{width:16px;height:16px;flex:none;color:var(--muted)}
.ea-wishd__find input{flex:1 1 auto;min-width:0;min-height:44px;border:0;background:none;font:inherit;font-size:13px;color:var(--text)}
.ea-wishd .ea-bag__line[hidden]{display:none}
/* the remove control is a real 44px target, like every other icon button in the theme */
.ea-bag__x{flex:none;margin:-11px -12px 0 0;color:var(--muted)}
.ea-bag__x .ea-ic{width:14px;height:14px}
.ea-bag__x:hover{color:var(--ink)}

/* Mega */
.ea-mega{position:absolute;left:0;right:0;top:100%;z-index:70}
/* md Step 18 — the panel fades and slides in rather than snapping, and moving from one nav item
   to the next cross-fades instead of closing and reopening the whole thing.
   Written as keyframes, not a resting opacity:0, because a rule that leaves content transparent
   until JS runs also leaves it invisible in a script-less preview — and the lint says so. The
   panel's closed state is the hidden attribute, which needs no CSS help. */
/* The animation sits on the panel's CONTAINER, which is also the element the hidden attribute
   drives, so no rule ever leaves the content itself transparent. */
.ea-mega.is-in{animation:eaMegaIn .3s var(--ease) both}
.ea-mega.is-out{animation:eaMegaOut .28s var(--ease) both}
@keyframes eaMegaIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes eaMegaOut{to{opacity:0}}
@media (prefers-reduced-motion:reduce){
  @keyframes eaMegaIn{from{opacity:0}to{opacity:1}}
}
.ea-mega__panel{position:relative;z-index:2;display:flex;gap:40px;padding:40px var(--page-x) 44px;background:var(--ivory);color:var(--text);overflow-x:clip}
/* Step 3's Engagement menu carries five groups beside the promo tile. The panel keeps the Figma's
   row, tightened: a 1440 line is 210+200+110+140+200 + 5x32 gaps + 256 promo = 1276 of 1320. */
.ea-mega--many .ea-mega__panel{gap:32px}
.ea-mega--many .ea-mega__shapes{grid-template-columns:repeat(2,105px)}
.ea-mega--many .ea-mega__feats{flex:0 0 216px}
/* The Figma's scrim starts under the header (y=128), not over it. A fixed inset:0 scrim sat on top
   of the nav and swallowed every hover and click on the other nav items. */
.ea-mega__scrim{position:absolute;left:0;right:0;top:0;height:100vh;z-index:1;background:#2e2925;opacity:.45}
.ea-mega__h{font-weight:500;font-size:11px;line-height:1.3;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin-bottom:13px}
.ea-mega__list li+li{margin-top:13px}
.ea-mega__list a{position:relative;display:inline-block;font-size:12px;line-height:1.55;color:var(--text);transition:color .2s var(--ease)}
/* Rows 13px apart: the reach stops at half the gap, or each link takes the top of the next. */
.ea-mega__list a::after{content:"";position:absolute;inset:-6px -6px}
.ea-mega__list a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.ea-mega__col--wide .ea-mega__list{columns:2;column-gap:28px}
.ea-mega__col--wide .ea-mega__list li{break-inside:avoid}
.ea-mega__col--wide .ea-mega__list li:first-child{margin-top:0}
.ea-mega__shapes{display:grid;grid-template-columns:repeat(2,115px);gap:6px}
.ea-mega__shape{display:inline-flex;align-items:center;gap:8px;padding:5px 0;font-size:12px;line-height:1.55}
.ea-mega__glyph{width:18px;height:18px;flex:none;color:var(--text)}
.ea-mega__feats{display:flex;gap:12px;margin-left:auto;flex:0 0 432px}
.ea-feat{position:relative;display:block;width:210px;height:290px;overflow:hidden}
.ea-feat__img{position:absolute;inset:0}
.ea-feat__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.ea-feat:hover .ea-feat__img img{transform:scale(1.04)}
.ea-feat::after{content:"";position:absolute;left:0;right:0;bottom:0;height:150px;background:linear-gradient(180deg,rgba(26,23,28,0) 0%,rgba(26,23,28,.8) 100%)}
.ea-feat__t{position:absolute;left:16px;right:16px;bottom:20px;z-index:2;display:block}
.ea-feat__t b{display:block;font-weight:400;font-size:19px;line-height:1.1;color:#fff}
.ea-feat__t em{display:block;margin-top:4px;font-style:normal;font-weight:500;font-size:10px;line-height:1.3;letter-spacing:.1em;text-transform:uppercase;color:var(--powder)}
.ea-feat__t i{display:block;margin-bottom:6px;font-style:normal;font-weight:500;font-size:9px;line-height:1.3;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}

@media (max-width:1023px){
  .ea-head__row{padding:14px var(--page-x);min-height:51px;gap:0}
  .ea-head__l{gap:16px}
  .ea-head__r{gap:16px}
  .ea-head__burger{display:inline-flex}
  .ea-head__search{display:inline-flex}
  /* Step 5: Account and Find our store move into the hamburger where the row runs out of room */
  .ea-head__search-d,.ea-head__store,.ea-consult{display:none}
  .ea-head__r>a[href="/account"]{display:none}
  .ea-head__logo{font-size:19px;position:absolute;left:50%;transform:translateX(-50%)}
  .ea-head__row{position:relative}
  .ea-nav--row{display:none}
  .ea-nav--overlay{display:none}
  .ea-ann__t--full{display:none}
  .ea-ann__t--short{display:block}
  .ea-ann{padding:9px 16px}
  .ea-mega{display:none}
}

/* mobile menu */
.ea-menu{position:fixed;inset:0;z-index:120}
.ea-menu[hidden]{display:none}
.ea-menu__scrim{position:absolute;inset:0;background:#2e2925;opacity:.45}
.ea-menu__panel{position:relative;z-index:2;display:flex;flex-direction:column;width:min(390px,100%);height:100%;background:var(--ivory);overflow-y:auto;
  transform:translateX(-100%);transition:transform .35s var(--ease)}
.ea-menu.is-open .ea-menu__panel{transform:none}
.ea-menu__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 16px;border-bottom:1px solid var(--line);position:relative}
.ea-menu__logo{position:absolute;left:50%;transform:translateX(-50%);font-size:19px}
.ea-menu__icons{display:flex;gap:14px}
.ea-menu__list{padding:8px 16px}
.ea-menu__row{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);
  font-size:21px;line-height:1.1;letter-spacing:-.02em;color:var(--text);text-align:left}
.ea-menu__row .ea-ic{width:16px;height:16px;transition:transform .3s var(--ease)}
.ea-menu__row[aria-expanded="true"] .ea-ic{transform:rotate(90deg)}
.ea-menu__drawer{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s var(--ease)}
.ea-menu__row[aria-expanded="true"]+.ea-menu__drawer{grid-template-rows:1fr}
.ea-menu__drawer>*{overflow:hidden}
.ea-menu__group{padding:16px 0 4px}
.ea-menu__sub li+li{margin-top:12px}
.ea-menu__sub a{display:flex;align-items:center;gap:8px;font-size:12px;line-height:1.55;position:relative}
/* WCAG 2.5.8 — a 19px line of text is not a 44px target. This is the group the first review pass
   missed: 133 of them at 375. The rows sit 12px apart, so the hit area grows by HALF that gap and
   no more: 31px tall, which clears 2.5.8's 24px spacing rule, with no overlap. A full 44px would
   have made every link steal 7px of its neighbour — a worse bug than the one being fixed — and
   making the rows themselves 44px would redraw a mega menu the design drew dense on purpose.
   Declared as a deviation rather than hidden. */
.ea-menu__sub a::before{content:"";position:absolute;inset:-6px -10px;z-index:0}
.ea-menu__sub a>*{position:relative;z-index:1}
/* a link inside the mobile menu is a pointer target like any other: give the two that had no
   expansion of their own (the drawer's "Shop all …" and the feature caption) a 44px box */
.ea-menu__drawer .ea-link,.ea-menu__feat .ea-feat{position:relative}
.ea-menu__drawer .ea-link::before{content:"";position:absolute;inset:-14px -10px}
/* the menu's feature tile and its caption are links too */
.ea-menu__feat .ea-feat{display:block;min-height:44px}
.ea-menu__foot a{min-height:44px}
.ea-menu__sub--shapes{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ea-menu__sub--shapes li+li{margin-top:0}
.ea-menu__glyph{width:18px;height:18px;flex:none}
.ea-menu__drawer .ea-link{margin:8px 0 18px}
.ea-menu__feat{padding:12px 16px}
.ea-menu__feat .ea-feat{width:100%;height:150px}
.ea-menu__feat .ea-feat::after{background:linear-gradient(180deg,rgba(26,23,28,.8) 0%,rgba(26,23,28,0) 100%)}
.ea-menu__feat .ea-feat__t{top:18px;bottom:auto}
.ea-menu__foot{margin-top:auto;display:flex;gap:10px;padding:16px 16px 28px;background:var(--ink)}
.ea-menu__foot a{display:flex;flex:1;align-items:center;justify-content:center;gap:8px;min-height:44px;border:1px solid rgba(255,255,255,.25);
  color:#fff;font-weight:500;font-size:11px;line-height:1;letter-spacing:.1em;text-transform:uppercase}
.ea-menu__foot .ea-ic{width:15px;height:15px}

/* bag drawer */
.ea-bag{position:fixed;inset:0;z-index:130}
.ea-bag[hidden]{display:none}
.ea-bag__scrim{position:absolute;inset:0;background:#2e2925;opacity:.45}
.ea-bag__panel{position:absolute;top:0;right:0;display:flex;flex-direction:column;width:min(460px,100%);height:100%;background:var(--ivory);
  transform:translateX(100%);transition:transform .35s var(--ease)}
.ea-bag.is-open .ea-bag__panel{transform:none}
.ea-bag__head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:22px 24px;border-bottom:1px solid var(--line)}
.ea-bag__title{font-family:var(--display);font-size:25px;line-height:1.1;letter-spacing:-.01em;text-transform:uppercase;color:var(--text)}
.ea-bag__title span{font-family:var(--ui);font-size:12px;line-height:1.55;color:var(--muted);text-transform:none;letter-spacing:0}
.ea-bag__ship{display:flex;align-items:center;gap:10px;padding:14px 24px;background:var(--powder);font-size:12px;line-height:1.55;color:var(--text)}
.ea-bag__ship .ea-ic{width:15px;height:15px}
.ea-bag__lines{flex:1 1 auto;overflow-y:auto;padding:0 24px}
.ea-bag__line{display:flex;align-items:flex-start;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}
.ea-bag__thumb{flex:0 0 84px;width:84px;height:104px}
.ea-bag__info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px}
.ea-bag__name{font-size:17px;line-height:1.1;color:var(--text)}
.ea-bag__price{font-weight:500;font-size:12px;line-height:1.55;white-space:nowrap}
.ea-qty{display:inline-flex;align-items:center;gap:16px;padding:6px 12px;border:1px solid var(--line);width:max-content}
.ea-qty button{min-width:22px;min-height:22px;font-size:12px;line-height:1.55}
.ea-qty span{font-size:12px;line-height:1.55;min-width:12px;text-align:center}
.ea-bag__empty{flex:1 1 auto;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:14px;padding:40px 24px}
.ea-bag__foot{margin-top:auto;display:flex;flex-direction:column;gap:12px;padding:20px 24px 28px;background:#fff;border-top:1px solid var(--line)}
.ea-bag__sub{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.ea-bag__total{font-size:25px;line-height:1;letter-spacing:-.01em}
.ea-bag__view{align-self:center}
@media (max-width:767px){ .ea-bag__panel{width:100%} .ea-bag__scrim{display:none} }

/* popup */
.ea-pop{position:fixed;inset:0;z-index:140;display:flex;align-items:center;justify-content:center}
.ea-pop[hidden]{display:none}
.ea-pop__scrim{position:absolute;inset:0;background:#2e2925;opacity:.55}
.ea-pop__panel{position:relative;z-index:2;display:flex;width:min(920px,calc(100vw - 32px));max-height:calc(100vh - 32px);background:var(--ivory);overflow:hidden}
.ea-pop__img{flex:0 0 420px}
.ea-pop__img img{width:100%;height:100%;object-fit:cover}
.ea-pop__body{flex:1 1 auto;display:flex;flex-direction:column;gap:18px;padding:56px 52px;justify-content:center;overflow-y:auto}
.ea-pop__copy{max-width:396px}
.ea-field{width:100%;padding:15px 16px;background:#fff;border:1px solid var(--line);font-size:12px;line-height:1.55;color:var(--text)}
.ea-field::placeholder{color:var(--muted)}
.ea-pop__form form{display:flex;flex-direction:column;gap:18px}
.ea-pop__no{align-self:flex-start;color:var(--muted)}
.ea-pop__x{position:absolute;top:18px;right:18px;z-index:3;display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.ea-pop__x .ea-ic{width:20px;height:20px}
@media (max-width:767px){
  .ea-pop{align-items:flex-end}
  .ea-pop__panel{flex-direction:column;width:100%;max-height:85vh}
  .ea-pop__img{flex:0 0 230px;width:100%}
  .ea-pop__body{padding:24px 20px 32px;gap:14px}
  .ea-pop__copy{display:none}
  .ea-pop__x{background:var(--ivory);border-radius:50%;width:32px;height:32px;min-width:32px;min-height:32px;top:12px;right:16px}
}

/* chapters */
.ea-chapters{background:#fff;border-bottom:1px solid var(--line)}
.ea-chapters__in{display:flex;padding-inline:var(--page-x)}
.ea-chapter{flex:1 1 0;display:flex;flex-direction:column;gap:4px;padding:18px 24px;border-right:1px solid var(--line);opacity:.6}
.ea-chapter:last-of-type{border-right:0}
.ea-chapter.is-now,.ea-chapter.is-done{opacity:1}
.ea-chapter__top{display:flex;align-items:center;gap:8px}
.ea-chapter__badge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--line);
  font-weight:500;font-size:11px;color:var(--muted)}
.ea-chapter.is-now .ea-chapter__badge,.ea-chapter.is-done .ea-chapter__badge{background:var(--ink);border-color:var(--ink);color:#fff}
.ea-chapter.is-now .ea-chapter__top .ea-caption{color:var(--ink)}
.ea-chapter__t{font-size:18px;line-height:1.1;color:var(--muted)}
.ea-chapter.is-now .ea-chapter__t{color:var(--text)}
.ea-chapters__total{display:flex;flex-direction:column;gap:2px;align-items:flex-end;padding:18px 0 18px 24px;text-align:right}
.ea-chapters__n{font-size:21px;line-height:1;letter-spacing:-.02em;color:var(--text)}
@media (max-width:1023px){
  .ea-chapters__in{padding-inline:0}
  .ea-chapter{padding:12px 10px;gap:2px;align-items:center;text-align:center}
  .ea-chapter__t{font-size:14px;line-height:1.1}
  .ea-chapter__s{display:none}
  .ea-chapters__total{display:none}
}

/* footer */
.ea-foot{background:var(--linen);color:#fff;padding:clamp(40px, 34.057px + 1.5238vw, 56px) var(--page-x) clamp(28px, 25.029px + 0.7619vw, 36px);display:flex;flex-direction:column;gap:clamp(22px, 19.771px + 0.5714vw, 28px)}
/* md Step 4's four columns, set in the footer's own type: the headings reuse the mega's eyebrow
   (.ea-mega__h) so the footer and the menus speak with one voice. */
.ea-foot__cols{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:clamp(26px, 14.857px + 2.8571vw, 56px);align-items:start}
.ea-foot__col .ea-mega__h{color:var(--powder);margin-bottom:16px}
.ea-foot__tag{max-width:30ch;margin-bottom:14px;font-size:13px;line-height:1.6;color:#fff;opacity:.9}
.ea-foot__list li+li{margin-top:11px}
.ea-foot__list a{position:relative;display:inline-block;font-size:12px;line-height:1.55;color:#fff}
/* Same rule as the menu's: the rows are 11px apart, so the reach grows by half that and stops.
   An overlapping hit area hands part of every link to the one below it. */
.ea-foot__list a::after{content:"";position:absolute;inset:-5px -10px}
.ea-foot__list a:hover{text-decoration:underline;text-underline-offset:3px}
.ea-foot__col--contact .ea-foot__social{margin-top:16px}
.ea-foot__social{display:flex;gap:14px}
.ea-foot__social a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:-13px}
.ea-foot__social .ea-ic{width:18px;height:18px}
.ea-foot__rule{height:1px;border:0;background:#fff;margin:0;opacity:1}
.ea-foot__wm{--wm-size:clamp(53px, -1.6px + 14vw, 200px);--wm-gap:clamp(11px, -0.143px + 2.8571vw, 41px);--wm-a:#fff;display:block}
.ea-foot__c{font-weight:500;font-size:10px;line-height:1.3;letter-spacing:.1em;text-transform:uppercase;text-align:center;opacity:.85}
@media (max-width:1023px){
  .ea-foot__cols{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .ea-foot__cols{grid-template-columns:minmax(0,1fr)}
  .ea-foot__tag{max-width:none}
}

/* hero */
.ea-hero{position:relative;height:clamp(920px, 1018.743px + -6.8571vw, 992px);min-height:clamp(920px, 1018.743px + -6.8571vw, 992px);background:var(--linen);overflow:hidden;color:#fff}
.ea-hero__shots,.ea-hero__shade{position:absolute;inset:0}
.ea-hero__shot{position:absolute;inset:0;opacity:0;transition:opacity 1.4s var(--ease)}
.ea-hero__shot.is-on{opacity:1}
.ea-hero__img{width:100%;height:100%;object-fit:cover}
.ea-hero__shade{background:linear-gradient(180deg,rgba(41,33,28,.42) 0%,rgba(41,33,28,.12) 35%,rgba(41,33,28,.1) 60%,rgba(41,33,28,.55) 100%)}
.ea-hero__ui{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;padding:clamp(54px, 50.286px + 0.9524vw, 64px) var(--page-x) 0}
.ea-hero__rule{height:1px;border:0;background:#fff;margin:0;width:100%}
.ea-hero__wm{--wm-size:clamp(53px, -0.857px + 13.8095vw, 198px);--wm-gap:clamp(11px, 0.229px + 2.7619vw, 40px);--wm-a:#fff;margin:clamp(12px, 11.257px + 0.1905vw, 14px) 0;display:block}
.ea-hero__tag{margin-top:44px;align-self:flex-end;max-width:clamp(196px, 163.686px + 8.2857vw, 283px);text-align:right;
  font-family:var(--display);font-size:clamp(18px, 15.029px + 0.7619vw, 26px);line-height:1.05;letter-spacing:-.01em;text-transform:uppercase}
.ea-hero__bottom{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:clamp(28px, 8.686px + 4.9524vw, 80px)}
.ea-hero__intro{display:flex;flex-direction:column;gap:clamp(12px, 9.771px + 0.5714vw, 18px);max-width:clamp(300px, 379.543px + -5.5238vw, 358px)}
.ea-hero__h{font-family:var(--display);font-size:clamp(30px, 24.8px + 1.3333vw, 44px);line-height:.96;letter-spacing:-.01em;text-transform:uppercase;max-width:clamp(196px, 162.2px + 8.6667vw, 287px)}
.ea-hero__copy{font-size:12px;line-height:1.55}
.ea-hero__intro .ea-btn{align-self:flex-start}
.ea-hero__tiles{width:clamp(330px, 368.4px + -2.6667vw, 358px);flex:none}
.ea-hero__tiles a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:clamp(12px, 11.629px + 0.0952vw, 13px) 0;
  border-top:1px solid rgba(255,255,255,.55);font-weight:500;font-size:11px;line-height:1;letter-spacing:.1em;text-transform:uppercase;min-height:44px}
.ea-hero__tiles li:last-child a{border-bottom:1px solid rgba(255,255,255,.55)}
.ea-hero__tiles .ea-ic{width:20px;height:20px;transition:transform .3s var(--ease)}
.ea-hero__tiles a:hover .ea-ic{transform:translateX(4px)}
@media (max-width:1023px){
  .ea-hero__ui{display:flex;flex-direction:column}
  /* only ONE auto margin may absorb the free space, or the two split it and the tagline
     floats halfway up the hero */
  .ea-hero__bottom{flex-direction:column;align-items:stretch;gap:clamp(20px, 18.514px + 0.381vw, 24px);order:6;margin-top:0}
  .ea-hero__intro{max-width:none}
  .ea-hero__tiles{width:100%}
  /* the Figma's mobile tagline sits immediately above the Collection block */
  .ea-hero__tag{order:5;margin-top:auto;margin-bottom:clamp(22px, 21.257px + 0.1905vw, 24px)}
}

/* about */
.ea-about{padding:var(--sec-y) var(--page-x) 0;display:flex;flex-direction:column;gap:var(--gap-l)}
.ea-about__head{display:flex;gap:clamp(0px, -14.857px + 3.8095vw, 40px);align-items:flex-start}
/* basis auto on purpose: this row becomes a column below 1024, where a px flex-basis would
   be read as a height and open a 358px hole above the copy */
.ea-about__head .ea-d1{flex:0 1 auto;max-width:clamp(223px, 105.629px + 30.0952vw, 539px)}
.ea-about__lead{flex:0 1 auto;max-width:470px;padding-top:clamp(0px, -2.229px + 0.5714vw, 6px)}
.ea-about__body{display:flex;gap:0px;align-items:flex-end}
.ea-about__col{flex:1 1 0;display:flex;flex-direction:column;gap:20px;max-width:clamp(358px, 316.4px + 10.6667vw, 470px);padding-bottom:clamp(64px, 46.914px + 4.381vw, 110px)}
.ea-about__col .ea-btn{align-self:flex-start;margin-top:4px}
.ea-about__img{flex:0 0 clamp(358px, 244.343px + 29.1429vw, 664px);aspect-ratio:664/620}
@media (max-width:1023px){
  .ea-about__head{flex-direction:column;gap:20px}
  .ea-about__lead{flex:none}
  .ea-about__body{flex-direction:column;align-items:stretch;gap:0}
  .ea-about__col{max-width:none}
  .ea-about__img{flex:none;width:100%;aspect-ratio:358/620}
}

/* tiles */
.ea-tiles{display:flex;flex-direction:column}
.ea-tiles__head{padding:clamp(0px, -37.143px + 9.5238vw, 100px) var(--page-x) clamp(18px, 15.771px + 0.5714vw, 24px)}
.ea-tiles__grid{display:grid;grid-template-columns:1fr 1fr}
.ea-tile{position:relative;display:block;aspect-ratio:720/640;background:var(--imagebg);overflow:hidden;color:#fff}
.ea-tile__img{position:absolute;inset:0}
.ea-tile__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.ea-tile:hover .ea-tile__img img{transform:scale(1.04)}
.ea-tile__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(51,43,38,.32) 0%,rgba(51,43,38,0) 45%)}
.ea-tile__row{position:absolute;top:clamp(20px, 16.286px + 0.9524vw, 30px);left:clamp(16px, 10.057px + 1.5238vw, 32px);right:clamp(16px, 10.057px + 1.5238vw, 32px);display:flex;align-items:center;gap:12px;color:#fff}
.ea-tile__row .ea-ic{width:clamp(18px, 16.514px + 0.381vw, 22px);height:clamp(18px, 16.514px + 0.381vw, 22px);transition:transform .3s var(--ease)}
.ea-tile:hover .ea-tile__row .ea-ic{transform:translateX(5px)}
.ea-tile__rule{position:absolute;left:clamp(16px, 10.057px + 1.5238vw, 32px);top:calc(clamp(20px, 16.286px + 0.9524vw, 30px) + clamp(36px, 33.771px + 0.5714vw, 42px));width:clamp(150px, 116.571px + 8.5714vw, 240px);height:1px;background:#fff}
@media (max-width:1023px){ .ea-tiles__grid{grid-template-columns:1fr} .ea-tile{aspect-ratio:390/420} }

/* shapes */
.ea-shapes{padding:var(--sec-y) var(--page-x) clamp(56px, 39.657px + 4.1905vw, 100px);display:flex;flex-direction:column;gap:clamp(24px, 18.057px + 1.5238vw, 40px)}
.ea-shapes__head{display:flex;align-items:flex-end;gap:16px}
.ea-shapes__head .ea-d3{flex:1 1 auto}
.ea-shapes__aside{flex:0 0 380px;display:flex;flex-direction:column;gap:16px;align-items:flex-end;text-align:right}
.ea-shapes__row{display:grid;grid-template-columns:repeat(8,1fr);align-items:end}
.ea-shapetile{display:flex;flex-direction:column;align-items:center;gap:clamp(8.68px, 6.704px + 0.5067vw, 14px);padding-bottom:4px}
.ea-shapetile__disc{display:flex;align-items:center;justify-content:center;width:clamp(82px, 63.429px + 4.7619vw, 132px);height:clamp(82px, 63.429px + 4.7619vw, 132px);
  border-radius:50%;background:var(--blush);color:var(--strong);transition:background .3s var(--ease)}
.ea-shapetile__disc svg{width:clamp(40px, 31.086px + 2.2857vw, 64px);height:clamp(40px, 31.086px + 2.2857vw, 64px)}
.ea-shapetile:hover .ea-shapetile__disc{background:#e7e1d6}
.ea-shapetile__t{font-family:var(--display);font-size:clamp(10.54px, 8.141px + 0.6152vw, 17px);line-height:1.2;letter-spacing:.04em;text-transform:uppercase;color:var(--text)}
.ea-shapetile__u{display:block;width:0;height:1px;background:var(--strong);transition:width .35s var(--ease)}
.ea-shapetile:hover .ea-shapetile__u{width:clamp(42px, 32.714px + 2.381vw, 67px)}
@media (max-width:1023px){
  .ea-shapes__head{flex-direction:column;align-items:stretch;gap:16px}
  .ea-shapes__aside{flex:none;align-items:flex-start;text-align:left}
  .ea-shapes__row{grid-template-columns:repeat(4,1fr);row-gap:20px}
}

/* design your ring */
.ea-design{background:var(--linen);color:#fff;padding:var(--sec-y) var(--page-x);display:flex;gap:var(--gap-xl);align-items:flex-start}
.ea-design__l{flex:1 1 0;display:flex;flex-direction:column;gap:clamp(22px, 19.771px + 0.5714vw, 28px)}
.ea-design__h{color:#fff}
.ea-design__title{font-size:clamp(60px, 41.429px + 4.7619vw, 110px)}
.ea-design__copy{font-size:14px;line-height:1.6;max-width:380px}
.ea-design__cta{display:flex;gap:10px;flex-wrap:wrap}
.ea-design__steps{flex:0 0 clamp(358px, 248.429px + 28.0952vw, 653px);display:flex;flex-direction:column}
.ea-step{display:flex;align-items:center;gap:clamp(18px, 12.8px + 1.3333vw, 32px);padding:clamp(16px, 12.286px + 0.9524vw, 26px) 0;border-top:1px solid rgba(255,255,255,.55);opacity:.45}
.ea-step:last-child{border-bottom:1px solid rgba(255,255,255,.55)}
.ea-step.is-on{opacity:1}
.ea-step__n{font-family:var(--display);font-size:clamp(28px, 23.543px + 1.1429vw, 40px);line-height:1;letter-spacing:-.01em;min-width:clamp(44px, 33.6px + 2.6667vw, 72px)}
.ea-step__b{display:flex;flex-direction:column;gap:8px}
.ea-step__t{color:#fff;font-size:clamp(20px, 17.771px + 0.5714vw, 26px)}
.ea-step__d{font-size:14px;line-height:1.6}
@media (max-width:1023px){
  .ea-design{flex-direction:column;gap:clamp(22px, 19.771px + 0.5714vw, 28px)}
  .ea-design__steps{flex:none;width:100%;order:2}
  .ea-design__cta{order:3;flex-direction:column}
  .ea-design__cta .ea-btn{width:100%}
  .ea-step__d{display:none}
  .ea-step__b{gap:0}
}

/* signature */
.ea-sig{background:var(--blush);padding:clamp(64px, 43.2px + 5.3333vw, 120px) var(--page-x);display:flex;align-items:center;gap:clamp(28px, 2.743px + 6.4762vw, 96px)}
.ea-sig__stage{position:relative;flex:1 1 clamp(358px, 223.543px + 34.4762vw, 720px);max-width:720px;min-width:0;aspect-ratio:0.9230769230769231}
.ea-sig__look{position:absolute;left:0;top:0;width:clamp(300px, 188.571px + 28.5714vw, 600px);aspect-ratio:600/780}
.ea-sig__look img{width:100%;height:100%;object-fit:cover}
.ea-sig__detail{position:absolute;right:0;bottom:0;width:clamp(150px, 109.143px + 10.4762vw, 260px);aspect-ratio:260/320;border:clamp(6px, 4.514px + 0.381vw, 10px) solid var(--blush)}
.ea-sig__detail img{width:100%;height:100%;object-fit:cover}
.ea-sig__hot{position:absolute;left:clamp(20px, 5.143px + 3.8095vw, 60px);top:58%;display:inline-flex;align-items:center;gap:10px;padding:10px 16px;
  background:var(--ivory);border-radius:var(--radius-pill);font-weight:500;font-size:12px;line-height:1.55;color:var(--text)}
.ea-sig__dot{width:10px;height:10px;border-radius:50%;background:var(--ink)}
.ea-sig__h{font-size:clamp(34px, 5.4vw, 78px)}
.ea-sig__info .ea-btn{align-self:flex-start}
.ea-sig__info{flex:1 1 440px;display:flex;flex-direction:column;gap:clamp(18px, 15.029px + 0.7619vw, 26px);min-width:0}
.ea-sig__rows{display:flex;flex-direction:column;max-width:440px}
.ea-sig__row a{display:flex;align-items:center;gap:16px;padding:14px 0;border-top:1px solid var(--line)}
.ea-sig__row:last-child a{border-bottom:1px solid var(--line)}
.ea-sig__row.is-on a{background:var(--ivory);padding-inline:12px}
.ea-sig__thumb{flex:0 0 64px;width:64px;height:64px}
.ea-sig__meta{flex:1 1 auto;display:flex;flex-direction:column;gap:2px;min-width:0}
@media (max-width:1023px){
  .ea-sig{flex-direction:column;align-items:stretch}
  .ea-sig__stage{flex:none;width:100%;aspect-ratio:358/460}
  .ea-sig__rows{max-width:none}
}

/* popular */
.ea-popular{padding:var(--sec-y) var(--page-x);display:flex;flex-direction:column;gap:clamp(20px, 12.571px + 1.9048vw, 40px)}

/* reviews */
.ea-reviews{padding:var(--sec-y) var(--page-x);display:flex;flex-direction:column;gap:clamp(20px, 12.571px + 1.9048vw, 40px)}
.ea-reviews__head{display:flex;align-items:flex-end;gap:16px}
.ea-reviews__head .ea-d1{flex:1 1 auto}
.ea-reviews__score{display:flex;flex-direction:column;gap:4px;align-items:flex-end;text-align:right;flex:0 0 139px}
.ea-reviews__n{font-family:var(--display);font-size:clamp(44px, 32.114px + 3.0476vw, 76px);line-height:1;letter-spacing:-.01em;color:var(--text)}
.ea-reviews__list{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px, 12.571px + 1.9048vw, 40px)}
.ea-quote{display:flex;flex-direction:column;gap:18px;padding-top:28px;border-top:1px solid var(--line)}
.ea-quote__t{font-family:var(--display);font-size:clamp(21px, 18.4px + 0.6667vw, 28px);line-height:1.25;color:var(--text)}
@media (max-width:1023px){
  .ea-reviews__head{flex-wrap:wrap}
  .ea-reviews__list{grid-template-columns:1fr}
}

/* worn */
.ea-worn{padding:clamp(56px, 39.657px + 4.1905vw, 100px) var(--page-x) var(--sec-y);display:flex;flex-direction:column;gap:clamp(20px, 15.543px + 1.1429vw, 32px);overflow:clip}
.ea-worn__h{font-size:clamp(51px, 21.657px + 7.5238vw, 130px)}
.ea-worn__head{display:flex;align-items:flex-end;gap:12px}
.ea-worn__head .ea-d3{flex:1 1 auto}
.ea-worn__handle{display:flex;flex-direction:column;gap:4px;align-items:flex-end;text-align:right}
.ea-worn__at{font-weight:500;font-size:14px;line-height:1.6;color:var(--text)}
.ea-worn__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(6px, 5.257px + 0.1905vw, 8px)}
.ea-worn__cell{position:relative;aspect-ratio:215/268;overflow:hidden}
.ea-worn__cell img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.ea-worn__cell:hover img{transform:scale(1.05)}
/* the hover veil is a transparent background that darkens, not an opacity:0 layer — a
   script-less preview then renders the tile exactly as it looks at rest */
.ea-worn__cell::after{content:"";position:absolute;inset:0;background:rgba(46,38,33,0);transition:background .35s var(--ease);pointer-events:none}
.ea-worn__cell:hover::after{background:rgba(46,38,33,.35)}
.ea-worn__tag{position:absolute;z-index:2;left:14px;bottom:12px;color:#fff;opacity:0;transition:opacity .35s var(--ease)}
.ea-worn__cell:hover .ea-worn__tag{opacity:1}
@media (max-width:1023px){
  .ea-worn__head{flex-direction:column;align-items:flex-start}
  .ea-worn__handle{align-items:flex-start;text-align:left}
  .ea-worn__grid{grid-template-columns:repeat(3,1fr)}
  .ea-worn__cell{aspect-ratio:115/144}
  .ea-worn__tag{font-size:8px;left:8px;bottom:8px}
}

/* faq */
.ea-faq{display:flex;gap:var(--gap-xl);padding:0 var(--page-x) var(--sec-y)}
.ea-faq--rule{border-top:1px solid var(--strong);padding-top:0px}
.ea-faq__head{flex:0 0 clamp(358px, 259.2px + 25.3333vw, 624px);display:flex;flex-direction:column;gap:10px;padding-top:clamp(0px, -0.371px + 0.0952vw, 1px)}
.ea-faq__list{flex:1 1 0;min-width:0}
@media (max-width:1023px){ .ea-faq{flex-direction:column;gap:clamp(28px, 23.543px + 1.1429vw, 40px)} .ea-faq__head{flex:none} }

/* join */
.ea-join{background:var(--linen);color:#fff;padding:var(--sec-y) var(--page-x);display:flex;align-items:center;gap:var(--gap-xl)}
.ea-join__h{color:#fff;flex:1 1 0}
.ea-join__b{flex:0 0 clamp(358px, 282.971px + 19.2381vw, 560px);display:flex;flex-direction:column;gap:18px}
.ea-join__copy{color:#fff}
.ea-join__form form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ea-join__form{width:100%}
.ea-join__field{flex:1 1 260px;min-height:56px;padding:16px 22px;background:transparent;border:1px solid #fff;border-radius:var(--radius-pill);color:#fff;font-size:14px}
.ea-join__field::placeholder{color:rgba(255,255,255,.85)}
.ea-join__fine{color:#fff}
@media (max-width:1023px){
  .ea-join{flex-direction:column;align-items:stretch;gap:28px}
  .ea-join__b{flex:none}
  .ea-join__field{flex:1 1 100%}
  .ea-join__form .ea-btn{width:auto}
}

/* collection head */
.ea-colhead{display:flex;align-items:flex-end;gap:var(--gap-l);padding:64px var(--page-x) 40px;flex-wrap:wrap}
.ea-colhead__l{flex:1 1 clamp(358px, 244.343px + 29.1429vw, 664px);max-width:664px;display:flex;flex-direction:column;gap:12px}
.ea-colhead__d{flex:1 1 clamp(358px, 282.971px + 19.2381vw, 560px);max-width:664px}
@media (max-width:1023px){ .ea-colhead{gap:20px} }

/* filters */
.ea-filters{display:flex;align-items:flex-start;gap:12px;padding:16px var(--page-x);border-bottom:1px solid var(--line);flex-wrap:wrap}
.ea-filters__l{flex:1 1 clamp(358px, 244.343px + 29.1429vw, 664px);display:flex;gap:10px;flex-wrap:wrap}
.ea-filters__r{flex:1 1 clamp(358px, 244.343px + 29.1429vw, 664px);display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap;padding-top:clamp(0px, -10.4px + 2.6667vw, 28px)}
.ea-facet{position:relative}
.ea-facet__btn{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;min-height:41px;background:#fff;border:1px solid var(--line);cursor:pointer;list-style:none}
.ea-facet__btn::-webkit-details-marker{display:none}
.ea-facet__btn .ea-ic{width:13px;height:13px;transition:transform .25s var(--ease)}
.ea-facet[open] .ea-facet__btn .ea-ic{transform:rotate(180deg)}
.ea-facet__p{position:absolute;z-index:40;top:calc(100% + 4px);left:0;min-width:240px;max-height:320px;overflow:auto;
  padding:14px 16px;background:var(--ivory);border:1px solid var(--line)}
.ea-facet__list--two{columns:2;column-gap:24px}
.ea-facet__list--two li{break-inside:avoid}
.ea-facet__list li+li{margin-top:10px}
.ea-facet__v{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:28px;font-size:12px;line-height:1.55}
.ea-facet__v em{font-style:normal;color:var(--muted)}
.ea-facet__v.is-on{font-weight:500;text-decoration:underline;text-underline-offset:3px}
.ea-sort{position:relative;display:inline-flex;align-items:center;gap:6px;padding:10px 12px;min-height:44px}
.ea-sort__s{appearance:none;background:none;border:0;min-height:44px;padding-right:18px;font-weight:500;font-size:12px;line-height:1.3;letter-spacing:.06em;text-transform:uppercase;color:var(--text);cursor:pointer}
.ea-sort .ea-ic{position:absolute;right:12px;width:13px;height:13px;pointer-events:none}
.ea-refine{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;min-height:34px;background:var(--ink);color:#fff;
  font-weight:500;font-size:11px;line-height:1;letter-spacing:.1em;text-transform:uppercase}
.ea-refine .ea-ic{width:14px;height:14px}

.ea-shapestrip{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;padding:20px var(--page-x)}
.ea-shapechip{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 22px;background:#fff;border:1px solid var(--line);min-height:71px}
.ea-shapechip__g{width:26px;height:26px;color:var(--strong)}
.ea-shapechip:hover,.ea-shapechip.is-on{border-color:var(--strong);border-width:1.5px}

.ea-drawer{position:fixed;inset:0;z-index:130}
.ea-drawer[hidden]{display:none}
.ea-drawer__scrim{position:absolute;inset:0;background:#2e2925;opacity:.45}
.ea-drawer__panel{position:absolute;top:0;right:0;display:flex;flex-direction:column;width:min(420px,100%);height:100%;background:var(--ivory)}
.ea-drawer__head{display:flex;align-items:center;justify-content:space-between;padding:22px 24px;border-bottom:1px solid var(--line)}
.ea-drawer__body{flex:1 1 auto;overflow-y:auto;padding:0 24px 24px}
@media (max-width:1023px){
  .ea-filters__r{justify-content:flex-start;padding-top:0}
  .ea-facet__p{position:static;min-width:0;border:0;padding:10px 0 0}
}

/* collection grid */
.ea-colgrid{display:flex;flex-direction:column;gap:clamp(24px, 16.571px + 1.9048vw, 44px);padding:24px var(--page-x) clamp(40px, 28.114px + 3.0476vw, 72px)}
.ea-promo{position:relative;display:flex;flex-direction:column;overflow:hidden;min-height:clamp(320px, 260.571px + 15.2381vw, 480px)}
.ea-promo--diamonds{gap:clamp(10px, 7.771px + 0.5714vw, 16px);justify-content:flex-end;padding:clamp(18px, 11.314px + 1.7143vw, 36px) clamp(14px, 7.314px + 1.7143vw, 32px);background:var(--powder)}
.ea-promo__disc{position:absolute;top:clamp(24px, 18.057px + 1.5238vw, 40px);left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;
  width:clamp(100px, 70.286px + 7.619vw, 180px);height:clamp(100px, 70.286px + 7.619vw, 180px);border-radius:50%;background:var(--imagebg);color:var(--linen)}
.ea-promo__disc svg{width:52%;height:52%;color:#bdb5aa}
.ea-promo--diamonds .ea-h3{max-width:246px}
.ea-promo__e{color:var(--ink)}
.ea-promo--design{color:#fff;justify-content:flex-end}
.ea-promo__img{position:absolute;inset:0}
.ea-promo__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.ea-promo--design:hover .ea-promo__img img{transform:scale(1.04)}
.ea-promo__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,23,28,0) 35%,rgba(26,23,28,.82) 100%)}
.ea-promo__b{position:relative;z-index:2;display:flex;flex-direction:column;gap:clamp(8px, 6.514px + 0.381vw, 12px);padding:clamp(14px, 7.314px + 1.7143vw, 32px)}
.ea-promo__e2{color:var(--powder)}
.ea-promo__h{color:#fff;max-width:246px}
.ea-promo__l{display:inline-flex;align-items:center;gap:6px;font-weight:500;font-size:11px;line-height:1;letter-spacing:.1em;text-transform:uppercase}
.ea-promo__l .ea-ic{width:13px;height:13px}
.ea-loadmore{display:flex;flex-direction:column;align-items:center;gap:14px}

/* meet us */
.ea-meet{background:var(--linen);padding:64px var(--page-x);display:flex;gap:24px;flex-wrap:wrap;align-items:center}
.ea-meet__l{flex:1 1 clamp(358px, 332.371px + 6.5714vw, 427px);display:flex;flex-direction:column;gap:14px;justify-content:center}
.ea-meet__cta{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:6px}
.ea-meet__img{flex:1 1 clamp(358px, 332.371px + 6.5714vw, 427px);aspect-ratio:427/280}
.ea-meet__img img{width:100%;height:100%;object-fit:cover}
@media (max-width:1023px){ .ea-meet__img{flex:1 1 100%} .ea-meet__cta .ea-btn{width:100%} }

/* guides */
.ea-guides{padding:var(--sec-y) var(--page-x);display:flex;flex-direction:column;gap:clamp(20px, 12.571px + 1.9048vw, 40px)}
.ea-guides__list{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.ea-guide a{display:flex;flex-direction:column;gap:12px}
.ea-guide__img{aspect-ratio:427/280;overflow:hidden}
.ea-guide__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.ea-guide:hover .ea-guide__img img{transform:scale(1.04)}
.ea-guide__t{font-size:21px;line-height:1.15;letter-spacing:-.02em;color:var(--text)}
.ea-guide .ea-link{margin-top:4px}
@media (max-width:1023px){ .ea-guides__list{grid-template-columns:1fr;gap:24px} }

/* listing filters */
/* CFR2 — the bar on a desktop, the same controls in a drawer below 1024px, one state behind both */
.ea-fbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:clamp(12px, 8.286px + 0.9524vw, 22px);padding:0 var(--page-x) 16px}
.ea-fbar__open{display:none}
.ea-fbar__g{display:flex;flex-direction:column;gap:8px;min-width:0}
.ea-fbar__h{display:flex;align-items:baseline;gap:8px}
.ea-fbar__vals{display:flex;flex-wrap:wrap;gap:6px}
.ea-fval{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 11px;border:1px solid var(--line);font-size:12px;line-height:1;color:var(--text)}
.ea-fval::after{content:"";position:absolute;inset:-6px -4px}
.ea-fval em{font-style:normal;font-size:10px;color:var(--muted)}
.ea-fval[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:var(--ivory)}
.ea-fval[aria-pressed="true"] em{color:var(--powder)}
.ea-fval[data-ea-shape]{gap:7px}
.ea-fval .ea-shape{width:17px;height:17px}
.ea-fprice{min-width:260px}
.ea-fprice__rail{position:relative;height:26px;--lo:0%;--hi:100%}
.ea-fprice__rail input[type=range]{position:absolute;left:0;right:0;top:11px;width:100%;height:4px;margin:0;-webkit-appearance:none;appearance:none;background:transparent;pointer-events:none}
.ea-fprice__rail input[data-hi]{background:linear-gradient(90deg,var(--line) 0,var(--line) var(--lo),var(--ink) var(--lo),var(--ink) var(--hi),var(--line) var(--hi),var(--line) 100%)}
.ea-fprice__rail input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;background:var(--ivory);border:1.5px solid var(--ink);pointer-events:auto;cursor:pointer;margin-top:-6px}
.ea-fprice__rail input[type=range]::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:var(--ivory);border:1.5px solid var(--ink);pointer-events:auto;cursor:pointer}
/* number boxes only — a bare .ea-fprice input rule would sink the range thumbs into a pill */
.ea-fprice__n{display:flex;gap:8px;margin-top:4px}
.ea-fprice__n label{position:relative;display:flex;align-items:center;flex:1 1 0;min-width:0}
.ea-fprice__n input[type=number]{width:100%;min-height:38px;padding:0 10px;border:1px solid var(--line);background:transparent;font:inherit;font-size:12px;color:var(--text)}
.ea-fbar__r{display:flex;align-items:center;gap:14px;margin-left:auto}
.ea-fclear{font-size:11px}
.ea-fapply{display:none}
.ea-fchips{display:flex;flex-wrap:wrap;gap:8px;padding:0 var(--page-x) 14px}
.ea-fchips:empty{display:none}
.ea-listcount{padding:0 var(--page-x) 10px}

@media (max-width:1024px){
  .ea-fbar__open{display:inline-flex}
  .ea-fbar{position:fixed;inset:0;z-index:130;flex-direction:column;align-items:stretch;flex-wrap:nowrap;overflow-y:auto;padding:18px var(--page-x) 96px;background:var(--ivory);transform:translateX(-100%);transition:transform .3s var(--ease)}
  .ea-fbar.is-open{transform:none}
  .ea-fbar__r{margin-left:0}
  .ea-fprice{min-width:0}
  /* rule 7: on a phone or tablet the choices wait, and one bar applies them all */
  .ea-fapply{position:fixed;left:0;right:0;bottom:0;z-index:131;display:flex;gap:10px;padding:12px var(--page-x);background:var(--ivory);border-top:1px solid var(--line)}
  .ea-fbar:not(.is-open)~.ea-fapply{display:none}
  .ea-fapply__go{flex:1}
}
.ea-colhead .ea-crumbs{padding:0 0 12px}

/* pdp */
.ea-crumbs{padding:20px var(--page-x);font-weight:500;font-size:10px;line-height:1.3;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ea-crumbs a:hover{color:var(--text)}
.ea-pdp{display:flex;gap:clamp(0px, -20.8px + 5.3333vw, 56px);padding:0 var(--page-x) clamp(48px, 30.171px + 4.5714vw, 96px);align-items:flex-start}
.ea-pdp__gallery{flex:0 0 clamp(390px, 237.714px + 39.0476vw, 800px);display:grid;grid-template-columns:1fr 1fr;gap:10px}
/* playbook C3 — the store's product photos are 4:3 on white: one 4:3 white box, the photo whole (contain) */
.ea-pdp__shot{position:relative;aspect-ratio:4/3;background:#fff}
.ea-pdp__shot img,.ea-pdp__shot video{width:100%;height:100%;object-fit:contain}
.ea-pdp__badge{position:absolute;top:14px;left:14px;padding:6px 10px;background:var(--ivory);
  font-weight:500;font-size:10px;line-height:1.3;letter-spacing:.1em;text-transform:uppercase}
.ea-pdp__3d{position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;gap:6px;padding:8px 12px;background:var(--ivory);
  font-weight:500;font-size:10px;line-height:1.3;letter-spacing:.1em;text-transform:uppercase;min-height:44px}
.ea-pdp__3d .ea-ic{width:14px;height:14px}
/* C4 — the 3D view in the photo area, the same 4:3 box; Try On pop-up; the wordmark over the viewer's corner mark */
.ea-pdp__vw{position:absolute;left:14px;bottom:14px;display:flex;gap:8px;flex-wrap:wrap}
.ea-pdp__vw .ea-pdp__3d{position:static}
button.ea-pdp__3d{cursor:pointer}
.ea-pdp__d3{position:relative;grid-column:1/-1;aspect-ratio:4/3;background:#fff}
.ea-pdp__d3 iframe,.ea-tryon__stage iframe{display:block;width:100%;height:100%;border:0}
.ea-pdp__gallery.is-3d .ea-pdp__shot{display:none}
.ea-pdp__photos{position:absolute;right:14px;bottom:14px;left:auto}
.ea-d3mark{position:absolute;left:0;bottom:0;display:flex;align-items:center;justify-content:center;width:210px;max-width:45%;height:84px;background:#fff;color:var(--text);pointer-events:none}
.ea-d3mark .ea-wm{--wm-size:22px;--wm-gap:6px}
.ea-tryon{position:fixed;inset:0;z-index:150;display:flex;align-items:center;justify-content:center;padding:var(--page-x)}
.ea-tryon__scrim{position:absolute;inset:0;background:rgba(26,23,28,.55)}
.ea-tryon__panel{position:relative;width:min(960px,100%);background:var(--ivory);padding:44px 12px 12px}
.ea-tryon__x{position:absolute;top:6px;right:6px}
.ea-tryon__stage{position:relative;aspect-ratio:4/3;background:#fff}
@media (max-width:767px){ .ea-tryon{padding:0} .ea-tryon__panel{width:100%;height:100%;display:flex;flex-direction:column} .ea-tryon__stage{flex:1;aspect-ratio:auto} }
html.ea-lock{overflow:hidden}
.ea-pdp__dots{display:none}
.ea-pdp__info{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:24px;position:sticky;top:24px}
.ea-pdp__head{display:flex;flex-direction:column;gap:8px}
.ea-pdp__desc{margin-top:6px}
.ea-pdp__desc.is-folded{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.ea-pdp__desc p{margin:0 0 .6em}
.ea-pdp__more{align-self:flex-start;min-height:44px}
.ea-opt__more{cursor:pointer}
.ea-pdp__t{font-family:var(--display);font-weight:400;font-size:clamp(30px, 27.029px + 0.7619vw, 38px);line-height:1.06;letter-spacing:-.01em;text-transform:uppercase;color:var(--text)}
.ea-pdp__price{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;font-size:clamp(23px, 21.886px + 0.2857vw, 26px);line-height:1;letter-spacing:-.01em;text-transform:uppercase}
.ea-pdp__rate{display:flex;align-items:center;gap:8px}
.ea-stars{display:inline-flex;gap:2px;color:var(--ink)}
.ea-stars .ea-ic{width:12px;height:12px}
.ea-pdp__form{display:flex;flex-direction:column;gap:20px}
.ea-v1{display:flex;flex-direction:column;gap:24px}
.ea-v1__one{color:var(--text)}
.ea-pdp__save{display:inline-block;padding:3px 8px;border:1px solid var(--gold);font-weight:500;font-size:10px;line-height:1.3;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.ea-pdp__save[hidden]{display:none}
/* md Step 21 — the gallery stays with the copy until the column runs out, but only while the two
   columns really are side by side; below that it is a normal stack. */
@media (min-width:900px){
  .ea-pdp__gallery{position:sticky;top:18px;align-self:start}
}
/* md Step 14 — the trust row, whether it comes from the store's badges or the theme's own four */
.ea-pdp__badges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ea-pdp__badges li{display:flex;align-items:center;gap:8px;min-width:0}
.ea-pdp__badges .ea-ic{width:17px;height:17px;flex:none;color:var(--ink)}
.ea-pdp__badges img{width:17px;height:17px;flex:none;object-fit:contain}
.ea-pdp__badges a{color:inherit}
.ea-pdp__wish{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-weight:500;font-size:11px;line-height:1;letter-spacing:.1em;text-transform:uppercase;color:var(--text)}
.ea-pdp__wish .ea-ic{width:17px;height:17px}
.ea-pdp__wish[aria-pressed="true"] .ea-ic{fill:currentColor;color:var(--ink)}
.ea-opt{display:flex;flex-direction:column;gap:12px}
.ea-opt__h{display:flex;align-items:center;gap:8px}
.ea-opt__tiles,.ea-opt__chips{display:flex;flex-wrap:wrap;gap:8px}
.ea-opt__swatches{display:flex;flex-wrap:wrap;gap:14px}
.ea-shapeopt{display:flex;flex-direction:column;align-items:center;gap:4px;width:clamp(72px, 129.6px + -4vw, 114px);padding:10px 4px 8px;background:#fff;border:1px solid var(--line-2)}
.ea-shapeopt.is-on{border-color:var(--strong);border-width:1.5px}
.ea-shapeopt__g{width:20px;height:20px;color:var(--strong)}
.ea-swatch{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:36px}
.ea-swatch__d{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--line-2)}
.ea-swatch.is-on .ea-swatch__d{border-color:var(--strong);border-width:1.5px}
.ea-swatch__d i{display:block;width:26px;height:26px;border-radius:50%}
.ea-blue{display:flex;align-items:center;gap:14px;padding:16px 18px;background:var(--powder)}
.ea-blue .ea-ic{width:22px;height:22px;flex:none;color:var(--ink)}
.ea-blue__t{flex:1 1 auto;display:flex;flex-direction:column;gap:2px}
.ea-blue__t b{font-weight:400;font-size:17px;line-height:1.1;color:var(--ink)}
.ea-pdp__cta{display:flex;flex-direction:column;gap:10px}
.ea-pdp__cta--row{flex-direction:row;align-items:stretch}
.ea-pdp__cta--row .ea-qty{flex:none;min-height:54px;padding:0 16px;justify-content:space-between;gap:14px}
.ea-pdp__cta--row .ea-qty button{min-width:28px;min-height:44px}
.ea-pdp__cta--row .ea-btn{flex:1 1 auto;width:auto;min-width:0}
.ea-pdp__err{color:#8a3f2f}
.ea-ships{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line)}
.ea-ships .ea-ic{width:20px;height:20px;flex:none}
.ea-ships__r{display:flex;gap:6px;flex-wrap:wrap}
.ea-ships>span{display:flex;flex-direction:column;gap:2px}
.ea-pdp__help{display:flex;flex-wrap:wrap;gap:clamp(16px, 13.029px + 0.7619vw, 24px)}
.ea-pdp__help a,.ea-pdp__help button{display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:12px;line-height:1.55;color:inherit;background:none;border:0;padding:0;cursor:pointer}
.ea-pdp__help [aria-pressed="true"] .ea-ic{fill:currentColor;color:var(--ink)}
.ea-pdp__help .ea-ic{width:15px;height:15px}
@media (max-width:1023px){
  .ea-pdp{flex-direction:column;padding-inline:0;gap:0}
  .ea-pdp__gallery{flex:none;width:100%;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:0;-ms-overflow-style:none;scrollbar-width:none}
  .ea-pdp__gallery::-webkit-scrollbar{display:none}
  .ea-pdp__shot{flex:0 0 100%;scroll-snap-align:center;aspect-ratio:4/3}
  .ea-pdp__dots{display:flex;justify-content:center;gap:6px;padding:12px 0}
  .ea-pdp__dots i{display:block;width:6px;height:2px;background:var(--line);transition:width .3s var(--ease),background .3s var(--ease)}
  .ea-pdp__dots i.is-on{width:20px;background:var(--ink)}
  .ea-pdp__info{position:static;padding:16px var(--page-x) 48px;gap:20px}
}

/* setting story */
.ea-story{background:var(--linen);display:flex;align-items:stretch}
.ea-story__img{flex:0 0 clamp(390px, 297.143px + 23.8095vw, 640px);aspect-ratio:640/560}
.ea-story__img img{width:100%;height:100%;object-fit:cover}
.ea-story__b{flex:1 1 0;display:flex;flex-direction:column;justify-content:center;gap:18px;padding:clamp(0px, 54.857px + -3.8095vw, 40px) clamp(16px, -13.714px + 7.619vw, 96px) clamp(0px, 65.829px + -4.5714vw, 48px)}
.ea-story__h{font-family:var(--display);font-weight:400;font-size:clamp(28px, 22.8px + 1.3333vw, 42px);line-height:1.06;letter-spacing:-.01em;text-transform:uppercase;color:var(--text)}
.ea-story__h span{color:var(--muted)}
.ea-story__row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.15);font-size:12px;line-height:1.55;color:var(--text)}
.ea-story__row dt{opacity:.65}
@media (max-width:1023px){ .ea-story{flex-direction:column} .ea-story__img{flex:none;width:100%;aspect-ratio:390/300} }

/* related */
.ea-related{padding:clamp(0px, 65.829px + -4.5714vw, 48px) var(--page-x) var(--sec-y);display:flex;flex-direction:column;gap:clamp(20px, 12.571px + 1.9048vw, 40px)}

/* ring builder */
/* The page's own furniture — title, filter group, shape tile, segmented control, result bar.
   These moved here with the step itself when the builder was rebuilt for md Steps 12/12A/12B. */
.ea-dtitle{display:flex;flex-direction:column;gap:10px;padding:clamp(26px, 19.314px + 1.7143vw, 44px) var(--page-x) clamp(18px, 15.029px + 0.7619vw, 26px)}
.ea-dtitle__c{max-width:58ch;color:var(--text)}
.ea-dgroup{display:flex;flex-direction:column;gap:10px}
.ea-dfilters__shapes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
.ea-dshape{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;min-height:74px;padding:8px 2px;border:1px solid transparent;color:var(--text);text-align:center}
.ea-dshape__g{display:block;width:30px;height:30px}
.ea-dshape .ea-caption{font-size:10px;line-height:1.25;letter-spacing:.04em}
.ea-dshape:hover{border-color:var(--line)}
.ea-dshape.is-on{border-color:var(--ink);color:var(--ink)}
.ea-seg{display:flex;border:1px solid var(--line)}
.ea-seg__c{flex:1 1 0;min-height:44px;padding:0 10px;font-weight:500;font-size:11px;line-height:1;letter-spacing:.08em;text-transform:uppercase;color:var(--text)}
.ea-seg__c+.ea-seg__c{border-left:1px solid var(--line)}
.ea-seg__c.is-on{background:var(--ink);color:var(--ivory)}
.ea-dbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--line);flex-wrap:wrap}
/* On a phone the count, the view toggle and the sort do not fit on one line: the sort ran 72px
   past the viewport and took the page sideways with it. They wrap instead, and the sort takes the
   second line on its own. */
@media (max-width:539px){
  .ea-dbar{gap:10px 12px}
  .ea-dbar .ea-sort{flex:1 0 100%;min-width:0}
  .ea-dbar .ea-sort__s{width:100%}
}
.ea-cutfor{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:clamp(18px, 9.829px + 2.0952vw, 40px);margin-top:clamp(32px, 23.086px + 2.2857vw, 56px);padding:clamp(24px, 19.543px + 1.1429vw, 36px);background:var(--sand)}
.ea-cutfor__t{display:flex;flex-direction:column;gap:6px}
@media (max-width:640px){ .ea-cutfor{flex-direction:column;align-items:flex-start} }

.ea-rb{display:grid;grid-template-columns:268px minmax(0,1fr);gap:clamp(24px, 16.571px + 1.9048vw, 44px);padding:0 var(--page-x) clamp(40px, 28.114px + 3.0476vw, 72px);align-items:start}
.ea-rb__ftoggle{display:none}
.ea-rb__filters{display:flex;flex-direction:column;gap:26px;position:sticky;top:18px}
.ea-rb__fhead{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.ea-rb__fhead .ea-label{margin-right:auto}
.ea-rb__reset{font-size:11px}
.ea-rb__fclose{display:none}
.ea-rb__fancy{display:flex;flex-wrap:wrap;gap:6px}
/* a plain display:flex outranks the UA's [hidden] rule, so say it again */
.ea-rb__fancy[hidden]{display:none}
.ea-rb__picks[hidden]{display:none}
/* the ornament is an inline mark here, not a block */
.ea-rb__picks .ea-eyebrow{display:flex;align-items:center;gap:7px}
.ea-rb__picks .ea-spark{flex:none;width:13px;height:13px;color:var(--gold)}
.ea-rb__adv{border-top:1px solid var(--line);padding-top:16px}
.ea-rb__adv summary{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;list-style:none}
.ea-rb__adv summary::-webkit-details-marker{display:none}
.ea-rb__adv summary .ea-ic{width:12px;height:12px;transition:transform .25s var(--ease)}
.ea-rb__adv[open] summary .ea-ic{transform:rotate(180deg)}
.ea-rb__adv .ea-dgroup{margin-top:20px}
.ea-rb__main{display:flex;flex-direction:column;gap:18px;min-width:0}
.ea-rb__quick{display:flex;flex-wrap:wrap;gap:8px}
.ea-rb__picks{display:flex;flex-direction:column;gap:18px}
.ea-rb__allh{margin-top:6px}
.ea-rb__status{padding:48px 0;text-align:center;color:var(--text)}

/* the dual-range slider: one rail, two thumbs, a scale underneath when the values are words */
.ea-sl{position:relative;height:38px;--lo:0%;--hi:100%}
.ea-sl input[type=range]{position:absolute;left:0;right:0;top:8px;width:100%;height:4px;margin:0;-webkit-appearance:none;appearance:none;background:transparent;pointer-events:none}
.ea-sl input[data-hi]{background:linear-gradient(90deg,var(--line) 0,var(--line) var(--lo),var(--ink) var(--lo),var(--ink) var(--hi),var(--line) var(--hi),var(--line) 100%)}
.ea-sl input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:15px;height:15px;border-radius:50%;background:var(--ivory);border:1.5px solid var(--ink);pointer-events:auto;cursor:pointer;margin-top:-6px}
.ea-sl input[type=range]::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:var(--ivory);border:1.5px solid var(--ink);pointer-events:auto;cursor:pointer}
.ea-sl__ticks{position:absolute;left:0;right:0;top:22px;display:flex;justify-content:space-between}
.ea-sl__ticks span{font-weight:500;font-size:9px;line-height:1.3;letter-spacing:.06em;color:var(--muted)}
.ea-sl__ticks span.is-in{color:var(--ink)}
.ea-sl__v{font-size:12px;line-height:1.55;color:var(--text)}
.ea-sl__n{display:flex;gap:8px;margin-top:6px}
.ea-sl__n label{position:relative;display:flex;align-items:center;flex:1 1 0;min-width:0}
.ea-sl__n i{position:absolute;right:10px;font-style:normal;font-size:11px;color:var(--muted);pointer-events:none}
.ea-num{width:100%;min-height:44px;padding:0 26px 0 10px;border:1px solid var(--line);background:transparent;font:inherit;font-size:12px;color:var(--text)}
.ea-num:focus-visible{outline:2px solid var(--ink);outline-offset:1px}

/* cards */
.ea-dgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px}
/* The picks row is a fixed FOUR across from 1024 up: auto-fill made it three in this column. */
@media (min-width:1024px){.ea-dgrid--picks:not(.ea-dlist){grid-template-columns:repeat(4,minmax(0,1fr))}}
.ea-dcard{position:relative;display:flex;flex-direction:column;gap:10px;cursor:pointer;text-align:left}
.ea-dcard:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.ea-dcard__img{position:relative;display:block;aspect-ratio:1;overflow:hidden}
.ea-dcard__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.ea-dcard:hover .ea-dcard__img img{transform:scale(1.04)}
.ea-dcard__none{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;height:100%;background:var(--sand);color:var(--text)}
.ea-dcard__none .ea-shape{width:56px;height:56px}
.ea-dcard__360{position:absolute;right:8px;bottom:8px;padding:3px 7px;background:rgba(26,23,28,.72);color:#fff;font-weight:500;font-size:9px;line-height:1.3;letter-spacing:.1em}
.ea-dcard__cert{font-weight:500;font-size:10px;line-height:1.3;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ea-dcard__spec{font-size:13px;line-height:1.5;color:var(--text)}
.ea-dcard__p{font-size:14px;line-height:1.5;color:var(--ink)}
.ea-dskel{aspect-ratio:1;background:linear-gradient(100deg,var(--sand) 30%,var(--ivory) 50%,var(--sand) 70%);background-size:220% 100%;animation:eaSweep 1.4s linear infinite}
@keyframes eaSweep{from{background-position:120% 0}to{background-position:-20% 0}}

/* RRB §9 — the same stones as a list. One line a stone on a desktop, with a header-less grid of
   columns; two lines and a thumb on a phone. */
.ea-rb__view{flex:none;margin-left:auto}
.ea-rb__view .ea-seg__c{display:inline-flex;align-items:center;gap:6px;padding:0 12px;flex:0 0 auto}
.ea-rb__view .ea-ic{width:13px;height:13px}
.ea-dgrid.ea-dlist{display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line)}
.ea-drow{display:grid;grid-template-columns:56px repeat(6,minmax(0,1fr)) minmax(0,1.4fr) auto auto;align-items:center;gap:14px;padding:10px 4px;border-bottom:1px solid var(--line);cursor:pointer;text-align:left;font-size:13px;line-height:1.5}
.ea-drow:hover{background:var(--sand)}
.ea-drow:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}
.ea-drow__img{position:relative;width:56px;height:56px;overflow:hidden;flex:none}
.ea-drow__img img{width:100%;height:100%;object-fit:cover}
.ea-drow__img .ea-shape{width:100%;height:100%;padding:8px}
.ea-drow__360{position:absolute;left:2px;bottom:2px;padding:1px 4px;background:rgba(26,23,28,.72);color:#fff;font-style:normal;font-weight:500;font-size:8px;letter-spacing:.06em}
.ea-drow__cert{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--muted)}
.ea-drow__p{text-align:right;color:var(--ink)}
.ea-drow__go{min-height:44px;display:inline-flex;align-items:center;justify-content:flex-end;font-weight:500;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
@media (max-width:767px){
  .ea-drow{grid-template-columns:56px minmax(0,1fr) auto;gap:10px}
  .ea-drow__c,.ea-drow__cert{display:none}
  .ea-drow__m{display:flex;flex-direction:column;gap:2px;grid-column:2}
  .ea-drow__go{display:none}
  .ea-drow--h{display:none}
}

/* pager */
.ea-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px;padding-top:12px}
.ea-pager a,.ea-pager span{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 8px;font-size:12px;line-height:1.55;color:var(--text)}
.ea-pager a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.ea-pager .is-on{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.ea-pager__of{margin-right:auto;color:var(--muted)}

/* the stone's own view, inside the builder */
.ea-rb__detail{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,420px);gap:clamp(22px, 12.343px + 2.4762vw, 48px)}
.ea-rb__detail[hidden]{display:none}
.ea-dv__media{display:flex;flex-direction:column;gap:12px}
.ea-dv__stage{position:relative;aspect-ratio:1;background:var(--sand);overflow:hidden}
.ea-dv__stage img,.ea-dv__stage video,.ea-dv__stage iframe{width:100%;height:100%;border:0;object-fit:cover}
.ea-dv__thumbs{display:flex;gap:10px}
.ea-dv__thumb{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:84px;height:84px;border:1px solid var(--line);background:var(--sand);font-weight:500;font-size:9px;line-height:1.3;letter-spacing:.08em;text-transform:uppercase;color:var(--text)}
.ea-dv__thumb img{width:100%;height:100%;object-fit:cover}
.ea-dv__thumb.is-on{border-color:var(--ink)}
.ea-dv__thumb .ea-ic{width:18px;height:18px}
.ea-dv__info{display:flex;flex-direction:column;gap:16px}
.ea-dv__top{display:flex;align-items:flex-start;gap:12px}
.ea-dv__top .ea-dv__x{margin-left:auto}
.ea-dv__sum{display:flex;flex-direction:column;gap:8px;padding:16px;background:var(--sand)}
.ea-dv__sum div{display:flex;justify-content:space-between;gap:12px;font-size:13px;line-height:1.55}
.ea-dv__sum .ea-dv__tot{padding-top:8px;border-top:1px solid var(--line);color:var(--ink)}
.ea-dv__specs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px 20px}
.ea-dv__specs div{display:flex;justify-content:space-between;gap:10px;padding-bottom:7px;border-bottom:1px solid var(--line);font-size:12px;line-height:1.55}
.ea-dv__specs dt{color:var(--muted)}

@media (max-width:1023px){
  .ea-rb{grid-template-columns:minmax(0,1fr)}
  .ea-rb__ftoggle{display:inline-flex;align-self:flex-start}
  .ea-rb__filters{position:fixed;inset:0;z-index:130;overflow-y:auto;padding:18px var(--page-x) 40px;background:var(--ivory);transform:translateX(-100%);transition:transform .3s var(--ease)}
  .ea-rb__filters.is-open{transform:none}
  .ea-rb__fclose{display:inline-flex}
  .ea-dgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .ea-rb__detail{grid-template-columns:minmax(0,1fr)}
  .ea-dv__specs{grid-template-columns:minmax(0,1fr)}
}

/* pdp details */
.ea-det{display:flex;flex-direction:column;gap:clamp(18px, 13.543px + 1.1429vw, 30px);padding:clamp(34px, 22.857px + 2.8571vw, 64px) var(--page-x) 0}
.ea-det__head{display:flex;flex-direction:column;gap:6px}
.ea-det__cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:clamp(22px, 9.371px + 3.2381vw, 56px);align-items:start}
.ea-det__specs{display:flex;flex-direction:column}
.ea-det__specs div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.55}
.ea-det__specs dt{color:var(--muted)}
.ea-det__specs dd{color:var(--ink);text-align:right}
.ea-det__about{display:flex;flex-direction:column;gap:14px;min-width:0}
.ea-edu,.ea-4cs{display:flex;flex-direction:column;gap:clamp(16px, 12.286px + 0.9524vw, 26px);padding:clamp(34px, 22.857px + 2.8571vw, 64px) var(--page-x) 0}
.ea-edu__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px, 8.286px + 0.9524vw, 22px)}
.ea-edu__c{display:flex;flex-direction:column;gap:8px;padding:clamp(16px, 13.029px + 0.7619vw, 24px);background:var(--sand)}
.ea-4cs{padding-bottom:clamp(34px, 22.857px + 2.8571vw, 64px)}

/* the phone's buy bar and the toast */
.ea-buybar{position:fixed;left:0;right:0;bottom:0;z-index:96;display:none;align-items:center;gap:12px;padding:10px var(--page-x);background:var(--ivory);border-top:1px solid var(--line)}
.ea-buybar__t{display:flex;flex-direction:column;min-width:0}
.ea-buybar__m{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ea-buybar .ea-btn{margin-left:auto;flex:none}
.ea-toast{position:fixed;left:50%;bottom:92px;z-index:140;display:flex;align-items:center;gap:14px;padding:12px 18px;transform:translateX(-50%);background:var(--ink);color:var(--ivory);font-size:13px;box-shadow:0 8px 28px rgba(26,23,28,.22)}
.ea-toast a{color:var(--powder);text-decoration:underline;text-underline-offset:3px;min-height:44px;display:inline-flex;align-items:center}
@media (max-width:899px){
  .ea-det__cols{grid-template-columns:minmax(0,1fr)}
  .ea-edu__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ea-t-product .ea-buybar{display:flex}
  /* md Step 26: while the sticky buy bar (69px) shows, Call now and back-to-top sit above it */
  .ea-t-product:has(.ea-buybar:not([hidden])) .ea-float--call{bottom:84px}
  .ea-t-product:has(.ea-buybar:not([hidden])) .ea-float--top{bottom:142px}
}
@media (max-width:560px){ .ea-edu__grid{grid-template-columns:minmax(0,1fr)} }

/* review */
.ea-rev{display:flex;gap:clamp(20px, 12.571px + 1.9048vw, 40px);padding:clamp(28px, 20.571px + 1.9048vw, 48px) var(--page-x) var(--sec-y);align-items:flex-start;flex-wrap:wrap}
.ea-rev__gallery{flex:1 1 clamp(358px, 251.771px + 27.2381vw, 644px);display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ea-rev__g1{grid-column:1;aspect-ratio:317/560}
.ea-rev__g2{grid-column:2;aspect-ratio:317/320;align-self:start}
.ea-rev__g3{grid-column:1 / -1;aspect-ratio:644/320}
.ea-rev__gallery img{width:100%;height:100%;object-fit:cover}
.ea-rev__b{flex:1 1 clamp(358px, 251.771px + 27.2381vw, 644px);display:flex;flex-direction:column;gap:clamp(18px, 16.514px + 0.381vw, 22px);min-width:0}
.ea-receipt{background:#fff;border:1px solid var(--line)}
.ea-receipt__row,.ea-receipt__opt{display:flex;align-items:flex-start;gap:16px;padding:18px 20px;border-bottom:1px solid var(--line)}
.ea-receipt__opt{align-items:center;padding:16px 20px}
.ea-receipt__opt--fill{background:var(--powder)}
.ea-receipt__opt:last-child,.ea-receipt__row:last-child{border-bottom:0}
.ea-receipt .ea-ic{width:22px;height:22px;flex:none;color:var(--ink)}
.ea-receipt__opt .ea-ic{width:18px;height:18px}
.ea-receipt__t{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:4px}
.ea-receipt__chg{position:relative;color:var(--ink);text-decoration:underline;text-underline-offset:3px;align-self:flex-start;min-height:28px}
.ea-receipt__thumb{display:flex;align-items:center;justify-content:center;flex:none;width:56px;height:56px;overflow:hidden;color:var(--text)}
.ea-receipt__thumb img{width:100%;height:100%;object-fit:cover}
.ea-receipt__thumb .ea-ic{width:20px;height:20px}
.ea-receipt__links{display:flex;gap:14px}
.ea-receipt__sizehead{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ea-receipt__size{width:100%;justify-content:space-between;border:1px solid var(--line)}
.ea-receipt__size .ea-sort__s{width:100%}
.ea-receipt__chg{min-width:0}
.ea-receipt__chg::after{content:"";position:absolute;inset:-14px -12px}
.ea-receipt__sizes{display:flex;flex-direction:column;gap:10px;padding:18px 20px;border-bottom:1px solid var(--line)}
.ea-receipt__chips{display:flex;flex-wrap:wrap;gap:6px}
.ea-receipt__eng{width:100%;min-height:44px;padding:8px 0;background:none;border:0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.2;color:var(--muted)}
.ea-total{display:flex;flex-direction:column;gap:10px;padding:20px;background:var(--ink);color:#fff}
.ea-total__r{display:flex;align-items:baseline;justify-content:space-between;gap:16px}
.ea-total__l{color:#fff}
.ea-total__n{font-size:clamp(21px, 18.4px + 0.6667vw, 28px);line-height:1;letter-spacing:-.01em;text-transform:uppercase}
.ea-total__f{color:var(--powder)}
.ea-rev__err{color:#8a3f2f}
.ea-rev__promises{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.ea-rev__promises li{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 4px;background:var(--linen);text-align:center}
.ea-rev__promises .ea-ic{width:18px;height:18px}
.ea-rev__promises .ea-caption{color:var(--text)}
@media (max-width:1023px){ .ea-rev__promises{grid-template-columns:1fr} }

/* cart */
.ea-cart{padding:60px var(--page-x) var(--sec-y)}
.ea-cart__head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;padding-bottom:32px}
.ea-cart__body{display:flex;gap:clamp(28px, 8.686px + 4.9524vw, 80px);align-items:flex-start;flex-wrap:wrap}
.ea-cart__lines{flex:1 1 clamp(358px, 271.457px + 22.1905vw, 591px);min-width:0}
.ea-cline{display:flex;gap:clamp(16px, 13.029px + 0.7619vw, 24px);padding:28px 0;border-bottom:1px solid var(--line)}
.ea-cline__img{flex:0 0 clamp(110px, 95.143px + 3.8095vw, 150px);aspect-ratio:150/180}
.ea-cline__b{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:10px}
.ea-cline__top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.ea-cline__t{font-family:var(--display);font-size:clamp(20px, 18.886px + 0.2857vw, 23px);line-height:1.1;letter-spacing:-.01em;text-transform:uppercase;color:var(--text)}
.ea-cline__x{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;margin:-14px -12px -14px 0}
.ea-cline__x .ea-ic{width:16px;height:16px}
.ea-cline__row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.ea-cline__ship{color:var(--ink)}
.ea-gift{display:flex;align-items:center;gap:14px;padding:18px 20px;margin-top:20px;background:var(--powder)}
.ea-gift .ea-ic{width:22px;height:22px;flex:none;color:var(--ink)}
.ea-gift__t{flex:1 1 auto;display:flex;flex-direction:column;gap:2px}
.ea-gift__note{padding-top:12px}
.ea-sum{flex:1 1 clamp(358px, 246.943px + 28.4762vw, 657px);display:flex;flex-direction:column;gap:18px;padding:clamp(24px, 21.029px + 0.7619vw, 32px);background:#fff;border:1px solid var(--line)}
.ea-sum__rows{display:flex;flex-direction:column;gap:10px}
.ea-sum__rows>div{display:flex;align-items:center;justify-content:space-between;gap:16px}
.ea-sum__free{color:var(--ink)}
.ea-sum__total{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-top:16px;border-top:1px solid var(--line)}
.ea-sum__n{font-size:clamp(21px, 18.4px + 0.6667vw, 28px);line-height:1;letter-spacing:-.01em;text-transform:uppercase}
.ea-sum__fin{padding:12px 14px;background:var(--powder);color:var(--text)}
.ea-sum__trust{display:flex;flex-direction:column;gap:10px;padding-top:16px;border-top:1px solid var(--line)}
.ea-sum__trust li{display:flex;align-items:center;gap:10px}
.ea-sum__trust .ea-ic{width:16px;height:16px}
@media (max-width:1023px){ .ea-sum{flex:1 1 100%} }

/* content pages */
.ea-pg{display:flex;flex-direction:column;gap:clamp(28px, 17.6px + 2.6667vw, 56px);padding-bottom:clamp(40px, 25.143px + 3.8095vw, 80px)}
.ea-pg__hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,46%);gap:clamp(20px, 9.6px + 2.6667vw, 48px);align-items:center;padding:clamp(24px, 13.6px + 2.6667vw, 52px) var(--page-x) 0}
.ea-pg__heroT{display:flex;flex-direction:column;gap:12px}
.ea-pg__lede{max-width:40ch;color:var(--text)}
.ea-pg__heroI{aspect-ratio:760/620;overflow:hidden}
.ea-pg__heroI img{width:100%;height:100%;object-fit:cover}
.ea-pg__main{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(22px, 9.371px + 3.2381vw, 56px);padding:0 var(--page-x)}
/* a policy page gets the "on this page" rail beside its text; the others use the full measure */
.ea-pg__main--rail{grid-template-columns:200px minmax(0,1fr)}
.ea-pg__col{display:flex;flex-direction:column;gap:clamp(22px, 15.314px + 1.7143vw, 40px);min-width:0}
/* prose caps at a readable measure; the grids and strips below it do not */
.ea-pg__intro,.ea-pg__sec p{max-width:72ch}
.ea-pg__intro{font-size:16px;line-height:1.65}
.ea-pg__rail{position:sticky;top:18px;align-self:start;display:flex;flex-direction:column;gap:10px}
.ea-pg__rail li+li{margin-top:8px}
.ea-pg__rail button{position:relative;min-width:44px;min-height:44px;text-align:left;font-size:12px;line-height:1.5;color:var(--text)}
.ea-pg__rail button:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.ea-pg__facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px 24px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.ea-pg__facts li{display:flex;align-items:flex-start;gap:10px}
.ea-pg__facts .ea-ic{width:18px;height:18px;flex:none;color:var(--ink)}
.ea-pg__facts b{display:block;font-weight:500;font-size:13px;line-height:1.5}
.ea-pg__facts em{display:block;font-style:normal;font-size:12px;line-height:1.5;color:var(--muted)}
.ea-pg__sec{display:flex;flex-direction:column;gap:8px}
.ea-pg__cards,.ea-pg__steps,.ea-pg__plans{display:flex;flex-direction:column;gap:18px}
.ea-pg__cardgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.ea-pg__card{display:flex;flex-direction:column;gap:8px;padding:20px;background:var(--sand)}
.ea-pg__card .ea-ic{width:20px;height:20px;color:var(--ink)}
.ea-pg__steplist{display:flex;flex-direction:column;gap:16px}
.ea-pg__steplist li{display:flex;gap:14px}
.ea-pg__n{flex:none;display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:1px solid var(--line);font-weight:500;font-size:12px}
.ea-pg__plangrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.ea-pg__plan{display:flex;flex-direction:column;gap:6px;padding:20px;border:1px solid var(--line)}
.ea-pg__sizes{display:flex;flex-direction:column;gap:14px}
.ea-pg__sizewrap{max-height:460px;overflow:auto;border:1px solid var(--line)}
.ea-pg__sizetable{width:100%;border-collapse:collapse;font-size:13px}
.ea-pg__sizetable th,.ea-pg__sizetable td{padding:9px 14px;text-align:left;border-bottom:1px solid var(--line)}
.ea-pg__sizetable thead th{position:sticky;top:0;background:var(--ivory);font-weight:500;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.ea-pg__sizetable tbody th{font-weight:500;color:var(--ink)}
.ea-pg__cta{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:clamp(20px, 15.543px + 1.1429vw, 32px);background:var(--sand)}
@media (max-width:899px){
  .ea-pg__hero{grid-template-columns:minmax(0,1fr)}
  .ea-pg__main--rail{grid-template-columns:minmax(0,1fr)}
  .ea-pg__rail{position:static}
  .ea-pg__facts,.ea-pg__cardgrid{grid-template-columns:minmax(0,1fr)}
  .ea-pg__plangrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* page + rte */
.ea-page{padding:clamp(48px, 42.057px + 1.5238vw, 64px) var(--page-x) var(--sec-y);display:flex;flex-direction:column;gap:clamp(24px, 18.057px + 1.5238vw, 40px)}
.ea-page__h{display:flex;flex-direction:column;gap:12px;max-width:900px}
.ea-page__lead{max-width:664px}
.ea-rte{max-width:720px;display:flex;flex-direction:column;gap:18px;font-size:14px;line-height:1.6;color:var(--muted)}
.ea-rte h2{font-family:var(--display);font-weight:400;font-size:clamp(21px, 18.4px + 0.6667vw, 28px);line-height:1.08;letter-spacing:-.01em;text-transform:uppercase;color:var(--text);margin-top:14px}
.ea-rte h3{font-family:var(--display);font-weight:400;font-size:clamp(18px, 16.886px + 0.2857vw, 21px);line-height:1.1;color:var(--text);margin-top:10px}
.ea-rte a{color:var(--text);text-decoration:underline;text-underline-offset:3px}
/* a link that is a list item on its own is a control, not running text — give it a 44px target */
.ea-rte li>a:only-child{position:relative;display:inline-block}
.ea-rte li>a:only-child::after{content:"";position:absolute;inset:-13px -6px}
.ea-rte ul,.ea-rte ol{display:flex;flex-direction:column;gap:8px;padding-left:18px;list-style:disc}
.ea-rte ol{list-style:decimal}
.ea-rte img{width:100%;height:auto}

/* search */
.ea-search__chips{display:flex;flex-direction:column;gap:12px;align-items:center;padding:0 var(--page-x) 48px}
.ea-search__chips .ea-opt__chips{justify-content:center}
.ea-search{padding:clamp(48px, 42.057px + 1.5238vw, 64px) var(--page-x) var(--sec-y);display:flex;flex-direction:column;gap:clamp(20px, 15.543px + 1.1429vw, 32px)}
.ea-search__f{display:flex;gap:10px;flex-wrap:wrap;align-items:center;max-width:720px}
.ea-search__i{flex:1 1 260px;min-height:48px;border-radius:var(--radius-pill);padding-inline:22px}
.ea-sres{display:flex;flex-direction:column;gap:6px;padding:20px;border:1px solid var(--line);background:#fff}

/* contact reach */
.ea-reach a{position:relative;display:inline-block}
.ea-reach a::before{content:"";position:absolute;inset:-14px -10px}

/* 404 */
.ea-404{min-height:60vh;display:flex;flex-direction:column;justify-content:center;gap:16px;padding:var(--sec-y) var(--page-x)}
.ea-404__c{max-width:520px}
.ea-404__cta{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:8px}
.ea-related__more{margin-top:20px}
/* RRB §5 / handoff §4 — the chosen stone as a round inset on the setting's photo (bag, bag page, step 3) */
.ea-cline__img,.ea-bag__thumb,.ea-rev__g1{position:relative}
.ea-stone{position:absolute;right:6px;bottom:6px;width:40%;max-width:60px;aspect-ratio:1;border-radius:50%;overflow:hidden;background:#fff;border:2px solid #fff;box-shadow:0 2px 8px rgba(26,23,28,.18)}
.ea-stone img{width:100%;height:100%;object-fit:cover}
.ea-stone--lg{right:12px;bottom:12px;width:24%;max-width:150px;min-width:72px}
/* step 3 options, ships line, Start over */
.ea-receipt__opts{display:flex;flex-direction:column;gap:14px;padding:16px 20px;border-bottom:1px solid var(--line)}
.ea-receipt__optg{display:flex;flex-direction:column;gap:8px}
.ea-rev__ships{margin:4px 0 0}
.ea-rev__reset{align-self:flex-start;min-height:44px}
.ea-dv__ask{margin-top:4px}
/* RTP §3 — header search panel */
.ea-hsrch{position:absolute;left:0;right:0;top:100%;z-index:70;padding:20px var(--page-x) 24px;background:var(--ivory);border-bottom:1px solid var(--line);box-shadow:0 10px 30px rgba(26,23,28,.08);color:var(--text)}
.ea-hsrch__f{max-width:none}
.ea-hsrch__x{flex:none}
.ea-hsrch__hint{margin-top:10px}
.ea-hsrch__res{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:10px}
.ea-hsrch__res a{display:flex;align-items:center;gap:14px;min-height:44px;color:inherit}
.ea-hsrch__img{flex:none;width:64px;aspect-ratio:4/3;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.ea-hsrch__img img{width:100%;height:100%;object-fit:contain}
.ea-hsrch__img .ea-ph__mark{font-size:9px}
.ea-hsrch__t{display:flex;flex-direction:column;min-width:0}
.ea-hsrch__all{margin-top:14px}
.ea-hsrch__none{margin-top:14px}
/* RTP §6.2 — share this bag */
.ea-sum__share{min-height:44px;margin-top:6px}
.ea-sum__sharebox{display:flex;flex-wrap:wrap;gap:8px 16px;padding:10px 0}
.ea-sum__sharebox a,.ea-sum__sharebox button{display:inline-flex;align-items:center;min-height:44px;color:inherit;text-decoration:underline;text-underline-offset:3px;background:none;border:0;padding:0;cursor:pointer}
.ea-404__cols{display:flex;flex-wrap:wrap;gap:12px 28px;margin:8px 0 0;padding:0;list-style:none}

/* collection index */
.ea-cols{padding:clamp(48px, 42.057px + 1.5238vw, 64px) var(--page-x) var(--sec-y);display:flex;flex-direction:column;gap:clamp(24px, 18.057px + 1.5238vw, 40px)}
.ea-cols__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--grid-gap)}
.ea-colcard{display:flex;flex-direction:column;gap:12px}
.ea-colcard__img{aspect-ratio:1/1;overflow:hidden}
.ea-colcard__img img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.ea-colcard:hover .ea-colcard__img img{transform:scale(1.04)}
.ea-colcard__t{display:flex;align-items:center;justify-content:space-between;gap:10px}
.ea-colcard__t .ea-ic{width:16px;height:16px;transition:transform .3s var(--ease)}
.ea-colcard:hover .ea-colcard__t .ea-ic{transform:translateX(4px)}
@media (max-width:1023px){ .ea-cols__grid{grid-template-columns:repeat(2,1fr)} }

/* blog */
.ea-blog{padding:clamp(48px, 42.057px + 1.5238vw, 64px) var(--page-x) var(--sec-y);display:flex;flex-direction:column;gap:clamp(24px, 18.057px + 1.5238vw, 40px)}
.ea-article{padding:clamp(48px, 42.057px + 1.5238vw, 64px) var(--page-x) var(--sec-y);display:flex;flex-direction:column;gap:clamp(20px, 15.543px + 1.1429vw, 32px);align-items:center}
.ea-article__h{display:flex;flex-direction:column;gap:12px;max-width:760px;width:100%}
.ea-article__img{width:100%;max-width:1040px;aspect-ratio:16/9}
.ea-article__img img{width:100%;height:100%;object-fit:cover}
.ea-article__b{width:100%;max-width:720px}
.ea-article__back{align-self:flex-start;max-width:720px;width:100%}

/* account */
.ea-acct{padding:clamp(48px, 42.057px + 1.5238vw, 64px) var(--page-x) var(--sec-y);display:flex;flex-direction:column;gap:clamp(20px, 15.543px + 1.1429vw, 32px);align-items:flex-start}
.ea-acct__card{width:100%;max-width:520px;display:flex;flex-direction:column;gap:14px;padding:clamp(24px, 21.029px + 0.7619vw, 32px);background:#fff;border:1px solid var(--line)}
.ea-acct__card form{display:flex;flex-direction:column;gap:14px}
.ea-acct__grid{display:grid;grid-template-columns:repeat(2,minmax(0,520px));gap:clamp(16px, 13.029px + 0.7619vw, 24px);width:100%}
.ea-acct__err{display:flex;flex-direction:column;gap:6px;padding:12px 14px;background:#f6e9e5;color:#8a3f2f;font-size:12px;line-height:1.55}
.ea-acct__ok{padding:12px 14px;background:var(--powder);font-size:12px;line-height:1.55;color:var(--text)}
.ea-acct__orders li a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
@media (max-width:1023px){ .ea-acct__grid{grid-template-columns:1fr} }

/* password */
.ea-pw{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:var(--linen);padding:var(--page-x)}
.ea-pw__wm{--wm-size:clamp(40px, 9vw, 120px);--wm-a:#fff}
/* playbook J — at 320px the footer / hero wordmark ran 3px wide and the shape row's four 82px discs did not fit */
@media (max-width:359px){
  .ea-foot__wm,.ea-hero__wm{--wm-size:46px;--wm-gap:9px}
  .ea-shapetile__disc{width:62px;height:62px}
  .ea-shapetile__disc svg{width:32px;height:32px}
}

/* second check: PDP Save tag in the card tag's ink (.ea-pdp__badge's ivory came later and hid it);
   on the phone's swipe gallery the 3D view takes the photo's full width */
.ea-pdp__badge.ea-card__tag--save{background:var(--ink);color:var(--ivory)}
@media (max-width:1023px){.ea-pdp__d3{flex:0 0 100%;width:100%}}

/* second check: builder list view — desktop header row, phone summary line; step 3 "I don't know" tick box */
.ea-drow__m{display:none}
.ea-drow--h{cursor:default;padding-block:8px;font-weight:500;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ea-drow--h:hover{background:none}
.ea-rev__dk{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer}
.ea-rev__dk input{width:18px;height:18px;accent-color:var(--ink)}
.ea-chapter__pick{display:flex;align-items:center;gap:8px;margin-top:6px;min-width:0}
.ea-chapter__pick[hidden]{display:none}
.ea-chapter__pick img{width:36px;height:36px;object-fit:cover;background:#fff;border:1px solid var(--line);flex:none}
.ea-chapter__pick>span{display:flex;flex-direction:column;min-width:0}
.ea-chapter__pick .ea-caption{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:767px){.ea-chapter__pick img{display:none}}

/* header menus (user, 2026-10-24: "so much empty space in every submenu"): every panel's content is one
   1320px-wide band, centred; the columns spread evenly across it with the photo at its end, so no empty field
   opens between the last column and the photo on a wide screen. A short menu (Necklace, Bracelets) lets its
   photo widen into a banner that fills the rest of the band. */
@media (min-width:1024px){
  .ea-mega__panel{justify-content:space-between;padding-inline:max(var(--page-x), calc((100% - 1320px) / 2))}
  .ea-mega__feats{margin-left:0}
  .ea-mega:not(.ea-mega--many) .ea-mega__panel{justify-content:flex-start;gap:clamp(40px, 4vw, 72px)}
  .ea-mega:not(.ea-mega--many) .ea-mega__col{min-width:150px}
  .ea-mega:not(.ea-mega--many) .ea-mega__feats{flex:1 1 auto;min-width:360px}
  .ea-mega:not(.ea-mega--many) .ea-feat{width:100%;height:300px}
  .ea-mega:not(.ea-mega--many) .ea-feat__img img{object-position:50% 42%}
}

/* colour icons (user, 2026-10-24): metal dot, tinted diamond, gemstone — header lists, PDP chips, builder */
.ea-gi{flex:none;display:inline-block;width:15px;height:15px;vertical-align:-3px}
.ea-gi--m{border-radius:50%;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.95) 0,rgba(255,255,255,0) 46%),linear-gradient(140deg,var(--gi) 0%,color-mix(in srgb,var(--gi) 72%,#5a5048) 100%);box-shadow:inset 0 0 0 .5px rgba(46,41,37,.35)}
.ea-gl{display:inline-flex;align-items:center;gap:9px}
.ea-mega__list .ea-gl .ea-gi{width:14px;height:14px}
.ea-chip--gi{display:inline-flex;align-items:center;gap:7px}
.ea-rev__metal{display:flex;align-items:center;gap:7px}
/* the PDP and card metal dots get the same sheen */
.ea-swatch__d i,.ea-card__metal i{background-image:radial-gradient(circle at 32% 28%,rgba(255,255,255,.85) 0,rgba(255,255,255,0) 48%)}

/* the desktop header has no Menu button (user, 2026-10-24): every category is in the bar; phones keep the burger */
@media (min-width:1024px){ .ea-head__burger,.ea-head--overlay .ea-head__burger{display:none} }
.ea-dcard__spec.ea-gl{align-items:flex-start;gap:7px}
.ea-dcard__spec.ea-gl .ea-gi{margin-top:2px}
/* the menu links' own display rule outranked .ea-gl, so the icon touched its word */
.ea-mega__list a.ea-gl,.ea-menu__sub a.ea-gl{display:inline-flex;align-items:center;gap:9px}
/* 1024–1179px: the large panels drop their photo — Engagement's columns alone fill the row (its photo ran 145px off at 1024) */
@media (min-width:1024px) and (max-width:1179px){ .ea-mega--many .ea-mega__feats{display:none} }

/* real diamond photos for the shapes (user, 2026-10-24) */
img.ea-shape--img{display:block;object-fit:contain;stroke:none}
.ea-mega__glyph,.ea-menu__glyph{width:22px;height:22px}
.ea-fval .ea-shape{width:22px;height:22px}
.ea-shapeopt__g{width:34px;height:34px}
.ea-dshape__g{width:40px;height:40px}
.ea-shapetile__disc img{width:clamp(52px, 40px + 3vw, 84px);height:clamp(52px, 40px + 3vw, 84px)}
@media (max-width:359px){ .ea-shapetile__disc img{width:42px;height:42px} }
.ea-dcard__none .ea-shape--img{width:96px;height:96px}
.ea-drow__img .ea-shape--img{padding:4px}

/* image shimmer (user, 2026-10-24): an image still loading shows a soft sand → ivory sweep (alt text hidden);
   the class leaves on load / error (layout/theme.liquid). Reduced motion: the still tint. */
img.ea-img-wait{background:linear-gradient(100deg,var(--imagebg) 30%,#f6f2ea 50%,var(--imagebg) 70%) 0 0/250% 100% no-repeat;animation:eaShimmer 1.25s linear infinite;color:transparent}
@keyframes eaShimmer{from{background-position:120% 0}to{background-position:-120% 0}}
@media (prefers-reduced-motion:reduce){img.ea-img-wait{animation:none}}

/* home About (user, 2026-10-24): second photo + turning seal on wide screens; scroll motion site-wide */
.ea-about__side{display:none}
@media (min-width:1600px){
  .ea-about__body{align-items:stretch}
  .ea-about__col{align-self:flex-end;flex:0 0 clamp(358px, 316.4px + 10.6667vw, 470px)}
  .ea-about__side{position:relative;display:block;flex:1 1 0;min-width:240px;max-width:520px;margin-left:clamp(32px,3vw,64px);margin-top:calc(-1 * clamp(160px, 14vw, 300px));align-self:flex-start}
  .ea-about__img2{aspect-ratio:3/4;width:100%;overflow:hidden}
  .ea-about__img2 img,.ea-about__img img{will-change:transform}
  .ea-seal{position:absolute;left:calc(-1 * clamp(70px,5vw,96px));bottom:-56px;width:clamp(128px,9vw,168px);aspect-ratio:1;z-index:2}
}
.ea-seal svg{display:block;width:100%;height:100%}
.ea-seal__bg{fill:var(--ivory);stroke:var(--line)}
.ea-seal__ring{transform-origin:80px 80px;animation:eaSealTurn 22s linear infinite}
.ea-seal text{font-family:inherit;font-weight:500;font-size:11.2px;letter-spacing:.24em;text-transform:uppercase;fill:var(--ink)}
.ea-seal__star{fill:var(--gold,#c9a96e);transform-origin:80px 80px;animation:eaSealPulse 3.2s ease-in-out infinite}
@keyframes eaSealTurn{to{transform:rotate(360deg)}}
@keyframes eaSealPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
/* scroll reveal — set by ea.js only on blocks below the fold, so nothing on screen at load ever blinks */
.ea-rv{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.ea-rv.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.ea-seal__ring,.ea-seal__star{animation:none}.ea-rv{opacity:1;transform:none;transition:none}}

/* home "Our collections" with six styles (user, 2026-10-24): three across on desktop, two on phones */
.ea-tiles--six .ea-tiles__grid{grid-template-columns:repeat(3,1fr)}
.ea-tiles--six .ea-tile{aspect-ratio:1/1}
@media (max-width:1023px){ .ea-tiles--six .ea-tiles__grid{grid-template-columns:1fr 1fr} .ea-tiles--six .ea-tile{aspect-ratio:3/4} }
@media (max-width:560px){ .ea-tiles--six .ea-tile__row{align-items:flex-start} .ea-tiles--six .ea-tile__row .ea-h4{font-size:15px;line-height:1.15} .ea-tiles--six .ea-tile__rule{display:none} }

/* home "Find your shape" (user, 2026-10-24: one row + animation): ten across on desktop, a swipe row below 1024px;
   a glint sweeps each diamond in turn (a wave along the row), each stone floats a little out of step, hover turns
   and lifts it; the row arrives one diamond after another (scroll reveal). Reduced motion: all still. */
.ea-shapes__row li:nth-child(1){--i:0}.ea-shapes__row li:nth-child(2){--i:1}.ea-shapes__row li:nth-child(3){--i:2}.ea-shapes__row li:nth-child(4){--i:3}.ea-shapes__row li:nth-child(5){--i:4}.ea-shapes__row li:nth-child(6){--i:5}.ea-shapes__row li:nth-child(7){--i:6}.ea-shapes__row li:nth-child(8){--i:7}.ea-shapes__row li:nth-child(9){--i:8}.ea-shapes__row li:nth-child(10){--i:9}.ea-shapes__row li:nth-child(11){--i:10}
@media (min-width:1024px){ .ea-shapes__row{grid-template-columns:repeat(10,minmax(0,1fr))}
  .ea-shapetile__disc{width:min(clamp(82px, 63.429px + 4.7619vw, 132px), 8.2vw);height:min(clamp(82px, 63.429px + 4.7619vw, 132px), 8.2vw)} }
@media (max-width:1023px){ .ea-shapes__row{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:10px;margin-inline:calc(-1 * var(--page-x));padding-inline:var(--page-x);scroll-padding-inline:var(--page-x);scrollbar-width:none}
  .ea-shapes__row::-webkit-scrollbar{display:none} .ea-shapes__row li{flex:0 0 auto;scroll-snap-align:start} }
.ea-shapetile__disc{position:relative;overflow:hidden}
.ea-shapetile__disc img{position:relative;z-index:1;transition:transform .5s var(--ease);animation:eaShapeFloat 4.6s ease-in-out infinite;animation-delay:calc(var(--i,0) * -.45s)}
.ea-shapetile__disc::after{content:"";position:absolute;inset:-20%;z-index:2;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,0) 38%,rgba(255,255,255,.85) 50%,rgba(255,255,255,0) 62%);transform:translateX(-120%);animation:eaShapeGlint 6s ease-in-out infinite;animation-delay:calc(var(--i,0) * .28s)}
.ea-shapetile:hover .ea-shapetile__disc img{transform:rotate(-12deg) scale(1.14)}
.ea-shapetile:hover .ea-shapetile__disc{background:#e4ddd0}
@keyframes eaShapeFloat{0%,100%{translate:0 0}50%{translate:0 -4px}}
@keyframes eaShapeGlint{0%,62%{transform:translateX(-120%)}82%,100%{transform:translateX(120%)}}
@media (prefers-reduced-motion:reduce){ .ea-shapetile__disc img{animation:none} .ea-shapetile__disc::after{animation:none;display:none} }

/* back-to-top on the LEFT, just above Call now (user, 2026-10-24) — clear of the chat bubble on the right */
.ea-float--top{right:auto;left:20px;bottom:78px}
@media (max-width:560px){ .ea-float--top{right:auto;left:14px;bottom:72px} }
.ea-t-product:has(.ea-buybar:not([hidden])) .ea-float--top{bottom:140px}

/* home diamond colour viewer (user, 2026-10-24) */
.ea-colour{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,1fr);gap:clamp(24px,4vw,72px);align-items:center;
  padding:var(--sec-y) var(--page-x)}
.ea-colour__text{display:flex;flex-direction:column;gap:14px}
.ea-colour__lead{max-width:420px}
.ea-colour__note{min-height:3em;max-width:420px;font-family:var(--display);font-size:clamp(17px,1.4vw,22px);line-height:1.3;color:var(--strong)}
.ea-colour__cta{display:flex;flex-wrap:wrap;align-items:center;gap:18px 24px;margin-top:6px}
.ea-colour__stage{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:1;max-width:520px;width:100%;justify-self:center}
.ea-colour__halo{position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle,var(--blush) 0%,rgba(239,235,227,0) 70%)}
.ea-colour__gem{position:relative;width:74%;height:auto;transition:filter .7s var(--ease),opacity .18s,transform .5s var(--ease);
  animation:eaGemTurn 9s ease-in-out infinite;filter:none}
.ea-colour__gem.is-swap{opacity:0;transform:scale(.92)}
.ea-colour__gem.is-pop{animation:eaGemPop .6s var(--ease),eaGemTurn 9s ease-in-out .6s infinite}
@keyframes eaGemTurn{0%,100%{rotate:0deg;translate:0 0}50%{rotate:4deg;translate:0 -6px}}
@keyframes eaGemPop{0%{scale:1}40%{scale:1.06}100%{scale:1}}
.ea-colour__tw{position:absolute;width:22px;height:22px;fill:#fff;filter:drop-shadow(0 0 6px rgba(255,255,255,.9));opacity:0;animation:eaTwinkle 3.4s ease-in-out infinite}
.ea-colour__tw--1{top:20%;left:24%}
.ea-colour__tw--2{top:30%;right:20%;width:15px;height:15px;animation-delay:1.1s}
.ea-colour__tw--3{bottom:24%;left:36%;width:12px;height:12px;animation-delay:2.2s}
@keyframes eaTwinkle{0%,100%{opacity:0;scale:.4;rotate:0deg}45%{opacity:1;scale:1;rotate:45deg}60%{opacity:.2}}
.ea-colour__opts{display:flex;flex-direction:column;gap:22px}
.ea-colour__group{display:flex;flex-direction:column;gap:10px}
.ea-colour__chips{display:flex;flex-wrap:wrap;gap:8px}
.ea-colour__chip{min-width:44px;justify-content:center}
.ea-colour__chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--ivory)}
.ea-colour__shapes{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;max-width:360px}
.ea-colour__shape{aspect-ratio:1;border:1px solid var(--line);border-radius:50%;background:var(--ivory);padding:7px;display:flex;align-items:center;justify-content:center;
  transition:border-color .25s,background .25s}
.ea-colour__shape img{width:100%;height:100%;object-fit:contain}
.ea-colour__shape:hover{border-color:var(--muted)}
.ea-colour__shape[aria-pressed="true"]{border-color:var(--ink);background:var(--blush)}
@media (max-width:1023px){
  .ea-colour{grid-template-columns:1fr;justify-items:stretch}
  .ea-colour__stage{max-width:340px}
  .ea-colour__shapes{max-width:none}
}
@media (prefers-reduced-motion:reduce){ .ea-colour__gem,.ea-colour__gem.is-pop{animation:none} .ea-colour__tw{animation:none;opacity:0} }
.ea-colour__h{font-size:clamp(30px,2.9vw,52px);line-height:1.02;text-wrap:balance}
/* colour viewer: grid areas — desktop: text + note/button | diamond | options; phones: heading, diamond, options, note/button */
.ea-colour{grid-template-areas:"text stage opts" "out stage opts";grid-template-rows:auto auto}
.ea-colour__text{grid-area:text;align-self:end}.ea-colour__out{grid-area:out;align-self:start;display:flex;flex-direction:column;gap:14px}
.ea-colour__stage{grid-area:stage}.ea-colour__opts{grid-area:opts}
@media (max-width:1023px){ .ea-colour{grid-template-areas:"text" "stage" "opts" "out";row-gap:22px} .ea-colour__stage{max-width:260px} }

/* Design your ring (user, 2026-10-24): steps are buttons that change the ring on the stage; metal dots; autoplay */
.ea-design__row{display:grid;grid-template-columns:minmax(0,380px) minmax(240px,1fr);gap:clamp(24px,3vw,56px);align-items:center}
.ea-design__txt{display:flex;flex-direction:column;gap:clamp(22px, 19.771px + 0.5714vw, 28px)}
.ea-design__stage{display:flex;flex-direction:column;align-items:center;gap:14px}
.ea-design__pics{position:relative;width:100%;max-width:440px;aspect-ratio:1}
.ea-design__pics::before{content:"";position:absolute;inset:10%;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.28) 0%,rgba(255,255,255,0) 70%)}
.ea-design__pic{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transform:translateY(10px) scale(.97);
  transition:opacity .6s var(--ease),transform .7s var(--ease);background:none !important}
.ea-design__pic.is-on{opacity:1;transform:none}
.ea-design__pic--stone{inset:22%;width:56%;height:56%}
.ea-design__pic--stone.is-on{animation:eaStoneFloat 4s ease-in-out infinite}
@keyframes eaStoneFloat{0%,100%{translate:0 0;rotate:0deg}50%{translate:0 -8px;rotate:6deg}}
.ea-design__metals{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}
.ea-design__metal{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border:1px solid rgba(255,255,255,.55);border-radius:var(--radius-pill);
  color:#fff;font-size:12px;letter-spacing:.04em;transition:background .25s,border-color .25s}
.ea-design__metal:hover{border-color:#fff}
.ea-design__metal[aria-pressed="true"]{background:#fff;color:var(--ink);border-color:#fff}
.ea-design__metals.is-off{opacity:.45;pointer-events:none}
.ea-step{opacity:1;padding:0}
.ea-step__btn{position:relative;display:flex;align-items:center;gap:clamp(18px, 12.8px + 1.3333vw, 32px);width:100%;padding:clamp(16px, 12.286px + 0.9524vw, 26px) 0;
  text-align:left;color:inherit;opacity:.72;transition:opacity .3s var(--ease)}
.ea-step__btn:hover{opacity:.92}
.ea-step.is-on .ea-step__btn{opacity:1}
.ea-step.is-on .ea-step__n{color:var(--gold)}
.ea-step__bar{position:absolute;left:0;bottom:-1px;height:2px;width:0;background:var(--gold)}
.ea-design.is-auto .ea-step.is-on .ea-step__bar{animation:eaStepBar var(--ea-dstep-ms,4200ms) linear forwards}
@keyframes eaStepBar{to{width:100%}}
@media (max-width:1279px){ .ea-design__row{grid-template-columns:1fr} .ea-design__pics{max-width:340px} }
@media (max-width:1023px){ .ea-step__d{display:block} }
@media (prefers-reduced-motion:reduce){ .ea-design__pic,.ea-design__pic--stone.is-on{transition:none;animation:none} .ea-design.is-auto .ea-step.is-on .ea-step__bar{animation:none} }
/* Design your ring on phones / tablets: title, the ring + metals, the three steps right under it, then the text and buttons */
@media (max-width:1023px){
  .ea-design__l,.ea-design__row{display:contents}
  .ea-design__title{order:1}
  .ea-design__stage{order:2}
  .ea-design__steps{order:3}
  .ea-design__txt{order:4}
  .ea-design__pics{max-width:300px}
}
/* Design your ring step 02: the ten shapes in the options row (user, 2026-10-24) */
.ea-design__shapes{display:flex;flex-wrap:wrap;justify-content:center;gap:5px;max-width:420px}
.ea-design__shapes[hidden],.ea-design__metals[hidden],.ea-design__shown[hidden]{display:none}
.ea-design__shape{width:36px;height:36px;padding:4px;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(255,255,255,.12);transition:background .25s,border-color .25s}
.ea-design__shape img{width:100%;height:100%;object-fit:contain;background:none !important}
.ea-design__shape:hover{border-color:#fff}
.ea-design__shape[aria-pressed="true"]{background:#fff;border-color:#fff}
.ea-design__shown{font-size:12px;letter-spacing:.04em;color:rgba(255,255,255,.85)}
.ea-colour__gem{background:none !important}   /* no shimmer box behind the transparent stone while it swaps */
/* Contact page (user, 2026-10-24 "this is empty space"): form left, photo + ways to reach us right */
.ea-contact__l{display:flex;flex-direction:column;gap:clamp(24px, 18.057px + 1.5238vw, 40px);min-width:0}
.ea-contact__r{display:flex;flex-direction:column;gap:16px;min-width:0}
.ea-contact__fig{position:relative;margin:0;aspect-ratio:16/10;overflow:hidden;background:var(--blush)}
.ea-contact__fig img{width:100%;height:100%;object-fit:cover;display:block}
.ea-contact__cap{position:absolute;left:16px;right:16px;bottom:16px;display:flex;flex-direction:column;gap:6px;max-width:420px;padding:18px 20px;background:rgba(250,248,242,.94);color:var(--ink)}
.ea-contact__ways{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
.ea-contact__q{font-family:var(--display);font-size:20px;line-height:1.3;color:var(--ink);text-wrap:balance}
.ea-contact__way{display:flex;align-items:center;gap:16px;padding:16px 20px;background:#fff;border:1px solid var(--line);color:var(--text);text-decoration:none;transition:border-color .25s var(--ease)}
.ea-contact__way:hover,.ea-contact__way:focus-visible{border-color:var(--ink)}
.ea-contact__way svg{flex:none;width:20px;height:20px;margin-top:2px;color:var(--ink)}
.ea-contact__way>span{display:flex;flex-direction:column;gap:4px;min-width:0}
.ea-contact__way::after{content:"\2192";margin-left:auto;color:var(--muted);transition:transform .25s var(--ease)}
.ea-contact__way:hover::after{transform:translateX(4px)}
.ea-contact__v{font-size:14px;color:var(--ink);overflow-wrap:anywhere}
@media (min-width:1000px){
  .ea-contact{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:clamp(40px,5vw,96px);align-items:start}
  .ea-contact__r{padding-top:clamp(24px,3vw,56px)}
}
@media (max-width:640px){ .ea-contact__cap{position:static;max-width:none} .ea-contact__fig{aspect-ratio:auto} .ea-contact__fig img{aspect-ratio:4/3;height:auto} }

/* ---- collection description: intro under the H1, buying guide + FAQ after the products (collection-description-rule.md,
   Nainesh 2026-10-22; snippets/ea-col-desc.liquid, section ea-col-desc). Server HTML; page 1 only. ---- */
.ea-cd-intro{max-width:60ch}
.ea-cd-intro p{margin:0 0 8px}
.ea-cd-intro p:last-child{margin-bottom:0}
.ea-cd-intro a,.ea-cd-tx a,.ea-cd-a a{color:var(--text);text-decoration:underline;text-underline-offset:3px}
.ea-cd-more{border-top:1px solid var(--line);padding:var(--sec-y) var(--page-x);display:flex;flex-direction:column;gap:var(--sec-y)}
.ea-cd-row{display:grid;grid-template-columns:clamp(260px, 180px + 12vw, 380px) minmax(0,1fr);column-gap:var(--gap-xl);align-items:start}
.ea-cd-toc{position:sticky;top:calc(var(--ea-header-h, 96px) + 24px);display:flex;flex-direction:column;gap:10px}
.ea-cd-toc .ea-eyebrow{margin:0}
.ea-cd-toc .ea-h3{margin:0}
.ea-cd-toc ol{margin:8px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:6px;color:var(--muted)}
.ea-cd-toc ol a{color:var(--text);text-decoration:none;border-bottom:1px solid transparent}
.ea-cd-toc ol a:hover,.ea-cd-toc ol a:focus-visible{border-bottom-color:currentColor}
.ea-cd-s{padding:24px 0;border-top:1px solid var(--line-2);scroll-margin-top:calc(var(--ea-header-h, 96px) + 24px)}
.ea-cd-s:first-child{border-top:0;padding-top:0}
.ea-cd-sh{margin:0 0 10px}
.ea-cd-tx{color:var(--ink);max-width:66ch}
.ea-cd-tx p{margin:0 0 10px}
.ea-cd-tx ul,.ea-cd-tx ol{margin:0 0 10px;padding-left:20px}
.ea-cd-tx li{margin:4px 0}
.ea-cd-tx ul{list-style:disc}
.ea-cd-tx ol,.ea-cd-toc ol{list-style:decimal}
.ea-cd-a ul{list-style:disc;padding-left:20px}
.ea-pc__bl{list-style:disc}
.ea-cd-tx>:last-child{margin-bottom:0}
.ea-cd-q{border-bottom:1px solid var(--line)}
.ea-cd-q:first-child{border-top:1px solid var(--line)}
.ea-cd-q summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;font-size:15px;line-height:1.45;color:var(--text)}
.ea-cd-q summary::-webkit-details-marker{display:none}
.ea-cd-q summary:focus-visible{outline:1px solid var(--text);outline-offset:4px}
.ea-cd-q summary .ea-ic{width:16px;height:16px;flex:0 0 16px;transition:transform .3s var(--ease)}
.ea-cd-q[open] summary .ea-ic{transform:rotate(45deg)}
.ea-cd-a{padding:0 0 20px;color:var(--muted);max-width:62ch}
.ea-cd-a p{margin:0 0 8px}
.ea-cd-a>:last-child{margin-bottom:0}
@media (max-width:1023px){
  .ea-cd-row{grid-template-columns:minmax(0,1fr);row-gap:20px}
  .ea-cd-toc{position:static}
}
@media (prefers-reduced-motion:reduce){ .ea-cd-q summary .ea-ic{transition:none} }

/* ---- "Protect this item": the care-plan box under each piece on the bag page (protect-this-item-rule.md, Nainesh
   2026-10-22; assets/ea-care.js draws it into [data-ea-care-key]). Ever After's type and colours; two by two on phones. ---- */
.ea-cline{flex-wrap:wrap}
.ea-cline>.ea-care{flex:1 0 100%;min-width:0}
.ea-care:empty{display:none}
.ea-pc{background:var(--white);border:1px solid var(--line);padding:clamp(16px, 12.286px + 0.9524vw, 24px);display:flex;flex-direction:column;gap:14px}
.ea-pc__h{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ea-pc__t{display:inline-flex;align-items:center;gap:8px;margin:0}
.ea-pc__t .ea-ic{width:18px;height:18px;flex:0 0 18px}
.ea-pc__lk{margin:0;color:var(--text);text-decoration:underline;text-underline-offset:3px}
.ea-pc__s{margin:0;color:var(--muted)}
.ea-pc__g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding-top:6px}
.ea-pc__o{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:14px 12px 12px;background:var(--ivory);border:1px solid var(--line);color:var(--text);font:inherit;cursor:pointer;transition:border-color .2s var(--ease),background-color .2s var(--ease),box-shadow .2s var(--ease)}
.ea-pc__o:hover{border-color:var(--linen)}
.ea-pc__o:focus-visible{outline:1px solid var(--text);outline-offset:2px}
.ea-pc__o.is-on{background:var(--white);border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.ea-pc__top{position:absolute;top:-9px;left:10px;background:var(--gold);color:var(--ink);font-size:9px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;line-height:1;padding:4px 6px}
.ea-pc__n{font-family:var(--display);font-size:14px;line-height:1.15;text-transform:uppercase;letter-spacing:.01em}
.ea-pc__p{font-size:15px;font-weight:500;line-height:1.4}
.ea-pc__u{text-transform:none;letter-spacing:.02em;font-size:11px}
.ea-pc__b{display:flex;flex-direction:column;gap:6px}
.ea-pc__bt{display:inline-flex;align-items:center;gap:6px}
.ea-pc__bt .ea-ic{width:14px;height:14px;flex:0 0 14px}
.ea-pc__bl{margin:0;padding-left:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;row-gap:2px;color:var(--ink)}
.ea-pc__tot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line-2);padding-top:12px}
.ea-pc__badge{display:inline-flex;align-items:center;gap:6px;color:var(--text)}
.ea-pc__badge .ea-ic{width:14px;height:14px;flex:0 0 14px}
.ea-pc__badge.is-off{color:var(--muted)}
.ea-pc__it{display:inline-flex;align-items:baseline;gap:10px}
.ea-pc__it .ea-small{color:var(--muted)}
.ea-pc__iv{font-size:16px;font-weight:500}
.ea-bag__care{display:flex;align-items:center;gap:6px;text-transform:none;letter-spacing:.02em;font-size:11px;color:var(--text)}
.ea-bag__care .ea-ic{width:13px;height:13px;flex:0 0 13px}
.ea-bag__sub--care{margin-bottom:6px}
html.ea-care-busy a[href="/checkout"]{opacity:.6;cursor:progress}
.ea-pc-note{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:200;background:var(--ink);color:var(--white);padding:10px 16px;margin:0}
@media (max-width:767px){
  .ea-pc__g{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:14px}
  .ea-pc__bl{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){ .ea-pc__o{transition:none} }

/* shimmer for the transparent stone / ring pictures (user, 2026-10-24 "show the shimmer"): the picture itself stays
   hidden while it loads (no box, no broken-image icon) and its stage shows a soft shimmering disc instead */
img.ea-img-err{visibility:hidden}
.ea-colour__gem.ea-img-wait,.ea-design__pic.ea-img-wait{visibility:hidden}
.ea-colour__stage::after,.ea-design__pics::after{content:"";position:absolute;left:50%;top:50%;width:56%;aspect-ratio:1;border-radius:50%;
  transform:translate(-50%,-50%);opacity:0;pointer-events:none;transition:opacity .3s;
  background:linear-gradient(100deg,#e6dfd2 30%,#fbf8f2 50%,#e6dfd2 70%) 0 0/250% 100% no-repeat;animation:eaShimmer 1.25s linear infinite}
.ea-design__pics::after{background-image:linear-gradient(100deg,rgba(255,255,255,.10) 30%,rgba(255,255,255,.34) 50%,rgba(255,255,255,.10) 70%)}
.ea-colour__stage:has(.ea-colour__gem.ea-img-wait)::after,.ea-design__pics:has(.ea-design__pic.is-on.ea-img-wait)::after{opacity:1}
.ea-design__shape:has(img.ea-img-wait),.ea-colour__shape:has(img.ea-img-wait){background:linear-gradient(100deg,#e6dfd2 30%,#fbf8f2 50%,#e6dfd2 70%) 0 0/250% 100% no-repeat;animation:eaShimmer 1.25s linear infinite}
@media (prefers-reduced-motion:reduce){ .ea-colour__stage::after,.ea-design__pics::after,.ea-design__shape:has(img.ea-img-wait),.ea-colour__shape:has(img.ea-img-wait){animation:none} }

/* ring builder filters scroll on their own (user, 2026-10-24): on desktop the sticky filter column is as tall as the
   screen and has its own slim scrollbar, so every filter can be reached while the stone list stays in place */
@media (min-width:1024px){
  .ea-rb__filters{max-height:calc(100vh - 36px);max-height:calc(100dvh - 36px);overflow-y:auto;overscroll-behavior:contain;
    padding-right:12px;margin-right:-12px;scrollbar-width:thin;scrollbar-color:var(--linen) transparent}
  .ea-rb__filters::-webkit-scrollbar{width:6px}
  .ea-rb__filters::-webkit-scrollbar-track{background:transparent}
  .ea-rb__filters::-webkit-scrollbar-thumb{background:var(--linen);border-radius:3px}
  .ea-rb__filters::-webkit-scrollbar-thumb:hover{background:var(--muted)}
}
/* "Can't find the one?" now follows the builder grid instead of sitting in it (the sticky filters slid over it) */
.ea-rb + .ea-cutfor{margin:0 var(--page-x) clamp(40px, 28.114px + 3.0476vw, 72px)}
/* the last filters (Lab) can scroll clear of the floating Call now + back-to-top buttons (bottom-left, ~125px tall) */
@media (min-width:1024px){ .ea-rb__filters::after{content:"";flex:none;height:130px} }

/* phone menu (user, 2026-10-24): each drawer is ONE grid row (.ea-menu__in), so it really closes and opens — it used
   to stay open because the groups were separate rows; "Shop all …" leads every drawer (the desktop item's link) */
.ea-menu__drawer>.ea-menu__in{overflow:hidden;min-height:0}
.ea-menu__all{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:14px 16px;
  background:var(--blush);color:var(--ink);font-size:13px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;text-decoration:none}
.ea-menu__all .ea-ic{width:16px;height:16px;flex:none}
.ea-menu__all:hover,.ea-menu__all:focus-visible{background:var(--powder)}
.ea-menu__row[aria-expanded="true"]+.ea-menu__drawer .ea-menu__in{padding-bottom:12px}

/* desktop: changed filters wait for "See N items" (user, 2026-10-24) — the bar under the filters appears while they wait */
@media (min-width:1025px){
  .ea-fbar.is-staged~.ea-fapply{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding:0 var(--page-x) 16px}
  .ea-fbar.is-staged~.ea-fapply .ea-fapply__go{min-width:220px}
}

/* ring builder "See diamonds" (user, 2026-10-24): filter changes wait for it. Desktop: right under the Filters head,
   sticky at the top of the filter column (the bottom-left is the Call now button's); phones: pinned to the drawer's foot */
.ea-rb__apply{display:flex;flex-direction:column;gap:6px;z-index:2;background:var(--ivory)}
.ea-rb__applybtn{width:100%;justify-content:space-between}
.ea-rb__applybtn:not(.is-wait){background:transparent;color:var(--ink);border-color:var(--line)}
.ea-rb__applybtn.is-wait{animation:eaApplyPulse 1.6s var(--ease) 2}
@keyframes eaApplyPulse{50%{box-shadow:0 0 0 6px rgba(59,53,48,.12)}}
.ea-rb__applynote:empty{display:none}
@media (min-width:1024px){
  .ea-rb__fhead{order:-2}
  .ea-rb__apply{order:-1;position:sticky;top:0;margin-top:-10px;padding:10px 0 12px;border-bottom:1px solid var(--line)}
}
@media (max-width:1023px){
  .ea-rb__apply{position:sticky;bottom:-40px;margin:0 calc(-1 * var(--page-x)) -40px;padding:12px var(--page-x) 16px;border-top:1px solid var(--line)}
}
@media (prefers-reduced-motion:reduce){ .ea-rb__applybtn.is-wait{animation:none} }

/* every device (user, 2026-10-24 "responsive for every device"):
   - phones' browser bars: pop-ups and full-height blocks use the visible height (dvh) where the browser knows it;
   - iPhone / iPad zoom into any field whose text is under 16px when it is tapped — touch screens get 16px fields */
@supports (height:100dvh){
  .ea-qv__panel{max-height:calc(100dvh - 48px)}
  .ea-pop__panel{max-height:calc(100dvh - 32px)}
  .ea-mega__scrim{height:100dvh}
  .ea-pw{min-height:100dvh}
}
@media (pointer:coarse){
  input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]),select,textarea{font-size:16px !important}
}
/* colour viewer shapes on tablets: one row of ten small round buttons, never 140px circles */
@media (max-width:1023px) and (min-width:560px){ .ea-colour__shapes{grid-template-columns:repeat(10,minmax(0,64px));max-width:none} }
@media (max-width:559px){ .ea-colour__shapes{grid-template-columns:repeat(5,minmax(0,64px))} }

/* bag drawer: a care plan is its own line under its piece (user, 2026-10-25) */
.ea-bag__line--care{position:relative;background:var(--blush);padding:14px 44px 14px 12px}
.ea-bag__thumb--care{display:flex;align-items:center;justify-content:center;flex-basis:72px;width:72px;height:72px;background:var(--ivory)}
.ea-bag__thumb--care img{width:70%;height:70%;object-fit:contain;background:none !important}
.ea-bag__carelinks{display:flex;gap:6px;flex-wrap:wrap}
.ea-bag__carelinks a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.ea-bag__cx{position:absolute;top:10px;right:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--ink)}
.ea-bag__cx .ea-ic{width:16px;height:16px}
.ea-bag__line--care.is-busy{opacity:.5;pointer-events:none}

/* footer on phones (user, 2026-10-25 "make footer space optimizing in mobile view"): Contact across the top, Shop and
   Useful Links side by side, Information across with its links in two columns; tighter rows */
@media (max-width:560px){
  .ea-foot__cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 18px}
  .ea-foot__col--contact{grid-column:1/-1}
  .ea-foot__col:last-child{grid-column:1/-1}
  .ea-foot__col:last-child .ea-foot__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 18px}
  .ea-foot__col:last-child .ea-foot__list li+li{margin-top:0}
  .ea-foot__col .ea-mega__h{margin-bottom:11px}
  .ea-foot__list li+li{margin-top:9px}
  .ea-foot__tag{margin-bottom:10px}
  .ea-foot__list a::after{inset:-4px -8px}
}
@media (max-width:560px){ .ea-foot{padding-bottom:96px} }   /* the copyright line clears the floating Call now / chat buttons */

/* header icons on phones and tablets (user, 2026-10-25 "the icons are not proper"): the count is a small badge on the
   icon's corner (hidden at 0) instead of a loose number beside it; the home page's over-the-photo header keeps
   Search like the other pages and leaves room above its rule */
@media (max-width:1023px){
  .ea-hicon__n{position:absolute;top:5px;right:4px;min-width:16px;height:16px;margin:0;padding:0 4px;border-radius:8px;
    display:inline-flex;align-items:center;justify-content:center;font-size:10px;line-height:1;background:var(--ink);color:var(--ivory)}
  .ea-head--overlay .ea-hicon__n{background:var(--ivory);color:var(--ink)}
  .ea-head__r{gap:4px}
  .ea-head__row .ea-hicon{margin-inline:-6px}
  .ea-head--overlay .ea-head__search-d{display:inline-flex}
  .ea-head--overlay .ea-head__row{padding-top:12px;padding-bottom:0}   /* icons clear the hero's rule (it sits at 54px) */
}

/* "Filters" buttons (user, 2026-10-25 "the filter is not in center"): the button style hides a leading icon until hover,
   which left the word off-centre — the filter icon always shows here, so icon + word sit centred */
.ea-rb__ftoggle .ea-ic,.ea-fbar__open .ea-ic{opacity:1;transform:none}

/* header search on phones (user, 2026-10-25 "this is not perfectly setted"): one row — the field, a round arrow
   button (its "Search" word kept for screen readers) and the close × — instead of the button wrapping below */
@media (max-width:600px){
  .ea-hsrch{padding:14px var(--page-x) 18px}
  .ea-hsrch__f{flex-wrap:nowrap;gap:8px}
  .ea-hsrch__f .ea-search__i{flex:1 1 auto;min-width:0;min-height:46px;padding-inline:18px}
  .ea-hsrch__f .ea-btn--primary{flex:none;width:46px;height:46px;min-height:46px;min-width:0;padding:0;justify-content:center;border-radius:50%}
  .ea-hsrch__f .ea-btn--primary .ea-btn__t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .ea-hsrch__f .ea-btn--primary .ea-ic{opacity:1;transform:none;width:18px;height:18px}
  .ea-hsrch__x{margin-right:-8px}
}
@media (max-width:600px){ .ea-hsrch__f .ea-search__i{height:46px} }   /* field and button the same height */

/* announcement bar (2026-10-25, seen at 320px): the messages share one grid cell, so the bar is as tall as the
   longest one — a message that wraps onto two lines on a narrow phone no longer spills out or overlaps the next */
.ea-ann{display:grid;place-items:center}
.ea-ann__t{position:static;grid-area:1/1;left:auto;right:auto;top:auto;width:100%}

/* product page redesign (user, 2026-10-25 "not satisfied with the product page design"): desktop = one large photo
   with a thumbnail row and arrows (was two small photos side by side), photos ~58% / details ~42% with the details
   column capped for comfortable lines, a smaller title, a calmer description and option groups set apart by rules.
   Phones and tablets keep the swipe gallery with dots. */
.ea-pdp__thumbs,.ea-pdp__arrow{display:none}
@media (min-width:1024px){
  .ea-pdp{display:grid;grid-template-columns:minmax(0,1.38fr) minmax(0,1fr);gap:clamp(40px,4.4vw,84px);align-items:start}
  .ea-pdp__gallery{display:flex;flex-direction:column;gap:12px;flex:none;width:auto;min-width:0}
  .ea-pdp__gallery.has-thumbs>.ea-pdp__shot:not(.is-on){display:none}
  .ea-pdp__shot{aspect-ratio:4/3}
  .ea-pdp__thumbs{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin;scrollbar-color:var(--linen) transparent}
  .ea-pdp__thumb{flex:0 0 92px;aspect-ratio:4/3;padding:0;background:#fff;border:1px solid var(--line);cursor:pointer;transition:border-color .2s var(--ease)}
  .ea-pdp__thumb:hover{border-color:var(--muted)}
  .ea-pdp__thumb.is-on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
  .ea-pdp__thumb img{width:100%;height:100%;object-fit:contain;display:block}
  .ea-pdp__arrow{position:absolute;top:50%;z-index:3;display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin-top:-22px;
    border-radius:50%;background:rgba(250,248,242,.92);border:1px solid var(--line);color:var(--ink);cursor:pointer;transition:background .2s var(--ease)}
  .ea-pdp__arrow:hover{background:var(--ivory);border-color:var(--ink)}
  .ea-pdp__arrow--prev{left:14px}
  .ea-pdp__arrow--next{right:14px}
  .ea-pdp__arrow .ea-ic{width:16px;height:16px}
  .ea-pdp__arrow--prev .ea-ic{transform:rotate(180deg)}
  .ea-pdp__info{max-width:540px;gap:22px}
}
.ea-pdp__t{font-size:clamp(24px, 19.5px + 0.6vw, 31px);line-height:1.14;text-wrap:balance}
.ea-pdp__head{gap:10px}
.ea-pdp__desc{font-size:14px;line-height:1.7;max-width:60ch}
.ea-pdp__form{gap:0}
.ea-pdp__form .ea-opt{padding:18px 0;border-top:1px solid var(--line)}
.ea-pdp__form .ea-v1{gap:0}
.ea-pdp__form .ea-opt__chips{gap:8px}
.ea-pdp__form .ea-chip{min-height:38px;padding:8px 13px;font-size:12px}
.ea-pdp__form .ea-pdp__cta{margin-top:6px;padding-top:20px;border-top:1px solid var(--line)}
/* user, 2026-10-25 "the image is looking too big": the photo column stops at 640px (photo ≈ 640×480) and the two
   columns sit centred together on wide screens instead of the photo growing with the window */
@media (min-width:1024px){
  .ea-pdp{grid-template-columns:minmax(0,640px) minmax(0,540px);justify-content:center;gap:clamp(40px,4.4vw,72px)}
}

/* wishlist hearts (user, 2026-10-25 "add to wishlist is not working on collection pages"): saving worked but the
   heart never changed — a saved piece now shows a filled heart (cards, product page, quick view) */
.ea-card__wish[aria-pressed="true"] .ea-ic,[data-ea-wish][aria-pressed="true"] .ea-ic{fill:currentColor;color:var(--ink)}
.ea-card__wish[aria-pressed="true"]{color:var(--ink)}
.ea-card__wish .ea-ic{transition:transform .25s var(--ease)}
.ea-card__wish[aria-pressed="true"] .ea-ic{animation:eaHeartPop .35s var(--ease)}
@keyframes eaHeartPop{50%{transform:scale(1.25)}}
@media (prefers-reduced-motion:reduce){ .ea-card__wish[aria-pressed="true"] .ea-ic{animation:none} }

/* collection header + filter bar (user, 2026-10-25 "enhance this design") */
/* header: eyebrow, title and its line read as one block (the line used to float mid-page on the right) */
.ea-colhead{flex-direction:column;align-items:flex-start;gap:14px;padding-bottom:34px}
.ea-colhead__l,.ea-colhead__d{flex:none;max-width:640px}
.ea-colhead__d{color:var(--muted)}
/* number boxes: a "$" in front, no browser spinners */
.ea-fprice__n label::before{content:"$";position:absolute;left:11px;font-size:12px;color:var(--muted);pointer-events:none}
.ea-fprice__n input[type=number]{padding-left:22px;-moz-appearance:textfield;appearance:textfield}
.ea-fprice__n input[type=number]::-webkit-outer-spin-button,.ea-fprice__n input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
@media (min-width:1025px){
  /* the drawer's own "Filters ×" head is for phones only */
  .ea-fbar__head{display:none}
  .ea-fbar{position:relative;align-items:flex-end;gap:0;margin:0 var(--page-x) 18px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .ea-fbar>.ea-fbar__g{padding-right:clamp(22px,2.4vw,40px);margin-right:clamp(22px,2.4vw,40px);border-right:1px solid var(--line)}
  .ea-fbar>.ea-fbar__g:last-of-type{border-right:0}
  .ea-fbar__h{min-height:18px}
  .ea-fbar__h .ea-label{font-size:11px}
  .ea-fval{min-height:36px;padding:0 13px;transition:border-color .2s var(--ease),background .2s var(--ease)}
  .ea-fval:hover{border-color:var(--ink)}
  .ea-fval[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--ivory)}
  .ea-fval em{font-style:normal;font-size:10px;color:var(--muted)}
  .ea-fval[aria-pressed="true"] em{color:var(--powder)}
  /* price: the rail and the two boxes side by side, one height with the metal chips */
  .ea-fprice{min-width:0}
  .ea-fprice:not([hidden]){display:grid;grid-template-columns:200px auto;grid-template-rows:auto 36px;column-gap:16px;row-gap:8px;align-items:center}
  .ea-fprice>.ea-fbar__h{grid-column:1/-1}
  .ea-fprice__n{margin-top:0;gap:8px}
  .ea-fprice__n label{flex:0 0 96px}
  .ea-fprice__n input[type=number]{min-height:36px}
  .ea-fbar__r{align-self:flex-end;gap:22px}
  .ea-fbar__r .ea-sort{padding:0 0 0 18px;min-height:36px;border-left:1px solid var(--line)}
  .ea-fbar__r .ea-sort__s{min-height:36px}
  .ea-fbar__r .ea-sort .ea-ic{right:0}
  .ea-fchips{padding-top:0}
  .ea-listcount{padding-top:2px;padding-bottom:18px;color:var(--muted)}
}
@media (max-width:1024px){
  .ea-fbar__head{flex-direction:row;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--line)}
  .ea-fbar__head .ea-fbar__x{margin-right:-10px}
  .ea-fclear{white-space:nowrap}
}

/* phone menu foot (user, 2026-10-25 "this is not proper"): four links squeezed in one row wrapped their words —
   now a 2 × 2 grid, one line each; padding clears the floating buttons */
.ea-menu__foot{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:16px 16px calc(84px + env(safe-area-inset-bottom,0px))}
.ea-menu__foot a{min-width:0;justify-content:flex-start;padding:0 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;letter-spacing:.06em}
.ea-menu__foot a span{overflow:hidden;text-overflow:ellipsis}
.ea-menu__foot .ea-ic{flex:none}
.ea-menu__foot a[href^="tel:"]{grid-column:1/-1;justify-content:center}   /* the number never cut off */
.ea-menu__foot a{padding:0 10px;gap:7px;letter-spacing:.03em}

/* extra space (user, 2026-10-25 "remove extra space"): the trust strip's foot, "Join the story" and the footer each
   added their own large padding — the strip ends closer, Join keeps a modest top and hands straight on to the footer
   (same linen), so the three no longer stack three gaps */
.ea-promises{padding-bottom:clamp(28px, 22px + 1.5vw, 44px)}
.ea-join{padding-top:clamp(40px, 32px + 2.2vw, 64px);padding-bottom:clamp(20px, 16px + 1vw, 32px)}
body:has(.ea-join) .ea-foot{padding-top:clamp(24px, 20px + 1vw, 36px)}   /* the footer right after Join (same linen) */

/* builder chapter bar on phones (user, 2026-10-25 "fix this"): the three chapters always fit — badge + name only,
   the chosen piece on one short line, nothing cut at either edge */
@media (max-width:767px){
  .ea-chapters__in{overflow:hidden}
  .ea-chapter{min-width:0;padding:10px 6px;gap:4px}
  .ea-chapter__top{justify-content:center}
  .ea-chapter__top .ea-caption{display:none}
  .ea-chapter__t{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .ea-chapter__pick{justify-content:center;width:100%;margin-top:2px}
  .ea-chapter__pick>span{align-items:center;max-width:100%}
  .ea-chapter__pick .ea-caption{max-width:100%;font-size:9px;letter-spacing:.04em}
}

/* grid promo tiles (user, 2026-10-25 "resize this card to match product card"): the "Cut just for you" / design
   tiles fill their whole grid row, the same height as the product cards beside them */
.ea-grid>.ea-promo{align-self:stretch;height:auto}

/* 360° / 3D + Try on chips (user, 2026-10-25 "move this button to the upper side"): top-right of the photo — the 3D
   view's corner mark covers the bottom-left, where they used to sit. The 3D view's "Photos" button joins them up top. */
.ea-pdp__vw{left:auto;right:14px;bottom:auto;top:14px;justify-content:flex-end}
.ea-pdp__photos{top:14px;bottom:auto;right:14px;z-index:3}

/* product page size dropdowns — ring size / chain length / bracelet size (user, 2026-10-25 "fix this box size"):
   one full-width box with its arrow inside, the same line weight as the option chips */
.ea-opt__select{display:block;position:relative;width:100%;max-width:340px;padding:0;margin-top:10px;min-height:0}
.ea-opt__select .ea-sort__s{display:block;width:100%;min-height:46px;padding:0 40px 0 14px;border:1px solid var(--line);border-radius:0;background:#fff;
  font-weight:400;font-size:13px;letter-spacing:.02em;text-transform:none;color:var(--text);cursor:pointer;transition:border-color .2s var(--ease)}
.ea-opt__select .ea-sort__s:hover{border-color:var(--muted)}
.ea-opt__select .ea-sort__s:focus-visible{outline:none;border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.ea-opt__select .ea-ic{right:14px;top:50%;margin-top:-6px}
/* user, 2026-10-25 "the image is looking small now": between the first (too big) and the 640px cap — the photo column
   grows to 780px (photo ≈ 780×585) and the details stay 540px, the pair centred */
@media (min-width:1024px){
  .ea-pdp{grid-template-columns:minmax(0,780px) minmax(0,540px)}
}

/* product page Metal row (user, 2026-10-25 "fix this"): the same boxed choices as the other option rows — the metal's
   colour dot + its name in one chip, ink outline when chosen — instead of loose circles with tiny capitals (a pale
   White Gold circle all but vanished on white) */
.ea-opt__swatches{display:flex;flex-wrap:wrap;gap:8px}
.ea-swatch{flex-direction:row;align-items:center;gap:9px;min-width:0;min-height:38px;padding:0 13px 0 9px;border:1px solid var(--line);background:#fff;color:var(--text);transition:border-color .2s var(--ease)}
.ea-swatch:hover{border-color:var(--muted)}
.ea-swatch.is-on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.ea-swatch__d,.ea-swatch.is-on .ea-swatch__d{width:20px;height:20px;border:0}
.ea-swatch__d i{width:18px;height:18px;box-shadow:inset 0 0 0 1px rgba(46,41,37,.18)}
.ea-swatch .ea-caption{font-size:12px;letter-spacing:.02em;text-transform:none;color:var(--text)}

/* collection price slider (user, 2026-10-25 "proper dot not set"): the handles sat a little above the line and the dark
   part of the line ran past them at both ends. The inputs are now exactly as tall as a handle, centred on the line,
   and the line is drawn between the two handle centres (7.5px in from each end), so 0% / 100% land under the handles. */
.ea-fprice__rail::before{content:"";position:absolute;left:7.5px;right:7.5px;top:11px;height:4px;border-radius:2px;
  background:linear-gradient(90deg,var(--line) 0,var(--line) var(--lo),var(--ink) var(--lo),var(--ink) var(--hi),var(--line) var(--hi),var(--line) 100%)}
.ea-fprice__rail input[type=range]{top:5.5px;height:15px;background:transparent}
.ea-fprice__rail input[data-hi]{background:transparent}
.ea-fprice__rail input[type=range]::-webkit-slider-runnable-track{height:15px;background:transparent;border:0}
.ea-fprice__rail input[type=range]::-webkit-slider-thumb{box-sizing:border-box;margin-top:0;position:relative;z-index:1}
.ea-fprice__rail input[type=range]::-moz-range-track{height:15px;background:transparent;border:0}
.ea-fprice__rail input[type=range]::-moz-range-thumb{box-sizing:border-box}
/* the ring builder's sliders had the same offset — same fix (line between the handle centres, handles on the line) */
.ea-sl::before{content:"";position:absolute;left:7.5px;right:7.5px;top:8px;height:4px;border-radius:2px;
  background:linear-gradient(90deg,var(--line) 0,var(--line) var(--lo),var(--ink) var(--lo),var(--ink) var(--hi),var(--line) var(--hi),var(--line) 100%)}
.ea-sl input[type=range]{top:2.5px;height:15px;background:transparent}
.ea-sl input[data-hi]{background:transparent}
.ea-sl input[type=range]::-webkit-slider-runnable-track{height:15px;background:transparent;border:0}
.ea-sl input[type=range]::-webkit-slider-thumb{box-sizing:border-box;margin-top:0;position:relative;z-index:1}
.ea-sl input[type=range]::-moz-range-track{height:15px;background:transparent;border:0}
.ea-sl input[type=range]::-moz-range-thumb{box-sizing:border-box}


/* /collections: a collection with no image shows the wordmark, as in the header (user, 2026-10-27) */
.ea-colcard__logo{font-family:var(--display);font-size:clamp(17px, 15.5px + .4vw, 22px);line-height:1;letter-spacing:.02em;text-transform:uppercase;color:var(--text);white-space:nowrap}
.ea-colcard__n{color:var(--muted);margin-top:-6px}
