:root {
  --ink: #291b1d;
  --wine: #6f2336;
  --rose: #d8a5ab;
  --blush: #f6e4e6;
  --blush-light: #fcf5f3;
  --cream: #f8f1e8;
  --gold: #b48b55;
  --white: #fffdf9;
  --line: rgba(41, 27, 29, 0.16);
  --shadow: 0 28px 70px rgba(55, 30, 34, 0.14);
  --serif: "Italiana", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
  --ui: "DM Sans", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--blush-light);
  color: var(--ink);
  font-family: var(--sans);
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
::selection { background: var(--wine); color: white; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
img { display: block; width: 100%; }

.page-loader {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  background: var(--wine);
  transition: opacity .7s ease, visibility .7s ease;
}
.page-loader.is-hidden { opacity: 0; visibility: hidden; }
.loader-mark { text-align: center; color: white; animation: loaderPulse 1.2s ease-in-out infinite; }
.loader-mark span { display: block; font: 96px/0.8 var(--serif); }
.loader-mark small { display: block; margin-top: 14px; font-size: 10px; letter-spacing: .5em; }
@keyframes loaderPulse { 50% { transform: scale(.96); opacity: .68; } }

.cursor-dot, .cursor-ring {
  position: fixed;
  z-index: 10000;
  pointer-events: none;
  border-radius: 50%;
  transform: translate(-50%, -50%);
}
.cursor-dot { width: 5px; height: 5px; background: var(--wine); }
.cursor-ring { width: 36px; height: 36px; border: 1px solid rgba(111,35,54,.45); transition: width .25s, height .25s, background .25s; }
.cursor-ring.hover { width: 58px; height: 58px; background: rgba(216,165,171,.18); }

.announcement-bar {
  position: relative;
  z-index: 110;
  min-height: 34px;
  padding: 7px 4vw;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: var(--wine);
  color: white;
  font-size: 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.announcement-bar p { margin: 0; }
.announcement-bar a { border-bottom: 1px solid rgba(255,255,255,.55); }

.site-header {
  position: fixed;
  top: 34px;
  left: 0;
  right: 0;
  z-index: 100;
  height: 86px;
  padding: 0 4vw;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  transition: background .35s ease, height .35s ease, top .35s ease, box-shadow .35s ease;
}
.site-header.scrolled {
  top: 0;
  height: 72px;
  background: rgba(252,245,243,.88);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: 0 1px 0 var(--line);
}
.brand { display: inline-flex; flex-direction: column; width: max-content; line-height: 1; }
.brand-name { font: 36px/0.85 var(--serif); letter-spacing: .01em; }
.brand-byline { margin: 7px 0 0 20px; font: 8px/1 var(--ui); letter-spacing: .27em; text-transform: uppercase; }
.desktop-nav { display: flex; gap: 36px; font-size: 12px; }
.desktop-nav a { position: relative; padding: 9px 0; }
.desktop-nav a::after { content:""; position:absolute; left:0; bottom:3px; width:100%; height:1px; background:var(--ink); transform:scaleX(0); transform-origin:right; transition:transform .3s; }
.desktop-nav a:hover::after { transform:scaleX(1); transform-origin:left; }
.header-actions { display: flex; justify-content: flex-end; align-items:center; gap: 18px; }
.icon-link { width: 21px; height: 21px; }
.icon-link svg { width:100%; fill:none; stroke:currentColor; stroke-width:1.5; }
.menu-button { display:none; width:38px; height:38px; border:0; background:transparent; cursor:pointer; padding:8px; }
.menu-button span { display:block; height:1px; background:currentColor; margin:6px 0; transition:transform .3s; }
.menu-button.active span:first-child { transform:translateY(3.5px) rotate(45deg); }
.menu-button.active span:last-child { transform:translateY(-3.5px) rotate(-45deg); }

.mobile-menu {
  position:fixed;
  inset:0;
  z-index:90;
  padding:130px 8vw 36px;
  background:var(--cream);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  transform:translateY(-102%);
  transition:transform .65s cubic-bezier(.76,0,.24,1);
  overflow:hidden;
}
.mobile-menu.open { transform:translateY(0); }
.mobile-menu-pattern { position:absolute; width:540px; height:540px; right:-230px; top:110px; border:1px solid var(--rose); border-radius:50%; opacity:.4; }
.mobile-menu-pattern::before, .mobile-menu-pattern::after { content:""; position:absolute; inset:70px; border:1px solid var(--rose); border-radius:50%; }
.mobile-menu-pattern::after { inset:140px; }
.mobile-menu nav { position:relative; display:grid; }
.mobile-menu nav a { display:flex; align-items:baseline; gap:22px; padding:12px 0; font:clamp(40px,9vw,72px)/1.05 var(--serif); border-bottom:1px solid var(--line); }
.mobile-menu nav span { font:10px var(--ui); letter-spacing:.15em; }
.mobile-menu-footer { position:relative; display:flex; justify-content:space-between; font-size:12px; }

.section-pad { padding: 130px 6vw; }
.eyebrow { margin:0 0 24px; font: 10px/1.2 var(--ui); text-transform:uppercase; letter-spacing:.26em; color:var(--wine); }
.eyebrow-light { color:#f4cbd0; }
h1,h2,h3,p { margin-top:0; }
h1,h2 { font-family:var(--serif); font-weight:400; }
h1 em,h2 em { color:var(--wine); font-weight:400; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:60px; margin-bottom:70px; }
.section-heading h2 { margin:0; font-size:clamp(50px,6.2vw,94px); line-height:.93; letter-spacing:-.035em; }
.section-heading > p { max-width:430px; margin:0 4vw 8px 0; color:#6e5a5e; font-size:14px; line-height:1.8; }

.hero {
  position:relative;
  min-height:100svh;
  padding:160px 6vw 70px;
  display:grid;
  grid-template-columns: 1.07fr .93fr;
  align-items:center;
  gap:6vw;
  overflow:hidden;
  background:linear-gradient(125deg, #fcf5f3 0%, #f7e8e9 60%, #edd3d6 100%);
}
.hero-copy { position:relative; z-index:2; padding-top:20px; }
.hero h1 { margin:0; font-size:clamp(62px,7.5vw,120px); line-height:.86; letter-spacing:-.045em; }
.hero-description { max-width:525px; margin:34px 0 0 5px; color:#665257; font-size:15px; line-height:1.85; }
.hero-cta-row { display:flex; align-items:center; gap:34px; margin-top:38px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:54px; padding:0 28px; border-radius:100px; font:11px var(--ui); letter-spacing:.12em; text-transform:uppercase; transition:transform .25s, background .25s, color .25s, border-color .25s; }
.button-dark { background:var(--ink); color:white; border:1px solid var(--ink); }
.button-dark:hover { background:var(--wine); border-color:var(--wine); transform:translateY(-2px); }
.button-outline { border:1px solid var(--ink); }
.button-outline:hover { background:var(--ink); color:white; transform:translateY(-2px); }
.text-link { display:inline-flex; gap:12px; align-items:center; font-size:12px; border-bottom:1px solid var(--line); padding-bottom:7px; }
.text-link span { font-size:16px; transition:transform .25s; }
.text-link:hover span { transform:translate(3px,3px); }
.hero-visual { position:relative; z-index:2; width:min(38vw,570px); height:min(72vh,790px); margin-left:auto; overflow:hidden; border-radius:220px 220px 16px 16px; box-shadow:var(--shadow); }
.hero-visual img { height:112%; object-fit:cover; object-position:center 20%; transform:scale(1.03); }
.hero-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(37,16,21,.38),transparent 42%); }
.hero-visual figcaption { position:absolute; z-index:2; left:32px; right:32px; bottom:25px; display:flex; align-items:flex-end; justify-content:space-between; color:white; }
.hero-visual figcaption span { font:10px var(--ui); }
.hero-visual figcaption p { margin:0; text-align:right; font:18px/1.35 var(--serif); }
.hero-art { position:absolute; inset:0; pointer-events:none; }
.hero-arch { position:absolute; border:1px solid rgba(111,35,54,.14); border-radius:50% 50% 0 0; }
.arch-one { width:36vw; height:64vh; left:-12vw; bottom:-1px; }
.arch-two { width:21vw; height:38vh; left:17vw; top:13vh; }
.hero-sun { position:absolute; right:32vw; top:18vh; width:90px; height:90px; border-radius:50%; background:rgba(180,139,85,.18); box-shadow:0 0 0 26px rgba(180,139,85,.06); }
.hero-side-note { position:absolute; right:1.2vw; top:50%; writing-mode:vertical-rl; transform:translateY(-50%); font:8px var(--ui); letter-spacing:.28em; opacity:.55; }
.scroll-cue { position:absolute; left:6vw; bottom:34px; display:flex; align-items:center; gap:12px; font:9px var(--ui); letter-spacing:.2em; text-transform:uppercase; }
.scroll-cue span { width:28px; height:1px; background:currentColor; animation:scrollLine 1.8s infinite; transform-origin:left; }
@keyframes scrollLine { 50% { transform:scaleX(.45); opacity:.35; } }

.marquee-section { overflow:hidden; padding:21px 0; background:var(--ink); color:var(--cream); }
.marquee-track { display:flex; align-items:center; gap:30px; width:max-content; animation:marquee 32s linear infinite; white-space:nowrap; }
.marquee-track span { font:20px var(--serif); letter-spacing:.02em; }
.marquee-track i { color:var(--rose); font-style:normal; }
@keyframes marquee { to { transform:translateX(-50%); } }

.collections { background:var(--blush-light); }
.collection-grid { display:grid; grid-template-columns:1.18fr .82fr; grid-template-rows:repeat(2,390px); gap:24px; }
.collection-card { position:relative; overflow:hidden; min-height:0; border-radius:4px; }
.collection-card-large { grid-row:span 2; }
.collection-card a { display:block; height:100%; }
.collection-card img { height:100%; object-fit:cover; transition:transform 1.1s cubic-bezier(.2,.7,.2,1); }
.collection-card:hover img { transform:scale(1.05); }
.image-wash { position:absolute; inset:0; background:linear-gradient(to top,rgba(38,17,20,.64),transparent 56%); }
.collection-card-copy { position:absolute; inset:auto 30px 28px; color:white; }
.collection-card-copy p { margin:0 0 8px; font:9px var(--ui); letter-spacing:.18em; text-transform:uppercase; }
.collection-card-copy h3 { margin:0; font:clamp(36px,4vw,66px) var(--serif); }
.collection-card-copy span { position:absolute; right:0; bottom:8px; font-size:10px; opacity:.85; }

.story { position:relative; display:grid; grid-template-columns:1fr 1fr; gap:10vw; align-items:center; background:var(--cream); overflow:hidden; }
.story-motif { position:absolute; right:-80px; top:-90px; width:420px; color:var(--rose); opacity:.2; animation:slowRotate 50s linear infinite; }
.story-motif svg { fill:none; stroke:currentColor; stroke-width:.7; }
@keyframes slowRotate { to { transform:rotate(360deg); } }
.story-image-wrap { position:relative; }
.story-image { height:690px; overflow:hidden; border-radius:260px 260px 8px 8px; }
.story-image img { height:112%; object-fit:cover; object-position:center; }
.story-image-caption { position:absolute; max-width:200px; right:-50px; bottom:55px; padding:18px; background:var(--blush-light); font:14px/1.45 var(--serif); box-shadow:var(--shadow); }
.story-copy { position:relative; z-index:2; max-width:580px; }
.story-copy h2 { margin:0 0 36px; font-size:clamp(52px,6.4vw,96px); line-height:.93; letter-spacing:-.035em; }
.story-copy p { color:#66585a; font-size:14px; line-height:1.9; }
.story-copy .story-lead { color:var(--ink); font:22px/1.55 var(--serif); }
.story-copy .button { margin-top:18px; }

.brand-values { position:relative; min-height:900px; color:white; overflow:hidden; }
.value-image, .value-overlay { position:absolute; inset:0; }
.value-image img { height:112%; object-fit:cover; }
.value-overlay { background:linear-gradient(90deg,rgba(31,13,17,.86),rgba(31,13,17,.42)); }
.value-content { position:relative; z-index:2; min-height:900px; display:flex; flex-direction:column; justify-content:center; }
.value-content h2 { max-width:850px; margin:0; font-size:clamp(58px,7vw,108px); line-height:.9; letter-spacing:-.035em; }
.value-content h2 em { color:#f1bec5; }
.value-list { width:min(100%,940px); margin-top:90px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.3); }
.value-list article { padding:28px 40px 0 0; }
.value-list article + article { padding-left:35px; border-left:1px solid rgba(255,255,255,.2); }
.value-list span { font:9px var(--ui); opacity:.65; }
.value-list h3 { margin:30px 0 12px; font:25px var(--serif); }
.value-list p { margin:0; color:rgba(255,255,255,.72); font-size:12px; line-height:1.8; }

.edit { background:var(--blush-light); overflow:hidden; }
.product-rail { display:flex; gap:24px; overflow-x:auto; scrollbar-width:none; scroll-snap-type:x mandatory; padding-bottom:12px; }
.product-rail::-webkit-scrollbar { display:none; }
.product-card { flex:0 0 min(31vw,410px); scroll-snap-align:start; }
.product-image { position:relative; height:530px; overflow:hidden; background:#e8d8d5; }
.product-image img { height:100%; object-fit:cover; transition:transform .8s ease; }
.product-card:hover img { transform:scale(1.035); }
.product-image > a { position:absolute; inset:auto 18px 18px; padding:15px; background:rgba(255,253,249,.9); backdrop-filter:blur(10px); text-align:center; font:9px var(--ui); letter-spacing:.14em; text-transform:uppercase; transform:translateY(80px); transition:transform .35s; }
.product-card:hover .product-image > a { transform:translateY(0); }
.product-tag { position:absolute; top:16px; left:16px; padding:8px 11px; background:var(--wine); color:white; font:8px var(--ui); letter-spacing:.13em; text-transform:uppercase; }
.product-card > p { margin:16px 0 5px; font:22px var(--serif); }
.product-card > span { color:#7d696d; font-size:11px; }
.rail-controls { display:flex; align-items:center; justify-content:flex-end; gap:18px; margin-top:35px; }
.rail-controls button { width:42px; height:42px; border:1px solid var(--line); border-radius:50%; background:transparent; cursor:pointer; transition:.25s; }
.rail-controls button:hover { background:var(--ink); color:white; }
.rail-progress { width:180px; height:1px; background:var(--line); overflow:hidden; }
.rail-progress span { display:block; width:25%; height:100%; background:var(--wine); transition:transform .2s; transform-origin:left; }

.quote-section { min-height:520px; padding:90px 8vw; display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; background:var(--wine); color:white; }
.quote-flower { font-size:28px; color:#f1bdc5; animation:slowRotate 12s linear infinite; }
.quote-section blockquote { max-width:1000px; margin:36px auto 24px; font:clamp(42px,6vw,82px)/1.08 var(--serif); }
.quote-section p { margin:0; font:9px var(--ui); letter-spacing:.22em; text-transform:uppercase; opacity:.7; }

.instagram { background:var(--cream); }
.instagram-grid { display:grid; grid-template-columns:1.15fr .85fr .85fr; grid-template-rows:320px 320px; gap:16px; }
.insta-tile { position:relative; overflow:hidden; }
.insta-tall { grid-row:span 2; }
.insta-wide { grid-column:span 2; }
.insta-tile img { height:100%; object-fit:cover; transition:transform .8s ease, filter .4s; }
.insta-tile span { position:absolute; inset:auto 15px 15px; padding:12px 14px; background:rgba(255,253,249,.9); font-size:9px; transform:translateY(65px); transition:transform .35s; }
.insta-tile:hover img { transform:scale(1.045); filter:saturate(.85); }
.insta-tile:hover span { transform:translateY(0); }

.contact { position:relative; min-height:650px; padding:110px 7vw; display:grid; grid-template-columns:1.3fr .7fr; gap:10vw; align-items:center; background:linear-gradient(140deg,#f4dfe1,#f9f0e7); overflow:hidden; }
.contact-pattern { position:absolute; width:620px; height:620px; border:1px solid rgba(111,35,54,.11); border-radius:50%; left:-190px; bottom:-290px; }
.contact-pattern::before,.contact-pattern::after { content:""; position:absolute; border:inherit; border-radius:inherit; inset:70px; }
.contact-pattern::after { inset:150px; }
.contact-copy,.contact-details { position:relative; z-index:2; }
.contact-copy h2 { margin:0; font-size:clamp(65px,8vw,122px); line-height:.86; letter-spacing:-.04em; }
.contact-copy p { max-width:560px; margin:34px 0; color:#6e575b; font-size:14px; line-height:1.8; }
.contact-details { border-top:1px solid var(--line); }
.contact-details div { padding:24px 0; border-bottom:1px solid var(--line); }
.contact-details span { display:block; margin-bottom:10px; color:var(--wine); font:9px var(--ui); letter-spacing:.2em; text-transform:uppercase; }
.contact-details p,.contact-details a { margin:0; font:17px var(--serif); }

footer { padding:52px 6vw 34px; display:grid; grid-template-columns:1fr auto 1fr; align-items:end; gap:30px; background:var(--ink); color:white; }
.footer-brand { display:flex; flex-direction:column; }
.footer-brand span { font:54px/.85 var(--serif); }
.footer-brand small { margin:8px 0 0 28px; font:8px var(--ui); letter-spacing:.26em; text-transform:uppercase; opacity:.7; }
.footer-links { display:flex; gap:30px; font-size:11px; }
footer > p { justify-self:end; margin:0; font-size:9px; opacity:.55; }
.back-to-top { position:fixed; z-index:70; right:22px; bottom:22px; width:46px; height:46px; border:0; border-radius:50%; background:var(--ink); color:white; cursor:pointer; opacity:0; visibility:hidden; transform:translateY(10px); transition:.3s; }
.back-to-top.visible { opacity:1; visibility:visible; transform:none; }

.reveal-up,.reveal-left,.reveal-right,.reveal-card { opacity:0; will-change:transform,opacity; }
.reveal-up { transform:translateY(55px); }
.reveal-left { transform:translateX(-55px); }
.reveal-right { transform:translateX(55px); }
.reveal-card { transform:translateY(50px) scale(.985); }
.revealed { opacity:1; transform:none; transition:opacity .85s ease, transform .85s cubic-bezier(.2,.7,.2,1); }

@media (max-width: 1100px) {
  .desktop-nav { display:none; }
  .site-header { grid-template-columns:1fr auto; }
  .menu-button { display:block; }
  .hero { grid-template-columns:1fr 1fr; gap:3vw; }
  .hero h1 { font-size:clamp(56px,8vw,88px); }
  .hero-visual { width:43vw; }
  .story { gap:7vw; }
  .story-image-caption { right:-20px; }
  .product-card { flex-basis:42vw; }
}

@media (max-width: 760px) {
  .cursor-dot,.cursor-ring { display:none; }
  .announcement-bar { justify-content:center; text-align:center; min-height:30px; padding:7px 16px; font-size:8px; }
  .announcement-bar a { display:none; }
  .site-header { top:30px; height:74px; padding:0 20px; }
  .site-header.scrolled { height:66px; }
  .brand-name { font-size:31px; }
  .brand-byline { font-size:7px; margin-left:15px; }
  .icon-link { display:none; }
  .mobile-menu { padding:110px 22px 28px; }
  .section-pad { padding:88px 20px; }
  .section-heading { display:block; margin-bottom:44px; }
  .section-heading h2 { font-size:clamp(48px,15vw,68px); }
  .section-heading > p { margin-top:24px; }
  .section-heading .text-link,.section-heading .button { margin-top:25px; }
  .hero { min-height:100svh; padding:124px 20px 70px; display:flex; flex-direction:column; justify-content:center; align-items:stretch; }
  .hero-copy { z-index:4; padding:0; margin-top:auto; }
  .hero h1 { max-width:92%; font-size:clamp(58px,17vw,82px); line-height:.88; }
  .hero-description { max-width:90%; margin-top:26px; font-size:13px; line-height:1.7; }
  .hero-cta-row { gap:20px; margin-top:28px; flex-wrap:wrap; }
  .button { min-height:50px; padding:0 22px; font-size:9px; }
  .hero-visual { position:absolute; inset:0; width:100%; height:100%; border-radius:0; opacity:.28; }
  .hero-visual img { height:100%; filter:grayscale(.2); }
  .hero-visual::after { background:linear-gradient(to top,rgba(252,245,243,.98) 18%,rgba(247,232,233,.6) 70%,rgba(247,232,233,.2)); }
  .hero-visual figcaption { display:none; }
  .hero-art { z-index:2; }
  .arch-one { width:85vw; height:55vh; left:-35vw; }
  .arch-two { width:52vw; height:29vh; left:52vw; top:18vh; }
  .hero-side-note { display:none; }
  .scroll-cue { left:20px; bottom:24px; z-index:4; }
  .marquee-track span { font-size:16px; }
  .collection-grid { display:block; }
  .collection-card { height:490px; margin-bottom:16px; }
  .collection-card:not(.collection-card-large) { height:365px; }
  .collection-card-copy { inset:auto 20px 20px; }
  .collection-card-copy span { position:static; display:block; margin-top:8px; }
  .story { display:block; }
  .story-image { height:520px; }
  .story-image-caption { right:0; bottom:-24px; }
  .story-copy { margin-top:78px; }
  .story-copy h2 { font-size:clamp(52px,15vw,72px); }
  .story-copy .story-lead { font-size:19px; }
  .brand-values,.value-content { min-height:950px; }
  .value-content { justify-content:flex-end; padding-bottom:75px; }
  .value-content h2 { font-size:clamp(54px,15vw,74px); }
  .value-list { display:block; margin-top:55px; }
  .value-list article,.value-list article + article { padding:22px 0; border-left:0; border-bottom:1px solid rgba(255,255,255,.2); }
  .value-list h3 { margin:13px 0 8px; }
  .product-card { flex-basis:82vw; }
  .product-image { height:470px; }
  .product-image > a { transform:none; }
  .rail-controls { justify-content:center; }
  .quote-section { min-height:480px; padding:70px 22px; }
  .instagram-grid { grid-template-columns:1fr 1fr; grid-template-rows:330px 220px 300px; }
  .insta-tall { grid-row:auto; grid-column:span 2; }
  .insta-wide { grid-column:span 2; }
  .insta-tile span { transform:none; }
  .contact { min-height:760px; padding:90px 20px; display:block; }
  .contact-copy h2 { font-size:clamp(66px,18vw,92px); }
  .contact-details { margin-top:70px; }
  footer { grid-template-columns:1fr; align-items:start; }
  .footer-links { flex-wrap:wrap; }
  footer > p { justify-self:start; }
}

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

/* --- E-commerce additions --- */
.sr-only { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
[hidden] { display:none !important; }
body.overlay-open { overflow:hidden; }
.desktop-nav a.is-active::after { transform:scaleX(1); }
.cart-toggle {
  min-width:56px;
  padding:8px 0;
  border:0;
  border-bottom:1px solid var(--line);
  background:transparent;
  color:inherit;
  font:10px var(--ui);
  letter-spacing:.15em;
  text-transform:uppercase;
  cursor:pointer;
}
.cart-toggle span { display:inline-grid; place-items:center; min-width:18px; height:18px; margin-left:5px; border-radius:50%; background:var(--ink); color:white; font-size:8px; }

.collection-grid-four { grid-template-rows:360px 360px 430px; }
.collection-card-wide { grid-column:1 / -1; }
.collection-card-wide img { object-position:center 38%; }

.commerce-card { position:relative; }
.commerce-card .product-image { background:linear-gradient(145deg,var(--tone,#efe2df),#f8f1e8); border-radius:2px; }
.commerce-card .product-image::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(to top,rgba(42,20,25,.12),transparent 42%); }
.commerce-card .product-image img { object-position:center 15%; filter:saturate(.94) contrast(.99); }
.product-image-button { display:block; width:100%; height:100%; padding:0; border:0; background:transparent; cursor:pointer; }
.product-quick-action { position:absolute; z-index:3; inset:auto 16px 16px; width:calc(100% - 32px); padding:14px 16px; border:0; background:rgba(255,253,249,.92); backdrop-filter:blur(12px); color:var(--ink); text-align:center; font:9px var(--ui); letter-spacing:.15em; text-transform:uppercase; transform:translateY(78px); transition:transform .35s ease,background .25s,color .25s; cursor:pointer; }
.commerce-card:hover .product-quick-action { transform:translateY(0); }
.product-card-info { display:grid; grid-template-columns:1fr auto; gap:5px 16px; align-items:start; padding-top:16px; }
.product-card-info h3 { margin:0; font:22px/1.15 var(--serif); }
.product-card-info .price { margin:1px 0 0; font:12px var(--ui); }
.product-card-info .category-name { margin:0; color:#7d696d; font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.mini-add { grid-column:2; grid-row:1 / span 2; width:38px; height:38px; border:1px solid var(--line); border-radius:50%; background:transparent; font-size:20px; line-height:1; cursor:pointer; transition:.25s; }
.mini-add:hover { background:var(--ink); border-color:var(--ink); color:white; }

.lookbook { background:var(--cream); }
.lookbook-grid { display:grid; grid-template-columns:1.15fr .85fr .85fr; grid-template-rows:320px 320px; gap:16px; }
.lookbook-tile { position:relative; overflow:hidden; background:#eadfda; }
.lookbook-tall { grid-row:span 2; }
.lookbook-wide { grid-column:span 2; }
.lookbook-tile img { height:100%; object-fit:cover; object-position:center 18%; filter:saturate(.92); transition:transform .8s ease; }
.lookbook-tile::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(38,17,20,.48),transparent 52%); }
.lookbook-tile span { position:absolute; z-index:2; left:18px; bottom:18px; color:white; font:16px var(--serif); }
.lookbook-tile:hover img { transform:scale(1.04); }

/* Shop page */
.shop-header:not(.scrolled) { color:var(--ink); }
.shop-hero { position:relative; min-height:760px; padding:175px 6vw 90px; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:7vw; overflow:hidden; background:linear-gradient(128deg,#fbf4f0 0%,#f4dedf 62%,#efd4d5 100%); }
.shop-hero::before { content:""; position:absolute; left:-12vw; bottom:-36vw; width:58vw; height:58vw; border:1px solid rgba(111,35,54,.12); border-radius:50%; box-shadow:0 0 0 85px rgba(111,35,54,.035),0 0 0 170px rgba(111,35,54,.025); }
.shop-hero-copy { position:relative; z-index:3; max-width:720px; }
.shop-hero h1 { margin:0; font-size:clamp(70px,8.2vw,132px); line-height:.84; letter-spacing:-.045em; }
.shop-hero-copy > p:last-child { max-width:540px; margin:34px 0 0 5px; color:#665257; font-size:14px; line-height:1.85; }
.shop-hero-images { position:relative; min-height:580px; }
.shop-portrait { position:absolute; margin:0; overflow:hidden; box-shadow:var(--shadow); background:#eadedb; }
.shop-portrait img { height:100%; object-fit:cover; object-position:center 12%; }
.shop-portrait-one { width:min(31vw,450px); height:560px; right:5vw; top:0; border-radius:220px 220px 10px 10px; z-index:2; }
.shop-portrait-two { width:min(21vw,310px); height:420px; left:-1vw; bottom:-15px; border:10px solid rgba(255,253,249,.7); z-index:3; }
.shop-hero-motif { position:absolute; right:-2vw; bottom:-35px; z-index:4; width:110px; height:110px; display:grid; place-items:center; border-radius:50%; background:var(--wine); color:#f5cbd0; font-size:28px; animation:slowRotate 16s linear infinite; }

.catalog-section { padding:95px 5vw 130px; background:var(--blush-light); }
.catalog-toolbar { position:sticky; top:72px; z-index:40; display:flex; align-items:center; justify-content:space-between; gap:30px; margin:0 -5vw; padding:18px 5vw; background:rgba(252,245,243,.9); border-top:1px solid var(--line); border-bottom:1px solid var(--line); backdrop-filter:blur(18px); }
.category-tabs { display:flex; align-items:center; gap:8px; overflow-x:auto; scrollbar-width:none; }
.category-tabs::-webkit-scrollbar { display:none; }
.category-tabs button { flex:0 0 auto; padding:11px 18px; border:1px solid var(--line); border-radius:100px; background:transparent; color:var(--ink); font:9px var(--ui); letter-spacing:.12em; text-transform:uppercase; cursor:pointer; transition:.25s; }
.category-tabs button:hover,.category-tabs button.active { background:var(--ink); border-color:var(--ink); color:white; }
.catalog-search { width:min(310px,30vw); flex:0 0 auto; display:flex; align-items:center; gap:10px; padding:10px 0; border-bottom:1px solid var(--ink); }
.catalog-search svg { width:17px; fill:none; stroke:currentColor; stroke-width:1.5; }
.catalog-search input { width:100%; border:0; outline:0; background:transparent; color:var(--ink); font-size:12px; }
.catalog-search input::placeholder { color:#8a777a; }
.catalog-meta { display:flex; align-items:center; justify-content:space-between; margin:48px 0 24px; }
.catalog-meta p { margin:0; color:#746165; font:10px var(--ui); letter-spacing:.17em; text-transform:uppercase; }
.catalog-meta button { border:0; border-bottom:1px solid var(--line); background:transparent; color:var(--wine); font-size:10px; cursor:pointer; }
.catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:58px 22px; }
.catalog-card { min-width:0; }
.catalog-image { position:relative; aspect-ratio:4 / 5.35; overflow:hidden; background:linear-gradient(145deg,var(--tone,#eadfda),#f5eee8); }
.catalog-image::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(to top,rgba(39,17,22,.15),transparent 38%); }
.catalog-image img { height:100%; object-fit:cover; object-position:center 11%; filter:saturate(.94) contrast(.99); transition:transform .75s cubic-bezier(.2,.7,.2,1); }
.catalog-card:hover .catalog-image img { transform:scale(1.035); }
.catalog-badge { position:absolute; z-index:2; left:14px; top:14px; padding:8px 10px; background:rgba(255,253,249,.9); color:var(--wine); font:8px var(--ui); letter-spacing:.13em; text-transform:uppercase; }
.catalog-quick { position:absolute; z-index:3; right:14px; top:14px; width:36px; height:36px; border:0; border-radius:50%; background:rgba(255,253,249,.9); color:var(--ink); font-size:15px; cursor:pointer; transition:.25s; }
.catalog-quick:hover { background:var(--ink); color:white; transform:rotate(8deg); }
.catalog-add { position:absolute; z-index:3; left:14px; right:14px; bottom:14px; min-height:48px; border:0; background:rgba(255,253,249,.93); color:var(--ink); backdrop-filter:blur(12px); font:9px var(--ui); letter-spacing:.15em; text-transform:uppercase; transform:translateY(74px); transition:transform .35s,background .25s,color .25s; cursor:pointer; }
.catalog-card:hover .catalog-add { transform:translateY(0); }
.catalog-add:hover { background:var(--ink); color:white; }
.catalog-info { display:grid; grid-template-columns:1fr auto; gap:7px 15px; padding-top:16px; }
.catalog-info h3 { margin:0; font:23px/1.15 var(--serif); }
.catalog-info .catalog-price { margin:2px 0 0; font:12px var(--ui); }
.catalog-info .catalog-category { grid-column:1 / -1; margin:0; color:#7c686c; font:9px var(--ui); letter-spacing:.15em; text-transform:uppercase; }
.catalog-no-results { padding:110px 20px; text-align:center; }
.catalog-no-results > span { color:var(--wine); font-size:28px; }
.catalog-no-results h2 { margin:20px 0 12px; font-size:56px; }
.catalog-no-results p { color:#746165; }
.catalog-no-results .button { margin-top:18px; }

.shop-service-strip { display:grid; grid-template-columns:repeat(3,1fr); padding:0 6vw 110px; background:var(--blush-light); }
.shop-service-strip article { padding:32px 5vw 0 0; border-top:1px solid var(--line); }
.shop-service-strip article + article { padding-left:4vw; border-left:1px solid var(--line); }
.shop-service-strip span { color:var(--wine); font:9px var(--ui); letter-spacing:.15em; }
.shop-service-strip h3 { margin:28px 0 12px; font:26px var(--serif); }
.shop-service-strip p { max-width:310px; margin:0; color:#746165; font-size:12px; line-height:1.7; }
.shop-cta { padding:110px 7vw; display:flex; align-items:flex-end; justify-content:space-between; gap:50px; background:linear-gradient(130deg,#f4dfe1,#f8eee4); }
.shop-cta h2 { margin:0; font-size:clamp(54px,7vw,105px); line-height:.9; letter-spacing:-.04em; }

/* Cart drawer */
.drawer-backdrop,.modal-backdrop { position:fixed; inset:0; z-index:310; background:rgba(31,16,20,.43); opacity:0; visibility:hidden; transition:.35s; backdrop-filter:blur(3px); }
.drawer-backdrop.open,.modal-backdrop.open { opacity:1; visibility:visible; }
.cart-drawer { position:fixed; z-index:320; top:0; right:0; width:min(460px,100%); height:100dvh; padding:28px; display:flex; flex-direction:column; background:var(--white); transform:translateX(102%); transition:transform .5s cubic-bezier(.76,0,.24,1); box-shadow:-25px 0 80px rgba(34,17,21,.16); }
.cart-drawer.open { transform:translateX(0); }
.cart-head { display:flex; align-items:flex-start; justify-content:space-between; padding-bottom:22px; border-bottom:1px solid var(--line); }
.cart-head .eyebrow { margin-bottom:9px; }
.cart-head h2 { margin:0; font-size:42px; }
.cart-head > button { width:42px; height:42px; border:1px solid var(--line); border-radius:50%; background:transparent; font-size:25px; cursor:pointer; }
.cart-items { flex:1; min-height:0; overflow:auto; padding-right:4px; }
.cart-item { display:grid; grid-template-columns:88px 1fr auto; gap:16px; padding:20px 0; border-bottom:1px solid var(--line); }
.cart-item-image { width:88px; height:116px; overflow:hidden; background:#eee2df; }
.cart-item-image img { height:100%; object-fit:cover; object-position:center 12%; }
.cart-item-info h3 { margin:0 0 7px; font:19px var(--serif); }
.cart-item-info p { margin:0 0 13px; color:#766267; font-size:10px; }
.cart-qty { width:max-content; display:flex; align-items:center; border:1px solid var(--line); }
.cart-qty button { width:29px; height:29px; border:0; background:transparent; cursor:pointer; }
.cart-qty span { min-width:25px; text-align:center; font-size:10px; }
.cart-item-side { display:flex; flex-direction:column; align-items:flex-end; justify-content:space-between; }
.cart-item-side strong { font-size:11px; font-weight:500; }
.cart-remove { border:0; border-bottom:1px solid var(--line); background:transparent; color:#8b6b70; font-size:9px; cursor:pointer; }
.cart-empty { flex:1; display:none; place-items:center; align-content:center; padding:50px 25px; text-align:center; }
.cart-empty.visible { display:grid; }
.cart-empty > span { color:var(--wine); font-size:30px; }
.cart-empty h3 { margin:20px 0 10px; font:35px var(--serif); }
.cart-empty p { margin:0 0 26px; color:#746165; font-size:12px; line-height:1.7; }
.cart-foot { padding-top:20px; border-top:1px solid var(--line); }
.cart-foot.hidden { display:none; }
.cart-subtotal { display:flex; justify-content:space-between; align-items:center; }
.cart-subtotal span { font:10px var(--ui); letter-spacing:.15em; text-transform:uppercase; }
.cart-subtotal strong { font:24px var(--serif); font-weight:400; }
.cart-foot > p { margin:13px 0 19px; color:#7a666a; font-size:10px; line-height:1.6; }
.cart-foot .button { width:100%; border:0; cursor:pointer; }

/* Quick view and checkout */
.quick-modal,.checkout-modal { position:fixed; z-index:330; left:50%; top:50%; width:min(920px,calc(100% - 34px)); max-height:calc(100dvh - 34px); overflow:auto; background:var(--white); opacity:0; visibility:hidden; transform:translate(-50%,-46%) scale(.98); transition:.35s; box-shadow:0 30px 100px rgba(34,17,21,.24); }
.quick-modal.open,.checkout-modal.open { opacity:1; visibility:visible; transform:translate(-50%,-50%) scale(1); }
.quick-modal-inner { display:grid; grid-template-columns:1.02fr .98fr; min-height:620px; }
.quick-modal-image { min-height:620px; background:#eee3df; }
.quick-modal-image img { height:100%; object-fit:cover; object-position:center 10%; }
.quick-gallery { min-height:620px; display:grid; grid-template-rows:1fr auto; background:color-mix(in srgb, var(--tone, #eee3df) 18%, #fffaf6); }
.quick-gallery .quick-modal-image { position:relative; min-height:520px; overflow:hidden; }
.quick-gallery .quick-modal-image img { height:100%; object-fit:cover; object-position:center 8%; transition:opacity .25s ease, transform .45s ease; }
.gallery-arrow { position:absolute; z-index:2; top:50%; width:42px; height:42px; border:1px solid rgba(255,255,255,.72); border-radius:50%; background:rgba(255,253,249,.82); color:var(--wine); font-size:28px; line-height:1; display:grid; place-items:center; cursor:pointer; transform:translateY(-50%); box-shadow:0 12px 30px rgba(41,27,29,.15); transition:.22s ease; }
.gallery-arrow:hover { background:var(--white); transform:translateY(-50%) scale(1.05); }
.gallery-prev { left:18px; }
.gallery-next { right:18px; }
.gallery-counter { position:absolute; left:18px; bottom:18px; padding:8px 12px; border-radius:999px; background:rgba(255,253,249,.86); color:var(--wine); font:10px var(--ui); letter-spacing:.12em; }
.gallery-thumbnails { display:flex; gap:10px; padding:13px 16px 16px; overflow-x:auto; border-top:1px solid rgba(41,27,29,.08); }
.gallery-thumb { flex:0 0 68px; height:86px; padding:0; overflow:hidden; border:1px solid transparent; background:transparent; cursor:pointer; opacity:.58; transition:.22s ease; }
.gallery-thumb img { width:100%; height:100%; object-fit:cover; object-position:center top; }
.gallery-thumb.active { opacity:1; border-color:var(--wine); transform:translateY(-2px); }
.quick-gallery-hint { margin:12px 0 0; color:#8a6e74; font-size:10px; line-height:1.6; }

.quick-modal-copy { position:relative; padding:65px 58px 48px; display:flex; flex-direction:column; justify-content:center; }
.modal-close { position:absolute; z-index:3; top:20px; right:20px; width:42px; height:42px; border:1px solid var(--line); border-radius:50%; background:var(--white); font-size:23px; cursor:pointer; }
.quick-modal-copy h2 { margin:0; font-size:clamp(45px,5vw,68px); line-height:.95; }
.quick-price { margin:20px 0; font:18px var(--serif); }
.quick-description { color:#6f5b60; font-size:13px; line-height:1.8; }
.size-label { margin:22px 0 12px; font:9px var(--ui); letter-spacing:.16em; text-transform:uppercase; }
.size-options { display:flex; flex-wrap:wrap; gap:8px; }
.size-options button { min-width:44px; height:42px; padding:0 13px; border:1px solid var(--line); background:transparent; font-size:10px; cursor:pointer; transition:.2s; }
.size-options button.active { background:var(--ink); border-color:var(--ink); color:white; }
.quick-add { width:100%; margin-top:27px; border:0; cursor:pointer; }
.quick-note { margin:15px 0 0; color:#877378; font-size:9px; line-height:1.6; }

.checkout-modal { width:min(620px,calc(100% - 34px)); padding:54px; }
.checkout-modal h2 { margin:0; font-size:54px; line-height:.95; }
.checkout-intro { margin:20px 0 32px; color:#6f5b60; font-size:12px; line-height:1.7; }
.checkout-form { display:grid; grid-template-columns:1fr 1fr; gap:17px; }
.checkout-form label { display:grid; gap:8px; font:9px var(--ui); letter-spacing:.13em; text-transform:uppercase; }
.checkout-form label:first-child,.checkout-form label:last-of-type { grid-column:1 / -1; }
.checkout-form input,.checkout-form textarea { width:100%; padding:14px 0; border:0; border-bottom:1px solid var(--line); outline:0; background:transparent; color:var(--ink); font:13px var(--sans); text-transform:none; letter-spacing:0; }
.checkout-form textarea { min-height:80px; resize:vertical; }
.checkout-form input:focus,.checkout-form textarea:focus { border-color:var(--wine); }
.checkout-summary { margin:28px 0 20px; padding:18px; background:var(--cream); }
.checkout-summary p { display:flex; justify-content:space-between; margin:0; font-size:11px; }
.checkout-summary p + p { margin-top:9px; }
.checkout-submit { width:100%; border:0; cursor:pointer; }
.checkout-disclaimer { margin:13px 0 0; color:#877378; font-size:9px; line-height:1.6; text-align:center; }
.toast { position:fixed; z-index:500; left:50%; bottom:28px; max-width:calc(100% - 40px); padding:13px 18px; border-radius:100px; background:var(--ink); color:white; font-size:10px; letter-spacing:.05em; opacity:0; visibility:hidden; transform:translate(-50%,15px); transition:.3s; }
.toast.show { opacity:1; visibility:visible; transform:translate(-50%,0); }

@media (max-width:1100px) {
  .collection-grid-four { grid-template-rows:330px 330px 390px; }
  .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .shop-hero { grid-template-columns:.9fr 1.1fr; }
  .shop-portrait-one { width:37vw; right:0; }
  .shop-portrait-two { width:25vw; }
}

@media (max-width:760px) {
  .cart-toggle { min-width:auto; padding:7px 0; font-size:9px; }
  .cart-toggle span { min-width:17px; height:17px; }
  .collection-grid-four { display:block; }
  .collection-card-wide { height:365px; }
  .product-quick-action { transform:none; }
  .lookbook-grid { grid-template-columns:1fr 1fr; grid-template-rows:330px 220px 300px; }
  .lookbook-tall { grid-row:auto; grid-column:span 2; }
  .lookbook-wide { grid-column:span 2; }
  .shop-hero { min-height:690px; padding:125px 20px 60px; display:block; }
  .shop-hero-copy { position:relative; z-index:5; padding-top:35px; }
  .shop-hero h1 { max-width:90%; font-size:clamp(65px,18vw,88px); }
  .shop-hero-copy > p:last-child { max-width:86%; margin-top:25px; font-size:12px; }
  .shop-hero-images { position:absolute; inset:0; min-height:0; opacity:.3; }
  .shop-portrait-one { inset:0; width:100%; height:100%; border-radius:0; box-shadow:none; }
  .shop-portrait-one img { object-position:center 8%; }
  .shop-portrait-two,.shop-hero-motif { display:none; }
  .shop-hero::after { content:""; position:absolute; inset:0; z-index:2; background:linear-gradient(to top,rgba(251,244,240,.98) 20%,rgba(244,222,223,.68) 72%,rgba(244,222,223,.28)); }
  .catalog-section { padding:45px 16px 85px; }
  .catalog-toolbar { top:66px; display:block; margin:0 -16px; padding:13px 16px 14px; }
  .category-tabs { margin-bottom:13px; }
  .category-tabs button { padding:10px 14px; }
  .catalog-search { width:100%; }
  .catalog-meta { margin:34px 0 18px; }
  .catalog-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:34px 10px; }
  .catalog-badge { left:8px; top:8px; padding:6px 7px; font-size:6.5px; }
  .catalog-quick { right:8px; top:8px; width:31px; height:31px; }
  .catalog-add { left:7px; right:7px; bottom:7px; min-height:40px; padding:0 4px; font-size:7px; transform:none; }
  .catalog-info { display:block; padding-top:11px; }
  .catalog-info h3 { font-size:17px; }
  .catalog-info .catalog-price { margin-top:6px; font-size:10px; }
  .catalog-info .catalog-category { margin-top:7px; font-size:7px; }
  .shop-service-strip { grid-template-columns:1fr; padding:0 20px 75px; }
  .shop-service-strip article,.shop-service-strip article + article { padding:24px 0; border-left:0; border-top:1px solid var(--line); }
  .shop-cta { padding:82px 20px; display:block; }
  .shop-cta h2 { font-size:clamp(52px,15vw,72px); }
  .shop-cta .button { margin-top:35px; }
  .cart-drawer { padding:22px 18px; }
  .cart-head h2 { font-size:37px; }
  .cart-item { grid-template-columns:74px 1fr auto; gap:11px; }
  .cart-item-image { width:74px; height:100px; }
  .cart-item-info h3 { font-size:16px; }
  .quick-modal { width:calc(100% - 20px); }
  .quick-modal-inner { display:block; min-height:0; }
  .quick-modal-image { height:48vh; min-height:340px; }
  .quick-gallery { min-height:0; }
  .quick-gallery .quick-modal-image { min-height:340px; }
  .gallery-arrow { width:38px; height:38px; font-size:25px; }
  .gallery-prev { left:12px; }
  .gallery-next { right:12px; }
  .gallery-counter { left:12px; bottom:12px; }
  .gallery-thumbnails { padding:10px 12px 12px; gap:8px; }
  .gallery-thumb { flex-basis:56px; height:72px; }

  .quick-modal-copy { padding:38px 22px 28px; }
  .quick-modal-copy h2 { font-size:43px; }
  .modal-close { top:12px; right:12px; background:rgba(255,253,249,.9); }
  .checkout-modal { width:calc(100% - 20px); padding:44px 20px 25px; }
  .checkout-modal h2 { font-size:44px; }
  .checkout-form { grid-template-columns:1fr; }
  .checkout-form label,.checkout-form label:first-child,.checkout-form label:last-of-type { grid-column:1; }
}

@keyframes catalogIn { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:none; } }
.catalog-in { animation:catalogIn .65s both cubic-bezier(.2,.7,.2,1); animation-delay:var(--delay,0ms); }
@media (prefers-reduced-motion:reduce) { .catalog-in { animation:none; } }

.product-card-info > div { grid-column:1; grid-row:1; }
.product-card-info .price { grid-column:1; grid-row:2; }
.checkout-summary,.checkout-submit,.checkout-disclaimer { grid-column:1 / -1; }

/* What Celebrities Wear page */
.celebrity-hero {
  position:relative;
  min-height:760px;
  padding:170px 6vw 100px;
  display:grid;
  grid-template-columns:minmax(0,0.9fr) minmax(380px,0.8fr);
  align-items:center;
  gap:8vw;
  overflow:hidden;
  background:
    radial-gradient(circle at 82% 18%, rgba(244,198,203,.6), transparent 32%),
    linear-gradient(126deg,#fffaf3 0%,#f8e8e6 52%,#edd1d3 100%);
}
.celebrity-hero::before {
  content:"";
  position:absolute;
  left:-15vw;
  bottom:-35vw;
  width:58vw;
  height:58vw;
  border:1px solid rgba(111,35,54,.12);
  border-radius:50%;
  box-shadow:0 0 0 90px rgba(111,35,54,.035),0 0 0 180px rgba(111,35,54,.025);
}
.celebrity-hero-copy { position:relative; z-index:4; }
.celebrity-hero h1 { margin:0; max-width:820px; font-size:clamp(72px,8.5vw,138px); line-height:.84; letter-spacing:-.052em; }
.celebrity-hero h1 em { color:var(--wine); }
.celebrity-hero-copy > p:not(.eyebrow) { max-width:560px; margin:34px 0 0 5px; color:#665257; font-size:14px; line-height:1.85; }
.celebrity-actions { display:flex; align-items:center; gap:26px; flex-wrap:wrap; margin:38px 0 0; }
.celebrity-visuals { position:relative; min-height:580px; z-index:3; }
.celebrity-card { position:absolute; overflow:hidden; margin:0; background:#ead8d4; box-shadow:0 35px 90px rgba(85,38,48,.2); }
.celebrity-card img { width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.045); filter:saturate(.96) contrast(.96); }
.celebrity-card-main { right:0; top:0; width:72%; height:92%; border-radius:999px 999px 22px 22px; }
.celebrity-card-main img { object-position:center 12%; }
.celebrity-card-float { left:0; bottom:20px; width:45%; height:58%; border-radius:24px 24px 180px 180px; border:12px solid rgba(255,250,243,.72); }
.celebrity-card-float img { object-position:center 8%; }
.celebrity-seal { position:absolute; right:5%; bottom:6%; width:132px; height:132px; border-radius:50%; display:grid; place-items:center; background:var(--wine); color:#ffeef0; box-shadow:0 22px 50px rgba(111,35,54,.24); animation:slowRotate 18s linear infinite; }
.celebrity-seal span { max-width:70px; text-align:center; font:9px var(--ui); letter-spacing:.22em; text-transform:uppercase; line-height:1.7; }
.celebrity-intro { background:var(--blush-light); }
.celebrity-placeholder-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; margin-top:54px; }
.celebrity-placeholder { min-height:420px; padding:18px 18px 26px; border:1px solid var(--line); background:rgba(255,253,249,.72); display:flex; flex-direction:column; justify-content:flex-end; }
.placeholder-frame { position:relative; flex:1; min-height:275px; display:grid; place-items:center; overflow:hidden; border-radius:220px 220px 18px 18px; background:
    radial-gradient(circle at 50% 22%, rgba(111,35,54,.13), transparent 32%),
    linear-gradient(145deg,#fbf4f0,#e9d0cf); }
.placeholder-frame::before { content:""; position:absolute; inset:20px; border:1px solid rgba(111,35,54,.16); border-radius:inherit; }
.placeholder-frame::after { content:""; position:absolute; width:90px; height:90px; border:1px solid rgba(111,35,54,.16); border-radius:50%; box-shadow:0 0 0 28px rgba(111,35,54,.04); animation:slowRotate 18s linear infinite; }
.placeholder-frame span { position:relative; z-index:2; font:9px var(--ui); letter-spacing:.24em; text-transform:uppercase; color:var(--wine); }
.celebrity-placeholder h3 { margin:26px 0 9px; font:30px var(--serif); }
.celebrity-placeholder p { margin:0; color:#746165; font-size:12px; line-height:1.7; }
.celebrity-submit { padding:120px 6vw; background:linear-gradient(135deg,#220f15,#6f2336); color:white; overflow:hidden; position:relative; }
.celebrity-submit::after { content:""; position:absolute; right:-180px; top:-180px; width:450px; height:450px; border:1px solid rgba(255,255,255,.13); border-radius:50%; box-shadow:0 0 0 80px rgba(255,255,255,.035); }
.celebrity-submit-inner { position:relative; z-index:2; max-width:900px; }
.celebrity-submit .eyebrow { color:#f5cbd0; }
.celebrity-submit h2 { margin:0; font-size:clamp(54px,6.5vw,106px); line-height:.9; letter-spacing:-.045em; }
.celebrity-submit p:not(.eyebrow) { max-width:550px; margin:28px 0 0; color:rgba(255,255,255,.72); font-size:13px; line-height:1.8; }

@media (max-width: 980px) {
  .celebrity-hero { grid-template-columns:1fr; min-height:0; padding:140px 5vw 72px; }
  .celebrity-visuals { min-height:520px; }
  .celebrity-card-main { width:68%; }
  .celebrity-card-float { width:38%; }
  .celebrity-placeholder-grid { grid-template-columns:1fr; }
  .celebrity-placeholder { min-height:360px; }
}

@media (max-width: 640px) {
  .celebrity-hero { min-height:700px; padding:125px 20px 60px; display:block; }
  .celebrity-hero-copy { position:relative; z-index:5; padding-top:32px; }
  .celebrity-hero h1 { max-width:96%; font-size:clamp(62px,17vw,88px); }
  .celebrity-hero-copy > p:not(.eyebrow) { max-width:88%; margin-top:24px; font-size:12px; }
  .celebrity-actions { gap:18px; margin-top:30px; }
  .celebrity-visuals { position:absolute; inset:0; min-height:0; opacity:.34; }
  .celebrity-card-main { inset:0; width:100%; height:100%; border-radius:0; box-shadow:none; }
  .celebrity-card-main img { object-position:center 8%; }
  .celebrity-card-float,.celebrity-seal { display:none; }
  .celebrity-hero::after { content:""; position:absolute; inset:0; z-index:2; background:linear-gradient(to top,rgba(255,250,243,.98) 18%,rgba(248,232,230,.76) 72%,rgba(248,232,230,.35)); }
  .celebrity-intro { padding:70px 20px; }
  .celebrity-placeholder-grid { margin-top:35px; gap:18px; }
  .placeholder-frame { min-height:230px; }
  .celebrity-submit { padding:82px 20px; }
  .celebrity-submit h2 { font-size:clamp(48px,13vw,68px); }
}


.celebrity-features {
  padding-top: 85px;
  padding-bottom: 100px;
  background: linear-gradient(180deg, #fffdf9 0%, #fff8f1 100%);
}
.celebrity-feature-layout {
  display: grid;
  grid-template-columns: minmax(260px, .95fr) minmax(0, 1.35fr);
  gap: 34px;
  align-items: start;
}
.celebrity-feature-copy {
  position: sticky;
  top: 110px;
  padding: 28px 24px;
  border: 1px solid var(--line);
  background: rgba(255, 252, 247, .84);
  backdrop-filter: blur(12px);
  box-shadow: 0 20px 50px rgba(79, 42, 49, .08);
}
.celebrity-feature-copy h2 {
  margin: 0;
  font-size: clamp(40px, 4.6vw, 72px);
  line-height: .92;
  letter-spacing: -.04em;
}
.celebrity-feature-copy h2 em { color: var(--wine); }
.celebrity-feature-copy > p:not(.eyebrow) {
  margin: 24px 0 0;
  color: #6d5a5f;
  font-size: 13px;
  line-height: 1.9;
}
.celebrity-feature-points {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}
.celebrity-feature-points span {
  padding: 10px 14px;
  border: 1px solid rgba(111, 35, 54, .14);
  border-radius: 999px;
  background: rgba(255, 255, 255, .75);
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #7d6168;
}
.celebrity-story-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.celebrity-story-card {
  position: relative;
  margin: 0;
  padding: 0;
  border: 0;
  overflow: hidden;
  background: #eaded6;
  aspect-ratio: 0.76;
  cursor: pointer;
  box-shadow: 0 18px 40px rgba(76, 38, 47, .08);
  transition: transform .35s ease, box-shadow .35s ease;
}
.celebrity-story-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .55s ease, filter .45s ease;
}
.celebrity-story-card:hover,
.celebrity-story-card:focus-visible {
  transform: translateY(-6px);
  box-shadow: 0 30px 60px rgba(76, 38, 47, .16);
}
.celebrity-story-card:hover img,
.celebrity-story-card:focus-visible img {
  transform: scale(1.035);
  filter: saturate(1.04) contrast(1.02);
}
.celebrity-card-overlay {
  position: absolute;
  inset: auto 0 0 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 18px 16px 16px;
  color: white;
  text-align: left;
  background: linear-gradient(to top, rgba(17, 10, 12, .82) 5%, rgba(17, 10, 12, .4) 54%, rgba(17, 10, 12, 0));
}
.celebrity-card-overlay small {
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: rgba(255,255,255,.78);
}
.celebrity-card-overlay strong {
  font: 27px var(--serif);
  line-height: .98;
  letter-spacing: -.03em;
}
.celebrity-card-overlay em {
  font-style: normal;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: rgba(255,255,255,.88);
}
.celebrity-lightbox {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity .25s ease, visibility .25s ease;
}
.celebrity-lightbox.open {
  opacity: 1;
  visibility: visible;
}
.celebrity-lightbox-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(16, 9, 11, .72);
  backdrop-filter: blur(8px);
}
.celebrity-lightbox-panel {
  position: relative;
  z-index: 2;
  width: min(1120px, calc(100vw - 36px));
  max-height: calc(100vh - 40px);
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 0;
  overflow: hidden;
  background: #fffaf5;
  box-shadow: 0 35px 110px rgba(0,0,0,.28);
}
.celebrity-lightbox-figure {
  margin: 0;
  background: #f0e3dc;
  min-height: 68vh;
}
.celebrity-lightbox-figure img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  background: linear-gradient(180deg,#f4ece8 0%, #ead7d0 100%);
}
.celebrity-lightbox-copy {
  padding: 34px 28px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.celebrity-lightbox-copy h3 {
  margin: 0;
  font-size: clamp(36px, 4vw, 52px);
  line-height: .96;
  letter-spacing: -.04em;
}
.celebrity-lightbox-copy p:not(.eyebrow) {
  margin: 18px 0 0;
  color: #6b575d;
  font-size: 13px;
  line-height: 1.85;
}
.celebrity-lightbox-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 26px;
}
.celebrity-lightbox-close,
.celebrity-lightbox-nav {
  position: absolute;
  z-index: 4;
  border: 0;
  background: rgba(255,255,255,.88);
  color: #34151e;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  cursor: pointer;
  box-shadow: 0 12px 30px rgba(0,0,0,.15);
}
.celebrity-lightbox-close { top: 18px; right: 18px; font-size: 28px; }
.celebrity-lightbox-nav {
  top: 50%;
  transform: translateY(-50%);
  font-size: 34px;
  line-height: 1;
}
.celebrity-lightbox-nav.prev { left: 18px; }
.celebrity-lightbox-nav.next { right: 338px; }
@media (max-width: 1180px) {
  .celebrity-story-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .celebrity-feature-layout { grid-template-columns: 1fr; }
  .celebrity-feature-copy { position: relative; top: 0; }
  .celebrity-lightbox-panel {
    width: min(880px, calc(100vw - 26px));
    grid-template-columns: 1fr;
    max-height: calc(100vh - 24px);
    overflow-y: auto;
  }
  .celebrity-lightbox-figure { min-height: auto; height: min(68vh, 620px); }
  .celebrity-lightbox-nav.prev { left: 14px; }
  .celebrity-lightbox-nav.next { right: 14px; }
}
@media (max-width: 720px) {
  .celebrity-features { padding: 70px 20px 78px; }
  .celebrity-story-grid { grid-template-columns: 1fr; gap: 14px; }
  .celebrity-story-card { aspect-ratio: 0.8; }
  .celebrity-card-overlay { padding: 16px 14px 14px; }
  .celebrity-card-overlay strong { font-size: 24px; }
  .celebrity-feature-copy { padding: 22px 18px; }
  .celebrity-lightbox-panel { width: calc(100vw - 18px); }
  .celebrity-lightbox-copy { padding: 20px 18px 22px; }
  .celebrity-lightbox-copy h3 { font-size: clamp(30px, 10vw, 42px); }
  .celebrity-lightbox-close, .celebrity-lightbox-nav {
    width: 42px; height: 42px;
  }
  .celebrity-lightbox-close { top: 12px; right: 12px; }
}


.celebrity-product-cta {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  margin: 54px auto 0;
  text-align: center;
}
.celebrity-product-cta p {
  max-width: 520px;
  margin: 0;
  color: #725f63;
  font-size: 13px;
  line-height: 1.75;
}
.celebrity-product-cta .button {
  min-width: 220px;
  justify-content: center;
}
@media (max-width: 720px) {
  .celebrity-product-cta {
    margin-top: 38px;
    align-items: stretch;
  }
  .celebrity-product-cta .button {
    width: 100%;
  }
}


/* Professional SVG icon system: avoids mobile browsers rendering arrows as emoji glyphs */
.icon {
  width: 1em;
  height: 1em;
  display: inline-block;
  vertical-align: -0.14em;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
  flex: 0 0 auto;
}
.icon-star { stroke-width: 1.35; }
.icon-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.text-link span,
.collection-card-copy span,
.lookbook-tile span,
.mobile-menu-footer a,
.contact-details a,
.footer-links a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}
.catalog-quick,
.back-to-top,
.rail-controls button,
.gallery-arrow,
.modal-close,
.celebrity-lightbox-close,
.celebrity-lightbox-nav {
  display: grid;
  place-items: center;
  -webkit-font-smoothing: antialiased;
}
.catalog-quick .icon { width: 17px; height: 17px; }
.back-to-top .icon { width: 18px; height: 18px; }
.rail-controls .icon { width: 18px; height: 18px; }
.gallery-arrow .icon,
.celebrity-lightbox-nav .icon { width: 20px; height: 20px; }
.modal-close .icon,
.celebrity-lightbox-close .icon { width: 18px; height: 18px; }
.marquee-content i,
.quote-flower,
.shop-hero-motif,
.cart-empty span,
.catalog-no-results span {
  display: inline-grid;
  place-items: center;
}
.marquee-content i .icon { width: 13px; height: 13px; }
.quote-flower .icon,
.shop-hero-motif .icon,
.cart-empty span .icon,
.catalog-no-results span .icon { width: 1em; height: 1em; }
#clearFilters {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
#clearFilters .icon { width: 13px; height: 13px; }
