/* ===========================================================
   TRAIN WITH RUPEN — design tokens
   Theme: forged steel / Viking strength-culture, grounded in
   Rupen's real credentials (EREPS L4, NFNA, The Vikings Fitness)
   =========================================================== */

:root{
  /* -- palette -- */
  --ink:        #14120F;   /* forge charcoal — primary background */
  --ink-2:      #1B1815;   /* slightly lifted panel bg */
  --iron-line:  #2E2A24;   /* hairline dividers on dark */
  --bone:       #EEE7D8;   /* warm off-white — primary text on dark */
  --bone-dim:   #B9B0A0;   /* muted text on dark */
  --paper:      #F4EFE4;   /* light section background */
  --paper-line: #DDD3BE;   /* hairline dividers on light */
  --coal:       #201D19;   /* text on light */
  --coal-dim:   #5B564C;   /* muted text on light */
  --ember:      #C43E1C;   /* forge ember — primary accent / CTA */
  --ember-dim:  #8F2E15;
  --steel:      #5C7080;   /* cold steel — secondary accent */
  --steel-light:#9FB0BB;
  --gold:       #B08D57;   /* metallic — certification / badge accent */

  /* -- type -- */
  --font-display: 'Anton', 'Arial Narrow', sans-serif;
  --font-body: 'Inter', -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', 'Courier New', monospace;

  /* -- scale -- */
  --gutter: clamp(1.25rem, 4vw, 4rem);
  --radius: 2px;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html,body{ margin:0; padding:0; }
body{
  background:var(--ink);
  color:var(--bone);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
input,textarea,select{ font-family:inherit; font-size:1rem; }

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

:focus-visible{
  outline:2px solid var(--ember);
  outline-offset:3px;
}

.wrap{
  max-width:1240px;
  margin:0 auto;
  padding-left:var(--gutter);
  padding-right:var(--gutter);
}

.section{ padding:clamp(3.5rem,8vw,7rem) 0; }
.section--light{ background:var(--paper); color:var(--coal); }
.section--dark{ background:var(--ink); color:var(--bone); }
.section--panel{ background:var(--ink-2); color:var(--bone); }

/* -- eyebrow / mono labels -- */
.eyebrow{
  font-family:var(--font-mono);
  font-size:.72rem;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ember);
  display:inline-flex;
  align-items:center;
  gap:.6em;
  margin:0 0 1rem;
}
.eyebrow::before{
  content:"";
  width:22px; height:2px;
  background:var(--ember);
  display:inline-block;
}
.section--light .eyebrow{ color:var(--ember-dim); }

/* -- display headings -- */
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:400;
  text-transform:uppercase;
  letter-spacing:.01em;
  line-height:.98;
  margin:0 0 .5em;
}
h1{ font-size:clamp(2.6rem,7vw,5.6rem); }
h2{ font-size:clamp(2rem,4.6vw,3.4rem); }
h3{ font-size:clamp(1.3rem,2.4vw,1.7rem); }
h4{ font-size:1.05rem; letter-spacing:.04em; }

p{ margin:0 0 1em; }
.lede{ font-size:clamp(1.05rem,1.6vw,1.25rem); color:var(--bone-dim); max-width:56ch; }
.section--light .lede{ color:var(--coal-dim); }

.text-ember{ color:var(--ember); }
.text-steel{ color:var(--steel); }

/* -- buttons -- */
.btn{
  display:inline-flex;
  align-items:center;
  gap:.6em;
  font-family:var(--font-mono);
  font-size:.82rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  padding:.95em 1.7em;
  border:1px solid transparent;
  border-radius:var(--radius);
  transition:transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); }
