/* ══════════════════════════════════════════════════════════════════
   fx.css — site-wide design layer (loaded after theme.css on every page)
   1. Tokens   2. Footer (.ff)   3. Marketing page system (.fxp-*)
   ══════════════════════════════════════════════════════════════════ */
:root,html[data-theme]{
  --fx-serif:"Instrument Serif",Georgia,"Times New Roman",serif;
  --fx-mono:"IBM Plex Mono",ui-monospace,monospace;
  --fx-warm:var(--gold,#f4b860);
  --fx-blue:#1d4ed8;
  --fx-ease:cubic-bezier(.2,.7,.2,1);
  --fx-shell:1180px;
}

/* ── 2. Footer ─────────────────────────────────────────────────── */
.ff{position:relative;overflow:hidden;background:var(--footer-bg,var(--bg-sunken));border-top:1px solid var(--border);color:var(--text-2);padding:72px 0 0}
.ff-shell{width:min(var(--fx-shell),calc(100% - 40px));margin-inline:auto;position:relative;z-index:1}
.ff a{color:var(--text-2);text-decoration:none;transition:color .2s}
.ff a:hover{color:var(--text)}
.ff-top{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;padding-bottom:48px;border-bottom:1px solid var(--border)}
.ff-logo{display:inline-flex;align-items:center;gap:12px;margin-bottom:18px}
.ff-logo img{height:40px;max-width:170px;object-fit:contain}
.ff-logo img+.ff-wordmark,.ff-logo img~.ff-wordmark{display:none}
.ff-wordmark{font-size:22px;font-weight:800;letter-spacing:-.03em;color:var(--text)}
.ff-wordmark b{color:var(--primary)}
.ff-pitch{max-width:420px;margin:0 0 24px;font-size:16px;line-height:1.6;color:var(--text-2)}
.ff-contact{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.ff-contact li{display:flex;align-items:center;gap:12px;font-size:15px}
.ff-contact i{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:var(--bg-card);border:1px solid var(--border);color:var(--primary);font-size:13px;flex:0 0 auto}
.ff-contact a{color:var(--text)}
.ff-contact a:hover{color:var(--primary)}
.ff-news{align-self:start;padding:28px;border:1px solid var(--border);border-radius:18px;background:var(--bg-card)}
.ff-news-title{margin:0 0 6px;font-size:22px;line-height:1.2;letter-spacing:-.02em;font-weight:800;color:var(--text)}
.ff-news p{margin:0 0 18px;font-size:14px;color:var(--muted)}
.ff-news-form{display:flex;gap:8px;padding:6px;border:1px solid var(--border);border-radius:12px;background:var(--bg)}
.ff-news-form input[type=email]{flex:1;min-width:0;border:0;outline:0;background:transparent;padding:10px 12px;font:inherit;font-size:15px;color:var(--text)}
.ff-news-form input::placeholder{color:var(--muted)}
.ff-news-form:focus-within{border-color:var(--primary)}
.ff-news-form button{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:9px;padding:10px 16px;background:#2563eb;color:#fff;font-weight:700;font-size:14px;cursor:pointer;white-space:nowrap}
.ff-news-form button:hover{background:#1d4ed8}
.ff-social{display:flex;gap:8px;margin-top:18px}
.ff-social a{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--border);color:var(--text-2)}
.ff-social a:hover{border-color:var(--primary);color:var(--primary)}

.ff-links{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;padding:44px 0}
.ff-group summary{list-style:none;cursor:default;display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;font:600 12px/1 var(--fx-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--fx-warm)}
.ff-group summary::-webkit-details-marker{display:none}
.ff-group summary i{display:none}
.ff-group ul{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.ff-group a{font-size:15px}

.ff-bottom{display:flex;align-items:center;gap:24px;padding:22px 0;border-top:1px solid var(--border);font-size:13px;color:var(--muted)}
.ff-bottom p{margin:0;flex:1}
.ff-legal{display:flex;gap:18px}
.ff-legal a{font-size:13px;color:var(--muted)}
.ff-theme{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text-2);font:inherit;font-size:13px;cursor:pointer}
.ff-theme:hover{border-color:var(--primary);color:var(--text)}
.ff-giant{position:relative;z-index:0;margin-top:-10px;text-align:center;font-weight:800;letter-spacing:-.07em;line-height:.78;font-size:clamp(90px,21vw,300px);color:transparent;-webkit-text-stroke:1px var(--border);user-select:none;pointer-events:none;white-space:nowrap;transform:translateY(12%)}
.ff-giant span{-webkit-text-stroke:0;color:color-mix(in srgb,var(--primary) 45%,transparent)}

/* neutralise legacy .site-footer rules that target generic footer descendants */
html[data-theme] .ff h2,html[data-theme] .ff strong{color:var(--text)!important}

@media (max-width:900px){
  .ff-top{grid-template-columns:1fr;gap:36px}
  .ff-links{grid-template-columns:repeat(2,1fr);row-gap:36px}
}
@media (max-width:640px){
  .ff{padding-top:48px}
  .ff-news{padding:22px}
  .ff-news-form{flex-direction:column;padding:8px}
  .ff-news-form button{justify-content:center;padding:12px}
  .ff-links{grid-template-columns:1fr;gap:0;padding:20px 0}
  .ff-group{border-bottom:1px solid var(--border)}
  .ff-group summary{cursor:pointer;margin:0;padding:18px 0;font-size:13px}
  .ff-group summary i{display:inline-block;color:var(--muted);transition:transform .25s}
  .ff-group[open] summary i{transform:rotate(45deg)}
  .ff-group ul{grid-template-columns:1fr 1fr;gap:12px 16px;padding:0 0 20px}
  .ff-bottom{flex-wrap:wrap;justify-content:space-between;gap:14px}
  .ff-bottom p{flex-basis:100%}
}

/* ── 3. Marketing page system ──────────────────────────────────── */
.fxp{color:var(--text);background:var(--bg)}
.fxp-shell{width:min(var(--fx-shell),calc(100% - 40px));margin-inline:auto}
.fxp-eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:16px;font:600 12px/1 var(--fx-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fx-warm)}
.fxp-eyebrow::before{content:"";width:22px;height:1px;background:currentColor;opacity:.7}
.fxp em.fxp-accent,.fxp h1 em,.fxp h2 em{font-family:var(--fx-serif);font-style:italic;font-weight:400;letter-spacing:-.01em;color:var(--fx-warm)}

/* Hero */
.fxp-hero{position:relative;padding:clamp(56px,8vw,104px) 0 clamp(48px,6vw,80px);background:radial-gradient(55% 70% at 90% 0%,color-mix(in srgb,var(--primary) 16%,transparent),transparent 70%),radial-gradient(40% 50% at 0% 100%,color-mix(in srgb,var(--fx-warm) 8%,transparent),transparent 70%),var(--bg);border-bottom:1px solid var(--border);overflow:hidden}
.fxp-hero::before{content:"";position:absolute;inset:0;opacity:.35;background-image:linear-gradient(var(--border-light) 1px,transparent 1px),linear-gradient(90deg,var(--border-light) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(70% 80% at 80% 0%,#000,transparent 75%);pointer-events:none}
.fxp-hero .fxp-shell{position:relative}
.fxp-crumbs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px;font:500 12px/1 var(--fx-mono);letter-spacing:.06em;color:var(--muted)}
.fxp-crumbs a{color:var(--muted);text-decoration:none}.fxp-crumbs a:hover{color:var(--primary)}
.fxp-crumbs span[aria-hidden]{opacity:.5}
.fxp-hero h1{max-width:900px;margin:0;font-size:clamp(40px,6vw,76px);line-height:1;letter-spacing:-.05em;font-weight:800;color:var(--text)}
.fxp-hero-lede{max-width:640px;margin:24px 0 0;font-size:clamp(17px,1.6vw,19px);line-height:1.65;color:var(--text-2)}
.fxp-hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.fxp-hero-split{display:grid;grid-template-columns:1.3fr 1fr;gap:56px;align-items:end}
.fxp-hero-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:18px;overflow:hidden}
.fxp-hero-stats div{padding:22px;background:var(--bg-card)}
.fxp-hero-stats strong{display:block;font-size:34px;line-height:1;letter-spacing:-.04em;font-weight:800;color:var(--text)}
.fxp-hero-stats span{display:block;margin-top:8px;font-size:13px;color:var(--muted)}

/* Buttons */
.fxp-btn{display:inline-flex;align-items:center;gap:10px;padding:15px 22px;border-radius:12px;font-weight:700;font-size:15px;text-decoration:none;border:1px solid transparent;transition:transform .2s,background .2s,border-color .2s;cursor:pointer}
.fxp-btn:hover{transform:translateY(-2px)}
.fxp-btn-primary{background:#2563eb;color:#fff!important}.fxp-btn-primary:hover{background:#1d4ed8}
.fxp-btn-ghost{border-color:var(--border);color:var(--text)!important;background:color-mix(in srgb,var(--bg-card) 60%,transparent)}.fxp-btn-ghost:hover{border-color:var(--primary)}

/* Sections */
.fxp-section{padding:clamp(64px,8vw,112px) 0;border-bottom:1px solid var(--border-light)}
.fxp-section.alt{background:var(--bg-alt)}
.fxp-head{margin-bottom:48px}
.fxp-head h2{margin:0;font-size:clamp(30px,4vw,52px);line-height:1.04;letter-spacing:-.04em;font-weight:800;color:var(--text)}
.fxp-head p{margin:16px 0 0;max-width:560px;font-size:17px;line-height:1.65;color:var(--text-2)}
.fxp-head.split{display:grid;grid-template-columns:1.3fr 1fr;gap:48px;align-items:end}
.fxp-head.split p{margin:0}
.fxp-head.center{text-align:center;max-width:760px;margin-inline:auto}
.fxp-head.center .fxp-eyebrow{justify-content:center}
.fxp-head.center p{margin-inline:auto}

/* Paper band (inverse) */
.fxp-paper{--text:#121a2e;--text-2:#4b5468;--muted:#5d6577;--border:#d9d2c3;--border-light:#e4ddcf;--bg-card:#fbf8f2;background:#f3efe6;color:#121a2e}
html[data-theme="light"] .fxp-paper{--text:#f4f6fc;--text-2:#aab6d3;--muted:#8d9bbd;--border:#24325a;--border-light:#1b2749;--bg-card:#101d40;background:#0b1530;color:#f4f6fc}
.fxp-paper .fxp-eyebrow{color:#b4541a}
html[data-theme="light"] .fxp-paper .fxp-eyebrow{color:#f4b860}

/* Cards & grids */
.fxp-grid{display:grid;gap:20px}
.fxp-grid.c2{grid-template-columns:repeat(2,1fr)}.fxp-grid.c3{grid-template-columns:repeat(3,1fr)}.fxp-grid.c4{grid-template-columns:repeat(4,1fr)}
.fxp-card{position:relative;display:flex;flex-direction:column;padding:28px;border:1px solid var(--border);border-radius:18px;background:var(--bg-card);color:inherit;text-decoration:none;transition:transform .3s var(--fx-ease),border-color .3s}
a.fxp-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--primary) 50%,var(--border))}
.fxp-card h3{margin:0 0 10px;font-size:20px;letter-spacing:-.02em;color:var(--text)}
.fxp-card p{margin:0;font-size:15px;line-height:1.65;color:var(--text-2)}
.fxp-icon{width:46px;height:46px;display:grid;place-items:center;margin-bottom:20px;border-radius:12px;background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--primary);font-size:18px}
.fxp-card .fxp-more{margin-top:auto;padding-top:20px;font-weight:700;font-size:14px;color:var(--primary)}
.fxp-card .fxp-more i{transition:transform .25s}
a.fxp-card:hover .fxp-more i{transform:translateX(4px)}
.fxp-num{font-family:var(--fx-serif);font-style:italic;font-size:48px;line-height:1;color:var(--fx-warm);margin-bottom:14px}
.fxp-paper .fxp-num{color:#b4541a}
html[data-theme="light"] .fxp-paper .fxp-num{color:#f4b860}

/* Editorial rows */
.fxp-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}
.fxp-rows>li{border-bottom:1px solid var(--border)}
.fxp-row{display:grid;grid-template-columns:80px 1.3fr 1fr 44px;gap:28px;align-items:center;padding:30px 4px;color:inherit;text-decoration:none;transition:padding .3s var(--fx-ease),background .3s}
a.fxp-row:hover{padding-left:16px;background:color-mix(in srgb,var(--text) 3%,transparent)}
.fxp-row .fxp-num{margin:0;font-size:46px}
.fxp-row h3{margin:0 0 6px;font-size:clamp(20px,2.2vw,26px);letter-spacing:-.02em;color:var(--text)}
.fxp-row p{margin:0;font-size:15px;line-height:1.6;color:var(--text-2)}
.fxp-tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.fxp-tags li{padding:6px 12px;border:1px solid var(--border);border-radius:999px;font-size:13px;font-weight:600;color:var(--text)}
.fxp-arrow{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--border);color:var(--text);transition:.3s var(--fx-ease)}
a.fxp-row:hover .fxp-arrow{background:var(--text);color:var(--bg);transform:rotate(-45deg)}

/* Stats strip */
.fxp-stats{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--border);background:var(--bg-card)}
.fxp-stats div{padding:28px 24px;border-right:1px solid var(--border)}
.fxp-stats div:last-child{border-right:0}
.fxp-stats strong{display:block;font-size:clamp(32px,3.6vw,46px);line-height:1;font-weight:800;letter-spacing:-.04em;color:var(--fx-warm)}
.fxp-stats span{display:block;margin-top:8px;font-size:14px;color:var(--muted)}

/* Quote */
.fxp-quote{margin:0;padding:40px;border:1px solid var(--border);border-radius:22px;background:var(--bg-card)}
.fxp-quote blockquote{margin:0;font-size:clamp(20px,2.4vw,28px);line-height:1.4;letter-spacing:-.02em;color:var(--text)}
.fxp-quote figcaption{margin-top:22px;color:var(--muted);font-size:14px}

/* FAQ (shared with location pages) */
.fxp-faq{max-width:860px;margin-inline:auto}
.fxp-faq details{border:1px solid var(--border);border-radius:12px;background:var(--bg-card);margin-bottom:10px}
.fxp-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;padding:18px 22px;font-weight:700;color:var(--text)}
.fxp-faq summary::-webkit-details-marker{display:none}
.fxp-faq summary::after{content:"+";color:var(--primary);font-weight:800}
.fxp-faq details[open] summary::after{content:"–"}
.fxp-faq details p{margin:0;padding:0 22px 20px;color:var(--text-2);line-height:1.7}

/* CTA */
.fxp-cta{padding:clamp(56px,7vw,96px) 0}
.fxp-cta-box{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center;padding:clamp(32px,5vw,60px);border-radius:28px;border:1px solid var(--border);background:radial-gradient(80% 120% at 0% 0%,color-mix(in srgb,var(--fx-blue) 50%,transparent),transparent 60%),radial-gradient(60% 90% at 100% 100%,color-mix(in srgb,var(--fx-warm) 20%,transparent),transparent 60%),var(--bg-card)}
.fxp-cta-box h2{margin:0;font-size:clamp(30px,3.8vw,48px);line-height:1.04;letter-spacing:-.04em;font-weight:800;color:var(--text)}
.fxp-cta-box p{margin:16px 0 0;color:var(--text-2);font-size:17px}
.fxp-cta-actions{display:flex;flex-direction:column;gap:12px;align-items:stretch}
.fxp-cta-actions .fxp-btn{justify-content:center}

/* Forms (contact) */
.fxp-form{display:grid;gap:16px}
.fxp-form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fxp-form label{display:block;margin-bottom:8px;font-size:13px;font-weight:600;color:var(--text-2)}
.fxp-form input,.fxp-form select,.fxp-form textarea{width:100%;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--bg);color:var(--text);font:inherit;font-size:15px;transition:border-color .2s,box-shadow .2s}
.fxp-form input:focus,.fxp-form select:focus,.fxp-form textarea:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 18%,transparent)}
.fxp-form textarea{min-height:150px;resize:vertical}
.fxp-alert{padding:14px 18px;border-radius:12px;font-size:15px;margin-bottom:8px}
.fxp-alert.ok{background:color-mix(in srgb,var(--success) 14%,transparent);color:var(--success);border:1px solid color-mix(in srgb,var(--success) 35%,transparent)}
.fxp-alert.err{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent)}

