/* ==========================================================================
   Zürich Rastafari — Dread Maker · Direction B "Kinetik"
   Eigenständiges Stylesheet nur für die Startseite (index.html).
   style.css wird hier NICHT geladen → andere Seiten bleiben unberührt.
   ========================================================================== */

:root{
  /* Hintergründe – warmes, nicht reines Schwarz */
  --ink:        #0C0A09;
  --ink-2:      #141010;
  --ink-3:      #1B1413;

  /* Text */
  --bone:       #F5F0EA;
  --dim:        #9C938B;
  --faint:      #675F58;

  /* Akzent */
  --red:        #E11D2A;
  --red-2:      #FF2E3C;
  --red-deep:   #9E101A;

  /* Linien */
  --line:       rgba(245,240,234,.09);
  --line-2:     rgba(245,240,234,.16);

  --maxw: 1280px;
  --pad: 32px;
  --radius: 0px;
  --radius-btn: 0px;
  --ease: cubic-bezier(.2,.7,.2,1);
}

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

body{
  background:var(--ink);
  color:var(--bone);
  font-family:'Inter',system-ui,sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  position:relative;
}
/* dezente Film-Grain-Textur (opacity ≤ .05) */
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}

/* ---------- Layout-Utilities ---------- */
.container{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.container-small{max-width:760px;margin:0 auto;padding:0 var(--pad)}

section{position:relative;z-index:2}
.section{padding:clamp(96px,12vw,130px) 0}
.section--alt{background:var(--ink-2);border-block:1px solid var(--line)}

/* ---------- Eyebrow + Section-Header ---------- */
.eyebrow,.section-label{
  display:inline-block;
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--red);
  margin-bottom:18px;
}
.section-header{margin-bottom:clamp(40px,6vw,72px);max-width:760px}
.section-header.centered{margin-inline:auto;text-align:center}
.section-title{
  font-family:'Bricolage Grotesque','Inter',sans-serif;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:-.04em;
  line-height:.92;
  font-size:clamp(38px,6vw,80px);
}
.section-description{color:var(--dim);margin-top:18px;max-width:54ch}
.section-header.centered .section-description{margin-inline:auto}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:'Bricolage Grotesque','Inter',sans-serif;
  font-weight:700;text-transform:uppercase;letter-spacing:.02em;
  font-size:14px;
  padding:15px 26px;
  border-radius:var(--radius-btn);
  border:1px solid transparent;
  transition:transform .2s var(--ease),background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease);
}
.btn-primary{background:var(--red);color:#fff}
.btn-primary:hover{background:var(--red-2);transform:translateY(-2px)}
.btn-secondary,.btn-ghost{background:transparent;color:var(--bone);border-color:var(--line-2)}
.btn-secondary:hover,.btn-ghost:hover{border-color:var(--bone);transform:translateY(-2px)}
.btn-full{width:100%}
.btn:focus-visible,a:focus-visible,button:focus-visible,
input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:none;box-shadow:0 0 0 3px rgba(225,29,42,.4)
}

/* ---------- Reveal-on-scroll (von script.js per inline-style angesteuert) --- */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}

/* ==========================================================================
   NAV  →  ausgelagert nach nav.css (einzige Quelle, geteilt mit Unterseiten).
   index.html lädt nav.css nach home.css. Hier bewusst KEINE Nav-Regeln mehr.
   ========================================================================== */

/* ==========================================================================
   HERO  (Klasse .hero-stage → kein Parallax-JS, bewusst statisch)
   ========================================================================== */
