/*
  Think Differently Academy: the Academy page.

  Loaded after styles.css, so it reuses its tokens, buttons, headings, the
  .tl-card, .tag, .reveal and footer styles. Everything here is layout and
  finish for this one page.

  Without JavaScript the page reads top to bottom: the four weeks sit in a
  swipeable row (or in a row of four on wide screens) and every question is a
  working <details>. Only transform and opacity are animated, and
  prefers-reduced-motion turns the motion off.
*/

/* ------------------------------------------------------------------
   Shared bits
   ------------------------------------------------------------------ */
.inline-link{text-decoration:underline;text-underline-offset:3px;color:var(--blue-dark);font-weight:700}
.inline-link{position:relative}
.inline-link::before{content:"";position:absolute;left:0;right:0;top:50%;height:44px;transform:translateY(-50%)}
.inline-link:hover{color:var(--navy)}

/* A visible placeholder for anything the live site does not settle. */
.confirm{display:flex;align-items:baseline;gap:12px;margin:18px 0 0;padding:10px 14px;border:1px dashed #a3aca6;border-radius:8px;font-size:13px;line-height:1.55;color:#5c6260;background:transparent}
.confirm strong{flex:none;font-family:var(--heading);font-size:10px;font-weight:800;letter-spacing:1.5px;line-height:1.6;text-transform:uppercase;color:var(--blue-dark)}
.confirm>span{min-width:0}

/* ------------------------------------------------------------------
   Hero
   ------------------------------------------------------------------ */
.academy-hero{align-items:center;gap:56px;padding-block:64px 84px}
.academy-hero h1{font-size:clamp(42px,4.8vw,66px)}
.academy-hero .page-lead{max-width:540px}
.academy-hero-copy,.price-card{min-width:0}

.price-card{justify-self:end;width:100%;max-width:400px;padding:30px 28px 24px;background:var(--navy-2);box-shadow:0 0 0 2px var(--yellow),0 26px 56px #00000040}
.price-card .price{font-size:clamp(52px,5.4vw,68px);line-height:1;letter-spacing:-2.5px}
.price-card .meta{margin-top:6px;font-size:14px}
.card-list{display:grid;gap:12px;margin:24px 0 4px;padding-top:22px;border-top:1px solid #ffffff24;font-size:15px;line-height:1.5;color:#dfe5e8}
.card-list li{position:relative;padding-left:28px}
.card-list li::before{content:"";position:absolute;left:5px;top:5px;width:6px;height:11px;border:solid var(--teal);border-width:0 2px 2px 0;transform:rotate(45deg);pointer-events:none}
.card-foot{margin-top:14px;text-align:center}
.card-foot .note{margin:0;font-size:13px;color:#c5cdd0}
.card-foot .text-link{display:inline-flex;align-items:center;justify-content:center;min-width:44px;padding-inline:12px;color:#fff;text-align:center;white-space:normal}

@keyframes academy-in{from{opacity:0;transform:translateY(14px)}}
@media (prefers-reduced-motion:no-preference){
  .academy-hero-copy>*{animation:academy-in .6s ease-out backwards}
  .academy-hero-copy>:nth-child(2){animation-delay:.07s}
  .academy-hero-copy>:nth-child(3){animation-delay:.14s}
  .academy-hero-copy>:nth-child(4){animation-delay:.21s}
  .academy-hero-copy>:nth-child(5){animation-delay:.28s}
  .price-card{animation:academy-in .8s ease-out .15s backwards}
}

/* ------------------------------------------------------------------
   Your first month
   Below 961px: a snapping row of four cards with Previous / Next and dots.
   From 961px: all four in a row, joined by a line.
   ------------------------------------------------------------------ */
.month{background:var(--paper)}

.month-viewport{position:relative;margin-top:40px;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}
.month-viewport::-webkit-scrollbar{display:none}
.month-viewport:focus-visible{outline-offset:2px}
.month-track{position:relative;display:flex;gap:14px;margin:0;padding:6px 0 28px;list-style:none}

.month-card{position:relative;flex:0 0 min(84%,340px);min-width:0;display:flex;flex-direction:column;scroll-snap-align:start;background:var(--navy);color:#fff;border-radius:14px;padding:28px 24px 26px;box-shadow:0 10px 18px #0b1e2922}
/* The current card wears a yellow ring that fades in. */
.month-card::after{content:"";position:absolute;inset:0;border:2px solid var(--yellow);border-radius:14px;opacity:0;transition:opacity .3s ease-out;pointer-events:none}
.month-card.is-current::after{opacity:1}
.js .month-card{opacity:.62;transition:opacity .3s ease-out}
.js .month-card.is-current{opacity:1}

.week-label{margin:0;font-size:10px;font-weight:800;letter-spacing:2px;line-height:1.5;text-transform:uppercase;color:var(--teal)}
.month-card h3{margin:8px 0 20px;font-size:26px;letter-spacing:-.7px;color:#fff}
.week-items{display:grid;gap:18px;font-size:14px;line-height:1.55;color:#dfe5e8}
.week-items>li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;align-items:start}
.week-items strong{font-family:var(--heading);font-weight:800;color:#fff}
.live-badge{display:inline-block;margin-right:4px;padding:1px 8px;border-radius:99px;background:var(--yellow);color:var(--navy);font-family:var(--heading);font-size:10px;font-weight:800;letter-spacing:1px;line-height:16px;text-transform:uppercase;vertical-align:1px}

/* Small icons drawn with borders and dots; no images, no emoji. */
.ico{position:relative;display:block;width:28px;height:28px;border-radius:8px;background:#ffffff14;pointer-events:none}
.ico::before,.ico::after{content:"";position:absolute;pointer-events:none}
.ico-course::before{left:8px;top:6px;width:12px;height:16px;border:2px solid var(--teal);border-radius:2px}
.ico-course::after{left:11px;top:11px;width:6px;height:2px;background:var(--teal);box-shadow:0 4px 0 var(--teal)}
.ico-live::before{left:7px;top:7px;width:14px;height:14px;border:2px solid var(--yellow);border-radius:50%}
.ico-live::after{left:11px;top:11px;width:6px;height:6px;border-radius:50%;background:var(--yellow)}
.ico-path::before{left:4px;top:13px;width:20px;height:2px;background:var(--teal)}
.ico-path::after{left:12px;top:12px;width:4px;height:4px;border-radius:50%;background:var(--teal);box-shadow:-8px 0 0 var(--teal),8px 0 0 var(--teal)}
.ico-app::before{left:9px;top:5px;width:10px;height:18px;border:2px solid var(--teal);border-radius:3px}
.ico-app::after{left:12px;top:18px;width:4px;height:2px;background:var(--teal)}
.ico-lib::before{left:7px;top:9px;width:14px;height:2px;background:var(--teal);box-shadow:0 4px 0 var(--teal),0 8px 0 var(--teal)}

/* Controls (only with JavaScript, only for the row) */
.month-controls{display:none}
.js .month-controls{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:2px}
.month-nav{position:relative;display:grid;place-items:center;flex:none;width:44px;height:44px;margin:0;padding:0;border:1.5px solid var(--navy);border-radius:50%;background:transparent;color:var(--navy);cursor:pointer;-webkit-appearance:none;appearance:none;transition:opacity .2s ease-out}
.month-nav:hover{background:var(--navy);color:#fff}
.month-nav[aria-disabled="true"]{opacity:.35;cursor:default}
.month-nav[aria-disabled="true"]:hover{background:transparent;color:var(--navy)}
.chev{display:block;width:9px;height:9px;border:solid currentColor;border-width:2px 2px 0 0;pointer-events:none}
.month-next .chev{transform:translateX(-2px) rotate(45deg)}
.month-prev .chev{transform:translateX(2px) rotate(-135deg)}
.month-dots{display:flex;gap:0}
.month-dots button{position:relative;display:block;width:44px;height:44px;margin:0;padding:0;border:0;background:none;cursor:pointer}
.month-dots .dot{position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:#b3bcb6;pointer-events:none}
.month-dots .dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--yellow);box-shadow:0 0 0 1px var(--navy);transform:scale(0);transition:transform .3s ease-out;pointer-events:none}
.month-dots button[aria-current="true"] .dot::after{transform:scale(1.5)}
.month-dots button:focus-visible,.month-nav:focus-visible{outline-offset:2px}
.month-dots button:focus-visible{outline-offset:-4px}

.month-note{margin:18px 0 0;font-size:14px;line-height:1.6;color:var(--body)}
.month-note a{text-decoration:underline;text-underline-offset:3px;color:var(--blue-dark);font-weight:700}
.month-note+.confirm{margin-top:12px}

@media (min-width:961px){
  .month-viewport{overflow:visible;margin-top:48px;scroll-snap-type:none}
  .month-track{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;padding:44px 0 0}
  .month-card{flex:none;padding:26px 22px 24px;box-shadow:0 18px 34px #0b1e2926;transition:transform .3s ease-out}
  .month-card:hover{transform:translateY(-4px)}
  /* On a wide screen all four are in view, so none is dimmed or ringed. */
  .js .month-card,.js .month-card.is-current{opacity:1}
  .month-card::after{display:none}
  .js .month-controls,.month-controls{display:none}

  /* The line through the four weeks, and a node above each card. */
  .month-track::before,.month-track::after{content:"";position:absolute;pointer-events:none;top:13px;left:12.5%;right:12.5%;height:2px}
  .month-track::before{background:var(--line)}
  .month-track::after{background:var(--blue);transform-origin:left center}
  .month-card::before{content:"";position:absolute;pointer-events:none;left:50%;top:-37px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#fff;border:2px solid var(--blue)}
}

/* The line draws and the nodes pop in as the strip arrives. */
@media (min-width:961px) and (prefers-reduced-motion:no-preference){
  .month-track::after{transition:transform 1.3s ease-out .25s}
  .month-card::before{transition:transform .4s ease-out}
  .month-card:nth-child(1)::before{transition-delay:.15s}
  .month-card:nth-child(2)::before{transition-delay:.55s}
  .month-card:nth-child(3)::before{transition-delay:.95s}
  .month-card:nth-child(4)::before{transition-delay:1.35s}
  .js .month-viewport:not(.in) .month-track::after{transform:scaleX(0)}
  .js .month-viewport:not(.in) .month-card::before{transform:scale(0)}
}

/* ------------------------------------------------------------------
   What's inside
   ------------------------------------------------------------------ */
.academy-inside{background:var(--sand)}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:48px}
.tile{position:relative;display:flex;flex-direction:column;min-width:0;overflow:hidden;border-radius:14px;background:#fff;box-shadow:0 10px 30px #0b1e2914;transition:transform .3s ease-out}
.tile:hover,.js .tile.reveal.in:hover{transform:translateY(-4px)}
/* Once a tile has finished arriving, its transition is handed to the hover lift (academy.js). */
.js .tile.reveal.settled{transition:transform .3s ease-out,opacity .5s ease-out;transition-delay:0s}

.tile-media{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--navy-2)}
.tile-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%;pointer-events:none}
.tile .tag{position:absolute;z-index:1;left:14px;top:14px;padding:5px 12px;border-radius:99px;background:var(--yellow);color:var(--navy);font-size:10px;font-weight:800;letter-spacing:1px;line-height:1.5;text-transform:uppercase;pointer-events:none}
.tile-body{flex:1 1 auto;padding:20px 22px 24px}
.tile-body h3{margin:0 0 6px;font-size:20px;letter-spacing:-.4px;color:var(--ink)}
.tile-body p{margin:0;font-size:14px;line-height:1.6;color:var(--body)}

.tile-dark{background:var(--navy);box-shadow:0 16px 36px #0b1e2933}
.tile-dark .tile-body h3{color:#fff}
.tile-dark .tile-body p{color:#c5cdd0}
.tile-live .tile-body{background:var(--blue)}
.tile-live .tile-body h3{color:var(--yellow)}
.tile-live .tile-body p{color:#fff}

/* The pathway tiles have no photo: concentric rings, in the hero's language. */
.art{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;pointer-events:none}
.art::before,.art::after{content:"";position:absolute;left:50%;top:50%;border:1px solid #b6dac04d;border-radius:50%;pointer-events:none}
.art::before{width:240px;height:240px;margin:-120px 0 0 -120px}
.art::after{width:150px;height:150px;margin:-75px 0 0 -75px}
.art-freedom{background:var(--navy-2)}
.art-reclaim{background:var(--blue-dark)}
.art-label{position:relative;z-index:1;font-family:var(--heading);font-size:11px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;color:var(--yellow);pointer-events:none}

.also{margin:28px 0 0;font-size:14px;line-height:1.7;color:var(--body)}
.also strong{display:block;margin-bottom:2px;font-family:var(--heading);font-size:11px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--blue-dark)}

/* ------------------------------------------------------------------
   How it works: compact numbered rows, after the journey timeline
   ------------------------------------------------------------------ */
.how{background:var(--paper)}
.hw{position:relative;margin:48px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}
.hw-row{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr) minmax(0,1.2fr);gap:32px;align-items:start;padding-block:32px}
.hw-row+.hw-row{border-top:1px solid var(--line)}
.hw-row::before{content:"";position:absolute;pointer-events:none;left:35px;top:0;bottom:0;width:2px;background:var(--line)}
.hw-num{position:relative;z-index:1;display:block;padding-block:2px;background:var(--paper);font-family:var(--heading);font-size:44px;font-weight:900;line-height:1;text-align:center;color:var(--blue)}
.hw-row h3{margin:0;font-size:22px;letter-spacing:-.5px;line-height:1.3}
.hw-text p{margin:0;font-size:16px}
.hw-text p+p{margin-top:0}
.hw-text .confirm{margin-top:14px}

/* ------------------------------------------------------------------
   Stories: two editorial cards, quote above, byline pinned to the bottom
   ------------------------------------------------------------------ */
.academy-stories{background:var(--sand)}
.stories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:48px}
.story{position:relative;display:flex;flex-direction:column;min-width:0;margin:0;padding:64px 36px 30px;border-radius:14px;background:#fff;box-shadow:0 10px 30px #0b1e2914}
.story::before{content:"\201C";content:"\201C" / "";position:absolute;left:32px;top:18px;font-family:var(--heading);font-size:84px;font-weight:900;line-height:1;color:var(--yellow);pointer-events:none}
.story blockquote{margin:0}
.story blockquote p{margin:0;font-family:var(--heading);font-size:20px;font-weight:600;line-height:1.5;color:var(--ink)}
.story-short blockquote p{font-size:clamp(26px,2.6vw,34px);line-height:1.3;letter-spacing:-.6px}
.story figcaption{margin-top:auto;padding-top:26px;font-size:12px;font-weight:800;letter-spacing:1px;line-height:1.5;text-transform:uppercase;font-family:var(--heading);color:var(--blue-dark)}
.story blockquote+figcaption{margin-top:auto}
.story blockquote{margin-bottom:26px}

/* ------------------------------------------------------------------
   Questions
   ------------------------------------------------------------------ */
.faq{background:var(--paper)}
.faq-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:70px;align-items:start}
.faq-head p:last-child{max-width:320px;margin-top:20px;font-size:15px}
.faq-list{min-width:0;border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;padding:14px 4px;list-style:none;cursor:pointer;font-family:var(--heading);font-size:18px;font-weight:800;line-height:1.35;color:var(--ink);-webkit-tap-highlight-color:transparent}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::marker{content:""}
.faq-item summary:hover{color:var(--blue-dark)}
.faq-item summary:focus-visible{outline:3px solid #c7413e;outline-offset:-3px;border-radius:4px}
.faq-item summary>span:first-child{min-width:0}

/* The plus: two bars. Turning the whole icon a quarter-turn makes a cross. */
.faq-icon{position:relative;flex:none;width:20px;height:20px;transition:transform .3s ease-out;pointer-events:none}
.faq-icon::before,.faq-icon::after{content:"";position:absolute;left:0;top:9px;width:20px;height:2px;border-radius:1px;background:var(--blue);pointer-events:none}
.faq-icon::after{transform:rotate(90deg)}
.faq-item[open] .faq-icon{transform:rotate(45deg)}

.faq-a{max-width:640px;padding:0 44px 26px 4px;font-size:16px;line-height:1.7}
.faq-a p{margin:0}
.faq-a p+p{margin-top:12px}
.faq-a .confirm{margin-top:14px}
.faq-item[open] .faq-a{animation:faq-in .35s ease-out}
@keyframes faq-in{from{opacity:0;transform:translateY(-6px)}}

/* ------------------------------------------------------------------
   Closing band: .stakes, in a single column
   ------------------------------------------------------------------ */
.academy-join{padding-block:96px}
.academy-join .stakes-head{max-width:720px}
.academy-join .join-copy{margin:22px 0 0;font-family:var(--heading);font-size:22px;font-weight:700;color:#fff}

/* ------------------------------------------------------------------
   Narrower screens
   ------------------------------------------------------------------ */
@media (max-width:960px){
  .academy-hero{gap:36px;padding-block:44px 56px}
  .price-card{justify-self:start;max-width:440px}
  .tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .hw-row{grid-template-columns:minmax(0,1fr);gap:10px;padding-block:28px}
  .hw-row::before{display:none}
  .hw-num{background:none;text-align:left;font-size:38px;padding-block:0}
  .stories{gap:16px}
  .faq-layout{grid-template-columns:minmax(0,1fr);gap:36px}
  .academy-join{padding-block:64px}
}
@media (max-width:700px){
  .stories{grid-template-columns:minmax(0,1fr)}
  .story{padding:60px 26px 26px}
  .story::before{left:22px}
}
@media (max-width:600px){
  .tiles{grid-template-columns:minmax(0,1fr)}
  .faq-item summary{font-size:17px}
  .faq-a{padding-right:8px}
  .confirm{flex-direction:column;gap:2px}
  .academy-join .join-copy{font-size:19px}
}

/* ------------------------------------------------------------------
   Reduced motion: everything is already in its final state
   ------------------------------------------------------------------ */
@media (prefers-reduced-motion:reduce){
  .month-card,.month-card::after,.month-nav,.month-dots .dot::after,.tile,.faq-icon{transition:none}
  .month-card:hover,.tile:hover,.js .tile.reveal.in:hover{transform:none}
  .faq-item[open] .faq-a{animation:none}
  .js .month-card{transition:none}
}
