/* ─── TOKENS ─────────────────────────────────────────────────────────────── */
:root{
  --cream:#F4EFE6;
  --cream-2:#EBE4D6;
  --ink:#13171F;
  --ink-soft:#2A2F39;
  --muted:#5A5F6A;
  --rule:rgba(19,23,31,.14);
  --brass:#b16442;
  --brass-light:#EDE0BE;



  --black:#000;
  --maroon:#802e25;
  --rocgrotesk:"roc-grotesk", sans-serif;
  --poppins:"Poppins", sans-serif;
  
}

/* ─── RESET / BASE ────────────────────────────────────────────────────────── */
*{box-sizing:border-box}
html,body{background:var(--cream);color:var(--ink);
    font-family:var( --poppins);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
::selection{background:var(--ink);color:var(--cream)}
img{display:block;max-width:100%}

/* ─── NAV ─────────────────────────────────────────────────────────────────── */
.navbar-brand{ width: 185px;}
#mainNav{
  background:rgba(244,239,230,.88);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--rule);
  transition:all .3s;
}
.brand-mark{font-family:var( --rocgrotesk);font-size:21px;font-weight:500;letter-spacing:.01em;color:var(--ink)}
.brand-mark .pipe{color:var(--brass);font-weight:400}
.brand-dot{width:8px;height:8px;border-radius:50%;background:var(--brass);display:inline-block;margin-right:8px;vertical-align:middle}
.nav-link-custom{font-size:15px;color:var(--ink-soft) !important;letter-spacing:.04em;font-weight:500;transition:color .2s;padding:0 !important}
.nav-link-custom:hover{color:var(--maroon) !important}
.nav-cta{
  font-size:13px;font-weight:600;padding:10px 22px;
  border:1.5px solid var(--maroon);border-radius:999px;
  background:var(--maroon);color:#fff !important;
  transition:all .22s;white-space:nowrap;
}
.nav-cta:hover{background:transparent !important;color:var(--maroon) !important}
.navbar-toggler{border:1px solid var(--rule);padding:6px 10px}
.navbar-toggler-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Crect y='5' width='24' height='1.5' rx='1' fill='%2313171F'/%3E%3Crect y='11.25' width='24' height='1.5' rx='1' fill='%2313171F'/%3E%3Crect y='17.5' width='24' height='1.5' rx='1' fill='%2313171F'/%3E%3C/svg%3E")}

/* ─── HERO ────────────────────────────────────────────────────────────────── */
.hero-section{padding:100px 0 130px;position:relative;overflow:hidden}
 
/* video bg */
.hero-video-wrap{
  position:absolute;inset:0;z-index:0;overflow:hidden;
}
.hero-video{
  position:absolute;inset:0;
  width:100%;height:100%;
  object-fit:cover;object-position:center;
  will-change:transform;
}
/* dark tint so text is always readable */
.hero-video-overlay{
  position:absolute;inset:0;
  background:rgba(19,23,31,.55);
}
/* cream fade rising from the bottom — blends into the next section */
.hero-video-gradient{
  position:absolute;inset:0;
  background:linear-gradient(
    to bottom,
    transparent 30%,
    rgba(244,239,230,.18) 70%,
    var(--cream) 100%
  );
}
 
