:root{
  --bg: #f7fbff;
  --card-bg: #ffffff;
  --text: #093042;
  --muted: #61707a;
  --primary: #2b9ed6; /* detergent blue */
  --primary-600: #1b81b1;
  --accent: #7bd389; /* fresh green */
  --accent-2: #ffd166; /* soft yellow */
}

/* Basic reset */
* { box-sizing: border-box; margin: 0; padding: 0; }
html,body{ height:100%; }
body{ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial; color:var(--text); line-height:1.6; background:var(--bg); }
.container{ width:94%; max-width:1100px; margin:0 auto; }

/* Header */
.site-header{ background:linear-gradient(180deg, rgba(255,255,255,0.9), rgba(255,255,255,0.7)); border-bottom:1px solid rgba(27,36,43,0.06); position:sticky; top:0; z-index:20; backdrop-filter: blur(6px); }
.header-inner{ display:flex; align-items:center; justify-content:space-between; padding:14px 0; }
.brand{ font-weight:800; color:var(--primary); text-decoration:none; font-size:1.15rem; display:flex; align-items:center; gap:10px; }
.brand-logo{ height:40px; width:40px; object-fit:contain; display:block; }
.brand-text{ display:inline-block; }
.nav-toggle{ display:none; background:none; border:1px solid rgba(43,158,214,0.12); padding:8px 12px; border-radius:6px; color:var(--primary); }
.primary-nav a{ margin-left:18px; color:var(--text); text-decoration:none; font-weight:600; }
.primary-nav a:hover{ color:var(--primary); }
/* header controls grouping */
.header-controls{ display:flex; align-items:center; gap:12px; }
.primary-nav{ display:flex; align-items:center; }

