/*
Theme Name: The Daily Plate
Theme URI: https://thedailyplate.blog/
Author: The Daily Plate
Description: Custom theme for The Daily Plate recipe blog
Version: 1.2.14
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: the-daily-plate
Tags: food, recipes, blog, custom-colors, custom-menu, featured-images
*/

      /* Self-hosted fonts (latin subsets, variable weights) — no external font request */
      @font-face{ font-family:"Playfair Display"; font-style:normal; font-weight:500 800; font-display:swap; src:url(assets/fonts/playfair-display.woff2) format("woff2"); }
      @font-face{ font-family:"Playfair Display"; font-style:italic; font-weight:500 600; font-display:swap; src:url(assets/fonts/playfair-display-italic.woff2) format("woff2"); }
      @font-face{ font-family:"Jost"; font-style:normal; font-weight:300 700; font-display:swap; src:url(assets/fonts/jost.woff2) format("woff2"); }
      @font-face{ font-family:"Great Vibes"; font-style:normal; font-weight:400; font-display:swap; src:url(assets/fonts/great-vibes.woff2) format("woff2"); }
      :root{
        --paper:#fdfefb;
        --mint-wash:#eef5ec;
        --mint:#e3efe0;
        --sage:#8fb996;
        --sage-soft:#cfe3cb;
        --leaf:#2e6b4f;
        --deep:#173f2c;
        --deep-2:#0f2f20;
        --ink:#1d2b21;
        --ink-soft:#4c5d51;
        --gold:#b8862e;
        --gold-bright:#d9a83f;
        --gold-pale:#f3e3bb;
        --line:#cfe0cb;
        --gutter:34px;
        --gap:36px;
        --r-lg:14px;
        --r-md:12px;
        --r-sm:10px;
      }
      *{ box-sizing:border-box; }
      html,body{ margin:0; padding:0; }
      body{
        background:
          radial-gradient(1100px 500px at 85% -80px, #dcebd6 0%, rgba(220,235,214,0) 60%),
          radial-gradient(900px 480px at -120px 30%, #e6f1e1 0%, rgba(230,241,225,0) 55%),
          #f4f8f1;
        color:var(--ink);
        font-family:"Jost", "Century Gothic", Futura, system-ui, sans-serif;
        -webkit-font-smoothing:antialiased;
      }
      img{ display:block; max-width:100%; }
      button{ font-family:inherit; cursor:pointer; }
      a{ color:inherit; }

      /* ---------- Site container ---------- */
      .site{ container-type:inline-size; background:var(--paper); }

      /* ---------- Announce bar ---------- */
      .announce{
        background:linear-gradient(90deg, var(--deep-2), var(--deep) 55%, var(--leaf));
        color:#eaf3e6; text-align:center; padding:10px 16px;
        font-size:12.5px; letter-spacing:.22em; text-transform:uppercase; font-weight:500;
        position:relative; display:flex; align-items:center; justify-content:center; min-height:46px;
      }
      .announce b{ color:var(--gold-pale); font-weight:700; }
      .announce .arr{ color:var(--gold-bright); }
      .social-btn{
        width:34px; height:34px; flex:none; border-radius:50%;
        border:1px solid var(--line); background:var(--mint-wash);
        display:grid; place-items:center; color:var(--deep); padding:0;
      }
      .social-btn:hover{ background:var(--gold-bright); border-color:var(--gold); color:#2c1e04; }
      .social-btn svg{ width:16px; height:16px; fill:currentColor; }

      /* ---------- Header ---------- */
      .site-head{
        display:flex; align-items:center; gap:18px;
        padding:18px 34px 14px; border-bottom:1px solid var(--line);
        background:var(--paper); position:relative; flex-wrap:wrap;
      }
      .logo{ font-family:"Great Vibes", "Snell Roundhand", "Brush Script MT", cursive; font-size:40px; line-height:1; color:var(--deep); white-space:nowrap; }
      .logo span{ color:var(--gold); }
      .logo a{ display:inline-flex; }
      .custom-logo{ height:44px; width:auto; display:block; }
      .mainnav{ display:flex; gap:26px; margin:0 auto; flex-wrap:wrap; align-items:center; }
      .nav-search{ width:34px; height:34px; flex:none; margin-left:-6px; }
      .nav-search svg{ width:15px; height:15px; }
      .mainnav a{
        text-decoration:none; font-size:13.5px; letter-spacing:.18em; text-transform:uppercase;
        font-weight:600; color:var(--deep); padding:4px 0; border-bottom:2px solid transparent;
      }
      .mainnav a:hover{ border-color:var(--gold); }
      .head-socials{ display:flex; align-items:center; gap:6px; flex:none; position:absolute; right:10px; top:21px; z-index:2; }
      .icon-btn{
        width:38px; height:38px; border-radius:50%; border:1px solid var(--line);
        background:var(--mint-wash); display:grid; place-items:center; color:var(--deep);
      }
      .icon-btn:hover{ background:var(--mint); }
      .icon-btn svg{ width:17px; height:17px; fill:currentColor; }
      .head-search{
        display:none; width:100%; padding:12px 0 4px;
      }
      .head-search.open{ display:block; }
      .head-search input{
        width:100%; padding:12px 18px; border:1px solid var(--sage); border-radius:999px;
        font-family:inherit; font-size:15px; outline:none; background:#fff; color:var(--ink);
      }
      .head-search input:focus{ border-color:var(--leaf); box-shadow:0 0 0 3px rgba(143,185,150,.3); }

      /* ---------- Tagline + stats ---------- */
      .tagline{ text-align:center; padding:var(--gap) var(--gutter) 0; }
      .tagline .rule{ width:56px; height:2px; background:var(--gold); margin:0 auto 18px; }
      .tagline h1{
        font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-weight:700; color:var(--deep-2);
        font-size:clamp(28px, 4.6cqw, 46px); line-height:1.15; margin:0 auto; max-width:760px;
      }
      .tagline h1 em{ font-style:italic; color:var(--leaf); }
      .tagline p{ color:var(--ink-soft); font-size:16.5px; font-weight:300; margin:14px auto 0; max-width:560px; line-height:1.6; }
      .stats{
        display:flex; justify-content:center; gap:0; flex-wrap:wrap;
        margin:28px auto 0; max-width:820px; border-top:1px solid var(--line); border-bottom:1px solid var(--line);
      }
      .stat{ padding:16px 30px; text-align:center; }
      .stat + .stat{ border-left:1px solid var(--line); }
      .stat .num{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:27px; font-weight:700; color:var(--deep); }
      .stat .num i{ font-style:normal; color:var(--gold); }
      .stat .cap{ font-size:11px; letter-spacing:.24em; text-transform:uppercase; color:var(--ink-soft); margin-top:3px; }

      /* ---------- Hero (first thing under the header) ---------- */
      .hero{ padding:24px var(--gutter) 0; }
      .hero-card{ position:relative; border-radius:var(--r-lg); overflow:hidden; }
      .hero-card img{ width:100%; height:520px; object-fit:cover; }
      .hero-veil{ position:absolute; inset:0; background:linear-gradient(180deg, rgba(15,47,32,0) 16%, rgba(15,47,32,.44) 46%, rgba(15,47,32,.8) 100%); }
      .hero-banner{
        position:absolute; left:0; right:0; top:0;
        background:linear-gradient(90deg, var(--deep-2), var(--deep));
        padding:20px 30px 18px; text-align:center;
        border-bottom:3px solid var(--gold);
      }
      .hero-banner .tag{ font-size:11.5px; letter-spacing:.4em; text-transform:uppercase; color:var(--gold-pale); font-weight:600; }
      .hero-banner h2{
        font-family:"Jost", "Century Gothic", Futura, sans-serif; font-weight:700; color:#fff; margin:6px 0 0;
        font-size:clamp(22px, 4.2cqw, 38px); letter-spacing:.06em; text-transform:uppercase; line-height:1.15;
      }
      .hero-bottom{
        position:absolute; left:0; right:0; bottom:0; padding:22px 30px;
        display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap;
      }
      .hero-bottom .blurb{ color:#f2f7ee; font-size:15.5px; max-width:420px; line-height:1.55; font-weight:300; }
      .hero-bottom .blurb b{ font-weight:600; color:#fff; }
      .pill{
        display:inline-flex; align-items:center; gap:8px;
        background:linear-gradient(180deg, #e9bc55, var(--gold-bright) 45%, var(--gold));
        color:#2c1e04; font-weight:700; letter-spacing:.06em; font-size:14.5px;
        padding:10px 22px; border-radius:999px; border:1px solid #8a5f14;
        box-shadow:0 8px 20px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.55);
        white-space:nowrap;
      }
      .pill::before{ content:""; width:7px; height:7px; border-radius:50%; background:#2c1e04; opacity:.55; }

      /* ---------- Section scaffolding ---------- */
      .section{ padding:var(--gap) var(--gutter) 0; }
      .sec-head{ text-align:center; margin-bottom:24px; }
      .sec-head .k{ font-size:11.5px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); font-weight:700; }
      .sec-head h3{
        font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:clamp(24px, 3.6cqw, 34px);
        font-weight:700; color:var(--deep-2); margin:8px 0 0;
      }
      .sec-head .rule{ width:56px; height:2px; background:var(--gold); margin:14px auto 0; }

      /* ---------- Search band ---------- */
      .search-band{
        margin:var(--gap) var(--gutter) 0; background:var(--mint-wash); border:1px solid var(--line);
        border-radius:var(--r-lg); padding:28px; text-align:center;
      }
      .search-band h3{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; margin:0; font-size:24px; color:var(--deep-2); font-weight:700; }
      .search-band p{ margin:8px 0 18px; color:var(--ink-soft); font-weight:300; font-size:15px; }
      .search-row{ display:flex; gap:10px; max-width:560px; margin:0 auto; }
      .search-row input{
        flex:1; padding:14px 20px; border-radius:999px; border:1px solid var(--sage);
        font-family:inherit; font-size:15.5px; outline:none; background:#fff; min-width:0;
      }
      .search-row input:focus{ border-color:var(--leaf); box-shadow:0 0 0 3px rgba(143,185,150,.3); }
      .btn-green{
        background:var(--deep); color:#fff; border:1px solid var(--deep);
        padding:13px 26px; border-radius:999px; font-weight:600; letter-spacing:.12em;
        text-transform:uppercase; font-size:13px;
      }
      .btn-green:hover{ background:var(--leaf); }
      .search-msg{ margin-top:12px; font-size:13.5px; color:var(--leaf); min-height:18px; font-weight:500; }

      /* ---------- Step-by-step journey strip ---------- */
      .journey{
        margin:22px var(--gutter) 0; display:flex; align-items:center; justify-content:center;
        gap:8px; flex-wrap:wrap;
      }
      .journey-k{ font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); font-weight:700; margin-right:4px; }
      .jstep{
        display:inline-flex; align-items:center; gap:8px; text-decoration:none;
        background:#fff; border:1px solid var(--line); border-radius:999px; padding:6px 14px 6px 7px;
        font-size:12.5px; font-weight:600; letter-spacing:.04em; color:var(--deep);
      }
      .jstep:hover{ border-color:var(--sage); background:var(--mint-wash); }
      .jstep .jn{
        width:22px; height:22px; flex:none; border-radius:50%; background:var(--deep); color:var(--gold-pale);
        display:grid; place-items:center; font-size:11.5px; font-weight:700;
      }

      /* ---------- Recipe grid ---------- */
      .grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; }
      .card{
        background:#fff; border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden;
        display:flex; flex-direction:column;
      }
      .card .ph{ position:relative; }
      .card .ph img{ width:100%; height:210px; object-fit:cover; }
      .card .cat-chip{
        position:absolute; top:10px; left:10px; background:rgba(255,255,255,.94);
        color:var(--deep); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase;
        font-weight:700; padding:5px 11px; border-radius:999px; border:1px solid var(--line);
      }
      .card .body{ padding:16px; display:flex; flex-direction:column; gap:8px; flex:1; }
      .card h4{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:18.5px; line-height:1.25; margin:0; color:var(--deep-2); font-weight:700; }
      .card .meta{ display:flex; align-items:center; gap:12px; font-size:13px; color:var(--ink-soft); }
      .card .stars{ color:var(--gold); letter-spacing:2px; font-size:13px; }
      .card .time{ display:inline-flex; align-items:center; gap:5px; }
      .card .time svg{ width:13px; height:13px; fill:var(--leaf); }
      .save-btn{
        margin-top:auto; align-self:flex-start; background:#fff; border:1.5px solid var(--leaf);
        color:var(--leaf); font-weight:700; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase;
        padding:8px 18px; border-radius:999px; display:inline-flex; gap:7px; align-items:center;
      }
      .save-btn svg{ width:13px; height:13px; fill:currentColor; }
      .save-btn.saved{ background:var(--leaf); color:#fff; }
      .no-results{ display:none; text-align:center; color:var(--ink-soft); padding:26px 10px; font-size:15.5px; }
      .no-results.show{ display:block; }

      /* ---------- Categories ---------- */
      .cat-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; }
      .cat-card{
        border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; background:#fff;
        text-align:left; padding:0; width:100%;
      }
      .cat-card img{ width:100%; height:150px; object-fit:cover; }
      .cat-card .cbody{ padding:16px; border-top:3px solid var(--sage); }
      .cat-card.active .cbody{ border-top-color:var(--gold); background:var(--mint-wash); }
      .cat-card .cname{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-weight:700; font-size:17.5px; color:var(--deep-2); line-height:1.2; }
      .cat-card .ccount{ font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); font-weight:700; margin-top:4px; }
      .cat-card .ctap{ font-size:12.5px; color:var(--leaf); margin-top:6px; font-weight:500; }
      .cat-reset-row{ text-align:center; margin-top:18px; }
      .cat-reset{
        background:none; border:none; color:var(--leaf); font-size:13px; letter-spacing:.16em;
        text-transform:uppercase; font-weight:700; text-decoration:underline; text-underline-offset:4px;
        display:none;
      }
      .cat-reset.show{ display:inline-block; }
      .cat-more{ margin-top:20px; animation:catReveal .35s ease; }
      .cat-more[hidden]{ display:none; }
      @keyframes catReveal{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
      @media (prefers-reduced-motion: reduce){ .cat-more{ animation:none; } }
      .cat-more-row{ text-align:center; margin-top:22px; }

      /* ---------- As seen on strip ---------- */
      .seen-strip{
        margin:22px var(--gutter) 0; background:var(--mint-wash); border:1px solid var(--line);
        border-radius:var(--r-lg); padding:20px 26px; display:flex; align-items:center; gap:20px; flex-wrap:wrap;
      }
      .seen-strip .seen-ic{
        width:52px; height:52px; flex:none; border-radius:50%; background:#fff; border:1.5px solid var(--sage);
        display:grid; place-items:center; color:var(--leaf);
      }
      .seen-strip .seen-ic img{ width:40px; height:40px; display:block; }
      .seen-strip .seen-main{ flex:1; min-width:210px; }
      .seen-strip .seen-k{ font-size:10.5px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); font-weight:700; }
      .seen-strip .seen-title{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:22px; font-weight:700; color:var(--deep-2); margin-top:3px; line-height:1.2; }
      .seen-strip .seen-sub{ font-size:13.5px; color:var(--ink-soft); font-weight:300; margin-top:3px; }
      .seen-stats{ display:flex; gap:0; flex:none; flex-wrap:wrap; }
      .seen-stat{ padding:2px 16px; text-align:center; }
      .seen-stat + .seen-stat{ border-left:1px solid var(--line); }
      .seen-stat .n{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:20px; font-weight:700; color:var(--leaf); }
      .seen-stat .c{ font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft); margin-top:2px; }

      /* ---------- Quick time chips ---------- */
      .quick-chips{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; align-items:center; margin:0 auto 22px; }
      .quick-chips .qc-lab{ font-size:11px; letter-spacing:.26em; text-transform:uppercase; color:var(--gold); font-weight:700; margin-right:2px; }
      .qchip{
        background:#fff; border:1.5px solid var(--sage); color:var(--deep); padding:9px 20px; border-radius:999px;
        font-size:13.5px; font-weight:600; letter-spacing:.04em;
      }
      .qchip:hover{ border-color:var(--leaf); background:var(--mint-wash); }
      .qchip.on{ background:var(--deep); border-color:var(--deep); color:#fff; }

      /* ---------- Search filters ---------- */
      .filter-panel{ margin:22px auto 0; max-width:780px; border-top:1px solid var(--line); padding-top:18px; display:grid; gap:11px; text-align:left; }
      .fgroup{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
      .flab{ width:96px; flex:none; text-align:right; font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); font-weight:700; }
      .fchip{
        background:#fff; border:1.5px solid var(--line); color:var(--deep); padding:7px 15px; border-radius:999px;
        font-size:13px; font-weight:600;
      }
      .fchip:hover{ border-color:var(--sage); background:var(--paper); }
      .fchip.on{ background:var(--leaf); border-color:var(--leaf); color:#fff; }
      .filter-clear-row{ text-align:center; margin-top:14px; }
      .filter-clear{
        background:none; border:none; color:var(--leaf); font-size:12.5px; letter-spacing:.16em;
        text-transform:uppercase; font-weight:700; text-decoration:underline; text-underline-offset:4px; display:none;
      }
      .filter-clear.show{ display:inline-block; }

      /* ---------- Meal plan ---------- */
      .meal-plan{ margin:var(--gap) var(--gutter) 0; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:28px; }
      .meal-plan .mp-head{ text-align:center; margin-bottom:20px; }
      .meal-plan .mp-head .k{ font-size:11.5px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); font-weight:700; }
      .meal-plan .mp-head h3{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:clamp(24px,3.6cqw,32px); font-weight:700; color:var(--deep-2); margin:8px 0 6px; }
      .meal-plan .mp-head p{ margin:0 auto; color:var(--ink-soft); font-weight:300; font-size:15px; max-width:520px; line-height:1.6; }
      .mp-grid{ display:grid; grid-template-columns:repeat(5,1fr); gap:14px; }
      .mp-day{ border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; background:var(--paper); display:flex; flex-direction:column; }
      .mp-day img{ width:100%; height:92px; object-fit:cover; }
      .mp-day .mp-body{ padding:12px 13px 14px; display:flex; flex-direction:column; gap:4px; flex:1; }
      .mp-day .mp-dow{ font-size:10.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); font-weight:700; }
      .mp-day .mp-title{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:15.5px; font-weight:700; color:var(--deep-2); line-height:1.25; }
      .mp-day .mp-time{ font-size:12.5px; color:var(--ink-soft); margin-top:auto; }
      .mp-form{ display:flex; gap:10px; max-width:520px; margin:22px auto 0; }
      .mp-form input{ flex:1; padding:13px 18px; border-radius:999px; border:1px solid var(--sage); font-family:inherit; font-size:15px; outline:none; min-width:0; background:#fff; }
      .mp-form input:focus{ border-color:var(--leaf); box-shadow:0 0 0 3px rgba(143,185,150,.3); }
      .meal-plan .done{ display:none; margin:18px auto 0; max-width:520px; background:var(--mint-wash); border:1px solid var(--sage); color:var(--deep); padding:13px 18px; border-radius:var(--r-md); font-weight:500; font-size:14.5px; text-align:center; }
      .meal-plan .done.show{ display:block; }
      .meal-plan .mp-fine{ text-align:center; font-size:12.5px; color:var(--ink-soft); margin:12px 0 0; }

      /* ---------- Author row (inside trust block) ---------- */
      .author-row{ display:flex; gap:16px; align-items:center; margin-bottom:16px; }
      .avatar-ph{
        width:82px; height:82px; flex:none; border-radius:50%; background:var(--mint-wash);
        border:2px solid var(--gold); display:grid; place-items:center; text-align:center;
        object-fit:cover;
      }
      .avatar-ph .mono{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:27px; font-weight:800; color:var(--deep); line-height:1; }
      .author-row .a-name{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:19px; font-weight:700; color:var(--deep-2); line-height:1.2; }
      .author-row .a-role{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); font-weight:700; margin-top:3px; }
      .author-row .a-note{ font-size:12.5px; color:var(--ink-soft); font-weight:300; margin-top:3px; }

      /* ---------- Seasonal hubs ---------- */
      .season-hubs{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:20px var(--gutter) 0; }
      .season-mini{
        background:linear-gradient(135deg, var(--deep-2), var(--deep) 60%, var(--leaf));
        border:1px solid var(--deep-2); border-radius:var(--r-lg); padding:22px; color:#eaf3e6;
        display:flex; flex-direction:column; gap:0;
      }
      .season-mini img{ width:100%; height:140px; object-fit:cover; border-radius:var(--r-sm); border:2px solid rgba(243,227,187,.65); margin-bottom:16px; }
      .season-mini .k{ font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold-pale); font-weight:700; }
      .season-mini h3{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; color:#fff; font-size:24px; margin:7px 0 6px; font-weight:700; line-height:1.2; }
      .season-mini p{ color:#d9ead2; margin:0 0 14px; font-weight:300; line-height:1.6; font-size:14.5px; }
      .season-mini .hub-count{ font-size:12.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-pale); font-weight:700; margin-bottom:14px; }
      .season-mini .btn-gold{ align-self:flex-start; margin-top:auto; }

      /* ---------- Latest recipes ---------- */
      .card .latest-date{ font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); font-weight:700; }

      /* ---------- Trust block ---------- */
      .trust{
        margin:var(--gap) var(--gutter) 0; display:grid; grid-template-columns:1fr 1fr; gap:0;
        border:1px solid var(--line); border-radius:var(--r-lg); overflow:hidden; background:#fff;
      }
      .trust .timg{ display:grid; grid-template-columns:1fr 1fr; }
      .trust .timg img{ width:100%; height:100%; min-height:150px; object-fit:cover; }
      .trust .tbody{ padding:28px; display:flex; flex-direction:column; justify-content:center; }
      .trust .tbody .k{ font-size:11.5px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); font-weight:700; }
      .trust .tbody h3{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:27px; margin:9px 0 10px; color:var(--deep-2); font-weight:700; line-height:1.2; }
      .trust .tbody p{ margin:0; color:var(--ink-soft); font-weight:300; line-height:1.65; font-size:15.5px; }
      .trust-points{ list-style:none; margin:16px 0 0; padding:0; display:grid; gap:9px; }
      .trust-points li{ display:flex; gap:10px; align-items:baseline; font-size:15px; color:var(--deep); font-weight:500; }
      .trust-points li::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--gold); flex:none; transform:translateY(-1px); }

      /* ---------- Seasonal band ---------- */
      .season{
        margin:var(--gap) var(--gutter) 0; background:linear-gradient(135deg, var(--deep-2), var(--deep) 60%, var(--leaf));
        padding:28px; display:flex; gap:28px; align-items:center; flex-wrap:wrap;
        border:1px solid var(--deep-2); border-radius:var(--r-lg);
      }
      .season img{ width:190px; height:150px; object-fit:cover; border-radius:var(--r-sm); border:2px solid rgba(243,227,187,.65); }
      .season .sbody{ flex:1; min-width:240px; }
      .season .k{ font-size:11.5px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold-pale); font-weight:700; }
      .season h3{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; color:#fff; font-size:30px; margin:8px 0 8px; font-weight:700; }
      .season p{ color:#d9ead2; margin:0; font-weight:300; line-height:1.6; font-size:15.5px; max-width:520px; }
      .btn-gold{
        background:linear-gradient(180deg, #e9bc55, var(--gold-bright) 45%, var(--gold));
        color:#2c1e04; border:1px solid #8a5f14; font-weight:700; letter-spacing:.12em;
        text-transform:uppercase; font-size:13px; padding:13px 26px; border-radius:999px; white-space:nowrap;
      }

      /* ---------- Newsletter ---------- */
      .news{ padding:var(--gap) var(--gutter) 4px; text-align:center; }
      .news .badge{
        display:inline-block; border:1px solid var(--gold); color:var(--gold);
        font-size:11px; letter-spacing:.3em; text-transform:uppercase; font-weight:700;
        padding:6px 16px; border-radius:999px; background:#fffaf0;
      }
      .news h3{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:clamp(24px, 3.6cqw, 34px); color:var(--deep-2); margin:16px 0 10px; font-weight:700; }
      .news h3 em{ font-style:italic; color:var(--leaf); font-weight:600; }
      .news p{ color:var(--ink-soft); font-weight:300; max-width:520px; margin:0 auto; line-height:1.65; font-size:15.5px; }
      .news form{ display:flex; gap:10px; max-width:520px; margin:22px auto 0; }
      .news input{
        flex:1; padding:14px 20px; border-radius:999px; border:1px solid var(--sage);
        font-family:inherit; font-size:15.5px; outline:none; min-width:0; background:#fff;
      }
      .news input:focus{ border-color:var(--leaf); box-shadow:0 0 0 3px rgba(143,185,150,.3); }
      .news .done{ display:none; margin:22px auto 0; max-width:520px; background:var(--mint-wash); border:1px solid var(--sage); color:var(--deep); padding:15px 20px; border-radius:var(--r-md); font-weight:500; }
      .news .done.show{ display:block; }
      .news .fine{ font-size:12.5px; color:var(--ink-soft); margin-top:14px; }

      /* ---------- Footer ---------- */
      .site-foot{
        margin-top:var(--gap); background:var(--deep-2); color:#cfe0cb; padding:38px 34px 26px;
        border-top:3px solid var(--gold);
      }
      .foot-grid{ display:flex; gap:34px; flex-wrap:wrap; justify-content:space-between; }
      .foot-logo{ font-family:"Great Vibes", "Snell Roundhand", "Brush Script MT", cursive; font-size:36px; color:#fff; }
      .foot-logo span{ color:var(--gold-bright); }
      .foot-col h5{ margin:0 0 12px; font-size:12px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold-pale); }
      .foot-col a{ display:block; color:#cfe0cb; text-decoration:none; font-size:14.5px; padding:3px 0; font-weight:300; }
      .foot-col a:hover{ color:#fff; }
      .foot-bottom{
        margin-top:28px; padding-top:18px; border-top:1px solid rgba(207,224,203,.25);
        display:flex; justify-content:space-between; align-items:center; gap:14px; flex-wrap:wrap;
        font-size:13px; color:#9db8a1; font-weight:300;
      }
      .pill.small{ font-size:12.5px; padding:7px 16px; box-shadow:none; }

      /* ---------- Container (phone) adjustments ---------- */
      @container (max-width: 560px){
        .announce{ padding:10px 12px; font-size:10.5px; letter-spacing:.14em; }
        .head-socials{ gap:5px; right:8px; top:16px; }
        .social-btn{ width:30px; height:30px; }
        .social-btn svg{ width:14px; height:14px; }
        .site-head{ padding:14px 16px 10px; justify-content:space-between; }
        .logo{ font-size:34px; }
        .mainnav{ order:3; width:100%; justify-content:center; gap:16px; margin:6px 0 2px; }
        .mainnav a{ font-size:11.5px; }
        .tagline{ padding:24px 16px 0; }
        .stat{ padding:12px 14px; }
        .stat .num{ font-size:21px; }
        .hero{ padding:16px 16px 0; }
        .hero-card img{ height:400px; }
        .hero-banner{ padding:14px 14px 12px; }
        .hero-bottom{ padding:16px; }
        .section{ padding:24px 16px 0; }
        .search-band{ margin:24px 16px 0; padding:22px 16px; }
        .search-row{ flex-direction:column; }
        .grid{ grid-template-columns:repeat(2, 1fr); gap:12px; }
        .card .ph img{ height:150px; }
        .card h4{ font-size:15.5px; }
        .cat-grid{ grid-template-columns:repeat(2, 1fr); gap:12px; }
        .cat-card img{ height:110px; }
        .trust{ margin:24px 16px 0; grid-template-columns:1fr; }
        .trust .tbody{ padding:22px; }
        .season{ margin:24px 16px 0; padding:24px 16px; }
        .season img{ width:100%; height:170px; }
        .news{ padding:24px 16px 0; }
        .news form{ flex-direction:column; }
        .rotd{ margin:24px 16px 0; grid-template-columns:1fr; padding:16px; }
        .rotd img{ width:100%; height:170px; }
        .quiz{ margin:24px 16px 0; padding:24px 16px 20px; }
        .qresult.show{ grid-template-columns:1fr; }
        .qresult img{ width:100%; height:150px; min-height:0; }
        .saved-strip{ margin:24px 16px 0; padding:20px 16px; }
        .ss-img{ width:100%; height:170px; }
        .ss-stats{ width:100%; justify-content:flex-start; }
        .ss-stat{ padding:4px 12px 4px 0; }
        .ss-stat + .ss-stat{ border-left:none; padding-left:12px; }
        .vid-grid{ grid-template-columns:1fr; gap:12px; }
        .freebies{ grid-template-columns:1fr; }
        .freebie form{ flex-direction:column; }
        .countdown{ gap:8px; }
        .site-foot{ padding:30px 20px 22px; }
      }

      /* ---------- Recipe of the Day ---------- */
      .rotd{ margin:var(--gap) var(--gutter) 0; display:grid; grid-template-columns:190px 1fr auto; gap:22px; align-items:center; background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:20px 22px; }
      .rotd img{ width:190px; height:130px; object-fit:cover; border-radius:var(--r-sm); }
      .rotd .k{ font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); font-weight:700; }
      .rotd h3{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:24px; margin:6px 0 5px; color:var(--deep-2); font-weight:700; line-height:1.2; }
      .rotd .rdate{ font-size:13px; color:var(--leaf); font-weight:600; letter-spacing:.06em; }
      .rotd p{ margin:5px 0 0; color:var(--ink-soft); font-weight:300; font-size:14.5px; line-height:1.55; }
      .rotd .rmeta{ font-size:13px; color:var(--ink-soft); margin-top:7px; }
      .rotd .rmeta .stars{ color:var(--gold); letter-spacing:2px; }

      /* ---------- Quiz ---------- */
      .quiz{ margin:var(--gap) var(--gutter) 0; background:linear-gradient(135deg, var(--deep-2), var(--deep) 60%, var(--leaf)); border-radius:var(--r-lg); padding:28px; color:#eaf3e6; border:1px solid var(--deep-2); }
      .quiz .k{ font-size:11.5px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold-pale); font-weight:700; text-align:center; }
      .quiz h3{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; text-align:center; color:#fff; font-size:clamp(24px,3.6cqw,32px); margin:9px 0 6px; font-weight:700; }
      .quiz .qsub{ text-align:center; color:#cfe0cb; font-weight:300; font-size:15px; margin:0 auto 20px; max-width:520px; line-height:1.55; }
      .qgroup{ margin:0 auto 16px; max-width:640px; }
      .qgroup .qlab{ font-size:11.5px; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-pale); font-weight:700; margin-bottom:9px; text-align:center; }
      .qopts{ display:flex; gap:9px; justify-content:center; flex-wrap:wrap; }
      .qopt{ background:rgba(255,255,255,.08); border:1.5px solid rgba(207,224,203,.5); color:#fff; padding:9px 18px; border-radius:999px; font-size:14px; font-weight:600; letter-spacing:.03em; }
      .qopt:hover{ border-color:var(--gold-bright); }
      .qopt.on{ background:var(--gold-bright); border-color:var(--gold); color:#2c1e04; }
      .quiz .qfind{ display:block; margin:20px auto 0; }
      .qmsg{ text-align:center; font-size:13.5px; color:var(--gold-pale); min-height:18px; margin-top:10px; font-weight:500; }
      .qresult{ display:none; margin:18px auto 4px; max-width:640px; background:#fff; color:var(--ink); border-radius:var(--r-md); overflow:hidden; }
      .qresult.show{ display:grid; grid-template-columns:170px 1fr; }
      .qresult img{ width:170px; height:100%; min-height:140px; object-fit:cover; }
      .qresult .qr-body{ padding:16px 18px; }
      .qresult .qr-k{ font-size:10.5px; letter-spacing:.26em; text-transform:uppercase; color:var(--gold); font-weight:700; }
      .qresult h4{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:20px; margin:5px 0 5px; color:var(--deep-2); }
      .qresult p{ margin:0 0 10px; font-size:14px; color:var(--ink-soft); font-weight:300; line-height:1.5; }
      .qreset{ background:none; border:none; color:#cfe0cb; text-decoration:underline; text-underline-offset:4px; font-size:13px; letter-spacing:.1em; text-transform:uppercase; font-weight:700; display:none; margin:12px auto 0; }
      .qreset.show{ display:block; }

      /* ---------- Most saved strip ---------- */
      .saved-strip{ margin:var(--gap) var(--gutter) 0; background:var(--mint-wash); border:1px solid var(--line); border-radius:var(--r-lg); padding:28px; }
      .saved-strip .ss-head{ display:flex; align-items:baseline; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:16px; }
      .saved-strip .ss-head h3{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:24px; margin:0; color:var(--deep-2); font-weight:700; }
      .saved-strip .ss-head .k{ font-size:11px; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); font-weight:700; }
      .ss-card{ background:#fff; border:1px solid var(--line); border-radius:var(--r-md); padding:18px 20px; display:flex; gap:20px; align-items:center; flex-wrap:wrap; }
      .ss-badge{ flex:none; width:58px; height:58px; border-radius:50%; background:var(--deep); color:var(--gold-pale); display:grid; place-items:center; font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-weight:800; font-size:19px; border:2px solid var(--gold); }
      .ss-img{ width:132px; height:100px; flex:none; object-fit:cover; border-radius:var(--r-sm); border:1px solid var(--line); }
      .ss-main{ flex:1; min-width:210px; }
      .ss-main .ss-title{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:19.5px; font-weight:700; color:var(--deep-2); }
      .ss-main .ss-sub{ font-size:13.5px; color:var(--ink-soft); font-weight:300; margin-top:3px; line-height:1.5; }
      .ss-stats{ display:flex; gap:0; flex:none; }
      .ss-stat{ padding:4px 16px; text-align:center; }
      .ss-stat + .ss-stat{ border-left:1px solid var(--line); }
      .ss-stat .n{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:21px; font-weight:700; color:var(--leaf); }
      .ss-stat .c{ font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft); margin-top:2px; }

      /* ---------- Video strip ---------- */
      .vid-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
      .vid-card{ background:#fff; border:1px solid var(--line); border-radius:var(--r-md); overflow:hidden; text-align:left; padding:0; width:100%; }
      .vid-card .vph{ position:relative; display:block; }
      .vid-card .vbody{ display:block; }
      .vid-card .vtitle{ display:block; }
      .vid-card .vsub{ display:block; }
      .vid-card .vph img{ width:100%; height:190px; object-fit:cover; }
      .vid-card .play{ position:absolute; inset:0; display:grid; place-items:center; background:linear-gradient(180deg, rgba(15,47,32,0) 40%, rgba(15,47,32,.45)); }
      .vid-card .play .pbtn{ width:56px; height:56px; border-radius:50%; background:rgba(255,255,255,.95); display:grid; place-items:center; box-shadow:0 10px 24px rgba(0,0,0,.3); }
      .vid-card .play .pbtn svg{ width:20px; height:20px; fill:var(--deep); margin-left:3px; }
      .vid-card.playing .play .pbtn svg{ margin-left:0; }
      .vid-card .dur{ position:absolute; right:10px; bottom:10px; background:rgba(15,47,32,.88); color:#fff; font-size:12px; font-weight:700; padding:4px 9px; border-radius:6px; letter-spacing:.06em; }
      .vid-card .vprog{ position:absolute; left:0; bottom:0; height:4px; width:0; background:var(--gold-bright); }
      .vid-card.playing .vprog{ animation:vprog 18s linear forwards; }
      @keyframes vprog{ from{ width:0; } to{ width:100%; } }
      @media (prefers-reduced-motion: reduce){ .vid-card.playing .vprog{ animation:none; width:100%; } }
      .vid-card .vbody{ padding:16px; }
      .vid-card .vtitle{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-weight:700; font-size:17px; color:var(--deep-2); line-height:1.25; }
      .vid-card .vsub{ font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); font-weight:700; margin-top:5px; }

      /* ---------- Countdown ---------- */
      .countdown{ display:flex; gap:12px; align-items:stretch; margin-top:18px; flex-wrap:wrap; }
      .cd-box{ background:rgba(255,255,255,.1); border:1px solid rgba(243,227,187,.5); border-radius:var(--r-sm); padding:10px 16px; text-align:center; min-width:74px; }
      .cd-box .n{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:26px; font-weight:800; color:#fff; line-height:1; }
      .cd-box .c{ font-size:10px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold-pale); margin-top:4px; }
      .season .plan-msg{ width:100%; color:var(--gold-pale); font-size:13.5px; font-weight:500; min-height:18px; }

      /* ---------- Two freebies ---------- */
      .freebies{ display:grid; grid-template-columns:1fr 1fr; gap:20px; max-width:900px; margin:26px auto 0; text-align:left; }
      .freebie{ background:#fff; border:1px solid var(--line); border-radius:var(--r-lg); padding:22px 22px 20px; }
      .freebie.gold-card{ border-top:4px solid var(--gold); }
      .freebie.green-card{ border-top:4px solid var(--leaf); }
      .freebie .fb-k{ font-size:10.5px; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); font-weight:700; }
      .freebie.green-card .fb-k{ color:var(--leaf); }
      .freebie h4{ font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:21px; margin:7px 0 7px; color:var(--deep-2); font-weight:700; line-height:1.25; }
      .freebie p{ margin:0; font-size:14.5px; color:var(--ink-soft); font-weight:300; line-height:1.6; max-width:none; }
      .freebie form{ display:flex; gap:8px; margin:16px 0 0; max-width:none; }
      .freebie input{ flex:1; padding:12px 16px; border-radius:999px; border:1px solid var(--sage); font-family:inherit; font-size:14.5px; outline:none; min-width:0; background:#fff; }
      .freebie input:focus{ border-color:var(--leaf); box-shadow:0 0 0 3px rgba(143,185,150,.3); }
            .freebie .done{ display:none; margin-top:14px; background:var(--mint-wash); border:1px solid var(--sage); color:var(--deep); padding:12px 15px; border-radius:var(--r-sm); font-weight:500; font-size:14px; }
      .freebie .done.show{ display:block; }
      .freebie .fb-fine{ font-size:12px; color:var(--ink-soft); margin-top:10px; }

      /* ---------- Sticky offer bar (inside the frame width) ---------- */
      .sticky-offer{
        position:sticky; bottom:14px; z-index:30; margin:16px auto 6px; max-width:1060px;
        width:calc(100% - 48px); background:var(--deep-2); color:#eaf3e6; border:1px solid var(--gold);
        border-radius:999px; padding:10px 12px 10px 24px; display:flex; align-items:center; gap:16px;
        box-shadow:0 18px 40px rgba(15,47,32,.35);
      }
      .sticky-offer .so-txt{ flex:1; min-width:180px; font-size:14.5px; line-height:1.45; font-weight:300; }
      .sticky-offer .so-txt b{ color:#fff; font-weight:700; font-family:"Playfair Display", Georgia, "Times New Roman", serif; font-size:16px; }
      .sticky-offer .so-txt .gold-txt{ color:var(--gold-pale); font-weight:600; }
      .sticky-offer .so-close{ flex:none; width:32px; height:32px; border-radius:50%; border:1px solid rgba(207,224,203,.4); background:transparent; color:#cfe0cb; font-size:15px; line-height:1; }
      .sticky-offer.hide{ display:none; }

      /* ---------- v1.2.7 sticky-offer fix ----------
         The bar is position:sticky at the viewport bottom, so while open it
         overlaps whatever scrolls underneath it. Two changes:
         1) Reserve space at the page bottom (110px desktop) so the footer
            is never hidden behind the bar when scrolled to the end, and
            anchored sections keep a scroll margin clear of the bar.
         2) When the bar is closed, body.tdp-sticky-hidden removes that
            reserved space again, so there is no empty gap at the bottom.
         The closed state itself is remembered in localStorage by the
         inline script in footer.php (and the home.js handler) — see there. */
      body:not(.tdp-sticky-hidden){ padding-bottom:110px; }
      .search-band, .quiz, .freebies, .news, .site-foot{ scroll-margin-bottom:130px; }

      /* ---------- Phone overrides for the new sections ---------- */
      @container (max-width: 560px){
        .seen-strip{ margin:18px 16px 0; padding:18px 16px; }
        .seen-stat{ padding:2px 10px; }
        .flab{ width:100%; text-align:left; }
        .mp-grid{ grid-template-columns:1fr; }
        .mp-day img{ height:130px; }
        .mp-form{ flex-direction:column; }
        .meal-plan{ margin:24px 16px 0; padding:22px 16px; }
        .season-hubs{ grid-template-columns:1fr; margin:16px 16px 0; }
        .author-row{ flex-wrap:wrap; }
      }

      /* ---------- Phone overrides for the hook sections (after base styles, so they win) ---------- */
      @container (max-width: 560px){
        .rotd{ margin:24px 16px 0; grid-template-columns:1fr; padding:16px; }
        .rotd img{ width:100%; height:170px; }
        .quiz{ margin:24px 16px 0; padding:24px 16px 20px; }
        .qresult.show{ grid-template-columns:1fr; }
        .qresult img{ width:100%; height:150px; min-height:0; }
        .saved-strip{ margin:24px 16px 0; padding:20px 16px; }
        .ss-stats{ width:100%; justify-content:flex-start; flex-wrap:wrap; }
        .vid-grid{ grid-template-columns:1fr; gap:12px; }
        .freebies{ grid-template-columns:1fr; }
        .freebie form{ flex-direction:column; }
        .journey{ margin:18px 16px 0; }
      }

/* WordPress menu compatibility: wp_nav_menu() wraps links in <li> elements.
   display:contents keeps the demo's direct-anchor flex layout in .mainnav. */
.mainnav li{ list-style:none; display:contents; }

/* ==========================================================================
   Recipe pages (.tdp-recipe)
   From the approved recipe-page demo, scoped so none of it leaks onto other
   pages: every top-level selector is prefixed with `.tdp-recipe` (including
   inside @media blocks). `:root` / `html` / `body` rules become `.tdp-recipe`
   rules so the demo's custom properties apply only inside the recipe wrapper.
   Substitution: the demo loaded "Public Sans" from Google Fonts; the theme
   self-hosts Jost instead, so every "Public Sans" became "Jost".
   Rules identical to ones already in the homepage CSS above were dropped
   (the homepage version is kept). No Google Fonts links or @imports remain.
   NOTE: the demo's second <style> block is a JS string that builds a
   standalone printable HTML file (print download) - it is not page CSS and
   is intentionally not included here; recipe.js carries that template.
   ========================================================================== */
.tdp-recipe{
  --green:#1d4d38; --green-deep:#123527; --green-soft:#2c6a4e;
  --sage:#7fae94; --sage-line:#cfe2d6; --mint:#eef6f1; --mint-2:#e2efe7;
  --gold:#b98e2e; --gold-bright:#d4af37; --gold-soft:#f3e9cd;
  --ink:#22312a; --ink-soft:#4c5d54; --muted:#71827a;
  --paper:#ffffff; --cream:#f8faf8;
  --pin-red:#c8232c;
  --shadow:0 10px 30px rgba(18,53,39,.10);
  --shadow-sm:0 4px 14px rgba(18,53,39,.08);
  --radius:14px;
}
.tdp-recipe{scroll-behavior:smooth}
.tdp-recipe{margin:0;font-family:"Jost",system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased}
.tdp-recipe img[hidden]{display:none !important}
.tdp-recipe a{color:var(--green);text-decoration:none}
.tdp-recipe h1, .tdp-recipe h2, .tdp-recipe h3, .tdp-recipe .serif{font-family:"Playfair Display",Georgia,serif;color:var(--green-deep);line-height:1.15;margin:0}
.tdp-recipe .wrap{max-width:1120px;margin:0 auto;padding:0 20px}
/* ---------- announce bar ---------- */
.tdp-recipe .announce{background:var(--green-deep);color:#eaf3ec;text-align:center;font-size:13px;letter-spacing:.02em;padding:8px 16px}
.tdp-recipe .announce strong{color:var(--gold-bright);font-weight:700}
/* ---------- header ---------- */
.tdp-recipe .site-header{border-bottom:1px solid var(--sage-line);background:#fff;position:sticky;top:0;z-index:60}
.tdp-recipe .logo-line{display:flex;align-items:center;gap:16px;padding:16px 0 10px}
.tdp-recipe .logo{font-family:"Playfair Display",Georgia,serif;font-size:clamp(26px,4.5vw,34px);font-weight:800;color:var(--green-deep);letter-spacing:.01em;white-space:nowrap}
.tdp-recipe .logo .dot{color:var(--gold-bright)}
.tdp-recipe .logo-tag{display:block;font-family:"Jost",sans-serif;font-size:10.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--sage);margin-top:1px}
.tdp-recipe .logo-line .spacer{flex:1}
.tdp-recipe .socials{display:flex;gap:8px;margin-left:auto}
.tdp-recipe .socials a{width:34px;height:34px;border:1.5px solid var(--sage);border-radius:50%;display:grid;place-items:center;color:var(--green);transition:.2s}
.tdp-recipe .socials a:hover{background:var(--green);border-color:var(--green);color:#fff}
.tdp-recipe .socials svg{width:16px;height:16px;fill:currentColor}
.tdp-recipe .nav-line{display:flex;align-items:center;gap:4px;padding:2px 0 12px;flex-wrap:wrap}
.tdp-recipe .nav-line a{font-size:13px;font-weight:700;letter-spacing:.14em;color:var(--green-deep);padding:7px 12px;border-radius:999px}
.tdp-recipe .nav-line a:hover, .tdp-recipe .nav-line a.active{background:var(--mint);color:var(--green)}
.tdp-recipe .search-btn{margin-left:6px;width:34px;height:34px;border-radius:50%;border:1.5px solid var(--sage);background:#fff;color:var(--green);display:grid;place-items:center}
.tdp-recipe .search-btn:hover{background:var(--mint)}
.tdp-recipe .search-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4}
.tdp-recipe .search-panel{display:none;border-top:1px dashed var(--sage-line);padding:12px 0 14px}
.tdp-recipe .search-panel.open{display:block}
.tdp-recipe .search-panel form{display:flex;gap:8px}
.tdp-recipe .search-panel input{flex:1;border:1.5px solid var(--sage-line);border-radius:999px;padding:11px 18px;font-size:15px;font-family:inherit;min-width:0}
.tdp-recipe .search-panel input:focus{outline:2px solid var(--sage);border-color:var(--sage)}
.tdp-recipe .search-panel button{background:var(--green);color:#fff;border:none;border-radius:999px;padding:11px 22px;font-weight:700;font-size:14px}
.tdp-recipe .search-note{font-size:13px;color:var(--muted);margin:8px 4px 0}
/* ---------- device switch ---------- */
.tdp-recipe .device-switch{position:fixed;right:16px;bottom:16px;z-index:90;background:#fff;border:1px solid var(--sage-line);border-radius:999px;box-shadow:var(--shadow);display:flex;padding:4px;gap:4px}
.tdp-recipe .device-switch button{border:none;background:transparent;padding:8px 16px;border-radius:999px;font-size:13px;font-weight:700;color:var(--ink-soft)}
.tdp-recipe .device-switch button.on{background:var(--green);color:#fff}
body.phone .tdp-recipe .page-frame{max-width:400px;margin:14px auto 40px;border:1px solid var(--sage-line);border-radius:28px;overflow:hidden;box-shadow:0 24px 60px rgba(18,53,39,.18)}
body.phone .tdp-recipe .site-header{position:static}
body.phone .tdp-recipe .wrap{padding:0 16px}
body.phone .tdp-recipe .related-grid{grid-template-columns:1fr 1fr}
body.phone .tdp-recipe .pin-setup-grid{grid-template-columns:1fr}
body.phone .tdp-recipe .rc-meta{grid-template-columns:repeat(2,1fr)}
body.phone .tdp-recipe .ing-grid{grid-template-columns:1fr}
body.phone .tdp-recipe .gold-form{flex-direction:column}
body.phone .tdp-recipe .hero-meta{gap:10px}
body.phone .tdp-recipe .nav-line a{padding:6px 8px;font-size:12px}
body.phone .tdp-recipe .rating-flex{flex-direction:column;align-items:flex-start}
body.phone .tdp-recipe .footer-grid{grid-template-columns:1fr 1fr}
/* ---------- recipe head ---------- */
.tdp-recipe .crumbs{font-size:12.5px;color:var(--muted);padding:20px 0 0;letter-spacing:.02em}
.tdp-recipe .crumbs a{color:var(--muted)}
.tdp-recipe .crumbs a:hover{color:var(--green)}
.tdp-recipe .crumbs .sep{margin:0 6px;color:var(--sage)}
.tdp-recipe .cat-tag{display:inline-block;margin-top:14px;background:var(--mint);color:var(--green);border:1px solid var(--sage-line);font-size:11.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;padding:6px 14px;border-radius:999px}
.tdp-recipe h1.recipe-title{font-size:clamp(34px,6vw,52px);font-weight:800;margin:14px 0 10px;max-width:820px}
.tdp-recipe .standfirst{font-size:clamp(16px,2.4vw,19px);color:var(--ink-soft);max-width:720px;margin:0}
.tdp-recipe .hero-meta{display:flex;flex-wrap:wrap;gap:14px 26px;margin:20px 0 4px;align-items:center}
.tdp-recipe .meta-item{display:flex;align-items:center;gap:8px;font-size:14.5px;color:var(--ink-soft)}
.tdp-recipe .meta-item strong{color:var(--ink)}
.tdp-recipe .meta-item svg{width:18px;height:18px;fill:none;stroke:var(--sage);stroke-width:2}
.tdp-recipe .stars{color:var(--gold-bright);font-size:17px;letter-spacing:2px;line-height:1}
.tdp-recipe .stars .dim{color:#d9d2bd}
.tdp-recipe .author-line{display:flex;align-items:center;gap:12px;margin:18px 0 20px;padding:14px 0;border-top:1px solid var(--sage-line);border-bottom:1px solid var(--sage-line)}
.tdp-recipe .avatar{width:44px;height:44px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-family:"Playfair Display",serif;font-weight:700;font-size:17px;border:2px solid var(--gold-bright);flex:none}
.tdp-recipe .author-line .who{font-size:14.5px}
.tdp-recipe .author-line .who strong{color:var(--green-deep)}
.tdp-recipe .author-line .when{font-size:12.5px;color:var(--muted)}
.tdp-recipe .action-row{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px}
.tdp-recipe .btn{display:inline-flex;align-items:center;gap:9px;border-radius:999px;padding:13px 24px;font-size:15px;font-weight:700;border:1.5px solid transparent;transition:.18s}
.tdp-recipe .btn svg{width:17px;height:17px;fill:currentColor}
.tdp-recipe .btn-jump{background:var(--green);color:#fff}
.tdp-recipe .btn-jump:hover{background:var(--green-deep)}
.tdp-recipe .btn-print{background:#fff;border-color:var(--sage);color:var(--green)}
.tdp-recipe .btn-print:hover{background:var(--mint)}
.tdp-recipe .btn-save{background:var(--pin-red);color:#fff}
.tdp-recipe .btn-save:hover{background:#a81d24}
.tdp-recipe .btn-save.saved{background:var(--green)}
/* ---------- hero photo ---------- */
.tdp-recipe .hero-photo{position:relative;border-radius:18px;overflow:hidden;box-shadow:var(--shadow)}
.tdp-recipe .hero-photo img{width:100%;height:min(72vh,640px);object-fit:cover;object-position:center 38%}
.tdp-recipe .hero-save{position:absolute;top:16px;right:16px;background:var(--pin-red);color:#fff;border:none;border-radius:999px;padding:11px 20px;font-weight:700;font-size:14.5px;display:inline-flex;gap:8px;align-items:center;box-shadow:var(--shadow);opacity:.96}
.tdp-recipe .hero-save svg{width:16px;height:16px;fill:#fff}
.tdp-recipe .hero-save.saved{background:var(--green)}
.tdp-recipe .hero-cap{font-size:13px;color:var(--muted);margin:10px 4px 0;text-align:center;font-style:italic}
/* ---------- article body ---------- */
.tdp-recipe .article{max-width:760px;margin:0 auto}
.tdp-recipe .article p{font-size:17px;color:#33443b;margin:0 0 18px}
.tdp-recipe .article p strong{color:var(--green-deep)}
.tdp-recipe .why-box{background:var(--mint);border:1px solid var(--sage-line);border-radius:var(--radius);padding:22px 24px;margin:26px 0}
.tdp-recipe .why-box h2{font-size:22px;margin-bottom:10px}
.tdp-recipe .why-box ul{margin:0;padding-left:20px}
.tdp-recipe .why-box li{margin:6px 0;font-size:15.5px;color:#33443b}
.tdp-recipe .why-box li::marker{color:var(--gold)}
/* ---------- recipe card ---------- */
.tdp-recipe .recipe-anchor{scroll-margin-top:110px}
.tdp-recipe .recipe-card{border:2px solid var(--green);border-radius:18px;overflow:hidden;box-shadow:var(--shadow);margin:34px auto 10px;max-width:860px;background:#fff}
.tdp-recipe .rc-head{background:var(--green-deep);color:#fff;padding:28px 30px 24px;text-align:center}
.tdp-recipe .rc-head .over{font-size:11.5px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--sage)}
.tdp-recipe .rc-head h2{color:#fff;font-size:clamp(26px,4.5vw,36px);margin:8px 0 8px}
.tdp-recipe .rc-head p{color:#cfe0d5;font-size:15px;margin:0 auto;max-width:560px}
.tdp-recipe .rc-meta{display:grid;grid-template-columns:repeat(5,1fr);border-bottom:1px solid var(--sage-line)}
.tdp-recipe .rc-meta div{padding:16px 8px;text-align:center;border-right:1px solid var(--sage-line)}
.tdp-recipe .rc-meta div:last-child{border-right:none}
.tdp-recipe .rc-meta .k{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--sage)}
.tdp-recipe .rc-meta .v{font-family:"Playfair Display",serif;font-size:19px;font-weight:700;color:var(--green-deep);margin-top:3px}
.tdp-recipe .rc-body{padding:26px 30px 8px}
.tdp-recipe .scaler{display:flex;flex-wrap:wrap;align-items:center;gap:12px;background:var(--cream);border:1px solid var(--sage-line);border-radius:12px;padding:14px 16px;margin-bottom:24px}
.tdp-recipe .scaler .lbl{font-weight:800;font-size:14px;color:var(--green-deep);letter-spacing:.04em}
.tdp-recipe .seg{display:flex;border:1.5px solid var(--sage);border-radius:999px;overflow:hidden}
.tdp-recipe .seg button{border:none;background:#fff;padding:9px 18px;font-weight:800;font-size:14px;color:var(--green)}
.tdp-recipe .seg button.on{background:var(--green);color:#fff}
.tdp-recipe .scaler .servings-note{font-size:14px;color:var(--ink-soft)}
.tdp-recipe .scaler .servings-note strong{color:var(--green-deep)}
.tdp-recipe .gather{margin-left:auto;font-size:13.5px;font-weight:700;color:var(--gold)}
.tdp-recipe .rc-body h3{font-size:23px;margin:6px 0 14px;display:flex;align-items:center;gap:12px}
.tdp-recipe .rc-body h3::after{content:"";flex:1;height:1px;background:var(--sage-line)}
.tdp-recipe .ing-group{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--sage);margin:18px 0 6px}
.tdp-recipe .ing-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 34px}
.tdp-recipe .ing{display:flex;gap:11px;align-items:flex-start;padding:8px 6px;border-radius:8px;cursor:pointer;font-size:15.5px}
.tdp-recipe .ing:hover{background:var(--mint)}
.tdp-recipe .ing input{position:absolute;opacity:0;width:0;height:0}
.tdp-recipe .ing .box{flex:none;width:21px;height:21px;margin-top:2px;border:2px solid var(--sage);border-radius:6px;display:grid;place-items:center;background:#fff;transition:.15s}
.tdp-recipe .ing .box svg{width:12px;height:12px;fill:none;stroke:#fff;stroke-width:3.4;opacity:0}
.tdp-recipe .ing input:checked + .box{background:var(--green);border-color:var(--green)}
.tdp-recipe .ing input:checked + .box svg{opacity:1}
.tdp-recipe .ing input:focus-visible + .box{outline:2px solid var(--gold-bright);outline-offset:2px}
.tdp-recipe .ing.done .txt{color:var(--muted);text-decoration:line-through}
.tdp-recipe .ing .qty{font-weight:700;color:var(--green-deep);white-space:nowrap}
.tdp-recipe .steps{list-style:none;margin:0;padding:0;counter-reset:step}
.tdp-recipe .steps li{display:flex;gap:16px;padding:15px 0;border-bottom:1px dashed var(--sage-line)}
.tdp-recipe .steps li:last-child{border-bottom:none}
.tdp-recipe .step-n{flex:none;width:36px;height:36px;border-radius:50%;background:var(--green);color:#fff;font-family:"Playfair Display",serif;font-weight:700;font-size:17px;display:grid;place-items:center;margin-top:2px}
.tdp-recipe .steps p{margin:0;font-size:16px;color:#33443b}
.tdp-recipe .steps p strong{color:var(--green-deep)}
.tdp-recipe .notes-box{background:var(--gold-soft);border-radius:12px;padding:18px 20px;margin:22px 0}
.tdp-recipe .notes-box h4{margin:0 0 8px;font-family:"Playfair Display",serif;font-size:18px;color:#7a5c14}
.tdp-recipe .notes-box ul{margin:0;padding-left:19px}
.tdp-recipe .notes-box li{font-size:14.5px;margin:5px 0;color:#5c4c1c}
.tdp-recipe .nutrition{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:13.5px;color:var(--ink-soft);border-top:1px solid var(--sage-line);padding:16px 0 4px;margin-top:8px}
.tdp-recipe .nutrition strong{color:var(--green-deep)}
.tdp-recipe .rc-foot{padding:20px 30px 26px;text-align:center}
.tdp-recipe .gold-pill{display:inline-block;background:linear-gradient(180deg,#dcbb55,#c49b34);color:#2f2508;font-weight:800;font-size:13.5px;letter-spacing:.06em;padding:9px 26px;border-radius:999px;border:1.5px solid #a37f24;box-shadow:inset 0 1px 0 rgba(255,255,255,.55)}
.tdp-recipe .rc-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:16px}
/* ---------- ratings ---------- */
.tdp-recipe .section{padding:44px 0 6px}
.tdp-recipe .section-head{text-align:center;margin-bottom:26px}
.tdp-recipe .section-head .over{font-size:11.5px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:var(--sage)}
.tdp-recipe .section-head h2{font-size:clamp(26px,4.5vw,34px);margin-top:6px}
.tdp-recipe .section-head p{color:var(--ink-soft);margin:8px auto 0;max-width:560px;font-size:15.5px}
.tdp-recipe .rating-flex{display:flex;gap:34px;align-items:center;background:var(--cream);border:1px solid var(--sage-line);border-radius:var(--radius);padding:26px 28px;max-width:860px;margin:0 auto}
.tdp-recipe .rating-big{text-align:center;flex:none}
.tdp-recipe .rating-big .num{font-family:"Playfair Display",serif;font-size:56px;font-weight:800;color:var(--green-deep);line-height:1}
.tdp-recipe .rating-big .stars{font-size:20px;margin:6px 0 4px}
.tdp-recipe .rating-big .cnt{font-size:13px;color:var(--muted)}
.tdp-recipe .bars{flex:1;min-width:200px}
.tdp-recipe .bar-row{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--ink-soft);margin:5px 0}
.tdp-recipe .bar-track{flex:1;height:9px;background:var(--mint-2);border-radius:99px;overflow:hidden}
.tdp-recipe .bar-fill{height:100%;background:var(--gold-bright);border-radius:99px}
.tdp-recipe .rate-box{flex:none;text-align:center}
.tdp-recipe .rate-box .lbl{font-weight:800;font-size:14px;color:var(--green-deep);margin-bottom:8px}
.tdp-recipe .rate-stars{display:flex;gap:4px;justify-content:center}
.tdp-recipe .rate-stars button{background:none;border:none;font-size:30px;line-height:1;color:#d9d2bd;padding:2px;transition:.12s}
.tdp-recipe .rate-stars button.lit{color:var(--gold-bright)}
.tdp-recipe .rate-msg{font-size:13.5px;color:var(--green);font-weight:700;margin-top:9px;min-height:20px}
.tdp-recipe .reviews{max-width:860px;margin:22px auto 0;display:grid;gap:14px}
.tdp-recipe .review{border:1px solid var(--sage-line);border-radius:var(--radius);padding:18px 20px;background:#fff}
.tdp-recipe .review .top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tdp-recipe .review .nm{font-weight:800;color:var(--green-deep);font-size:14.5px}
.tdp-recipe .review .dt{font-size:12.5px;color:var(--muted)}
.tdp-recipe .review .stars{font-size:14px}
.tdp-recipe .review p{margin:8px 0 0;font-size:15px;color:#33443b}
/* ---------- related ---------- */
.tdp-recipe .related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.tdp-recipe .rel-card{border:1px solid var(--sage-line);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}
.tdp-recipe .rel-card .ph{position:relative;aspect-ratio:4/3;overflow:hidden}
.tdp-recipe .rel-card .ph img{width:100%;height:100%;object-fit:cover}
.tdp-recipe .rel-cat{position:absolute;top:10px;left:10px;background:rgba(255,255,255,.94);color:var(--green);font-size:10.5px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:5px 11px;border-radius:999px}
.tdp-recipe .rel-body{padding:14px 16px 16px;display:flex;flex-direction:column;gap:7px;flex:1}
.tdp-recipe .rel-body h3{font-size:18.5px;line-height:1.25}
.tdp-recipe .rel-meta{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-soft)}
.tdp-recipe .rel-meta .stars{font-size:13px}
.tdp-recipe .rel-meta .dotsep{width:5px;height:5px;border-radius:50%;background:var(--sage);flex:none}
.tdp-recipe .rel-save{margin-top:auto;align-self:flex-start;background:#fff;border:1.5px solid var(--sage);color:var(--green);border-radius:999px;padding:8px 18px;font-weight:800;font-size:13px;letter-spacing:.08em;display:inline-flex;gap:7px;align-items:center}
.tdp-recipe .rel-save svg{width:13px;height:13px;fill:var(--pin-red)}
.tdp-recipe .rel-save.saved{background:var(--green);border-color:var(--green);color:#fff}
.tdp-recipe .rel-save.saved svg{fill:#fff}
.tdp-recipe .no-results{display:none;text-align:center;color:var(--muted);padding:22px;font-size:15px}
/* ---------- pinterest setup ---------- */
.tdp-recipe .pin-setup{background:var(--mint);border-top:1px solid var(--sage-line);border-bottom:1px solid var(--sage-line);margin-top:52px}
.tdp-recipe .pin-setup-grid{display:grid;grid-template-columns:300px 1fr;gap:36px;align-items:start;padding:8px 0 10px}
.tdp-recipe .pin-preview{position:relative;border-radius:14px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:2/3;background:#ddd}
.tdp-recipe .pin-preview img{width:100%;height:100%;object-fit:cover}
.tdp-recipe .pin-overlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:16px}
.tdp-recipe .pin-overlay .pin-save{align-self:flex-end;background:var(--pin-red);color:#fff;border:none;border-radius:999px;padding:9px 18px;font-weight:800;font-size:13.5px}
.tdp-recipe .pin-title-band{background:rgba(18,53,39,.92);color:#fff;border-radius:10px;padding:14px 16px;text-align:center}
.tdp-recipe .pin-title-band .t{font-family:"Playfair Display",serif;font-weight:800;font-size:21px;line-height:1.2}
.tdp-recipe .pin-title-band .s{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-bright);font-weight:800;margin-top:5px}
.tdp-recipe .pin-title-band .gold-pill{margin-top:11px;font-size:11.5px;padding:6px 18px}
.tdp-recipe .pin-details h3{font-size:21px;margin:20px 0 8px}
.tdp-recipe .pin-details h3:first-child{margin-top:0}
.tdp-recipe .pin-details p, .tdp-recipe .pin-details li{font-size:15px;color:#33443b}
.tdp-recipe .pin-desc{background:#fff;border:1px solid var(--sage-line);border-radius:12px;padding:16px 18px;font-size:14.5px;color:#33443b}
.tdp-recipe .copy-row{display:flex;gap:10px;align-items:center;margin-top:10px;flex-wrap:wrap}
.tdp-recipe .btn-small{background:var(--green);color:#fff;border:none;border-radius:999px;padding:9px 18px;font-weight:700;font-size:13.5px}
.tdp-recipe .btn-small.ghost{background:#fff;color:var(--green);border:1.5px solid var(--sage)}
.tdp-recipe .copy-msg{font-size:13px;color:var(--green);font-weight:700}
.tdp-recipe .chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.tdp-recipe .chip{background:#fff;border:1px solid var(--sage-line);border-radius:999px;padding:6px 13px;font-size:13px;font-weight:600;color:var(--green-deep)}
.tdp-recipe .setup-list{list-style:none;margin:8px 0 0;padding:0}
.tdp-recipe .setup-list li{display:flex;gap:10px;padding:7px 0;font-size:15px;align-items:flex-start}
.tdp-recipe .setup-list .ck{flex:none;width:21px;height:21px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;margin-top:2px}
.tdp-recipe .setup-list .ck svg{width:11px;height:11px;fill:none;stroke:#fff;stroke-width:3.2}
.tdp-recipe code{background:#fff;border:1px solid var(--sage-line);border-radius:6px;padding:1px 7px;font-size:13px;font-family:ui-monospace,Menlo,monospace;color:var(--green-deep)}
/* ---------- gold list ---------- */
.tdp-recipe .gold-band{background:var(--green-deep);border-radius:18px;padding:38px 30px;text-align:center;margin:52px auto 8px;max-width:960px}
.tdp-recipe .gold-band .over{font-size:11.5px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-bright)}
.tdp-recipe .gold-band h2{color:#fff;font-size:clamp(25px,4.5vw,33px);margin:10px 0 8px}
.tdp-recipe .gold-band p{color:#cfe0d5;margin:0 auto 20px;max-width:520px;font-size:15.5px}
.tdp-recipe .gold-form{display:flex;gap:10px;max-width:520px;margin:0 auto}
.tdp-recipe .gold-form input{flex:1;border-radius:999px;border:1.5px solid var(--sage);padding:13px 20px;font-size:15px;font-family:inherit;min-width:0}
.tdp-recipe .gold-form button{background:linear-gradient(180deg,#dcbb55,#c49b34);border:1.5px solid #a37f24;color:#2f2508;font-weight:800;border-radius:999px;padding:13px 26px;font-size:15px;white-space:nowrap}
.tdp-recipe .gold-msg{color:var(--gold-bright);font-weight:700;font-size:14.5px;margin-top:14px;min-height:21px}
.tdp-recipe .gold-band .fine{font-size:12px;color:#9db8a8;margin-top:6px}
/* ---------- footer ---------- */
.tdp-recipe footer{background:var(--green-deep);color:#cfe0d5;margin-top:56px}
.tdp-recipe .footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:28px;padding:42px 0 30px}
.tdp-recipe footer .logo{color:#fff;font-size:27px}
.tdp-recipe footer .logo-tag{color:var(--sage)}
.tdp-recipe footer p{font-size:14px;margin:12px 0 0;max-width:300px}
.tdp-recipe footer h4{color:#fff;font-family:"Playfair Display",serif;font-size:17px;margin:0 0 12px}
.tdp-recipe footer ul{list-style:none;margin:0;padding:0}
.tdp-recipe footer li{margin:7px 0}
.tdp-recipe footer li a{color:#cfe0d5;font-size:14px}
.tdp-recipe footer li a:hover{color:var(--gold-bright)}
.tdp-recipe footer .socials a{border-color:var(--sage);color:#eaf3ec}
.tdp-recipe .footer-bottom{border-top:1px solid rgba(207,226,214,.18);padding:18px 0 24px;display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;font-size:13px}
/* ---------- toast ---------- */
.tdp-recipe .toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,80px);background:var(--green-deep);color:#fff;padding:13px 24px;border-radius:999px;font-size:14.5px;font-weight:700;box-shadow:var(--shadow);z-index:120;transition:transform .3s ease;max-width:92vw;text-align:center}
.tdp-recipe .toast.show{transform:translate(-50%,0)}
.tdp-recipe .toast .gold{color:var(--gold-bright)}
/* ---------- print overlay ---------- */
.tdp-recipe .print-overlay{position:fixed;inset:0;background:rgba(18,53,39,.55);z-index:200;display:none;place-items:start center;overflow:auto;padding:26px 14px}
.tdp-recipe .print-overlay.open{display:grid}
.tdp-recipe .print-sheet{background:#fff;border-radius:14px;max-width:680px;width:100%;padding:32px 34px;box-shadow:var(--shadow)}
.tdp-recipe .print-sheet h2{font-size:28px;margin-bottom:4px}
.tdp-recipe .print-sheet .sub{color:var(--ink-soft);font-size:14px;margin:0 0 14px}
.tdp-recipe .print-sheet h3{font-size:19px;margin:18px 0 8px}
.tdp-recipe .print-sheet ul, .tdp-recipe .print-sheet ol{margin:0;padding-left:20px;font-size:14.5px}
.tdp-recipe .print-sheet li{margin:4px 0}
.tdp-recipe .print-actions{display:flex;gap:10px;margin-top:24px;flex-wrap:wrap}
.tdp-recipe .print-note{font-size:13px;color:var(--muted);margin-top:12px}
@media (max-width:860px){
.tdp-recipe .related-grid{grid-template-columns:1fr 1fr}
.tdp-recipe .pin-setup-grid{grid-template-columns:1fr}
.tdp-recipe .pin-preview{max-width:300px;margin:0 auto}
.tdp-recipe .rc-meta{grid-template-columns:repeat(3,1fr)}
.tdp-recipe .rc-meta div{border-bottom:1px solid var(--sage-line)}
.tdp-recipe .footer-grid{grid-template-columns:1fr 1fr}
.tdp-recipe .rating-flex{flex-direction:column;align-items:stretch;text-align:center}
.tdp-recipe .rate-box{text-align:center}
}
@media (max-width:560px){
.tdp-recipe .ing-grid{grid-template-columns:1fr}
.tdp-recipe .related-grid{grid-template-columns:1fr}
.tdp-recipe .gold-form{flex-direction:column}
.tdp-recipe .rc-body{padding:22px 18px 6px}
.tdp-recipe .rc-head{padding:24px 18px 20px}
.tdp-recipe .logo-tag{display:none}
.tdp-recipe .socials a{width:30px;height:30px}
.tdp-recipe .hero-photo img{height:52vh}
.tdp-recipe .device-switch{right:10px;bottom:10px}
.tdp-recipe .device-switch button{padding:7px 12px;font-size:12px}
}
@media print{
.tdp-recipe *{visibility:hidden}
.tdp-recipe #recipe-card, .tdp-recipe #recipe-card *{visibility:visible}
.tdp-recipe #recipe-card{position:absolute;inset:0;border:none;box-shadow:none;max-width:none}
.tdp-recipe .device-switch, .tdp-recipe .toast, .tdp-recipe .print-overlay{display:none !important}
}
@media (prefers-reduced-motion:reduce){
.tdp-recipe{scroll-behavior:auto}
.tdp-recipe .toast{transition:none}
}

/* ==========================================================================
   Phone layout — viewport media queries (max-width 640px)
   --------------------------------------------------------------------------
   WHY THIS BLOCK EXISTS: the phone overrides above use @container queries
   on .site, but the theme markup has no .site wrapper, so those rules
   cannot be relied on to fire on a real phone — on the live site the
   desktop layout persisted at phone width (4-across grids, wrapping
   header, overflowing sticky bar). This block re-asserts the whole phone
   layout with plain viewport @media queries, which fire on any phone in
   any modern browser, and upgrades the pieces the container rules left
   broken (grids to one column, sticky bar wraps, hamburger header,
   full-width search). It comes last in the file so it wins over the
   container rules at equal specificity. Desktop (>640px) is untouched:
   every rule below is inside the media query, and the hamburger toggle
   + second search button are display:none outside it.
   The recipe pages (.tdp-recipe) keep their own @media rules above;
   none of the selectors below match recipe markup except the shared
   theme header (.site-head) and sticky bar, which are fixed the same
   way there. The Pinterest p:domain_verify meta tag in header.php is
   untouched by this block.
   ========================================================================== */

/* Hamburger toggle (checkbox hack — pure CSS, works without JS) and the
   phone-only second search button. Both hidden on desktop. */
.tdp-nav-toggle{ position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; margin:0; }
.tdp-nav-toggle-btn{ display:none; }
.tdp-head-search-btn{ display:none; }
.tdp-nav-toggle:focus-visible ~ .tdp-nav-toggle-btn{ outline:2px solid var(--leaf); outline-offset:2px; }

@media (max-width: 640px){
  /* --- Safety: nothing may force the page wider than the phone.
     overflow-x:clip keeps position:sticky working; the hidden
     declaration is the fallback for browsers without clip support.
     Bottom padding keeps the footer clear of the sticky bar. --- */
  html, body{ overflow-x:hidden; overflow-x:clip; }
  body:not(.tdp-sticky-hidden){ padding-bottom:180px; }

  /* v1.2.7: while the hamburger menu is open, hide the sticky bar so it
     cannot cover the bottom menu items (CHRISTMAS / ABOUT). */
  body:has(#tdpNavToggle:checked) .sticky-offer{ display:none; }

  /* --- Announce bar + header (hamburger). --- */
  .announce{ display:block; text-align:center; padding:10px 12px; font-size:10.5px; letter-spacing:.14em; }
  .site-head{ padding:12px 16px 10px; gap:10px; }
  .logo{ font-size:34px; }
  .custom-logo{ height:36px; }
  .tdp-nav-toggle-btn{ display:grid; order:2; margin-left:auto; flex:none; }
  .tdp-nav-toggle-btn .nav-ic{ display:grid; place-items:center; }
  .tdp-nav-toggle-btn .nav-ic-close{ display:none; }
  .tdp-nav-toggle-btn svg{ width:18px; height:18px; fill:currentColor; }
  .tdp-nav-toggle:checked ~ .tdp-nav-toggle-btn .nav-ic-open{ display:none; }
  .tdp-nav-toggle:checked ~ .tdp-nav-toggle-btn .nav-ic-close{ display:grid; }
  /* --- Phone header rows: row 1 = logo + hamburger; row 2 = search + socials in one line. --- */
  .site-head::after{ content:""; order:3; flex-basis:100%; height:0; }
  .tdp-head-search-btn{ display:grid; order:4; flex:none; width:38px; height:38px; margin-left:0; }
  .mainnav{ display:none; order:5; width:100%; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:0; margin:8px 0 0; padding:10px 0 2px; border-top:1px solid var(--line); }
  .tdp-nav-toggle:checked ~ .mainnav{ display:flex; }
  .mainnav a{ font-size:14px; letter-spacing:.14em; padding:10px 4px; display:block; border-bottom:1px solid var(--mint-wash); }
  .mainnav a:last-of-type{ border-bottom:none; }
  .mainnav .nav-search{ align-self:flex-start; margin:10px 0 2px; }
  .head-socials{ position:static; order:4; width:auto; justify-content:flex-start; padding:0; gap:6px; }
  .social-btn{ width:30px; height:30px; }
  .social-btn svg{ width:14px; height:14px; }
  .head-search{ order:6; width:100%; }
  .head-search input{ width:100%; min-width:0; }

  /* --- Tagline + stats (already stacked; same values as container rules). --- */
  .tagline{ padding:24px 16px 0; }
  .stat{ padding:12px 14px; }
  .stat .num{ font-size:21px; }

  /* --- Hero. --- */
  .hero{ padding:16px 16px 0; }
  .hero-card img{ height:400px; }
  .hero-banner{ padding:14px 14px 12px; }
  .hero-bottom{ padding:16px; }

  /* --- Sections + search band (search input full-width). --- */
  .section{ padding:24px 16px 0; }
  .search-band{ margin:24px 16px 0; padding:22px 16px; }
  .search-row{ flex-direction:column; }
  .search-row input{ width:100%; min-width:0; }
  .search-row .btn-green{ width:100%; }

  /* --- One-column grids (the key fix: never 4/5/3-across on phone).
     minmax(0,1fr) + min-width:0 stop card min-content from forcing
     the page wider than the viewport. --- */
  .grid{ grid-template-columns:minmax(0, 1fr); gap:12px; }
  .card{ min-width:0; }
  .card .ph img{ height:150px; }
  .card h4{ font-size:15.5px; }
  .card .meta{ flex-wrap:wrap; }
  .cat-grid{ grid-template-columns:minmax(0, 1fr); gap:12px; }
  .cat-card{ min-width:0; }
  .cat-card img{ height:110px; }
  .mp-grid{ grid-template-columns:minmax(0, 1fr); }
  .mp-day{ min-width:0; }
  .mp-day img{ height:130px; }
  .vid-grid{ grid-template-columns:minmax(0, 1fr); gap:12px; }
  .vid-card{ min-width:0; }

  /* --- As Seen On strip stacks. --- */
  .seen-strip{ margin:18px 16px 0; padding:18px 16px; flex-direction:column; align-items:flex-start; gap:14px; }
  .seen-strip .seen-main{ min-width:0; }
  .seen-stats{ width:100%; flex-wrap:wrap; }
  .seen-stat{ padding:2px 10px; }

  /* --- Filters, journey, meal plan. --- */
  .flab{ width:100%; text-align:left; }
  .journey{ margin:18px 16px 0; }
  .meal-plan{ margin:24px 16px 0; padding:22px 16px; }
  .mp-form{ flex-direction:column; }
  .mp-form input{ width:100%; min-width:0; }
  .mp-form .btn-green{ width:100%; }

  /* --- Trust + seasonal hubs (already stacked; re-assert). --- */
  .trust{ margin:24px 16px 0; grid-template-columns:1fr; }
  .trust .tbody{ padding:22px; }
  .season-hubs{ grid-template-columns:1fr; margin:16px 16px 0; }
  .author-row{ flex-wrap:wrap; }

  /* --- Seasonal band stacks; its buttons go full-width so the long
     "Holiday Menu Planner" label (white-space:nowrap on desktop) cannot
     force the page wider. The button wrapper is the only div with an
     inline style attribute inside .season. --- */
  .season{ margin:24px 16px 0; padding:24px 16px; flex-direction:column; align-items:stretch; }
  .season img{ width:100%; height:170px; }
  .season .sbody{ min-width:0; }
  .season > div[style]{ width:100%; }
  .season .btn-gold{ width:100%; white-space:normal; text-align:center; }

  /* --- Recipe of the Day stacks image above text. --- */
  .rotd{ margin:24px 16px 0; grid-template-columns:1fr; padding:16px; }
  .rotd img{ width:100%; height:170px; }

  /* --- Quiz, Most Saved, videos, freebies, news. --- */
  .quiz{ margin:24px 16px 0; padding:24px 16px 20px; }
  .qresult.show{ grid-template-columns:1fr; }
  .qresult img{ width:100%; height:150px; min-height:0; }
  .saved-strip{ margin:24px 16px 0; padding:20px 16px; }
  .ss-card{ flex-direction:column; align-items:stretch; }
  .ss-img{ width:100%; height:170px; }
  .ss-main{ min-width:0; }
  .ss-stats{ width:100%; justify-content:flex-start; flex-wrap:wrap; }
  .ss-stat{ padding:4px 12px 4px 0; }
  .ss-stat + .ss-stat{ border-left:none; padding-left:12px; }
  .freebies{ grid-template-columns:1fr; }
  .freebie form{ flex-direction:column; }
  .freebie input{ width:100%; min-width:0; }
  .freebie .btn-green{ width:100%; }
  .news{ padding:24px 16px 0; }
  .news form{ flex-direction:column; }
  .news input{ width:100%; min-width:0; }
  .news .btn-green{ width:100%; }
  .countdown{ gap:8px; }

  /* --- Footer. --- */
  .site-foot{ padding:30px 20px 22px; }

  /* --- Sticky offer bar: wraps inside the phone width, everything
     visible and tappable, dismissible. Text takes its own row; the
     button grows to fill the second row beside the close button.
     max-width in vw units caps the bar at the viewport even if its
     containing block were ever widened by overflowing content. --- */
  .sticky-offer{
    width:calc(100% - 24px);
    max-width:calc(100vw - 24px);
    margin:10px auto 6px;
    padding:12px 14px;
    border-radius:18px;
    flex-wrap:wrap;
    gap:10px;
  }
  .sticky-offer .so-txt{ flex:1 1 100%; min-width:0; font-size:14px; }
  .sticky-offer .btn-gold{ flex:1 1 auto; min-width:0; white-space:normal; text-align:center; padding:12px 16px; }
  .sticky-offer .so-close{ flex:none; }

  /* --- Seasonal hub count: let the "42 PINS · THANKSGIVING RECIPES"
     caption wrap on phone instead of clipping its final letter. --- */
  .season-mini .hub-count{ letter-spacing:.06em; font-size:12px; white-space:normal; overflow-wrap:break-word; }
}

/* ==========================================================================
   v1.2.12 — homepage runs on the real published posts.
   - Hero is a link to the newest post; the veil is deepened (approved demo)
     so the title stays legible over bright real photos, and the blurb gets
     a soft shadow for the same reason.
   - Cards, Recipe of the Day and quiz results link to their posts.
   - Category tiles are links to their archive pages.
   - Unrated posts show a "New" badge, never a fake rating.
   ========================================================================== */
.hero-bottom .blurb{ text-shadow:0 1px 10px rgba(15,47,32,.45); }
a.hero-card{ display:block; text-decoration:none; }
.card h4 a{ color:inherit; text-decoration:none; }
.card h4 a:hover{ text-decoration:underline; }
.card .ph a.card-link{ display:block; }
.cat-card{ text-decoration:none; }
.cat-card .ccount.zero{ color:var(--ink-soft); font-weight:500; text-transform:none; letter-spacing:.02em; }
.new-badge{ display:inline-block; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--deep-2); background:var(--mint-wash); border:1px solid var(--sage); border-radius:999px; padding:3px 9px; }
.rotd h3 a{ color:inherit; text-decoration:none; }
.rotd h3 a:hover{ text-decoration:underline; }
.qresult h4 a{ color:inherit; text-decoration:none; }
.qresult h4 a:hover{ text-decoration:underline; }
.qresult .qr-link{ display:block; }
.ss-main .ss-title a{ color:inherit; text-decoration:none; }
.ss-main .ss-title a:hover{ text-decoration:underline; }
a.btn-gold{ display:inline-block; text-decoration:none; text-align:center; }
