/*
Theme Name: Glasmacher Waldretreat
Theme URI: https://waldretreat.pensionzumglasmacher.nl
Author: Webkraft Digital
Author URI: https://www.webkraft-digital.de
Description: Retreat-Location im Thueringer Wald
Version: 2.0.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: Proprietary
Text Domain: gwr
*/

/* =============================================
   DESIGN TOKENS
   ============================================= */
:root {
  --forest:      #3A5A3A;
  --forest-dark: #243824;
  --forest-mid:  #4E7A4E;
  --amber:       #B06520;
  --amber-light: #C87A35;
  --cream:       #FAF7F2;
  --white:       #FFFFFF;
  --border:      #E0D8CC;
  --sand:        #C8B89A;
  --text:        #1A1612;
  --text-body:   #2E2820;
  --text-muted:  #52463C;
  --text-light:  #7A6E62;
  --fd: 'Cormorant Garamond', Georgia, serif;
  --fb: 'Source Sans 3', system-ui, sans-serif;
  --radius: 6px;
  --shadow: 0 2px 16px rgba(0,0,0,.07);
  --shadow-lg: 0 8px 40px rgba(0,0,0,.12);
  --nav-h: 76px;
}

/* =============================================
   RESET & BASE
   ============================================= */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:17px; }
body {
  font-family: var(--fb);
  color: var(--text-body);
  background: var(--white);
  line-height: 1.75;
  font-weight: 400;
}
img { max-width:100%; height:auto; display:block; }
a { color: var(--forest); text-decoration:none; transition:color .2s; }
a:hover { color: var(--amber); }
ul, ol { list-style:none; }
h1,h2,h3,h4 { font-family:var(--fd); color:var(--text); line-height:1.2; font-weight:600; }
h1 { font-size: clamp(30px,5.5vw,58px); }
h2 { font-size: clamp(24px,4vw,40px); }
h3 { font-size: clamp(19px,2.5vw,24px); }
p  { margin-bottom:1.1em; color:var(--text-body); }
p:last-child { margin-bottom:0; }

/* =============================================
   LAYOUT
   ============================================= */
