@font-face{font-family:'Libre Caslon Display';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/caslon-display-400.woff2') format('woff2');}
@font-face{font-family:'Libre Caslon Text';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/caslon-text-400.woff2') format('woff2');}
@font-face{font-family:'Libre Caslon Text';font-style:italic;font-weight:400;font-display:swap;src:url('fonts/caslon-text-400-italic.woff2') format('woff2');}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/source-sans-400.woff2') format('woff2');}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/source-sans-600.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/plex-mono-400.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/plex-mono-600.woff2') format('woff2');}
/* Metric-compatible fallbacks. Each mirrors its web font's line box, so the
   swap when the real font arrives does not change how tall a line is or how
   text wraps. Overrides are derived from the woff2 metrics against the
   published metrics of the named system font. Without these the hero and nav
   reflowed at ~240ms and cost up to 0.12 CLS on narrow screens. */
@font-face{font-family:'Source Sans 3 Fallback';font-weight:400;src:local('Arial'),local('Liberation Sans'),local('Helvetica Neue'),local('Roboto');size-adjust:106.70%;ascent-override:95.97%;descent-override:37.49%;line-gap-override:0%;}
@font-face{font-family:'Source Sans 3 Fallback';font-weight:600;src:local('Arial Bold'),local('Arial'),local('Liberation Sans Bold'),local('Roboto');size-adjust:110.10%;ascent-override:93.00%;descent-override:36.33%;line-gap-override:0%;}
@font-face{font-family:'Caslon Display Fallback';src:local('Georgia'),local('Times New Roman'),local('Liberation Serif');size-adjust:97.84%;ascent-override:99.14%;descent-override:27.19%;line-gap-override:0%;}
@font-face{font-family:'Caslon Text Fallback';src:local('Georgia'),local('Times New Roman'),local('Liberation Serif');size-adjust:115.87%;ascent-override:83.72%;descent-override:22.44%;line-gap-override:0%;}
@font-face{font-family:'Plex Mono Fallback';src:local('Courier New'),local('Liberation Mono'),local('DejaVu Sans Mono');size-adjust:99.98%;ascent-override:102.52%;descent-override:27.50%;line-gap-override:0%;}

