/* ============================================================
   COLABORA EMPRESA — Sistema de diseño global
   Corporativo limpio · azul + blanco · serif + sans
   Estructura semántica lista para portar a tema WordPress
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,opsz,wght@0,8..60,400;0,8..60,500;0,8..60,600;0,8..60,700;1,8..60,400&family=Libre+Franklin:wght@300;400;500;600;700;800&display=swap');

/* ---------- Tokens ---------- */
:root{
  /* Marca */
  --navy:#0a2540;          /* esfera del logo — texto/oscuro */
  --navy-900:#06182c;
  --navy-700:#123455;
  --brand-blue:#0e6fa8;    /* acción primaria / enlaces */
  --brand-blue-d:#0a5887;  /* hover */
  --azure:#18a0e0;         /* azul brillante del logo */
  --azure-l:#3bb6ee;

  /* Sectores (color de marca) */
  --inmobiliario:#0a7a47;
  --construccion:#c8102e;
  --diseno:#e3a300;        /* amarillo de marca, ligeramente atenuado para legibilidad */
  --general:#0e6fa8;
  --benefico:#b23a7a;

  /* Neutros (azulados, fríos) */
  --ink:#13212f;
  --ink-soft:#33475b;
  --muted:#5d7286;
  --muted-l:#8497a8;
  --line:#e3e9f0;
  --line-strong:#d2dbe6;
  --sky:#eef4fa;           /* tinte de sección */
  --sky-2:#f6f9fc;
  --white:#ffffff;
  --paper:#fbfcfe;

  /* Acento premium (uso mínimo) */
  --gold:#b08a4a;

  /* Tipos */
  --serif:'Source Serif 4', Georgia, 'Times New Roman', serif;
  --sans:'Libre Franklin', system-ui, -apple-system, sans-serif;
  --mono:ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace;

  /* Estructura */
  --container:1200px;
  --container-narrow:880px;
  --radius:10px;
  --radius-s:7px;
  --radius-l:18px;
  --shadow-sm:0 1px 2px rgba(10,37,64,.05), 0 2px 6px rgba(10,37,64,.05);
  --shadow:0 6px 24px rgba(10,37,64,.08), 0 2px 8px rgba(10,37,64,.04);
  --shadow-lg:0 24px 60px rgba(10,37,64,.16), 0 8px 24px rgba(10,37,64,.08);
  --ease:cubic-bezier(.22,.61,.36,1);
  --header-h:80px;
}

