/* ============================================================
   Emovia — design tokens
   Single-theme by intent: the identity is built for a black
   ground (see logo). Every colour is painted explicitly so the
   page holds regardless of the host's light/dark setting.
   ============================================================ */
:root{
  color-scheme: dark;

  /* neutrals carry a faint violet bias, pulled from the logo's
     purple midtones — a pure grey would read as unconsidered */
  --ink:      #08080B;
  --ink-2:    #101016;
  --ink-3:    #16161E;
  --line:     #23232E;
  --line-soft:#1A1A23;
  --paper:    #FFFFFF;
  --muted:    #9C9CAC;
  --muted-2:  #6E6E80;

  /* brand spectrum, sampled from the supplied logo artwork */
  --amber:  #FCAB37;
  --flame:  #FC6635;
  --ember:  #F23E2D;
  --magenta:#C103D4;
  --violet: #7B3CFB;
  --azure:  #0A72EE;
  --cyan:   #12BDF7;

  --grad: linear-gradient(95deg,#FCAB37 0%,#FC6635 16%,#F23E2D 30%,#C103D4 52%,#7B3CFB 68%,#0A72EE 85%,#12BDF7 100%);
  --grad-soft: linear-gradient(95deg,rgba(252,171,55,.16),rgba(242,62,45,.16),rgba(193,3,212,.16),rgba(123,60,251,.16),rgba(18,189,247,.16));

  --font-display: "Jost", "Futura", "Century Gothic", system-ui, sans-serif;
  --font-accent:  "Instrument Serif", "Iowan Old Style", Georgia, serif;
  --font-body:    "Hanken Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;

  /* fluid type scale */
  --t-eyebrow: .72rem;
  --t-body:    clamp(1rem, .96rem + .2vw, 1.0625rem);
  --t-lead:    clamp(1.0625rem, 1rem + .45vw, 1.3125rem);
  --t-h3:      clamp(1.125rem, 1.06rem + .3vw, 1.3125rem);
  --t-h2:      clamp(1.9rem, 1.45rem + 2.1vw, 3.25rem);
  --t-h1:      clamp(2.9rem, 1.7rem + 5.6vw, 6.5rem);

  --gutter: clamp(1.25rem, 5vw, 3.5rem);
  --maxw: 1200px;
  --section-y: clamp(4.5rem, 9vw, 8.5rem);
  --radius: 14px;
  --ease: cubic-bezier(.2,.7,.3,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background: var(--ink);
  color: var(--paper);
  font-family: var(--font-body);
  font-size: var(--t-body);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; height:auto; display:block; }

a{ color:inherit; }

:focus-visible{
  outline:2px solid var(--cyan);
  outline-offset:3px;
  border-radius:4px;
}

.skip{
  position:absolute; left:.75rem; top:-4rem; z-index:200;
  background:var(--paper); color:var(--ink);
  padding:.65rem 1rem; border-radius:8px; font-weight:500;
  font-family:var(--font-display);
  transition:top .18s var(--ease);
}
.skip:focus{ top:.75rem; }

.wrap{
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:var(--gutter);
}

/* ---------- shared section furniture ---------- */
.eyebrow{
  font-family:var(--font-display);
  font-size:var(--t-eyebrow);
  font-weight:500;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--muted);
  display:flex;
  align-items:flex-start;
  gap:.7rem;
  margin:0 0 1.1rem;
}
.eyebrow::before{
  content:"";
  width:26px; height:2px; flex:none;
  background:var(--grad);
  border-radius:2px;
  /* keep the rule on the first line's optical centre when the label wraps */
  margin-top:.62em;
}

h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:400;
  text-wrap:balance;
  margin:0;
}

.h2{
  font-size:var(--t-h2);
  line-height:1.08;
  letter-spacing:-.02em;
}

.lead{
  font-size:var(--t-lead);
  color:var(--muted);
  max-width:62ch;
  line-height:1.55;
  margin:1.1rem 0 0;
}

/* gradient text — used sparingly, on single words only */
.grad-text{
  background:var(--grad);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.6rem;
  font-family:var(--font-display);
  font-size:1rem;
  font-weight:500;
  letter-spacing:.01em;
  padding:.95rem 1.6rem;
  border-radius:999px;
  border:1px solid transparent;
  text-decoration:none;
  cursor:pointer;
  transition:transform .2s var(--ease), box-shadow .2s var(--ease), background-color .2s var(--ease), border-color .2s var(--ease);
}
.btn svg{ flex:none; }