.btn-primary{ background:var(--ember); color:var(--bone); }
.btn-primary:hover{ background:#DE4A1F; }
.btn-ghost{ border-color:currentColor; color:var(--bone); }
.btn-ghost:hover{ background:var(--bone); color:var(--ink); }
.section--light .btn-ghost{ color:var(--coal); }
.section--light .btn-ghost:hover{ background:var(--coal); color:var(--paper); }
.btn-block{ width:100%; justify-content:center; }

/* ===========================================================
   NAV
   =========================================================== */
.nav{
  position:sticky; top:0; z-index:100;
  background:rgba(20,18,15,.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--iron-line);
}
.nav__row{
  display:flex; align-items:center; justify-content:space-between;
  padding:1.05rem 0;
}
.nav__logo{
  font-family:var(--font-display);
  font-size:1.3rem;
  letter-spacing:.03em;
  display:flex;
  align-items:baseline;
  gap:.4em;
}
.nav__logo span{ color:var(--ember); }
.nav__links{
  display:flex; align-items:center; gap:2.2rem;
  font-family:var(--font-mono);
  font-size:.78rem;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.nav__links a{
  position:relative;
  padding:.3em 0;
  color:var(--bone-dim);
  transition:color .15s ease;
}
.nav__links a:hover, .nav__links a.is-active{ color:var(--bone); }
.nav__links a.is-active::after{
  content:"";
  position:absolute; left:0; right:0; bottom:-4px;
  height:2px; background:var(--ember);
}
.nav__cta{ display:flex; align-items:center; gap:1.2rem; }
.nav__toggle{
  display:none;
  background:none; border:1px solid var(--iron-line);
  width:42px; height:42px;
  align-items:center; justify-content:center;
  color:var(--bone);
}
.nav__toggle svg{ width:20px; height:20px; }

@media (max-width:900px){
  .nav__links{
    position:fixed; inset:64px 0 0 0;
    background:var(--ink);
    flex-direction:column;
    justify-content:flex-start;
    align-items:flex-start;
    gap:0;
    padding:1rem var(--gutter) 2rem;
    transform:translateY(-8px);
    opacity:0;
    pointer-events:none;
    transition:opacity .2s ease, transform .2s ease;
    border-top:1px solid var(--iron-line);
  }
  .nav__links a{ display:block; width:100%; padding:1rem 0; border-bottom:1px solid var(--iron-line); font-size:.9rem; }
  body.nav-open .nav__links{ opacity:1; pointer-events:auto; transform:translateY(0); }
  .nav__toggle{ display:flex; }
  .nav__cta .btn-ghost{ display:none; }
}

/* ===========================================================
   FORGED EDGE — signature divider (jagged steel-tear)
   =========================================================== */
.forged-edge{
  position:relative;
  height:34px;
  background:var(--ink);
}
.forged-edge svg{ width:100%; height:100%; display:block; }
.forged-edge--flip{ transform:scaleY(-1); }

/* ===========================================================
   HERO
   =========================================================== */
.hero{
  position:relative;
  min-height:92vh;
  display:flex; align-items:flex-end;
  background:
    linear-gradient(180deg, rgba(20,18,15,.35) 0%, rgba(20,18,15,.55) 55%, var(--ink) 100%),
    radial-gradient(ellipse at 75% 20%, rgba(196,62,28,.25), transparent 55%),
    var(--ink);
  overflow:hidden;
}
.hero__bg{
  position:absolute; inset:0;
  z-index:0;
}
.hero__bg img{
  width:100%; height:100%; object-fit:cover;
  opacity:.55;
}
.hero__content{
  position:relative; z-index:1;
  padding:8rem 0 5rem;
  width:100%;
}
.hero__tag{
  font-family:var(--font-mono);
  font-size:.78rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--gold);
  margin-bottom:1.4rem;
  display:flex; align-items:center; gap:.7em;
}
.hero__tag::before{ content:"⚔"; font-size:.9em; }
.hero h1{
  color:var(--bone);
  max-width:15ch;
  text-shadow:0 4px 30px rgba(0,0,0,.4);
}
.hero h1 em{
  font-style:normal;
  color:var(--ember);
}
.hero__sub{
  max-width:48ch;
  font-size:clamp(1.05rem,1.7vw,1.3rem);
  color:var(--bone-dim);
  margin:1.4rem 0 2.2rem;
}
.hero__ctas{ display:flex; flex-wrap:wrap; gap:1rem; margin-bottom:3rem; }

.stat-strip{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--iron-line);
  padding-top:2rem;
}
.stat-strip__item{ padding-right:1.5rem; }
.stat-strip__num{
  font-family:var(--font-display);
  font-size:clamp(1.6rem,3.2vw,2.4rem);
  color:var(--bone);
  display:block;
}
.stat-strip__label{
  font-family:var(--font-mono);
  font-size:.7rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--bone-dim);
}
@media (max-width:760px){
  .stat-strip{ grid-template-columns:repeat(2,1fr); row-gap:1.6rem; }
}

/* ===========================================================
   PILLARS / APPROACH
   =========================================================== */
.pillars{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--iron-line);
  border:1px solid var(--iron-line);
  margin-top:3rem;
}
.pillar{
  background:var(--ink);
  padding:2.4rem 2rem;
}
.pillar__mark{
  font-family:var(--font-mono);
  font-size:.75rem;
  color:var(--ember);
  border:1px solid var(--ember);
  width:2.2rem; height:2.2rem;
  display:flex; align-items:center; justify-content:center;
  margin-bottom:1.4rem;
}
.pillar h3{ color:var(--bone); margin-bottom:.6rem; }
.pillar p{ color:var(--bone-dim); font-size:.95rem; margin:0; }
@media (max-width:860px){
  .pillars{ grid-template-columns:1fr; }
}

