/*
Theme Name: Paddock Wood
Theme URI: https://paddockwoodselfstorage.co.uk/
Author: Trade Search Marketing
Author URI: https://tradesearchmarketing.com/
Description: Bespoke theme for Paddock Wood Self Storage. Container storage in Kent — warm green palette sampled from the company logo, Source Serif 4 headings, Public Sans body. Replaces Kadence. Keeps the Kadence Blocks and GenerateBlocks plugins working via a global-palette shim.
Version: 1.0.6
Requires at least: 6.0
Tested up to: 6.6
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: paddock-wood
Tags: business, custom-logo, custom-menu, featured-images, threaded-comments
*/

/* ══════════════════════════════════════════════════════════
   1. TOKENS
   ══════════════════════════════════════════════════════════ */
:root{
  --paper:#F7F8F2;
  --white:#FFFFFF;
  --sage:#ECF1E3;
  --sage-deep:#DCE7CE;
  --green:#608448;          /* sampled from the logo: #60864A */
  --green-deep:#456130;
  --ink:#24301C;
  --ink-2:#4A5741;
  --muted:#6F7A64;
  --line:#E1E7D6;
  --line-2:#CFDABE;

  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"Public Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;

  --wrap:1120px;
  --prose:68ch;
  --radius:8px;

  /* ── Kadence Blocks / GenerateBlocks palette shim ───────────────
     27 pages use Kadence Blocks and 12 use GenerateBlocks. Those are
     PLUGINS and keep working without the Kadence theme — but their
     saved markup references the theme's global palette variables.
     Without these definitions those pages lose all colour.
     DO NOT REMOVE. Mapped onto this theme's palette.              */
  --global-palette1:#608448;
  --global-palette2:#456130;
  --global-palette3:#24301C;
  --global-palette4:#4A5741;
  --global-palette5:#6F7A64;
  --global-palette6:#CFDABE;
  --global-palette7:#ECF1E3;
  --global-palette8:#F7F8F2;
  --global-palette9:#FFFFFF;
  --global-palette-highlight:#608448;
  --global-palette-btn:#FFFFFF;
  --global-palette-btn-bg:#608448;
  --global-palette-btn-hover:#FFFFFF;
  --global-palette-btn-bg-hover:#456130;
  --global-content-width:1120px;
  --global-content-narrow-width:842px;
  --global-content-edge-padding:1.5rem;
  --global-kb-font-family:var(--sans);
  --global-body-font-family:var(--sans);
  --global-heading-font-family:var(--serif);
  --global-primary-nav-padding:0;
}

/* ══════════════════════════════════════════════════════════
   2. RESET + BASE
   ══════════════════════════════════════════════════════════ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  /* `clip`, NOT `hidden`: overflow:hidden on an ancestor creates a scroll
     container and silently kills position:sticky on the header. */
  overflow-x:clip;
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}
  html{scroll-behavior:auto}
}
img,svg,video,iframe{max-width:100%}
img{height:auto}
h1,h2,h3,h4,h5,h6{
  font-family:var(--serif);font-weight:600;line-height:1.15;
  margin:0 0 .6rem;color:var(--ink);text-wrap:balance;
}
h1{font-size:clamp(2.2rem,4.6vw,3.25rem);letter-spacing:-.015em}
h2{font-size:clamp(1.7rem,3vw,2.35rem);letter-spacing:-.01em}
h3{font-size:1.35rem}
h4{font-size:1.12rem}
h5{font-size:1rem}
h6{font-size:.94rem}
p{margin:0 0 1.1rem}
a{color:var(--green-deep)}
a:hover{color:var(--green)}
:focus-visible{outline:3px solid var(--green);outline-offset:3px;border-radius:3px}
.screen-reader-text{
  position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(1px,1px,1px,1px);clip-path:inset(50%);white-space:nowrap;
}
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--ink);color:#fff;padding:.8rem 1.2rem;border-radius:0 0 6px 0;
}
.skip-link:focus{left:0}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.prose{max-width:var(--prose)}

/* ══════════════════════════════════════════════════════════
   3. BUTTONS
   ══════════════════════════════════════════════════════════ */