/* text colors flip to light over the dark video */
.hero-section .eyebrow{color:rgba(244,239,230,.72)}
.hero-section .eyebrow::before{background:var(--brass)}
.hero-section .hero-title{color:var(--cream)}
.hero-section .hero-title .it{color:rgba(244,239,230,.78)}
.hero-section .hero-title .pipe{color:var(--brass)}
.hero-section .hero-tagline{color:rgba(244,239,230,.82)}
.hero-section .hero-meta{border-top-color:rgba(244,239,230,.18)}
.hero-section .meta-k{color:rgba(244,239,230,.55)}
.hero-section .meta-v{color:var(--cream)}
.hero-section .meta-v small{color:rgba(244,239,230,.55)}
.hero-section .meta-divider{background:rgba(244,239,230,.18)}
.hero-bg-line{
  position:absolute;top:0;right:12%;width:1px;height:100%;
  background:linear-gradient(to bottom,transparent,var(--rule) 20%,var(--rule) 80%,transparent);
  pointer-events:none;
}
.eyebrow{
  font-family:var(--poppins);font-size:13px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--muted);display:inline-flex;align-items:center;gap:14px;
}
.eyebrow::before{content:"";width:36px;height:1px;background:var(--brass);flex-shrink:0}
.hero-title{
  font-family:var(--serif);font-weight:500;
  font-size:90px;line-height:115px;margin-top:28px;
}
.hero-title .it{font-style:italic;color:var(--ink-soft);font-weight:400}
.hero-title .pipe{color:var(--brass);font-weight:300;margin:0 .04em}
.hero-tagline{
  font-family:var(--serif); 
  font-size:20px;color:var(--ink-soft);
   line-height:30px;
}
.hero-meta{margin-top:72px;padding-top:32px;border-top:1px solid var(--rule)}
.meta-k{font-family:var(--poppins);font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.meta-v{font-family:var(--serif);font-size:32px;font-weight:500;letter-spacing:-.01em;margin-top:10px;line-height:1}
.meta-v small{font-family:var(--poppins);font-size:13px;color:var(--muted);font-weight:400;display:block;margin-top:5px;letter-spacing:0}
.meta-divider{width:1px;background:var(--rule)}

/* ─── SECTION CHROME ──────────────────────────────────────────────────────── */
.section-num{font-family:var( --poppins);font-size:11px;letter-spacing:.22em;color:var(--black);text-transform:uppercase}
.section-title{
  font-family:var( --rocgrotesk);font-weight:500;
  font-size:clamp(36px,4.8vw,64px);letter-spacing:-.015em;line-height:1.02;color:var(--maroon);
}
.section-title .it{font-style:italic; }
.section-divider{width:100%;height:1px;background:var(--rule)}
.sec-dark .section-num{color:#fff;}
.sec-dark .section-title{color:var(--cream)}
.sec-dark .section-title .it{color:rgba(244,239,230,.65)}

/* ─── PHILOSOPHY ──────────────────────────────────────────────────────────── */
.phil-prose p{max-width:540px}
.phil-card{
  background:var(--maroon);color:var(--cream);padding:48px 44px;border-radius:6px;
}
.phil-card .card-label{font-family:var( --poppins);font-size:11px;letter-spacing:.22em;color:var(--cream);text-transform:uppercase}
.phil-card h3{font-family:var( --rocgrotesk);font-weight:500;font-size:29px;margin-top:18px;letter-spacing:-.01em;line-height:1.15;color:var(--cream)}
.phil-card h3 .it{font-style:italic;opacity:.72}
.vision-list{list-style:none;padding:0;margin-top:32px;display:flex;flex-direction:column}
.vision-list li{
  padding:16px 0;border-top:1px solid rgba(244,239,230,.11);
  display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:start;
  font-size:15px;color:rgba(244,239,230,.88);line-height:1.5;
}
.vision-list li:last-child{border-bottom:1px solid rgba(244,239,230,.11)}
.vision-list .n{font-family:var( --poppins);font-size:11px;color:var(--cream);letter-spacing:.1em;padding-top:2px}
.phil-closing{margin-top:32px;font-family:var( --rocgrotesk); font-size:21px;line-height:1.35;color:var(--cream)}

/* ─── OFFERINGS ───────────────────────────────────────────────────────────── */
.offerings-section{
  background:var(--cream-2);
  border-top:1px solid var(--rule);
  border-bottom:1px solid var(--rule);
  padding:120px 0;
}
 
/* lede */
.off-lede{
  font-family:var(--serif);
  font-size:clamp(24px,3.2vw,42px);
  line-height:1.22;font-weight:400;
  letter-spacing:-.01em;
  color:var(--ink);max-width:940px;
}
.off-lede .it{font-style:italic;color:var(--ink-soft)}
 
/* pull quote */
.off-pull{
  grid-template-columns:60px 1fr;
  gap:24px;
  padding:24px 28px;
  background:rgba(196,164,74,.06);
  border-left:2px solid var(--maroon);
   
}
.off-glyph{
  font-family:var(--rocgrotesk);font-style:italic;
  font-size:52px;color:var(--maroon);line-height:1;align-self:start;
}
.off-pull p{
  font-family:var(--rocgrotesk);font-style:italic;
  font-size:22px;line-height:1.42;color:var(--maroon);margin:0;
}
 
/* two-col bordered grid */
.off-two{
  border:1px solid var(--rule);
  overflow:hidden;
}
 
.off-col--right{border-left:1px solid var(--rule)}

















.off-col-inner{padding:44px 40px}
 
.off-col-tag{
  font-family:var(--rocgrotesk);font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--maroon);
  padding-bottom:18px;border-bottom:1px solid var(--rule);
}
.off-col-subtitle{   
  font-size:22px;color:var(--ink);
  margin:18px 0 22px;line-height:1.3;
}
 
/* numbered list — CSS counter, leading-zero */
.off-ol{
  list-style:none;padding:0;margin:0;
  counter-reset:offctr;
  display:flex;flex-direction:column;
}
.off-ol li{
  counter-increment:offctr;
  display:grid;grid-template-columns:36px 1fr;gap:14px;
  align-items:start;
  padding:16px 0;border-top:1px solid var(--rule);
  font-size:15px;line-height:1.55;color:var(--ink-soft);
}
.off-ol li::before{
  content:counter(offctr,decimal-leading-zero);
  font-family:var(--poppins);font-size:13px;
  color:var(--maroon);padding-top:3px;letter-spacing:.04em;
}
 
/* method row */
.off-method-k{
  font-family:var(--poppins);font-size:11px;letter-spacing:.22em;
  color:var(--black);text-transform:uppercase;
  display:block;padding-top:4px;
}
.off-method-intro{
 font-size:26px;line-height:1.4;color:var(--ink);font-weight:500;
}
.off-method-body{
  font-size:17px;line-height:1.7;color:var(--ink-soft);
  max-width:720px;margin:0;
}
 
/* finale */
.off-finale{
  font-family:var(--serif);font-weight:400;
  font-size:clamp(30px,4vw,56px);
  line-height:1.1;letter-spacing:-.02em;
  color:var(--ink);max-width:1000px;
}
.off-finale .it{font-style:italic;color:var(--ink-soft)}

/* ─── METHODOLOGY ─────────────────────────────────────────────────────────── */
.method-section{background:var(--maroon);color:var(--cream)}
.method-intro{font-size:17px;line-height:1.67;color:rgba(244,239,230,.78);max-width:940px}
.arc-banner{
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  padding:22px 28px;border:1px solid rgba(244,239,230,.14);border-radius:4px;
  font-family:var( --poppins);font-size:20px;letter-spacing:.22em;text-transform:uppercase;
}
.arc-from{color:#fff;}
.arc-arr{color:#fff;font-family:var( --poppins);font-size:15px;letter-spacing:0}
.arc-to{color:#fff;}
.phase-row{
  display:grid;grid-template-columns:96px 1fr 1fr;gap:44px;align-items:start;
  padding:44px 0;border-top:1px solid rgba(244,239,230,.12);
}
.phase-row:last-child{border-bottom:1px solid rgba(244,239,230,.12)}
.phase-num{font-family:var( --rocgrotesk);font-size:72px;font-weight:400;line-height:1;color:var(--brass);letter-spacing:-.02em}
.phase-label{font-family:var( --poppins);font-size:13px;letter-spacing:.22em;color:rgba(244,239,230,.5);text-transform:uppercase}
.phase-name{font-family:var( --rocgrotesk);font-weight:500;font-size:34px;margin-top:12px;letter-spacing:-.015em;line-height:1.05;color:var(--cream)}
.phase-name .it{font-style:italic;color:rgba(244,239,230,.65);display:block;font-size:22px;margin-top:5px;font-weight:400}
.phase-desc p{font-size:15px;line-height:1.62;color:rgba(244,239,230,.78)}
.phase-focus-label{font-family:var( --poppins);font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:rgba(244,239,230,.5);display:block;margin-bottom:12px}
.phase-items{list-style:none;padding:0}
.phase-items li{
  padding:10px 0;border-top:1px solid rgba(244,239,230,.1);
  display:grid;grid-template-columns:22px 1fr;gap:10px;
  font-size:14px;color:rgba(244,239,230,.9);line-height:1.45;
}
.phase-items li:first-child{border-top:none;padding-top:0}
.phase-items .mk{font-family:var( --poppins);font-size:15px;color:rgba(244,239,230,.5);padding-top:2px}
/* ══════════ INSTRUCTOR SECTION ══════════ */
  #instructors {
    padding: 120px 0;
    background: var(--cream-2);
    border-top: 1px solid var(--rule);
  }
 
  /* ── Header ── */
  .inst-eyebrow {
    font-family: var(--poppins);
    font-size: 11px;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--maroon);
    display: inline-flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
  }
  .inst-eyebrow::before {
    content: "";
    width: 36px;
    height: 1px;
    background: var(--maroon);
    flex-shrink: 0;
  }
 
  /* ── Cards grid ── */
  .inst-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    margin-top: 60px;
  }

 
  /* ── Card ── */
  .inst-card {
    cursor: pointer;
    background: transparent;
    border: none;
    padding: 0;
    text-align: left;
    width: 100%;
    position: relative;
    transition: transform .35s cubic-bezier(.25,.46,.45,.94);
  }
  .inst-card:hover { transform: translateY(-6px); }
 
  /* Image wrap */
  .inst-img-wrap {
    position: relative;
    width: 100%;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    border-radius: 4px;
    background: var(--cream-2);
    margin-bottom: 24px;
  }
  .inst-img-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to bottom, transparent 45%, rgba(19,23,31,.52) 100%);
    opacity: 0;
    transition: opacity .35s ease;
    border-radius: 4px;
  }
  .inst-card:hover .inst-img-wrap::after { opacity: 1; }
 
  .inst-img-wrap img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
    border-radius: 4px;
    display: block;
    transition: transform .55s cubic-bezier(.25,.46,.45,.94);
  }
  .inst-card:hover .inst-img-wrap img { transform: scale(1.04); }
 
  /* Edit badge (appears on hover) */
  .inst-edit-badge {
    position: absolute;
    bottom: 16px;
    left: 50%;
    transform: translateX(-50%) translateY(6px);
    background: var(--maroon);
    color: var(--cream);
    font-family: var(--poppins);
    font-size: 10px;
    letter-spacing: .16em;
    text-transform: uppercase;
    padding: 8px 20px;
    border-radius: 40px;
    white-space: nowrap;
    opacity: 0;
    transition: opacity .28s ease, transform .28s ease;
    z-index: 3;
    pointer-events: none;
  }
  .inst-card:hover .inst-edit-badge { opacity: 1; transform: translateX(-50%) translateY(0); }
 
  /* Placeholder (no image yet) */
  .inst-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    width: 100%;
    height: 100%;
    border: 1.5px dashed rgba(128,46,37,.3);
    border-radius: 4px;
    background: rgba(128,46,37,.03);
    transition: background .3s;
  }
  .inst-card:hover .inst-placeholder { background: rgba(128,46,37,.07); }
  .inst-placeholder svg { opacity: .35; transition: opacity .3s, transform .3s; }
  .inst-card:hover .inst-placeholder svg { opacity: .6; transform: scale(1.08); }
  .inst-placeholder span {
    font-family: var(--poppins);
    font-size: 10px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--maroon);
    opacity: .55;
  }
 
  /* Card text */
  .inst-name {
    font-family: var(--rocgrotesk);
    font-size: 24px;
    font-weight: 500;
    letter-spacing: -.01em;
    line-height: 1.15;
    color: var(--ink);
    margin-bottom: 4px;
    transition: color .22s;
  }
  .inst-card:hover .inst-name { color: var(--maroon); }
 
  .inst-role {
    font-family: var(--poppins);
    font-size: 10px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--maroon);
    margin-bottom: 12px;
  }
  .inst-role.inst-empty-text { color: var(--muted); opacity: .55; }
 
  .inst-bio {
    font-size: 14.5px;
    line-height: 1.72;
    color: var(--muted);
  }
  .inst-bio.inst-empty-text { font-style: italic; opacity: .5; }
 
  /* Card number */
  .inst-card-num {
    position: absolute;
    top: 0;
    right: 0;
    font-family: var(--poppins);
    font-size: 10px;
    letter-spacing: .12em;
    color: var(--maroon);
    opacity: .35;
    padding: 10px 0;
  }
 
  /* ══════════ MODAL OVERRIDES ══════════ */
  #instModal .modal-content {
    background: var(--cream);
    border: 1px solid var(--rule);
    border-radius: 6px;
    box-shadow: 0 24px 80px rgba(19,23,31,.18);
  }
  #instModal .modal-header {
    border-bottom: 1px solid var(--rule);
    padding: 28px 32px 22px;
    align-items: flex-start;
  }
  #instModal .modal-title {
    font-family: var(--rocgrotesk);
    font-size: 28px;
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--maroon);
    line-height: 1.1;
  }
  #instModal .modal-subtitle {
    font-family: var(--poppins);
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--muted);
    margin-top: 6px;
  }
  #instModal .modal-body { padding: 28px 32px 8px; }
  #instModal .modal-footer {
    border-top: 1px solid var(--rule);
    padding: 16px 32px 26px;
    gap: 12px;
  }
  #instModal .btn-close { filter: invert(.45); }
 
  /* Form labels */
  #instModal .inst-label {
    font-family: var(--poppins);
    font-size: 10px;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--muted);
    display: block;
    margin-bottom: 7px;
  }
  #instModal .form-control {
    background: var(--cream-2);
    border: 1px solid var(--rule);
    border-radius: 4px;
    color: var(--ink);
    font-family: var(--poppins);
    font-size: 14px;
    padding: 11px 14px;
    transition: border-color .2s, box-shadow .2s;
  }
  #instModal .form-control:focus {
    background: var(--cream-2);
    border-color: var(--maroon);
    box-shadow: 0 0 0 3px rgba(128,46,37,.12);
    color: var(--ink);
    outline: none;
  }
  #instModal .form-control::placeholder { color: var(--muted); opacity: .55; }
  #instModal textarea.form-control { resize: vertical; min-height: 100px; }
 
  /* Image upload zone */
  .inst-upload-zone {
    border: 1.5px dashed rgba(128,46,37,.35);
    border-radius: 4px;
    background: rgba(128,46,37,.03);
    padding: 28px 20px;
    text-align: center;
    cursor: pointer;
    transition: background .25s, border-color .25s;
    position: relative;
    overflow: hidden;
  }
  .inst-upload-zone:hover { background: rgba(128,46,37,.07); border-color: rgba(128,46,37,.55); }
  .inst-upload-zone input[type="file"] {
    position: absolute; inset: 0; opacity: 0; cursor: pointer; z-index: 2;
  }
  .inst-upload-icon {
    width: 40px; height: 40px;
    border-radius: 50%;
    background: rgba(128,46,37,.1);
    display: inline-flex; align-items: center; justify-content: center;
    margin-bottom: 10px;
  }
  .inst-upload-zone p {
    font-family: var(--poppins);
    font-size: 12px;
    color: var(--muted);
    margin: 0;
    line-height: 1.6;
  }
  .inst-upload-zone strong { color: var(--maroon); }
  .inst-preview-wrap { display: none; }
  .inst-preview-wrap img {
    width: 100%; max-height: 200px;
    object-fit: cover; object-position: top;
    border-radius: 4px; display: block;
  }
  .inst-preview-remove {
    font-family: var(--poppins);
    font-size: 11px;
    letter-spacing: .12em;
    color: var(--maroon);
    background: none;
    border: none;
    cursor: pointer;
    margin-top: 8px;
    text-decoration: underline;
    text-transform: uppercase;
    opacity: .7;
  }
 
  /* Modal buttons */
  .inst-btn-save {
    font-family: var(--poppins);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .04em;
    padding: 13px 30px;
    border-radius: 999px;
    border: 1.5px solid var(--maroon);
    background: var(--maroon);
    color: var(--cream);
    transition: all .22s;
    cursor: pointer;
  }
  .inst-btn-save:hover { background: transparent; color: var(--maroon); }
 
  .inst-btn-cancel {
    font-family: var(--poppins);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: .04em;
    padding: 13px 24px;
    border-radius: 999px;
    border: 1.5px solid var(--rule);
    background: transparent;
    color: var(--muted);
    transition: all .22s;
    cursor: pointer;
  }
  .inst-btn-cancel:hover { border-color: var(--ink); color: var(--ink); }
 
  /* Filled card indicator */
  .inst-filled-dot {
    position: absolute;
    top: 14px;
    right: 0;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--maroon);
    opacity: 0;
    transition: opacity .3s;
  }
  .inst-card.is-filled .inst-filled-dot { opacity: 1; }







