:root{
  --ink:#0d1210;
  --ink-raise:#141b17;
  --ink-raise-2:#18211c;
  --edge:rgba(255,255,255,.075);
  --edge-2:rgba(255,255,255,.16);
  --fg:#eef2ec;
  --fg-2:#9fada3;
  --fg-3:#6d7a72;
  --acc:#8fd257;
  --acc-dim:#5d8f38;
  --col:1160px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--fg-2);
  font-family:'Instrument Sans',-apple-system,BlinkMacSystemFont,sans-serif;
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;}

/* Fading grid: strongest at the top of the viewport, dissolving downward so it
   never competes with panel borders further down the page. */
body::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:64px 64px;background-position:-1px -1px;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.35) 55%,transparent 92%);
          mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.35) 55%,transparent 92%);}
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(900px 520px at 72% -8%,rgba(143,210,87,.11),transparent 62%);}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0;color:var(--fg);font-weight:600;letter-spacing:-.028em;line-height:1.06}
p{margin:0}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.wrap{max-width:var(--col);margin:0 auto;padding:0 40px;position:relative;z-index:1}

header{position:sticky;top:0;z-index:60;backdrop-filter:blur(14px);
  background:rgba(13,18,16,.8);border-bottom:1px solid var(--edge)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px;gap:20px}
