/* ================================================
   Seda Susoy — Make Up & Self Care
   Earthy Warmth · Natural Editorial
   ================================================ */

/* --- Tokens --- */
:root {
  --ink:        #584738;  /* Mahogany */
  --ink-2:      #3D2A1E;  /* Mahogany dark */
  --dark-bg:    #1E1410;  /* Deep dark for sections */
  --cream:      #CEC1A8;  /* Sand — warm light */
  --cream-2:    #AAA396;  /* Mountain — cooler mid */
  --surface:    oklch(92.3% 0.003 48.717);  /* Stone 200 — neutral light */
  --rose:       #B59E7D;  /* Tobacco */
  --rose-dark:  #8B7355;  /* Tobacco dark */
  --gold:       #B59E7D;  /* Tobacco */
  --gold-light: #CEC1A8;  /* Sand */
  --mist:       rgba(241, 234, 218, 0.08);  /* Vanilla mist */

  --on-dark:    #F1EADA;  /* Vanilla */
  --on-dark-2:  #DDD4BC;
  --on-dark-3:  #BFB09A;

  --serif: 'Cormorant Garamond', 'Georgia', serif;
  --sans:  'Outfit', system-ui, sans-serif;

  --max:  1240px;
  --pad:  clamp(20px, 5vw, 60px);
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
}

/* --- Reset --- */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 72px; }
body { font-family: var(--sans); font-weight: 300; background: var(--ink); color: var(--on-dark); -webkit-font-smoothing: antialiased; line-height: 1.7; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
img { max-width: 100%; display: block; }
strong { font-weight: 500; }

.container { max-width: var(--max); margin: 0 auto; padding: 0 var(--pad); }

/* ================================================
   Keyframes
   ================================================ */
@keyframes badge-spin    { to { transform: rotate(360deg); } }
@keyframes glow-pulse    { 0%,100%{opacity:.25;transform:scale(1)} 50%{opacity:.45;transform:scale(1.08)} }
@keyframes hero-in       { from{opacity:0;transform:translateY(48px);filter:blur(12px)} to{opacity:1;transform:none;filter:blur(0)} }
@keyframes eyebrow-in    { from{opacity:0;transform:scaleX(.4)} to{opacity:1;transform:scaleX(1)} }
@keyframes scroll-drop   { 0%,100%{transform:scaleY(0);transform-origin:top} 40%{transform:scaleY(1);transform-origin:top} 60%{transform:scaleY(1);transform-origin:bottom} 100%{transform:scaleY(0);transform-origin:bottom} }
@keyframes eyebrow-glow  { 0%,100%{background-position:0% 50%} 50%{background-position:100% 50%} }

/* --- Reveal --- */
.reveal { opacity:0; transform:translateY(36px); transition:opacity .85s var(--ease), transform .85s var(--ease); }
.reveal.visible { opacity:1; transform:none; }
.reveal--d1.visible { transition-delay:.10s; }
.reveal--d2.visible { transition-delay:.20s; }
.reveal--d3.visible { transition-delay:.30s; }
.reveal--d4.visible { transition-delay:.40s; }
.reveal--d5.visible { transition-delay:.50s; }

/* ================================================
   Navigation
   ================================================ */
.nav {
  position: fixed; top:0; left:0; right:0; z-index:100;
  transition: border-color .5s ease;
  border-bottom: 1px solid rgba(241,234,218,.08);
}
.nav::before {
  content:''; position:absolute; inset:0; z-index:-1;
  background:rgba(30,20,16,.78);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  transition:background .5s ease, opacity .5s ease;
}

/* Over dark hero — light text */
.nav__logo { cursor:pointer; }
.nav__logo-name { font-family:var(--serif); font-size:1.65rem; font-style:italic; font-weight:700; color:var(--cream); transition:color .4s ease; display:block; line-height:1.2; }
.nav__logo-tag  { font-family:var(--sans); font-size:.85rem; font-weight:500; letter-spacing:.2em; text-transform:uppercase; color:var(--cream-2); transition:color .4s ease; }
.nav__links a   { font-size:.88rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--on-dark-2); transition:color .35s ease; position:relative; }

.nav__links a::after {
  content:''; position:absolute; bottom:-3px; left:0;
  width:0; height:1px;
  background:linear-gradient(90deg,var(--rose),var(--gold));
  transition:width .4s var(--ease);
}
.nav__links a:hover { color:var(--on-dark); }
.nav__links a:hover::after { width:100%; }

.nav__toggle span { background:var(--on-dark); }

