/* Intellectura IP — shared site styles */
/* Self-hosted fonts (Latin subset, from Google Fonts, SIL Open Font License) */
@font-face{font-family:'Cinzel';font-style:normal;font-weight:500 600;font-display:swap;src:url(fonts/cinzel.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Libre Caslon Display';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/libre-caslon-display.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Libre Caslon Text';font-style:italic;font-weight:400;font-display:swap;src:url(fonts/libre-caslon-text-italic.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Libre Caslon Text';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/libre-caslon-text.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Source Sans 3';font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/source-sans-3.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

  :root{
    --teal:#17434f; --teal-mid:#123a44; --teal-dark:#0f2f38; --teal-deep:#0a2128;
    --gold:#b08a4a; --gold-light:#d8c08e; --gold-text:#87672c; --gold-deep:#8c6a33;
    --ivory:#f7f3ea; --cream:#efe6d2; --line-gold:rgba(176,138,74,.25);
    --display:"Libre Caslon Display",Georgia,serif; --serif:"Libre Caslon Text",Georgia,serif; --sans:"Source Sans 3",system-ui,sans-serif; --ink:#26302f;
    /* Theme colours (peacock teal) — swap this block to change the whole site */
    --muted:#a3b7ba; --muted-2:#8ea4a7; --muted-3:#9fb4b7; --soft:#b8c9cb; --placeholder:#7f979b; --select-text:#c8d6d8;
    --glow:#14404b; --footer-bg:#071a1f; --header-bg:rgba(10,33,40,.88); --header-scrolled:rgba(8,28,34,.96); --gate-bg:rgba(6,22,27,.94); --grain:0;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:var(--sans);background:var(--teal-deep);color:var(--cream);line-height:1.65}
  a{color:inherit;text-decoration:none}
  img{display:block;max-width:100%}
  .wrap{max-width:1140px;margin:0 auto;padding:0 20px}
  /* Brushed champagne-gold: restrained metallic, darker edges, soft highlight */
  .foil{background:linear-gradient(175deg,#e9d7ae 0%,#c9a96c 38%,#a9843f 62%,#d4b97f 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
  .kicker{display:flex;align-items:center;gap:14px;font-size:.74rem;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-light)}
  .kicker::before{content:"";width:42px;height:1px;background:var(--gold);flex:0 0 auto}
  .fp{position:absolute;pointer-events:none;fill:none;stroke:var(--gold)}

  .btn{display:inline-block;padding:16px 30px;font:600 .78rem var(--sans);letter-spacing:.2em;text-transform:uppercase;border:1px solid transparent;cursor:pointer;transition:.25s}
  .btn-gold{background:linear-gradient(180deg,#d9c290 0%,#b8935a 100%);color:var(--teal-deep);border-color:#a9843f;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 6px 18px rgba(0,0,0,.18)}
  .btn-gold:hover{background:linear-gradient(180deg,#e3cfa3 0%,#c09c62 100%)}
  .btn-out{border-color:rgba(216,192,142,.55);color:var(--gold-light);background:transparent}
  .btn-out:hover{background:rgba(216,192,142,.08)}
  .btn-dark{background:var(--teal-deep);color:var(--gold-light);border-color:var(--teal-deep)}

  /* ---------- Disclaimer gate (BCI Rule 36) ---------- */
  .gate{position:fixed;inset:0;background:var(--gate-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}
  .gate.hidden{display:none}
  .gate-box{background:var(--teal-dark);border:1px solid var(--line-gold);max-width:660px;width:100%;max-height:90vh;max-height:90dvh;overflow:auto;padding:36px}
  .gate-box h2{font-family:var(--display);font-weight:500;font-size:2.4rem;color:#fff;margin:18px 0 12px}
  .gate-box p,.gate-box li{font-size:.9rem;color:var(--muted)}
  .gate-box ul{margin:12px 0 0 18px;display:grid;gap:8px}
  .gate-box li::marker{color:var(--gold)}
  .gate-box .btns{display:flex;gap:10px;margin-top:26px;flex-wrap:wrap}

  /* ---------- Header ---------- */
  header{position:sticky;top:0;z-index:30;background:var(--header-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-gold)}
  nav{display:flex;align-items:center;justify-content:space-between;height:80px}
  .brand{display:flex;align-items:center;gap:12px}
  .seal{width:46px;height:46px;border-radius:50%;background:var(--ivory);display:flex;align-items:center;justify-content:center;flex:0 0 auto;box-shadow:0 0 0 1px var(--gold),0 0 0 4px var(--teal-deep),0 0 0 5px rgba(176,138,74,.5)}
  .seal img{width:32px;mix-blend-mode:multiply}
  .brand b{font-family:Cinzel,serif;font-weight:600;letter-spacing:.12em;font-size:1.05rem;color:#fff}
  .links{display:flex;gap:30px;align-items:center;font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
  .links a:hover{color:var(--gold-light)}
  .links .btn{padding:11px 20px;color:var(--teal-deep)}
  .menu-btn{display:none;background:none;border:1px solid var(--line-gold);color:var(--gold-light);font-size:1.2rem;width:42px;height:42px;cursor:pointer}

  /* ---------- Hero ---------- */
  .hero{position:relative;overflow:hidden;background:radial-gradient(ellipse at 80% 40%,var(--glow) 0%,var(--teal-deep) 60%)}
  .hero .wrap{padding-top:120px;padding-bottom:110px;position:relative;z-index:1}
  .hero .fp{width:640px;height:736px;right:-140px;top:50%;margin-top:-368px;opacity:.22;animation:spin 140s linear infinite}
  @keyframes spin{to{transform:rotate(360deg)}}
  @media (prefers-reduced-motion:reduce){.hero .fp{animation:none}}
  .hero h1{font-family:var(--display);font-weight:500;font-size:5.2rem;line-height:1;color:#fff;margin:26px 0;max-width:780px}
  .hero h1 em{font-style:italic;font-weight:600}
  .hero p{max-width:560px;color:var(--soft);font-size:1.06rem;margin-bottom:38px}
  .hero .btn{margin:0 10px 10px 0}
  .creds{display:flex;gap:44px;margin-top:60px;padding-top:28px;border-top:1px solid var(--line-gold);flex-wrap:wrap;font-size:.78rem;letter-spacing:.06em;color:var(--muted-2)}
  .creds b{display:block;font-family:var(--display);font-size:1.75rem;font-weight:600;color:#fff;letter-spacing:0;line-height:1.2}

  /* ---------- Sections ---------- */
  section{padding:104px 0;position:relative}
  .sh{margin-bottom:52px;max-width:700px}
  .sh h2{font-family:var(--display);font-weight:500;font-size:3.1rem;color:#fff;margin-top:14px;line-height:1.08}
  .sh p{color:var(--muted);margin-top:14px}
  .light{background:var(--ivory);color:var(--ink)}
  .light .kicker{color:var(--gold-text)}
  .light .sh h2,.light h2{color:var(--teal-deep)}
  .light .sh p{color:#5a6563}
  .mid{background:var(--teal-dark)}

  /* About */
  .about{display:grid;grid-template-columns:1.15fr 1fr;gap:72px;align-items:start}
  .about h2{font-family:var(--display);font-weight:500;font-size:3.1rem;line-height:1.08;margin:14px 0 22px}
  .about p{color:#56615f;margin-bottom:16px}
  .values{border-top:1px solid #ddd2ba}
  .value{display:grid;grid-template-columns:44px 1fr;padding:20px 0;border-bottom:1px solid #ddd2ba}
  .value .n{font-family:Cinzel,serif;font-size:.85rem;color:var(--gold-text);padding-top:4px}
  .value b{display:block;font-family:var(--display);font-size:1.45rem;font-weight:600;color:var(--teal-deep);line-height:1.2}
  .value span{font-size:.9rem;color:#5a6563}

  /* Practice tiles */
  .tiles{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-gold);border-left:1px solid var(--line-gold)}
  .t{padding:32px 26px 36px;border-right:1px solid var(--line-gold);border-bottom:1px solid var(--line-gold);transition:background .3s}
  .t:hover{background:linear-gradient(180deg,rgba(176,138,74,.12),rgba(176,138,74,0))}
  .t .top{display:flex;justify-content:space-between;align-items:center}
  .t .n{font-family:Cinzel,serif;font-size:.9rem;letter-spacing:.1em}
  .t svg{width:24px;height:24px;fill:none;stroke:var(--gold-light);stroke-width:1.4;opacity:.8}
  .t h3{font-family:var(--display);font-weight:600;font-size:1.65rem;color:#fff;margin:36px 0 10px;line-height:1.12}
  .t p{font-size:.87rem;color:var(--muted-3)}

  /* Approach */
  .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
  .step{border-top:1px solid var(--gold);padding-top:22px}
  .step .n{font-family:var(--display);font-size:3rem;font-weight:500;line-height:1}
  .step h3{font-family:var(--display);font-weight:600;font-size:1.5rem;color:#fff;margin:14px 0 8px}
  .step p{font-size:.9rem;color:var(--muted)}

  /* Founder */
  .founder{display:grid;grid-template-columns:360px 1fr;gap:72px;align-items:center}
  .portrait{border:1px solid var(--gold);padding:12px}
  .portrait div{aspect-ratio:4/5;background:radial-gradient(ellipse at 30% 20%,var(--teal),var(--teal-deep));display:flex;align-items:center;justify-content:center;font-family:Cinzel,serif;font-size:3rem;color:var(--gold-light);position:relative;overflow:hidden}
  .portrait .fp{width:300px;height:345px;opacity:.18;right:-90px;bottom:-110px}
  .founder h2{font-family:var(--display);font-weight:500;font-size:3.1rem;line-height:1.05;margin:14px 0 8px}
  .founder .role{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text);margin-bottom:22px}
  .founder blockquote{font-family:var(--display);font-style:italic;font-size:1.4rem;color:#3d4847;border-left:2px solid var(--gold);padding-left:20px;margin-bottom:26px;line-height:1.4}
  .dl div{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid #ddd2ba;font-size:.92rem}
  .dl div:first-child{border-top:1px solid #ddd2ba}
  .dl span:first-child{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text);padding-top:3px;flex:0 0 auto}
  .dl span:last-child{text-align:right;color:var(--teal-deep);font-weight:500}
  .bci{font-size:.78rem;color:#7b8584;margin-top:16px}

  /* Contact */
  .contact{display:grid;grid-template-columns:1fr 1.25fr;gap:64px}
  .info div{padding:20px 0;border-bottom:1px solid var(--line-gold)}
  .info div:first-child{padding-top:0}
  .info b{display:block;font-size:.7rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-light);margin-bottom:6px}
  .info a:hover{color:var(--gold-light)}
  form{display:grid;gap:14px;border:1px solid var(--line-gold);padding:34px;background:rgba(255,255,255,.02)}
  .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
  input,textarea,select{width:100%;padding:14px 2px;border:0;border-bottom:1px solid rgba(176,138,74,.4);background:transparent;color:#fff;font:inherit;font-size:.95rem;border-radius:0}
  input::placeholder,textarea::placeholder{color:var(--placeholder)}
  select{color:var(--select-text);appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);background-position:calc(100% - 12px) 22px,calc(100% - 7px) 22px;background-size:5px 5px;background-repeat:no-repeat}
  select option{background:var(--teal-dark);color:#fff}
  input:focus,textarea:focus,select:focus{outline:none;border-bottom-color:var(--gold-light)}
  textarea{min-height:110px;resize:vertical}
  label.check{display:flex;gap:10px;align-items:flex-start;font-size:.8rem;color:var(--muted)}
  label.check input{width:auto;margin-top:4px;accent-color:var(--gold)}
  form .btn{justify-self:start;margin-top:6px}
  .note{font-size:.84rem;min-height:1.2em}
  .note a{text-decoration:underline}

  /* Footer */
  footer{background:var(--footer-bg);border-top:1px solid var(--line-gold);padding:64px 0 30px;font-size:.84rem;color:var(--muted-2)}
  .foot{display:grid;grid-template-columns:2fr 1fr 1fr;gap:40px;margin-bottom:40px}
  .foot .brand{margin-bottom:16px}
  .foot em{font-family:var(--display);font-size:1.15rem}
  footer h2{font-size:.7rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-light);margin-bottom:14px}
  footer .col a{display:block;margin-bottom:8px}
  footer .col a:hover{color:#fff}
  .legal{border-top:1px solid rgba(176,138,74,.15);padding-top:22px;font-size:.78rem;display:grid;gap:6px}
  .legal button{background:none;border:0;color:var(--gold-light);cursor:pointer;font:inherit;text-decoration:underline;padding:0}

  /* ---------- Typography refinements (Caslon + Source Sans) ---------- */
  body{font-size:1.04rem;-webkit-font-smoothing:antialiased}
  .hero h1,.sh h2,.about h2,.founder h2,.gate-box h2{font-weight:400;letter-spacing:-.01em}
  .hero h1{font-size:4.8rem;line-height:1.04}
  .hero h1 em{font-family:var(--serif);font-weight:400;font-size:.94em}
  .creds b,.value b,.t h3,.step h3{font-family:var(--serif);font-weight:400;letter-spacing:-.005em}
  .creds b{font-size:1.45rem}
  .value b{font-size:1.22rem}
  .t h3{font-size:1.32rem;line-height:1.25}
  .step h3{font-size:1.22rem}
  .step .n{font-family:var(--display);font-weight:400;font-size:2.6rem}
  .founder blockquote,.foot em{font-family:var(--serif);font-weight:400;font-size:1.2rem}
  .kicker,.info b,footer h2,.dl span:first-child,.founder .role{font-weight:600;letter-spacing:.24em}
  .t p,.step p,.value span{font-size:.94rem}
  /* small numerals: solid gold reads crisper than gradient at small sizes */
  .t .n.foil{background:none;color:var(--gold-light)}
  .seal{box-shadow:0 0 0 1px var(--gold),0 0 0 4px var(--teal-deep),0 0 0 5px rgba(176,138,74,.45)}
  .hero .fp{opacity:.16}

  /* ---------- Responsive ---------- */
  @media (max-width:960px){
    .menu-btn{display:block}
    .links{display:none;position:absolute;top:80px;left:0;right:0;background:var(--teal-deep);flex-direction:column;align-items:flex-start;padding:20px;gap:18px;border-bottom:1px solid var(--line-gold)}
    .links.open{display:flex}
    .tiles{grid-template-columns:repeat(2,1fr)}
    .steps{grid-template-columns:repeat(2,1fr)}
    .about,.founder,.contact{grid-template-columns:1fr;gap:48px}
    .portrait{max-width:320px}
    .hero h1{font-size:3.8rem}
  }
  @media (max-width:760px){
    .brand b{font-size:.92rem;letter-spacing:.08em}
    .hero .wrap{padding-top:72px;padding-bottom:72px}
    .hero h1{font-size:2.8rem}
    .hero .fp{width:440px;height:506px;margin-top:-253px;right:-220px;opacity:.14}
    .creds{gap:24px}
    section{padding:68px 0}
    .sh h2,.about h2,.founder h2{font-size:2.3rem}
    .tiles,.steps,.row,.foot{grid-template-columns:1fr}
    .t h3{margin-top:22px}
    form{padding:22px}
    .dl div{flex-direction:column;gap:2px}
    .dl span:last-child{text-align:left}
  }

/* =====================================================================
   ADDITIONS — class finder, resources, knowledge hub, finishing touches
   ===================================================================== */

/* Header: deeper shadow once the page scrolls; active menu item */
header{transition:box-shadow .3s,background .3s}
header.scrolled{background:var(--header-scrolled);box-shadow:0 10px 30px rgba(0,0,0,.28)}
.links a.active{color:var(--gold-light)}
.links a:not(.btn){position:relative}
.links a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:var(--gold);transform:scaleX(0);transition:transform .3s}
.links a.active::after,.links a:not(.btn):hover::after{transform:scaleX(1)}
.links{gap:24px}

/* Fade-in on scroll */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* Keyboard focus that matches the brand */
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--gold-light);outline-offset:3px}

/* ---------- Trademark class finder ---------- */
.cf-box{background:#fff;border:1px solid #e3d9c3;box-shadow:0 24px 60px rgba(20,20,20,.08);padding:36px}
.cf-search{display:flex;align-items:center;gap:14px;border-bottom:2px solid var(--gold);padding:6px 4px 12px}
.cf-search svg{width:24px;height:24px;fill:none;stroke:var(--gold-text);stroke-width:1.8;flex:0 0 auto}
.cf-search input{border:0;background:transparent;font:400 1.35rem var(--serif);color:var(--teal-deep);padding:6px 0;width:100%}
.cf-search input::placeholder{color:#a19a8c;font-size:1.05rem}
.cf-search input:focus{outline:none}
.cf-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:18px 0 6px;font-size:.86rem;color:#6f7876}
.cf-chips button{border:1px solid #e0d4ba;background:var(--ivory);color:var(--teal-deep);font:500 .86rem var(--sans);padding:6px 14px;border-radius:999px;cursor:pointer;transition:.2s}
.cf-chips button:hover{border-color:var(--gold);background:#fff}
.cf-results{display:grid;gap:12px;margin-top:22px}
.cf-results:empty{display:none}
.cf-item{display:grid;grid-template-columns:86px 1fr;gap:20px;align-items:start;padding:18px 20px;border:1px solid #ece4d2;background:#fdfbf7;animation:cfIn .35s ease both}
.cf-item.best{border-color:var(--gold);background:linear-gradient(90deg,#fbf6ea,#fff)}
@keyframes cfIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.cf-num{font-family:var(--display);font-size:2.6rem;line-height:1;color:var(--teal-deep);text-align:center;border-right:1px solid #e3d9c3;padding-right:16px}
.cf-num span{display:block;font:600 .62rem var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--gold-text);margin-bottom:6px}
.cf-kind{font-size:.68rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text)}
.cf-item h3{font:400 1.25rem var(--serif);color:var(--teal-deep);margin:4px 0}
.cf-item p{font-size:.92rem;color:#5a6563}
.cf-empty{margin-top:20px;color:#5a6563}
.cf-empty a,.cf-note a{color:var(--teal);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
.cf-browse{margin-top:26px;border-top:1px solid #ece4d2;padding-top:18px}
.cf-browse summary{cursor:pointer;font-weight:600;font-size:.82rem;letter-spacing:.16em;text-transform:uppercase;color:var(--teal)}
.cf-browse ol{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:4px 24px;margin-top:16px}
.cf-browse li{display:flex;gap:10px;font-size:.9rem;color:#4a5553;padding:6px 0;border-bottom:1px dashed #ece4d2}
.cf-browse li b{font-family:var(--display);font-weight:400;color:var(--gold-text);min-width:24px}
.cf-note{margin-top:22px;font-size:.84rem;color:#6f7876}

/* ---------- Resources: checklists ---------- */
.res-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.res-card{display:flex;flex-direction:column;border:1px solid var(--line-gold);padding:30px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0));transition:.3s}
.res-card:hover{border-color:var(--gold);transform:translateY(-3px);box-shadow:0 18px 40px rgba(0,0,0,.25)}
.res-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}
.res-tag{font-size:.68rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted-2)}
.res-top svg{width:26px;height:26px;fill:none;stroke:var(--gold-light);stroke-width:1.5}
.res-card h3{font:400 1.4rem var(--serif);color:#fff;line-height:1.25;margin-bottom:10px}
.res-card p{font-size:.94rem;color:var(--muted);flex:1}
.res-cta{margin-top:22px;font-size:.74rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-light)}
.res-cta::after{content:" ↓"}

/* ---------- Knowledge hub teaser cards ---------- */
.kh-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.kh-card{display:flex;flex-direction:column;min-height:210px;padding:28px;background:var(--ivory);color:var(--teal-deep);border-top:3px solid var(--gold);transition:.3s}
.kh-card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(0,0,0,.25)}
.kh-cat{font-size:.68rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text)}
.kh-card h3{font:400 1.4rem var(--serif);line-height:1.3;margin:14px 0 auto}
.kh-more{margin-top:22px;font-size:.74rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--teal)}
.kh-more::after{content:" →"}

/* ---------- Knowledge Hub page ---------- */
.page-hero{position:relative;overflow:hidden;background:radial-gradient(ellipse at 85% 30%,var(--glow) 0%,var(--teal-deep) 60%);border-bottom:1px solid var(--line-gold)}
.page-hero .wrap{padding-top:90px;padding-bottom:80px;position:relative;z-index:1}
.page-hero .fp{width:420px;height:483px;right:-80px;top:-60px;opacity:.12}
.page-hero h1{font:400 4rem/1.05 var(--display);color:#fff;margin:22px 0 18px;letter-spacing:-.01em}
.page-hero p{max-width:600px;color:var(--soft)}
.kb{display:grid;grid-template-columns:250px 1fr;gap:64px;align-items:start}
.toc{position:sticky;top:110px;font-size:.92rem}
.toc h2{font-size:.7rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-text);margin-bottom:14px}
.toc a{display:block;padding:8px 0 8px 14px;border-left:1px solid #ddd2ba;color:#4a5553}
.toc a:hover,.toc a.active{border-left-color:var(--gold);color:var(--teal-deep)}
.article{background:#fff;border:1px solid #e9e0cc;padding:44px 48px;margin-bottom:28px}
.article .kh-cat{display:block;margin-bottom:10px}
.article h2{font:400 2.1rem/1.15 var(--display);color:var(--teal-deep);margin-bottom:18px}
.article h3{font:400 1.25rem var(--serif);color:var(--teal-deep);margin:26px 0 8px}
.article p,.article li{color:#3f4a48;font-size:1.02rem}
.article p+p{margin-top:12px}
.article ul,.article ol{margin:10px 0 0 22px;display:grid;gap:6px}
.article li::marker{color:var(--gold-text)}
.article .key{margin-top:22px;background:var(--ivory);border-left:3px solid var(--gold);padding:16px 20px;font-size:.96rem;color:#3f4a48}
.article .key b{color:var(--teal-deep)}
.timeline{list-style:none;margin:16px 0 0 !important;padding:0;display:grid;gap:0 !important}
.timeline li{position:relative;padding:0 0 18px 30px;border-left:1px solid #e0d4ba;margin-left:6px}
.timeline li:last-child{border-left-color:transparent}
.timeline li::before{content:"";position:absolute;left:-6px;top:6px;width:11px;height:11px;border-radius:50%;background:#fff;border:2px solid var(--gold)}
.timeline b{display:block;color:var(--teal-deep);font-weight:600}
.art-foot{margin-top:24px;padding-top:16px;border-top:1px solid #efe7d6;font-size:.82rem;color:#7b8584;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.art-foot a{color:var(--teal);text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}
.gloss{background:#fff;border:1px solid #e9e0cc;padding:44px 48px}
.gloss h2{font:400 2.1rem var(--display);color:var(--teal-deep);margin-bottom:22px}
.gloss dl{display:grid;grid-template-columns:220px 1fr;gap:0}
.gloss dt,.gloss dd{padding:14px 0;border-bottom:1px solid #efe7d6}
.gloss dt{font:400 1.08rem var(--serif);color:var(--teal-deep);padding-right:20px}
.gloss dd{color:#4a5553;font-size:.96rem}
.back-home{display:inline-block;margin-top:8px;color:var(--gold-light);font-size:.78rem;letter-spacing:.2em;text-transform:uppercase}

/* ---------- Responsive for additions ---------- */
@media (max-width:1100px){
  .menu-btn{display:block}
  .links{display:none;position:absolute;top:80px;left:0;right:0;background:var(--teal-deep);flex-direction:column;align-items:flex-start;padding:20px;gap:18px;border-bottom:1px solid var(--line-gold)}
  .links.open{display:flex}
  .links a:not(.btn)::after{display:none}
}
@media (max-width:960px){
  .res-grid,.kh-grid{grid-template-columns:1fr 1fr}
  .cf-browse ol{grid-template-columns:1fr 1fr}
  .kb{grid-template-columns:1fr;gap:28px}
  .toc{position:static;display:none}
}
@media (max-width:760px){
  .cf-box{padding:22px}
  .cf-search input{font-size:1.1rem}
  .cf-item{grid-template-columns:62px 1fr;gap:14px;padding:16px}
  .cf-num{font-size:2rem;padding-right:10px}
  .cf-browse ol,.res-grid,.kh-grid{grid-template-columns:1fr}
  .page-hero h1{font-size:2.7rem}
  .article,.gloss{padding:28px 22px}
  .article h2,.gloss h2{font-size:1.7rem}
  .gloss dl{grid-template-columns:1fr}
  .gloss dt{border-bottom:0;padding-bottom:2px}
  .gloss dd{padding-top:0}
}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;transition:none}
  .cf-item{animation:none}
}

/* In-page links land below the sticky header */
/* (offsets for the sticky header now come from scroll-padding on html) */


/* =====================================================================
   MINIMAL ACCENTS — quieter gold, flat buttons, still motif, finer lines
   (delete this block to return to the richer gold styling)
   ===================================================================== */
:root{--line-gold:rgba(176,138,74,.15)}

/* Gold becomes a flat, soft accent instead of a metallic gradient */
.foil{background:none;-webkit-background-clip:border-box;background-clip:border-box;color:var(--gold-light)}

/* Buttons: flat, no gradient or shadow, calmer lettering */
.btn{font-size:.74rem;letter-spacing:.14em;padding:14px 26px;transition:background .2s,color .2s,border-color .2s}
.btn-gold{background:var(--gold-light);border-color:var(--gold-light);color:var(--teal-deep);box-shadow:none}
.btn-gold:hover{background:#e6d5b0;border-color:#e6d5b0}
.btn-out{border-color:rgba(216,192,142,.35)}
.btn-out:hover{background:rgba(216,192,142,.06);border-color:rgba(216,192,142,.6)}
.links .btn-gold{background:transparent;color:var(--gold-light);border-color:rgba(216,192,142,.4);padding:10px 18px}
.links .btn-gold:hover{background:rgba(216,192,142,.08)}

/* Fingerprint motif: still and faint */
.hero .fp{animation:none;opacity:.07}
.page-hero .fp{opacity:.06}
.portrait .fp{opacity:.1}

/* Logo badge: one fine ring */
.seal{box-shadow:0 0 0 1px rgba(176,138,74,.55)}

/* Section labels: lighter and shorter rule */
.kicker{letter-spacing:.2em;font-size:.72rem}
.kicker::before{width:24px;opacity:.6}

/* Header: hairline instead of heavy shadow */
header.scrolled{box-shadow:0 1px 0 var(--line-gold)}
.links a:not(.btn)::after{opacity:.6}

/* Credentials strip */
.creds{border-top-color:var(--line-gold)}
.creds b{font-size:1.3rem}

/* Practice tiles: quiet numerals and icons, no glow */
.t .n.foil{color:var(--muted-2)}
.t svg{stroke:var(--muted);opacity:.55}
.t:hover{background:rgba(255,255,255,.025)}

/* Approach steps */
.step{border-top:1px solid var(--line-gold)}
.step .n{font-size:2rem}

/* Founder */
.portrait{border-color:#ddd2ba}
.founder blockquote{border-left-width:1px}

/* Cards: no lift or drop shadows, just a border change on hover */
.res-card,.kh-card,.res-card:hover,.kh-card:hover{transform:none;box-shadow:none}
.res-card:hover{border-color:rgba(216,192,142,.4)}
.kh-card{border-top:1px solid var(--gold)}
.kh-card:hover{background:#fff}
.cf-box{box-shadow:none}
.cf-item.best{background:#fbf8f1}

/* Softer fade-in distance */
.reveal{transform:translateY(10px)}
.reveal.in{transform:none}

/* =====================================================================
   SCROLL ANIMATIONS (paired with assets/site.js)
   Active only when <html> has .js-anim (set in the page head) and the
   visitor has not asked for reduced motion.
   ===================================================================== */
:root{--ease-out:cubic-bezier(.16,1,.3,1)}

/* Fade-up content */
.js-anim .reveal{opacity:0;transform:translateY(42px);transition:opacity 1s var(--ease-out),transform 1.2s var(--ease-out)}
.js-anim .reveal.in{opacity:1;transform:none}

/* Headings: words rise from behind a mask */
.js-anim .a-split .w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .02em .14em;margin-bottom:-.14em}
.js-anim .a-split .w>span{display:inline-block;transform:translateY(112%) rotate(3deg);transform-origin:left bottom;
  transition:transform 1.25s var(--ease-out);transition-delay:calc(var(--base,0ms) + var(--d,0) * 70ms)}
.js-anim .a-split.in .w>span{transform:none}

/* Section labels: gold rule draws in, then the label slides after it */
.js-anim .kicker::before{transform:scaleX(0);transform-origin:left;transition:transform 1s var(--ease-out)}
.js-anim .kicker{color:transparent;transition:color .8s ease .35s}
.js-anim .kicker.in{color:var(--gold-light)}
.js-anim .light .kicker.in{color:var(--gold-text)}
.js-anim .kicker.in::before{transform:scaleX(1)}

/* Founder portrait: curtain wipe upward, then the monogram settles */
.js-anim .a-wipe{clip-path:inset(100% 0 0 0);transition:clip-path 1.5s var(--ease-out)}
.js-anim .a-wipe.in{clip-path:inset(0 0 0 0)}
.js-anim .a-wipe>div{transform:scale(1.12);transition:transform 2s var(--ease-out)}
.js-anim .a-wipe.in>div{transform:none}


/* Practice tiles: a fine gold line sweeps across the top as each appears */
.js-anim .t{position:relative}
.js-anim .t::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:100%;background:var(--gold-light);
  transform:scaleX(0);transform-origin:left;transition:transform 1.2s var(--ease-out);transition-delay:inherit}
.js-anim .t.in::before{transform:scaleX(1)}

/* ---------- Hero entrance sequence ---------- */
.js-anim .hero .kicker,.js-anim .hero p,.js-anim .hero .btn,.js-anim .hero .creds>div{opacity:0}
.js-anim .hero h1{--base:260ms}
.js-anim .hero .creds{border-top-color:transparent;position:relative}
.js-anim .hero .creds::before{content:"";position:absolute;left:0;right:0;top:-1px;height:1px;background:var(--line-gold);transform:scaleX(0);transform-origin:left;transition:transform 1.6s var(--ease-out) 1s}
.hero.intro .kicker{opacity:1;color:var(--gold-light)}
.hero.intro .kicker::before{transform:scaleX(1)}
.hero.intro .a-split .w>span{transform:none}
.js-anim .hero p,.js-anim .hero .btn,.js-anim .hero .creds>div{transform:translateY(26px);transition:opacity 1s var(--ease-out),transform 1.1s var(--ease-out)}
.hero.intro p{opacity:1;transform:none;transition-delay:.75s}
.hero.intro .btn{opacity:1;transform:none;transition-delay:.9s}
.hero.intro .btn+.btn{transition-delay:1s}
.hero.intro .creds::before{transform:scaleX(1)}
.hero.intro .creds>div{opacity:1;transform:none}
.hero.intro .creds>div:nth-child(1){transition-delay:1.1s}
.hero.intro .creds>div:nth-child(2){transition-delay:1.2s}
.hero.intro .creds>div:nth-child(3){transition-delay:1.3s}
.hero.intro .creds>div:nth-child(4){transition-delay:1.4s}
.js-anim .hero .fp{opacity:0;transition:opacity 2.4s ease .3s}
.hero.intro .fp{opacity:.07}
.hero .wrap,.page-hero .wrap,.hero .fp,.page-hero .fp{will-change:transform}

/* Reading progress line under the header */
header .progress{position:absolute;left:0;right:0;bottom:-1px;height:1px;background:var(--gold-light);opacity:.8;transform:scaleX(0);transform-origin:left;pointer-events:none}

/* Buttons: a soft sheen sweeps across on hover */
.btn{position:relative;overflow:hidden}
.btn::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-20deg);transition:left .7s var(--ease-out);pointer-events:none}
.btn:hover::after{left:130%}

@media (max-width:760px){
  .js-anim .reveal{transform:translateY(28px)}
}
@media (prefers-reduced-motion:reduce){
  .js-anim .reveal,.js-anim .a-split .w>span,.js-anim .a-wipe,.js-anim .a-wipe>div{transition:none;transform:none;opacity:1;clip-path:none}
  .btn::after{display:none}
}

/* =====================================================================
   ROUND 3 — signature animations, UX features, accessibility
   ===================================================================== */
html{background:var(--teal-deep)}
html.locked{overflow:hidden}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- Accessibility ---------- */
.skip{position:fixed;left:16px;top:-60px;z-index:400;background:var(--gold-light);color:var(--teal-deep);padding:10px 16px;font-weight:600;font-size:.85rem;transition:top .2s}
.skip:focus{top:12px}
main:focus{outline:none}
input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none}
.f-opt input:focus-visible+span{outline:2px solid var(--gold-light);outline-offset:2px}
.bci,.art-foot{color:#5f6968}
.cf-chips,.cf-note{color:#5f6968}
.cf-search input::placeholder{color:#857e70}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ---------- Page transitions ---------- */
body{animation:pageIn .55s ease backwards}
@keyframes pageIn{from{opacity:0}}
html.page-out body{opacity:0;transition:opacity .3s ease}
@media (prefers-reduced-motion:reduce){body{animation:none}html.page-out body{transition:none}}

/* ---------- Logo intro (first visit only) ---------- */
.splash{display:none}
.intro-splash .splash{display:flex;position:fixed;inset:0;z-index:300;background:var(--teal-deep);align-items:center;justify-content:center;flex-direction:column;gap:22px;
  animation:splashOut .7s var(--ease-out) 1.25s forwards}
.splash-mark{position:relative;width:118px;height:118px;display:flex;align-items:center;justify-content:center}
.splash-mark svg{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--gold-light);stroke-width:1;transform:rotate(-90deg)}
.splash-mark circle{stroke-dasharray:1 1;stroke-dashoffset:1;animation:ringDraw 1.1s var(--ease-out) .15s forwards}
.splash .seal{width:84px;height:84px;box-shadow:none;opacity:0;transform:scale(.86);animation:sealIn .8s var(--ease-out) .1s forwards}
.splash .seal img{width:60px}
.splash b{font-family:Cinzel,serif;font-weight:600;letter-spacing:.3em;font-size:.95rem;color:#fff;opacity:0;transform:translateY(8px);animation:sealIn .8s var(--ease-out) .45s forwards}
.splash b span{color:var(--gold-light)}
@keyframes ringDraw{to{stroke-dashoffset:0}}
@keyframes sealIn{to{opacity:1;transform:none}}
@keyframes splashOut{to{opacity:0;visibility:hidden;transform:translateY(-12px)}}

/* ---------- Fingerprint draws itself ---------- */
.fp-draw path{stroke-dasharray:1 1;stroke-dashoffset:1;transition:stroke-dashoffset 2.6s var(--ease-out);transition-delay:calc(var(--i,0) * 140ms + .1s)}
.hero.intro .fp-draw path,.page-hero.in .fp-draw path{stroke-dashoffset:0}
.hero.intro .fp{opacity:.11}
.js-anim .page-hero .fp{opacity:0;transition:opacity 1.6s ease}
.page-hero.in .fp{opacity:.09}

/* ---------- Moving practice strip ---------- */
.marquee{overflow:hidden;background:var(--teal-deep);border-top:1px solid var(--line-gold);border-bottom:1px solid var(--line-gold);padding:24px 0;position:relative}
.marquee::before,.marquee::after{content:"";position:absolute;top:0;bottom:0;width:120px;z-index:1;pointer-events:none}
.marquee::before{left:0;background:linear-gradient(90deg,var(--teal-deep),transparent)}
.marquee::after{right:0;background:linear-gradient(270deg,var(--teal-deep),transparent)}
.marquee-track{display:flex;align-items:center;width:max-content;animation:marquee 70s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track>*{margin-right:44px;flex:0 0 auto}
.marquee span{font:400 2.3rem/1.1 var(--display);color:var(--muted);opacity:.5;white-space:nowrap}
.marquee span:nth-of-type(even){font-family:var(--serif);font-style:italic;color:var(--gold-light);opacity:.75}
.marquee i{width:7px;height:7px;border:1px solid var(--gold);border-radius:50%}
@keyframes marquee{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.marquee-track{animation:none}}
@media (max-width:760px){.marquee{padding:16px 0}.marquee span{font-size:1.6rem}.marquee-track>*{margin-right:28px}.marquee::before,.marquee::after{width:40px}}

/* ---------- Practice tiles: details button + icon draw ---------- */
.t{display:flex;flex-direction:column;position:relative;cursor:pointer}
.t p{flex:1}
.t-more{margin-top:22px;align-self:flex-start;background:none;border:0;padding:0;cursor:pointer;font:600 .7rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-light);opacity:.75;transition:opacity .25s}
.t-more::before{content:"";position:absolute;inset:0}
.t-more::after{content:"→";display:inline-block;margin-left:8px;transition:transform .35s var(--ease-out)}
.t:hover .t-more{opacity:1}
.t:hover .t-more::after{transform:translateX(5px)}
.t-more:focus-visible{outline:none}
.t:focus-within{outline:2px solid var(--gold-light);outline-offset:-2px}
.t svg{transition:stroke .3s,opacity .3s}
.t:hover svg{stroke:var(--gold-light);opacity:.95}
.anim-on .t svg>*{stroke-dasharray:1 1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s var(--ease-out);transition-delay:calc(var(--td,0ms) + .3s)}
.anim-on .t.in svg>*{stroke-dashoffset:0}
.anim-on .t:hover svg>*{animation:iconDraw 1.2s var(--ease-out)}
@keyframes iconDraw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}

/* ---------- Practice detail drawer ---------- */
.scrim{position:fixed;inset:0;z-index:55;background:rgba(4,16,20,.6);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .5s,visibility 0s .5s}
.scrim.open{opacity:1;visibility:visible;transition:opacity .5s}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(580px,100%);z-index:60;background:var(--ivory);color:var(--ink);overflow-y:auto;overscroll-behavior:contain;
  transform:translateX(100%);visibility:hidden;transition:transform .65s var(--ease-out),visibility 0s .65s;box-shadow:-30px 0 80px rgba(0,0,0,.25)}
.drawer.open{transform:none;visibility:visible;transition:transform .65s var(--ease-out)}
.dr-close{position:sticky;top:0;margin-left:auto;display:flex;align-items:center;justify-content:center;width:56px;height:56px;background:var(--ivory);border:0;border-left:1px solid #e3d9c3;border-bottom:1px solid #e3d9c3;font-size:1.6rem;line-height:1;color:var(--teal-deep);cursor:pointer;z-index:2;transition:background .2s}
.dr-close:hover{background:#fff}
.dr-body{padding:6px 48px 48px;margin-top:-30px}
.drawer.open .dr-body>*{animation:drIn .8s var(--ease-out) both;animation-delay:calc(var(--k,0) * 70ms + .2s)}
@keyframes drIn{from{opacity:0;transform:translateY(18px)}}
.dr-body .kicker{color:var(--gold-text)}
.dr-body .kicker::before{transform:none}
.dr-body h2{font:400 2.6rem/1.08 var(--display);color:var(--teal-deep);margin:14px 0 16px}
.dr-lead{font:400 1.12rem/1.6 var(--serif);color:#3d4847}
.dr-body h3{font-size:.7rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-text);margin:34px 0 10px}
.dr-body ul{list-style:none;border-top:1px solid #e3d9c3}
.dr-body li{padding:11px 0 11px 22px;border-bottom:1px solid #e3d9c3;position:relative;font-size:.97rem;color:#3f4a48}
.dr-body li::before{content:"";position:absolute;left:2px;top:21px;width:9px;height:1px;background:var(--gold)}
.dr-res{display:grid;gap:10px}
.dr-res a{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;background:#fff;border:1px solid #e9e0cc;color:var(--teal-deep);font-size:.95rem;transition:border-color .2s}
.dr-res a:hover{border-color:var(--gold)}
.dr-res a small{font-size:.66rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-text);white-space:nowrap}
.dr-cta{margin-top:34px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.dr-note{margin-top:14px;font-size:.8rem;color:#5f6968}
.dr-pager{margin-top:36px;padding-top:18px;border-top:1px solid #e3d9c3;display:flex;justify-content:space-between;gap:12px}
.dr-pager button{background:none;border:0;cursor:pointer;font:500 .9rem var(--sans);color:var(--teal);padding:4px 0;text-align:left}
.dr-pager button:last-child{text-align:right;margin-left:auto}
.dr-pager small{display:block;font-size:.64rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-text)}
@media (max-width:760px){.dr-body{padding:0 22px 40px}.dr-body h2{font-size:2rem}}
@media (prefers-reduced-motion:reduce){.drawer,.scrim{transition:none}.drawer.open .dr-body>*{animation:none}}

/* ---------- Approach told through scroll ---------- */
.steps-wrap{position:relative}
.process-track{position:absolute;left:0;right:0;top:0;height:1px;background:var(--line-gold)}
.process-track i{position:absolute;inset:0;background:var(--gold-light);transform:scaleX(var(--p,1));transform-origin:left}
.step{border-top:0;position:relative;padding-top:30px}
.step::before{content:"";position:absolute;left:0;top:-4px;width:9px;height:9px;border-radius:50%;background:var(--teal-dark);border:1px solid var(--gold);transition:background .4s,box-shadow .4s}
.step .n{transition:color .5s}
.anim-on .step{transform:translateY(16px);transition:transform .9s var(--ease-out)}
.anim-on .step.on{transform:none}
/* steps not yet reached are muted, but stay readable (WCAG contrast 5.4:1 or better) */
.anim-on .step h3,.anim-on .step p,.anim-on .step .n{transition:color .6s ease}
.anim-on .step:not(.on) h3{color:var(--muted)}
.anim-on .step:not(.on) p,.anim-on .step:not(.on) .n{color:var(--muted-2)}
.step.on::before{background:var(--gold-light);box-shadow:0 0 0 5px rgba(216,192,142,.12)}
.process-count{display:none}
@media (min-width:961px) and (min-height:640px){
  .anim-on .process{height:260vh;padding:0}
  .anim-on .process-pin{position:sticky;top:80px;height:calc(100vh - 80px);display:flex;align-items:center}
  .anim-on .process-pin>.wrap{width:100%}
  .anim-on .process-count{display:block;position:absolute;right:20px;top:0;font:400 .78rem var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted-2)}
  .anim-on .process-count b{font:400 2.4rem/1 var(--display);color:var(--gold-light);letter-spacing:0;margin-right:6px;vertical-align:-6px}
}
@media (min-width:761px) and (max-width:960px){.process-track{display:none}}
@media (max-width:760px){
  .process-track{left:4px;right:auto;width:1px;top:4px;bottom:0;height:auto}
  .process-track i{transform:scaleY(var(--p,1));transform-origin:top}
  .steps{gap:34px}
  .step{padding:0 0 0 34px}
  .step::before{top:2px}
}

/* ---------- Step-by-step enquiry form ---------- */
#enquiry fieldset{border:0;min-width:0;display:grid;gap:16px}
#enquiry legend{font:400 1.6rem/1.2 var(--display);color:#fff;margin-bottom:6px;padding:0}
#enquiry.js-steps .fstep:not(.cur),#enquiry [hidden]{display:none}
#enquiry.js-steps .fstep.cur{animation:stepIn .55s var(--ease-out)}
@keyframes stepIn{from{opacity:0;transform:translateX(calc(var(--dir,1) * 26px))}}
.f-progress{display:none}
.js-steps .f-progress{display:flex;list-style:none;gap:8px;justify-content:space-between;font-size:.68rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-2)}
.f-progress li{display:flex;align-items:center;gap:8px;transition:color .3s}
.f-progress li span{width:22px;height:22px;border-radius:50%;border:1px solid var(--line-gold);display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;letter-spacing:0;transition:.3s}
.f-progress li.cur{color:var(--gold-light)}
.f-progress li.cur span{border-color:var(--gold-light)}
.f-progress li.done span{background:var(--gold-light);border-color:var(--gold-light);color:var(--teal-deep)}
.f-bar{display:none}
.js-steps .f-bar{display:block;height:1px;background:var(--line-gold);margin:-2px 0 10px;position:relative}
.f-bar i{position:absolute;inset:0;background:var(--gold-light);transform:scaleX(var(--fp,.3333));transform-origin:left;transition:transform .7s var(--ease-out)}
.f-opts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.f-opt{position:relative;cursor:pointer}
.f-opt input{position:absolute;opacity:0;width:1px;height:1px}
.f-opt span{display:flex;align-items:center;min-height:54px;padding:10px 14px;border:1px solid var(--line-gold);font-size:.9rem;color:var(--soft);transition:border-color .25s,background .25s,color .25s;line-height:1.3}
.f-opt span::before{content:"";flex:0 0 auto;width:14px;height:14px;border-radius:2px;border:1px solid var(--muted-2);margin-right:12px;transition:.25s;background-position:center;background-repeat:no-repeat;background-size:10px}
.f-opt:hover span{border-color:rgba(216,192,142,.45)}
.f-opt input:checked+span{border-color:var(--gold-light);background:rgba(216,192,142,.07);color:#fff}
.f-opt input:checked+span::before{background-color:var(--gold-light);border-color:var(--gold-light);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5' fill='none' stroke='%230a2128' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.f-hint{font-size:.82rem;color:var(--muted-2);margin-top:-10px}
.f-chosen{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:.85rem;color:var(--muted)}
.f-chosen b{color:var(--gold-light);font-weight:600}
.f-chosen button,.f-link{background:none;border:0;color:var(--muted);text-decoration:underline;text-underline-offset:3px;cursor:pointer;font:inherit;font-size:.82rem;padding:0}
.f-classes{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.85rem;color:var(--muted)}
.f-classes[hidden]{display:none}
.f-classes span{border:1px solid var(--line-gold);padding:4px 10px;color:var(--gold-light);font-size:.8rem}
.field{position:relative}
.field input,.field textarea{padding:24px 2px 10px}
.field input::placeholder,.field textarea::placeholder{color:transparent}
.field label{position:absolute;left:2px;top:22px;color:var(--placeholder);font-size:.95rem;pointer-events:none;transform-origin:left top;transition:transform .3s var(--ease-out),color .3s}
.field input:focus+label,.field input:not(:placeholder-shown)+label,.field textarea:focus+label,.field textarea:not(:placeholder-shown)+label{transform:translateY(-17px) scale(.76);color:var(--gold-light)}
.field::after{content:"";position:absolute;left:0;right:0;top:calc(100% - 1px);height:1px;background:var(--gold-light);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease-out)}
.field:focus-within::after{transform:scaleX(1)}
.field.has-err::after{top:auto}
.field.ok label::after{content:" ✓";color:var(--gold-light)}
.field.bad input,.field.bad textarea{border-bottom-color:#e8a08a}
.f-err{font-size:.78rem;color:#f0a58f;min-height:0}
.f-err:empty{display:none}
.f-count{font-size:.72rem;color:var(--muted-2);text-align:right;margin-top:-10px}
.f-nav{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:4px}
.f-nav .btn{margin:0}
form .f-nav .btn{justify-self:auto}
.btn[disabled]{opacity:.55;cursor:default}
.f-done{text-align:center;padding:30px 10px;display:grid;justify-items:center;gap:12px}
.f-done[hidden]{display:none}
.f-done:focus{outline:none}
.f-done h3{font:400 1.7rem var(--display);color:#fff}
.f-done p{color:var(--muted);max-width:380px}
.tick{width:74px;height:74px;fill:none;stroke:var(--gold-light);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.tick circle,.tick path{stroke-dasharray:1 1;stroke-dashoffset:1}
.f-done:not([hidden]) .tick circle{animation:ringDraw .9s var(--ease-out) .1s forwards}
.f-done:not([hidden]) .tick path{animation:ringDraw .6s var(--ease-out) .8s forwards}
.f-done:not([hidden])>*:not(.tick){animation:drIn .8s var(--ease-out) both;animation-delay:calc(var(--k,0) * 90ms + .9s)}
@media (max-width:960px){.f-opts{grid-template-columns:1fr 1fr}}
@media (max-width:420px){.js-steps .f-progress li:not(.cur) em{display:none}}
@media (prefers-reduced-motion:reduce){.js-steps .fstep.cur,.f-done>*{animation:none}.tick circle,.tick path{stroke-dashoffset:0;animation:none!important}}

/* ---------- Class finder basket ---------- */
.cf-item{grid-template-columns:86px 1fr auto}
.cf-add{align-self:center;background:transparent;border:1px solid #d9ccb0;color:var(--teal-deep);font:600 .7rem var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:9px 14px;cursor:pointer;white-space:nowrap;transition:background .2s,border-color .2s,color .2s}
.cf-add:hover{border-color:var(--gold)}
.cf-add[aria-pressed="true"]{background:var(--teal-deep);border-color:var(--teal-deep);color:var(--gold-light)}
.cf-add.mini{margin-left:auto;padding:0;width:26px;height:26px;font-size:.95rem;letter-spacing:0;line-height:1;flex:0 0 auto;align-self:center}
.cf-browse li{align-items:center}
.cf-basket{position:sticky;bottom:16px;z-index:2;margin-top:22px;display:flex;align-items:center;gap:14px 18px;flex-wrap:wrap;padding:14px 16px 14px 20px;background:var(--teal-deep);color:var(--cream);box-shadow:0 14px 40px rgba(10,33,40,.25);animation:cfIn .4s var(--ease-out)}
.cf-basket[hidden]{display:none}
.cf-basket>b{font-size:.68rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-light)}
.cf-b-list{display:flex;flex-wrap:wrap;gap:6px;flex:1}
.cf-b-list button{background:rgba(255,255,255,.06);border:1px solid var(--line-gold);color:#fff;font:500 .82rem var(--sans);padding:5px 10px;cursor:pointer}
.cf-b-list button:hover{border-color:var(--gold-light)}
.cf-b-list button::after{content:"×";margin-left:8px;color:var(--gold-light)}
.cf-basket .btn{padding:11px 18px}
.cf-basket.bump{animation:bump .5s var(--ease-out)}
@keyframes bump{40%{transform:scale(1.02)}}
@media (max-width:760px){.cf-item{grid-template-columns:62px 1fr}.cf-add:not(.mini){grid-column:2;justify-self:start}.cf-basket{bottom:76px;margin-right:22px}}

/* ---------- Mobile action bar ---------- */
.mbar{display:none}
@media (max-width:760px){
  .mbar{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:40;background:rgba(8,28,34,.97);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line-gold);padding-bottom:env(safe-area-inset-bottom);
    transform:translateY(110%);transition:transform .5s var(--ease-out)}
  .mbar.show{transform:none}
  .mbar a{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px 9px;font-size:.66rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
  .mbar a+a{border-left:1px solid var(--line-gold)}
  .mbar svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
  .mbar a.primary{background:var(--gold-light);color:var(--teal-deep)}
  footer{padding-bottom:96px}
}

/* ---------- Back to top with progress ring ---------- */
.totop{position:fixed;right:22px;bottom:22px;z-index:40;width:50px;height:50px;border-radius:50%;border:0;background:rgba(10,33,40,.9);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--gold-light);cursor:pointer;display:flex;align-items:center;justify-content:center;
  opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .4s,transform .5s var(--ease-out),visibility 0s .4s}
.totop.show{opacity:1;visibility:visible;transform:none;transition:opacity .4s,transform .5s var(--ease-out)}
.totop svg.ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg);fill:none;stroke-width:1.5}
.totop .ring circle:first-child{stroke:var(--line-gold)}
.totop .ring circle:last-child{stroke:var(--gold-light);stroke-dasharray:1 1;stroke-dashoffset:var(--o,1)}
.totop .arrow{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s var(--ease-out)}
.totop:hover .arrow{transform:translateY(-3px)}
@media (max-width:760px){.totop{right:14px;bottom:78px;width:44px;height:44px}}

/* ---------- Legal pages (privacy, 404) ---------- */
.doc{max-width:820px}
.doc .article h2{font-size:1.7rem}
.doc .meta{font-size:.85rem;color:#5f6968;margin-bottom:24px}
.nf{min-height:calc(100vh - 80px);display:flex;align-items:center}
.nf .big{font:400 9rem/1 var(--display);color:var(--gold-light);opacity:.85}
.nf .btn{margin:8px 10px 0 0}
@media (max-width:760px){.nf .big{font-size:6rem}}
.f-progress em{font-style:normal}
.article ul+p,.article ol+p{margin-top:12px}

/* =====================================================================
   PHONES & TABLETS — iPhone (Safari) and Android (Chrome) compatibility
   ===================================================================== */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
input:not([type=checkbox]):not([type=radio]),textarea{-webkit-appearance:none;appearance:none}
input[type=search]::-webkit-search-decoration{-webkit-appearance:none}
/* respect the notch / home bar when the page runs edge to edge */
.wrap{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
.nf{min-height:calc(100vh - 80px);min-height:calc(100svh - 80px)}
@media (max-width:760px){
  /* 16px stops iPhone from zooming into a field when it is tapped */
  input,textarea,select,.cf-search input{font-size:16px}
  .field label{font-size:16px}
  /* lighter header and bar while scrolling on phones (no live blur) */
  header,.mbar{-webkit-backdrop-filter:none;backdrop-filter:none}
  header{background:var(--header-scrolled)}
  .totop{bottom:calc(78px + env(safe-area-inset-bottom))}
  .cf-basket{bottom:calc(76px + env(safe-area-inset-bottom))}
  footer{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
}
/* touch screens: no hover-only effects that would "stick" after a tap */
@media (hover:none){
  .marquee:hover .marquee-track{animation-play-state:running}
  .anim-on .t:hover svg>*{animation:none}
  .btn::after{display:none}
  .t:hover .t-more::after{transform:none}
  .t:active{background:rgba(255,255,255,.03)}
}

/* Founder photograph */
.portrait div{background:#e9e3d6}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;display:block}

/* ---------- Room for the "Powered by Netlify" badge (bottom-right, free plan) ---------- */
.nf-badge .totop{bottom:calc(var(--badge-h,64px) + 14px)}
.nf-badge footer{padding-bottom:calc(30px + var(--badge-h,64px))}
@media (max-width:760px){
  /* the bar's background runs under the badge; its buttons sit just above it */
  .nf-badge .mbar{padding-bottom:calc(var(--badge-h,64px) + env(safe-area-inset-bottom))}
  .nf-badge .totop{bottom:calc(78px + var(--badge-h,64px) + env(safe-area-inset-bottom))}
  .nf-badge .cf-basket{bottom:calc(76px + var(--badge-h,64px) + env(safe-area-inset-bottom))}
  .nf-badge footer{padding-bottom:calc(96px + var(--badge-h,64px) + env(safe-area-inset-bottom))}
}
.mbar{height:auto;justify-content:stretch}

/* ---------- Performance ---------- */
/* phones: no live blur behind the disclaimer and panels (costly to draw); use a solid tint instead */
@media (max-width:760px){
  .gate,.scrim{-webkit-backdrop-filter:none;backdrop-filter:none}
  .gate{background:rgba(6,22,27,.97)}
  .scrim{background:rgba(4,16,20,.8)}
}
/* the moving strip rests while it is off screen */
.marquee.off .marquee-track{animation-play-state:paused}
/* phones: solid bar and header so page text never shows through */
@media (max-width:760px){.mbar{background:#081c22}header,header.scrolled{background:#081c22}}

/* =====================================================================
   AUDIT FIXES
   ===================================================================== */
/* Keyboard focus and in-page links never land under the sticky header or phone bar (WCAG 2.4.11) */
html{scroll-padding-top:96px}
@media (max-width:760px){
  html{scroll-padding-bottom:84px}
  html.nf-badge{scroll-padding-bottom:calc(84px + var(--badge-h,64px))}
}
/* Founder photo inside <picture> */
.portrait picture{display:block;width:100%;height:100%}
/* Without JavaScript: the disclaimer sits at the top of the page instead of blocking it,
   and controls that need JavaScript are hidden */
.if-nojs{display:none}
html:not(.js) .if-js{display:none}
html:not(.js) .if-nojs{display:inline}
html:not(.js) .gate{position:static;display:block;padding:0;background:var(--teal-deep);-webkit-backdrop-filter:none;backdrop-filter:none}
html:not(.js) .gate-box{max-width:none;max-height:none;border:0;border-bottom:1px solid var(--line-gold);padding:28px 20px}
html:not(.js) #agree,
html:not(.js) .t-more,
html:not(.js) .cf-search,
html:not(.js) .cf-chips,
html:not(.js) .cf-browse,
html:not(.js) #enquiry [data-next],
html:not(.js) #enquiry [data-back],
html:not(.js) .f-chosen,
html:not(.js) .f-count{display:none}
/* The fading backdrop of a closing panel must never swallow the next click */
.scrim{pointer-events:none}
.scrim.open{pointer-events:auto}
/* Without JavaScript the menu button cannot open the menu, so the links are shown under the logo instead */
@media (max-width:1100px){
  html:not(.js) .menu-btn{display:none}
  html:not(.js) nav{height:auto;flex-wrap:wrap;padding:14px 0 10px;row-gap:12px}
  html:not(.js) .links{display:flex;position:static;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px 18px;padding:0;border:0;background:none;width:100%}
}
/* Netlify badge: keep the practice panel's Previous/Next clear of it when the panel is scrolled to the end */
.nf-badge .dr-body{padding-bottom:calc(40px + var(--badge-h,64px))}
/* Copyright watermark: centred on screen, very faint; taps and clicks pass straight through it.
   Drawn as decoration (not page text), so screen readers and text checks skip it.
   Sits under the header, phone bar, panels and disclaimer (z-index 30+), so it never covers controls. */
.wm{position:fixed;left:50%;top:50%;z-index:25;width:0;height:0;display:flex;align-items:center;justify-content:center;pointer-events:none;user-select:none;-webkit-user-select:none}
.wm::before{content:"\00A9  INTELLECTURA IP";content:"\00A9  INTELLECTURA IP" / "";transform:rotate(-30deg);font:600 clamp(1.4rem,6vw,6rem)/1 Cinzel,serif;letter-spacing:.14em;color:#b08a4a;opacity:.1;white-space:nowrap}
@media print{.wm{display:none}}
