/* ===========================================================
   Self-hosted fonts (no external CDN) — sourced from the
   official open-source repos (Space Grotesk, IBM Plex).
   =========================================================== */
@font-face{
  font-family:"Space Grotesk";
  src:url("/assets/fonts/spacegrotesk.woff2") format("woff2");
  font-weight:300 700;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:"IBM Plex Sans";
  src:url("/assets/fonts/IBMPlexSans-Regular.woff2") format("woff2");
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"IBM Plex Sans";
  src:url("/assets/fonts/IBMPlexSans-Medium.woff2") format("woff2");
  font-weight:500; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"IBM Plex Sans";
  src:url("/assets/fonts/IBMPlexSans-SemiBold.woff2") format("woff2");
  font-weight:600; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"IBM Plex Sans";
  src:url("/assets/fonts/IBMPlexSans-Bold.woff2") format("woff2");
  font-weight:700; font-style:normal; font-display:swap;
}
@font-face{
  font-family:"IBM Plex Mono";
  src:url("/assets/fonts/IBMPlexMono-Medium.woff2") format("woff2");
  font-weight:500; font-style:normal; font-display:swap;
}

/* ===========================================================
   Watch Learn Grow Repeat — design system
   Grounded in the subject: spreadsheet/software training.
   The grid, the cell, the "selected" state — used as real
   structure (wayfinding, the hero signature) not decoration.
   =========================================================== */

:root{
  /* ---- color ---- */
  --paper:      #F5F7F3;
  --surface:    #FFFFFF;
  --ink:        #12241E;
  --ink-soft:   #51625C;
  --ink-faint:  #8A9992;
  --line:       #DCE4DE;
  --line-soft:  #E9EEE8;
  --teal:       #0E6B58;
  --teal-deep:  #0A4F41;
  --teal-wash:  #E7F1EE;
  --amber:      #E39B3B;
  --amber-deep: #B87621;

  /* app-tie accents, used sparingly per topic */
  --excel:      #1C7A43;
  --excel-wash: #E9F5EE;
  --ppt:        #C6491F;
  --ppt-wash:   #FBEBE4;
  --office:     #2657A6;
  --office-wash:#E8EEF8;

  /* ---- type ---- */
  --font-display: "Space Grotesk", ui-sans-serif, system-ui, sans-serif;
  --font-body:    "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
  --font-mono:    "IBM Plex Mono", ui-monospace, "SFMono-Regular", monospace;

  /* ---- layout ---- */
  --radius-sm: 6px;
  --radius: 12px;
  --radius-lg: 20px;
  --maxw: 74rem;
  --shadow-card: 0 1px 2px rgba(18,36,30,.04), 0 8px 24px -12px rgba(18,36,30,.12);
}

*,*:before,*:after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 1.5rem}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  line-height:1.12;
  margin:0 0 .5rem;
  letter-spacing:-.01em;
}
h1{font-size:clamp(2.25rem,4.4vw,3.6rem)}
h2{font-size:clamp(1.6rem,2.6vw,2.25rem)}
h3{font-size:1.2rem}
p{margin:0 0 1rem;color:var(--ink-soft)}
.lede{font-size:1.15rem;line-height:1.55}

.eyebrow{
  display:inline-flex;align-items:center;gap:.4rem;
  font-family:var(--font-mono);
  font-size:.75rem;letter-spacing:.06em;
  color:var(--teal-deep);
  background:var(--teal-wash);
  border:1px solid rgba(14,107,88,.18);
  border-radius:999px;
  padding:.3rem .7rem;
  margin-bottom:1rem;
}
.eyebrow:before{content:"";width:6px;height:6px;border-radius:2px;background:var(--amber)}

/* buttons */
.btn{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--font-body);font-weight:600;font-size:.95rem;
  padding:.75rem 1.3rem;border-radius:var(--radius-sm);
  text-decoration:none;border:1px solid transparent;cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--amber);color:#231404;box-shadow:0 6px 16px -6px rgba(227,155,59,.55)}
.btn-primary:hover{background:var(--amber-deep)}
.btn-outline{background:var(--surface);color:var(--ink);border-color:var(--line)}
.btn-outline:hover{border-color:var(--teal)}
.btn-ghost{background:transparent;color:var(--teal-deep);padding-left:0;padding-right:0}
.btn-ghost:after{content:"→";transition:transform .15s ease}
.btn-ghost:hover:after{transform:translateX(3px)}

/* ---- header ---- */
:root{
  --header-navy: #002060;
  --header-navy-deep: #001440;
}
.site-header{
  position:sticky;top:0;z-index:50;
  background:var(--header-navy);
  border-bottom:1px solid rgba(255,255,255,.08);
}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}
.brand{display:flex;align-items:center;gap:.6rem;text-decoration:none}
.brand-logo {
    display: block;
    max-width: 100%;
    height: auto;
}

