/* ============================================
   TOKENS — Seguros José Suárez
   ============================================ */
:root{
  --navy-900:#062A42;
  --navy-800:#0A3B58;
  --navy-700:#0F4F73;
  --navy-600:#15678F;
  --green-700:#0A5868;
  --green-600:#0D7688;
  --green-500:#34B9CC;
  --green-100:#DEF3F6;
  --green-50:#F0FAFB;
  --orange-600:#D9601A;
  --orange-500:#F37323;
  --orange-100:#FDE7D8;
  --orange-900:#66280A;
  --cream:#FFE1B8;
  --white:#FFFFFF;
  --sand-50:#F7F9FB;
  --ink-900:#122236;
  --ink-600:#52606D;
  --ink-400:#8A96A3;
  --border:#E2E8ED;
  --shadow-sm:0 2px 10px rgba(6,42,66,0.07);
  --shadow-md:0 14px 34px rgba(6,42,66,0.12);
  --radius-lg:22px;
  --radius-md:16px;
  --radius-sm:10px;
  --font-display:'Fraunces', serif;
  --font-body:'Plus Jakarta Sans', sans-serif;
  --container:1180px;
}

*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}
body{
  font-family:var(--font-body);
  color:var(--ink-900);
  background:var(--sand-50);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img,svg{display:block; max-width:100%;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer; border:none; background:none;}
ul{list-style:none;}
.container{max-width:var(--container); margin:0 auto; padding:0 24px;}
section{position:relative;}
:focus-visible{outline:3px solid var(--orange-500); outline-offset:3px; border-radius:4px;}

.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13px; font-weight:700; letter-spacing:0.08em; text-transform:uppercase;
  color:var(--green-600);
  margin-bottom:14px;
}
.eyebrow::before{content:''; width:18px; height:2px; background:var(--green-600); border-radius:2px;}

h1,h2,h3{font-family:var(--font-display); color:var(--navy-900); font-weight:600; line-height:1.15;}
h2{font-size:clamp(28px,3.4vw,42px); margin-bottom:16px;}
h3{font-size:20px; margin-bottom:8px;}
.section-lede{color:var(--ink-600); font-size:17px; max-width:640px; margin-bottom:44px;}
.section-head{max-width:720px; margin-bottom:40px;}
.section-pad{padding:96px 0;}
@media (max-width:720px){.section-pad{padding:64px 0;}}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:15px 28px; border-radius:100px; font-weight:700; font-size:15px;
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--green-600); color:var(--white); box-shadow:var(--shadow-sm);}
.btn-primary:hover{background:var(--green-700); transform:translateY(-2px); box-shadow:var(--shadow-md);}
.btn-outline{background:transparent; color:var(--white); border:1.5px solid rgba(255,255,255,0.55);}
.btn-outline:hover{background:rgba(255,255,255,0.12); border-color:var(--white);}
.btn-navy{background:var(--navy-900); color:var(--white);}
.btn-navy:hover{background:var(--navy-700); transform:translateY(-2px);}
.btn-ghost-navy{background:transparent; color:var(--navy-900); border:1.5px solid var(--border);}
.btn-ghost-navy:hover{border-color:var(--navy-900);}
.btn-sm{padding:11px 20px; font-size:14px;}
.btn[disabled], .btn.is-pending{opacity:.55; cursor:not-allowed;}

/* Reveal on scroll */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease;}
.reveal.is-visible{opacity:1; transform:none;}

/* ============================================
   HEADER
   ============================================ */