.btn,
.wp-block-button__link,
input[type=submit],
button[type=submit]{
  display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
  font-family:var(--sans);font-weight:600;font-size:1rem;line-height:1.2;
  padding:.85rem 1.5rem;border-radius:6px;border:1.5px solid transparent;
  text-decoration:none;cursor:pointer;
  background:var(--green);color:#fff;
  transition:background .15s,border-color .15s,color .15s;
}
.btn:hover,
.wp-block-button__link:hover,
input[type=submit]:hover,
button[type=submit]:hover{background:var(--green-deep);color:#fff}
.btn-quiet{background:transparent;color:var(--green-deep);border-color:var(--line-2)}
.btn-quiet:hover{border-color:var(--green);background:var(--sage);color:var(--green-deep)}
.wp-block-button.is-style-outline .wp-block-button__link{
  background:transparent;color:var(--green-deep);border-color:var(--line-2);
}

/* ══════════════════════════════════════════════════════════
   4. UTILITY TOP BAR
   ══════════════════════════════════════════════════════════ */
.topbar{background:var(--ink);color:#B9C9A9;font-size:.875rem}
.topbar .wrap{display:flex;align-items:center;gap:1.5rem;min-height:42px;flex-wrap:wrap}
.topbar a{color:#DCE7CE;text-decoration:none;display:inline-flex;align-items:center;gap:.45rem}
.topbar a:hover{color:#fff}
.topbar svg{flex:none}
.tb-phone{font-weight:600}
.tb-right{margin-left:auto;display:flex;align-items:center;gap:1.1rem}
.tb-social{
  display:inline-flex;width:30px;height:30px;align-items:center;justify-content:center;
  border:1px solid #46583A;border-radius:50%;transition:background .15s,border-color .15s;
}
.tb-social:hover{background:var(--green);border-color:var(--green)}
.tb-sep{color:#46583A}
@media(max-width:700px){
  .topbar .wrap{justify-content:center;gap:1rem;padding-top:.5rem;padding-bottom:.5rem}
  .tb-right{margin-left:0}
  .tb-hours{display:none}
}

/* ══════════════════════════════════════════════════════════
   5. HEADER + NAVIGATION
   ══════════════════════════════════════════════════════════ */
.site-head{
  position:sticky;top:0;z-index:40;
  background:rgba(247,248,242,.94);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.admin-bar .site-head{top:32px}
@media(max-width:782px){.admin-bar .site-head{top:46px}}
.head-in{display:flex;align-items:center;gap:2rem;height:76px}
.brand{display:block;text-decoration:none;flex:none;line-height:0}
.brand img{display:block;height:46px;width:auto}
.brand-text{
  font-family:var(--serif);font-size:1.2rem;font-weight:600;
  color:var(--ink);line-height:1.1;text-decoration:none;
}
@media(max-width:520px){.brand img{height:36px}}

.nav{margin-left:auto}
.nav ul{list-style:none;display:flex;gap:1.5rem;margin:0;padding:0;align-items:center}
.nav li{position:relative}
.nav a{
  font-size:.97rem;font-weight:500;color:var(--ink-2);
  text-decoration:none;display:inline-block;padding:.4rem 0;
}
.nav a:hover,
.nav .current-menu-item>a,
.nav .current-menu-ancestor>a,
.nav .current_page_item>a{color:var(--green-deep)}
.nav .current-menu-item>a,
.nav .current_page_item>a{font-weight:600}

/* dropdowns */
.nav .menu-item-has-children>a::after{
  content:"";display:inline-block;width:.4em;height:.4em;margin-left:.45em;
  border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;
  transform:translateY(-2px) rotate(45deg);
}
.nav ul ul{
  position:absolute;top:100%;left:-16px;min-width:230px;
  display:block;flex-direction:column;gap:0;
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:.4rem 0;box-shadow:0 12px 28px rgba(36,48,28,.10);
  opacity:0;visibility:hidden;transform:translateY(6px);
  transition:opacity .15s ease,transform .15s ease,visibility .15s;
}
.nav li:hover>ul,
.nav li:focus-within>ul{opacity:1;visibility:visible;transform:translateY(0)}
.nav ul ul a{display:block;padding:.55rem 1.1rem;font-size:.95rem;color:var(--ink-2)}
.nav ul ul a:hover{background:var(--sage);color:var(--green-deep)}

.head-cta{display:flex;align-items:center;gap:.8rem}

/* hamburger */
.burger{
  display:none;width:46px;height:46px;align-items:center;justify-content:center;
  background:none;border:1.5px solid var(--line-2);border-radius:7px;
  color:var(--ink);cursor:pointer;padding:0;
}
.burger:hover{border-color:var(--green)}
.burger span{
  display:block;width:20px;height:2px;background:currentColor;border-radius:2px;
  position:relative;transition:background .15s;
}
.burger span::before,.burger span::after{
  content:"";position:absolute;left:0;width:20px;height:2px;
  background:currentColor;border-radius:2px;transition:transform .2s ease,top .2s ease;
}
.burger span::before{top:-6px}
.burger span::after{top:6px}
.burger[aria-expanded="true"] span{background:transparent}
.burger[aria-expanded="true"] span::before{top:0;transform:rotate(45deg)}
.burger[aria-expanded="true"] span::after{top:0;transform:rotate(-45deg)}

/* mobile panel */
.mobile-nav{display:none;border-top:1px solid var(--line);background:var(--paper);max-height:78vh;overflow-y:auto}
.mobile-nav[data-open]{display:block}
.mobile-nav ul{list-style:none;margin:0;padding:0}
.mobile-nav li{border-bottom:1px solid var(--line)}
.mobile-nav li:last-child{border-bottom:0}
.mobile-nav a{
  display:block;padding:.95rem 0;font-size:1.08rem;font-weight:500;
  color:var(--ink);text-decoration:none;
}
.mobile-nav .current-menu-item>a,
.mobile-nav .current_page_item>a{color:var(--green-deep);font-weight:600}
.mobile-nav ul ul{margin:0 0 .4rem 1rem;border-left:2px solid var(--line-2);padding-left:1rem}
.mobile-nav ul ul li{border-bottom:0}
.mobile-nav ul ul a{padding:.55rem 0;font-size:1rem;color:var(--ink-2)}
.mobile-nav .mob-quote{color:var(--green-deep);font-weight:600}

@media(max-width:900px){
  .nav{display:none}
  .burger{display:flex}
  .head-cta{margin-left:auto}
  .head-cta .btn{display:none}  /* the floating bar carries the CTA on mobile */
}

/* ══════════════════════════════════════════════════════════
   6. PAGE HEADER BAND — the device that unifies every inner page
   ══════════════════════════════════════════════════════════ */
.pagehead{background:var(--sage);border-bottom:1px solid var(--line-2)}
.pagehead .wrap{padding-top:2.6rem;padding-bottom:2.6rem}
.pagehead h1{max-width:22ch;margin-bottom:0}
.pagehead .lede{margin-top:.9rem}
/* .lede is used in page CONTENT as well as the page header — keep it unscoped
   or an intro paragraph inside .entry-content renders as ordinary body text. */
.lede{max-width:56ch;font-size:1.18rem;line-height:1.6;color:var(--ink-2)}
.entry-content .lede{margin-bottom:1.6rem}
.rule{width:56px;height:3px;background:var(--green);border-radius:2px;margin-bottom:1.4rem}
.crumbs{font-size:.85rem;color:var(--muted);margin-bottom:.9rem}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--green-deep)}
.crumbs .sep{margin:0 .4rem;opacity:.6}

/* ══════════════════════════════════════════════════════════
   7. CONTENT AREA + CORE BLOCK STYLES
   41 pages use wp:table and 137 posts use core blocks, so this
   section is load-bearing — it is what Kadence used to provide.
   ══════════════════════════════════════════════════════════ */
.site-main{padding:clamp(2.4rem,5vw,4rem) 0}
/* A page whose content OPENS with a full-width block (legacy GenerateBlocks
   hero banners, cover images) sits flush against the header band — the top
   padding is right for text, wrong for a full-bleed image. The `style +`
   variant covers content that starts with an inline <style> tag. */
.site-main:has(> .wrap > .entry-content > .alignfull:first-child),
.site-main:has(> .wrap > .entry-content > style:first-child + .alignfull){padding-top:0}
.entry-content > *{margin-top:0;margin-bottom:1.1rem}
.entry-content > *:last-child{margin-bottom:0}
.entry-content h2{margin-top:2.2rem}
.entry-content h3{margin-top:1.8rem}
.entry-content ul,.entry-content ol{padding-left:1.3rem;margin-bottom:1.2rem}
.entry-content li{margin-bottom:.45rem}
.entry-content li::marker{color:var(--green)}
.entry-content a{text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--line-2)}
.entry-content a:hover{text-decoration-color:var(--green)}
.entry-content a.btn,.entry-content .btn{text-decoration:none}

/* measured column for articles */
.entry-content.is-prose{max-width:var(--prose)}
.entry-content.is-prose p{font-size:1.06rem;line-height:1.75;color:var(--ink-2)}

/* tables — 41 pages depend on this */
.entry-content table,
.wp-block-table table{
  width:100%;border-collapse:collapse;background:var(--white);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;
  font-size:.97rem;
}
.wp-block-table{overflow-x:auto}   /* never let a table scroll the page body */
.entry-content th,.wp-block-table th{
  background:var(--sage);color:var(--ink);font-weight:600;text-align:left;
  padding:.8rem 1rem;border-bottom:1px solid var(--line-2);
}
.entry-content td,.wp-block-table td{
  padding:.8rem 1rem;border-bottom:1px solid var(--line);color:var(--ink-2);vertical-align:top;
}
.entry-content tr:last-child td{border-bottom:0}
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) td{background:#FBFCF8}

/* spec list — paired fact/value rows. Used for unit specs and site details. */
.spec{border-top:1px solid var(--line);margin:1.6rem 0}
.spec div{display:grid;grid-template-columns:190px 1fr;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--line)}
.spec dt{font-weight:600;color:var(--ink);margin:0}
.spec dd{margin:0;color:var(--ink-2)}
@media(max-width:600px){.spec div{grid-template-columns:1fr;gap:.15rem}}

blockquote,.wp-block-quote{
  margin:1.8rem 0;padding-left:1.3rem;border-left:3px solid var(--green);
  font-family:var(--serif);font-size:1.2rem;font-style:italic;color:var(--ink);
}
blockquote p:last-child{margin-bottom:0}
blockquote cite{display:block;font-family:var(--sans);font-size:.9rem;font-style:normal;color:var(--muted);margin-top:.6rem}

.wp-block-separator,hr{border:0;border-top:1px solid var(--line);margin:2.2rem 0}
.wp-block-separator.is-style-wide{max-width:100%}

figure,.wp-block-image{margin:1.6rem 0}
.wp-block-image img{border-radius:var(--radius);display:block}
figcaption,.wp-block-image figcaption{
  font-size:.88rem;color:var(--muted);margin-top:.6rem;text-align:left;
}

code,kbd,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}
:not(pre)>code{background:var(--sage);padding:.15em .4em;border-radius:4px;color:var(--green-deep)}
pre,.wp-block-code{
  background:var(--ink);color:#DCE7CE;padding:1.2rem;border-radius:var(--radius);
  overflow-x:auto;font-size:.9rem;line-height:1.6;
}

/* alignments — required for wide/full blocks to behave */
.entry-content .alignwide{
  width:min(100vw - 48px,1320px);
  margin-left:calc(50% - min(50vw - 24px,660px));
}
.entry-content .alignfull{
  width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
}
.alignleft{float:left;margin:.4rem 1.6rem 1rem 0}
.alignright{float:right;margin:.4rem 0 1rem 1.6rem}
.aligncenter{margin-left:auto;margin-right:auto;display:block}
.entry-content::after{content:"";display:table;clear:both}

.wp-block-embed__wrapper{position:relative}
.wp-block-embed iframe{border-radius:var(--radius);display:block;width:100%}

/* ══════════════════════════════════════════════════════════
   8. BLOG — archive cards + single post
   ══════════════════════════════════════════════════════════ */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
@media(max-width:860px){.posts{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.posts{grid-template-columns:1fr}}
.post-card{display:block;text-decoration:none;color:inherit}
.post-card .thumb{
  aspect-ratio:3/2;border-radius:var(--radius);background:var(--sage-deep);
  overflow:hidden;margin-bottom:.9rem;
}
.post-card .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.post-card .cat{font-size:.8rem;font-weight:600;color:var(--green-deep);margin-bottom:.35rem}
.post-card h2,.post-card h3{font-size:1.18rem;line-height:1.3;margin-bottom:.4rem}
.post-card:hover h2,.post-card:hover h3{color:var(--green-deep)}
.post-card .meta{font-size:.86rem;color:var(--muted)}
.post-card p{font-size:.96rem;color:var(--ink-2);margin:.4rem 0 0}

.entry-meta{font-size:.9rem;color:var(--muted);margin-top:.9rem}
.post-thumb-single{margin-bottom:2rem}
.post-thumb-single img{width:100%;border-radius:var(--radius);display:block}

.pagination{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:3rem;align-items:center}
.pagination .page-numbers{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:44px;height:44px;padding:0 .8rem;border-radius:6px;
  border:1px solid var(--line);background:var(--white);
  color:var(--ink-2);text-decoration:none;font-weight:500;
}
.pagination .page-numbers:hover{border-color:var(--green);color:var(--green-deep)}
.pagination .page-numbers.current{background:var(--green);border-color:var(--green);color:#fff}
.pagination .dots{border:0;background:none}

/* ══════════════════════════════════════════════════════════
   9. SECTIONS + TILES
   ══════════════════════════════════════════════════════════ */
.section{padding:clamp(2.8rem,5vw,4.4rem) 0}
.band{background:var(--sage)}
.band-white{background:var(--white)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
@media(max-width:860px){.grid3{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.grid3{grid-template-columns:1fr}}
.tile{
  background:var(--white);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.5rem;text-decoration:none;color:inherit;display:block;transition:border-color .15s;
}
.tile:hover{border-color:var(--green)}
.tile h3{font-size:1.2rem;margin-bottom:.4rem}
.tile p{font-size:.96rem;color:var(--ink-2);margin:0}

.callout{
  background:var(--ink);color:#EEF3E6;border-radius:10px;
  padding:2rem 2.2rem;display:flex;gap:1.6rem;align-items:center;flex-wrap:wrap;
}
.callout h2,.callout h3{color:#fff;margin-bottom:.3rem}
.callout p{color:#C9D6BB;margin:0;max-width:46ch}
/* Scope the white-button treatment to the PRIMARY button only. Applying it to
   every .btn in the callout silently overrode .btn-quiet's transparent
   background, putting near-white text on a white button. */
.callout .btn-primary{background:#fff;color:var(--ink);border-color:#fff}
.callout .btn-primary:hover{background:var(--sage-deep);color:var(--ink);border-color:var(--sage-deep)}
.callout .btn-quiet{background:transparent;color:#EEF3E6;border-color:#7C8F6C}
.callout .btn-quiet:hover{background:rgba(255,255,255,.10);color:#fff;border-color:#A7B899}

/* ══════════════════════════════════════════════════════════
   10. FORMS
   ══════════════════════════════════════════════════════════ */
input[type=text],input[type=email],input[type=tel],input[type=url],
input[type=number],input[type=search],input[type=date],select,textarea{
  width:100%;font-family:var(--sans);font-size:1rem;color:var(--ink);
  background:var(--white);border:1px solid var(--line-2);border-radius:6px;
  padding:.75rem .9rem;
}
input:focus,select:focus,textarea:focus{border-color:var(--green);outline:none;box-shadow:0 0 0 3px rgba(96,132,72,.18)}
label{display:block;font-weight:600;margin-bottom:.35rem;font-size:.95rem}
.search-form{display:flex;gap:.6rem}
.search-form label{flex:1;margin:0}

/* ══════════════════════════════════════════════════════════
   11. FOOTER
   ══════════════════════════════════════════════════════════ */
.site-foot{background:var(--ink);color:#C4D2B4;padding:3.2rem 0 2rem;font-size:.95rem}
.foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2rem}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr}}
.site-foot h2,.site-foot h3,.site-foot h4,.site-foot .widget-title{
  color:#fff;font-family:var(--sans);font-size:.82rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;margin-bottom:.9rem;
}
.site-foot ul{list-style:none;margin:0;padding:0}
.site-foot a{color:#C4D2B4;text-decoration:none;display:block;padding:.22rem 0}
.site-foot a:hover{color:#fff}
.site-foot .blurb{color:#A7B899;max-width:34ch;margin-top:.9rem}
/* The logo is knocked out to white for the dark ground. This REQUIRES a
   transparent logo — a white-background image turns into a solid white block.
   Use media 2416 (paddock-wood-self-storage-logo.png), not the 2024 `cropped-` file. */
.foot-brand img{display:block;height:52px;width:auto;filter:brightness(0) invert(1);opacity:.92}
.foot-brand .brand-text{color:#fff}
.site-foot address{font-style:normal;color:#A7B899;line-height:1.75;margin:0}
.site-foot .foot-tel{
  display:inline-block;color:#fff;font-weight:600;font-size:1.05rem;
  margin-top:.8rem;padding:0;text-decoration:none;
}
.site-foot .foot-tel:hover{text-decoration:underline;text-underline-offset:3px}

/* Widget area (footer column 4). Widgets carried over from a previous theme
   arrive with their own block markup — normalise it so it matches the columns
   either side instead of inheriting oversized heading/type styles. */
.site-foot .widget{font-size:.95rem;line-height:1.6}
.site-foot .widget p{margin:0 0 .7rem;color:#A7B899}
.site-foot .widget img{max-width:180px;height:auto}
.site-foot .widget :is(h1,h2,h3,h4,h5,h6){
  font-family:var(--sans);font-size:.82rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:#fff;margin-bottom:.9rem;
}
.site-foot .widget figure{margin:0 0 .9rem}
.foot-bottom{
  border-top:1px solid #3A4A2E;margin-top:2.4rem;padding-top:1.2rem;
  display:flex;justify-content:space-between;gap:.6rem 1.6rem;flex-wrap:wrap;
  color:#94A587;font-size:.88rem;
}
.foot-bottom .credit a{
  display:inline;color:#B9C9A9;text-decoration:underline;
  text-underline-offset:2px;text-decoration-color:#4E6140;
}
.foot-bottom .credit a:hover{color:#fff;text-decoration-color:#fff}

/* ══════════════════════════════════════════════════════════
   12. MOBILE FLOATING CONTACT BAR
   ══════════════════════════════════════════════════════════ */
.mobile-bar{display:none}
@media(max-width:820px){
  .mobile-bar{
    display:grid;grid-template-columns:1fr 1fr;gap:10px;
    position:fixed;left:0;right:0;bottom:0;z-index:60;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom));
    background:rgba(36,48,28,.97);backdrop-filter:blur(8px);
    border-top:1px solid #3A4A2E;
  }
  .mobile-bar a{
    display:flex;align-items:center;justify-content:center;gap:.5rem;
    font-family:var(--sans);font-weight:600;font-size:1.02rem;
    padding:.85rem 1rem;border-radius:7px;text-decoration:none;min-height:48px;
  }
  .mb-call{background:var(--green);color:#fff}
  .mb-contact{background:transparent;color:#DCE7CE;border:1.5px solid #5A6B4C}
  .site-foot{padding-bottom:calc(6rem + env(safe-area-inset-bottom))}
}

/* ══════════════════════════════════════════════════════════
   13. PLUGIN COMPATIBILITY
   Kadence Blocks / GenerateBlocks output lands inside .entry-content;
   keep our own heading margins from fighting their spacing controls.
   ══════════════════════════════════════════════════════════ */
.entry-content .kb-row-layout-wrap h1,
.entry-content .kb-row-layout-wrap h2,
.entry-content .kb-row-layout-wrap h3,
.entry-content .gb-container h1,
.entry-content .gb-container h2,
.entry-content .gb-container h3{margin-top:0}
.entry-content .wp-block-kadence-rowlayout,
.entry-content .gb-container{margin-bottom:0}
.kt-blocks-google-maps-container iframe,
.wp-block-kadence-googlemaps iframe{border-radius:var(--radius);display:block}

/* the homepage ships its own self-contained .pwss design system */
.pwss{color:var(--ink)}