.btn-primary{
  color:var(--ink);
  background:var(--paper);
  position:relative;
  isolation:isolate;
  box-shadow:0 0 0 0 rgba(193,3,212,0);
}
.btn-primary::before{
  content:"";
  position:absolute; inset:-2px;
  border-radius:inherit;
  background:var(--grad);
  z-index:-1;
  opacity:0;
  transition:opacity .25s var(--ease);
}
.btn-primary:hover{ transform:translateY(-2px); box-shadow:0 10px 30px -12px rgba(123,60,251,.8); }
.btn-primary:hover::before{ opacity:1; }

.btn-ghost{
  color:var(--paper);
  border-color:var(--line);
  background:transparent;
}
.btn-ghost:hover{ border-color:var(--muted-2); background:var(--ink-2); transform:translateY(-2px); }

/* ---------- header ---------- */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(8,8,11,.72);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid transparent;
  transition:border-color .25s var(--ease), background-color .25s var(--ease);
}
.site-header[data-stuck="true"]{
  border-bottom-color:var(--line-soft);
  background:rgba(8,8,11,.9);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  min-height:72px;
}
.brand{ display:inline-flex; align-items:center; text-decoration:none; }
.brand img{ height:30px; width:159px; }

.nav{ display:none; gap:2rem; align-items:center; }
.nav a{
  font-family:var(--font-display);
  font-size:.95rem;
  color:var(--muted);
  text-decoration:none;
  position:relative;
  padding:.25rem 0;
  transition:color .18s var(--ease);
}
.nav a::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0;
  height:1.5px;
  background:var(--grad);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .26s var(--ease);
}
.nav a:hover{ color:var(--paper); }
.nav a:hover::after{ transform:scaleX(1); }

.header-cta{ display:none; }
@media (min-width:900px){
  .nav{ display:flex; }
  .header-cta{ display:inline-flex; padding:.7rem 1.25rem; font-size:.95rem; }
}

/* ---------- hero ---------- */
.hero{
  position:relative;
  overflow:hidden;
  padding-block: clamp(3.5rem, 8vw, 7rem) clamp(3.5rem, 7vw, 6rem);
}
/* ambient light-leak: one cheap blurred radial, transform-animated only.
   Evokes a lens flare rather than a decorative "gradient blob". */
.leak{
  position:absolute;
  top:-28%; left:50%;
  width:min(1150px,135vw);
  aspect-ratio:1.5;
  margin-left:min(-575px,-67.5vw);
  background:
    radial-gradient(46% 42% at 30% 42%, rgba(252,102,53,.30), transparent 68%),
    radial-gradient(44% 40% at 62% 34%, rgba(193,3,212,.28), transparent 70%),
    radial-gradient(48% 46% at 78% 62%, rgba(10,114,238,.26), transparent 72%);
  filter:blur(66px);
  pointer-events:none;
  z-index:0;
  animation:drift 26s var(--ease) infinite alternate;
}
@keyframes drift{
  from{ transform:translate3d(-3%,0,0) scale(1); }
  to  { transform:translate3d(3%,2%,0) scale(1.09); }
}
.hero > .wrap{ position:relative; z-index:1; }

h1.hero-title{
  font-size:var(--t-h1);
  line-height:.92;
  letter-spacing:-.035em;
  font-weight:300;
  margin:0;
}
h1.hero-title .em{
  font-family:var(--font-accent);
  font-style:italic;
  font-weight:400;
  letter-spacing:-.015em;
  /* the one word the whole brand rests on — given its own voice */
  padding-right:.06em;
}
h1.hero-title .line-2{
  display:block;
  font-weight:300;
}

.hero-lead{ margin-top:1.6rem; max-width:54ch; }

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.85rem;
  margin-top:2.2rem;
}

.hero-meta{
  margin-top:1.6rem;
  font-size:.9rem;
  color:var(--muted-2);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:.45rem;
}
.hero-meta .dot{ display:none; }
@media (min-width:600px){
  .hero-meta{ flex-direction:row; flex-wrap:wrap; align-items:center; gap:.5rem .9rem; }
  .hero-meta .dot{ display:block; }
}
.hero-meta a{ color:var(--muted); text-decoration:none; border-bottom:1px solid var(--line); }
.hero-meta a:hover{ color:var(--paper); border-bottom-color:var(--cyan); }
.dot{ width:4px; height:4px; border-radius:50%; background:var(--magenta); flex:none; }