header{
  position:sticky; top:0; z-index:200;
  background:rgba(247,249,251,0.92); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
}
.nav-row{display:flex; align-items:center; justify-content:space-between; gap:20px; height:82px;}
.brand{display:flex; align-items:center; gap:11px; font-family:var(--font-display); font-weight:700; font-size:19px; color:var(--navy-900);}
.brand-mark{
  width:38px; height:38px; border-radius:10px; background:var(--navy-900);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.brand-mark svg{width:20px; height:20px;}
.brand-group{display:flex; flex-direction:column; justify-content:center; gap:3px; flex-shrink:1; min-width:0;}
.brand-tolic-sub{
  display:flex; align-items:center; gap:6px; font-size:10.5px; font-weight:700;
  color:var(--ink-400); text-transform:uppercase; letter-spacing:0.03em; padding-left:49px; white-space:nowrap;
}
@media (max-width:1040px){.brand-tolic-sub{padding-left:0;}}
.nav-links{display:flex; align-items:center; gap:26px; font-size:15px; font-weight:600; color:var(--ink-600); flex-shrink:0;}
.nav-links a{white-space:nowrap;}
.nav-links a:hover{color:var(--navy-900);}
.nav-actions{display:flex; align-items:center; gap:16px; flex-shrink:0;}
.nav-phone{display:flex; align-items:center; gap:7px; font-weight:700; font-size:14px; color:var(--navy-900); white-space:nowrap;}
.nav-phone svg{width:16px; height:16px; color:var(--green-600);}
.menu-toggle{display:none; width:40px; height:40px; align-items:center; justify-content:center;}
.menu-toggle svg{width:24px; height:24px; color:var(--navy-900);}

@media (max-width:1040px){
  .nav-links{display:none;}
  .nav-phone{display:none;}
  .menu-toggle{display:flex;}
}
@media (max-width:430px){
  .btn{white-space:normal; text-align:center;}
}
@media (max-width:600px){
  .nav-row{gap:12px;}
  .nav-actions{gap:8px;}
  .nav-actions .btn{display:none;}
  .menu-toggle{margin-right:-8px;}
}
@media (max-width:380px){
  .brand{font-size:17px; gap:9px;}
  .brand-mark{width:34px; height:34px;}
  .brand-tolic-sub{font-size:9.5px; letter-spacing:0.01em;}
}

.mobile-menu{
  position:fixed; inset:0; background:var(--navy-900); z-index:300;
  display:flex; flex-direction:column; padding:28px 24px;
  transform:translateX(100%); transition:transform .3s ease;
}
.mobile-menu.is-open{transform:translateX(0);}
.mobile-menu{overflow-y:auto;}
.mobile-menu-top{display:flex; justify-content:space-between; align-items:center; margin-bottom:40px;}
.mobile-menu-close svg{width:26px; height:26px; color:var(--white);}
.mobile-menu a{font-family:var(--font-display); font-size:clamp(20px,6.5vw,26px); color:var(--white); padding:14px 0; border-bottom:1px solid rgba(255,255,255,0.12);}
.mobile-menu .btn{margin-top:28px;}

/* ============================================
   HERO
   ============================================ */
.hero{
  background:linear-gradient(160deg, var(--orange-900) 0%, var(--orange-600) 68%, var(--orange-500) 100%);
  color:var(--white);
  padding:88px 0 110px;
  overflow:hidden;
  position:relative;
}
.hero-grid{display:grid; grid-template-columns:1.05fr 0.85fr; gap:60px; align-items:center;}
@media (max-width:920px){.hero-grid{grid-template-columns:1fr; gap:48px;}}
.hero-eyebrow{
  display:inline-flex; align-items:center; gap:8px; padding:7px 16px 7px 8px;
  background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.16);
  border-radius:100px; font-size:13px; font-weight:600; margin-bottom:26px; color:var(--green-100);
}
.hero-eyebrow .dot{width:7px; height:7px; border-radius:50%; background:var(--white);}
.hero h1{color:var(--white); font-size:clamp(38px,5.2vw,58px); letter-spacing:-0.01em; margin-bottom:22px;}
.hero h1 em{font-style:italic; color:var(--cream);}
.hero-sub{font-size:18px; color:rgba(255,255,255,0.78); max-width:520px; margin-bottom:18px;}
.hero-tolic-note{display:flex; align-items:center; gap:8px; font-size:13.5px; color:rgba(255,255,255,0.6); margin-bottom:26px;}
.hero-tolic-note strong{color:rgba(255,255,255,0.85); font-weight:700;}
.indicators{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:38px;}
.indicator{
  display:flex; align-items:center; gap:8px; font-size:14px; font-weight:600;
  color:rgba(255,255,255,0.92); padding:9px 14px; background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.14); border-radius:100px;
}
.indicator svg{width:15px; height:15px; color:var(--white); flex-shrink:0;}
.hero-ctas{display:flex; gap:14px; flex-wrap:wrap;}