nav.main-nav{display:flex;align-items:center;gap:1.6rem}
nav.main-nav a{
  font-size:.92rem;font-weight:500;text-decoration:none;color:rgba(255,255,255,.78);
  position:relative;padding:.2rem 0;
}
nav.main-nav a:hover{color:#fff}
nav.main-nav a.active{color:#fff}
nav.main-nav a.active:after{
  content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:var(--amber);border-radius:2px;
}
.nav-toggle{display:none}

@media (max-width:860px){
  nav.main-nav{
    position:fixed;inset:64px 0 auto 0;background:var(--header-navy);
    flex-direction:column;align-items:flex-start;gap:0;
    border-bottom:1px solid rgba(255,255,255,.08);
    padding:.5rem 1.5rem 1rem;
    transform:translateY(-8px);opacity:0;pointer-events:none;
    transition:transform .18s ease, opacity .18s ease;
  }
  nav.main-nav.open{transform:translateY(0);opacity:1;pointer-events:auto}
  nav.main-nav a{padding:.65rem 0;width:100%;border-bottom:1px solid rgba(255,255,255,.1)}
  .nav-toggle{
    display:inline-flex;align-items:center;justify-content:center;
    width:38px;height:38px;border-radius:8px;border:1px solid rgba(255,255,255,.25);background:transparent;
  }
}

/* ---- hero ---- */
.hero{
  position:relative;overflow:hidden;
  background-image:
    linear-gradient(var(--line-soft) 1px, transparent 1px),
    linear-gradient(90deg, var(--line-soft) 1px, transparent 1px);
  background-size:44px 44px;
  background-position:center -1px;
  -webkit-mask-image:linear-gradient(to bottom, black 55%, transparent 96%);
  mask-image:linear-gradient(to bottom, black 55%, transparent 96%);
}
.hero-inner{
  max-width:var(--maxw);margin:0 auto;padding:4.5rem 1.5rem 5rem;
  display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center;
}
@media (max-width:900px){.hero-inner{grid-template-columns:1fr;padding-top:3rem;padding-bottom:3rem}}
.hero h1{margin-bottom:1rem}
.hero .lede{max-width:34rem;margin-bottom:1.75rem}
.hero-ctas{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:1.5rem}
.hero-meta{display:flex;gap:1.4rem;flex-wrap:wrap;font-family:var(--font-mono);font-size:.78rem;color:var(--ink-faint)}
.hero-meta b{color:var(--ink-soft);font-weight:600}

/* ---- signature: worksheet panel ---- */
.sheet{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card);overflow:hidden;
}
.sheet-bar{
  display:flex;align-items:center;gap:.4rem;
  padding:.6rem .8rem;border-bottom:1px solid var(--line);background:#FBFCFA;
}
.sheet-bar i{width:9px;height:9px;border-radius:50%;background:var(--line)}
.sheet-bar span{margin-left:.5rem;font-family:var(--font-mono);font-size:.72rem;color:var(--ink-faint)}
.sheet-grid{display:grid;grid-template-columns:2rem repeat(4,1fr)}
.sheet-grid .hcell{
  font-family:var(--font-mono);font-size:.68rem;color:var(--ink-faint);
  padding:.5rem .4rem;border-bottom:1px solid var(--line);border-right:1px solid var(--line-soft);
  background:#FBFCFA;text-align:center;
}
.sheet-grid .rownum{
  font-family:var(--font-mono);font-size:.68rem;color:var(--ink-faint);
  padding:.7rem .4rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line-soft);
  background:#FBFCFA;text-align:center;
}
.sheet-grid .cell{
  padding:.7rem .6rem;border-bottom:1px solid var(--line-soft);border-right:1px solid var(--line-soft);
  font-size:.82rem;color:var(--ink-soft);min-height:2.4rem;display:flex;align-items:center;
}
.sheet-grid .cell.dim{color:var(--ink-faint)}
.sheet-grid .cell.play{
  background:var(--amber);color:#231404;font-weight:600;position:relative;
  outline:2px solid var(--teal-deep);outline-offset:-2px;
  display:flex;align-items:center;gap:.4rem;
}
.sheet-grid .cell.play .tri{
  width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:8px solid #231404;
}

/* ---- sections ---- */
section{padding:4.5rem 0}
.section-head{max-width:38rem;margin-bottom:2.5rem}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}

