
/* ====== THEME ====== */
:root{
  --bg:#ffffff; --bg-soft:#f6f8fb; --text:#0f172a; --muted:#475569; --border:#e5e7eb;
  --primary:#2563eb; --primary-2:#3b82f6; --accent:#22c55e; --card:#ffffff;
  --shadow:0 10px 30px rgba(2,6,23,.08);
  --grad:linear-gradient(135deg,#2563eb,#60a5fa);
  --ring:0 0 0 3px rgba(37,99,235,.15);
}
.dark{
  --bg:#0b1020; --bg-soft:#0e152b; --text:#e5e7eb; --muted:#9aa5b1; --border:#1f2937;
  --primary:#60a5fa; --primary-2:#93c5fd; --accent:#34d399; --card:#101a33;
  --shadow:0 10px 30px rgba(3,7,18,.3);
  --grad:linear-gradient(135deg,#3b82f6,#60a5fa);
  --ring:0 0 0 3px rgba(96,165,250,.2);
}

*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text);background:var(--bg);line-height:1.6}
.container{max-width:1120px;margin:0 auto;padding:0 24px}
section{padding:clamp(56px,7vw,96px) 0}

/* ====== NAV ====== */
.nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(120%) blur(12px);border-bottom:1px solid var(--border)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:16px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--text);font-weight:800}
.brand i{width:40px;height:40px;display:grid;place-items:center;color:#fff;border-radius:10px;background:var(--grad);position:relative;overflow:hidden;box-shadow:var(--shadow)}
.brand i::after{content:"";position:absolute;inset:auto -30% 60% -30%;rotate:-15deg;background:rgba(255,255,255,.25)}
.nav-links{display:flex;gap:22px;align-items:center}
.nav-links a{color:var(--muted);text-decoration:none;font-weight:650;padding:8px 12px;border-radius:10px}
.nav-links a:hover{color:var(--primary);background:color-mix(in srgb,var(--primary) 10%,transparent)}
.toggle{display:inline-grid;grid-auto-flow:column;gap:8px;align-items:center;cursor:pointer;padding:8px 12px;border-radius:999px;border:1px solid var(--border);background:var(--card)}

/* ===== BUTTONS ===== */
.btn{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border-radius:12px;border:1px solid var(--border);background:var(--card);color:var(--text);text-decoration:none;font-weight:750;box-shadow:var(--shadow);transition:.25s ease}
.btn:hover{transform:translateY(-2px)}
.btn-primary{background:var(--grad);color:#fff;border:none}
.btn-ghost{background:transparent;border:1px solid var(--border)}

/* ===== HERO ===== */
.hero{padding:clamp(56px,8vw,120px) 0}
.hero-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:clamp(24px,5vw,56px);align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:10px;padding:6px 12px;border-radius:999px;background:color-mix(in srgb,var(--primary) 12%,var(--bg-soft));color:var(--primary);font-weight:800}
.dot{width:10px;height:10px;border-radius:50%;background:#10b981;box-shadow:0 0 0 0 rgba(16,185,129,.6);animation:ping 1.6s infinite}
@keyframes ping{70%{box-shadow:0 0 0 12px rgba(16,185,129,0)}}
h1{margin:12px 0 8px;font-size:clamp(32px,5vw,56px);line-height:1.08}
.sub{color:var(--primary);font-weight:800;letter-spacing:.2px;margin-bottom:16px}
.lead{color:var(--muted);font-size:clamp(16px,2.1vw,18px);max-width:56ch}
.cta{display:flex;gap:12px;align-items:center;margin-top:22px;flex-wrap:wrap}

/* ===== VIZ CARD (shared) ===== */
.viz-card{position:relative;border-radius:18px;overflow:hidden;background:var(--card);border:1px solid var(--border);box-shadow:var(--shadow)}
.viz-header{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;gap:8px;align-items:center}
.viz-dot{width:10px;height:10px;border-radius:50%}
.viz-body{aspect-ratio:4/3;position:relative}
.node{filter:drop-shadow(0 0 10px color-mix(in srgb,var(--primary) 35%,transparent))}

/* ===== CARDS & GRID ===== */
.section-head{text-align:center;margin-bottom:36px}
.kicker{color:var(--primary-2);font-weight:800;letter-spacing:.3px}
.h2{font-size:clamp(26px,4vw,36px);margin:6px 0 10px}
.muted{color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:var(--shadow);transition:.25s ease;position:relative;overflow:hidden}
.card:hover{transform:translateY(-4px)}
.ico{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:#fff;background:var(--grad);box-shadow:var(--shadow)}
.list{list-style:none;padding:0;margin:10px 0 0}
.list li{padding:6px 0;color:var(--muted)}
.arrow{text-decoration:none;color:var(--primary);font-weight:700}
.arrow:hover{text-decoration:underline}

/* ===== BOOKING ===== */
.booking{display:grid;grid-template-columns:1fr .9fr;gap:22px}
.panel{background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow)}
.panel h3{margin:0;padding:18px;border-bottom:1px solid var(--border)}
.panel .body{padding:16px 18px}
.calendar{display:grid;grid-template-rows:auto 1fr;gap:12px}
.cal-head{display:flex;justify-content:space-between;align-items:center}
.cal-title{font-weight:800}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.day,.wd{text-align:center;padding:10px 0;border-radius:10px;font-weight:650}
.wd{color:var(--muted)}
.day{border:1px solid var(--border);background:var(--bg-soft);cursor:pointer}
.day[data-disabled="1"]{opacity:.35;pointer-events:none}
.day.selected{outline:var(--ring)}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.slot{border:1px solid var(--border);padding:10px;text-align:center;border-radius:10px;cursor:pointer;background:var(--bg-soft);font-weight:750}
.slot.selected{outline:var(--ring);background:color-mix(in srgb,var(--primary) 10%,var(--bg-soft))}

form .row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
input,select,textarea{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--border);background:var(--bg);color:var(--text);transition:.15s ease}
input:focus,select:focus,textarea:focus{outline:none;box-shadow:var(--ring);border-color:color-mix(in srgb,var(--primary) 40%,var(--border))}
textarea{min-height:120px;resize:vertical}
.notice{font-size:12px;color:var(--muted)}

footer{padding:28px 0;border-top:1px solid var(--border);color:var(--muted)}

/* Utilities */
.fade{opacity:0;transform:translateY(12px);transition:.5s ease}
.show{opacity:1;transform:translateY(0)}
.space{height:10px}

@media (max-width:960px){
  .hero-grid,.booking{grid-template-columns:1fr}
  .cards{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .nav-links{display:none}
  .cards{grid-template-columns:1fr}
  form .row{grid-template-columns:1fr}
}
