/* ============================================================
   Aworinde Tutoring — brand stylesheet
   Palette pulled from the company mark: cream, sage, ink, terracotta.
   Display: Fraunces · Body: Work Sans · Clinical-track utility: IBM Plex Mono
   ============================================================ */

:root{
  /* --- brand tokens (warm / tutoring register, default) --- */
  --cream:        #E7E0D0;
  --paper:        #FBF8F2;
  --paper-line:   #DED5C2;
  --sage:         #5F7D7D;
  --sage-deep:    #3B5252;
  --sage-soft:    #DCE6E4;
  --ink:          #232323;
  --ink-soft:     #5B584E;
  --ink-faint:    #918C7D;
  --terracotta:   #8B5E4F;
  --terracotta-soft: #EADBD3;
  --gold:         #B8863B;

  --radius-sm: 6px;
  --radius: 14px;
  --radius-lg: 26px;
  --max: 1120px;

  --font-display: 'Fraunces', Georgia, serif;
  --font-body: 'Work Sans', -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, monospace;

  --shadow-sm: 0 1px 2px rgba(35,35,35,0.06);
  --shadow: 0 8px 28px rgba(35,35,35,0.08);
}

/* Clinical-track theme: cooler, quieter, borrows the simulator's clinical-paper feel
   without copying it outright. Applied via [data-theme="clinical"] on <body>. */
body[data-theme="clinical"]{
  --cream:        #EEF1F0;
  --paper:        #FFFFFF;
  --paper-line:   #D6DEDC;
  --sage-soft:    #E3EBE9;
  --ink-soft:     #4C5754;
  --terracotta:   #7A5648;
}

*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin: 0;
  background: var(--cream);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
img{ max-width: 100%; display: block; }
a{ color: inherit; }
h1,h2,h3,h4{
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.12;
  margin: 0 0 0.5em;
  letter-spacing: -0.01em;
  color: var(--ink);
}
p{ margin: 0 0 1em; }
.container{ max-width: var(--max); margin: 0 auto; padding: 0 24px; }
.eyebrow{
  font-family: var(--font-mono);
  font-size: 12.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--sage-deep);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
}
.eyebrow::before{
  content: "";
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--terracotta);
  display: inline-block;
}
:focus-visible{ outline: 3px solid var(--gold); outline-offset: 3px; }

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

/* ---------------- Buttons ---------------- */
.btn{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-weight: 600;
  font-size: 15.5px;
  padding: 13px 24px;
  border-radius: 999px;
  text-decoration: none;
  border: 1.5px solid transparent;
  cursor: pointer;
  transition: transform .15s ease, background .15s ease, border-color .15s ease;
}
.btn:hover{ transform: translateY(-1px); }
.btn-primary{ background: var(--ink); color: var(--paper); }
.btn-primary:hover{ background: var(--sage-deep); }
.btn-outline{ background: transparent; color: var(--ink); border-color: var(--ink-faint); }
.btn-outline:hover{ border-color: var(--ink); }
.btn-sm{ padding: 9px 18px; font-size: 14px; }

/* ---------------- Header / nav — floating pill ---------------- */
header.site{
  position: sticky; top: 16px; z-index: 50;
  padding: 0 20px;
}
.nav-row{
  display: flex; align-items: center; justify-content: space-between;
  padding: 8px 8px 8px 20px;
  max-width: var(--max); margin: 0 auto;
  gap: 20px;
  background: rgba(251,248,242,0.82);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(35,35,35,0.07);
  border-radius: 999px;
  box-shadow: 0 10px 30px rgba(35,35,35,0.09);
  position: relative;
}
body[data-theme="clinical"] .nav-row{ background: rgba(255,255,255,0.85); }
.brand{ display: flex; align-items: center; gap: 10px; text-decoration: none; }
.brand img{ width: 34px; height: 34px; border-radius: 50%; }
.brand span{
  font-family: var(--font-display); font-weight: 600; font-size: 17px; color: var(--ink);
}
nav.links{ display: flex; align-items: center; gap: 20px; }
nav.links a{
  text-decoration: none; font-size: 14px; font-weight: 500; color: var(--ink-soft);
  padding: 6px 2px; border-bottom: 2px solid transparent; white-space: nowrap;
}
nav.links a:hover, nav.links a.active{ color: var(--ink); border-color: var(--terracotta); }
.nav-cta{ display: flex; align-items: center; gap: 18px; }

#nav-toggle{ display: none; }
.nav-toggle-label{ display: none; cursor: pointer; padding: 6px; }
.nav-toggle-label span, .nav-toggle-label span::before, .nav-toggle-label span::after{
  display: block; width: 24px; height: 2px; background: var(--ink); position: relative; transition: .2s;
}
.nav-toggle-label span::before, .nav-toggle-label span::after{ content:""; position:absolute; left:0; }
.nav-toggle-label span::before{ top: -7px; }
.nav-toggle-label span::after{ top: 7px; }

