:root {
  --black: #0a0a0a;
  --charcoal: #171717;
  --white: #ffffff;
  --off-white: #f7f6f3;
  --line: #d9d9d6;
  --muted: #6b6b68;
  --max: 1440px;
  --header-h: 104px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--black);
  background: var(--white);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
body.menu-open, body.dialog-open { overflow: hidden; }
img { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }

.skip-link {
  position: fixed; left: 16px; top: -60px; z-index: 9999;
  background: var(--black); color: white; padding: 12px 16px;
}
.skip-link:focus { top: 16px; }

.announcement {
  min-height: 32px; display: flex; align-items: center; justify-content: center; gap: 10px;
  background: var(--black); color: white; font-size: 10px; letter-spacing: .22em;
}
.announcement-dot { opacity: .5; }

.site-header {
  height: var(--header-h); position: sticky; top: 0; z-index: 100;
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  padding: 0 4vw; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
}
.brand { display: flex; width: 230px; height: 88px; align-items:center; justify-content:center; }
.brand img { max-width:100%; max-height:100%; object-fit: contain; }
.desktop-nav { display: flex; align-items: center; gap: clamp(18px,2vw,34px); font-size: 12px; text-transform: uppercase; letter-spacing: .13em; }
.desktop-nav a { position: relative; padding: 12px 0; }
.desktop-nav a::after { content:""; position:absolute; left:0; bottom:7px; width:100%; height:1px; background:var(--black); transform:scaleX(0); transform-origin:right; transition:transform .25s ease; }
.desktop-nav a:hover::after { transform:scaleX(1); transform-origin:left; }
.right-nav { justify-content: flex-end; }
.icon-button { width: 42px; height: 42px; border: 0; background: transparent; padding: 10px; cursor: pointer; }
.icon-button svg { fill:none; stroke:currentColor; stroke-width:1.5; width:100%; height:100%; }
.menu-button { display:none; }

.mobile-menu { position: fixed; z-index: 99; inset: calc(32px + var(--header-h)) 0 0 0; background: white; padding: 28px 6vw; }
.mobile-menu a { display:block; padding:18px 0; font-family: Georgia, 'Times New Roman', serif; font-size: clamp(28px,8vw,46px); border-bottom:1px solid var(--line); }
.search-panel { position: fixed; z-index: 110; top:32px; left:0; right:0; padding: 32px 4vw; background:white; border-bottom:1px solid var(--line); box-shadow:0 18px 50px rgba(0,0,0,.08); }
.search-inner { max-width: 900px; margin:auto; }
.search-inner label { display:block; font-size:11px; letter-spacing:.16em; text-transform:uppercase; margin-bottom:12px; }
.search-field { display:flex; align-items:center; border-bottom:1px solid black; }
.search-field input { flex:1; border:0; padding:14px 0; outline:0; font-family:Georgia,serif; font-size:28px; }
.search-close { border:0; background:transparent; font-size:32px; cursor:pointer; }

