/* ==========================================================================
   TULPAR — design system
   Editorial · human · warm industrial
   Palette: deep charcoal-green ink + warm paper + sage accent
   ========================================================================== */

:root{
  --ink-0:#081113;
  --ink:#0d1a1d;
  --ink-2:#122326;
  --ink-3:#1a3236;
  --paper:#f6f4ee;
  --paper-2:#efebe3;
  --paper-3:#e7e2d7;
  --sage:#a9c7a2;
  --sage-2:#8fb38a;
  --sage-deep:#52704d;
  --sage-ink:#3c5538;
  --muted:#5f6a66;
  --muted-ink:#a3b0ab;
  --line:#e0dbd0;
  --line-ink:#263a3d;
  --ok:#7d9b76;
  --font-serif:"Source Serif 4", Georgia, "Times New Roman", serif;
  --font-sans:"Public Sans", -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --maxw:1160px;
  --gutter:clamp(20px,5vw,52px);
  --radius:12px;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  font-family:var(--font-sans);
  font-size:16px;line-height:1.7;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;}
ul,ol{list-style:none;}
::selection{background:var(--sage);color:var(--ink);}

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

/* ---------- Type helpers ---------- */
.kicker{
  display:inline-flex;align-items:center;gap:12px;
  font-size:.72rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;
  color:var(--sage-deep);
}
.kicker::before{content:"";width:30px;height:1px;background:currentColor;flex:none;}
h1,h2,h3,h4{font-family:var(--font-serif);font-weight:500;line-height:1.12;letter-spacing:-.01em;color:var(--ink);}
.section-title{font-size:clamp(1.9rem,4vw,2.9rem);}
.lede{color:var(--muted);font-size:1.06rem;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--font-sans);font-weight:600;font-size:.92rem;
  padding:14px 28px;border-radius:999px;border:1px solid transparent;
  cursor:pointer;transition:all .2s ease;white-space:nowrap;
}
.btn-primary{background:var(--sage);color:var(--ink);}
.btn-primary:hover{background:var(--sage-2);transform:translateY(-1px);}
.btn-dark{background:var(--ink);color:var(--paper);}
.btn-dark:hover{background:var(--ink-2);}
.btn-ghost{background:transparent;color:currentColor;border-color:var(--line-ink);}
.btn-ghost:hover{border-color:var(--sage);color:var(--sage);}
.btn-light{background:var(--paper);color:var(--ink);}
.btn-light:hover{background:#fff;}
.link-line{
  display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.9rem;
  color:var(--sage-deep);border-bottom:1px solid transparent;transition:border-color .2s;
}
.link-line:hover{border-color:var(--sage-deep);}
.link-line .arr{transition:transform .2s;}
.link-line:hover .arr{transform:translateX(3px);}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(13,26,29,.94);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line-ink);
}
.header-inner{
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  min-height:72px;gap:24px;
}
.brand{display:flex;align-items:center;gap:12px;justify-self:start;}
.brand img{width:44px;height:44px;flex:none;}
.brand .word{font-family:var(--font-serif);font-weight:600;font-size:1.28rem;letter-spacing:.16em;color:var(--paper);line-height:1;}
.brand .word span{color:inherit;}
.brand .brand-sub{display:none;}

.nav-main{justify-self:center;}
.nav-main ul{display:flex;align-items:center;gap:6px;}
.nav-main li{position:relative;}
.nav-main a.nav-link,.nav-main button.nav-link{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.9rem;font-weight:500;color:var(--muted-ink);
  padding:10px 16px;border-radius:8px;background:none;border:none;cursor:pointer;
  transition:color .2s, background .2s;
}
.nav-main a.nav-link:hover,.nav-main button.nav-link:hover{color:var(--paper);}
.nav-main a.nav-link.active{color:var(--paper);}
.nav-main a.nav-link.active::after,.nav-main button.nav-link[aria-expanded="true"]::after{
  content:"";display:block;position:absolute;left:16px;right:16px;bottom:4px;height:2px;
  background:var(--sage);border-radius:2px;
}
.caret{font-size:.6em;opacity:.7;}

