/* ==========================================================================
   NOIR Hair Studio — Stylesheet
   Vier Paletten, umschaltbar über data-theme am <html>-Element:
   rose (Standard) · kupfer · salbei · gold
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Bodoni+Moda:ital,opsz,wght@0,6..96,400;0,6..96,500;0,6..96,600;1,6..96,400&family=Jost:wght@200;300;400;500&display=swap');

:root{
  /* Basis-RGB-Werte — alle abgeleiteten Töne rechnen damit */
  --onyx-rgb:   13,11,12;
  --ivory-rgb:  241,236,234;
  --accent-rgb: 196,166,154;

  --onyx:        rgb(var(--onyx-rgb));
  --coal:        #171314;
  --coal-soft:   #1E1819;
  --card:        #1A1516;
  --line:        rgba(var(--ivory-rgb),0.09);
  --line-strong: rgba(var(--ivory-rgb),0.18);

  --gold:        rgb(var(--accent-rgb));
  --gold-light:  #DCC3B9;
  --gold-dim:    rgba(var(--accent-rgb),0.14);

  --ivory:       rgb(var(--ivory-rgb));
  --ivory-70:    rgba(var(--ivory-rgb),0.7);
  --ivory-45:    rgba(var(--ivory-rgb),0.45);

  --font-display:'Bodoni Moda', Georgia, serif;
  --font-body:   'Jost', sans-serif;

  --fs-hero: clamp(3rem, 8vw, 7rem);
  --fs-h2:   clamp(2rem, 4vw, 3.4rem);
  --fs-h3:   1.25rem;

  --sp-3xs: 0.4rem;
  --sp-xs:  0.75rem;
  --sp-sm:  1.25rem;
  --sp-md:  2.25rem;
  --sp-lg:  4.5rem;
  --sp-xl:  7.5rem;

  --max-w: 1220px;
  --radius: 2px;
  --ease: cubic-bezier(.22,1,.36,1);
}

/* ---------- Palette: Rosé-Nude (Standard) ---------- */
[data-theme="rose"]{
  --onyx-rgb:   13,11,12;
  --ivory-rgb:  241,236,234;
  --accent-rgb: 196,166,154;
  --coal:       #171314;
  --coal-soft:  #1E1819;
  --card:       #1A1516;
  --gold-light: #DCC3B9;
}

/* ---------- Palette: Kupfer ---------- */
[data-theme="kupfer"]{
  --onyx-rgb:   12,12,14;
  --ivory-rgb:  239,233,225;
  --accent-rgb: 184,115,51;
  --coal:       #16130F;
  --coal-soft:  #1D1813;
  --card:       #191510;
  --gold-light: #D08F4E;
}

/* ---------- Palette: Salbei ---------- */
[data-theme="salbei"]{
  --onyx-rgb:   10,11,11;
  --ivory-rgb:  237,238,234;
  --accent-rgb: 140,154,142;
  --coal:       #131614;
  --coal-soft:  #1A1E1C;
  --card:       #161A18;
  --gold-light: #A9B5AB;
}

/* ---------- Palette: Gold ---------- */
[data-theme="gold"]{
  --onyx-rgb:   11,11,13;
  --ivory-rgb:  242,239,233;
  --accent-rgb: 201,162,39;
  --coal:       #141417;
  --coal-soft:  #1B1B1F;
  --card:       #17171B;
  --gold-light: #E3C25C;
}

