/* ============================================
   MAISON ÉCLAT
   ============================================ */

/* CUSTOM PROPERTIES */
:root {
  --obsidian: #1A1A1A;
  --obsidian-2: #2A2A2A;
  --gold: #C5A059;
  --gold-l: #D4B068;
  --gold-d: #B39149;
  --cream: #F5F1E8;
  --shadow-s: rgba(197,160,89,.15);
  --shadow-m: rgba(197,160,89,.25);
  --border: rgba(197,160,89,.2);
  --border-h: rgba(197,160,89,.3);
  --serif: 'Cormorant Garamond', serif;
  --sans:  'Montserrat', sans-serif;
  --ease: cubic-bezier(.4,0,.2,1);
  --ease-spring: cubic-bezier(.34,1.56,.64,1);
  --sp-xs: clamp(.25rem,.5vw,.5rem);
  --sp-sm: clamp(.5rem,1vw,1rem);
  --sp-md: clamp(1rem,2vw,2rem);
  --sp-lg: clamp(2rem,4vw,4rem);
  --sp-xl: clamp(3rem,6vw,6rem);
  --safe-t: env(safe-area-inset-top,0);
  --safe-r: env(safe-area-inset-right,0);
  --safe-b: env(safe-area-inset-bottom,0);
  --safe-l: env(safe-area-inset-left,0);
}

/* RESET */
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }

html {
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
}

body {
  font-family: var(--sans);
  background: var(--obsidian);
  color: var(--cream);
  overflow-x: hidden;
  line-height: 1.6;
  min-height: 100svh;
}