/* Reveal */
.fxp-reveal{opacity:0;transform:translateY(18px);transition:opacity .7s var(--fx-ease),transform .7s var(--fx-ease)}
.fxp-reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.fxp-reveal{opacity:1;transform:none;transition:none}}

@media (max-width:980px){
  .fxp-hero-split,.fxp-head.split,.fxp-cta-box{grid-template-columns:1fr;gap:28px}
  .fxp-grid.c3,.fxp-grid.c4{grid-template-columns:repeat(2,1fr)}
  .fxp-stats{grid-template-columns:repeat(2,1fr)}
  .fxp-stats div:nth-child(2){border-right:0}
  .fxp-stats div:nth-child(-n+2){border-bottom:1px solid var(--border)}
  .fxp-row{grid-template-columns:60px 1fr 44px}
  .fxp-row .fxp-tags{grid-column:2;grid-row:2}
}
@media (max-width:640px){
  .fxp-grid.c2,.fxp-grid.c3,.fxp-grid.c4{grid-template-columns:1fr}
  .fxp-hero-actions .fxp-btn{flex:1 1 100%;justify-content:center}
  .fxp-card{padding:22px}
  .fxp-row{grid-template-columns:1fr;gap:12px;padding:26px 0}
  a.fxp-row:hover{padding-left:0}
  .fxp-row .fxp-tags{grid-column:auto;grid-row:auto}
  .fxp-arrow{display:none}
  .fxp-form .row{grid-template-columns:1fr}
  .fxp-quote{padding:26px}
}