@media (max-width: 860px){
  nav.links{
    display: none;
    position: absolute; top: calc(100% + 10px); left: 0; right: 0;
    background: var(--paper); border: 1px solid var(--paper-line);
    border-radius: 20px; box-shadow: 0 14px 30px rgba(35,35,35,0.12);
    flex-direction: column; align-items: flex-start; gap: 2px; padding: 12px 22px 16px;
  }
  #nav-toggle:checked ~ nav.links{ display: flex; }
  nav.links a{ padding: 10px 0; width: 100%; border-bottom: none; }
  .nav-toggle-label{ display: block; }
  .nav-cta .btn span.long{ display:none; }
}

/* ---------------- Hero ---------------- */
.hero{ padding: 76px 0 60px; position: relative; }
.hero-inner{ max-width: 760px; }
.hero h1{ font-size: clamp(34px, 5.2vw, 54px); }
.hero .lede{ font-size: 19px; color: var(--ink-soft); max-width: 56ch; }
.hero-actions{ display: flex; gap: 14px; margin-top: 30px; flex-wrap: wrap; }

/* Hand-marked annotation — the recurring signature device.
   Wrap one emphasised word per hero in <span class="annotate"> */
.annotate{ position: relative; white-space: nowrap; }
.annotate svg{
  position: absolute; left: -4%; right: -4%; bottom: -10px;
  width: 108%; height: 16px; overflow: visible;
}
.annotate svg path{ stroke: var(--terracotta); }

/* ---------------- Sections / generic layout ---------------- */
section{ padding: 64px 0; }
.section-head{ max-width: 640px; margin-bottom: 40px; }
.section-head h2{ font-size: clamp(26px, 3.4vw, 36px); }
.section-head p{ color: var(--ink-soft); font-size: 17px; }

.band{ background: var(--paper); border-top: 1px solid var(--paper-line); border-bottom: 1px solid var(--paper-line); }
.band-sage{ background: var(--sage-soft); }

/* ---------------- Bento grid (home page tracks) — mixed tile sizes, photo-led ---------------- */
.bento{
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 18px;
}
.bento-tile.large{ grid-column: 1; grid-row: 1 / span 2; }
.bento-tile.med-a{ grid-column: 2; grid-row: 1; }
.bento-tile.med-b{ grid-column: 3; grid-row: 1; }
.bento-tile.cta{ grid-column: 2 / span 2; grid-row: 2; }
@media (max-width: 900px){
  .bento{ grid-template-columns: 1fr; }
  .bento-tile.large, .bento-tile.med-a, .bento-tile.med-b, .bento-tile.cta{ grid-column: 1; grid-row: auto; }
}