/* Signature shield motif */
.shield-wrap{position:relative; height:420px; display:flex; align-items:center; justify-content:center;}
.shield-layer{position:absolute; filter:drop-shadow(0 20px 40px rgba(0,0,0,0.28));}
.shield-layer svg{width:100%; height:100%;}
.shield-back{width:300px; height:340px; opacity:0.5; transform:translate(-38px,26px) rotate(-9deg); animation:float1 7s ease-in-out infinite;}
.shield-mid{width:270px; height:305px; opacity:0.75; transform:translate(20px,-14px) rotate(6deg); animation:float2 8s ease-in-out infinite;}
.shield-front{width:230px; height:260px; animation:float3 6.5s ease-in-out infinite;}
@keyframes float1{0%,100%{transform:translate(-38px,26px) rotate(-9deg);} 50%{transform:translate(-38px,10px) rotate(-7deg);}}
@keyframes float2{0%,100%{transform:translate(20px,-14px) rotate(6deg);} 50%{transform:translate(20px,-28px) rotate(8deg);}}
@keyframes float3{0%,100%{transform:translate(0,0) rotate(0deg);} 50%{transform:translate(0,-12px) rotate(1deg);}}
@media (max-width:920px){.shield-wrap{height:300px;}
  .shield-back{width:210px;height:238px;} .shield-mid{width:190px;height:214px;} .shield-front{width:160px;height:182px;}}

/* ============================================
   EDUCATIONAL SECTION
   ============================================ */
.expense-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
@media (max-width:900px){.expense-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.expense-grid{grid-template-columns:1fr;}}
.expense-card{
  background:var(--orange-100); border:1px solid var(--border); border-radius:var(--radius-md);
  padding:22px 18px; text-align:left; transition:transform .2s ease, box-shadow .2s ease;
}
.expense-card:hover{transform:translateY(-3px); box-shadow:var(--shadow-sm);}
.expense-icon{
  width:40px; height:40px; border-radius:10px; background:var(--white);
  display:flex; align-items:center; justify-content:center; margin-bottom:12px;
}
.expense-icon svg{width:20px; height:20px; color:var(--orange-600);}
.expense-card p{font-weight:700; font-size:14.5px; color:var(--navy-900);}
.note-box{
  margin-top:36px; padding:18px 22px; background:var(--green-50); border:1px solid var(--green-100);
  border-radius:var(--radius-md); font-size:14px; color:var(--ink-600); display:flex; gap:12px; align-items:flex-start;
}
.note-box svg{width:18px; height:18px; color:var(--green-600); flex-shrink:0; margin-top:2px;}

/* ============================================
   PLANS
   ============================================ */