.dropdown{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%) translateY(6px);
  background:var(--ink-2);border:1px solid var(--line-ink);border-radius:var(--radius);
  min-width:230px;padding:8px;opacity:0;visibility:hidden;transition:opacity .18s, transform .18s, visibility .18s;
  box-shadow:0 18px 44px rgba(0,0,0,.35);
}
.dropdown::before{content:"";position:absolute;top:-10px;left:0;right:0;height:10px;}
li.has-drop:hover .dropdown,li.has-drop:focus-within .dropdown,
li.has-drop.open .dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.dropdown a{
  display:flex;flex-direction:column;gap:2px;padding:11px 14px;border-radius:8px;
  transition:background .15s;
}
.dropdown a:hover{background:var(--ink-3);}
.dropdown strong{font-family:var(--font-serif);font-weight:500;font-size:1rem;color:var(--paper);}
.dropdown small{font-size:.76rem;color:var(--muted-ink);line-height:1.35;}

.header-actions{display:flex;align-items:center;gap:12px;justify-self:end;}
.lang-link{
  display:inline-flex;align-items:center;gap:7px;font-size:.82rem;font-weight:600;letter-spacing:.04em;
  color:var(--muted-ink);padding:9px 14px;border:1px solid var(--line-ink);border-radius:999px;
  transition:all .2s;
}
.lang-link:hover{color:var(--paper);border-color:var(--sage);}
.header-cta{display:inline-flex;background:var(--sage);color:var(--ink);font-weight:600;font-size:.84rem;
  padding:10px 20px;border-radius:999px;transition:background .2s;}
.header-cta:hover{background:var(--sage-2);}
.menu-toggle{display:none;background:none;border:1px solid var(--line-ink);border-radius:10px;color:var(--paper);
  padding:10px 13px;cursor:pointer;font-size:1rem;}

/* ---------- Mobile nav ---------- */
.mobile-nav{
  display:none;position:fixed;inset:0 0 auto 0;top:72px;background:var(--ink-2);z-index:59;
  border-bottom:1px solid var(--line-ink);max-height:calc(100vh - 72px);overflow-y:auto;
  padding:10px var(--gutter) 24px;
}
.mobile-nav.open{display:block;}
.mobile-nav a.m-link{display:flex;justify-content:space-between;align-items:center;color:var(--paper);
  font-size:1.02rem;padding:15px 4px;border-top:1px solid var(--line-ink);}
.mobile-nav a.m-link:first-child{border-top:none;}
.mobile-nav .group-label{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--sage);
  padding:22px 4px 6px;font-weight:600;}
.mobile-nav .lang-row{display:flex;gap:10px;margin-top:22px;}

/* ---------- Hero ---------- */
.hero{position:relative;background:var(--ink);color:var(--paper);overflow:hidden;}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.04;
  background-image:linear-gradient(var(--line-ink) 1px,transparent 1px),
                   linear-gradient(90deg,var(--line-ink) 1px,transparent 1px);
  background-size:52px 52px;
  -webkit-mask-image:linear-gradient(180deg,#000,transparent 78%);
          mask-image:linear-gradient(180deg,#000,transparent 78%);
}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,5vw,64px);
  align-items:center;padding-top:clamp(64px,9vh,110px);padding-bottom:clamp(64px,9vh,110px);}
.hero .kicker{color:var(--sage);}
.hero h1{color:var(--paper);font-size:clamp(2.3rem,6vw,4.3rem);margin:22px 0 0;}
.hero h1 em{font-style:normal;color:var(--sage);}
.hero .lead{color:var(--muted-ink);max-width:56ch;margin-top:22px;font-size:clamp(1rem,1.5vw,1.15rem);}
.hero .actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px;}
.hero .hero-note{margin-top:26px;font-size:.8rem;color:var(--muted-ink);display:flex;gap:8px;align-items:center;}
.hero .hero-note .dot{width:6px;height:6px;border-radius:50%;background:var(--sage);flex:none;}
.hero-brand{justify-self:end;display:flex;flex-direction:column;align-items:center;gap:18px;}
.hero-brand figure{position:relative;width:clamp(220px,26vw,340px);}
.hero-brand figure::before{content:"";position:absolute;inset:8%;border-radius:50%;
  background:radial-gradient(circle,rgba(169,199,162,.16),transparent 70%);}
