/*
Theme Name: ThinkingPets
Theme URI: https://thinkingpets.com
Author: George van Huyssteen
Author URI: https://thinkingpets.com
Description: A standalone WordPress theme for ThinkingPets — evidence-based, force-free dog and cat behaviour training courses. Built to work with WooCommerce (course sales/cart/checkout) and LearnPress (course curriculum), and to remain editable via the WordPress Customizer. Elementor Pro's Theme Builder can still override any template on top of this theme if you prefer to design visually.
Version: 5.0
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: thinkingpets
*/

:root{
  --bg:#FDFDFB; --ink:#16181B; --muted:#63675E; --line:#E4E4DE;
  --moss:#8DC63F; --moss-dark:#5E8A26; --gold:#C08A2E; --card:#FFFFFF;
  --bg-soft:#F1F5E9; --bg-band:#EEF2E4; --chrome-bg:#F2EFE4; --bg-affil:#FBF6E9; --gold-dark:#8F6516;
  --shadow-sm:0 1px 2px rgba(22,24,27,.05), 0 2px 8px rgba(22,24,27,.04);
  --shadow-md:0 2px 4px rgba(22,24,27,.05), 0 10px 24px rgba(22,24,27,.06);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){--bg:#15181A;--ink:#F1F1EC;--muted:#AFB3A7;--line:#2C302B;--card:#1D2320;--moss:#9FDA55;--moss-dark:#B7E87E;--gold:#E0B45C;--bg-soft:#1A1F1A;--bg-band:#1B201B;--chrome-bg:#12140F;--bg-affil:#1E1B12;--gold-dark:#E9C36F;}
}
:root[data-theme="dark"]{--bg:#15181A;--ink:#F1F1EC;--muted:#AFB3A7;--line:#2C302B;--card:#1D2320;--moss:#9FDA55;--moss-dark:#B7E87E;--gold:#E0B45C;--bg-soft:#1A1F1A;--bg-band:#1B201B;--chrome-bg:#12140F;--bg-affil:#1E1B12;--gold-dark:#E9C36F;}
*{box-sizing:border-box;}
html{scroll-padding-top:env(safe-area-inset-top,0px);}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:'Work Sans',system-ui,sans-serif;
}
.page-frame{
  background:var(--bg);color:var(--ink);
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);
}
h1,h2,h3{font-family:'Fraunces',Georgia,serif;font-weight:500;margin:0;letter-spacing:-0.01em;}
a{color:inherit;}
img{max-width:100%;}
.wrap{max-width:1120px;margin:0 auto;padding:0 28px;}

