/* ============================================================
   PRIVÉ ROTATIONS — Main Stylesheet
   ============================================================ */

/* ---------- TOKENS ---------- */
:root {
  --ink: #0c0b0a;
  --bone: #ece5d8;
  --brass: #a9854f;
  --burgundy: #3d1420;
  --graphite: #54504a;
  --hair: rgba(236, 229, 216, 0.14);
}

/* ---------- RESET ---------- */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  background: var(--ink);
  color: var(--bone);
  font-family: 'Inter', sans-serif;
  font-weight: 300;
  overflow-x: hidden;
}
::selection { background: var(--brass); color: var(--ink); }
a { color: inherit; text-decoration: none; }
h1, h2, h3 { font-family: 'Fraunces', serif; font-weight: 400; letter-spacing: -0.01em; }

/* ---------- UTILITIES ---------- */
.eyebrow {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  letter-spacing: 0.32em;
  text-transform: uppercase;
  color: var(--brass);
  font-weight: 500;
}
.container { max-width: 1240px; margin: 0 auto; }
.container--narrow { max-width: 1100px; margin: 0 auto; }
section { padding: 130px 5vw; position: relative; }
.section-head { max-width: 640px; margin-bottom: 70px; }
.section-head .eyebrow { display: block; margin-bottom: 22px; }
.section-head h2 { font-size: clamp(28px, 4vw, 46px); line-height: 1.1; }

/* ---------- REVEAL ANIMATION ---------- */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity .9s ease, transform .9s ease; }
.reveal.in { opacity: 1; transform: translateY(0); }
@keyframes rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }

/* ---------- NAV ---------- */
nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  display: flex; align-items: center; justify-content: space-between;
  padding: 26px 5vw;
  transition: transform 0.35s ease;
  border-bottom: 1px solid var(--hair);
  background-color: rgba(0,0,0,.5);
  backdrop-filter: blur(14px);
}
nav.nav-hidden { transform: translateY(-100%); }
.wordmark { font-family: 'Fraunces', serif; font-size: 17px; letter-spacing: 0.03em; display: flex; align-items: center; gap: 9px; color: currentColor; }
.wordmark .wm-icon { color: #ece5d8; }
.navlinks { display: none; gap: 40px; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; }
.navlinks a { opacity: 0.78; transition: opacity .3s; }
.navlinks a.active { opacity: 1; border-bottom: 1px solid var(--brass); padding-bottom: 4px; }
.navlinks a:hover { opacity: 1; }
@media (min-width: 860px) { .navlinks { display: flex; } }

.link-quiet {
  font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase;
  color: rgba(236, 229, 216, 0.55);
  border-bottom: 1px solid rgba(236, 229, 216, 0.3);
  padding-bottom: 3px; transition: .3s;
}
.link-quiet:hover { color: var(--bone); border-color: var(--bone); }

/* ---------- BUTTON ---------- */
.btn-primary {
  padding: 16px 34px; border: 1px solid var(--brass); font-size: 11px;
  letter-spacing: 0.24em; text-transform: uppercase; color: var(--bone);
  transition: all .4s; position: relative; overflow: hidden;
  display: inline-block; background: none; cursor: pointer;
  font-family: 'Inter', sans-serif;
}
.btn-primary span { position: relative; z-index: 2; }
.btn-primary::before {
  content: ""; position: absolute; inset: 0; background: var(--brass);
  transform: translateX(-101%); transition: transform .45s cubic-bezier(.7, 0, .3, 1); z-index: 1;
}
.btn-primary:hover::before { transform: translateX(0); }
.btn-primary:hover { color: var(--ink); }

/* ---------- FORM FIELDS ---------- */
.gate-form { display: flex; flex-direction: column; }
.field-row { display: grid; grid-template-columns: 1fr; }
@media (min-width: 640px) { .field-row.two { grid-template-columns: 1fr 1fr; gap: 0 30px; } }
.field {
  border-bottom: 1px solid var(--hair); padding: 22px 2px;
  display: flex; flex-direction: column; gap: 8px; transition: border-color .3s;
}
.field:focus-within { border-color: var(--brass); }
.field label { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(236, 229, 216, 0.45); }
.field input, .field select, .field textarea {
  background: transparent; border: none; outline: none; color: var(--bone);
  font-family: 'Inter', sans-serif; font-size: 16px; font-weight: 300; padding: 4px 0; resize: none;
}
.field textarea { line-height: 1.6; }
.field select option { background: var(--ink); }
.field input::placeholder { color: rgba(236, 229, 216, 0.25); }
.checkbox-field {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 26px 2px; border-bottom: 1px solid var(--hair);
}
.checkbox-field input { margin-top: 4px; accent-color: var(--brass); width: 15px; height: 15px; flex-shrink: 0; }
.checkbox-field label { font-size: 13.5px; line-height: 1.7; color: rgba(236, 229, 216, 0.6); text-transform: none; letter-spacing: 0; }

/* ---------- FAQ ACCORDION ---------- */
.faq-list { display: flex; flex-direction: column; max-width: 820px; }
.faq-item { border-top: 1px solid var(--hair); }
.faq-list .faq-item:last-child { border-bottom: 1px solid var(--hair); }
.faq-q {
  width: 100%; display: flex; align-items: center; justify-content: space-between;
  gap: 20px; padding: 28px 2px; background: none; border: none; color: var(--bone);
  text-align: left; cursor: pointer; font-family: 'Fraunces', serif; font-size: 19px;
}
.faq-q .plus { font-family: 'Inter', sans-serif; font-size: 20px; color: var(--brass); transition: transform .35s; flex-shrink: 0; }
.faq-item.open .plus { transform: rotate(45deg); }
.faq-a { max-height: 0; overflow: hidden; transition: max-height .4s ease; }
.faq-item.open .faq-a { max-height: 220px; }
.faq-a p { padding: 0 2px 28px; font-size: 14.5px; line-height: 1.75; color: rgba(236, 229, 216, 0.6); max-width: 640px; }

/* ---------- CLOSE CTA (shared) ---------- */
.close-cta { text-align: center; }
.close-cta h2 { font-size: clamp(30px, 4.6vw, 52px); max-width: 700px; margin: 0 auto 34px; line-height: 1.15; }

/* ---------- FOOTER ---------- */
footer { padding: 70px 5vw 40px; border-top: 1px solid var(--hair); }
.footer-top {
  display: flex; flex-direction: column; gap: 40px;
  padding-bottom: 50px; border-bottom: 1px solid var(--hair);
}
@media (min-width: 760px) { .footer-top { flex-direction: row; justify-content: space-between; } }
.footer-word { font-family: 'Fraunces', serif; font-size: 23px; display: flex; align-items: center; gap: 14px; }
.footer-word .fw-text { display: flex; flex-direction: column; }
.footer-word .fw-sub { font-family: 'Inter', sans-serif; font-size: 9px; letter-spacing: 0.28em; text-transform: uppercase; color: rgba(236, 229, 216, 0.4); margin-top: 5px; font-weight: 400; }
.footer-cols { display: flex; gap: 70px; flex-wrap: wrap; }
.fcol { display: flex; flex-direction: column; gap: 12px; }
.fcol .ftitle { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--brass); margin-bottom: 6px; }
.fcol a { font-size: 13.5px; color: rgba(236, 229, 216, 0.6); transition: color .3s; }
.fcol a:hover { color: var(--bone); }
.fcol a.active { color: var(--brass); }
.footer-bottom {
  display: flex; flex-direction: column; gap: 10px;
  padding-top: 26px; font-size: 11px; color: rgba(236, 229, 216, 0.35);
}
@media (min-width: 760px) { .footer-bottom { flex-direction: row; justify-content: space-between; } }
.footer-bottom a { color: rgba(236, 229, 216, 0.5); transition: color .3s; }
.footer-bottom a:hover { color: var(--brass); }

