/* ============================================================
   OUR DARTMOOR TEMPLATE — Phase 1 chrome.
   PALETTE: tweak these variables to recolour everything.
   ============================================================ */
:root{
  --green:#4A6741; --sage:#798D53; --green-tint:#EDF2EC;
  --ink:#41454B; --slate:#6B7077; --line:#E2E4E1; --paper:#F8F8F6;
  --heather:#b98bb0; --heather-hover:#9d7695; --heather-deep:#6B4763; --heather-tint:#F4E9F0;
  --gorse:#E0A526; --gorse-deep:#8a5e0c; --gorse-tint:#FBF1D8;
  --bracken:#a48368; --peat:#c5a670;
  --od-font:'Cabin',system-ui,-apple-system,sans-serif;
  --od-display:'Cabin Sketch','Cabin',cursive;
  --nav-h:88px;
}

*{box-sizing:border-box;}
body.odt{margin:0;font-family:var(--od-font);color:var(--ink);background:var(--paper);line-height:1.6;}
body.odt a{color:inherit;text-decoration:none;}
body.odt img{max-width:100%;}
.odt h1,.odt h2,.odt h3,.odt h4{font-family:var(--od-font);}

.odt-skip{position:absolute;left:-9999px;top:0;background:#fff;padding:10px 16px;z-index:200;}
.odt-skip:focus{left:8px;top:8px;border:2px solid var(--heather);border-radius:6px;}

/* header is a layout-less wrapper so the sticky bars pin to the page, not to it */
.odt-header{display:contents;}

/* ---- utility strip (scrolls away) ---- */
.odt-util{background:var(--paper);border-bottom:1px solid #ECEAE3;font-size:13px;color:var(--slate);}
.odt-util-in{max-width:none;margin:0;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:7px 32px;}
.odt-util-left{display:flex;align-items:center;gap:18px;}
.odt-util-right{display:flex;align-items:center;gap:16px;}
.odt-util a{display:inline-flex;align-items:center;gap:5px;}
.odt-util a:hover{color:var(--green);}
.odt-sp{flex:1;}
.odt-social{display:flex;gap:12px;font-size:17px;color:var(--green);}
.odt-social a:hover{color:var(--heather);}
.odt-suggest{background:var(--green);color:#fff !important;font-weight:600;padding:5px 13px;border-radius:7px;display:inline-flex;align-items:center;gap:5px;font-size:12.5px;}
.odt-suggest:hover{background:#3c5435;color:#fff !important;}

/* ---- main nav (sticky) ---- */
.odt-navwrap{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50;box-shadow:0 3px 12px rgba(0,0,0,.05);}
.odt-nav-in{max-width:none;margin:0;display:flex;align-items:center;gap:18px;padding:0 32px;height:var(--nav-h);}
.odt-logo{display:flex;align-items:center;}
.odt-logo::after{content:'';width:1px;height:48px;background:var(--line);margin-left:24px;}
.odt-logo img{height:56px;display:block;}
.odt-nav-social{display:flex;align-items:center;gap:16px;font-size:22px;}
.odt-nav-social::before{content:'';width:1px;height:48px;background:var(--line);margin-right:24px;}
.odt-nav-social a{color:var(--green);display:inline-flex;}
.odt-nav-social a:hover{color:var(--heather-deep);}
.odt-burger{display:none;background:none;border:0;font-size:28px;color:var(--ink);cursor:pointer;}

/* nav menu (styles Joomla's mod_menu output) */
.odt-mainmenu ul{list-style:none;margin:0;padding:0;}
.odt-mainmenu>ul{display:flex;gap:2px;margin-left:8px;position:relative;}
.odt-mainmenu li{position:relative;}
.odt-mainmenu>ul>li>a{display:inline-flex;align-items:center;gap:5px;font-size:15px;font-weight:500;color:var(--slate);padding:10px 12px;border-bottom:2px solid transparent;}
.odt-mainmenu>ul>li>a:hover{color:var(--ink);}
.odt-mainmenu>ul>li.current>a,.odt-mainmenu>ul>li.active>a{color:var(--heather-deep);border-bottom-color:var(--heather);}
.odt-mainmenu ul ul{position:absolute;top:100%;left:0;min-width:235px;background:#fff;border:1px solid var(--line);border-top:2px solid var(--heather);border-radius:0 0 10px 10px;box-shadow:0 14px 34px rgba(0,0,0,.12);padding:8px 0;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .25s ease,transform .25s ease,visibility .25s;}
.odt-mainmenu li:hover>ul{opacity:1;visibility:visible;transform:translateY(0);}
.odt-mainmenu ul ul li a{display:block;padding:8px 18px;font-size:14px;color:var(--ink);}
.odt-mainmenu ul ul li a:hover{background:var(--heather-tint);color:var(--heather-deep);}
/* "Magic line": one heather underline that slides to the hovered top-level item
   and rests under the current page's item. Added by template.js as progressive
   enhancement; without JS the static border-bottom below still marks the page. */
.odt-magic-line{position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--heather);border-radius:2px;opacity:0;pointer-events:none;transition:left .28s cubic-bezier(.4,0,.2,1),width .28s cubic-bezier(.4,0,.2,1),opacity .2s ease;}
/* When the sliding line is active, drop the per-item static border so there is
   only one accent (the line itself). Text colour on the current item stays. */
.odt-mainmenu.has-magic-line>ul>li>a{border-bottom-color:transparent;}

/* ---- search band (sticky under nav) ---- */
.odt-searchband{background:var(--green-tint);position:sticky;top:var(--nav-h);z-index:40;border-bottom:1px solid #dfe5da;}
.odt-search-in{max-width:1180px;margin:0 auto;display:flex;gap:12px;padding:14px 20px;position:relative;}
.odt-field{flex:1;display:flex;align-items:center;gap:9px;background:#fff;border:1px solid #D6DCCE;border-radius:10px;padding:0 16px;}
.odt-field i{font-size:19px;color:var(--green);}
.odt-field input{border:0;outline:0;flex:1;font-family:var(--od-font);font-size:15px;color:var(--ink);padding:12px 0;background:none;}
.odt-go{background:var(--heather);color:#fff;font-weight:600;font-size:15px;border:0;border-radius:10px;padding:0 26px;cursor:pointer;font-family:var(--od-font);}
.odt-go:hover{background:var(--heather-hover);}
.odt-suggest-box,.odt-suggest{position:absolute;}
#odt-suggest{left:20px;right:96px;top:calc(100% - 8px);background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 26px rgba(0,0,0,.14);display:none;overflow:hidden;z-index:60;}
#odt-suggest a{display:flex;justify-content:space-between;gap:10px;padding:9px 14px;color:var(--ink);font-size:14px;}
#odt-suggest a:hover{background:var(--green-tint);}
#odt-suggest .s{color:var(--slate);font-size:12px;text-transform:capitalize;white-space:nowrap;}

/* ---- main ---- */
.odt-main{min-height:50vh;overflow-x:clip;}
.odt-container{max-width:1180px;margin:0 auto;padding:26px 20px 48px;}
/* article/page heading colours by size — tweak each in user.css */
.odt-main h1{color:var(--green);}
.odt-main h2{font-family:var(--od-font);font-size:clamp(25px,3vw,31px);font-weight:600;color:#4a4e54;line-height:1.25;margin:1.6rem 0 .7rem;}
.odt-main h3{font-size:clamp(21px,2.4vw,25px);color:var(--heather-deep);line-height:1.3;margin:1.3rem 0 .5rem;}
.odt-main h4{font-size:clamp(18px,2vw,20px);color:var(--slate);line-height:1.3;margin:1.1rem 0 .4rem;}

/* Light / dark colour toggle — add to ANY heading (keeps the H1/H2/H3 order).
   .odc-light  = white text for over images or dark panels
   .odc-dark   = dark ink text for on white/pale backgrounds */
.odt .odc-light,
.odt .odc-light h1,.odt .odc-light h2,.odt .odc-light h3,.odt .odc-light h4,.odt .odc-light p{
  color:#fff;text-shadow:0 1px 12px rgba(0,0,0,.4);
}
.odt .odc-dark,
.odt .odc-dark h1,.odt .odc-dark h2,.odt .odc-dark h3,.odt .odc-dark h4,.odt .odc-dark p{
  color:var(--ink);text-shadow:none;
}

/* ---- footer ----
   Background image: set --odt-footer-img in css/user.css to swap the picture
   any time (survives template updates), e.g.
     :root{ --odt-footer-img: url('/images/ourdartmoor/footer/moor.jpg'); }
   A dark overlay keeps the light text readable; with no image it just shows
   the dark fallback colour. All footer text sits above the image. */
.odt-footer{
  position:relative;
  margin-top:30px;
  color:#f3ede2;
  background-color:#33372b;
  background-image:linear-gradient(rgba(26,30,20,.37), rgba(26,30,20,.43)), var(--odt-footer-img, none);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.odt-footer-in{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px;padding:44px 20px;}
.odt-foot-logo{height:60px;margin-bottom:14px;}
.odt-footer h4{color:#fff;font-size:15px;font-weight:600;margin:0 0 10px;}
.odt-footer p,.odt-footer a{color:#f3ede2;font-size:14px;}
.odt-footer a:hover{color:#fff;}
.odt-foot-social{display:flex;gap:16px;font-size:22px;}
.odt-foot-social a{font-size:22px;display:inline-flex;} /* beat .odt-footer a{font-size:14px} */
.odt-footer-base{border-top:1px solid rgba(255,255,255,.18);padding:14px 20px;text-align:center;font-size:13px;color:#fcf4ea;}
.odt-foot-cta{display:none;text-align:center;padding:6px 16px 22px;}

/* ---- mobile drawer ---- */
.odt-drawer{position:fixed;inset:0;z-index:100;visibility:hidden;}
.odt-drawer.open{visibility:visible;}
.odt-scrim{position:absolute;inset:0;background:rgba(20,18,16,.45);opacity:0;transition:opacity .3s ease;}
.odt-drawer.open .odt-scrim{opacity:1;}
.odt-panel{position:absolute;top:0;left:0;height:100%;width:300px;max-width:84vw;background:#fff;transform:translateX(-100%);transition:transform .3s ease;display:flex;flex-direction:column;}
.odt-drawer.open .odt-panel{transform:translateX(0);}
.odt-panel-top{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--line);flex-shrink:0;}
.odt-panel-top img{height:34px;}
.odt-panel-top button{background:none;border:0;font-size:26px;color:var(--ink);cursor:pointer;}
.odt-drawer-menu{overflow:auto;flex:1 1 auto;min-height:0;padding-bottom:72px;}
.odt-drawer-menu ul{list-style:none;margin:0;padding:0;}
.odt-drawer-menu>ul>li{border-bottom:1px solid var(--line);}
.odt-drawer-menu a{display:block;padding:14px 20px;font-size:16px;color:var(--ink);}
.odt-drawer-menu li.current>a,.odt-drawer-menu li.active>a{color:var(--heather-deep);font-weight:600;background:var(--heather-tint);}
.odt-drawer-menu ul ul{background:#faf9f7;}
.odt-drawer-menu ul ul a{padding:11px 20px 11px 34px;font-size:14.5px;color:var(--slate);}
.odt-drawer-suggest{position:absolute;left:18px;right:18px;bottom:16px;margin:0;justify-content:center;padding:12px;}

/* ---- error / offline ---- */
.odt-errbox{max-width:560px;margin:5rem auto;padding:0 1.2rem;text-align:center;}
.odt-errbox h1{font-size:3rem;margin:0 0 .4rem;color:var(--green);}

/* ============================================================
   HOME PAGE SECTIONS
   ============================================================ */
.odt-hero{position:relative;background:#3f4a32 center/cover;color:#fff;border-radius:14px;overflow:hidden;margin-bottom:40px;}
.odt-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(30,34,22,.62),rgba(30,34,22,.12));}
.odt-hero-in{position:relative;z-index:2;max-width:660px;padding:66px 42px;}
.odt-hero .odt-eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:13px;font-weight:600;color:#e7d8c7;margin:0 0 10px;}
.odt-hero h1{font-size:38px;font-weight:600;line-height:1.15;letter-spacing:-.02em;margin:0 0 18px;}
.odt-hero p{font-size:18px;line-height:1.6;margin:0 0 22px;color:#f1ece4;}
.odt-btn{display:inline-flex;align-items:center;gap:7px;font-weight:600;border-radius:8px;font-size:16px;padding:12px 24px;}
.odt-hero .odt-btn{background:var(--heather);color:#fff;}
.odt-hero .odt-btn:hover{background:#b98bb0;color:#fff;}

.odt-section{margin:46px 0;}
.odt-section-head{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 18px;gap:14px;}
.odt-section-head h2{font-size:26px;font-weight:600;letter-spacing:-.01em;color:var(--ink);margin:0;}
.odt-section-head a{font-size:14px;font-weight:600;color:var(--heather);display:inline-flex;gap:5px;align-items:center;white-space:nowrap;}
.odt-intro{max-width:800px;font-size:18px;line-height:1.7;color:var(--slate);}
.odt-intro strong,.odt-intro b{color:var(--ink);}

/* latest stories — title on image, slides up to reveal more on hover */
.odt-stories{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.odt-story{position:relative;height:330px;border-radius:12px;overflow:hidden;display:block;background:#c3cdb4;}
.odt-story img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.odt-story:hover img{transform:scale(1.05);}
.odt-story-cap{position:absolute;left:0;right:0;bottom:0;padding:20px;color:#fff;background:linear-gradient(transparent,rgba(20,18,14,.5) 42%,rgba(20,18,14,.85));transform:translateY(48px);transition:transform .45s ease;}
.odt-story:hover .odt-story-cap,.odt-story:focus .odt-story-cap{transform:translateY(0);}
.odt-story-over{display:block;text-transform:uppercase;letter-spacing:.09em;font-size:11px;font-weight:600;color:#eccfe6;margin-bottom:5px;}
.odt-story-cap h3{font-size:19px;font-weight:600;line-height:1.25;margin:0 0 8px;color:#fff;}
.odt-story-cap p{font-size:14px;line-height:1.5;margin:0;opacity:0;transition:opacity .4s ease .05s;color:#f0eae2;}
.odt-story:hover .odt-story-cap p,.odt-story:focus .odt-story-cap p{opacity:1;}

/* directory category grid */
.odt-cats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.odt-cat{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 18px;transition:border-color .25s ease,transform .25s ease;}
.odt-cat:hover{border-color:var(--heather);transform:translateY(-2px);}
.odt-cat i{font-size:26px;color:var(--green);}
.odt-cat span{font-weight:600;font-size:15.5px;color:var(--ink);}

/* call to action band */
.odt-cta{background:var(--green-tint);border-radius:14px;padding:40px;text-align:center;margin:46px 0;}
.odt-cta h2{font-size:25px;font-weight:600;color:var(--ink);margin:0 0 10px;}
.odt-cta p{max-width:660px;margin:0 auto 20px;color:var(--slate);font-size:16px;line-height:1.7;}
.odt-cta .odt-btn{background:var(--green);color:#fff;}
.odt-cta .odt-btn:hover{background:#3c5435;color:#fff;}

@media(max-width:900px){
  .odt-stories,.odt-cats{grid-template-columns:1fr 1fr;}
  .odt-hero h1{font-size:30px;}
  .odt-hero-in{padding:44px 26px;}
}
@media(max-width:560px){
  .odt-stories,.odt-cats{grid-template-columns:1fr;}
}

/* ---- responsive ---- */
@media(max-width:900px){
  .odt-mainmenu{display:none;}
  .odt-nav-social{display:none;}
  .odt-logo::after{display:none;}
  .odt-nav-in{justify-content:space-between;}
  .odt-burger{display:block;margin-left:auto;}
  .odt-footer-in{grid-template-columns:1fr;}
  #odt-suggest{right:20px;}
}
@media(max-width:700px){
  .odt-util .odt-suggest{display:none;}
  .odt-foot-cta{display:block;}
}
@media(max-width:560px){
  .odt-util-in{flex-wrap:wrap;gap:10px;}
  .odt-go{padding:0 18px;}
}

/* ============================================================
   CONTENT LAYOUT KIT  (classes: odc-*)
   Paste blocks from content-snippets.html into your articles to
   lay them out. Styling lives here so the look stays consistent.
   ============================================================ */
.odc-lead{font-size:20px;line-height:1.65;color:var(--ink);margin:0 0 1.2rem;}
/* Full-width hero: image runs edge-to-edge, text sits over it */
.odc-hero{position:relative;width:100vw;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;margin-top:-26px;min-height:clamp(320px,46vw,520px);display:flex;align-items:center;background:#3f4a32 center/cover no-repeat;color:#fff;}
.odc-hero::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(18,22,12,.4),rgba(18,22,12,.08));}
.odc-hero-in{position:relative;z-index:2;width:100%;max-width:1180px;margin:0 auto;padding:64px 20px;}
.odc-hero .odc-eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:13px;font-weight:600;color:#e7d8c7;margin:0 0 10px;}
.odc-hero h1{font-family:var(--od-display);color:#fff;font-size:clamp(34px,5.2vw,54px);font-weight:700;line-height:1.05;letter-spacing:0;margin:0 0 16px;max-width:680px;text-shadow:0 2px 14px rgba(0,0,0,.3);}
/* Apply this class to any heading for the rustic Cabin Sketch look */
.odt .odc-display{font-family:var(--od-display);font-weight:700;}
.odc-hero p{font-size:clamp(16px,1.6vw,20px);line-height:1.55;margin:0 0 22px;max-width:560px;color:#f1ece4;}
.odc-hero .odc-btn{background:var(--heather);}
.odc-hero .odc-btn:hover{background:var(--heather-hover);}
/* Optional slow background zoom (Ken Burns), independent of the text. Add class "zoom". */
.odc-hero.zoom{overflow:hidden;}
.odc-hero.zoom::before{content:'';position:absolute;inset:-3%;z-index:0;background-image:inherit;background-size:cover;background-position:center;animation:od-kenburns 24s ease-in-out infinite alternate;}
@keyframes od-kenburns{from{transform:scale(1);}to{transform:scale(1.12);}}
/* Video background hero: add class "video" to .odc-hero and drop a
   <video class="odc-hero-vid"> as the first child. Keep a poster image on the
   hero (background-image) as a fallback for slow connections / reduced motion. */
.odc-hero.video{overflow:hidden;}
.odc-hero-vid{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;border:0;pointer-events:none;}
@media (prefers-reduced-motion: reduce){
  .odc-hero-vid{display:none;} /* falls back to the hero's poster image */
}
.odc-row{display:grid;gap:26px;margin:1.4rem 0;}
.odc-row.cols-2{grid-template-columns:1fr 1fr;}
.odc-row.cols-3{grid-template-columns:1fr 1fr 1fr;}
.odc-callout{background:var(--green-tint);border-left:4px solid var(--green);border-radius:8px;padding:18px 22px;margin:1.4rem 0;}
.odc-callout.heather{background:var(--heather-tint);border-left-color:var(--heather);}
.odc-callout.gorse{background:var(--gorse-tint);border-left-color:var(--gorse);}
.odc-callout h3{margin:0 0 .4rem;font-size:18px;color:var(--ink);}
.odc-callout :last-child{margin-bottom:0;}
.odc-quote{margin:1.6rem 0;padding:2px 0 2px 22px;border-left:3px solid var(--heather);font-size:22px;line-height:1.5;color:var(--ink);font-style:italic;}
.odc-quote cite{display:block;margin-top:.6rem;font-size:14px;font-style:normal;color:var(--slate);}
/* Quote / testimonial card */
.odc-quotecard{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px 28px 24px;position:relative;margin:1.6rem 0;}
.odc-quotecard::before{content:'\201C';position:absolute;top:0;left:16px;font-family:Georgia,'Times New Roman',serif;font-size:66px;line-height:1;color:var(--heather);opacity:.45;}
.odc-quote-text{position:relative;font-size:18px;line-height:1.6;color:var(--ink);font-style:italic;margin:0;}
.odc-quote-by{display:flex;align-items:center;gap:12px;margin-top:16px;}
.odc-quote-avatar{width:44px;height:44px;border-radius:50%;background:var(--green-tint) center/cover no-repeat;flex-shrink:0;}
.odc-quote-by .nm{font-weight:600;font-size:14px;color:var(--ink);}
.odc-quote-by .role{font-size:13px;color:var(--slate);}
.odc-figure{margin:1.4rem 0;}
.odc-figure img{width:100%;border-radius:10px;display:block;}
.odc-figure figcaption{font-size:13.5px;color:var(--slate);margin-top:.5rem;}
.odc-imgtext{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center;margin:1.6rem 0;}
.odc-imgtext img{width:100%;border-radius:10px;}
.odc-imgtext.flip .odc-media{order:2;}
.odc-btn{display:inline-flex;align-items:center;gap:7px;font-weight:600;border-radius:8px;font-size:16px;padding:11px 22px;background:var(--green);color:#fff !important;text-decoration:none;}
.odc-btn:hover{background:#3c5435;color:#fff !important;}
.odc-btn.heather{background:var(--heather);}
.odc-btn.heather:hover{background:var(--heather-hover);}
.odc-btn.gorse{background:var(--gorse);color:#5a3d08 !important;}
.odc-btn.gorse:hover{background:var(--gorse);filter:brightness(.95);color:#5a3d08 !important;}

/* Gorse accents — use sparingly (a featured flag, one standout moment) */
.odc-badge{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 11px;border-radius:20px;background:var(--gorse);color:#5a3d08;}
.odc-tag{display:inline-block;font-size:12px;font-weight:600;padding:3px 11px;border-radius:20px;background:var(--heather-tint);color:var(--heather-deep);}
.odc-tag.gorse{background:var(--gorse-tint);color:var(--gorse-deep);}

/* Content card, with an optional .featured (gorse) treatment */
.odc-card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;transition:transform .3s ease,box-shadow .3s ease;display:block;color:inherit;}
.odc-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(0,0,0,.09);}
.odc-card.featured{border:1px solid var(--gorse);}
.odc-card-img{height:170px;background:var(--green-tint) center/cover no-repeat;position:relative;}
.odc-card-img .odc-badge{position:absolute;top:10px;left:10px;}
.odc-card-bd{padding:14px 16px 16px;}
.odc-card-bd h3{margin:0 0 4px;font-size:17px;color:var(--green);}
.odc-card-bd p{margin:0;font-size:14px;color:var(--slate);line-height:1.55;}
@media(max-width:700px){
  .odc-row.cols-2,.odc-row.cols-3,.odc-imgtext{grid-template-columns:1fr;}
  .odc-imgtext.flip .odc-media{order:0;}
}

@media (prefers-reduced-motion: reduce){
  *{transition:none !important;animation:none !important;}
}

/* ============================================================
   ACCESSIBILITY FOUNDATIONS
   ============================================================ */
/* Clear, on-brand keyboard focus ring everywhere. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,[tabindex]:focus-visible,summary:focus-visible,.od-tabbtn:focus-visible{
  outline:3px solid var(--heather);outline-offset:2px;border-radius:3px;
}
/* Skip link: off-screen until focused. */
.odt-skip{position:absolute;left:-9999px;top:8px;z-index:200;background:var(--green);color:#fff;padding:10px 16px;border-radius:8px;font-weight:600;text-decoration:none;}
.odt-skip:focus{left:8px;}

/* ============================================================
   READING COMFORT PANEL
   Preference classes live on <html> (applied pre-paint by the head
   script): rc-text-1/2 (larger), rc-dark, rc-font, rc-motion,
   rc-links, rc-guide.
   ============================================================ */
.odt-rc-btn{position:fixed;left:20px;bottom:20px;z-index:90;width:52px;height:52px;border:0;border-radius:50%;background:var(--heather);color:#fff;font-size:26px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.22);transition:background .2s ease,transform .2s ease;}
.odt-rc-btn:hover{background:var(--heather-hover);transform:translateY(-2px);}
.odt-rc-btn i{line-height:1;}
.odt-rc-panel{position:fixed;left:20px;bottom:84px;z-index:95;width:300px;max-width:calc(100vw - 40px);max-height:calc(100vh - 120px);overflow-y:auto;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 46px rgba(0,0,0,.22);padding:18px;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .22s ease,transform .22s ease,visibility .22s;}
.odt-rc-panel.open{opacity:1;visibility:visible;transform:translateY(0);}
.odt-rc-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 4px;}
.odt-rc-head h2{font-family:var(--od-font);font-size:17px;font-weight:700;color:var(--ink);margin:0;}
.odt-rc-close{background:none;border:0;color:var(--slate);font-size:20px;cursor:pointer;display:inline-flex;padding:4px;border-radius:6px;}
.odt-rc-close:hover{color:var(--ink);background:var(--green-tint);}
.odt-rc-intro{font-size:12.5px;color:var(--slate);margin:0 0 14px;line-height:1.5;}
.odt-rc-group{margin:0 0 14px;}
.odt-rc-label{display:block;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--slate);margin:0 0 7px;}
.odt-rc-seg{display:flex;gap:6px;}
.odt-rc-seg button{flex:1;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:8px;padding:8px 4px;font-size:13px;font-weight:600;cursor:pointer;font-family:var(--od-font);}
.odt-rc-seg button:hover{border-color:var(--heather);}
.odt-rc-seg button.is-active{background:var(--heather);border-color:var(--heather);color:#fff;}
.odt-rc-toggles{display:flex;flex-direction:column;gap:7px;margin:0 0 14px;}
.odt-rc-toggle{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:#fff;border-radius:9px;padding:10px 12px;font-size:14px;font-weight:500;color:var(--ink);cursor:pointer;font-family:var(--od-font);text-align:left;}
.odt-rc-toggle i{font-size:19px;color:var(--slate);flex:0 0 auto;}
.odt-rc-toggle span{flex:1;}
.odt-rc-toggle::after{content:'';width:14px;height:14px;border-radius:50%;border:2px solid var(--line);flex:0 0 auto;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease;}
.odt-rc-toggle:hover{border-color:var(--heather);}
.odt-rc-toggle.is-on{background:var(--heather-tint);border-color:var(--heather);color:var(--heather-deep);}
.odt-rc-toggle.is-on i{color:var(--heather-deep);}
.odt-rc-toggle.is-on::after{background:var(--heather);border-color:var(--heather);box-shadow:0 0 0 3px var(--heather-tint);}
.odt-rc-reset{width:100%;border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px;font-size:13px;font-weight:600;color:var(--slate);cursor:pointer;font-family:var(--od-font);display:inline-flex;align-items:center;justify-content:center;gap:6px;}
.odt-rc-reset:hover{color:var(--ink);border-color:var(--slate);}
.odt-rc-guide{position:fixed;left:0;right:0;height:44px;margin-top:-22px;background:rgba(185,139,176,.16);border-top:2px solid rgba(107,71,99,.35);border-bottom:2px solid rgba(107,71,99,.35);pointer-events:none;z-index:80;}
.odt-rc-voicegroup{margin:0 0 14px;}
.odt-rc-voice{width:100%;border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:8px;padding:8px 10px;font-size:13px;font-family:var(--od-font);cursor:pointer;}
.odt-rc-voice:hover{border-color:var(--heather);}
.rc-dark .odt-rc-voice{background:#26261d;color:#e9e7df;border-color:#3a3a2f;}

/* ---- Comfort effects (classes on <html>) ---- */
html.rc-text-1{zoom:1.12;}
html.rc-text-2{zoom:1.25;}

.rc-font *{font-family:'Atkinson Hyperlegible',var(--od-font) !important;}
.rc-font .ti,.rc-font [class*="ti-"]{font-family:'tabler-icons' !important;}

.rc-motion *,.rc-motion *::before,.rc-motion *::after{animation-duration:.001ms !important;animation-delay:0ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
.rc-motion [uk-scrollspy]>*{opacity:1 !important;transform:none !important;}

.rc-links a:not(.od-btn):not(.odc-btn):not(.odt-cat):not(.uk-button):not(.odt-rc-btn):not(.odt-rc-toggle):not(.odt-logo){text-decoration:underline !important;text-underline-offset:2px;}

/* More spacing (letter/word/line) for easier reading */
.rc-spacing p,.rc-spacing li,.rc-spacing dd,.rc-spacing blockquote,.rc-spacing .odt-main,.rc-spacing .od-tile-text,.rc-spacing .odc-lead{letter-spacing:.04em !important;word-spacing:.14em !important;}
.rc-spacing p,.rc-spacing li,.rc-spacing dd,.rc-spacing blockquote{line-height:1.9 !important;}

/* Bigger cursor (an SVG pointer, no image file needed) */
.rc-cursor,.rc-cursor *{cursor:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='44'%20height='44'%20viewBox='0%200%2044%2044'%3E%3Cpath%20d='M8%204%20L8%2036%20L17%2028%20L23%2040%20L29%2037%20L23%2026%20L34%2026%20Z'%20fill='black'%20stroke='white'%20stroke-width='2'/%3E%3C/svg%3E") 6 4,auto !important;}

/* Read aloud: hint that text blocks are clickable to be spoken */
.rc-tts p,.rc-tts h1,.rc-tts h2,.rc-tts h3,.rc-tts h4,.rc-tts li,.rc-tts blockquote,.rc-tts figcaption,.rc-tts .od-tile-text{cursor:pointer;}
.rc-tts p:hover,.rc-tts h1:hover,.rc-tts h2:hover,.rc-tts h3:hover,.rc-tts h4:hover,.rc-tts li:hover,.rc-tts blockquote:hover{outline:2px dashed var(--heather);outline-offset:3px;border-radius:3px;}
.odt-rc-speaking{background:var(--heather-tint) !important;box-shadow:0 0 0 2px var(--heather);}

/* ---- Dark mode: re-map the theme variables, then patch white surfaces ---- */
.rc-dark{
  --ink:#e9e7df;--slate:#b7b5ab;--line:#3a3a2f;--paper:#141410;--green-tint:#23241b;
  --heather-tint:#2b2231;--gorse-tint:#2b2716;
  --od-ink:#e9e7df;--od-muted:#b7b5ab;--od-line:#3a3a2f;--od-green-l:#23241b;--od-green-d:#b7cf8f;--od-stone:#1e1e17;
}
.rc-dark body{background:#141410;color:#e9e7df;}
.rc-dark .odt-navwrap{background:#1c1c15;border-color:#33332a;box-shadow:0 3px 12px rgba(0,0,0,.4);}
.rc-dark .odt-util{background:#181811;}
.rc-dark .odt-searchband{background:#20201a;border-color:#33332a;}
.rc-dark .odt-field{background:#141410;border-color:#44443a;}
.rc-dark .odt-field input,.rc-dark .odt-field input::placeholder{color:#cdcbc1;}
.rc-dark .odt-main{background:#141410;}
.rc-dark .odt-mainmenu>ul>li>a{color:#cdcbc1;}
.rc-dark .odt-mainmenu>ul>li>a:hover{color:#fff;}
.rc-dark .odt-mainmenu ul ul{background:#20201a;border-color:#33332a;}
.rc-dark .odt-util a{color:#cdcbc1;}
.rc-dark h1,.rc-dark h2,.rc-dark h3,.rc-dark h4{color:#f2efe8;}
.rc-dark .odt-main h2{color:#eae7de;}
.rc-dark .odt-cat,.rc-dark .odc-card,.rc-dark .od-tile,.rc-dark .od-card,.rc-dark .od-kw,.rc-dark .od-kw-card,.rc-dark .od-catcard,.rc-dark .od-catcard-body,.rc-dark .od-kw-card-body,.rc-dark .od-contact-form,.rc-dark .od-input,.rc-dark .od-select,.rc-dark .od-pagination .page-link,.rc-dark .od-slide-stage,.rc-dark .odt-panel,.rc-dark .od-map-controls,.rc-dark .od-event,.rc-dark .od-faq details{background:#20201a;border-color:#3a3a2f;color:#e9e7df;}
.rc-dark .odt-rc-panel{background:#20201a;border-color:#3a3a2f;}
.rc-dark .odt-rc-seg button,.rc-dark .odt-rc-toggle,.rc-dark .odt-rc-reset{background:#26261d;color:#e9e7df;}
