/* =====================================================================
   Heart of Jungle — design system
   Palette per the build brief. Light is the brand-true default; a dark
   palette is derived from it and applied automatically by system
   preference, with a manual override toggle (persisted per-browser).
   ===================================================================== */

:root{
  /* --- brief palette (do not rename — referenced in the brief itself) --- */
  --botanical-green:#3C9A66;
  --orchid-purple:#B54CA0;
  --pale-lime:#E3EAA7;
  --soft-leaf-green:#B9D8A8;
  --deep-orchid:#7F3674;
  --warm-cream:#FFFDF4;
  --deep-forest:#193B2A;
  --charcoal-green:#243D31;

  /* --- semantic tokens (light = default) --- */
  --bg:var(--warm-cream);
  --surface:#FFFFFF;
  --text:var(--charcoal-green);
  --text-soft:#4b5d53;
  --text-invert:#FFFFFF;
  --brand:var(--botanical-green);
  --brand-contrast:#FFFFFF;
  --accent:var(--orchid-purple);
  --accent-deep:var(--deep-orchid);
  --highlight:var(--pale-lime);
  --highlight-text:var(--charcoal-green);
  --border:#c9dfbd;
  --nav-bg:rgba(255,253,244,.97);
  --footer-bg:var(--deep-forest);
  --footer-text:#FFFFFF;
  --footer-link:var(--pale-lime);
  --shadow:0 12px 30px rgba(25,59,42,.08);
  --focus-ring:#1d6dd6;
}

@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#12201A;
    --surface:#1B2E23;
    --text:#EAF2EC;
    --text-soft:#B9CCC0;
    --text-invert:#12201A;
    --brand:#5FBF8A;
    --brand-contrast:#0E1A14;
    --accent:#E39AD2;
    --accent-deep:#D68FC4;
    --highlight:#33452B;
    --highlight-text:#EAF2EC;
    --border:#2F4A3A;
    --nav-bg:rgba(18,32,26,.97);
    --footer-bg:#0D1912;
    --footer-text:#EAF2EC;
    --footer-link:#BFE39A;
    --shadow:0 12px 30px rgba(0,0,0,.35);
    --focus-ring:#7fb4ff;
  }
}
:root[data-theme="dark"]{
  --bg:#12201A;
  --surface:#1B2E23;
  --text:#EAF2EC;
  --text-soft:#B9CCC0;
  --text-invert:#12201A;
  --brand:#5FBF8A;
  --brand-contrast:#0E1A14;
  --accent:#E39AD2;
  --accent-deep:#D68FC4;
  --highlight:#33452B;
  --highlight-text:#EAF2EC;
  --border:#2F4A3A;
  --nav-bg:rgba(18,32,26,.97);
  --footer-bg:#0D1912;
  --footer-text:#EAF2EC;
  --footer-link:#BFE39A;
  --shadow:0 12px 30px rgba(0,0,0,.35);
  --focus-ring:#7fb4ff;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font:16px/1.65 Arial, Helvetica, sans-serif;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{font-family:Georgia,'Times New Roman',serif;line-height:1.15;font-weight:500;color:var(--text)}
h1{font-size:clamp(2.6rem,7vw,5rem);margin:.7rem 0}
h2{font-size:clamp(1.8rem,4.5vw,3rem);margin:0 0 .8rem}
h3{font-size:1.3rem;margin:.2rem 0 .6rem}
p{color:var(--text-soft)}
a{color:var(--accent-deep)}
a:hover{color:var(--accent)}
img{max-width:100%;display:block}
:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}

.skip-link{
  position:absolute;left:-999px;top:0;background:var(--surface);color:var(--text);
  padding:.7rem 1rem;z-index:100;border-radius:0 0 8px 0;
}
.skip-link:focus{left:0}

/* --- nav --- */
.nav{
  position:sticky;top:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;
  padding:.8rem 6vw;background:var(--nav-bg);
  border-bottom:1px solid var(--border);
  box-shadow:var(--shadow);
  backdrop-filter:blur(6px);
}
.brand{display:flex;align-items:center;gap:.7rem;font:1.3rem Georgia,serif;color:var(--brand);white-space:nowrap;text-decoration:none}
.logo-mark{
  width:48px;height:48px;border:2px solid var(--brand);border-radius:50%;
  display:grid;place-items:center;color:var(--accent);font-size:1.3rem;background:var(--highlight);
  flex:none;
}
.nav-links{display:flex;align-items:center;flex-wrap:wrap;gap:.2rem 1rem}
.nav-links a{
  color:var(--text);font-size:.76rem;letter-spacing:.09em;text-transform:uppercase;
  text-decoration:none;padding:.4rem .2rem;
}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:var(--accent-deep)}
.theme-toggle{
  border:1px solid var(--border);background:var(--surface);color:var(--text);
  border-radius:999px;padding:.4rem .8rem;font-size:.75rem;cursor:pointer;
  display:inline-flex;align-items:center;gap:.4rem;
}
.nav-toggle{display:none}

