:root{
  --bg:#fbf8f1; --ivory:#f4efe3; --ink:#111010; --muted:#6f6a60; --line:#e3dccb; --surface:#f1ebdd;
  --gold:#b08d3c; --gold-l:#d8bf7e; --gold-d:#8a6b22; --accent:#b08d3c;
  --font-d:'Bodoni Moda',Didot,serif; --font-b:'Jost',system-ui,sans-serif; --dw:400;
  --r-sm:0; --r-btn:0; --pill:0; --btn-bg:#111010; --btn-ink:#fbf8f1; --drawer-bg:#fbf8f1; --track:#e8e0cc;
}
body{background:var(--bg);color:var(--ink);font-family:var(--font-b);font-size:16px;line-height:1.65;font-weight:400}
h1,h2,h3,h4{font-family:var(--font-d);font-weight:400;line-height:1.05;margin:0}
.wrap{width:min(1280px,100% - 48px);margin-inline:auto}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--ink);color:var(--bg);text-decoration:none;border:0;padding:16px 34px;font-size:.84rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;transition:background .25s}
.btn:hover{background:var(--gold-d)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--bg)}
.btn.light{background:var(--bg);color:var(--ink)}
.btn.sm{padding:11px 20px;font-size:.76rem}
.text-btn{background:none;border:0;padding:0;text-decoration:underline;color:var(--gold-d)}
.cd-checkout{letter-spacing:.12em;text-transform:uppercase;font-size:.82rem;font-weight:500}
.cd-head h2{font-size:1.5rem}