img, picture { display:block; max-width:100%; height:auto; }
button { font-family:inherit; cursor:pointer; -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
a { text-decoration:none; color:inherit; -webkit-tap-highlight-color:transparent; }

/* SKIP LINK */
.skip-link {
  position:absolute; left:-9999px; z-index:10000;
  padding:1em; background:var(--gold); color:var(--obsidian);
  font-weight:600; font-size:.875rem; letter-spacing:.1em; text-transform:uppercase;
}
.skip-link:focus { left:50%; top:1rem; transform:translateX(-50%); }

/* ============================================
   NAV
   ============================================ */
.nav {
  position:fixed; inset:0 0 auto;
  z-index:1000;
  padding: max(1.5rem,calc(var(--safe-t) + 1rem)) max(2rem,calc(var(--safe-r) + 2rem)) 1.5rem max(2rem,calc(var(--safe-l) + 2rem));
  display:flex; justify-content:space-between; align-items:center;
  background: linear-gradient(180deg,rgba(26,26,26,.95) 0%,transparent 100%);
  backdrop-filter: blur(10px);
  transition: background .3s var(--ease), box-shadow .3s var(--ease);
  animation: navDown 1s var(--ease) both;
}

@keyframes navDown {
  from { transform:translateY(-100%); opacity:0; }
}

.nav-brand { display:flex; flex-direction:column; gap:.25rem; }

.logo {
  font-family:var(--serif); font-size:clamp(1.25rem,3vw,2rem);
  font-weight:300; letter-spacing:.3em; color:var(--gold); text-transform:uppercase;
  animation: logoGlow 3s ease-in-out infinite;
}

@keyframes logoGlow {
  0%,100% { text-shadow:0 0 20px rgba(197,160,89,.3); }
  50%      { text-shadow:0 0 40px rgba(197,160,89,.5); }
}

.nav-tagline {
  font-size:clamp(.5rem,1vw,.65rem); letter-spacing:.2em;
  font-weight:300; color:var(--cream); opacity:.7; text-transform:uppercase;
}

.menu-btn {
  background:transparent; border:1px solid var(--gold);
  color:var(--gold); padding:clamp(.6rem,1.5vw,.8rem) clamp(1.5rem,3vw,2rem);
  font-size:clamp(.65rem,1.2vw,.75rem); letter-spacing:.2em; text-transform:uppercase;
  transition: color .4s var(--ease);
  position:relative; overflow:hidden;
}
.menu-btn::before {
  content:''; position:absolute; inset:0 100% 0 -100%;
  background:var(--gold); transition:inset .4s var(--ease); z-index:-1;
}
.menu-btn:is(:hover,:focus,:active)::before { inset:0; }
.menu-btn:is(:hover,:focus,:active) { color:var(--obsidian); }

/* ============================================
   MENU OVERLAY
   ============================================ */
.menu-overlay {
  position:fixed; inset:0; z-index:9999;
  pointer-events:none; visibility:hidden;
  overscroll-behavior:contain;
}
.menu-overlay.is-open { pointer-events:auto; visibility:visible; }

.menu-bg {
  position:absolute; inset:0; background:var(--obsidian);
  transform:translateY(-100%); transition:transform .8s var(--ease);
}
.menu-overlay.is-open .menu-bg { transform:none; }

.menu-container {
  position:relative; width:100%; height:100%;
  display:grid; grid-template-columns:1fr;
  z-index:10; opacity:0; transition:opacity .3s ease;
}
.menu-overlay.is-open .menu-container { opacity:1; transition-delay:.2s; }

.menu-content {
  padding: max(5rem,calc(var(--safe-t) + 4rem)) max(2rem,calc(var(--safe-r) + 2rem)) max(3rem,calc(var(--safe-b) + 2rem)) max(2rem,calc(var(--safe-l) + 2rem));
  display:flex; flex-direction:column; justify-content:space-between;
  background:var(--obsidian); position:relative;
  overflow-y:auto; -webkit-overflow-scrolling:touch; overscroll-behavior:contain;
}

.menu-content::before {
  content:''; position:absolute; top:50%; left:-10%;
  width:min(400px,50vw); height:min(400px,50vw);
  border:1px solid var(--gold); opacity:.05;
  transform:rotate(45deg); pointer-events:none;
}

.menu-close {
  position:absolute; top:max(1.5rem,calc(var(--safe-t) + 1rem)); right:max(1.5rem,calc(var(--safe-r) + 1rem));
  background:transparent; border:none; padding:1rem; z-index:20;
  opacity:0; transform:rotate(-90deg) scale(.8);
  transition: opacity .4s var(--ease), transform .4s var(--ease);
}
.menu-overlay.is-open .menu-close { opacity:1; transform:none; transition-delay:.6s; }

.close-icon { position:relative; display:block; width:clamp(25px,5vw,30px); height:clamp(25px,5vw,30px); }
.close-icon::before,.close-icon::after {
  content:''; position:absolute; top:50%; left:0;
  width:100%; height:1px; background:var(--gold); transition:transform .3s ease;
}
.close-icon::before { transform:translateY(-50%) rotate(45deg); }
.close-icon::after  { transform:translateY(-50%) rotate(-45deg); }
.menu-close:is(:hover,:active) .close-icon::before { transform:translateY(-50%) rotate(135deg); }
.menu-close:is(:hover,:active) .close-icon::after  { transform:translateY(-50%) rotate(45deg); }

.menu-links { display:flex; flex-direction:column; gap:clamp(.5rem,2vw,1rem); padding:var(--sp-md) 0; }

.menu-link { position:relative; display:block; opacity:0; transform:translateY(30px); transition:all .6s var(--ease); }

.menu-overlay.is-open .menu-link:nth-child(1) { opacity:1; transform:none; transition-delay:.4s; }
.menu-overlay.is-open .menu-link:nth-child(2) { opacity:1; transform:none; transition-delay:.5s; }
.menu-overlay.is-open .menu-link:nth-child(3) { opacity:1; transform:none; transition-delay:.6s; }
.menu-overlay.is-open .menu-link:nth-child(4) { opacity:1; transform:none; transition-delay:.7s; }

.menu-link-text {
  font-family:var(--serif); font-size:clamp(2.5rem,8vw,5.5rem);
  font-weight:300; color:var(--cream); display:block;
  line-height:1.1; letter-spacing:-.02em;
  transition: color .4s var(--ease), transform .4s var(--ease);
}
.menu-link:is(:hover,:focus,:active) .menu-link-text { color:var(--gold); transform:translateX(min(20px,2vw)); }

.menu-link-line {
  position:absolute; bottom:.5rem; left:0;
  width:0; height:1px; background:var(--gold); transition:width .6s var(--ease);
}
.menu-link:is(:hover,:focus,:active) .menu-link-line { width:100%; }

.menu-footer {
  display:flex; flex-wrap:wrap; justify-content:space-between;
  gap:var(--sp-lg); padding-top:var(--sp-md);
  border-top:1px solid var(--border);
  opacity:0; transform:translateY(20px); transition:all .6s var(--ease);
}
.menu-overlay.is-open .menu-footer { opacity:1; transform:none; transition-delay:.8s; }

.menu-footer-title {
  font-size:clamp(.65rem,1.2vw,.7rem); letter-spacing:.2em;
  color:var(--gold); text-transform:uppercase; margin-bottom:1rem; font-weight:500;
}

.menu-contact,.menu-legal { display:flex; flex-direction:column; gap:.5rem; flex:1; min-width:200px; }

.menu-contact-link,.menu-legal-link {
  font-size:clamp(.75rem,1.5vw,.85rem); letter-spacing:.05em;
  color:var(--cream); opacity:.7; font-weight:300;
  transition: color .3s ease, opacity .3s ease, transform .3s ease;
}
.menu-contact-link:is(:hover,:focus,:active),
.menu-legal-link:is(:hover,:focus,:active) { opacity:1; color:var(--gold); transform:translateX(5px); }

.menu-contact-whatsapp { display:inline-flex; align-items:center; gap:.5rem; margin-top:.3rem; }
.menu-visual { display:none; }

/* ============================================
   SHARED TOKENS
   ============================================ */
.section-label {
  font-size:clamp(.65rem,1.2vw,.75rem); letter-spacing:.3em;
  color:var(--gold); text-transform:uppercase; margin-bottom:1.5rem;
  font-weight:300; display:block;
}

.section-title {
  font-family:var(--serif); font-size:clamp(2.5rem,6vw,4.5rem);
  font-weight:300; line-height:1.1; margin-bottom:2rem; color:var(--cream);
}

.title-accent {
  display:block; font-weight:600; font-style:italic;
  background: linear-gradient(135deg,var(--gold-l) 0%,var(--gold) 50%,var(--gold-d) 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}

.section-description {
  font-size:clamp(.95rem,1.8vw,1.1rem); line-height:1.8;
  color:var(--cream); opacity:.8; font-weight:300; letter-spacing:.03em;
}

/* ============================================
   HERO
   ============================================ */
.hero {
  min-height:100svh; display:grid; grid-template-columns:1fr;
  position:relative; overflow:hidden;
}

.hero::before {
  content:''; position:absolute; top:-50%; right:-20%;
  width:100%; height:100%;
  background:radial-gradient(circle,rgba(197,160,89,.08) 0%,transparent 70%);
  animation:float 20s ease-in-out infinite; pointer-events:none;
}

@keyframes float {
  0%,100% { transform:translate(0,0) rotate(0deg); }
  33%     { transform:translate(30px,-30px) rotate(120deg); }
  66%     { transform:translate(-20px,20px) rotate(240deg); }
}

.hero-content {
  padding: max(7rem,calc(var(--safe-t) + 6rem)) max(1.5rem,calc(var(--safe-r) + 1.5rem)) max(3rem,calc(var(--safe-b) + 2rem)) max(1.5rem,calc(var(--safe-l) + 1.5rem));
  display:flex; flex-direction:column; justify-content:center;
  position:relative; z-index:10; order:2;
}

@keyframes fadeUp {
  from { opacity:0; transform:translateY(30px); }
  to   { opacity:1; transform:none; }
}

.hero-label      { font-size:clamp(.6rem,1.2vw,.7rem); letter-spacing:.3em; font-weight:300; color:var(--gold); text-transform:uppercase; margin-bottom:var(--sp-md); opacity:0; animation:fadeUp 1s ease-out .5s forwards; }
.hero-title      { font-family:var(--serif); font-size:clamp(2.5rem,10vw,7rem); font-weight:300; line-height:.95; margin-bottom:var(--sp-md); letter-spacing:-.02em; opacity:0; animation:fadeUp 1s ease-out .7s forwards; }
.hero-subtitle   { font-size:clamp(.7rem,1.5vw,.85rem); letter-spacing:.25em; font-weight:300; color:var(--cream); margin-bottom:1rem; text-transform:uppercase; opacity:0; animation:fadeUp 1s ease-out .9s forwards; }
.hero-description{ font-size:clamp(.9rem,2vw,1rem); line-height:1.8; color:var(--cream); opacity:0; max-width:500px; margin-bottom:var(--sp-lg); font-weight:300; letter-spacing:.05em; animation:fadeUp 1s ease-out 1.1s forwards; }
.hero-cta        { display:flex; flex-direction:column; gap:1rem; opacity:0; animation:fadeUp 1s ease-out 1.3s forwards; }

.hero-title span {
  display:block; font-weight:600; font-style:italic;
  background:linear-gradient(135deg,var(--gold-l) 0%,var(--gold) 50%,var(--gold-d) 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}

/* Buttons */
.btn-primary,.btn-secondary {
  padding:clamp(1rem,2vw,1.2rem) clamp(2rem,4vw,3rem);
  font-size:clamp(.7rem,1.3vw,.75rem); letter-spacing:.2em; text-transform:uppercase;
  font-weight:500; transition:all .4s var(--ease);
  position:relative; overflow:hidden; border:none; width:100%;
}

.btn-primary { background:var(--gold); color:var(--obsidian); box-shadow:0 10px 30px var(--shadow-s); }
.btn-primary::after {
  content:''; position:absolute; top:50%; left:50%;
  width:0; height:0; border-radius:50%;
  background:rgba(255,255,255,.3); transform:translate(-50%,-50%);
  transition:width .6s, height .6s;
}
.btn-primary:is(:hover,:focus,:active) { transform:translateY(-2px); box-shadow:0 15px 40px var(--shadow-m); }
.btn-primary:is(:hover,:focus,:active)::after { width:300px; height:300px; }

.btn-secondary { background:transparent; color:var(--gold); border:1px solid var(--gold); }
.btn-secondary::before {
  content:''; position:absolute; inset:0 100% 0 -100%;
  background:var(--gold); transition:inset .4s var(--ease); z-index:-1;
}
.btn-secondary:is(:hover,:focus,:active)::before { inset:0; }
.btn-secondary:is(:hover,:focus,:active) { color:var(--obsidian); transform:translateY(-2px); }

/* Hero visual */
.hero-visual {
  position:relative; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  min-height:60vh; order:1;
}

.hero-image-container { position:relative; width:100%; height:100%; animation:imgReveal 1.5s var(--ease) .3s both; }

@keyframes imgReveal { from { opacity:0; transform:scale(1.1); } }

.hero-image { width:100%; height:100%; object-fit:cover; filter:brightness(.85) contrast(1.1); }

.hero-visual::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(26,26,26,.4) 0%,transparent 50%,rgba(26,26,26,.6) 100%);
  z-index:1;
}

.hero-ornament,.scroll-indicator { display:none; }

/* ============================================
   COLLECTIONS
   ============================================ */
.collections {
  padding:var(--sp-xl) max(2rem,calc(var(--safe-r) + 2rem)) var(--sp-xl) max(2rem,calc(var(--safe-l) + 2rem));
  background:var(--obsidian); position:relative; overflow:hidden;
}

.collections::before {
  content:''; position:absolute; top:0; left:50%; transform:translateX(-50%);
  width:1px; height:100%;
  background:linear-gradient(180deg,transparent 0%,var(--gold) 50%,transparent 100%);
  opacity:.1;
}

.collections-header { text-align:center; max-width:800px; margin:0 auto var(--sp-xl); }

.collections-grid {
  display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:clamp(1.5rem,3vw,3rem); max-width:1400px; margin:0 auto;
}

.collection-item { background:var(--obsidian-2); border:1px solid var(--border); transition:all .5s var(--ease); overflow:hidden; }
.collection-item:hover { transform:translateY(-10px); border-color:var(--border-h); box-shadow:0 20px 60px rgba(197,160,89,.2); }

.collection-image-wrapper { position:relative; aspect-ratio:3/4; overflow:hidden; background:var(--obsidian); }

.collection-image { width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease), filter .7s var(--ease); filter:brightness(.9) contrast(1.1); }
.collection-item:hover .collection-image { transform:scale(1.08); filter:brightness(1) contrast(1.15); }