/* ---------- Paletten-Umschalter ---------- */
.theme-switch{
  position:fixed;
  left:var(--sp-md); bottom:var(--sp-md);
  z-index:95;
  display:flex; align-items:center; gap:10px;
  background:rgba(var(--onyx-rgb),0.86);
  backdrop-filter:blur(14px);
  border:1px solid var(--line-strong);
  padding:0.7rem 0.9rem;
  transition:opacity 0.4s var(--ease);
}
.theme-switch-label{
  font-size:0.58rem;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--ivory-45);
  margin-right:2px;
  white-space:nowrap;
}
.theme-dot{
  width:22px; height:22px;
  border-radius:50%;
  border:1px solid rgba(var(--ivory-rgb),0.25);
  cursor:pointer;
  padding:0;
  position:relative;
  transition:transform 0.3s var(--ease), border-color 0.3s var(--ease);
}
.theme-dot:hover{ transform:scale(1.15); }
.theme-dot[aria-pressed="true"]{
  border-color:var(--ivory);
  transform:scale(1.15);
}
.theme-dot[aria-pressed="true"]::after{
  content:"";
  position:absolute; inset:-4px;
  border:1px solid rgba(var(--ivory-rgb),0.4);
  border-radius:50%;
}
.theme-dot[data-set="rose"]{ background:#C4A69A; }
.theme-dot[data-set="kupfer"]{ background:#B87333; }
.theme-dot[data-set="salbei"]{ background:#8C9A8E; }
.theme-dot[data-set="gold"]{ background:#C9A227; }

@media (max-width:680px){
  .theme-switch{
    left:var(--sp-sm); right:var(--sp-sm); bottom:var(--sp-sm);
    justify-content:center;
    padding:0.6rem;
  }
  .theme-switch-label{ display:none; }
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }

/* Fixierter Header darf beim Ankersprung keine Überschrift verdecken */
section[id], header[id]{ scroll-margin-top:120px; }

body{
  background:var(--onyx);
  color:var(--ivory);
  font-family:var(--font-body);
  font-weight:300;
  font-size:1rem;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background 0.7s var(--ease), color 0.7s var(--ease);
}
/* Farbwechsel weich überblenden */
.site-header, .stats, .section-alt, .diff-card, .booking-card,
.site-footer, .btn, .field input, .field select, .field textarea,
.marquee, .back-to-top, .theme-switch{
  transition:background 0.7s var(--ease), color 0.7s var(--ease),
             border-color 0.7s var(--ease);
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; }

h1,h2,h3{ font-family:var(--font-display); font-weight:400; line-height:1.05; letter-spacing:-0.01em; }
h2{ font-size:var(--fs-h2); }
h2 em, h1 em{ font-style:italic; color:var(--gold); }

.container{ max-width:var(--max-w); margin:0 auto; padding:0 var(--sp-md); }
:focus-visible{ outline:1px solid var(--gold); outline-offset:4px; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:0.01ms !important; transition-duration:0.01ms !important; }
}

/* -------- eyebrow -------- */
.eyebrow{
  font-family:var(--font-body);
  font-weight:400;
  font-size:0.7rem;
  letter-spacing:0.3em;
  text-transform:uppercase;
  color:var(--gold);
  display:inline-block;
  margin-bottom:var(--sp-sm);
}

/* -------- buttons -------- */
.btn{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:0.6rem;
  font-family:var(--font-body);
  font-weight:400;
  font-size:0.78rem;
  letter-spacing:0.18em;
  text-transform:uppercase;
  padding:1.1rem 2.4rem;
  border:1px solid var(--gold);
  color:var(--gold);
  background:transparent;
  cursor:pointer;
  overflow:hidden;
  transition:color 0.45s var(--ease);
  z-index:0;
}
.btn::before{
  content:"";
  position:absolute; inset:0;
  background:var(--gold);
  transform:translateY(101%);
  transition:transform 0.45s var(--ease);
  z-index:-1;
}
.btn:hover{ color:var(--onyx); }
.btn:hover::before{ transform:translateY(0); }
.btn-solid{ background:var(--gold); color:var(--onyx); }
.btn-solid::before{ background:var(--ivory); }
.btn-solid:hover{ color:var(--onyx); }
.btn-row{ display:flex; gap:var(--sp-sm); flex-wrap:wrap; }

/* -------- header -------- */
.site-header{
  position:fixed; top:0; left:0; right:0;
  z-index:100;
  padding:var(--sp-md) 0;
  transition:padding 0.4s var(--ease), background 0.4s var(--ease), border-color 0.4s var(--ease);
  border-bottom:1px solid transparent;
}
.site-header.scrolled{
  padding:var(--sp-xs) 0;
  background:rgba(var(--onyx-rgb),0.88);
  backdrop-filter:blur(14px);
  border-bottom-color:var(--line);
}
.nav{ display:flex; align-items:center; justify-content:space-between; }
.logo{
  font-family:var(--font-display);
  font-size:1.5rem;
  letter-spacing:0.35em;
  text-transform:uppercase;
  color:var(--ivory);
  padding-left:0.35em;
}
.logo small{
  display:block;
  font-family:var(--font-body);
  font-size:0.52rem;
  letter-spacing:0.42em;
  color:var(--gold);
  margin-top:-0.15rem;
  padding-left:0.15em;
}
.nav-links{ display:flex; gap:var(--sp-md); align-items:center; }
.nav-link{
  position:relative;
  font-size:0.76rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--ivory-70);
  padding:0.3rem 0;
  transition:color 0.3s var(--ease);
}
.nav-link::after{
  content:"";
  position:absolute; left:0; bottom:0;
  width:100%; height:1px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:right;
  transition:transform 0.4s var(--ease);
}
.nav-link:hover{ color:var(--ivory); }
.nav-link:hover::after, .nav-link.active-link::after{ transform:scaleX(1); transform-origin:left; }
.nav-link.active-link{ color:var(--gold); }
.nav-cta{ font-size:0.72rem; padding:0.8rem 1.6rem; }

.nav-toggle{
  display:none;
  width:42px; height:42px;
  background:transparent; border:1px solid var(--line-strong);
  cursor:pointer; position:relative; z-index:110;
}
.nav-toggle span{
  position:absolute; left:50%; top:50%;
  width:16px; height:1px; background:var(--ivory);
  transform:translate(-50%,-50%);
  transition:0.3s var(--ease);
}
.nav-toggle span:nth-child(1){ transform:translate(-50%,-5px); }
.nav-toggle span:nth-child(3){ transform:translate(-50%,4px); }
.nav-toggle.active span:nth-child(1){ transform:translate(-50%,-50%) rotate(45deg); }
.nav-toggle.active span:nth-child(2){ opacity:0; }
.nav-toggle.active span:nth-child(3){ transform:translate(-50%,-50%) rotate(-45deg); }

/* -------- hero -------- */
.hero{
  position:relative;
  min-height:100vh;
  display:flex; align-items:center;
  overflow:hidden;
}
.hero-bg{
  position:absolute; inset:0;
  overflow:hidden;
}
.hero-bg img{
  width:100%; height:100%;
  object-fit:cover;
  filter:grayscale(100%) contrast(1.08) brightness(0.62);
  transform:scale(1.12);
  animation:heroZoom 18s var(--ease) forwards;
}
@keyframes heroZoom{ to{ transform:scale(1); } }
.hero-bg::after{
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(180deg, rgba(var(--onyx-rgb),0.7) 0%, rgba(var(--onyx-rgb),0.35) 45%, rgba(var(--onyx-rgb),0.94) 100%),
    radial-gradient(ellipse at 30% 50%, transparent 0%, rgba(var(--onyx-rgb),0.5) 80%);
}
.hero-inner{ position:relative; z-index:2; width:100%; padding-top:var(--sp-lg); }
.hero h1{
  font-size:var(--fs-hero);
  margin-bottom:var(--sp-sm);
  max-width:14ch;
}
.hero .lede{
  color:var(--ivory-70);
  max-width:44ch;
  font-size:1.05rem;
  margin-bottom:var(--sp-md);
}
.hero-meta{
  font-size:0.72rem;
  letter-spacing:0.24em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:var(--sp-sm);
}

/* text-mask reveal (Zeilen steigen auf) */
.line-mask{ overflow:hidden; display:block; }
.line-mask > span{
  display:block;
  transform:translateY(105%);
  animation:lineUp 1.1s var(--ease) forwards;
}
.line-mask:nth-of-type(2) > span{ animation-delay:0.12s; }
@keyframes lineUp{ to{ transform:translateY(0); } }
@media (prefers-reduced-motion: reduce){
  .line-mask > span{ transform:none; animation:none; }
  .hero-bg img{ animation:none; transform:none; }
}

.hero-fade{ opacity:0; animation:fadeUp 1s var(--ease) 0.5s forwards; }
.hero-fade-2{ opacity:0; animation:fadeUp 1s var(--ease) 0.7s forwards; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(16px);} to{ opacity:1; transform:none; } }

.scroll-hint{
  position:absolute; bottom:var(--sp-md); left:50%;
  transform:translateX(-50%);
  z-index:2;
  display:flex; flex-direction:column; align-items:center; gap:0.6rem;
  font-size:0.62rem; letter-spacing:0.26em; text-transform:uppercase;
  color:var(--ivory-45);
}
.scroll-hint .bar{
  width:1px; height:44px;
  background:linear-gradient(to bottom, var(--gold), transparent);
  animation:scrollBar 2.4s ease-in-out infinite;
  transform-origin:top;
}
@keyframes scrollBar{
  0%,100%{ transform:scaleY(0.35); opacity:0.5; }
  50%{ transform:scaleY(1); opacity:1; }
}

/* -------- hero: schwebende Google-Bewertungskarte -------- */
.hero-reviews{
  position:absolute;
  right:10%; top:50%;
  transform:translateY(-50%);
  z-index:3;
  width:330px;
  max-width:33vw;
  padding:1.4rem 1.4rem 1.5rem;
  background:rgba(var(--onyx-rgb),0.66);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border:1px solid var(--line-strong);
  border-radius:6px;
  box-shadow:0 24px 60px rgba(0,0,0,0.45);
  opacity:0;
  animation:reviewsIn 1.1s var(--ease) 0.9s forwards;
}
@keyframes reviewsIn{
  from{ opacity:0; transform:translateY(-50%) translateX(18px); }
  to{ opacity:1; transform:translateY(-50%) translateX(0); }
}

.rv-head{
  display:flex; align-items:center; gap:0.8rem;
  padding-bottom:1rem;
  border-bottom:1px solid var(--line);
}
.rv-google{ flex-shrink:0; display:flex; }
.rv-score{ display:flex; align-items:baseline; gap:0.5rem; }
.rv-score strong{
  font-family:var(--font-display);
  font-weight:500;
  font-size:1.7rem;
  color:var(--ivory);
  line-height:1;
}
.rv-stars{ color:#EBB24A; letter-spacing:0.08em; font-size:0.95rem; }
.rv-stars.sm{ font-size:0.72rem; }
.rv-sub{
  font-size:0.66rem;
  letter-spacing:0.06em;
  color:var(--ivory-45);
  margin-top:0.25rem;
}

.rv-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:1rem; margin-top:1rem; }
.rv-item{ }
.rv-top{ display:flex; align-items:center; gap:0.6rem; margin-bottom:0.45rem; }
.rv-avatar{
  flex-shrink:0;
  width:30px; height:30px;
  border-radius:50%;
  background:var(--av, #7A6455);
  color:#fff;
  font-family:var(--font-body);
  font-size:0.8rem;
  display:flex; align-items:center; justify-content:center;
}
.rv-name{
  font-family:var(--font-body);
  font-weight:500;
  font-size:0.8rem;
  color:var(--ivory);
  line-height:1.2;
}
.rv-meta{
  display:flex; align-items:center; gap:0.4rem;
  font-size:0.62rem;
  color:var(--ivory-45);
  letter-spacing:0.04em;
}
.rv-text{
  margin:0;
  font-family:var(--font-body);
  font-weight:300;
  font-size:0.78rem;
  line-height:1.5;
  color:var(--ivory-70);
}

@media (prefers-reduced-motion: reduce){
  .hero-reviews{ animation:none; opacity:1; transform:translateY(-50%); }
}
@media (max-width:1100px){
  .hero-reviews{ display:none; }
}

/* -------- stats strip -------- */
.stats{
  background:var(--coal);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.stats-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
}
.stat{
  padding:var(--sp-md) var(--sp-sm);
  text-align:center;
  border-right:1px solid var(--line);
}
.stat:last-child{ border-right:none; }
.stat-number{
  font-family:var(--font-display);
  font-size:clamp(2rem,3.4vw,2.9rem);
  color:var(--gold);
  line-height:1;
  display:block;
}
.stat-number .suffix{ font-size:0.55em; }
.stat-label{
  font-size:0.68rem;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:var(--ivory-45);
  margin-top:var(--sp-3xs);
}

/* -------- sections -------- */
section{ padding:var(--sp-xl) 0; }
.section-alt{ background:var(--coal); }
.section-head{ max-width:60ch; margin-bottom:var(--sp-lg); }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head p{ color:var(--ivory-70); }

/* -------- differentiators grid (asymmetrisch) -------- */
.diff-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-auto-rows:minmax(210px, auto);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}
.diff-card{
  background:var(--onyx);
  padding:var(--sp-md);
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  transition:background 0.6s var(--ease);
  overflow:hidden;
  isolation:isolate;
}
/* große Feature-Kachel: 2 Spalten × 2 Reihen */
.diff-card.feature{
  grid-column:span 2;
  grid-row:span 2;
  justify-content:flex-end;
}
.diff-card.feature .diff-photo{
  position:absolute; inset:0;
  z-index:-2;
}
.diff-card.feature .diff-photo img{
  width:100%; height:100%;
  object-fit:cover;
  filter:grayscale(100%) brightness(0.42);
  transform:scale(1.06);
  transition:transform 1.4s var(--ease), filter 1s var(--ease);
}
.diff-card.feature:hover .diff-photo img{
  transform:scale(1);
  filter:grayscale(60%) brightness(0.55);
}
.diff-card.feature .diff-photo::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(var(--onyx-rgb),0.55) 0%, rgba(var(--onyx-rgb),0.9) 100%);
}
.diff-card.feature h3{ font-size:2rem; max-width:16ch; }
.diff-card.feature p{ max-width:44ch; font-size:0.98rem; color:var(--ivory-70); }