/* header */
.topline{background:var(--ink);color:#d9d2c0;font-size:.78rem;text-align:center;padding:9px 16px;letter-spacing:.04em}
.site-header{position:sticky;top:0;z-index:50;background:rgba(251,248,241,.96);backdrop-filter:blur(8px);border-bottom:1px solid transparent;transition:border-color .3s}
.site-header.scrolled{border-color:var(--line)}
.hdr{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:92px}
.logo{display:flex;flex-direction:column;align-items:center;text-decoration:none;gap:2px;justify-self:center}
.logo svg{width:22px;height:22px}
.logo span{font-family:var(--font-d);font-size:1.9rem;letter-spacing:.32em;margin-right:-.32em;line-height:1}
.nav{display:flex;gap:30px;font-size:.88rem;letter-spacing:.04em}
.nav a{text-decoration:none;position:relative;padding:4px 0}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gold);transform:scaleX(0);transition:transform .3s}
.nav a:hover::after,.nav a[aria-current]::after{transform:none}
.hdr-end{justify-self:end;display:flex;align-items:center;gap:18px;font-size:.88rem}
.hdr-end a,.hdr-end button{background:none;border:0;text-decoration:none;display:inline-flex;align-items:center;gap:8px;padding:6px 0}
.hdr-end svg{width:20px;height:20px}
[data-cart-count]{background:var(--gold);color:#fff;border-radius:50%}
.menu-btn{display:none!important}
.mobile-nav{display:none}

/* hero */
.hero{position:relative;padding:0 0 0}
.hero-grid{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:0;align-items:stretch;min-height:640px}
.hero-side{position:relative;overflow:hidden}
.hero-side img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.hero-mid{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:60px 40px;background:var(--ivory);position:relative}
.hero-mid::before,.hero-mid::after{content:"";position:absolute;left:50%;width:1px;height:46px;background:var(--gold)}
.hero-mid::before{top:0}
.hero-mid::after{bottom:0}
.hero h1{font-size:clamp(2.8rem,4.6vw,4.6rem);line-height:1;font-style:italic;font-weight:400}
.hero h1 b{display:block;font-style:normal;font-weight:400}
.hero-mid p{color:var(--muted);max-width:32ch;margin:22px auto 30px}
.hero-mid .btn+.btn{margin-top:10px}
.hero-small{font-size:.8rem;color:var(--muted);margin-top:26px;letter-spacing:.04em}

/* promises */
.promises{border-block:1px solid var(--line)}
.promises .wrap{display:grid;grid-template-columns:repeat(4,1fr)}
.promises div{padding:22px 18px;text-align:center;font-size:.86rem;color:var(--muted);border-right:1px solid var(--line)}
.promises div:last-child{border-right:0}
.promises b{display:block;color:var(--ink);font-weight:500;font-size:.92rem}

/* sections */
section{scroll-margin-top:100px}
.sec{padding:110px 0}
.center-head{text-align:center;max-width:640px;margin:0 auto 56px}
.center-head h2{font-size:clamp(2.4rem,4.4vw,3.8rem)}
.center-head p{color:var(--muted);margin:16px 0 0}
.orn{display:block;width:44px;height:12px;margin:0 auto 18px}
.ivory{background:var(--ivory)}
.dark{background:var(--ink);color:#e9e2d0}
.dark .muted,.dark p{color:#b5ad9b}

/* collections strip */
.colls{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.coll{text-decoration:none;text-align:center}
.coll .ci{aspect-ratio:3/4;overflow:hidden;border-radius:999px 999px 0 0;margin-bottom:16px}
.coll img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.coll:hover img{transform:scale(1.05)}
.coll h3{font-size:1.6rem;font-style:italic}
.coll span{font-size:.8rem;color:var(--muted);letter-spacing:.08em}

/* cards */
.pgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px 22px}
.pcard{text-align:center}
.pcard-img{display:block;position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--surface)}
.pcard-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.pcard-img:hover img{transform:scale(1.05)}
.pcard-tag{position:absolute;top:12px;left:12px;background:var(--bg);font-size:.72rem;letter-spacing:.08em;padding:5px 10px}
.pcard-metals{display:flex;justify-content:center;gap:6px;margin:16px 0 8px}
.pcard-metals i{width:12px;height:12px;border-radius:50%;background:var(--m);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.pcard h3{font-size:1.25rem}
.pcard h3 a{text-decoration:none}
.pcard p{margin:4px 0 0;font-size:.9rem;color:var(--muted)}

/* engraving feature */
.eng-feature{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.eng-feature h2{font-size:clamp(2.3rem,4vw,3.4rem);margin-bottom:18px}
.eng-feature p{color:#b5ad9b;max-width:44ch}
.engrave{background:#fbf8f1;color:var(--ink);padding:28px}
.dark .engrave{box-shadow:0 0 0 1px #3a362e}
.eng-svg svg{width:100%;height:auto;display:block}
.eng-row{display:flex;gap:10px;align-items:end;margin-top:14px;flex-wrap:wrap}
.eng-row .field{flex:1;margin:0;min-width:200px}
.eng-count{font-size:.78rem;color:var(--muted);text-align:right;margin-top:4px}
.fontsel{display:flex;border:1px solid var(--ink)}
.fontsel button{background:none;border:0;padding:11px 14px;font-size:.92rem;min-width:62px}
.fontsel button.on{background:var(--ink);color:var(--bg)}
.fontsel button[data-opt=script]{font-family:'Pinyon Script',cursive;font-size:1.15rem;padding:6px 14px}
.fontsel button[data-opt=serif]{font-family:var(--font-d)}

/* split story */
.split{display:grid;grid-template-columns:1fr 1fr;gap:0;align-items:stretch}
.split .img{min-height:600px;position:relative}
.split img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.split .txt{padding:90px 80px;display:flex;flex-direction:column;justify-content:center;background:var(--ivory)}
.split h2{font-size:clamp(2.2rem,3.6vw,3.2rem);margin-bottom:20px}
.split p{color:var(--muted)}
.facts{display:grid;grid-template-columns:repeat(3,1fr);margin:28px 0 34px;border-top:1px solid var(--line)}
.facts div{padding:18px 0;font-size:.84rem;color:var(--muted)}
.facts b{display:block;font-family:var(--font-d);font-size:1.9rem;font-weight:400;color:var(--ink)}

/* testimonials */
.quote-slab{text-align:center;max-width:820px;margin:0 auto}
.quote-slab blockquote{font-family:var(--font-d);font-style:italic;font-size:clamp(1.6rem,2.8vw,2.3rem);line-height:1.3;margin:0}
.quote-slab cite{display:block;font-style:normal;margin-top:22px;font-size:.86rem;color:var(--muted);letter-spacing:.06em}
.qdots{display:flex;justify-content:center;gap:10px;margin-top:28px}
.qdots button{width:9px;height:9px;border-radius:50%;border:1px solid var(--gold);background:none;padding:0}
.qdots button.on{background:var(--gold)}

/* appointment */
.appt{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start}
.appt h2{font-size:clamp(2.2rem,4vw,3.3rem);margin-bottom:16px}
.appt p{color:var(--muted)}
.field input,.field select,.field textarea{background:#fff;border-color:var(--line)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.faq-wrap{max-width:820px;margin:0 auto}

/* footer */
.site-footer{background:var(--ink);color:#b5ad9b;padding:80px 0 28px;font-size:.88rem}
.ft{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.3fr;gap:40px}
.ft h4{font-family:var(--font-b);font-weight:500;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#e9e2d0;margin-bottom:16px}
.ft ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.ft a{text-decoration:none}
.ft a:hover{color:var(--gold-l)}
.ft .logo{align-items:flex-start;color:#e9e2d0}
.ft .news{display:flex;margin-top:10px;border-bottom:1px solid #4a453b}
.ft .news input{flex:1;background:none;border:0;padding:10px 0;color:#fff}
.ft .news button{background:none;border:0;color:var(--gold-l);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase}
.ft .form-done{background:#222;color:#e9e2d0}
.ft-bottom{margin-top:60px;padding-top:22px;border-top:1px solid #2c2a26;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.78rem;color:#8a8373}

/* page head */
.page-head{padding:56px 0 46px;text-align:center}
.crumbs{font-size:.8rem;color:var(--muted);letter-spacing:.04em;margin-bottom:14px}
.crumbs a{text-decoration:none}
.page-head h1{font-size:clamp(2.8rem,6vw,5rem);font-style:italic}
.page-head p{max-width:56ch;margin:16px auto 0;color:var(--muted)}

/* shop */
.shopbar{border-block:1px solid var(--line);margin-bottom:46px}
.shopbar .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;flex-wrap:wrap}
.tabs{display:flex;gap:4px;flex-wrap:wrap}
.tabs button{background:none;border:0;padding:8px 14px;font-size:.88rem;letter-spacing:.04em;position:relative}
.tabs button.on{color:var(--gold-d)}
.tabs button.on::after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:1px;background:var(--gold)}
.selects{display:flex;gap:10px;align-items:center;font-size:.86rem;color:var(--muted);flex-wrap:wrap}
.selects select{border:1px solid var(--line);background:#fff;padding:9px 12px;font-size:.86rem}
.empty{grid-column:1/-1;text-align:center;color:var(--muted)}

/* product */
.pd{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;padding:10px 0 100px;align-items:start}
.pd-media{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pd-media figure{margin:0;overflow:hidden;background:var(--surface)}
.pd-media figure:first-child{grid-column:1/-1;aspect-ratio:1}
.pd-media figure:not(:first-child){aspect-ratio:4/5}
.pd-media img{width:100%;height:100%;object-fit:cover}
.pd-media .zoom img{transform:scale(1.8);transform-origin:50% 45%}
.pd-media .box{display:grid;place-items:center;background:var(--ink);color:#e9e2d0;text-align:center;padding:20px}
.pd-media .box svg{width:70%;max-width:220px}
.pd-media .box p{font-size:.8rem;color:#b5ad9b;margin:12px 0 0}
.pd-info{position:sticky;top:110px}
.pd-col{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-d)}
.pd-info h1{font-size:clamp(2.2rem,3.6vw,3.2rem);margin:10px 0 12px}
.pd-price{font-family:var(--font-d);font-size:1.9rem}
.pd-fee{font-size:.8rem;color:var(--muted);margin-left:8px}
.pd-desc{color:var(--muted);margin:16px 0 0}
.ol{display:flex;justify-content:space-between;align-items:baseline;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;margin:26px 0 12px;font-weight:500}
.ol span{letter-spacing:0;text-transform:none;color:var(--muted);font-size:.86rem;font-weight:400}
.ol button{letter-spacing:0;text-transform:none;font-size:.86rem;background:none;border:0;padding:0;color:var(--gold-d);text-decoration:underline}
.metals{display:flex;gap:8px;flex-wrap:wrap}
.metals button{background:#fff;border:1px solid var(--line);padding:10px 10px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.72rem;line-height:1.2;min-width:74px}
.metals button i{width:26px;height:26px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1)}
.metals button.on{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.size-row{display:flex;gap:10px}
.size-row select{flex:1;border:1px solid var(--line);background:#fff;padding:13px 12px}
[data-size-wrap].invalid select{border-color:#b3261e}
.eng-toggle{display:flex;gap:12px;align-items:center;margin-top:24px;padding:16px;border:1px solid var(--line);background:#fff;cursor:pointer}
.eng-toggle input{accent-color:var(--gold-d);width:18px;height:18px}
.eng-toggle span{flex:1}
.eng-toggle small{display:block;color:var(--muted)}
.pd .engrave{border:1px solid var(--line);border-top:0;padding:18px}
.gift{display:flex;gap:10px;align-items:center;margin-top:10px;font-size:.9rem}
.gift input{accent-color:var(--gold-d)}
.pd-buy{margin-top:22px}
.pd-buy .btn{width:100%}
.pd-msg{min-height:1.2em;font-size:.86rem;color:var(--gold-d);margin:10px 0 0}
.pd-msg.err{color:#9b2c1f}
.pd .ship-meter{border:1px solid var(--line);margin-top:10px;background:#fff}
.specs{margin:24px 0 0;border-top:1px solid var(--line)}
.specs div{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid var(--line);font-size:.9rem}
.specs dt{color:var(--muted)}
.specs dd{margin:0;text-align:right}
.assure{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px;font-size:.82rem;color:var(--muted)}
.assure div{background:var(--ivory);padding:12px 14px}
.assure b{display:block;color:var(--ink);font-weight:500}

/* sizer */
dialog.sizer-dlg{border:0;padding:0;max-width:760px;width:calc(100% - 32px);background:var(--bg);color:var(--ink)}
dialog.sizer-dlg::backdrop{background:rgba(17,16,16,.55)}
.dlg-head{display:flex;justify-content:space-between;align-items:center;padding:20px 26px;border-bottom:1px solid var(--line)}
.dlg-head h2{font-size:1.6rem}
.dlg-head button{background:none;border:0;font-size:1.8rem;line-height:1}
.sizer{padding:26px}
.modes{display:flex;border:1px solid var(--ink);width:max-content;margin-bottom:22px;flex-wrap:wrap}
.modes button{background:none;border:0;padding:10px 16px;font-size:.86rem}
.modes button.on{background:var(--ink);color:var(--bg)}
.ringpane{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.stage{background:#fff;border:1px solid var(--line);min-height:260px;display:grid;place-items:center;position:relative;overflow:hidden}
.stage .circle{border-radius:50%;border:2px solid var(--gold);background:radial-gradient(circle,rgba(176,141,60,.06),rgba(176,141,60,.18));position:relative}
.stage .circle::before,.stage .circle::after{content:"";position:absolute;background:var(--gold);opacity:.5}
.stage .circle::before{left:50%;top:-8px;bottom:-8px;width:1px}
.stage .circle::after{top:50%;left:-8px;right:-8px;height:1px}
.stage small{position:absolute;bottom:8px;left:0;right:0;text-align:center;font-size:.74rem;color:var(--muted)}
.sizer label{font-size:.86rem;font-weight:500}
.sizer input[type=range]{width:100%;accent-color:var(--gold-d)}
.nudges{display:flex;gap:6px;margin:10px 0}
.nudges button{flex:1;background:#fff;border:1px solid var(--line);padding:8px;font-size:.82rem}
.size-out{display:flex;justify-content:space-between;align-items:baseline;border-top:1px solid var(--line);margin-top:14px;padding-top:14px;gap:12px;flex-wrap:wrap}
.size-out span{font-size:.86rem;color:var(--muted)}
.size-out strong,.size-res strong{font-family:var(--font-d);font-size:2.4rem;font-weight:400;color:var(--gold-d)}
.size-res{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:12px;margin-top:6px}
.size-res span{font-size:.86rem;color:var(--muted)}
.cal{margin-top:18px;padding-top:16px;border-top:1px dashed var(--line)}
.card-ghost{border:1.5px dashed var(--ink);border-radius:10px;max-width:100%;overflow:hidden;margin:10px 0;display:grid;place-items:center;font-size:.76rem;color:var(--muted)}
.hint{font-size:.84rem;color:var(--muted);margin:8px 0 14px}
.warn{color:#9b2c1f;font-size:.88rem}
.saved{font-size:.86rem;color:var(--gold-d);margin-top:10px;min-height:1.2em}
.string-steps{margin:0 0 18px;padding-left:18px;font-size:.9rem;color:var(--muted)}
.string-steps li{margin-bottom:4px}
.sizer .check{margin:4px 0 16px}

/* bridal */
.bridal-hero{display:grid;grid-template-columns:1fr 1fr;min-height:560px}
.bridal-hero .img{position:relative}
.bridal-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bridal-hero .txt{background:var(--ink);color:#e9e2d0;padding:80px 70px;display:flex;flex-direction:column;justify-content:center}
.bridal-hero h1{font-size:clamp(2.8rem,5vw,4.6rem);font-style:italic}
.bridal-hero p{color:#b5ad9b;max-width:42ch;margin:20px 0 30px}
.cs{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line)}
.cs div{padding:30px 26px;border-right:1px solid var(--line)}
.cs div:last-child{border-right:0}
.cs h3{font-size:2.2rem;font-style:italic;margin-bottom:8px}
.cs p{margin:0;color:var(--muted);font-size:.92rem}
.journey{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;counter-reset:j}
.journey li{counter-increment:j;border-top:1px solid var(--gold);padding-top:18px}
.journey li::before{content:"0" counter(j);font-family:var(--font-d);font-size:1.4rem;color:var(--gold-d);display:block;margin-bottom:8px}
.journey b{display:block;font-weight:500;margin-bottom:4px}
.journey span{font-size:.9rem;color:var(--muted)}

/* about */
.about-intro{max-width:780px;margin:0 auto;text-align:center}
.about-intro p{font-family:var(--font-d);font-size:clamp(1.4rem,2.4vw,1.9rem);line-height:1.45}
.vals{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.vals h3{font-size:1.8rem;font-style:italic;margin-bottom:10px}
.vals p{color:var(--muted);margin:0}
.note{font-size:.78rem;color:var(--muted);text-align:center;margin-top:30px}

@media (max-width:1080px){
  .pgrid,.colls{grid-template-columns:repeat(2,1fr)}
  .hero-grid{grid-template-columns:1fr 1fr}
  .hero-side:last-child{display:none}
  .eng-feature,.split,.appt,.pd,.bridal-hero,.ringpane{grid-template-columns:1fr;gap:40px}
  .split .txt{padding:60px 40px}
  .split .img{min-height:420px}
  .pd-info{position:static}
  .cs,.journey{grid-template-columns:1fr 1fr}
  .cs div:nth-child(2){border-right:0}
  .cs div:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .vals{grid-template-columns:1fr}
  .ft{grid-template-columns:1fr 1fr}
  .promises .wrap{grid-template-columns:1fr 1fr}
  .promises div:nth-child(2){border-right:0}
  .promises div:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media (max-width:860px){
  .nav,.hdr-end .lbl{display:none}
  .menu-btn{display:inline-flex!important}
  .hdr{grid-template-columns:auto 1fr auto;height:76px}
  .hdr .logo{justify-self:center}
  .logo span{font-size:1.5rem}
  .mobile-nav{display:block;position:fixed;inset:0;background:var(--bg);padding:140px 24px 30px;opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s;z-index:49;text-align:center;overflow:auto}
  html.menu-open .mobile-nav{opacity:1;visibility:visible;transition-delay:0s}
  .mobile-nav a{display:block;font-family:var(--font-d);font-style:italic;font-size:2.2rem;text-decoration:none;padding:10px 0}
  .hero-grid{grid-template-columns:1fr;min-height:0}
  .hero-side:first-child{min-height:380px}
  .bridal-hero .img{min-height:380px}
  .bridal-hero .txt{padding:50px 24px}
}
@media (max-width:560px){
  .wrap{width:calc(100% - 32px)}
  .sec{padding:72px 0}
  .pgrid{gap:30px 12px}
  .pcard h3{font-size:1.05rem}
  .colls{gap:12px}
  .coll h3{font-size:1.25rem}
  .hero-mid{padding:56px 22px}
  .promises .wrap{grid-template-columns:1fr}
  .promises div{border-right:0;border-bottom:1px solid var(--line)}
  .engrave{padding:16px}
  .split .txt{padding:50px 22px}
  .facts{grid-template-columns:1fr 1fr 1fr}
  .facts b{font-size:1.4rem}
  .two{grid-template-columns:1fr}
  .ft{grid-template-columns:1fr}
  .cs,.journey{grid-template-columns:1fr}
  .cs div{border-right:0;border-bottom:1px solid var(--line)}
  .assure{grid-template-columns:1fr}
  .sizer{padding:18px}
  .metals button{min-width:64px}
  .tabs button{padding:8px 9px}
}