.brand img{height:26px}
.nav nav{display:flex;gap:30px}
.nav nav a{font-size:.93rem;color:var(--fg-2)}
.nav nav a:hover{color:var(--fg)}
.cta{font-size:.93rem;font-weight:600;color:var(--ink);background:var(--acc);padding:10px 20px;border-radius:999px}
.cta:hover{background:#a1de6d}
.burger{display:none;width:34px;height:34px;border:1px solid var(--edge-2);background:none;color:var(--fg);cursor:pointer;align-items:center;justify-content:center;border-radius:6px}

/* hero */
.hero{padding:120px 0 96px}
.hero h1{font-size:clamp(2.7rem,6.2vw,5.1rem);max-width:15ch;letter-spacing:-.04em}
.hero .sub{margin-top:30px;max-width:52ch;display:flex;flex-direction:column;gap:13px;font-size:1.12rem}
.hero .acts{display:flex;gap:16px;align-items:center;margin-top:42px;flex-wrap:wrap}
.b1{background:var(--acc);color:#12200a;font-weight:600;font-size:.98rem;padding:14px 28px;border-radius:999px}
.b1:hover{background:#a1de6d}
.b2{border:1px solid var(--edge-2);color:var(--fg);font-weight:600;font-size:.98rem;padding:13px 26px;border-radius:999px}
.b2:hover{border-color:var(--acc);color:var(--acc)}

/* the rail: the page's organising motif */
.rail{margin-top:96px;position:relative;padding-top:38px}
.rail::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:var(--edge-2)}
.rail-track{position:absolute;top:0;left:0;height:1px;width:100%;overflow:hidden}
.rail-track span{position:absolute;top:0;left:0;height:1px;width:130px;
  background:linear-gradient(90deg,transparent,var(--acc),transparent);
  animation:run 5.5s linear infinite}
@keyframes run{from{transform:translateX(-140px)}to{transform:translateX(1180px)}}
@media (prefers-reduced-motion:reduce){.rail-track span{animation:none;opacity:.5}}
.rail-nodes{display:grid;grid-template-columns:repeat(5,1fr);gap:0}
.rnode{position:relative;padding-right:24px}
.rnode::before{content:'';position:absolute;top:-38px;left:0;width:7px;height:7px;border-radius:50%;
  background:var(--ink);border:1px solid var(--acc);transform:translateY(-3px)}
.rnode .rl{display:block;font-size:.82rem;color:var(--fg-3);margin-bottom:6px}
.rnode .rv{font-size:.98rem;color:var(--fg);font-weight:500}

/* sections */
.sec{padding:110px 0;border-top:1px solid var(--edge)}
.sec-head{max-width:46ch}
.sec-head h2{font-size:clamp(1.95rem,3.6vw,3rem)}
.sec-head .lede{margin-top:20px;display:flex;flex-direction:column;gap:11px;font-size:1.08rem}

/* practice panels */
.panels{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:60px}
.panel{background:var(--ink-raise);border:1px solid var(--edge);border-radius:14px;padding:40px;
  display:flex;flex-direction:column;gap:16px;transition:border-color .2s,background .2s}
.panel:hover{border-color:var(--acc-dim);background:var(--ink-raise-2)}
.panel .pk{font-size:.84rem;color:var(--acc)}
.panel h3{font-size:1.45rem;max-width:18ch}
.panel p{font-size:1.01rem;max-width:44ch}
.panel .more{margin-top:auto;padding-top:14px;font-weight:600;font-size:.95rem;color:var(--fg)}
.panel:hover .more{color:var(--acc)}

/* capability list */
.caps{margin-top:56px;border-top:1px solid var(--edge)}
.cap{display:grid;grid-template-columns:56px 260px 1fr 30px;gap:24px;align-items:baseline;
  padding:28px 0;border-bottom:1px solid var(--edge);transition:padding-left .2s}
.cap:hover{padding-left:10px}
.cap .cn{font-size:.85rem;color:var(--fg-3)}
.cap:hover .cn{color:var(--acc)}
.cap h3{font-size:1.15rem}
.cap p{font-size:1rem;max-width:52ch}
.cap .ca{color:var(--fg-3);font-size:1.05rem}
.cap:hover .ca{color:var(--acc)}

/* process */
.proc{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;margin-top:60px}
.pstep{border-top:2px solid var(--edge-2);padding-top:20px}
.pstep:first-child{border-top-color:var(--acc)}
.pstep .pn{font-size:.85rem;color:var(--acc);font-weight:600;display:block;margin-bottom:10px}
.pstep h3{font-size:1.06rem;margin-bottom:8px}
.pstep p{font-size:.95rem}

/* why */
.why{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:60px}
.wcard{background:var(--ink-raise);border:1px solid var(--edge);border-radius:14px;padding:32px}
.wcard h3{font-size:1.1rem;margin-bottom:10px}
.wcard p{font-size:1rem}

/* close */
.close{padding:130px 0;border-top:1px solid var(--edge);text-align:left}
.close h2{font-size:clamp(2.1rem,4.4vw,3.4rem);max-width:16ch}
.close p{margin-top:20px;font-size:1.1rem;max-width:48ch}
.close .acts{margin-top:38px;display:flex;gap:16px;flex-wrap:wrap;align-items:center}

footer{border-top:1px solid var(--edge);padding:56px 0 36px;background:rgba(0,0,0,.25)}
.fg{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;padding-bottom:44px}
.fg img{height:24px;margin-bottom:14px}
.fg h4{color:var(--fg);font-size:.9rem;margin:0 0 14px;font-weight:600}
.fg ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.fg a{font-size:.9rem;color:var(--fg-2)}
.fg a:hover{color:var(--fg)}
.fb{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:26px;border-top:1px solid var(--edge);font-size:.85rem;color:var(--fg-3)}

@media (max-width:900px){
  .wrap{padding:0 22px}
  .nav nav{display:none}.burger{display:flex}
  .hero{padding:76px 0 60px}
  .sec,.close{padding:70px 0}
  .rail-nodes{grid-template-columns:1fr 1fr}
  .rnode{padding:0 0 22px}
  .rnode::before{display:none}
  .rail{margin-top:60px}
  .panels{grid-template-columns:1fr}
  .cap{grid-template-columns:1fr;gap:7px}
  .cap .ca{display:none}
  .proc{grid-template-columns:1fr;gap:0}
  .pstep{border-top:1px solid var(--edge);padding:20px 0}
  .pstep:first-child{border-top-color:var(--acc)}
  .why{grid-template-columns:1fr}
  .fg{grid-template-columns:1fr 1fr}
}
/* ---- page hero (inner pages) ---- */
.phero{padding:104px 0 88px}
.phero .pk{display:inline-block;font-size:.85rem;color:var(--acc);margin-bottom:18px;
  border:1px solid rgba(143,210,87,.32);border-radius:999px;padding:5px 14px}
.phero h1{font-size:clamp(2.4rem,5.4vw,4.3rem);max-width:17ch;letter-spacing:-.038em}
.phero .sub{margin-top:26px;max-width:54ch;display:flex;flex-direction:column;gap:12px;font-size:1.1rem}
.phero .acts{display:flex;gap:16px;align-items:center;margin-top:38px;flex-wrap:wrap}

/* ---- prose statement ---- */
.stmt{max-width:58ch;display:flex;flex-direction:column;gap:14px;font-size:1.08rem}
.stmt .pop{color:var(--fg);font-weight:600;font-size:1.14rem}

/* ---- symptom / bullet list ---- */
.bullets{margin-top:34px;display:grid;grid-template-columns:1fr 1fr;gap:12px 30px}
.bullets li{list-style:none;display:flex;gap:11px;align-items:flex-start;font-size:1rem}
.bullets li svg{flex-shrink:0;width:15px;height:15px;margin-top:5px;color:var(--acc)}
.bullets.one{grid-template-columns:1fr}

/* ---- module grid (features) ---- */
.mods{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:56px}
.mod{background:var(--ink-raise);border:1px solid var(--edge);border-radius:13px;padding:28px;
  display:flex;flex-direction:column;gap:11px;transition:border-color .2s,background .2s}
.mod:hover{border-color:var(--acc-dim);background:var(--ink-raise-2)}
.mod .mn{font-size:.82rem;color:var(--acc)}
.mod h3{font-size:1.1rem}
.mod p{font-size:.97rem}

/* ---- split: text + boxed list ---- */
.duo2{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start;margin-top:52px}
.boxlist{background:var(--ink-raise);border:1px solid var(--edge);border-radius:14px;padding:32px}
.boxlist h3{font-size:1.1rem;margin-bottom:18px}
.boxlist ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px}
.boxlist li{display:flex;gap:11px;font-size:.99rem;align-items:flex-start}
.boxlist li svg{flex-shrink:0;width:15px;height:15px;margin-top:5px;color:var(--acc)}

/* ---- platform trio ---- */
.plats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:52px}
.plat{background:var(--ink-raise);border:1px solid var(--edge);border-radius:13px;padding:30px}
.plat h3{font-size:1.22rem;margin-bottom:10px}
.plat p{font-size:.98rem;margin-bottom:16px}
.plat ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.plat li{font-size:.94rem;color:var(--fg-3);display:flex;gap:9px}
.plat li::before{content:'';width:4px;height:4px;border-radius:50%;background:var(--acc-dim);margin-top:9px;flex-shrink:0}

