/* ============================================================================
   Poker SEO Experts — Service site (vermilion accent)
   Clean, professional services layout. Service cards lead. Clear hierarchy.
   ============================================================================ */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body, h1, h2, h3, h4, h5, h6, p, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
img, svg { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration: none; }
button { background: none; border: 0; font: inherit; color: inherit; cursor: pointer; }
input, textarea, select { font: inherit; color: inherit; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 6px; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* ============================================================================ DESIGN TOKENS ============================================================================ */
:root {
    --bg:#FFFFFF; --bg-2:#FBF7F4; --bg-3:#F5EEEA; --surface:#FFFFFF;
    --ink:#1A1614; --ink-dim:#5C544F; --ink-mute:#948A84;
    --on-dark:#F6F1EE; --on-dark-dim:#B8ADA7;
    --accent:#E63417; --accent-dark:#C2280F; --accent-soft:#FF6A4D; --accent-faint:#FDEEEA; --accent-line:rgba(230,52,23,.18);
    --success:#1F7A4D; --dark:#1A1614;
    --border:#ECE4DF; --border-2:#E0D6D0;
    --font-display:'Plus Jakarta Sans',system-ui,-apple-system,sans-serif;
    --font-sans:'Inter',system-ui,-apple-system,sans-serif;
    --container:1200px; --gutter:clamp(20px,5vw,48px); --header-h:74px; --section-y:clamp(64px,9vw,110px);
    --radius-sm:10px; --radius:16px; --radius-lg:24px;
    --shadow-sm:0 1px 3px rgba(26,22,20,.06),0 1px 2px rgba(26,22,20,.04);
    --shadow-md:0 8px 28px rgba(26,22,20,.08);
    --shadow-lg:0 20px 50px rgba(26,22,20,.12);
    --shadow-accent:0 14px 34px rgba(230,52,23,.22);
}

/* ============================================================================ BASE ============================================================================ */
body { background:var(--bg); color:var(--ink); font-family:var(--font-sans); font-size:17px; line-height:1.65; font-weight:400; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; overflow-x:hidden; padding-top:var(--header-h); }
h1,h2,h3,h4,.h2 { font-family:var(--font-display); color:var(--ink); font-weight:700; line-height:1.12; letter-spacing:-0.02em; }
p { color:var(--ink-dim); }
strong { color:var(--ink); font-weight:600; }
.hero__title em,.intro__title em,.partner__title em,.contact__title em,.challenges__title em,.process__title em,.cases__title em,.h-mark { font-style:normal; color:var(--accent); }
.container { width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }

.eyebrow { display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--accent); background:var(--accent-faint); padding:7px 14px; border-radius:100px; }
.eyebrow__dot { width:7px; height:7px; background:var(--accent); border-radius:50%; flex:none; }
.eyebrow--inline { background:none; padding:0; color:var(--accent); }

.section-head { margin-bottom:clamp(36px,5vw,56px); }
.section-head .h2 { margin-top:16px; font-size:clamp(28px,4vw,44px); }
.section-head--center { text-align:center; max-width:720px; margin-inline:auto; }
.section-head--center .eyebrow { margin-inline:auto; }
.section-head p { font-size:18px; color:var(--ink-dim); margin-top:14px; }
.section-head--center p { margin-inline:auto; max-width:60ch; }