/* riesige Geisterziffer im Hintergrund */
.diff-ghost{
  position:absolute;
  top:-0.12em; right:0.08em;
  font-family:var(--font-display);
  font-style:italic;
  font-size:clamp(4rem, 7vw, 7rem);
  line-height:1;
  color:var(--ivory);
  opacity:0.055;
  pointer-events:none;
  z-index:-1;
  transition:opacity 0.7s var(--ease), transform 0.9s var(--ease);
}
.diff-card:hover .diff-ghost{
  opacity:0.13;
  color:var(--gold);
  transform:translateY(6px);
}
.diff-card.feature .diff-ghost{ font-size:clamp(7rem, 13vw, 13rem); opacity:0.09; }

/* Goldlinie oben */
.diff-card::before{
  content:"";
  position:absolute; top:0; left:0;
  width:100%; height:1px;
  background:var(--gold);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform 0.7s var(--ease);
}
.diff-card:hover{ background:var(--coal-soft); }
.diff-card.feature:hover{ background:transparent; }
.diff-card:hover::before{ transform:scaleX(1); }

.diff-card h3{ font-size:var(--fs-h3); margin-bottom:var(--sp-3xs); }
.diff-card p{ color:var(--ivory-45); font-size:0.9rem; margin:0; }

/* -------- services -------- */
.service-list{ border-top:1px solid var(--line); }
.service-row{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:var(--sp-md);
  align-items:center;
  padding:var(--sp-md) var(--sp-sm);
  border-bottom:1px solid var(--line);
  position:relative;
  transition:padding-left 0.5s var(--ease), background 0.5s var(--ease);
  overflow:hidden;
}
.service-row::before{
  content:"";
  position:absolute; left:0; top:0; bottom:0;
  width:2px; background:var(--gold);
  transform:scaleY(0);
  transition:transform 0.5s var(--ease);
}
.service-row:hover{ padding-left:calc(var(--sp-sm) + 14px); background:var(--coal-soft); }
.service-row:hover::before{ transform:scaleY(1); }
.service-index{
  font-family:var(--font-display);
  font-size:0.78rem;
  color:var(--gold);
  min-width:2.2em;
}
.service-name{ font-family:var(--font-display); font-size:1.35rem; margin-bottom:0.1rem; }
.service-desc{ color:var(--ivory-45); font-size:0.86rem; max-width:52ch; }
.service-price{
  font-family:var(--font-display);
  font-size:1.1rem;
  color:var(--gold);
  white-space:nowrap;
}