.plans-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
@media (max-width:920px){.plans-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:600px){.plans-grid{grid-template-columns:1fr;}}
.plan-card{
  background:var(--orange-100); border:1px solid var(--border); border-radius:var(--radius-lg);
  padding:30px 26px; transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  display:flex; flex-direction:column;
}
.plan-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-md); border-color:var(--orange-600);}
.plan-icon{
  width:52px; height:52px; border-radius:14px; background:var(--navy-900);
  display:flex; align-items:center; justify-content:center; margin-bottom:18px;
}
.plan-icon svg{width:26px; height:26px; color:var(--orange-500);}
.plan-card p.desc{color:var(--ink-600); font-size:14.5px; margin-bottom:22px; flex-grow:1;}
.plan-card .btn{align-self:flex-start;}
/* Tarjeta destacada: Cáncer */
.plan-card.featured{border-width:2px; border-color:var(--orange-900); background:var(--orange-100);}
.plan-tag{
  display:inline-block; font-size:11.5px; font-weight:700; letter-spacing:0.05em; text-transform:uppercase;
  color:var(--white); background:var(--orange-900); padding:5px 11px; border-radius:100px; margin-bottom:14px; align-self:flex-start;
}
/* Botones dentro de las tarjetas de planes (contraste AA) */
.plan-card .btn-primary{background:var(--orange-900); color:var(--white);}
.plan-card .btn-primary:hover{background:var(--orange-900); transform:translateY(-2px); box-shadow:var(--shadow-md);}
.plan-card .btn-ghost-navy{color:var(--orange-900); border-color:var(--orange-900);}
.plan-card .btn-ghost-navy:hover{border-color:var(--orange-900); background:var(--white);}
.product-disclaimer{
  margin-top:32px; padding:16px 20px; background:var(--sand-50); border:1px solid var(--border);
  border-radius:var(--radius-md); font-size:13px; color:var(--ink-400); line-height:1.6;
}
.modal-box h4{font-family:var(--font-body); font-size:13.5px; font-weight:700; color:var(--navy-900); margin:18px 0 8px;}
.modal-box ul.modal-list{margin:0 0 4px; padding-left:0;}
.modal-box ul.modal-list li{
  list-style:none; font-size:14px; color:var(--ink-600); padding:6px 0 6px 22px; position:relative; line-height:1.4;
}
.modal-box ul.modal-list li::before{
  content:''; position:absolute; left:0; top:13px; width:7px; height:7px; border-radius:50%; background:var(--green-500);
}
.modal-note{
  margin-top:16px; padding:12px 14px; background:var(--green-50); border:1px solid var(--green-100);
  border-radius:var(--radius-sm); font-size:12.5px; color:var(--ink-600); line-height:1.55;
}
.modal-box .btn{width:100%; margin-top:20px;}

/* ============================================
   CANCER SPOTLIGHT
   ============================================ */
.spotlight{
  background:linear-gradient(140deg, var(--orange-900), var(--orange-600));
  color:var(--white); padding:100px 0; position:relative; overflow:hidden;
}
.spotlight::before{
  content:''; position:absolute; width:520px; height:520px; border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,0.14), transparent 70%);
  top:-180px; right:-140px;
}
.spotlight-inner{max-width:660px; position:relative; z-index:1;}
.spotlight .eyebrow{color:var(--cream);}
.spotlight h2{color:var(--white);}
.spotlight p{color:rgba(255,255,255,0.8); font-size:17px; margin-bottom:16px;}
.spotlight .btn{margin-top:18px;}

/* ============================================
   INDIVIDUALS / BUSINESS
   ============================================ */
.route-grid{display:grid; grid-template-columns:1fr 1fr; gap:22px;}
@media (max-width:800px){.route-grid{grid-template-columns:1fr;}}
.route-card{
  border-radius:var(--radius-lg); padding:40px 34px; position:relative; overflow:hidden;
}
.route-card.b2c{background:var(--orange-100); border:1px solid var(--border);}
.route-card.b2b{background:var(--navy-900); color:var(--white);}
.route-card h3{font-size:24px; margin-bottom:12px;}
.route-card.b2b h3{color:var(--white);}
.route-card p{color:var(--ink-600); margin-bottom:26px; font-size:15px;}
.route-card.b2b p{color:rgba(255,255,255,0.75);}
.route-icon{
  width:46px; height:46px; border-radius:12px; margin-bottom:20px;
  display:flex; align-items:center; justify-content:center;
}
.route-card.b2c .route-icon{background:var(--white);}
.route-card.b2c .route-icon svg{width:24px; height:24px; color:var(--orange-600);}
.route-card.b2b .route-icon{background:rgba(44,166,132,0.18);}
.route-card.b2b .route-icon svg{width:24px; height:24px; color:var(--green-500);}
/* Botón de la tarjeta "Para ti y tu familia" (contraste AA) */
.route-card.b2c .btn-primary{background:var(--orange-900); color:var(--white);}
.route-card.b2c .btn-primary:hover{background:var(--orange-900); transform:translateY(-2px); box-shadow:var(--shadow-md);}
/* Botón de la tarjeta "Para empresas" (contraste AA) */
.route-card.b2b .btn-outline{background:var(--navy-600); color:var(--white); border:none;}
.route-card.b2b .btn-outline:hover{background:var(--navy-700);}

