/* ==========================================================================
 * Site v3: brings the main site in line with the October 2026 landing pages.
 *
 * Loaded on every page except the v3 landing pages (body.lp3) and the planner,
 * after style.css and custom.css. Page-specific refinements live in
 * css/site-v3/<group>.css. No focus styles, by agency rule.
 *
 * Tokens match landing-v3/lp3.css.
 * ======================================================================== */
:root{
  --v3-olive:#474d37;--v3-olive-d:#3a3f2d;--v3-paper:#fbf7eb;--v3-ink:#1d1d1b;--v3-ink-2:#3d3d3d;
  --v3-line:rgb(71 77 55/.22);--v3-r:4px;
  --v3-serif:"Kudryashev Headline","Kudryashev Display Sans",Georgia,serif;
  --v3-sans:"Haas Grot Disp","Helvetica Neue",Arial,sans-serif;
}

/* ---------- Type ---------- */
body:not(.lp3){letter-spacing:0;-webkit-font-smoothing:antialiased}
body:not(.lp3) .font-serif{font-family:var(--v3-serif);letter-spacing:-.005em}
body:not(.lp3) h1,body:not(.lp3) h2,body:not(.lp3) h3{text-wrap:balance}
body:not(.lp3) p{text-wrap:pretty}
/* Display tracking made body copy hard to read at small sizes. */
body:not(.lp3) [class*="tracking-[0.02em]"],body:not(.lp3) [class*="tracking-[0.04em]"]{letter-spacing:0}
/* No light-grey body copy. */
body:not(.lp3) .text-gray-800,body:not(.lp3) .text-gray-600,body:not(.lp3) [class*="text-[#777777]"],body:not(.lp3) [class*="text-black/60"],body:not(.lp3) [class*="text-black/50"]{color:var(--v3-ink-2)}

