/* ============================================
   DEDOES TRAINING — Design Tokens
   ============================================ */
:root{
  /* Color */
  --bg:        #14110D;   /* warm near-black, base */
  --bg-raise:  #1E1A15;   /* card / panel surface */
  --orange:    #ED7309;   /* brand orange, from Dedoes mark */
  --orange-dim:#C25A00;   /* hover / pressed */
  --text:      #F2EFE9;   /* warm off-white body text */
  --text-dim:  #ADA79C;   /* secondary text */
  --steel:     #B8BEC7;   /* cool steel accent, from barbell/kettlebell */
  --on-orange: #14110D;   /* text placed on orange fields — required for AA */
  --line:      rgba(242,239,233,0.12);

  /* Type */
  --display: "Anton", Impact, sans-serif;
  --body: "Barlow", -apple-system, "Segoe UI", sans-serif;

  /* Scale */
  --step-0: clamp(1rem, 0.95rem + 0.2vw, 1.0625rem);
  --step-1: clamp(1.25rem, 1.15rem + 0.4vw, 1.5rem);
  --step-2: clamp(1.75rem, 1.5rem + 1vw, 2.25rem);
  --step-3: clamp(2.5rem, 2rem + 2vw, 3.75rem);
  --step-4: clamp(3.25rem, 2.4rem + 3.5vw, 5.5rem);

  --maxw: 1180px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--body);
  font-size:var(--step-0);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }
h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:400;
  line-height:1.02;
  letter-spacing:0.01em;
  margin:0 0 0.5em;
  text-wrap:balance;
}
h1{ font-size:var(--step-4); }
h2{ font-size:var(--step-3); }
h3{ font-size:var(--step-2); }
p{ margin:0 0 1em; max-width:62ch; color:var(--text-dim); }
.container{ max-width:var(--maxw); margin:0 auto; padding:0 clamp(1.25rem,4vw,3rem); }

a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid var(--orange);
  outline-offset:3px;
}

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
}

.skip-link{
  position:absolute; left:-999px; top:0;
  background:var(--orange); color:var(--on-orange);
  padding:0.75em 1.25em; z-index:200; font-weight:700;
}
.skip-link:focus{ left:1rem; top:1rem; }

/* ============================================
   Header / Nav
   ============================================ */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(20,17,13,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:0.85rem clamp(1.25rem,4vw,3rem);
  max-width:var(--maxw); margin:0 auto;
}
.brand{ display:flex; align-items:center; gap:0.6rem; text-decoration:none; }
.brand img{ height:44px; width:auto; }
.brand-word{ font-family:var(--display); font-size:1.15rem; letter-spacing:0.03em; color:var(--text); }
.brand-word span{ color:var(--orange); }

.nav-links{ display:flex; align-items:center; gap:2rem; list-style:none; margin:0; padding:0; }
.nav-links a{
  text-decoration:none; color:var(--text-dim);
  font-weight:600; letter-spacing:0.04em; font-size:0.95rem;
  text-transform:uppercase; padding:0.4rem 0.1rem;
  border-bottom:2px solid transparent;
  transition:color 0.15s ease, border-color 0.15s ease;
}
.nav-links a:hover, .nav-links a[aria-current="page"]{ color:var(--text); border-color:var(--orange); }
.nav-cta{
  background:var(--orange); color:var(--on-orange) !important;
  padding:0.6rem 1.1rem; border-radius:2px; border-bottom:none !important;
  font-weight:700;
}
.nav-cta:hover{ background:var(--orange-dim); }

.nav-toggle{
  display:none; background:none; border:1px solid var(--line); color:var(--text);
  width:44px; height:44px; border-radius:2px; cursor:pointer;
  align-items:center; justify-content:center;
}
.nav-toggle svg{ width:22px; height:22px; }