/* -------- split feature -------- */
.split{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:var(--sp-lg);
  align-items:center;
}
.split-photo{
  position:relative;
  aspect-ratio:4/5;
  overflow:hidden;
}
.split-photo img{
  width:100%; height:100%;
  object-fit:cover;
  filter:grayscale(100%);
  transition:transform 1s var(--ease), filter 0.8s var(--ease);
}
.split-photo:hover img{ transform:scale(1.05); filter:grayscale(0%); }
.split-photo::after{
  content:"";
  position:absolute; inset:12px;
  border:1px solid rgba(var(--ivory-rgb),0.25);
  pointer-events:none;
}

/* -------- hours -------- */
.hours-wrap{ max-width:620px; margin:0 auto; }
.hours-row{
  display:flex; justify-content:space-between; align-items:center;
  padding:var(--sp-sm) 0;
  border-bottom:1px solid var(--line);
  transition:padding-left 0.4s var(--ease), color 0.4s var(--ease);
}
.hours-row:hover{ padding-left:var(--sp-xs); }
.hours-row.today{ color:var(--gold); }
.hours-day{ font-size:0.78rem; letter-spacing:0.2em; text-transform:uppercase; }
.hours-time{ font-family:var(--font-display); font-size:1.05rem; }
.hours-row.closed .hours-time{ color:var(--ivory-45); }
.today-badge{
  font-size:0.58rem; letter-spacing:0.18em; text-transform:uppercase;
  background:var(--gold-dim); color:var(--gold);
  padding:0.2rem 0.5rem; margin-left:0.6rem;
  border:1px solid rgba(var(--accent-rgb),0.3);
}