.hero-brand img{position:relative;width:100%;filter:drop-shadow(0 24px 50px rgba(0,0,0,.4));}
.hero-brand figcaption{font-family:var(--font-sans);font-size:.85rem;color:var(--muted-ink);text-align:center;line-height:1.55;margin-top:14px;}
.hero-brand figcaption .motto{display:block;font-family:var(--font-serif);font-style:italic;font-size:1.25rem;color:var(--sage);font-weight:500;margin-bottom:6px;letter-spacing:.01em;}
.hero-brand figcaption .motto-sub{display:block;font-size:.82rem;}

/* ---------- Section scaffolding ---------- */
section{scroll-margin-top:84px;}
.section{padding:clamp(64px,9vw,110px) 0;}
.section.tint{background:var(--paper-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.section.dark{background:var(--ink);color:var(--paper);}
.section.dark h2,.section.dark h3{color:var(--paper);}
.section.dark .kicker{color:var(--sage);}
.section.dark .lede{color:var(--muted-ink);}
.section-head{max-width:760px;margin-bottom:clamp(36px,5vw,56px);}
.section-head h2{margin-top:14px;font-size:clamp(1.8rem,3.6vw,2.7rem);}
.section-head p{margin-top:14px;color:var(--muted);}
.section.dark .section-head p{color:var(--muted-ink);}
.section-head.row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px;max-width:none;}
.section-head.row p{max-width:46ch;margin-top:0;}

/* ---------- Editorial rule list (pillar index) ---------- */
.rule-list{display:flex;flex-direction:column;}
.rule-item{
  display:grid;grid-template-columns:64px 1fr auto;gap:clamp(16px,3vw,32px);align-items:center;
  padding:clamp(26px,3.4vw,40px) 0;border-top:1px solid var(--line);text-decoration:none;
  transition:background .2s,padding .2s;
}
.rule-item:last-child{border-bottom:1px solid var(--line);}
.rule-item:hover{padding-left:14px;}
.rule-item .num{font-family:var(--font-serif);font-size:1.6rem;color:var(--sage-deep);}
.rule-item h3{font-size:clamp(1.3rem,2.4vw,1.75rem);transition:color .2s;}
.rule-item:hover h3{color:var(--sage-deep);}
.rule-item p{color:var(--muted);margin-top:4px;max-width:64ch;}
.rule-item .arr{font-size:1.3rem;color:var(--sage-deep);transition:transform .2s;}
.rule-item:hover .arr{transform:translate(3px,-3px);}

/* ---------- Capability cards ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.card{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:clamp(24px,3vw,32px);display:flex;flex-direction:column;gap:12px;
}
.card .card-tag{font-size:.7rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--sage-deep);}
.card h3{font-size:1.35rem;}
.card p{color:var(--muted);font-size:.95rem;}
.card .link-line{margin-top:auto;}

/* ---------- Numbered editorial list (why / values) ---------- */
.num-list{counter-reset:item;}
.num-list li{
  counter-increment:item;display:grid;grid-template-columns:56px 1fr;gap:20px;
  padding:24px 0;border-top:1px solid var(--line);
}
.num-list li:last-child{border-bottom:1px solid var(--line);}
.num-list li::before{content:"0" counter(item);font-family:var(--font-serif);font-size:1.15rem;color:var(--sage-deep);}
.num-list strong{display:block;font-family:var(--font-serif);font-weight:500;font-size:1.18rem;}
.num-list span{display:block;color:var(--muted);margin-top:4px;font-size:.96rem;}
.section.dark .num-list li{border-color:var(--line-ink);}
.section.dark .num-list strong{color:var(--paper);}
.section.dark .num-list span{color:var(--muted-ink);}

/* ---------- FAQ ---------- */
.faq{display:flex;flex-direction:column;border-top:1px solid var(--line);}
.faq details{border-bottom:1px solid var(--line);}
.faq summary{
  list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:20px 4px;font-family:var(--font-serif);font-size:1.08rem;color:var(--ink);
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";font-family:var(--font-sans);font-size:1.4rem;color:var(--sage-deep);transition:transform .2s;flex:none;}
.faq details[open] summary::after{transform:rotate(45deg);}
.faq details p{padding:0 4px 20px;color:var(--muted);max-width:70ch;}

/* ---------- Breadcrumb ---------- */
.breadcrumb{padding:16px 0 0;font-size:.82rem;color:var(--muted);}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.breadcrumb li{display:flex;gap:8px;align-items:center;}
.breadcrumb li+li::before{content:"/";color:var(--muted);opacity:.6;}
.breadcrumb a{color:var(--sage-deep);}
.breadcrumb a:hover{text-decoration:underline;}

/* ---------- Page hero (sub-pages) ---------- */
.page-hero{background:var(--ink);color:var(--paper);padding:clamp(48px,7vw,84px) 0;}
.page-hero .kicker{color:var(--sage);}
.page-hero h1{color:var(--paper);font-size:clamp(2rem,4.6vw,3.3rem);margin-top:16px;max-width:22ch;}
.page-hero .lead{color:var(--muted-ink);margin-top:16px;max-width:60ch;}
.page-hero .meta{margin-top:22px;display:flex;flex-wrap:wrap;gap:8px;}

/* ---------- Prose ---------- */
.prose{max-width:70ch;}
.prose p{color:var(--muted);margin-top:16px;font-size:1.02rem;}
.prose p:first-child{margin-top:0;}
.prose h2{font-size:1.6rem;margin-top:40px;}
.prose ul{margin-top:16px;display:grid;gap:12px;}
.prose ul li{position:relative;padding-left:24px;color:var(--muted);}
.prose ul li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:2px;background:var(--sage-2);}

/* ---------- Split / feature blocks ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px);align-items:center;}
.split.rev > :first-child{order:2;}
.split h2{font-size:clamp(1.6rem,3.2vw,2.3rem);}
.split .lede{margin-top:16px;}
.split figure{position:relative;overflow:hidden;border-radius:var(--radius);background:var(--ink-2);}
.split figure::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(13,26,29,0) 58%,rgba(13,26,29,.20));}
.split figure img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--line);filter:saturate(1.05) contrast(1.03);transition:transform .45s ease,filter .45s ease;}
.split figure:hover img{transform:scale(1.025);filter:saturate(1.12) contrast(1.03);}

/* ---------- About brand mark ---------- */
.about-mark{position:relative;min-height:470px;border-radius:var(--radius);overflow:hidden;background:radial-gradient(120% 92% at 50% 34%,#17322f 0%,var(--ink) 64%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;padding:54px 32px;text-align:center;}
.about-mark-ring{position:absolute;top:58px;left:50%;transform:translateX(-50%);width:min(56%,236px);aspect-ratio:1;border-radius:50%;border:1px solid rgba(169,199,162,.22);box-shadow:0 0 0 28px rgba(169,199,162,.03);}
.about-mark img{position:relative;width:min(46%,164px);filter:drop-shadow(0 16px 28px rgba(0,0,0,.5));}
.about-mark figcaption{position:relative;display:flex;flex-direction:column;gap:7px;}
.about-mark-word{font-family:var(--font-serif);font-weight:600;font-size:1.32rem;letter-spacing:.36em;text-indent:.36em;color:var(--paper);}
.about-mark-motto{font-family:var(--font-serif);font-size:1.18rem;font-weight:500;color:var(--sage);}
.about-mark-sub{font-size:.83rem;color:#b8c3be;max-width:30ch;margin:0 auto;line-height:1.6;}

/* ---------- Projects / references / partners ---------- */
.project-grid{align-items:stretch;}
.project-card{min-height:260px;}
.project-card .link-line{margin-top:auto;}
.reference-note{min-height:280px;padding:clamp(28px,4vw,48px);border:1px solid var(--line);background:var(--paper-2);display:flex;flex-direction:column;justify-content:center;gap:10px;}
.reference-note .reference-mark{font-family:var(--font-serif);font-size:3.4rem;color:var(--sage-deep);line-height:1;}
.reference-note strong{font-family:var(--font-serif);font-size:1.55rem;font-weight:500;}
.reference-note>span:last-child{color:var(--muted);}
.partner-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-ink);border:1px solid var(--line-ink);}
.partner-card{background:var(--ink-2);padding:30px 26px;min-height:220px;}
.partner-index{font-family:var(--font-serif);font-size:1.3rem;color:var(--sage);}
.partner-card h3{color:var(--paper);font-size:1.35rem;margin-top:24px;}
.partner-card p{color:var(--muted-ink);font-size:.94rem;margin-top:10px;}

/* ---------- Fact grid ---------- */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;}
.fact{background:var(--paper);padding:22px 20px;}
.fact .k{display:block;font-size:.68rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--sage-deep);margin-bottom:8px;}
.fact .v{font-family:var(--font-serif);font-size:1.15rem;color:var(--ink);}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,64px);}
.contact-list{display:grid;gap:22px;}
.contact-list .k{display:block;font-size:.7rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--sage);margin-bottom:6px;}
.contact-list .v{font-size:1.08rem;color:var(--paper);}
.contact-list a.v:hover{color:var(--sage);}
.section.dark .contact-list .v{color:var(--paper);}
form.contact-form{display:grid;gap:14px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
form.contact-form input,form.contact-form select,form.contact-form textarea{
  background:var(--ink-2);border:1px solid var(--line-ink);border-radius:10px;color:var(--paper);
  font-family:var(--font-sans);font-size:.95rem;padding:14px 16px;width:100%;resize:vertical;
  transition:border-color .2s;
}
form.contact-form select{appearance:none;-webkit-appearance:none;color:var(--paper);}
form.contact-form input:focus,form.contact-form select:focus,form.contact-form textarea:focus{
  outline:none;border-color:var(--sage);
}
form.contact-form input::placeholder,form.contact-form textarea::placeholder{color:var(--muted-ink);}
form.contact-form .note{font-size:.78rem;color:var(--muted-ink);}

/* ---------- CTA band ---------- */
.cta-band{background:var(--ink);border-top:1px solid var(--line-ink);}
.cta-band .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;padding-top:clamp(44px,6vw,64px);padding-bottom:clamp(44px,6vw,64px);}
.cta-band h2{color:var(--paper);font-size:clamp(1.5rem,3vw,2.2rem);max-width:22ch;}
.cta-band p{color:var(--muted-ink);margin-top:8px;}