/* ===========================================================
   TWO-COL FEATURE (coach story / gym story)
   =========================================================== */
.feature{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(2rem,5vw,5rem);
  align-items:center;
}
.feature--reverse{ grid-template-columns:1.15fr .85fr; }
.feature--reverse .feature__media{ order:2; }
.feature__media{ position:relative; }
.feature__media img{ width:100%; aspect-ratio:4/5; object-fit:cover; }
.feature__badge{
  position:absolute; bottom:-1.4rem; left:-1.4rem;
  background:var(--ember); color:var(--bone);
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
  padding:.9rem 1.1rem;
  max-width:200px;
  border:1px solid var(--ink);
}
.feature__list{ margin-top:1.6rem; }
.feature__list li{
  display:flex; gap:.8em;
  padding:.7em 0;
  border-top:1px solid var(--iron-line);
  color:var(--bone-dim);
  font-size:.95rem;
}
.feature__list li:last-child{ border-bottom:1px solid var(--iron-line); }
.feature__list li::before{ content:"—"; color:var(--ember); flex:none; }
.section--light .feature__list li{ border-color:var(--paper-line); color:var(--coal-dim); }
@media (max-width:860px){
  .feature, .feature--reverse{ grid-template-columns:1fr; }
  .feature--reverse .feature__media{ order:0; }
  .feature__badge{ left:1rem; bottom:1rem; }
}

/* ===========================================================
   CERTIFICATION STRIP
   =========================================================== */
.cert-strip{
  display:flex; flex-wrap:wrap; gap:1px;
  background:var(--iron-line);
  border:1px solid var(--iron-line);
}
.cert-card{
  flex:1 1 220px;
  background:var(--ink-2);
  padding:1.8rem;
  display:flex; gap:1rem; align-items:flex-start;
}
.cert-card__icon{
  flex:none; width:44px; height:44px;
  border:1px solid var(--gold); color:var(--gold);
  display:flex; align-items:center; justify-content:center;
}
.cert-card__icon svg{ width:22px; height:22px; }
.cert-card h4{ color:var(--bone); margin-bottom:.3rem; }
.cert-card p{ color:var(--bone-dim); font-size:.88rem; margin:0; }

/* ===========================================================
   GALLERY GRID
   =========================================================== */
.ig-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:6px;
}
.ig-grid a{
  position:relative;
  aspect-ratio:1/1;
  overflow:hidden;
  display:block;
}
.ig-grid img{ width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.ig-grid a:hover img{ transform:scale(1.06); }
.ig-grid a::after{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 60%, rgba(0,0,0,.55));
  opacity:0; transition:opacity .25s ease;
}
.ig-grid a:hover::after{ opacity:1; }
.ig-grid .ig-tag{
  position:absolute; left:.7rem; bottom:.6rem;
  font-family:var(--font-mono); font-size:.68rem; color:var(--bone);
  opacity:0; transform:translateY(6px);
  transition:opacity .25s ease, transform .25s ease;
}
.ig-grid a:hover .ig-tag{ opacity:1; transform:translateY(0); }
@media (max-width:760px){
  .ig-grid{ grid-template-columns:repeat(2,1fr); }
}
.ig-grid--wide a{ aspect-ratio:4/5; }

/* reel card variant */
.reel-card{
  position:relative; aspect-ratio:9/16; overflow:hidden; display:block; background:var(--ink-2);
}
.reel-card img{ width:100%; height:100%; object-fit:cover; }
.reel-card__play{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
}
.reel-card__play span{
  width:52px; height:52px; border-radius:50%;
  background:rgba(20,18,15,.55); border:1px solid rgba(238,231,216,.5);
  display:flex; align-items:center; justify-content:center;
  backdrop-filter:blur(2px);
}
.reel-card__play svg{ width:16px; height:16px; fill:var(--bone); margin-left:2px; }
.reel-card__label{
  position:absolute; left:.7rem; bottom:.7rem; right:.7rem;
  font-family:var(--font-mono); font-size:.66rem; color:var(--bone);
  letter-spacing:.04em;
}

/* ===========================================================
   PROGRAM / PRICING CARDS
   =========================================================== */