.collection-overlay {
  position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 0%,rgba(26,26,26,.95) 100%);
  display:flex; align-items:flex-end; justify-content:center;
  padding:2rem; opacity:0; transition:opacity .4s var(--ease);
}
.collection-item:hover .collection-overlay { opacity:1; }

.collection-cta {
  background:var(--gold); color:var(--obsidian); border:none;
  padding:1rem 2.5rem; font-size:.75rem; letter-spacing:.2em;
  text-transform:uppercase; font-weight:600;
  display:inline-flex; align-items:center; gap:.75rem;
  transition:all .3s var(--ease); transform:translateY(20px);
}
.collection-item:hover .collection-cta { transform:none; }
.collection-cta:hover { background:var(--gold-l); gap:1rem; }
.collection-cta svg { transition:transform .3s ease; }
.collection-cta:hover svg { transform:translateX(5px); }

.collection-badge {
  position:absolute; top:1.5rem; right:1.5rem;
  background:var(--gold); color:var(--obsidian);
  padding:.5rem 1rem; font-size:.65rem; letter-spacing:.15em;
  text-transform:uppercase; font-weight:600; z-index:2;
}

.collection-info { padding:clamp(1.5rem,3vw,2.5rem); }

.collection-name { font-family:var(--serif); font-size:clamp(1.5rem,2.5vw,2rem); font-weight:500; color:var(--cream); margin-bottom:.5rem; line-height:1.2; }
.collection-subtitle { font-size:.85rem; letter-spacing:.15em; color:var(--gold); text-transform:uppercase; margin-bottom:1rem; font-weight:500; }
.collection-description { font-size:.9rem; line-height:1.7; color:var(--cream); opacity:.7; margin-bottom:1.5rem; font-weight:300; }

.collection-meta { display:flex; justify-content:space-between; align-items:center; padding-top:1rem; border-top:1px solid var(--border); }
.collection-count { font-size:1rem; font-weight:600; color:var(--gold); letter-spacing:.05em; }

.collections-footer { text-align:center; margin-top:var(--sp-xl); padding-top:var(--sp-lg); border-top:1px solid var(--border); }

