picture{display:contents;}

  :root{
    --navy:#16294A;
    --teal:#4C6483;
    --teal-dark:#37495F;
    --coral:#FF6B4A;
    --coral-dark:#E14F30;
    --sun:#C9D3DC;
    --peach:#EEF2F6;
    --mint:#E7F1EC;
    --white:#FFFFFF;
    --off:#F6F9F8;
    --ink:#1E2B3D;
    --ink-soft:#5C6B7A;
    --line:rgba(22,41,74,.1);
    --font-display:'Plus Jakarta Sans', sans-serif;
    --font-body:'Inter', sans-serif;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{font-family:var(--font-body); background:var(--off); color:var(--ink); line-height:1.6; overflow-x:hidden; -webkit-font-smoothing:antialiased;}
  img,svg{display:block; max-width:100%;}
  a{color:inherit;}
  button{font-family:inherit; cursor:pointer; border:none;}
  .container{max-width:1200px; margin:0 auto; padding:0 24px;}
  h1,h2,h3,h4{font-family:var(--font-display); color:var(--navy); line-height:1.08; letter-spacing:-0.015em;}
  :focus-visible{outline:3px solid var(--coral); outline-offset:3px; border-radius:6px;}
  @media (prefers-reduced-motion: reduce){ *{animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important;} }
  .eyebrow{font-weight:800; text-transform:uppercase; letter-spacing:.12em; font-size:.76rem; color:var(--coral-dark);}

  .reveal{opacity:0; transform:translateY(24px); transition:opacity .6s ease, transform .6s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}

  /* ---------- NAVBAR ---------- */
  header.site{position:sticky; top:0; z-index:200; background:rgba(255,249,244,.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--line);}
  .nav{display:flex; align-items:center; justify-content:space-between; padding:16px 40px; max-width:1400px; margin:0 auto;}
  .brand-logo{height:58px; width:auto;}
  .nav-links{display:flex; gap:22px; font-weight:700; font-size:.88rem; align-items:center;}
  .nav-links a{text-decoration:none; color:var(--navy); opacity:.8; transition:opacity .2s;}
  .nav-links > a:not(.nav-cta), .nav-dropdown-trigger{position:relative;}
  .nav-links > a:not(.nav-cta)::after, .nav-dropdown-trigger::after{content:''; position:absolute; left:0; right:0; bottom:-5px; height:2px; background:var(--coral); transform:scaleX(0); transform-origin:left; transition:transform .25s ease;}
  .nav-links > a:not(.nav-cta):hover, .nav-dropdown-trigger:hover{opacity:1;}
  .nav-links > a:not(.nav-cta):hover::after, .nav-dropdown-trigger:hover::after, .nav-dropdown.open .nav-dropdown-trigger::after{transform:scaleX(1);}
  .nav-cta{background:var(--coral); color:#fff; padding:10px 24px; border-radius:100px; font-weight:800; font-size:.86rem; transition:transform .15s ease, background .15s ease;}
  .nav-link-intl{display:flex; align-items:center; gap:6px;}
  .nav-link-intl::before{content:''; width:6px; height:6px; border-radius:50%; background:var(--coral); flex:none;}

  /* ---------- BARRA STICKY DE CONVERSIÓN ---------- */
  .sticky-cta{
    position:fixed; left:0; right:0; bottom:0; z-index:200; background:var(--navy);
    box-shadow:0 -6px 24px rgba(22,41,74,.18); transform:translateY(100%); transition:transform .35s ease;
  }
  .sticky-cta.show{transform:translateY(0);}
  .sticky-cta-inner{max-width:1100px; margin:0 auto; padding:14px 24px; display:flex; align-items:center; justify-content:space-between; gap:20px;}
  .sticky-cta-text{color:#fff; font-size:.95rem;}
  .sticky-cta-text strong{font-weight:800;}
  .sticky-cta-btn{background:var(--coral); color:#fff; padding:11px 26px; border-radius:100px; font-weight:800; font-size:.9rem; white-space:nowrap; transition:transform .15s ease;}
  .sticky-cta-btn:hover{transform:translateY(-2px);}
  @media (max-width:600px){
    .sticky-cta-text{display:none;}
    .sticky-cta-inner{justify-content:center; padding:12px 24px;}
    .sticky-cta-btn{width:100%; text-align:center;}
  }
  .nav-cta:hover{transform:translateY(-2px); background:var(--coral-dark);}
  .nav-toggle{display:none; background:none; font-size:1.6rem; color:var(--navy);}

  /* ---------- DESPLEGABLE "SERVICIOS" ---------- */
  .nav-dropdown{position:relative; padding-bottom:16px; margin-bottom:-16px;}
  .nav-dropdown-trigger{display:flex; align-items:center; gap:4px; background:none; border:none; padding:0; font:inherit; font-weight:700; color:var(--navy); opacity:.8; cursor:pointer;}
  .nav-dropdown-trigger:hover, .nav-dropdown.open .nav-dropdown-trigger{opacity:1;}
  .nav-dropdown .caret{font-size:.6rem; opacity:.7; transition:transform .2s ease;}
  .nav-dropdown.open .caret{transform:rotate(180deg);}
  .nav-dropdown-menu{
    position:absolute; top:100%; left:0; margin-top:0; background:#fff; border-radius:18px;
    box-shadow:0 20px 42px rgba(22,41,74,.14); padding:22px 8px; min-width:520px;
    opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
  }
  .nav-dropdown.open .nav-dropdown-menu{opacity:1; visibility:visible; transform:translateY(0);}
  .nav-dropdown-menu.mega{display:flex; gap:0;}
  .mega-col{flex:1; display:flex; flex-direction:column; gap:2px; padding:0 18px;}
  .mega-col + .mega-col{border-left:1px solid var(--line);}
  .mega-col-title{display:block; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-soft); padding:2px 12px 10px;}
  .mega-item{position:relative; display:flex; flex-direction:column; gap:3px; padding:11px 34px 11px 12px; border-radius:12px; text-decoration:none; transition:background .18s ease;}
  .mega-item:hover, .mega-item:focus-visible{background:var(--off);}
  .mega-item-top{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
  .mega-item strong{font-size:.92rem; font-weight:700; color:var(--navy);}
  .mega-item small{font-size:.76rem; font-weight:500; color:var(--ink-soft);}
  .mega-item-arrow{position:absolute; top:50%; right:12px; width:14px; height:14px; color:#B43F26; opacity:0; transform:translate(-3px,-50%); transition:opacity .18s ease, transform .18s ease;}
  .mega-item:hover .mega-item-arrow, .mega-item:focus-visible .mega-item-arrow{opacity:1; transform:translate(0,-50%);}
  .mega-item--camp{background:rgba(255,107,74,.05);}
  .mega-item--camp:hover, .mega-item--camp:focus-visible{background:rgba(255,107,74,.09);}
  .mega-badge{display:inline-block; font-size:.6rem; font-weight:800; text-transform:uppercase; letter-spacing:.03em; color:#B43F26; background:rgba(255,107,74,.16); padding:2px 8px; border-radius:100px; white-space:nowrap;}
  @media (max-width:920px){
    .nav-dropdown-menu{
      position:static; box-shadow:none; min-width:0; padding:0; margin-top:0;
      opacity:0; visibility:hidden; max-height:0; overflow:hidden; transform:none;
      transition:max-height .2s ease, opacity .2s ease;
    }
    .nav-dropdown.open .nav-dropdown-menu{opacity:1; visibility:visible; max-height:480px; margin-top:8px; padding:2px 0 2px 6px; border-left:2px solid var(--line);}
    .nav-dropdown-menu.mega{flex-direction:column;}
    .mega-col{padding:0;}
    .mega-col + .mega-col{border-left:none;}
    .mega-col-title{display:none;}
  }
  @media (max-width:920px){
    .nav-links{position:fixed; top:58px; left:0; right:0; background:var(--white); flex-direction:column; align-items:flex-start; padding:20px 24px; gap:16px; box-shadow:0 12px 24px rgba(0,0,0,.08); transform:translateY(-140%); transition:transform .25s ease; z-index:150;}
    .nav-links.open{transform:translateY(0);}
    .nav-toggle{display:block;}
  }

  /* ---------- HERO ---------- */
  .hero{position:relative; padding:48px 24px 70px; overflow:hidden; border-bottom:1px solid var(--line); background:linear-gradient(180deg, #FBF8F1 0%, #F5F1E6 100%);}
  .hero-grid{position:relative; z-index:1; max-width:1180px; margin:0 auto; display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center;}
  .hero-grid > *{min-width:0;}
  @media (max-width:960px){
    .hero-grid{grid-template-columns:minmax(0,1fr); gap:36px; max-width:720px;}
  }
  .hero-text{text-align:left; min-width:0;}
  @media (max-width:960px){ .hero-text{text-align:center;} }
  .hero .eyebrow{color:#B43F26; background:#fff; border:1.5px solid rgba(255,107,74,.35); display:inline-block; padding:7.5px 17px; border-radius:100px; margin-bottom:22px; font-weight:800; box-shadow:0 4px 14px rgba(255,107,74,.12);}
  .hero h1{font-size:clamp(2.3rem,4.4vw,3.5rem); font-weight:800; color:var(--navy); margin-bottom:20px; line-height:1.08;}
  .hero h1 span{color:var(--coral-dark);}
  .hero p.lead{font-size:1.12rem; color:var(--ink-soft); max-width:480px; margin:0 0 32px;}
  @media (max-width:960px){ .hero p.lead{margin:0 auto 32px;} }
  .hero-ctas{display:flex; gap:16px; flex-wrap:wrap;}
  @media (max-width:960px){ .hero-ctas{justify-content:center;} }
  .hero-facts{list-style:none; display:flex; flex-wrap:wrap; gap:14px 26px; margin:24px 0 0; padding:0;}
  .hero-facts li{display:flex; align-items:center; gap:8px; font-size:.9rem; font-weight:600; color:var(--navy);}
  .hero-facts .hf-ic{width:19px; height:19px; color:var(--coral-dark); flex:none;}
  .hero-facts strong{color:var(--coral-dark);}
  @media (max-width:960px){ .hero-facts{justify-content:center;} }
  .hero-trust{margin-top:24px; font-size:.95rem; color:var(--navy); font-weight:600;}
  .hero-trust strong{color:var(--coral-dark);}
  .btn-primary{background:var(--coral); color:#fff; padding:16px 32px; border-radius:100px; font-weight:800; font-size:1rem; box-shadow:0 14px 28px rgba(255,130,102,.32); transition:transform .15s ease, box-shadow .15s ease;}
  .btn-primary:hover{transform:translateY(-3px); box-shadow:0 18px 34px rgba(255,130,102,.4);}
  .btn-outline{background:#fff; color:var(--navy); padding:15px 28px; border-radius:100px; font-weight:700; border:1.5px solid var(--line); transition:background .15s ease, color .15s ease, border-color .15s ease;}
  .btn-outline:hover{background:var(--navy); color:#fff; border-color:var(--navy);}
  .hero-photo-col{position:relative; margin-bottom:28px;}
  .hero-photo-frame{position:relative; border-radius:26px; overflow:hidden; aspect-ratio:4/3; box-shadow:0 30px 60px rgba(22,41,74,.22);}
  .hero-photo-frame img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(1.05) contrast(1.03);}
  .hero-slide{position:absolute; inset:0; opacity:0; transition:opacity .7s ease;}
  .hero-slide.active{opacity:1;}
  .hero-slide-dots{position:absolute; left:16px; right:16px; bottom:16px; display:flex; gap:6px; z-index:2;}
  .hero-slide-dot{flex:1; height:3px; border-radius:100px; background:rgba(255,255,255,.35); overflow:hidden; cursor:pointer;}
  .hero-slide-dot .fill{display:block; height:100%; width:0%; background:#fff; border-radius:100px;}
  .hero-slide-dot.done .fill{width:100%; transition:none;}
  .hero-slide-dot.active .fill{width:100%; transition:width 3.2s linear;}
  .hero-photo-scrim{position:absolute; inset:0; background:linear-gradient(180deg, rgba(22,41,74,0) 50%, rgba(22,41,74,.72) 100%); pointer-events:none; z-index:1;}
  .hero-photo-caption{position:absolute; left:24px; bottom:22px; z-index:2; display:inline-flex; align-items:center; gap:7px; font-size:.8rem; font-weight:700; color:#fff; text-transform:uppercase; letter-spacing:.03em; background:rgba(255,255,255,.16); backdrop-filter:blur(6px); padding:9px 16px; border-radius:100px; text-decoration:none; transition:background .2s ease, transform .2s ease;}
  .hero-photo-caption svg{width:14px; height:14px; flex:none;}
  .hero-photo-caption:hover, .hero-photo-caption:focus-visible{background:rgba(255,255,255,.3); transform:translateY(-1px);}
  @media (max-width:600px){ .hero-photo-caption{font-size:.72rem; padding:8px 14px; left:16px; bottom:16px;} }
  .hero-slide-nav{position:absolute; top:50%; transform:translateY(-50%); z-index:3; width:40px; height:40px; border-radius:50%; background:rgba(22,41,74,.5); backdrop-filter:blur(2px); display:flex; align-items:center; justify-content:center; color:#fff; transition:background .15s ease, transform .15s ease; cursor:pointer;}
  .hero-slide-nav:hover{background:rgba(22,41,74,.75); transform:translateY(-50%) scale(1.08);}
  .hero-slide-nav svg{width:20px; height:20px;}
  .hero-slide-nav.prev{left:14px;}
  .hero-slide-nav.next{right:14px;}
  @media (max-width:480px){ .hero-slide-nav{width:34px; height:34px;} .hero-slide-nav svg{width:16px; height:16px;} }
  .hero-photo-badge{
    position:absolute; top:-18px; left:24px; background:#fff; border-radius:18px; padding:16px 22px;
    box-shadow:0 12px 28px rgba(22,41,74,.2); display:flex; flex-direction:column; line-height:1.2; z-index:3;
  }
  .hero-photo-badge strong{font-family:var(--font-display); font-weight:800; font-size:1.6rem; color:var(--coral-dark);}
  .hero-photo-badge span{font-size:.76rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.03em;}
  .btn-outline:hover{background:var(--navy); color:#fff; border-color:var(--navy);}

  @media (max-width:600px){
    .nav{padding:12px 20px;}
    .brand-logo{height:50px;}
    .nav-links{top:75px;}
    .hero{padding:36px 20px 54px;}
    .hero-grid{gap:32px; width:100%;}
    .hero .eyebrow{max-width:100%; margin-bottom:18px; padding:7px 14px; font-size:.68rem; letter-spacing:.09em; white-space:normal;}
    .hero h1{font-size:clamp(2rem,10.5vw,2.65rem); margin-bottom:16px; overflow-wrap:anywhere;}
    .hero p.lead{font-size:1rem; margin-bottom:24px;}
    .hero-ctas{display:grid; grid-template-columns:1fr; gap:12px; width:100%;}
    .hero-ctas .btn-primary,
    .hero-ctas .btn-outline{width:100%; padding:14px 18px; text-align:center;}
    .hero-facts{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 18px; width:100%; text-align:left;}
    .hero-facts li{align-items:flex-start; min-width:0; font-size:.84rem; line-height:1.45;}
    .hero-photo-col{width:100%; margin:4px 0 18px; padding-top:12px;}
    .hero-photo-frame{width:100%; border-radius:20px; aspect-ratio:4/3;}
    .hero-photo-badge{top:-6px; left:14px; max-width:calc(100% - 28px); padding:12px 16px; border-radius:14px;}
    .hero-photo-badge strong{font-size:1.4rem;}
    .hero-photo-badge span{font-size:.68rem;}
  }

  @media (max-width:360px){
    .hero{padding-inline:16px;}
    .hero-facts{grid-template-columns:1fr;}
  }



  /* ---------- MÉTODO INTERLANGUAGE ---------- */
  section.methodology{padding:64px 24px 76px; background:#FBF8F1;}
  .method-layout{
    display:grid; grid-template-columns:1.05fr .95fr;
    grid-template-areas:"copy photo" "principles photo";
    column-gap:64px; row-gap:26px; align-items:start; max-width:1180px; margin:0 auto;
  }
  @media (max-width:900px){ .method-layout{column-gap:40px;} }
  @media (max-width:620px){
    .method-layout{grid-template-columns:1fr; grid-template-areas:"copy" "photo" "principles"; row-gap:28px;}
  }
  .method-copy{grid-area:copy; text-align:left;}
  @media (max-width:960px){ .method-copy{text-align:center;} }
  .method-copy h2{font-size:clamp(2.1rem,4vw,3rem); font-weight:800; color:var(--navy); margin:14px 0 18px; line-height:1.14;}
  .method-intro{font-size:1.1rem; color:var(--ink-soft); line-height:1.7; max-width:460px;}
  @media (max-width:960px){ .method-intro{margin:0 auto;} }
  .method-photo-col{grid-area:photo; position:sticky; top:100px; align-self:stretch;}
  @media (max-width:620px){ .method-photo-col{position:static; align-self:auto;} }
  .method-photo-frame{position:relative; border-radius:26px; overflow:hidden; height:100%; min-height:420px; box-shadow:0 30px 60px rgba(22,41,74,.18); background:var(--navy);}
  @media (max-width:620px){ .method-photo-frame{height:auto; aspect-ratio:4/3.6; min-height:0;} }
  .method-photo-frame img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; filter:saturate(1.05) contrast(1.03); opacity:0; transition:opacity .5s ease;}
  .method-photo-frame img.is-shown{opacity:1;}
  .method-photo-scrim{position:absolute; inset:0; background:linear-gradient(180deg, rgba(22,41,74,0) 55%, rgba(22,41,74,.78) 100%); z-index:1;}
  .method-photo-caption{position:absolute; left:22px; right:22px; bottom:20px; z-index:2; color:#fff;}
  .method-photo-caption .tag{display:inline-block; font-size:.66rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; background:rgba(255,255,255,.16); backdrop-filter:blur(6px); padding:5px 12px; border-radius:100px; margin-bottom:8px;}
  .method-photo-caption p{font-size:.92rem; font-weight:600; max-width:300px; margin:0;}

  /* bloque de autoridad "30+ años", independiente de la fotografía */
  .method-authority{display:flex; align-items:center; gap:32px; max-width:1180px; margin:40px auto 0; padding:34px 40px; background:#fff; border-radius:22px; box-shadow:0 16px 34px rgba(22,41,74,.08);}
  @media (max-width:640px){ .method-authority{flex-direction:column; text-align:center; gap:10px; padding:30px 24px;} }
  .method-authority-num{font-family:var(--font-display); font-weight:800; font-size:clamp(3.2rem,7vw,5rem); color:var(--coral-dark); line-height:1;}
  .method-authority-label{display:block; font-weight:800; text-transform:uppercase; letter-spacing:.06em; font-size:.8rem; color:var(--navy); margin-bottom:6px;}
  .method-authority p{font-size:1rem; color:var(--ink-soft); line-height:1.5; max-width:420px;}

  .method-principles{grid-area:principles; display:flex; flex-direction:column; gap:14px;}
  .method-more-link{display:inline-block; margin-top:18px; font-size:.92rem; font-weight:700; color:var(--coral-dark); text-decoration:none;}
  .method-more-link:hover{text-decoration:underline;}
  .method-principle{
    display:flex; align-items:flex-start; gap:14px; width:100%; background:var(--white); border:none;
    padding:16px 18px; margin:0; border-radius:16px; font:inherit; text-align:left;
    cursor:pointer; box-shadow:0 10px 22px rgba(22,41,74,.07);
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .method-principle:hover, .method-principle.is-active{transform:translateY(-3px); box-shadow:0 14px 28px rgba(22,41,74,.12);}
  .method-principle-ic{
    flex:0 0 36px; width:36px; height:36px; border-radius:10px; display:flex; align-items:center; justify-content:center;
    background:var(--off); color:var(--coral-dark); transition:background .2s ease, color .2s ease, transform .2s ease;
  }
  .method-principle-ic svg{width:18px; height:18px;}
  .method-principle:nth-child(2) .method-principle-ic{color:var(--teal-dark);}
  .method-principle:nth-child(3) .method-principle-ic{color:var(--navy);}
  .method-principle:hover .method-principle-ic, .method-principle.is-active .method-principle-ic{transform:scale(1.06);}
  .method-principle:nth-child(1):hover .method-principle-ic, .method-principle:nth-child(1).is-active .method-principle-ic{background:var(--coral-dark); color:#fff;}
  .method-principle:nth-child(2):hover .method-principle-ic, .method-principle:nth-child(2).is-active .method-principle-ic{background:var(--teal-dark); color:#fff;}
  .method-principle:nth-child(3):hover .method-principle-ic, .method-principle:nth-child(3).is-active .method-principle-ic{background:var(--navy); color:#fff;}
  .method-principle-body{display:block;}
  .method-principle h3{font-size:1rem; margin-bottom:4px; color:var(--navy); transition:color .2s ease;}
  .method-principle:hover h3, .method-principle.is-active h3{color:var(--coral-dark);}
  .method-principle p{font-size:.9rem; color:var(--ink-soft); line-height:1.55; margin:0;}

  /* ---------- SERVICIOS ---------- */
  section.services{padding:90px 0; background:var(--white);}
  section.services .container{padding:0 24px;}
  .services-head{max-width:680px; margin-bottom:16px;}
  .services-head h2{font-size:clamp(1.9rem,3.6vw,2.6rem); margin-top:12px;}
  .services-tagline{font-family:var(--font-display); font-weight:800; font-size:clamp(1.9rem,3.6vw,2.6rem); color:var(--navy); margin-top:14px; line-height:1.15;}
  .services-head p{color:var(--ink-soft); margin-top:18px; font-size:1.08rem; max-width:650px; line-height:1.7; font-weight:500;}
  .svc-card{cursor:pointer;}
  .svc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:38px; max-width:1080px; margin-left:auto; margin-right:auto;}
  @media (max-width:700px){ .svc-grid{grid-template-columns:1fr; max-width:440px;} }
  .svc-card2{
    position:relative; border-radius:20px; overflow:hidden; cursor:pointer; text-decoration:none; display:block;
    border:1px solid rgba(22,41,74,.07);
    box-shadow:0 1px 3px rgba(22,41,74,.05), 0 12px 26px rgba(22,41,74,.08);
    transition:transform .3s cubic-bezier(.22,.8,.32,1), box-shadow .3s cubic-bezier(.22,.8,.32,1), border-color .3s ease;
  }
  .svc-card2:hover, .svc-card2:focus-visible{
    transform:translateY(-6px);
    border-color:rgba(255,107,74,.3);
    box-shadow:0 10px 22px rgba(22,41,74,.10), 0 30px 58px rgba(22,41,74,.22), 0 0 34px rgba(255,107,74,.14);
  }
  .svc-card2.active{box-shadow:0 0 0 2px var(--coral);}
  .svc-photo{height:360px; position:relative; overflow:hidden;}
  @media (max-width:700px){ .svc-photo{height:280px;} }
  .svc-photo img{width:100%; height:100%; object-fit:cover; object-position:center 20%; display:block; transition:transform .35s cubic-bezier(.22,.8,.32,1); filter:saturate(1.05) contrast(1.03);}
  .svc-card2:hover .svc-photo img, .svc-card2:focus-visible .svc-photo img{transform:scale(1.04);}
  .svc-overlay-scrim{
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(22,41,74,0) 42%, rgba(22,41,74,.22) 66%, rgba(22,41,74,.82) 100%);
    transition:background .3s ease;
  }
  .svc-card2:hover .svc-overlay-scrim, .svc-card2:focus-visible .svc-overlay-scrim{
    background:linear-gradient(180deg, rgba(22,41,74,0) 36%, rgba(22,41,74,.28) 62%, rgba(22,41,74,.88) 100%);
  }
  .svc-overlay-body{position:absolute; left:0; right:0; bottom:0; padding:22px 22px; z-index:1;}
  .svc-overlay-body h3{font-size:clamp(1.4rem,1.9vw,1.7rem); font-weight:800; color:#fff; margin-bottom:4px; line-height:1.15; min-height:2.3em;}
  .svc-meta{color:rgba(255,255,255,.88); font-size:.84rem; font-weight:600; letter-spacing:.01em; margin-bottom:3px;}
  .svc-quick-info{
    max-height:0; opacity:0; overflow:hidden; color:rgba(255,255,255,.85); font-size:.82rem; font-weight:500; line-height:1.4;
    transition:max-height .3s ease, opacity .3s ease, margin .3s ease;
  }
  .svc-card2:hover .svc-quick-info, .svc-card2:focus-visible .svc-quick-info{max-height:48px; opacity:1; margin:4px 0 2px;}
  @media (hover:none){ .svc-quick-info{max-height:48px; opacity:1; margin:4px 0 2px;} }
  .svc-more{
    display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-size:.82rem; font-weight:800; color:#fff;
    transition:gap .3s ease, color .3s ease;
  }
  .svc-card2:hover .svc-more, .svc-card2:focus-visible .svc-more{gap:10px; color:#FFDCCB;}
  .svc-more svg{width:14px; height:14px; opacity:.85; transform:translateX(0); transition:opacity .3s ease, transform .3s ease;}
  .svc-card2:hover .svc-more svg, .svc-card2:focus-visible .svc-more svg{opacity:1; transform:translateX(4px);}
  .svc-badge{position:absolute; top:16px; right:16px; z-index:2; display:inline-block; background:#BF5038; color:#fff; font-size:.62rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; padding:5px 12px; border-radius:100px;}
  .svc-badge.intl{background:var(--teal-dark);}
  .audience-tag{display:inline-block; margin-top:14px; font-size:.8rem; background:#fff; padding:6px 14px; border-radius:100px; font-weight:700; color:var(--navy);}
  .svc-help{text-align:center; margin-top:32px; background:var(--off); border:1px solid var(--line); border-radius:18px; padding:28px 24px;}
  .svc-help h3{font-size:1.05rem; color:var(--navy); margin-bottom:6px;}
  .svc-help p{color:var(--ink-soft); font-size:.92rem; max-width:440px; margin:0 auto 18px; line-height:1.5;}
  .svc-card2.reveal{transition-delay:var(--stagger-delay,0ms);}
  .svc-card2:nth-child(1){--stagger-delay:0ms;}
  .svc-card2:nth-child(2){--stagger-delay:80ms;}
  .svc-card2:nth-child(3){--stagger-delay:160ms;}
  .svc-card2:nth-child(4){--stagger-delay:240ms;}

  /* ---------- POR QUÉ INTERLANGUAGE ---------- */
  section.why-us{padding:80px 0; background:var(--off);}
  .why-us-head{max-width:680px; margin-bottom:24px;}
  .why-us-head h2{font-size:clamp(1.9rem,3.6vw,2.6rem); margin-top:12px; color:var(--navy);}
  .why-us-story{overflow:hidden; background:#fff; border:1px solid var(--line); border-radius:22px;}
  .why-us-story-copy{padding:clamp(28px,4vw,52px); max-width:720px; margin:0 auto; text-align:center;}
  .why-us-story-copy .eyebrow{display:block; margin-bottom:12px;}
  .why-us-story-copy h3{color:var(--navy); font-size:clamp(1.45rem,2.5vw,2rem); line-height:1.25; text-wrap:balance; margin:0 0 18px;}
  .why-us-story-copy p{color:var(--ink-soft); font-size:1rem; line-height:1.65; margin:0 auto 14px; max-width:580px; text-align:left;}
  .why-us-story-copy a{display:inline-flex; gap:8px; align-items:center; color:var(--teal-dark); font-weight:700; text-decoration:none; margin-top:10px; border-bottom:1px solid currentColor; padding-bottom:3px;}
  .why-us-story-copy a:hover, .why-us-story-copy a:focus-visible{color:var(--navy);}
  .why-us-grid{display:grid; grid-template-columns:repeat(4, 1fr); gap:24px; margin-top:28px;}
  .why-us-card{background:#fff; border-radius:18px; padding:28px 24px; box-shadow:0 8px 24px rgba(22,41,74,.06); text-align:center; transition:transform .3s ease, box-shadow .3s ease;}
  .why-us-card:hover{transform:translateY(-4px); box-shadow:0 12px 32px rgba(22,41,74,.12);}
  .why-us-icon{width:48px; height:48px; margin:0 auto 18px; color:var(--coral); flex:none;}
  .why-us-icon svg{width:100%; height:100%;}
  .why-us-card h3{font-size:1.1rem; font-weight:700; color:var(--navy); margin-bottom:10px; line-height:1.3;}
  .why-us-card p{font-size:.95rem; color:var(--ink-soft); line-height:1.6; margin:0;}
  @media (max-width:960px){ .why-us-grid{grid-template-columns:repeat(2,1fr); gap:20px;} }
  @media (max-width:620px){ .why-us-grid{grid-template-columns:1fr;} .why-us-card{padding:24px 20px;} }

  /* ---------- ESTUDIAR EN EL EXTRANJERO · HUB ---------- */

  /* Destinos */
  .ext-dest-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
  .ext-dest-card{display:block; border-radius:18px; overflow:hidden; background:var(--white); border:1px solid var(--line);
    text-decoration:none; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;}
  .ext-dest-card:hover, .ext-dest-card:focus-visible{transform:translateY(-4px); box-shadow:0 18px 36px rgba(22,41,74,.14); border-color:transparent;}
  .ext-dest-photo{aspect-ratio:4/3; overflow:hidden;}
  .ext-dest-photo img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; filter:saturate(1.05) contrast(1.03);}
  .ext-dest-card:hover .ext-dest-photo img{transform:scale(1.04);}
  .ext-dest-body{padding:18px 20px 20px;}
  .ext-dest-body h3{font-size:1.15rem; color:var(--navy); margin:0 0 8px;}
  .ext-dest-more{display:inline-flex; align-items:center; gap:6px; font-size:.82rem; font-weight:800; color:var(--navy); transition:gap .25s ease;}
  .ext-dest-more svg{color:var(--coral-dark);}
  .ext-dest-more svg{width:14px; height:14px;}
  .ext-dest-card:hover .ext-dest-more{gap:10px;}
  @media (max-width:820px){ .ext-dest-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:560px){ .ext-dest-grid{grid-template-columns:1fr;} }

  .ext-prog-hint{margin-top:16px; font-size:.95rem; color:var(--ink-soft);}
  .ext-prog-hint a{margin-left:4px; font-weight:800; color:var(--navy); text-decoration:underline;}
  .ext-prog-hint a:hover, .ext-prog-hint a:focus-visible{text-decoration:underline;}

  /* ---------- ESTUDIAR EN EL EXTRANJERO · SUBPÁGINA ---------- */
  #view-service-extranjero .container{max-width:1160px;}
  #view-service-extranjero .ext-section[id]{scroll-margin-top:84px;}

  /* Hero: texto y foto en paralelo (sustituye al banner a sangre) */
  .ext-hero{padding:46px 0 60px; background:linear-gradient(180deg,#FBF8F1 0%,#F5F1E6 100%); border-bottom:1px solid var(--line);}
  .ext-hero-grid{display:grid; grid-template-columns:1.08fr .92fr; gap:56px; align-items:center;}
  .ext-hero-copy .svc-back{margin-bottom:8px; padding:11px 0;}   /* área táctil de 44px sin cambiar el aspecto */
  .ext-hero-copy .eyebrow{display:block; margin-bottom:12px;}
  .ext-hero-copy h1{font-size:clamp(1.95rem,3.2vw,2.7rem); line-height:1.1; margin:0 0 16px; text-wrap:balance;}
  .ext-hero-lead{font-size:1.06rem; line-height:1.65; color:var(--ink-soft); max-width:33em; margin:0 0 24px;}
  .ext-hero-facts{list-style:none; display:flex; flex-wrap:wrap; gap:9px; margin:0 0 28px; padding:0;}
  .ext-hero-facts li{font-size:.82rem; font-weight:700; color:var(--navy); background:#fff; border:1px solid var(--line); border-radius:100px; padding:7px 15px;}
  .ext-hero-cta{display:flex; gap:14px; flex-wrap:wrap;}
  .ext-hero-media{border-radius:24px; overflow:hidden; aspect-ratio:1/1; box-shadow:0 26px 52px rgba(22,41,74,.2);}
  .ext-hero-media img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(1.03) contrast(1.02);}

  /* Secciones: alternan blanco y crema para dar ritmo */
  .ext-section{padding:72px 0;}
  .ext-section--alt{background:var(--off);}
  .ext-sec-head{max-width:660px; margin-bottom:34px;}
  .ext-sec-head .eyebrow{display:block;}
  .ext-sec-head h2{font-size:clamp(1.55rem,2.7vw,2.05rem); color:var(--navy); margin:10px 0 0; line-height:1.22;}
  .ext-sec-head p{color:var(--ink-soft); font-size:1.02rem; line-height:1.65; margin:12px 0 0;}

  /* Destinos: la foto manda, sin recorte agresivo (los originales son verticales) */
  .ext-dest-card{color:inherit;}
  .ext-dest-photo, .ext-dest-body{display:block;}
  #view-service-extranjero .ext-dest-photo{aspect-ratio:4/5;}
  @media (max-width:560px){ #view-service-extranjero .ext-dest-photo{aspect-ratio:16/10;} }

  /* Duración: filas alineadas para poder comparar de un vistazo */
  .ext-dur-list{list-style:none; margin:0; padding:0; border-top:1px solid var(--line);}
  .ext-dur-row{display:grid; grid-template-columns:200px 1fr auto; gap:24px; align-items:center;
    padding:22px 4px; border-bottom:1px solid var(--line);}
  .ext-dur-time{font-family:var(--font-display); font-weight:800; font-size:1.06rem; color:var(--navy); line-height:1.25;}
  .ext-dur-desc{margin:0; color:var(--ink-soft); font-size:.98rem; line-height:1.55; max-width:56ch;}
  .ext-dur-cta{display:inline-flex; align-items:center; gap:7px; min-height:44px; white-space:nowrap;
    font-size:.86rem; font-weight:800; color:var(--navy); text-decoration:none;}
  .ext-dur-cta svg{width:14px; height:14px; color:var(--coral-dark); transition:transform .2s ease;}
  .ext-dur-cta:hover{text-decoration:underline;}
  .ext-dur-cta:hover svg{transform:translateX(3px);}
  @media (max-width:760px){
    .ext-dur-row{grid-template-columns:1fr; gap:6px; padding:18px 2px;}
    .ext-dur-desc{max-width:none;}
  }

  /* Proceso */
  .ext-steps{list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:28px; margin:0; padding:0;}
  .ext-step{border-top:2px solid var(--line); padding-top:20px;}
  .ext-step-num{display:block; font-family:var(--font-display); font-weight:800; font-size:1.5rem; line-height:1;
    letter-spacing:-.02em; color:var(--coral-dark); margin-bottom:12px;}
  .ext-step h3{font-size:1.02rem; color:var(--navy); margin:0 0 7px; line-height:1.3;}
  .ext-step p{font-size:.94rem; color:var(--ink-soft); line-height:1.55; margin:0;}
  @media (max-width:900px){ .ext-steps{grid-template-columns:1fr 1fr;} }
  @media (max-width:600px){ .ext-steps{grid-template-columns:1fr; gap:20px;} }

  /* Banda de fotos: respiro visual entre proceso y dudas */
  .ext-band{background:var(--white); padding:0 0 72px;}
  .ext-band-grid{display:grid; grid-template-columns:1.32fr .68fr; gap:18px; height:clamp(280px,30vw,420px);}
  .ext-band-item{border-radius:20px; overflow:hidden; height:100%;}
  .ext-band-item img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(1.05) contrast(1.03);}
  .ext-band-caption{margin:14px 0 0; font-size:.86rem; color:var(--ink-soft);}
  @media (max-width:760px){ .ext-band{padding-bottom:56px;} .ext-band-grid{grid-template-columns:1fr; height:auto;} .ext-band-item{aspect-ratio:16/10;} }

  .ext-faq{max-width:800px;}

  /* Cierre */
  .ext-cierre{background:var(--navy); padding:76px 0;}
  .ext-cierre-inner{max-width:660px; text-align:center;}
  .ext-cierre h2{color:#fff; font-size:clamp(1.5rem,2.6vw,2rem); margin:0 0 14px; line-height:1.25; text-wrap:balance;}
  .ext-cierre p{color:rgba(255,255,255,.82); font-size:1.02rem; line-height:1.6; margin:0 0 26px;}
  .ext-cierre .btn-primary{box-shadow:0 8px 18px rgba(22,41,74,.3); transition:transform .2s ease, box-shadow .2s ease;}
  .ext-cierre .btn-primary:hover{transform:translateY(-2px); box-shadow:0 12px 24px rgba(22,41,74,.36);}
  .ext-cierre .ext-cierre-note{margin:18px 0 0; font-size:.84rem; color:rgba(255,255,255,.62);}

  /* Entrada en viewport: reutiliza .reveal, algo más corta */
  #view-service-extranjero .reveal{transform:translateY(14px); transition-duration:.5s;}
  #view-service-extranjero .reveal.in{transform:translateY(0);}
  #view-service-extranjero .ext-dest-card{transform:none;     /* solo fundido: el transform queda libre para el hover */
    transition-property:opacity, transform, box-shadow, border-color; transition-duration:.5s,.25s,.25s,.25s;
    transition-timing-function:ease; transition-delay:var(--sd,0ms),0ms,0ms,0ms;}
  #view-service-extranjero .ext-dest-card:hover,
  #view-service-extranjero .ext-dest-card:focus-visible{transform:translateY(-4px);}
  #view-service-extranjero .ext-dest-card:nth-child(2){--sd:70ms;}
  #view-service-extranjero .ext-dest-card:nth-child(3){--sd:140ms;}
  #view-service-extranjero .ext-step{transition-delay:var(--sd,0ms);}
  #view-service-extranjero .ext-step:nth-child(2){--sd:60ms;}
  #view-service-extranjero .ext-step:nth-child(3){--sd:120ms;}
  #view-service-extranjero .ext-step:nth-child(4){--sd:180ms;}
  #view-service-extranjero .ext-dur-row{transition-delay:var(--sd,0ms);}
  #view-service-extranjero .ext-dur-row:nth-child(2){--sd:60ms;}
  #view-service-extranjero .ext-dur-row:nth-child(3){--sd:120ms;}
  #view-service-extranjero .ext-dur-row:nth-child(4){--sd:180ms;}
  @media (prefers-reduced-motion: reduce){
    #view-service-extranjero .reveal, #view-service-extranjero .ext-dest-card,
    #view-service-extranjero .ext-step, #view-service-extranjero .ext-dur-row{transition-delay:0ms !important;}
  }

  @media (max-width:900px){
    .ext-hero{padding:30px 0 44px;}
    .ext-hero-grid{grid-template-columns:1fr; gap:30px;}
    .ext-hero-media{aspect-ratio:4/3;}
    .ext-section{padding:56px 0;}
  }
  @media (max-width:600px){
    .ext-hero-lead{font-size:1rem;}
    .ext-hero-cta{display:grid; grid-template-columns:1fr; gap:10px;}
    .ext-hero-cta .btn-primary, .ext-hero-cta .btn-outline{width:100%; text-align:center;}
    .ext-section{padding:48px 0;}
    .ext-sec-head{margin-bottom:26px;}
    .ext-cierre{padding:58px 0;}
    .ext-cierre .btn-primary{display:block; width:100%; text-align:center;}
  }

  /* ---------- SUBPÁGINAS DE SERVICIO ---------- */
  .service-page{background:var(--white); min-height:100vh;}
  #view-service-metodologia{background:#FBF8F1;}
  .svc-page-banner{width:100%; height:380px; position:relative; overflow:hidden; margin-top:90px;}
  @media (max-width:700px){ .svc-page-banner{height:240px; margin-top:82px;} }
  .svc-page-banner img{width:100%; height:100%; object-fit:cover; object-position:center 40%; display:block; filter:saturate(1.05) contrast(1.03);}
  .svc-page-banner::before{content:''; position:absolute; inset:0; background:var(--navy); mix-blend-mode:multiply; opacity:.14;}
  .svc-page-banner::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(22,41,74,.06) 0%, rgba(22,41,74,.05) 55%, rgba(22,41,74,.4) 100%);}
  .svc-page-body{max-width:920px; padding-top:44px; padding-bottom:100px;}
  .svc-back{display:inline-flex; align-items:center; gap:6px; font-size:.86rem; font-weight:700; color:var(--ink-soft); text-decoration:none; margin-bottom:20px;}
  .svc-back:hover{color:var(--coral-dark);}
  .svc-page-body .eyebrow{display:block; margin-bottom:10px;}
  .svc-page-tag{display:inline-block; background:var(--coral); color:#fff; font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; padding:5px 14px; border-radius:100px; margin-bottom:16px;}
  .svc-page-body h1{font-size:clamp(1.9rem,3.6vw,2.7rem); color:var(--navy); margin-bottom:16px;}
  .svc-page-intro{font-size:1.14rem; color:var(--ink-soft); margin-bottom:36px; max-width:680px; line-height:1.6;}
  .svc-stats{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:40px;}
  @media (max-width:640px){ .svc-stats{grid-template-columns:1fr 1fr;} }
  .svc-page-cta-row{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:40px;}
  .svc-stat{background:var(--navy); border-radius:16px; padding:22px 18px; text-align:center;}
  .svc-stat:nth-child(2){background:var(--teal-dark);}
  .svc-stat:nth-child(3){background:var(--coral-dark);}
  .svc-stat:nth-child(4){background:var(--teal);}
  .svc-stat strong{display:block; font-family:var(--font-display); font-weight:800; font-size:clamp(1.1rem,1.7vw,1.7rem); color:#fff; line-height:1.15; margin-bottom:4px;}
  .svc-stat span{font-size:.78rem; color:rgba(255,255,255,.8); text-transform:uppercase; letter-spacing:.03em;}

  /* ---------- CAMPAMENTOS: hero combinado ---------- */
  .camp-hero{padding:44px 24px 56px; background:linear-gradient(180deg, #FBF8F1 0%, #F5F1E6 100%); border-bottom:1px solid var(--line);}
  .camp-hero .container{max-width:1200px;}
  .camp-hero-grid{display:grid; grid-template-columns:1.05fr .95fr; gap:48px; align-items:center;}
  @media (max-width:900px){ .camp-hero-grid{grid-template-columns:1fr; gap:32px;} }
  .camp-hero-content .eyebrow{display:block; margin:2px 0 10px;}
  .camp-hero-content h1{font-size:clamp(2rem,3.6vw,2.8rem);}
  .camp-hero-facts{list-style:none; display:flex; flex-wrap:wrap; gap:10px 22px; margin:0 0 28px; padding:0;}
  .camp-hero-facts li{display:flex; align-items:center; gap:7px; font-size:.94rem; font-weight:700; color:var(--navy);}
  .camp-hero-media{position:relative; border-radius:26px; overflow:hidden; aspect-ratio:4/3.6; box-shadow:0 30px 60px rgba(22,41,74,.2);}
  .camp-hero-media img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(1.05) contrast(1.03);}
  @media (max-width:900px){ .camp-hero-media{aspect-ratio:16/10;} }

  /* ---------- CAMPAMENTOS: secciones con fondo propio ---------- */
  .camp-section{padding:64px 24px;}
  .camp-section .container{max-width:1180px;}
  .camp-section-head{max-width:640px; margin-bottom:32px;}
  .camp-section-head h2{font-size:clamp(1.6rem,3vw,2.1rem); margin-bottom:10px;}
  .camp-section-head p{color:var(--ink-soft); font-size:1.02rem; line-height:1.6;}
  .camp-section.bg-off{background:var(--off);}
  .camp-section.bg-cream{background:#FBF8F1;}
  .camp-section.bg-mint{background:var(--mint);}
  .camp-section.bg-white{background:#fff;}

  /* ---------- CAMPAMENTOS: nota "otros colegios" ---------- */
  .camp-open-note{
    display:inline-flex; align-items:center; gap:8px; font-size:.9rem; font-weight:700; color:var(--teal-dark);
    background:#eaf2ef; padding:10px 18px; border-radius:100px; margin:20px 0 0;
  }
  .camp-open-note svg{width:16px; height:16px; flex-shrink:0;}

  /* ---------- CAMPAMENTOS: ficha rápida ---------- */
  .camp-quickfacts{display:flex; flex-wrap:wrap; gap:0; background:#fff; border-radius:20px; box-shadow:0 12px 30px rgba(22,41,74,.08); overflow:hidden; margin-bottom:22px;}
  .camp-quickfact{flex:1 1 160px; padding:22px 20px; display:flex; align-items:center; gap:12px; border-right:1px solid var(--line);}
  .camp-quickfact:last-child{border-right:none;}
  .camp-quickfact.is-price{background:var(--navy);}
  .camp-quickfact.is-price strong, .camp-quickfact.is-price span{color:#fff;}
  .camp-quickfact-ic{flex:0 0 38px; width:38px; height:38px; border-radius:10px; background:var(--off); color:var(--coral-dark); display:flex; align-items:center; justify-content:center;}
  .camp-quickfact.is-price .camp-quickfact-ic{background:rgba(255,255,255,.15); color:#FFD98A;}
  .camp-quickfact-ic svg{width:19px; height:19px;}
  .camp-quickfact strong{display:block; font-family:var(--font-display); font-weight:800; font-size:1.02rem; color:var(--navy); line-height:1.2;}
  .camp-quickfact span{font-size:.76rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.03em;}
  @media (max-width:760px){ .camp-quickfacts{flex-direction:column;} .camp-quickfact{border-right:none; border-bottom:1px solid var(--line);} .camp-quickfact:last-child{border-bottom:none;} }

  /* ---------- CAMPAMENTOS: un día (fusión talentos + retos) ---------- */
  .camp-day-media{border-radius:22px; overflow:hidden; margin-bottom:32px; aspect-ratio:21/8; box-shadow:0 16px 36px rgba(22,41,74,.14);}
  .camp-day-media img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(1.05) contrast(1.03);}
  @media (max-width:700px){ .camp-day-media{aspect-ratio:4/3;} }
  .day-timeline{display:flex; flex-wrap:wrap; gap:0; margin-bottom:36px;}
  .day-step{flex:1 1 120px; text-align:center; padding:0 10px; position:relative;}
  .day-step:not(:last-child)::after{content:''; position:absolute; top:19px; left:60%; width:80%; height:2px; background:var(--line);}
  .day-step-ic{width:38px; height:38px; border-radius:50%; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; margin:0 auto 10px; font-family:var(--font-display); font-weight:800; font-size:.86rem; position:relative; z-index:1;}
  .day-step:nth-child(odd) .day-step-ic{background:var(--coral-dark);}
  .day-step span{display:block; font-size:.8rem; font-weight:700; color:var(--navy);}
  @media (max-width:700px){
    .day-timeline{flex-direction:column; align-items:flex-start; gap:18px;}
    .day-step{display:flex; align-items:center; gap:12px; text-align:left; flex:none; width:100%;}
    .day-step-ic{margin:0;}
    .day-step:not(:last-child)::after{display:none;}
  }

  /* ---------- CAMPAMENTOS: grupos por edad con foto ---------- */
  .age-groups{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
  @media (max-width:600px){ .age-groups{grid-template-columns:1fr;} }
  .age-card{background:#fff; border:1.5px solid var(--line); border-radius:18px; overflow:hidden; display:flex; flex-direction:column;}
  .age-card-media{height:190px;}
  .age-card-media img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(1.05) contrast(1.03);}
  .age-card-body{padding:22px;}
  .age-card .age-range{display:inline-block; font-family:var(--font-display); font-weight:800; font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--coral-dark); background:rgba(255,107,74,.1); padding:4px 12px; border-radius:100px; margin-bottom:12px;}
  .age-card h3{font-size:1.1rem; color:var(--navy); margin-bottom:8px;}
  .age-card p{font-size:.9rem; color:var(--ink-soft); line-height:1.5; margin:0;}

  /* ---------- CAMPAMENTOS: por qué + testimonio ---------- */
  .camp-why-layout{display:grid; grid-template-columns:.8fr 1.2fr; gap:28px; align-items:start;}
  @media (max-width:860px){ .camp-why-layout{grid-template-columns:1fr;} }
  .camp-why-media{border-radius:22px; overflow:hidden; aspect-ratio:4/5; box-shadow:0 16px 36px rgba(22,41,74,.14);}
  .camp-why-media img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(1.05) contrast(1.03);}
  @media (max-width:860px){ .camp-why-media{aspect-ratio:16/9;} }
  .camp-testimonial{grid-column:1/-1; background:#fff; border-radius:18px; padding:26px 28px; margin-top:6px; border-left:4px solid var(--coral); font-style:italic; color:var(--ink); line-height:1.6;}
  .camp-testimonial .camp-testimonial-author{margin-top:12px; font-style:normal; font-size:.86rem; font-weight:700; color:var(--navy);}
  .camp-testimonial .camp-testimonial-author span{display:block; font-weight:500; color:var(--ink-soft); font-size:.8rem;}

  /* ---------- CAMPAMENTOS: retos con nombre ---------- */
  .challenge-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:8px;}
  @media (max-width:760px){ .challenge-grid{grid-template-columns:1fr 1fr;} }
  .challenge-chip{background:#fff; border-radius:14px; padding:15px 16px; border-left:4px solid var(--coral); box-shadow:0 6px 16px rgba(22,41,74,.06);}
  .challenge-chip .chip-intel{display:block; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:#B43F26; margin-top:6px;}
  .challenge-chip.c2{border-left-color:var(--teal-dark);}
  .challenge-chip.c3{border-left-color:var(--navy);}
  .challenge-chip.c4{border-left-color:var(--coral-dark);}
  .challenge-chip strong{display:block; font-size:.9rem; color:var(--navy); margin-bottom:3px;}
  .challenge-chip span{font-size:.78rem; color:var(--ink-soft); line-height:1.35;}
  .svc-page-highlights{list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:16px 32px; margin-bottom:40px; background:var(--off); border-radius:22px; padding:34px 36px; border:1px solid var(--line);}
  @media (max-width:640px){ .svc-page-highlights{grid-template-columns:1fr; padding:28px 24px;} }
  .svc-page-highlights li{position:relative; padding-left:38px; font-size:.98rem; color:var(--ink); line-height:1.45; min-height:26px; display:flex; align-items:center;}
  .svc-page-highlights li::before{
    content:'✓'; position:absolute; left:0; top:0; width:26px; height:26px; border-radius:50%;
    display:flex; align-items:center; justify-content:center; color:#fff; font-weight:800; font-size:.8rem;
    box-shadow:0 4px 10px rgba(22,41,74,.2);
  }
  .svc-page-highlights li:nth-child(5n+1)::before{background:var(--coral);}
  .svc-page-highlights li:nth-child(5n+2)::before{background:var(--teal-dark);}
  .svc-page-highlights li:nth-child(5n+3)::before{background:var(--navy);}
  .svc-page-highlights li:nth-child(5n+4)::before{background:var(--coral-dark);}
  .svc-page-highlights li:nth-child(5n+5)::before{background:#C9973D;}

  /* ---------- BLOQUES "POR QUÉ" (campamentos) ---------- */
  .svc-why-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:40px;}
  @media (max-width:700px){ .svc-why-grid{grid-template-columns:1fr;} }
  .svc-why-card{background:var(--off); border-radius:22px; padding:28px 26px; border:1px solid var(--line);}
  .svc-why-card h3{font-size:1.05rem; color:var(--navy); margin-bottom:16px;}
  .svc-why-card ul{list-style:none; display:flex; flex-direction:column; gap:14px;}
  .svc-why-card li{position:relative; padding-left:30px; font-size:.92rem; color:var(--ink); line-height:1.4;}
  .svc-why-card li::before{content:'✓'; position:absolute; left:0; top:1px; width:20px; height:20px; border-radius:50%; background:var(--coral); color:#fff; font-size:.62rem; font-weight:800; display:flex; align-items:center; justify-content:center;}
  .svc-why-card.tranquilidad li::before{background:var(--teal-dark);}

  /* ---------- HORARIO RESUMIDO + ACORDEÓN ---------- */
  .svc-schedule-details{margin-top:4px;}
  .svc-schedule-details summary{cursor:pointer; list-style:none; display:flex; align-items:center; gap:8px; font-weight:800; color:var(--coral-dark); font-size:.9rem; padding:10px 0;}
  .svc-schedule-details summary::-webkit-details-marker{display:none;}
  .svc-schedule-details summary::after{content:'▾'; margin-left:auto; transition:transform .2s ease;}
  .svc-schedule-details[open] summary::after{transform:rotate(180deg);}
  .svc-schedule-details .schedule-list{margin-top:14px;}

  .svc-schedule-title{font-size:1.4rem; color:var(--navy); margin-bottom:8px;}
  .svc-schedule-intro{font-size:.94rem; color:var(--ink-soft); margin-bottom:26px;}
  .svc-schedule-card{background:var(--off); border-radius:22px; padding:32px 30px; margin-bottom:36px; border:1px solid var(--line); scroll-margin-top:110px;}
  .schedule-list{position:relative; display:flex; flex-direction:column; margin-bottom:24px; padding-left:20px;}
  .schedule-list::before{content:''; position:absolute; left:19px; top:22px; bottom:22px; width:2px; background:var(--line);}
  .schedule-item{position:relative; display:flex; gap:18px; padding:16px 0; align-items:flex-start;}
  .schedule-dot{
    position:relative; z-index:1; flex:0 0 38px; width:38px; height:38px; border-radius:50%;
    display:flex; align-items:center; justify-content:center; box-shadow:0 4px 10px rgba(22,41,74,.18);
  }
  .schedule-dot svg{width:18px; height:18px;}
  .schedule-dot.c1{background:var(--coral);}
  .schedule-dot.c2{background:var(--teal-dark);}
  .schedule-dot.c3{background:var(--navy);}
  .schedule-dot.c4{background:var(--coral-dark);}
  .schedule-time{flex:0 0 118px; font-family:var(--font-display); font-weight:800; font-size:.86rem; color:var(--navy); padding-top:8px;}
  .schedule-body{padding-top:6px;}
  .schedule-body h4{font-size:1rem; color:var(--navy); margin-bottom:2px;}
  .schedule-body p{font-size:.87rem; color:var(--ink-soft); margin:0;}
  @media (max-width:600px){
    .schedule-item{flex-wrap:wrap;}
    .schedule-time{flex:none; padding-top:0; margin-top:6px; order:3; width:100%; padding-left:56px;}
  }
  .svc-schedule-tagline{text-align:center; font-family:var(--font-display); font-weight:700; font-size:1rem; color:var(--teal-dark); letter-spacing:.02em; margin-bottom:30px;}
  .camp-gallery{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:14px; align-items:start;}
  @media (min-width:900px){ .camp-gallery{grid-template-columns:repeat(3,1fr);} }
  @media (max-width:600px){ .camp-gallery{grid-template-columns:1fr;} }
  .camp-gallery-item{border-radius:18px; overflow:hidden; box-shadow:0 10px 26px rgba(22,41,74,.1);}
  .camp-gallery-item img{width:100%; height:100%; aspect-ratio:4/5; object-fit:cover; display:block; filter:saturate(1.05) contrast(1.03); transition:transform .5s ease;}
  .camp-gallery-item:hover img{transform:scale(1.04);}
  .camp-gallery-caption{text-align:center; font-size:.86rem; color:var(--ink-soft); font-style:italic; margin-bottom:40px;}
  .camp-gallery.mosaic{display:grid; grid-template-columns:repeat(4,1fr); gap:12px;}
  .camp-gallery.mosaic .camp-gallery-item{height:130px;}
  .camp-gallery.mosaic .camp-gallery-item:nth-child(1){grid-column:span 2; grid-row:span 2; height:272px;}
  .camp-gallery.mosaic .camp-gallery-item:nth-child(4){grid-column:span 2;}
  .camp-gallery.mosaic .camp-gallery-item img{aspect-ratio:auto;}
  @media (max-width:960px){
    .camp-gallery.mosaic{grid-template-columns:repeat(2,1fr);}
    .camp-gallery.mosaic .camp-gallery-item{height:160px;}
    .camp-gallery.mosaic .camp-gallery-item:nth-child(1){height:332px;}
    .camp-gallery.mosaic .camp-gallery-item:nth-child(4){grid-column:span 1;}
  }
  @media (max-width:480px){
    .camp-gallery.mosaic .camp-gallery-item{height:120px;}
    .camp-gallery.mosaic .camp-gallery-item:nth-child(1){height:252px;}
  }
  .camp-form-microcopy{display:inline-flex; align-items:center; gap:8px; font-size:.86rem; font-weight:700; color:var(--teal-dark); background:#eaf2ef; padding:8px 16px; border-radius:100px; margin-bottom:18px;}
  .dest-page-gallery{display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:36px 0 14px;}
  @media (max-width:600px){ .dest-page-gallery{grid-template-columns:1fr;} }
  /* ---------- BLOQUES DE SUBPÁGINA (trust bar, pilares, clubs, ideal, CTA final) ---------- */
  .hero-trust{list-style:none; display:flex; flex-wrap:wrap; gap:10px 22px; margin:22px 0 0; padding:0;}
  .hero-trust li{display:flex; align-items:center; gap:7px; font-size:.88rem; font-weight:600; color:var(--navy);}
  .hero-trust li::before{content:''; flex:none; width:15px; height:15px; border-radius:50%; background:rgba(255,107,74,.15) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E14F30' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/9px no-repeat;}

  .quickfacts-note{font-size:.8rem; color:var(--ink-soft); margin:12px 0 0;}

  .pillar-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
  @media (max-width:900px){ .pillar-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:560px){ .pillar-grid{grid-template-columns:1fr;} }
  .pillar-card{background:#fff; border:1px solid var(--line); border-radius:16px; padding:24px 22px; display:flex; flex-direction:column; gap:10px; box-shadow:0 8px 20px rgba(22,41,74,.05);}
  .pillar-ic{width:46px; height:46px; border-radius:50%; background:rgba(255,107,74,.12); color:var(--coral-dark); display:flex; align-items:center; justify-content:center;}
  .pillar-ic svg{width:22px; height:22px;}
  .pillar-card h3{font-size:1.02rem; font-weight:800; color:var(--navy); margin:0;}
  .pillar-card p{font-size:.88rem; color:var(--ink-soft); line-height:1.55; margin:0;}

  .ideal-layout{display:grid; grid-template-columns:1.05fr .95fr; gap:36px; align-items:center;}
  @media (max-width:860px){ .ideal-layout{grid-template-columns:1fr; gap:26px;} }
  .ideal-block h2{font-size:clamp(1.4rem,2.6vw,1.8rem); color:var(--navy); margin:0 0 16px;}
  .ideal-block ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px;}
  .ideal-block li{display:flex; gap:11px; font-size:.96rem; color:var(--ink-soft); line-height:1.55;}
  .ideal-block li::before{content:''; flex:none; width:19px; height:19px; margin-top:2px; border-radius:50%; background:rgba(255,107,74,.14) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23E14F30' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/11px no-repeat;}
  .ideal-block li strong{color:var(--navy); font-weight:700;}
  .ideal-layout .camp-testimonial{grid-column:auto; margin-top:0;}

  /* ritmo vertical más compacto en esta subpágina (menos scroll, mismo contenido) */
  #view-service-extraescolar .camp-section{padding:46px 24px;}
  #view-service-extraescolar .camp-section-head{margin-bottom:26px;}
  .svc-faq-wrap{max-width:820px;}
  .final-cta{text-align:center; max-width:640px; margin:38px auto 0; padding-top:34px; border-top:1px solid var(--line);}

  /* ---------- PUENTE DE VENTA CRUZADA (a internacional) ---------- */
  .cross-sell-band{background:var(--navy);}
  .cross-sell{display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap;}
  .cross-sell-text{max-width:640px;}
  .cross-sell-eyebrow{display:block; font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:var(--coral); margin-bottom:8px;}
  .cross-sell-text p{color:rgba(255,255,255,.85); font-size:1.05rem; line-height:1.55; margin:0;}
  .cross-sell-cta{flex:none; display:inline-flex; align-items:center; gap:8px; background:var(--coral); color:#fff; font-weight:800; font-size:.92rem; padding:13px 24px; border-radius:100px; text-decoration:none; white-space:nowrap; box-shadow:0 10px 22px rgba(255,107,74,.28); transition:transform .15s ease;}
  .cross-sell-cta:hover{transform:translateY(-2px);}
  @media (max-width:640px){ .cross-sell{flex-direction:column; align-items:flex-start;} .cross-sell-cta{width:100%; justify-content:center;} }
  .final-cta h2{font-size:clamp(1.4rem,2.6vw,1.85rem); color:var(--navy); margin:0 0 10px; text-wrap:balance;}
  .final-cta p{color:var(--ink-soft); font-size:1rem; margin:0 0 22px;}

  .club-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
  @media (max-width:1000px){ .club-grid{grid-template-columns:repeat(2,1fr);} }
  @media (max-width:620px){ .club-grid{grid-template-columns:1fr;} }
  .club-card{background:#fff; border:1px solid var(--line); border-radius:16px; padding:22px 24px; box-shadow:0 8px 20px rgba(22,41,74,.05);}
  .club-age{display:inline-block; font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--coral-dark); background:rgba(255,107,74,.12); padding:4px 11px; border-radius:100px; margin-bottom:10px;}
  .club-card h3{font-size:1.05rem; font-weight:800; color:var(--navy); margin:0 0 6px;}
  .club-card p{font-size:.9rem; color:var(--ink-soft); line-height:1.55; margin:0;}
  .club-exams{display:flex; gap:6px; flex-wrap:wrap; margin-top:12px;}
  .club-exams span{font-size:.68rem; font-weight:800; letter-spacing:.03em; color:var(--teal-dark); border:1px solid var(--line); padding:4px 10px; border-radius:100px;}

  .svc-page-audience{border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:18px 0; margin-bottom:30px;}
  .svc-page-cta{display:inline-block;}

  /* ---------- FORMULARIO DE INSCRIPCIÓN AL CAMPAMENTO ---------- */
  .camp-form-wrap{margin-top:56px; padding:40px; background:#fff; border-radius:24px; box-shadow:0 26px 50px rgba(0,0,0,.12); scroll-margin-top:110px;}
  @media (max-width:600px){ .camp-form-wrap{padding:24px 18px;} }
  .camp-form-wrap .eyebrow{color:var(--coral-dark);}
  .camp-form-wrap .svc-schedule-title{margin-top:10px;}
  .camp-form{margin-top:28px;}
  .camp-form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  @media (max-width:600px){ .camp-form-grid{grid-template-columns:1fr;} }
  .camp-form-grid .field label{font-size:.8rem; font-weight:700; color:var(--navy); margin-bottom:6px; display:block;}
  .camp-form-grid .field input, .camp-form-grid .field select, .camp-form-grid .field textarea{
    width:100%; padding:12px 14px; border-radius:12px; border:1.5px solid var(--line); background:var(--off);
    font-family:inherit; font-size:.94rem; color:var(--ink);
  }
  .camp-form-grid .field input:focus, .camp-form-grid .field select:focus, .camp-form-grid .field textarea:focus{border-color:var(--teal-dark); outline:none; box-shadow:0 0 0 3px rgba(76,100,131,.2);}
  .camp-form-grid .field textarea{min-height:80px; resize:vertical;}
  .camp-note{display:block; font-size:.76rem; font-weight:500; color:var(--coral-dark); margin-top:4px;}
  .camp-weeks{display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin-top:6px;}
  @media (max-width:700px){ .camp-weeks{grid-template-columns:repeat(3,1fr);} }
  @media (max-width:460px){ .camp-weeks{grid-template-columns:repeat(2,1fr);} }
  .camp-week-chip{
    position:relative; display:block; border:1.5px solid var(--line); border-radius:14px; padding:12px 10px;
    text-align:center; cursor:pointer; background:var(--off); transition:border-color .15s ease, background .15s ease;
  }
  .camp-week-chip input{position:absolute; opacity:0; pointer-events:none;}
  .camp-week-chip span{font-size:.82rem; font-weight:700; color:var(--navy); line-height:1.4;}
  .camp-week-chip small{font-weight:500; color:var(--ink-soft); font-size:.7rem;}
  .camp-week-chip:has(input:checked){border-color:var(--coral); background:var(--peach);}
  .camp-comedor-row{display:flex; align-items:center; gap:10px; font-size:.9rem; color:var(--navy); font-weight:600; cursor:pointer;}
  .camp-comedor-row input{width:16px; height:16px; accent-color:var(--coral);}
  .camp-comedor-row small{font-weight:500; color:var(--ink-soft);}
  .camp-total-box{
    grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
    background:var(--navy); border-radius:16px; padding:20px 24px; margin-top:4px;
  }
  .camp-total-box strong{display:block; color:#fff; font-family:var(--font-display); font-size:1.02rem;}
  .camp-total-box span{font-size:.8rem; color:rgba(255,255,255,.65);}
  .camp-total-amount{font-family:var(--font-display); font-weight:800; font-size:2rem; color:#FFD98A;}
  .camp-submit{grid-column:1/-1; width:100%; margin-top:6px;}

  /* ---------- CAMPAMENTOS: ficha en el hero, fechas/sedes, precio, FAQ ---------- */
  #view-service-campamentos .camp-section[id]{scroll-margin-top:84px;}
  .camp-hero-content h1{margin-bottom:14px;}
  .camp-hero-content .svc-page-intro{margin-bottom:22px;}
  .camp-quickfacts--hero{display:grid; grid-template-columns:1fr 1fr; margin:0 0 26px; border:1px solid var(--line);}
  .camp-quickfacts--hero .camp-quickfact{min-width:0; padding:16px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); color:inherit; text-decoration:none;}
  .camp-quickfacts--hero .camp-quickfact:nth-child(2n){border-right:none;}
  .camp-quickfacts--hero .camp-quickfact:nth-last-child(-n+2){border-bottom:none;}
  a.camp-quickfact.is-price{transition:filter .15s ease;}
  a.camp-quickfact.is-price:hover, a.camp-quickfact.is-price:focus-visible{filter:brightness(1.18);}
  @media (max-width:600px){
    .camp-hero{padding:24px 20px 40px;}
    .camp-hero-content .svc-back{margin-bottom:12px;}
    .camp-hero-content h1{margin-bottom:12px;}
    .camp-hero-content .svc-page-intro{font-size:1rem; line-height:1.55; margin-bottom:18px;}
    .camp-quickfacts--hero{margin-bottom:20px;}
    .camp-quickfacts--hero .camp-quickfact{padding:14px;}
    .camp-quickfacts--hero .camp-quickfact-ic{display:none;}
    .camp-quickfacts--hero .camp-quickfact strong{font-size:.98rem;}
    .camp-quickfacts--hero .camp-quickfact span{font-size:.7rem;}
  }
  .camp-info-grid{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
  @media (max-width:700px){ .camp-info-grid{grid-template-columns:1fr;} }
  .camp-info-card{background:var(--off); border:1px solid var(--line); border-radius:22px; padding:26px;}
  .camp-info-card h3{font-size:.76rem; font-weight:800; text-transform:uppercase; letter-spacing:.07em; color:var(--coral-dark);}
  .camp-info-big{font-family:var(--font-display); font-weight:800; font-size:1.55rem; color:var(--navy); line-height:1.2; margin:8px 0;}
  .camp-info-card p:not(.camp-info-big){color:var(--ink-soft); font-size:.98rem; line-height:1.6;}
  .camp-info-card .camp-open-note{margin-top:14px; border-radius:14px; align-items:flex-start; line-height:1.4;}
  .camp-info-card .camp-open-note svg{margin-top:2px;}
  .camp-subhead{margin:44px 0 20px; max-width:640px;}
  .camp-subhead h3{font-size:1.3rem; margin-bottom:6px;}
  .camp-subhead p{color:var(--ink-soft); font-size:1rem; line-height:1.6;}
  .camp-price-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:12px;}
  @media (max-width:820px){ .camp-price-grid{grid-template-columns:repeat(3,1fr);} }
  @media (max-width:480px){ .camp-price-grid{grid-template-columns:repeat(2,1fr);} .camp-price-card:last-child:nth-child(odd){grid-column:1/-1;} }
  .camp-price-card{background:#fff; border:1px solid var(--line); border-radius:16px; padding:18px 12px; text-align:center; box-shadow:0 6px 16px rgba(22,41,74,.05);}
  .camp-price-card span{display:block; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-soft); margin-bottom:6px;}
  .camp-price-card strong{display:block; font-family:var(--font-display); font-weight:800; font-size:1.7rem; color:var(--navy); line-height:1.1;}
  .camp-price-extra{margin-top:18px; max-width:640px; font-size:.98rem; color:var(--ink-soft); line-height:1.6;}
  .camp-price-extra strong{color:var(--navy);}
  #camp-faq .camp-why-media{aspect-ratio:4/3.4;}
  @media (max-width:860px){ #camp-faq .camp-why-media{aspect-ratio:16/9;} }
  .camp-faq{border-top:1px solid var(--line);}
  .camp-faq-item{border-bottom:1px solid var(--line);}
  .camp-faq-item summary{display:flex; align-items:center; gap:14px; min-height:52px; padding:12px 2px; cursor:pointer; list-style:none; font-family:var(--font-display); font-weight:700; font-size:1rem; color:var(--navy);}
  .camp-faq-item summary::-webkit-details-marker{display:none;}
  .camp-faq-item summary::after{content:'+'; margin-left:auto; flex:none; font-size:1.5rem; font-weight:500; line-height:1; color:var(--coral-dark); transition:transform .2s ease;}
  .camp-faq-item[open] summary::after{transform:rotate(45deg);}
  .camp-faq-item p{padding:0 2px 18px; max-width:560px; color:var(--ink-soft); font-size:.98rem; line-height:1.6;}

  /* ---------- CAMPAMENTOS: formulario en 3 pasos (validación junto al campo, resumen, móvil) ---------- */
  #camp-inscripcion .camp-form-wrap{margin-top:0;}
  .camp-form .req{color:var(--coral-dark); font-weight:800;}
  .camp-label{display:block; font-size:.8rem; font-weight:700; color:var(--navy); margin-bottom:6px;}
  .camp-req-note{grid-column:1/-1; margin:-2px 0 0; font-size:.76rem; color:var(--ink-soft);}
  .camp-form .form-step{grid-template-columns:1fr 1fr; gap:16px;}
  .camp-form-grid .field input, .camp-form-grid .field select, .camp-form-grid .field textarea{font-size:16px;}   /* 16px evita el zoom automático de iOS al enfocar */
  .camp-form .form-step-label{scroll-margin-top:100px; outline:none;}
  .camp-form .field .err{min-height:0; margin-top:2px; font-size:.8rem; font-weight:600;}
  .camp-form .field input.invalid, .camp-form .field select.invalid, .camp-form .field textarea.invalid{border-color:var(--coral-dark); background:#fff3f0;}
  .camp-weeks.invalid .camp-week-chip{border-color:var(--coral-dark);}
  .camp-week-chip{display:flex; align-items:center; justify-content:center; min-height:64px;}
  .camp-week-chip:has(input:focus-visible){outline:3px solid var(--coral); outline-offset:2px;}
  @media (max-width:460px){ .camp-weeks .camp-week-chip:last-child:nth-child(odd){grid-column:1/-1;} }
  .camp-form-grid .field .camp-comedor-row{display:flex; align-items:flex-start; gap:12px; min-height:48px; margin-bottom:0; font-size:.92rem;}
  .camp-form .camp-comedor-row input{margin-top:1px;}
  .camp-form .camp-note{color:var(--ink-soft);}
  .camp-form .camp-comedor-row input, .camp-form .checkbox-row input{width:22px; height:22px; flex:none;}
  .camp-form-grid .field .checkbox-row{align-items:flex-start; gap:12px; margin-top:0;}
  .camp-form-grid .field .checkbox-row label{display:block; margin:0; font-size:.88rem; font-weight:500; line-height:1.45; color:var(--ink-soft);}
  .camp-form .step-back-btn{min-height:48px; min-width:88px;}
  .camp-form .submit-btn, .camp-form .camp-submit{min-height:52px;}
  .camp-form .form-step-actions .camp-submit{flex:1; width:auto; margin-top:0;}
  .camp-summary{grid-column:1/-1; background:var(--navy); border-radius:16px; padding:18px 20px; color:#fff;}
  .camp-summary-head{display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px;}
  .camp-summary-head strong{font-family:var(--font-display); font-size:1.02rem; color:#fff;}
  .camp-summary-list{display:grid; gap:8px; margin:0 0 12px;}
  .camp-summary-list > div{display:flex; align-items:baseline; justify-content:space-between; gap:12px; font-size:.9rem;}
  .camp-summary-list dt{flex:none; color:rgba(255,255,255,.65);}
  .camp-summary-list dd{min-width:0; margin:0; text-align:right; font-weight:700; color:#fff; overflow-wrap:anywhere; white-space:pre-line;}
  .camp-summary-total{display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding-top:12px; border-top:1px solid rgba(255,255,255,.18);}
  .camp-summary-total span{font-size:.9rem; color:rgba(255,255,255,.65);}
  .camp-summary-total strong{font-family:var(--font-display); font-weight:800; font-size:1.9rem; line-height:1.1; color:#FFD98A;}
  .camp-summary.is-empty .camp-summary-total strong{font-size:1rem; font-weight:700; color:rgba(255,255,255,.75);}
  .camp-summary-note{margin:8px 0 0; font-size:.78rem; line-height:1.4; color:rgba(255,255,255,.7);}
  .camp-summary-note:empty, .camp-summary-note[hidden]{display:none;}
  .camp-link-btn{min-height:44px; padding:8px 4px; background:none; color:var(--coral-dark); font-size:.85rem; font-weight:800; text-decoration:underline; cursor:pointer;}
  .camp-summary .camp-link-btn{color:#FFD98A;}
  .camp-recap span{white-space:pre-line; line-height:1.35; padding:6px 0;}
  .camp-recap{grid-column:1/-1; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:4px 14px; background:var(--off); border:1px solid var(--line); border-radius:14px; font-size:.86rem; font-weight:700; color:var(--navy);}
  .camp-form.is-sent .form-progress, .camp-form.is-sent .form-step-label, .camp-form.is-sent .camp-req-note, .camp-form.is-sent .form-step{display:none !important;}
  .camp-sent-recap{margin-top:14px;}
  .camp-sent-recap .camp-summary{text-align:left;}
  @media (max-width:600px){
    .camp-form .form-step{grid-template-columns:1fr;}
    .camp-form-grid .field input, .camp-form-grid .field select, .camp-form-grid .field textarea{min-height:48px;}
    .camp-form-grid .field textarea{min-height:88px;}
    .camp-form .form-step-actions{flex-direction:column-reverse; align-items:stretch; gap:8px;}
    .camp-summary{padding:16px;}
    .camp-summary-list > div{flex-direction:column; align-items:flex-start; gap:2px;}
    .camp-summary-list dt{font-size:.74rem; text-transform:uppercase; letter-spacing:.05em;}
    .camp-summary-list dd{text-align:left;}
    .camp-summary-total strong{font-size:1.7rem;}
  }
  .svc-destinos-link{display:inline-block; margin-bottom:26px; font-size:.9rem; font-weight:700; color:var(--teal-dark); text-decoration:none;}
  .svc-destinos-link:hover{text-decoration:underline;}

  .svc-objection-block{background:#fff; border:1px solid var(--line); border-left:4px solid var(--coral); border-radius:0 16px 16px 0; padding:24px 28px; margin-bottom:16px;}
  .svc-objection-block.alt{border-left-color:var(--teal-dark);}
  .svc-objection-block h2{font-size:1.18rem; color:var(--navy); margin-bottom:8px;}
  .svc-objection-block p{font-size:.96rem; color:var(--ink-soft); line-height:1.65; max-width:100%; margin:0;}
  .svc-objections-head{font-size:1.4rem; color:var(--navy); margin:40px 0 20px;}

  .svc-price-block{background:var(--off); border-radius:20px; padding:30px 32px; margin:34px 0;}
  .svc-price-block h2{font-size:1.3rem; color:var(--navy); margin-bottom:4px;}
  .svc-price-sub{font-size:.86rem; color:var(--ink-soft); margin-bottom:20px;}
  .svc-price-cols{display:grid; grid-template-columns:1fr 1fr; gap:28px;}
  @media (max-width:600px){ .svc-price-cols{grid-template-columns:1fr;} }
  .svc-price-label{display:inline-block; font-size:.7rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; padding:4px 12px; border-radius:100px; margin-bottom:12px;}
  .svc-price-label.included{background:#dff0e8; color:var(--teal-dark);}
  .svc-price-label.excluded{background:#f4e4e0; color:var(--coral-dark);}
  .svc-price-list{list-style:none; display:flex; flex-direction:column; gap:8px;}
  .svc-price-list li{position:relative; padding-left:18px; font-size:.9rem; color:var(--ink);}
  .svc-price-list li::before{content:'—'; position:absolute; left:0; color:var(--ink-soft);}
  /* ---------- EXPERIENCIAS INTERNACIONALES ---------- */
  section.destinos{padding:90px 0; background:var(--mint);}
  .destinos .container{padding:0 24px;}
  .audience-row{display:flex; align-items:flex-start; gap:10px; margin-top:20px; padding-top:18px; border-top:1px solid var(--line); color:var(--teal-dark);}
  .audience-row svg{width:18px; height:18px; flex-shrink:0; margin-top:2px;}
  .audience-row span{font-size:.88rem; color:var(--ink-soft); line-height:1.5;}

  section.destinos--intl{background:var(--navy); padding:86px 0;}
  .intl-copy .eyebrow{color:var(--coral);}
  .intl-copy h2{color:#fff; font-size:clamp(1.9rem,3.4vw,2.5rem); margin:12px 0 14px; text-wrap:balance;}
  .intl-copy > p{color:rgba(255,255,255,.8); font-size:1.02rem; max-width:640px; margin:0 0 24px;}
  .intl-checklist{list-style:none; margin:0 0 30px; padding:0; display:flex; flex-wrap:wrap; gap:14px 32px;}
  .intl-checklist li{display:flex; align-items:center; gap:12px; font-size:.94rem; font-weight:600; color:#fff;}
  .intl-check-ic{flex:none; width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.12); color:var(--coral); display:flex; align-items:center; justify-content:center;}
  .intl-check-ic svg{width:17px; height:17px;}

  /* ---------- EXPERIENCIAS INTERNACIONALES (home, #destinos) ---------- */
  #destinos{scroll-margin-top:96px;}
  section.destinos--intl{padding:0;}                      /* el padding pasa a los bloques internos */
  .intl-hero{padding:88px 0 170px;}                       /* el hueco inferior deja sitio a las tarjetas */
  #destinos .intl-copy h2{margin:12px 0 16px;}
  #destinos .intl-lead{color:rgba(255,255,255,.82); font-size:1.08rem; line-height:1.65; max-width:620px; margin:0 0 30px;}
  #destinos .intl-trust{margin:0 0 34px; gap:16px 34px;}
  #destinos .btn-primary{box-shadow:0 8px 18px rgba(22,41,74,.24); transition:transform .2s ease, box-shadow .2s ease;}
  #destinos .btn-primary:hover{transform:translateY(-2px); box-shadow:0 12px 24px rgba(22,41,74,.3);}

  /* zona clara: rompe el navy y da aire */
  .intl-light{background:var(--off); padding:0 0 86px;}

  /* tarjetas de destino, montadas entre el navy y el crema */
  .intl-dest-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:-140px;}
  .intl-dest-card{position:relative; display:block; border-radius:18px; text-decoration:none; color:#fff;
    box-shadow:0 18px 38px rgba(22,41,74,.22);}
  .intl-dest-media{display:block; position:relative; aspect-ratio:4/5; border-radius:18px; overflow:hidden; background:var(--navy);}
  .intl-dest-media img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .45s ease; filter:saturate(1.05) contrast(1.03);}
  .intl-dest-media::after{content:''; position:absolute; inset:0; background:var(--navy); opacity:0; transition:opacity .2s ease;}
  .intl-dest-scrim{position:absolute; inset:0; background:linear-gradient(180deg, rgba(22,41,74,0) 40%, rgba(22,41,74,.8) 100%);}
  .intl-dest-body{position:absolute; left:0; right:0; bottom:0; display:flex; flex-direction:column; gap:7px; padding:20px 22px;}
  .intl-dest-name{font-family:var(--font-display); font-weight:800; font-size:1.42rem; line-height:1.15; color:#fff;}
  .intl-dest-go{display:inline-flex; align-items:center; gap:7px; font-size:.85rem; font-weight:700; color:rgba(255,255,255,.94);}
  .intl-arrow{width:15px; height:15px; flex:none; transition:transform .2s ease;}
  @media (hover:hover){
    .intl-dest-card:hover{transform:translateY(-2px); box-shadow:0 22px 44px rgba(22,41,74,.28);}
    .intl-dest-card:hover .intl-dest-media img{transform:scale(1.025);}
    .intl-dest-card:hover .intl-dest-media::after{opacity:.12;}
    .intl-dest-card:hover .intl-arrow{transform:translateX(4px);}
  }

  /* proceso de acompañamiento */
  .intl-proceso{margin-top:76px;}
  .intl-proceso-title{font-size:clamp(1.4rem,2.4vw,1.95rem); color:var(--navy); margin:0 0 30px; max-width:620px;}
  .intl-steps{list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:28px; margin:0; padding:0;}
  .intl-step{border-top:1px solid var(--line); padding-top:20px;}
  .intl-step-num{display:block; font-family:var(--font-display); font-weight:800; font-size:1.55rem; line-height:1;
    letter-spacing:-.02em; color:var(--coral-dark); margin-bottom:12px;}
  .intl-step h4{font-size:1rem; color:var(--navy); margin:0 0 6px;}
  .intl-step p{font-size:.93rem; color:var(--ink-soft); line-height:1.55; margin:0;}
  .intl-more{margin:36px 0 0;}
  .intl-more a{display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:.95rem; font-weight:800;
    color:var(--navy); text-decoration:none;}                 /* navy: el coral sobre crema no llega a AA */
  .intl-more .intl-arrow{color:var(--coral-dark);}
  .intl-more a:hover{text-decoration:underline;}

  /* entrada en viewport: reutiliza .reveal, algo más corta que la global */
  #destinos .reveal{transform:translateY(14px); transition-duration:.5s;}
  #destinos .reveal.in{transform:translateY(0);}
  #destinos .intl-dest-card{transform:none;                       /* la tarjeta solo aparece con fundido: el transform queda libre para el hover */
    transition-property:opacity, transform, box-shadow; transition-duration:.5s,.2s,.2s;
    transition-timing-function:ease; transition-delay:var(--sd,0ms), 0ms, 0ms;}
  #destinos .intl-dest-card:nth-child(2){--sd:70ms;}
  #destinos .intl-dest-card:nth-child(3){--sd:140ms;}
  #destinos .intl-step{transition-delay:var(--sd,0ms);}
  #destinos .intl-step:nth-child(2){--sd:60ms;}
  #destinos .intl-step:nth-child(3){--sd:120ms;}
  #destinos .intl-step:nth-child(4){--sd:180ms;}
  @media (prefers-reduced-motion: reduce){ #destinos .reveal, #destinos .intl-dest-card, #destinos .intl-step{transition-delay:0ms !important;} }

  @media (max-width:900px){
    .intl-hero{padding:72px 0 120px;}
    .intl-dest-grid{grid-template-columns:1fr; gap:18px; margin-top:-96px;}
    .intl-dest-media{aspect-ratio:16/10;}
    .intl-dest-card:nth-child(n){--sd:0ms;}
    .intl-steps{grid-template-columns:1fr 1fr; gap:24px;}
    .intl-proceso{margin-top:60px;}
  }
  @media (max-width:600px){
    .intl-hero{padding:56px 0 104px;}
    #destinos .intl-lead{font-size:1rem;}
    #destinos .intl-trust{gap:12px 22px; margin-bottom:28px;}
    #destinos .btn-primary{display:block; width:100%; text-align:center;}
    .intl-light{padding-bottom:64px;}
    .intl-dest-name{font-size:1.28rem;}
    .intl-steps{grid-template-columns:1fr; gap:18px;}
    .intl-step{padding-top:16px;}
  }

  .dest-process{display:flex; flex-wrap:wrap; gap:16px 30px; margin:26px 0 8px; max-width:1040px;}
  .dest-process-step{display:flex; align-items:center; gap:11px; font-size:.88rem; font-weight:600; color:var(--navy); flex:1 1 230px;}
  .dest-process-num{flex:0 0 27px; width:27px; height:27px; border-radius:50%; color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:800; font-size:.78rem; box-shadow:0 4px 10px rgba(22,41,74,.15);}
  .dest-process-step:nth-child(1) .dest-process-num{background:var(--coral);}
  .dest-process-step:nth-child(2) .dest-process-num{background:var(--teal-dark);}
  .dest-process-step:nth-child(3) .dest-process-num{background:var(--navy);}
  .dest-process-step:nth-child(4) .dest-process-num{background:var(--coral-dark);}

  /* ---------- PROGRESIÓN DE EDADES ---------- */
  .age-path{padding:56px 0 64px; background:var(--mint);}
  .age-path-head{max-width:640px; margin-bottom:6px;}
  .age-path-head h2{font-size:clamp(1.8rem,3.2vw,2.4rem); margin-top:12px;}
  .age-path-head p{color:var(--ink-soft); margin-top:10px; font-size:1.05rem; max-width:560px;}
  .age-path-track{margin-top:24px; position:relative;}
  .age-path-cards{display:flex; align-items:flex-start; gap:26px; position:relative; z-index:1;}
  .age-path-card{display:flex; flex-direction:column; gap:6px; flex:1 1 0; position:relative;}
  /* conector horizontal tipo timeline: línea punteada + nodo coral→navy bajo cada foto (solo desktop) */
  @media (min-width:901px){
    .age-path-cards::after{content:''; position:absolute; left:9%; right:9%; top:210px; border-top:2px dashed rgba(22,41,74,.20); z-index:0;}
    .age-path-card::after{content:''; position:absolute; top:204px; left:50%; transform:translateX(-50%); width:13px; height:13px; border-radius:50%; background:var(--coral); border:3px solid var(--mint); z-index:2;}
    .age-path-card.final::after{background:var(--navy);}
  }
  @media (max-width:900px){ .age-path-cards{flex-wrap:wrap; row-gap:40px;} .age-path-card{flex:1 1 calc(50% - 13px);} }
  @media (max-width:560px){
    .age-path-cards{flex-direction:column; align-items:stretch; row-gap:0;}
    .age-path-cards::before{content:''; position:absolute; left:8px; top:6px; bottom:6px; width:2px; background:linear-gradient(180deg, var(--coral), var(--navy)); border-radius:2px;}
    .age-path-card{flex:none; padding-left:26px; margin-bottom:32px;}
    .age-path-card:last-child{margin-bottom:0;}
  }
  .age-path-photo{position:relative; border-radius:18px; overflow:hidden; height:210px; box-shadow:0 10px 22px rgba(22,41,74,.1);}
  .age-path-card.final .age-path-photo{box-shadow:0 14px 28px rgba(22,41,74,.18);}
  @media (max-width:900px){ .age-path-photo{height:240px;} }
  @media (max-width:560px){ .age-path-photo{height:220px;} }
  .age-path-photo img{width:100%; height:100%; object-fit:cover; display:block; filter:saturate(1.05) contrast(1.03);}
  .age-path-age{font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; color:var(--coral-dark); margin-top:6px;}
  .age-path-card h3{font-size:1.28rem; font-weight:800; color:var(--navy); margin:0;}
  .age-path-card p{font-size:.86rem; color:var(--ink-soft); line-height:1.45; margin:0;}

  .cred-head{max-width:680px; margin:0 auto 50px; text-align:center;}
  .cred-head h2{font-size:clamp(1.9rem,3.6vw,2.6rem); margin-top:12px;}

  /* ---------- TESTIMONIOS ---------- */

  section.testimonials{padding:90px 24px; background:var(--peach);}
  .test-head{max-width:680px; margin:0 auto 50px; text-align:center;}
  .test-head h2{font-size:clamp(1.9rem,3.6vw,2.6rem); margin-top:12px;}
  .test-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
  @media (max-width:900px){ .test-grid{grid-template-columns:1fr;} }
  .test-card{background:#fff; border-radius:22px; padding:28px 26px; display:flex; flex-direction:column; gap:14px; box-shadow:0 10px 24px rgba(38,52,74,.06);}
  .test-stars{color:var(--sun); font-size:1rem; letter-spacing:2px;}
  .test-quote{font-size:.96rem; color:var(--ink); font-style:italic; flex-grow:1;}
  .test-author{display:flex; align-items:center; gap:12px; padding-top:12px; border-top:1px solid var(--line);}
  .test-avatar{width:42px; height:42px; border-radius:50%; background:var(--teal); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:800; font-size:.9rem; flex-shrink:0;}
  .test-author div strong{display:block; font-size:.9rem; color:var(--navy);}
  .test-author div span{font-size:.76rem; color:var(--ink-soft);}

  /* ---------- FAQ ---------- */

  section.faq{padding:90px 24px; background:var(--white);}
  .faq-list{max-width:760px; margin:0 auto;}
  .faq-item{border-bottom:1px solid var(--line);}
  .faq-q{display:flex; align-items:center; justify-content:space-between; gap:16px; padding:22px 4px; cursor:pointer; font-weight:700; color:var(--navy); font-size:1rem;}
  .faq-plus{width:28px; height:28px; border-radius:50%; border:2px solid var(--navy); display:flex; align-items:center; justify-content:center; font-size:1.1rem; flex-shrink:0; transition:transform .25s ease;}
  .faq-item.open .faq-plus{transform:rotate(45deg);}
  .faq-a{max-height:0; overflow:hidden; transition:max-height .3s ease;}
  .faq-a p{padding:0 4px 22px; color:var(--ink-soft); font-size:.94rem; max-width:640px;}

  /* ---------- FORMULARIO ---------- */
  section.contact{padding:90px 24px; background:linear-gradient(135deg, var(--teal) 0%, var(--teal-dark) 100%); position:relative; overflow:hidden;}
  .contact-grid{display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:flex-start; position:relative; z-index:1;}
  @media (max-width:900px){ .contact-grid{grid-template-columns:1fr; gap:38px;} }
  .contact-info .eyebrow{color:#fff; background:rgba(255,255,255,.2);}
  .contact-info h2{color:#fff; font-size:clamp(1.8rem,3.2vw,2.4rem); margin:12px 0 14px;}
  .contact-info p{color:rgba(255,255,255,.9); font-size:1rem; max-width:420px;}
  .contact-points{margin-top:30px; display:flex; flex-direction:column; gap:16px;}
  .contact-point{display:flex; gap:14px; align-items:flex-start;}
  .contact-point svg{width:20px; height:20px; flex-shrink:0; margin-top:2px; stroke:#fff;}
  .contact-point div strong{display:block; font-size:.92rem; color:#fff;}
  .contact-point div span{font-size:.82rem; color:rgba(255,255,255,.8);}

  .form-card{background:#fff; border-radius:24px; padding:36px; box-shadow:0 26px 50px rgba(0,0,0,.16);}
  @media (max-width:600px){ .form-card{padding:24px 18px;} }
  .form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
  @media (max-width:560px){ .form-grid{grid-template-columns:1fr;} }
  .field{display:flex; flex-direction:column; gap:6px;}
  .field.full{grid-column:1/-1;}
  .field label{font-size:.78rem; font-weight:700; color:var(--navy);}
  .field input, .field select, .field textarea{
    padding:12px 14px; border-radius:12px; border:1.5px solid var(--line); background:var(--off);
    font-family:inherit; font-size:.94rem; color:var(--ink); transition:border-color .15s ease;
  }
  .field textarea{resize:vertical; min-height:90px;}
  .field input:focus, .field select:focus, .field textarea:focus{border-color:var(--teal-dark); outline:none; box-shadow:0 0 0 3px rgba(76,100,131,.2);}
  .field input.valid, .field select.valid{border-color:var(--teal-dark); background:#f0f8f6;}
  .field input.invalid{border-color:var(--coral-dark); background:#fff3f0;}
  .field .err{font-size:.74rem; color:var(--coral-dark); display:none; min-height:14px;}
  .field .err.show{display:block;}
  .checkbox-row{display:flex; align-items:flex-start; gap:10px; grid-column:1/-1; margin-top:4px;}
  .checkbox-row input{margin-top:4px; width:16px; height:16px; accent-color:var(--coral);}
  .checkbox-row label{font-size:.82rem; color:var(--ink-soft); line-height:1.4;}
  .form-progress{grid-column:1/-1; height:5px; background:var(--line); border-radius:100px; overflow:hidden; margin-bottom:4px;}
  .form-progress-bar{height:100%; width:50%; background:var(--coral); border-radius:100px; transition:width .35s ease;}
  .form-step-label{grid-column:1/-1; font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.04em; color:var(--coral-dark); margin-bottom:8px;}
  .form-step{grid-column:1/-1; display:none; grid-template-columns:1fr 1fr; gap:16px;}
  .form-step.active{display:grid;}
  .form-step-actions{grid-column:1/-1; display:flex; gap:12px; align-items:center;}
  .form-step-actions .submit-btn{flex:1; margin-top:0;}
  .step-back-btn{background:none; border:none; color:var(--ink-soft); font-weight:700; font-size:.9rem; cursor:pointer; padding:10px; font-family:inherit;}
  .step-back-btn:hover{color:var(--navy);}
  .submit-btn{grid-column:1/-1; margin-top:6px; background:var(--coral); color:#fff; padding:16px; border-radius:14px; font-weight:800; font-size:1rem; box-shadow:0 12px 24px rgba(255,130,102,.3); transition:transform .15s ease, background .15s ease;}
  .submit-btn:hover{transform:translateY(-2px); background:var(--coral-dark);}
  .submit-btn:disabled{opacity:.55; cursor:not-allowed; transform:none;}
  .form-msg{display:none; grid-column:1/-1; background:#e8f5f1; border:1.5px solid var(--teal-dark); color:var(--teal-dark); padding:16px 18px; border-radius:14px; font-weight:700; font-size:.92rem;}
  .form-msg.show{display:block;}
  /* Mensaje de error de envío (cuando el backend falla) */
  .form-error{grid-column:1/-1; background:#fdecea; border:1.5px solid #e0685f; color:#a3271b; padding:14px 16px; border-radius:14px; font-weight:600; font-size:.9rem;}
  .form-error[hidden]{display:none;}
  /* Campo trampa anti-bots: fuera de pantalla, sin ocupar hueco ni ser accesible */
  .hp-field{position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; pointer-events:none;}

  /* ---------- FOOTER ---------- */
  footer{background:var(--navy); color:rgba(255,255,255,.62); padding:54px 24px 26px; font-size:.86rem;}
  .footer-grid{max-width:1200px; margin:0 auto; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px;}
  @media (max-width:820px){ .footer-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:520px){ .footer-grid{grid-template-columns:1fr;} }
  .footer-logo{height:32px; width:auto; margin-bottom:14px; filter:brightness(0) invert(1);}
  .footer-grid p{max-width:280px; line-height:1.6;}
  .footer-col h4{color:#fff; font-size:.84rem; text-transform:uppercase; letter-spacing:.08em; margin-bottom:14px;}
  .footer-col ul{list-style:none; display:flex; flex-direction:column; gap:10px;}
  .footer-col a{text-decoration:none; color:rgba(255,255,255,.62); transition:color .15s ease;}
  .footer-col a:hover{color:#fff;}
  .footer-social{display:flex; gap:12px; margin-top:6px;}
  .footer-social a{width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; font-size:.76rem; font-weight:700;}
  .footer-bottom{max-width:1200px; margin:44px auto 0; padding-top:24px; border-top:1px solid rgba(255,255,255,.1); display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:.78rem;}
  .footer-bottom a{text-decoration:none; color:rgba(255,255,255,.55); margin-left:16px;}

  /* ---------- MEJORAS: accesibilidad, cookies, WhatsApp, carrusel ---------- */
  .skip-link{position:absolute; left:12px; top:-60px; z-index:2000; background:var(--navy); color:#fff; padding:10px 16px; border-radius:0 0 10px 10px; font-weight:700; text-decoration:none; transition:top .18s ease;}
  .skip-link:focus{top:0;}
  #main{outline:none;}
  .nav--wide{max-width:1200px; padding-left:40px; padding-right:40px;}

  /* botón pausa/reproducción del carrusel del hero (WCAG 2.2.2) */
  .hero-slide-play{position:absolute; left:14px; bottom:14px; z-index:4; width:38px; height:38px; border:none; border-radius:50%; background:rgba(22,41,74,.55); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); transition:background .18s ease;}
  .hero-slide-play:hover{background:rgba(22,41,74,.85);}
  .hero-slide-play svg{width:18px; height:18px;}
  .hero-slide-play:focus-visible{outline:3px solid #fff; outline-offset:2px;}

  /* botón flotante de WhatsApp (oculto hasta configurar el número) */
  .whatsapp-float{position:fixed; right:20px; bottom:20px; z-index:1500; width:58px; height:58px; border-radius:50%; background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 20px rgba(0,0,0,.25); text-decoration:none; transition:transform .18s ease;}
  .whatsapp-float:hover{transform:scale(1.06);}
  .whatsapp-float[hidden]{display:none;}
  @media (max-width:600px){ .whatsapp-float{width:52px; height:52px; right:16px; bottom:16px;} }

  /* aviso de cookies (consentimiento previo a la analítica) */
  .cookie-banner{position:fixed; left:16px; right:16px; bottom:16px; z-index:1800; max-width:920px; margin:0 auto; background:#fff; border:1px solid #e4e4e4; border-radius:16px; box-shadow:0 10px 40px rgba(0,0,0,.18); padding:18px 20px; display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
  .cookie-banner[hidden]{display:none;}
  .cookie-text{margin:0; flex:1; min-width:220px; font-size:.9rem; color:var(--navy); line-height:1.5;}
  .cookie-text a{color:var(--coral-dark); font-weight:700;}
  .cookie-actions{display:flex; gap:10px; flex-shrink:0;}
  .cookie-btn{border:none; border-radius:999px; padding:11px 22px; font-weight:700; font-size:.9rem; cursor:pointer; font-family:inherit;}
  .cookie-reject{background:#eef0f2; color:var(--navy);}
  .cookie-reject:hover{background:#e2e5e8;}
  .cookie-accept{background:var(--coral); color:#fff;}
  .cookie-accept:hover{background:var(--coral-dark);}
  .cookie-btn:focus-visible{outline:3px solid var(--navy); outline-offset:2px;}
  @media (max-width:600px){ .cookie-banner{padding:16px; gap:12px;} .cookie-actions{width:100%;} .cookie-btn{flex:1;} }

  /* Más aire entre el título y la intro en la subpágina de extraescolar */
  #view-service-extraescolar .camp-hero-content h1{margin-bottom:20px;}

  /* Testimonios: carrusel + estrellas amarillas 5/5 */
  .test-stars{color:#F5B301; font-size:1.05rem; letter-spacing:2px;}
  .test-carousel{position:relative; max-width:720px; margin:0 auto; overflow:hidden;}
  .test-track{display:flex; transition:transform .55s cubic-bezier(.22,.8,.32,1);}
  .test-carousel .test-card{min-width:100%; box-sizing:border-box;}
  .test-dots{display:flex; justify-content:center; gap:9px; margin-top:22px;}
  .test-dot{width:9px; height:9px; border-radius:50%; background:rgba(38,52,74,.2); border:none; padding:0; cursor:pointer; transition:background .2s, transform .2s;}
  .test-dot:hover{background:rgba(38,52,74,.45);}
  .test-dot.active{background:var(--coral); transform:scale(1.25);}

  /* Formulario adaptado al servicio */
  .form-service-help{grid-column:1/-1; margin:-2px 0 4px; padding:11px 14px; background:#eef4fb; border-left:3px solid var(--teal); border-radius:10px; color:var(--teal-dark); font-size:.86rem; line-height:1.5;}
  .form-service-help[hidden]{display:none;}
  #serviceExtraWrap[hidden]{display:none;}

  /* Testimonios v2: tarjetas más pequeñas, elegantes y juntas (activa centrada, vecinas atenuadas) */
  .test-carousel{max-width:960px; padding:6px 0;}
  .test-track{gap:16px;}
  .test-carousel .test-card{min-width:0; flex:0 0 min(430px, 86vw); padding:22px 24px; gap:11px; border-radius:18px; border:1px solid var(--line); box-shadow:0 6px 18px rgba(38,52,74,.05); opacity:.5; transition:opacity .45s ease, transform .45s ease;}
  .test-carousel .test-card.is-active{opacity:1;}
  .test-carousel .test-quote{font-size:.92rem;}
  .test-carousel .test-stars{font-size:.98rem;}
  .test-carousel .test-avatar{width:38px; height:38px; font-size:.82rem;}
  .test-carousel .test-author strong{font-size:.94rem;}
  .test-carousel .test-author span{font-size:.8rem;}

  /* Conmutador de idioma — minimal y limpio, separado del CTA */
  .nav-links{margin-left:auto;}
  .lang-switch{display:inline-flex; align-items:center; gap:8px; margin-left:24px; padding-left:24px; border-left:1px solid var(--line); font-weight:700; font-size:.86rem; line-height:1;}
  .lang-switch svg{width:16px; height:16px; color:var(--navy); flex:0 0 auto;}
  .lang-switch .lang-active{color:var(--navy);}
  .lang-switch .lang-sep{color:var(--line); font-weight:400;}
  .lang-switch a{color:#98a2ad; text-decoration:none; transition:color .18s;}
  .lang-switch a:hover{color:var(--coral);}
  @media (max-width:920px){ .lang-switch{margin-left:auto; margin-right:14px; padding-left:0; border-left:none;} }