.programs-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.4rem;
}
.program-card{
  background:var(--ink-2);
  border:1px solid var(--iron-line);
  padding:2.2rem 1.9rem 2rem;
  display:flex; flex-direction:column;
  position:relative;
}
.program-card--featured{ border-color:var(--ember); }
.program-card__flag{
  position:absolute; top:-1px; right:-1px;
  background:var(--ember); color:var(--bone);
  font-family:var(--font-mono); font-size:.65rem; letter-spacing:.1em; text-transform:uppercase;
  padding:.4rem .7rem;
}
.program-card__name{ font-family:var(--font-mono); font-size:.75rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ember); margin-bottom:.6rem; }
.program-card h3{ color:var(--bone); margin-bottom:.3rem; }
.program-card__price{ font-family:var(--font-display); font-size:2rem; color:var(--bone); margin:.3rem 0 1.2rem; }
.program-card__price span{ font-family:var(--font-mono); font-size:.7rem; color:var(--bone-dim); text-transform:uppercase; margin-left:.4em; }
.program-card ul{ flex:1; margin-bottom:1.6rem; }
.program-card ul li{
  display:flex; gap:.6em; align-items:flex-start;
  font-size:.9rem; color:var(--bone-dim);
  padding:.5em 0;
  border-top:1px solid var(--iron-line);
}
.program-card ul li::before{ content:"✓"; color:var(--ember); flex:none; font-size:.85em; }
@media (max-width:900px){
  .programs-grid{ grid-template-columns:1fr; }
}

/* ===========================================================
   TESTIMONIALS
   =========================================================== */
.testi-track{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.4rem;
}
.testi-card{
  background:var(--paper);
  border:1px solid var(--paper-line);
  padding:2rem 1.8rem;
}
.testi-card__stars{ color:var(--ember); font-family:var(--font-mono); font-size:.85rem; margin-bottom:1rem; letter-spacing:.15em; }
.testi-card p{ color:var(--coal); font-size:.98rem; }
.testi-card__who{ font-family:var(--font-mono); font-size:.75rem; letter-spacing:.06em; text-transform:uppercase; color:var(--coal-dim); margin-top:1rem; }
@media (max-width:900px){ .testi-track{ grid-template-columns:1fr; } }

/* ===========================================================
   FAQ ACCORDION
   =========================================================== */
.faq{ max-width:820px; }
.faq-item{ border-top:1px solid var(--iron-line); }
.faq-item:last-child{ border-bottom:1px solid var(--iron-line); }
.faq-item__q{
  width:100%;
  background:none; border:none; color:inherit;
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  text-align:left;
  padding:1.4rem 0;
  font-family:var(--font-body); font-weight:600; font-size:1.02rem;
  color:var(--bone);
}
.section--light .faq-item__q{ color:var(--coal); }
.faq-item__q .plus{
  flex:none; width:26px; height:26px; border:1px solid var(--ember); color:var(--ember);
  display:flex; align-items:center; justify-content:center; font-family:var(--font-mono); font-size:.9rem;
  transition:transform .2s ease;
}
.faq-item[data-open="true"] .plus{ transform:rotate(45deg); }
.faq-item__a{
  max-height:0; overflow:hidden;
  transition:max-height .3s ease;
  color:var(--bone-dim);
  font-size:.95rem;
}
.section--light .faq-item__a{ color:var(--coal-dim); }
.faq-item__a-inner{ padding-bottom:1.4rem; max-width:64ch; }

/* ===========================================================
   CTA BAND
   =========================================================== */
.cta-band{
  background:var(--ember);
  color:var(--bone);
  padding:clamp(3rem,7vw,5.5rem) 0;
  text-align:center;
}
.cta-band h2{ color:var(--bone); }
.cta-band .lede{ color:rgba(238,231,216,.85); margin-left:auto; margin-right:auto; }
.cta-band .hero__ctas{ justify-content:center; margin-bottom:0; }
.cta-band .btn-ghost{ border-color:var(--bone); color:var(--bone); }
.cta-band .btn-ghost:hover{ background:var(--bone); color:var(--ember-dim); }
.cta-band .btn-primary{ background:var(--ink); }
.cta-band .btn-primary:hover{ background:var(--ink-2); }

/* ===========================================================
   FOOTER
   =========================================================== */