/* ============================================
   ABOUT JOSE
   ============================================ */
.about-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:start;}
@media (max-width:900px){.about-grid{grid-template-columns:1fr; gap:36px;}}
.about-photo-wrap{
  position:relative; border-radius:var(--radius-lg); overflow:hidden; aspect-ratio:3/4;
  box-shadow:var(--shadow-md); border:1px solid var(--border);
}
.about-photo-wrap img{width:100%; height:100%; object-fit:cover; object-position:center top; display:block;}
.about-caption{
  background:var(--navy-900); border-radius:var(--radius-md); padding:16px 18px; margin-top:14px;
  display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap;
}
.about-caption strong{display:block; color:var(--white); font-family:var(--font-display); font-size:17px; font-weight:600;}
.about-caption > div:first-child span{color:rgba(255,255,255,0.6); font-size:12.5px;}
.about-tolic-mini{display:flex; align-items:center; gap:7px; background:rgba(255,255,255,0.92); border-radius:100px; padding:6px 12px;}
.about-tolic-mini span{font-size:10.5px; font-weight:700; color:var(--ink-600); text-transform:uppercase; letter-spacing:0.02em;}
.about-badges-row{display:flex; flex-wrap:wrap; gap:8px; margin-top:14px;}
.about-badge-pill{
  font-size:12px; font-weight:600; color:var(--ink-600); background:var(--sand-50); border:1px solid var(--border);
  border-radius:100px; padding:7px 12px;
}
.about-quote{
  border-left:3px solid var(--green-500); padding:4px 0 4px 20px; margin:26px 0;
}
.about-quote p{font-family:var(--font-display); font-style:italic; font-size:19px; color:var(--navy-900); line-height:1.4; margin-bottom:8px;}
.about-quote span{font-size:12.5px; font-weight:700; color:var(--green-700); text-transform:uppercase; letter-spacing:0.03em;}
.about-help-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:18px;}
@media (max-width:560px){.about-help-grid{grid-template-columns:1fr;}}
.about-help-item{display:flex; gap:12px; align-items:flex-start;}
.about-help-icon{
  width:34px; height:34px; border-radius:9px; background:var(--green-100); flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
}
.about-help-icon svg{width:17px; height:17px; color:var(--green-700);}
.about-help-item strong{display:block; font-size:14.5px; color:var(--navy-900); margin-bottom:3px;}
.about-help-item p{font-size:13.5px; color:var(--ink-600); line-height:1.5;}
.about-cta{
  margin-top:32px; padding-top:26px; border-top:1px solid var(--border);
  display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap;
}
.about-cta p{font-family:var(--font-display); font-size:17px; color:var(--navy-900); font-weight:600;}

/* ============================================
   HOW IT WORKS
   ============================================ */