@media (max-width:860px){
  .nav-toggle{ display:flex; }
  .nav-links{
    position:fixed; inset:64px 0 auto 0; flex-direction:column; align-items:stretch;
    background:var(--bg-raise); border-bottom:1px solid var(--line);
    padding:1rem clamp(1.25rem,4vw,3rem) 1.5rem; gap:0.25rem;
    transform:translateY(-8px); opacity:0; pointer-events:none;
    transition:opacity 0.18s ease, transform 0.18s ease;
  }
  .nav-links.open{ opacity:1; transform:translateY(0); pointer-events:auto; }
  .nav-links a{ padding:0.75rem 0; border-bottom:1px solid var(--line); width:100%; }
  .nav-cta{ text-align:center; margin-top:0.5rem; }
}

/* ============================================
   Mountain divider — recurring structural motif
   pulled from the logo's skyline, not decoration
   ============================================ */
.mtn-divider{
  height:64px; background:var(--bg);
  clip-path:polygon(0% 100%,0% 46%,7% 58%,14% 24%,21% 50%,29% 12%,37% 42%,44% 27%,50% 48%,57% 17%,64% 38%,71% 6%,79% 33%,87% 18%,94% 44%,100% 28%,100% 100%);
}
.mtn-divider.on-raise{ background:var(--bg-raise); }
.mtn-divider.flip{ transform:scaleY(-1); }

/* ============================================
   Buttons
   ============================================ */
.btn{
  display:inline-flex; align-items:center; gap:0.5em;
  font-family:var(--body); font-weight:700; font-size:0.95rem;
  text-decoration:none; cursor:pointer; border:none; border-radius:2px;
  padding:0.85em 1.6em; letter-spacing:0.02em;
  transition:background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.btn-primary{ background:var(--orange); color:var(--on-orange); }
.btn-primary:hover{ background:var(--orange-dim); }
.btn-ghost{ background:transparent; color:var(--text); border:1px solid var(--line); }
.btn-ghost:hover{ border-color:var(--orange); color:var(--orange); }
.btn-row{ display:flex; flex-wrap:wrap; gap:0.9rem; margin-top:1.75rem; }

/* ============================================
   Hero
   ============================================ */
.hero{ padding:clamp(3rem,7vw,6rem) 0 4.5rem; position:relative; overflow:hidden; }
.hero-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:3rem; align-items:center; }
.hero-eyebrow{ color:var(--orange); font-weight:700; letter-spacing:0.06em; font-size:0.9rem; margin-bottom:0.9rem; display:block; }
.hero p.lede{ font-size:1.15rem; color:var(--text-dim); }
.hero-art{
  background:var(--bg-raise); border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center; padding:2.5rem;
  clip-path:polygon(6% 0,100% 0,100% 94%,94% 100%,0 100%,0 6%);
}
.hero-art img{ width:100%; max-width:420px; }

@media (max-width:900px){
  .hero-grid{ grid-template-columns:1fr; }
  .hero-art{ order:-1; padding:1.5rem; }
  .hero-art img{ max-width:280px; margin:0 auto; }
}

/* ============================================
   Sections
   ============================================ */
section{ padding:4.5rem 0; }
.section-raise{ background:var(--bg-raise); }
.section-head{ max-width:640px; margin-bottom:2.75rem; }
.section-head p{ margin-bottom:0; }

.card-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; }
@media (max-width:760px){ .card-grid{ grid-template-columns:1fr; } }

.svc-card{
  background:var(--bg); border:1px solid var(--line); border-top:3px solid var(--orange);
  padding:2rem; display:flex; flex-direction:column; gap:0.75rem;
  clip-path:polygon(0 0,100% 0,100% 100%,3% 100%,0 88%);
  text-decoration:none;
}
.section-raise .svc-card{ background:var(--bg-raise); }
.svc-card h3{ font-size:1.4rem; color:var(--text); }
.svc-card .tag{ color:var(--steel); font-weight:700; font-size:0.82rem; letter-spacing:0.05em; text-transform:uppercase; }
.svc-card p{ color:var(--text-dim); margin-bottom:0; }
.svc-card .arrow{ color:var(--orange); font-weight:700; margin-top:0.5rem; }