/* ─── FAQ ─────────────────────────────────────────────────────────────────── */
.faq-section{border-top:1px solid var(--rule)}
.faq-bar{border-top:1.5px solid var(--ink)}
.faq-item{border-bottom:1px solid var(--rule)}
.faq-btn{
  width:100%;background:none;border:none;padding:28px 0;
  display:grid;grid-template-columns:56px 1fr 42px;gap:20px;align-items:start;
  cursor:pointer;text-align:left;
}
.faq-btn:hover .faq-q-text{color:var(--maroon)}
.faq-qnum{font-family:var( --poppins);font-size:11px;letter-spacing:.18em;color:var(--maroon);padding-top:8px}
.faq-q-text{
  font-family:var( --rocgrotesk);font-size:clamp(20px,2.2vw,27px);font-weight:500;
  letter-spacing:-.005em;line-height:1.25;color:var(--ink);transition:color .2s;
}
.faq-toggle{
  justify-self:end;width:32px;height:32px;border-radius:50%;border:1px solid var(--ink);
  position:relative;flex-shrink:0;transition:background .25s,border-color .25s;
  display:flex;align-items:center;justify-content:center;
}
.faq-toggle::before,.faq-toggle::after{
  content:"";position:absolute;transition:transform .25s,background .25s;
}
.faq-toggle::before{width:12px;height:1.5px;background:var(--ink)}
.faq-toggle::after{width:1.5px;height:12px;background:var(--ink)}
.faq-btn.open .faq-toggle{background:var(--maroon);border-color:var(--maroon)}
.faq-btn.open .faq-toggle::before,.faq-btn.open .faq-toggle::after{background:var(--cream)}
.faq-btn.open .faq-toggle::after{transform:scaleY(0)}
.faq-body{overflow:hidden;max-height:0;transition:max-height .45s cubic-bezier(.16,1,.3,1)}
.faq-body-inner{
  padding:0 0 32px 76px;
  font-size:16px;line-height:1.72;color:var(--ink-soft);max-width:880px;
}
.faq-body-inner ul{margin-top:14px;list-style:none;padding:0}
.faq-body-inner ul li{
  padding:9px 0 9px 22px;position:relative;
  border-top:1px solid var(--rule);font-size:15px;
}
.faq-body-inner ul li::before{content:"";position:absolute;left:0;top:18px;width:10px;height:1px;background:var(--brass)}