/* ---------- PAGE HEADER (inner pages) ---------- */
.page-header {
  min-height: 60vh; display: flex; flex-direction: column;
  justify-content: flex-end; padding: 0 5vw 90px;
  position: relative; border-bottom: 1px solid var(--hair);
}
.page-header::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 55% 45% at 85% 15%, rgba(169, 133, 79, 0.14), transparent 60%),
    radial-gradient(ellipse 50% 40% at 5% 90%, rgba(61, 20, 32, 0.35), transparent 65%);
  pointer-events: none;
}
.breadcrumb {
  display: flex; align-items: center; gap: 10px;
  font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase;
  color: rgba(236, 229, 216, 0.4); margin-bottom: 30px; padding-top: 140px;
}
.breadcrumb a { color: rgba(236, 229, 216, 0.6); transition: color .3s; }
.breadcrumb a:hover { color: var(--brass); }
.page-header h1 { font-size: clamp(38px, 6.4vw, 84px); line-height: 1.04; max-width: 920px; position: relative; }
.page-header h1 em { font-style: italic; color: var(--brass); }
.page-sub { max-width: 520px; margin-top: 28px; font-size: 16px; line-height: 1.75; color: rgba(236, 229, 216, 0.66); position: relative; }

/* ---------- LEDE / TWO-COL INTRO (story, provenance) ---------- */
.lede { border-bottom: 1px solid var(--hair); }
.lede-grid { display: grid; grid-template-columns: 1fr; gap: 60px; }
@media (min-width: 900px) { .lede-grid { grid-template-columns: 0.8fr 1fr; gap: 100px; } }
.lede-label { position: sticky; top: 140px; align-self: start; }
.lede-label .yr { font-family: 'Fraunces', serif; font-style: italic; font-size: 56px; color: var(--brass); line-height: 1; }
.lede-label .yl { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(236, 229, 216, 0.45); margin-top: 10px; }
.lede-label .mono-num { font-family: 'Fraunces', serif; font-style: italic; font-size: 15px; color: var(--brass); }
.lede-label .yl-wide { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(236, 229, 216, 0.45); margin-top: 10px; max-width: 200px; line-height: 1.6; }
.lede-body p { font-size: 19px; line-height: 1.9; color: rgba(236, 229, 216, 0.78); font-weight: 300; }
.lede-body p + p { margin-top: 26px; }
.lede-body .drop { font-family: 'Fraunces', serif; font-size: 64px; float: left; line-height: 0.8; padding-right: 14px; padding-top: 8px; color: var(--brass); font-style: italic; }

/* ---------- TIMELINE (story) ---------- */
.timeline { border-bottom: 1px solid var(--hair); }
.tl-row { display: grid; grid-template-columns: 110px 1fr; gap: 30px; border-top: 1px solid var(--hair); padding: 44px 0; }
.tl-row:last-child { border-bottom: 1px solid var(--hair); }
.tl-year { font-family: 'Fraunces', serif; font-style: italic; font-size: 20px; color: var(--brass); }
.tl-content h3 { font-size: 24px; margin-bottom: 12px; }
.tl-content p { font-size: 15px; line-height: 1.75; color: rgba(236, 229, 216, 0.62); max-width: 640px; }