.btn-explore {
  background:transparent; border:2px solid var(--gold); color:var(--gold);
  padding:1.2rem 3rem; font-size:.75rem; letter-spacing:.25em;
  text-transform:uppercase; font-weight:600;
  display:inline-flex; align-items:center; gap:1rem;
  transition:all .4s var(--ease); position:relative; overflow:hidden;
}
.btn-explore::before {
  content:''; position:absolute; inset:0 100% 0 -100%;
  background:var(--gold); transition:inset .4s var(--ease); z-index:-1;
}
.btn-explore:is(:hover,:focus)::before { inset:0; }
.btn-explore:is(:hover,:focus) { color:var(--obsidian); }
.btn-explore svg { transition:transform .3s ease; }
.btn-explore:is(:hover,:focus) svg { transform:translateX(5px); }

/* ============================================
   ATELIER
   ============================================ */
.atelier { background:var(--obsidian-2); padding:var(--sp-xl) 0; position:relative; overflow:hidden; }

.atelier::before {
  content:''; position:absolute; top:-20%; left:-10%;
  width:600px; height:600px;
  background:radial-gradient(circle,rgba(197,160,89,.08) 0%,transparent 70%);
  pointer-events:none;
}

.atelier-container {
  max-width:1400px; margin:0 auto;
  padding:0 max(2rem,calc(var(--safe-r) + 2rem)) 0 max(2rem,calc(var(--safe-l) + 2rem));
  display:grid; grid-template-columns:1fr; gap:var(--sp-xl); align-items:center;
}

.atelier-story { margin:var(--sp-lg) 0; }

.atelier-paragraph { font-size:clamp(1rem,2vw,1.1rem); line-height:1.9; color:var(--cream); opacity:.85; margin-bottom:1.5rem; font-weight:300; letter-spacing:.02em; }
.atelier-paragraph strong { color:var(--gold); font-weight:500; }
.atelier-paragraph em { font-style:italic; color:var(--gold-l); }

.atelier-features { display:grid; grid-template-columns:1fr; gap:clamp(1.5rem,3vw,2.5rem); margin:var(--sp-lg) 0; }

.atelier-feature { display:flex; gap:1.5rem; padding:1.5rem; background:rgba(197,160,89,.03); border:1px solid var(--border); transition:all .4s var(--ease); }
.atelier-feature:hover { background:rgba(197,160,89,.05); border-color:var(--border-h); transform:translateX(10px); }

.feature-icon { flex-shrink:0; width:48px; height:48px; display:flex; align-items:center; justify-content:center; color:var(--gold); }
.feature-title { font-family:var(--serif); font-size:1.1rem; font-weight:500; color:var(--cream); margin-bottom:.5rem; }
.feature-description { font-size:.9rem; line-height:1.6; color:var(--cream); opacity:.7; font-weight:300; }

.atelier-cta-group { display:flex; flex-wrap:wrap; gap:1.5rem; margin-top:var(--sp-lg); }

.btn-atelier-primary,.btn-atelier-secondary {
  padding:1.2rem 2.5rem; font-size:.75rem; letter-spacing:.2em;
  text-transform:uppercase; font-weight:600; transition:all .4s var(--ease); flex:1; min-width:200px;
}
.btn-atelier-primary { background:var(--gold); color:var(--obsidian); border:none; }
.btn-atelier-primary:is(:hover,:focus) { background:var(--gold-l); transform:translateY(-2px); box-shadow:0 10px 30px rgba(197,160,89,.3); }
.btn-atelier-secondary { background:transparent; color:var(--gold); border:2px solid var(--gold); }
.btn-atelier-secondary:is(:hover,:focus) { background:var(--gold); color:var(--obsidian); }

.atelier-visual { position:relative; display:grid; grid-template-columns:1fr; gap:2rem; }

.atelier-image-main { position:relative; aspect-ratio:3/4; overflow:hidden; border:1px solid var(--border); }

.atelier-img { width:100%; height:100%; object-fit:cover; filter:brightness(.9) contrast(1.1) grayscale(.1); transition:transform .6s var(--ease), filter .6s var(--ease); }
.atelier-image-main:hover .atelier-img { transform:scale(1.05); filter:brightness(1) contrast(1.15) grayscale(0); }

.atelier-image-overlay { position:absolute; inset:0; background:linear-gradient(180deg,transparent 60%,rgba(26,26,26,.7) 100%); pointer-events:none; }
.atelier-image-secondary { display:none; }
.atelier-img-small { width:100%; height:100%; object-fit:cover; filter:brightness(.9) contrast(1.1); transition:transform .6s var(--ease); }
.atelier-image-secondary:hover .atelier-img-small { transform:scale(1.05); }

.atelier-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:2rem; }

.atelier-stat-item { text-align:center; padding:1.5rem 1rem; background:rgba(197,160,89,.05); border:1px solid rgba(197,160,89,.15); transition:all .3s var(--ease); }
.atelier-stat-item:hover { background:rgba(197,160,89,.08); border-color:var(--border-h); transform:translateY(-5px); }

.stat-number { display:block; font-family:var(--serif); font-size:clamp(2rem,4vw,3rem); font-weight:600; color:var(--gold); line-height:1; margin-bottom:.5rem; }
.stat-label  { display:block; font-size:.75rem; letter-spacing:.1em; color:var(--cream); opacity:.8; text-transform:uppercase; font-weight:300; }

.atelier-quote { margin-top:3rem; padding:2rem; background:rgba(197,160,89,.03); border-left:3px solid var(--gold); position:relative; }
.atelier-quote::before { content:'"'; position:absolute; top:-.5rem; left:1rem; font-family:var(--serif); font-size:6rem; color:var(--gold); opacity:.2; line-height:1; }
.quote-text { font-family:var(--serif); font-size:clamp(1.1rem,2vw,1.3rem); font-style:italic; line-height:1.8; color:var(--cream); margin-bottom:1rem; position:relative; z-index:1; }
.quote-author { font-size:.85rem; letter-spacing:.1em; color:var(--gold); font-weight:500; }

/* ============================================
   GALERIE
   ============================================ */
.galerie {
  padding:var(--sp-xl) max(2rem,calc(var(--safe-r) + 2rem)) var(--sp-xl) max(2rem,calc(var(--safe-l) + 2rem));
  background:var(--obsidian); position:relative;
}