.hero-stage{
  min-height:88vh;display:flex;align-items:center;
  padding:130px 0 80px;overflow:hidden;text-align:center;
}
.hero-stage::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    radial-gradient(60% 55% at 50% 28%,rgba(225,29,42,.20),transparent 70%),
    radial-gradient(50% 50% at 50% 95%,rgba(225,29,42,.08),transparent 70%);
}
.hero-content{max-width:840px;margin:0 auto}
.hero-logo{height:156px;width:156px;object-fit:contain;margin:0 auto 26px}
.hero-title{
  font-family:'Bricolage Grotesque','Inter',sans-serif;
  font-weight:800;text-transform:uppercase;letter-spacing:-.04em;
  line-height:.88;font-size:clamp(35px,5.6vw,74px);
}
.hero-title .title-line{display:block}
.hero-title .highlight{color:var(--red)}
.hero-description{
  font-family:'JetBrains Mono',monospace;font-size:13px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--dim);margin-top:26px;
}
.hero-buttons{display:flex;gap:14px;flex-wrap:wrap;margin-top:36px;justify-content:center}
.hero-meta{
  font-family:'JetBrains Mono',monospace;font-size:12px;color:var(--faint);
  letter-spacing:.06em;margin-top:34px;
}
.hero-scroll{
  position:absolute;bottom:30px;left:var(--pad);
  display:flex;align-items:center;gap:12px;
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--faint);
}
.hero-scroll .scroll-line{width:46px;height:1px;background:var(--line-2);position:relative;overflow:hidden}
.hero-scroll .scroll-line::after{content:"";position:absolute;inset:0;width:40%;background:var(--red);animation:scrollLine 2s var(--ease) infinite}
@keyframes scrollLine{0%{transform:translateX(-100%)}100%{transform:translateX(250%)}}

/* ==========================================================================
   MARQUEE — Signature-Element (Direction B)
   ========================================================================== */
.marquee{
  background:var(--red);color:#fff;overflow:hidden;
  border-block:1px solid var(--red-deep);
  padding:16px 0;display:flex;
}
.marquee__track{
  display:flex;flex-shrink:0;gap:0;white-space:nowrap;
  animation:marquee 33s linear infinite;
}
.marquee__track span{
  font-family:'Bricolage Grotesque',sans-serif;font-weight:800;
  text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(20px,3vw,34px);
  padding:0 28px;display:inline-flex;align-items:center;gap:28px;
}
.marquee__track span::after{content:"✦";color:rgba(255,255,255,.55);font-size:.6em}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ==========================================================================
   SERVICES — Bento-Grid
   ========================================================================== */
.services-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:14px;
}
.service-card{
  position:relative;overflow:hidden;background:var(--ink-3);border:1px solid var(--line);
  border-radius:4px;padding:36px;
  display:flex;flex-direction:column;min-height:248px;
  transition:transform .22s var(--ease),border-color .22s var(--ease),background .22s var(--ease);
}
/* rote Leiste oben, faehrt beim Hover von links ein (wie alte Seite) */
.service-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:var(--red);transform:scaleX(0);transform-origin:left;
  transition:transform .22s var(--ease);
}
.service-card:hover{transform:translateY(-8px)!important;border-color:var(--line-2);background:var(--ink-2)}
.service-card:hover::before{transform:scaleX(1)}
.service-icon{
  width:46px;height:46px;border-radius:0;
  background:rgba(225,29,42,.12);color:var(--red);
  display:flex;align-items:center;justify-content:center;margin-bottom:auto;
  transition:background .22s var(--ease),color .22s var(--ease),transform .22s var(--ease);
}
/* Icon fuellt sich rot + skaliert beim Hover (wie alte Seite) */
.service-card:hover .service-icon{background:var(--red);color:#fff;transform:scale(1.1)}
.service-icon svg{width:24px;height:24px}
.service-title{
  font-family:'Bricolage Grotesque',sans-serif;font-weight:700;
  text-transform:uppercase;letter-spacing:-.02em;
  font-size:clamp(20px,2.2vw,26px);margin-top:22px;
}
.service-description{color:var(--dim);font-size:14px;margin-top:10px;max-width:42ch}
.service-price{
  font-family:'JetBrains Mono',monospace;font-weight:700;color:var(--bone);
  font-size:20px;margin-top:18px;
}
/* Featured: gleiche Grösse wie die anderen, nur farblich hervorgehoben */
.service-card.featured{
  background:
    radial-gradient(80% 90% at 80% 15%,rgba(225,29,42,.18),transparent 70%),
    var(--ink-2);
  border-color:var(--line-2);
}
.service-card.featured .service-price{color:var(--red)}
.featured-badge{
  position:absolute;top:24px;right:24px;
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.22em;
  text-transform:uppercase;color:#fff;background:var(--red);
  padding:6px 12px;border-radius:0;
}
/* All-Services-Karte: gleiche Grösse wie die anderen */
.all-services-card .view-all-btn{margin-top:18px;align-self:flex-start}
.view-all-btn{
  background:transparent;color:var(--bone);
  border:1px solid var(--line-2);border-radius:var(--radius-btn);
  padding:13px 22px;font-weight:700;text-transform:uppercase;font-size:13px;
  letter-spacing:.02em;font-family:'Bricolage Grotesque',sans-serif;
  transition:all .2s var(--ease);
}
.view-all-btn:hover{border-color:var(--bone);transform:translateY(-2px)}

/* ---------- Services-Modal ---------- */
.services-modal{
  position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;
  background:rgba(12,10,9,.8);backdrop-filter:blur(8px);padding:24px;
}
.services-modal-content{
  background:var(--ink-2);border:1px solid var(--line-2);border-radius:var(--radius);
  max-width:680px;width:100%;max-height:86vh;overflow-y:auto;padding:32px;
}
.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}
.modal-header h3{font-family:'Bricolage Grotesque',sans-serif;text-transform:uppercase;font-size:24px;letter-spacing:-.02em}
.modal-close{background:none;border:none;color:var(--dim);font-size:22px;line-height:1}
.modal-close:hover{color:var(--bone)}
.services-category{margin-bottom:26px}
.category-title{
  font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--red);margin-bottom:12px;
}
.service-item{display:flex;align-items:baseline;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}
.service-name{color:var(--bone)}
.service-dots{flex:1;border-bottom:1px dotted var(--line-2);transform:translateY(-4px)}
.service-price-tag{font-family:'JetBrains Mono',monospace;color:var(--dim)}
.service-price-tag small{color:var(--faint)}
.modal-footer{margin-top:8px;color:var(--faint);font-size:13px;font-family:'JetBrains Mono',monospace}