/* ---------- PRINCIPLES GRID (story) ---------- */
.principles-grid { display: grid; grid-template-columns: 1fr; gap: 1px; background: var(--hair); border: 1px solid var(--hair); }
@media (min-width: 760px) { .principles-grid { grid-template-columns: repeat(3, 1fr); } }
.p-cell { background: var(--ink); padding: 50px 38px; }
.p-mark { font-family: 'Fraunces', serif; font-style: italic; font-size: 13px; color: var(--brass); margin-bottom: 24px; display: block; }
.p-cell h3 { font-size: 22px; margin-bottom: 14px; }
.p-cell p { font-size: 14.5px; line-height: 1.7; color: rgba(236, 229, 216, 0.6); }

/* ---------- QUOTE SECTION ---------- */
.quote-section { text-align: center; border-bottom: 1px solid var(--hair); }
.quote-mark { font-family: 'Fraunces', serif; font-size: 70px; color: var(--brass); line-height: 1; margin-bottom: 10px; font-style: italic; }
blockquote { font-family: 'Fraunces', serif; font-size: clamp(24px, 3.4vw, 38px); max-width: 840px; margin: 0 auto; line-height: 1.4; font-style: italic; }
.quote-attr { margin-top: 30px; font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(236, 229, 216, 0.45); }

/* ---------- AUTHENTICATION PROCESS (provenance) ---------- */
.auth-process { border-bottom: 1px solid var(--hair); }
.auth-list { display: flex; flex-direction: column; }
.auth-row { display: grid; grid-template-columns: 70px 1fr; gap: 30px; border-top: 1px solid var(--hair); padding: 46px 0; }
.auth-row:last-child { border-bottom: 1px solid var(--hair); }
.auth-index { font-family: 'Fraunces', serif; font-style: italic; font-size: 15px; color: var(--brass); }
.auth-content { display: flex; flex-direction: column; gap: 12px; }
.auth-content h3 { font-size: 25px; }
.auth-content p { font-size: 15px; line-height: 1.75; color: rgba(236, 229, 216, 0.62); max-width: 660px; }
.auth-tag { display: inline-flex; align-self: flex-start; font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--brass); border: 1px solid var(--hair); padding: 6px 14px; margin-top: 4px; }

/* ---------- GUARANTEE CARDS (provenance) ---------- */
.guarantee-grid { display: grid; grid-template-columns: 1fr; gap: 1px; background: var(--hair); border: 1px solid var(--hair); }
@media (min-width: 760px) { .guarantee-grid { grid-template-columns: repeat(2, 1fr); } }
.g-cell { background: var(--ink); padding: 56px 44px; display: flex; flex-direction: column; gap: 18px; }
.g-mark { font-family: 'Fraunces', serif; font-style: italic; font-size: 36px; color: var(--brass); line-height: 1; }
.g-cell h3 { font-size: 24px; }
.g-cell p { font-size: 14.5px; line-height: 1.75; color: rgba(236, 229, 216, 0.6); }
.g-list { margin-top: 6px; display: flex; flex-direction: column; gap: 10px; }
.g-list-item { display: flex; align-items: baseline; gap: 12px; font-size: 13.5px; color: rgba(236, 229, 216, 0.65); }
.g-list-item::before { content: "—"; color: var(--brass); flex-shrink: 0; }

/* ---------- CARE TABLE (provenance) ---------- */
.care-table { display: flex; flex-direction: column; }
.care-row { display: grid; grid-template-columns: 1fr 2fr; gap: 30px; border-top: 1px solid var(--hair); padding: 34px 0; align-items: baseline; }
.care-row:last-child { border-bottom: 1px solid var(--hair); }
.care-row .label { font-family: 'Fraunces', serif; font-size: 19px; font-style: italic; color: var(--brass); }
.care-row .desc { font-size: 14.5px; line-height: 1.75; color: rgba(236, 229, 216, 0.65); }
@media (max-width: 640px) { .care-row { grid-template-columns: 1fr; gap: 10px; } }