/* ---------- Footer ---------- */
.site-footer{background:var(--ink-0);color:var(--paper);padding:clamp(48px,6vw,72px) 0 28px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:clamp(28px,4vw,48px);}
.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
.footer-brand img{width:38px;height:38px;}
.footer-brand span{font-family:var(--font-serif);font-weight:600;font-size:1.2rem;letter-spacing:.14em;}
.footer-grid p{color:var(--muted-ink);font-size:.9rem;max-width:34ch;}
.footer-grid p a{color:var(--sage);}
.footer-col h4{color:var(--paper);font-size:1rem;margin-bottom:14px;}
.footer-col a{display:block;color:var(--muted-ink);font-size:.9rem;padding:5px 0;transition:color .2s;}
.footer-col a:hover{color:var(--sage);}
.footer-bottom{margin-top:clamp(36px,5vw,52px);padding-top:22px;border-top:1px solid var(--line-ink);
  display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:.8rem;color:var(--muted-ink);}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;scroll-behavior:auto!important;}
}

/* ---------- Responsive ---------- */
@media (max-width:960px){
  .header-inner{grid-template-columns:auto 1fr auto;}
  .nav-main{display:none;}
  .menu-toggle{display:inline-flex;align-items:center;gap:8px;}
  .hero .wrap{grid-template-columns:1fr;}
  .hero-brand{justify-self:start;order:-1;}
  .hero-brand figure{width:120px;}
  .hero-brand figcaption{display:none;}
  .grid-3{grid-template-columns:1fr;}
  .split{grid-template-columns:1fr;}
  .split.rev > :first-child{order:0;}
  .contact-grid{grid-template-columns:1fr;}
  .partner-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
  .form-row{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;}
  .header-cta{padding:9px 14px;font-size:.8rem;}
  .brand .word{font-size:1.1rem;letter-spacing:.12em;}
  .header-actions{gap:8px;}
  .lang-link{padding:8px 11px;}
  .brand .brand-sub{display:none;}
}