.topbar{
  background:linear-gradient(90deg, var(--moss-dark), #4C7620);
  color:#F3EFE2;font-size:13px;padding:8px 0;text-align:center;
}
.topbar a{color:#F3EFE2;}

header.nav{
  background:var(--chrome-bg);border-bottom:1px solid var(--line);
  box-shadow:0 2px 10px rgba(22,24,27,.04);
  padding-top:env(safe-area-inset-top,0px);position:relative;z-index:10;
}
.nav-inner{display:flex;align-items:center;gap:18px;padding:18px 0;flex-wrap:wrap;}
/* Logo stacked directly above the menu: the logo's left edge lines up with
   the left edge of the first menu tab (Home). */
.nav-brand{display:flex;flex-direction:column;align-items:flex-start;gap:10px;flex:0 1 auto;min-width:0;}
.logo{display:flex;align-items:center;gap:10px;white-space:nowrap;text-decoration:none;flex:0 0 auto;margin:0;transform-origin:left center;transition:transform .18s ease;}
.logo:hover{transform:scale(1.04);}
.logo img{height:78px;width:auto;display:block;filter:drop-shadow(0 3px 8px rgba(22,24,27,.16));}
.logo-text{font-family:'Fraunces',Georgia,serif;font-size:26px;font-weight:600;color:var(--ink);}
.navlinks{display:flex;gap:10px;font-size:13.5px;align-items:center;flex-wrap:wrap;flex:0 1 auto;margin-right:24px;}
.navlinks > ul{display:flex;gap:10px;align-items:center;flex-wrap:wrap;list-style:none;margin:0;padding:0;}
.navlinks li{display:flex;align-items:center;margin:0;padding:0;list-style:none;position:relative;}
.navlinks a{
  text-decoration:none;font-weight:700;color:var(--ink);letter-spacing:.01em;
  border:1px solid var(--line);border-radius:8px;background:var(--card);
  padding:7px 13px;white-space:nowrap;transition:border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.navlinks a:hover{border-color:var(--moss);color:var(--moss-dark);box-shadow:var(--shadow-sm);}

/* Dropdowns for menu items with children (Appearance → Menus) — hover
   only, triggered by the menu item itself, nothing extra to click. */
.navlinks .sub-menu{
  display:none;position:absolute;top:100%;left:0;min-width:220px;
  background:var(--card);border:1px solid var(--line);border-radius:10px;
  box-shadow:var(--shadow-md);padding:8px;margin:0;z-index:60;
  flex-direction:column;gap:2px;list-style:none;
}
.navlinks li:hover > .sub-menu,
.navlinks li:focus-within > .sub-menu{display:flex;}
.navlinks .sub-menu li{width:100%;}
.navlinks .sub-menu a{
  display:block;width:100%;border:none;background:none;border-radius:6px;
  padding:9px 10px;font-weight:600;box-shadow:none;
}
.navlinks .sub-menu a:hover{background:var(--bg-soft);color:var(--moss-dark);box-shadow:none;}
.navlinks .sub-menu .sub-menu{top:0;left:calc(100% + 6px);}
.search{
  display:flex;align-items:center;border:1px solid var(--line);border-radius:999px;
  padding:6px 10px;gap:5px;color:var(--muted);font-size:12.5px;background:var(--card);
  flex:0 0 auto;width:128px;margin-left:auto;transition:width .15s ease, border-color .15s ease;
}
.search:focus-within{width:170px;border-color:var(--moss);}
.search input{border:none;background:none;outline:none;font-family:inherit;font-size:12.5px;color:var(--ink);flex:1;min-width:0;}
.search input::placeholder{color:var(--muted);}
.btn{
  font-family:inherit;font-size:14px;font-weight:600;letter-spacing:.01em;padding:9px 18px;border-radius:6px;border:1px solid var(--ink);
  background:none;cursor:pointer;color:var(--ink);text-decoration:none;display:inline-block;
  transition:background .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.btn:hover{border-color:var(--moss-dark);color:var(--moss-dark);}
.btn.solid{background:var(--moss);border-color:var(--moss);color:#fff;box-shadow:var(--shadow-sm);}
.btn.solid:hover{background:var(--moss-dark);border-color:var(--moss-dark);color:#fff;box-shadow:var(--shadow-md);}

.basket-wrap{position:relative;flex:0 0 auto;}
.basket-toggle{
  position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border:1px solid var(--line);border-radius:8px;
  background:var(--card);font-size:17px;cursor:pointer;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.basket-toggle:hover{border-color:var(--moss);box-shadow:var(--shadow-sm);}
.basket-count{
  position:absolute;top:-6px;right:-6px;min-width:16px;height:16px;padding:0 4px;
  border-radius:999px;background:var(--moss);color:#fff;font-size:10px;line-height:16px;
  text-align:center;font-weight:700;
}
.basket-panel{
  position:absolute;top:calc(100% + 10px);right:0;width:280px;max-width:calc(100vw - 32px);
  background:var(--card);border:1px solid var(--line);border-radius:10px;
  box-shadow:var(--shadow-md);padding:16px;z-index:50;
  display:none;
}
.basket-wrap.is-open .basket-panel{display:block;}
.basket-empty{color:var(--muted);font-size:13.5px;text-align:center;padding:8px 0;margin:0;}
.basket-items{list-style:none;margin:0 0 12px;padding:0;max-height:220px;overflow-y:auto;}
.basket-item{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:13px;padding:7px 0;border-bottom:1px solid var(--line);}
.basket-item:last-child{border-bottom:none;}
.basket-item-name{flex:1;color:var(--ink);}
.basket-item-qty{color:var(--muted);white-space:nowrap;}
.basket-item-price{color:var(--ink);font-weight:600;white-space:nowrap;}
.basket-subtotal{display:flex;justify-content:space-between;font-weight:600;padding:10px 0 0;border-top:1px solid var(--line);margin-top:2px;}
.basket-actions{display:flex;gap:8px;margin-top:12px;}
.basket-actions .btn{flex:1;text-align:center;padding:8px 10px;font-size:13px;}

.hero{
  padding:64px 0 40px;border-bottom:1px solid var(--line);
  background:linear-gradient(180deg, var(--bg-soft) 0%, var(--bg) 78%);
}
.hero-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:56px;align-items:center;}
.eyebrow-free{
  color:var(--moss-dark);font-size:13.5px;margin-bottom:16px;font-weight:600;
  display:inline-block;background:rgba(141,198,63,.14);border-radius:999px;padding:5px 14px;
}
.hero h1{font-size:44px;line-height:1.12;max-width:15ch;}
.hero p.sub{color:var(--muted);font-size:17px;max-width:42ch;margin-top:18px;line-height:1.6;}
.hero-cta{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap;}
.stat-card{
  border:2px solid var(--moss);border-radius:12px;padding:22px;background:var(--chrome-bg);
  box-shadow:var(--shadow-md);
}
.stat-row{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);}
.stat-row:last-child{border-bottom:none;}
.stat-num{font-family:'Fraunces',serif;font-size:22px;color:var(--moss-dark);}
.stat-label{color:var(--muted);font-size:13px;max-width:16ch;text-align:right;}

.instructors{margin-bottom:4px;text-align:left;}
.instructor{display:flex;align-items:center;gap:20px;padding:22px 0;border-bottom:1px solid var(--line);flex-wrap:wrap;}
.instructor .avatar{
  position:relative;width:60px;height:60px;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;
  font-size:20px;font-weight:600;color:#fff;box-shadow:var(--shadow-sm);
}
.instructor .avatar::after{
  content:'✓';position:absolute;bottom:-2px;right:-2px;width:18px;height:18px;
  border-radius:50%;background:var(--moss-dark);color:#fff;font-size:10px;font-weight:700;
  display:flex;align-items:center;justify-content:center;border:2px solid var(--card);
}
.instructor .who b{font-family:'Fraunces',serif;font-weight:500;text-align:left;}
.instructor .who span{color:var(--muted);font-size:13.5px;display:block;margin-top:2px;text-align:left;}
.chips{display:flex;gap:10px;flex-wrap:wrap;padding:22px 0;border-bottom:1px solid var(--line);}
.chip{border:1px solid var(--line);padding:7px 14px;border-radius:999px;font-size:13.5px;color:var(--muted);text-decoration:none;display:inline-block;transition:border-color .15s ease, color .15s ease;}
.chip:hover{border-color:var(--moss);color:var(--moss-dark);}
.chip.active{border-color:var(--moss);color:var(--moss-dark);background:rgba(79,107,74,.08);font-weight:600;}

.section-head{display:flex;justify-content:space-between;align-items:baseline;margin:44px 0 20px;flex-wrap:wrap;gap:8px;}
.section-head h2{font-size:26px;text-align:left;}
.section-head a{font-size:14px;color:var(--moss-dark);text-decoration:none;border-bottom:1px solid var(--moss-dark);}

.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.grid-courses{grid-template-columns:repeat(4,1fr);}
.course{
  border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card);
  display:flex;flex-direction:column;box-shadow:var(--shadow-sm);
  transition:transform .15s ease, box-shadow .15s ease;
}
.course:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);}
.thumb-link{display:block;}

/* Alternating tinted band — used to visually separate the second course
   grid ("Professional development") from the first, instead of the whole
   page reading as one flat white slab. */
.alt-band{
  background:var(--bg-band);border:1px solid var(--line);border-radius:16px;
  padding:8px 28px 36px;margin:44px 0 20px;
}
.alt-band .section-head{margin-top:28px;}
.alt-band .course{background:var(--card);}
@media (max-width:560px){ .alt-band{padding:4px 16px 24px;} }

/* Affiliated (partner) courses — warm gold treatment, deliberately distinct
   from the green "Professional development" band above it. */
.affiliate-band{
  background:linear-gradient(180deg, var(--bg-affil) 0%, var(--bg) 100%);
  border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:16px;
  padding:32px 28px 36px;margin:56px 0 20px;box-shadow:var(--shadow-sm);
}
.affiliate-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:24px;}
.eyebrow-partner{
  display:inline-block;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--gold-dark);background:rgba(192,138,46,.12);border-radius:999px;padding:4px 12px;margin-bottom:10px;
}
.affiliate-head h2{font-size:28px;text-align:left;}
.section-sub{color:var(--muted);font-size:15px;margin:6px 0 0;max-width:52ch;line-height:1.55;text-align:left;}
.affiliate-link{
  font-size:14px;font-weight:600;color:var(--gold-dark);text-decoration:none;
  border-bottom:1px solid var(--gold);white-space:nowrap;
}
.affiliate-link:hover{color:var(--ink);border-color:var(--ink);}
.badge.badge-partner{color:var(--gold-dark);background:rgba(192,138,46,.12);border-color:var(--gold);}
.affiliate-band .addbtn{border-color:var(--gold);color:var(--gold-dark);font-weight:600;transition:background .15s ease, color .15s ease;}
.affiliate-band .addbtn:hover{background:var(--gold);border-color:var(--gold);color:#fff;}
.affiliate-band .course{background:var(--card);}
@media (max-width:560px){ .affiliate-band{padding:24px 16px 28px;} .affiliate-head h2{font-size:24px;} }
.thumb{height:120px;display:flex;align-items:center;justify-content:center;font-size:38px;}
.course .body{padding:16px 16px 18px;display:flex;flex-direction:column;gap:6px;flex:1;}
.badge{display:inline-block;font-size:11.5px;font-weight:600;color:var(--moss-dark);background:rgba(141,198,63,.12);border:1px solid var(--moss);border-radius:4px;padding:2px 7px;width:fit-content;margin-bottom:2px;}
.ctitle{font-family:'Fraunces',serif;font-size:16.5px;line-height:1.3;}
.ctitle a{text-decoration:none;}
.cwho{color:var(--muted);font-size:13px;}
.cmeta{color:var(--muted);font-size:12.5px;margin-top:4px;}
.cfoot{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:10px;gap:10px;}
.price{font-family:'Fraunces',serif;font-size:16px;}
.price ins{text-decoration:none;}
.price del{opacity:.5;font-size:13px;margin-right:4px;}
.addbtn{font-size:12.5px;border:1px solid var(--moss);color:var(--moss-dark);background:none;border-radius:6px;padding:6px 12px;text-decoration:none;display:inline-block;white-space:nowrap;}
.addbtn-wrap a{font-size:12.5px;border:1px solid var(--moss);color:var(--moss-dark);background:none;border-radius:6px;padding:6px 12px;text-decoration:none;display:inline-block;white-space:nowrap;}

footer{border-top:3px solid var(--moss);margin-top:60px;background:var(--chrome-bg);}
.footer-top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;padding:44px 0 32px;}
.footer-brand img{height:34px;margin-bottom:12px;}
.footer-brand p{color:var(--muted);font-size:13.5px;max-width:32ch;line-height:1.6;}
.footer-col h4{font-size:13px;color:var(--ink);margin-bottom:12px;}
.footer-col a{display:block;color:var(--muted);font-size:13.5px;text-decoration:none;margin-bottom:9px;}
.footer-col a:hover{color:var(--moss-dark);}
.footer-bottom{border-top:1px solid var(--line);padding:18px 0;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12.5px;flex-wrap:wrap;gap:10px;}
.theme-credit{display:block;font-size:11px;opacity:.75;margin-top:3px;}