/* ---- workflow strip ---- */
.wflow{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:52px}
.wf{border-top:2px solid var(--edge-2);padding-top:18px}
.wf:first-child{border-top-color:var(--acc)}
.wf .wn{font-size:.83rem;color:var(--acc);font-weight:600;display:block;margin-bottom:9px}
.wf h3{font-size:1rem;margin-bottom:7px}
.wf p{font-size:.94rem}

/* ---- case study ---- */
.cs{background:var(--ink-raise);border:1px solid var(--edge);border-radius:14px;padding:40px;margin-bottom:20px}
.cs .csn{font-size:.84rem;color:var(--acc);display:block;margin-bottom:10px}
.cs .csk{font-size:.9rem;color:var(--fg-3);margin-bottom:12px}
.cs h3{font-size:1.6rem;max-width:26ch;letter-spacing:-.025em}
.cs .csgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:28px;padding-top:26px;border-top:1px solid var(--edge)}
.cs .csgrid h4{font-size:.85rem;color:var(--acc);margin:0 0 8px;font-weight:600}
.cs .csgrid p{font-size:.97rem}
.chain{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:24px}
.chain .cc{background:var(--ink);border:1px solid var(--edge-2);border-radius:999px;padding:8px 16px;font-size:.92rem;color:var(--fg)}
.chain .cx{color:var(--acc);font-size:.95rem}

/* ---- FAQ ---- */
.faq{margin-top:52px;border-top:1px solid var(--edge)}
.faq details{border-bottom:1px solid var(--edge)}
.faq summary{list-style:none;cursor:pointer;padding:24px 0;display:flex;justify-content:space-between;
  gap:24px;align-items:center;color:var(--fg);font-size:1.08rem;font-weight:600}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';color:var(--acc);font-size:1.3rem;font-weight:400;flex-shrink:0}
.faq details[open] summary::after{content:'–'}
.faq .fa{padding:0 0 24px;font-size:1.01rem;max-width:64ch}

