:root {
  --ink: #25302f;
  --muted: #66716f;
  --cream: #f8f4ee;
  --paper: #fffdf9;
  --sage: #728b7d;
  --sage-dark: #3d574c;
  --sage-light: #dce7df;
  --rose: #d9b7aa;
  --sand: #e8dbc9;
  --white: #ffffff;
  --line: rgba(37, 48, 47, .12);
  --shadow: 0 22px 70px rgba(47, 65, 59, .12);
  --radius-xl: 34px;
  --radius-lg: 26px;
  --radius-md: 18px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--ink);
  background: var(--paper);
  line-height: 1.65;
  overflow-x: hidden;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
.container { width: min(1180px, calc(100% - 40px)); margin: 0 auto; }
.section { padding: 108px 0; position: relative; }

.site-header {
  min-height: 100vh;
  background:
    radial-gradient(circle at 78% 15%, rgba(217,183,170,.30), transparent 28%),
    radial-gradient(circle at 8% 72%, rgba(114,139,125,.13), transparent 28%),
    linear-gradient(135deg, #fffdf9 0%, #f5eee6 100%);
  position: relative;
  overflow: hidden;
}
.site-header::after {
  content: "";
  position: absolute;
  width: 520px; height: 520px;
  border: 1px solid rgba(114,139,125,.16);
  border-radius: 50%;
  right: -180px; top: 180px;
  box-shadow: 0 0 0 70px rgba(114,139,125,.04), 0 0 0 140px rgba(114,139,125,.025);
  pointer-events: none;
}
.nav-wrap {
  min-height: 86px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  position: relative;
  z-index: 20;
}
.brand { display: inline-flex; align-items: center; gap: 10px; font-weight: 750; letter-spacing: -.02em; }
.brand-mark { width: 34px; height: 34px; display:grid; place-items:center; border-radius:50%; background:var(--sage-dark); color:white; font-size:14px; }
.main-nav { display: flex; align-items: center; gap: 26px; font-size: 14px; font-weight: 650; color: #4c5a56; }
.main-nav a { position: relative; }
.main-nav a::after { content:""; position:absolute; height:2px; left:0; right:100%; bottom:-7px; background:var(--sage-dark); transition:.25s ease; }
.main-nav a:hover::after { right:0; }
.menu-toggle { display:none; border:0; background:transparent; width:46px; height:46px; border-radius:50%; padding:11px; }
.menu-toggle span { display:block; height:2px; background:var(--ink); margin:5px 0; transition:.25s ease; }

.hero {
  min-height: calc(100vh - 86px);
  display:grid;
  grid-template-columns: 1.02fr .98fr;
  align-items:center;
  gap:64px;
  padding-top: 40px;
  padding-bottom: 84px;
  position: relative;
  z-index:2;
}
.eyebrow { display:inline-block; font-size:12px; text-transform:uppercase; letter-spacing:.18em; font-weight:800; color:var(--sage-dark); margin-bottom:18px; }
.hero h1, .section-heading h2, .training-intro h2, .schedule-copy h2, .closing-card h2 {
  margin:0;
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 500;
  letter-spacing: -.045em;
  line-height: .98;
}
.hero h1 { font-size: clamp(54px, 7.4vw, 104px); max-width: 760px; }
.hero h1 span { color: var(--sage-dark); font-style: italic; }
.hero-lead { max-width: 680px; font-size: 18px; color:var(--muted); margin:30px 0 34px; }
.hero-actions { display:flex; gap:12px; flex-wrap:wrap; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:52px; padding:0 22px; border-radius:999px; font-size:14px; font-weight:750; transition:.25s ease; }
.btn:hover { transform:translateY(-2px); }
.btn.primary { background:var(--sage-dark); color:white; box-shadow:0 15px 30px rgba(61,87,76,.18); }
.btn.ghost { border:1px solid var(--line); background:rgba(255,255,255,.62); }
.btn.light { background:white; color:var(--sage-dark); margin-top:22px; }
.hero-notes { margin-top:34px; display:flex; flex-wrap:wrap; gap:12px; color:#596460; font-size:13px; }
.hero-notes span { padding:9px 12px; border:1px solid rgba(61,87,76,.14); border-radius:999px; background:rgba(255,255,255,.52); }
.hero-visual { min-height:620px; position:relative; }
.orb { position:absolute; border-radius:50%; filter:blur(1px); }
.orb-a { width:390px; height:390px; background:linear-gradient(145deg, rgba(114,139,125,.30), rgba(217,183,170,.22)); top:40px; right:42px; }
.orb-b { width:240px; height:240px; background:rgba(232,219,201,.70); left:30px; bottom:50px; }
.visual-card { position:absolute; background:rgba(255,253,249,.82); backdrop-filter: blur(18px); border:1px solid rgba(255,255,255,.72); border-radius:28px; padding:28px; box-shadow:var(--shadow); }
.visual-card strong { display:block; font-family:Georgia,"Times New Roman",serif; font-size:28px; font-weight:500; line-height:1.05; margin-bottom:12px; }
.visual-card p { margin:0; color:var(--muted); font-size:14px; }
.card-one { width:330px; right:20px; top:126px; }
.card-two { width:300px; left:18px; bottom:92px; }
.mini-label { display:block; text-transform:uppercase; letter-spacing:.16em; font-size:10px; font-weight:800; color:var(--sage-dark); margin-bottom:10px; }
.mini-icon { width:40px; height:40px; border-radius:50%; display:grid; place-items:center; background:var(--sage-light); color:var(--sage-dark); margin-bottom:18px; }
.line-art { position:absolute; width:210px; height:360px; border:1px solid rgba(61,87,76,.22); border-radius:110px 110px 40px 40px; left:165px; top:100px; transform:rotate(18deg); }

.two-col { display:grid; grid-template-columns:.95fr 1.05fr; gap:80px; align-items:start; }
.section-heading h2, .training-intro h2, .schedule-copy h2 { font-size:clamp(40px,5vw,68px); }
.section-heading.centered { text-align:center; max-width:800px; margin:0 auto 54px; }
.intro-copy { font-size:18px; color:var(--muted); }
.intro-copy p { margin:0 0 22px; }
.cards-grid { display:grid; gap:18px; }
.services-grid { grid-template-columns:repeat(4,1fr); margin-top:64px; }
.info-card { min-height:250px; padding:28px; border:1px solid var(--line); border-radius:var(--radius-lg); background:#fff; transition:.25s ease; }
.info-card:hover { transform:translateY(-6px); box-shadow:var(--shadow); border-color:transparent; }
.card-number { display:inline-block; color:var(--sage); font-size:12px; letter-spacing:.14em; margin-bottom:48px; }
.info-card h3 { font-family:Georgia,"Times New Roman",serif; font-size:27px; line-height:1.05; font-weight:500; margin:0 0 14px; }
.info-card p { color:var(--muted); font-size:14px; margin:0; }
.soft-section { background:var(--cream); }
.experience-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.experience-card { padding:34px; border-radius:var(--radius-lg); background:rgba(255,255,255,.76); border:1px solid rgba(37,48,47,.08); min-height:300px; }
.experience-icon { width:62px; height:62px; display:grid; place-items:center; border-radius:18px; background:var(--sage-dark); color:white; font-weight:800; font-size:13px; letter-spacing:.05em; margin-bottom:52px; }
.experience-card h3 { font-family:Georgia,"Times New Roman",serif; font-size:30px; line-height:1.05; font-weight:500; margin:0 0 14px; }
.experience-card p { color:var(--muted); margin:0; }
.training-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; align-items:start; }
.training-intro { position:sticky; top:110px; }
.training-intro p { color:var(--muted); max-width:520px; font-size:17px; }
.training-list { display:grid; gap:14px; }
.training-item { display:grid; grid-template-columns:92px 1fr; gap:22px; align-items:center; padding:26px 28px; border:1px solid var(--line); border-radius:22px; background:white; }
.training-item.featured { background:var(--sage-dark); color:white; }
.training-count { width:64px; height:64px; border-radius:50%; display:grid; place-items:center; background:var(--cream); color:var(--sage-dark); font-family:Georgia,"Times New Roman",serif; font-size:30px; }
.training-item.featured .training-count { background:white; }
.training-item h3 { margin:0; font-family:Georgia,"Times New Roman",serif; font-weight:500; font-size:26px; line-height:1.15; }
.training-item p { margin:6px 0 0; color:inherit; opacity:.78; font-size:14px; }
.certification { margin-top:54px; display:flex; gap:30px; align-items:center; padding:36px 42px; border-radius:var(--radius-xl); background:linear-gradient(135deg, #f2e5da, #edf1ec); }
.cert-mark { flex:0 0 76px; height:76px; display:grid; place-items:center; border-radius:50%; background:white; color:var(--sage-dark); font-size:25px; box-shadow:0 12px 26px rgba(0,0,0,.05); }
.certification h3 { margin:0; font-family:Georgia,"Times New Roman",serif; font-size:32px; font-weight:500; line-height:1.1; }
.certification p { margin:8px 0 0; color:var(--muted); }
.modalities { background:#efe8de; }
.modality-grid { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.modality-card { min-height:380px; padding:38px; border-radius:var(--radius-xl); background:#fff; display:flex; flex-direction:column; justify-content:space-between; }
.modality-card.dark { background:var(--sage-dark); color:white; }
.modality-kicker { text-transform:uppercase; letter-spacing:.16em; font-size:11px; font-weight:800; }
.modality-card h3 { max-width:440px; font-family:Georgia,"Times New Roman",serif; font-size:48px; font-weight:500; line-height:1; margin:0; }
.modality-card p { color:var(--muted); max-width:420px; font-size:17px; }
.modality-card.dark p { color:rgba(255,255,255,.72); }
.modality-foot { font-size:13px; opacity:.68; }
.schedule-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; align-items:center; }
.schedule-copy p { color:var(--muted); max-width:520px; font-size:17px; }
.schedule-card { border-radius:var(--radius-xl); border:1px solid var(--line); overflow:hidden; background:white; box-shadow:var(--shadow); }
.schedule-row { padding:28px 32px; border-bottom:1px solid var(--line); }
.schedule-row:last-child { border-bottom:0; }
.schedule-row.muted { background:var(--cream); }
.day { display:block; font-weight:800; margin-bottom:9px; }
.time { display:block; color:var(--muted); font-size:15px; }
.closing-section { padding:30px 0 90px; }
.closing-card { text-align:center; padding:80px 50px; background:var(--sage-dark); color:white; border-radius:42px; position:relative; overflow:hidden; }
.closing-card::before, .closing-card::after { content:""; position:absolute; border-radius:50%; border:1px solid rgba(255,255,255,.12); }
.closing-card::before { width:360px; height:360px; left:-150px; top:-120px; }
.closing-card::after { width:450px; height:450px; right:-210px; bottom:-260px; }
.closing-card .eyebrow { color:#dce7df; }
.closing-card h2 { font-size:clamp(42px,5.5vw,74px); max-width:880px; margin:0 auto; }
.closing-card p { max-width:700px; margin:24px auto 0; color:rgba(255,255,255,.72); font-size:17px; }
.footer { padding:32px 0 42px; border-top:1px solid var(--line); }
.footer-wrap { display:flex; justify-content:space-between; gap:24px; color:var(--muted); font-size:13px; }
.footer-wrap strong { display:block; color:var(--ink); margin-bottom:3px; }
.footer-meta { text-align:right; }

.reveal { opacity:1; transform:none; transition:transform .35s ease, box-shadow .35s ease; }
.reveal.in-view { opacity:1; transform:none; }

@media (max-width: 980px) {
  .menu-toggle { display:block; position:relative; z-index:25; }
  .main-nav { position:fixed; inset:0; background:rgba(255,253,249,.98); flex-direction:column; justify-content:center; gap:26px; font-size:22px; opacity:0; pointer-events:none; transform:translateY(-10px); transition:.25s ease; }
  .main-nav.open { opacity:1; pointer-events:auto; transform:none; }
  .menu-toggle.active span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
  .menu-toggle.active span:nth-child(2) { opacity:0; }
  .menu-toggle.active span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
  .hero { grid-template-columns:1fr; gap:16px; padding-top:56px; }
  .hero-visual { min-height:500px; }
  .two-col, .training-layout, .schedule-layout { grid-template-columns:1fr; gap:46px; }
  .training-intro { position:static; }
  .services-grid { grid-template-columns:repeat(2,1fr); }
  .experience-grid { grid-template-columns:1fr; }
  .modality-card h3 { font-size:40px; }
}

@media (max-width: 680px) {
  .container { width:min(100% - 28px,1180px); }
  .section { padding:78px 0; }
  .nav-wrap { min-height:72px; }
  .brand span:last-child { max-width:180px; line-height:1.1; }
  .hero { min-height:auto; padding-top:48px; padding-bottom:50px; }
  .hero h1 { font-size:clamp(50px,14vw,72px); }
  .hero-lead { font-size:16px; }
  .hero-actions { flex-direction:column; align-items:stretch; }
  .hero-visual { min-height:420px; }
  .orb-a { width:300px; height:300px; right:-30px; }
  .orb-b { width:170px; height:170px; left:-20px; bottom:34px; }
  .card-one { width:min(82%,300px); right:0; top:72px; }
  .card-two { width:min(78%,270px); left:0; bottom:26px; }
  .line-art { width:150px; height:280px; left:34%; top:68px; }
  .services-grid, .modality-grid { grid-template-columns:1fr; }
  .info-card { min-height:auto; }
  .card-number { margin-bottom:32px; }
  .experience-card { min-height:auto; }
  .experience-icon { margin-bottom:36px; }
  .training-item { grid-template-columns:68px 1fr; padding:22px; }
  .training-count { width:54px; height:54px; font-size:26px; }
  .training-item h3 { font-size:22px; }
  .certification { flex-direction:column; align-items:flex-start; padding:30px 24px; }
  .modality-card { min-height:330px; padding:30px 24px; }
  .modality-card h3 { font-size:36px; }
  .schedule-row { padding:24px; }
  .closing-card { padding:62px 22px; border-radius:30px; }
  .footer-wrap { flex-direction:column; }
  .footer-meta { text-align:left; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; }
  .reveal { opacity:1; transform:none; }
}