/* facts row — deliberately small type, not big-number tiles:
   these are qualifications, not the point of the page */
.facts{
  display:grid;
  gap:1px;
  background:var(--line-soft);
  border-block:1px solid var(--line-soft);
  margin-top: clamp(3rem, 6vw, 4.5rem);
}
@media (min-width:700px){ .facts{ grid-template-columns:repeat(3,1fr); } }
.fact{
  background:var(--ink);
  padding:1.4rem clamp(1rem,3vw,1.9rem);
  display:flex;
  flex-direction:column;
  gap:.25rem;
}
.fact b{
  font-family:var(--font-display);
  font-weight:500;
  font-size:1.05rem;
  color:var(--paper);
}
.fact span{ font-size:.92rem; color:var(--muted); }

/* ---------- ticker ---------- */
.ticker{
  border-bottom:1px solid var(--line-soft);
  overflow:hidden;
  padding-block:1.15rem;
  mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
}
.ticker-track{
  display:flex;
  width:max-content;
  animation:slide 44s linear infinite;
}
.ticker:hover .ticker-track{ animation-play-state:paused; }
.ticker-group{ display:flex; align-items:center; }
.ticker-group span{
  font-family:var(--font-display);
  font-weight:300;
  font-size:clamp(.95rem,2.4vw,1.1rem);
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--muted);
  padding-inline:1.5rem;
  white-space:nowrap;
}
.ticker-group i{
  width:5px; height:5px; border-radius:50%;
  background:var(--grad);
  flex:none;
}
@keyframes slide{ to{ transform:translate3d(-50%,0,0); } }

/* ---------- generic section ---------- */
.section{ padding-block:var(--section-y); }
.section-head{ max-width:64ch; }

/* ---------- services ---------- */
.svc-group + .svc-group{ margin-top: clamp(3rem, 6vw, 4.5rem); }

.svc-group-head{
  display:flex;
  align-items:baseline;
  gap:1rem;
  padding-bottom:1.1rem;
  border-bottom:1px solid var(--line);
  margin-bottom:.5rem;
}
.svc-group-head h3{
  font-size:var(--t-h3);
  font-weight:500;
  letter-spacing:.01em;
}
.svc-group-head p{
  margin:0;
  font-size:.92rem;
  color:var(--muted-2);
}

.svc-list{ list-style:none; margin:0; padding:0; }

.svc{
  display:grid;
  gap:.35rem 2rem;
  padding-block:1.6rem;
  border-bottom:1px solid var(--line-soft);
  position:relative;
}
@media (min-width:820px){
  .svc{ grid-template-columns:minmax(0,15rem) minmax(0,1fr) auto; align-items:start; }
}
.svc h4{
  font-size:1.2rem;
  font-weight:400;
  letter-spacing:-.005em;
  transition:color .2s var(--ease);
}
.svc p{ margin:0; color:var(--muted); font-size:.98rem; max-width:58ch; }

.svc-link{
  font-family:var(--font-display);
  font-size:.9rem;
  color:var(--muted-2);
  text-decoration:none;
  white-space:nowrap;
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  transition:color .2s var(--ease), gap .2s var(--ease);
  align-self:center;
  margin-top:.5rem;
}
@media (min-width:820px){ .svc-link{ margin-top:0; } }
.svc-link::after{ content:"\2197"; font-size:.95em; }
.svc:hover h4{ color:var(--paper); }
.svc:hover .svc-link{ color:var(--cyan); gap:.6rem; }
.svc::after{
  content:"";
  position:absolute; left:0; bottom:-1px; height:1px; width:100%;
  background:var(--grad);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .4s var(--ease);
}
.svc:hover::after{ transform:scaleX(1); }



.note{
  margin-top:1.8rem;
  font-size:.9rem;
  color:var(--muted-2);
  display:flex;
  gap:.6rem;
  align-items:flex-start;
  max-width:60ch;
}
.note i{
  width:5px; height:5px; border-radius:50%; background:var(--amber);
  flex:none; margin-top:.55rem;
}