/* ---------- Buttons ---------- */
/* Header consultation button: square-cornered olive, like the landing pages. */
body:not(.lp3) .header-consultation-link{border-radius:var(--v3-r);background:var(--v3-olive);border:1px solid var(--v3-olive);color:#fff;font:500 14px/1 var(--v3-sans);letter-spacing:.04em;text-transform:uppercase;padding:.9rem 1.25rem;box-shadow:none}
body:not(.lp3) .header-consultation-link:hover{background:var(--v3-olive-d);border-color:var(--v3-olive-d);color:#fff;transform:none;box-shadow:none}
body:not(.lp3) .header:not(.is-solid) .header-consultation-link{background:var(--v3-olive);border-color:var(--v3-olive);backdrop-filter:none}
body:not(.lp3) .header:not(.is-solid) .header-consultation-link:hover{background:var(--v3-olive-d);color:#fff;border-color:var(--v3-olive-d)}

/* Solid button for primary actions inside content (opt-in class, used by the page stylesheets). */
.v3-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 26px;border-radius:var(--v3-r);background:var(--v3-olive);color:#fff!important;font:500 15px/1 var(--v3-sans);letter-spacing:.04em;text-transform:uppercase;text-decoration:none;border:0;transition:background .2s}
.v3-btn:hover{background:var(--v3-olive-d);color:#fff!important}
.v3-btn--light{background:#fff;color:var(--v3-ink)!important}
/* Outlined secondary button on light backgrounds; fills ink on hover. */
.v3-btn--outline{background:transparent;color:var(--v3-ink)!important;box-shadow:inset 0 0 0 1px var(--v3-ink)}
.v3-btn--outline:hover{background:var(--v3-ink);color:#fff!important}
.v3-btn--light:hover{background:var(--v3-paper);color:var(--v3-ink)!important}

/* Carousel arrows and small round controls become square-cornered. */
body:not(.lp3) .splide__arrow{border-radius:var(--v3-r)!important}

/* ---------- Forms (Gravity Forms, outside the footer) ---------- */
body:not(.lp3) main .gform_wrapper .gfield_label,body:not(.lp3) main .gform_wrapper legend.gfield_label{font:500 14px/1.3 var(--v3-sans)!important;letter-spacing:0!important;text-transform:none!important}
body:not(.lp3) main .gform_wrapper input[type=text],body:not(.lp3) main .gform_wrapper input[type=email],body:not(.lp3) main .gform_wrapper input[type=tel],body:not(.lp3) main .gform_wrapper input[type=number],body:not(.lp3) main .gform_wrapper select,body:not(.lp3) main .gform_wrapper textarea{border:1px solid #cdc8bb!important;border-radius:var(--v3-r)!important;font:400 16px var(--v3-sans)!important;color:var(--v3-ink)!important;background-color:#fff!important;box-shadow:none!important}
body:not(.lp3) main .gform_wrapper input[type=text],body:not(.lp3) main .gform_wrapper input[type=email],body:not(.lp3) main .gform_wrapper input[type=tel],body:not(.lp3) main .gform_wrapper select{height:48px;padding:0 14px!important}
body:not(.lp3) main .gform_wrapper textarea{padding:12px 14px!important}
body:not(.lp3) main .gform_wrapper .gform_footer input[type=submit],body:not(.lp3) main .gform_wrapper .gform_button{min-height:52px;padding:0 28px!important;border:0!important;border-radius:var(--v3-r)!important;background:var(--v3-olive)!important;color:#fff!important;font:500 15px/1 var(--v3-sans)!important;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}
body:not(.lp3) main .gform_wrapper .gform_footer input[type=submit]:hover{background:var(--v3-olive-d)!important}
body:not(.lp3) main .gform_wrapper .gchoice{position:relative}
body:not(.lp3) main .gform_wrapper .gfield_radio{display:flex!important;flex-wrap:wrap;gap:8px!important}
body:not(.lp3) main .gform_wrapper .gchoice input[type=radio]{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:1}
body:not(.lp3) main .gform_wrapper .gchoice label{display:block!important;border:1px solid #cdc8bb;border-radius:var(--v3-r);padding:10px 12px!important;margin:0!important;font:400 14px/1.2 var(--v3-sans)!important;max-width:none!important;color:var(--v3-ink)}
body:not(.lp3) main .gform_wrapper .gchoice input:checked+label{background:var(--v3-olive);border-color:var(--v3-olive);color:#fff}

/* ---------- One radius everywhere (4px), as on the landing pages ---------- */
body:not(.lp3) :is(a,button,input,select,textarea,img,figure,picture,iframe,[class*="rounded"],[class*="__button"],[class*="__btn"],[class*="__card"],[class*="-card"],[class*="__image"],[class*="__media"]):not(.splide__pagination__page):not([class*="inset-0"]):not(video):not(input[type=radio]):not(input[type=checkbox]){border-radius:var(--v3-r)}
body:not(.lp3) [class*="inset-0"],body:not(.lp3) video,body:not(.lp3) .home-hero__media,body:not(.lp3) .range-detail__hero img{border-radius:0}
/* Home hero buttons: square-cornered, solid white primary and outlined secondary */
body.home .home-hero__button{border-radius:var(--v3-r)!important}

/* ---------- Stronger CTAs: the theme's underlined text buttons become solid buttons ---------- */
body:not(.lp3) main a.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border-radius:var(--v3-r);font:500 15px/1 var(--v3-sans);letter-spacing:.04em;text-transform:uppercase;text-decoration:none;background:var(--v3-olive);color:#fff;transition:background .2s,color .2s}
body:not(.lp3) main a.btn>span::before,body:not(.lp3) main a.btn>span::after{display:none}
/* Hover stays in the button's own colour family. custom.css flips every .btn to
 * white on hover with !important, which hid white text on olive, so these use
 * !important too. */
body:not(.lp3) main a.btn:hover{background-color:var(--v3-olive-d)!important;color:#fff!important}
body:not(.lp3) main a.btn:hover>span{color:inherit!important}
/* On dark or photo backgrounds (btn-white): white button, dark text */
body:not(.lp3) main a.btn.btn-white{background:#fff;color:var(--v3-ink)}
body:not(.lp3) main a.btn.btn-white:hover{background-color:var(--v3-paper)!important;color:var(--v3-ink)!important}
/* Secondary action next to a primary one: outlined */
body:not(.lp3) main a.btn.home-hero__button--secondary{background:transparent;color:#fff;box-shadow:inset 0 0 0 1px rgb(255 255 255/.75)}
body:not(.lp3) main a.btn.home-hero__button--secondary:hover{background-color:rgb(255 255 255/.12)!important;color:#fff!important}
/* Two buttons side by side keep one height and a clear gap */
body:not(.lp3) main a.btn+a.btn{margin-left:12px}

/* ---------- Plain text pages (privacy policy and similar): a readable column ---------- */
body:not(.lp3) main.flex-1>:is(p,ul,ol,h1,h2,h3,h4,h5,h6,blockquote,table,figure,hr,pre,.wp-block-list,.wp-block-heading,.wp-block-table,.wp-block-image,.wp-block-quote,.wp-block-group,.wp-block-columns,.wp-block-buttons){box-sizing:border-box;width:100%;max-width:792px;margin-left:auto;margin-right:auto;padding-left:16px;padding-right:16px}
body:not(.lp3) main.flex-1>:is(p,ul,ol,.wp-block-list){font-size:17px;line-height:1.65;color:var(--v3-ink);margin-top:0;margin-bottom:16px}
body:not(.lp3) main.flex-1>:is(ul,ol,.wp-block-list){padding-left:40px;list-style:revert}
body:not(.lp3) main.flex-1>:is(ul,ol,.wp-block-list)>li{margin:0 0 8px}
body:not(.lp3) main.flex-1>:is(h1,h2,.wp-block-heading:is(h1,h2)){font-family:var(--v3-serif);font-weight:400;font-size:clamp(30px,3.2vw,42px);line-height:1.1;margin-top:48px;margin-bottom:16px}
body:not(.lp3) main.flex-1>:is(h3,h4,h5,h6,.wp-block-heading:is(h3,h4,h5,h6)){font:500 20px/1.3 var(--v3-sans);margin-top:32px;margin-bottom:10px}
body:not(.lp3) main.flex-1>:is(p,ul,ol,h1,h2,h3,h4,h5,h6,.wp-block-list,.wp-block-heading):first-child{margin-top:72px}
body:not(.lp3) main.flex-1>:is(p,ul,ol,.wp-block-list):last-child{margin-bottom:88px}
@media(min-width:768px){body:not(.lp3) main.flex-1>:is(p,ul,ol,h1,h2,h3,h4,h5,h6,blockquote,table,figure,hr,pre,.wp-block-list,.wp-block-heading,.wp-block-table,.wp-block-image,.wp-block-quote,.wp-block-group,.wp-block-columns,.wp-block-buttons){padding-left:40px;padding-right:40px}body:not(.lp3) main.flex-1>:is(ul,ol,.wp-block-list){padding-left:64px}}

/* ---------- Forms on dark panels (olive, black or any text-white section) ---------- */
body:not(.lp3) main :is([class*="bg-primary-green"],[class*="bg-black"],[class*="bg-[#474d37]"],.text-white) .gform_wrapper :is(.gfield_label,legend.gfield_label,.gfield_description,.ginput_complex label,.gform_description,p){color:#fff!important}
body:not(.lp3) main :is([class*="bg-primary-green"],[class*="bg-black"],[class*="bg-[#474d37]"],.text-white) .gform_wrapper .gchoice label{color:#fff;border-color:rgb(255 255 255/.55)}
body:not(.lp3) main :is([class*="bg-primary-green"],[class*="bg-black"],[class*="bg-[#474d37]"],.text-white) .gform_wrapper .gchoice input:checked+label{background:#fff;border-color:#fff;color:var(--v3-ink)}
body:not(.lp3) main :is([class*="bg-primary-green"],[class*="bg-black"],[class*="bg-[#474d37]"],.text-white) .gform_wrapper .gform_footer input[type=submit],body:not(.lp3) main :is([class*="bg-primary-green"],[class*="bg-black"],[class*="bg-[#474d37]"],.text-white) .gform_wrapper .gform_button{background:#fff!important;color:var(--v3-ink)!important}
body:not(.lp3) main :is([class*="bg-primary-green"],[class*="bg-black"],[class*="bg-[#474d37]"],.text-white) .gform_wrapper .gform_footer input[type=submit]:hover{background:var(--v3-paper)!important}