/* ---------- CONTACT PAGE ---------- */
.contact-main { padding: 110px 5vw; border-bottom: 1px solid var(--hair); }
.contact-grid { display: grid; grid-template-columns: 1fr; gap: 70px; }
@media (min-width: 920px) { .contact-grid { grid-template-columns: 0.85fr 1fr; gap: 110px; } }
.form-side .eyebrow { display: block; margin-bottom: 22px; }
.form-side h2 { font-size: clamp(26px, 3.6vw, 40px); line-height: 1.15; margin-bottom: 16px; }
.form-side .fs-sub { font-size: 15px; line-height: 1.7; color: rgba(236, 229, 216, 0.6); margin-bottom: 50px; max-width: 460px; }
.form-submit { margin-top: 36px; align-self: flex-start; }
.form-note { margin-top: 22px; font-size: 12px; color: rgba(236, 229, 216, 0.4); line-height: 1.6; max-width: 420px; }
.info-side { display: flex; flex-direction: column; }
.info-block { border-top: 1px solid var(--hair); padding: 32px 0; }
.info-block:last-child { border-bottom: 1px solid var(--hair); }
.info-block .i-label { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--brass); margin-bottom: 12px; }
.info-block .i-main { font-family: 'Fraunces', serif; font-size: 22px; margin-bottom: 6px; display: block; }
.info-block a.i-main { transition: color .3s; }
.info-block a.i-main:hover { color: var(--brass); }
.info-block .i-sub { font-size: 13.5px; color: rgba(236, 229, 216, 0.55); line-height: 1.7; }
.departments { padding: 120px 5vw; border-bottom: 1px solid var(--hair); }
.dept-head { max-width: 640px; margin-bottom: 70px; }
.dept-grid { display: grid; grid-template-columns: 1fr; gap: 1px; background: var(--hair); border: 1px solid var(--hair); }
@media (min-width: 760px) { .dept-grid { grid-template-columns: repeat(3, 1fr); } }
.dept-cell { background: var(--ink); padding: 48px 38px; display: flex; flex-direction: column; gap: 14px; }
.dept-mark { font-family: 'Fraunces', serif; font-style: italic; font-size: 13px; color: var(--brass); }
.dept-cell h3 { font-size: 21px; }
.dept-cell p { font-size: 14px; line-height: 1.7; color: rgba(236, 229, 216, 0.6); }
.dept-cell .dept-email { margin-top: 6px; font-size: 12.5px; letter-spacing: 0.04em; color: var(--bone); border-bottom: 1px solid rgba(236, 229, 216, 0.3); align-self: flex-start; padding-bottom: 2px; transition: .3s; }
.dept-cell .dept-email:hover { color: var(--brass); border-color: var(--brass); }

/* ---------- FINE JEWELRY PAGE ---------- */
.page-header .header-count { margin-top: 40px; display: flex; gap: 40px; flex-wrap: wrap; position: relative; }
.hc-item .n { font-family: 'Fraunces', serif; font-style: italic; font-size: 22px; color: var(--brass); }
.hc-item .l { font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(236, 229, 216, 0.45); margin-top: 4px; }
.filter-bar {
  position: sticky; top: 0; z-index: 40;
  background: rgba(12, 11, 10, 0.92); backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--hair); padding: 22px 5vw;
}
.filter-inner { max-width: 1240px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px; }
.filter-chips { display: flex; gap: 10px; flex-wrap: wrap; }
.chip { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; padding: 9px 18px; border: 1px solid var(--hair); color: rgba(236, 229, 216, 0.55); cursor: pointer; transition: all .3s; background: none; font-family: 'Inter', sans-serif; }
.chip:hover { border-color: var(--brass); color: var(--bone); }
.chip.active { border-color: var(--brass); background: var(--brass); color: var(--ink); }
.filter-sort { display: flex; align-items: center; gap: 12px; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(236, 229, 216, 0.45); }
.filter-sort select { background: none; border: none; border-bottom: 1px solid var(--hair); color: var(--bone); font-family: 'Inter', sans-serif; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; padding: 4px 0; outline: none; }
.filter-sort select option { background: var(--ink); text-transform: none; letter-spacing: 0; }
.inventory { padding: 90px 5vw 150px; }
.inv-grid { display: grid; grid-template-columns: 1fr; gap: 1px; background: var(--hair); border: 1px solid var(--hair); }
@media (min-width: 680px) { .inv-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1040px) { .inv-grid { grid-template-columns: repeat(3, 1fr); } }
.piece-card { background: var(--ink); padding: 36px 32px 32px; display: flex; flex-direction: column; transition: background .4s; cursor: pointer; position: relative; }
.piece-card:hover { background: rgba(236, 229, 216, 0.03); }
.piece-card:hover .piece-card__swatch { transform: scale(1.06); }
.piece-card:hover .pc-name { color: var(--brass); }
.pc-top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 24px; }
.pc-index { font-family: 'Fraunces', serif; font-style: italic; font-size: 13px; color: rgba(236, 229, 216, 0.35); }
.piece-status { font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; padding: 6px 14px; border: 1px solid var(--hair); color: rgba(236, 229, 216, 0.55); }
.piece-status.one { border-color: var(--brass); color: var(--brass); }
.piece-status.reserved { border-color: rgba(236, 229, 216, 0.25); color: rgba(236, 229, 216, 0.4); }
.piece-card__swatch {
  width: 100%; aspect-ratio: 1/0.85; border-radius: 2px; margin-bottom: 26px;
  transition: transform .6s cubic-bezier(.7, 0, .3, 1);
  display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
}
.piece-card__swatch::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 20%, rgba(255, 255, 255, 0.18), transparent 55%); }
.pc-name { font-size: 21px; line-height: 1.2; transition: color .35s; margin-bottom: 8px; }
.pc-meta { font-size: 11.5px; letter-spacing: 0.08em; color: rgba(236, 229, 216, 0.45); margin-bottom: 18px; }
.pc-details { display: flex; flex-direction: column; gap: 6px; margin-bottom: 24px; }
.pc-detail-row { display: flex; justify-content: space-between; font-size: 12px; }
.pc-detail-row .dl { color: rgba(236, 229, 216, 0.4); letter-spacing: 0.06em; }
.pc-detail-row .dv { color: rgba(236, 229, 216, 0.75); }
.pc-bottom { display: flex; align-items: center; justify-content: space-between; padding-top: 20px; border-top: 1px solid var(--hair); margin-top: auto; }
.pc-cta { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--bone); display: flex; align-items: center; gap: 8px; }
.pc-arrow { transition: transform .35s; }
.piece-card:hover .pc-arrow { transform: translateX(5px); color: var(--brass); }
.inv-note { text-align: center; margin-top: 70px; }
.inv-note p { font-size: 14px; color: rgba(236, 229, 216, 0.45); line-height: 1.7; max-width: 480px; margin: 0 auto 24px; }
.hidden-item { display: none !important; }
.category-band { border-top: 1px solid var(--hair); border-bottom: 1px solid var(--hair); padding: 90px 5vw; }
.cb-grid { display: grid; grid-template-columns: 1fr; gap: 1px; background: var(--hair); border: 1px solid var(--hair); }
@media (min-width: 760px) { .cb-grid { grid-template-columns: repeat(4, 1fr); } }
.cb-cell { background: var(--ink); padding: 34px 26px; text-align: center; transition: background .3s; }
.cb-cell:hover { background: rgba(169, 133, 79, 0.05); }
.cb-cell .cb-n { font-family: 'Fraunces', serif; font-style: italic; font-size: 30px; color: var(--brass); }
.cb-cell .cb-l { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(236, 229, 216, 0.55); margin-top: 8px; }
.care-strip { padding: 100px 5vw; text-align: center; }
.care-strip h2 { font-size: clamp(26px, 3.6vw, 38px); line-height: 1.2; margin-bottom: 22px; }
.care-strip p { font-size: 15px; line-height: 1.8; color: rgba(236, 229, 216, 0.6); margin-bottom: 40px; }

