/* ===== Design tokens ===== */
:root{
  --ink: #15121f;
  --ink-soft: #211c33;
  --cream: #fff8f0;
  --charcoal: #221d2c;
  --muted-on-dark: #b7aecf;
  --muted-on-light: #6a6178;

  --pink: #ec1e79;
  --orange: #ff8a3d;
  --purple: #7b2ff7;

  --grad: linear-gradient(100deg, var(--pink) 0%, var(--orange) 55%, var(--purple) 100%);

  --font-display: 'Bebas Neue', sans-serif;
  --font-body: 'Manrope', sans-serif;
  --font-mono: 'Space Mono', monospace;

  --radius: 14px;
  --max: 1120px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

body{
  margin:0;
  font-family:var(--font-body);
  color:var(--charcoal);
  background:var(--cream);
  line-height:1.55;
}

h1,h2,h3{
  font-family:var(--font-display);
  letter-spacing:0.02em;
  line-height:1.05;
  margin:0 0 0.4em;
}

p{margin:0 0 1em;}
a{color:inherit;}

.skip-link{
  position:absolute; left:-999px; top:0;
  background:var(--ink); color:#fff; padding:12px 18px; z-index:200;
}
.skip-link:focus{left:12px; top:12px;}

.grad-text{
  background:var(--grad);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

/* ===== Buttons ===== */
.btn{
  display:inline-block;
  font-family:var(--font-body);
  font-weight:800;
  font-size:0.95rem;
  letter-spacing:0.02em;
  padding:14px 28px;
  border-radius:999px;
  text-decoration:none;
  border:2px solid transparent;
  cursor:pointer;
  transition:transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.btn:hover{transform:translateY(-2px);}
.btn:focus-visible{outline:3px solid var(--orange); outline-offset:3px;}

.btn-primary{
  background:var(--grad);
  color:#fff;
  box-shadow:0 8px 24px rgba(236,30,121,0.35);
}
.btn-ghost{
  background:transparent;
  color:var(--cream);
  border-color:rgba(255,248,240,0.4);
}
.btn-ghost:hover{border-color:var(--cream);}
.btn-outline{
  background:transparent;
  border-color:var(--pink);
  color:var(--pink);
}
.section-dark .btn-outline{color:var(--cream); border-color:rgba(255,248,240,0.5);}
.section-dark .btn-outline:hover{border-color:var(--orange); color:var(--orange);}

/* ===== Header ===== */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(21,18,31,0.92);
  backdrop-filter:blur(8px);
}
.header-inner{
  max-width:var(--max); margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 24px;
}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none;}
.brand-mark{width:42px; height:42px; border-radius:50%; object-fit:cover;}
.brand-name{
  font-family:var(--font-display);
  font-size:1.15rem;
  color:var(--cream);
  letter-spacing:0.03em;
}
.brand-name em{font-style:normal; color:var(--muted-on-dark); font-size:0.8em;}

.main-nav{display:flex; align-items:center; gap:28px;}
.main-nav a{
  color:var(--cream);
  text-decoration:none;
  font-weight:500;
  font-size:0.95rem;
}
.main-nav a:hover{color:var(--orange);}
.nav-cta{
  background:var(--grad);
  padding:10px 20px;
  border-radius:999px;
  font-weight:800;
  color:#fff !important;
}

.nav-toggle{display:none; flex-direction:column; gap:5px; background:none; border:none; padding:8px; cursor:pointer;}
.nav-toggle span{width:24px; height:2px; background:var(--cream);}
.mobile-nav{display:none; flex-direction:column; background:var(--ink); padding:0 24px;}
.mobile-nav a{color:var(--cream); text-decoration:none; padding:14px 0; border-top:1px solid rgba(255,255,255,0.08); font-weight:500;}
.mobile-nav .nav-cta{text-align:center; margin:14px 0; border-top:none;}

@media (max-width:820px){
  .main-nav{display:none;}
  .nav-toggle{display:flex;}
  .site-header.open .mobile-nav{display:flex;}
}

/* ===== Hero ===== */
.hero{
  position:relative;
  background:var(--ink);
  color:var(--cream);
  padding:120px 24px 100px;
  overflow:hidden;
  text-align:center;
}
.hero-glow{
  position:absolute; inset:-20% -10%;
  background:
    radial-gradient(circle at 20% 20%, rgba(236,30,121,0.35), transparent 45%),
    radial-gradient(circle at 80% 10%, rgba(255,138,61,0.3), transparent 40%),
    radial-gradient(circle at 60% 90%, rgba(123,47,247,0.35), transparent 45%);
  filter:blur(10px);
}
.hero-inner{position:relative; max-width:780px; margin:0 auto;}
.eyebrow{
  font-family:var(--font-mono);
  text-transform:uppercase;
  letter-spacing:0.14em;
  font-size:0.78rem;
  color:var(--orange);
  margin-bottom:1.2em;
}
.eyebrow-dark{color:var(--pink);}
.hero h1{
  font-size:clamp(2.6rem, 6vw, 4.5rem);
  color:var(--cream);
}
.hero-sub{
  font-size:1.1rem;
  color:var(--muted-on-dark);
  max-width:560px;
  margin:0 auto 2em;
}
.hero-actions{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

/* ===== Pulse divider (signature element) ===== */
.pulse-divider{
  background:var(--ink);
  line-height:0;
  padding-bottom:4px;
}
.pulse-divider svg{width:100%; height:80px; display:block;}
.pulse-divider-small svg{height:50px;}
.pulse-path{
  fill:none;
  stroke:url(#pulse-gradient);
  stroke-width:3;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:1600;
  stroke-dashoffset:1600;
  transition:stroke-dashoffset 1.4s ease-out;
}
.pulse-path.drawn{stroke-dashoffset:0;}

/* ===== Sections ===== */
.section{padding:96px 24px;}
.section-inner{max-width:var(--max); margin:0 auto;}
.section-light{background:var(--cream); color:var(--charcoal);}
.section-dark{background:var(--ink); color:var(--cream);}
.section-title{font-size:clamp(2rem, 4vw, 2.8rem); margin-bottom:0.3em;}
.section-title-light{color:var(--cream);}
.section-lede{max-width:560px; color:var(--muted-on-dark);}
.section-light .section-lede{color:var(--muted-on-light);}

/* ===== Services ===== */
.card-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
  margin-top:48px;
}
.service-card{
  background:#fff;
  border-radius:var(--radius);
  padding:32px;
  box-shadow:0 10px 30px rgba(34,29,44,0.06);
  border:1px solid rgba(34,29,44,0.06);
}
.service-icon{
  font-family:var(--font-mono);
  font-size:0.85rem;
  color:var(--pink);
  border:1px solid var(--pink);
  width:36px; height:36px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%;
  margin-bottom:20px;
}
.service-card h3{font-size:1.4rem;}
.service-card p{color:var(--muted-on-light); font-size:0.98rem;}

@media (max-width:820px){
  .card-grid{grid-template-columns:1fr;}
}

/* ===== Pricing tiers ===== */
.tier-track{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  margin:48px 0 56px;
}
.tier-card{
  background:var(--ink-soft);
  border-radius:var(--radius);
  padding:32px;
  border:1px solid rgba(255,248,240,0.08);
  position:relative;
}
.tier-card-featured{
  border-color:var(--pink);
  box-shadow:0 0 0 1px var(--pink), 0 20px 40px rgba(236,30,121,0.2);
}
.tier-badge{
  position:absolute; top:-14px; left:32px;
  background:var(--grad);
  color:#fff;
  font-family:var(--font-mono);
  font-size:0.7rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  padding:6px 14px;
  border-radius:999px;
}
.tier-freq{display:flex; gap:6px; margin-bottom:18px;}
.dot{width:10px; height:10px; border-radius:50%; background:rgba(255,248,240,0.15);}
.dot.on{background:var(--grad);}
.tier-card h3{font-size:1.3rem; margin-bottom:0.2em;}
.tier-price{
  font-family:var(--font-mono);
  font-size:2rem;
  font-weight:700;
  color:var(--cream);
  margin-bottom:0.4em;
}
.tier-price span{font-size:0.9rem; color:var(--muted-on-dark); font-weight:400;}
.tier-desc{color:var(--muted-on-dark); font-size:0.92rem; min-height:3em;}
.tier-card .btn{margin-top:10px;}

.group-card{
  background:var(--ink-soft);
  border-radius:var(--radius);
  padding:32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  flex-wrap:wrap;
  border:1px solid rgba(255,248,240,0.08);
}
.group-card-text h3{font-size:1.3rem;}
.group-card-text p{color:var(--muted-on-dark); margin-bottom:0;}
.group-card-price{text-align:right;}

@media (max-width:900px){
  .tier-track{grid-template-columns:1fr;}
  .group-card{flex-direction:column; align-items:flex-start;}
  .group-card-price{text-align:left;}
}

/* ===== About ===== */
.about-inner{
  display:grid;
  grid-template-columns:0.9fr 1.3fr;
  gap:56px;
  align-items:center;
}
.about-image img{
  width:100%;
  border-radius:var(--radius);
  display:block;
}
.about-text p{color:var(--muted-on-light);}
.edit-note{
  font-family:var(--font-mono);
  font-size:0.82rem;
  color:var(--pink);
  border-top:1px dashed rgba(236,30,121,0.4);
  padding-top:14px;
  margin-top:20px;
}

@media (max-width:820px){
  .about-inner{grid-template-columns:1fr;}
}

/* ===== Booking form ===== */
.hidden-field{
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden;
}

.book-inner{max-width:640px;}
.booking-form{margin-top:40px; display:flex; flex-direction:column; gap:20px;}
.form-row{display:flex; flex-direction:column; gap:8px;}
.form-row-split{
  flex-direction:row;
  gap:20px;
}
.form-row-split > div{flex:1; display:flex; flex-direction:column; gap:8px;}
label{
  font-family:var(--font-mono);
  font-size:0.78rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--muted-on-dark);
}
input, select, textarea{
  font-family:var(--font-body);
  font-size:1rem;
  padding:12px 14px;
  border-radius:10px;
  border:1px solid rgba(255,248,240,0.2);
  background:var(--ink-soft);
  color:var(--cream);
}
input:focus, select:focus, textarea:focus{
  outline:none;
  border-color:var(--orange);
  box-shadow:0 0 0 3px rgba(255,138,61,0.25);
}
textarea{resize:vertical;}
.btn-submit{align-self:flex-start; border:none;}
.form-status{
  font-family:var(--font-mono);
  font-size:0.85rem;
  color:var(--orange);
  min-height:1.2em;
}
.form-status.success{
  color:#fff;
  background:var(--grad);
  padding:12px 16px;
  border-radius:10px;
  font-weight:700;
}
.form-status.error{
  color:var(--pink);
}

@media (max-width:600px){
  .form-row-split{flex-direction:column;}
}

/* ===== Footer ===== */
.site-footer{
  background:var(--ink);
  color:var(--muted-on-dark);
  padding:32px 24px;
  text-align:center;
}
.footer-inner{display:flex; flex-direction:column; align-items:center; gap:12px;}
.footer-mark{width:36px; height:36px; border-radius:50%; object-fit:cover;}
.site-footer p{margin:0; font-size:0.85rem;}