:root{--parchment:#F1EAD6;--parchment-deep:#E7DCBE;--ink:#1C2117;--ink-soft:#52584A;--ink-faint:#626653;--green:#14392A;--green-deep:#0B2419;--gold:#A9832E;--gold-dark:#7E6222;--gold-light:#D8BE7C;--cream-text:#F6F1E2;--radius-sm:5px;--radius-md:10px;--shadow-card:0 1px 2px rgba(20,25,15,.06), 0 10px 26px -14px rgba(20,25,15,.3);--shadow-pop:0 20px 44px -18px rgba(11,36,25,.4);--font-display:'Libre Caslon Display', 'Caslon Display Fallback', Georgia, serif;--font-serif:'Libre Caslon Text', 'Caslon Text Fallback', Georgia, serif;--font-body:'Source Sans 3', 'Source Sans 3 Fallback', -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:'IBM Plex Mono', 'Plex Mono Fallback', 'SFMono-Regular', Menlo, monospace;--container:1160px;}*{margin:0;padding:0;box-sizing:border-box;}html{scroll-behavior:smooth;}body{font-family:var(--font-body);color:var(--ink);background:var(--parchment);line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden;}img,svg{display:block;max-width:100%;}/* width/height attributes are set on every img for CLS; height:auto lets the browser derive aspect-ratio from them instead of pinning the attribute height. */img{height:auto;}/* Content figures run full-bleed on narrow screens, but the caption is text and keeps the same gutter as .container. */figure figcaption{padding:0 28px;}@media (max-width:400px){figure figcaption{padding:0 18px;}}a{color:inherit;text-decoration:none;}button{font-family:inherit;cursor:pointer;border:none;background:none;}input,textarea{font-family:inherit;font-size:15px;}ul{list-style:none;}h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;line-height:1.15;letter-spacing:-0.005em;}.container{max-width:var(--container);margin:0 auto;padding:0 28px;}/* Visible breadcrumb. 82 pages already carried BreadcrumbList JSON-LD with
   nothing on screen; this renders the same trail so markup and display match. */
.crumbs{font-family:var(--font-mono);font-size:12px;padding:14px 0 0;color:var(--ink-soft);}
.crumbs a{color:var(--ink-soft);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px;}
.crumbs a:hover{color:var(--green);}
.crumbs__sep{padding:0 8px;opacity:.5;}
.crumbs [aria-current="page"]{color:var(--ink);}
.hero + .crumbs,.crumbs + .hero{padding-top:14px;}
.eyebrow{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--gold-dark);display:inline-flex;align-items:center;gap:8px;}:focus-visible{outline:2.5px solid var(--gold);outline-offset:3px;}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--parchment);padding:14px 22px;z-index:100;font-family:var(--font-body);font-size:14px;font-weight:600;border-radius:0 0 6px 0;}
.skip-link:focus{left:0;}em{font-style:italic;font-family:var(--font-serif);}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}}html.js [data-reveal]{opacity:0;transform:translateY(16px);transition:opacity .6s ease, transform .6s ease;transition-delay:calc(var(--i,0) * 70ms);}html.js [data-reveal].is-visible{opacity:1;transform:translateY(0);}.nav{position:sticky;top:0;z-index:50;background:rgba(241,234,214,.9);backdrop-filter:blur(8px);border-bottom:1px solid transparent;transition:border-color .25s ease;}.nav.is-scrolled{border-color:rgba(20,57,42,.15);}.nav__bar{display:flex;align-items:center;justify-content:space-between;height:78px;}.logo{font-family:var(--font-display);font-size:21px;color:var(--ink);display:inline-flex;align-items:baseline;gap:2px;}.logo em{color:var(--green);font-style:normal;font-family:var(--font-display);border-bottom:2px solid var(--gold);}.nav__links{display:flex;align-items:center;gap:32px;}.nav__links a{font-size:14.5px;color:var(--ink-soft);transition:color .15s ease;}.nav__links a:hover{color:var(--ink);}.nav__actions{display:flex;align-items:center;gap:20px;}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:14.5px;font-weight:600;padding:12px 22px;border-radius:7px;transition:transform .15s ease, box-shadow .15s ease, background .15s ease;white-space:nowrap;}.btn--primary{background:var(--green);color:var(--cream-text);}.btn--primary:hover{background:var(--green-deep);transform:translateY(-1px);box-shadow:var(--shadow-card);}.btn--gold{background:var(--gold);color:var(--green-deep);}.btn--gold:hover{background:var(--gold-light);transform:translateY(-1px);}.btn--ghost{background:transparent;color:var(--cream-text);border:1.5px solid rgba(246,241,226,.55);}.btn--ghost:hover{background:rgba(246,241,226,.12);border-color:var(--cream-text);}.btn--ghost-dark{background:transparent;color:var(--ink);border:1.5px solid var(--ink);}.btn--ghost-dark:hover{background:var(--ink);color:var(--parchment);}.btn--sm{padding:10px 17px;font-size:13.5px;}.nav__toggle{display:none;flex-direction:column;gap:5px;padding:6px;}.nav__toggle span{width:22px;height:2px;background:var(--ink);border-radius:2px;}.nav__links--mobile{display:none;}.nav__links--mobile.is-open{display:flex;flex-direction:column;position:absolute;top:78px;left:0;right:0;background:var(--parchment);padding:18px 28px 26px;gap:16px;border-bottom:1px solid rgba(20,57,42,.15);box-shadow:var(--shadow-card);}.hero{background:var(--green);color:var(--cream-text);padding:72px 0 0;position:relative;overflow:hidden;}.hero .container{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center;padding-bottom:64px;}.hero .eyebrow{color:var(--gold-light);}.hero h1{font-size:clamp(30px,4vw,46px);margin:20px 0 14px;color:var(--cream-text);}.hero__tagline{font-family:var(--font-serif);font-size:20px;color:var(--gold-light);max-width:44ch;margin-bottom:16px;line-height:1.4;}.hero p.lede{font-family:var(--font-body);font-size:16px;color:#CFD6C4;max-width:50ch;margin-bottom:34px;line-height:1.6;}.hero__ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:30px;}.hero__trust{display:flex;gap:24px;flex-wrap:wrap;font-family:var(--font-mono);font-size:13px;color:#A9B39B;}.hero__trust span{display:flex;align-items:center;gap:7px;}.hero__trust span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--gold);}.shelf-wrap{position:relative;display:flex;justify-content:center;}.shelf{display:flex;align-items:flex-end;gap:6px;height:280px;position:relative;z-index:1;}.spine{width:36px;border-radius:3px 3px 1px 1px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:15px;box-shadow:inset -7px 0 12px rgba(0,0,0,.18), 0 8px 18px -10px rgba(0,0,0,.35);transition:transform .3s ease;}.shelf:hover .spine{transform:translateY(-3px);}.spine span{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;color:var(--gold-light);}.spine--1{height:228px;background:var(--green-deep);}.spine--2{height:252px;background:#1E4E39;}.spine--3{height:200px;background:#1B2419;}.spine--4{height:266px;background:var(--green-deep);}.spine--5{height:214px;background:#5C4322;}.spine--6{height:240px;background:#1E4E39;}.spine--7{height:192px;background:#1B2419;}.shelf-base{position:absolute;bottom:-13px;left:-16px;right:-16px;height:13px;background:var(--green-deep);border-radius:0 0 5px 5px;}.shelf-tag{position:absolute;top:-16px;right:-4px;background:var(--parchment);color:var(--ink);border:1.5px solid var(--gold);padding:8px 12px;border-radius:7px;font-family:var(--font-mono);font-size:11px;box-shadow:var(--shadow-pop);transform:rotate(3deg);z-index:2;}.shelf-tag b{display:block;font-size:14px;color:var(--green);font-family:var(--font-display);}.stats{background:var(--parchment-deep);border-bottom:1px solid rgba(20,57,42,.12);}.stats .container{display:grid;grid-template-columns:repeat(4,1fr);padding:34px 28px;gap:22px;}.stat{text-align:center;border-left:1px solid rgba(20,57,42,.15);}.stat:first-child{border-left:none;}.stat b{display:block;font-family:var(--font-display);font-size:29px;color:var(--green);}.stat span{font-size:13px;color:var(--ink-soft);}section{padding:92px 0;}.section-head{max-width:620px;margin-bottom:48px;}.section-head h2{font-size:clamp(25px,3vw,36px);margin-top:12px;}.section-head p{color:var(--ink-soft);font-size:15.5px;margin-top:12px;}.on-green .section-head p{color:#B9C2AC;}.buy{background:var(--green);color:var(--cream-text);}.buy .eyebrow{color:var(--gold-light);}.buy .section-head h2{color:var(--cream-text);}.buy-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}.buy-grid--2{grid-template-columns:repeat(2,1fr);}.buy-grid--3{grid-template-columns:repeat(3,1fr);}.buy-card{display:flex;background:rgba(246,241,226,.05);border:1px solid rgba(246,241,226,.14);border-radius:var(--radius-md);overflow:hidden;transition:background .2s ease, transform .2s ease;}.buy-card:hover{background:rgba(246,241,226,.09);transform:translateY(-2px);}.buy-card__edge{width:7px;flex-shrink:0;background:var(--edge, var(--gold));}.buy-card__body{padding:24px 26px;}.buy-card__body h3{font-size:19px;color:var(--cream-text);margin-bottom:8px;}.buy-card__body p{font-size:14.5px;color:#B9C2AC;}.buy-card__link{display:inline-block;margin-top:12px;font-size:13px;font-weight:600;color:var(--gold-light);border-bottom:1px solid rgba(216,190,124,.4);}.buy-card__link:hover{color:#fff;border-color:#fff;}.also-buy{margin-top:44px;padding-top:40px;border-top:1px solid rgba(246,241,226,.15);}.also-buy__head{font-family:var(--font-body);font-size:14px;font-weight:600;letter-spacing:.02em;color:var(--cream-text);margin-bottom:22px;}.also-buy__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}.also-buy__col h3,.also-buy__col h4{font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-light);margin-bottom:12px;font-weight:600;}.tag-list{display:flex;flex-direction:column;gap:8px;}.tag-list li{font-size:14px;color:#C7CEBB;list-style:none;padding-left:14px;position:relative;}.tag-list li::before{content:"";position:absolute;left:0;top:9px;width:5px;height:5px;border-radius:50%;background:var(--gold);}.also-buy__note{font-size:14.5px;margin-top:26px;font-size:13.5px;color:#9FAA90;max-width:60ch;}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}.step-card{border-top:2px solid var(--gold);padding-top:20px;}.step-card__num{font-family:var(--font-mono);font-size:12px;color:var(--gold-dark);letter-spacing:.06em;}.step-card h3{font-size:19px;margin:10px 0 8px;}.step-card p{font-size:14.5px;color:var(--ink-soft);}.value{background:var(--parchment-deep);}.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}.value-grid--2{grid-template-columns:repeat(2,1fr);}.value-grid--4{grid-template-columns:repeat(4,1fr);gap:18px;}.value-card{background:var(--parchment);border:1px solid rgba(20,57,42,.14);border-radius:var(--radius-md);padding:26px;}.value-card h3{font-size:18px;margin-bottom:10px;}.value-card p{font-size:14.5px;color:var(--ink-soft);}.enquiry{background:var(--parchment-deep);}.slip{max-width:720px;margin:0 auto;background:var(--parchment);border:1.5px solid var(--ink);border-radius:8px;box-shadow:var(--shadow-pop);position:relative;overflow:hidden;}.slip::before{content:"";position:absolute;top:0;left:0;right:0;height:0;border-top:3px dashed rgba(28,33,23,.35);}.slip__head{display:flex;justify-content:space-between;align-items:flex-start;padding:22px 30px;border-bottom:1.5px dashed rgba(28,33,23,.3);gap:16px;flex-wrap:wrap;}.slip__head-title{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);}.slip__ref{font-family:var(--font-display);font-size:20px;color:var(--green);margin-top:4px;}.slip__date{text-align:right;font-family:var(--font-mono);font-size:12px;color:var(--ink-faint);}.slip__date b{display:block;color:var(--ink);font-family:var(--font-mono);font-size:13px;}.slip__body{padding:30px;}.field{margin-bottom:20px;}.field label{display:block;font-size:14px;font-weight:600;color:var(--ink-soft);margin-bottom:7px;letter-spacing:.01em;}.field input[type="text"],.field input[type="email"],.field input[type="tel"],.field textarea{width:100%;border:1.5px solid rgba(20,57,42,.28);background:#fff;border-radius:6px;padding:11px 13px;color:var(--ink);min-height:44px;}.field input:focus,.field textarea:focus{outline:none;border-color:var(--green);}.field textarea{resize:vertical;min-height:90px;}.slip__submit{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:8px;}.slip__note{font-size:13.5px;font-size:12.5px;color:var(--ink-faint);max-width:32ch;}.slip__confirm{display:none;padding:40px 30px;text-align:center;}.slip__confirm.is-visible{display:block;}.slip__confirm .stamp{display:inline-block;border:2px solid var(--green);color:var(--green);font-family:var(--font-mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;padding:8px 18px;border-radius:6px;transform:rotate(-3deg);margin-bottom:18px;}.slip__confirm h3{font-size:22px;margin-bottom:10px;}.slip__confirm p{color:var(--ink-soft);font-size:15px;max-width:40ch;margin:0 auto;}.why{background:var(--green);color:var(--cream-text);}.why .eyebrow{color:var(--gold-light);}.why .section-head h2{color:var(--cream-text);}.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px 40px;}.why-item{display:flex;gap:16px;}.why-item__mark{font-family:var(--font-display);font-size:26px;color:var(--gold-light);flex-shrink:0;line-height:1;}.why-item h3{font-size:17px;color:var(--cream-text);margin-bottom:6px;font-family:var(--font-body);font-weight:600;}.why-item p{font-size:14.5px;color:#B9C2AC;}.quotes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;}.faq-list{max-width:760px;}.faq-item{border-bottom:1px solid rgba(20,57,42,.18);padding:20px 0;}.faq-item summary{cursor:pointer;font-family:var(--font-display);font-size:18px;color:var(--ink);list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;}.faq-item summary::-webkit-details-marker{display:none;}.faq-item summary::after{content:"+";font-family:var(--font-body);font-size:20px;color:var(--gold);flex-shrink:0;transition:transform .2s ease;}.faq-item[open] summary::after{transform:rotate(45deg);}.faq-item p{font-size:15px;color:var(--ink-soft);margin-top:12px;max-width:60ch;}.cta-band{background:var(--green-deep);color:var(--cream-text);text-align:center;}.cta-band .eyebrow{color:var(--gold-light);}.cta-band h2{font-size:clamp(26px,3.6vw,40px);max-width:580px;margin:16px auto 30px;color:var(--cream-text);}.cta-band__row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}footer{background:var(--green-deep);color:#A9B39B;padding:60px 0 26px;border-top:1px solid rgba(246,241,226,.08);}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;margin-bottom:48px;}.footer-brand .logo{color:var(--cream-text);}.footer-brand .logo em{color:var(--gold-light);border-color:var(--gold);}.footer-brand p{font-size:14.5px;font-size:13.5px;margin-top:14px;max-width:34ch;color:#8B9580;}.footer-col h3{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#88937B;margin-bottom:15px;font-weight:400;}.footer-col a{display:block;font-size:14px;margin-bottom:10px;color:#BFC7B2;transition:color .15s ease;}.footer-col a:hover{color:var(--cream-text);}.footer-bottom{border-top:1px solid rgba(246,241,226,.1);padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-family:var(--font-mono);font-size:11.5px;color:#899480;}@media (max-width:980px){.hero .container{grid-template-columns:1fr;padding-bottom:48px;}.shelf-wrap{order:-1;}.shelf{height:210px;}.buy-grid,.buy-grid--2,.buy-grid--3,.value-grid,.value-grid--2,.how-grid,.why-grid{grid-template-columns:1fr 1fr;}.also-buy__cols{grid-template-columns:1fr 1fr;gap:24px;}.quotes-grid{grid-template-columns:1fr;gap:32px;}.footer-grid{grid-template-columns:1fr 1fr;}.stats .container{grid-template-columns:1fr;gap:18px;}.stat{border-left:none;border-top:1px solid rgba(20,57,42,.15);padding-top:18px;}.stat:first-child{border-top:none;padding-top:0;}}.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}@media (max-width:720px){.nav__bar .nav__links{display:none;}.nav__toggle{display:flex;}section{padding:60px 0;}.how-grid,.buy-grid,.buy-grid--2,.buy-grid--3,.value-grid,.value-grid--2,.why-grid{grid-template-columns:1fr;}.also-buy__cols{grid-template-columns:1fr;gap:22px;}.footer-grid{grid-template-columns:1fr;gap:32px;}.slip__head{flex-direction:column;}.slip__date{text-align:left;}.post-grid{grid-template-columns:1fr;}}.article-hero{background:var(--green);color:var(--cream-text);padding:64px 0 52px;}.article-hero .container{max-width:740px;}.blog-back{display:block;width:fit-content;margin-bottom:20px;font-size:13.5px;color:var(--gold-light);}
/* The back link is display:block, so related links placed after it fell to a
   line of their own starting with a stray separator. This row keeps them together. */
.blog-links{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;margin-bottom:20px;font-size:13.5px;}
.blog-links .blog-back{display:inline;width:auto;margin-bottom:0;}
.blog-links a{color:var(--gold-light);text-decoration:underline;text-decoration-color:rgba(216,190,124,.5);text-underline-offset:3px;}
.blog-links a:hover{color:var(--cream-text);text-decoration-color:var(--cream-text);}
.blog-links span{color:var(--gold-light);opacity:.5;}.article-hero h1{font-size:clamp(27px,3.8vw,40px);color:var(--cream-text);margin-bottom:14px;}.article-hero .lede{margin-bottom:0;max-width:none;}.article-body{max-width:700px;margin:0 auto;padding:60px 28px 20px;}.article-body h2{font-size:25px;margin:38px 0 14px;}.article-body h3{font-size:19px;margin:26px 0 10px;}.article-body p{font-size:16.5px;color:var(--ink);line-height:1.75;margin-bottom:18px;}.article-body p.lead{font-size:18.5px;color:var(--ink-soft);font-family:var(--font-serif);font-style:italic;margin-bottom:24px;}.article-body ul,.article-body ol{margin:0 0 20px 22px;}.article-body li{font-size:16.5px;line-height:1.75;margin-bottom:8px;color:var(--ink);}.article-body a{color:var(--green);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px;}.article-cta{background:var(--parchment-deep);border-radius:var(--radius-md);padding:26px 28px;margin:40px 0;border:1px solid rgba(20,57,42,.15);}.article-cta p{margin-bottom:14px;}.article-cta p:last-child{margin-bottom:0;}.post-card{background:#fff;border:1px solid rgba(20,57,42,.14);border-radius:var(--radius-md);padding:24px;transition:transform .2s ease, box-shadow .2s ease;}.post-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-card);}.post-card__meta{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--gold-dark);margin-bottom:12px;}.post-card h3{font-size:19px;margin-bottom:10px;line-height:1.3;}.post-card p{font-size:14.5px;color:var(--ink-soft);margin-bottom:16px;}.post-card a.read-more{font-size:13px;font-weight:600;color:var(--green);border-bottom:1px solid var(--gold);}.post-card a.read-more:hover{color:var(--green-deep);}.areas{background:var(--parchment-deep);text-align:center;}.areas .section-head{margin:0 auto 28px;}.area-links{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;}.area-links a{font-family:var(--font-mono);font-size:13.5px;padding:10px 18px;border-radius:20px;border:1.5px solid rgba(20,57,42,.25);color:var(--ink);background:#fff;transition:all .15s ease;}.area-links a:hover{background:var(--green);color:var(--cream-text);border-color:var(--green);}.enquiry-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0 18px;}@media (max-width:720px){.enquiry-row{grid-template-columns:1fr;}}.slip__confirm h3:focus-visible{outline:2.5px solid var(--gold);outline-offset:4px;}.quick-contact{background:var(--parchment);}
.quick-contact__grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;}
.quick-contact__grid p{color:var(--ink-soft);font-size:15.5px;margin-top:12px;max-width:44ch;}
.quick-contact-form{background:#fff;border:1px solid rgba(20,57,42,.14);border-radius:var(--radius-md);padding:28px;box-shadow:var(--shadow-card);}
.quick-contact-confirm{display:none;font-family:var(--font-serif);font-style:italic;color:var(--green);font-size:15px;padding-top:6px;}
.quick-contact-confirm.is-visible{display:block;}
@media (max-width:980px){.quick-contact__grid{grid-template-columns:1fr;}}












strong,b{font-weight:600;}
.compare-table{width:100%;border-collapse:collapse;margin:0 0 28px;font-size:14.5px;}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 28px;}.table-scroll>.compare-table{margin-bottom:0;}
.compare-table th,.compare-table td{border:1px solid rgba(20,57,42,.16);padding:11px 14px;text-align:left;}
.compare-table thead th{background:var(--parchment-deep);font-family:var(--font-body);font-weight:600;color:var(--ink);}
.compare-table tbody th{background:var(--parchment-deep);font-weight:600;color:var(--ink-soft);white-space:nowrap;}
.compare-table tbody td{color:var(--ink);}
@media (max-width:600px){.compare-table{font-size:13px;}.compare-table th,.compare-table td{padding:8px 9px;}.compare-table tbody th{white-space:normal;}}
.toc{background:var(--parchment-deep);border:1px solid rgba(20,57,42,.14);border-radius:var(--radius-md);padding:20px 24px;margin:0 0 32px;}
.toc__title{font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-dark);margin-bottom:12px;}
.toc ul{margin:0;list-style:none;display:flex;flex-direction:column;gap:8px;}
.toc li{font-size:15px;margin:0;line-height:1.4;}
.toc a{color:var(--green);text-decoration:none;border-bottom:1px solid rgba(169,131,46,.4);}
.toc a:hover{border-bottom-color:var(--green);}
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--green-deep);color:var(--cream-text);border-top:2px solid var(--gold);box-shadow:0 -6px 24px rgba(0,0,0,.22);}
.cookie-banner[hidden]{display:none;}
.cookie-banner__inner{max-width:1160px;margin:0 auto;padding:18px 28px;display:flex;align-items:center;gap:24px;flex-wrap:wrap;justify-content:space-between;}
.cookie-banner__text{font-size:14px;line-height:1.5;margin:0;max-width:64ch;color:#C6CBD6;}
.cookie-banner__text a{color:var(--gold-light);text-decoration:underline;}
.cookie-banner__actions{display:flex;gap:10px;flex-shrink:0;}
.cookie-banner__actions .btn{min-height:44px;}
.btn--outline-light{background:transparent;color:var(--cream-text);border:1.5px solid rgba(246,241,226,.5);}
.btn--outline-light:hover{border-color:var(--cream-text);background:rgba(246,241,226,.08);}
@media (max-width:720px){.cookie-banner__inner{padding:16px 20px;gap:14px;}.cookie-banner__actions{width:100%;}.cookie-banner__actions .btn{flex:1;}}

/* ---------- Print ----------
   Older visitors and executors often print a page to read properly,
   file with paperwork, or pass to someone else. */
@media print{
  *{background:#fff !important;color:#000 !important;box-shadow:none !important;}
  .nav,.cookie-banner,.nav__toggle,.cta-band,.shelf-wrap,.skip-link,.hero__ctas,.toc{display:none !important;}
  body{font-size:12pt;line-height:1.5;}
  .container{max-width:100%;padding:0;}
  h1{font-size:20pt;} h2{font-size:15pt;} h3{font-size:13pt;}
  a{text-decoration:underline;}
  /* show link destinations, since a printed page can't be clicked */
  .article-body a[href^="http"]::after{content:" (" attr(href) ")";font-size:9pt;word-break:break-all;}
  section,article{padding:12pt 0 !important;}
  footer{border-top:1pt solid #999;padding-top:8pt;font-size:9pt;}
  .footer-grid{display:block;}
  .faq-item p{display:block !important;}
  details{display:block;}
  details > summary{list-style:none;font-weight:bold;}
}

/* ---------- No-JS fallbacks ----------
   Content blockers and script failures must not hide content or break
   navigation. Anything that JS un-hides is only hidden when JS is confirmed
   running (html.js), never by default. */
@media (max-width:720px){
  html:not(.js) .nav__toggle{display:none;}
  html:not(.js) .nav__links--mobile{display:flex;flex-wrap:wrap;gap:16px;padding:0 28px 16px;font-size:14.5px;}
}

@media (min-width:721px) and (max-width:980px){.stats .container{grid-template-columns:repeat(2,1fr);}}

/* ---------- Optional photo upload on the enquiry form ---------- */
.field input[type="file"]{width:100%;border:1.5px dashed rgba(20,57,42,.35);background:#fff;border-radius:6px;padding:11px 13px;color:var(--ink);font-size:14px;min-height:44px;}
.field input[type="file"]:focus{outline:none;border-color:var(--green);}
.field__hint{font-size:12.5px;color:var(--ink-faint);margin-top:6px;}

/* ---------- Floating WhatsApp button ---------- */
.wa-float{position:fixed;right:20px;bottom:20px;z-index:80;width:56px;height:56px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px rgba(0,0,0,.28);transition:bottom .25s ease, transform .15s ease, box-shadow .15s ease;}
/* WhatsApp's own dark brand green. The lighter #25D366 used on the floating
   icon is only 1.98:1 against white and #128C7E only 4.14:1 -- this button
   carries 14.5px bold text, which is not large text, so it needs 4.5:1.
   #075E54 is 7.67:1 and still unmistakably WhatsApp. */
.btn--whatsapp{background:#075E54;color:#fff;}
.btn--whatsapp:hover{background:#05423B;color:#fff;}
.btn--whatsapp svg{flex:none;}
.wa-float:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 6px 20px rgba(0,0,0,.34);}
.wa-float.wa-shifted{bottom:96px;}
@media (max-width:720px){.wa-float{right:16px;bottom:16px;width:52px;height:52px;}.wa-float.wa-shifted{bottom:120px;}}
/* Buttons inside .article-body: the generic `.article-body a` rule (0-1-1) outranks
   `.btn--primary` (0-1-0), forcing button text to --green on a --green background
   and adding the article link underline. These restore each variant. */
.article-body a.btn{text-decoration:none;}
.article-body a.btn--primary{color:var(--cream-text);}
.article-body a.btn--gold{color:var(--green-deep);}
.article-body a.btn--ghost,.article-body a.btn--outline-light{color:var(--cream-text);}

/* ---------- Homepage UX pass: "who it's for" router icons, enquiry/call-back linking ---------- */
.value-card--icon{display:flex;flex-direction:column;gap:2px;}
.value-card__icon{width:34px;height:34px;border-radius:8px;background:rgba(169,131,46,.14);display:flex;align-items:center;justify-content:center;margin-bottom:10px;}
.value-card__icon svg{width:18px;height:18px;color:var(--gold-dark);}
.slip__altpath{margin-top:16px;padding-top:16px;border-top:1px dashed rgba(28,33,23,.25);font-size:13px;color:var(--ink-soft);text-align:center;}
.slip__altpath a{color:var(--green);font-weight:600;border-bottom:1px solid var(--gold);}
.quick-contact{padding:56px 0;}
@media (max-width:720px){.quick-contact{padding:44px 0;}}
@media (max-width:400px){.container{padding:0 18px;}.nav__actions{gap:10px;}.nav__actions .btn{font-size:13px;padding:10px 13px;}.logo{font-size:19px;}}

/* The global `a{color:inherit;text-decoration:none}` reset leaves links outside
   .article-body indistinguishable from body text. Light grounds reuse the
   .article-body treatment; dark grounds need gold-light, since gold/gold-dark
   fall below 4.5:1 on --green. .area-links is excluded: already a bordered pill. */
.value-card a:not([class*="btn"]),.slip__confirm a:not([class*="btn"]),.faq-item a:not([class*="btn"]),.section-head a:not([class*="btn"]),.stat a:not([class*="btn"]),.quick-contact a:not([class*="btn"]),.why-card a:not([class*="btn"]),section>.container>p a:not([class*="btn"]){color:var(--green);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px;}
.value-card a:not([class*="btn"]):hover,.slip__confirm a:not([class*="btn"]):hover,.faq-item a:not([class*="btn"]):hover,.section-head a:not([class*="btn"]):hover,.stat a:not([class*="btn"]):hover,.quick-contact a:not([class*="btn"]):hover,.why-card a:not([class*="btn"]):hover,section>.container>p a:not([class*="btn"]):hover{color:var(--gold-dark);text-decoration-color:var(--gold-dark);}
.hero__note a:not([class*="btn"]),.also-buy .tag-list a:not([class*="btn"]),.buy-card a:not([class*="btn"]),.also-buy__note a:not([class*="btn"]){color:var(--gold-light);text-decoration:underline;text-decoration-color:rgba(216,190,124,.55);text-underline-offset:3px;}
.hero__note a:not([class*="btn"]):hover,.also-buy .tag-list a:not([class*="btn"]):hover,.buy-card a:not([class*="btn"]):hover,.also-buy__note a:not([class*="btn"]):hover{color:var(--cream-text);text-decoration-color:var(--cream-text);}
/* .kc-grid is an all-link index with no interleaved plain text, so colour plus a
   hover underline is enough; underlining all 50+ rows would read as noise. */
.kc-grid a:not([class*="btn"]){color:var(--green);}
.kc-grid a:not([class*="btn"]):hover{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px;}
/* .eyebrow is --gold-dark, which is 4.78:1 on parchment but only 2.22:1 on
   --green. On the dark heroes it needs --gold-light (7.02:1). The byline link
   inside it shares that colour, so it carries an underline to stay findable. */
.article-hero .eyebrow,.on-green .eyebrow{color:var(--gold-light);}
.article-hero .eyebrow a,.on-green .eyebrow a{color:var(--gold-light);text-decoration:underline;text-decoration-color:rgba(216,190,124,.55);text-underline-offset:3px;}
.article-hero .eyebrow a:hover,.on-green .eyebrow a:hover{color:var(--cream-text);text-decoration-color:var(--cream-text);}
