/* ============================================================
   LIMPIEZAS ARIMA v2 — Amplitud aumentada (+13% contenedor)
   container: 1200px → 1360px · secciones +0.5rem · nav 72→76px
   ============================================================ */

/* 1 · RESET */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body { font-family: 'DM Sans', sans-serif; color: #1f2937; line-height: 1.6; background: #fff; -webkit-font-smoothing: antialiased; padding-top: 113px; }
a { text-decoration: none; color: inherit; }
ul, ol { list-style: none; }
img { max-width: 100%; display: block; }
button { cursor: pointer; font-family: inherit; border: none; background: none; }
svg { max-width: 100%; overflow: hidden; }

/* 2 · TOKENS */
:root {
  --blue-950:#172554; --blue-900:#1e3a8a; --blue-800:#1e40af;
  --blue-600:#2563eb; --blue-500:#3b82f6; --blue-400:#60a5fa;
  --blue-100:#dbeafe; --blue-50:#eff6ff;
  --green-700:#15803d; --green-600:#16a34a; --green-400:#4ade80;
  --green-200:#bbf7d0; --green-100:#dcfce7; --green-50:#f0fdf4;
  --yellow:#facc15; --amber-100:#fef3c7;
  --gray-900:#111827; --gray-800:#1f2937; --gray-700:#374151;
  --gray-600:#4b5563; --gray-500:#6b7280; --gray-400:#9ca3af;
  --gray-300:#d1d5db; --gray-200:#e5e7eb; --gray-100:#f3f4f6; --gray-50:#f9fafb;
  --shadow: 0 1px 3px 0 rgb(0 0 0/.1),0 1px 2px -1px rgb(0 0 0/.1);
  --shadow-md:0 4px 6px -1px rgb(0 0 0/.1),0 2px 4px -2px rgb(0 0 0/.1);
  --shadow-lg:0 10px 15px -3px rgb(0 0 0/.1),0 4px 6px -4px rgb(0 0 0/.1);
  --shadow-xl:0 20px 25px -5px rgb(0 0 0/.1),0 8px 10px -6px rgb(0 0 0/.1);
  --radius:.5rem; --radius-lg:.75rem; --radius-xl:1rem; --trans:.22s ease;
}

/* 3 · TYPOGRAPHY */
h1,h2,h3,h4 { font-family:'Montserrat',sans-serif; font-weight:700; line-height:1.2; color:var(--gray-900); }
h1 { font-size:clamp(1.875rem,4vw,3.125rem); }
h2 { font-size:clamp(1.5rem,3vw,2.375rem); }
h3 { font-size:1.125rem; }
p  { color:var(--gray-600); line-height:1.75; }

/* 4 · LAYOUT — ancho completo como la referencia */
.container { max-width:1600px; margin:0 auto; padding:0 3rem; }
.section    { padding:5rem 0; }
.section-alt{ padding:5rem 0; background:var(--gray-50); }
.section-green { padding:5rem 0; background:var(--green-50); }
.sec-head   { text-align:center; max-width:820px; margin:0 auto 3.5rem; }
.sec-head h2 { margin-bottom:.75rem; }
.sec-head p  { color:var(--gray-500); font-size:1.05rem; }
.sec-label  { display:inline-flex; align-items:center; gap:.375rem; background:var(--blue-50); color:var(--blue-600); font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; padding:.35rem .9rem; border-radius:999px; margin-bottom:1rem; }
.sec-label svg { flex-shrink:0; }
.sec-divider { width:64px; height:3px; background:var(--blue-500); border-radius:2px; margin:.75rem auto 0; }
.btn-row    { display:flex; align-items:center; flex-wrap:wrap; gap:.875rem; }

/* 5 · BUTTONS */
.btn { display:inline-flex; align-items:center; gap:.5rem; padding:.8rem 1.875rem; border-radius:var(--radius); font-size:.925rem; font-weight:600; cursor:pointer; transition:all var(--trans); border:2px solid transparent; white-space:nowrap; line-height:1; }
.btn svg { width:16px; height:16px; flex-shrink:0; }
.btn-blue { background:var(--blue-900); color:#fff; border-color:var(--blue-900); }
.btn-blue:hover { background:var(--blue-950); }
.btn-outline-blue { background:transparent; color:var(--blue-900); border-color:var(--blue-900); }
.btn-outline-blue:hover { background:var(--blue-50); }
.btn-outline-white { background:#38bdf8; color:#fff; border-color:#38bdf8; }
.btn-outline-white:hover { background:#0ea5e9; border-color:#0ea5e9; }
.btn-white { background:#fff; color:var(--blue-900); border-color:#fff; }
.btn-white:hover { background:var(--blue-50); }

/* 6 · TOPBAR */
#topbar { background:var(--blue-900); padding:.5rem 0; font-size:.82rem; position:fixed; top:0; left:0; right:0; z-index:1001; line-height:1; }
.topbar-inner { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.topbar-left  { display:flex; align-items:center; gap:1.375rem; flex-shrink:0; }
.topbar-right { display:flex; align-items:center; gap:.625rem; }
.topbar-item  { display:inline-flex; align-items:center; gap:.375rem; color:rgba(255,255,255,.85); white-space:nowrap; }
a.topbar-item:hover { color:#fff; }
.t-icon { width:13px; height:13px; display:block; flex-shrink:0; }
.topbar-sep { width:1px; height:14px; background:rgba(255,255,255,.18); }
.topbar-globe .t-icon { width:14px; height:14px; color:rgba(255,255,255,.6); }
.lang-sw { display:flex; gap:.25rem; }
.lang-btn { display:inline-flex; align-items:center; gap:.3rem; background:none; border:1px solid rgba(255,255,255,.22); color:rgba(255,255,255,.65); padding:.2rem .5rem; border-radius:4px; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; cursor:pointer; transition:all var(--trans); }
.lang-btn:hover, .lang-btn.active { background:rgba(255,255,255,.16); color:#fff; border-color:rgba(255,255,255,.45); }
.lang-flag { display:inline-block; width:16px; height:11px; border-radius:2px; flex-shrink:0; overflow:hidden; }
.lang-flag-es { background:linear-gradient(to bottom,#aa151b 0%,#aa151b 25%,#f1bf00 25%,#f1bf00 75%,#aa151b 75%,#aa151b 100%); }
.lang-flag-ca { background-image:repeating-linear-gradient(to bottom,#f9ca02 0px,#f9ca02 1.57px,#c7311a 1.57px,#c7311a 3.14px); }

/* 7 · HEADER — alçada 72 → 76px */
#site-header { background:#fff; position:fixed; top:37px; left:0; right:0; z-index:1000; border-bottom:1px solid var(--gray-200); }
.nav-inner { display:flex; align-items:center; justify-content:space-between; height:76px; gap:1.75rem; }
.site-logo { display:inline-flex; align-items:center; gap:.7rem; flex-shrink:0; }
.logo-mark { width:44px; height:44px; flex-shrink:0; }
.site-logo-text { display:flex; flex-direction:column; line-height:1.2; }
.site-logo-name { font-family:'Montserrat',sans-serif; font-weight:700; font-size:1.075rem; color:var(--blue-900); }
.site-logo-tagline { font-size:.7rem; color:var(--gray-500); }
.nav-menu { display:flex; align-items:center; gap:.2rem; }
.nav-link { display:inline-flex; align-items:center; gap:.3rem; padding:.5rem .95rem; font-size:.9rem; font-weight:500; color:var(--gray-700); border-radius:var(--radius); transition:color var(--trans),background var(--trans); white-space:nowrap; cursor:pointer; }
.nav-link:hover, .nav-link.active { color:var(--blue-900); background:var(--blue-50); }
.n-icon { width:14px; height:14px; transition:transform var(--trans); display:block; }
.nav-has-dropdown { position:relative; }
.nav-dropdown { position:absolute; top:calc(100% + 10px); left:0; background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-xl); box-shadow:var(--shadow-xl); min-width:272px; padding:.5rem; list-style:none; opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity var(--trans),visibility var(--trans),transform var(--trans); z-index:200; }
.nav-has-dropdown:hover .nav-dropdown { opacity:1; visibility:visible; transform:translateY(0); }
.nav-has-dropdown:hover .n-icon { transform:rotate(180deg); }
.nav-dropdown li a { display:flex; align-items:center; gap:.75rem; padding:.65rem .95rem; font-size:.875rem; font-weight:500; color:var(--gray-800); border-radius:var(--radius); transition:background var(--trans); }
.nav-dropdown li a:hover { background:var(--blue-50); color:var(--blue-900); }
.dd-icon { width:34px; height:34px; flex-shrink:0; background:var(--blue-50); color:var(--blue-500); border-radius:6px; display:flex; align-items:center; justify-content:center; }
.dd-icon svg { width:16px; height:16px; }
.nav-cta { display:inline-flex; align-items:center; gap:.5rem; background:var(--blue-900); color:#fff; padding:.65rem 1.375rem; border-radius:var(--radius); font-size:.9rem; font-weight:600; white-space:nowrap; transition:background var(--trans); flex-shrink:0; margin-left:.5rem; }
.nav-cta:hover { background:var(--blue-950); color:#fff; }
.nav-cta svg { width:15px; height:15px; flex-shrink:0; }
.nav-hamburger { display:none; flex-direction:column; gap:5px; padding:.5rem; cursor:pointer; }
.nav-hamburger span { display:block; width:22px; height:2px; background:var(--gray-800); border-radius:2px; transition:all var(--trans); }

/* 8 · PAGE HERO — inner pages always centered */
.page-hero { position:relative; min-height:440px; background-size:cover; background-position:center; display:flex; align-items:center; }
.page-hero-overlay { position:absolute; inset:0; background:linear-gradient(150deg,rgba(15,40,80,.85) 0%,rgba(15,40,80,.75) 100%); }
.page-hero-inner { position:relative; z-index:2; padding:5rem 0; width:100%; }
.page-hero-content { color:#fff; max-width:760px; margin:0 auto; text-align:center; }
.page-hero-content h1 { color:#fff; margin-bottom:1.25rem; text-shadow:0 2px 12px rgba(0,0,0,.35); }
.page-hero-content p  { color:rgba(255,255,255,.85); font-size:1.1rem; line-height:1.75; }
/* Only landing service pages use left-aligned hero */
.page-hero-content.left { margin:0; text-align:left; max-width:800px; }
.hero-badge-pill { display:inline-flex; align-items:center; gap:.4rem; background:rgba(255,255,255,.18); backdrop-filter:blur(8px); color:#fff; padding:.375rem 1rem; border-radius:9999px; font-size:.78rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; margin-bottom:1.125rem; border:1px solid rgba(255,255,255,.25); }
.hero-badge-pill svg { width:13px; height:13px; color:var(--yellow); }

/* 9 · SEC-LABEL */
.sec-label { display:inline-flex; align-items:center; gap:.4rem; background:var(--blue-50); color:var(--blue-600); padding:.275rem .875rem; border-radius:9999px; font-size:.74rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:.875rem; }
.sec-label.green { background:var(--green-100); color:var(--green-700); }
.sec-label svg { width:13px; height:13px; }

/* 10 · SERVICE LANDING — HERO */
.svc-hero .page-hero-overlay { background:linear-gradient(150deg,rgba(10,25,65,.88) 0%,rgba(15,40,80,.78) 100%); }
.svc-hero-badge { display:inline-flex; align-items:center; gap:.4rem; background:rgba(255,255,255,.18); color:#fff; padding:.35rem 1rem; border-radius:9999px; font-size:.78rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; margin-bottom:1.125rem; border:1px solid rgba(255,255,255,.25); }
.svc-hero-badge svg { width:14px; height:14px; color:var(--yellow); }
/* landing hero left — already defined above */

/* 11 · SERVICE — CARACTERÍSTICAS — gap ampliat */
.svc-section { padding:5.5rem 0; }
.svc-wrap { display:grid; grid-template-columns:1fr 1fr; gap:4.5rem; align-items:center; }
.svc-text h2 { margin-bottom:1.25rem; font-size:clamp(1.4rem,2.5vw,2.1rem); }
.svc-text p  { margin-bottom:1rem; font-size:.975rem; }
.svc-checklist { margin-top:1.75rem; display:flex; flex-direction:column; gap:.5rem; }
.svc-checklist li { display:flex; align-items:flex-start; gap:.75rem; font-size:.9rem; color:var(--gray-700); }
.svc-checklist li svg { width:18px; height:18px; color:var(--green-600); flex-shrink:0; margin-top:1px; }
.svc-img-col { position:relative; }
.svc-img-col .img-placeholder { width:100%; aspect-ratio:4/3; border-radius:var(--radius-xl); box-shadow:var(--shadow-xl); display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; }
.svc-badge { position:absolute; bottom:1.25rem; left:1.25rem; background:#fff; border-radius:var(--radius-lg); padding:.875rem 1.375rem; display:flex; align-items:center; gap:.875rem; box-shadow:var(--shadow-xl); }
.svc-badge .badge-num { font-family:'Montserrat',sans-serif; font-size:1.625rem; font-weight:800; color:var(--blue-900); }
.svc-badge .badge-lbl { font-size:.8rem; color:var(--gray-500); font-weight:600; }

/* 12 · SERVICE — VENTAJAS */
.svc-ventajas-section { padding:5.5rem 0; background:var(--gray-50); }
.svc-ventajas { display:grid; grid-template-columns:repeat(4,1fr); gap:1.75rem; margin-top:.5rem; }
.svc-ventaja-card { background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-xl); padding:2rem 1.75rem; text-align:center; box-shadow:var(--shadow); }
.svc-ventaja-icon { width:60px; height:60px; background:var(--blue-50); color:var(--blue-500); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 1.125rem; }
.svc-ventaja-icon svg { width:28px; height:28px; }
.svc-ventaja-card h3 { font-size:1rem; font-weight:700; color:var(--gray-900); margin-bottom:.5rem; }
.svc-ventaja-card p  { font-size:.875rem; color:var(--gray-500); margin:0; line-height:1.65; }

/* 13 · SERVICE — CTA BAND */
.svc-cta-band { padding:5.5rem 0; background:linear-gradient(135deg,var(--blue-950) 0%,var(--blue-900) 100%); color:#fff; text-align:center; }
.svc-cta-band h2 { color:#fff; margin-bottom:1rem; font-size:clamp(1.4rem,3vw,2.125rem); }
.svc-cta-band p  { color:rgba(255,255,255,.76); font-size:1.05rem; max-width:54ch; margin:0 auto; }
.svc-btn-outline-white { background:transparent; color:#fff; border:2px solid rgba(255,255,255,.55); padding:.9rem 2.125rem; border-radius:var(--radius); font-size:.925rem; font-weight:600; display:inline-flex; align-items:center; gap:.5rem; transition:all var(--trans); }
.svc-btn-outline-white:hover { background:rgba(255,255,255,.12); border-color:#fff; }
.svc-btn-outline-white svg { width:16px; height:16px; }
.svc-btn-solid-white { background:#fff; color:var(--blue-900); border:2px solid #fff; padding:.9rem 2.125rem; border-radius:var(--radius); font-size:.925rem; font-weight:600; display:inline-flex; align-items:center; gap:.5rem; transition:all var(--trans); }
.svc-btn-solid-white:hover { background:var(--blue-50); }

/* 14 · SERVICE — FAQ */
.svc-faqs { display:flex; flex-direction:column; gap:1rem; max-width:860px; margin:0 auto; }
.svc-faq-item { background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-xl); overflow:hidden; box-shadow:var(--shadow); }
.svc-faq-q { display:flex; align-items:center; justify-content:space-between; padding:1.375rem 1.625rem; cursor:pointer; }
.svc-faq-q h3 { font-size:1rem; font-weight:600; color:var(--gray-900); margin:0; }
.svc-faq-q svg { width:18px; height:18px; flex-shrink:0; color:var(--blue-500); transition:transform var(--trans); }
.svc-faq-item.open .svc-faq-q svg { transform:rotate(180deg); }
.svc-faq-a { max-height:0; overflow:hidden; transition:max-height .3s ease; }
.svc-faq-item.open .svc-faq-a { max-height:300px; }
.svc-faq-a p { padding:.125rem 1.625rem 1.375rem; font-size:.9rem; color:var(--gray-600); margin:0; }

/* 15 · SERVICE — CONTACT */
.svc-contact-wrap { display:grid; grid-template-columns:1fr 1.5fr; gap:2.75rem; }
.svc-contact-card { background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-xl); padding:2.25rem; box-shadow:var(--shadow); margin-bottom:1.375rem; }
.svc-contact-card h3 { font-size:1.1rem; font-weight:700; margin-bottom:1.375rem; color:var(--gray-900); }
.svc-ci { display:flex; align-items:flex-start; gap:.875rem; margin-bottom:1.125rem; }
.svc-ci-icon { width:38px; height:38px; background:var(--blue-50); color:var(--blue-500); border-radius:8px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.svc-ci-icon svg { width:15px; height:15px; }
.svc-ci > div > strong { display:block; font-size:.8rem; font-weight:700; color:var(--gray-900); margin-bottom:.125rem; }
.svc-ci > div > a, .svc-ci > div > span { font-size:.875rem; color:var(--gray-600); }
.svc-ci > div > a:hover { color:var(--blue-600); }
.svc-zones-box { background:var(--blue-50); border-radius:var(--radius-xl); padding:1.625rem; }
.svc-zones-box h4 { font-size:.9rem; font-weight:700; color:var(--blue-900); margin-bottom:.5rem; }
.svc-zones-box p  { font-size:.84rem; color:var(--gray-600); margin-bottom:.875rem; }
.svc-zones { display:flex; flex-wrap:wrap; gap:.375rem; }
.svc-zone { background:#fff; border:1px solid var(--blue-100); color:var(--blue-800); font-size:.78rem; font-weight:600; padding:.25rem .75rem; border-radius:9999px; }
.svc-form-box { background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-xl); padding:2.25rem; box-shadow:var(--shadow); }
.svc-form-box h3 { font-size:1.1rem; font-weight:700; margin-bottom:1.5rem; color:var(--gray-900); }

/* 16 · FORM */
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.125rem; }
.form-group { display:flex; flex-direction:column; gap:.375rem; }
.form-group.full { grid-column:1/-1; }
.form-group label { font-size:.82rem; font-weight:600; color:var(--gray-700); }
.form-group input, .form-group select, .form-group textarea { padding:.7rem .95rem; border:1.5px solid var(--gray-300); border-radius:var(--radius); font-family:inherit; font-size:.9rem; color:var(--gray-900); transition:border-color var(--trans); background:#fff; }
.form-group input:focus, .form-group select:focus, .form-group textarea:focus { outline:none; border-color:var(--blue-500); }
.form-group textarea { min-height:120px; resize:vertical; }
.form-submit { display:inline-flex; align-items:center; gap:.5rem; background:var(--blue-900); color:#fff; padding:.8rem 2.125rem; border-radius:var(--radius); font-size:.925rem; font-weight:600; cursor:pointer; border:none; transition:background var(--trans); margin-top:.5rem; }
.form-submit:hover { background:var(--blue-950); }
.form-submit svg { width:16px; height:16px; }

/* 17 · ABOUT — gap ampliat */
.about-wrap { display:grid; grid-template-columns:1fr 1fr; gap:4.5rem; align-items:center; }
.about-text h2 { margin-bottom:1.25rem; font-size:clamp(1.4rem,2.5vw,2.1rem); }
.about-text p  { margin-bottom:1rem; }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.125rem; margin-top:1.75rem; }
.stat-box { background:var(--blue-50); border-radius:var(--radius-xl); padding:1.375rem 1rem; text-align:center; }
.stat-box .num { display:block; font-family:'Montserrat',sans-serif; font-size:1.75rem; font-weight:800; color:var(--blue-900); }
.stat-box .lbl { display:block; font-size:.72rem; font-weight:600; color:var(--gray-500); margin-top:.25rem; }
.about-img-wrap { position:relative; }
.about-img-wrap .img-placeholder { width:100%; aspect-ratio:4/3; border-radius:var(--radius-xl); box-shadow:var(--shadow-xl); }
.about-badge { position:absolute; bottom:-1.25rem; right:-1rem; background:var(--blue-900); color:#fff; border-radius:var(--radius-xl); padding:1.25rem 1.625rem; text-align:center; box-shadow:var(--shadow-xl); }
.about-badge .bn { display:block; font-family:'Montserrat',sans-serif; font-size:1.875rem; font-weight:800; }
.about-badge .bl { display:block; font-size:.72rem; color:rgba(255,255,255,.7); margin-top:.125rem; }

/* 18 · ADVANTAGES BAR */
.advantages { background:var(--blue-900); padding:5rem 0; }
.adv-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:3rem; }
.adv-item { text-align:center; }
.adv-icon { width:68px; height:68px; background:rgba(255,255,255,.12); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 1.25rem; }
.adv-icon svg { width:30px; height:30px; color:#93c5fd; }
.adv-item h3 { font-size:1.025rem; font-weight:700; color:#fff; margin-bottom:.5rem; }
.adv-item p  { font-size:.9rem; color:rgba(255,255,255,.65); margin:0; line-height:1.65; }

/* 19 · ENVIRONMENT — gap ampliat */
.env-wrap { display:grid; grid-template-columns:1fr 1fr; gap:4.5rem; align-items:center; }
.env-img-box { position:relative; }
.env-img-box .img-placeholder { width:100%; aspect-ratio:4/3; border-radius:var(--radius-xl); box-shadow:var(--shadow-xl); }
.env-iso-bar { position:absolute; bottom:1.25rem; left:1.25rem; display:flex; gap:.625rem; }
.env-iso { background:var(--blue-900); color:#fff; border-radius:8px; padding:.5rem .875rem; font-family:'Montserrat',sans-serif; font-size:.75rem; font-weight:800; text-align:center; }
.env-text h2 { margin-bottom:1.25rem; font-size:clamp(1.4rem,2.5vw,2.1rem); }
.env-text p  { margin-bottom:1.25rem; }
.env-feats { display:flex; flex-direction:column; gap:1.125rem; margin-top:1.625rem; }
.env-feat { display:flex; align-items:flex-start; gap:.875rem; }
.env-icon { width:42px; height:42px; background:var(--green-100); color:var(--green-700); border-radius:8px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.env-icon svg { width:20px; height:20px; }
.env-feat > div > strong { display:block; font-weight:700; font-size:.9rem; color:var(--gray-900); margin-bottom:.2rem; }
.env-feat > div > p { font-size:.875rem; margin:0; color:var(--gray-500); line-height:1.65; }

/* 20 · HERO SLIDER */
.hero { position:relative; height:calc(100vh - 113px); min-height:600px; max-height:920px; overflow:hidden; background:#0f2850; }
.hero-slide { position:absolute; inset:0; opacity:0; transition:opacity .7s ease; }
.hero-slide.active { opacity:1; }
.hero-bg { position:absolute; inset:0; background-size:cover; background-position:center; transition:transform 8s ease; }
.hero-slide.active .hero-bg { transform:scale(1.04); }
.hero-overlay { position:absolute; inset:0; background:linear-gradient(150deg,rgba(10,25,65,.82) 0%,rgba(15,40,80,.6) 100%); }
.hero-body { position:absolute; inset:0; display:flex; align-items:center; }
.hero-text { color:#fff; max-width:700px; }
.hero-badge { display:inline-flex; align-items:center; gap:.4rem; background:rgba(255,255,255,.18); color:#fff; padding:.375rem 1rem; border-radius:9999px; font-size:.78rem; font-weight:600; letter-spacing:.06em; text-transform:uppercase; margin-bottom:1.25rem; border:1px solid rgba(255,255,255,.25); }
.hero-badge svg { width:13px; height:13px; color:var(--yellow); }
.hero-text h1 { color:#fff; margin-bottom:1rem; text-shadow:0 2px 14px rgba(0,0,0,.4); }
.hero-text p  { color:rgba(255,255,255,.82); font-size:1.1rem; margin-bottom:2.125rem; max-width:56ch; }
.hero-btns { display:flex; gap:1rem; flex-wrap:wrap; }
.hero-controls { position:absolute; bottom:2.25rem; left:0; right:0; display:flex; align-items:center; justify-content:center; gap:1.5rem; z-index:10; }
.hero-arr { width:42px; height:42px; background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.3); border-radius:50%; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:background var(--trans); }
.hero-arr:hover { background:rgba(255,255,255,.28); }
.hero-arr svg { width:18px; height:18px; color:#fff; }
.hero-dots { display:flex; gap:.5rem; }
.hero-dot { width:8px; height:8px; background:rgba(255,255,255,.35); border-radius:50%; cursor:pointer; transition:all var(--trans); border:none; padding:0; }
.hero-dot.active { width:26px; border-radius:4px; background:#fff; }

/* 21 · SERVICES GRID */
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; }
.svc-card { background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-xl); overflow:hidden; box-shadow:var(--shadow); transition:box-shadow var(--trans),transform var(--trans); display:flex; flex-direction:column; }
.svc-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-4px); }
/* ▸ image area — height fija, siempre visible */
.svc-img { height:220px !important; min-height:220px; width:100%; overflow:hidden; position:relative; flex-shrink:0; display:block; background:var(--blue-900); }
.svc-img-bg { position:absolute !important; top:0 !important; left:0 !important; right:0 !important; bottom:0 !important; background-size:cover !important; background-position:center !important; }
.svc-img img { position:absolute; top:0; left:0; width:100%; height:100%; object-fit:cover; display:block; }
.svc-icon { position:absolute !important; bottom:.875rem !important; left:.875rem !important; width:46px; height:46px; background:var(--blue-900); color:#fff; border-radius:10px; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-md); z-index:2; }
.svc-icon svg { width:22px !important; height:22px !important; }
/* ▸ body */
.svc-body { padding:1.75rem; flex:1; display:flex; flex-direction:column; }
.svc-body h3 { font-size:1.1rem; font-weight:700; margin-bottom:.625rem; color:var(--gray-900); }
.svc-body > p { font-size:.9rem; color:var(--gray-500); margin-bottom:1.25rem; line-height:1.65; }
.svc-feats { display:flex; flex-direction:column; gap:.5rem; margin-bottom:1.5rem; flex:1; }
.svc-feat { display:flex; align-items:center; gap:.5rem; font-size:.875rem; color:var(--gray-700); }
.svc-feat svg { color:var(--blue-500); flex-shrink:0; }
.svc-actions { display:flex; align-items:center; gap:.75rem; padding-top:1.125rem; border-top:1px solid var(--gray-100); margin-top:auto; }
.svc-link { flex:1; display:inline-flex; align-items:center; justify-content:center; gap:.375rem; font-size:.875rem; font-weight:600; color:var(--gray-800); border:1.5px solid var(--gray-300); border-radius:var(--radius); padding:.65rem 1rem; transition:all var(--trans); }
.svc-link:hover { border-color:var(--blue-900); background:var(--blue-50); color:var(--blue-900); }
.svc-link svg { width:15px; height:15px; }
.svc-quote-btn { width:42px; height:42px; flex-shrink:0; display:flex; align-items:center; justify-content:center; background:var(--blue-900); color:#fff; border-radius:var(--radius); border:none; cursor:pointer; transition:background var(--trans); }
.svc-quote-btn:hover { background:var(--blue-950); }
.svc-quote-btn svg { width:17px !important; height:17px !important; }

/* 22 · CONTACT SECTION */
.contact-wrap { display:grid; grid-template-columns:1fr 1.5fr; gap:2.75rem; }
.contact-info-box { background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-xl); padding:2.25rem; box-shadow:var(--shadow); }
.contact-info-box h3 { font-size:1.125rem; font-weight:700; margin-bottom:1.625rem; color:var(--gray-900); }
.ci-item { display:flex; align-items:flex-start; gap:.875rem; margin-bottom:1.25rem; }
.ci-icon { width:40px; height:40px; background:var(--blue-50); color:var(--blue-500); border-radius:8px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.ci-icon svg { width:16px; height:16px; }
.ci-item > div > strong { display:block; font-size:.82rem; font-weight:700; color:var(--gray-700); margin-bottom:.2rem; }
.ci-item > div > a, .ci-item > div > span { font-size:.9rem; color:var(--gray-600); }
.zones-box { background:var(--blue-50); border-radius:var(--radius-xl); padding:1.375rem; margin-top:1.375rem; }
.zones-box h4 { font-size:.875rem; font-weight:700; color:var(--blue-900); margin-bottom:.625rem; }
.zones { display:flex; flex-wrap:wrap; gap:.375rem; }
.zone { background:#fff; border:1px solid var(--blue-100); color:var(--blue-800); font-size:.75rem; font-weight:600; padding:.225rem .65rem; border-radius:9999px; }
.contact-form-box { background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-xl); padding:2.25rem; box-shadow:var(--shadow); }
.contact-form-box h3 { font-size:1.125rem; font-weight:700; margin-bottom:1.625rem; color:var(--gray-900); }

/* 23 · QUIÉNES SOMOS */
.qs-intro-wrap { display:grid; grid-template-columns:1fr 1fr; gap:4.5rem; align-items:center; }
.qs-text h2 { margin-bottom:1.25rem; font-size:clamp(1.4rem,2.5vw,2.1rem); }
.qs-text p  { margin-bottom:1rem; font-size:.975rem; }
.qs-img-wrap { position:relative; }
.qs-img-wrap .img-placeholder { width:100%; aspect-ratio:4/3; border-radius:var(--radius-xl); box-shadow:var(--shadow-xl); }
.qs-iso-badge { position:absolute; bottom:1.25rem; right:1.25rem; background:#fff; border-radius:var(--radius-lg); padding:.875rem 1.375rem; display:flex; align-items:center; gap:.875rem; box-shadow:var(--shadow-xl); }
.qs-iso-badge svg { width:22px; height:22px; color:var(--yellow); flex-shrink:0; }
.qs-iso-badge strong { display:block; font-size:.82rem; color:var(--gray-900); }
.qs-iso-badge span   { font-size:.72rem; color:var(--gray-500); }
.qs-valores { display:grid; grid-template-columns:repeat(4,1fr); gap:1.75rem; }
.qs-valor-card { background:#fff; border:1px solid var(--gray-200); border-radius:var(--radius-xl); padding:2rem 1.75rem; text-align:center; box-shadow:var(--shadow); }
.qs-valor-icon { width:56px; height:56px; background:var(--blue-50); color:var(--blue-600); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 1.125rem; }
.qs-valor-icon svg { width:26px; height:26px; }
.qs-valor-card h3 { font-size:1.025rem; font-weight:700; color:var(--blue-900); margin-bottom:.625rem; }
.qs-valor-card p  { font-size:.875rem; margin:0; line-height:1.65; color:var(--gray-500); }
.qs-certs { display:grid; grid-template-columns:1fr 1fr; gap:1.75rem; max-width:960px; margin:0 auto; }
.qs-cert-card { border:1px solid var(--gray-200); border-radius:var(--radius-xl); padding:2.75rem 2.25rem; text-align:center; box-shadow:var(--shadow); }
.qs-cert-blue  { background:var(--blue-50); border-color:var(--blue-100); }
.qs-cert-green { background:var(--green-50); border-color:var(--green-200); }
.qs-cert-logo-ph { height:100px; width:120px; margin:0 auto 1.625rem; border-radius:8px; display:flex; align-items:center; justify-content:center; }
.qs-cert-title { display:flex; align-items:center; justify-content:center; gap:.5rem; margin-bottom:.5rem; }
.qs-cert-title svg { width:20px; height:20px; }
.qs-cert-blue  .qs-cert-title svg { color:var(--blue-600); }
.qs-cert-green .qs-cert-title svg { color:var(--green-700); }
.qs-cert-title strong { font-size:1.125rem; color:var(--gray-900); }
.qs-cert-sub  { font-weight:600; color:var(--gray-700); font-size:.9rem; margin-bottom:.875rem; }
.qs-cert-card > p { font-size:.9rem; line-height:1.75; color:var(--gray-500); margin:0; }
.qs-cta-band  { padding:5.5rem 0; background:linear-gradient(135deg,#172554 0%,var(--blue-900) 100%); color:#fff; text-align:center; }
.qs-cta-band h2 { color:#fff; margin-bottom:1rem; }
.qs-cta-band p  { color:rgba(255,255,255,.78); font-size:1.05rem; max-width:54ch; margin:0 auto; }

/* 24 · FOOTER */
#site-footer { background:#0f172a; color:rgba(255,255,255,.65); padding:4.5rem 0 0; }
.footer-grid { display:grid; grid-template-columns:1.8fr 1fr 1fr 1fr; gap:3rem; padding-bottom:3.5rem; border-bottom:1px solid rgba(255,255,255,.07); }
.footer-logo { display:flex; align-items:center; gap:.7rem; margin-bottom:1.25rem; }
.logo-mark-w { width:40px; height:40px; }
.footer-logo-name { font-family:'Montserrat',sans-serif; font-weight:700; font-size:1.025rem; color:#fff; display:block; }
.footer-logo-tag  { font-size:.7rem; color:rgba(255,255,255,.4); display:block; margin-top:.1rem; }
.footer-brand p   { font-size:.9rem; line-height:1.8; margin-bottom:1.5rem; color:#fff; }
.footer-iso-row   { display:flex; gap:.75rem; flex-wrap:wrap; }
.footer-iso-pill  { display:inline-flex; align-items:center; gap:.45rem; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12); padding:.375rem .875rem; border-radius:6px; }
.footer-iso-pill svg { width:16px; height:16px; color:var(--green-400); }
.footer-iso-pill span { font-size:.72rem; font-weight:700; color:rgba(255,255,255,.8); }
.footer-col h4 { font-family:'Montserrat',sans-serif; font-weight:700; font-size:.8rem; color:#fff; margin-bottom:1.125rem; text-transform:uppercase; letter-spacing:.08em; }
.footer-links { display:flex; flex-direction:column; gap:.55rem; }
.footer-links a { font-size:.875rem; color:rgba(255,255,255,.55); transition:color var(--trans); }
.footer-links a:hover { color:#fff; }
.footer-ci { display:flex; align-items:flex-start; gap:.625rem; margin-bottom:.7rem; }
.footer-ci svg { width:14px; height:14px; color:var(--blue-400); flex-shrink:0; margin-top:3px; }
.footer-ci span { font-size:.875rem; color:rgba(255,255,255,.55); }
.footer-bar { display:flex; align-items:center; justify-content:space-between; padding:1.375rem 0; font-size:.82rem; color:rgba(255,255,255,.35); flex-wrap:wrap; gap:.75rem; }
.footer-legal { display:flex; gap:1.375rem; }
.footer-legal a { color:rgba(255,255,255,.35); transition:color var(--trans); }
.footer-legal a:hover { color:rgba(255,255,255,.65); }

/* 25 · MOBILE PANEL */
#mobile-panel { position:fixed; inset:0; background:#fff; z-index:2000; transform:translateX(100%); transition:transform .32s ease; overflow-y:auto; padding:1.375rem 1.375rem 2rem; display:flex; flex-direction:column; gap:.25rem; }
#mobile-panel.open { transform:translateX(0); }
.mp-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.5rem; padding-bottom:1.375rem; border-bottom:1px solid var(--gray-200); }
.mp-close { width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--gray-100); cursor:pointer; }
.mp-close svg { width:18px; height:18px; color:var(--gray-700); }
.mp-link { display:flex; align-items:center; gap:.75rem; padding:.9rem 1rem; border-radius:var(--radius); font-size:1rem; font-weight:600; color:var(--gray-800); transition:background var(--trans); cursor:pointer; border:none; width:100%; text-align:left; background:none; }
.mp-link:hover { background:var(--gray-50); }
.mp-link.active { color:var(--blue-900); background:var(--blue-50); }
.mp-sub { display:none; flex-direction:column; gap:.125rem; padding-left:1.5rem; padding-bottom:.5rem; }
.mp-sub.open { display:flex; }
.mp-sub a { display:flex; align-items:center; gap:.625rem; padding:.625rem .875rem; border-radius:var(--radius); font-size:.9rem; font-weight:500; color:var(--gray-700); transition:background var(--trans); }
.mp-sub a:hover { background:var(--gray-100); color:var(--blue-900); }
.mp-cta { margin-top:auto; padding-top:1.5rem; border-top:1px solid var(--gray-200); }

/* MEDIO AMBIENT — extra */
.ma-hero .page-hero-overlay { background:linear-gradient(160deg,rgba(10,30,74,.88) 0%,rgba(6,46,35,.84) 100%); }
.ma-hero-icon { display:flex; justify-content:center; margin-bottom:1.375rem; }
.ma-practicas { padding:5.5rem 0; background:#f0fdf4; }
.ma-practicas-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.75rem; margin-top:3.25rem; }
.ma-practica-card { background:#fff; border:1px solid #d1fae5; border-radius:1rem; padding:2.5rem 2rem; text-align:center; box-shadow:0 1px 3px 0 rgb(0 0 0/.1); transition:box-shadow var(--trans),transform var(--trans); }
.ma-practica-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-2px); }
.ma-practica-icon { width:76px;height:76px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem; }
.ma-practica-icon svg { width:32px!important;height:32px!important; }
.ma-icon-blue  { background:#dbeafe; } .ma-icon-blue  svg { color:#3b82f6; }
.ma-icon-green { background:#dcfce7; } .ma-icon-green svg { color:#16a34a; }
.ma-icon-yellow{ background:#fef9c3; } .ma-icon-yellow svg{ color:#ca8a04; }
.ma-practica-card h3 { font-size:1.025rem;font-weight:700;color:#111827;margin-bottom:.5rem; }
.ma-practica-card p  { font-size:.9rem;color:#6b7280;margin:0;line-height:1.7; }
.ma-checklist { display:flex;flex-direction:column;gap:.7rem;margin-top:2.5rem; }
.ma-check-item { display:flex;align-items:center;gap:1.125rem;background:#f0fdf4;border:1px solid #d1fae5;border-radius:.5rem;padding:1.1rem 1.5rem;font-size:.975rem;font-weight:500;color:#1f2937; }
.ma-check-item svg { width:20px!important;height:20px!important;color:#16a34a;flex-shrink:0; }
.ma-cta-band { padding:5.5rem 0;background:linear-gradient(135deg,#172554 0%,#1e3a8a 100%);color:#fff;text-align:center; }
.ma-cta-icon { display:flex;justify-content:center;margin-bottom:1.5rem; }
.ma-cta-band h2 { color:#fff;margin-bottom:1rem;font-size:clamp(1.4rem,3vw,2.125rem); }
.ma-cta-band p  { color:rgba(255,255,255,.76);font-size:1.05rem;max-width:56ch;margin:0 auto 2.5rem; }
.ma-intro-wrap { display:grid;grid-template-columns:1fr 1fr;gap:4.5rem;align-items:flex-start; }
.ma-text h2 { margin-bottom:1.25rem;font-size:clamp(1.4rem,2.5vw,2.1rem); }
.ma-text p  { margin-bottom:1rem;font-size:.975rem; }
.ma-iso-badge { display:inline-flex;align-items:center;gap:1.125rem;margin-top:1.625rem;padding:1.125rem 1.625rem;background:#f0fdf4;border:1.5px solid #bbf7d0;border-radius:1rem; }
.ma-iso-title { font-family:'Montserrat',sans-serif;font-weight:700;font-size:.925rem;color:#14532d; }
.ma-iso-sub   { font-size:.78rem;color:#15803d;margin-top:.2rem; }

/* 26 · RESPONSIVE (breakpoint ajustat) */
@media (max-width:1280px) { .services-grid { grid-template-columns:repeat(2,1fr); } .footer-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:960px) {
  .svc-wrap,.qs-intro-wrap,.about-wrap,.env-wrap,.contact-wrap,.ma-intro-wrap { grid-template-columns:1fr; gap:2.75rem; }
  .svc-ventajas { grid-template-columns:1fr 1fr; }
  .qs-valores { grid-template-columns:1fr 1fr; }
  .qs-certs { grid-template-columns:1fr; }
  .adv-grid { grid-template-columns:1fr 1fr; gap:2rem; }
  .svc-contact-wrap { grid-template-columns:1fr; }
  .stats-grid { grid-template-columns:1fr 1fr; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .ma-practicas-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:768px) {
  .nav-menu,.nav-cta { display:none; }
  .nav-hamburger { display:flex; }
  .topbar-loc,.topbar-sep,.topbar-globe { display:none; }
  .topbar-left .topbar-item:last-child { display:none; }
  #topbar .container { padding:0 .75rem; }
  #topbar .topbar-inner { flex-wrap:nowrap; overflow:hidden; max-width:100%; gap:.5rem; }
  .lang-btn { padding:.2rem .4rem; font-size:.7rem; }
  .services-grid { grid-template-columns:1fr; }
  .footer-grid { grid-template-columns:1fr; }
  .contact-wrap { grid-template-columns:1fr; }
  .contact-info-box, .contact-form-box { width:100%; box-sizing:border-box; }
  .form-grid { grid-template-columns:1fr; }
  .form-group input, .form-group select, .form-group textarea { width:100%; box-sizing:border-box; max-width:100%; }
  #mobile-panel { width:100%; max-width:100vw; box-sizing:border-box; }
  .mp-link, .mp-cta { width:100%; box-sizing:border-box; }
  .mp-cta a { width:100%; box-sizing:border-box; }
  .ci-item { flex-wrap:wrap; }
 .zones-box, .zones { width:100%; box-sizing:border-box; }
 .svc-wrap { grid-template-columns:1fr; gap:2rem; }
  .svc-text, .svc-img-col { min-width:0; max-width:100%; box-sizing:border-box; }
 .svc-text *, .svc-img-col * { min-width:0; max-width:100%; box-sizing:border-box; word-wrap:break-word; overflow-wrap:break-word; }
  .qs-intro-wrap { grid-template-columns:1fr; gap:2rem; }
  .qs-text, .qs-img-wrap { min-width:0; max-width:100%; box-sizing:border-box; }
  .qs-text *, .qs-img-wrap * { min-width:0; max-width:100%; box-sizing:border-box; word-wrap:break-word; overflow-wrap:break-word; }
  .stats-grid { grid-template-columns:1fr 1fr; min-width:0; max-width:100%; }
  .img-placeholder { width:100% !important; }
	.form-group label { white-space:normal !important; flex-wrap:wrap !important; }
  .form-group label a { white-space:normal !important; word-break:break-word; }
  .form-group input[type="checkbox"] { flex-shrink:0; width:16px; height:16px; margin-top:2px; }
}
@media (max-width:600px) {
  .svc-ventajas { grid-template-columns:1fr; }
  .qs-valores { grid-template-columns:1fr; }
  .adv-grid { grid-template-columns:1fr; }
  .ma-practicas-grid { grid-template-columns:1fr; }
  .container { padding:0 1.125rem; }
  .hero { min-height:500px; max-height:640px; }
}

/* ══ SCROLL TO TOP ══ */
#scroll-top { position:fixed !important; bottom:1.75rem !important; right:1.75rem !important; width:50px !important; height:50px !important; border-radius:50% !important; background:#1e3a8a !important; color:#fff !important; border:none !important; cursor:pointer !important; display:flex !important; align-items:center !important; justify-content:center !important; box-shadow:0 4px 14px rgba(0,0,0,.3) !important; opacity:0 !important; visibility:hidden !important; transform:translateY(12px) !important; transition:all .3s ease !important; z-index:99999 !important; }
#scroll-top.visible { opacity:1 !important; visibility:visible !important; transform:translateY(0) !important; }

html { overflow-x:hidden; }
body { overflow-x:hidden; max-width:100%; position:relative; }

/* ══ CV FORM — file input ══════════════════════ */
.cv-file-wrap {
  display:flex;
  align-items:center;
  gap:.875rem;
  flex-wrap:wrap;
  background:#f8fafc;
  border:1.5px dashed #cbd5e1;
  border-radius:.625rem;
  padding:.75rem 1rem;
  transition:border-color .2s, background .2s;
}
.cv-file-wrap:hover { border-color:#1e3a8a; background:#f1f5f9; }
.cv-file-wrap input[type="file"] {
  position:absolute !important;
  width:1px; height:1px;
  opacity:0;
  overflow:hidden;
  clip:rect(0 0 0 0);
}
.form-group .cv-file-trigger,
.cv-file-trigger {
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.55rem 1rem;
  background:#1e3a8a;
  color:#fff;
  border-radius:.5rem;
  font-size:.875rem;
  font-weight:600;
  cursor:pointer;
  transition:background .2s, transform .15s;
  flex-shrink:0;
}
.form-group .cv-file-trigger .cv-file-text,
.form-group .cv-file-trigger .cv-file-icon,
.cv-file-trigger .cv-file-text,
.cv-file-trigger .cv-file-icon { color:#fff; }
.cv-file-trigger:hover { background:#1e40af; transform:translateY(-1px); color:#fff; }
.cv-file-trigger:active { transform:translateY(0); }
.cv-file-icon { display:inline-flex; }
.cv-file-name {
  font-size:.875rem;
  color:#64748b;
  word-break:break-all;
  flex:1;
  min-width:0;
}
.cv-file-name.has-file { color:#1e3a8a; font-weight:600; }
.cv-file-wrap input[type="file"]:focus + .cv-file-trigger {
  outline:2px solid #2563eb;
  outline-offset:2px;
}

/* ══════════════════════════════════════════════════════════════════
   FIX RESPONSIVE 2026-05-08
   - Evita overflow horizontal en heros (h1/p de páginas internas)
   - Ajusta topbar en móviles muy estrechos (≤480px)
   - Permite que nombres de archivo CV largos rompan correctamente
   ══════════════════════════════════════════════════════════════════ */

/* Heros internos (page-hero): permitir wrap y forzar contención dentro del viewport */
.page-hero { overflow: hidden; }
.page-hero-content {
  box-sizing: border-box;
  max-width: 100%;
  width: 100%;
  padding: 0 1rem;
}
.page-hero-content h1,
.page-hero-content h2,
.page-hero-content p {
  max-width: 100%;
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: break-word;
  hyphens: auto;
}
/* h1 escalable que cabe siempre en el viewport */
.page-hero-content h1 { font-size: clamp(1.4rem, 5.5vw, 3.125rem) !important; line-height: 1.18; }

/* Pantalla móvil: reducir altura del hero, padding vertical y tamaños del badge / subtítulo */
@media (max-width:600px) {
  .page-hero { min-height: 360px; }
  .page-hero-inner { padding: 3rem 0; }
  .page-hero-content { padding: 0 .75rem; }
  .page-hero-content h1 { font-size: 1.5rem !important; line-height: 1.2; }
  .page-hero-content p { font-size: .9rem !important; line-height: 1.55; }
  .hero-badge-pill { font-size: .65rem; padding: .28rem .7rem; letter-spacing: .04em; }
  .hero-badge-pill svg { width: 12px; height: 12px; }
}
@media (max-width:380px) {
  .page-hero-content h1 { font-size: 1.35rem !important; }
  .page-hero-content p { font-size: .85rem !important; }
}

/* Topbar muy estrecho: que el selector de idioma siempre quepa sin recortarse */
@media (max-width:480px) {
  #topbar .container { padding: 0 .625rem; }
  #topbar .topbar-inner { gap: .35rem; }
  .topbar-item { font-size: .72rem; }
  .lang-btn { padding: .15rem .35rem; font-size: .65rem; gap: .2rem; }
  .lang-flag { width: 14px; height: 10px; }
}

/* CV: nombre de archivo largo rompe por palabra, no por carácter */
.cv-file-name { word-break: break-word; overflow-wrap: anywhere; }