/* ---------- HOW IT WORKS ---------- */
.journey { border-bottom: 1px solid var(--hair); }
.j-row { display: grid; grid-template-columns: 110px 1fr; gap: 40px; border-top: 1px solid var(--hair); padding: 60px 0; align-items: start; }
.j-row:last-child { border-bottom: 1px solid var(--hair); }
.j-num { font-family: 'Fraunces', serif; font-style: italic; font-size: 48px; color: var(--brass); line-height: 1; }
.j-content { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 760px) { .j-content { grid-template-columns: 1fr 1fr; gap: 50px; } }
.j-content h3 { font-size: 28px; margin-bottom: 14px; line-height: 1.15; }
.j-desc p { font-size: 15px; line-height: 1.8; color: rgba(236, 229, 216, 0.65); }
.j-detail { border-left: 1px solid var(--hair); padding-left: 30px; }
.j-detail-row { display: flex; justify-content: space-between; gap: 14px; padding: 10px 0; font-size: 12.5px; }
.j-detail-row .dl { letter-spacing: 0.12em; text-transform: uppercase; color: rgba(236, 229, 216, 0.4); }
.j-detail-row .dv { color: var(--bone); text-align: right; }
.tiers { border-bottom: 1px solid var(--hair); }
.tier-grid { display: grid; grid-template-columns: 1fr; gap: 1px; background: var(--hair); border: 1px solid var(--hair); }
@media (min-width: 820px) { .tier-grid { grid-template-columns: repeat(3, 1fr); } }
.tier-cell { background: var(--ink); padding: 50px 38px; display: flex; flex-direction: column; gap: 16px; position: relative; }
.tier-cell.featured { background: rgba(169, 133, 79, 0.06); }
.tier-flag { position: absolute; top: 0; right: 0; font-size: 9px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink); background: var(--brass); padding: 6px 14px; }
.tier-label { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--brass); }
.tier-cell h3 { font-size: 26px; }
.tier-cell p.desc { font-size: 14px; line-height: 1.7; color: rgba(236, 229, 216, 0.6); }
.tier-feats { margin-top: 10px; display: flex; flex-direction: column; gap: 10px; }
.tier-feat { display: flex; gap: 12px; font-size: 13px; color: rgba(236, 229, 216, 0.65); align-items: baseline; }
.tier-feat::before { content: "—"; color: var(--brass); flex-shrink: 0; }
.expect { border-bottom: 1px solid var(--hair); }
.expect-grid { display: grid; grid-template-columns: 1fr; gap: 1px; background: var(--hair); border: 1px solid var(--hair); }
@media (min-width: 760px) { .expect-grid { grid-template-columns: repeat(4, 1fr); } }
.exp-cell { background: var(--ink); padding: 40px 30px; }
.exp-time { font-family: 'Fraunces', serif; font-style: italic; font-size: 14px; color: var(--brass); margin-bottom: 20px; display: block; }
.exp-cell h4 { font-family: 'Fraunces', serif; font-size: 19px; margin-bottom: 10px; font-weight: 400; }
.exp-cell p { font-size: 13px; line-height: 1.65; color: rgba(236, 229, 216, 0.58); }