/* ============================================================================ BUTTONS ============================================================================ */
.btn { display:inline-flex; align-items:center; gap:9px; font-family:var(--font-sans); font-weight:600; font-size:16px; line-height:1; padding:15px 26px; border-radius:100px; transition:background .2s,color .2s,border-color .2s,transform .2s,box-shadow .2s; border:2px solid transparent; cursor:pointer; white-space:nowrap; }
.btn svg { width:16px; height:16px; transition:transform .25s ease; }
.btn:hover svg { transform:translateX(4px); }
.btn--primary { background:var(--accent); color:#fff; border-color:var(--accent); box-shadow:var(--shadow-accent); }
.btn--primary:hover { background:var(--accent-dark); border-color:var(--accent-dark); transform:translateY(-2px); }
.btn--ghost { background:#fff; color:var(--ink); border-color:var(--border-2); }
.btn--ghost:hover { border-color:var(--ink); transform:translateY(-2px); }
.btn--lg { padding:18px 32px; font-size:17px; }
.btn--sm { padding:11px 20px; font-size:14px; }
.is-dark .btn--ghost { background:transparent; color:var(--on-dark); border-color:rgba(255,255,255,.28); }
.is-dark .btn--ghost:hover { border-color:#fff; }

/* ============================================================================ HEADER ============================================================================ */
.site-header { position:fixed; inset:0 0 auto 0; height:var(--header-h); z-index:100; background:rgba(255,255,255,.86); backdrop-filter:saturate(1.1) blur(12px); border-bottom:1px solid var(--border); transition:box-shadow .3s ease,background .3s ease; }
.site-header.is-scrolled { box-shadow:var(--shadow-sm); background:rgba(255,255,255,.95); }
.site-header__row { display:flex; align-items:center; height:100%; gap:28px; }
.site-header__logo { font-family:var(--font-display); font-weight:800; font-size:20px; letter-spacing:-0.03em; color:var(--ink); }
.site-header__logo img { max-height:36px; width:auto; }
.site-header__nav { display:flex; align-items:center; gap:26px; margin-left:auto; }
.site-header__nav a { font-size:15px; font-weight:500; color:var(--ink-dim); transition:color .2s; }
.site-header__nav a:hover { color:var(--accent); }
.site-header__actions { display:flex; align-items:center; gap:14px; }
.site-header__lang-switcher { display:flex; gap:6px; }
.mob-menu-btn { display:none; flex-direction:column; gap:5px; padding:8px; }
.mob-menu-btn span { width:24px; height:2px; background:var(--ink); transition:.25s; border-radius:2px; }
.mob-menu-btn[aria-expanded="true"] span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.mob-menu-btn[aria-expanded="true"] span:nth-child(2) { opacity:0; }
.mob-menu-btn[aria-expanded="true"] span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
.mob-menu { position:fixed; inset:var(--header-h) 0 auto 0; background:#fff; border-bottom:1px solid var(--border); padding:22px var(--gutter) 30px; display:flex; flex-direction:column; gap:4px; transform:translateY(-12px); opacity:0; pointer-events:none; transition:.25s ease; z-index:99; }
.mob-menu.is-open { transform:translateY(0); opacity:1; pointer-events:auto; }
.mob-menu a { padding:12px 0; font-size:17px; font-weight:500; border-bottom:1px solid var(--border); color:var(--ink); }
.mob-menu .btn { margin-top:14px; justify-content:center; }
body.no-scroll { overflow:hidden; }

/* ============================================================================ HERO ============================================================================ */
.hero { position:relative; background:radial-gradient(1200px 500px at 80% -10%,var(--accent-faint),transparent 60%),var(--bg); padding-top:clamp(40px,6vw,72px); padding-bottom:var(--section-y); overflow:hidden; }
.hero__inner { position:relative; max-width:880px; }
.hero .eyebrow { margin-bottom:22px; }
.hero__title { font-size:clamp(38px,6vw,66px); line-height:1.06; letter-spacing:-0.03em; margin-bottom:22px; max-width:18ch; }
.hero__text { font-size:clamp(17px,2vw,20px); line-height:1.6; color:var(--ink-dim); max-width:58ch; margin-bottom:32px; }
.hero__actions { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:clamp(40px,5vw,56px); }
.hero__trust { display:flex; flex-wrap:wrap; align-items:center; gap:clamp(24px,4vw,52px); padding-top:clamp(28px,4vw,40px); border-top:1px solid var(--border); }
.hero__trust-divider { display:none; }
.hero__trust-item { display:flex; flex-direction:column; gap:2px; }
.hero__trust-num { font-family:var(--font-display); font-weight:800; font-size:clamp(28px,4vw,40px); line-height:1; color:var(--ink); letter-spacing:-0.02em; }
.hero__trust-num::first-letter { color:var(--accent); }
.hero__trust-label { font-size:14px; font-weight:500; color:var(--ink-mute); }
.hero__marquee { overflow:hidden; margin-top:clamp(36px,5vw,52px); padding:18px 0; border-top:1px solid var(--border); border-bottom:1px solid var(--border); -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent); }
.hero__marquee-track { display:inline-flex; align-items:center; gap:14px; white-space:nowrap; animation:marquee 36s linear infinite; will-change:transform; }
.hero__marquee span { font-size:15px; font-weight:600; color:var(--ink-mute); }
.hero__marquee span:nth-child(even) { color:var(--accent); }
@keyframes marquee { to { transform:translateX(-50%); } }

.reveal { opacity:0; transform:translateY(20px); transition:opacity .6s ease,transform .6s ease; }
.reveal.is-visible { opacity:1; transform:none; }

/* ============================================================================ INTRO / CONSULTING ============================================================================ */
.intro { background:var(--bg-2); padding-block:var(--section-y); }
.intro__row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr); gap:clamp(28px,5vw,64px); align-items:center; }
.intro__label .eyebrow--inline { color:var(--accent); font-weight:700; text-transform:uppercase; letter-spacing:.04em; font-size:13px; }
.intro__title { font-size:clamp(26px,3.6vw,40px); line-height:1.14; margin:14px 0 0; }
.intro__text p { font-size:17px; margin-bottom:14px; }
.intro__text p:last-child { margin-bottom:0; }

/* ============================================================================ CHALLENGES → benefit/feature cards ============================================================================ */
.challenges { padding-block:var(--section-y); }
.challenges__title { font-size:clamp(28px,4vw,44px); }
.challenges__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.challenge-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:clamp(26px,2.6vw,34px); transition:transform .25s,box-shadow .25s,border-color .25s; position:relative; }
.challenge-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:transparent; }
.challenge-card__icon { width:54px; height:54px; border-radius:14px; background:var(--accent-faint); color:var(--accent); display:grid; place-items:center; margin-bottom:20px; }
.challenge-card__icon img { width:28px; height:28px; }
.challenge-card__icon svg { width:28px; height:28px; }
.challenge-card__title { font-size:21px; font-weight:700; margin-bottom:10px; line-height:1.2; }
.challenge-card p { font-size:15.5px; margin-bottom:10px; }
.challenge-card p:last-child { margin-bottom:0; }
.challenges__quote { grid-column:1/-1; background:var(--dark); color:var(--on-dark); border-radius:var(--radius-lg); padding:clamp(30px,4vw,48px); display:flex; flex-direction:column; gap:16px; }
.challenges__quote-mark { width:38px; height:28px; color:var(--accent); }
.challenges__quote-text { font-family:var(--font-display); font-size:clamp(20px,2.6vw,28px); font-weight:600; line-height:1.3; color:#fff; max-width:40ch; }
.challenges__quote-author { display:flex; align-items:center; gap:13px; }
.challenges__quote-author img { width:46px; height:46px; border-radius:50%; object-fit:cover; }
.challenges__quote-name { display:block; font-weight:700; color:#fff; }
.challenges__quote-role { display:block; font-size:13px; color:var(--on-dark-dim); }
.challenges__bottom { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:18px; margin-top:clamp(32px,4vw,48px); padding:clamp(24px,3vw,36px); background:var(--accent-faint); border-radius:var(--radius); }
.challenges__bottom p { font-family:var(--font-display); font-weight:700; font-size:clamp(18px,2.2vw,24px); color:var(--ink); max-width:34ch; }

/* ============================================================================ SERVICES GRID (core of a services site) ============================================================================ */
.services { padding-block:var(--section-y); background:var(--bg-2); }
.services__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.service-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:clamp(26px,2.6vw,34px); display:flex; flex-direction:column; gap:14px; transition:transform .25s,box-shadow .25s,border-color .25s; }
.service-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:transparent; }
.service-card__icon { width:54px; height:54px; border-radius:14px; background:var(--accent-faint); color:var(--accent); display:grid; place-items:center; }
.service-card__icon svg { width:28px; height:28px; }
.service-card__title { font-size:21px; font-weight:700; line-height:1.2; }
.service-card p { font-size:15.5px; flex:1; }
.service-card__link { display:inline-flex; align-items:center; gap:7px; font-weight:600; font-size:15px; color:var(--accent); }
.service-card__link svg { width:15px; height:15px; transition:transform .2s; }
.service-card:hover .service-card__link svg { transform:translateX(4px); }