.hero { max-width: var(--max); margin:0 auto; display:grid; grid-template-columns: .92fr 1.08fr; min-height: calc(100vh - 136px); }
.hero-copy { display:flex; flex-direction:column; justify-content:center; padding: 7vw 5vw 7vw 6vw; }
.eyebrow { margin:0 0 22px; font-size:10px; font-weight:700; letter-spacing:.24em; text-transform:uppercase; }
.eyebrow.light { color:#bdbdbd; }
h1,h2 { font-family: Georgia, 'Times New Roman', serif; font-weight:400; letter-spacing:-.035em; line-height:.98; }
h1 { font-size: clamp(54px, 6.7vw, 112px); margin:0 0 32px; }
h2 { font-size: clamp(42px, 4.8vw, 76px); margin:0; }
.hero-intro { max-width: 520px; font-size: clamp(16px,1.4vw,20px); color:#4f4f4d; margin:0 0 38px; }
.hero-actions { display:flex; align-items:center; gap:30px; flex-wrap:wrap; }
.button { display:inline-flex; justify-content:center; align-items:center; min-height:50px; padding:0 26px; border:1px solid; text-transform:uppercase; letter-spacing:.14em; font-size:11px; cursor:pointer; transition:all .25s ease; }
.button-dark { background:var(--black); color:white; border-color:var(--black); }
.button-dark:hover { background:white; color:var(--black); }
.button-light { background:white; color:var(--black); border-color:white; }
.button-light:hover { background:transparent; color:white; }
.text-link { display:inline-flex; align-items:center; gap:10px; font-size:12px; text-transform:uppercase; letter-spacing:.12em; border-bottom:1px solid currentColor; padding-bottom:4px; }
.hero-visual { padding: 30px 4vw 50px 0; display:flex; align-items:center; }
.hero-image-wrap { position:relative; width:100%; height:min(76vh, 900px); background:var(--off-white); overflow:hidden; }
.hero-image-wrap img { height:100%; object-fit:cover; transition:transform 1.2s ease; }
.hero-image-wrap:hover img { transform:scale(1.02); }
.image-caption { position:absolute; left:20px; bottom:20px; background:white; padding:10px 12px; font-size:9px; letter-spacing:.18em; }

.value-strip { border-top:1px solid var(--line); border-bottom:1px solid var(--line); display:grid; grid-template-columns:repeat(4,1fr); max-width:var(--max); margin:auto; }
.value-strip > div { padding:24px 2.4vw; border-right:1px solid var(--line); }
.value-strip > div:last-child { border-right:0; }
.value-strip strong { display:block; font-family:Georgia,serif; font-size:17px; font-weight:400; margin-bottom:4px; }
.value-strip span { display:block; font-size:11px; color:var(--muted); }

.section { max-width:var(--max); margin:0 auto; padding:110px 4vw; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:54px; }
.section-heading > p { max-width:510px; margin:0; color:var(--muted); }
.section-heading.compact { margin-bottom:32px; }
.shop-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:16px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-bottom:30px; }
.filters { display:flex; gap:12px; flex-wrap:wrap; }
.filter { border:0; background:transparent; padding:8px 11px; font-size:11px; letter-spacing:.11em; text-transform:uppercase; cursor:pointer; }
.filter.active { background:var(--black); color:white; }
.sort-label { display:flex; gap:10px; align-items:center; font-size:11px; letter-spacing:.11em; text-transform:uppercase; }
.sort-label select { border:0; background:transparent; outline:0; }
.product-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:44px 18px; }
.product-card { min-width:0; }
.product-image-wrap { position:relative; }
.product-image-button { position:relative; width:100%; padding:0; border:0; background:#f7f7f5; overflow:hidden; cursor:pointer; aspect-ratio:4/5; }
.product-image-button img { height:100%; object-fit:cover; transition:opacity .35s ease, transform .65s ease; }
.product-image-button .secondary { position:absolute; inset:0; opacity:0; }
.product-image-button:hover .primary { opacity:0; }
.product-image-button:hover .secondary { opacity:1; transform:scale(1.015); }
.product-badge { position:absolute; left:12px; top:12px; z-index:2; background:white; padding:7px 9px; font-size:8px; letter-spacing:.18em; text-transform:uppercase; }
.wishlist { position:absolute; right:10px; top:10px; z-index:2; width:40px; height:40px; border:0; border-radius:50%; background:rgba(255,255,255,.9); cursor:pointer; font-size:20px; }
.wishlist.active { background:var(--black); color:white; }
.product-info { padding-top:16px; display:grid; grid-template-columns:1fr auto; gap:5px 15px; }
.product-brand { grid-column:1/-1; margin:0; font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.product-title { margin:0; font-family:Georgia,serif; font-size:19px; font-weight:400; }
.product-price { margin:0; font-size:12px; align-self:end; white-space:nowrap; }
.product-meta { grid-column:1/-1; margin:3px 0 0; color:var(--muted); font-size:11px; }
.no-results { text-align:center; padding:80px 20px; color:var(--muted); }

.editorial { padding:0; display:grid; grid-template-columns:1.15fr .85fr; background:var(--black); color:white; }
.editorial-image { min-height:760px; }
.editorial-image img { height:100%; object-fit:cover; }
.editorial-copy { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:8vw 5vw; }
.editorial-copy p:not(.eyebrow) { color:#bfbfbf; max-width:520px; margin:30px 0 34px; }

.story { display:grid; grid-template-columns:.86fr 1.14fr; gap:7vw; align-items:center; }
.story-copy > p:not(.eyebrow):not(.fine-print) { max-width:620px; font-size:18px; color:#4f4f4d; margin-top:30px; }
.fine-print { margin-top:36px; padding-top:20px; border-top:1px solid var(--line); font-size:10px; color:var(--muted); }
.story-gallery { display:grid; grid-template-columns:1fr 1fr; gap:14px; align-items:start; }
.story-gallery img { object-fit:cover; aspect-ratio:4/5; }
.story-gallery img:nth-child(2) { margin-top:70px; }

.sell { background:var(--black); color:white; display:grid; grid-template-columns:.8fr 1.2fr; gap:8vw; max-width:none; padding-left:max(4vw,calc((100vw - var(--max))/2 + 4vw)); padding-right:max(4vw,calc((100vw - var(--max))/2 + 4vw)); }
.sell-intro p:not(.eyebrow) { max-width:520px; color:#bdbdbd; margin-top:28px; }
.sell-form { display:flex; flex-direction:column; gap:24px; }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.sell-form label { display:flex; flex-direction:column; gap:9px; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#c8c8c8; }
.sell-form input,.sell-form select,.sell-form textarea { border:0; border-bottom:1px solid #656565; background:transparent; color:white; border-radius:0; padding:11px 0; outline:0; text-transform:none; letter-spacing:0; }
.sell-form select option { color:black; }
.sell-form textarea { resize:vertical; }
.submit-sell { align-self:flex-start; }

.instagram-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; }
.instagram-grid img { aspect-ratio:1/1; object-fit:cover; transition:filter .3s ease; }
.instagram-grid img:hover { filter:grayscale(1); }

.footer { background:var(--black); color:white; display:grid; grid-template-columns:1.4fr .7fr .7fr 1.1fr; gap:5vw; padding:80px max(4vw,calc((100vw - var(--max))/2 + 4vw)) 32px; }
.footer-brand img { width:180px; background:white; }
.footer-brand p { color:#a9a9a9; }
.footer-column,.footer-newsletter { display:flex; flex-direction:column; align-items:flex-start; gap:10px; }
.footer h3 { font-size:10px; letter-spacing:.18em; text-transform:uppercase; margin:0 0 10px; }
.footer a,.footer span,.footer p { font-size:12px; color:#bdbdbd; }
.footer a:hover { color:white; }
.footer-policy-links a { color:#bdbdbd; }
.footer-policy-links a:hover { color:white; }
.footer-newsletter .button { margin-top:10px; color:black; }
.footer-newsletter .button:hover { color:white; }
.footer-bottom { grid-column:1/-1; display:flex; justify-content:space-between; gap:20px; border-top:1px solid #343434; padding-top:24px; margin-top:30px; }

.whatsapp-float { position:fixed; right:22px; bottom:22px; z-index:90; width:56px; height:56px; border-radius:50%; display:grid; place-items:center; background:var(--black); color:white; box-shadow:0 10px 35px rgba(0,0,0,.25); }
.whatsapp-float svg { width:26px; fill:currentColor; }

.product-dialog { width:min(1200px,94vw); max-height:92vh; border:0; padding:0; background:white; box-shadow:0 30px 100px rgba(0,0,0,.25); }
.product-dialog::backdrop { background:rgba(0,0,0,.72); }
.dialog-close { position:absolute; right:15px; top:10px; z-index:3; border:0; background:white; width:42px; height:42px; font-size:30px; cursor:pointer; }
.dialog-layout { display:grid; grid-template-columns:1.15fr .85fr; min-height:680px; }
.dialog-gallery { padding:24px; background:#f4f4f2; }
.main-image-wrap { height:580px; background:white; }
.main-image-wrap img { height:100%; object-fit:contain; }
.thumbnail-row { display:flex; gap:8px; overflow-x:auto; padding-top:12px; }
.thumbnail-row button { width:72px; height:86px; flex:0 0 auto; padding:0; border:1px solid transparent; background:white; cursor:pointer; }
.thumbnail-row button.active { border-color:black; }
.thumbnail-row img { height:100%; object-fit:cover; }
.dialog-info { padding:80px 55px 40px; display:flex; flex-direction:column; align-items:flex-start; }
.dialog-info h2 { font-size:clamp(38px,4vw,62px); margin-bottom:20px; }
.dialog-price { font-size:16px; margin:0 0 30px; }
.detail-list { width:100%; border-top:1px solid var(--line); }
.detail-list div { display:flex; justify-content:space-between; gap:20px; padding:15px 0; border-bottom:1px solid var(--line); font-size:11px; }
.detail-list span { color:var(--muted); text-transform:uppercase; letter-spacing:.1em; }
.detail-list strong { font-weight:400; text-align:right; }
.dialog-description { color:var(--muted); margin:28px 0; }
.full-width { width:100%; }
.dialog-note { font-size:10px; color:var(--muted); margin-top:16px; }

.reveal { opacity:0; transform:translateY(20px); transition:opacity .75s ease, transform .75s ease; }
.reveal.visible { opacity:1; transform:none; }

@media (max-width: 1050px) {
  :root { --header-h: 82px; }
  .desktop-nav { display:none; }
  .menu-button { display:block; justify-self:start; }
  .site-header { grid-template-columns:1fr auto 1fr; }
  .brand { width:180px; height:68px; }
  .hero { grid-template-columns:1fr 1fr; min-height:auto; }
  .hero-copy { padding:80px 5vw; }
  .hero-visual { padding:20px 4vw 40px 0; }
  .product-grid { grid-template-columns:repeat(2,1fr); }
  .value-strip { grid-template-columns:repeat(2,1fr); }
  .value-strip > div:nth-child(2) { border-right:0; }
  .value-strip > div:nth-child(-n+2) { border-bottom:1px solid var(--line); }
  .footer { grid-template-columns:1.2fr 1fr 1fr; }
  .footer-newsletter { grid-column:1/-1; border-top:1px solid #343434; padding-top:30px; }
}

@media (max-width: 760px) {
  .announcement { font-size:8px; }
  .site-header { padding:0 18px; }
  .brand { width:150px; height:58px; }
  .right-nav { display:flex; justify-self:end; }
  .right-nav a { display:none; }
  .search-button { display:block; justify-self:end; }
  .hero { display:flex; flex-direction:column; }
  .hero-copy { padding:70px 22px 45px; }
  .hero-visual { padding:0 0 0; }
  .hero-image-wrap { height:68vh; min-height:500px; }
  .value-strip { grid-template-columns:1fr; }
  .value-strip > div { border-right:0; border-bottom:1px solid var(--line); padding:20px 22px; }
  .value-strip > div:last-child { border-bottom:0; }
  .section { padding:80px 20px; }
  .section-heading { align-items:flex-start; flex-direction:column; margin-bottom:34px; }
  .shop-toolbar { align-items:flex-start; flex-direction:column; }
  .filters { gap:4px; }
  .product-grid { grid-template-columns:repeat(2,1fr); gap:32px 8px; }
  .product-title { font-size:15px; }
  .product-price { grid-column:1/-1; }
  .editorial { grid-template-columns:1fr; }
  .editorial-image { min-height:520px; }
  .editorial-copy { padding:70px 24px; }
  .story { grid-template-columns:1fr; }
  .story-gallery img:nth-child(2) { margin-top:35px; }
  .sell { grid-template-columns:1fr; padding:80px 22px; }
  .field-row { grid-template-columns:1fr; }
  .instagram-grid { grid-template-columns:repeat(2,1fr); }
  .footer { grid-template-columns:1fr 1fr; padding:65px 22px 28px; }
  .footer-brand,.footer-newsletter { grid-column:1/-1; }
  .footer-bottom { flex-direction:column; }
  .dialog-layout { grid-template-columns:1fr; }
  .product-dialog { width:100vw; max-height:100vh; height:100vh; }
  .dialog-gallery { padding:12px; }
  .main-image-wrap { height:52vh; }
  .dialog-info { padding:38px 22px 60px; }
  .dialog-info h2 { font-size:38px; }
}

@media (max-width: 430px) {
  h1 { font-size:51px; }
  .hero-actions { align-items:flex-start; flex-direction:column; }
  .product-grid { grid-template-columns:1fr; }
  .product-image-button { aspect-ratio:4/5; }
  .footer { grid-template-columns:1fr; }
  .footer-column { grid-column:1/-1; }
}

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


/* Policy pages */
.policy-page .site-header { position:sticky; }
.policy-page .brand { width:210px; }
.policy-hero { background:var(--off-white); border-bottom:1px solid var(--line); padding:90px 6vw 70px; }
.policy-hero-inner { max-width:980px; margin:0 auto; }
.policy-hero h1 { font-size:clamp(48px,7vw,92px); margin-bottom:20px; }
.policy-hero p { max-width:720px; color:var(--muted); font-size:17px; }
.policy-content { max-width:980px; margin:0 auto; padding:80px 6vw 110px; }
.policy-content h2 { font-family:Georgia,serif; font-size:34px; margin:54px 0 18px; line-height:1.1; }
.policy-content h2:first-child { margin-top:0; }
.policy-content h3 { font-size:14px; text-transform:uppercase; letter-spacing:.12em; margin:30px 0 12px; }
.policy-content p,.policy-content li { color:#444; font-size:15px; line-height:1.75; }
.policy-content ul { padding-left:22px; }
.policy-notice { margin:30px 0; padding:22px; border:1px solid var(--line); background:var(--off-white); }
.policy-back { display:inline-flex; margin-top:30px; }
@media (max-width:760px) {
  .policy-hero { padding:70px 22px 55px; }
  .policy-content { padding:55px 22px 85px; }
}