/* ---------- LOGIN PAGE ---------- */
body.login-page { min-height: 100svh; display: flex; flex-direction: column; }
body.login-page nav { position: relative; z-index: 10; mix-blend-mode: normal; top: auto; left: auto; right: auto; }
body.login-page main { flex: 1; display: flex; align-items: center; justify-content: center; padding: 40px 5vw 80px; position: relative; }
body.login-page main::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 50% 45% at 82% 12%, rgba(169, 133, 79, 0.13), transparent 60%),
    radial-gradient(ellipse 45% 40% at 8% 92%, rgba(61, 20, 32, 0.32), transparent 65%);
  pointer-events: none;
}
body.login-page footer { padding: 30px 5vw; }
.login-card { width: 100%; max-width: 420px; position: relative; }
.login-eyebrow { display: flex; align-items: center; gap: 16px; margin-bottom: 30px; }
.login-eyebrow .rule { width: 32px; height: 1px; background: var(--brass); }
.login-card h1 { font-size: clamp(32px, 4.6vw, 42px); line-height: 1.1; margin-bottom: 14px; }
.login-card h1 em { font-style: italic; color: var(--brass); }
.login-sub { font-size: 14.5px; line-height: 1.75; color: rgba(236, 229, 216, 0.6); margin-bottom: 52px; }
.btn-primary.full-width { width: 100%; margin-top: 40px; padding: 17px 34px; }
.field-meta { display: flex; justify-content: flex-end; margin-top: 16px; }
.forgot-link { font-size: 12px; color: rgba(236, 229, 216, 0.5); border-bottom: 1px solid rgba(236, 229, 216, 0.25); padding-bottom: 2px; transition: .3s; }
.forgot-link:hover { color: var(--brass); border-color: var(--brass); }
.divider { display: flex; align-items: center; gap: 16px; margin: 44px 0; }
.divider .ln { flex: 1; height: 1px; background: var(--hair); }
.divider span { font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(236, 229, 216, 0.35); }
.not-member { border: 1px solid var(--hair); padding: 26px 28px; display: flex; flex-direction: column; gap: 14px; }
.not-member .nm-label { font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--brass); }
.not-member p { font-size: 13.5px; line-height: 1.7; color: rgba(236, 229, 216, 0.6); }
.not-member .nm-link { align-self: flex-start; font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--bone); border-bottom: 1px solid var(--brass); padding-bottom: 3px; transition: .3s; }
.not-member .nm-link:hover { color: var(--brass); }
.security-note { margin-top: 34px; display: flex; align-items: flex-start; gap: 10px; }
.security-note .dot { width: 5px; height: 5px; border-radius: 50%; background: var(--brass); margin-top: 6px; flex-shrink: 0; }
.security-note p { font-size: 11.5px; line-height: 1.7; color: rgba(236, 229, 216, 0.4); }

/* ---------- PAYMENT & BILLING ---------- */
.methods { border-bottom: 1px solid var(--hair); }
.method-grid { display: grid; grid-template-columns: 1fr; gap: 1px; background: var(--hair); border: 1px solid var(--hair); }
@media (min-width: 640px) { .method-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .method-grid { grid-template-columns: repeat(3, 1fr); } }
.method-cell { background: var(--ink); padding: 44px 34px; display: flex; flex-direction: column; gap: 14px; }
.method-mark { font-family: 'Fraunces', serif; font-style: italic; font-size: 13px; color: var(--brass); }
.method-cell h3 { font-size: 21px; }
.method-cell p { font-size: 13.5px; line-height: 1.7; color: rgba(236, 229, 216, 0.6); }
.method-tag { align-self: flex-start; margin-top: 4px; font-size: 9.5px; letter-spacing: 0.16em; text-transform: uppercase; padding: 5px 12px; border: 1px solid var(--hair); color: rgba(236, 229, 216, 0.5); }
.method-tag.pref { border-color: var(--brass); color: var(--brass); }
.billing { border-bottom: 1px solid var(--hair); }
.bill-list { display: flex; flex-direction: column; }
.bill-row { display: grid; grid-template-columns: 70px 1fr; gap: 30px; border-top: 1px solid var(--hair); padding: 42px 0; }
.bill-row:last-child { border-bottom: 1px solid var(--hair); }
.bill-index { font-family: 'Fraunces', serif; font-style: italic; font-size: 15px; color: var(--brass); }
.bill-content h3 { font-size: 22px; margin-bottom: 10px; }
.bill-content p { font-size: 14.5px; line-height: 1.75; color: rgba(236, 229, 216, 0.62); max-width: 640px; }
.deposit { border-bottom: 1px solid var(--hair); }
.deposit-grid { display: grid; grid-template-columns: 1fr; gap: 60px; }
@media (min-width: 900px) { .deposit-grid { grid-template-columns: 0.8fr 1fr; gap: 100px; } }
.deposit-text p { font-size: 18px; line-height: 1.9; color: rgba(236, 229, 216, 0.78); font-weight: 300; }
.deposit-list { display: flex; flex-direction: column; }
.deposit-item { border-top: 1px solid var(--hair); padding: 24px 2px; display: flex; gap: 18px; align-items: flex-start; }
.deposit-list .deposit-item:last-child { border-bottom: 1px solid var(--hair); }
.deposit-item .mk { font-family: 'Fraunces', serif; font-style: italic; color: var(--brass); font-size: 16px; flex-shrink: 0; }
.deposit-item p { font-size: 14.5px; line-height: 1.7; color: rgba(236, 229, 216, 0.65); }
.deposit-item strong { color: var(--bone); font-weight: 500; }