/* ==========================================================================
   ABOUT
   ========================================================================== */
.about-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(32px,5vw,64px);align-items:center}
.about-image .image-wrapper{position:relative;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}
.about-image img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/5}
.about-image .image-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(12,10,9,.5))}
.about-text{color:var(--dim);margin-top:18px;max-width:54ch}
.about-stats{display:flex;gap:32px;flex-wrap:wrap;margin:34px 0}
.stat-number{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:clamp(34px,4vw,48px);color:var(--bone);letter-spacing:-.03em}
.stat-label{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin-top:6px}
.quote{border-left:2px solid var(--red);padding-left:22px}
.quote p{font-family:'Bricolage Grotesque',sans-serif;font-size:clamp(20px,2.4vw,26px);line-height:1.3;letter-spacing:-.01em}
.quote cite{display:block;margin-top:14px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.2em;color:var(--red);font-style:normal}

/* ==========================================================================
   REVIEWS — horizontaler Snap-Scroll (Direction B)
   ========================================================================== */
.testimonials-slider{overflow:hidden;position:relative;padding:14px 0}
.testimonials-track{
  display:flex;gap:18px;width:max-content;
  animation:scroll-left 40s linear infinite;
}
.testimonials-track:hover{animation-play-state:paused}
@keyframes scroll-left{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.testimonial-card{
  position:relative;overflow:hidden;
  flex:0 0 360px;max-width:360px;
  background:var(--ink-3);border:1px solid var(--line);border-radius:6px;
  padding:28px;transition:transform .22s var(--ease),border-color .22s var(--ease),background .22s var(--ease);
}
/* rote Leiste oben, faehrt beim Hover von links ein (wie alte Seite) */
.testimonial-card::before{
  content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:var(--red);transform:scaleX(0);transform-origin:left;
  transition:transform .22s var(--ease);
}
.testimonial-card:hover{transform:translateY(-8px);border-color:var(--line-2);background:var(--ink-2)}
.testimonial-card:hover::before{transform:scaleX(1)}
.testimonial-stars{color:var(--red);letter-spacing:3px;font-size:15px;margin-bottom:14px}
.testimonial-text{color:var(--bone);font-size:15px;line-height:1.6}
.testimonial-author{margin-top:18px;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.1em;color:var(--dim)}
.testimonial-author strong{color:var(--bone)}

/* Mobile: Bewertungen ~50% kleiner */
@media (max-width:768px){
  .testimonials-slider{padding:7px 0}
  .testimonials-track{gap:9px}
  .testimonial-card{flex:0 0 180px;max-width:180px;padding:14px;border-radius:3px}
  .testimonial-card::before{height:2px}
  .testimonial-stars{font-size:8px;letter-spacing:1.5px;margin-bottom:7px}
  .testimonial-text{font-size:8px;line-height:1.5}
  .testimonial-author{font-size:7px;margin-top:9px}
}

/* ==========================================================================
   LOCATION
   ========================================================================== */
.location-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(24px,4vw,48px);align-items:stretch}
.location-info{display:flex;flex-direction:column;gap:14px}
.info-card{background:var(--ink-3);border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.info-card h3{font-family:'Bricolage Grotesque',sans-serif;text-transform:uppercase;font-size:16px;letter-spacing:.02em;margin-bottom:10px}
.info-card p{color:var(--dim)}
.info-card a{color:var(--bone);transition:color .2s var(--ease)}
.info-card a:hover{color:var(--red)}
.hours-list{display:flex;flex-direction:column;gap:8px}
.hour-row{display:flex;justify-content:space-between;color:var(--dim);font-size:15px}
.hour-row .closed{color:var(--red);font-weight:600}
.location-info .btn{margin-top:6px}
.location-map{border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);min-height:420px}
.location-map iframe{filter:grayscale(1) invert(.9) contrast(.85) brightness(.9);width:100%;height:100%;min-height:420px}