/* ---------- process (a real sequence — numbering is earned) ---------- */
.steps{
  list-style:none; margin:clamp(2.2rem,5vw,3rem) 0 0; padding:0;
  display:grid; gap:1px;
  background:var(--line-soft);
  border:1px solid var(--line-soft);
  border-radius:var(--radius);
  overflow:hidden;
}
@media (min-width:760px){ .steps{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1080px){ .steps{ grid-template-columns:repeat(4,1fr); } }
.step{
  background:var(--ink);
  padding:clamp(1.5rem,3vw,2rem);
  display:flex; flex-direction:column; gap:.6rem;
}
.step-n{
  font-family:var(--font-display);
  font-size:.78rem;
  font-weight:500;
  letter-spacing:.2em;
  color:var(--muted-2);
  font-variant-numeric:tabular-nums;
}
.step h3{ font-size:var(--t-h3); font-weight:400; }
.step p{ margin:0; color:var(--muted); font-size:.96rem; }

/* ---------- founder ---------- */
.founder{
  display:grid;
  gap:clamp(2rem,5vw,4rem);
  align-items:start;
}
@media (min-width:900px){ .founder{ grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); } }

.pullquote{
  font-family:var(--font-accent);
  font-style:italic;
  font-size:clamp(1.5rem,1.05rem + 1.9vw, 2.35rem);
  line-height:1.24;
  letter-spacing:-.01em;
  margin:0;
  color:var(--paper);
  text-wrap:balance;
}
.founder-body p{ color:var(--muted); }
.founder-body p:first-of-type{ margin-top:0; }

.cred{
  list-style:none; margin:1.8rem 0 0; padding:0;
  display:grid; gap:.75rem;
}
.cred li{
  display:flex; gap:.8rem; align-items:baseline;
  font-size:.95rem; color:var(--muted);
  padding-bottom:.75rem;
  border-bottom:1px solid var(--line-soft);
}
.cred li strong{
  font-family:var(--font-display);
  font-weight:500; color:var(--paper);
  flex:none; min-width:6.5rem;
}

/* ---------- faq ---------- */
.faq{ margin-top:clamp(2.2rem,5vw,3rem); border-top:1px solid var(--line); }
.faq details{ border-bottom:1px solid var(--line-soft); }
.faq summary{
  list-style:none;
  cursor:pointer;
  padding:1.35rem 2.5rem 1.35rem 0;
  position:relative;
  font-family:var(--font-display);
  font-size:clamp(1.02rem,.98rem + .25vw,1.15rem);
  font-weight:400;
  color:var(--paper);
  transition:color .2s var(--ease);
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after{
  content:"";
  position:absolute; right:.35rem; top:50%;
  width:11px; height:11px;
  border-right:1.5px solid var(--muted);
  border-bottom:1.5px solid var(--muted);
  transform:translateY(-70%) rotate(45deg);
  transition:transform .28s var(--ease), border-color .2s var(--ease);
}
.faq details[open] summary::after{ transform:translateY(-25%) rotate(225deg); border-color:var(--cyan); }
.faq summary:hover{ color:var(--cyan); }
.faq .answer{ padding:0 0 1.5rem; color:var(--muted); max-width:66ch; }
.faq .answer p{ margin:0; }

/* ---------- contact ---------- */
.contact{
  position:relative;
  border-radius:clamp(16px,3vw,26px);
  padding:clamp(2.2rem,6vw,4.5rem);
  background:var(--ink-2);
  border:1px solid var(--line-soft);
  overflow:hidden;
}
.contact::before{
  content:"";
  position:absolute; inset:0 0 auto 0; height:2px;
  background:var(--grad);
}
.contact-inner{ position:relative; display:grid; gap:clamp(1.8rem,4vw,3rem); }
@media (min-width:900px){ .contact-inner{ grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); align-items:center; } }

.channels{ list-style:none; margin:0; padding:0; display:grid; gap:.25rem; }
.channels a{
  display:flex; align-items:center; gap:1rem;
  padding:1rem .25rem;
  text-decoration:none;
  border-bottom:1px solid var(--line-soft);
  transition:padding-left .22s var(--ease);
}
.channels a:hover{ padding-left:.85rem; }
.channels a:hover .ch-val{ color:var(--cyan); }
.ch-key{
  font-family:var(--font-display);
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted-2); min-width:6.2rem; flex:none;
}
.ch-val{
  font-family:var(--font-display);
  font-size:1.05rem; color:var(--paper);
  transition:color .2s var(--ease);
  font-variant-numeric:tabular-nums;
}