/* ---------- REQUEST ACCESS ---------- */
.process-section { border-bottom: 1px solid var(--hair); padding-top: 100px; }
.process-list { display: flex; flex-direction: column; }
.p-row { display: grid; grid-template-columns: 70px 1fr; gap: 30px; border-top: 1px solid var(--hair); padding: 40px 0; }
.p-row:last-child { border-bottom: 1px solid var(--hair); }
.p-index { font-family: 'Fraunces', serif; font-style: italic; font-size: 15px; color: var(--brass); }
.p-content h3 { font-size: 22px; margin-bottom: 10px; }
.p-content p { font-size: 14.5px; line-height: 1.75; color: rgba(236, 229, 216, 0.62); max-width: 600px; }
.p-eta { display: inline-block; margin-top: 12px; font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: rgba(236, 229, 216, 0.4); border: 1px solid var(--hair); padding: 6px 14px; }
.eligibility { border-bottom: 1px solid var(--hair); }
.elig-grid { display: grid; grid-template-columns: 1fr; gap: 60px; }
@media (min-width: 900px) { .elig-grid { grid-template-columns: 0.8fr 1fr; gap: 100px; } }
.elig-text p { font-size: 18px; line-height: 1.9; color: rgba(236, 229, 216, 0.78); font-weight: 300; }
.elig-list { display: flex; flex-direction: column; }
.elig-item { border-top: 1px solid var(--hair); padding: 24px 2px; display: flex; gap: 18px; align-items: flex-start; }
.elig-list .elig-item:last-child { border-bottom: 1px solid var(--hair); }
.elig-item .mk { font-family: 'Fraunces', serif; font-style: italic; color: var(--brass); font-size: 16px; flex-shrink: 0; }
.elig-item p { font-size: 14.5px; line-height: 1.7; color: rgba(236, 229, 216, 0.65); }
.elig-item strong { color: var(--bone); font-weight: 500; }
.application { border-bottom: 1px solid var(--hair); }
.app-grid { display: grid; grid-template-columns: 1fr; gap: 60px; }
@media (min-width: 960px) { .app-grid { grid-template-columns: 0.55fr 1fr; gap: 100px; } }
.app-aside { position: sticky; top: 140px; align-self: start; }
.app-aside p { font-size: 15px; line-height: 1.8; color: rgba(236, 229, 216, 0.6); margin-top: 20px; max-width: 380px; }
.aside-note { margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--hair); font-size: 12.5px; color: rgba(236, 229, 216, 0.45); line-height: 1.7; }
.form-footnote { margin-top: 22px; font-size: 12px; color: rgba(236, 229, 216, 0.4); line-height: 1.6; }

/* ---------- TERMS OF SERVICE ---------- */
.page-header.terms-header { min-height: auto; padding: 190px 5vw 70px; }
.page-meta { margin-top: 26px; display: flex; gap: 28px; flex-wrap: wrap; font-size: 12px; color: rgba(236, 229, 216, 0.45); }
.page-meta strong { color: var(--bone); font-weight: 500; }
.legal-wrap { display: grid; grid-template-columns: 1fr; gap: 60px; padding: 90px 5vw 160px; max-width: 1180px; margin: 0 auto; }
@media (min-width: 920px) { .legal-wrap { grid-template-columns: 280px 1fr; gap: 90px; } }
.toc { position: sticky; top: 120px; align-self: start; }
.toc-label { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--brass); margin-bottom: 20px; }
.toc-list { display: flex; flex-direction: column; gap: 2px; }
.toc-list a { font-size: 13px; color: rgba(236, 229, 216, 0.55); padding: 10px 0; border-top: 1px solid var(--hair); display: flex; gap: 10px; transition: color .3s; }
.toc-list a:hover { color: var(--brass); }
.toc-list a span { color: rgba(236, 229, 216, 0.3); font-family: 'Fraunces', serif; font-style: italic; flex-shrink: 0; }
.toc-list a:last-child { border-bottom: 1px solid var(--hair); }
.legal-body { max-width: 720px; }
.legal-section { padding-top: 56px; margin-top: 56px; border-top: 1px solid var(--hair); scroll-margin-top: 120px; }
.legal-section:first-child { padding-top: 0; margin-top: 0; border-top: none; }
.legal-section h2 { display: flex; align-items: baseline; gap: 16px; font-size: clamp(22px, 2.6vw, 28px); margin-bottom: 24px; }
.legal-section h2 .snum { font-family: 'Fraunces', serif; font-style: italic; font-size: 16px; color: var(--brass); }
.legal-section p { font-size: 14.5px; line-height: 1.85; color: rgba(236, 229, 216, 0.68); font-weight: 300; }
.legal-section p + p { margin-top: 16px; }
.legal-section ul { margin: 18px 0 0; list-style: none; display: flex; flex-direction: column; gap: 10px; }
.legal-section ul li { font-size: 14px; line-height: 1.75; color: rgba(236, 229, 216, 0.62); display: flex; gap: 12px; }
.legal-section ul li::before { content: "—"; color: var(--brass); flex-shrink: 0; }
.legal-note { margin-top: 20px; padding: 18px 20px; border: 1px solid var(--hair); font-size: 13px; line-height: 1.7; color: rgba(236, 229, 216, 0.5); }
.legal-note strong { color: var(--brass); font-weight: 500; }
.legal-section h3.sub { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; margin-top: 26px; margin-bottom: 10px; color: var(--bone); font-family: 'Inter', sans-serif; font-weight: 500; }