/* Over light sections */
.nav--light .nav__logo-name { color:var(--ink); }
.nav--light .nav__logo-tag  { color:var(--ink-2); }
.nav--light .nav__links a   { color:var(--ink-2); }
.nav--light .nav__links a:hover { color:var(--ink); }
.nav--light .nav__toggle span { background:var(--ink); }
.nav--light {
  border-bottom-color:rgba(22,11,16,.08);
}
.nav--light::before {
  content:''; position:absolute; inset:0; z-index:-1;
  background:oklch(92.3% 0.003 48.717 / .88);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
}

.nav__inner { display:flex; align-items:center; justify-content:space-between; height:72px; padding-top:0; padding-bottom:0; }
.nav__links  { display:flex; gap:36px; }
.nav__toggle { display:none; flex-direction:column; gap:6px; background:none; border:none; cursor:pointer; padding:4px; }
.nav__toggle span { display:block; width:22px; height:1.5px; transition:all .4s var(--ease); transform-origin:center; }

/* ================================================
   Hero
   ================================================ */
.hero {
  position:relative; min-height:100svh;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  overflow:hidden;
  color:var(--ink);
  background:
    /* Stone highlight — nötr, sarısı kırık */
    radial-gradient(ellipse 80% 65% at 22% 20%, oklch(92.3% 0.003 48.717 / .55) 0%, rgba(232,221,198,.3) 38%, transparent 62%),
    /* Orta alan yumuşak geçiş */
    radial-gradient(ellipse 60% 50% at 55% 55%, rgba(210,196,166,.3) 0%, transparent 65%),
    /* Alt köşe derinlik */
    radial-gradient(ellipse 55% 45% at 88% 88%, rgba(138,116,82,.35) 0%, transparent 55%),
    /* Sarı gradient — yarı opak, stone zemini üzerine oturuyor */
    linear-gradient(148deg, rgba(237,228,204,.5) 0%, rgba(216,201,168,.5) 35%, rgba(196,176,138,.5) 65%, rgba(168,144,106,.5) 100%),
    /* Stone zemin — nötr taban */
    oklch(92.3% 0.003 48.717);
}

/* İpeksi akan overlay — diagonal luster */
.hero::before {
  content:''; position:absolute; inset:0; pointer-events:none; z-index:0;
  background:
    radial-gradient(ellipse 100% 55% at 30% 5%, oklch(92.3% 0.003 48.717 / .25) 0%, transparent 50%),
    radial-gradient(ellipse 55% 30% at 72% 92%, rgba(88,71,56,.3) 0%, transparent 50%);
  mix-blend-mode:soft-light;
}

/* Subtle grain for tactile, premium feel */
.hero::after {
  content:''; position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.35  0 0 0 0 0.27  0 0 0 0 0.18  0 0 0 0.45 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.6'/></svg>");
  opacity:.18; mix-blend-mode:multiply;
}

/* Glow orbs */
.hero__glow {
  position:absolute; border-radius:50%;
  pointer-events:none; will-change:transform,opacity;
  animation:glow-pulse 8s ease-in-out infinite;
  display:none;
}
.hero__glow--rose {
  width:clamp(400px,60vw,900px); height:clamp(400px,60vw,900px);
  bottom:-15%; left:-10%;
  background:radial-gradient(circle at 35% 65%, rgba(181,158,125,.35) 0%, transparent 55%);
  filter:blur(40px);
}
.hero__glow--gold {
  width:clamp(300px,45vw,700px); height:clamp(300px,45vw,700px);
  top:-5%; right:-8%;
  background:radial-gradient(circle at 65% 35%, rgba(206,193,168,.45) 0%, transparent 55%);
  filter:blur(50px);
  animation-delay:-4s;
}

/* Rotating badge */
.hero__badge {
  position:absolute; top:clamp(90px,12vw,160px); right:clamp(20px,6vw,80px);
  width:clamp(110px,13vw,160px); height:clamp(110px,13vw,160px);
  pointer-events:none; z-index:1;
}
.hero__badge-svg { width:100%; height:100%; animation:badge-spin 40s linear infinite; }
.hero__badge text {
  font-family:var(--sans); font-size:15px; font-weight:400;
  letter-spacing:.12em; fill:var(--ink-2);
}

/* Hero content */
.hero__content {
  position:relative; z-index:1;
  text-align:center; padding:80px var(--pad) 0;
  animation:hero-in 1.2s var(--ease) .1s both;
}

.hero__eyebrow {
  display:flex; align-items:center; justify-content:center; gap:20px;
  margin-top:clamp(18px,2.5vw,32px);
  animation:eyebrow-in .9s var(--ease) .5s both;
}
.hero__eyebrow-line { flex:1; max-width:90px; height:1px; background:linear-gradient(90deg,transparent,var(--ink-2),transparent); }
.hero__eyebrow span { font-size:clamp(1rem,2.2vw,1.5rem); font-weight:300; letter-spacing:.4em; text-transform:uppercase; color:var(--ink-2); white-space:nowrap; }