/* Hero */
.hero{ position:relative; color:#fff; padding:0; text-align:center; overflow:hidden; min-height:100vh; display:flex; align-items:center; justify-content:center; }
.hero-inner{ position:relative; z-index:3; padding:80px 0; max-width:960px; }
.hero-inner h1{ font-size:2.2rem; margin-bottom:12px; text-shadow:0 6px 18px rgba(11,44,63,0.24); }
.hero-inner p{ font-size:1.05rem; margin-bottom:20px; opacity:0.95; }

/* Background slideshow layers */
.hero-bg-layer{ position:absolute; inset:0; height:100vh; background-position:center center; background-size:cover; background-repeat:no-repeat; transition:opacity 1s ease; opacity:0; z-index:1; will-change:opacity,transform; }
.hero-bg-layer.visible{ opacity:1; z-index:2; }
.hero-bg-layer.bg-a{ filter:brightness(0.65) saturate(1.05) contrast(1.02); }
.hero-bg-layer.bg-b{ filter:brightness(0.65) saturate(1.05) contrast(1.02); }

.btn{ display:inline-block; padding:12px 20px; border-radius:10px; text-decoration:none; cursor:pointer; }
.btn-primary{ background:var(--primary); color:#fff; border:none; box-shadow:0 8px 24px rgba(43,158,214,0.12); }
.btn-primary:hover{ background:var(--primary-600); }
.btn-outline{ background:transparent; border:1px solid rgba(43,158,214,0.14); color:var(--primary); }

/* Theme toggle button style */
#themeToggle{ background:transparent; border:1px solid rgba(27,36,43,0.06); padding:8px 10px; border-radius:8px; cursor:pointer; font-size:1rem; margin-left:10px; }
#themeToggle:hover{ border-color:rgba(27,36,43,0.12); }

/* Smooth color transitions */
body, .card, .site-header, .hero-inner, .primary-nav a{ transition: background-color 240ms ease, color 240ms ease; }

.section{ padding:56px 0; }
.light{ background:linear-gradient(180deg,#fbfdff,#f8feff); }

.grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; margin-top:16px; }
.card{ background:linear-gradient(180deg,var(--card-bg), #f6fdff); border-radius:12px; padding:18px; box-shadow:0 10px 30px rgba(27,36,43,0.06); border:1px solid rgba(43,158,214,0.06); }
.muted{ color:var(--muted); font-size:0.95rem; margin-top:8px; }

.steps{ margin-top:12px; padding-left:20px; }

/* Form */
.form-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px; align-items:start; max-width:900px; }
.form-grid label{ display:block; font-size:0.95rem; }
.form-grid input, .form-grid select, .form-grid textarea{ width:100%; padding:10px 12px; border-radius:8px; border:1px solid rgba(27,36,43,0.06); margin-top:6px; background:linear-gradient(180deg,#fff,#fbfdff); }
.form-grid .full{ grid-column:1 / -1; }
.form-actions{ display:flex; gap:12px; align-items:center; }

/* Footer */
.site-footer{ padding:24px 0; background:linear-gradient(180deg,#fff,#fbfdff); border-top:1px solid rgba(27,36,43,0.04); margin-top:40px; }

/* Responsive */
@media (max-width: 820px){
    .nav-toggle{ display:inline-block; }
    .primary-nav{ position:absolute; right:12px; top:62px; background:rgba(255,255,255,0.98); padding:12px; border-radius:8px; box-shadow:0 10px 30px rgba(0,0,0,0.06); display:none; flex-direction:column; }
    .primary-nav.open{ display:block; }
    .primary-nav a{ display:block; margin:8px 0; }
    .hero-inner h1{ font-size:1.6rem; }
    .form-grid{ grid-template-columns:1fr; }
}

/* Dark theme specific overrides to remove white sections */
[data-theme="dark"] .form-grid input, [data-theme="dark"] .form-grid select, [data-theme="dark"] .form-grid textarea{
  background: linear-gradient(180deg,#04171b,#021014);
  border-color: rgba(255,255,255,0.03);
  color: var(--text);
}

[data-theme="dark"] .site-footer{ background: linear-gradient(180deg,#041218,#07171e); border-top-color: rgba(255,255,255,0.02); }

[data-theme="dark"] .primary-nav{ background: rgba(7,16,23,0.8); }

[data-theme="dark"] .booking-message{ background: linear-gradient(180deg,#062c1d,#053022); color:#d1ffe6; border-color: rgba(123,211,137,0.08); }

[data-theme="dark"] #themeToggle{ border-color: rgba(255,255,255,0.06); color:var(--primary); background: rgba(255,255,255,0.03); }

/* Booking confirmation message */
.booking-message{ margin-top:18px; padding:14px 16px; background:linear-gradient(180deg,#e9f8ef,#f5fff8); border:1px solid rgba(123,211,137,0.24); color:#064e2a; border-radius:8px; max-width:900px; }

/* Dark theme overrides */
[data-theme="dark"]{
  --bg: #071017;
  --card-bg: #071824;
  --text: #dbeef8;
  --muted: #9fb7c4;
  --primary: #1e90bf;
  --primary-600: #187aa0;
  --accent: #6fbf8a;
}

[data-theme="dark"] body{ background:var(--bg); }
[data-theme="dark"] .site-header{ background:linear-gradient(180deg, rgba(7,16,23,0.6), rgba(7,16,23,0.4)); }
[data-theme="dark"] .card{ background:linear-gradient(180deg,var(--card-bg), #04202b); border-color: rgba(27,58,78,0.12); box-shadow: 0 8px 30px rgba(2,10,16,0.6); }
[data-theme="dark"] .primary-nav a{ color:var(--muted); }
[data-theme="dark"] .brand{ color:var(--primary); }
[data-theme="dark"] .btn-outline{ border-color: rgba(30,144,191,0.12); color:var(--primary); }
[data-theme="dark"] .hero-inner h1, [data-theme="dark"] .hero-inner p{ color: #e8f6ff; }

/* Always-dark section variant */
.dark-section{ background: linear-gradient(180deg,#03161a,#042428); color: #eaf8fb; }
.dark-section h2{ color: #eaf8fb; }
.dark-section p, .dark-section li{ color: #d6f3f7; }
.dark-section .card{ background: transparent; border-color: rgba(255,255,255,0.03); box-shadow: none; }

[data-theme="dark"] .dark-section{ background: linear-gradient(180deg,#021014,#041218); }