/* ---------- HOME PAGE ---------- */
.hero {
  min-height: 100svh; display: flex; flex-direction: column; justify-content: center;
  position: relative; padding: 0 5vw; border-bottom: 1px solid var(--hair);
}
.hero::before {
  content: ""; position: absolute; inset: 0;
  background:
    radial-gradient(ellipse 60% 50% at 78% 20%, rgba(169, 133, 79, 0.14), transparent 60%),
    radial-gradient(ellipse 50% 40% at 10% 85%, rgba(61, 20, 32, 0.35), transparent 65%);
  pointer-events: none;
}
.hero-inner { max-width: 1100px; margin: 0 auto; width: 100%; position: relative; }
.hero-eyebrow { display: flex; align-items: center; gap: 16px; margin-bottom: 34px; opacity: 0; animation: rise 1s .2s forwards; }
.hero-eyebrow .rule { width: 44px; height: 1px; background: var(--brass); }
.hero h1 { font-size: clamp(42px, 7.4vw, 104px); line-height: 0.98; opacity: 0; animation: rise 1.1s .35s forwards; }
.hero h1 em { font-style: italic; color: var(--brass); }
.hero-sub { max-width: 460px; margin-top: 34px; font-size: 16px; line-height: 1.75; color: rgba(236, 229, 216, 0.68); opacity: 0; animation: rise 1s .6s forwards; }
.hero-cta { margin-top: 46px; display: flex; align-items: center; gap: 28px; opacity: 0; animation: rise 1s .8s forwards; }
.hero-count { position: absolute; right: 0; bottom: -10px; text-align: right; display: none; }
@media (min-width: 860px) { .hero-count { display: block; } }
.hero-count .n { font-family: 'Fraunces', serif; font-size: 15px; color: var(--brass); }
.hero-count .l { font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(236, 229, 216, 0.45); margin-top: 4px; }
.marquee-strip { border-bottom: 1px solid var(--hair); padding: 16px 0; overflow: hidden; white-space: nowrap; background: rgba(236, 229, 216, 0.02); }
.marquee-track { display: inline-flex; gap: 60px; animation: marquee-scroll 34s linear infinite; }
.marquee-track span { font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase; color: rgba(236, 229, 216, 0.4); }
.marquee-track span.gold { color: var(--brass); }
@keyframes marquee-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.philosophy { border-bottom: 1px solid var(--hair); }
.phil-grid { display: grid; grid-template-columns: 1fr; gap: 60px; }
@media (min-width: 860px) { .phil-grid { grid-template-columns: 1fr 1fr; gap: 100px; } }
.phil-text p { font-size: 18px; line-height: 1.85; color: rgba(236, 229, 216, 0.72); font-weight: 300; }
.phil-text p + p { margin-top: 22px; }
.stat-col { display: flex; flex-direction: column; gap: 44px; }
.stat { border-top: 1px solid var(--hair); padding-top: 20px; }
.stat .num { font-family: 'Fraunces', serif; font-size: 44px; color: var(--brass); font-style: italic; }
.stat .label { font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(236, 229, 216, 0.5); margin-top: 8px; }
.collection { background: linear-gradient(180deg, transparent, rgba(61, 20, 32, 0.12) 40%, transparent); border-bottom: 1px solid var(--hair); }
.piece-list { display: flex; flex-direction: column; }
.piece { display: grid; grid-template-columns: 60px 1fr; gap: 24px; padding: 40px 0; border-top: 1px solid var(--hair); align-items: center; cursor: pointer; transition: background .4s; position: relative; }
.piece:last-child { border-bottom: 1px solid var(--hair); }
.piece:hover { background: rgba(236, 229, 216, 0.03); }
.piece:hover .piece-name { color: var(--brass); }
.piece:hover .piece__swatch { transform: scale(1.15); }
.piece-index { font-family: 'Fraunces', serif; font-style: italic; font-size: 14px; color: rgba(236, 229, 216, 0.35); }
.piece-main { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.piece-left { display: flex; align-items: center; gap: 22px; }
.piece__swatch { width: 46px; height: 46px; border-radius: 2px; flex-shrink: 0; transition: transform .5s cubic-bezier(.7, 0, .3, 1); }
.piece-name { font-family: 'Fraunces', serif; font-size: clamp(20px, 2.6vw, 30px); transition: color .35s; }
.piece-meta { font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(236, 229, 216, 0.4); margin-top: 4px; }
.piece-right { display: flex; align-items: center; gap: 30px; }
.piece-arrow { font-size: 18px; color: rgba(236, 229, 216, 0.3); transition: transform .35s; }
.piece:hover .piece-arrow { transform: translateX(6px); color: var(--brass); }
.process-grid { display: grid; grid-template-columns: 1fr; gap: 1px; background: var(--hair); border: 1px solid var(--hair); }
@media (min-width: 760px) { .process-grid { grid-template-columns: repeat(3, 1fr); } }
.process-cell { background: var(--ink); padding: 48px 38px; }
.process-mark { font-family: 'Fraunces', serif; font-style: italic; font-size: 13px; color: var(--brass); margin-bottom: 26px; display: block; }
.process-cell h3 { font-size: 23px; margin-bottom: 14px; }
.process-cell p { font-size: 14.5px; line-height: 1.7; color: rgba(236, 229, 216, 0.6); }
.gate { text-align: center; }
.gate-inner { max-width: 620px; margin: 0 auto; }
.gate h2 { font-size: clamp(32px, 5vw, 58px); line-height: 1.1; margin-bottom: 24px; }
.gate p.sub { font-size: 16px; color: rgba(236, 229, 216, 0.62); line-height: 1.75; margin-bottom: 50px; }
.gate-submit { margin-top: 40px; align-self: center; }
.gate-note { margin-top: 22px; font-size: 12px; color: rgba(236, 229, 216, 0.4); text-align: center; }