/* =========================================================================
   v1.5 — polish layer (same palette, type and layout)
   ========================================================================= */

/* Headings: balanced line breaks, no orphaned single words */
h1,h2,h3{text-wrap:balance;}
p{text-wrap:pretty;}

/* Keyboard focus — visible on dark and light surfaces */
:focus{outline:none;}
:focus-visible{outline:2px solid var(--sage);outline-offset:3px;border-radius:6px;}
.section.tint :focus-visible,.paper-surface :focus-visible{outline-color:var(--sage-deep);}

/* Skip link */
.skip-link{
  position:absolute;left:16px;top:-120px;z-index:100;
  background:var(--sage);color:var(--ink);font-weight:600;font-size:.9rem;
  padding:10px 18px;border-radius:999px;transition:top .2s;
}
.skip-link:focus{top:12px;}

/* Scroll reveal — only when JS is running; content stays visible otherwise */
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease;}
.js .reveal.is-in{opacity:1;transform:none;}

/* Header: subtle depth once the page is scrolled */
.site-header{transition:box-shadow .25s ease;}
.site-header.is-scrolled{box-shadow:0 10px 30px rgba(0,0,0,.28);}

/* Cards: gentle lift on hover (fine pointers only) */
@media (hover:hover) and (pointer:fine){
  .card{transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;}
  .card:hover{transform:translateY(-3px);border-color:var(--sage-2);box-shadow:0 14px 34px rgba(13,26,29,.08);}
  .js .card.reveal.is-in:hover{transform:translateY(-3px);}
  .section.dark .card:hover{box-shadow:0 14px 34px rgba(0,0,0,.35);}
}