.steps-row{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; position:relative;}
@media (max-width:900px){.steps-row{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.steps-row{grid-template-columns:1fr;}}
.step{position:relative; padding-top:8px;}
.step .step-num{
  font-family:var(--font-display); font-size:44px; font-weight:600; color:var(--green-100);
  -webkit-text-stroke:1.5px var(--green-600); margin-bottom:14px; line-height:1;
}
.step h3{font-size:17px;}
.step p{color:var(--ink-600); font-size:14.5px;}

/* ============================================
   FORM SECTION
   ============================================ */
.form-section{background:var(--white); border-top:1px solid var(--border); border-bottom:1px solid var(--border);}
.form-grid{display:grid; grid-template-columns:0.85fr 1.15fr; gap:56px; align-items:start;}
@media (max-width:920px){.form-grid{grid-template-columns:1fr; gap:36px;}}
.form-side-list{display:flex; flex-direction:column; gap:18px; margin-top:28px;}
.form-side-item{display:flex; gap:12px; align-items:flex-start;}
.form-side-item svg{width:18px; height:18px; color:var(--green-600); flex-shrink:0; margin-top:2px;}
.form-side-item p{font-size:14.5px; color:var(--ink-600); font-weight:600;}

.card-form{
  background:var(--sand-50); border:1px solid var(--border); border-radius:var(--radius-lg);
  padding:36px; box-shadow:var(--shadow-sm);
}
.card-form h3{font-size:21px; margin-bottom:10px;}
.card-form > p{color:var(--ink-600); font-size:15px; margin-bottom:8px;}
.card-form .btn{width:100%; margin-top:18px; padding:16px; text-align:center;}
.form-note{font-size:12.5px; color:var(--ink-400); margin-top:14px; text-align:center;}
.form-note a, .form-alt a, .alliance-note a{color:var(--green-700); font-weight:700; text-decoration:underline; text-underline-offset:2px;}
.form-alt{margin-top:22px; padding-top:18px; border-top:1px solid var(--border); font-size:14px; color:var(--ink-600); text-align:center;}
.contact-options{display:flex; flex-direction:column; gap:10px; margin-top:18px;}
.contact-options .btn{margin-top:0;}

/* ============================================
   EXISTING CLIENTS
   ============================================ */
.client-box{
  background:var(--green-50); border:1px solid var(--green-100); border-radius:var(--radius-lg);
  padding:48px 40px; display:grid; grid-template-columns:1fr auto; gap:32px; align-items:center;
}
@media (max-width:800px){.client-box{grid-template-columns:1fr; text-align:left;}}
.client-options{display:flex; flex-direction:column; gap:10px; margin-top:18px;}
.client-option{display:flex; gap:10px; align-items:center; font-size:14.5px; color:var(--ink-600); font-weight:600;}
.client-option svg{width:16px; height:16px; color:var(--green-600); flex-shrink:0;}

/* ============================================
   ALLIANCE
   ============================================ */
.alliance{background:var(--sand-50);}
.alliance-inner{
  border-top:1px solid var(--border); padding-top:56px;
}
.alliance-head{max-width:560px; margin-bottom:32px;}
.alliance-head .eyebrow{color:var(--ink-400);}
.alliance-head .eyebrow::before{background:var(--ink-400);}
.alliance-head h3{font-size:20px; color:var(--ink-600); font-family:var(--font-body); font-weight:700;}
.alliance-head p{color:var(--ink-400); font-size:14px; max-width:520px; margin-top:6px;}
.alliance-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
@media (max-width:700px){.alliance-grid{grid-template-columns:1fr;}}
.alliance-card{
  border:1px solid var(--border); border-radius:var(--radius-md); padding:22px;
  display:flex; justify-content:space-between; align-items:center; gap:16px; background:var(--white);
}
.alliance-card div p{font-size:13px; color:var(--ink-400); margin-top:4px; max-width:280px;}
.alliance-card strong{font-size:15px; color:var(--ink-600);}
.alliance-cta-box{
  margin-top:20px; background:var(--white); border:1px solid var(--border); border-radius:var(--radius-md);
  padding:22px 24px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.alliance-cta-box h4{font-size:15px; color:var(--navy-900); margin-bottom:4px;}
.alliance-cta-box p{font-size:13px; color:var(--ink-400);}
.alliance-cta-box > div{flex:1 1 320px;}
.alliance-note{font-size:12.5px; color:var(--ink-400); margin-top:16px; max-width:760px;}
.modal-box .modal-fine{font-size:13px; color:var(--ink-400); margin-top:14px;}
.footer-tolic{display:flex; align-items:center; gap:9px; margin-top:10px; background:rgba(255,255,255,0.94); border-radius:8px; padding:6px 10px; width:fit-content;}
.footer-tolic span{font-size:11.5px; color:var(--ink-600); font-weight:600;}

/* ============================================
   FOOTER
   ============================================ */
footer{background:var(--navy-900); color:rgba(255,255,255,0.7); padding:64px 0 30px;}
.footer-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:40px; margin-bottom:40px;}
@media (max-width:800px){.footer-grid{grid-template-columns:1fr; gap:32px;}}
.footer-brand{display:flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:700; font-size:18px; color:var(--white); margin-bottom:14px;}
footer h4{color:var(--white); font-size:13.5px; letter-spacing:0.04em; text-transform:uppercase; margin-bottom:16px;}
footer ul{display:flex; flex-direction:column; gap:10px; font-size:14.5px;}
footer ul a:hover{color:var(--white);}
.footer-contact{display:flex; flex-direction:column; gap:10px; font-size:14.5px;}
.footer-contact .row{display:flex; align-items:center; gap:9px;}
.footer-contact svg{width:15px; height:15px; color:var(--green-500); flex-shrink:0;}
.footer-bottom{border-top:1px solid rgba(255,255,255,0.1); padding-top:26px;}
.disclaimer{font-size:12px; line-height:1.7; color:rgba(255,255,255,0.45); max-width:920px; margin-bottom:14px;}
.copyright{font-size:12.5px; color:rgba(255,255,255,0.35);}

/* ============================================
   WHATSAPP FLOAT
   ============================================ */
.wa-float{
  position:fixed; bottom:26px; right:26px; z-index:250;
  width:60px; height:60px; border-radius:50%; background:#25D366;
  display:flex; align-items:center; justify-content:center; box-shadow:0 10px 26px rgba(37,211,102,0.45);
  transition:transform .2s ease;
}
.wa-float:hover{transform:scale(1.07);}
.wa-float svg{width:30px; height:30px; color:var(--white);}
.wa-pulse{position:absolute; inset:0; border-radius:50%; background:#25D366; opacity:.55; animation:pulse 2.4s ease-out infinite;}
@keyframes pulse{0%{transform:scale(1); opacity:.5;} 100%{transform:scale(1.9); opacity:0;}}

/* ============================================
   MODALS
   ============================================ */
.modal-overlay{
  position:fixed; inset:0; background:rgba(6,42,66,0.55); z-index:400;
  display:none; align-items:center; justify-content:center; padding:20px;
  backdrop-filter:blur(3px);
}
.modal-overlay.is-open{display:flex;}
.modal-box{
  background:var(--white); border-radius:var(--radius-lg); max-width:480px; width:100%;
  padding:40px 34px; position:relative; box-shadow:var(--shadow-md);
  max-height:90vh; overflow-y:auto;
}
.modal-close{position:absolute; top:18px; right:18px; width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:var(--sand-50);}
.modal-close svg{width:16px; height:16px; color:var(--ink-600);}
.modal-icon{
  width:56px; height:56px; border-radius:16px; background:var(--green-100);
  display:flex; align-items:center; justify-content:center; margin-bottom:20px;
}
.modal-icon svg{width:28px; height:28px; color:var(--green-700);}
.modal-box h3{font-size:22px; margin-bottom:10px;}
.modal-box p{color:var(--ink-600); font-size:15px; margin-bottom:4px;}

/* Utility */
.text-center{text-align:center;}
.mx-auto{margin-left:auto; margin-right:auto;}

/* ============================================
   PRIVACY PAGE
   ============================================ */
.legal-back{flex-shrink:0;}
.legal-back .lb-short{display:none;}
@media (max-width:600px){.legal-back{padding:10px 16px; font-size:13px;} .legal-back .lb-long{display:none;} .legal-back .lb-short{display:inline;}}
.legal-wrap{padding:64px 0 88px;}
@media (max-width:720px){.legal-wrap{padding:40px 0 64px;}}
.legal{
  max-width:760px; margin:0 auto; background:var(--white); border:1px solid var(--border);
  border-radius:var(--radius-lg); padding:48px 44px; box-shadow:var(--shadow-sm);
}
@media (max-width:600px){.legal{padding:30px 20px;}}
.legal h1{font-size:clamp(28px,6vw,40px); margin:6px 0 8px;}
.legal-date{font-size:13.5px; color:var(--ink-400); margin-bottom:26px;}
.legal h2{font-size:19px; margin:32px 0 10px; scroll-margin-top:100px;}
.legal p, .legal li{color:var(--ink-600); font-size:15.5px; line-height:1.7;}
.legal p{margin-bottom:12px;}
.legal ul{list-style:disc; padding-left:22px; margin:0 0 14px;}
.legal li{margin-bottom:6px;}
.legal a{color:var(--green-700); font-weight:700; text-decoration:underline; text-underline-offset:2px; word-break:break-word;}
.legal-footer .footer-brand{margin-bottom:10px;}