.galerie-header { text-align:center; max-width:800px; margin:0 auto var(--sp-xl); }

.galerie-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:clamp(1rem,2vw,1.5rem); max-width:1600px; margin:0 auto; }

.galerie-item { position:relative; overflow:hidden; aspect-ratio:3/4; background:var(--obsidian-2); transition:transform .5s var(--ease); }
.galerie-item:hover { transform:scale(1.02); z-index:10; }
.galerie-item-large { grid-row:span 2; }

.galerie-image-wrapper { position:relative; width:100%; height:100%; overflow:hidden; }

.galerie-image { width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease), filter .7s var(--ease); filter:brightness(.95) contrast(1.05); }
.galerie-item:hover .galerie-image { transform:scale(1.1); filter:brightness(1) contrast(1.1); }

.galerie-overlay { position:absolute; inset:0; background:linear-gradient(180deg,transparent 0%,rgba(26,26,26,.95) 90%); display:flex; align-items:flex-end; padding:2rem; opacity:0; transition:opacity .4s var(--ease); }
.galerie-item:hover .galerie-overlay { opacity:1; }

.galerie-info { transform:translateY(20px); transition:transform .4s var(--ease); }
.galerie-item:hover .galerie-info { transform:none; }

.galerie-title { font-family:var(--serif); font-size:clamp(1.2rem,2vw,1.5rem); font-weight:500; color:var(--cream); margin-bottom:.5rem; }
.galerie-collection { font-size:.85rem; letter-spacing:.15em; color:var(--gold); text-transform:uppercase; font-weight:500; }

.galerie-item-cta { background:linear-gradient(135deg,var(--obsidian-2) 0%,var(--obsidian) 100%); border:2px solid var(--border); display:flex; align-items:center; justify-content:center; transition:all .5s var(--ease); }
.galerie-item-cta:hover { border-color:var(--gold); background:linear-gradient(135deg,rgba(197,160,89,.1) 0%,var(--obsidian) 100%); }

.galerie-cta-content { text-align:center; padding:2rem; }
.galerie-cta-icon { color:var(--gold); margin:0 auto 1.5rem; width:48px; height:48px; transition:transform .4s var(--ease); }
.galerie-item-cta:hover .galerie-cta-icon { transform:scale(1.15) rotate(5deg); }

.galerie-cta-title { font-family:var(--serif); font-size:1.8rem; font-weight:500; color:var(--cream); margin-bottom:.5rem; }
.galerie-cta-subtitle { font-size:1rem; letter-spacing:.1em; color:var(--gold); margin-bottom:1rem; font-weight:600; }
.galerie-cta-description { font-size:.9rem; line-height:1.6; color:var(--cream); opacity:.7; margin-bottom:1.5rem; font-weight:300; }

.galerie-cta-button { display:inline-flex; align-items:center; gap:.75rem; background:var(--gold); color:var(--obsidian); padding:1rem 2rem; font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; font-weight:600; border:none; transition:all .3s var(--ease); }
.galerie-cta-button:is(:hover,:focus) { background:var(--gold-l); gap:1rem; }
.galerie-cta-button svg { transition:transform .3s ease; }
.galerie-cta-button:is(:hover,:focus) svg { transform:translateX(5px); }

/* ============================================
   RENDEZ-VOUS / FORM
   ============================================ */
.rendezvous {
  padding:var(--sp-xl) max(2rem,calc(var(--safe-r) + 2rem)) var(--sp-xl) max(2rem,calc(var(--safe-l) + 2rem));
  background:var(--obsidian-2); position:relative; overflow:hidden;
}

.rendezvous-container { max-width:1400px; margin:0 auto; display:grid; grid-template-columns:1fr; gap:var(--sp-xl); }
.rendezvous-header { margin-bottom:var(--sp-lg); }
.rendezvous-intro { font-size:clamp(1rem,2vw,1.1rem); line-height:1.8; color:var(--cream); opacity:.85; margin-top:1.5rem; font-weight:300; }
.rendezvous-benefits { display:grid; grid-template-columns:1fr; gap:1.5rem; margin:var(--sp-lg) 0; }

.benefit-item { display:flex; gap:1rem; align-items:flex-start; }

.benefit-icon { flex-shrink:0; width:40px; height:40px; display:flex; align-items:center; justify-content:center; background:rgba(197,160,89,.1); border:1px solid var(--border); color:var(--gold); transition:all .3s var(--ease); }
.benefit-item:hover .benefit-icon { background:rgba(197,160,89,.2); border-color:var(--gold); transform:scale(1.1); }

.benefit-text h3 { font-size:1rem; font-weight:600; color:var(--cream); margin-bottom:.25rem; }
.benefit-text p  { font-size:.85rem; line-height:1.5; color:var(--cream); opacity:.7; font-weight:300; }

.rendezvous-contact-info { display:flex; flex-direction:column; gap:1.5rem; margin-top:var(--sp-lg); padding:2rem; background:rgba(197,160,89,.03); border-left:3px solid var(--gold); }

.contact-info-item { display:flex; gap:1rem; align-items:flex-start; }
.contact-info-item svg { flex-shrink:0; color:var(--gold); margin-top:.25rem; }
.contact-info-item h4 { font-size:.75rem; letter-spacing:.15em; color:var(--gold); text-transform:uppercase; margin-bottom:.25rem; font-weight:600; }
.contact-info-item p  { font-size:.95rem; color:var(--cream); opacity:.8; font-weight:300; }

.rendezvous-form-wrapper { background:var(--obsidian); padding:clamp(2rem,4vw,3rem); border:1px solid var(--border); position:relative; }
.rendezvous-form { display:flex; flex-direction:column; gap:1.5rem; }
.form-group { display:flex; flex-direction:column; gap:.5rem; }
.form-row { display:grid; grid-template-columns:1fr; gap:1.5rem; }
.form-label { font-size:.75rem; letter-spacing:.1em; color:var(--gold); text-transform:uppercase; font-weight:500; }