/* -------- team -------- */
.team-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:var(--sp-md);
  max-width:820px;
  margin:0 auto;
}
.team-card{ position:relative; }
.team-photo{
  position:relative;
  aspect-ratio:3/4;
  overflow:hidden;
  background:var(--card);
  margin-bottom:var(--sp-sm);
}
.team-photo img{
  width:100%; height:100%;
  object-fit:cover;
  filter:grayscale(100%) brightness(0.85);
  transition:transform 0.9s var(--ease), filter 0.7s var(--ease);
}
.team-card:hover .team-photo img{ transform:scale(1.06); filter:grayscale(0%) brightness(1); }
.team-overlay{
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(var(--onyx-rgb),0.9), transparent 55%);
  display:flex; align-items:flex-end;
  padding:var(--sp-sm);
  opacity:0;
  transition:opacity 0.5s var(--ease);
}
.team-card:hover .team-overlay{ opacity:1; }
.team-stats{ display:flex; gap:var(--sp-md); }
.team-stat b{
  font-family:var(--font-display); font-weight:400;
  color:var(--gold); font-size:1.1rem; display:block; line-height:1;
}
.team-stat span{ font-size:0.6rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--ivory-45); }
.team-card h3{ font-size:1.2rem; margin-bottom:0.1rem; }
.team-role{ font-size:0.68rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold); }