/* ============================================================================ PROCESS (numbered steps grid + accordion) ============================================================================ */
.process { padding-block:var(--section-y); }
.process__title { font-size:clamp(28px,4vw,44px); }
.process__text { color:var(--ink-dim); font-size:18px; margin-top:14px; }
.process__row { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:clamp(32px,5vw,64px); align-items:start; }
.process__list { display:flex; flex-direction:column; gap:12px; }
.process__item { border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); transition:border-color .2s,box-shadow .2s; overflow:hidden; }
.process__item[open] { border-color:var(--accent-line); box-shadow:var(--shadow-sm); }
.process__item summary { display:flex; align-items:center; gap:18px; padding:18px 22px; cursor:pointer; list-style:none; }
.process__item summary::-webkit-details-marker { display:none; }
.process__num { font-family:var(--font-display); font-weight:800; font-size:15px; color:var(--accent); background:var(--accent-faint); width:38px; height:38px; border-radius:50%; display:grid; place-items:center; flex:none; }
.process__label { font-family:var(--font-display); font-weight:700; font-size:clamp(16px,2vw,19px); color:var(--ink); flex:1; line-height:1.25; }
.process__chevron { flex:none; width:11px; height:11px; border-right:2px solid var(--ink-mute); border-bottom:2px solid var(--ink-mute); transform:rotate(45deg); transition:transform .25s; }
.process__item[open] .process__chevron { transform:rotate(-135deg); }
.process__item p { padding:0 22px 22px 78px; font-size:15.5px; }
.process__visual { position:sticky; top:calc(var(--header-h) + 24px); }
.process__visual img { width:100%; border-radius:var(--radius-lg); }
.process__visual-glow { display:none; }