/* Contact select: keep a visible chevron (native arrow is removed by appearance:none) */
form.contact-form select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23a9c7a2' stroke-width='1.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;padding-right:44px;cursor:pointer;
}
form.contact-form select option{background:var(--ink-2);color:var(--paper);}

/* Buttons: keep the press feel consistent */
.btn:active{transform:translateY(0) scale(.99);}


/* Print: drop chrome, keep content */
@media print{
  .site-header,.mobile-nav,.site-footer,.cta-band,.skip-link{display:none!important;}
  body{background:#fff;color:#000;}
  .js .reveal{opacity:1;transform:none;}
}

@media (prefers-reduced-motion:reduce){
  .js .reveal{opacity:1;transform:none;}
}

/* Consent checkbox on contact form */
form.contact-form .consent{display:flex;gap:12px;align-items:flex-start;font-size:.86rem;color:var(--muted-ink);line-height:1.5;cursor:pointer;}
form.contact-form .consent input{width:18px;height:18px;margin-top:3px;flex:none;accent-color:var(--sage);}
form.contact-form .consent a{color:var(--sage);text-decoration:underline;text-underline-offset:3px;}

/* Narrow phones: keep the header on one line; language switch stays in the mobile menu */
.header-cta,.menu-toggle,.lang-link{white-space:nowrap;}
@media (max-width:400px){
  .header-actions > .lang-link{display:none;}
  .header-cta{padding:9px 12px;}
}
@media (max-width:400px){
  .header-inner{gap:10px;}
  .brand{gap:8px;}
  .brand img{width:36px;height:36px;}
  .brand .word{font-size:1.05rem;letter-spacing:.1em;}
  .menu-toggle{padding:9px 11px;}
}

/* =========================================================================
   v1.7 — business-line, project and partner pages
   ========================================================================= */
.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px;}
.chip{font-size:.78rem;font-weight:500;color:var(--muted-ink);border:1px solid var(--line-ink);border-radius:999px;padding:6px 13px;}
.pill-title{margin-top:22px;font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--sage-deep);}
.prose .lede{color:var(--muted);margin-top:16px;font-size:1.02rem;}
.prose .link-line{margin-top:22px;}
.prose ul li strong{color:var(--ink);font-weight:600;}

/* Step cards (process) */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(18px,2.4vw,28px);}
.step{border-top:2px solid var(--sage-2);padding-top:20px;}
.step .n{font-family:var(--font-serif);font-size:1.05rem;color:var(--sage-deep);}
.step h3{font-size:1.2rem;margin-top:10px;}
.step p{color:var(--muted);font-size:.94rem;margin-top:8px;}
.section.dark .step h3{color:var(--paper);}
.section.dark .step p{color:var(--muted-ink);}
.section.dark .step .n{color:var(--sage);}

/* Mini bullet lists inside cards */
.mini-list{margin-top:6px;display:grid;gap:10px;}
.mini-list li{position:relative;padding-left:18px;color:var(--muted);font-size:.95rem;}
.mini-list li::before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;border-radius:2px;background:var(--sage-2);}

/* Two-column grid */
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}