.bento-tile{
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
  min-height: 240px;
  display: flex; align-items: flex-end;
  text-decoration: none; color: #fff;
  box-shadow: var(--shadow-sm);
  transition: transform .25s ease, box-shadow .25s ease;
}
.bento-tile.large{ min-height: 500px; }
.bento-tile:hover{ transform: translateY(-4px); box-shadow: var(--shadow); }
.bento-tile img{
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  transition: transform .6s ease;
}
.bento-tile:hover img{ transform: scale(1.06); }
.bento-tile .scrim{
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,18,16,0) 32%, rgba(20,18,16,0.82) 100%);
}
.bento-tile .content{ position: relative; z-index: 2; padding: 24px; }
.bento-tile .tag{
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  color: #fff; background: rgba(255,255,255,0.18); border: 1px solid rgba(255,255,255,0.3);
  padding: 4px 10px; border-radius: 999px; display: inline-block; margin-bottom: 12px; backdrop-filter: blur(4px);
}
.bento-tile h3{ color: #fff; font-size: clamp(19px, 2.2vw, 24px); margin-bottom: 6px; }
.bento-tile p{ color: rgba(255,255,255,0.86); font-size: 14.5px; margin-bottom: 0; max-width: 34ch; }
.bento-tile .go{ color: #fff; font-weight: 600; font-size: 13.5px; margin-top: 12px; display: inline-block; }

.bento-tile.cta{
  background: var(--ink); color: var(--cream);
  align-items: center;
  min-height: auto;
}
.bento-tile.cta .content{ display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; width: 100%; }
.bento-tile.cta h3{ font-size: 19px; margin-bottom: 4px; }
.bento-tile.cta p{ color: #C9C4B4; font-size: 14px; max-width: none; }

/* ---------------- Photo hero (subpages) — text one side, crisp photo the other ---------------- */
.hero-split{ display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 44px; align-items: center; }
.hero-split .photo{
  position: relative; border-radius: var(--radius-lg); overflow: hidden;
  aspect-ratio: 4 / 5; box-shadow: var(--shadow);
}
.hero-split .photo img{ width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 900px){
  .hero-split{ grid-template-columns: 1fr; gap: 26px; }
  .hero-split .photo{ order: -1; aspect-ratio: 16 / 9; }
}

/* ---------------- Feature / detail rows ---------------- */
.grid-2{ display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 48px; align-items: center; }
@media (max-width: 860px){ .grid-2{ grid-template-columns: 1fr; gap: 28px; } }

.check-list{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.check-list li{ display: flex; gap: 12px; align-items: flex-start; font-size: 16px; color: var(--ink-soft); }
.check-list .mark{
  flex: none; width: 22px; height: 22px; border-radius: 50%;
  background: var(--sage-soft); color: var(--sage-deep);
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; margin-top: 2px;
}

.pill-row{ display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0; }
.pill{
  font-family: var(--font-mono); font-size: 13px; padding: 7px 14px; border-radius: 999px;
  background: var(--paper); border: 1px solid var(--paper-line); color: var(--ink-soft);
}

/* ---------------- Stat strip (clinical track) ---------------- */
.stat-strip{ display: flex; gap: 40px; flex-wrap: wrap; padding: 28px 0; }
.stat{ font-family: var(--font-mono); }
.stat .n{ font-size: 28px; color: var(--ink); font-weight: 600; }
.stat .l{ font-size: 12.5px; color: var(--ink-faint); text-transform: uppercase; letter-spacing: 0.08em; }

/* ---------------- Quote / testimonial-style panel ---------------- */
.panel{
  background: var(--paper); border: 1px solid var(--paper-line); border-radius: var(--radius);
  padding: 30px 32px;
}

/* ---------------- CTA band ---------------- */
.cta-band{
  background: var(--ink); color: var(--cream); border-radius: var(--radius-lg);
  padding: 52px 44px; text-align: center; margin: 0 24px;
}
.cta-band h2{ color: #fff; font-size: clamp(24px, 3.4vw, 32px); }
.cta-band p{ color: #C9C4B4; max-width: 52ch; margin: 0 auto 26px; }
.cta-band .btn-primary{ background: var(--terracotta); color: #fff; }
.cta-band .btn-primary:hover{ background: #A4715F; }
.cta-band .btn-outline{ border-color: rgba(255,255,255,0.35); color: #fff; }

/* ---------------- Footer ---------------- */
footer.site{ border-top: 1px solid var(--paper-line); padding: 44px 0 30px; margin-top: 20px; }
.footer-row{ display: flex; justify-content: space-between; flex-wrap: wrap; gap: 24px; }
.footer-brand{ display: flex; align-items: center; gap: 10px; }
.footer-brand img{ width: 28px; height: 28px; border-radius: 50%; }
.footer-brand span{ font-family: var(--font-display); font-weight: 600; }
.footer-links{ display: flex; gap: 26px; flex-wrap: wrap; }
.footer-links a{ text-decoration: none; color: var(--ink-soft); font-size: 14.5px; }
.footer-links a:hover{ color: var(--ink); }
.footer-fine{ color: var(--ink-faint); font-size: 13px; margin-top: 26px; }

/* ---------------- Clinical-track grid texture (used only on that page's hero) --- */
.clinical-grid{
  background-image: linear-gradient(var(--paper-line) 1px, transparent 1px), linear-gradient(90deg, var(--paper-line) 1px, transparent 1px);
  background-size: 26px 26px;
}

/* ---------------- Motion: scroll reveal ---------------- */
.reveal{ opacity: 0; transform: translateY(22px); transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.is-visible{ opacity: 1; transform: none; }
.reveal-delay-1{ transition-delay: .08s; }
.reveal-delay-2{ transition-delay: .16s; }
.reveal-delay-3{ transition-delay: .24s; }
.reveal-delay-4{ transition-delay: .32s; }

/* ---------------- Motion: nav tightens on scroll ---------------- */
.nav-row{ transition: box-shadow .3s ease, padding .3s ease, background .3s ease; }
header.site.scrolled .nav-row{
  padding: 6px 6px 6px 18px;
  box-shadow: 0 14px 34px rgba(35,35,35,0.14);
  background: rgba(251,248,242,0.94);
}
body[data-theme="clinical"] header.site.scrolled .nav-row{ background: rgba(255,255,255,0.94); }

/* ---------------- Motion: floating / tiltable tiles ---------------- */
.tilt{
  transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease;
  transform-style: preserve-3d;
  will-change: transform;
}
.tilt:hover{ box-shadow: 0 26px 50px rgba(35,35,35,0.16), 0 8px 20px rgba(35,35,35,0.10); }
body[data-theme="clinical"] .tilt:hover{ box-shadow: 0 26px 50px rgba(59,82,82,0.18), 0 8px 20px rgba(35,35,35,0.08); }
.bento-tile.cta.tilt:hover{ box-shadow: 0 26px 50px rgba(35,35,35,0.35); }

/* Ambient idle float — used on hero photos, not on tilt elements (avoids fighting transforms) */
.float-idle{ animation: floatY 6s ease-in-out infinite; }
.float-idle-slow{ animation: floatY 7.5s ease-in-out infinite; animation-delay: .4s; }
@keyframes floatY{
  0%, 100%{ transform: translateY(0); }
  50%{ transform: translateY(-12px); }
}
@media (prefers-reduced-motion: reduce){
  .float-idle, .float-idle-slow{ animation: none; }
}