.stage-list{ display:grid; gap:1.5rem; counter-reset:stage; }
.stage{ display:grid; grid-template-columns:auto 1fr; gap:1.25rem; align-items:start; }
.stage::before{
  counter-increment:stage; content:counter(stage);
  font-family:var(--display); font-size:1.6rem; color:var(--orange);
  border:1px solid var(--orange); width:2.4rem; height:2.4rem;
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.stage h3{ font-family:var(--body); font-weight:700; font-size:1.05rem; line-height:1.3; letter-spacing:normal; text-wrap:initial; margin-bottom:0.35em; color:var(--text); }
.stage p{ margin-bottom:0; }

.bio-block{
  display:grid; grid-template-columns:0.85fr 1.15fr; gap:2.5rem; align-items:start;
  padding:2.5rem 0; border-top:1px solid var(--line);
}
.bio-block:first-of-type{ border-top:none; }
@media (max-width:760px){ .bio-block{ grid-template-columns:1fr; } }
.photo-placeholder{
  background:var(--bg-raise); border:1px dashed var(--line);
  aspect-ratio:4/5; display:flex; align-items:center; justify-content:center;
  color:var(--text-dim); font-size:0.85rem; text-align:center; padding:1.5rem;
}

.testimonial{ max-width:760px; margin:0 auto; text-align:center; }
.testimonial blockquote{
  font-family:var(--display); font-weight:400; font-size:var(--step-2);
  line-height:1.15; margin:0 0 1.25rem; color:var(--text);
}
.testimonial cite{ color:var(--orange); font-style:normal; font-weight:700; }

.cred-strip{ display:flex; flex-wrap:wrap; gap:0.75rem; margin-top:1.5rem; }
.cred{ border:1px solid var(--line); padding:0.5rem 1rem; font-size:0.85rem; color:var(--steel); font-weight:600; }

.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:3rem; }
@media (max-width:800px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-item{ margin-bottom:1.75rem; }
.contact-item .label{ display:block; color:var(--orange); font-weight:700; font-size:0.85rem; letter-spacing:0.04em; text-transform:uppercase; margin-bottom:0.35rem; }
.contact-item a, .contact-item p{ font-size:1.1rem; margin:0; color:var(--text); }

.form-field{ margin-bottom:1.25rem; display:flex; flex-direction:column; gap:0.4rem; }
.form-field label{ font-size:0.85rem; font-weight:600; color:var(--text-dim); }
.form-field input, .form-field textarea{
  background:var(--bg-raise); border:1px solid var(--line); color:var(--text);
  padding:0.8em 1em; font-family:var(--body); font-size:1rem; border-radius:2px;
}
.form-field input:focus, .form-field textarea:focus{ border-color:var(--orange); }
.form-note{ font-size:0.85rem; color:var(--text-dim); margin-top:1rem; }

.prog-card{ background:var(--bg); border:1px solid var(--line); padding:2rem; border-top:3px solid var(--steel); }
.section-raise .prog-card{ background:var(--bg-raise); }
.prog-meta{ list-style:none; margin:1.25rem 0; padding:0; display:grid; gap:0.6rem; }
.prog-meta li{ display:flex; gap:0.6rem; color:var(--text-dim); font-size:0.95rem; }
.prog-meta li b{ color:var(--text); min-width:9rem; display:inline-block; font-weight:700; }

.site-footer{ background:#0D0B08; border-top:1px solid var(--line); padding:3rem 0 2rem; }
.footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:2.5rem; margin-bottom:2rem; }
@media (max-width:700px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-grid h3{
  font-family:var(--body); font-weight:700; line-height:normal; text-wrap:initial;
  color:var(--text); font-size:0.85rem; letter-spacing:0.05em; text-transform:uppercase; margin:0 0 1rem;
}
.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.footer-grid ul{ list-style:none; margin:0; padding:0; display:grid; gap:0.6rem; }
.footer-grid a{ color:var(--text-dim); text-decoration:none; font-size:0.95rem; }
.footer-grid a:hover{ color:var(--orange); }
.footer-bottom{
  border-top:1px solid var(--line); padding-top:1.5rem;
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:0.75rem;
  color:var(--text-dim); font-size:0.85rem;
}

.page-hero{ padding:3.5rem 0 3rem; }
.page-hero .hero-eyebrow{ margin-bottom:0.6rem; }
.page-hero h1{ font-size:var(--step-3); }