.form-input,.form-textarea {
  background:rgba(245,241,232,.05); border:1px solid var(--border);
  color:var(--cream); padding:1rem 1.25rem;
  font-family:var(--sans); font-size:.95rem; font-weight:300;
  transition:all .3s var(--ease);
}
.form-input:focus,.form-textarea:focus { outline:none; border-color:var(--gold); background:rgba(245,241,232,.08); box-shadow:0 0 0 3px rgba(197,160,89,.1); }
.form-input::placeholder,.form-textarea::placeholder { color:var(--cream); opacity:.4; }
.form-textarea { resize:vertical; min-height:120px; }

select.form-input {
  cursor:pointer; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='%23C5A059' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1.25rem center; padding-right:3rem;
}

.form-privacy { margin:.5rem 0; }
.form-checkbox-label { display:flex; gap:.75rem; align-items:flex-start; cursor:pointer; }

.form-checkbox { flex-shrink:0; width:20px; height:20px; border:2px solid var(--border-h); background:transparent; cursor:pointer; transition:all .3s var(--ease); appearance:none; margin-top:.1rem; }
.form-checkbox:checked {
  background:var(--gold); border-color:var(--gold);
  background-image:url("data:image/svg+xml,%3Csvg width='12' height='10' viewBox='0 0 12 10' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 5L4.5 8.5L11 1' stroke='%231A1A1A' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:center;
}

.checkbox-text { font-size:.85rem; line-height:1.5; color:var(--cream); opacity:.7; font-weight:300; }
.privacy-link { color:var(--gold); text-decoration:underline; transition:opacity .3s ease; }
.privacy-link:hover { opacity:.8; }

.form-submit { background:var(--gold); color:var(--obsidian); border:none; padding:1.25rem 2rem; font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; font-weight:600; display:flex; align-items:center; justify-content:center; gap:1rem; transition:all .4s var(--ease); cursor:pointer; margin-top:1rem; }
.form-submit:is(:hover,:focus) { background:var(--gold-l); transform:translateY(-2px); box-shadow:0 10px 30px rgba(197,160,89,.3); }
.form-submit:active { transform:none; }
.submit-icon svg { transition:transform .3s ease; }
.form-submit:is(:hover,:focus) .submit-icon svg { transform:translateX(5px); }
.form-note { font-size:.75rem; line-height:1.5; color:var(--cream); opacity:.5; text-align:center; margin-top:1rem; font-weight:300; }

.form-success { text-align:center; padding:3rem 2rem; }
.form-success[hidden] { display:none; }
.success-icon { color:var(--gold); margin:0 auto 2rem; animation:scaleIn .5s var(--ease); }

@keyframes scaleIn { from { transform:scale(0); opacity:0; } }

.success-title { font-family:var(--serif); font-size:clamp(1.8rem,4vw,2.5rem); font-weight:500; color:var(--cream); margin-bottom:1rem; }
.success-message { font-size:1rem; line-height:1.8; color:var(--cream); opacity:.8; margin-bottom:2rem; font-weight:300; }

.success-button { background:transparent; border:2px solid var(--gold); color:var(--gold); padding:1rem 2rem; font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; font-weight:600; cursor:pointer; transition:all .3s var(--ease); }
.success-button:hover { background:var(--gold); color:var(--obsidian); }

.rendezvous-decoration { position:absolute; inset:0; pointer-events:none; z-index:1; }
.decoration-circle { position:absolute; border:1px solid var(--gold); opacity:.05; border-radius:50%; }
.decoration-circle-1 { width:400px; height:400px; top:-200px; right:-100px; animation:floatC1 20s ease-in-out infinite; }
.decoration-circle-2 { width:300px; height:300px; bottom:-150px; left:-100px; animation:floatC2 25s ease-in-out infinite; }

@keyframes floatC1 { 0%,100% { transform:translate(0,0) scale(1); } 50% { transform:translate(30px,30px) scale(1.1); } }
@keyframes floatC2 { 0%,100% { transform:translate(0,0) scale(1); } 50% { transform:translate(-30px,-30px) scale(.9); } }

/* ============================================
   FOOTER
   ============================================ */
.footer {
  background:linear-gradient(180deg,var(--obsidian) 0%,var(--obsidian-2) 100%);
  padding:var(--sp-xl) max(2rem,calc(var(--safe-r) + 2rem)) max(3rem,calc(var(--safe-b) + 2rem)) max(2rem,calc(var(--safe-l) + 2rem));
  position:relative; overflow:hidden; border-top:1px solid var(--border);
}
.footer::before {
  content:''; position:absolute; top:0; inset-inline:0; height:1px;
  background:linear-gradient(90deg,transparent 0%,var(--gold) 50%,transparent 100%);
  opacity:.3;
}

.footer-container { max-width:1600px; margin:0 auto; position:relative; z-index:2; }

.footer-top { display:grid; grid-template-columns:1fr; gap:var(--sp-xl); padding-bottom:var(--sp-xl); border-bottom:1px solid rgba(197,160,89,.1); }
.footer-brand { max-width:400px; }
.footer-logo { font-family:var(--serif); font-size:clamp(1.5rem,3vw,2.5rem); font-weight:300; letter-spacing:.3em; color:var(--gold); text-transform:uppercase; margin-bottom:.5rem; }
.footer-tagline { font-size:.7rem; letter-spacing:.2em; font-weight:300; color:var(--cream); opacity:.7; text-transform:uppercase; margin-bottom:1.5rem; }
.footer-description { font-size:.95rem; line-height:1.8; color:var(--cream); opacity:.7; margin-bottom:2rem; font-weight:300; }

.footer-social { display:flex; gap:1rem; flex-wrap:wrap; }

.social-link { width:44px; height:44px; display:flex; align-items:center; justify-content:center; border:1px solid var(--border-h); color:var(--gold); transition:all .3s var(--ease); position:relative; overflow:hidden; }
.social-link::before { content:''; position:absolute; inset:0; background:var(--gold); transform:translateY(100%); transition:transform .3s var(--ease); z-index:-1; }
.social-link:is(:hover,:focus)::before { transform:none; }
.social-link:is(:hover,:focus) { color:var(--obsidian); border-color:var(--gold); }

.footer-nav { display:grid; grid-template-columns:1fr; gap:clamp(2rem,4vw,3rem); }
.footer-column { display:flex; flex-direction:column; }
.footer-column-title { font-size:.75rem; letter-spacing:.2em; color:var(--gold); text-transform:uppercase; margin-bottom:1.5rem; font-weight:600; }
.footer-links { display:flex; flex-direction:column; gap:.75rem; }
.footer-link { font-size:.9rem; color:var(--cream); opacity:.7; transition:all .3s var(--ease); font-weight:300; }
.footer-link:is(:hover,:focus) { opacity:1; color:var(--gold); padding-left:10px; }

.footer-contact-info { display:flex; flex-direction:column; gap:1.5rem; }
.footer-contact-item { display:flex; gap:1rem; align-items:flex-start; }
.footer-contact-item svg { flex-shrink:0; color:var(--gold); margin-top:.25rem; }
.contact-label { font-size:.7rem; letter-spacing:.15em; color:var(--gold); text-transform:uppercase; margin-bottom:.25rem; font-weight:600; }
.contact-value { font-size:.9rem; line-height:1.6; color:var(--cream); opacity:.8; font-weight:300; }
.contact-link { transition:all .3s ease; }
.contact-link:is(:hover,:focus) { color:var(--gold); opacity:1; }

.footer-newsletter { padding:var(--sp-lg) 0; border-bottom:1px solid rgba(197,160,89,.1); }
.newsletter-content { max-width:900px; margin:0 auto; }
.newsletter-title { font-family:var(--serif); font-size:clamp(1.5rem,3vw,2rem); font-weight:500; color:var(--cream); margin-bottom:1rem; }
.newsletter-description { font-size:.95rem; line-height:1.7; color:var(--cream); opacity:.7; font-weight:300; margin-bottom:1.5rem; }
.newsletter-form { display:flex; flex-direction:column; gap:1rem; }
.newsletter-input-group { display:flex; border:1px solid var(--border-h); transition:border-color .3s var(--ease); }
.newsletter-input-group:focus-within { border-color:var(--gold); }
.newsletter-input { flex:1; background:rgba(245,241,232,.05); border:none; color:var(--cream); padding:1rem 1.5rem; font-family:var(--sans); font-size:.9rem; font-weight:300; outline:none; }
.newsletter-input::placeholder { color:var(--cream); opacity:.4; }
.newsletter-submit { background:var(--gold); color:var(--obsidian); border:none; padding:1rem 2rem; font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; font-weight:600; display:flex; align-items:center; gap:.5rem; transition:all .3s var(--ease); cursor:pointer; white-space:nowrap; }
.newsletter-submit:is(:hover,:focus) { background:var(--gold-l); gap:.75rem; }
.newsletter-submit svg { transition:transform .3s ease; }
.newsletter-submit:is(:hover,:focus) svg { transform:translateX(3px); }
.newsletter-privacy { font-size:.75rem; line-height:1.5; color:var(--cream); opacity:.5; font-weight:300; }
.newsletter-privacy-link { color:var(--gold); text-decoration:underline; }
.newsletter-privacy-link:hover { opacity:.8; }

.footer-bottom { padding:var(--sp-lg) 0 var(--sp-md); display:flex; flex-direction:column; gap:2rem; }
.footer-bottom-left { display:flex; flex-direction:column; gap:1rem; }
.footer-copyright { font-size:.85rem; color:var(--cream); opacity:.6; font-weight:300; }
.footer-legal-links { display:flex; flex-wrap:wrap; gap:.5rem 1rem; align-items:center; }
.footer-legal-link { font-size:.85rem; color:var(--cream); opacity:.6; transition:all .3s ease; font-weight:300; }
.footer-legal-link:is(:hover,:focus) { opacity:1; color:var(--gold); }
.footer-divider { color:var(--cream); opacity:.3; }
.footer-payments { display:flex; flex-direction:column; gap:1rem; }
.footer-payments-label { font-size:.75rem; letter-spacing:.1em; color:var(--cream); opacity:.6; text-transform:uppercase; font-weight:500; }
.footer-payment-icons { display:flex; gap:.75rem; flex-wrap:wrap; }
.footer-payment-icons svg { transition:all .3s var(--ease); }
.footer-payment-icons svg:hover { transform:translateY(-2px); opacity:.8; }

.footer-signature { text-align:center; padding-top:var(--sp-md); border-top:1px solid rgba(197,160,89,.1); }
.footer-signature-text { font-size:.8rem; color:var(--cream); opacity:.5; font-weight:300; display:flex; align-items:center; justify-content:center; gap:.5rem; flex-wrap:wrap; }

.footer-ornament { position:absolute; border:1px solid var(--gold); opacity:.03; pointer-events:none; }
.footer-ornament-1 { width:400px; height:400px; top:10%; right:-100px; transform:rotate(45deg); animation:ornament1 20s ease-in-out infinite; }
.footer-ornament-2 { width:300px; height:300px; bottom:10%; left:-80px; transform:rotate(30deg); animation:ornament2 15s ease-in-out infinite; }

@keyframes ornament1 { 0%,100% { transform:rotate(45deg) translateY(0); } 50% { transform:rotate(45deg) translateY(-30px); } }
@keyframes ornament2 { 0%,100% { transform:rotate(30deg) translateY(0); } 50% { transform:rotate(30deg) translateY(30px); } }

/* ============================================
   RESPONSIVE
   ============================================ */
@media (min-width:640px) {
  .atelier-features    { grid-template-columns:repeat(2,1fr); }
  .rendezvous-benefits { grid-template-columns:repeat(2,1fr); }
  .form-row            { grid-template-columns:repeat(2,1fr); }
  .galerie-grid        { grid-template-columns:repeat(2,1fr); }
  .footer-nav          { grid-template-columns:repeat(2,1fr); }
  .footer-bottom-left  { flex-direction:row; align-items:center; gap:2rem; }
  .footer-payments     { align-items:flex-end; }
  .galerie-item-wide   { grid-column:span 2; aspect-ratio:16/9; }
}

@media (min-width:768px) {
  .hero                { grid-template-columns:1fr 1fr; min-height:100vh; }
  .hero-content        { padding:8rem 3rem 4rem 4rem; order:1; }
  .hero-visual         { order:2; min-height:100vh; }
  .hero-image-container{ clip-path:polygon(15% 0,100% 0,100% 100%,0 100%); animation:imgReveal768 1.5s var(--ease) .3s both; }
  .hero-visual::before { background:linear-gradient(90deg,rgba(26,26,26,.4) 0%,transparent 30%); }
  .hero-cta            { flex-direction:row; gap:1.5rem; }
  .btn-primary,.btn-secondary { width:auto; }
  .collections-grid    { grid-template-columns:repeat(2,1fr); }
  .collection-item-featured { grid-column:span 2; }
  .collection-item-featured .collection-image-wrapper { aspect-ratio:16/9; }
  .atelier-visual      { grid-template-columns:2fr 1fr; }
  .atelier-image-secondary { display:block; aspect-ratio:3/4; overflow:hidden; border:1px solid var(--border); }
  .footer-top          { grid-template-columns:1fr 2fr; }
  .newsletter-content  { display:grid; grid-template-columns:1fr 1.5fr; gap:3rem; align-items:center; }
  .newsletter-description { margin-bottom:0; }

  .scroll-indicator { display:flex; position:absolute; bottom:3rem; left:4rem; align-items:center; gap:1rem; opacity:0; animation:fadeUp 1s ease-out 2s forwards; }
  .scroll-line { width:60px; height:1px; background:var(--gold); position:relative; overflow:hidden; }
  .scroll-line::after { content:''; position:absolute; left:-60px; width:30px; height:100%; background:var(--gold-l); animation:scrollLine 2s ease-in-out infinite; }
  @keyframes scrollLine { to { left:60px; } }
  .scroll-text { font-size:.65rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); font-weight:300; }

  .hero-ornament { display:block; position:absolute; bottom:6rem; left:-6rem; width:300px; height:300px; border:1px solid var(--gold); opacity:.1; transform:rotate(45deg); z-index:2; animation:ornamentHero 15s ease-in-out infinite; }
  @keyframes ornamentHero { 0%,100% { transform:rotate(45deg) translateY(0); } 50% { transform:rotate(45deg) translateY(-30px); } }
}

