:root {
  --ink: #171611;
  --paper: #f8f5ef;
  --cream: #eee8dd;
  --gold: #a67b3f;
  --line: rgba(23, 22, 17, .14);
  --serif: "Italiana", "Times New Roman", serif;
  --sans: "DM Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-weight: 400; overflow-x: hidden; }
body.menu-open, body.searching { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input { font: inherit; }
button { color: inherit; }
img { display: block; max-width: 100%; }
.container { width: min(1380px, calc(100% - 80px)); margin: 0 auto; }
.section { padding: 120px 0; }
.eyebrow { margin: 0 0 18px; font-size: 11px; font-weight: 600; letter-spacing: .22em; }
h1, h2 { font-family: var(--serif); font-weight: 400; letter-spacing: -.035em; }
h2 { margin: 0; font-size: clamp(48px, 5vw, 78px); line-height: .98; }
h1 em, h2 em { font-weight: 400; color: var(--gold); }
.button { min-height: 50px; display: inline-flex; align-items: center; justify-content: center; gap: 28px; padding: 0 26px; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; transition: .3s ease; }
.button-dark { background: var(--ink); color: #fff; }
.button-dark:hover { background: var(--gold); }
.button-outline { border: 1px solid var(--ink); }
.button-outline:hover { background: var(--ink); color: #fff; }
.text-link { display: inline-flex; align-items: center; gap: 22px; padding-bottom: 6px; border-bottom: 1px solid currentColor; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.text-link span { transition: transform .25s; }
.text-link:hover span { transform: translateX(5px); }
.text-link.light { color: #f5f0e8; }

.announcement { height: 36px; display: flex; justify-content: center; align-items: center; gap: 55px; padding: 0 30px; color: #f7f2e9; background: #171611; font-size: 10px; letter-spacing: .09em; text-transform: uppercase; }
.announcement p { margin: 0; }
.announcement p span { color: #d6bc91; }
.announcement a { padding-bottom: 2px; border-bottom: 1px solid rgba(255,255,255,.5); }

.site-header { position: relative; z-index: 50; background: var(--paper); }
.utility-bar { height: 92px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; }
.brand { display: inline-flex; flex-direction: column; align-items: center; justify-self: center; }
.brand > span { font-family: var(--serif); font-size: 34px; letter-spacing: .15em; line-height: 1; }
.brand small { margin-top: 7px; font-size: 7px; letter-spacing: .36em; }
.location-link { width: fit-content; padding: 0; border: 0; background: none; cursor: pointer; }
.icon-text { display: flex; align-items: center; gap: 9px; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.icon-text svg, .icon-btn svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.header-actions { display: flex; justify-content: flex-end; align-items: center; gap: 19px; }
.icon-btn { position: relative; display: grid; place-items: center; padding: 0; border: 0; background: none; cursor: pointer; }
.cart-count { position: absolute; top: -9px; right: -10px; width: 17px; height: 17px; border-radius: 50%; display: grid; place-items: center; color: #fff; background: var(--gold); font-size: 9px; transition: .25s; }
.cart-count.pop { transform: scale(1.35); }
.menu-toggle { display: none; width: 25px; height: 25px; }
.menu-toggle span { position: absolute; width: 22px; height: 1px; background: currentColor; transition: .3s; }
.menu-toggle span:first-child { transform: translateY(-4px); }
.menu-toggle span:last-child { transform: translateY(4px); }
.menu-open .menu-toggle span:first-child { transform: rotate(45deg); }
.menu-open .menu-toggle span:last-child { transform: rotate(-45deg); }
.main-nav { border-top: 1px solid var(--line); }
.nav-inner { height: 51px; display: flex; align-items: center; justify-content: center; gap: clamp(24px, 3.3vw, 54px); }
.nav-inner a { position: relative; font-size: 11px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.nav-inner a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -8px; height: 1px; background: currentColor; transition: right .3s; }
.nav-inner a:hover::after { right: 0; }
.nav-inner .sale-link { color: #a1513f; }

.hero { position: relative; height: min(745px, calc(100vh - 179px)); min-height: 610px; overflow: hidden; background: #d4c2a9; }
.hero-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; animation: hero-in 1.5s ease both; }
@keyframes hero-in { from { transform: scale(1.035); opacity: .75; } to { transform: scale(1); opacity: 1; } }
.hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(246,235,217,.42) 0%, rgba(246,235,217,.08) 46%, transparent 65%); }
.hero-content { position: relative; z-index: 2; height: 100%; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; padding-bottom: 28px; }
.hero-content h1 { margin: 0; font-size: clamp(64px, 7.1vw, 114px); line-height: .9; }
.hero-content h1 em { display: inline-block; margin-left: 55px; color: var(--ink); }
.hero-copy { max-width: 390px; margin: 30px 0; font-size: 14px; line-height: 1.7; }
.hero-buttons { display: flex; align-items: center; gap: 34px; }
.hero-index { position: absolute; z-index: 3; left: 40px; bottom: 30px; display: flex; align-items: center; gap: 11px; font-size: 10px; }
.hero-index strong { font-weight: 600; }
.hero-index span { width: 45px; height: 1px; background: rgba(0,0,0,.45); }
.hero-index small { color: rgba(0,0,0,.5); }
.hero-note { position: absolute; right: 40px; bottom: 27px; z-index: 3; display: flex; align-items: center; gap: 12px; padding: 12px 17px; background: rgba(248,245,239,.86); backdrop-filter: blur(10px); }
.hero-note > span { color: var(--gold); }
.hero-note p { margin: 0; font-size: 11px; }
.hero-note small { display: block; margin-bottom: 3px; font-size: 8px; letter-spacing: .17em; }

.benefits { border-bottom: 1px solid var(--line); background: #f4f0e8; }
.benefits-grid { min-height: 102px; display: grid; grid-template-columns: repeat(4, 1fr); align-items: center; }
.benefit { display: flex; align-items: center; justify-content: center; gap: 16px; min-height: 55px; border-right: 1px solid var(--line); }
.benefit:last-child { border-right: 0; }
.benefit-icon { font-family: var(--serif); font-size: 24px; color: var(--gold); }
.benefit p { margin: 0; }
.benefit strong, .benefit small { display: block; }
.benefit strong { font-size: 11px; font-weight: 500; letter-spacing: .07em; text-transform: uppercase; }
.benefit small { margin-top: 5px; color: #736e64; font-size: 10px; }

.section-heading.centered { text-align: center; }
.section-heading h2 em { display: inline-block; margin-left: 4px; }
.category-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; margin-top: 60px; }
.category-card { text-align: center; }
.category-media { aspect-ratio: .82; margin-bottom: 21px; overflow: hidden; background-color: #eee8dd; transition: transform .45s ease, filter .45s; }
.category-card:hover .category-media { transform: translateY(-8px); filter: saturate(1.08); }
.category-card > span { display: block; font-family: var(--serif); font-size: 26px; }
.category-card > small { display: block; margin-top: 8px; color: #81796e; font-size: 9px; letter-spacing: .14em; text-transform: uppercase; }

.products { background: #f1ede5; }
.product-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; }
.product-tabs { display: flex; gap: 33px; padding-bottom: 6px; }
.tab { position: relative; padding: 8px 0; border: 0; background: none; color: #827b70; font-size: 11px; letter-spacing: .06em; cursor: pointer; }
.tab::after { content: ""; position: absolute; height: 1px; left: 50%; right: 50%; bottom: 0; background: var(--ink); transition: .25s; }
.tab.active { color: var(--ink); }
.tab.active::after { left: 0; right: 0; }
.product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 55px; }
.product-card.is-hidden { display: none; }
.product-image-wrap { position: relative; aspect-ratio: .82; overflow: hidden; background: #f8f4ed; }
.product-image { width: 100%; height: 100%; transition: transform .5s ease; }
.product-card:hover .product-image { transform: scale(1.035); }
.product-badge { position: absolute; z-index: 2; top: 13px; left: 13px; padding: 7px 9px; background: var(--ink); color: #fff; font-size: 8px; letter-spacing: .12em; }
.product-badge.gold { background: var(--gold); }
.wish-btn { position: absolute; z-index: 2; top: 12px; right: 12px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: rgba(255,255,255,.8); font-size: 20px; line-height: 1; cursor: pointer; transition: .25s; }
.wish-btn.active { color: #a1513f; background: #fff; transform: scale(1.08); }
.quick-add { position: absolute; z-index: 2; left: 12px; right: 12px; bottom: 12px; height: 45px; display: flex; align-items: center; justify-content: space-between; padding: 0 17px; border: 0; background: rgba(23,22,17,.93); color: #fff; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; transform: translateY(65px); transition: .3s ease; cursor: pointer; }
.product-card:hover .quick-add { transform: translateY(0); }
.product-info { padding: 20px 4px 0; }
.product-kicker { margin: 0 0 8px; color: #8c8376; font-size: 8px; letter-spacing: .14em; }
.product-info h3 { margin: 0 0 11px; font-size: 13px; font-weight: 500; }
.price { display: flex; align-items: center; gap: 10px; }
.price strong { font-size: 13px; font-weight: 600; }
.price span { color: #968d81; font-size: 11px; text-decoration: line-through; }
.installment { margin: 7px 0 0; color: #8c8376; font-size: 9px; }
.center-action { margin-top: 58px; text-align: center; }

.product-crop { background-image: url("assets/product-grid.png"); background-repeat: no-repeat; background-size: 200% 200%; }
.crop-earrings { background-position: left top; }
.crop-necklace { background-position: right top; }
.crop-ring { background-position: left bottom; }
.crop-bracelet { background-position: right bottom; }

.story { display: grid; grid-template-columns: 1.08fr .92fr; min-height: 800px; background: #24251f; color: #f4f0e8; }
.story-image { min-height: 720px; overflow: hidden; }
.story-image img { width: 100%; height: 100%; object-fit: cover; }
.story-copy { display: flex; flex-direction: column; justify-content: center; padding: 90px clamp(55px, 7vw, 120px); }
.story-copy h2 { font-size: clamp(52px, 5.2vw, 82px); }
.story-copy > p:not(.eyebrow) { max-width: 520px; margin: 38px 0 32px; color: #c6c2b9; font-size: 13px; line-height: 1.9; }
.story-copy ul { margin: 0 0 34px; padding: 0; list-style: none; border-top: 1px solid rgba(255,255,255,.16); }
.story-copy li { display: flex; gap: 23px; padding: 24px 0; border-bottom: 1px solid rgba(255,255,255,.16); }
.story-copy li > span { color: #b99a68; font-family: var(--serif); font-size: 17px; }
.story-copy li p { margin: 0; }
.story-copy li strong, .story-copy li small { display: block; }
.story-copy li strong { margin-bottom: 8px; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.story-copy li small { color: #aaa69e; font-size: 11px; line-height: 1.6; }
.story-copy .text-link { width: fit-content; }

.gift-section { background: #e5ddd0; }
.gift-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: 10vw; align-items: center; }
.gift-copy > p:not(.eyebrow) { max-width: 400px; margin: 32px 0; color: #6f695f; font-size: 13px; line-height: 1.8; }
.gift-cards { border-top: 1px solid rgba(23,22,17,.3); }
.gift-card { display: grid; grid-template-columns: 48px 1fr auto; gap: 25px; align-items: center; min-height: 145px; border-bottom: 1px solid rgba(23,22,17,.3); transition: padding .3s, background .3s; }
.gift-card:hover { padding: 0 18px; background: rgba(255,255,255,.22); }
.gift-card > span { color: var(--gold); font-family: var(--serif); font-size: 16px; }
.gift-card small { display: block; margin-bottom: 10px; font-size: 8px; letter-spacing: .17em; }
.gift-card strong { font-family: var(--serif); font-size: 24px; font-weight: 400; line-height: 1.2; }
.gift-card b { font-size: 18px; font-weight: 400; }

.social-proof { background: var(--paper); }
.subcopy { margin: 24px 0 0; color: #777065; font-size: 12px; }
.subcopy strong { color: var(--ink); }
.social-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 13px; margin-top: 55px; }
.social-tile { position: relative; aspect-ratio: 1; background-color: #e8e0d4; background-repeat: no-repeat; overflow: hidden; }
.social-tile::after { content: ""; position: absolute; inset: 0; background: rgba(20,18,15,0); transition: .3s; }
.social-tile:hover::after { background: rgba(20,18,15,.25); }
.social-tile > span { position: absolute; z-index: 2; left: 16px; bottom: 15px; color: #fff; font-size: 10px; opacity: 0; transform: translateY(5px); transition: .3s; }
.social-tile:hover > span { opacity: 1; transform: none; }
.crop-hero-1 { background-image: url("assets/hero-gold-editorial.png"); background-size: cover; background-position: 75% center; }
.crop-craft { background-image: url("assets/craft-editorial.png"); background-size: cover; background-position: center; }

.newsletter { padding: 85px 0; background: #c7a878; }
.newsletter-inner { display: grid; grid-template-columns: 1fr .75fr; gap: 11vw; align-items: end; }
.newsletter h2 { font-size: clamp(45px, 4.4vw, 67px); }
.newsletter h2 em { color: #f5eee3; }
.newsletter-form label { display: block; margin-bottom: 14px; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.newsletter-form > div { display: flex; border-bottom: 1px solid rgba(23,22,17,.6); }
.newsletter-form input { flex: 1; height: 53px; padding: 0; border: 0; outline: 0; background: transparent; font-size: 13px; }
.newsletter-form input::placeholder { color: rgba(23,22,17,.65); }
.newsletter-form button { width: 45px; border: 0; background: transparent; font-size: 21px; cursor: pointer; }
.newsletter-form small { display: block; margin-top: 13px; font-size: 8px; color: rgba(23,22,17,.65); }

.footer { padding-top: 85px; color: #eae5db; background: #171713; }
.footer-grid { display: grid; grid-template-columns: 1.7fr 1fr 1fr 1.2fr; gap: 7vw; padding-bottom: 70px; }
.brand-light { width: fit-content; justify-self: start; }
.brand-light > span { font-size: 38px; }
.footer-brand > p { max-width: 280px; margin: 26px 0; color: #98968f; font-size: 11px; line-height: 1.8; }
.social-links { display: flex; gap: 9px; }
.social-links a { width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; font-size: 9px; }
.footer-col { display: flex; flex-direction: column; gap: 14px; }
.footer-col h3 { margin: 0 0 13px; color: #fff; font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.footer-col a, .footer-col p { color: #9b9992; font-size: 10px; }
.footer-col a:hover { color: #fff; }
.footer-col.contact { gap: 18px; }
.footer-col.contact p { margin: 0; line-height: 1.7; }
.footer-col.contact small { display: block; color: #6f6d67; font-size: 7px; letter-spacing: .13em; }
.footer-col.contact a { display: block; color: #c4c1b8; }
.footer-bottom { min-height: 70px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid rgba(255,255,255,.12); color: #66645f; font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.footer-bottom div { display: flex; gap: 25px; }

.search-overlay { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 30px; background: rgba(247,243,236,.97); opacity: 0; visibility: hidden; transition: .35s; }
.searching .search-overlay { opacity: 1; visibility: visible; }
.search-close { position: absolute; top: 30px; right: 40px; border: 0; background: none; font: 300 42px/1 var(--sans); cursor: pointer; }
.search-overlay form { width: min(800px, 100%); }
.search-overlay label { display: block; margin-bottom: 30px; font-family: var(--serif); font-size: clamp(42px, 6vw, 75px); }
.search-overlay form > div { display: flex; border-bottom: 1px solid var(--ink); }
.search-overlay input { flex: 1; min-width: 0; height: 65px; border: 0; outline: 0; background: none; font-size: 17px; }
.search-overlay form button { border: 0; background: none; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.search-overlay form p { margin-top: 22px; color: #8a8378; font-size: 10px; }
.search-overlay form p a { margin-left: 17px; color: var(--ink); border-bottom: 1px solid; }
.toast { position: fixed; z-index: 110; right: 25px; bottom: 25px; display: flex; align-items: center; gap: 14px; width: 300px; padding: 17px; color: #fff; background: #24251f; box-shadow: 0 15px 45px rgba(0,0,0,.25); transform: translateY(120px); opacity: 0; transition: .4s; }
.toast.show { transform: none; opacity: 1; }
.toast > span { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 50%; background: var(--gold); }
.toast p { margin: 0; }
.toast strong, .toast small { display: block; }
.toast strong { font-size: 11px; }
.toast small { margin-top: 4px; color: #aaa69d; font-size: 9px; }

.reveal { opacity: 0; transform: translateY(26px); transition: opacity .75s ease, transform .75s ease; }
.reveal.in-view { opacity: 1; transform: none; }
.delay-1 { transition-delay: .08s; }
.delay-2 { transition-delay: .16s; }
.delay-3 { transition-delay: .24s; }

@media (max-width: 1024px) {
  .container { width: min(100% - 48px, 1380px); }
  .section { padding: 90px 0; }
  .location-link { font-size: 0; }
  .benefit { padding: 0 12px; }
  .category-grid, .product-grid { grid-template-columns: repeat(2, 1fr); row-gap: 45px; }
  .category-media { aspect-ratio: 1; }
  .story { grid-template-columns: 1fr 1fr; }
  .story-copy { padding: 70px 48px; }
  .gift-grid { gap: 6vw; }
  .footer-grid { gap: 4vw; }
}

@media (max-width: 760px) {
  .container { width: calc(100% - 34px); }
  .section { padding: 75px 0; }
  .announcement { height: 34px; justify-content: center; padding: 0 15px; font-size: 8px; }
  .announcement p span { display: none; }
  .announcement a { display: none; }
  .utility-bar { height: 71px; display: flex; align-items: center; justify-content: space-between; }
  .utility-bar .location-link, .desktop-only { display: none; }
  .brand > span { font-size: 27px; }
  .brand small { margin-top: 5px; font-size: 5px; }
  .header-actions { width: 98px; flex: 0 0 98px; margin-left: auto; justify-content: space-between; gap: 0; }
  .header-actions .search-open { order: 1; }
  .header-actions .cart-btn { display: grid !important; order: 2; }
  .header-actions .menu-toggle { display: grid !important; order: 3; }
  .main-nav { position: fixed; z-index: 40; top: 105px; left: 0; right: 0; bottom: 0; padding: 24px 0; background: var(--paper); transform: translateX(100%); transition: transform .35s ease; }
  .menu-open .main-nav { transform: none; }
  .nav-inner { height: auto; flex-direction: column; align-items: flex-start; gap: 0; }
  .nav-inner a { width: 100%; padding: 17px 0; border-bottom: 1px solid var(--line); font-family: var(--serif); font-size: 26px; letter-spacing: 0; text-transform: none; }
  .hero { height: calc(100svh - 105px); min-height: 620px; }
  .hero-image { object-position: 64% center; }
  .hero-shade { background: linear-gradient(90deg, rgba(235,220,198,.52), rgba(235,220,198,.03) 80%); }
  .hero-content { justify-content: flex-end; padding-bottom: 110px; }
  .hero-content h1 { font-size: clamp(49px, 13.7vw, 56px); line-height: .94; }
  .hero-content h1 em { margin-left: 0; }
  .hero-copy { max-width: 270px; margin: 22px 0; font-size: 12px; }
  .hero-buttons { align-items: flex-start; flex-direction: column; gap: 20px; }
  .hero-index { left: 17px; bottom: 22px; }
  .hero-note { display: none; }
  .benefits { overflow: auto; }
  .benefits-grid { width: max-content; min-height: 86px; grid-template-columns: repeat(4, 210px); }
  .benefit { justify-content: flex-start; padding: 0 24px; }
  h2 { font-size: 50px; }
  .category-grid { grid-template-columns: repeat(2, 1fr); gap: 28px 12px; margin-top: 42px; }
  .category-media { margin-bottom: 15px; }
  .category-card > span { font-size: 21px; }
  .product-heading { align-items: flex-start; flex-direction: column; }
  .product-tabs { width: 100%; gap: 23px; overflow: auto; }
  .tab { white-space: nowrap; }
  .product-grid { grid-template-columns: repeat(2, 1fr); gap: 34px 10px; margin-top: 35px; }
  .product-image-wrap { aspect-ratio: .8; }
  .product-info { padding-top: 14px; }
  .product-info h3 { min-height: 32px; font-size: 11px; line-height: 1.4; }
  .quick-add { transform: none; left: 8px; right: 8px; bottom: 8px; height: 38px; }
  .product-badge { top: 8px; left: 8px; padding: 5px 6px; font-size: 6px; }
  .wish-btn { top: 7px; right: 7px; width: 30px; height: 30px; }
  .price { align-items: flex-start; flex-direction: column; gap: 4px; }
  .center-action { margin-top: 45px; }
  .story { grid-template-columns: 1fr; }
  .story-image { min-height: 590px; }
  .story-copy { padding: 75px 24px; }
  .story-copy h2 { font-size: 52px; }
  .gift-grid { grid-template-columns: 1fr; gap: 60px; }
  .gift-card { grid-template-columns: 35px 1fr auto; gap: 14px; min-height: 120px; }
  .gift-card strong { font-size: 20px; }
  .social-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; margin-top: 40px; }
  .newsletter { padding: 70px 0; }
  .newsletter-inner { grid-template-columns: 1fr; gap: 55px; }
  .newsletter h2 { font-size: 46px; }
  .footer { padding-top: 65px; }
  .footer-grid { grid-template-columns: repeat(2, 1fr); gap: 50px 25px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-col.contact { grid-column: 1 / -1; }
  .footer-bottom { align-items: flex-start; flex-direction: column; justify-content: center; gap: 12px; padding: 22px 0; }
  .search-close { top: 20px; right: 20px; }
  .search-overlay form > div { align-items: stretch; }
  .search-overlay form p { line-height: 2.4; }
  .search-overlay form p a { margin-left: 8px; }
  .toast { left: 15px; right: 15px; bottom: 15px; width: auto; }
  .delay-1, .delay-2, .delay-3 { transition-delay: 0s; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