/* ---------- footer ---------- */
.site-footer{
  border-top:1px solid var(--line-soft);
  /* extra bottom room so the floating WhatsApp button never covers the footer */
  padding-block:clamp(3rem,6vw,4.5rem) 6rem;
}
@media (min-width:760px){ .site-footer{ padding-bottom:2.5rem; } }
.footer-top{
  display:grid; gap:2.5rem;
  align-items:start;
}
@media (min-width:760px){ .footer-top{ grid-template-columns:auto 1fr; gap:4rem; } }
.footer-logo img{ width:116px; height:72px; }
.footer-nav{
  display:grid; gap:2rem;
  grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));
}
.footer-col h4{
  font-family:var(--font-display);
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--muted-2); margin-bottom:.9rem; font-weight:500;
}
.footer-col ul{ list-style:none; margin:0; padding:0; display:grid; gap:.5rem; }
.footer-col a{ color:var(--muted); text-decoration:none; font-size:.95rem; }
.footer-col a:hover{ color:var(--paper); }
.footer-bottom{
  margin-top:clamp(2.5rem,5vw,3.5rem);
  padding-top:1.5rem;
  border-top:1px solid var(--line-soft);
  display:flex; flex-wrap:wrap; gap:.6rem 1.25rem;
  justify-content:space-between;
  font-size:.85rem; color:var(--muted-2);
}