/* ─── APPLY CTA ───────────────────────────────────────────────────────────── */
.apply-section{background:var(--maroon);color:var(--cream);padding:140px 0}
.apply-title{font-family:var( --rocgrotesk);font-weight:500;font-size:clamp(38px,5vw,72px);line-height:1.02;letter-spacing:-.02em;color:var(--cream)}
.apply-title .it{font-style:italic;color:rgba(244,239,230,.68)}
.apply-lede{font-size:17px;line-height:1.65;color:rgba(244,239,230,.78)}
.btn-apply-primary{
  display:inline-flex;align-items:center;gap:10px;
  padding:16px 30px;border-radius:999px;border:1.5px solid var(--cream);
  background:var(--cream);color:var(--ink);font-size:14px;font-weight:600;letter-spacing:.02em;
  transition:all .22s;
}
.btn-apply-primary:hover{background:var(--brass);border-color:var(--brass);color:var(--ink)}
.btn-apply-ghost{
  display:inline-flex;align-items:center;gap:10px;
  padding:16px 30px;border-radius:999px;border:1.5px solid rgba(244,239,230,.4);
  background:transparent;color:var(--cream);font-size:14px;font-weight:600;letter-spacing:.02em;
  transition:all .22s;
}
.btn-apply-ghost:hover{background:rgba(244,239,230,.08);color:var(--cream);}
.btn-arr{display:inline-block;transition:transform .22s}
.btn-apply-primary:hover .btn-arr,.btn-apply-ghost:hover .btn-arr{transform:translateX(4px)}
.price-card{
  border:1px solid rgba(244,239,230,.18);border-radius:6px;
  padding:36px 32px;background:rgba(244,239,230,.03);
}
.price-card-label{font-family:var( --poppins);font-size:13px;letter-spacing:.22em;color:var(--brass);text-transform:uppercase}
.price-card-title{font-family:var( --rocgrotesk);font-size:28px;margin-top:14px;font-weight:500;letter-spacing:-.01em;line-height:1.2;color:var(--cream)}
.price-now{font-family:var( --rocgrotesk);font-size:56px;font-weight:500;color:var(--brass);letter-spacing:-.02em;line-height:1}
.price-was{font-family:var( --rocgrotesk);font-size:22px;color:rgba(244,239,230,.45);text-decoration:line-through}
.price-note{font-family:var( --poppins);font-size:10px;letter-spacing:.18em;color:rgba(244,239,230,.55);text-transform:uppercase;margin-top:8px}
.card-row{padding:13px 0;border-top:1px solid rgba(244,239,230,.12);display:flex;justify-content:space-between;gap:16px;font-size:14px}
.card-row:last-child{border-bottom:1px solid rgba(244,239,230,.12)}
.card-row .k{color:rgba(244,239,230,.6);font-family:var( --poppins);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.card-row .v{color:var(--cream);font-weight:500;text-align:right}

/* ─── FOOTER ──────────────────────────────────────────────────────────────── */
.site-footer{padding:44px 0 52px;border-top:1px solid var(--rule);background:var(--cream)}
.foot-mark{font-family:var( --rocgrotesk);font-size:18px;font-weight:500}
.foot-mark .pipe{color:var(--brass)}
.foot-copy{font-size:11.5px;color:var(--muted);font-family:var( --poppins);letter-spacing:.05em}
.foot-mail{font-size:13px;color:var(--ink);border-bottom:1px solid var(--rule);transition:border-color .2s}
.foot-mail:hover{border-color:var(--brass)}

/* ─── UTILITIES ───────────────────────────────────────────────────────────── */
.brass{color:var(--brass)}
.overflow-clip{overflow:clip}

/* gsap clip wrappers */
.line-wrap{overflow:hidden;display:block}

/* progress bar */
#progress-bar{
  position:fixed;top:0;left:0;height:2px;width:0%;
  background:var(--maroon);z-index:9999;pointer-events:none;
  transition:width .05s linear;
}