/* topic cards */
.topics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
@media (max-width:860px){.topics-grid{grid-template-columns:1fr}}
.topic-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.75rem 1.6rem 1.6rem;text-decoration:none;color:inherit;display:block;
  box-shadow:var(--shadow-card);
  border-top:3px solid var(--line);
  transition:transform .15s ease, border-color .15s ease;
}
.topic-card:hover{transform:translateY(-3px)}
.topic-card.excel{border-top-color:var(--excel)}
.topic-card.ppt{border-top-color:var(--ppt)}
.topic-card.office{border-top-color:var(--office)}
.topic-icon{
  width:2.6rem;height:2.6rem;border-radius:10px;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-display);font-weight:700;font-size:1.1rem;margin-bottom:1.1rem;
}
.topic-card.excel .topic-icon{background:var(--excel-wash);color:var(--excel)}
.topic-card.ppt .topic-icon{background:var(--ppt-wash);color:var(--ppt)}
.topic-card.office .topic-icon{background:var(--office-wash);color:var(--office)}
.topic-card h3{margin-bottom:.4rem}
.topic-card p{font-size:.92rem;margin-bottom:1rem}
.topic-tag{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-faint)}

/* video embed frame */
.video-frame{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  box-shadow:var(--shadow-card);overflow:hidden;
}
.video-frame .sheet-bar span{color:var(--ink-faint)}
.video-embed{position:relative;padding-top:56.25%;background:#0c1b17}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

.videos-note{
  display:flex;gap:.8rem;align-items:flex-start;
  background:var(--teal-wash);border:1px solid rgba(14,107,88,.18);
  border-radius:var(--radius);padding:1rem 1.2rem;margin-top:1.25rem;font-size:.88rem;color:var(--teal-deep);
}

/* placeholder (topic playlist not wired up yet) */
.coming-soon{
  background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius-lg);
  padding:3rem 2rem;text-align:center;color:var(--ink-soft);
}
.coming-soon .eyebrow{margin-bottom:1rem}

/* CTA band */
.cta-band{
  background:var(--teal-deep);color:#F2F7F5;border-radius:var(--radius-lg);
  padding:3rem 2.5rem;display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;
}
.cta-band h2{color:#fff;margin-bottom:.35rem}
.cta-band p{color:#B9D4CC;margin:0}
.cta-band .btn-outline{background:transparent;border-color:rgba(255,255,255,.35);color:#fff}
.cta-band .btn-outline:hover{border-color:#fff}

/* about page bits */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
@media (max-width:860px){.about-grid{grid-template-columns:1fr}}
.stat-row{display:flex;gap:2rem;margin-top:2rem;flex-wrap:wrap}
.stat b{display:block;font-family:var(--font-display);font-size:1.7rem;color:var(--ink)}
.stat span{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-faint);letter-spacing:.04em}

/* contact */
.contact-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:2.5rem;box-shadow:var(--shadow-card);
}
.contact-row{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;border-bottom:1px solid var(--line-soft)}
.contact-row:last-child{border-bottom:none}
.contact-row .label{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-faint);letter-spacing:.04em}
.contact-row .value{font-weight:600}

.contact-form .form-group{margin-bottom:1.15rem}
.contact-form label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.35rem;color:var(--ink)}
.contact-form input[type=text],
.contact-form input[type=email],
.contact-form select,
.contact-form textarea{
  width:100%;padding:.7rem .8rem;border:1px solid var(--line);border-radius:8px;
  background:var(--surface);font-family:var(--font-body);font-size:.92rem;color:var(--ink);
}
.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{
  outline:none;border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-wash);
}
.contact-form textarea{resize:vertical;min-height:8rem}
.contact-form .hp-field{position:absolute;left:-9999px;top:-9999px}
.form-banner{
  padding:.9rem 1.1rem;border-radius:var(--radius-sm);font-size:.9rem;margin-bottom:1.5rem;display:none;
}
.form-banner.show{display:block}
.form-banner.ok{background:var(--teal-wash);color:var(--teal-deep);border:1px solid rgba(14,107,88,.2)}
.form-banner.err{background:var(--ppt-wash);color:var(--ppt);border:1px solid rgba(198,73,31,.2)}

