/* #######################################################################
 * 🐢 TPL — Home CSS
 * Version: v6.0.3
 * Change: Keep Turtle hero + Stories, restore Products accordion styles
 ####################################################################### */
.u-green{color:var(--t-green)}
.lead{color:var(--t-muted);max-width:62ch}

/* Masthead (About hero) */
.masthead{
  max-width:1200px;margin:36px auto 8px;padding:0 20px;
  display:grid;grid-template-columns:1.2fr .8fr;gap:36px;align-items:center
}
.masthead h1{font-size:clamp(28px,4.2vw,48px);line-height:1.15;margin:0 0 18px}
.masthead .copy{display:flex;flex-direction:column;gap:18px}

/* Hero card (Turtle green gradient) */
.hero-card{
  height:360px;border-radius:18px;overflow:hidden;
  background:linear-gradient(135deg,#e9f7ec 0%, #f3fcf6 45%, #e3f6ea 100%);
  box-shadow:0 10px 30px rgba(0,0,0,.06)
}
@media (max-width:960px){ .masthead{grid-template-columns:1fr;gap:22px} .hero-card{height:300px} }

/* Stories section */
.stories{max-width:1200px;margin:48px auto;padding:0 20px}
.stories h2{font-size:clamp(20px,2.6vw,28px);margin:0 0 16px;color:var(--t-green)}
.story-grid{
  list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px
}
.story-grid a{
  display:flex;flex-direction:column;gap:8px;padding:12px;
  border:1px solid #d6eedd;border-radius:12px;
  background:linear-gradient(135deg,#f8fcf9 0%,#ecf9f0 100%);
  box-shadow:0 4px 12px rgba(26,143,61,.06);
  transition:box-shadow .25s ease, transform .25s ease
}
.story-grid a:hover{box-shadow:0 8px 18px rgba(26,143,61,.1);transform:translateY(-2px);text-decoration:none}
.story-grid .thumb{height:120px;background:#e9f7ec;border-radius:8px}
.story-grid .title{font-weight:600;color:var(--t-fg)}
.story-grid .read{color:var(--t-green);font-weight:600}
@media (max-width:960px){ .story-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:600px){ .story-grid{grid-template-columns:1fr} }

/* Products page (RESTORED) */
.products-hero{max-width:1100px;margin:24px auto 8px;padding:0 20px}
.products-hero h1{font-size:44px;margin:6px 0 12px}
.products-accordion{max-width:1100px;margin:0 auto 36px;padding:0 20px}
.fold{
  width:100%;display:flex;justify-content:space-between;align-items:center;
  padding:14px;border:1px solid #dadce0;background:#fff;border-radius:10px;
  margin:12px 0;cursor:pointer
}
.fold .caret{
  width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;
  border-top:8px solid var(--t-fg);transition:transform .18s
}
.fold.open .caret{transform:rotate(180deg)}
.product-list{
  list-style:none;margin:0 0 12px 0;padding:0;display:none;
  grid-template-columns:repeat(3,1fr);gap:12px
}
.product-list.show{display:grid}
.product-list a{display:block;padding:12px;border:1px solid #dadce0;border-radius:10px;background:#fff}

/* Login button (extracted from turtle.onl home.css) */
.tn-login{
  background: var(--t-green);
  color: #fff;
  border-radius: 22px;
  padding: 8px 16px;
  display: inline-block;
}
.tn-login:hover{
  background: var(--t-green-600);
  text-decoration: none;
}

/* ============================================================
   SLOT 3: LEAP FROG HERO (auto billboard placeholder)
   ============================================================ */

.lf-hero{
  max-width:1200px;
  margin:16px auto 48px;
  padding:0 20px;
}

.lf-hero-inner{
  border-radius:24px;
  overflow:hidden;
  /* same soft Turtle green gradient, just taller area */
  background:linear-gradient(135deg,#e3f7e8 0%,#e8f7ff 50%,#ddeff3 100%);
  box-shadow:0 18px 40px rgba(0,0,0,.10);
  min-height:clamp(320px, 45vw, 480px); /* << KEY: more hero height */
}

/* when real slides arrive, img will auto-fill */
.lf-hero-inner .lf-slide picture,
.lf-hero-inner .lf-slide img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

/* ============================================================
   SLOT 4: LIVING MOSAIC #1 — WEBSTER
   ============================================================ */

.lm{
  max-width:1200px;
  margin:0 auto 64px;
  padding:0 20px;
}

.lm-inner{
  display:grid;
  grid-template-columns:minmax(260px, 320px) minmax(0,1fr);
  column-gap:24px;
  align-items:stretch; /* <- grid column with tiles matches manny height */
}

/* Manny column */
.lm-manny{
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 18px 40px rgba(0,0,0,.20);
  background:#000;
}

/* keep Websters “larger than life” height */
.lm-manny img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

@media (min-width:960px){
  .lm-manny{ min-height:440px; } /* controls overall mosaic height */
}

/* Tiles column */
.lm-grid{
  display:grid;
  height:100%; /* stretch to same top/bottom as manny */
  grid-template-columns:2fr 1.5fr 1.2fr;
  grid-template-rows:repeat(3, 1fr);
  gap:12px;
}

/* Dark emerald gradient tiles */
.lm-tile{
  border-radius:20px;
  background:radial-gradient(circle at 0 0,#0e4727,#02130b);
  box-shadow:0 14px 32px rgba(0,0,0,.45);
}

/* 5-piece offset mosaic that fills the whole column height */
.lm-tile--wide{
  grid-column:1 / 3;
  grid-row:1 / 2;
}

.lm-tile--tall{
  grid-column:3 / 4;
  grid-row:1 / 3;
}

.lm-tile--pillar{
  grid-column:1 / 2;
  grid-row:2 / 4;
}

.lm-tile--short{
  grid-column:2 / 3;
  grid-row:2 / 3;
}

.lm-tile--bar{
  grid-column:2 / 4;
  grid-row:3 / 4;
}

/* Mobile: stack manny above tiles */
@media (max-width:959px){
  .lm-inner{
    grid-template-columns:1fr;
    row-gap:24px;
  }
  .lm-manny{
    max-width:320px;
    margin:0 auto;
    min-height:380px;
  }
  .lm-grid{
    height:auto;
    grid-template-columns:repeat(2,1fr);
    grid-template-rows:none;
  }
  .lm-tile--wide,
  .lm-tile--tall,
  .lm-tile--pillar,
  .lm-tile--short,
  .lm-tile--bar{
    grid-column:auto;
    grid-row:auto;
  }
}

/* Character palettes for each living mosaic */
.lm--webster .lm-tile{
  /* already matches what you liked for Webster, just making it explicit */
  background:radial-gradient(circle at 0 0,#0e4727,#02130b);
}

/* Rogue – deeper, moodier teal/purple band */
.lm--rogue .lm-tile{
  background:radial-gradient(circle at 0 0,#143653,#050814);
}

/* King Savvy – warm gold/amber band */
.lm--king .lm-tile{
  background:radial-gradient(circle at 0 0,#7b3f05,#1f1205);
}

/* ==========================================================
   SLOT 5: CINEMATIC HERO LOOP (Cinematic_Hero_Loop)
   ========================================================== */

.ch-hero{
  max-width:1200px;
  margin:40px auto 56px;
  padding:0 20px;
}

.ch-hero-inner{
  position:relative;
  border-radius:24px;
  overflow:hidden;
  box-shadow:0 18px 45px rgba(0,0,0,.18);
}

/* Firehouse-red gradient background
   Works whether you use ::before or a .ch-hero-bg div */
.ch-hero-inner::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(
    135deg,
    #ffb3a0 0%,
    #ff7043 40%,
    #b71c1c 100%
  );
  z-index:0;              /* bottom layer */
  pointer-events:none;
}

.ch-hero-bg{
  position:absolute;
  inset:0;
  background:linear-gradient(
    135deg,
    #ffb3a0 0%,
    #ff7043 40%,
    #b71c1c 100%
  );
  z-index:0;
  pointer-events:none;
}

/* Video stage */
.ch-hero-player{
  position:relative;
  width:100%;
  padding-top:56.25%;     /* 16:9 */
  z-index:2;              /* FORCE above any gradient */
}

.ch-hero-player iframe,
.ch-hero-player video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  display:block;
}

/* Controls overlay */
.ch-hero-controls{
  position:absolute;
  right:18px;
  bottom:16px;
  display:flex;
  gap:10px;
  z-index:3;              /* above video */
}

.ch-btn{
  width:38px;
  height:38px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.45);
  background:rgba(0,0,0,.6);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  padding:0;
}

.ch-btn:hover{
  background:rgba(0,0,0,.78);
}

.ch-btn:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px rgba(26,143,61,.4);
}

/* Icon shapes */

.ch-btn-play::before,
.ch-btn-mute::before{
  content:"";
  display:block;
}

/* Default = playing (show pause icon) */
.ch-btn-play::before{
  width:14px;
  height:14px;
  box-shadow:
    -4px 0 0 0 #fff,
    4px 0 0 0 #fff;
}

/* Paused = triangle play icon */
.ch-btn-play.is-paused::before{
  width:0;
  height:0;
  border-left:14px solid #fff;
  border-top:8px solid transparent;
  border-bottom:8px solid transparent;
  box-shadow:none;
}

/* Mute icon */
.ch-btn-mute::before{
  width:14px;
  height:12px;
  border-radius:2px;
  border:2px solid #fff;
  border-right-width:4px;
  transform:skewX(-10deg);
}

/* Muted slash */
.ch-btn-mute.is-muted::after{
  content:"";
  position:absolute;
  width:18px;
  height:2px;
  background:#ffb3a0;
  transform:rotate(45deg);
}