/* Footer: beat legacy global heading/input rules */
html[data-theme] .ff .ff-news-title{font-size:22px!important;line-height:1.2!important;margin:0 0 6px!important}
html[data-theme] .ff .ff-news-form input[type=email]{background:transparent!important;border:0!important;box-shadow:none!important;padding:10px 12px!important}
.ff-group summary i{display:none!important}
@media (max-width:640px){
  .ff-group summary::after{content:"+";font:400 22px/1 var(--fx-mono);color:var(--muted);transition:transform .25s}
  .ff-group[open] summary::after{transform:rotate(45deg)}
}

/* Service pages extras */
.fxp-stack{justify-content:center;max-width:900px;margin:0 auto}
.fxp-stack li{padding:12px 20px;font-size:15px;background:var(--bg-card)}
.fxp-package{gap:10px}
.fxp-package h3 a{color:var(--text);text-decoration:none}
.fxp-badge{position:absolute;top:18px;right:18px;padding:5px 10px;border-radius:999px;background:var(--fx-warm);color:#1b1a20;font:700 11px/1 var(--fx-mono);letter-spacing:.06em;text-transform:uppercase}
.fxp-price{margin-top:auto;padding-top:14px;font-size:32px;font-weight:800;letter-spacing:-.03em;color:var(--text)}
.fxp-price span{font-size:18px;color:var(--muted);margin-right:2px}
.fxp-package-actions{display:flex;gap:10px;margin-top:14px}
.fxp-package-actions .fxp-btn{flex:1;justify-content:center;padding:12px 14px;font-size:14px}
.fxp-cta-places{font-size:14px!important;color:var(--muted)!important}
.fxp-cta-places a{color:var(--text-2);text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:3px}
.fxp-cta-places a:hover{color:var(--primary)}
.fxp-checks{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.fxp-checks li{display:flex;gap:12px;align-items:flex-start;font-size:16px;line-height:1.55;color:var(--text)}
.fxp-checks li::before{content:"";flex:0 0 22px;height:22px;margin-top:1px;border-radius:50%;background:color-mix(in srgb,var(--success) 18%,transparent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234ade80' stroke-width='3'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E") center/12px no-repeat}
.fxp-split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
.fxp-timeline{list-style:none;margin:0;padding:0;border-left:1px solid var(--border)}
.fxp-timeline li{position:relative;padding:0 0 26px 28px}
.fxp-timeline li::before{content:"";position:absolute;left:-7px;top:4px;width:13px;height:13px;border-radius:50%;background:var(--bg);border:2px solid var(--fx-warm)}
.fxp-timeline strong{display:block;font:600 12px/1.2 var(--fx-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fx-warm);margin-bottom:6px}
.fxp-timeline span{color:var(--text-2);line-height:1.6}
@media (max-width:980px){.fxp-split{grid-template-columns:1fr;gap:36px}}
.fxp-stat-big{font-size:clamp(36px,4vw,52px);line-height:1;font-weight:800;letter-spacing:-.04em;color:var(--fx-warm);margin:4px 0 8px}
.fxp-card .fxp-eyebrow{margin-bottom:12px;font-size:11px}

/* About / shared bits */
.fxp-prose p{margin:0 0 18px;font-size:17px;line-height:1.75;color:var(--text-2)}
.fxp-prose p:first-child{font-size:20px;line-height:1.6;color:var(--text)}
.fxp-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:28px;position:relative}
.fxp-steps::before{content:"";position:absolute;left:0;right:0;top:34px;height:1px;background:linear-gradient(90deg,var(--fx-warm),var(--primary) 60%,transparent)}
.fxp-steps li{position:relative;padding-top:56px}
.fxp-steps li::before{content:"";position:absolute;top:28px;left:0;width:13px;height:13px;border-radius:50%;background:var(--bg);border:2px solid var(--fx-warm)}
.fxp-steps li:nth-child(n+3)::before{border-color:var(--primary)}
.fxp-steps span{position:absolute;top:0;left:0;font:600 12px/1 var(--fx-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--fx-warm)}
.fxp-steps h3{margin:0 0 8px;font-size:20px;color:var(--text)}
.fxp-steps p{margin:0;font-size:15px;line-height:1.6;color:var(--text-2)}
.fxp-places{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}
.fxp-places li{border-bottom:1px solid var(--border)}
.fxp-places a{display:grid;grid-template-columns:1fr auto 20px;gap:16px;align-items:center;padding:18px 4px;text-decoration:none;transition:padding .3s var(--fx-ease)}
.fxp-places a:hover{padding-left:14px}
.fxp-places strong{font-size:22px;letter-spacing:-.02em;color:var(--text)}
.fxp-places span{font-size:13px;color:var(--muted)}
.fxp-places i{color:var(--primary);opacity:0;transition:.3s}
.fxp-places a:hover i{opacity:1}
@media (max-width:980px){.fxp-steps{grid-template-columns:1fr 1fr;row-gap:36px}.fxp-steps::before{display:none}}
@media (max-width:640px){
  .fxp-steps{grid-template-columns:1fr;gap:0;padding-left:26px;border-left:1px solid var(--border)}
  .fxp-steps li{padding:0 0 30px}
  .fxp-steps li::before{left:-33px;top:0}
  .fxp-steps span{position:static;display:block;margin-bottom:10px}
  .fxp-places strong{font-size:19px}
}

/* Contact */
.fxp-contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:32px;align-items:start}
.fxp-contact-side{display:grid;gap:20px}
.fxp-contact-wa{display:grid;grid-template-columns:48px 1fr 20px;align-items:center;gap:16px;padding:20px 22px;border-radius:16px;background:#16a34a;color:#fff!important;text-decoration:none;transition:transform .25s var(--fx-ease),background .25s}
.fxp-contact-wa:hover{transform:translateY(-3px);background:#15803d}
.fxp-contact-wa>i:first-child{width:48px;height:48px;display:grid;place-items:center;border-radius:12px;background:rgba(255,255,255,.18);font-size:24px}
.fxp-contact-wa strong,.fxp-contact-wa small{display:block;color:#fff!important}
.fxp-contact-wa strong{font-size:17px}
.fxp-contact-wa small{opacity:.85;font-size:13px;margin-top:2px}
.fxp-contact-list{list-style:none;margin:0;padding:6px 22px;border:1px solid var(--border);border-radius:16px;background:var(--bg-card)}
.fxp-contact-list li{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--border-light);color:var(--text);font-size:15px}
.fxp-contact-list li:last-child{border-bottom:0}
.fxp-contact-list i{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--primary)}
.fxp-contact-list small{display:block;font:600 11px/1.4 var(--fx-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.fxp-contact-list a{color:var(--text);text-decoration:none}.fxp-contact-list a:hover{color:var(--primary)}
.fxp-contact-book .fxp-btn{align-self:flex-start;margin-top:18px}
.fxp-contact-form{padding:clamp(24px,4vw,40px)}
.fxp-contact-form h2{margin:0 0 6px;font-size:28px;letter-spacing:-.03em;color:var(--text)}
.fxp-contact-form>p{margin:0 0 24px;color:var(--text-2)}
.fxp-btn-block{width:100%;justify-content:center}
.fxp-form-note{margin:0;text-align:center;font-size:13px;color:var(--muted)}
.fxp-faq a{color:var(--primary)}
@media (max-width:980px){.fxp-contact{grid-template-columns:1fr}}

/* Services index */
.fxp-service-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.fxp-inline-badge{display:inline-flex;align-items:center;padding:5px 10px;border-radius:999px;background:color-mix(in srgb,var(--fx-warm) 16%,transparent);color:var(--fx-warm);font:700 11px/1 var(--fx-mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.fxp-tags-sm{margin-top:18px}.fxp-tags-sm li{font-size:12px;padding:5px 10px;color:var(--text-2)}
.fxp-linkchips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:12px}
.fxp-linkchips a{display:inline-flex;align-items:center;gap:10px;padding:14px 20px;border:1px solid var(--border);border-radius:999px;background:var(--bg-card);color:var(--text);font-weight:600;font-size:15px;text-decoration:none;transition:border-color .2s,transform .2s,color .2s}
.fxp-linkchips a i{font-size:12px;color:var(--muted);transition:transform .2s,color .2s}
.fxp-linkchips a:hover{border-color:var(--primary);transform:translateY(-2px)}
.fxp-linkchips a:hover i{color:var(--primary);transform:translateX(3px)}

/* Industries */
.fxp-industry{gap:14px}
.fxp-industry-head{display:flex;align-items:center;gap:16px}
.fxp-industry-head .fxp-icon{margin:0}
.fxp-industry h2{margin:0;font-size:24px;letter-spacing:-.02em;color:var(--text)}
.fxp-industry-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-top:auto;padding-top:20px;border-top:1px solid var(--border)}
.fxp-industry-proof strong{display:block;font-size:32px;line-height:1;font-weight:800;letter-spacing:-.04em;color:var(--fx-warm)}
.fxp-industry-proof span{display:block;margin-top:6px;font-size:12px;color:var(--muted)}
.fxp-industry .fxp-more{padding:0;text-align:right}
@media (max-width:640px){.fxp-industry-foot{flex-direction:column;align-items:flex-start}.fxp-industry .fxp-more{text-align:left}}

/* Portfolio */
.fxp-pf-hero .three-stage{margin:0}
.fxp-pf-stats{display:flex;flex-wrap:wrap;gap:28px 40px;margin-top:36px;padding-top:28px;border-top:1px solid var(--border)}
.fxp-pf-stats strong{display:block;font-size:30px;line-height:1;font-weight:800;letter-spacing:-.04em;color:var(--text)}
.fxp-pf-stats span{display:block;margin-top:6px;font-size:13px;color:var(--muted)}
.fxp-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:40px}
html[data-theme] .fxp-filters .filter-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;border:1px solid var(--border)!important;background:var(--bg-card)!important;color:var(--text-2)!important;font:600 14px/1 inherit;cursor:pointer;transition:border-color .2s,background .2s,color .2s}
html[data-theme] .fxp-filters .filter-btn span{font:600 11px/1 var(--fx-mono);padding:3px 6px;border-radius:6px;background:var(--bg-alt);color:var(--muted)}
html[data-theme] .fxp-filters .filter-btn:hover{border-color:var(--primary)!important;color:var(--text)!important}
html[data-theme] .fxp-filters .filter-btn.active{background:var(--text)!important;border-color:var(--text)!important;color:var(--bg)!important}
html[data-theme] .fxp-filters .filter-btn.active span{background:color-mix(in srgb,var(--bg) 20%,transparent);color:var(--bg)}
.fxp-pf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
html[data-theme] .fxp-pf-card{display:flex;flex-direction:column;border:1px solid var(--border)!important;border-radius:20px!important;background:var(--bg-card);overflow:hidden;cursor:pointer;transition:transform .3s var(--fx-ease),border-color .3s;box-shadow:none!important}
html[data-theme] .fxp-pf-card:hover,html[data-theme] .fxp-pf-card:focus-visible{transform:translateY(-4px);border-color:color-mix(in srgb,var(--primary) 55%,var(--border))!important;outline:0}
.fxp-pf-frame{padding:12px 12px 0;background:linear-gradient(180deg,var(--bg-alt),var(--bg-card))}
.fxp-pf-bar{display:flex;align-items:center;gap:5px;padding:8px 10px;border:1px solid var(--border);border-bottom:0;border-radius:10px 10px 0 0;background:var(--bg-sunken,var(--bg))}
.fxp-pf-bar i{width:7px;height:7px;border-radius:50%;background:var(--border)}
.fxp-pf-bar i:nth-child(1){background:#ff6b5f}.fxp-pf-bar i:nth-child(2){background:#f8bd3c}.fxp-pf-bar i:nth-child(3){background:#2fcd56}
.fxp-pf-bar span{margin-left:8px;font:500 10.5px/1 var(--fx-mono);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fxp-pf-shot{aspect-ratio:16/10;overflow:hidden;border:1px solid var(--border);border-top:0;background:#fff}
.fxp-pf-shot img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 0;transition:object-position 5s cubic-bezier(.45,0,.55,1)}
.fxp-pf-card:hover .fxp-pf-shot img,.fxp-pf-card:focus-visible .fxp-pf-shot img{object-position:50% 100%}
.fxp-pf-cover{aspect-ratio:16/9.6;display:grid;place-items:center;position:relative;overflow:hidden}
.fxp-pf-cover i{font-size:44px;color:rgba(255,255,255,.9)}
.fxp-pf-cover::after{content:"";position:absolute;inset:0;background:radial-gradient(60% 60% at 80% 10%,rgba(255,255,255,.18),transparent 60%)}
.fxp-pf-body{display:flex;flex-direction:column;gap:8px;flex:1;padding:20px 22px 22px}
.fxp-pf-meta{display:flex;justify-content:space-between;gap:8px;font:600 11px/1 var(--fx-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--primary)}
.fxp-pf-meta span:last-child{color:var(--muted)}
.fxp-pf-body h3{margin:4px 0 0;font-size:18px;line-height:1.3;letter-spacing:-.02em;color:var(--text)}
.fxp-pf-client{margin:0;font-size:13px;color:var(--muted)}
.fxp-pf-result{margin-top:8px;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--fx-warm) 10%,transparent);border:1px solid color-mix(in srgb,var(--fx-warm) 22%,transparent);font-size:14px;font-weight:700;line-height:1.4;color:var(--text)}
.fxp-pf-result small{display:block;margin-bottom:4px;font:600 10px/1 var(--fx-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--fx-warm)}
.fxp-pf-body .fxp-more{margin-top:auto;padding-top:12px;font-weight:700;font-size:14px;color:var(--primary)}
.fxp-pf-empty{text-align:center;padding:60px 20px;color:var(--text-2)}
@media (max-width:1024px){.fxp-pf-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){
  .fxp-pf-grid{grid-template-columns:1fr}
  .fxp-filters{flex-wrap:nowrap;overflow-x:auto;margin-inline:-20px;padding:0 20px 6px;scrollbar-width:none}
  .fxp-filters::-webkit-scrollbar{display:none}
  html[data-theme] .fxp-filters .filter-btn{flex:0 0 auto}
}
.fxp-pf-hero .fxp-hero-split{align-items:center}
.fxp-stats{padding-inline:max(0px,calc((100% - var(--fx-shell)) / 2))}
.fxp-stats div:first-child{padding-left:max(20px,24px)}
@media (max-width:1220px){.fxp-stats{padding-inline:20px}}
/* Legacy .eyebrow inside fx pages (city pages) → fx style */
html[data-theme] .fxp .eyebrow{display:inline-flex;align-items:center;gap:10px;font:600 12px/1 var(--fx-mono)!important;letter-spacing:.14em!important;text-transform:uppercase;color:var(--fx-warm)!important;background:none!important;padding:0!important;border:0!important}
html[data-theme] .fxp .eyebrow::before{content:"";width:22px;height:1px;background:currentColor;opacity:.7}
/* Buttons: beat legacy light-theme link colours */
html[data-theme] .fxp-btn-primary:not(#_),html[data-theme] .fxp-btn-primary:not(#_) *,html[data-theme] .ff-news-form button:not(#_),html[data-theme] .fx-btn-primary:not(#_),html[data-theme] .fx-btn-primary:not(#_) *{color:#fff!important}
html[data-theme] .fxp-btn-ghost:not(#_),html[data-theme] .fx-btn-ghost:not(#_){color:var(--text)!important}
.fxp-included{gap:14px}.fxp-included .fxp-card{padding:22px}.fxp-included .fxp-icon{margin-bottom:14px;width:40px;height:40px;font-size:16px}.fxp-included h3{font-size:17px}

/* ── Site-wide promo bar ─────────────────────────────────────── */
.fx-promo{position:relative;z-index:60;background:linear-gradient(90deg,#064e3b,#047857 40%,#0b1530);color:#fff}
.fx-promo a{display:flex;align-items:center;justify-content:center;gap:12px;min-height:40px;padding:8px 48px 8px 16px;color:#fff!important;text-decoration:none;font-size:14px;line-height:1.35}
.fx-promo__tag{flex:none;padding:3px 8px;border-radius:999px;background:#25d366;color:#052e16!important;font:700 11px/1 var(--fx-mono);letter-spacing:.08em;text-transform:uppercase}
.fx-promo__text{color:#ecfdf5!important}
.fx-promo__cta{flex:none;font-weight:700;color:#fff!important;text-decoration:underline;text-underline-offset:3px}
.fx-promo a:hover .fx-promo__cta i{transform:translateX(3px)}.fx-promo__cta i{transition:transform .2s}
.fx-promo__x{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font-size:18px;line-height:1;cursor:pointer}
.fx-promo__x:hover{background:rgba(255,255,255,.22)}
@media (max-width:640px){.fx-promo a{justify-content:flex-start;font-size:13px;gap:8px}.fx-promo__cta{display:none}}

/* Services index: top sellers */
.fxp-service.is-top{border-color:color-mix(in srgb,#16a34a 40%,var(--border))}
.fxp-badge-top{background:color-mix(in srgb,#16a34a 16%,transparent)!important;color:#16a34a!important}
html[data-theme="light"] .fxp-badge-top{color:#15803d!important}
/* promo bar in brand blue (matches header buttons), WhatsApp green only as a small accent */
.fx-promo{background:linear-gradient(90deg,#1e40af,#2563eb 50%,#1d4ed8)!important}
.fx-promo__tag{background:#fff!important;color:#1d4ed8!important}
.fx-promo__tag::before{content:"";display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:#25d366;vertical-align:1px}
.fx-promo__text{color:#e0e7ff!important}
/* Portfolio: cancel the legacy dark "title band" shade (theme.css) on the new white card body */
html[data-theme] .portfolio-item.fxp-pf-card > .fxp-pf-body:not(#_){box-shadow:none!important;background:transparent!important}
html[data-theme="light"] .fxp-pf-card .fxp-pf-body h3:not(#_){color:#0b1530!important}