/* -------- gallery -------- */
.gallery-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:var(--sp-xs);
}
.gallery-item{
  position:relative;
  aspect-ratio:3/4;
  overflow:hidden;
  background:var(--card);
}
.gallery-item img{
  width:100%; height:100%;
  object-fit:cover;
  filter:grayscale(100%);
  transition:transform 0.9s var(--ease), filter 0.7s var(--ease);
}
.gallery-item:hover img{ transform:scale(1.07); filter:grayscale(0%); }
.gallery-item::after{
  content:"";
  position:absolute; inset:0;
  border:1px solid transparent;
  transition:border-color 0.5s var(--ease);
  pointer-events:none;
}
.gallery-item:hover::after{ border-color:rgba(var(--accent-rgb),0.5); }

/* -------- marquee banner -------- */
.marquee{
  background:var(--gold);
  color:var(--onyx);
  padding:var(--sp-sm) 0;
  overflow:hidden;
  white-space:nowrap;
  border-top:1px solid var(--gold);
  border-bottom:1px solid var(--gold);
}
.marquee-track{
  display:inline-flex;
  align-items:center;
  gap:var(--sp-md);
  animation:marquee 28s linear infinite;
  will-change:transform;
}
.marquee-track span{
  font-family:var(--font-display);
  font-size:1.4rem;
  font-style:italic;
  display:inline-flex; align-items:center; gap:var(--sp-md);
}
.marquee-track span::after{
  content:"◆";
  font-size:0.5rem;
  font-style:normal;
}
@keyframes marquee{
  from{ transform:translateX(0); }
  to{ transform:translateX(-50%); }
}
@media (prefers-reduced-motion: reduce){
  .marquee-track{ animation:none; }
}