/* ---- contact form ---- */
.cgrid{display:grid;grid-template-columns:1.25fr .75fr;gap:56px;align-items:start;margin-top:12px}
.form{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.fld{display:flex;flex-direction:column;gap:8px}
.fld.full{grid-column:1/-1}
.fld label{font-size:.88rem;color:var(--fg);font-weight:600}
.fld input,.fld textarea{background:var(--ink-raise);border:1px solid var(--edge-2);border-radius:9px;
  padding:13px 15px;color:var(--fg);font-family:inherit;font-size:.98rem;width:100%}
.fld textarea{min-height:110px;resize:vertical}
.fld input:focus,.fld textarea:focus{outline:none;border-color:var(--acc)}
.fld input::placeholder,.fld textarea::placeholder{color:var(--fg-3)}
.srow{grid-column:1/-1;display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:6px}
.form button{background:var(--acc);color:#12200a;border:none;border-radius:999px;font-family:inherit;
  font-weight:600;font-size:.98rem;padding:14px 30px;cursor:pointer}
.form button:hover{background:#a1de6d}
.note{font-size:.88rem;color:var(--fg-3)}
.aside-card{background:var(--ink-raise);border:1px solid var(--edge);border-radius:14px;padding:30px;margin-bottom:18px}
.aside-card h3{font-size:1.06rem;margin-bottom:12px}
.aside-card p{font-size:.97rem;margin-bottom:10px}
.aside-card a{color:var(--acc);font-weight:600}
.aside-card ol{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:10px}
.aside-card li{font-size:.97rem}

@media (max-width:900px){
  .phero{padding:64px 0 52px}
  .bullets{grid-template-columns:1fr}
  .mods{grid-template-columns:1fr}
  .duo2{grid-template-columns:1fr;gap:32px}
  .plats{grid-template-columns:1fr}
  .wflow{grid-template-columns:1fr;gap:0}
  .wf{border-top:1px solid var(--edge);padding:18px 0}
  .wf:first-child{border-top-color:var(--acc)}
  .cs{padding:28px}
  .cs .csgrid{grid-template-columns:1fr;gap:18px}
  .cgrid{grid-template-columns:1fr;gap:34px}
  .form{grid-template-columns:1fr}
}

/* ===================== WordPress additions ===================== */
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.skip-link{position:absolute;left:-9999px;top:0;z-index:999;background:var(--acc);color:#12200a;padding:10px 16px;font-weight:600}
.skip-link:focus{left:12px;top:12px;width:auto;height:auto;clip:auto}

/* mobile nav panel */
.mobile-nav{border-top:1px solid var(--edge);background:var(--ink);padding:18px 0 26px}
.mobile-nav nav{display:flex;flex-direction:column;gap:2px;margin-bottom:18px}
.mobile-nav nav a{display:block;padding:13px 0;font-size:1.05rem;font-weight:600;color:var(--fg);border-bottom:1px solid var(--edge)}
.mobile-nav .b1{display:inline-block}
@media (min-width:901px){.mobile-nav{display:none!important}}

/* entry content (blog + editor output) */
.entry{max-width:72ch}
.entry h2{font-size:1.7rem;margin:38px 0 14px;letter-spacing:-.025em}
.entry h3{font-size:1.25rem;margin:30px 0 12px}
.entry p{margin-bottom:17px}
.entry a{color:var(--acc);text-decoration:underline;text-underline-offset:3px}
.entry ul,.entry ol{margin:0 0 18px;padding-left:22px;display:flex;flex-direction:column;gap:9px}
.entry li{font-size:1.02rem}
.entry blockquote{margin:26px 0;padding:20px 26px;border-left:2px solid var(--acc);background:var(--ink-raise);border-radius:0 10px 10px 0}
.entry blockquote p:last-child{margin-bottom:0}
.entry code{background:var(--ink-raise);border:1px solid var(--edge);border-radius:5px;padding:2px 6px;font-size:.92em}
.entry pre{background:var(--ink-raise);border:1px solid var(--edge);border-radius:11px;padding:20px;overflow-x:auto;margin-bottom:20px}
.entry pre code{background:none;border:none;padding:0}
.entry img,.entry figure img{border-radius:11px;height:auto}
.entry table{width:100%;border-collapse:collapse;margin-bottom:20px;display:block;overflow-x:auto}
.entry th,.entry td{border:1px solid var(--edge);padding:11px 14px;text-align:left;font-size:.97rem}
.entry th{color:var(--fg);background:var(--ink-raise)}
.post-hero{margin:0 0 36px}
.post-hero img{width:100%;height:auto;border-radius:14px;border:1px solid var(--edge)}

/* card links keep the panel hover */
a.mod{text-decoration:none}
.cs h3 a{color:inherit}
.cs h3 a:hover{color:var(--acc)}
a.cc{text-decoration:none}
a.cc:hover{border-color:var(--acc);color:var(--acc)}

/* pagination + post nav */
.segen-pagination{display:flex;flex-wrap:wrap;gap:8px;margin-top:48px}
.segen-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;
  min-width:42px;height:42px;padding:0 14px;border:1px solid var(--edge-2);border-radius:999px;
  color:var(--fg-2);font-size:.95rem;font-weight:500}
.segen-pagination .page-numbers:hover{border-color:var(--acc);color:var(--acc)}
.segen-pagination .page-numbers.current{background:var(--acc);border-color:var(--acc);color:#12200a}
.post-nav{margin-top:52px;padding-top:30px;border-top:1px solid var(--edge);
  display:flex;justify-content:space-between;gap:26px;flex-wrap:wrap}
.post-nav a{color:var(--fg);font-weight:600;max-width:34ch;display:block}
.post-nav a:hover{color:var(--acc)}
.post-nav .pk{display:block;font-size:.82rem;color:var(--fg-3);font-weight:400;margin-bottom:5px}

/* search form */
.segen-search{display:flex;gap:10px;max-width:460px}
.segen-search input[type=search]{flex:1;background:var(--ink-raise);border:1px solid var(--edge-2);
  border-radius:999px;padding:12px 18px;color:var(--fg);font-family:inherit;font-size:.97rem}
.segen-search input[type=search]:focus{outline:none;border-color:var(--acc)}
.segen-search button{background:var(--acc);color:#12200a;border:none;border-radius:999px;
  padding:12px 24px;font-family:inherit;font-weight:600;font-size:.95rem;cursor:pointer}
.segen-search button:hover{background:#a1de6d}

/* comments */
.comments-area{margin-top:56px;padding-top:36px;border-top:1px solid var(--edge)}
.comments-area h2,.comments-area h3{font-size:1.3rem;margin-bottom:22px}
.comment-list{list-style:none;margin:0 0 34px;padding:0;display:flex;flex-direction:column;gap:20px}
.comment-list ol{list-style:none;padding-left:26px;margin-top:20px}
.comment-body{background:var(--ink-raise);border:1px solid var(--edge);border-radius:12px;padding:22px}
.comment-meta{margin-bottom:10px;font-size:.88rem;color:var(--fg-3)}
.comment-author .fn{color:var(--fg);font-weight:600;font-style:normal}
.comment-form{display:flex;flex-direction:column;gap:14px;max-width:640px}
.comment-form label{font-size:.88rem;color:var(--fg);font-weight:600;display:block;margin-bottom:6px}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{
  width:100%;background:var(--ink-raise);border:1px solid var(--edge-2);border-radius:9px;
  padding:12px 15px;color:var(--fg);font-family:inherit;font-size:.97rem}
.comment-form textarea{min-height:130px;resize:vertical}
.comment-form input:focus,.comment-form textarea:focus{outline:none;border-color:var(--acc)}
.comment-form .submit{background:var(--acc);color:#12200a;border:none;border-radius:999px;
  padding:13px 28px;font-family:inherit;font-weight:600;font-size:.97rem;cursor:pointer;align-self:flex-start}

/* widgets */
.widget ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.widget a{color:var(--fg-2)}
.widget a:hover{color:var(--acc)}

/* alignment helpers from the editor */
.alignwide{max-width:1100px}
.alignfull{max-width:none}
.aligncenter{margin-left:auto;margin-right:auto;text-align:center}
.alignright{float:right;margin:0 0 18px 24px}
.alignleft{float:left;margin:0 24px 18px 0}
.wp-caption-text{font-size:.88rem;color:var(--fg-3);margin-top:8px}

/* ===================== Navigation & dropdowns ===================== */
.nav nav{flex:1}
.nav ul.menu{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:4px}
.nav ul.menu > li{position:relative;display:flex;align-items:center}
.nav ul.menu > li > a{display:block;padding:10px 12px;font-size:.93rem;color:var(--fg-2);border-radius:7px}
.nav ul.menu > li > a:hover{color:var(--fg);background:var(--ink-raise)}
.nav ul.menu > li.current-menu-item > a,
.nav ul.menu > li.current-menu-parent > a,
.nav ul.menu > li.current-menu-ancestor > a{color:var(--fg)}

/* submenu toggle button */
.subtoggle{background:none;border:none;cursor:pointer;color:var(--fg-3);padding:8px 8px 8px 0;
  display:inline-flex;align-items:center;margin-left:-8px;border-radius:6px}
.subtoggle:hover{color:var(--acc)}
.subtoggle .chev{width:10px;height:6px;transition:transform .18s ease}
.subtoggle[aria-expanded="true"] .chev{transform:rotate(180deg)}

/* dropdown panel */
.nav ul.subnav{
  list-style:none;margin:0;padding:8px;
  position:absolute;top:calc(100% + 10px);left:0;z-index:70;
  min-width:288px;
  background:var(--ink-raise);
  border:1px solid var(--edge-2);
  border-radius:13px;
  box-shadow:0 18px 44px rgba(0,0,0,.45);
  opacity:0;visibility:hidden;transform:translateY(-6px);
  transition:opacity .16s ease,transform .16s ease,visibility .16s;
}
/* Hover for pointers; .is-open is driven by JS for keyboard/touch.
   :focus-within is deliberately NOT used — it re-opens the panel when focus
   returns to the toggle after Escape. */
.nav ul.menu > li:hover > .subnav,
.nav ul.menu > li.is-open > .subnav{opacity:1;visibility:visible;transform:translateY(0)}
.nav ul.subnav li{display:block}
.nav ul.subnav a{display:block;padding:11px 14px;border-radius:8px;font-size:.93rem;color:var(--fg-2)}
.nav ul.subnav a:hover{background:var(--ink-raise-2);color:var(--fg)}

/* hover bridge so the pointer can travel into the panel */
.nav ul.menu > li.has-children::after{content:'';position:absolute;top:100%;left:0;right:0;height:12px}

/* ---- mobile nav ---- */
.mobile-nav ul.menu{list-style:none;margin:0 0 18px;padding:0;display:block}
.mobile-nav ul.menu > li{display:block;border-bottom:1px solid var(--edge);position:relative}
.mobile-nav ul.menu > li > a{display:block;padding:15px 0;font-size:1.05rem;font-weight:600;color:var(--fg)}
.mobile-nav .subtoggle{position:absolute;top:8px;right:0;padding:12px;margin:0;color:var(--fg-2)}
.mobile-nav ul.subnav{
  position:static;opacity:1;visibility:visible;transform:none;
  background:none;border:none;box-shadow:none;border-radius:0;
  min-width:0;padding:0 0 14px 14px;display:none}
.mobile-nav ul.menu > li.is-open > .subnav{display:block}

.mobile-nav ul.subnav a{padding:10px 0;font-size:.98rem;color:var(--fg-2);font-weight:400}

@media (max-width:900px){
  .nav nav{display:none}
}

/* list resets for submenus in both header and mobile panel */
.nav ul.menu, .nav ul.subnav,
.mobile-nav ul.menu, .mobile-nav ul.subnav{list-style:none}
.mobile-nav ul.subnav{margin:0}
.mobile-nav ul.subnav li{list-style:none}

/* ===================== Footer diamond outlines ===================== */
footer{position:relative;overflow:hidden}
footer .wrap{position:relative;z-index:1}
.diamond{position:absolute;opacity:.5;pointer-events:none;z-index:0}
.diamond polygon{stroke:var(--acc);fill:none}
footer .d1{top:-52px;right:-24px;width:250px}
footer .d2{bottom:-58px;left:-34px;width:196px}

/* the closing CTA band carries them too, so the page ends with a pair */
.close{position:relative;overflow:hidden}
.close .wrap{position:relative;z-index:1}
.close .d1{top:-46px;right:-18px;width:236px}
.close .d2{bottom:-54px;left:-30px;width:184px}

@media (max-width:860px){
  footer .d1,.close .d1{width:180px;right:-70px}
  footer .d2,.close .d2{width:150px;left:-70px}
}

/* ===================== Page hero visuals ===================== */
.phero.split .wrap{display:grid;grid-template-columns:1.02fr .98fr;gap:54px;align-items:center}
.hero-art{position:relative}
.hero-art svg{width:100%;height:auto;display:block}
.ha-line{stroke:var(--acc);stroke-width:1.4;fill:none}
.ha-line-dim{stroke:var(--edge-2);stroke-width:1.3;fill:none}
.ha-box{fill:var(--ink-raise);stroke:var(--edge-2);stroke-width:1.3}
.ha-box-acc{fill:rgba(143,210,87,.12);stroke:var(--acc);stroke-width:1.4}
.ha-fill{fill:var(--acc)}
.ha-fill-dim{fill:var(--fg-3)}
.ha-txt{fill:var(--fg-2);font-family:'Instrument Sans',sans-serif;font-size:11px}
.ha-txt-strong{fill:var(--fg);font-family:'Instrument Sans',sans-serif;font-size:12px;font-weight:600}
.ha-dash{stroke-dasharray:5 6;animation:hadash 5s linear infinite}
@keyframes hadash{to{stroke-dashoffset:-44}}
@media (prefers-reduced-motion:reduce){.ha-dash{animation:none}}

@media (max-width:900px){
  .phero.split .wrap{grid-template-columns:1fr;gap:34px}
  .hero-art{order:-1;max-width:420px}
}

/* ===================== Contact Form 7 ===================== */
/* CF7 wraps every control in .wpcf7-form-control-wrap and (unless autop is
   disabled) drops a <p> inside each field wrapper. These rules make that
   structure behave like the theme's own .fld layout either way. */
.wpcf7{margin:0}
.wpcf7 .form{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.wpcf7 .fld{display:flex;flex-direction:column;gap:8px}
.wpcf7 .fld.full{grid-column:1/-1}
.wpcf7 .fld p{margin:0;display:flex;flex-direction:column;gap:8px}
.wpcf7 .fld label{font-size:.88rem;color:var(--fg);font-weight:600;margin:0}
.wpcf7-form-control-wrap{display:block;position:relative}

.wpcf7 input[type=text],
.wpcf7 input[type=email],
.wpcf7 input[type=tel],
.wpcf7 input[type=url],
.wpcf7 input[type=number],
.wpcf7 input[type=date],
.wpcf7 select,
.wpcf7 textarea{
  width:100%;background:var(--ink-raise);border:1px solid var(--edge-2);border-radius:9px;
  padding:13px 15px;color:var(--fg);font-family:inherit;font-size:.98rem;line-height:1.5}
.wpcf7 textarea{min-height:110px;resize:vertical}
.wpcf7 input:focus,.wpcf7 select:focus,.wpcf7 textarea:focus{outline:none;border-color:var(--acc)}
.wpcf7 input::placeholder,.wpcf7 textarea::placeholder{color:var(--fg-3)}

/* submit row */
.wpcf7 .srow{grid-column:1/-1;display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:6px}
.wpcf7 .srow p{margin:0;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.wpcf7 input[type=submit],.wpcf7 button[type=submit]{
  width:auto;background:var(--acc);color:#12200a;border:none;border-radius:999px;
  font-family:inherit;font-weight:600;font-size:.98rem;padding:14px 30px;cursor:pointer;
  transition:background .15s}
.wpcf7 input[type=submit]:hover,.wpcf7 button[type=submit]:hover{background:#a1de6d}
.wpcf7 input[type=submit]:disabled{opacity:.6;cursor:default}

/* spinner */
.wpcf7 .wpcf7-spinner{background-color:var(--fg-3);margin:0 0 0 4px}

/* inline validation tips */
.wpcf7 .wpcf7-not-valid-tip{color:#ff9b8a;font-size:.86rem;margin-top:6px}
.wpcf7 .wpcf7-not-valid{border-color:#c4614f}

/* response banner */
.wpcf7 .wpcf7-response-output{
  grid-column:1/-1;margin:22px 0 0;padding:14px 18px;border-radius:10px;
  border:1px solid var(--edge-2);background:var(--ink-raise);color:var(--fg-2);font-size:.95rem}
.wpcf7 form.sent .wpcf7-response-output{border-color:var(--acc-dim);
  background:rgba(143,210,87,.10);color:var(--fg)}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output{
  border-color:#c4614f;background:rgba(196,97,79,.12);color:#ffcfc5}
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output{
  border-color:#c4614f;background:rgba(196,97,79,.12);color:#ffcfc5}

/* CF7 hides these, keep them out of the layout */
.wpcf7 .screen-reader-response{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.wpcf7 .hidden-fields-container{display:none}

@media (max-width:900px){
  .wpcf7 .form{grid-template-columns:1fr}
}