.hero__title {
  line-height: 1; user-select: none;
  display: flex; align-items: baseline; justify-content: center;
  gap: .35em;
}

.hero__name {
  display: inline; font-family: var(--serif);
  font-size: clamp(3rem, 6vw, 10rem);
  font-weight: 200; font-style: normal;
  color: var(--ink);
  letter-spacing: .32em;
  text-transform: uppercase;
}

.hero__tagline {
  margin-top:clamp(20px,3vw,36px);
  font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:clamp(1rem,2vw,1.3rem);
  color:var(--on-dark-2); letter-spacing:.03em;
}

/* Scroll indicator */
.hero__scroll {
  position:absolute; bottom:36px; z-index:1;
  display:flex; flex-direction:column; align-items:center; gap:10px;
  color:var(--ink-2); transition:color .3s ease;
}
.hero__scroll:hover { color:var(--ink); }
.hero__scroll-line {
  width:1px; height:52px;
  background:linear-gradient(180deg,transparent,var(--ink-2));
  overflow:hidden; position:relative;
}
.hero__scroll-line::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg,transparent,var(--ink),transparent);
  animation:scroll-drop 2s ease-in-out infinite;
}
.hero__scroll span { font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; }

/* ================================================
   Portfolio Gallery — editorial masonry / mobile slider
   ================================================ */
.gallery__grid {
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:clamp(8px,1.2vw,16px);
  padding:0 clamp(12px,2vw,24px);
}

.gallery__col {
  display:flex; flex-direction:column;
  gap:clamp(8px,1.2vw,16px);
}
.gallery__col--offset {
  margin-top:clamp(32px,5vw,72px);
}

.gallery__item {
  position:relative;
  overflow:hidden;
  border-radius:3px;
}

.gallery__item img {
  display:block; width:100%;
  height:auto;
  transition:transform .7s var(--ease);
}

.gallery__item:hover img {
  transform:scale(1.05);
}

/* ================================================
   Section shared
   ================================================ */
.section { padding:clamp(80px,12vw,140px) 0; }
.section--cream { background:var(--surface); color:var(--ink); }
.section--dark  { background:var(--dark-bg); color:var(--on-dark); }

.sec-head { margin-bottom:clamp(40px,7vw,72px); }

.sec-eyebrow {
  font-size:.95rem; font-weight:400; letter-spacing:.3em; text-transform:uppercase;
  margin-bottom:14px;
  background:linear-gradient(90deg, var(--rose), var(--gold), var(--rose-dark), var(--gold), var(--rose));
  background-size:300% auto;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:eyebrow-glow 5s linear infinite;

  @media (max-width: 860px) {
    font-size: 12px;
  }

}

/* On dark — eyebrow needs higher contrast */
.section--dark .sec-eyebrow {
  background:none;
  -webkit-background-clip:unset; -webkit-text-fill-color:var(--on-dark-2);
  background-clip:unset;
  animation:none;
  color:var(--on-dark-2);
}

/* On Sand cream — Tobacco gradient has low contrast, use solid ink */
.section--cream .sec-eyebrow {
  background:none;
  -webkit-background-clip:unset; -webkit-text-fill-color:var(--ink-2);
  background-clip:unset;
  animation:none;
  color:var(--ink-2);
}

.sec-title {
  font-family:var(--serif); font-weight:400;
  font-size:clamp(2.4rem,6vw,5rem);
  letter-spacing:-.01em; line-height:1.05;
}

.section--cream .sec-title { color:var(--ink); }
.section--dark  .sec-title { color:var(--on-dark); }

/* ================================================
   Context-aware text/border colors
   (sections flipped — ensure legibility on both bgs)
   ================================================ */

/* Descriptions & body copy on dark sections */
.section--dark .skincare__desc,
.section--dark .bodycare__desc,
.section--dark .acc__text,
.section--dark .acc__card-text,
.section--dark .acc__step-text,
.section--dark .about__text p,
.section--dark .plist__note {
  color: var(--on-dark-2);
}