/* ---------- Reset / base ---------- */
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{
  margin:0; background:var(--white); color:var(--ink);
  font-family:var(--sans); font-size:17px; line-height:1.65;
  font-weight:400; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{max-width:100%; display:block;}
a{color:var(--brand-blue); text-decoration:none; transition:color .2s var(--ease);}
a:hover{color:var(--brand-blue-d);}
ul,ol{margin:0; padding:0;}
h1,h2,h3,h4,h5{margin:0; font-family:var(--serif); font-weight:600; line-height:1.12; color:var(--navy); letter-spacing:-.01em;}
p{margin:0;}
button{font-family:inherit;}
:focus-visible{outline:3px solid var(--azure); outline-offset:2px; border-radius:4px;}

/* ---------- Tipografía de escala ---------- */
.display{font-size:clamp(2.5rem,5.2vw,4.1rem); line-height:1.04; letter-spacing:-.022em; font-weight:600;}
h1,.h1{font-size:clamp(2.1rem,4.2vw,3.2rem);}
h2,.h2{font-size:clamp(1.7rem,3.2vw,2.5rem);}
h3,.h3{font-size:clamp(1.3rem,2.2vw,1.6rem);}
h4,.h4{font-size:1.15rem;}
.lead{font-size:clamp(1.12rem,1.8vw,1.35rem); line-height:1.55; color:var(--ink-soft); font-weight:400;}
.fine{font-size:.86rem; color:var(--muted);}

/* ---------- Layout ---------- */
.container{width:100%; max-width:var(--container); margin-inline:auto; padding-inline:clamp(20px,5vw,40px);}
.narrow{max-width:var(--container-narrow); margin-inline:auto;}
.section{padding-block:clamp(64px,8vw,118px);}
.section-sm{padding-block:clamp(48px,6vw,80px);}
.bg-sky{background:var(--sky);}
.bg-sky-2{background:var(--sky-2);}
.bg-paper{background:var(--paper);}
.bg-navy{background:var(--navy); color:#dbe6f1;}
.bg-navy h1,.bg-navy h2,.bg-navy h3,.bg-navy h4{color:#fff;}
.bg-navy .lead{color:#aebfd2;}
.divider{height:1px; background:var(--line); border:0; margin:0;}

/* ---------- Eyebrow / labels ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--sans); font-weight:600; font-size:.74rem;
  letter-spacing:.18em; text-transform:uppercase; color:var(--brand-blue);
  margin-bottom:18px;
}
.eyebrow::before{content:""; width:26px; height:2px; background:var(--gold); display:inline-block;}
.bg-navy .eyebrow{color:var(--azure-l);}
.section-head{max-width:760px; margin-bottom:clamp(34px,5vw,56px);}
.section-head.center{margin-inline:auto; text-align:center;}
.section-head .lead{margin-top:20px;}

/* ---------- Botones ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  font-family:var(--sans); font-weight:600; font-size:.97rem; letter-spacing:.005em;
  padding:15px 28px; border-radius:var(--radius-s); border:1.5px solid transparent;
  cursor:pointer; transition:all .22s var(--ease); white-space:nowrap; line-height:1;
}
.btn svg{width:17px; height:17px;}
.btn-primary{background:var(--brand-blue); color:#fff; box-shadow:0 6px 18px rgba(14,111,168,.25);}
.btn-primary:hover{background:var(--brand-blue-d); color:#fff; transform:translateY(-2px); box-shadow:0 12px 28px rgba(14,111,168,.32);}
.btn-ghost{background:transparent; color:var(--navy); border-color:var(--line-strong);}
.btn-ghost:hover{border-color:var(--navy); color:var(--navy); background:var(--sky);}
.btn-light{background:#fff; color:var(--navy);}
.btn-light:hover{background:#eaf2fa; color:var(--navy); transform:translateY(-2px);}
.btn-outline-light{background:transparent; color:#fff; border-color:rgba(255,255,255,.45);}
.btn-outline-light:hover{border-color:#fff; background:rgba(255,255,255,.1); color:#fff;}
.btn-lg{padding:17px 34px; font-size:1.02rem;}
.btn-block{width:100%;}
.btn-row{display:flex; flex-wrap:wrap; gap:14px;}
.textlink{display:inline-flex; align-items:center; gap:7px; font-weight:600; color:var(--brand-blue);}
.textlink svg{width:16px; height:16px; transition:transform .2s var(--ease);}
.textlink:hover svg{transform:translateX(4px);}

/* ============================================================
   HEADER
   ============================================================ */
.site-header{
  position:sticky; top:0; z-index:100; background:rgba(255,255,255,.88);
  backdrop-filter:saturate(180%) blur(14px); -webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);
}
.header-inner{display:flex; align-items:center; gap:30px; height:var(--header-h);}
.brand{display:flex; align-items:center; gap:0; flex-shrink:0;}
.brand img{height:48px; width:auto;}
.main-nav{display:flex; align-items:center; gap:4px; margin-left:auto;}
.main-nav a{
  position:relative; color:var(--ink-soft); font-weight:500; font-size:.96rem;
  padding:10px 14px; border-radius:6px;
}
.main-nav a:hover{color:var(--navy); background:var(--sky);}
.main-nav a.active{color:var(--navy); font-weight:600;}
.main-nav a.active::after{
  content:""; position:absolute; left:14px; right:14px; bottom:2px; height:2px;
  background:var(--brand-blue); border-radius:2px;
}
.header-cta{margin-left:8px;}

/* Dropdown */
.has-dropdown{position:relative;}
.has-dropdown > a{display:inline-flex; align-items:center; gap:6px;}
.has-dropdown > a .caret{width:14px; height:14px; transition:transform .2s var(--ease);}
.dropdown{
  position:absolute; top:calc(100% + 10px); left:0; min-width:340px;
  background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-lg);
  padding:10px; opacity:0; visibility:hidden; transform:translateY(8px);
  transition:opacity .2s var(--ease), transform .2s var(--ease), visibility .2s;
}
.has-dropdown:hover .dropdown, .has-dropdown.open .dropdown{opacity:1; visibility:visible; transform:none;}
.has-dropdown:hover > a .caret, .has-dropdown.open > a .caret{transform:rotate(180deg);}
.dropdown a{display:flex; gap:12px; align-items:flex-start; padding:12px 13px; border-radius:7px;}
.dropdown a:hover{background:var(--sky);}
.dropdown .dd-dot{width:10px; height:10px; border-radius:50%; flex-shrink:0; margin-top:5px;}
.dropdown .dd-text b{display:block; color:var(--navy); font-weight:600; font-size:.95rem; line-height:1.25;}
.dropdown .dd-text small{color:var(--muted); font-size:.8rem; line-height:1.3;}
.nav-toggle{display:none; flex-direction:column; gap:5px; background:none; border:0; padding:10px; cursor:pointer; margin-left:auto;}
.nav-toggle span{width:24px; height:2px; background:var(--navy); border-radius:2px; transition:.25s var(--ease);}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{background:var(--navy-900); color:#9fb2c7; font-size:.95rem;}
.footer-top{padding-block:clamp(56px,7vw,88px); display:grid; grid-template-columns:1.5fr 1fr 1fr 1.2fr; gap:46px;}
.footer-brand-row{display:flex; align-items:center; gap:13px; margin-bottom:20px;}
.footer-brand-row img{height:46px; width:auto;}
.footer-wordmark{font-family:var(--sans); line-height:1; color:#fff;}
.footer-wordmark b{font-weight:700; font-size:1.32rem; letter-spacing:-.01em;}
.footer-wordmark span{font-weight:300; font-size:1.32rem; margin-left:4px;}
.footer-about{max-width:340px; color:#90a4ba; line-height:1.6;}
.footer-col h4{color:#fff; font-family:var(--sans); font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700; margin-bottom:18px;}
.footer-col ul{display:flex; flex-direction:column; gap:11px;}
.footer-col a{color:#9fb2c7;}
.footer-col a:hover{color:#fff;}
.footer-contact li{display:flex; gap:10px; align-items:flex-start; margin-bottom:12px; color:#9fb2c7;}
.footer-contact svg{width:16px; height:16px; flex-shrink:0; margin-top:3px; color:var(--azure);}
.footer-social{display:flex; gap:10px; margin-top:8px;}
.footer-social a{width:38px; height:38px; border-radius:8px; display:grid; place-items:center; background:rgba(255,255,255,.07); color:#cdd9e6;}
.footer-social a:hover{background:var(--brand-blue); color:#fff;}
.footer-social svg{width:18px; height:18px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.1); padding-block:24px; display:flex; flex-wrap:wrap; gap:14px 28px; justify-content:space-between; align-items:center; font-size:.85rem; color:#7d92a8;}
.footer-bottom nav{display:flex; flex-wrap:wrap; gap:8px 22px;}
.footer-bottom a{color:#7d92a8;}
.footer-bottom a:hover{color:#fff;}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative; overflow:hidden; background:var(--navy); color:#fff;}
.hero::before{ /* gloss radial echoing the logo */
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(120% 90% at 88% -10%, rgba(24,160,224,.42), transparent 55%),
    radial-gradient(90% 80% at -5% 110%, rgba(14,111,168,.40), transparent 60%),
    linear-gradient(160deg, #0c2c4c 0%, #0a2540 45%, #07182c 100%);
}
.hero .container{position:relative; z-index:2;}
.hero-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:center; padding-block:clamp(64px,9vw,120px);}
.hero h1{color:#fff;}
.hero .lead{color:#bcd0e6; margin-top:24px; max-width:560px;}
.hero .btn-row{margin-top:38px;}
.hero-trust{margin-top:40px; display:flex; gap:28px; flex-wrap:wrap; color:#9fb6cf; font-size:.92rem;}
.hero-trust b{color:#fff; font-family:var(--serif); font-size:1.5rem; display:block; line-height:1;}
.hero-trust span{display:block; margin-top:6px; font-size:.84rem; letter-spacing:.02em;}
.hero-media{position:relative;}

/* page hero (interior) */
.page-hero{background:var(--navy); color:#fff; position:relative; overflow:hidden;}
.page-hero::before{content:""; position:absolute; inset:0;
  background:radial-gradient(110% 120% at 92% -20%, rgba(24,160,224,.34), transparent 52%), linear-gradient(150deg,#0c2c4c,#07182c);}
.page-hero .container{position:relative; z-index:2; padding-block:clamp(56px,7vw,96px);}
.page-hero h1{color:#fff; max-width:16ch;}
.page-hero .lead{color:#bcd0e6; margin-top:20px; max-width:62ch;}
.page-hero.sector-hero .lead{max-width:64ch;}

/* breadcrumbs */
.breadcrumbs{display:flex; flex-wrap:wrap; gap:8px; align-items:center; font-size:.85rem; color:var(--muted); padding-block:18px;}
.breadcrumbs a{color:var(--muted);}
.breadcrumbs a:hover{color:var(--brand-blue);}
.breadcrumbs .sep{opacity:.5;}
.page-hero .breadcrumbs{color:#9fb6cf; padding-bottom:22px; padding-top:0;}
.page-hero .breadcrumbs a{color:#9fb6cf;}
.page-hero .breadcrumbs a:hover{color:#fff;}

/* ============================================================
   PLACEHOLDERS de imagen
   ============================================================ */
.ph{
  position:relative; display:flex; align-items:center; justify-content:center; text-align:center;
  background-color:var(--sky);
  background-image:repeating-linear-gradient(135deg, rgba(14,111,168,.07) 0 11px, rgba(14,111,168,0) 11px 22px);
  color:#7d93a9; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden;
}
.ph .ph-label{font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; padding:8px 12px; line-height:1.5;}
.ph-dark{background-color:#0e2c49; background-image:repeating-linear-gradient(135deg, rgba(255,255,255,.05) 0 11px, rgba(255,255,255,0) 11px 22px); color:#7e9bba; border-color:rgba(255,255,255,.1);}
.ratio-16-9{aspect-ratio:16/9;} .ratio-4-3{aspect-ratio:4/3;} .ratio-1-1{aspect-ratio:1/1;} .ratio-3-2{aspect-ratio:3/2;} .ratio-3-4{aspect-ratio:3/4;}

/* ============================================================
   STATS (contadores)
   ============================================================ */
.stat-band{display:grid; grid-template-columns:repeat(4,1fr); gap:30px;}
.stat{position:relative; padding:6px 8px;}
.stat .num{font-family:var(--serif); font-weight:600; font-size:clamp(2.6rem,5vw,3.4rem); line-height:1; color:var(--navy); letter-spacing:-.02em;}
.bg-navy .stat .num{color:#fff;}
.hero .num,.stat .num .suffix{color:inherit;}
.stat .label{margin-top:12px; color:var(--muted); font-size:.96rem;}
.bg-navy .stat .label{color:#a7bcd2;}
.stat::after{content:""; position:absolute; left:0; top:14%; height:72%; width:1px; background:var(--line);}
.bg-navy .stat::after{background:rgba(255,255,255,.14);}
.stat:first-child::after{display:none;}

/* ============================================================
   CARDS — comunes
   ============================================================ */
.card{background:#fff; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-sm); transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);}
.card:hover{transform:translateY(-4px); box-shadow:var(--shadow); border-color:var(--line-strong);}
.grid{display:grid; gap:26px;}
.grid-2{grid-template-columns:repeat(2,1fr);}
.grid-3{grid-template-columns:repeat(3,1fr);}
.grid-4{grid-template-columns:repeat(4,1fr);}

/* Badges de sector */
.badge{display:inline-flex; align-items:center; gap:7px; font-family:var(--sans); font-weight:600; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; padding:5px 11px; border-radius:100px; line-height:1;}
.badge::before{content:""; width:7px; height:7px; border-radius:50%; background:currentColor;}
.badge-inmobiliario{color:var(--inmobiliario); background:rgba(10,122,71,.1);}
.badge-construccion{color:var(--construccion); background:rgba(200,16,46,.09);}
.badge-diseno{color:#9a7000; background:rgba(227,163,0,.14);}
.badge-general{color:var(--general); background:rgba(14,111,168,.1);}
.badge-benefico{color:var(--benefico); background:rgba(178,58,122,.1);}

/* Sector accent bar helper */
.sec-inmobiliario{--sec:var(--inmobiliario);}
.sec-construccion{--sec:var(--construccion);}
.sec-diseno{--sec:var(--diseno);}
.sec-general{--sec:var(--general);}
.sec-benefico{--sec:var(--benefico);}

/* Sector cards (home) */
.sector-card{overflow:hidden; display:flex; flex-direction:column;}
.sector-card .ph{border:0; border-radius:0;}
.sector-card .sector-body{padding:28px 26px 30px; display:flex; flex-direction:column; flex:1; border-top:4px solid var(--sec,var(--brand-blue));}
.sector-card h3{margin-bottom:12px;}
.sector-card p{color:var(--ink-soft); margin-bottom:20px; flex:1;}

/* Event cards */
.event-card{overflow:hidden; display:flex; flex-direction:column;}
.event-media{position:relative;}
.event-media .ph{border:0; border-radius:0;}
.event-date-chip{position:absolute; top:16px; left:16px; background:#fff; border-radius:var(--radius-s); padding:9px 13px; text-align:center; box-shadow:var(--shadow); line-height:1;}
.event-date-chip .d{font-family:var(--serif); font-weight:700; font-size:1.5rem; color:var(--navy);}
.event-date-chip .m{display:block; font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:var(--brand-blue); margin-top:3px;}
.event-badge-pos{position:absolute; top:16px; right:16px;}
.event-body{padding:24px 24px 26px; display:flex; flex-direction:column; flex:1;}
.event-body h3{font-size:1.22rem; line-height:1.22; margin-bottom:14px;}
.event-meta{display:flex; flex-direction:column; gap:9px; margin-bottom:16px; font-size:.92rem; color:var(--ink-soft);}
.event-meta li{display:flex; gap:9px; align-items:flex-start;}
.event-meta svg{width:16px; height:16px; color:var(--brand-blue); flex-shrink:0; margin-top:2px;}
.event-desc{color:var(--muted); font-size:.95rem; margin-bottom:20px; flex:1;}
.event-foot{display:flex; align-items:center; justify-content:space-between; gap:14px; padding-top:18px; border-top:1px solid var(--line);}
.event-price{font-weight:700; color:var(--navy); font-size:1.02rem;}
.event-price small{display:block; font-weight:500; font-size:.76rem; color:var(--muted); letter-spacing:.02em;}
.event-seats{font-size:.84rem; color:var(--muted);}

/* Value cards (quiénes somos) */
.value-card{padding:30px 28px;}
.value-card .vnum{font-family:var(--serif); font-size:1.05rem; font-weight:700; color:var(--azure); }
.value-card h3{font-size:1.22rem; margin:14px 0 12px;}
.value-card p{color:var(--ink-soft); font-size:.97rem;}

/* feature list w/ check */
.checklist{display:flex; flex-direction:column; gap:15px;}
.checklist li{display:flex; gap:13px; align-items:flex-start; color:var(--ink-soft);}
.checklist .ck{flex-shrink:0; width:24px; height:24px; border-radius:50%; background:rgba(14,111,168,.1); color:var(--brand-blue); display:grid; place-items:center; margin-top:2px;}
.checklist .ck svg{width:13px; height:13px;}
.checklist.on-sec .ck{background:color-mix(in srgb, var(--sec) 14%, transparent); color:var(--sec);}

/* Participant list (2 cols) */
.who-grid{columns:2; column-gap:40px;}
.who-grid li{break-inside:avoid; display:flex; gap:12px; align-items:flex-start; padding:11px 0; border-bottom:1px solid var(--line); color:var(--ink-soft);}
.who-grid li::before{content:""; width:8px; height:8px; border-radius:2px; background:var(--sec,var(--brand-blue)); margin-top:9px; flex-shrink:0;}

/* Team */
.team-card{text-align:left;}
.team-card .ph{border-radius:var(--radius) var(--radius) 0 0; border-bottom:0;}
.team-body{padding:20px 22px 24px;}
.team-body h4{font-family:var(--serif); font-size:1.15rem; color:var(--navy);}
.team-body .role{color:var(--brand-blue); font-weight:600; font-size:.88rem; margin:4px 0 10px;}
.team-body .li-link{display:inline-flex; gap:6px; align-items:center; font-size:.85rem; color:var(--muted);}
.team-body .li-link:hover{color:var(--brand-blue);}

/* Company directory */
.company-card{padding:24px; display:flex; flex-direction:column; gap:14px;}
.company-logo{height:64px; border-radius:var(--radius-s); display:grid; place-items:center;}
.company-card h4{font-family:var(--serif); font-size:1.1rem; color:var(--navy);}
.company-card .c-sector{font-size:.78rem;}
.company-card .c-desc{color:var(--muted); font-size:.9rem; flex:1;}
.company-card .c-link{font-size:.85rem; font-weight:600;}

/* Job listing */
.job-card{padding:26px 28px; display:flex; gap:22px; align-items:center; flex-wrap:wrap;}
.job-main{flex:1; min-width:240px;}
.job-main h3{font-size:1.2rem; margin-bottom:8px;}
.job-tags{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px;}
.job-tag{font-size:.78rem; color:var(--ink-soft); background:var(--sky); border:1px solid var(--line); padding:4px 11px; border-radius:100px; display:inline-flex; gap:6px; align-items:center;}
.job-tag svg{width:13px; height:13px; color:var(--muted);}
.job-side{display:flex; flex-direction:column; align-items:flex-end; gap:10px;}

/* Blog cards */
.post-card{overflow:hidden; display:flex; flex-direction:column;}
.post-card .ph{border:0; border-radius:0;}
.post-body{padding:24px 24px 28px; display:flex; flex-direction:column; flex:1;}
.post-meta{display:flex; gap:12px; align-items:center; font-size:.8rem; color:var(--muted); margin-bottom:14px;}
.post-body h3{font-size:1.28rem; line-height:1.25; margin-bottom:12px;}
.post-body h3 a{color:var(--navy);}
.post-body h3 a:hover{color:var(--brand-blue);}
.post-excerpt{color:var(--muted); font-size:.96rem; flex:1; margin-bottom:18px;}
.post-card.featured{grid-column:span 2; flex-direction:row;}
.post-card.featured .ph{width:48%; min-height:340px;}
.post-card.featured .post-body{justify-content:center; padding:40px;}
.post-card.featured h3{font-size:1.8rem;}

/* Testimonials */
.quote-card{padding:34px 32px; position:relative;}
.quote-card .qmark{font-family:var(--serif); font-size:4rem; line-height:.6; color:var(--line-strong); height:34px; display:block;}
.quote-card blockquote{margin:0 0 22px; font-family:var(--serif); font-size:1.22rem; line-height:1.5; color:var(--navy);}
.quote-author{display:flex; align-items:center; gap:14px;}
.quote-author .ph{width:48px; height:48px; border-radius:50%; flex-shrink:0;}
.quote-author .qa-name{font-weight:700; color:var(--navy); font-size:.95rem;}
.quote-author .qa-role{color:var(--muted); font-size:.85rem;}

/* ============================================================
   NEWSLETTER / CTA bands
   ============================================================ */
.cta-band{position:relative; overflow:hidden; background:var(--navy); color:#fff; border-radius:var(--radius-l);}
.cta-band::before{content:""; position:absolute; inset:0; background:radial-gradient(90% 130% at 90% -20%, rgba(24,160,224,.4), transparent 55%), radial-gradient(80% 120% at 0% 120%, rgba(14,111,168,.4), transparent 60%);}
.cta-band .cta-inner{position:relative; z-index:2; padding:clamp(40px,6vw,72px); text-align:center;}
.cta-band h2{color:#fff; max-width:18ch; margin-inline:auto;}
.cta-band .lead{color:#bcd0e6; margin:20px auto 34px; max-width:54ch;}
.cta-band .btn-row{justify-content:center;}

.newsletter{display:grid; grid-template-columns:1.1fr .9fr; gap:40px; align-items:center;}
.news-form{display:flex; gap:12px; flex-wrap:wrap;}
.news-form input{flex:1; min-width:220px;}
.news-note{font-size:.82rem; color:var(--muted); margin-top:14px;}
.bg-navy .news-note{color:#90a8c0;}

/* ============================================================
   FORMS
   ============================================================ */
.field{display:flex; flex-direction:column; gap:7px; margin-bottom:18px;}
.field label{font-size:.86rem; font-weight:600; color:var(--ink-soft);}
.field .req{color:var(--construccion);}
input,select,textarea{
  font-family:var(--sans); font-size:1rem; color:var(--ink); background:#fff;
  border:1.5px solid var(--line-strong); border-radius:var(--radius-s); padding:13px 15px; width:100%;
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease);
}
input::placeholder,textarea::placeholder{color:var(--muted-l);}
input:focus,select:focus,textarea:focus{outline:none; border-color:var(--brand-blue); box-shadow:0 0 0 4px rgba(14,111,168,.12);}
textarea{resize:vertical; min-height:130px;}
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:0 22px;}
.form-card{background:#fff; border:1px solid var(--line); border-radius:var(--radius-l); padding:clamp(28px,4vw,44px); box-shadow:var(--shadow);}
.checkbox-row{display:flex; gap:11px; align-items:flex-start; font-size:.86rem; color:var(--muted); margin-bottom:20px;}
.checkbox-row input{width:auto; margin-top:3px;}

/* Search / filter bar */
.filter-bar{display:flex; flex-wrap:wrap; gap:14px; align-items:center; justify-content:space-between; margin-bottom:36px;}
.search-box{position:relative; flex:1; min-width:240px; max-width:380px;}
.search-box svg{position:absolute; left:14px; top:50%; transform:translateY(-50%); width:18px; height:18px; color:var(--muted);}
.search-box input{padding-left:42px;}
.chip-row{display:flex; flex-wrap:wrap; gap:9px;}
.chip{font-family:var(--sans); font-weight:600; font-size:.85rem; padding:9px 17px; border-radius:100px; border:1.5px solid var(--line-strong); background:#fff; color:var(--ink-soft); cursor:pointer; transition:all .2s var(--ease);}
.chip:hover{border-color:var(--brand-blue); color:var(--brand-blue);}
.chip.active{background:var(--navy); border-color:var(--navy); color:#fff;}

/* ============================================================
   PROSE (artículos / contenido largo)
   ============================================================ */
.prose{font-size:1.08rem; line-height:1.75; color:var(--ink-soft);}
.prose > * + *{margin-top:1.3em;}
.prose h2{font-size:clamp(1.5rem,2.4vw,1.95rem); color:var(--navy); margin-top:1.8em;}
.prose h3{font-size:1.3rem; color:var(--navy); margin-top:1.5em;}
.prose p{margin-top:1.1em;}
.prose strong{color:var(--navy); font-weight:700;}
.prose ul{margin-top:1.1em; display:flex; flex-direction:column; gap:.7em; padding-left:0;}
.prose ul li{list-style:none; padding-left:30px; position:relative;}
.prose ul li::before{content:""; position:absolute; left:6px; top:.6em; width:8px; height:8px; border-radius:2px; background:var(--brand-blue);}
.prose .lead{font-family:var(--serif); font-size:1.3rem; color:var(--ink); line-height:1.5;}
.prose-cta{margin-top:2em; padding:24px 28px; background:var(--sky); border-left:4px solid var(--brand-blue); border-radius:0 var(--radius) var(--radius) 0;}
.prose-cta p{margin:0 0 14px;}

/* Article meta header */
.article-head{max-width:760px;}
.article-meta{display:flex; flex-wrap:wrap; gap:18px; align-items:center; margin-top:24px; font-size:.9rem; color:var(--muted);}
.article-meta .dot{width:4px; height:4px; border-radius:50%; background:var(--muted-l);}

/* Sidebar / aside boxes */
.aside-box{background:var(--sky); border:1px solid var(--line); border-radius:var(--radius); padding:26px;}
.aside-box h4{font-family:var(--sans); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--brand-blue); margin-bottom:16px; font-weight:700;}
.aside-box.dark{background:var(--navy); color:#cdd9e6;}
.aside-box.dark h4{color:var(--azure-l);}
.aside-box.dark h3{color:#fff;}

/* Two-col content w/ sticky sidebar */
.content-cols{display:grid; grid-template-columns:1fr 340px; gap:56px; align-items:start;}
.sticky{position:sticky; top:calc(var(--header-h) + 24px);}

/* split media+text */
.split{display:grid; grid-template-columns:1fr 1fr; gap:clamp(36px,5vw,72px); align-items:center;}
.split.reverse .split-media{order:2;}

/* tag list */
.tag-list{display:flex; flex-wrap:wrap; gap:10px;}
.tag-list a{font-size:.88rem; padding:7px 14px; border-radius:100px; background:var(--sky); color:var(--ink-soft); border:1px solid var(--line);}
.tag-list a:hover{background:var(--brand-blue); color:#fff; border-color:var(--brand-blue);}

/* logo strip */
.logo-strip{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:22px 50px;}
.logo-strip .ph{width:130px; height:54px; border-radius:6px; opacity:.85;}

/* map placeholder */
.map-ph{width:100%; min-height:340px; border-radius:var(--radius);}

/* ============================================================
   ANIMACIONES (scroll reveal)
   ============================================================ */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
.reveal.in{opacity:1; transform:none;}
.reveal.d1{transition-delay:.08s;} .reveal.d2{transition-delay:.16s;} .reveal.d3{transition-delay:.24s;} .reveal.d4{transition-delay:.32s;}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  html{scroll-behavior:auto;}
}

/* utilities */
.text-center{text-align:center;}
.mt-0{margin-top:0;} .mt-s{margin-top:14px;} .mt-m{margin-top:26px;} .mt-l{margin-top:44px;}
.maxw-60{max-width:60ch;} .maxw-50{max-width:50ch;}
.tint-icon{color:var(--brand-blue);}
.nowrap{white-space:nowrap;}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  .footer-top{grid-template-columns:1fr 1fr; gap:40px;}
  .hero-grid{grid-template-columns:1fr; gap:40px;}
  .content-cols{grid-template-columns:1fr; gap:40px;}
  .post-card.featured{grid-column:span 1; flex-direction:column;}
  .post-card.featured .ph{width:100%; min-height:240px;}
}
@media (max-width:860px){
  body{font-size:16px;}
  .main-nav,.header-cta{display:none;}
  .main-nav.open{
    display:flex; position:absolute; top:var(--header-h); left:0; right:0; flex-direction:column;
    background:#fff; border-bottom:1px solid var(--line); padding:16px 20px 24px; gap:2px; box-shadow:var(--shadow);
  }
  .main-nav.open a{padding:13px 14px; font-size:1.05rem;}
  .main-nav.open .header-cta{display:block; margin:12px 0 0;}
  .nav-toggle{display:flex;}
  .has-dropdown{width:100%;}
  .main-nav.open .dropdown{
    position:static; opacity:1; visibility:visible; transform:none; box-shadow:none;
    border:0; border-left:2px solid var(--line); border-radius:0; margin:4px 0 8px 14px; padding:4px 0; min-width:0;
    display:none;
  }
  .main-nav.open .has-dropdown.open .dropdown{display:block;}
  .grid-3,.grid-4{grid-template-columns:repeat(2,1fr);}
  .stat-band{grid-template-columns:repeat(2,1fr); gap:30px 20px;}
  .stat:nth-child(odd)::after{display:none;}
  .split{grid-template-columns:1fr; gap:32px;}
  .split.reverse .split-media{order:0;}
  .newsletter{grid-template-columns:1fr; gap:24px;}
  .who-grid{columns:1;}
  .form-grid{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .grid-2,.grid-3,.grid-4{grid-template-columns:1fr;}
  .stat-band{grid-template-columns:1fr 1fr;}
  .job-card{flex-direction:column; align-items:flex-start;}
  .job-side{align-items:flex-start; width:100%;}
  .btn-block-mobile{width:100%;}
}