/* ==========================================================================
   BOOKING
   ========================================================================== */
.booking{background:var(--ink-2);border-block:1px solid var(--line)}
.info-box{
  background:var(--ink-3);border:1px solid var(--line-2);border-left:3px solid var(--red);
  border-radius:var(--radius);padding:20px 24px;margin-bottom:28px;
}
.info-box-text{color:var(--dim);font-size:15px}
.booking-form{display:flex;flex-direction:column;gap:18px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-group{display:flex;flex-direction:column;gap:8px}
.form-group label{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}
.form-group input,.form-group select,.form-group textarea{
  background:var(--ink);border:1px solid var(--line-2);border-radius:0;
  padding:14px 16px;color:var(--bone);font-family:inherit;font-size:15px;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.form-group input::placeholder,.form-group textarea::placeholder{color:var(--faint)}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{
  outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(225,29,42,.15)
}
.form-group select option{background:var(--ink-2);color:var(--bone)}
.form-group textarea{resize:vertical}
/* dunkle Date/Time-Picker-Icons sichtbar machen */
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator{filter:invert(.7)}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.footer{background:var(--ink);border-top:1px solid var(--line);padding:64px 0 36px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.footer-logo .logo-text{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:20px;letter-spacing:-.02em;display:block}
.footer-logo .logo-subtitle{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.34em;color:var(--red);text-transform:uppercase}
.social-links{display:flex;gap:12px;margin-top:18px}
.social-links a{width:40px;height:40px;border:1px solid var(--line-2);border-radius:0;display:flex;align-items:center;justify-content:center;color:var(--dim);transition:all .2s var(--ease)}
.social-links a:hover{color:var(--bone);border-color:var(--bone)}
.footer-col h4{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--red);margin-bottom:16px}
.footer-links{list-style:none;display:flex;flex-direction:column;gap:10px}
.footer-links li,.footer-links a{color:var(--dim);font-size:14px;transition:color .2s var(--ease)}
.footer-links a:hover{color:var(--bone)}
.footer-bottom{margin-top:48px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;color:var(--faint);font-size:13px}
.footer-legal{display:flex;gap:22px}
.footer-legal a{color:var(--faint);transition:color .2s var(--ease)}
.footer-legal a:hover{color:var(--red)}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1024px){
  .services-grid{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:768px){
  :root{--pad:20px}
  /* Nav (mobile) → nav.css */
  .about-grid,.location-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .all-services-card{flex-direction:column;align-items:flex-start}
  .all-services-card .view-all-btn{margin-left:0}
  .footer-bottom{flex-direction:column;align-items:flex-start}
}
@media (max-width:480px){
  .services-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
}

/* ==========================================================================
   prefers-reduced-motion — Pflicht
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  /* script.js setzt Reveal-Startwerte als inline-style → hier hart sichtbar */
  .service-card,.section-header,.about-image,.about-content,.reveal{
    opacity:1!important;transform:none!important
  }
  .marquee__track{transform:none!important}
}