/* -------- booking -------- */
.booking-card{
  background:var(--card);
  border:1px solid var(--line);
  padding:var(--sp-lg) var(--sp-md);
  max-width:600px; margin:0 auto;
}
.field{ margin-bottom:var(--sp-sm); display:flex; flex-direction:column; gap:0.4rem; position:relative; }
.field label{
  font-size:0.64rem; letter-spacing:0.2em; text-transform:uppercase; color:var(--gold);
}
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-sm); }
.field input, .field select, .field textarea{
  font-family:var(--font-body); font-size:0.95rem; font-weight:300;
  padding:0.9rem 1rem;
  background:var(--onyx);
  border:1px solid var(--line-strong);
  color:var(--ivory);
  border-radius:0;
  transition:border-color 0.4s var(--ease);
}
.field input::placeholder{ color:var(--ivory-45); }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--gold); }
.field select{
  appearance:none;
  padding-right:2.6rem;
}
.field.has-select::after{
  content:"";
  position:absolute;
  right:1.1rem; bottom:1.15rem;
  width:7px; height:7px;
  border-right:1.4px solid var(--gold);
  border-bottom:1.4px solid var(--gold);
  transform:rotate(45deg);
  pointer-events:none;
}
.booking-card .btn{ width:100%; justify-content:center; margin-top:var(--sp-xs); }
.form-note{ font-size:0.75rem; color:var(--ivory-45); text-align:center; margin-top:var(--sp-sm); }

/* -------- footer -------- */
.site-footer{ background:var(--coal); border-top:1px solid var(--line); padding:var(--sp-lg) 0 var(--sp-md); }
.footer-grid{
  display:grid; grid-template-columns:1.6fr 1fr 1fr;
  gap:var(--sp-md);
  padding-bottom:var(--sp-md);
  border-bottom:1px solid var(--line);
}
.site-footer h4{
  font-family:var(--font-body);
  font-size:0.64rem; letter-spacing:0.24em; text-transform:uppercase;
  color:var(--gold); margin-bottom:var(--sp-sm); font-weight:400;
}
.footer-links li{ margin-bottom:0.4rem; }
.footer-links a{ color:var(--ivory-70); font-size:0.88rem; transition:color 0.3s var(--ease); }
.footer-links a:hover{ color:var(--gold); }
.footer-bottom{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:var(--sp-xs);
  padding-top:var(--sp-sm);
  font-size:0.72rem; color:var(--ivory-45);
}
address{ font-style:normal; color:var(--ivory-70); font-size:0.9rem; line-height:1.9; }

/* -------- back to top -------- */
.back-to-top{
  position:fixed; right:var(--sp-md); bottom:var(--sp-md);
  width:44px; height:44px;
  background:var(--gold); color:var(--onyx);
  border:none; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:0.4s var(--ease);
  z-index:90;
}
.back-to-top.visible{ opacity:1; visibility:visible; transform:none; }
.back-to-top:hover{ background:var(--gold-light); }

/* -------- scroll reveal -------- */
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity 0.9s var(--ease), transform 0.9s var(--ease);
}
.reveal.visible{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; }
}

/* -------- responsive -------- */
@media (max-width:980px){
  .diff-grid{ grid-template-columns:1fr 1fr; }
  .diff-card.feature{ grid-column:span 2; grid-row:span 1; min-height:340px; }
  .diff-card.feature h3{ font-size:1.7rem; }
  .team-grid{ grid-template-columns:1fr 1fr; }
  .gallery-grid{ grid-template-columns:1fr 1fr; }
  .split{ grid-template-columns:1fr; gap:var(--sp-md); }
  .stats-grid{ grid-template-columns:1fr 1fr; }
  .stat:nth-child(2){ border-right:none; }
  .stat:nth-child(1), .stat:nth-child(2){ border-bottom:1px solid var(--line); }
  .footer-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:680px){
  .nav-toggle{ display:block; }
  .nav-links{
    position:fixed; inset:0;
    background:var(--onyx);
    flex-direction:column;
    justify-content:center;
    gap:var(--sp-md);
    transform:translateX(100%);
    transition:transform 0.5s var(--ease);
  }
  .nav-links.active{ transform:none; }
  .nav-link{ font-size:1rem; }
  .nav-cta{ font-size:0.8rem; }
  .diff-grid{ grid-template-columns:1fr; }
  .diff-card.feature{ grid-column:span 1; min-height:300px; }
  .team-grid{ grid-template-columns:1fr; }
  .service-row{ grid-template-columns:auto 1fr; gap:var(--sp-sm); }
  .service-price{ grid-column:2; }
  .field-row{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; }
  .hero h1{ max-width:none; }
}