/* Service rows on dark sections (skincare, bodycare) */
.section--dark .services { border-top-color: rgba(241,234,218,.18); }
.section--dark .srow { border-bottom-color: rgba(241,234,218,.18); }
.section--dark .srow__name { color: var(--on-dark); }
.section--dark .srow__desc { color: var(--on-dark-2); }
.section--dark .srow__n { color: var(--gold); opacity:.35; }
.section--dark .srow__arrow { color: rgba(241,234,218,.3); }
.section--dark .srow--active .srow__n { color:#fff; opacity:.7; }
.section--dark .srow--active .srow__name,
.section--dark .srow--active .srow__desc,
.section--dark .srow--active .srow__arrow,
.section--dark .srow--active .srow__price { color:#fff; opacity:1; }

/* Accordion on dark sections (bodycare) */
.section--dark .acc { border-top-color: rgba(241,234,218,.18); }
.section--dark .acc__item { border-bottom-color: rgba(241,234,218,.18); }
.section--dark .acc__trigger { color: var(--on-dark-2); }
.section--dark .acc__trigger:hover,
.section--dark .acc__item--open .acc__trigger { color: var(--on-dark); }
.section--dark .acc__card {
  border-color: rgba(241,234,218,.15);
  background: rgba(241,234,218,.04);
}
.section--dark .acc__card-title { color: var(--gold-light); }
.section--dark .acc__timeline { border-top-color: rgba(241,234,218,.18); }
.section--dark .acc__step { border-right-color: rgba(241,234,218,.18); }

/* About on dark */
.section--dark .about__frame { border-color: rgba(241,234,218,.2); }
.section--dark .about__stamp text { fill: var(--on-dark-2); }
.section--dark .about__img-placeholder span { color: rgba(241,234,218,.5); }

/* Pricing (.prow) on cream sections (makeup) */
.section--cream .plist { border-top-color: rgba(88,71,56,.2); }
.section--cream .prow { border-bottom-color: rgba(88,71,56,.2); }
.section--cream .prow--active { border-left-color: var(--rose-dark); }
.section--cream .prow__tag { color: var(--ink-2); }
.section--cream .prow__title { color: var(--ink-2); }
.section--cream .prow--active .prow__title { color: var(--ink); }
.section--cream .prow__note { color: var(--ink-2); }
.section--cream .prow--active .prow__note { color: var(--ink-2); }
.section--cream .prow--star .prow__note { color: var(--ink-2); }
.section--cream .prow--star.prow--active .prow__note { color: var(--ink); }
.section--cream .prow__amt { color: var(--ink-2); }
.section--cream .prow--active .prow__amt { color: var(--rose-dark); }
.section--cream .prow__loc { color: var(--ink-2); }
.section--cream .prow--active .prow__loc { color: var(--ink); }
.section--cream .prow--star .prow__title,
.section--cream .prow--star .prow__amt { color: var(--ink-2); }
.section--cream .prow--star.prow--active .prow__title { color: var(--ink); }
.section--cream .prow--star.prow--active .prow__amt { color: var(--rose-dark); }
.section--cream .plist__note { color: var(--ink-2); }

/* Contact on cream */
.section--cream .cinfo__lbl { color: var(--ink-2); }
.section--cream .cinfo__val { color: var(--ink); }
.section--cream a.cinfo__val:hover { color: var(--rose-dark); }
.section--cream .soc {
  color: var(--ink-2);
  border-color: rgba(88,71,56,.28);
}
.section--cream .soc:hover { color: var(--ink); border-color: var(--rose-dark); }

/* ================================================
   Skincare Section
   ================================================ */
.skincare__desc {
  max-width:620px; margin-bottom:clamp(20px,6vw,40px);
  font-size:1.125rem; color:var(--ink-2); line-height:1.85;
}

.services { border-top:1px solid rgba(88,71,56,.15); }

.srow {
  position:relative; overflow:hidden;
  display:flex; align-items:flex-start; gap:clamp(16px,3vw,40px);
  padding:clamp(20px,3vw,32px) 0;
  border-bottom:1px solid rgba(88,71,56,.15);
  cursor:default;
  transition:padding-left .5s var(--ease);
}

/* Full-width rose fill on active */
.srow::before {
  content:''; position:absolute; inset:0;
  background:var(--rose);
  transform:translateX(-101%);
  transition:transform .55s var(--ease);
  z-index:0;
}
.srow--active::before { transform:translateX(0); }
.srow--active { padding-left:clamp(16px,3vw,32px); }

.srow__n, .srow__body, .srow__name, .srow__desc, .srow__arrow { position:relative; z-index:1; transition:color .3s ease; }

.srow__n {
  font-family:var(--serif); font-size:clamp(2.5rem,5vw,4.5rem);
  font-style:italic; font-weight:700;
  color:var(--rose); opacity:.25; line-height:1;
  min-width:clamp(48px,7vw,90px);
  padding-top:.1em;
  transition:opacity .3s ease, color .3s ease;
}
.srow--active .srow__n { color:#fff; opacity:.6; }

.srow__body { flex:1; display:flex; flex-direction:column; gap:8px; }

.srow__name {
  font-family:var(--serif); font-weight:400;
  font-size:clamp(1.35rem,2.5vw,1.8rem);
  letter-spacing:.01em;
  color:var(--ink);
}
.srow--active .srow__name { color:#fff; }

.srow__desc {
  font-size:clamp(1rem,1.8vw,1.1rem); color:var(--ink-2);
  line-height:1.8; max-width:560px;
  transition:color .3s ease;
}
.srow--active .srow__desc { color:#EEE5D5; }

/* Dark variant (body care section) */
.services--dark { border-top-color:var(--on-dark-3); }
.srow--dark { border-bottom-color:var(--on-dark-3); }
.srow--dark .srow__n { color:var(--gold); }
.srow--dark .srow__name { color:var(--on-dark-2); }
.srow--dark .srow__desc { color:var(--on-dark-3); }
.srow--dark::before { background:var(--rose-dark); }
.srow--dark.srow--active .srow__name { color:var(--cream); }
.srow--dark.srow--active .srow__desc { color:var(--cream-2); }
.srow--dark.srow--active .srow__n { color:rgba(255,255,255,.5); opacity:1; }

.srow__arrow {
  font-size:clamp(1.1rem,2vw,1.5rem);
  color:rgba(88,71,56,.25);
  transition:color .3s ease, transform .4s var(--ease);
}
.srow--active .srow__arrow { color:#fff; transform:translate(6px,-4px); }

.srow__price {
  position:relative; z-index:1;
  flex-shrink:0;
  align-self:center;
  font-family:var(--serif);
  font-size:clamp(1.4rem,3vw,2.5rem);
  font-weight:700;
  letter-spacing:.02em;
  line-height:1;
  color:var(--gold);
  opacity:.7;
  transition:color .3s ease, opacity .3s ease;
  white-space:nowrap;
}
.srow--active .srow__price { opacity:1; color:var(--gold-light); }

/* ================================================
   Makeup / Pricing
   ================================================ */
.plist { border-top:1px solid var(--on-dark-3); margin-top:0; }

.prow {
  display:flex; align-items:flex-start; justify-content:space-between;
  gap:clamp(20px,4vw,60px);
  padding:clamp(28px,4vw,48px) 0;
  border-bottom:1px solid var(--on-dark-3);
  border-left:2px solid transparent;
  padding-left:0;
  transition:border-color .4s ease, padding-left .5s var(--ease), border-left-color .4s ease;
}
.prow--active {
  border-left-color:var(--rose);
  padding-left:clamp(16px,3vw,32px);
}

.prow__meta   { flex:1; }
.prow__prices { display:flex; flex-direction:column; gap:12px; text-align:right; flex-shrink:0; }

.prow__tag {
  font-size:.8rem; font-weight:500; letter-spacing:.22em; text-transform:uppercase;
  color:var(--on-dark-2); margin-bottom:10px;
}

.prow__title {
  font-family:var(--serif); font-weight:400;
  font-size:clamp(1.5rem,3.5vw,2.8rem);
  letter-spacing:.01em; line-height:1.1;
  color:var(--on-dark-2);
  transition:color .4s ease;
}
.prow--active .prow__title { color:var(--cream); }

.prow__note { margin-top:10px; font-size:1.05rem; color:var(--on-dark); font-style:italic; transition:color .4s ease; }
.prow--active .prow__note { color:var(--on-dark-2); }

.prow__price  { display:flex; flex-direction:column; align-items:flex-end; gap:3px; }
.prow__amt {
  font-family:var(--serif); font-weight:700;
  font-size:clamp(1.4rem,3vw,2.5rem);
  letter-spacing:.02em; line-height:1;
  color:var(--on-dark-3);
  transition:color .4s ease;
}
.prow--active .prow__amt { color:var(--gold); }

.prow__loc { font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--on-dark); transition:color .4s ease; }
.prow--active .prow__loc { color:var(--on-dark-2); }

/* Starred row */
.prow--star .prow__title { color:var(--on-dark-2); }
.prow--star .prow__amt   { color:var(--on-dark-2); }
.prow--star.prow--active .prow__title { color:var(--cream); }
.prow--star.prow--active .prow__amt   { color:var(--gold-light); }

.plist__note { margin-top:24px; font-size:1.05rem; font-style:italic; color:var(--on-dark); }

/* ================================================
   Body Care Section
   ================================================ */
.bodycare__desc {
  max-width:620px; margin-bottom:clamp(40px,6vw,64px);
  font-size:1.125rem; color:var(--ink-2); line-height:1.85;
}

/* ================================================
   Accordion
   ================================================ */
.acc {
  border-top:1px solid rgba(88,71,56,.15);
  margin-top:clamp(48px,8vw,80px);
}

.acc__item { border-bottom:1px solid rgba(88,71,56,.15); }

.acc__trigger {
  width:100%; display:flex; align-items:center; justify-content:space-between;
  gap:24px; padding:clamp(20px,3vw,28px) 0;
  background:none; border:none; cursor:pointer; text-align:left;
  font-family:var(--serif); font-size:clamp(1.25rem,2.5vw,1.6rem); font-weight:400;
  color:var(--ink-2); letter-spacing:.01em;
  transition:color .3s ease;
}
.acc__trigger:hover { color:var(--ink); }
.acc__item--open .acc__trigger { color:var(--ink); }

.acc__icon {
  width:20px; height:20px; flex-shrink:0;
  color:var(--rose);
  transition:transform .45s var(--ease);
}
.acc__item--open .acc__icon { transform:rotate(45deg); }

.acc__content {
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .5s var(--ease);
}
.acc__item--open .acc__content { grid-template-rows:1fr; }

.acc__body {
  overflow:hidden;
  padding-bottom:0;
  transition:padding-bottom .5s var(--ease);
}
.acc__item--open .acc__body { padding-bottom:clamp(28px,4vw,48px); }

.acc__text {
  font-size:clamp(1.1rem,1.8vw,1.25rem); color:var(--ink-2); line-height:1.85;
  max-width:640px; margin-bottom:14px;
}
.acc__text:last-child { margin-bottom:0; }

/* Accordion info cards */
.acc__grid {
  display:grid; grid-template-columns:repeat(3,1fr);
  gap:clamp(12px,2vw,20px);
  margin-top:clamp(24px,4vw,36px);
}

.acc__card {
  padding:clamp(16px,2vw,24px);
  border:1px solid rgba(88,71,56,.12);
  background:rgba(88,71,56,.04);
}

.acc__card-title {
  font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:clamp(1.15rem,1.5vw,1.35rem);
  color:var(--rose-dark); margin-bottom:8px;
}

.acc__card-text {
  font-size:clamp(1rem,1.5vw,1.1rem); color:var(--ink-2); line-height:1.7;
}

/* Accordion timeline */
.acc__timeline {
  display:flex; gap:0;
  margin-top:clamp(24px,4vw,36px);
  border-top:1px solid rgba(88,71,56,.15);
}

.acc__step {
  flex:1; padding:clamp(16px,2.5vw,28px) clamp(12px,2vw,24px);
  border-right:1px solid rgba(88,71,56,.15);
}
.acc__step:last-child { border-right:none; }

.acc__step-n {
  display:block; font-size:.85rem; font-weight:400;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--rose); margin-bottom:10px;
}

.acc__step-text {
  font-size:clamp(1rem,1.5vw,1.1rem); color:var(--ink-2); line-height:1.7;
}

/* ================================================
   About
   ================================================ */
.about {
  display:grid; grid-template-columns:5fr 7fr;
  gap:clamp(40px,8vw,100px); align-items:center;
}

.about__visual { position:relative; }

.about__frame {
  position:relative;
  padding:12px; border:1px solid rgba(22,11,16,.12);
}

.about__img-placeholder {
  aspect-ratio:3/4;
  background:linear-gradient(145deg, var(--cream-2), color-mix(in srgb, var(--rose) 8%, var(--cream-2)));
  display:flex; align-items:center; justify-content:center;
}
.about__img-placeholder span { font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(22,11,16,.35); }

.about__img {
  display:block;
  width:100%;
  aspect-ratio:3/4;
  object-fit:cover;
  object-position:center top;
}

.about__stamp {
  position:absolute; bottom:-28px; right:-28px;
  width:100px; height:100px;
}
.about__stamp svg { width:100%; height:100%; animation:badge-spin 18s linear infinite reverse; }
.about__stamp text { font-family:var(--sans); font-size:13px; letter-spacing:.1em; fill:var(--ink-2); }

.about__h { font-style:normal; }
.about__h em { font-style:italic; color:var(--rose); }


.about__text { margin-top:clamp(20px,3vw,32px); }
.about__text p { font-size:1.125rem; color:var(--ink-2); line-height:1.9; }
.about__text p + p { margin-top:16px; }

/* ================================================
   Contact
   ================================================ */
.contact { display:flex; flex-direction:column; align-items:center; gap:56px; }

.cinfo { display:flex; gap:clamp(32px,6vw,80px); justify-content:center; flex-wrap:wrap; }
.cinfo__lbl {
  font-size:.78rem; font-weight:400; letter-spacing:.2em; text-transform:uppercase;
  color:var(--on-dark-2); margin-bottom:8px;
}
.cinfo__val {
  font-family:var(--serif); font-size:clamp(1rem,2.5vw,1.5rem); font-weight:400;
  color:var(--on-dark); transition:color .3s ease;
}
a.cinfo__val:hover { color:var(--gold); }

/* Socials */
.socials { display:flex; gap:12px; flex-wrap:wrap; justify-content:center; }

.soc {
  display:inline-flex; align-items:center; gap:10px;
  padding:12px 24px;
  border:1px solid var(--on-dark-3);
  font-size:.85rem; font-weight:400; letter-spacing:.12em; text-transform:uppercase;
  color:var(--on-dark-2);
  position:relative; overflow:hidden;
  transition:color .35s ease, border-color .35s ease;
}
.soc::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg,rgba(212,64,96,.15),rgba(200,144,90,.15));
  transform:translateX(-101%); transition:transform .45s var(--ease);
}
.soc:hover { color:var(--on-dark); border-color:var(--gold); }
.soc:hover::before { transform:translateX(0); }
.soc svg { width:16px; height:16px; flex-shrink:0; position:relative; z-index:1; }
.soc span { position:relative; z-index:1; }

/* ================================================
   Contact section — hero-echo gradient
   ================================================ */
#contact {
  background:
    radial-gradient(ellipse 70% 60% at 92% 95%, rgba(168,144,106,.55) 0%, rgba(138,116,82,.3) 45%, transparent 68%),
    radial-gradient(ellipse 55% 50% at 8%  8%,  oklch(92.3% 0.003 48.717 / .55) 0%, transparent 60%),
    radial-gradient(ellipse 50% 40% at 50% 50%, rgba(216,201,168,.2) 0%, transparent 70%),
    linear-gradient(148deg, rgba(237,228,204,.35) 0%, rgba(216,201,168,.2) 50%, oklch(92.3% 0.003 48.717) 100%);
}

/* ================================================
   Footer
   ================================================ */
.footer {
  background: linear-gradient(148deg, #3D2A1E 0%, #2A1C12 60%, #1E1410 100%);
  border-top: 1px solid rgba(181,158,125,.18);
  padding:28px 0;
}
.footer__inner { display:flex; align-items:center; justify-content:space-between; }
.footer__logo {
  font-family:var(--serif); font-style:italic; font-size:1.2rem;
  color:var(--on-dark); transition:color .3s ease;
}
.footer__logo:hover { color:var(--gold); }
.footer__copy { font-size:.82rem; color:var(--on-dark-2); letter-spacing:.04em; }

/* ================================================
   Responsive
   ================================================ */
@media (max-width: 860px) {
  .gallery__grid { grid-template-columns:repeat(3, 1fr); }
  .gallery__col:nth-child(4) { display:none; }
  .gallery__col--offset { margin-top:clamp(20px,4vw,40px); }

  .about { grid-template-columns:1fr; gap:48px; }
  .about__h { text-align:center; }
  .about__body { text-align:center; }
  .sec-head { text-align:center; }
  .about__text p { text-align:center; }
  .about__stamp { bottom:-20px; right:0; }

  .prow { flex-direction:column; gap:20px; }
  .prow__prices { flex-direction:row; flex-wrap:wrap; text-align:left; gap:24px; }
  .prow__price { align-items:flex-start; }

  .acc__grid { grid-template-columns:1fr; gap:12px; }

  .acc__timeline { flex-direction:column; border-top:none; }
  .acc__step { border-right:none; border-top:1px solid var(--on-dark-3); }
}

@media (max-width: 1024px) {
  .nav__toggle { display:flex; }

  .nav__links {
    position:fixed; top:72px; left:0; right:0; bottom:0;
    z-index:999;
    background:var(--dark-bg); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
    flex-direction:column; align-items:center; justify-content:center; gap:0;
    padding:16px 0;
    transform:translateY(-110%); opacity:0; pointer-events:none;
    transition:transform .45s var(--ease), opacity .4s ease;
  }
  .nav--light .nav__links { background:var(--dark-bg); }
  .nav--light .nav__links a { color:var(--on-dark-2); }
  .nav--light .nav__links a:hover { color:var(--on-dark); }
  .nav__links--open { transform:translateY(0); opacity:1; pointer-events:auto; }
  .nav__links li { width:100%; text-align:center; }
  .nav__links a { display:block; padding:14px 24px; font-size:1.1rem; }
  .nav__links a::after { display:none; }

  .nav__toggle--open span:nth-child(1) { transform:rotate(45deg) translate(5px,5px); }
  .nav__toggle--open span:nth-child(2) { transform:rotate(-45deg) translate(5px,-5px); }
}

@media (max-width: 768px) {
  /* Gallery → flat horizontal snap slider, every image is a slide */
  .gallery__grid {
    display:flex;
    gap:12px;
    padding:0 20px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  .gallery__grid::-webkit-scrollbar { display:none; }

  .gallery__col {
    display:contents;
  }
  .gallery__col--offset { margin-top:0; }

  .gallery__item {
    flex:0 0 70vw;
    scroll-snap-align:center;
  }
  .gallery__item img { border-radius:4px; }

  .hero__badge { display:none; }
  .hero__scroll-line { height:36px; }

  /* Hero title: stack words, tighter spacing for mobile */
  .hero__title {
    flex-direction: column;
    align-items: center;
    gap: .1em;
    line-height: 1.05;
  }
  .hero__name-first,
  .hero__name-last {
    display: block;
    font-size: clamp(1.8rem, 10vw, 2.8rem);
    letter-spacing: .18em;
  }
  .hero__eyebrow span { letter-spacing: .22em; }

  /* Service rows: add right padding so text doesn't touch edge */
  .srow { padding-right:8px; gap:clamp(12px,2vw,24px); flex-wrap:wrap; }
  .srow__n { font-size:clamp(1.8rem,5vw,4.5rem); min-width:clamp(36px,6vw,90px); }
  .srow__body { min-width:0; }
  .srow__price {
    width:100%;
    padding-left:calc(clamp(36px,6vw,90px) + clamp(12px,2vw,24px));
    align-self:auto;
    opacity:.85;
  }

  /* Skincare/body care rows: reduce stagger to prevent cascading CLS feel */
  .srow.reveal { transform:translateY(16px); transition-duration:1s; }
  .srow.reveal.visible { opacity:1; transform:none; }
  .srow.reveal--d1.visible,
  .srow.reveal--d2.visible,
  .srow.reveal--d3.visible,
  .srow.reveal--d4.visible,
  .srow.reveal--d5.visible { transition-delay:0s; }

  .footer__inner { flex-direction:column; gap:12px; text-align:center; }
  .cinfo { flex-direction:column; align-items:center; text-align:center; gap:28px; }
}

@media (max-width: 480px) {
  .hero__glow--gold { display:none; }
  .soc span { display:none; }
  .soc { padding:12px 16px; }

  .hero__name{
    font-size: clamp(2.4rem, 11vw, 2rem);
    letter-spacing: .25em;
  }

  .gallery__item { flex:0 0 80vw; }

  /* Slower, gentler animations on mobile */
  .reveal { transition-duration:1.2s; transform:translateY(20px); }
  .reveal--d1.visible { transition-delay:.15s; }
  .reveal--d2.visible { transition-delay:.30s; }
  .reveal--d3.visible { transition-delay:.45s; }
  .reveal--d4.visible { transition-delay:.60s; }
  .reveal--d5.visible { transition-delay:.75s; }

  /* Skincare rows: no stagger, opacity-only to prevent CLS-like shift */
  .srow.reveal { transform:none; opacity:0; transition:opacity 1s var(--ease); }
  .srow.reveal.visible { opacity:1; transform:none; }
  .srow.reveal--d1.visible,
  .srow.reveal--d2.visible,
  .srow.reveal--d3.visible,
  .srow.reveal--d4.visible,
  .srow.reveal--d5.visible { transition-delay:0s; }
}

/* ================================================
   Music toggle
   ================================================ */
@keyframes music-ring {
  0%   { opacity: .55; transform: scale(1); }
  100% { opacity: 0;   transform: scale(1.75); }
}

.music-btn {
  position: fixed; bottom: 28px; right: 28px; z-index: 200;
  width: 46px; height: 46px; border-radius: 50%;
  border: 1px solid var(--on-dark-3);
  background: rgba(88, 71, 56, 0.88);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
  color: var(--on-dark-2);
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: border-color .35s ease, color .35s ease, transform .2s ease;
}
.music-btn:hover { border-color: var(--gold); color: var(--on-dark); transform: scale(1.08); }

.music-btn__icon { width: 20px; height: 20px; fill: currentColor; flex-shrink: 0; }

.music-btn__ring {
  position: absolute; inset: -1px; border-radius: 50%;
  border: 1px solid var(--gold);
  opacity: 0; pointer-events: none;
}
.music-btn.is-playing { border-color: var(--gold); color: var(--cream); }
.music-btn.is-playing .music-btn__ring { animation: music-ring 2.2s ease-out infinite; }

@media (max-width: 480px) {
  .music-btn { bottom: 20px; right: 20px; width: 42px; height: 42px; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; transition-duration:.3s !important; }
  .reveal { opacity:1; transform:none; }
  .music-btn__ring { animation: none !important; }
}

.about__name {
  letter-spacing: 12px;
}