/* horizontal rule override */
hr.rule{border:none;border-top:1px solid var(--rule);margin:0}
.text1{ font-size: 50px; line-height: 60px;color: rgba(244,239,230,.78);}
.text2{font-family:var( --rocgrotesk);font-size:26px;line-height:1.4;color:var(--ink);font-weight:500;}
.text2a{font-family:var( --rocgrotesk);font-size:26px;line-height:1.4;color:var(--cream);font-weight:500;}
.text3{font-size: 17.5px;line-height: 1.68; color: var(--ink-soft);}
.text3a{font-size: 17.5px;line-height: 1.68; color: rgba(244,239,230,.78);}
.mrg-btm1{margin-bottom: 50px;}
.mrg-btm2{ margin-bottom: 30px;}
.mrg-btm3{ margin-bottom: 15px;}
.pdg1{ padding: 120px 0px;}
.crsr{ cursor: pointer;}
.jcb{ justify-content: space-between;}
.alc{ align-items: center;}
.btn-close{position: absolute;right: 15px;top: 15px;color: #000;}
.modal-content{padding: 50px;}
 
@media(max-width:991px){
    .inst-grid { grid-template-columns: repeat(2,1fr); }
    .off-col--right{border-left:none;border-top:1px solid var(--rule)}
    .navbar-brand {width: 115px;}
    .navbar-collapse{position: absolute;top: 65px;left: 0px;width: 100%;padding: 30px;background: #f4efe6;}
    .navbar-toggler:focus{ box-shadow: none;}
    .hero-title{font-size: 70px;line-height: 90px;}
    .text1{font-size: 40px;line-height: 50px;}
    .text2,.off-method-intro,.phase-name{font-size: 24px;line-height: 36px;}
    .hero-tagline{font-size: 18px;line-height: 24px; }
    .meta-v{font-size: 20px;line-height: 30px; margin-top: 0px;}
    .meta-v small{line-height: 20px;}
    .phil-prose p{ max-width: 100%;}
    .hero-section,.pdg1,.offerings-section,#instructors,.apply-section{ padding: 80px 0px;}
    .phase-num{ font-size: 55px;}
}

@media(max-width:767px){
  .phase-row{grid-template-columns:1fr !important}
  .faq-body-inner{padding-left:44px}
  .faq-btn{grid-template-columns:40px 1fr 36px;gap:12px}
  .inst-grid { grid-template-columns: 1fr; }
}

@media(max-width:575px){
.hero-title{font-size: 45px;line-height: 60px;}
.text1 {font-size: 30px;line-height: 40px;}


.meta-v small{ margin-top: 0px;}

.hero-meta{ margin-top: 30px;}
.text2,.off-method-intro,.phase-name{font-size: 22px;line-height: 35px;}
.phil-card{ padding: 30px;}
.off-pull{ gap:0px;}
.phase-num{font-size: 45px;line-height: 60px}
.mrg-mb-btm1{ margin-bottom: 30px;}
}