.container    { max-width:1120px; margin:0 auto; padding:0 28px; }
.container-sm { max-width:760px;  margin:0 auto; padding:0 28px; }
.section      { padding:80px 0; }
.section-alt  { background:var(--cream); }
.grid-2  { display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }
.grid-3  { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.grid-4  { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.two-col { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.two-col.rev { direction:rtl; }
.two-col.rev > * { direction:ltr; }

/* =============================================
   SECTION HEADER
   ============================================= */
.section-header { text-align:center; margin-bottom:56px; }
.overline {
  display:inline-block; font-family:var(--fb);
  font-size:12px; font-weight:600; letter-spacing:.22em;
  text-transform:uppercase; color:var(--amber); margin-bottom:12px;
}
.section-header h2 { margin-bottom:14px; }
.section-header p  { font-size:18px; color:var(--text-muted); max-width:560px; margin:0 auto; line-height:1.7; }
.divider { display:flex; align-items:center; gap:12px; justify-content:center; margin:18px auto 0; }
.divider::before,.divider::after { content:''; display:block; width:40px; height:1px; background:var(--sand); }
.divider span { color:var(--forest); font-size:16px; }

/* =============================================
   BUTTONS
   ============================================= */
.btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 28px; border-radius:var(--radius);
  font-family:var(--fb); font-size:15px; font-weight:600;
  letter-spacing:.04em; cursor:pointer; border:none;
  transition:all .25s; text-decoration:none; line-height:1;
}
.btn-primary { background:var(--forest); color:#fff; }
.btn-primary:hover { background:var(--forest-dark); color:#fff; transform:translateY(-1px); box-shadow:0 4px 14px rgba(58,90,58,.3); }
.btn-amber   { background:var(--amber); color:#fff; }
.btn-amber:hover { background:var(--amber-light); color:#fff; transform:translateY(-1px); box-shadow:0 4px 14px rgba(176,101,32,.3); }
.btn-outline { background:transparent; color:var(--text); border:1.5px solid var(--border); }
.btn-outline:hover { border-color:var(--forest); color:var(--forest); }
.btn-outline-w { background:transparent; color:#fff; border:1.5px solid rgba(255,255,255,.6); }
.btn-outline-w:hover { border-color:#fff; background:rgba(255,255,255,.12); }
.btn-lg   { padding:15px 34px; font-size:16px; }
.btn-full { width:100%; justify-content:center; }

/* =============================================
   TOPBAR
   ============================================= */
#topbar { background:var(--forest-dark); color:rgba(255,255,255,.78); font-size:13.5px; padding:9px 0; font-family:var(--fb); }
.tb-inner { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; }
.tb-contact { display:flex; gap:20px; flex-wrap:wrap; }
.tb-contact a { color:rgba(255,255,255,.78); }
.tb-contact a:hover { color:#fff; }
.lang-wrap { display:flex; gap:6px; }
.lb { background:none; border:1px solid rgba(255,255,255,.25); color:rgba(255,255,255,.78); padding:4px 11px; border-radius:3px; font-size:12px; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; font-family:var(--fb); transition:all .2s; font-weight:600; }
.lb.active,.lb:hover { background:var(--amber); border-color:var(--amber); color:#fff; }

/* =============================================
   NAVIGATION
   ============================================= */
#masthead { background:#fff; border-bottom:1.5px solid var(--border); position:sticky; top:0; z-index:999; transition:box-shadow .3s; }
#masthead.scrolled { box-shadow:0 2px 20px rgba(0,0,0,.1); }
.nav-inner { display:flex; align-items:center; justify-content:space-between; height:var(--nav-h); }
.site-branding { display:flex; align-items:center; gap:13px; text-decoration:none; }
.site-branding img { height:50px; width:50px; border-radius:50%; object-fit:cover; border:2px solid var(--border); }
.site-branding .brand-name { font-family:var(--fd); font-size:19px; color:var(--text); display:block; line-height:1.15; font-weight:600; }
.site-branding .brand-tag  { font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--amber); display:block; margin-top:2px; font-weight:600; }
#primary-navigation { display:flex; align-items:center; }
.nav-menu { display:flex; align-items:center; gap:0; list-style:none; }
.nav-menu > li { position:relative; }
.nav-menu > li > a, .nav-menu > li > button {
  color:var(--text-muted); padding:8px 14px; border-radius:4px;
  font-size:14.5px; font-weight:500; background:none; border:none;
  cursor:pointer; font-family:var(--fb); transition:all .2s;
  white-space:nowrap; display:flex; align-items:center; gap:4px;
}
.nav-menu > li > a:hover, .nav-menu > li > button:hover { color:var(--forest); background:var(--cream); }
.nav-menu > li > a.current, .nav-menu > li.current-menu-item > a { color:var(--forest); }
.nav-menu > .menu-cta > a { background:var(--amber); color:#fff; margin-left:10px; border-radius:var(--radius); padding:10px 18px; font-weight:600; }
.nav-menu > .menu-cta > a:hover { background:var(--amber-light); color:#fff; }
.nav-menu > .menu-book > a { background:transparent; color:var(--forest); border:1.5px solid var(--border); margin-left:6px; border-radius:var(--radius); padding:9px 16px; font-weight:600; }
.nav-menu > .menu-book > a:hover { border-color:var(--forest); background:var(--cream); }
/* Dropdown */
.sub-menu { display:none; position:absolute; top:calc(100% + 4px); left:0; background:#fff; border-radius:8px; min-width:230px; box-shadow:0 6px 32px rgba(0,0,0,.12); z-index:100; overflow:hidden; border:1.5px solid var(--border); }
.nav-menu li:hover > .sub-menu { display:block; }
.sub-menu li a { display:block; padding:12px 20px; color:var(--text-body); font-size:15px; font-weight:400; border-bottom:1px solid var(--cream); transition:background .15s; }
.sub-menu li:last-child a { border-bottom:none; }
.sub-menu li a:hover { background:var(--cream); color:var(--forest); }
/* Hamburger */
.menu-toggle { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px; }
.menu-toggle span { display:block; width:22px; height:2px; background:var(--text); border-radius:2px; transition:all .3s; }

/* =============================================
   HERO
   ============================================= */
.hero { min-height:92vh; position:relative; display:flex; align-items:center; overflow:hidden; background:var(--forest-dark); }
.hero-bg { position:absolute; inset:0; background-size:cover; background-position:center; opacity:.75; transition:transform 10s ease; }
.hero:hover .hero-bg { transform:scale(1.02); }
.hero-ov { position:absolute; inset:0; background:linear-gradient(155deg,rgba(20,35,20,.30) 0%,rgba(30,50,28,.22) 50%,rgba(40,65,40,.15) 100%); }
.hero-grain { position:absolute; inset:0; opacity:.03; pointer-events:none; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.hero-inner { position:relative; z-index:2; padding:110px 28px 120px; max-width:1120px; margin:0 auto; }
.hero-eyebrow { display:inline-flex; align-items:center; gap:12px; font-size:12px; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.75); margin-bottom:22px; font-weight:600; font-family:var(--fb); }
.hero-eyebrow::before,.hero-eyebrow::after { content:''; display:block; width:28px; height:1px; background:rgba(255,255,255,.4); }
.hero h1 { font-size:clamp(38px,7vw,80px); color:#fff; font-weight:600; line-height:1.08; max-width:680px; margin-bottom:16px; }
.hero h1 em { color:#B8D4A8; font-style:italic; font-weight:400; }
.hero-sub { font-size:clamp(17px,2.2vw,20px); color:rgba(255,255,255,.82); max-width:540px; margin:0 0 38px; line-height:1.7; font-family:var(--fb); font-weight:400; }
.hero-cta { display:flex; gap:14px; flex-wrap:wrap; }
.scroll-hint { position:absolute; bottom:28px; left:50%; transform:translateX(-50%); z-index:2; display:flex; flex-direction:column; align-items:center; gap:8px; color:rgba(255,255,255,.45); font-size:11px; letter-spacing:.15em; text-transform:uppercase; font-family:var(--fb); }
.scroll-line { width:1px; height:42px; background:rgba(255,255,255,.25); animation:sL 2s ease-in-out infinite; }
@keyframes sL { 0%,100%{opacity:.25;transform:scaleY(1);}50%{opacity:.65;transform:scaleY(.5);} }

/* =============================================
   AUDIENCE STRIP
   ============================================= */
.aud-strip { background:var(--forest); }
.aud-grid  { display:grid; grid-template-columns:repeat(3,1fr); }
.aud-item  { padding:44px 32px; text-align:center; transition:background .3s; border-right:1px solid rgba(255,255,255,.1); }
.aud-item:last-child { border-right:none; }
.aud-item:hover { background:rgba(255,255,255,.08); }
.aud-icon { font-size:36px; margin-bottom:14px; display:block; }
.aud-item h3 { color:#fff; margin-bottom:10px; font-size:21px; }
.aud-item p  { font-size:15px; color:rgba(255,255,255,.8); line-height:1.65; margin:0; }

/* =============================================
   CARDS
   ============================================= */
.space-card { background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; border:1.5px solid var(--border); transition:transform .25s, box-shadow .25s, border-color .25s; }
.space-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:var(--forest); }
.space-thumb { aspect-ratio:16/9; background:linear-gradient(135deg,var(--forest-dark),var(--forest-mid)); display:flex; align-items:center; justify-content:center; font-size:52px; position:relative; overflow:hidden; }
.space-thumb img { width:100%;height:100%;object-fit:cover;position:absolute;inset:0; }
.space-badge { position:absolute; top:12px; right:12px; background:var(--amber); color:#fff; font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; padding:4px 11px; border-radius:20px; font-family:var(--fb); }
.space-body { padding:24px 26px; }
.space-body h3 { color:var(--text); margin-bottom:9px; }
.space-body p  { color:var(--text-muted); font-size:15.5px; line-height:1.7; }
.space-specs { display:flex; gap:12px; flex-wrap:wrap; margin-top:14px; padding-top:14px; border-top:1px solid var(--cream); }
.spec-tag { font-size:13px; color:var(--text-muted); display:flex; align-items:center; gap:4px; font-weight:500; }

/* =============================================
   COLUMN LAYOUT
   ============================================= */
.col-img { border-radius:var(--radius); overflow:hidden; position:relative; }
.col-img img { width:100%; height:100%; object-fit:cover; display:block; }
.col-img.tall { aspect-ratio:4/5; }
.col-img.wide { aspect-ratio:16/10; }
.col-text h2 { margin-bottom:18px; }
.col-text p  { color:var(--text-muted); font-size:17px; line-height:1.8; margin-bottom:1.1rem; }

/* =============================================
   ZEN LIST
   ============================================= */
.zen-list { list-style:none; margin:20px 0; }
.zen-list li { padding:10px 0; display:flex; align-items:flex-start; gap:12px; color:var(--text-muted); font-size:16px; line-height:1.65; border-bottom:1px solid var(--border); }
.zen-list li:last-child { border-bottom:none; }
.zen-check { color:var(--forest); font-size:15px; flex-shrink:0; margin-top:3px; font-weight:700; }

/* =============================================
   NOTICE BOX
   ============================================= */
.notice-box { background:#F0F7F0; border:1.5px solid #9CCC9C; border-radius:var(--radius); padding:16px 20px; font-size:15px; color:#2A4A2A; margin:16px 0; display:flex; gap:10px; align-items:flex-start; line-height:1.6; }
.notice-box strong { color:#1A3A1A; }

/* =============================================
   HIGHLIGHT BOX
   ============================================= */
.highlight-box { background:var(--cream); border:1.5px solid var(--border); border-radius:var(--radius); padding:24px 28px; margin:20px 0; }
.highlight-box h3 { font-size:20px; color:var(--text); margin-bottom:8px; }
.highlight-box p  { color:var(--text-muted); font-size:16px; margin:0; }

/* =============================================
   TESTIMONIALS
   ============================================= */
.quote-card { background:#fff; border-radius:var(--radius); padding:30px 28px; box-shadow:var(--shadow); border:1.5px solid var(--border); position:relative; overflow:hidden; }
.quote-card::before { content:'"'; position:absolute; top:-8px; left:16px; font-family:var(--fd); font-size:100px; color:var(--cream); line-height:1; z-index:0; }
.quote-card p { position:relative; z-index:1; font-family:var(--fd); font-size:17px; color:var(--text); font-style:italic; line-height:1.65; margin-bottom:16px; }
.q-author { font-size:14px; color:var(--text-muted); letter-spacing:.03em; font-weight:600; }
.q-stars  { color:var(--amber); font-size:14px; margin-bottom:12px; }

/* =============================================
   PRICE CARDS
   ============================================= */
.price-card { background:#fff; border-radius:var(--radius); padding:30px 26px; box-shadow:var(--shadow); border:1.5px solid var(--border); text-align:center; transition:transform .25s, border-color .25s; }
.price-card:hover { transform:translateY(-4px); }
.price-card.featured { border-color:var(--forest); border-width:2px; }
.price-icon { font-size:38px; margin-bottom:14px; }
.price-card h3 { font-size:22px; color:var(--text); margin-bottom:8px; }
.price-desc { color:var(--text-muted); font-size:15px; margin-bottom:20px; line-height:1.6; }
.price-tag  { font-family:var(--fd); font-size:32px; color:var(--forest); margin-bottom:4px; font-weight:600; }
.price-unit { font-size:13px; color:var(--text-muted); letter-spacing:.06em; text-transform:uppercase; margin-bottom:20px; font-weight:600; }
.price-list { list-style:none; text-align:left; margin-bottom:22px; }
.price-list li { padding:8px 0; font-size:15px; color:var(--text-muted); border-bottom:1px solid var(--cream); display:flex; align-items:center; gap:9px; }
.price-list li:last-child { border-bottom:none; }
.price-list li::before { content:'✓'; color:var(--forest); font-weight:700; flex-shrink:0; }

/* =============================================
   FAQ
   ============================================= */
.faq-item { border-bottom:1.5px solid var(--border); }
.faq-question { display:flex; justify-content:space-between; align-items:center; padding:18px 0; cursor:pointer; gap:16px; font-family:var(--fd); font-size:19px; color:var(--text); transition:color .2s; font-weight:600; }
.faq-question:hover { color:var(--forest); }
.faq-toggle { width:30px; height:30px; background:var(--cream); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; transition:all .3s; color:var(--forest); border:1.5px solid var(--border); font-weight:400; }
.faq-item.open .faq-toggle { transform:rotate(45deg); background:var(--forest); color:#fff; border-color:var(--forest); }
.faq-answer { display:none; padding-bottom:18px; color:var(--text-muted); line-height:1.8; font-size:16px; }
.faq-item.open .faq-answer { display:block; }

/* =============================================
   CONTACT FORM
   ============================================= */
.retreat-form { background:#fff; border-radius:var(--radius); box-shadow:var(--shadow); padding:40px 36px; border:1.5px solid var(--border); }
.retreat-form h3 { font-size:26px; margin-bottom:8px; }
.form-intro { color:var(--text-muted); font-size:16px; margin-bottom:26px; line-height:1.6; }
.form-group { margin-bottom:18px; }
.form-group label { display:block; font-size:13px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--text); margin-bottom:7px; }
.form-group input, .form-group textarea, .form-group select { width:100%; padding:12px 14px; border:1.5px solid var(--border); border-radius:var(--radius); font-family:var(--fb); font-size:16px; color:var(--text-body); background:#fff; transition:border-color .2s; }
.form-group input:focus, .form-group textarea:focus, .form-group select:focus { outline:none; border-color:var(--forest); box-shadow:0 0 0 3px rgba(58,90,58,.1); }
.form-group textarea { resize:vertical; min-height:120px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-note { text-align:center; margin-top:14px; font-size:14px; color:var(--text-muted); }
.form-success { display:none; padding:14px; border-radius:var(--radius); background:#F0F7F0; color:#1A3A1A; border:1.5px solid #9CCC9C; margin-bottom:16px; font-weight:500; }

/* =============================================
   PAGE HERO
   ============================================= */
.page-hero { background:var(--forest-dark); padding:80px 0; text-align:center; position:relative; overflow:hidden; }
.page-hero-bg { position:absolute; inset:0; background-size:cover; background-position:center; opacity:.2; }
.page-hero-ov { position:absolute; inset:0; background:linear-gradient(155deg,rgba(30,50,28,.95),rgba(58,90,58,.8)); }
.page-hero .container { position:relative; z-index:2; }
.page-hero h1 { color:#fff; margin-bottom:12px; }
.page-hero p  { color:rgba(255,255,255,.78); font-size:18px; max-width:540px; margin:0 auto; line-height:1.6; }

/* =============================================
   BREADCRUMB
   ============================================= */
.breadcrumb { background:var(--cream); padding:12px 0; font-size:14px; color:var(--text-muted); border-bottom:1.5px solid var(--border); }
.breadcrumb a { color:var(--forest); font-weight:500; }
.breadcrumb a:hover { color:var(--amber); }
.breadcrumb .sep { margin:0 8px; color:var(--border); }

/* =============================================
   CTA BANNER
   ============================================= */
.cta-banner { background:linear-gradient(135deg,var(--forest) 0%,var(--forest-dark) 100%); padding:72px 0; text-align:center; }
.cta-banner h2 { color:#fff; margin-bottom:14px; }
.cta-banner p  { color:rgba(255,255,255,.82); font-size:18px; margin-bottom:32px; max-width:500px; margin-left:auto; margin-right:auto; line-height:1.65; }
.cta-btn-group { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }

/* =============================================
   MAP
   ============================================= */
.map-wrap { border-radius:var(--radius); overflow:hidden; height:280px; margin-top:18px; }
.map-wrap iframe { width:100%; height:100%; border:none; }

/* =============================================
   FOOTER
   ============================================= */
#colophon { background:#1A1612; color:rgba(255,255,255,.55); padding:64px 0 0; }
.footer-grid {
  display: grid !important;
  grid-template-columns: 2fr 1fr 1fr 1fr !important;
  gap: 40px;
  padding-bottom: 40px;
}
.footer-brand .footer-logo { height:54px; width:54px; border-radius:50%; object-fit:cover; margin-bottom:14px; border:2px solid rgba(255,255,255,.15); }
.footer-brand h3 { font-family:var(--fd); color:#fff !important; font-size:20px; margin-bottom:10px; font-weight:600; }
.footer-brand p  { font-size:14.5px; line-height:1.75; max-width:270px; color:rgba(255,255,255,.85); }
.footer-col h4 { color:rgba(255,255,255,.9); font-size:12px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; margin-bottom:16px; font-family:var(--fb); }
.footer-col ul li { margin-bottom:10px; }
.footer-col ul li a { color:rgba(255,255,255,.5); font-size:14.5px; transition:color .2s; }
.footer-col ul li a:hover { color:#fff; }
.footer-bottom { border-top:1px solid rgba(255,255,255,.15); padding:20px 0; display:flex; justify-content:space-between; align-items:center; font-size:13px; flex-wrap:wrap; gap:10px; color:rgba(255,255,255,.75); }
.footer-legal { display:flex; gap:18px; flex-wrap:wrap; }
.footer-legal a { color:rgba(255,255,255,.70); transition:color .2s; }
.footer-legal a:hover { color:rgba(255,255,255,.75); }
.social-row { display:flex; gap:9px; margin-top:16px; }
.social-link { width:36px; height:36px; border-radius:50%; border:1px solid rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; font-size:15px; transition:all .25s; text-decoration:none; }
.social-link:hover { border-color:rgba(255,255,255,.6); background:rgba(255,255,255,.1); }

/* =============================================
   SKIP LINK
   ============================================= */
.skip-link { position:absolute; top:-48px; left:0; background:var(--amber); color:#fff; padding:10px 20px; z-index:9999; }
.skip-link:focus { top:0; }

/* =============================================
   WP CORE
   ============================================= */
.aligncenter { display:block; margin:0 auto; }
.alignleft   { float:left; margin:0 20px 20px 0; }
.alignright  { float:right; margin:0 0 20px 20px; }
.wp-block-image { margin-bottom:1.5rem; }

/* =============================================
   RESPONSIVE
   ============================================= */
@media(max-width:900px) { .footer-grid { grid-template-columns:1fr 1fr !important; } .two-col { gap:44px; } }
@media(max-width:900px) {
  .grid-3,.grid-4 { grid-template-columns:repeat(2,1fr); }
  .two-col { grid-template-columns:1fr; gap:28px; }
  .two-col.rev { direction:ltr; }
  .aud-grid { grid-template-columns:1fr; }
  .aud-item { border-right:none; border-bottom:1px solid rgba(255,255,255,.1); }
  .form-row { grid-template-columns:1fr; }
}
@media(max-width:768px) {
  html { font-size:16px; }
  #primary-navigation { display:none; }
  #primary-navigation.toggled { display:block; position:absolute; top:var(--nav-h); left:0; right:0; background:#fff; padding:12px; border-bottom:1.5px solid var(--border); box-shadow:0 4px 20px rgba(0,0,0,.1); }
  #primary-navigation.toggled .nav-menu { flex-direction:column; align-items:stretch; }
  #primary-navigation.toggled .sub-menu { display:none !important; }
  .menu-toggle { display:flex; }
  #masthead { position:relative; }
  .grid-3,.grid-4 { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; }
  .section { padding:56px 0; }
  .cta-btn-group { flex-direction:column; align-items:center; }
}
@media(max-width:480px) {
  .container,.container-sm { padding:0 18px; }
  .hero-inner { padding:90px 18px 100px; }
  .retreat-form { padding:28px 22px; }
}

/* =============================================
   FAQ – Aliases (faq-q/faq-ans/faq-icon)
   ============================================= */
.faq-q {
  display:flex; justify-content:space-between; align-items:center;
  padding:18px 0; cursor:pointer; gap:16px;
  font-family:var(--fd); font-size:19px; color:var(--text);
  transition:color .2s; font-weight:600; user-select:none;
}
.faq-q:hover { color:var(--forest); }
.faq-icon {
  width:30px; height:30px; background:var(--cream); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:20px; flex-shrink:0; transition:all .3s;
  color:var(--forest); border:1.5px solid var(--border);
  font-weight:400; font-style:normal; line-height:1;
}
.faq-item.open .faq-icon {
  transform:rotate(45deg); background:var(--forest);
  color:#fff; border-color:var(--forest);
}
.faq-ans {
  display:none; padding-bottom:20px;
  color:var(--text-muted); line-height:1.8; font-size:16px;
}
.faq-item.open .faq-ans { display:block; }

/* =============================================
   AUDIENCE STRIP – fix layout
   ============================================= */
.aud-strip .container { max-width:1120px; margin:0 auto; padding:0 28px; }

/* =============================================
   TRAINER FORM
   ============================================= */
.trainer-info-box {
  background:var(--forest); border-radius:var(--radius);
  padding:32px; color:rgba(255,255,255,.88);
}
.trainer-info-box h3 { color:#fff; font-size:20px; margin-bottom:12px; }
.trainer-info-box p  { font-size:15px; line-height:1.7; color:rgba(255,255,255,.82); }
.trainer-info-box a  { color:rgba(255,255,255,.9); text-decoration:underline; }

/* =============================================
   MOBILE MENU & DROPDOWN FIX
   ============================================= */

/* Desktop: dropdown via hover class set by JS */
.has-dropdown { position: relative; }
.has-dropdown .sub-menu {
  display: none;
  position: absolute; top: calc(100% + 4px); left: 0;
  background: #fff; border-radius: 8px; min-width: 230px;
  box-shadow: 0 6px 32px rgba(0,0,0,.12); z-index: 100;
  overflow: hidden; border: 1.5px solid var(--border);
}
.has-dropdown.open > .sub-menu { display: block; }
.sub-menu li a {
  display: block; padding: 12px 20px;
  color: var(--text-body); font-size: 15px; font-weight: 400;
  border-bottom: 1px solid var(--cream); transition: background .15s;
  text-decoration: none;
}
.sub-menu li:last-child a { border-bottom: none; }
.sub-menu li a:hover { background: var(--cream); color: var(--forest); }

/* Dropdown toggle button reset */
.dropdown-toggle {
  background: none; border: none; cursor: pointer;
  font-family: var(--fb); font-size: 14.5px; font-weight: 500;
  color: var(--text-muted); padding: 8px 14px; border-radius: 4px;
  transition: all .2s; display: flex; align-items: center; gap: 4px;
  white-space: nowrap;
}
.dropdown-toggle:hover { color: var(--forest); background: var(--cream); }
.dropdown-toggle .arrow { font-size: 11px; transition: transform .2s; }
.has-dropdown.open .dropdown-toggle .arrow { transform: rotate(180deg); }

/* Mobile: nav is hidden by default, shown when toggled */
@media(max-width: 768px) {
  #primary-navigation {
    display: none;
    position: absolute;
    top: var(--nav-h);
    left: 0; right: 0;
    background: #fff;
    border-bottom: 1.5px solid var(--border);
    box-shadow: 0 4px 20px rgba(0,0,0,.1);
    z-index: 998;
    max-height: calc(100vh - var(--nav-h));
    overflow-y: auto;
  }
  #primary-navigation.toggled { display: block; }

  .nav-menu {
    flex-direction: column;
    padding: 8px 0;
  }
  .nav-menu > li { width: 100%; border-bottom: 1px solid var(--cream); }
  .nav-menu > li > a,
  .nav-menu > li > .dropdown-toggle {
    width: 100%; padding: 14px 20px; font-size: 16px;
    display: flex; justify-content: space-between;
  }
  /* Mobile submenu: shown inline when open */
  .has-dropdown .sub-menu {
    position: static;
    box-shadow: none; border-radius: 0;
    border: none; border-top: 1px solid var(--cream);
    background: var(--cream);
    display: none;
    min-width: 100%;
  }
  .has-dropdown.open > .sub-menu { display: block; }
  .sub-menu li a {
    padding: 12px 28px; font-size: 15px;
    border-bottom: 1px solid rgba(0,0,0,.06);
    /* CRITICAL: ensure links are clickable on mobile */
    display: block;
    width: 100%;
    -webkit-tap-highlight-color: rgba(58,90,58,.15);
    touch-action: manipulation;
    cursor: pointer;
  }
  .menu-toggle { display: flex; }
  #masthead { position: relative; }

  /* Menu CTA items in mobile */
  .menu-cta > a, .menu-book > a {
    margin: 0; border-radius: 0; padding: 14px 20px !important;
    font-size: 15px !important;
  }
}

/* ─── CTA BANNER fix – both buttons always visible ─── */
.cta-banner .btn {
  position: relative; z-index: 1;
  opacity: 1 !important; visibility: visible !important;
}
.cta-btn-group {
  display: flex; gap: 14px;
  justify-content: center; flex-wrap: wrap;
}

/* ── FORM LAYOUT ── */
.form-layout { display:grid; grid-template-columns:1fr 380px; gap:48px; align-items:start; }
@media(max-width:900px) { .form-layout { grid-template-columns:1fr; } }

/* ── SPACE THUMB ICON (for uses grid) ── */
.space-thumb-icon {
  padding: 24px 0;
  text-align: center;
  font-size: 44px;
  background: linear-gradient(135deg,#243824,#4E7A4E);
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100px;
}
.space-thumb-icon svg {
  width: 52px;
  height: 52px;
  display: block;
}

/* ── TOPBAR EXTRA ── */
.tb-left { display:flex; gap:20px; flex-wrap:wrap; align-items:center; color:#fff; }
.tb-left a { color:#fff !important; }
.tb-left span { color:#fff; }
.tb-right { display:flex; align-items:center; gap:12px; }
.btn-sm { padding:6px 14px !important; font-size:12.5px !important; }

/* ── LOGO ── */
.site-logo { display:flex; align-items:center; gap:13px; text-decoration:none; }
.site-logo img { border-radius:50%; object-fit:cover; border:2px solid var(--border); }
.logo-name { font-family:var(--fd); font-size:19px; color:var(--text); display:block; line-height:1.15; font-weight:600; }
.logo-tag  { font-size:11.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--amber); display:block; margin-top:2px; font-weight:600; }

/* ── NAV ── */
.nav-list { display:flex; align-items:center; gap:0; list-style:none; }
.nav-list > li { position:relative; }
.nav-list > li > a, .sub-btn {
    color:var(--text-muted); padding:8px 14px; border-radius:4px;
    font-size:14.5px; font-weight:500; background:none; border:none;
    cursor:pointer; font-family:var(--fb); transition:all .2s;
    white-space:nowrap; display:flex; align-items:center; gap:4px;
    text-decoration:none;
}
.nav-list > li > a:hover, .sub-btn:hover { color:var(--forest); background:var(--cream); }
.nav-cta > a { background:var(--amber); color:#fff !important; margin-left:10px; border-radius:var(--radius); padding:10px 18px !important; font-weight:600; }
.nav-cta > a:hover { background:var(--amber-light); color:#fff !important; }
.nav-book > a { background:transparent; color:var(--forest) !important; border:1.5px solid var(--border); margin-left:6px; border-radius:var(--radius); padding:9px 14px !important; font-weight:600; font-size:13.5px !important; }
.nav-book > a:hover { border-color:var(--forest); background:var(--cream); }

/* Sub-nav */
.sub-nav { display:none; position:absolute; top:calc(100% + 4px); left:0; background:#fff; border-radius:8px; min-width:230px; box-shadow:0 6px 32px rgba(0,0,0,.12); z-index:100; overflow:hidden; border:1.5px solid var(--border); list-style:none; }
.has-sub.open > .sub-nav { display:block; }
.sub-nav li a { display:block; padding:12px 20px; color:var(--text-body); font-size:15px; border-bottom:1px solid var(--cream); transition:background .15s; text-decoration:none; }
.sub-nav li:last-child a { border-bottom:none; }
.sub-nav li a:hover { background:var(--cream); color:var(--forest); }

/* Mobile */
.menu-btn { display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:8px; }
.menu-btn span { display:block; width:22px; height:2px; background:var(--text); border-radius:2px; }
#site-nav { display:flex; align-items:center; }

@media(max-width:768px) {
    .menu-btn { display:flex; }
    #site-nav { display:none; position:absolute; top:76px; left:0; right:0; background:#fff; border-bottom:1.5px solid var(--border); box-shadow:0 4px 20px rgba(0,0,0,.1); z-index:998; max-height:calc(100vh - 76px); overflow-y:auto; }
    #site-nav.open { display:block; }
    .nav-list { flex-direction:column; padding:8px 0; align-items:stretch; }
    .nav-list > li { border-bottom:1px solid var(--cream); }
    .nav-list > li > a, .sub-btn { padding:14px 20px; font-size:16px; width:100%; justify-content:space-between; }
    .sub-nav { position:static; box-shadow:none; border-radius:0; border:none; border-top:1px solid var(--cream); background:var(--cream); min-width:100%; }
    .has-sub.open > .sub-nav { display:block; }
    .sub-nav li a { padding:12px 28px; -webkit-tap-highlight-color:rgba(58,90,58,.15); }
    .nav-cta > a, .nav-book > a { margin:0 !important; border-radius:0 !important; padding:14px 20px !important; font-size:15px !important; border:none !important; }
    #masthead { position:relative; }
}

/* ── SKIP LINK ── */
.skip-link { position:absolute; top:-48px; left:0; background:var(--amber); color:#fff; padding:10px 20px; z-index:9999; }
.skip-link:focus { top:0; }

/* ── FOOTER EXTRAS ── */
.ft-logo { border-radius:50%; object-fit:cover; border:2px solid rgba(255,255,255,.15); }
.ft-addr { color:rgba(255,255,255,.90); font-size:14px; margin-top:12px; line-height:1.8; }
.ft-addr a { color:rgba(255,255,255,.75); }
.ft-book { color:rgba(255,255,255,.8) !important; font-weight:600; }

/* ── AUD STRIP ── */
.aud-item { text-decoration:none; }
.aud-item:hover { background:rgba(255,255,255,.08); }

/* ── FAQ EXTRA FIXES ── */
.faq-question {
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
}
.faq-question:hover { color: var(--forest); }
.faq-tog {
  font-size: 22px;
  line-height: 1;
  min-width: 28px;
  text-align: center;
  color: var(--forest);
  font-weight: 400;
  flex-shrink: 0;
  transition: transform .25s;
}
.faq-item.open .faq-tog { color: var(--amber); }

/* ── BTN OUTLINE DARK ── */
.btn-ol-w {
  background: transparent;
  color: #fff;
  border: 1.5px solid rgba(255,255,255,.6);
}
.btn-ol-w:hover {
  border-color: #fff;
  background: rgba(255,255,255,.12);
  color: #fff;
}

/* ── HERO EYEBROW ── */
.hero-ey {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(255,255,255,.72);
  margin-bottom: 22px;
  font-weight: 600;
  font-family: var(--fb);
}
.hero-ey::before, .hero-ey::after {
  content: '';
  display: block;
  width: 28px;
  height: 1px;
  background: rgba(255,255,255,.4);
}

/* ── MASTHEAD POSITION FIX ── */
#masthead { position: sticky; top: 0; z-index: 999; }
@media(max-width:768px) { #masthead { position: relative; } }


/* ── FOOTER READABILITY OVERRIDES ── */
#colophon { color: rgba(255,255,255,.88) !important; }
#colophon p { color: rgba(255,255,255,.88) !important; }
#colophon h3, #colophon h4 { color: #fff !important; }
#colophon a { color: rgba(255,255,255,.88) !important; }
#colophon a:hover { color: #fff !important; }
.footer-brand p { color: rgba(255,255,255,.88) !important; }
.ft-col ul li a { color: rgba(255,255,255,.85) !important; }
.footer-bottom { color: rgba(255,255,255,.78) !important; }
.footer-legal a { color: rgba(255,255,255,.75) !important; }
.footer-legal a:hover { color: #fff !important; }
.ft-addr, .ft-addr a { color: rgba(255,255,255,.88) !important; }

/* ── TOPBAR FULL WHITE ── */
#topbar, #topbar * { color: #fff !important; }
#topbar a { color: #fff !important; }
#topbar a:hover { color: rgba(255,255,255,.8) !important; }

/* ── HERO TEXT ALWAYS VISIBLE ── */
.hero h1 { text-shadow: 0 2px 20px rgba(0,0,0,.4); }
.hero-sub { text-shadow: 0 1px 8px rgba(0,0,0,.3); }

/* ── FOOTER GRID FORCE ── */
.footer-grid {
  display: grid !important;
  grid-template-columns: 2fr 1fr 1fr 1fr !important;
  gap: 40px !important;
  padding-bottom: 40px;
  width: 100%;
}
@media(min-width:901px) {
  .footer-grid { grid-template-columns: 2fr 1fr 1fr 1fr !important; }
}
@media(max-width:900px) {
  .footer-grid { grid-template-columns: 1fr 1fr !important; }
}
@media(max-width:540px) {
  .footer-grid { grid-template-columns: 1fr !important; }
}

/* ── LANG SWITCHER 3 BUTTONS ── */
.lang-sw { display:flex; gap:6px; }
.lang-sw .lb { min-width:32px; text-align:center; }
