/* Salah El Yaakoubi (El Morologuista) — shared design system. Loaded on every page.
 * Bump ?v=N in the <link> whenever this file changes.
 * Fonts: Bricolage Grotesque (headings), Noto Sans (body), Poppins (numbers).
 */

/* ===== RESET ===== */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{overflow-x:clip;font-family:'Noto Sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif;line-height:1.55;color:var(--fc-ink);background:var(--fc-cloud);-webkit-font-smoothing:antialiased}
[id]{scroll-margin-top:112px}
img{max-width:100%;display:block;height:auto}
a{color:var(--fc-blue);text-decoration:none}
a:hover{text-decoration:underline}
code,pre{overflow-wrap:anywhere;word-break:break-word}
.skip-link{position:absolute;left:-9999px;top:0;z-index:9999;padding:10px 14px;background:#0A2540;color:#fff;border-radius:0 0 6px 0;text-decoration:none}
.skip-link:focus{left:0}
pre{white-space:pre-wrap}
h1,h2,h3,h4{font-family:'Bricolage Grotesque','Noto Sans',sans-serif;line-height:1.15;letter-spacing:-.01em;color:var(--fc-ink);font-weight:700}
.num{font-family:'Poppins','Noto Sans',sans-serif;font-feature-settings:"tnum"}

/* ===== DESIGN TOKENS ===== */
:root{
  --fc-blue:#0A6EBD; --fc-blue-dark:#08518E; --fc-blue-soft:#E8F1FB; --fc-blue-glow:rgba(10,110,189,.18);
  --fc-red:#D6202E; --fc-red-dark:#C1121F; --fc-red-soft:#FDECEE;
  --fc-orange:#FF7A1A; --fc-orange-dark:#E5640A; --fc-orange-soft:#FFF0E2;
  --fc-wa:#0E7A6E; --fc-wa-dark:#0B5E54;
  --fc-gold:#FFB020;
  --fc-ink:#0B1120; --fc-ink-2:#1B2433; --fc-slate:#51607A; --fc-slate-2:#7A8699; --fc-cloud:#F6F8FB; --fc-line:#E4E9F2; --fc-white:#fff;
  --fc-shadow:0 2px 10px rgba(11,17,32,.06);
  --fc-shadow-md:0 8px 28px rgba(11,17,32,.08);
  --fc-shadow-lg:0 18px 50px rgba(11,17,32,.12);
  --fc-radius:14px; --fc-radius-lg:22px; --fc-radius-sm:9px; --fc-radius-pill:999px;
  --fc-ease:cubic-bezier(.16,1,.3,1); --fc-spring:cubic-bezier(.34,1.56,.64,1);
  --fc-maxw:1140px;
  --fc-text-xs:.66rem; --fc-text-sm:.74rem; --fc-text-base:.82rem; --fc-text-md:.88rem;
  --fc-text-lg:.95rem; --fc-text-xl:1.06rem; --fc-text-2xl:1.18rem;
  --fc-text-3xl:clamp(1.22rem,.40rem + 2.4vw,1.62rem);
  --fc-text-hero:clamp(1.45rem,.42rem + 3.4vw,2.20rem);
}
body{font-size:var(--fc-text-base)}

/* ===== INLINE SVG ICONS (replace emoji glyphs) =====
   Each .icn is 1em×1em so it scales with its slot's font-size, exactly like
   the emoji glyph it replaces. stroke=currentColor → inherits the slot color
   (blue in .pin/.license-badge/.qf-ic, white on red/green buttons, gold in
   .stars). Filled variants (.icn-fill / .stars .icn) for stars/ratings.
   Slots that size <svg> explicitly (e.g. .qf-ic svg{26px}) win by specificity. */
.icn{width:1em;height:1em;display:inline-block;vertical-align:-0.14em;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.icn-fill{fill:currentColor;stroke:none}
.stars .icn{fill:currentColor;stroke:none}

/* ===== LAYOUT ===== */
.container{max-width:var(--fc-maxw);margin:0 auto;padding:0 20px}
.section{padding:64px 0}
.section.tight{padding:40px 0}
.section.alt{background:var(--fc-white)}
.section.ink{background:linear-gradient(160deg,var(--fc-ink) 0%,var(--fc-ink-2) 100%);color:#EAF0F8}
.section.ink h1,.section.ink h2,.section.ink h3{color:#fff}
.section-head{max-width:680px;margin:0 auto 36px;text-align:center}
.section-head .eyebrow{display:inline-block;font-family:'Poppins',sans-serif;font-weight:600;font-size:var(--fc-text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--fc-blue);background:var(--fc-blue-soft);padding:5px 12px;border-radius:var(--fc-radius-pill);margin-bottom:14px}
.section.ink .section-head .eyebrow{background:rgba(255,255,255,.12);color:#9FC7EE}
.section-head h2{font-size:var(--fc-text-3xl);margin-bottom:10px}
.section-head p{color:var(--fc-slate);font-size:var(--fc-text-md)}
.section.ink .section-head p{color:#B9C6D6}
.center{text-align:center}

/* ===== BUTTONS ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-family:'Noto Sans',sans-serif;font-weight:700;font-size:var(--fc-text-base);padding:11px 22px;border-radius:5px;border:0;cursor:pointer;text-decoration:none;transition:transform .2s var(--fc-ease),box-shadow .2s var(--fc-ease),background .2s;white-space:nowrap;line-height:1.2}
.btn:hover{text-decoration:none;transform:translateY(-1px)}
.btn svg{width:1.05em;height:1.05em;flex:none}
.btn-phone{background:var(--fc-blue);color:#fff;box-shadow:0 6px 18px rgba(10,110,189,.28)}
.btn-phone:hover{background:var(--fc-blue-dark);box-shadow:0 10px 26px rgba(10,110,189,.38)}
.btn-wa{background:var(--fc-wa);color:#fff;box-shadow:0 6px 18px rgba(14,122,110,.26)}
.btn-wa:hover{background:var(--fc-wa-dark);box-shadow:0 10px 26px rgba(14,122,110,.36)}
.btn-blue{background:var(--fc-blue);color:#fff;box-shadow:0 6px 18px var(--fc-blue-glow)}
.btn-blue:hover{background:var(--fc-blue-dark)}
.btn-outline{background:transparent;color:var(--fc-blue);border:2px solid var(--fc-blue)}
.btn-outline:hover{background:var(--fc-blue);color:#fff}
.btn-ghost{background:rgba(255,255,255,.14);color:#fff;border:2px solid rgba(255,255,255,.4)}
.btn-ghost:hover{background:rgba(255,255,255,.22)}
.btn-block{display:flex;width:100%}
.btn-lg{padding:13px;font-size:.78rem;flex:1 1 auto;min-width:0;white-space:nowrap}
.hero .cta-row{display:flex;flex-wrap:nowrap;gap:10px}
.hero .cta-row .btn-phone{flex:0 1 auto}
.hero .cta-row .btn-wa{flex:0 1 auto}

/* ===== EMERGENCY TOPBAR ===== */
.fc-topbar{position:sticky;top:0;z-index:120;display:flex;align-items:center;justify-content:center;gap:.6rem;background:linear-gradient(90deg,#0A6EBD 0%,#0876C0 100%);color:#fff;padding:7px 14px;min-height:36px;font-size:var(--fc-text-sm);font-weight:600;text-align:center}
.fc-topbar .dot{width:8px;height:8px;border-radius:50%;background:#FFB020;animation:fc-pulse 1.6s infinite;flex:none}
.fc-topbar a{color:#fff;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;gap:.35rem}
.fc-topbar a:hover{text-decoration:underline}
@keyframes fc-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}

/* ===== STICKY NAV ===== */
.fc-nav{position:sticky;top:36px;z-index:110;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 22px;background:rgba(255,255,255,.97);backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2);border-bottom:1px solid var(--fc-line)}
.fc-nav .brand{display:flex;align-items:center;font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:1.18rem;color:var(--fc-ink);text-decoration:none;white-space:nowrap}
.fc-nav .brand:hover{text-decoration:none}
.fc-nav .brand .lg{width:30px;height:30px;flex:0 0 30px;margin-right:9px}
.fc-nav .brand .bt{display:flex;flex-direction:column;line-height:1.05}
.fc-nav .brand b{color:var(--fc-blue);font-size:.62rem;font-weight:600;line-height:1.2;margin-top:1px;letter-spacing:.02em}
.fc-nav .nav-links{display:flex;gap:4px;margin-left:6px}
.fc-nav .nav-links a{padding:9px 13px;border-radius:8px;font-size:var(--fc-text-sm);font-weight:600;color:var(--fc-slate);text-decoration:none}
.fc-nav .nav-links a:hover{background:rgba(0,0,0,.04);color:var(--fc-blue);text-decoration:none}
.fc-nav .nav-cta{display:flex;align-items:center;gap:.5rem}
/* collapse to hamburger on tablet/laptop so nav-cta doesn't overflow */
@media(max-width:1100px){.fc-nav .nav-links{display:none!important}.fc-nav .nav-cta{display:none!important}.fc-nav .menu-btn{display:block!important}}
@media(max-width:768px){.fc-nav{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#fff!important}}

/* Mobile menu toggle */
.fc-nav .menu-btn{display:none;background:none;border:0;cursor:pointer;padding:6px;color:var(--fc-ink)}
.fc-nav .menu-btn span{display:block;width:24px;height:2px;background:var(--fc-ink);margin:5px 0;transition:.25s}
.fc-mobile{display:none;position:fixed;inset:0;z-index:130;background:#fff;padding:80px 24px 30px}
.fc-mobile > a{display:block;font-size:1.12rem;font-weight:700;color:var(--fc-ink);padding:14px 0;border-bottom:1px solid var(--fc-line);text-decoration:none}
.fc-mobile > a:hover{color:var(--fc-blue)}
.fc-mobile .close{position:absolute;top:20px;right:24px;font-size:1.6rem;background:none;border:0;color:var(--fc-ink);cursor:pointer}
.fc-mobile .cta-row{display:flex;justify-content:space-between;gap:12px;margin-top:22px}
.fc-mobile .cta-row .btn{flex:1 1 50%;min-width:0;border-radius:5px;padding:.75rem .6rem;font-size:.92rem}
.fc-mobile .cta-row .btn-phone{justify-content:center;background:var(--fc-blue);color:#fff;box-shadow:0 6px 16px rgba(10,110,189,.28)}
.fc-mobile .cta-row .btn-wa{justify-content:center;background:var(--fc-wa);color:#fff;box-shadow:0 6px 16px rgba(14,122,110,.28)}

/* ===== FLOATING WHATSAPP ===== */
.fc-fab{display:none !important;position:fixed;bottom:20px;right:20px;z-index:99;width:58px;height:58px;border-radius:50%;background:var(--fc-wa);color:#fff;align-items:center;justify-content:center;box-shadow:0 8px 24px rgba(14,122,110,.4);text-decoration:none;transition:transform .3s var(--fc-spring)}
.fc-fab:hover{transform:scale(1.08) translateY(-2px);text-decoration:none}
.fc-fab svg{width:30px;height:30px;fill:#fff}

/* ===== MOBILE STICKY CALL BAR ===== */
.fc-callbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:115;background:#fff;border-top:1px solid var(--fc-line);box-shadow:0 -6px 20px rgba(11,17,32,.08);padding:8px 12px;gap:8px}
.fc-callbar a{flex:1;font-size:.8rem;padding:.6rem .8rem}

/* ===== BADGES / PILLS / STARS ===== */
.badge{display:inline-flex;align-items:center;gap:.4rem;font-family:'Poppins',sans-serif;font-weight:600;font-size:var(--fc-text-xs);padding:5px 12px;border-radius:var(--fc-radius-pill);background:var(--fc-white);color:var(--fc-ink);border:1px solid var(--fc-line);margin-bottom:6px}
.badge-emergency{background:var(--fc-red);color:#fff;border-color:transparent}
.badge-heat{background:var(--fc-orange);color:#fff;border-color:transparent}
.badge-trust{background:var(--fc-blue-soft);color:var(--fc-blue-dark);border-color:transparent}
.stars{display:inline-flex;align-items:center;gap:2px;color:var(--fc-gold);font-size:1.05em}
.stars .s{line-height:1}
.stars+.score{font-family:'Poppins',sans-serif;font-weight:700;color:var(--fc-ink);margin-left:6px}
.reviews-count{color:var(--fc-slate);font-size:var(--fc-text-sm);margin-left:6px}

/* ===== HERO ===== */
.hero{background:linear-gradient(170deg,#0A2540 0%,#0C2D5C 55%,#08518E 100%);color:#fff;position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(800px 380px at 88% -10%,rgba(255,122,26,.28),transparent 70%);pointer-events:none}
.hero .container{position:relative;z-index:1;padding-top:46px;padding-bottom:54px}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:38px;align-items:center}
.hero .eyebrow-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:16px}
.hero h1{color:#fff;font-size:var(--fc-text-hero);margin-bottom:14px}
.hero h1 .accent{color:var(--fc-orange)}
.hero .sub{font-size:var(--fc-text-md);color:#D6E4F4;max-width:560px;margin-bottom:20px}
.hero .bullets{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:9px}
.hero .bullets li{display:flex;align-items:flex-start;gap:9px;font-size:var(--fc-text-base);color:#F2F7FC}
.hero .bullets .ck{color:var(--fc-wa);font-weight:800;flex:none;margin-top:1px}
.hero .cta-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.hero .proof{font-size:var(--fc-text-sm);color:#AEC9E3;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hero .proof .stars{color:var(--fc-gold)}

/* Hero form card */
.lead-card{background:#fff;color:var(--fc-ink);border-radius:var(--fc-radius-lg);padding:22px;box-shadow:var(--fc-shadow-lg);border:1px solid var(--fc-line)}
.lead-card h3{font-size:var(--fc-text-xl);margin-bottom:4px}
.lead-card .lc-sub{font-size:var(--fc-text-sm);color:var(--fc-slate);margin-bottom:14px}
.lead-card .lc-trust{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--fc-slate);margin-top:12px;padding-top:12px;border-top:1px dashed var(--fc-line);flex-wrap:wrap}
.lc-priv{font-size:.72rem;text-align:center;margin:10px 0 0;opacity:.85;color:var(--fc-slate)}
.lc-priv a{text-decoration:underline}

/* ===== FORM ===== */
.form{display:grid;gap:11px}
.field{display:grid;gap:4px}
.field label{font-size:var(--fc-text-xs);font-weight:600;color:var(--fc-slate)}
.field input,.field select,.field textarea{font-family:inherit;font-size:1rem;padding:.62rem .7rem;border:1.5px solid var(--fc-line);border-radius:10px;background:#fff;color:var(--fc-ink);transition:border-color .15s;width:100%}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--fc-blue);box-shadow:0 0 0 3px var(--fc-blue-glow)}
.field textarea{resize:vertical}
.form .row2{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.form .btn-submit{background:var(--fc-blue);color:#fff;width:100%;margin-top:4px}
.form .btn-submit:hover{background:var(--fc-blue-dark)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ===== TRUST BAR ===== */
.trust-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 18px;padding:12px 16px;background:var(--fc-white);border-bottom:1px solid var(--fc-line)}
.trust-item{display:inline-flex;align-items:center;gap:6px;font-size:var(--fc-text-xs);font-weight:600;color:var(--fc-ink-2);white-space:nowrap}
.trust-item .ic{font-size:1.05rem;flex:none}

/* ===== STEPS ===== */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.step{position:relative;background:var(--fc-white);border:1px solid var(--fc-line);border-radius:var(--fc-radius);padding:26px 22px 22px;text-align:center;box-shadow:var(--fc-shadow)}
.step .num{position:absolute;top:-14px;left:50%;transform:translateX(-50%);width:30px;height:30px;border-radius:50%;background:var(--fc-blue);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem;margin:0;border:3px solid #fff;font-family:"Poppins",sans-serif}
.step h3{font-size:var(--fc-text-lg);margin-bottom:6px}
.step p{font-size:var(--fc-text-sm);color:var(--fc-slate)}
.step-ic{font-size:1.9rem;display:block;margin:6px 0 8px;color:var(--fc-blue)}

/* ===== SERVICE / BENEFIT CARDS ===== */
.grid{display:grid;gap:18px}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-4{grid-template-columns:repeat(4,1fr)}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
.card{background:var(--fc-white);border:1px solid var(--fc-line);border-radius:var(--fc-radius-sm);padding:24px;box-shadow:var(--fc-shadow);transition:transform .2s var(--fc-ease),box-shadow .2s}
.card:hover{transform:translateY(-3px);box-shadow:var(--fc-shadow-md)}
.card .ic{font-size:1.55rem;margin-bottom:10px;display:block}
.card h3{font-size:var(--fc-text-lg);margin-bottom:6px}
.card h3 a{color:inherit}
.card p{font-size:var(--fc-text-sm);color:var(--fc-slate)}
.card .price-pill{display:inline-block;margin-top:10px;font-family:'Poppins',sans-serif;font-weight:700;font-size:var(--fc-text-xs);color:var(--fc-blue-dark);background:var(--fc-blue-soft);padding:4px 10px;border-radius:var(--fc-radius-pill)}
.card .more{display:block;width:100%;text-align:center;margin-top:14px;font-weight:700;font-size:var(--fc-text-sm);color:#fff;background:var(--fc-blue);padding:9px 16px;border-radius:8px;box-shadow:0 4px 12px var(--fc-blue-glow)}
.card:hover .more{background:var(--fc-blue-dark)}

.benefit-card{background:var(--fc-white);border:1px solid var(--fc-line);border-radius:var(--fc-radius);padding:24px;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.benefit-card .ic{font-size:1.3rem;flex:none;width:48px;height:48px;border-radius:12px;background:var(--fc-blue-soft);color:var(--fc-blue-dark);display:flex;align-items:center;justify-content:center}
.benefit-card .ic svg{width:24px;height:24px}
.benefit-card h4{font-family:'Bricolage Grotesque',sans-serif;font-size:var(--fc-text-md);margin-bottom:3px}
.benefit-card p{font-size:var(--fc-text-sm);color:var(--fc-slate)}

/* ===== GALLERY ===== */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gallery-card{border-radius:10px;overflow:hidden;background-size:cover;background-position:center;min-height:220px;display:flex;align-items:flex-end;padding:14px;position:relative;box-shadow:var(--fc-shadow);text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}
.gallery-card::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,37,64,0) 40%,rgba(10,37,64,.72) 100%);pointer-events:none}
.gallery-card:hover{transform:translateY(-3px);box-shadow:var(--fc-shadow-md)}
.gallery-card .cap{display:inline-block;background:rgba(11,17,32,.82);color:#fff;font-size:.68rem;font-weight:600;padding:7px 11px;border-radius:5px;line-height:1.4;position:relative;z-index:1;max-width:100%;box-decoration-break:clone;-webkit-box-decoration-break:clone}

/* ===== AREAS ===== */
.areas-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.area-card{background:var(--fc-white);border:1px solid var(--fc-line);border-radius:var(--fc-radius);padding:14px 14px;text-align:left;display:flex;align-items:center;gap:9px;font-weight:600;font-size:var(--fc-text-sm);color:var(--fc-ink-2);box-shadow:var(--fc-shadow);transition:transform .15s}
.area-card:hover{transform:translateY(-2px);text-decoration:none;color:var(--fc-blue)}
.area-card .pin{flex:0 0 28px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--fc-blue);font-size:1.4rem;line-height:1}

/* ===== HP SERVICES — amianto-style service cards ===== */
.hp-services .svc-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}
.hp-services .area-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:20px;height:100%;background:var(--fc-white);border:1px solid var(--fc-line);border-radius:var(--fc-radius-sm);box-shadow:var(--fc-shadow);transition:transform .15s,box-shadow .15s,border-color .15s;text-decoration:none;color:var(--fc-ink);flex:1 1 calc(33.333% - 12px);max-width:calc(33.333% - 12px);min-width:268px}
.hp-services .area-card:hover{transform:translateY(-2px);box-shadow:var(--fc-shadow-md);text-decoration:none}
.hp-services .area-card .pin{font-size:1.5rem;line-height:1;flex:none}
.hp-services .area-card .sc-name{font-size:var(--fc-text-lg);font-weight:700;color:var(--fc-blue-dark);font-family:'Bricolage Grotesque',sans-serif;line-height:1.2}
.hp-services .area-card .sc-desc{font-size:var(--fc-text-sm);color:var(--fc-slate);line-height:1.5;font-weight:400}
.hp-services .area-card .sc-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;width:100%;margin-top:auto;padding-top:10px;gap:8px 10px}
.hp-services .area-card .sc-price{font-family:'Poppins',sans-serif;font-weight:700;font-size:var(--fc-text-sm);color:var(--fc-blue-dark);background:var(--fc-blue-soft);padding:3px 10px;border-radius:999px;white-space:nowrap}
.hp-services .area-card .sc-more{font-size:var(--fc-text-xs);color:var(--fc-blue-dark);font-weight:700;background:var(--fc-blue-soft);padding:6px 12px;border-radius:8px;white-space:nowrap}
@media(max-width:760px){
  .hp-services .svc-grid{justify-content:center}
  .hp-services .area-card{gap:6px;padding:16px;flex:1 1 calc(50% - 8px);max-width:calc(50% - 8px);min-width:0}
  .hp-services .area-card .pin{font-size:1.7rem}
  .hp-services .area-card .sc-name{font-size:var(--fc-text-base)}
  .hp-services .area-card .sc-desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:.8rem;line-height:1.4;margin-top:2px}
  .hp-services .area-card .sc-foot{flex-direction:column;align-items:stretch;gap:7px;padding-top:10px}
  .hp-services .area-card .sc-price{align-self:flex-start}
  .hp-services .area-card .sc-more{align-self:stretch;text-align:center;background:var(--fc-blue);color:#fff;padding:8px 10px}}
@media(max-width:480px){.hp-services .svc-grid{justify-content:center}}
.map-wrap{border-radius:var(--fc-radius-lg);overflow:hidden;box-shadow:var(--fc-shadow-md);border:1px solid var(--fc-line);line-height:0}
.map-wrap iframe{width:100%;height:340px;border:0}

/* ===== REVIEWS ===== */
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.review-card{background:var(--fc-white);border:1px solid var(--fc-line);border-radius:var(--fc-radius);padding:22px;box-shadow:var(--fc-shadow)}
.review-card .stars{margin-bottom:8px}
.review-card .quote{font-size:var(--fc-text-base);color:var(--fc-ink-2);margin-bottom:12px}
.review-card .who{display:flex;align-items:center;gap:10px}
.review-card .av{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--fc-blue),var(--fc-orange));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-family:'Poppins',sans-serif;flex:none}
.review-card .who b{font-size:var(--fc-text-sm);display:block}
.review-card .who span{font-size:var(--fc-text-xs);color:var(--fc-slate)}
.review-card .gtag{display:inline-flex;align-items:center;gap:5px;font-size:var(--fc-text-xs);color:var(--fc-slate);margin-top:10px;padding-top:10px;border-top:1px dashed var(--fc-line)}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:30px}
.stat{text-align:center;background:var(--fc-blue-soft);border-radius:var(--fc-radius);padding:18px 10px}
.stat .num{font-size:var(--fc-text-2xl);font-weight:700;color:var(--fc-blue-dark);display:block}
.stat .lab{font-size:var(--fc-text-xs);color:var(--fc-slate);margin-top:2px}

/* ===== SUBSIDY BANNER ===== */
.subsidy{background:linear-gradient(135deg,var(--fc-gold),var(--fc-orange));color:#fff;border-radius:var(--fc-radius-lg);padding:26px;display:flex;gap:18px;align-items:center;flex-wrap:wrap;box-shadow:var(--fc-shadow-md)}
.subsidy .ic{font-size:2.2rem;flex:none}
.subsidy h3{color:#fff;font-size:var(--fc-text-xl);margin-bottom:4px}
.subsidy p{color:#D8DEF0;font-size:var(--fc-text-sm)}
.subsidy .btn{margin-left:auto}

/* ===== FAQ (details-based, no JS) ===== */
.faq{display:grid;gap:12px;max-width:820px;margin:0 auto}
.faq details{background:var(--fc-white);border:1px solid var(--fc-line);border-radius:var(--fc-radius-sm);padding:4px 18px;box-shadow:var(--fc-shadow)}
.faq details summary{cursor:pointer;list-style:none;font-weight:700;font-size:var(--fc-text-md);color:var(--fc-ink);padding:14px 0;display:flex;justify-content:space-between;gap:14px;align-items:center}
.faq details summary::-webkit-details-marker{display:none}
.faq details summary::after{content:"+";font-family:'Poppins',sans-serif;font-weight:700;color:var(--fc-blue);font-size:1.1rem;flex:none;transition:transform .2s}
.faq details[open] summary::after{content:"–";transform:rotate(0)}
.faq details .ans{padding:0 0 16px;color:var(--fc-slate);font-size:var(--fc-text-base)}

/* ===== FINAL CTA ===== */
.final-cta{background:linear-gradient(160deg,var(--fc-red) 0%,#B40D1A 100%);color:#fff;text-align:center;padding:56px 0}
.final-cta .badge-emergency{background:rgba(255,255,255,.18);margin-bottom:14px}
.final-cta h2{color:#fff;font-size:var(--fc-text-3xl);margin-bottom:10px}
.final-cta p{color:#FFD9DC;font-size:var(--fc-text-md);max-width:620px;margin:0 auto 22px}
.final-cta .phone-big{display:inline-flex;align-items:center;gap:.5rem;font-family:'Poppins',sans-serif;font-weight:700;font-size:clamp(1.35rem,.75rem + 2.5vw,1.95rem);color:#fff;background:rgba(255,255,255,.14);border:2px solid rgba(255,255,255,.5);padding:.45rem 1.2rem;border-radius:5px;text-decoration:none;margin-bottom:18px}
.final-cta .phone-big:hover{background:rgba(255,255,255,.24);text-decoration:none}
.final-cta .cta-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.final-cta .trust-line{margin-top:18px;font-size:.95rem;line-height:1.6;color:#FFD9DC}

/* ===== BREADCRUMB ===== */
.breadcrumb{font-size:var(--fc-text-xs);color:var(--fc-slate);padding:14px 20px;max-width:var(--fc-maxw);margin:0 auto}
.breadcrumb a{color:var(--fc-slate)}
.breadcrumb a:hover{color:var(--fc-blue)}
.breadcrumb span{margin:0 6px;color:var(--fc-slate-2)}

/* ===== TOWN QUICK-FACTS + HOOK CALLOUT ===== */
.quickfacts{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}
.qf{display:flex;align-items:center;gap:10px;background:var(--fc-white);border:1px solid var(--fc-line);border-radius:var(--fc-radius);padding:12px 14px;box-shadow:var(--fc-shadow)}
.qf-ic{flex:0 0 42px;width:42px;height:42px;display:flex !important;align-items:center;justify-content:center;background:var(--fc-blue-soft);color:var(--fc-blue);border-radius:10px}.qf-ic svg{width:26px;height:26px;display:block}
.qf b{display:block;font-size:var(--fc-text-sm);color:var(--fc-ink);line-height:1.2}
.qf span{display:block;font-size:var(--fc-text-xs);color:var(--fc-slate);margin-top:2px}
.town-hook{background:var(--fc-blue-soft);border-left:4px solid var(--fc-blue);border-radius:0 var(--fc-radius) var(--fc-radius) 0;padding:16px 18px;margin:20px 0;font-size:var(--fc-text-base);color:var(--fc-ink-2)}
.town-hook p{margin:0;line-height:1.6}
@media(max-width:760px){.quickfacts{grid-template-columns:1fr 1fr}}

/* ===== LICENSE BADGES ===== */
.license-badges{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.license-badge{background:var(--fc-white);border:1.5px solid var(--fc-line);border-radius:var(--fc-radius);padding:10px 14px;font-size:var(--fc-text-xs);color:var(--fc-ink-2);display:flex;align-items:center;gap:8px;font-weight:600;box-shadow:var(--fc-shadow)}
.license-badge .ic{color:var(--fc-blue);font-size:1.1rem}
.license-badge b{color:var(--fc-blue-dark);font-family:'Poppins',sans-serif}

/* ===== FOOTER ===== */
.fc-footer{background:var(--fc-ink);color:#AEB9CC;padding:48px 0 26px;margin-bottom:0}
.fc-footer .fgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px 28px;margin-bottom:30px}
.fc-footer .f-col-wide{grid-column:1/-1;max-width:560px;margin-bottom:8px}
.fc-footer h4{color:#fff;font-family:'Bricolage Grotesque',sans-serif;font-size:var(--fc-text-md);margin-bottom:12px}
.fc-footer a{color:#AEB9CC;font-size:var(--fc-text-sm);display:block;padding:4px 0}
.fc-footer a:hover{color:#fff;text-decoration:none}
.fc-footer .brand{color:#fff;font-size:1.2rem;margin-bottom:10px}
.fc-footer .nap{font-size:var(--fc-text-sm);line-height:1.7}
.fc-footer .nap a{display:inline;color:#fff;font-weight:700}
.fc-footer .nap br{content:"";display:block;margin-bottom:6px}
.fc-footer .f-zonas-cta{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.08);color:#fff;font-weight:700;font-size:.8rem;text-decoration:none;border:1px solid rgba(255,255,255,.2);transition:.2s}.fc-footer .f-zonas-cta:hover{background:rgba(255,255,255,.18);color:#fff}.fc-footer .f-zonas-cta .icn{width:.9rem;height:.9rem;flex:0 0 .9rem}
.fc-footer .fbar{border-top:1px solid rgba(255,255,255,.1);padding-top:18px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:var(--fc-text-xs);color:#7E8A9E}
.fc-footer .fc-credit{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.06);text-align:center;font-size:var(--fc-text-xs);color:#6E798D}
.fc-footer .fc-credit a{display:inline;color:#9AA6BC;font-weight:600}
.fc-footer .fc-credit a:hover{color:#fff}
.fc-footer .f-col-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:26px}
  .grid.cols-3,.grid.cols-4{grid-template-columns:repeat(2,1fr)}
  .areas-grid{grid-template-columns:repeat(3,1fr)}
  .reviews-grid{grid-template-columns:1fr 1fr}
  .stats-row{grid-template-columns:repeat(2,1fr)}
  .fc-footer .fgrid{grid-template-columns:1fr 1fr}
  .fc-nav .nav-links{display:none}
  .fc-nav .menu-btn{display:block}
  .fc-nav .brand{font-size:1.04rem}
  .fc-nav .brand .lg{width:30px;height:30px}
  .fc-nav .nav-cta{display:none}
  .section{padding:38px 0}
  .steps{grid-template-columns:1fr;gap:14px}
  .grid.cols-3,.grid.cols-4,.grid.cols-2{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:1fr 1fr}
  .areas-grid{grid-template-columns:1fr 1fr}
  .reviews-grid{grid-template-columns:1fr}
  .trust-bar{grid-template-columns:1fr 1fr;gap:10px}
  .fc-callbar{display:flex}
  .fc-fab{display:flex;bottom:68px;width:52px;height:52px}
  .fc-fab svg{width:26px;height:26px}
  .fc-footer{padding:42px 0 60px}
  .form .row2{grid-template-columns:1fr}
  .subsidy .btn{margin-left:0;width:100%}
}
@media(max-width:760px){
  .fc-footer{padding:38px 0 60px}}

/* ===== CONTENT PROSE ===== */
.prose{max-width:760px;margin:0 auto}
.prose h2{font-size:var(--fc-text-2xl);margin:30px 0 12px}
.prose h3{font-size:var(--fc-text-lg);margin:22px 0 8px}
.prose p{margin-bottom:14px;color:var(--fc-ink-2)}
.prose ul{margin:0 0 14px 0;padding-left:28px}
.prose li{margin-bottom:7px;color:var(--fc-ink-2);padding-left:10px}
.prose .lead{font-size:var(--fc-text-md);color:var(--fc-slate)}

/* ===== RESPONSIVE ===== */
@media(max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:26px}
  .grid.cols-3,.grid.cols-4{grid-template-columns:repeat(2,1fr)}
  .areas-grid{grid-template-columns:repeat(3,1fr)}
  .reviews-grid{grid-template-columns:1fr 1fr}
  .stats-row{grid-template-columns:repeat(2,1fr)}
  .fc-footer .fgrid{grid-template-columns:1fr 1fr}
  .fc-nav .nav-links{display:none}
  .fc-nav .menu-btn{display:block}
  .fc-nav .brand{font-size:1.04rem}
  .fc-nav .brand .lg{width:30px;height:30px}
  .fc-nav .nav-cta{display:none}
  .section{padding:38px 0}
  .steps{grid-template-columns:1fr;gap:14px}
  .grid.cols-3,.grid.cols-4,.grid.cols-2{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:1fr 1fr}
  .areas-grid{grid-template-columns:1fr 1fr}
  .reviews-grid{grid-template-columns:1fr}
  .trust-bar{grid-template-columns:1fr 1fr;gap:10px}
  .fc-callbar{display:flex}
  .fc-fab{display:flex;bottom:68px;width:52px;height:52px}
  .fc-fab svg{width:26px;height:26px}
  .fc-footer{padding:42px 0 60px}
  .form .row2{grid-template-columns:1fr}
  .subsidy .btn{margin-left:0;width:100%}
}
@media(max-width:760px){
  .fc-nav .brand{font-size:1.02rem}
  .fc-nav .brand .lg{width:28px;height:28px}
  .steps{grid-template-columns:1fr;gap:14px}
  .fc-fab{bottom:68px;width:52px;height:52px}}
@media(max-width:480px){
  .container{padding:0 16px}
  .fc-topbar{font-size:.68rem;gap:.35rem;padding:6px 12px}
  .fc-topbar a{font-weight:700}
  .gallery-grid{grid-template-columns:1fr 1fr}
  .trust-bar{grid-template-columns:1fr}
  .hero .cta-row .btn{flex:1}
}
@media print{.fc-topbar,.fc-nav,.fc-fab,.fc-callbar,.fc-mobile{display:none!important}.final-cta,.hero,.fc-footer{background:#fff!important;color:#000!important}.final-cta *,.hero *,.fc-footer *{color:#000!important}}
/* mobile trust-bar: clean wrapped icon+label strip (no boxes), short labels */
@media(max-width:760px){
  .trust-bar{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 16px;padding:12px 16px}
  .trust-item{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;font-size:12px;line-height:1.3;font-weight:600;white-space:nowrap}
  .trust-item .ic{font-size:1.05rem;line-height:1;flex:none}}
@media(max-width:480px){.trust-bar{padding:10px 14px}}

/* ===== .icn SLOT OVERRIDES (must come after base .icn block) =====
   The base .icn{width:1em;height:1em} overrides earlier slot-specific
   svg{width:...} rules because it is appended later and has equal specificity.
   These rules re-apply the original dimensions using the .icn class itself. */
.btn .icn{width:1.05em;height:1.05em;flex:none}
.fc-fab .icn{width:30px;height:30px;fill:#fff}
@media (max-width:720px){.fc-fab .icn{width:26px;height:26px}}
/* .icn inside qf-ic must be block-level to center in grid circle */
.qf-ic .icn{display:block;width:26px;height:26px;vertical-align:baseline}
@media(min-width:981px){.fc-callbar{display:none}.fc-fab{display:none}}
@media(max-width:760px){.hp-services .svc-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;grid-auto-rows:1fr}.hp-services .area-card{padding:12px;gap:5px;height:100%;min-width:0;max-width:100%;flex:none}.hp-services .area-card .sc-desc{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font-size:.8rem;line-height:1.4;margin-top:2px}}
@media(max-width:760px){
  .steps{grid-template-columns:1fr;gap:14px}
}
/* mobile 1-col stats-row */
@media(max-width:760px){.stats-row{grid-template-columns:repeat(2,1fr)!important;gap:12px}}
@media(max-width:480px){.quickfacts{grid-template-columns:1fr!important}}
/* Salah: benefit cards 2-col on tablet+laptop; 3-col only on big desktop (>=1400px) */
@media(max-width:1399px){.grid.cols-3{grid-template-columns:repeat(2,1fr)!important;gap:14px}}
/* Salah: press wall — 2-column grid of spaced cards */
.press-list{max-width:920px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.press-row{display:flex;align-items:center;gap:12px;padding:16px 18px;background:var(--fc-white);border:1px solid var(--fc-line);border-radius:var(--fc-radius);text-decoration:none;color:inherit;box-shadow:var(--fc-shadow);transition:transform .15s var(--fc-ease),box-shadow .15s var(--fc-ease)}
.press-row:hover{transform:translateY(-1px);box-shadow:var(--fc-shadow-md)}
.pr-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.pr-name{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:var(--fc-text-md);color:var(--fc-ink);line-height:1.2}
.pr-desc{font-size:var(--fc-text-sm);color:var(--fc-slate);line-height:1.45}
.pr-ver{flex:none;font-size:.74rem;font-weight:700;color:var(--fc-blue-dark);background:var(--fc-blue-soft);padding:5px 11px;border-radius:999px;white-space:nowrap}
@media(max-width:760px){.press-list{grid-template-columns:1fr}}
/* Salah: hero secondary CTA not full-width on mobile */
@media(max-width:760px){.hero .cta-row .btn-ghost{flex:0 1 auto}}

/* ===== PREMIUM POLISH (UI brief: alive, premium, intentionally designed) =====
   Progressive enhancement: hero entrance gated behind body.js-anim (scroll-reveal removed per user)
   so content is fully visible without JS. Respects prefers-reduced-motion. */
/* Hero entrance (homepage hero-grid + static heroes) */
body.js-anim .hero .hero-text > *{opacity:0;transform:translateY(18px);animation:fadeUp .7s var(--fc-ease) forwards}
body.js-anim .hero .hero-text > *:nth-child(1){animation-delay:.05s}
body.js-anim .hero .hero-text > *:nth-child(2){animation-delay:.12s}
body.js-anim .hero .hero-text > *:nth-child(3){animation-delay:.19s}
body.js-anim .hero .hero-text > *:nth-child(4){animation-delay:.26s}
body.js-anim .hero .hero-text > *:nth-child(5){animation-delay:.33s}
body.js-anim .hero .hero-text > *:nth-child(6){animation-delay:.40s}
body.js-anim .hero .hero-photo{opacity:0;transform:translateY(22px);animation:fadeUp .8s var(--fc-ease) .25s forwards}
body.js-anim .hero > .container > *:not(.hero-grid){opacity:0;transform:translateY(18px);animation:fadeUp .7s var(--fc-ease) forwards}
body.js-anim .hero > .container > *:not(.hero-grid):nth-child(2){animation-delay:.1s}
body.js-anim .hero > .container > *:not(.hero-grid):nth-child(3){animation-delay:.18s}
body.js-anim .hero > .container > *:not(.hero-grid):nth-child(4){animation-delay:.26s}
@keyframes fadeUp{to{opacity:1;transform:none}}
/* Scroll reveal */
/* Satisfying button press */
.btn{transition:transform .18s var(--fc-spring),box-shadow .2s var(--fc-ease),background .2s,filter .15s}
.btn:active{transform:translateY(0) scale(.97);filter:brightness(.95)}
/* Card hover polish */
.area-card{transition:transform .2s var(--fc-ease),box-shadow .2s var(--fc-ease),border-color .2s}
.area-card:hover{transform:translateY(-3px);box-shadow:var(--fc-shadow-md);border-color:var(--fc-blue)}
.benefit-card{transition:transform .2s var(--fc-ease),box-shadow .2s var(--fc-ease)}
.benefit-card:hover{transform:translateY(-4px);box-shadow:var(--fc-shadow-md)}
.benefit-card .ic{transition:transform .3s var(--fc-spring)}
.benefit-card:hover .ic{transform:scale(1.08) rotate(-4deg)}
.step{transition:transform .2s var(--fc-ease)}
.step:hover{transform:translateY(-3px)}
.trust-item{transition:transform .2s var(--fc-ease)}
.trust-item:hover{transform:translateY(-1px)}
.press-row .pr-ver{transition:transform .2s var(--fc-ease),background .2s}
.press-row:hover .pr-ver{transform:translateX(3px)}
/* FAQ open accent + chevron rotate */
.faq details[open] summary{color:var(--fc-blue)}
.faq details summary::after{transition:transform .25s var(--fc-spring)}
.faq details[open] summary::after{transform:rotate(90deg)}
/* Typography polish */
.hero h1{letter-spacing:-.02em}
.section-head h2{letter-spacing:-.015em}
/* Focus-visible accessibility */
a:focus-visible,button:focus-visible,.btn:focus-visible,.area-card:focus-visible,.press-row:focus-visible,.f-zonas-cta:focus-visible{outline:2.5px solid var(--fc-blue);outline-offset:3px;border-radius:6px}
.fc-fab:focus-visible{outline:2.5px solid var(--fc-blue);outline-offset:4px}
/* Nav link underline micro-interaction */
.fc-nav .nav-links a{position:relative}
.fc-nav .nav-links a::after{content:"";position:absolute;left:13px;right:13px;bottom:4px;height:2px;background:var(--fc-blue);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--fc-spring);border-radius:2px}
.fc-nav .nav-links a:hover::after{transform:scaleX(1)}
/* Brand logo subtle hover */
.fc-nav .brand .lg{transition:transform .3s var(--fc-spring)}
.fc-nav .brand:hover .lg{transform:rotate(-6deg) scale(1.06)}
/* Reduced motion — kill all animation, show everything */
@media (prefers-reduced-motion:reduce){
  *,::before,::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  body.js-anim .hero .hero-text>*,body.js-anim .hero .hero-photo,body.js-anim .hero > .container > *:not(.hero-grid){opacity:1!important;transform:none!important;animation:none!important}
}

/* lone 3rd service card spans full width on mobile (centers Talleres) */
@media(max-width:760px){.hp-services .svc-grid .area-card:last-child:nth-child(odd){grid-column:1/-1;max-width:100%;flex:none}}

/* ===== FOOTER MOBILE: stack 1-col + link lists 2-col (50/50) ===== */
@media(max-width:980px){
  .fc-footer .fgrid{grid-template-columns:1fr!important}
  .fc-footer .f-col-group > div{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}
}

/* ===== v26: dual-track services + hero v2 support (staging) ===== */
.track-head{display:flex;align-items:center;gap:12px;margin:34px 0 14px;scroll-margin-top:120px}
.track-head:first-of-type{margin-top:8px}
.track-head .tk-chip{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:6px 12px;border-radius:999px;flex:none}
.track-head .tk-edu{background:var(--fc-blue-soft);color:var(--fc-blue-dark);border:1px solid rgba(10,110,189,.25)}
.track-head .tk-evt{background:#FFF3E8;color:#B35400;border:1px solid rgba(255,122,26,.3)}
.track-head h3{font-family:'Bricolage Grotesque',sans-serif;font-size:var(--fc-text-xl);color:var(--fc-ink);margin:0;line-height:1.2}
.track-head .tk-line{flex:1;height:1px;background:var(--fc-line)}
.hp-services .area-card .sc-price.fmt{background:#FFF3E8;color:#B35400}
.hp-services .svc-note{margin:18px auto 0;max-width:680px;text-align:center;font-size:var(--fc-text-sm);color:var(--fc-slate);line-height:1.55}
#programas{scroll-margin-top:96px}
@media(max-width:760px){.track-head{margin:26px 0 10px;flex-wrap:wrap;gap:8px}.track-head h3{font-size:var(--fc-text-lg);flex:1 1 100%}.track-head .tk-line{display:none}}
.hp-services .area-card .sc-price.fmt{white-space:normal;line-height:1.3;text-align:left}
@media(max-width:760px){.hero .hero-ar{font-size:11rem;top:-30px;right:-8px}}
a.badge{text-decoration:none}
a.badge:hover{filter:brightness(.95)}

/* ===== v27 — design polish layer ===== */
/* Rhythm */
@media(min-width:1100px){.section{padding:78px 0}}
.section-head{margin-bottom:42px}
/* Editorial kickers + display headings */
.section-head .eyebrow{background:transparent;border:1px solid rgba(10,110,189,.22);color:var(--fc-blue-dark);padding:5px 13px;letter-spacing:.14em}
.section-head .eyebrow::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--fc-orange);margin-right:8px;vertical-align:1px}
.section-head h2{font-family:'Bricolage Grotesque',sans-serif;letter-spacing:-.015em;line-height:1.12}
h1,h2,h3,h4{font-family:'Bricolage Grotesque',sans-serif}
/* Cards: softer, liftier */
.area-card:hover,.benefit-card:hover{border-color:rgba(10,110,189,.35);transform:translateY(-2px);box-shadow:var(--fc-shadow-md)}
.benefit-card{transition:transform .18s var(--fc-ease),box-shadow .18s var(--fc-ease),border-color .18s}
.hp-services .area-card .pin,.benefit-card .ic{background:linear-gradient(135deg,#EAF3FC,#D8E9FA);box-shadow:inset 0 0 0 1px rgba(10,110,189,.12)}
/* Buttons: responsive feel */
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0) scale(.985)}
.btn-wa{box-shadow:0 8px 22px rgba(14,122,110,.30)}
/* Stats: display numbers + accent */
.stat{position:relative;padding-top:22px;overflow:hidden}
.stat::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:26px;height:3px;border-radius:0 0 3px 3px;background:var(--fc-orange)}
.stat .num{font-size:clamp(1.6rem,2.6vw,2.1rem);letter-spacing:-.02em}
.stat .lab{text-transform:uppercase;letter-spacing:.09em;font-weight:600;font-size:.68rem}
/* Press names in display face */
.press-row .pr-name{font-family:'Bricolage Grotesque',sans-serif}
/* FAQ niceties */
.faq details{transition:border-color .15s}
.faq details[open]{border-color:rgba(10,110,189,.35)}
.faq summary:hover{color:var(--fc-blue-dark)}
/* Unified focus ring */
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid rgba(10,110,189,.45);outline-offset:2px;border-radius:4px}

/* ===== v28 — life & beauty layer ===== */
::selection{background:var(--fc-orange);color:#fff}
html{scroll-behavior:smooth;scrollbar-color:#8FB8E0 var(--fc-cloud)}
::-webkit-scrollbar{width:11px}
::-webkit-scrollbar-track{background:var(--fc-cloud)}
::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#3E77A8,#0A6EBD);border-radius:8px;border:2px solid var(--fc-cloud)}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* nav underline animation */
.nav-links a{position:relative}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;border-radius:2px;background:var(--fc-orange);transform:scaleX(0);transform-origin:left;transition:transform .22s var(--fc-ease)}
.nav-links a:hover::after,.nav-links a:focus-visible::after{transform:scaleX(1)}
/* stage-navy finale (was rank-rent emergency red — wrong brand) */
.final-cta{background:linear-gradient(170deg,#0A2540 0%,#0C2D5C 55%,#08518E 100%);position:relative;overflow:hidden}
.final-cta::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 320px at 85% -10%,rgba(255,122,26,.20),transparent 70%),radial-gradient(560px 300px at 8% 115%,rgba(96,178,255,.16),transparent 70%)}
.final-cta .container{position:relative}
.final-cta p,.final-cta .trust-line{color:#D6E4F4}
/* primary CTA shine sweep */
.btn-wa{position:relative;overflow:hidden}
.btn-wa::after{content:"";position:absolute;top:0;bottom:0;left:0;width:45%;background:linear-gradient(105deg,transparent 0%,rgba(255,255,255,.38) 50%,transparent 100%);transform:translateX(-170%) skewX(-18deg);transition:transform .6s var(--fc-ease)}
.btn-wa:hover::after{transform:translateX(340%) skewX(-18deg)}

/* ===== v29 — zonas search ===== */
.zonas-search{max-width:560px;margin:22px auto 6px}
.zonas-search input{width:100%;padding:13px 18px;border-radius:999px;border:2px solid var(--fc-line);font-family:'Noto Sans',sans-serif;font-size:1rem;color:var(--fc-ink);background:var(--fc-white);transition:border-color .2s,box-shadow .2s}
.zonas-search input:focus{outline:none;border-color:var(--fc-blue);box-shadow:0 0 0 4px rgba(10,110,189,.12)}
#zonas-count{display:block;text-align:center;color:var(--fc-slate);font-size:.85rem;margin-top:8px;min-height:1.2em}

/* ===== v30 — cohesion layer (design-review fixes) ===== */
/* soft bridge from navy hero into the body */
.hero{position:relative;overflow:hidden}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;background:linear-gradient(180deg,rgba(246,248,251,0),var(--fc-cloud));pointer-events:none;z-index:1}
.hero .container{z-index:2}
/* cloud sections get a gentle vertical tint so white/cloud alternate reads clearly */
.section:not(.alt){background:linear-gradient(180deg,var(--fc-cloud) 0%,#EEF4FA 100%)}
/* bigger, tighter display headings + roomier section subtitles */
.section-head h2{font-size:clamp(1.65rem,1.1rem + 2.1vw,2.25rem)}
.section-head p{font-size:var(--fc-text-md);line-height:1.65;max-width:620px;margin-left:auto;margin-right:auto}
/* dual-track color coding reaches the cards: education cool, events warm */
#para-eventos .area-card .pin{background:linear-gradient(135deg,#FFF3E8,#FFE4CC);box-shadow:inset 0 0 0 1px rgba(255,122,26,.22);color:#B35400}
#para-eventos .hp-services .area-card .pin svg{color:#B35400}
/* press rows get a touch more presence */
.press-row{align-items:center}
.press-row .pr-name{font-size:1.02rem}

/* ===== v31 — bare icons (no chip backgrounds anywhere) ===== */
.hp-services .area-card .pin,.benefit-card .ic{background:none;box-shadow:none;border-radius:0}
.benefit-card .ic{width:auto;height:auto;min-width:30px}
.benefit-card .ic svg{width:27px;height:27px}
.hp-services .area-card .pin svg{width:26px;height:26px}
.hp-services .area-card .pin,.benefit-card .ic{color:var(--fc-blue-dark)}
#para-eventos .hp-services .area-card .pin{color:#B35400}
#para-eventos .hp-services .area-card .pin svg{color:#B35400}
/* v31b: events track sits AFTER its .track-head — sibling selector (ancestor id never matched) */
.track-head#para-eventos + .areas-grid .area-card .pin{color:#B35400}
.track-head#para-eventos + .areas-grid .area-card .pin svg{color:#B35400}
/* v31c: bare icons get slightly bolder presence (CSS overrides presentation attr) */
.hp-services .area-card .pin svg,.benefit-card .ic svg{stroke-width:2.4}

/* ===== v33 — micro-interactions ===== */
.btn,.q-nav,.q-dot,.menu-btn{overflow:hidden;position:relative}
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,.45);transform:scale(0);animation:rip .6s ease-out forwards;pointer-events:none;z-index:0}
.btn-wa .ripple,.btn-phone .ripple{background:rgba(255,255,255,.5)}
.btn-outline .ripple,.btn-ghost .ripple{background:rgba(10,110,189,.18)}
@keyframes rip{to{transform:scale(1);opacity:0}}
/* timeline nodes ignite on hover */
.tl-node:hover::before{box-shadow:0 0 0 6px rgba(255,122,26,.22)}
.tl-node.tl-hot:hover .tl-year{background:var(--fc-orange);color:#fff}
/* hero primary CTA heartbeat ring */
.hero .btn-wa.btn-lg{position:relative}
.hero .btn-wa.btn-lg::before{content:"";position:absolute;inset:-3px;border-radius:7px;box-shadow:0 0 0 0 rgba(37,211,102,.55);animation:heartbeat 6.5s ease-out infinite;animation-delay:2.5s;pointer-events:none}
@keyframes heartbeat{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}55%{box-shadow:0 0 0 14px rgba(37,211,102,0)}100%{box-shadow:0 0 0 14px rgba(37,211,102,0)}}
@media(prefers-reduced-motion:reduce){.hero .btn-wa.btn-lg::before{display:none}}

/* ===== v34 — scroll-driven motion ===== */
.scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:120;background:linear-gradient(90deg,var(--fc-blue),var(--fc-orange));transform-origin:0 50%;transform:scaleX(0);pointer-events:none}

/* ===== v35 — marker family extensions ===== */
.mk-swipe{background:linear-gradient(100deg,rgba(255,122,26,0) 1%,rgba(255,176,32,.42) 3%,rgba(255,122,26,.38) 96.5%,rgba(255,122,26,0) 98.5%);border-radius:.6em .3em .5em .4em;padding:0 .12em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
mark.mk-swipe{color:inherit;background:linear-gradient(100deg,rgba(255,122,26,0) 1%,rgba(255,176,32,.45) 3%,rgba(255,122,26,.40) 96.5%,rgba(255,122,26,0) 98.5%)}
/* swipe-fill hover for text links */
.swipe-link{background-image:linear-gradient(rgba(10,110,189,.14),rgba(10,110,189,.14));background-repeat:no-repeat;background-size:0% 100%;background-position:0 62%;transition:background-size .28s var(--fc-ease);border-radius:.25em}
.swipe-link:hover,.swipe-link:focus-visible{background-size:100% 100%}
.zona-links a{display:inline-block;padding:.06em .18em;margin:0 .04em;border-radius:.3em;text-decoration:none;color:var(--fc-blue-dark);font-weight:600}
.zona-links a:hover{text-decoration:none}
/* FAB as sticker */
.fc-fab{transform:rotate(-4deg);box-shadow:3px 4px 0 rgba(0,0,0,.32)}
.fc-fab:hover{transform:rotate(0deg) scale(1.06)}

/* ===== v36 — swipe hovers (FAQ + card buttons) ===== */
.faq summary{background-image:linear-gradient(rgba(10,110,189,.10),rgba(10,110,189,.10));background-repeat:no-repeat;background-size:0% 100%;background-position:0 60%;transition:background-size .28s var(--fc-ease);border-radius:.4em}
.faq summary:hover,.faq summary:focus-visible{background-size:100% 100%}
.hp-services .area-card .sc-more{transition:background .22s,color .22s}
.hp-services .area-card:hover .sc-more{background:var(--fc-orange);color:#fff}

/* ===== v37 — touch layer: press-feedback on phones (:active = finger down) ===== */
@media(hover:none){
  .area-card:active,.benefit-card:active,.tl-card:active{transform:scale(.96) !important;transition:transform .08s}
  .hp-services .area-card:active{box-shadow:0 4px 12px rgba(10,110,189,.22)}
  .stat:active{transform:scale(.95)}
  .press-row:active{transform:scale(.98)}
  .swipe-link:active,.faq summary:active{background-size:100% 100%}
  .hp-services .area-card:active .sc-more{background:var(--fc-orange);color:#fff}
  .hero-photo:active{transform:scale(.98) rotate(-1deg)}
  .btn:active{transform:scale(.95)}
  .q-nav:active{transform:translateY(-50%) scale(.9)}
  .tl-card:active{background:var(--fc-blue-soft)}
}

/* ===== v38 — FAQ smooth open ===== */
.faq details[open] .ans{animation:fadeSlide .28s var(--fc-ease)}
@keyframes fadeSlide{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.faq details[open] .ans{animation:none}}

/* ===== v39 — film grain (the Linear/Stripe premium texture) ===== */
body::after{content:"";position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:2147483000;opacity:.032;mix-blend-mode:overlay;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@media(prefers-reduced-motion:reduce){body::after{animation:none}}

/* ===== v40 — research pack: ambient glow + glass ===== */
.area-card:hover,.benefit-card:hover,.tl-card:hover,.press-row:hover{box-shadow:0 10px 30px rgba(10,110,189,.16),0 3px 10px rgba(10,110,189,.10)}
.final-cta .btn-ghost{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-color:rgba(255,255,255,.5);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 6px 18px rgba(0,0,0,.18)}
.hero .btn-ghost{backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-color:rgba(255,255,255,.5);box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}


/* ===== PREMIUM LAYER (Aceternity/CodyHouse adaptations) ===== */
/* Card Spotlight — cursor-tracking radial light on cards */
.hp-services .area-card, .benefit-card, .tl-card {
  position:relative;
}
.hp-services .area-card::after, .benefit-card::after, .tl-card::after {
  content:''; position:absolute; inset:0; border-radius:inherit;
  background:radial-gradient(220px 220px at var(--mx,50%) var(--my,50%),rgba(10,110,189,.10),transparent 65%);
  opacity:0; transition:opacity .3s; pointer-events:none; z-index:0;
}
.hp-services .area-card:hover::after, .benefit-card:hover::after, .tl-card:hover::after {
  opacity:1;
}
.hp-services .area-card > *, .benefit-card > *, .tl-card > * { position:relative; z-index:1; }

/* Moving Border on primary CTA */
.btn-wa.btn-lg {
  position:relative; z-index:0;
}
.btn-wa.btn-lg::after {
  content:''; position:absolute; inset:-2px; border-radius:inherit; z-index:-1;
  background:conic-gradient(from var(--border-angle,0deg),transparent 0%,rgba(255,255,255,.25) 8%,transparent 16%);
  animation:borderSpin 4s linear infinite;
  opacity:0; transition:opacity .3s;
}
.btn-wa.btn-lg:hover::after { opacity:1; }
@property --border-angle {
  syntax:'<angle>';
  initial-value:0deg;
  inherits:false;
}
@keyframes borderSpin { to { --border-angle:360deg; } }

/* Focus Cards */
.hp-services .svc-grid:hover .area-card:not(:hover) {
  opacity:.78; transform:scale(.985);
}
.hp-services .area-card { transition:opacity .3s,transform .18s,box-shadow .18s,border-color .18s; }