/* Partner profile cards */
.partner-profile .wordmark{display:block;font-family:var(--font-serif);font-weight:600;font-size:1.25rem;letter-spacing:.2em;color:var(--ink);padding:14px 0 6px;border-top:1px solid var(--line);margin-top:4px;}
.partner-profile h3{font-size:1.4rem;margin-top:6px;}

/* Header: keep six items on mid-size laptops */
@media (min-width:961px) and (max-width:1200px){
  .nav-main ul{gap:0;}
  .nav-main a.nav-link,.nav-main button.nav-link{padding:10px 10px;font-size:.86rem;}
  .header-cta{padding:9px 14px;font-size:.8rem;}
}

@media (max-width:960px){
  .steps{grid-template-columns:repeat(2,1fr);}
  .grid-2{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .steps{grid-template-columns:1fr;}
}

/* v1.8 — case study, breadcrumb in hero, heading emphasis, section rhythm */
h1 em,h2 em,h3 em{font-style:normal;}
.page-hero h1 em{color:var(--sage);}
.page-hero .breadcrumb{padding:0 0 26px;color:var(--muted-ink);}
.page-hero .breadcrumb a{color:var(--sage);}
.page-hero .breadcrumb li[aria-current]{color:var(--paper);}
.page-hero .breadcrumb li+li::before{color:var(--muted-ink);}
.section:not(.tint):not(.dark)+.section:not(.tint):not(.dark){padding-top:clamp(24px,4vw,48px);}

.case{margin-top:clamp(28px,4vw,44px);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--paper);display:grid;grid-template-columns:1fr 1.6fr;}
.case-head{background:var(--ink);color:var(--paper);padding:clamp(26px,3.4vw,40px);display:flex;flex-direction:column;gap:14px;}
.case-tag{font-size:.7rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);}
.case-head h3{color:var(--paper);font-size:clamp(1.3rem,2.2vw,1.6rem);}
.case-note{font-size:.82rem;color:var(--muted-ink);line-height:1.55;margin-top:auto;border-top:1px solid var(--line-ink);padding-top:14px;}
.case-body{display:grid;gap:0;}
.case-body>div{padding:clamp(20px,2.6vw,28px) clamp(22px,3vw,34px);border-top:1px solid var(--line);}
.case-body>div:first-child{border-top:none;}
.case-k{display:block;font-size:.68rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--sage-deep);margin-bottom:8px;}
.case-body p{color:var(--muted);font-size:.98rem;}
@media (max-width:760px){.case{grid-template-columns:1fr;}}


/* ---------- Contact page: two-column hero + brand panel ---------- */
.page-hero.hero-2col > .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(26px,4vw,54px);align-items:center;}
.page-hero .hero-sub{margin-top:12px;color:var(--muted-ink);font-size:.93rem;max-width:52ch;}
.page-hero .hero-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:26px;}
.contact-panel{position:relative;border:1px solid var(--line-ink);border-radius:var(--radius);background:radial-gradient(115% 85% at 50% 0%,#17322f 0%,var(--ink) 64%);padding:clamp(24px,3vw,34px);}
.contact-panel-mark{display:flex;align-items:center;gap:13px;}
.contact-panel-mark img{width:44px;height:44px;}
.contact-panel-mark span{font-family:var(--font-serif);font-weight:600;font-size:1.04rem;letter-spacing:.3em;text-indent:.3em;color:var(--paper);}
.contact-panel h2{color:var(--paper);font-size:clamp(1.15rem,2vw,1.4rem);margin-top:18px;}
.contact-panel ol{margin-top:16px;display:grid;gap:14px;}
.contact-panel li{display:grid;grid-template-columns:25px 1fr;gap:12px;align-items:start;color:var(--muted-ink);font-size:.92rem;line-height:1.6;}
.contact-panel li b{font-family:var(--font-serif);font-weight:500;color:var(--sage);}
@media (max-width:860px){.page-hero.hero-2col > .wrap{grid-template-columns:1fr;}}

/* v1.30 - contact form: honeypot (hidden from people and assistive tech) and status messages */
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.form-status{min-height:1.4em;margin:6px 0 2px;font-size:.95rem}
.form-status.is-ok{color:var(--sage)}
.form-status.is-error{color:#9b2c2c}