/* footer */
footer.site-footer{background:var(--header-navy);border-top:1px solid rgba(255,255,255,.08);margin-top:3rem}
footer.site-footer .wrap{
  padding:.75rem 1.5rem 0;display:flex;align-items:flex-start;gap:1.75rem;flex-wrap:wrap;
}
.footer-logo{flex-shrink:0;margin-top:.15rem}
.footer-main{flex:1 1 260px;min-width:0}
.footer-top{
  display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;padding-bottom:.5rem;
}
footer.site-footer h3,
footer.site-footer .brand-name{color:#fff}
footer.site-footer p{color:rgba(255,255,255,.72);margin-bottom:0}
.footer-links{display:flex;gap:1.6rem;flex-wrap:wrap}
.footer-links a{text-decoration:none;color:rgba(255,255,255,.78);font-size:.9rem}
.footer-links a:hover{color:#fff}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,.1);padding:.75rem 0 1.25rem;
  font-family:var(--font-mono);font-size:.72rem;color:rgba(255,255,255,.55);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem;
}

/* page hero (non-home) */
.page-hero{padding:3.5rem 0 1rem}
.page-hero .eyebrow{margin-bottom:1rem}
.page-hero p.lede{max-width:42rem}

.breadcrumb{font-family:var(--font-mono);font-size:.72rem;color:var(--ink-faint);margin-bottom:1rem}
.breadcrumb a{color:var(--ink-faint);text-decoration:none}
.breadcrumb a:hover{color:var(--teal-deep)}

/* ---- video library ---- */
.library-shell{display:flex;align-items:flex-start;max-width:var(--maxw);margin:0 auto;padding:0 1.5rem}
.playlist-rail{
  width:280px;flex:none;position:sticky;top:var(--header-h,64px);
  height:calc(100vh - var(--header-h,64px));overflow-y:auto;
  padding:1.5rem 1.25rem 2rem 0;border-right:1px solid var(--line);
}
.playlist-rail h2{font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);font-family:var(--font-mono);font-weight:500;margin-bottom:.9rem}
.playlist-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem}
.playlist-list button{
  width:100%;text-align:left;background:none;border:none;padding:.55rem .7rem;border-radius:8px;
  font-size:.88rem;color:var(--ink-soft);cursor:pointer;font-family:var(--font-body);
}
.playlist-list button:hover{background:var(--teal-wash);color:var(--ink)}
.playlist-list button.active{background:var(--teal);color:#fff;font-weight:600}
.playlist-list .skel{height:2rem;border-radius:8px;background:linear-gradient(90deg,var(--line-soft),var(--paper),var(--line-soft));background-size:200% 100%;animation:shimmer 1.4s infinite}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

.library-main{flex:1;min-width:0;padding:1.5rem 0 3rem 1.75rem}
.library-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}
.library-toolbar h1{font-size:1.4rem;margin:0}
.library-controls{display:flex;gap:.6rem;align-items:center}
.library-controls input, .library-controls select{
  border:1px solid var(--line);border-radius:8px;padding:.5rem .7rem;font-family:var(--font-body);font-size:.85rem;background:var(--surface);
}
.library-controls input{width:15rem;max-width:40vw}

.video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.25rem}
.video-card{
  text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  cursor:pointer;padding:0;box-shadow:var(--shadow-card);transition:transform .12s ease;
}
.video-card:hover{transform:translateY(-2px)}
.video-card img{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--line-soft)}
.video-card .vc-body{padding:.85rem .9rem 1rem}
.video-card .vc-title{font-size:.9rem;font-weight:600;line-height:1.35;margin-bottom:.3rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.video-card .vc-date{font-family:var(--font-mono);font-size:.7rem;color:var(--ink-faint)}

.library-empty, .library-loading{color:var(--ink-faint);font-size:.9rem;padding:2rem 0}

.player-view{max-width:56rem}
.back-btn{background:none;border:none;color:var(--teal-deep);font-weight:600;font-size:.85rem;cursor:pointer;padding:0;margin-bottom:1rem;display:inline-flex;align-items:center;gap:.3rem}
.back-btn:before{content:"←"}
.player-frame{position:relative;padding-top:56.25%;background:#000;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-card)}
.player-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.player-title{margin-top:1rem;font-size:1.2rem}

.adsense-slot{
  margin-top:1.25rem;min-height:100px;border:1px dashed var(--line);border-radius:var(--radius-sm);
  display:flex;align-items:center;justify-content:center;color:var(--ink-faint);font-family:var(--font-mono);font-size:.72rem;
  background:var(--paper);
}

.transcript-block{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--line)}
.transcript-block h3{font-size:1rem;text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-mono);font-weight:500;color:var(--ink-faint);margin-bottom:1rem}
.transcript-body{font-size:.96rem;line-height:1.75;color:var(--ink-soft)}
.transcript-body img{max-width:100%;border-radius:8px;margin:1rem 0;border:1px solid var(--line)}
.transcript-body p{margin:0 0 1rem}

@media (max-width:900px){
  .library-shell{flex-direction:column;padding:0}
  .playlist-rail{
    width:100%;height:auto;max-height:220px;position:relative;top:0;
    border-right:none;border-bottom:1px solid var(--line);padding:1.25rem 1.5rem;
  }
  .library-main{padding:1.25rem 1.5rem 3rem}
}