/* Elementor-built header (Theme Builder → Header): keeps the logo, menu,
   search, basket and Sign up vertically centred and gives the row some
   breathing room, matching the PHP header's own spacing. */
.nav-row{padding:10px 0;}
.nav-row .elementor-container{align-items:center;}
.footer-social{display:flex;gap:14px;}
.footer-social a{color:var(--muted);text-decoration:none;border:1px solid var(--line);border-radius:50%;width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:13px;}

/* Generic page/post content typography (not covered by the component styles above) */
.entry-content{color:var(--muted);font-size:16px;line-height:1.7;}
.entry-content p{margin:0 0 18px;}
.entry-content img{border-radius:8px;height:auto;}
.entry-content h2,.entry-content h3{margin:32px 0 12px;color:var(--ink);}
.entry-content ul,.entry-content ol{margin:0 0 18px;padding-left:22px;}
.entry-title{font-size:34px;margin-bottom:8px;}

@media (max-width:1100px){
  .grid-courses{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:820px){
  .footer-top{grid-template-columns:1fr 1fr;}
  .hero-grid{grid-template-columns:1fr;}
  .grid{grid-template-columns:1fr 1fr;}
  .hero h1{font-size:32px;}

  /* Mobile/tablet nav: logo + basket + hamburger stay on the bar; the
     menu, search box and Sign up button move into a slide-down panel
     toggled by the hamburger button. */
  .nav-toggle{
    display:inline-flex;align-items:center;justify-content:center;
    width:40px;height:40px;border:1px solid var(--line);border-radius:8px;
    background:var(--card);font-size:18px;cursor:pointer;flex:0 0 auto;
    order:3;margin-left:auto;transition:border-color .15s ease, box-shadow .15s ease;
  }
  .nav-toggle:hover{border-color:var(--moss);box-shadow:var(--shadow-sm);}
  .nav-brand{display:contents;}
  .basket-wrap{order:2;}
  .navlinks,.search,.btn.solid{display:none;width:100%;}
  .nav-inner.menu-open{align-items:stretch;}
  .nav-inner.menu-open .navlinks,
  .nav-inner.menu-open .search,
  .nav-inner.menu-open .btn.solid{display:flex;}
  .nav-inner.menu-open .navlinks{
    flex-direction:column;align-items:stretch;gap:8px;order:10;margin-top:14px;
  }
  .nav-inner.menu-open .navlinks ul{flex-direction:column;align-items:stretch;gap:8px;}
  .nav-inner.menu-open .navlinks a{width:100%;text-align:center;}

  /* Submenus show inline, always expanded, under their parent in the
     mobile panel — no separate tap target needed, just a flat indented
     list (a floating popover wouldn't make sense in a full-width stack). */
  .nav-inner.menu-open .navlinks li{flex-direction:column;align-items:stretch;flex-wrap:wrap;}
  .nav-inner.menu-open .navlinks .sub-menu{
    display:flex;position:static;box-shadow:none;border:none;background:var(--bg-soft);
    width:100%;margin-top:6px;flex-direction:column;padding:8px;
  }
  .nav-inner.menu-open .navlinks .sub-menu a{text-align:left;background:none;}
  .nav-inner.menu-open .search{order:11;margin:0;width:100%;}
  .nav-inner.menu-open .btn.solid{order:12;width:100%;text-align:center;margin-top:2px;}
}
@media (min-width:821px){
  .nav-toggle{display:none;}
}
@media (max-width:560px){
  .grid{grid-template-columns:1fr;}
  .wrap{padding:0 18px;}
  .footer-top{grid-template-columns:1fr;}
  .nav-inner{gap:10px;}
  .navlinks{margin-right:0;}
}

/* ---------- Light-touch WooCommerce integration ---------- */
.woocommerce-wrap{padding:40px 28px 60px;margin-top:15mm;margin-bottom:15mm;margin-left:auto;margin-right:auto;width:calc(100% - 30mm);}
.woocommerce-message, .woocommerce-info, .woocommerce-error{
  border-top-color:var(--moss) !important; background:var(--card);
}


/* =====================================================================
   PAGES, POSTS & ARCHIVES — the shared "theme style"
   Everything you add from now on (pages, posts, archives, search, 404)
   goes through these, so it automatically matches the rest of the site.
   ===================================================================== */

/* Accessibility helper WordPress expects every theme to provide */
.screen-reader-text{
  border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;
  overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal !important;
}

/* Title banner */
.page-hero{
  background:linear-gradient(180deg, var(--bg-soft) 0%, var(--bg) 100%);
  border-bottom:1px solid var(--line);padding:56px 0 38px;
}
.page-title{font-size:42px;line-height:1.12;max-width:26ch;text-align:left;margin:0;}
.page-meta{color:var(--muted);font-size:14px;margin-top:14px;}
.page-meta a{color:var(--moss-dark);}
.page-intro{color:var(--muted);font-size:17px;line-height:1.6;max-width:60ch;margin-top:14px;}
.page-intro p{margin:0;}
.page-hero .eyebrow-free{margin-bottom:16px;}
.page-hero .eyebrow-free a{color:inherit;text-decoration:none;}

/* Body wrapper + reading column (wide/full blocks break out of it) */
.page-body{
  /* 15mm margin on every side of page, post, archive, search and 404 content.
     Centred + capped by .wrap where used, so it never drifts off-centre. */
  margin:15mm auto;width:calc(100% - 30mm);
  padding:44px 0 72px;
}
.entry-thumb{width:min(1120px, calc(100% - 56px));margin:0 auto 34px;}
.entry-thumb img{width:100%;height:auto;display:block;border-radius:14px;box-shadow:var(--shadow-md);}
.entry-content{font-size:17px;line-height:1.75;color:var(--ink);}
.entry-content > *{width:min(760px, calc(100% - 56px));margin:0 auto 1.3em;}
.entry-content > .alignwide{width:min(1120px, calc(100% - 56px));}
.entry-content > .alignfull{width:100%;max-width:none;}
/* Left/right-aligned blocks sit centred in the reading column rather than floating off to the page edge */
.entry-content > .alignleft,.entry-content > .alignright{float:none;margin-left:auto;margin-right:auto;}
.entry-wide .entry-content > *{width:min(1120px, calc(100% - 56px));}

/* Typography inside content */
.entry-content h2,.entry-content h3,.entry-content h4{margin-top:1.8em;margin-bottom:.5em;line-height:1.2;text-align:left;color:var(--ink);}
.entry-content h2{font-size:30px;}
.entry-content h3{font-size:23px;}
.entry-content h4{font-size:19px;}
.entry-content a{color:var(--moss-dark);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}
.entry-content a:hover{color:var(--ink);}
.entry-content ul,.entry-content ol{padding-left:1.4em;}
.entry-content li{margin-bottom:.4em;}
.entry-content li::marker{color:var(--moss-dark);}
.entry-content blockquote,.entry-content .wp-block-quote{
  border-left:4px solid var(--moss);padding:.4em 0 .4em 1.4em;margin-top:2em;margin-bottom:2em;
  font-family:'Fraunces',Georgia,serif;font-size:1.2em;line-height:1.5;color:var(--ink);
}
.entry-content blockquote p{margin:0 0 .6em;}
.entry-content blockquote cite{display:block;margin-top:.6em;font-family:'Work Sans',sans-serif;font-size:.75em;color:var(--muted);font-style:normal;}
.entry-content img{height:auto;max-width:100%;border-radius:10px;}
.entry-content figcaption,.entry-content .wp-caption-text{color:var(--muted);font-size:13.5px;text-align:center;margin-top:8px;}
.entry-content hr,.entry-content .wp-block-separator{border:0;border-top:1px solid var(--line);margin-top:2.4em;margin-bottom:2.4em;}
.entry-content table{border-collapse:collapse;font-size:15px;}
.entry-content th,.entry-content td{border:1px solid var(--line);padding:10px 14px;text-align:left;}
.entry-content th{background:var(--bg-soft);font-weight:600;}
.entry-content tbody tr:nth-child(even){background:rgba(141,198,63,.05);}
.entry-content pre{background:var(--bg-band);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:16px;overflow:auto;font-size:14px;}
.entry-content code{background:var(--bg-band);padding:2px 6px;border-radius:4px;font-size:.9em;}
.entry-content pre code{background:none;padding:0;}
.entry-content .wp-block-group.has-background{padding:28px;border-radius:14px;}
.entry-content .wp-block-cover,.entry-content .wp-block-media-text{border-radius:14px;overflow:hidden;}
.entry-content .wp-block-columns{gap:28px;}

/* Buttons inserted with the Button block match the theme's buttons */
.wp-block-button__link{
  background:var(--moss);color:#fff;border:1px solid var(--moss);border-radius:6px;padding:10px 20px;
  font-weight:600;font-size:15px;text-decoration:none;box-shadow:var(--shadow-sm);
  transition:background .15s ease, border-color .15s ease;
}
.entry-content a.wp-block-button__link{color:#fff;text-decoration:none;}
.wp-block-button__link:hover,.entry-content a.wp-block-button__link:hover{background:var(--moss-dark);border-color:var(--moss-dark);color:#fff;}
.wp-block-button.is-style-outline .wp-block-button__link{background:transparent;color:var(--ink);border:1px solid var(--ink);box-shadow:none;}
.wp-block-button.is-style-outline .wp-block-button__link:hover{background:transparent;border-color:var(--moss-dark);color:var(--moss-dark);}

/* Brand palette + font sizes offered in the editor */
.has-moss-color{color:#8DC63F !important;}.has-moss-background-color{background-color:#8DC63F !important;}
.has-moss-dark-color{color:#5E8A26 !important;}.has-moss-dark-background-color{background-color:#5E8A26 !important;}
.has-gold-color{color:#C08A2E !important;}.has-gold-background-color{background-color:#C08A2E !important;}
.has-ink-color{color:#16181B !important;}.has-ink-background-color{background-color:#16181B !important;}
.has-muted-color{color:#63675E !important;}.has-muted-background-color{background-color:#63675E !important;}
.has-cream-color{color:#F1F5E9 !important;}.has-cream-background-color{background-color:#F1F5E9 !important;}
.has-white-color{color:#FFFFFF !important;}.has-white-background-color{background-color:#FFFFFF !important;}
.has-small-font-size{font-size:14px;}
.has-normal-font-size{font-size:17px;}
.has-medium-font-size{font-size:20px;}
.has-large-font-size{font-size:28px;}
.has-x-large-font-size{font-size:40px;}

/* Tags, next/previous, pagination */
.entry-tags{width:min(760px, calc(100% - 56px));margin:28px auto 0;display:flex;gap:8px;flex-wrap:wrap;}
.entry-tags a{border:1px solid var(--line);border-radius:999px;padding:5px 13px;font-size:13px;color:var(--muted);text-decoration:none;background:var(--card);}
.entry-tags a:hover{border-color:var(--moss);color:var(--moss-dark);}
.post-navigation{width:min(760px, calc(100% - 56px));margin:48px auto 0;border-top:1px solid var(--line);padding-top:24px;}
.post-navigation .nav-links{display:flex;justify-content:space-between;gap:20px;}
.post-navigation a{text-decoration:none;display:block;}
.post-navigation .nav-next{text-align:right;margin-left:auto;}
.nav-subtitle{display:block;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px;}
.nav-title{font-family:'Fraunces',Georgia,serif;font-size:17px;color:var(--ink);}
.post-navigation a:hover .nav-title{color:var(--moss-dark);}
.pagination{margin-top:36px;}
.pagination .nav-links{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;}
.page-numbers{border:1px solid var(--line);border-radius:8px;padding:8px 14px;text-decoration:none;font-size:14px;font-weight:600;color:var(--ink);background:var(--card);}
a.page-numbers:hover{border-color:var(--moss);color:var(--moss-dark);}
.page-numbers.current{background:var(--moss);border-color:var(--moss);color:#fff;}
.page-numbers.dots{border:none;background:none;}
.no-results{max-width:560px;color:var(--muted);font-size:16px;line-height:1.65;}

/* Form fields inside page content, search and comments */
.page-body input[type="text"],.page-body input[type="email"],.page-body input[type="url"],
.page-body input[type="password"],.page-body input[type="search"],.page-body input[type="tel"],
.page-body input[type="number"],.page-body textarea,.page-body select{
  font-family:inherit;font-size:15px;color:var(--ink);background:var(--card);
  border:1px solid var(--line);border-radius:8px;padding:10px 12px;
}
.page-body input:focus,.page-body textarea:focus,.page-body select:focus{outline:none;border-color:var(--moss);box-shadow:0 0 0 3px rgba(141,198,63,.18);}
.page-body textarea{width:100%;}
.search-form{display:flex;gap:8px;max-width:520px;margin-top:18px;}
.search-form label{flex:1;display:block;}
.search-form .search-field{width:100%;}
.search-form .search-submit,.comment-form .submit{
  font-family:inherit;font-size:14px;font-weight:600;padding:10px 20px;border-radius:6px;cursor:pointer;
  background:var(--moss);border:1px solid var(--moss);color:#fff;box-shadow:var(--shadow-sm);
  transition:background .15s ease, border-color .15s ease;
}
.search-form .search-submit:hover,.comment-form .submit:hover{background:var(--moss-dark);border-color:var(--moss-dark);}

/* Comments */
.comments-area{width:min(760px, calc(100% - 56px));margin:56px auto 0;}
.comments-title,.comment-reply-title{font-size:24px;margin-bottom:20px;text-align:left;}
.comment-list{list-style:none;padding:0;margin:0 0 32px;}
.comment-list .comment{padding:18px 0;border-bottom:1px solid var(--line);}
.comment-list .children{list-style:none;padding-left:28px;}
.comment-author .avatar{border-radius:50%;float:left;margin-right:12px;}
.comment-author .fn{font-family:'Fraunces',Georgia,serif;font-style:normal;font-weight:500;}
.comment-metadata{font-size:12.5px;color:var(--muted);}
.comment-metadata a{color:inherit;text-decoration:none;}
.comment-content{margin-top:10px;font-size:15.5px;line-height:1.7;}
.reply a{font-size:13px;color:var(--moss-dark);text-decoration:none;font-weight:600;}
.comment-form label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px;}
.comment-form p{margin:0 0 16px;}
.comment-form input[type="text"],.comment-form input[type="email"],.comment-form input[type="url"]{width:100%;}

/* Elementor-built pages/posts inherit the same fonts and button colours by
   default (anything you set explicitly inside Elementor still wins). */
.elementor-widget-heading .elementor-heading-title{font-family:'Fraunces',Georgia,serif;font-weight:500;letter-spacing:-0.01em;}
.elementor-widget-text-editor,.elementor-widget-theme-post-content{font-family:'Work Sans',system-ui,sans-serif;}
.elementor-widget-button:not(.btn) .elementor-button{
  background:var(--moss);color:#fff;border-radius:6px;font-family:'Work Sans',system-ui,sans-serif;
  font-weight:600;box-shadow:var(--shadow-sm);
}
.elementor-widget-button:not(.btn) .elementor-button:hover{background:var(--moss-dark);color:#fff;}
/* The homepage template puts .btn on the widget wrapper — let the wrapper carry the look */
.elementor-widget-button.btn .elementor-button{background:transparent;color:inherit;border:0;padding:0;font:inherit;box-shadow:none;}

@media (max-width:820px){
  .page-hero{padding:40px 0 28px;}
  .page-title{font-size:32px;}
}
@media (max-width:560px){
  .page-body,.woocommerce-wrap{margin-top:8mm;margin-bottom:8mm;width:calc(100% - 10mm);} /* 5mm sides on phones — 15mm would squeeze the text column */
  .page-title{font-size:28px;}
  .entry-content{font-size:16px;}
  .post-navigation .nav-links{flex-direction:column;}
  .post-navigation .nav-next{text-align:left;margin-left:0;}
}