.footer{
  background:var(--ink);
  border-top:1px solid var(--iron-line);
  padding:4rem 0 2rem;
}
.footer__grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:2.5rem;
  padding-bottom:3rem;
}
.footer__logo{ font-family:var(--font-display); font-size:1.5rem; margin-bottom:1rem; }
.footer__logo span{ color:var(--ember); }
.footer p{ color:var(--bone-dim); font-size:.9rem; max-width:32ch; }
.footer h4{ color:var(--bone-dim); font-family:var(--font-mono); font-size:.72rem; letter-spacing:.14em; margin-bottom:1.1rem; }
.footer ul li{ margin-bottom:.7em; }
.footer ul a{ color:var(--bone-dim); font-size:.92rem; transition:color .15s ease; }
.footer ul a:hover{ color:var(--bone); }
.footer__bottom{
  border-top:1px solid var(--iron-line);
  padding-top:1.6rem;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem;
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.05em; color:var(--bone-dim);
}
.footer__socials{ display:flex; gap:1rem; }
.footer__socials a{
  width:36px; height:36px; border:1px solid var(--iron-line);
  display:flex; align-items:center; justify-content:center;
  transition:border-color .15s ease, color .15s ease;
}
.footer__socials a:hover{ border-color:var(--ember); color:var(--ember); }
.footer__socials svg{ width:16px; height:16px; }
@media (max-width:860px){
  .footer__grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:520px){
  .footer__grid{ grid-template-columns:1fr; }
}

/* ===========================================================
   PAGE HEADER (interior pages)
   =========================================================== */
.page-header{
  padding:7rem 0 4rem;
  background:
    linear-gradient(180deg, rgba(20,18,15,.5), var(--ink)),
    radial-gradient(ellipse at 20% 0%, rgba(196,62,28,.22), transparent 55%),
    var(--ink);
  border-bottom:1px solid var(--iron-line);
}
.page-header .eyebrow{ margin-bottom:1rem; }
.page-header h1{ max-width:20ch; }
.breadcrumb{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
  color:var(--bone-dim); margin-bottom:1.4rem;
}
.breadcrumb a{ color:var(--bone-dim); }
.breadcrumb a:hover{ color:var(--ember); }

/* ===========================================================
   FORM (contact page)
   =========================================================== */
.form-grid{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
.form-grid .full{ grid-column:1 / -1; }
.field label{
  display:block; font-family:var(--font-mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase;
  color:var(--bone-dim); margin-bottom:.5rem;
}
.field input, .field select, .field textarea{
  width:100%;
  background:var(--ink);
  border:1px solid var(--iron-line);
  color:var(--bone);
  padding:.85em 1em;
  border-radius:var(--radius);
}
.field textarea{ resize:vertical; min-height:120px; }
.field input:focus, .field textarea:focus, .field select:focus{ border-color:var(--ember); outline:none; }
.form-note{ font-size:.82rem; color:var(--bone-dim); margin-top:.8rem; }
.form-success{
  display:none;
  border:1px solid var(--ember);
  padding:1.2rem 1.4rem;
  font-family:var(--font-mono); font-size:.85rem;
  margin-top:1.2rem;
}
.form-success.is-visible{ display:block; }

/* -- info tiles (contact page) -- */
.info-tiles{ display:grid; gap:1px; background:var(--iron-line); border:1px solid var(--iron-line); }
.info-tile{ background:var(--ink-2); padding:1.6rem 1.8rem; display:flex; gap:1rem; }
.info-tile__icon{ flex:none; width:38px; height:38px; border:1px solid var(--steel); color:var(--steel-light); display:flex; align-items:center; justify-content:center; }
.info-tile__icon svg{ width:18px; height:18px; }
.info-tile h4{ color:var(--bone); margin-bottom:.2rem; }
.info-tile p{ color:var(--bone-dim); font-size:.9rem; margin:0; }
.info-tile a{ color:var(--bone); border-bottom:1px solid var(--ember); }

/* ===========================================================
   MAP PLACEHOLDER
   =========================================================== */
.map-frame{
  aspect-ratio:16/9;
  border:1px solid var(--iron-line);
  overflow:hidden;
}
.map-frame iframe{ width:100%; height:100%; border:0; filter:grayscale(1) invert(.92) contrast(.9); }

/* ===========================================================
   REVEAL ON SCROLL
   =========================================================== */
[data-reveal]{
  opacity:0; transform:translateY(18px);
  transition:opacity .6s ease, transform .6s ease;
}
[data-reveal].is-visible{ opacity:1; transform:translateY(0); }

/* ===========================================================
   IMAGE FALLBACK PLACEHOLDER
   =========================================================== */
.img-fallback{
  object-fit:contain !important;
  background:var(--ink-2);
  padding:8%;
}

/* ===========================================================
   UTILITIES
   =========================================================== */
.center{ text-align:center; margin-left:auto; margin-right:auto; }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(1.5rem,4vw,3rem); }
@media (max-width:800px){ .grid-2{ grid-template-columns:1fr; } }
.mt-0{ margin-top:0; }
.section-head{ max-width:640px; margin-bottom:2.6rem; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