/* --- hero --- */
.hero{
  min-height:70vh;display:grid;place-items:center;text-align:center;padding:4.5rem 6vw;
  position:relative;overflow:hidden;
  background:linear-gradient(100deg,rgba(25,59,42,.82),rgba(60,154,102,.55)),
             var(--hero-image, url('/assets/img/hero-placeholder.svg')) center/cover;
}
.hero-inner{max-width:760px;position:relative;z-index:1}
.hero-mark{
  margin:auto;width:140px;height:140px;border-radius:50%;display:grid;place-items:center;
  background:var(--warm-cream);border:7px solid var(--pale-lime);
  box-shadow:0 10px 35px rgba(25,59,42,.4);color:var(--deep-orchid);font:3.2rem Georgia,serif;
}
.hero-mark small{display:block;font:700 .42rem Arial;letter-spacing:.1em;color:var(--botanical-green);line-height:1.3;margin-top:.15rem}
.hero h1{color:#fff}
.hero p{max-width:600px;margin:1rem auto 2rem;color:#f3f7ef;font-size:1.1rem}
.eyebrow{color:var(--pale-lime);font-size:.78rem;letter-spacing:.2em;text-transform:uppercase}
.buttons{display:flex;justify-content:center;flex-wrap:wrap;gap:.8rem}
.button{
  display:inline-block;padding:.85rem 1.4rem;border-radius:999px;
  background:var(--pale-lime);color:var(--charcoal-green);text-decoration:none;font-weight:bold;
  border:1px solid transparent;
}
.button:hover{background:var(--botanical-green);color:#fff}
.button.alt{background:transparent;color:#fff;border:1px solid #fff}
.button.alt:hover{background:rgba(255,255,255,.15)}
.button.solid-brand{background:var(--brand);color:var(--brand-contrast)}
.button.solid-brand:hover{background:var(--accent-deep);color:#fff}

/* --- generic sections --- */
.section{padding:4.5rem 6vw}
.section.tight{padding-top:2.5rem;padding-bottom:2.5rem}
.inner{max-width:1120px;margin:auto}
.inner.narrow{max-width:760px}
.kicker{color:var(--accent-deep);font-size:.78rem;font-weight:bold;letter-spacing:.16em;text-transform:uppercase}
.intro{max-width:700px;margin-bottom:2rem}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}
.card{
  padding:1.6rem;border-radius:18px;background:var(--surface);
  border:1px solid var(--border);box-shadow:var(--shadow);
}
.icon{color:var(--accent-deep);font-size:1.8rem}
.section-alt{background:var(--highlight);color:var(--highlight-text)}
.section-alt .card{background:color-mix(in srgb, var(--surface) 85%, transparent)}
.tag{
  display:inline-block;background:var(--accent);color:#fff;border-radius:99px;
  padding:.25rem .7rem;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
}
.section-brand{background:var(--brand);color:#fff}
.section-brand h2,.section-brand h3{color:#fff}
.section-brand p{color:#eef7f0}
.section-brand .kicker{color:var(--pale-lime)}
.section-brand .card{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.25);box-shadow:none;color:#fff}
.section-brand .card p{color:#eef7f0}

/* --- retreats --- */
.retreat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}
.retreat-card ul{margin:.6rem 0 1rem;padding-left:1.1rem;color:var(--text-soft)}
.retreat-card .meta{font-size:.85rem;color:var(--text-soft);margin:.2rem 0}
.retreat-detail-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:2rem}
@media(max-width:760px){.retreat-detail-grid{grid-template-columns:1fr}}
.fact-table{width:100%;border-collapse:collapse}
.fact-table th,.fact-table td{text-align:left;padding:.55rem 0;border-bottom:1px solid var(--border);vertical-align:top}
.fact-table th{width:38%;color:var(--text-soft);font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.04em}

/* --- safety grid --- */
.safety{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}

/* --- testimonial --- */
.testimonial{
  max-width:780px;margin:auto;padding:2rem;border-left:5px solid var(--accent);
  background:var(--surface);font:1.25rem/1.55 Georgia,serif;border-radius:0 18px 18px 0;
  box-shadow:var(--shadow);
}
.testimonial small{display:block;margin-top:1rem;font:.85rem Arial;color:var(--brand)}
.testimonial-disclaimer{max-width:780px;margin:1.2rem auto 0;font-size:.82rem;color:var(--text-soft)}

/* --- forms --- */
.form-card{
  max-width:640px;margin:auto;background:var(--surface);border:1px solid var(--border);
  border-radius:18px;padding:2rem;box-shadow:var(--shadow);text-align:left;
}
.field{margin-bottom:1.1rem}
.field label{display:block;font-weight:bold;font-size:.85rem;margin-bottom:.35rem;color:var(--text)}
.field .hint{display:block;font-size:.78rem;color:var(--text-soft);margin-top:.3rem}
input[type=text],input[type=email],input[type=tel],select,textarea{
  width:100%;padding:.7rem .8rem;border-radius:10px;border:1px solid var(--border);
  background:var(--bg);color:var(--text);font:inherit;
}
textarea{min-height:120px;resize:vertical}
.checkbox-field{display:flex;gap:.6rem;align-items:flex-start}
.checkbox-field input{margin-top:.3rem}
.notice-box{
  background:var(--highlight);color:var(--highlight-text);border-radius:12px;
  padding:1rem 1.2rem;font-size:.9rem;margin-bottom:1.4rem;border:1px solid var(--border);
}
.form-message{border-radius:12px;padding:1rem 1.2rem;margin-bottom:1.2rem;font-size:.92rem}
.form-message.success{background:#e4f3e9;color:#1e5b39;border:1px solid #b9d8a8}
.form-message.error{background:#fbe7ee;color:#7f3674;border:1px solid #e6b6d4}
:root[data-theme="dark"] .form-message.success{background:#173523;color:#bfe3c9;border-color:#2f4a3a}
:root[data-theme="dark"] .form-message.error{background:#3a2030;color:#f3c9e4;border-color:#4a2f42}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .form-message.success{background:#173523;color:#bfe3c9;border-color:#2f4a3a}
  :root:not([data-theme="light"]) .form-message.error{background:#3a2030;color:#f3c9e4;border-color:#4a2f42}
}
button.button{font:inherit;cursor:pointer}
.honeypot{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;overflow:hidden}

/* --- footer --- */
.footer{
  padding:2.2rem 6vw;background:var(--footer-bg);color:var(--footer-text);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;font-size:.85rem;
}
.footer a{color:var(--footer-link)}
.footer-links{display:flex;flex-wrap:wrap;gap:.3rem 1rem}

/* --- admin-lite utility classes shared with admin views --- */
.container{max-width:1040px;margin:2rem auto;padding:0 1.4rem}
.badge{display:inline-block;padding:.15rem .55rem;border-radius:99px;font-size:.72rem;font-weight:bold;text-transform:uppercase}
.badge.new{background:#e4f3e9;color:#1e5b39}
.badge.pending{background:#fbf3d9;color:#8a6d1a}
.badge.approved,.badge.subscribed{background:#e4f3e9;color:#1e5b39}
.badge.closed,.badge.unsubscribed{background:#eee;color:#555}
.badge.spam,.badge.rejected{background:#fbe7ee;color:#7f3674}
table.data-table{width:100%;border-collapse:collapse;background:var(--surface)}
table.data-table th,table.data-table td{padding:.6rem .7rem;border-bottom:1px solid var(--border);text-align:left;font-size:.9rem}
table.data-table th{background:var(--highlight);color:var(--highlight-text)}

@media(max-width:900px){
  .grid3,.retreat-grid,.safety,.grid2{grid-template-columns:1fr}
}
@media(max-width:760px){
  .nav{flex-wrap:wrap}
  .nav-toggle{
    display:inline-flex;margin-left:auto;border:1px solid var(--border);background:var(--surface);
    color:var(--text);border-radius:8px;padding:.4rem .6rem;
  }
  .nav-links{
    display:none;flex-direction:column;align-items:flex-start;width:100%;gap:.5rem;
    padding-top:.8rem;border-top:1px solid var(--border);margin-top:.6rem;
  }
  .nav-links.open{display:flex}
  .section{padding:3rem 6vw}
  .retreat-detail-grid{grid-template-columns:1fr}
}