@keyframes imgReveal768 {
  from { clip-path:polygon(100% 0,100% 0,100% 100%,100% 100%); }
  to   { clip-path:polygon(15% 0,100% 0,100% 100%,0 100%); }
}

@media (min-width:1024px) {
  .nav              { padding:2rem 4rem; }
  .menu-container   { grid-template-columns:1fr 1fr; }
  .menu-content     { padding:6rem 4rem 4rem 6rem; }
  .menu-footer      { flex-direction:row; gap:4rem; }
  .menu-contact,.menu-legal { min-width:auto; }
  .collections-grid { grid-template-columns:repeat(4,1fr); }
  .atelier-container{ grid-template-columns:1fr 1fr; }
  .rendezvous-container { grid-template-columns:1fr 1.2fr; gap:clamp(3rem,6vw,6rem); }
  .footer-nav       { grid-template-columns:repeat(4,1fr); }
  .footer-bottom    { flex-direction:row; justify-content:space-between; align-items:center; }
  .hero-content     { padding:8rem 4rem 4rem 6rem; }

  .menu-visual { display:grid; position:relative; grid-template-rows:1fr 1fr; overflow:hidden; }
  .menu-visual-item { position:relative; overflow:hidden; cursor:pointer; opacity:0; transform:scale(.95); transition:all .8s var(--ease); }
  .menu-overlay.is-open .menu-visual-item:nth-child(1) { opacity:1; transform:none; transition-delay:.5s; }
  .menu-overlay.is-open .menu-visual-item:nth-child(2) { opacity:1; transform:none; transition-delay:.7s; }
  .menu-visual-img { width:100%; height:100%; object-fit:cover; filter:brightness(.7) contrast(1.1); transition:all .6s var(--ease); }
  .menu-visual-item:hover .menu-visual-img { filter:brightness(.9) contrast(1.15); transform:scale(1.05); }
  .menu-visual-label { position:absolute; bottom:2rem; right:2rem; display:flex; align-items:center; gap:1rem; color:var(--cream); font-size:.9rem; letter-spacing:.15em; text-transform:uppercase; font-weight:300; opacity:0; transform:translateY(20px); transition:all .4s var(--ease); background:rgba(26,26,26,.8); backdrop-filter:blur(10px); padding:1rem 1.5rem; border:1px solid var(--border-h); }
  .menu-visual-item:hover .menu-visual-label { opacity:1; transform:none; }
  .menu-visual-label svg { transition:transform .3s ease; }
  .menu-visual-item:hover .menu-visual-label svg { transform:translateX(5px); }
}