/* ---------- floating whatsapp ---------- */
.fab{
  position:fixed;
  right:clamp(1rem,3vw,1.75rem);
  bottom:clamp(1rem,3vw,1.75rem);
  z-index:90;
  display:inline-flex; align-items:center; gap:.6rem;
  padding:.85rem 1.25rem;
  border-radius:999px;
  background:#1FAF54;
  color:#fff;
  font-family:var(--font-display);
  font-weight:500; font-size:.95rem;
  text-decoration:none;
  box-shadow:0 14px 34px -12px rgba(0,0,0,.9);
  transition:transform .22s var(--ease), background-color .2s var(--ease);
}
.fab:hover{ transform:translateY(-3px); background:#25C45E; }
.fab .fab-text{ display:none; }
@media (min-width:520px){ .fab .fab-text{ display:inline; } }

/* ---------- reveal (starts visible; animation is an enhancement) ---------- */
@media (prefers-reduced-motion: no-preference){
  .js .reveal{ opacity:0; transform:translate3d(0,18px,0); }
  .js .reveal.in{
    opacity:1; transform:none;
    transition:opacity .65s var(--ease), transform .65s var(--ease);
  }
}
@media (prefers-reduced-motion: reduce){
  .leak, .ticker-track{ animation:none; }
  *{ transition-duration:.01ms !important; }
}

/* ============================================================
   WordPress additions — everything below is new in v1.1.
   The homepage uses none of it except the admin-bar offset.
   All values come from the brand tokens above.
   ============================================================ */

/* admin bar (only visible when logged in) — keep sticky header below it */
.admin-bar .site-header{ top:32px; }
@media (max-width:782px){ .admin-bar .site-header{ top:46px; } }
@media (max-width:600px){ .admin-bar .site-header{ top:0; } }

/* current page in the nav */
.nav a[aria-current="page"]{ color:var(--paper); }
.nav a[aria-current="page"]::after{ transform:scaleX(1); }

/* ---------- inner page header ---------- */
.page-hero{
  position:relative;
  overflow:hidden;
  padding-block: clamp(3rem, 7vw, 6rem) clamp(2.5rem, 5vw, 4rem);
  border-bottom:1px solid var(--line-soft);
}
.page-hero .leak{ opacity:.55; top:-60%; }
.page-hero > .wrap{ position:relative; z-index:1; }
h1.page-title{
  font-size:clamp(2.4rem, 1.5rem + 3.8vw, 4.75rem);
  line-height:1;
  letter-spacing:-.03em;
  font-weight:300;
  max-width:20ch;
}
.page-hero .lead{ margin-top:1.3rem; }
.page-meta{
  display:flex; flex-wrap:wrap; align-items:center; gap:.5rem .9rem;
  margin-top:1.4rem;
  font-size:.9rem; color:var(--muted-2);
}
.page-meta a{ color:var(--muted); text-decoration:none; }
.page-meta a:hover{ color:var(--paper); }

.page-body{ padding-block: clamp(2.5rem, 6vw, 5rem); }
.page-body--flush{ padding-block:0; }

/* ---------- long-form content from the editor ---------- */
.entry-content{
  max-width:72ch;
  color:var(--muted);
  font-size:clamp(1.02rem, .98rem + .2vw, 1.1rem);
  line-height:1.75;
}
.entry-content--wide{ max-width:none; }
.entry-content > *{ margin-block:0 1.3em; }
.entry-content > *:last-child{ margin-bottom:0; }
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6{
  color:var(--paper);
  line-height:1.15;
  letter-spacing:-.015em;
  margin-top:2.2em;
  margin-bottom:.6em;
}
.entry-content > h2:first-child,
.entry-content > h3:first-child{ margin-top:0; }
.entry-content h2{ font-size:clamp(1.6rem, 1.3rem + 1.3vw, 2.35rem); font-weight:400; }
.entry-content h3{ font-size:clamp(1.25rem, 1.1rem + .6vw, 1.6rem); font-weight:400; }
.entry-content h4{ font-size:1.15rem; font-weight:500; }
.entry-content h5,
.entry-content h6{ font-size:.8rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); }
.entry-content strong, .entry-content b{ color:var(--paper); font-weight:500; }
.entry-content a{
  color:var(--paper);
  text-decoration:underline;
  text-decoration-color:var(--violet);
  text-decoration-thickness:1px;
  text-underline-offset:.2em;
  transition:text-decoration-color .2s var(--ease), color .2s var(--ease);
}
.entry-content a:hover{ color:var(--cyan); text-decoration-color:var(--cyan); }
.entry-content ul,
.entry-content ol{ padding-left:1.3em; }
.entry-content li{ margin-bottom:.45em; }
.entry-content li::marker{ color:var(--magenta); }
.entry-content ol li::marker{ font-family:var(--font-display); color:var(--muted-2); }
.entry-content blockquote,
.entry-content .wp-block-quote{
  margin-inline:0;
  padding:.2em 0 .2em 1.4rem;
  border-left:2px solid transparent;
  border-image:linear-gradient(180deg,#FCAB37,#C103D4,#12BDF7) 1;
  color:var(--paper);
  font-family:var(--font-display);
  font-weight:300;
  font-size:1.2em;
  line-height:1.5;
}
.entry-content blockquote cite,
.entry-content .wp-block-quote cite{
  display:block; margin-top:.8em;
  font-family:var(--font-body); font-style:normal; font-size:.8em; color:var(--muted-2);
}
.entry-content hr,
.entry-content .wp-block-separator{
  border:0; height:1px; background:var(--line); margin-block:2.5em;
}
.entry-content img,
.entry-content video{ border-radius:var(--radius); }
.entry-content figure{ margin-inline:0; }
.entry-content figcaption,
.entry-content .wp-element-caption{
  margin-top:.7rem; font-size:.85rem; color:var(--muted-2); text-align:left;
}
.entry-content code{
  font-size:.88em; background:var(--ink-3); border:1px solid var(--line-soft);
  padding:.1em .4em; border-radius:6px; color:var(--paper);
}
.entry-content pre{
  background:var(--ink-2); border:1px solid var(--line-soft); border-radius:var(--radius);
  padding:1.2rem 1.4rem; overflow-x:auto; font-size:.9rem; line-height:1.6;
}
.entry-content pre code{ background:none; border:0; padding:0; }
.entry-content table{ width:100%; border-collapse:collapse; font-size:.95rem; }
.entry-content .wp-block-table{ overflow-x:auto; }
.entry-content th,
.entry-content td{ text-align:left; padding:.8rem 1rem .8rem 0; border-bottom:1px solid var(--line-soft); vertical-align:top; }
.entry-content th{ color:var(--paper); font-family:var(--font-display); font-weight:500; border-bottom-color:var(--line); }

/* wide and full-width blocks */
.entry-content .alignwide{ max-width:min(1100px, calc(100vw - 2 * var(--gutter))); width:min(1100px, calc(100vw - 2 * var(--gutter))); margin-left:50%; transform:translateX(-50%); }
.entry-content .alignfull{ width:100vw; max-width:100vw; margin-left:calc(50% - 50vw); border-radius:0; }
.entry-content .alignfull img{ border-radius:0; }
.entry-content--wide .alignwide{ margin-left:0; transform:none; width:auto; max-width:none; }
.entry-content .alignleft{ float:left; margin:.3em 1.6em 1em 0; max-width:50%; }
.entry-content .alignright{ float:right; margin:.3em 0 1em 1.6em; max-width:50%; }
.entry-content .aligncenter{ margin-inline:auto; }
.entry-content::after{ content:""; display:table; clear:both; }

/* editor buttons follow the site buttons */
.entry-content .wp-block-buttons{ gap:.85rem; }
.entry-content .wp-block-button__link,
.entry-content .wp-element-button{
  display:inline-flex; align-items:center; gap:.6rem;
  font-family:var(--font-display); font-size:.98rem; font-weight:400; letter-spacing:.005em;
  padding:.95rem 1.6rem; border-radius:999px; line-height:1;
  background:var(--paper); color:var(--ink);
  text-decoration:none;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.entry-content .wp-block-button__link:hover{ transform:translateY(-2px); box-shadow:0 10px 30px -12px rgba(123,60,251,.8); color:var(--ink); }
.entry-content .is-style-outline .wp-block-button__link{
  background:transparent; color:var(--paper); border:1px solid var(--line);
}
.entry-content .is-style-outline .wp-block-button__link:hover{ border-color:var(--muted-2); background:var(--ink-2); color:var(--paper); box-shadow:none; }

/* columns / groups / cover get the surface treatment when given a background */
.entry-content .wp-block-group.has-background,
.entry-content .wp-block-column.has-background{ border-radius:var(--radius); padding:clamp(1.4rem,3vw,2.2rem); }
.entry-content .wp-block-columns{ gap:clamp(1.2rem,3vw,2.2rem); }
.entry-content .wp-block-cover{ border-radius:var(--radius); overflow:hidden; }
.entry-content .wp-block-cover.alignfull{ border-radius:0; }
.entry-content .wp-block-embed iframe{ width:100%; border-radius:var(--radius); }
.entry-content .wp-block-gallery{ gap:.8rem; }
.entry-content .wp-block-details{ border-bottom:1px solid var(--line-soft); padding-block:1rem; }
.entry-content .wp-block-details summary{ color:var(--paper); font-family:var(--font-display); cursor:pointer; }

/* ---------- blog / archive list ---------- */
.post-grid{
  display:grid;
  gap:clamp(1rem,2.2vw,1.5rem);
  grid-template-columns:1fr;
}
@media (min-width:700px){ .post-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1080px){ .post-grid{ grid-template-columns:repeat(3,1fr); } }
.post-card{
  position:relative;
  display:flex; flex-direction:column;
  background:var(--ink-2);
  border:1px solid var(--line-soft);
  border-radius:var(--radius);
  overflow:hidden;
  transition:border-color .25s var(--ease), transform .25s var(--ease);
}
.post-card:hover{ border-color:var(--line); transform:translateY(-3px); }
.post-card-media{ aspect-ratio:16/9; background:var(--ink-3); overflow:hidden; }
.post-card-media img{ width:100%; height:100%; object-fit:cover; }
.post-card-body{ display:flex; flex-direction:column; gap:.7rem; padding:1.4rem 1.4rem 1.5rem; flex:1; }
.post-card-meta{ font-size:.8rem; color:var(--muted-2); font-family:var(--font-display); letter-spacing:.06em; }
.post-card h2{ font-size:var(--t-h3); line-height:1.25; font-weight:400; }
.post-card h2 a{ text-decoration:none; }
.post-card h2 a::after{ content:""; position:absolute; inset:0; } /* whole card clickable */
.post-card p{ margin:0; color:var(--muted); font-size:.95rem; }
.post-card-more{ margin-top:auto; padding-top:.4rem; font-family:var(--font-display); font-size:.9rem; color:var(--muted); }
.post-card:hover .post-card-more{ color:var(--cyan); }
.post-card::before{
  content:""; position:absolute; inset:0 0 auto 0; height:2px; background:var(--grad);
  transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease); z-index:1;
}
.post-card:hover::before{ transform:scaleX(1); }

.empty{ color:var(--muted); max-width:60ch; }

/* pagination */
.pagination{ margin-top:clamp(2.5rem,5vw,3.5rem); }
.pagination .nav-links{ display:flex; flex-wrap:wrap; gap:.5rem; }
.pagination .page-numbers{
  min-width:2.6rem; height:2.6rem; padding:0 .9rem;
  display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--line); border-radius:999px;
  font-family:var(--font-display); font-size:.92rem; color:var(--muted); text-decoration:none;
}
.pagination .page-numbers:hover{ color:var(--paper); border-color:var(--muted-2); }
.pagination .page-numbers.current{ background:var(--paper); color:var(--ink); border-color:var(--paper); }
.pagination .screen-reader-text{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

/* single post */
.post-feature{ margin:0 0 clamp(2rem,4vw,3rem); }
.post-feature img{ width:100%; border-radius:var(--radius); }
.post-back{ margin-top:clamp(2.5rem,5vw,3.5rem); padding-top:1.5rem; border-top:1px solid var(--line-soft); }
.post-back a{ font-family:var(--font-display); color:var(--muted); text-decoration:none; }
.post-back a:hover{ color:var(--paper); }

/* accessibility helper WordPress core expects */
.screen-reader-text{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* ---------- mobile menu (only rendered once a Header menu is assigned) ---------- */
.menu-toggle{
  display:inline-flex; align-items:center; justify-content:center;
  width:44px; height:44px; margin-right:-10px;
  background:none; border:0; color:var(--paper); cursor:pointer; border-radius:10px;
}
.menu-toggle-bars,
.menu-toggle-bars::before,
.menu-toggle-bars::after{
  display:block; width:20px; height:1.5px; background:currentColor; border-radius:2px;
  transition:transform .3s var(--ease), opacity .2s var(--ease);
}
.menu-toggle-bars{ position:relative; }
.menu-toggle-bars::before,
.menu-toggle-bars::after{ content:""; position:absolute; left:0; }
.menu-toggle-bars::before{ top:-6px; }
.menu-toggle-bars::after{ top:6px; }
.menu-toggle[aria-expanded="true"] .menu-toggle-bars{ background:transparent; }
.menu-toggle[aria-expanded="true"] .menu-toggle-bars::before{ transform:translateY(6px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-toggle-bars::after{ transform:translateY(-6px) rotate(-45deg); }

.mobile-nav{
  position:absolute; left:0; right:0; top:100%;
  border-top:1px solid var(--line-soft);
  background:var(--ink);
  max-height:calc(100vh - 64px); overflow-y:auto;
}
.mobile-nav::after{ content:""; display:block; height:2px; background:var(--grad); }
.mobile-nav .wrap{ display:flex; flex-direction:column; padding-block:1rem 1.6rem; }
.mobile-nav a:not(.btn){
  font-family:var(--font-display); font-size:1.35rem; font-weight:300;
  color:var(--muted); text-decoration:none;
  padding:.85rem 0; border-bottom:1px solid var(--line-soft);
}
.mobile-nav a:not(.btn):hover,
.mobile-nav a[aria-current="page"]{ color:var(--paper); }
.mobile-nav .btn{ margin-top:1.4rem; align-self:flex-start; }
@media (min-width:900px){
  .menu-toggle, .mobile-nav{ display:none !important; }
}

/* WordPress's default table borders → brand hairlines */
.entry-content .wp-block-table table,
.entry-content .wp-block-table thead,
.entry-content .wp-block-table tfoot{ border:0; }
.entry-content .wp-block-table th,
.entry-content .wp-block-table td{ border:0; border-bottom:1px solid var(--line-soft); padding:.8rem 1rem .8rem 0; }
.entry-content .wp-block-table th{ border-bottom-color:var(--line); }

/* Studio section without the credentials panel: text spans the full column */
.founder--solo{ grid-template-columns:1fr !important; }
.founder--solo .founder-body{ max-width:72ch; }

/* Services: breathing room between the intro and the first group,
   and a larger group heading (Grow / Create) so the split reads clearly. */
.section-head + .svc-group{ margin-top:clamp(2.75rem, 5.5vw, 4rem); }
.svc-group-head{ padding-bottom:1.25rem; }
.svc-group-head h3{ font-size:clamp(1.45rem, 1.2rem + 1.1vw, 2rem); font-weight:400; }
.svc-group-head p{ font-size:1rem; }

/* Services group heads: name and description on one centred line,
   with the rule beneath them carrying the brand spectrum. */
.svc-group-head{
  align-items:center;
  border-bottom:0;
  padding-bottom:0;
  margin-bottom:0;
  position:relative;
}
.svc-group-head::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:calc(-1 * var(--head-rule-gap, 1.25rem));
  height:2px;
  background:var(--grad);
  border-radius:2px;
}
.svc-group-head{ margin-bottom:calc(var(--head-rule-gap, 1.25rem) + .5rem); }
.svc-group-head p{ color:var(--muted); }
@media (max-width:560px){
  .svc-group-head{ flex-wrap:wrap; gap:.15rem .9rem; }
  .svc-group-head p{ flex-basis:100%; }
}
