/* Incendio site styles. Tokens come from theme.json (--wp--preset--*); short aliases below. */
:root{
  --ink:var(--wp--preset--color--ink);
  --char:var(--wp--preset--color--char);
  --ivory:var(--wp--preset--color--ivory);
  --ember:var(--wp--preset--color--ember);
  --ember-btn:var(--wp--preset--color--ember-btn);
  --ember-text:var(--wp--preset--color--ember-text);
  --ash:var(--wp--preset--color--ash);
  --muted:var(--wp--preset--color--muted);
  --sans:var(--wp--preset--font-family--body);
  --head:var(--wp--preset--font-family--heading);
  --serif:var(--wp--preset--font-family--serif);
  --gutter:var(--wp--custom--gutter);
}
*{box-sizing:border-box;}
.wp-site-blocks > *{margin-block-start:0;}
body{-webkit-font-smoothing:antialiased;}
img{max-width:100%;height:auto;}

/* ---------- Type rules (Kai, 2026-10-23) ----------
   Headings: Switzer bold. 1–2 highlighted words inside a heading (<em>) switch to the serif.
   Main highlight headline: "Main highlight (serif)" heading style. */
:where(h1,h2,h3,h4){text-wrap:balance;}
.page-title{font-size:var(--wp--preset--font-size--heading-1);}
:where(h1,h2,h3,h4) em{font-family:var(--serif);font-style:italic;font-weight:600;letter-spacing:0;color:var(--ember-text);}
.is-style-dark :where(h1,h2,h3,h4) em{color:var(--ember);}
.is-style-highlight{font-family:var(--serif)!important;font-style:italic;font-weight:600;letter-spacing:-.01em;font-size:var(--wp--preset--font-size--highlight);line-height:1.05;color:var(--ember);}
.is-style-eyebrow{font:600 12.5px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ember-text);}
.is-style-dark .is-style-eyebrow{color:var(--ember);}
.hl{background:var(--ember);color:#fff;padding:0 .12em;-webkit-box-decoration-break:clone;box-decoration-break:clone;}

/* ---------- Sections ---------- */
.is-style-dark{background:var(--ink);color:#fff;}
.is-style-dark p{color:rgba(255,255,255,.72);}
.is-style-sheet{position:relative;z-index:2;background:var(--ivory);border-radius:var(--wp--custom--radius--sheet) var(--wp--custom--radius--sheet) 0 0;box-shadow:0 -24px 60px -18px rgba(0,0,0,.6);}

/* ---------- Buttons: always centred under their section ---------- */
.wp-element-button{transition:transform .2s,background-color .2s;}
.wp-element-button:hover{transform:translateY(-1px);}
.is-style-ghost .wp-element-button{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px rgba(20,20,20,.25);}
.is-style-dark .is-style-ghost .wp-element-button{color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3);}
.wp-element-button:focus-visible,.menu-btn:focus-visible{outline:2px solid var(--ember);outline-offset:3px;}

/* ---------- Header: floating capsule that hides on scroll down ---------- */
.site-nav{position:fixed;top:14px;left:0;right:0;z-index:50;pointer-events:none;transition:transform .4s cubic-bezier(.4,0,.2,1);}
.site-nav.hide{transform:translateY(calc(-100% - 24px));}
.site-nav .bar{pointer-events:auto;width:min(1040px,calc(100% - 24px));height:60px;margin:0 auto;padding:0 8px 0 22px;border-radius:999px;background:#FBFAF4;border:1px solid rgba(20,20,20,.1);box-shadow:0 12px 30px -14px rgba(20,20,20,.3);color:var(--ink);align-items:center;transition:background-color .4s,border-color .4s,box-shadow .4s,color .4s;}
body.is-dark .site-nav .bar,body.menu-open .site-nav .bar{background:var(--char);border-color:rgba(255,255,255,.1);box-shadow:0 12px 30px -14px rgba(0,0,0,.6);color:#fff;}
.site-nav .wp-block-site-logo img{height:26px;width:auto;display:block;}
.site-nav .links{gap:24px;align-items:center;}
.site-nav .nav-links{gap:24px;font:500 15px var(--sans);}
.site-nav .nav-links a{color:#3a3836;transition:color .3s;}
.site-nav .nav-links a:hover{color:var(--ink);}
body.is-dark .site-nav .nav-links a{color:rgba(255,255,255,.7);}
body.is-dark .site-nav .nav-links a:hover{color:#fff;}
.site-nav .nav-cta .wp-element-button{padding:11px 20px;font-size:14.5px;}
.admin-bar .site-nav{top:46px;}

/* Mobile menu (below 860px) */
.menu-btn{display:none;position:relative;width:40px;height:40px;border-radius:50%;border:1px solid currentColor;background:transparent;color:inherit;cursor:pointer;padding:0;}
.menu-btn i{position:absolute;left:12px;right:12px;height:1.6px;background:currentColor;transition:transform .3s,top .3s;}
.menu-btn i:first-child{top:15px;} .menu-btn i:last-child{top:23px;}
body.menu-open .menu-btn i:first-child{top:19px;transform:rotate(45deg);}
body.menu-open .menu-btn i:last-child{top:19px;transform:rotate(-45deg);}
.m-menu{position:fixed;inset:0;z-index:49;background:var(--ink);color:#fff;padding:104px var(--gutter) 40px;display:flex;flex-direction:column;gap:28px;overflow-y:auto;opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .3s,transform .3s,visibility 0s .3s;}
.m-menu.open{opacity:1;visibility:visible;transform:none;transition:opacity .3s,transform .3s;}
.m-menu nav a{display:flex;align-items:baseline;gap:14px;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.12);font:700 32px/1.1 var(--head);letter-spacing:-.03em;color:#fff;text-decoration:none;}
.m-menu nav a small{font:600 12px var(--sans);letter-spacing:.1em;color:var(--muted);}
.m-menu nav a:hover,.m-menu nav a:focus-visible{color:var(--ember);outline:none;}
.m-menu .wp-element-button{display:block;text-align:center;}
.m-menu .m-contacts{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font:500 14px var(--sans);}
.m-menu .m-contacts a{color:rgba(255,255,255,.7);}
@media (max-width:860px){
  .site-nav .nav-links{display:none;}
  .menu-btn{display:inline-block;}
  body.menu-open .site-nav .nav-cta{display:none;}
}
@media (min-width:861px){.m-menu{display:none;}}
@media (max-width:760px){.site-nav{top:10px;} .site-nav .bar{height:56px;padding-left:18px;} .site-nav .wp-block-site-logo img{height:24px;}}
@media (max-width:600px){.admin-bar .site-nav{top:10px;}}

/* ---------- Main + footer ---------- */
.site-main{padding-top:clamp(120px,14vw,160px);padding-bottom:var(--wp--preset--spacing--60);}
.site-main.is-front{padding-top:0;padding-bottom:0;}
.page-title{margin-top:0;}
.site-footer{padding-top:var(--wp--preset--spacing--70);}
.site-footer .cta-title{font-size:clamp(40px,6vw,84px);line-height:1.02;letter-spacing:-.03em;margin:0 auto;}
.site-footer .cta-text{font-size:18px;margin:24px auto 32px;}
.site-footer .foot{margin-top:var(--wp--preset--spacing--60);padding:28px 0 36px;border-top:1px solid rgba(255,255,255,.12);font:400 13px var(--sans);}
.site-footer .foot p{margin:0;color:var(--muted);}
.site-footer .foot a{color:var(--muted);}

/* ---------- Movement between places ---------- */
html{scroll-behavior:smooth;background:var(--ivory);}
body{animation:pageIn .55s ease both;}
@keyframes pageIn{from{opacity:0;}to{opacity:1;}}
.page-veil{position:fixed;inset:0;z-index:9999;background:var(--ivory);opacity:0;pointer-events:none;transition:opacity .3s ease;}
html.leaving .page-veil{opacity:1;}
[id]{scroll-margin-top:84px;}
/* Smooth cross-fade between pages in browsers that support it (Chrome, Edge, Safari 18.2+):
   the old page fades out while the new one fades in, and the header capsule stays put. */
@view-transition{navigation:auto;}
::view-transition-old(root){animation:incVtOut .32s cubic-bezier(.4,0,.2,1) both;}
::view-transition-new(root){animation:incVtIn .42s cubic-bezier(.2,0,0,1) .06s both;}
::view-transition-group(site-nav){animation-duration:.42s;}
.site-nav{view-transition-name:site-nav;}
@keyframes incVtOut{to{opacity:0;transform:translateY(-6px);}}
@keyframes incVtIn{from{opacity:0;transform:translateY(8px);}}
@supports (view-transition-name:none){body{animation:none;}}
/* Filtered lists fade items in instead of popping */
.list [data-cats],.tk-grid [data-cats]{animation:incItemIn .35s ease both;}
@keyframes incItemIn{from{opacity:0;transform:translateY(6px);}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;} body{animation:none;} .page-veil{transition:none;} .site-nav{transition:none;} ::view-transition-old(root),::view-transition-new(root){animation:none;} .list [data-cats],.tk-grid [data-cats]{animation:none;}}

/* Editor: keep the fixed header in flow so it can be edited. */
.editor-styles-wrapper .site-nav{position:relative;top:0;pointer-events:auto;}
.editor-styles-wrapper .menu-btn{display:none;}
[hidden]{display:none!important;}
/* Language tag on articles (ID / EN) */
abbr.lang{display:inline-block;margin-left:6px;padding:1px 6px;border:1px solid currentColor;border-radius:4px;font:700 10px/1.45 var(--sans);letter-spacing:.08em;text-decoration:none;color:var(--ash);vertical-align:1px;cursor:help;}

.m .nw{white-space:nowrap;}
/* Buttons: bigger on laptop (20×42, 18px); a bit smaller on phones so two still fit side by side */
@media (max-width:600px){.wp-element-button,.tk-btn,.inc-form .forminator-button-submit{padding:17px 30px;font-size:16.5px;}}

/* Contacts (both footers): small spaced capitals with thin dividers, calmer than plain links */
.inc-contacts{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px 0;margin:0;font:600 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;}
.inc-contacts a{padding:6px 18px;color:rgba(255,255,255,.62);transition:color .2s;}
.inc-contacts a + a{border-left:1px solid rgba(255,255,255,.18);}
.inc-contacts a:hover,.inc-contacts a:focus-visible{color:#fff;}
@media (max-width:420px){.inc-contacts{font-size:11px;letter-spacing:.08em;} .inc-contacts a{padding:6px 10px;letter-spacing:.08em;}}
.site-footer .inc-contacts{margin-top:28px;}
/* Contacts-only footer (Let's Talk, Classes) */
.site-footer-simple{padding:44px var(--gutter) 34px;text-align:center;}
.site-footer-simple .wp-block-site-logo{display:block;margin:0 auto 22px;text-align:center;}
.site-footer-simple .wp-block-site-logo a{display:inline-block;}
.site-footer-simple .wp-block-site-logo img{height:28px;width:auto;margin:0 auto;}
.site-footer-simple .foot-legal{margin:22px 0 0;font:400 12.5px var(--sans);color:var(--muted);}
/* phone menu contacts follow the same style */
.m-menu .m-contacts{font:600 12px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;gap:0;}
.m-menu .m-contacts a{padding:6px 14px;}
.m-menu .m-contacts a + a{border-left:1px solid rgba(255,255,255,.18);}

/* Filter tabs (Insights, Toolkit): the list fades out, switches, then fades back in */
.is-switching{opacity:0;transform:translateY(6px);}
[data-fade]{transition:opacity .22s ease,transform .22s ease;}
@media (prefers-reduced-motion:reduce){[data-fade]{transition:none;} .is-switching{transform:none;}}
.tabs button:focus:not(:focus-visible){outline:none;box-shadow:none;}
.tabs button{transition:background-color .25s,color .25s,border-color .25s;}