@media (min-width:1200px) { .footer-top { grid-template-columns:1.2fr 2.5fr; } }
@media (min-width:1440px) { .hero-image-container { clip-path:polygon(10% 0,100% 0,100% 100%,0 100%); } }

/* ============================================
   MOBILE OVERRIDES
   ============================================ */
@media (max-width:767px) {
  .atelier-stats { grid-template-columns:1fr; }
  .atelier-cta-group { flex-direction:column; }
  .btn-atelier-primary,.btn-atelier-secondary { width:100%; }
  .footer { padding:var(--sp-lg) 1.5rem 2rem; }
  .newsletter-input-group { flex-direction:column; }
  .newsletter-submit { justify-content:center; padding:1.2rem 2rem; }
  .footer-payments { align-items:flex-start; }
}

@media (max-width:768px) and (orientation:landscape) {
  .hero { min-height:auto; }
  .hero-visual { min-height:50vh; }
  .hero-content { padding-top:5rem; padding-bottom:2rem; }
  .menu-content { padding-top:4rem; }
}

/* ============================================
   ACCESSIBILITY & PREFERENCES
   ============================================ */
button:focus-visible,a:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }

@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

@media (prefers-contrast:high) { .hero-title span,.title-accent { -webkit-text-fill-color:var(--gold); } }

@media (hover:none) and (pointer:coarse) { .social-link,.footer-link,.newsletter-submit { min-height:44px; display:flex; align-items:center; } }

/* UTILITIES */
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border-width:0; }
.no-scroll { overflow:hidden; position:fixed; width:100%; }

/* PRINT */
@media print {
  .nav,.menu-overlay,.hero-cta,.scroll-indicator,.footer-social,.footer-newsletter,.footer-ornament { display:none !important; }
  body { background:white; color:black; }
  .hero-title span { -webkit-text-fill-color:black; }
  .footer { background:white; border-top:2px solid black; }
}