/* ============================================================================ CASES (result cards + big metric) ============================================================================ */
.cases { padding-block:var(--section-y); background:var(--dark); color:var(--on-dark); }
.cases .eyebrow { background:rgba(255,255,255,.08); color:var(--accent-soft); }
.cases__title { font-size:clamp(28px,4vw,44px); color:#fff; }
.cases .section-head p { color:var(--on-dark-dim); }
.cases__grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.case-card { background:#221C19; border:1px solid #332A25; border-radius:var(--radius-lg); padding:clamp(26px,3vw,38px); display:flex; flex-direction:column; gap:14px; transition:transform .25s,border-color .25s; }
.case-card:hover { transform:translateY(-4px); border-color:var(--accent); }
.case-card--featured { background:linear-gradient(150deg,#2a1410,#221C19); border-color:var(--accent); }
.case-card__head { display:flex; align-items:center; gap:12px; }
.case-card__icon { display:none; }
.case-card__tag { font-size:13px; font-weight:700; letter-spacing:.02em; color:var(--accent-soft); background:rgba(230,52,23,.14); padding:6px 14px; border-radius:100px; }
.case-card__title { font-size:clamp(20px,2.4vw,26px); color:#fff; line-height:1.18; }
.case-card p { font-size:15px; color:var(--on-dark-dim); }
.case-card__metric { margin-top:auto; padding-top:18px; border-top:1px solid #332A25; font-size:15px; color:var(--on-dark-dim); }
.case-card__metric-num { display:block; font-family:var(--font-display); font-weight:800; font-size:clamp(38px,6vw,60px); line-height:1; color:var(--accent-soft); letter-spacing:-0.03em; margin-bottom:6px; }
.cases__bottom { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:18px; margin-top:clamp(32px,4vw,48px); }
.cases__bottom p { font-family:var(--font-display); font-weight:700; font-size:clamp(18px,2.2vw,26px); color:#fff; max-width:26ch; }

/* ============================================================================ FAQ ============================================================================ */
.faq { padding-block:var(--section-y); }
.faq__row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.6fr); gap:clamp(32px,5vw,72px); align-items:start; }
.faq__head { position:sticky; top:calc(var(--header-h) + 24px); }
.faq__title { font-size:clamp(26px,3.6vw,40px); margin:14px 0 14px; }
.faq__sub { color:var(--ink-dim); margin-bottom:24px; }
.faq__list { display:flex; flex-direction:column; gap:12px; }
.faq__item { border:1px solid var(--border); border-radius:var(--radius); background:var(--surface); transition:border-color .2s,box-shadow .2s; overflow:hidden; }
.faq__item[open] { border-color:var(--accent-line); box-shadow:var(--shadow-sm); }
.faq__item summary { display:flex; align-items:center; gap:16px; justify-content:space-between; padding:20px 24px; cursor:pointer; list-style:none; font-family:var(--font-display); font-size:clamp(16px,2vw,19px); font-weight:700; line-height:1.3; color:var(--ink); }
.faq__item summary::-webkit-details-marker { display:none; }
.faq__item[open] summary { color:var(--accent); }
.faq__icon { flex:none; width:24px; height:24px; border-radius:50%; background:var(--accent-faint); position:relative; }
.faq__icon::before,.faq__icon::after { content:""; position:absolute; background:var(--accent); top:50%; left:50%; transform:translate(-50%,-50%); }
.faq__icon::before { width:11px; height:2px; }
.faq__icon::after { width:2px; height:11px; transition:transform .25s; }
.faq__item[open] .faq__icon::after { transform:translate(-50%,-50%) scaleY(0); }
.faq__item p { padding:0 24px 22px; font-size:15.5px; }

/* ============================================================================ PARTNER / WHY US (light feature band) ============================================================================ */
.partner { padding-block:var(--section-y); background:var(--bg-2); }
.partner__inner { position:relative; }
.partner__decor { display:none; }
.partner__head { max-width:760px; }
.partner__title { font-size:clamp(28px,4.4vw,48px); }
.partner__text { color:var(--ink-dim); font-size:clamp(17px,2vw,19px); margin-top:18px; }
.partner__items-title { margin-top:clamp(36px,4vw,52px); font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-mute); margin-bottom:22px; }
.partner__items { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.partner__item { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:clamp(22px,2.4vw,30px); transition:transform .25s,box-shadow .25s,border-color .25s; }
.partner__item:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:transparent; }
.partner__item-icon { width:50px; height:50px; border-radius:13px; background:var(--accent-faint); color:var(--accent); display:grid; place-items:center; margin-bottom:16px; }
.partner__item-icon svg { width:26px; height:26px; }
.partner__item h4 { font-family:var(--font-display); font-size:19px; font-weight:700; margin-bottom:8px; color:var(--ink); }
.partner__item p { font-size:15px; }

/* ============================================================================ CONTACT ============================================================================ */
.contact { padding-block:var(--section-y); }
.contact__row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(36px,5vw,72px); align-items:start; }
.contact__title { font-size:clamp(30px,4.4vw,48px); margin:14px 0 16px; max-width:16ch; }
.contact__text { color:var(--ink-dim); font-size:18px; max-width:48ch; }
.contact__trust { display:flex; gap:clamp(22px,3vw,42px); flex-wrap:wrap; margin-top:clamp(28px,4vw,40px); padding-top:26px; border-top:1px solid var(--border); }
.contact__trust-item { display:flex; flex-direction:column; gap:2px; }
.contact__trust-num { font-family:var(--font-display); font-weight:800; font-size:clamp(28px,4vw,40px); color:var(--accent); line-height:1; }
.contact__trust-label { font-size:14px; color:var(--ink-mute); }
.form { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:clamp(26px,3vw,38px); box-shadow:var(--shadow-md); }
.form__field { margin-bottom:18px; }
.form__field label { display:block; font-size:14px; font-weight:600; color:var(--ink); margin-bottom:7px; }
.form__field label span { color:var(--accent); }
.form__field input,.form__field textarea { width:100%; background:var(--bg-2); border:1.5px solid var(--border); border-radius:var(--radius-sm); padding:13px 15px; font-size:15px; transition:border-color .2s,background .2s; }
.form__field input::placeholder,.form__field textarea::placeholder { color:var(--ink-mute); }
.form__field input:focus,.form__field textarea:focus { outline:none; border-color:var(--accent); background:#fff; }
.form__field textarea { resize:vertical; min-height:104px; }
.form__submit { width:100%; justify-content:center; margin-top:4px; }
.form__note { margin-top:14px; font-size:14px; padding:12px 14px; border-radius:var(--radius-sm); }
.form__note.is-ok { background:rgba(31,122,77,.1); color:var(--success); }
.form__note.is-err { background:var(--accent-faint); color:var(--accent-dark); }

/* ============================================================================ FOOTER ============================================================================ */
.site-footer { background:var(--dark); color:var(--on-dark); padding-block:clamp(48px,6vw,72px); }
.site-footer__row { display:flex; flex-wrap:wrap; gap:40px; justify-content:space-between; align-items:start; }
.site-footer__col--brand { max-width:360px; }
.site-footer__logo img { max-height:38px; width:auto; margin-bottom:16px; filter:brightness(0) invert(1); }
.site-footer__logo strong { font-family:var(--font-display); font-size:22px; color:#fff; }
.site-footer__text { font-size:15px; color:var(--on-dark-dim); }
.site-footer__title { font-family:var(--font-display); font-size:clamp(19px,2.2vw,24px); font-weight:700; color:#fff; max-width:24ch; margin-bottom:14px; }
.site-footer__contacts { font-size:15px; color:var(--on-dark-dim); margin-bottom:18px; }
.site-footer__contacts a { color:var(--accent-soft); }
.site-footer__nav { display:flex; flex-wrap:wrap; gap:20px; }
.site-footer__nav a { font-size:15px; color:var(--on-dark-dim); }
.site-footer__nav a:hover { color:#fff; }
.site-footer__bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; margin-top:40px; padding-top:24px; border-top:1px solid #332A25; font-size:13px; color:var(--on-dark-dim); }

.top-btn { position:fixed; right:22px; bottom:22px; z-index:90; width:48px; height:48px; background:var(--accent); color:#fff; border:0; border-radius:50%; display:grid; place-items:center; box-shadow:var(--shadow-accent); opacity:0; transform:translateY(10px); pointer-events:none; transition:.25s ease; }
.top-btn svg { width:20px; height:20px; }
.top-btn.is-visible { opacity:1; transform:none; pointer-events:auto; }
.top-btn:hover { background:var(--accent-dark); }

/* ============================================================================ GENERIC INNER PAGE ============================================================================ */
.page-hero { padding-block:clamp(48px,7vw,84px); background:var(--bg-2); border-bottom:1px solid var(--border); }
.page-hero h1 { font-size:clamp(34px,6vw,60px); max-width:20ch; }
.page-body { padding-block:var(--section-y); }
.page-body .container { max-width:820px; }
.page-body h2 { font-size:clamp(24px,3.4vw,36px); margin:clamp(34px,4vw,48px) 0 14px; }
.page-body h3 { font-size:clamp(19px,2.4vw,25px); margin:26px 0 10px; }
.page-body p { margin-bottom:15px; }
.page-body ul.bullets { margin:12px 0 20px; }
.page-body ul.bullets li { position:relative; padding-left:28px; margin-bottom:10px; color:var(--ink-dim); }
.page-body ul.bullets li::before { content:""; position:absolute; left:4px; top:.6em; width:10px; height:10px; border-radius:50%; background:var(--accent-faint); border:2px solid var(--accent); }
.page-body a { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }

/* ============================================================================ LANG SWITCHER ============================================================================ */
.lang-btn { font-size:13px; font-weight:600; padding:4px 9px; border-radius:8px; border:1.5px solid var(--border-2); color:var(--ink-dim); }
.lang-btn--active { border-color:var(--accent); color:var(--accent); background:var(--accent-faint); }


/* ============================================================================ UNLOCKING (text feature band) ============================================================================ */
.unlock { padding-block:var(--section-y); background:var(--dark); color:var(--on-dark); }
.unlock .eyebrow { background:rgba(255,255,255,.08); color:var(--accent-soft); }
.unlock__inner { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(28px,5vw,64px); align-items:start; }
.unlock__title { font-size:clamp(26px,3.6vw,42px); color:#fff; margin-top:16px; line-height:1.14; }
.unlock__title em { color:var(--accent-soft); font-style:normal; }
.unlock__body p { color:var(--on-dark-dim); font-size:17px; margin-bottom:16px; }
.unlock__body p:last-child { margin-bottom:0; }
.unlock__body p:first-child { color:#fff; font-size:clamp(18px,2.2vw,22px); font-weight:500; font-family:var(--font-display); line-height:1.4; }

/* ============================================================================ RESULTS (outcomes) ============================================================================ */
.results { padding-block:var(--section-y); background:var(--bg-2); }
.results__row { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(32px,5vw,64px); align-items:start; }
.results__left { position:sticky; top:calc(var(--header-h) + 24px); }
.results__title { font-size:clamp(26px,3.6vw,40px); margin-top:16px; }
.results__text { font-size:17px; color:var(--ink-dim); margin-top:16px; }
.results__list { display:flex; flex-direction:column; gap:14px; }
.results__item { display:flex; gap:14px; align-items:flex-start; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:18px 20px; font-size:16px; color:var(--ink); transition:transform .2s,box-shadow .2s; }
.results__item:hover { transform:translateX(4px); box-shadow:var(--shadow-sm); }
.results__check { flex:none; width:30px; height:30px; border-radius:50%; background:rgba(31,122,77,.12); color:var(--success); display:grid; place-items:center; }
.results__check svg { width:17px; height:17px; }

/* ============================================================================ CASE before/after ============================================================================ */
.case-card__ba { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:4px; }
.case-card__ba-col { background:rgba(255,255,255,.03); border:1px solid #332A25; border-radius:var(--radius-sm); padding:14px 16px; }
.case-card__ba-col--after { border-color:rgba(230,52,23,.35); background:rgba(230,52,23,.06); }
.case-card__ba-label { display:inline-block; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:10px; color:var(--on-dark-dim); }
.case-card__ba-col--after .case-card__ba-label { color:var(--accent-soft); }
.case-card__ba-col ul { display:flex; flex-direction:column; gap:7px; }
.case-card__ba-col li { font-size:13.5px; line-height:1.4; color:var(--on-dark-dim); padding-left:15px; position:relative; }
.case-card__ba-col li::before { content:""; position:absolute; left:0; top:.55em; width:6px; height:6px; border-radius:50%; background:#4a3f39; }
.case-card__ba-col--after li::before { background:var(--accent); }


/* ============================================================================ HERO challenge text block ============================================================================ */
.hero__challenge { margin-top:clamp(36px,5vw,56px); padding-top:clamp(28px,4vw,40px); border-top:1px solid var(--border); max-width:74ch; }
.hero__challenge-title { font-family:var(--font-display); font-size:clamp(20px,2.6vw,27px); font-weight:700; color:var(--ink); margin-bottom:14px; letter-spacing:-0.01em; }
.hero__challenge-text { font-size:16.5px; line-height:1.7; color:var(--ink-dim); }

/* ============================================================================ INTRO media layout (consulting + illustration) ============================================================================ */
.intro__row--media { grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); align-items:center; }
.intro__row--media .intro__body .eyebrow { margin-bottom:18px; }
.intro__row--media .intro__title { margin:0 0 18px; }
.intro__media { position:relative; }
.intro__media svg { width:100%; height:auto; }

/* ============================================================================ PROCESS grid (icon cards) ============================================================================ */
.process--grid { padding-block:var(--section-y); }
.process__grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.process-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:clamp(22px,2.2vw,28px); transition:transform .25s,box-shadow .25s,border-color .25s; }
.process-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:transparent; }
.process-card__top { display:flex; align-items:center; justify-content:space-between; margin-bottom:16px; }
.process-card__icon { width:50px; height:50px; border-radius:13px; background:var(--accent-faint); color:var(--accent); display:grid; place-items:center; }
.process-card__icon svg { width:26px; height:26px; }
.process-card__num { font-family:var(--font-display); font-weight:800; font-size:22px; color:var(--border-2); letter-spacing:-0.02em; }
.process-card__title { font-size:17px; font-weight:700; line-height:1.25; margin-bottom:9px; }
.process-card__text { font-size:14px; line-height:1.6; color:var(--ink-dim); }

/* ============================================================================ CONTACT text-only band ============================================================================ */
.contact--text { padding-block:var(--section-y); }
.contact__band { max-width:760px; margin-inline:auto; text-align:center; background:var(--bg-2); border:1px solid var(--border); border-radius:var(--radius-lg); padding:clamp(34px,5vw,60px); }
.contact__band .eyebrow { margin-inline:auto; }
.contact--text .contact__title { font-size:clamp(28px,4vw,44px); margin:16px auto 16px; max-width:18ch; }
.contact--text .contact__text { font-size:18px; color:var(--ink-dim); margin-inline:auto; max-width:56ch; }
.contact__actions { margin-top:28px; display:flex; justify-content:center; }
.contact__address { margin-top:22px; font-size:15px; color:var(--ink-mute); }
.contact__address a { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
.contact--text .contact__trust { justify-content:center; border-top:1px solid var(--border); margin-top:30px; padding-top:26px; }


/* ============================================================================ LOGO (inline SVG) ============================================================================ */
.site-header__logo { display:inline-flex; align-items:center; }
.site-header__logo svg { height:38px; width:auto; display:block; }
.site-header__logo img { max-height:38px; width:auto; }
.site-footer__logo svg { height:40px; width:auto; margin-bottom:16px; }
.site-footer__logo img { max-height:40px; width:auto; margin-bottom:16px; filter:brightness(0) invert(1); }

/* ============================================================================ NAV — Our Services dropdown ============================================================================ */
.nav-dropdown { position:relative; }
.nav-dropdown__trigger { display:inline-flex; align-items:center; gap:6px; font-size:15px; font-weight:500; color:var(--ink-dim); padding:8px 0; transition:color .2s; }
.nav-dropdown__trigger:hover, .nav-dropdown:hover .nav-dropdown__trigger { color:var(--accent); }
.nav-dropdown__caret { width:12px; height:12px; transition:transform .25s; }
.nav-dropdown:hover .nav-dropdown__caret { transform:rotate(180deg); }
.nav-dropdown__menu {
	position:absolute; top:calc(100% + 14px); left:50%; transform:translateX(-50%) translateY(-8px);
	width:300px; background:#fff; border:1px solid var(--border); border-radius:var(--radius);
	box-shadow:var(--shadow-lg); padding:10px; display:grid; gap:2px;
	opacity:0; pointer-events:none; transition:opacity .2s ease, transform .2s ease; z-index:120;
}
.nav-dropdown__menu::before { content:""; position:absolute; top:-14px; left:0; right:0; height:14px; } /* hover bridge */
.nav-dropdown:hover .nav-dropdown__menu, .nav-dropdown:focus-within .nav-dropdown__menu { opacity:1; pointer-events:auto; transform:translateX(-50%) translateY(0); }
.nav-dropdown__item { display:flex; align-items:center; gap:12px; padding:11px 12px; border-radius:10px; font-size:14.5px; font-weight:500; color:var(--ink); transition:background .15s, color .15s; }
.nav-dropdown__item:hover { background:var(--accent-faint); color:var(--accent); }
.nav-dropdown__icon { flex:none; width:34px; height:34px; border-radius:9px; background:var(--accent-faint); color:var(--accent); display:grid; place-items:center; }
.nav-dropdown__icon svg { width:19px; height:19px; }
.nav-dropdown__item:hover .nav-dropdown__icon { background:var(--accent); color:#fff; }

/* mobile drawer service group */
.mob-menu__heading { font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--accent); padding:14px 0 4px; }
.mob-menu__sub { padding:10px 0 10px 14px !important; font-size:15.5px !important; color:var(--ink-dim) !important; border-bottom:1px solid var(--border); }


/* ============================================================================ SERVICE LANDING ============================================================================ */
.svc { overflow:hidden; }

/* hero */
.svc-hero { background:radial-gradient(900px 440px at 88% -8%, var(--accent-faint), transparent 62%), var(--bg-2); border-bottom:1px solid var(--border); padding-block:clamp(48px,7vw,90px); }
.svc-hero__inner { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:clamp(32px,5vw,64px); align-items:center; }
.svc-hero .eyebrow { margin-bottom:20px; }
.svc-hero__title { font-family:var(--font-display); font-size:clamp(34px,5.5vw,60px); font-weight:800; line-height:1.05; letter-spacing:-0.03em; margin-bottom:20px; }
.svc-hero__intro p { font-size:clamp(16px,1.9vw,19px); line-height:1.65; color:var(--ink-dim); margin-bottom:14px; }
.svc-hero__actions { margin-top:28px; }
.svc-hero__media svg { width:100%; height:auto; }

/* alternating feature blocks */
.svc-feature { padding-block:clamp(48px,6vw,84px); position:relative; }
.svc-feature--flip { background:var(--bg-2); }
.svc-feature__inner { display:grid; grid-template-columns:minmax(0,0.85fr) minmax(0,1.15fr); gap:clamp(32px,5vw,72px); align-items:center; }
.svc-feature--flip .svc-feature__media { order:2; }
.svc-feature__media { display:flex; justify-content:center; }
.svc-feature__badge { width:min(300px,80%); aspect-ratio:1; border-radius:30px; background:linear-gradient(150deg, var(--accent-faint), #fff); border:1px solid var(--border); display:grid; place-items:center; box-shadow:var(--shadow-md); position:relative; }
.svc-feature__badge::after { content:""; position:absolute; inset:0; border-radius:30px; box-shadow:inset 0 0 0 1px rgba(230,52,23,.06); }
.svc-feature__badge svg { width:42%; height:42%; color:var(--accent); }
.svc-feature__badge span { font-family:var(--font-display); font-weight:800; font-size:64px; color:var(--accent); }
.svc-feature__title { font-family:var(--font-display); font-size:clamp(24px,3.4vw,38px); font-weight:700; line-height:1.15; letter-spacing:-0.02em; margin-bottom:18px; }
.svc-feature__text p { font-size:16.5px; line-height:1.72; color:var(--ink-dim); margin-bottom:14px; }
.svc-feature__text p:last-child { margin-bottom:0; }

/* card grid block */
.svc-cards { padding-block:clamp(48px,6vw,84px); }
.svc-cards__head { max-width:760px; margin-bottom:clamp(32px,4vw,52px); }
.svc-cards__title { font-family:var(--font-display); font-size:clamp(26px,3.6vw,42px); font-weight:700; letter-spacing:-0.02em; line-height:1.12; }
.svc-cards__lead { font-size:18px; color:var(--ink-dim); margin-top:14px; }
.svc-cards__grid { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.svc-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:clamp(26px,2.6vw,34px); display:flex; flex-direction:column; gap:12px; transition:transform .25s,box-shadow .25s,border-color .25s; }
.svc-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:transparent; }
.svc-card__icon { width:54px; height:54px; border-radius:14px; background:var(--accent-faint); color:var(--accent); display:grid; place-items:center; }
.svc-card__icon svg { width:28px; height:28px; }
.svc-card__title { font-family:var(--font-display); font-size:20px; font-weight:700; line-height:1.2; }
.svc-card p { font-size:15.5px; line-height:1.6; color:var(--ink-dim); }

/* text band */
.svc-text { padding-block:clamp(44px,5vw,72px); }
.svc-text__inner { max-width:860px; }
.svc-text__title { font-family:var(--font-display); font-size:clamp(24px,3.2vw,36px); font-weight:700; letter-spacing:-0.02em; margin-bottom:16px; }
.svc-text__body p { font-size:16.5px; line-height:1.72; color:var(--ink-dim); margin-bottom:14px; }
.svc-text__body a { color:var(--accent); text-decoration:underline; text-underline-offset:3px; }
.svc-text--dark { background:var(--dark); color:var(--on-dark); }
.svc-text--dark .svc-text__title { color:#fff; }
.svc-text--dark .svc-text__body p { color:var(--on-dark-dim); }

/* service CTA */
.svc-cta { padding-block:clamp(48px,6vw,90px); }
.svc-cta__band { background:linear-gradient(150deg,#221C19,#1A1614); border-radius:var(--radius-lg); padding:clamp(36px,5vw,64px); text-align:center; position:relative; overflow:hidden; }
.svc-cta__band::before { content:""; position:absolute; top:-60px; right:-40px; width:220px; height:220px; border-radius:50%; background:radial-gradient(circle, rgba(230,52,23,.4), transparent 70%); }
.svc-cta__title { position:relative; font-family:var(--font-display); font-size:clamp(26px,3.6vw,42px); font-weight:800; color:#fff; letter-spacing:-0.02em; max-width:20ch; margin:0 auto 16px; }
.svc-cta__text { position:relative; font-size:17px; line-height:1.65; color:var(--on-dark-dim); max-width:56ch; margin:0 auto 28px; }
.svc-cta__band .btn { position:relative; }


/* ============================================================================ NAV dropdown — compact (text-only, About) ============================================================================ */
.nav-dropdown__menu--compact { width:210px; }
.nav-dropdown__item--text { padding:10px 12px; }
.nav-dropdown a.nav-dropdown__trigger { text-decoration:none; }

/* ============================================================================ ABOUT PAGE ============================================================================ */
.about-hero { background:radial-gradient(900px 420px at 85% -10%, var(--accent-faint), transparent 62%), var(--bg-2); border-bottom:1px solid var(--border); padding-block:clamp(54px,8vw,96px); }
.about-hero__inner { max-width:820px; }
.about-hero .eyebrow { margin-bottom:20px; }
.about-hero__title { font-family:var(--font-display); font-size:clamp(36px,6vw,60px); font-weight:800; letter-spacing:-0.03em; line-height:1.05; margin-bottom:20px; }
.about-hero__intro { font-size:clamp(17px,2vw,20px); line-height:1.65; color:var(--ink-dim); }

.about-mission { padding-block:clamp(48px,6vw,84px); }
.about-mission__inner { max-width:900px; margin-inline:auto; text-align:center; }
.about-mission__label { display:inline-block; font-size:13px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--accent); background:var(--accent-faint); padding:7px 16px; border-radius:100px; margin-bottom:22px; }
.about-mission__text { font-family:var(--font-display); font-size:clamp(22px,3.2vw,34px); font-weight:600; line-height:1.32; letter-spacing:-0.01em; color:var(--ink); }

.about-cols { padding-block:clamp(48px,6vw,84px); background:var(--bg-2); }
.about-cols__inner { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,64px); align-items:start; }
.about-col__title { font-family:var(--font-display); font-size:clamp(22px,3vw,30px); font-weight:700; letter-spacing:-0.02em; margin-bottom:22px; }
.about-list { display:flex; flex-direction:column; gap:14px; }
.about-list li { display:flex; gap:13px; align-items:flex-start; font-size:16px; line-height:1.55; color:var(--ink-dim); }
.about-list__tick { flex:none; width:28px; height:28px; border-radius:50%; background:rgba(31,122,77,.12); color:var(--success); display:grid; place-items:center; margin-top:2px; }
.about-list__tick svg { width:16px; height:16px; }
.about-why { display:flex; flex-direction:column; gap:16px; }
.about-why__item { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:20px 22px; transition:transform .2s,box-shadow .2s; }
.about-why__item:hover { transform:translateX(4px); box-shadow:var(--shadow-sm); }
.about-why__item h3 { font-family:var(--font-display); font-size:18px; font-weight:700; margin-bottom:6px; color:var(--ink); }
.about-why__item p { font-size:15px; line-height:1.55; color:var(--ink-dim); }

.about-team { padding-block:clamp(48px,6vw,84px); }
.about-team__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.team-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg); padding:clamp(26px,2.6vw,34px); text-align:center; transition:transform .25s,box-shadow .25s,border-color .25s; display:flex; flex-direction:column; align-items:center; }
.team-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-md); border-color:transparent; }
.team-card__avatar { width:96px; height:96px; border-radius:50%; overflow:hidden; background:linear-gradient(150deg,var(--accent-soft),var(--accent)); display:grid; place-items:center; margin-bottom:18px; box-shadow:var(--shadow-accent); }
.team-card__avatar img { width:100%; height:100%; object-fit:cover; }
.team-card__initials { font-family:var(--font-display); font-weight:800; font-size:34px; color:#fff; letter-spacing:-0.02em; }
.team-card__name { font-family:var(--font-display); font-size:21px; font-weight:700; color:var(--ink); }
.team-card__role { display:inline-block; font-size:13px; font-weight:700; letter-spacing:.03em; text-transform:uppercase; color:var(--accent); background:var(--accent-faint); padding:5px 13px; border-radius:100px; margin:8px 0 14px; }
.team-card__bio { font-size:14.5px; line-height:1.6; color:var(--ink-dim); }
.team-card__link { margin-top:14px; font-size:14px; font-weight:600; color:var(--accent); }

/* ============================================================================ LEGAL PAGE ============================================================================ */
.legal-body { padding-block:clamp(40px,5vw,72px); }
.legal-body .container { max-width:820px; }
.legal-block { margin-bottom:clamp(28px,3.5vw,40px); }
.legal-block__title { font-family:var(--font-display); font-size:clamp(20px,2.6vw,27px); font-weight:700; letter-spacing:-0.02em; margin-bottom:12px; color:var(--ink); }
.legal-block__body p { font-size:16px; line-height:1.72; color:var(--ink-dim); margin-bottom:13px; }
.legal-block__body a { color:var(--accent); text-decoration:underline; text-underline-offset:3px; word-break:break-word; }

/* ============================================================================ RESPONSIVE ============================================================================ */
@media (max-width:1024px){
    .intro__row { grid-template-columns:1fr; }
    .about-cols__inner { grid-template-columns:1fr; }
    .about-team__grid { grid-template-columns:1fr 1fr; }
    .svc-hero__inner { grid-template-columns:1fr; }
    .svc-hero__media { max-width:480px; }
    .svc-feature__inner { grid-template-columns:1fr; }
    .svc-feature--flip .svc-feature__media { order:0; }
    .svc-feature__media { max-width:340px; }
    .svc-cards__grid { grid-template-columns:1fr; }
    .intro__row--media { grid-template-columns:1fr; }
    .intro__media { max-width:520px; }
    .process__grid { grid-template-columns:repeat(2,1fr); }
    .unlock__inner { grid-template-columns:1fr; }
    .results__row { grid-template-columns:1fr; }
    .results__left { position:static; }
    .challenges__grid,.services__grid,.partner__items { grid-template-columns:1fr 1fr; }
    .process__row { grid-template-columns:1fr; }
    .process__visual { position:static; order:-1; max-width:520px; margin-inline:auto; }
    .faq__row { grid-template-columns:1fr; }
    .faq__head { position:static; }
}
@media (max-width:860px){
    :root { --header-h:62px; }
    .site-header__nav { display:none; }
    .mob-menu-btn { display:flex; }
    .cases__grid { grid-template-columns:1fr; }
    .contact__row { grid-template-columns:1fr; }
}
@media (max-width:560px){
    body { font-size:16px; }
    .challenges__grid,.services__grid,.partner__items { grid-template-columns:1fr; }
    .process__grid { grid-template-columns:1fr; }
    .about-team__grid { grid-template-columns:1fr; }
    .case-card__ba { grid-template-columns:1fr; }
    .hero__trust { gap:20px; }
    .hero__trust-item { flex:0 0 calc(50% - 20px); }
}
