@font-face { font-family: "Caveat"; src: url("/fonts/caveat-700.woff2") format("woff2"); font-weight: 700; font-display: swap; }

/* Review-card styles (.s4-*) extracted from index.css so /reviews shares the homepage design. */

@media (max-width: 768px) {

  .s4-head { display: grid !important; grid-template-columns: 1fr !important; gap: 16px !important; }

  .s4-head-left { grid-row: 1; }

  .s4-badge { grid-row: 2 !important; justify-self: end !important; align-self: auto !important; }
}


    
    
    

    /* === Scope: every selector below is .s4-* === */
    .s4 {
      /* tokens (mirrored from brand-spec; locally redeclared for fragment portability) */
      --s4-ink: #1F1F1B;
      --s4-ink-soft: #3F3E36;
      --s4-paper: #FFFFFF;
      --s4-paper-deep: #F4F9F1;
      --s4-paper-card: #FFFFFF;
      --s4-green-real: #83C57E;
      --s4-green-deep: #73B96B;
      --s4-green-darker: #00384D;
      --s4-clay: #73B96B;
      --s4-gold: #D89B26;
      --s4-rule: rgba(31,31,27,0.16);

      background: var(--s4-paper-deep);
      color: var(--s4-ink);
      font-family: "Josefin Sans", "Josefin Sans", "Inter", system-ui, sans-serif;
      /* straight-band-shift transition INTO Section 4: hairline at the boundary */
      border-top: 1px solid var(--s4-rule);
      padding: 88px 56px 96px;
      position: relative;
    }


    .s4 *, .s4 *::before, .s4 *::after { box-sizing: border-box; }



    .s4-inner { max-width: 1200px; margin: 0 auto; }



    /* ---------- H2 row with right-aligned mini-badge ---------- */
    .s4-head {
      display: grid;
      grid-template-columns: 1fr auto;
      align-items: end;
      gap: 24px;
      margin-bottom: 14px;
    }


    .s4-head-left { min-width: 0; }


    .s4-eyebrow {
      font-family: "Josefin Sans", "Inter", system-ui, sans-serif;
      font-weight: 700;
      font-size: 14px;
      line-height: 1.3;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      color: var(--s4-green-darker);
      margin: 0 0 14px;
    }


    .s4-h2 {
      font-family: "Josefin Sans", "Josefin Sans", "Inter", system-ui, sans-serif;
      font-weight: 400;
      font-size: 56px;
      line-height: 1.02;
      letter-spacing: -0.005em;
      color: var(--s4-ink);
      margin: 0;
    }



    /* ---------- Average-rating mini-badge (square stamp variant of .hero-stats) ---------- */
    .s4-badge {
      background: rgba(0,56,77,0.95);
      color: var(--s4-paper);
      padding: 12px 16px;
      border-radius: 8px;
      display: inline-flex;
      align-items: center;
      gap: 12px;
      box-shadow: 0 10px 24px rgba(0,56,77,0.22);
      align-self: end;
    }


    .s4-badge .stars {
      color: var(--s4-green-real);
      letter-spacing: 0.10em;
      font-size: 16px;
      line-height: 1;
    }


    .s4-badge .num {
      font-family: "Josefin Sans", "Josefin Sans", "Inter", system-ui, sans-serif;
      font-weight: 400;
      font-size: 28px;
      line-height: 1;
      letter-spacing: -0.01em;
      color: var(--s4-green-real);
    }


    .s4-badge .lbl {
      font-family: "Josefin Sans", "Inter", system-ui, sans-serif;
      font-weight: 700;
      font-size: 10.5px;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--s4-paper);
      line-height: 1.1;
    }



    /* ---------- Intro line ---------- */
    .s4-intro {
      font-family: "Josefin Sans", "Inter", system-ui, sans-serif;
      font-weight: 400;
      font-size: 16px;
      line-height: 1.55;
      color: var(--s4-ink-soft);
      max-width: 680px;
      margin: 0 0 40px;
    }


    .s4-intro strong { color: var(--s4-ink); font-weight: 700; }



    /* ---------- Review grid ---------- */
    .s4-grid {
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 22px;
    }



    /* ---------- Review card link wrapper ---------- */
    .s4-card-link {
      text-decoration: none;
      color: inherit;
      display: block;
      transition: transform 0.18s ease, box-shadow 0.18s ease;
    }


    .s4-card-link:focus-visible {
      outline: 3px solid var(--s4-green-deep);
      outline-offset: 3px;
      border-radius: 10px;
    }


    .s4-card-link:hover { transform: translateY(-2px); }


    .s4-card-link:hover .s4-card { box-shadow: 0 18px 36px rgba(31,31,27,0.18); }



    /* ---------- Review card (locked .review-card vocabulary, taller & quote-led) ---------- */
    .s4-card {
      background: var(--s4-paper-card);
      padding: 26px 24px 22px 30px;
      border-radius: 8px;
      border: 1px solid var(--s4-rule);
      box-shadow: 0 8px 22px rgba(31,31,27,0.10);
      position: relative;
      height: 100%;
      display: flex;
      flex-direction: column;
      transition: box-shadow 0.18s ease;
    }


    .s4-card::before {
      content: "\201C"; /* left double quotation mark */
      position: absolute;
      left: 14px;
      top: 6px;
      font-family: "Caveat", "Brush Script MT", cursive;
      font-weight: 700;
      font-size: 62px;
      line-height: 1;
      color: var(--s4-clay);
      pointer-events: none;
    }



    .s4-stars {
      color: var(--s4-gold);
      letter-spacing: 0.10em;
      font-size: 15px;
      line-height: 1;
      padding-left: 30px;
      margin-bottom: 12px;
    }


    .s4-quote {
      font-family: "Josefin Sans", "Inter", system-ui, sans-serif;
      font-weight: 400;
      font-style: italic;
      font-size: 15.5px;
      line-height: 1.55;
      color: var(--s4-ink);
      padding-left: 30px;
      margin: 0 0 18px;
      flex: 1;
    }


    .s4-meta {
      font-family: "Josefin Sans", "Inter", system-ui, sans-serif;
      font-weight: 500;
      font-size: 12.5px;
      letter-spacing: 0.06em;
      color: var(--s4-ink-soft);
      padding-left: 30px;
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 8px;
      margin: 0;
    }


    .s4-meta-name { font-weight: 700; color: var(--s4-ink); letter-spacing: 0.04em; }


    .s4-source-pill {
      background: var(--s4-green-deep);
      color: var(--s4-paper);
      padding: 2px 8px;
      border-radius: 3px;
      font-weight: 700;
      font-size: 11px;
      letter-spacing: 0.10em;
      text-transform: uppercase;
      margin-left: auto;
    }



    /* ---------- Read-all link ---------- */
    .s4-readall-row { text-align: center; margin-top: 44px; }


    .s4-readall {
      font-family: "Josefin Sans", "Inter", system-ui, sans-serif;
      font-weight: 700;
      font-size: 16px;
      letter-spacing: 0.04em;
      color: var(--s4-green-deep);
      text-decoration: none;
      border-bottom: 1.5px solid transparent;
      padding-bottom: 2px;
      transition: border-color 0.15s, color 0.15s;
    }


    .s4-readall:hover { border-bottom-color: var(--s4-green-deep); }


    .s4-readall:focus-visible {
      outline: 3px solid var(--s4-green-deep);
      outline-offset: 4px;
      border-radius: 2px;
    }


    .s4-readall .arrow { display: inline-block; margin-left: 6px; transition: transform 0.18s; }


    .s4-readall:hover .arrow { transform: translateX(3px); }
