@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Fraunces:opsz,wght@9..144,700;9..144,800&family=Inter:wght@400;500;600;700;800&family=Lato:wght@400;700;900&family=Merriweather:wght@400;700;900&family=Montserrat:wght@400;600;700;800&family=Nunito:wght@400;600;700;800&family=Open+Sans:wght@400;600;700;800&family=Oswald:wght@400;600;700&family=Playfair+Display:wght@500;600;700;800&family=Poppins:wght@400;500;600;700;800&family=Raleway:wght@400;600;700;800&family=Roboto:wght@400;500;700;900&family=Source+Sans+3:wght@400;600;700;800&display=swap');
:root{--bg:#f1f0ee;--card:#fff;--line:#d8d2cb;--ink:#1e2d30;--text:#2f3a4a;--muted:#667085;--green:#07863b;--green2:#056b30;--orange:#c66a20;--yellow:#efc531;--radius:8px;--max:1200px;--ui:"Inter","Segoe UI",Arial,sans-serif;--display:"Cormorant Garamond","Iowan Old Style",Georgia,serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--ui);font-size:16px}a{text-decoration:none;color:inherit}.container{width:min(var(--max),calc(100% - 48px));margin:auto}.topbar{height:72px;background:#f7f6f4;border-bottom:1px solid var(--line);display:flex;align-items:center;position:sticky;top:0;z-index:10}.nav{display:flex;align-items:center;gap:28px}.logo{width:236px;height:54px;object-fit:contain;object-position:left center}.menu{display:flex;gap:34px;margin-left:auto;font-size:14px;font-weight:800;letter-spacing:.03em}.menu a{position:relative;padding:27px 0;color:#1f2328}.menu a:hover{color:var(--green)}.menu a:after{content:"";position:absolute;left:0;right:0;bottom:15px;height:2px;background:var(--orange);transform:scaleX(0);transform-origin:left}.menu a:hover:after{transform:scaleX(1)}.social{display:flex;gap:9px;margin-left:14px}.social a,.share-row a,.share-row button{width:32px;height:32px;border:1px solid transparent;border-radius:7px;display:inline-grid;place-items:center;background:transparent;color:#1f2328;font-weight:700}.social a:hover,.share-row a:hover,.share-row button:hover{background:#fff;border-color:var(--line);color:var(--green)}h1,h2{font-family:var(--display);color:var(--ink);font-weight:500;letter-spacing:-.02em;line-height:1.02;margin:0}h3{font-family:var(--display);color:#18151b;font-weight:600;letter-spacing:-.015em}.intro{padding:56px 0 22px;text-align:center}.badge{display:inline-block;border:1px solid rgba(7,134,59,.2);background:#eef8f2;color:var(--green);border-radius:999px;padding:7px 15px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.intro h1{font-size:clamp(42px,5vw,66px);max-width:1160px;margin:20px auto 16px}.intro p{font-size:18px;line-height:1.7;max-width:930px;margin:auto}.actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 20px;border-radius:8px;border:1px solid var(--line);font-weight:750;cursor:pointer;background:#fff}.btn.primary{background:var(--green);color:#fff;border-color:var(--green)}.btn.primary:hover{background:var(--green2)}.btn.yellow{background:var(--yellow);border-color:var(--yellow);color:#1d1d1d}.utility{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:880px;margin:30px auto 0}.utility-card{background:rgba(255,255,255,.72);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;display:flex;align-items:center;justify-content:space-between;gap:18px}.section{padding:44px 0 74px}.catalog-head{text-align:center;margin:0 auto 32px;max-width:1120px}.catalog-head h2{font-size:clamp(34px,4vw,56px);margin-bottom:12px}.catalog-head p{font-size:18px;line-height:1.6;margin:0}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.course-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-height:425px;display:flex;flex-direction:column}.course-card:hover{box-shadow:0 8px 20px rgba(34,44,50,.05)}.thumb{height:186px;background:#e9e9e9;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.course-body{padding:18px;display:flex;flex-direction:column;gap:10px;flex:1}.course-body h3{font-size:25px;line-height:1.04;margin:0;min-height:56px}.course-body p{line-height:1.38;margin:0;color:#384252;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card-bottom{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:16px}.mini-logo{width:36px;height:36px;object-fit:contain}.interest{font-family:Georgia,serif;color:var(--green);font-weight:700}.band{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.two{display:grid;grid-template-columns:1fr 1fr;gap:28px}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px}.panel h2{font-size:42px;margin-bottom:14px}.reserve-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.reserve-form label{display:flex;flex-direction:column;gap:7px;font-weight:700}.reserve-form input,.reserve-form select,.reserve-form textarea{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fff;font:inherit}.reserve-form textarea,.reserve-form label:first-child{grid-column:1/-1}.reserve-form button{grid-column:1/-1}.footer{background:#f7f6f4;border-top:1px solid var(--line);padding:34px 0;color:#5d6675}.footer .container{display:flex;justify-content:space-between;gap:20px}.footer img{width:180px}.hero{padding:42px 0}.hero-grid{display:grid;grid-template-columns:1fr 420px;gap:36px;align-items:center}.hero h1{font-size:clamp(42px,5vw,64px);margin:14px 0}.hero p{font-size:19px;line-height:1.65}.hero-img{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.hero-img img{display:block;width:100%;height:500px;object-fit:cover}.main-grid{display:grid;grid-template-columns:1fr 340px;gap:26px;align-items:start}.side{position:sticky;top:90px}.facts{list-style:none;padding:0;margin:0;display:grid;gap:12px}.facts li{border-bottom:1px solid var(--line);padding-bottom:10px}.module{display:grid;grid-template-columns:48px 1fr;gap:12px;border-top:1px solid var(--line);padding:14px 0}.num{width:34px;height:34px;background:var(--green);color:#fff;border-radius:7px;display:grid;place-items:center;font-weight:800}.share-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.admin-layout{display:grid;grid-template-columns:280px 1fr;gap:22px;align-items:start}.admin-menu{position:sticky;top:92px}.admin-menu button{display:block;width:100%;text-align:left;margin-bottom:8px}.admin-section{display:none}.admin-section.active{display:block}.course-list button{width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:8px;cursor:pointer}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:700}.form-grid input,.form-grid textarea,.form-grid select{border:1px solid var(--line);border-radius:8px;padding:11px;font:inherit}.span2{grid-column:1/-1}.table{width:100%;border-collapse:collapse;background:#fff}.table th,.table td{border:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}.private{min-height:calc(100vh - 72px);display:grid;place-items:center;padding:60px 0}.private .panel{max-width:760px;text-align:center}.private h1{font-size:52px}.note{background:#fff6e8;border:1px solid #ead2b6;border-radius:8px;padding:12px;margin:18px 0}@media(max-width:1100px){.grid{grid-template-columns:repeat(3,1fr)}.hero-grid,.main-grid,.two,.admin-layout{grid-template-columns:1fr}.side,.admin-menu{position:static}.menu{gap:18px}.logo{width:210px}}@media(max-width:780px){.grid{grid-template-columns:repeat(2,1fr)}.utility,.reserve-form,.form-grid{grid-template-columns:1fr}.nav{flex-wrap:wrap}.topbar{height:auto;padding:10px 0}.menu{order:3;width:100%;justify-content:center}.social{margin-left:auto}.footer .container{display:block}.hero-img img{height:360px}}@media(max-width:560px){.grid{grid-template-columns:1fr}.intro h1{font-size:36px}.course-card{min-height:auto}.container{width:min(100% - 28px,var(--max))}}


/* ===== V10 ESTILO REFERENCIA ===== */
:root{--bg:#efefef;--card:#ffffff;--line:#d5d5d5;--ink:#20365d;--text:#27364f;--muted:#4d5d73;--yellow:#f5b600;--green:#19985b;--green2:#117743;--radius:6px;}
body{background:var(--bg);}
.topbar{position:sticky;top:0;z-index:20;height:86px;background:#f5f5f5;}
.nav{height:86px;}
.menu a:hover:after,.menu a.active:after{transform:scaleX(1);}
.hero-style{background:var(--bg);}
.hero-media{width:100%;height:520px;overflow:hidden;background:#222;}
.hero-media img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.95) contrast(1.02);}
.features-overlap{margin-top:-72px;position:relative;z-index:2;padding-bottom:16px;}
.features-shell{background:#dddddd;border-radius:6px;padding:18px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
.feature-yellow{background:var(--yellow);padding:34px 32px 28px;min-height:340px;border-radius:2px;}
.feature-yellow .feature-icon{font-size:42px;line-height:1;margin-bottom:18px;color:#111;}
.feature-yellow h3{font-family:var(--ui);font-size:18px;line-height:1.35;font-weight:800;margin:0 0 18px;color:#111;}
.feature-yellow p{font-size:18px;line-height:1.65;color:#704d00;margin:0;}
.catalog-reference{padding-top:34px;}
.catalog-reference-head{text-align:center;max-width:1220px;margin:0 auto 36px;}
.catalog-reference-head h2{font-family:var(--ui);font-size:clamp(34px,4.1vw,56px);font-weight:800;line-height:1.15;color:#243a63;margin-bottom:12px;}
.catalog-reference-head p{font-family:var(--ui);font-size:18px;line-height:1.5;color:#243a63;margin:0;font-weight:700;}
.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;}
.ref-card{min-height:385px;background:#fff;border:1px solid #cfcfcf;border-radius:2px;box-shadow:none;}
.ref-card .thumb{height:182px;background:#e5e5e5;}
.ref-card .thumb img{object-fit:cover;}
.ref-card .course-body{padding:16px 16px 14px;}
.ref-card .course-body h3{font-family:var(--display);font-size:32px;font-weight:700;line-height:1.03;margin:0 0 8px;color:#111;}
.ref-card .course-subtitle{font-family:var(--display);font-size:20px;line-height:1.05;color:#222;min-height:50px;}
.ref-card .card-bottom{padding-top:22px;}
.ref-card .mini-logo{width:38px;height:38px;}
.ref-card .interest{font-family:var(--display);font-size:16px;color:var(--green);font-weight:700;}
.band{background:transparent;border:none;padding-top:10px;}
.panel{border:1px solid #d7d7d7;border-radius:6px;background:#fff;}
.panel h2{font-size:34px;}
.share-inline{margin-top:16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.share-inline .share-row{display:flex;gap:8px;}
@media(max-width:1100px){.features-shell{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:repeat(3,1fr)}.hero-media{height:420px;}}
@media(max-width:780px){.grid{grid-template-columns:repeat(2,1fr)}.features-overlap{margin-top:-30px}.features-shell{grid-template-columns:1fr}.hero-media{height:320px}.feature-yellow{min-height:auto}.catalog-reference-head h2{font-size:34px}.catalog-reference-head p{font-size:16px}}
@media(max-width:560px){.grid{grid-template-columns:1fr}.topbar,.nav{height:auto}.hero-media{height:240px}}


/* ===== V11: formulario unificado y primera fila con 3 tarjetas 600x875 ===== */
.course-grid-shell{width:100%;}
.first-course-row{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  max-width:1220px;
  margin:0 auto 56px;
}
.rest-course-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  max-width:1220px;
  margin:0 auto;
}
.featured-card{
  min-height:auto;
}
.featured-card .thumb{
  height:auto !important;
  aspect-ratio:600/875;
  background:#fff;
}
.featured-card .thumb img{
  width:100%;
  height:100%;
  object-fit:contain !important;
  background:#fff;
}
.featured-card .course-body{
  display:none;
}
.rest-course-grid .thumb{
  height:auto;
  aspect-ratio:600/875;
  background:#fff;
}
.rest-course-grid .thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.rest-course-grid .course-body{
  min-height:170px;
}
.reservation-unified{
  display:grid;
  grid-template-columns:minmax(320px,.8fr) minmax(520px,1.2fr);
  gap:42px;
  align-items:start;
  padding:38px 42px;
}
.reservation-heading h2{
  font-size:42px;
  margin:16px 0 14px;
}
.reservation-heading p{
  font-size:18px;
  line-height:1.65;
  max-width:620px;
}
.reservation-form-wrap .reserve-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px 22px;
}
.reservation-form-wrap .reserve-form label:first-child,
.reservation-form-wrap .reserve-form label:nth-child(4),
.reservation-form-wrap .reserve-form label:nth-child(5),
.reservation-form-wrap .reserve-form button{
  grid-column:auto;
}
.reservation-form-wrap .reserve-form label:first-child{
  grid-column:1 / -1;
}
.reservation-form-wrap .reserve-form label:nth-child(5){
  grid-column:2 / 3;
  grid-row:3 / 5;
}
.reservation-form-wrap .reserve-form button{
  grid-column:1 / -1;
}
.reservation-form-wrap .reserve-form textarea{
  min-height:112px;
}
@media(max-width:1100px){
  .first-course-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
  .rest-course-grid{grid-template-columns:repeat(3,1fr);}
  .reservation-unified{grid-template-columns:1fr;gap:24px;}
  .reservation-heading h2{font-size:36px;}
}
@media(max-width:780px){
  .first-course-row{grid-template-columns:1fr;max-width:600px;}
  .rest-course-grid{grid-template-columns:repeat(2,1fr);}
  .reservation-form-wrap .reserve-form{grid-template-columns:1fr;}
  .reservation-form-wrap .reserve-form label:nth-child(5){grid-column:auto;grid-row:auto;}
}
@media(max-width:560px){
  .rest-course-grid{grid-template-columns:1fr;}
  .reservation-unified{padding:24px;}
}


/* ===== V13: primeras 3 imágenes de portada ===== */
.first-course-row .featured-card{min-height:440px;background:#fff;border:1px solid #cfcfcf;border-radius:2px;overflow:hidden;display:flex;flex-direction:column;}
.first-course-row .featured-card .thumb{height:auto !important;aspect-ratio:400/280 !important;background:#f2f2f2;}
.first-course-row .featured-card .thumb img{width:100%;height:100%;object-fit:cover !important;display:block;background:#fff;}
.first-course-row .featured-card .course-body{display:flex !important;flex-direction:column;gap:10px;padding:18px 16px 16px;min-height:200px;}
.first-course-row .featured-card .course-body h3{font-family:var(--display);font-size:30px;line-height:1.02;margin:0;color:#111;}
.first-course-row .featured-card .course-subtitle{font-family:var(--display);font-size:20px;line-height:1.08;color:#222;min-height:48px;}
.first-course-row .featured-card .card-bottom{margin-top:auto;padding-top:18px;display:flex;align-items:center;justify-content:space-between;}
.first-course-row .featured-card .mini-logo{width:38px;height:38px;object-fit:contain;}
.first-course-row .featured-card .interest{font-family:var(--display);font-size:16px;color:var(--green);font-weight:700;}
@media(max-width:780px){
  .first-course-row .featured-card{min-height:auto;}
  .first-course-row .featured-card .course-body h3{font-size:26px;}
}


/* ===== V14: reducir 10% los 3 cuadros de portada ===== */
.first-course-row{max-width:1220px;margin:0 auto 56px;}
.first-course-row .featured-card{width:90%;justify-self:center;min-height:396px;}
.first-course-row .featured-card .thumb{aspect-ratio:400/280 !important;}
.first-course-row .featured-card .course-body{padding:16px 14px 14px;min-height:180px;}
.first-course-row .featured-card .course-body h3{font-size:27px;}
.first-course-row .featured-card .course-subtitle{font-size:18px;min-height:42px;}
.first-course-row .featured-card .card-bottom{padding-top:14px;}
@media(max-width:780px){
  .first-course-row .featured-card{width:100%;}
}


/* ===== V15: cuadros 10% más cerca y fuente del curso 15% más grande ===== */
.first-course-row{gap:18px !important;}
.first-course-row .featured-card{width:91%;}
.first-course-row .featured-card .course-body h3{font-size:31px !important; line-height:1.02;}
.first-course-row .featured-card .course-subtitle{font-size:21px !important; line-height:1.08;}
@media(max-width:780px){
  .first-course-row{gap:14px !important;}
  .first-course-row .featured-card{width:100%;}
  .first-course-row .featured-card .course-body h3{font-size:28px !important;}
  .first-course-row .featured-card .course-subtitle{font-size:19px !important;}
}


/* ===== V16: primeras 3 tarjetas con estilo del ejemplo ===== */
.first-course-row{gap:18px !important;align-items:start;}
.first-course-row .featured-card{width:91%;justify-self:center;min-height:602px;background:#fff;border:1px solid #cfcfcf;border-radius:4px;overflow:hidden;}
.first-course-row .featured-card .thumb{aspect-ratio:400/280 !important;height:auto !important;background:#f2f2f2;}
.first-course-row .featured-card .thumb img{width:100%;height:100%;object-fit:cover !important;display:block;}
.first-course-row .featured-card .course-body{display:flex !important;flex-direction:column;align-items:flex-start;min-height:322px;padding:34px 28px 22px;gap:12px;}
.first-course-row .featured-card .course-body h3{font-family:var(--display);font-size:28px !important;line-height:1.04;letter-spacing:-.02em;font-weight:500;margin:0;color:#141414;}
.first-course-row .featured-card .course-subtitle{font-family:var(--display);font-size:66px !important;line-height:.92;letter-spacing:-.03em;font-weight:700;color:#0f0f10;min-height:auto;margin-top:-2px;}
.first-course-row .featured-card .card-bottom{margin-top:auto;padding-top:10px;width:100%;display:flex;align-items:flex-end;justify-content:space-between;}
.first-course-row .featured-card .mini-logo{width:40px;height:40px;object-fit:contain;display:block;}
.first-course-row .featured-card .interest{font-family:var(--display);font-size:18px;color:var(--green);font-weight:700;line-height:1;}
@media(max-width:1200px){
  .first-course-row .featured-card .course-subtitle{font-size:58px !important;}
}
@media(max-width:980px){
  .first-course-row .featured-card{width:94%;min-height:560px;}
  .first-course-row .featured-card .course-body{padding:28px 22px 20px;min-height:286px;}
  .first-course-row .featured-card .course-subtitle{font-size:52px !important;}
}
@media(max-width:780px){
  .first-course-row{gap:14px !important;}
  .first-course-row .featured-card{width:100%;min-height:auto;}
  .first-course-row .featured-card .course-body{min-height:280px;padding:28px 22px 20px;}
  .first-course-row .featured-card .course-body h3{font-size:24px !important;}
  .first-course-row .featured-card .course-subtitle{font-size:56px !important;}
}
@media(max-width:480px){
  .first-course-row .featured-card .course-body{min-height:250px;padding:24px 18px 18px;}
  .first-course-row .featured-card .course-body h3{font-size:22px !important;}
  .first-course-row .featured-card .course-subtitle{font-size:50px !important;}
  .first-course-row .featured-card .mini-logo{width:36px;height:36px;}
  .first-course-row .featured-card .interest{font-size:16px;}
}


/* ===== V17: mejor tipografía y reducción de tamaño 15% ===== */
.first-course-row .featured-card .course-body h3{
  font-family:"Cormorant Garamond", Georgia, serif !important;
  font-size:24px !important;
  line-height:1.05 !important;
  font-weight:600 !important;
  letter-spacing:-0.01em;
}
.first-course-row .featured-card .course-subtitle{
  font-family:"Fraunces", Georgia, serif !important;
  font-size:56px !important;
  line-height:0.94 !important;
  font-weight:800 !important;
  letter-spacing:-0.03em;
}
.first-course-row .featured-card .interest{
  font-family:"Cormorant Garamond", Georgia, serif !important;
  font-size:15px !important;
  font-weight:700 !important;
}
.first-course-row .featured-card .course-body{
  min-height:300px;
  padding:30px 28px 22px;
}
@media(max-width:1200px){
  .first-course-row .featured-card .course-subtitle{font-size:50px !important;}
}
@media(max-width:780px){
  .first-course-row .featured-card .course-body h3{font-size:22px !important;}
  .first-course-row .featured-card .course-subtitle{font-size:48px !important;}
  .first-course-row .featured-card .interest{font-size:14px !important;}
}
@media(max-width:480px){
  .first-course-row .featured-card .course-body h3{font-size:21px !important;}
  .first-course-row .featured-card .course-subtitle{font-size:44px !important;}
}


/* ===== V18: módulo de estilos del CMS ===== */
.admin-help{color:var(--muted);line-height:1.55;margin-top:-6px;}
.style-admin-grid{display:grid;grid-template-columns:minmax(420px,1fr) minmax(360px,.9fr);gap:24px;align-items:start;}
.style-controls h3,.style-preview h3{margin-top:0;font-family:var(--ui);font-size:20px;color:#1f2b44;}
.style-controls .form-grid{grid-template-columns:1.1fr .55fr;gap:13px 14px;}
.style-controls select,.style-controls input{background:#fff;}
.style-preview{background:#f7f7f5;border:1px solid var(--line);border-radius:10px;padding:18px;position:sticky;top:98px;}
.style-map{display:grid;gap:12px;}
.style-zone{background:#fff;border:1px dashed #c9c9c9;border-radius:8px;padding:14px;}
.style-zone span,.demo-card-body span{display:block;font-family:var(--ui);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#0b8f40;font-weight:800;margin-bottom:6px;}
.style-zone b{display:block;color:#172033;}
.style-zone p{margin:0;color:#4b5563;}
.style-card-demo{background:#fff;border:1px solid #cfcfcf;border-radius:6px;overflow:hidden;}
.demo-image{height:110px;background:linear-gradient(135deg,#e9eef3,#d7ece0);display:grid;place-items:center;color:#526172;font-weight:700;}
.demo-card-body{padding:18px;}
.demo-card-body b{display:block;color:#171717;}
.demo-card-body strong{display:block;color:#050505;margin-top:4px;}
.demo-footer{display:flex;justify-content:space-between;align-items:center;margin-top:20px;}
.demo-footer small{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:8px;border:1px solid #d4d4d4;color:#667085;font-weight:700;}
.demo-footer a{color:var(--green);font-weight:800;}
@media(max-width:1000px){.style-admin-grid{grid-template-columns:1fr}.style-preview{position:static}.style-controls .form-grid{grid-template-columns:1fr 160px}}
@media(max-width:620px){.style-controls .form-grid{grid-template-columns:1fr}.style-admin-grid{gap:16px}}


/* ===== V19: Módulo Estilos dividido por sección - Portada / primeros 3 cursos ===== */
:root{
  --v19-cover-title-font: "Inter", "Segoe UI", Arial, sans-serif;
  --v19-cover-title-size: 42px;
  --v19-cover-subtitle-font: "Inter", "Segoe UI", Arial, sans-serif;
  --v19-cover-subtitle-size: 18px;

  --v19-card-top-font: "Cormorant Garamond", Georgia, serif;
  --v19-card-top-size: 24px;
  --v19-card-main-font: "Fraunces", Georgia, serif;
  --v19-card-main-size: 56px;
  --v19-card-link-font: "Cormorant Garamond", Georgia, serif;
  --v19-card-link-size: 15px;
}

.catalog-reference-head h2{
  font-family: var(--v19-cover-title-font) !important;
  font-size: var(--v19-cover-title-size) !important;
}
.catalog-reference-head p{
  font-family: var(--v19-cover-subtitle-font) !important;
  font-size: var(--v19-cover-subtitle-size) !important;
}
.first-course-row .featured-card .course-body h3{
  font-family: var(--v19-card-top-font) !important;
  font-size: var(--v19-card-top-size) !important;
}
.first-course-row .featured-card .course-subtitle{
  font-family: var(--v19-card-main-font) !important;
  font-size: var(--v19-card-main-size) !important;
}
.first-course-row .featured-card .interest{
  font-family: var(--v19-card-link-font) !important;
  font-size: var(--v19-card-link-size) !important;
}

/* Vista gráfica dentro del panel */
.style-section-card{
  border:1px solid var(--line);
  background:#fff;
  border-radius:8px;
  padding:22px;
  margin-bottom:18px;
}
.style-section-card h3{
  margin-top:0;
  font-family:var(--ui);
  font-size:20px;
  color:#1f2a44;
}
.style-section-note{
  margin:0 0 18px;
  color:#5f6b7a;
  line-height:1.55;
}
.style-map{
  border:1px dashed #c6cbd2;
  background:#f7f8f9;
  border-radius:8px;
  padding:18px;
  margin:18px 0;
}
.style-map-cover{
  text-align:center;
  padding:20px;
  background:#f1f1f1;
  border-radius:6px;
}
.style-map-cover .map-title{
  font-family:var(--v19-cover-title-font);
  font-size:var(--v19-cover-title-size);
  font-weight:800;
  color:#243a63;
  line-height:1.15;
}
.style-map-cover .map-subtitle{
  font-family:var(--v19-cover-subtitle-font);
  font-size:var(--v19-cover-subtitle-size);
  margin-top:8px;
  color:#243a63;
}
.style-map-card{
  width:min(340px,100%);
  background:#fff;
  border:1px solid #cfcfcf;
  border-radius:4px;
  overflow:hidden;
}
.style-map-card .map-img{
  height:132px;
  background:linear-gradient(135deg,#eaf3f0,#d8e0e0);
}
.style-map-card .map-body{
  padding:22px;
  min-height:210px;
  display:flex;
  flex-direction:column;
}
.style-map-card .map-top{
  font-family:var(--v19-card-top-font);
  font-size:var(--v19-card-top-size);
  line-height:1.05;
  color:#151515;
}
.style-map-card .map-main{
  font-family:var(--v19-card-main-font);
  font-size:var(--v19-card-main-size);
  line-height:.94;
  font-weight:800;
  color:#111;
}
.style-map-card .map-bottom{
  margin-top:auto;
  display:flex;
  justify-content:space-between;
  align-items:end;
  color:var(--green);
}
.style-map-card .map-logo{
  width:36px;
  height:36px;
  background:linear-gradient(90deg,#2767c8 0 25%,#e02626 25% 50%,#f49800 50% 75%,#43a047 75%);
  border-radius:6px;
}
.style-map-card .map-link{
  font-family:var(--v19-card-link-font);
  font-size:var(--v19-card-link-size);
  font-weight:700;
}
.style-controls-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.style-controls-grid label{
  display:flex;
  flex-direction:column;
  gap:7px;
  font-weight:700;
}
.style-controls-grid select,
.style-controls-grid input{
  border:1px solid var(--line);
  border-radius:8px;
  padding:11px;
  font:inherit;
  background:#fff;
}
.style-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:18px;
}
@media(max-width:780px){
  .style-controls-grid{grid-template-columns:1fr;}
}


/* ===== V20: módulo estilos por bloques, muestra al lado ===== */
.style-block-row{display:grid;grid-template-columns:minmax(320px,420px) 1fr;gap:22px;align-items:start;}
.style-controls-stack{display:grid;gap:14px;}
.style-control-block{border:1px solid var(--line);background:#fbfbfc;border-radius:8px;padding:16px;}
.style-control-block h4{margin:0 0 6px;font-size:16px;color:#1f2a44;font-family:var(--ui);}
.style-control-block p{margin:0 0 12px;color:#667085;font-size:13px;line-height:1.45;}
.style-control-fields{display:grid;grid-template-columns:1fr 130px;gap:12px;}
.style-control-fields label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:14px;}
.style-map-card.compact{width:100%;max-width:360px;}
.style-map-cover.compact{text-align:left;}
.style-map-cover.compact .map-title,.style-map-cover.compact .map-subtitle{display:block;}
.style-map-target{display:inline-block;margin-top:8px;padding:3px 8px;border-radius:999px;background:#eef6f1;color:#1c7a49;font-size:12px;font-weight:700;}
@media(max-width:900px){.style-block-row{grid-template-columns:1fr;}.style-control-fields{grid-template-columns:1fr;}}


/* ===== V21: ajuste numérico al lado de cada control ===== */
.style-control-fields{
  grid-template-columns: minmax(220px, 1fr) minmax(190px, 230px);
  align-items:end;
}
.numeric-adjust{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
}
.numeric-adjust button{
  width:36px;
  height:36px;
  border:1px solid var(--line);
  background:#fff;
  border-radius:8px;
  font-weight:800;
  cursor:pointer;
  color:#1f2a44;
}
.numeric-adjust button:hover{
  background:#eef6f1;
  border-color:#b7d9c4;
  color:var(--green);
}
.numeric-adjust input[type="number"]{
  width:82px;
  text-align:center;
  padding:9px 8px;
}
.numeric-adjust .unit{
  font-size:13px;
  color:#667085;
  font-weight:700;
}
.style-control-block{
  padding:18px;
}
.style-control-fields label{
  margin:0;
}
@media(max-width:780px){
  .style-control-fields{
    grid-template-columns:1fr;
  }
  .numeric-adjust input[type="number"]{
    width:100%;
  }
}


/* ===== V22: control del menú exactamente al lado de la muestra ===== */
:root{
  --v22-menu-font: "Inter", "Segoe UI", Arial, sans-serif;
  --v22-menu-size: 13px;
}
.menu a{
  font-family: var(--v22-menu-font) !important;
  font-size: var(--v22-menu-size) !important;
}
.style-mini-block{
  display:grid;
  grid-template-columns:minmax(340px, 1fr) minmax(260px, 340px);
  gap:18px;
  align-items:stretch;
  margin-bottom:18px;
}
.style-mini-sample,
.style-mini-controls{
  border:1px dashed #cbd3dc;
  background:#fff;
  border-radius:10px;
  padding:22px;
}
.style-mini-sample h4,
.style-mini-controls h4{
  margin:0 0 14px;
  font-family:var(--ui);
  color:#078441;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:16px;
}
.style-menu-preview{
  font-family:var(--v22-menu-font);
  font-size:var(--v22-menu-size);
  font-weight:800;
  letter-spacing:.04em;
  line-height:1.45;
  color:#07152c;
}
.style-menu-preview span{display:inline-block;margin-right:8px;}
.style-mini-controls label{
  display:flex;
  flex-direction:column;
  gap:8px;
  font-weight:800;
  color:#1f2a44;
}
.style-mini-controls select,
.style-mini-controls input{
  border:1px solid var(--line);
  border-radius:8px;
  padding:10px;
  font:inherit;
}
.style-mini-controls .numeric-adjust{
  margin-top:4px;
}
@media(max-width:900px){
  .style-mini-block{grid-template-columns:1fr;}
}


/* ===== V23: tamaño del menú dentro de la muestra gráfica ===== */
.style-menu-inline-shell{
  border:1px dashed #cbd3dc;
  background:#f9fafb;
  border-radius:10px;
  padding:22px;
}
.style-menu-inline-layout{
  display:grid;
  grid-template-columns:minmax(320px, 1fr) 96px;
  gap:18px;
  align-items:center;
}
.style-menu-inline-preview{
  border:1px dashed #cbd3dc;
  background:#fff;
  border-radius:10px;
  padding:22px 24px;
}
.style-menu-inline-preview h4{
  margin:0 0 10px;
  font-family:var(--ui);
  color:#078441;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:16px;
}
.style-menu-inline-preview .style-menu-preview{
  font-family:var(--v22-menu-font);
  font-size:var(--v22-menu-size);
  font-weight:800;
  letter-spacing:.04em;
  line-height:1.45;
  color:#07152c;
}
.style-menu-size-box{
  display:flex;
  justify-content:center;
  align-items:center;
}
.style-menu-size-box input[type="number"]{
  width:86px;
  height:54px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  text-align:center;
  font-size:20px;
  font-weight:800;
  color:#111827;
  padding:0 8px;
}
.style-menu-font-under{
  margin-top:16px;
  display:grid;
  grid-template-columns:minmax(240px, 360px) auto;
  gap:12px;
  align-items:end;
}
.style-menu-font-under label{
  display:flex;
  flex-direction:column;
  gap:7px;
  font-weight:800;
  color:#1f2a44;
}
.style-menu-font-under select{
  border:1px solid var(--line);
  border-radius:8px;
  padding:10px;
  font:inherit;
  background:#fff;
}
.style-menu-font-under .hint{
  color:#667085;
  font-size:13px;
  line-height:1.45;
}
@media(max-width:760px){
  .style-menu-inline-layout{
    grid-template-columns:1fr;
  }
  .style-menu-size-box{
    justify-content:flex-start;
  }
  .style-menu-font-under{
    grid-template-columns:1fr;
  }
}


/* ===== V24: muestra + fuente + tamaño en la misma línea ===== */
:root{
  --v24-menu-font: "Inter", "Segoe UI", Arial, sans-serif;
  --v24-menu-size: 14px;
}

.menu a{
  font-family: var(--v24-menu-font) !important;
  font-size: var(--v24-menu-size) !important;
}

.style-menu-exact-row{
  display:grid;
  grid-template-columns:minmax(330px, 1fr) minmax(280px, 360px) 90px;
  gap:14px;
  align-items:center;
  margin-top:14px;
}

.style-menu-exact-sample{
  border:1px dashed #cbd3dc;
  background:#fff;
  border-radius:2px;
  padding:18px 20px;
  min-height:92px;
}

.style-menu-exact-sample h4{
  margin:0 0 9px;
  font-family:var(--ui);
  color:#078441;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:15px;
}

.style-menu-exact-preview{
  font-family:var(--v24-menu-font);
  font-size:var(--v24-menu-size);
  font-weight:800;
  letter-spacing:.035em;
  line-height:1.45;
  color:#07152c;
}

.style-menu-exact-select select{
  width:100%;
  height:46px;
  border:1px solid var(--line);
  border-radius:4px;
  background:#fff;
  padding:0 14px;
  font-size:16px;
  font-weight:700;
}

.style-menu-exact-number input[type="number"]{
  width:90px;
  height:46px;
  border:1px solid var(--line);
  border-radius:8px;
  background:#fff;
  text-align:center;
  font-size:18px;
  font-weight:800;
  color:#111827;
  padding:0 8px;
}

@media(max-width:900px){
  .style-menu-exact-row{
    grid-template-columns:1fr;
  }
  .style-menu-exact-number input[type="number"]{
    width:120px;
  }
}


/* ===== V25: diseño aprobado para Estilos / Menú principal ===== */
:root{
  --v25-menu-font: "Inter", "Segoe UI", Arial, sans-serif;
  --v25-menu-size: 14px;
}

.menu a{
  font-family: var(--v25-menu-font) !important;
  font-size: var(--v25-menu-size) !important;
}

/* Contenedor aprobado */
.v25-style-approved{
  border:1px solid #d6d6d6;
  background:#fbfbfb;
  border-radius:12px;
  padding:26px;
  margin-bottom:22px;
}

.v25-style-approved h2{
  margin:0 0 22px;
  font-family:var(--ui);
  font-size:30px;
  line-height:1.2;
  color:#12203a;
}

.v25-menu-row{
  display:grid;
  grid-template-columns:minmax(390px, 1fr) minmax(300px, 360px) 92px;
  gap:18px;
  align-items:center;
  border:1px dashed #cfd6df;
  background:#f8f9fa;
  border-radius:10px;
  padding:26px;
}

.v25-menu-sample{
  border:1px dashed #cfd6df;
  background:#fff;
  border-radius:6px;
  padding:22px 26px;
  min-height:114px;
}

.v25-menu-sample-title{
  margin:0 0 10px;
  font-family:var(--ui);
  color:#078441;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-size:16px;
  font-weight:800;
}

.v25-menu-preview-text{
  font-family:var(--v25-menu-font);
  font-size:var(--v25-menu-size);
  font-weight:800;
  letter-spacing:.035em;
  line-height:1.45;
  color:#07152c;
}

.v25-font-control select{
  width:100%;
  height:58px;
  border:1px solid #d9d9d9;
  border-radius:8px;
  background:#fff;
  padding:0 16px;
  font-size:18px;
  font-weight:800;
  color:#111;
}

.v25-size-control input[type="number"]{
  width:92px;
  height:58px;
  border:1px solid #d9d9d9;
  border-radius:8px;
  background:#fff;
  text-align:center;
  font-size:20px;
  font-weight:800;
  color:#111;
  padding:0 8px;
}

.v25-section-title{
  margin:28px 0 10px;
  font-family:var(--ui);
  font-size:24px;
  color:#12203a;
}

@media(max-width:980px){
  .v25-menu-row{
    grid-template-columns:1fr;
  }
  .v25-size-control input[type="number"]{
    width:120px;
  }
}


/* ===== V26: módulo Estilos limpio / Menú principal aprobado ===== */
:root{
  --v26-menu-font: "Inter", "Segoe UI", Arial, sans-serif;
  --v26-menu-size: 14px;
}

.menu a{
  font-family: var(--v26-menu-font) !important;
  font-size: var(--v26-menu-size) !important;
}

.v26-style-module{
  width:100%;
}

.v26-style-head{
  background:#fff;
  border:1px solid #d7d7d7;
  border-radius:12px;
  padding:26px 30px;
  margin-bottom:18px;
}

.v26-style-head h2{
  margin:12px 0 8px;
  font-family:var(--ui);
  font-size:34px;
  line-height:1.15;
  color:#12203a;
}

.v26-style-head p{
  margin:0;
  color:#4b5b73;
  font-size:18px;
  line-height:1.55;
}

.v26-style-panel{
  background:#fff;
  border:1px solid #d7d7d7;
  border-radius:12px;
  padding:30px;
}

.v26-style-panel h3{
  margin:0 0 24px;
  font-family:var(--ui);
  font-size:28px;
  color:#12203a;
}

.v26-menu-row{
  display:grid;
  grid-template-columns:minmax(430px, 1fr) minmax(300px, 360px) 94px;
  gap:18px;
  align-items:center;
  background:#f8f9fa;
  border:1px dashed #cfd6df;
  border-radius:10px;
  padding:26px;
}

.v26-menu-sample{
  border:1px dashed #cfd6df;
  background:#fff;
  border-radius:6px;
  padding:22px 26px;
  min-height:106px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.v26-menu-label{
  margin-bottom:10px;
  font-family:var(--ui);
  color:#078441;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-size:16px;
  font-weight:800;
}

.v26-menu-preview{
  font-family:var(--v26-menu-font);
  font-size:var(--v26-menu-size);
  font-weight:800;
  letter-spacing:.035em;
  line-height:1.45;
  color:#07152c;
}

.v26-font-control select{
  width:100%;
  height:58px;
  border:1px solid #d9d9d9;
  border-radius:8px;
  background:#fff;
  padding:0 16px;
  font-size:18px;
  font-weight:800;
  color:#111;
}

.v26-size-control input[type="number"]{
  width:94px;
  height:58px;
  border:1px solid #d9d9d9;
  border-radius:8px;
  background:#fff;
  text-align:center;
  font-size:20px;
  font-weight:800;
  color:#111;
  padding:0 8px;
}

.v26-style-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:22px;
}

@media(max-width:980px){
  .v26-menu-row{
    grid-template-columns:1fr;
  }
  .v26-size-control input[type="number"]{
    width:130px;
  }
}

/* Oculta restos visuales del módulo viejo si un navegador los tenía en caché */
.style-admin-grid,
.style-controls,
.style-preview{
  display:none !important;
}


/* ===== V27: Estilos completos para portada y primeros 3 cursos ===== */
:root{
  --v27-menu-font: "Inter", "Segoe UI", Arial, sans-serif;
  --v27-menu-size: 14px;
  --v27-headline-font: "Inter", "Segoe UI", Arial, sans-serif;
  --v27-headline-size: 42px;
  --v27-subtitle-font: "Inter", "Segoe UI", Arial, sans-serif;
  --v27-subtitle-size: 18px;
  --v27-cardtop-font: "Cormorant Garamond", Georgia, serif;
  --v27-cardtop-size: 24px;
  --v27-cardmain-font: "Fraunces", Georgia, serif;
  --v27-cardmain-size: 56px;
  --v27-button-font: "Cormorant Garamond", Georgia, serif;
  --v27-button-size: 15px;
}

/* Aplicación pública */
.menu a{
  font-family: var(--v27-menu-font) !important;
  font-size: var(--v27-menu-size) !important;
}
.catalog-reference-head h2{
  font-family: var(--v27-headline-font) !important;
  font-size: var(--v27-headline-size) !important;
}
.catalog-reference-head p,
.course-card .course-body p,
.panel p{
  font-family: var(--v27-subtitle-font) !important;
  font-size: var(--v27-subtitle-size);
}
.first-course-row .featured-card .course-body h3{
  font-family: var(--v27-cardtop-font) !important;
  font-size: var(--v27-cardtop-size) !important;
}
.first-course-row .featured-card .course-subtitle{
  font-family: var(--v27-cardmain-font) !important;
  font-size: var(--v27-cardmain-size) !important;
}
.first-course-row .featured-card .interest,
.btn{
  font-family: var(--v27-button-font) !important;
  font-size: var(--v27-button-size) !important;
}

/* Panel Estilos */
.v27-style-module{
  width:100%;
}

.v27-style-head{
  background:#fff;
  border:1px solid #d7d7d7;
  border-radius:12px;
  padding:26px 30px;
  margin-bottom:18px;
}

.v27-style-head h2{
  margin:12px 0 8px;
  font-family:var(--ui);
  font-size:34px;
  line-height:1.15;
  color:#12203a;
}

.v27-style-head p{
  margin:0;
  color:#4b5b73;
  font-size:18px;
  line-height:1.55;
}

.v27-style-panel{
  background:#fff;
  border:1px solid #d7d7d7;
  border-radius:12px;
  padding:30px;
}

.v27-style-panel h3{
  margin:0 0 22px;
  font-family:var(--ui);
  font-size:28px;
  color:#12203a;
}

.v27-column-labels{
  display:grid;
  grid-template-columns:minmax(430px, 1fr) minmax(300px, 360px) 94px;
  gap:18px;
  padding:0 26px 8px;
  color:#667085;
  font-size:13px;
  font-weight:700;
}

.v27-style-row{
  display:grid;
  grid-template-columns:minmax(430px, 1fr) minmax(300px, 360px) 94px;
  gap:18px;
  align-items:center;
  background:#f8f9fa;
  border:1px dashed #cfd6df;
  border-radius:10px;
  padding:18px 26px;
  margin-bottom:14px;
}

.v27-sample{
  border:1px dashed #cfd6df;
  background:#fff;
  border-radius:6px;
  padding:16px 20px;
  min-height:74px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.v27-sample-label{
  margin-bottom:8px;
  font-family:var(--ui);
  color:#078441;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-size:14px;
  font-weight:800;
}

.v27-menu-preview{
  font-family:var(--v27-menu-font);
  font-size:var(--v27-menu-size);
  font-weight:800;
  letter-spacing:.035em;
  line-height:1.45;
  color:#07152c;
}

.v27-headline-preview{
  font-family:var(--v27-headline-font);
  font-size:min(var(--v27-headline-size), 34px);
  font-weight:800;
  line-height:1.12;
  color:#07152c;
}

.v27-subtitle-preview{
  font-family:var(--v27-subtitle-font);
  font-size:var(--v27-subtitle-size);
  line-height:1.35;
  color:#334155;
}

.v27-cardtop-preview{
  font-family:var(--v27-cardtop-font);
  font-size:var(--v27-cardtop-size);
  line-height:1.15;
  color:#111827;
}

.v27-cardmain-preview{
  font-family:var(--v27-cardmain-font);
  font-size:min(var(--v27-cardmain-size), 44px);
  font-weight:800;
  line-height:1;
  color:#111827;
}

.v27-button-preview{
  display:inline-block;
  font-family:var(--v27-button-font);
  font-size:var(--v27-button-size);
  font-weight:800;
  color:var(--green);
}

.v27-font-control select{
  width:100%;
  height:52px;
  border:1px solid #d9d9d9;
  border-radius:8px;
  background:#fff;
  padding:0 16px;
  font-size:16px;
  font-weight:800;
  color:#111;
}

.v27-size-control input[type="number"]{
  width:94px;
  height:52px;
  border:1px solid #d9d9d9;
  border-radius:8px;
  background:#fff;
  text-align:center;
  font-size:19px;
  font-weight:800;
  color:#111;
  padding:0 8px;
}

.v27-style-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  margin-top:22px;
}

@media(max-width:980px){
  .v27-column-labels{
    display:none;
  }
  .v27-style-row{
    grid-template-columns:1fr;
  }
  .v27-size-control input[type="number"]{
    width:130px;
  }
}

/* Oculta restos visuales del módulo viejo si el navegador tenía caché visual */
.style-admin-grid,
.style-controls,
.style-preview{
  display:none !important;
}


/* ===== V28: aplicación real de estilos en portada y tarjetas ===== */
:root{
  --v28-menu-font: "Inter", "Segoe UI", Arial, sans-serif;
  --v28-menu-size: 14px;
  --v28-headline-font: "Inter", "Segoe UI", Arial, sans-serif;
  --v28-headline-size: 42px;
  --v28-subtitle-font: "Inter", "Segoe UI", Arial, sans-serif;
  --v28-subtitle-size: 18px;
  --v28-cardtop-font: "Cormorant Garamond", Georgia, serif;
  --v28-cardtop-size: 24px;
  --v28-cardmain-font: "Fraunces", Georgia, serif;
  --v28-cardmain-size: 56px;
  --v28-button-font: "Cormorant Garamond", Georgia, serif;
  --v28-button-size: 15px;
}

/* Aplicación pública */
.menu a{
  font-family: var(--v28-menu-font) !important;
  font-size: var(--v28-menu-size) !important;
}

.catalog-reference-head h2{
  font-family: var(--v28-headline-font) !important;
  font-size: var(--v28-headline-size) !important;
}

.catalog-reference-head p{
  font-family: var(--v28-subtitle-font) !important;
  font-size: var(--v28-subtitle-size) !important;
}

.first-course-row .featured-card .course-body h3{
  font-family: var(--v28-cardtop-font) !important;
  font-size: var(--v28-cardtop-size) !important;
}

.first-course-row .featured-card .course-subtitle{
  font-family: var(--v28-cardmain-font) !important;
  font-size: var(--v28-cardmain-size) !important;
}

.first-course-row .featured-card .interest{
  font-family: var(--v28-button-font) !important;
  font-size: var(--v28-button-size) !important;
}

/* Vista previa del panel */
.v27-menu-preview{
  font-family: var(--v28-menu-font) !important;
  font-size: var(--v28-menu-size) !important;
}

.v27-headline-preview{
  font-family: var(--v28-headline-font) !important;
  font-size: min(var(--v28-headline-size), 34px) !important;
}

.v27-subtitle-preview{
  font-family: var(--v28-subtitle-font) !important;
  font-size: var(--v28-subtitle-size) !important;
}

.v27-cardtop-preview{
  font-family: var(--v28-cardtop-font) !important;
  font-size: var(--v28-cardtop-size) !important;
}

.v27-cardmain-preview{
  font-family: var(--v28-cardmain-font) !important;
  font-size: min(var(--v28-cardmain-size), 44px) !important;
}

.v27-button-preview{
  font-family: var(--v28-button-font) !important;
  font-size: var(--v28-button-size) !important;
}


/* ===== V31 ajustes portada, favicon y hero full ===== */
.hero-full{
  min-height: 520px;
  background-size: cover;
  background-position: center center;
  display:flex;
  align-items:flex-end;
  padding: 84px 0 76px;
}
.hero-full-inner{width:min(var(--max), calc(100% - 48px));margin:auto;display:flex;align-items:flex-end;}
.hero-copy{max-width:760px;color:#fff;}
.hero-copy h1{color:#fff;font-size:clamp(40px,5vw,64px);margin:18px 0 12px;max-width:820px;}
.hero-copy p{color:rgba(255,255,255,.92);font-size:20px;line-height:1.55;max-width:700px;margin:0;}
.features-overlap{margin-top:-52px !important;}

/* menos espacio entre tarjetas principales */
.first-course-row{gap:16px !important;max-width:1240px !important;margin:0 auto 46px !important;}
.first-course-row .featured-card{width:95% !important;justify-self:center;min-height:520px !important;border-radius:6px !important;}
.first-course-row .featured-card .thumb{aspect-ratio:400/280 !important;height:auto !important;}
.first-course-row .featured-card .course-body{min-height:212px !important;padding:22px 20px 16px !important;gap:10px !important;}
.first-course-row .featured-card .course-body h3{font-size:24px !important;line-height:1.08 !important;font-family:var(--ui) !important;font-weight:500 !important;letter-spacing:-.01em !important;color:#162238 !important;}
.first-course-row .featured-card .course-subtitle{font-size:42px !important;line-height:.98 !important;min-height:auto !important;margin-top:-2px !important;}
.first-course-row .featured-card .course-card-text{font-family:var(--ui) !important;font-size:14px !important;line-height:1.5 !important;color:#4d596a !important;min-height:42px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.first-course-row .featured-card .card-bottom{padding-top:8px !important;display:flex !important;align-items:center !important;justify-content:space-between !important;gap:12px !important;width:100%;margin-top:auto !important;}
.first-course-row .featured-card .reserve-count{display:inline-flex;align-items:center;gap:6px;border:1px solid #cfd9d3;border-radius:999px;background:#f3f8f4;color:#11673a;font-family:var(--ui);font-size:13px;font-weight:700;padding:7px 12px;white-space:nowrap;}
.first-course-row .featured-card .reserve-count strong{font-size:15px;color:#0b5d33;}
.first-course-row .featured-card .interest{font-family:var(--display) !important;font-size:17px !important;color:var(--green) !important;font-weight:700 !important;margin-left:auto;}
.first-course-row .featured-card .mini-logo{display:none !important;}
.course-extra-text{font-size:17px;line-height:1.6;color:#4c5968;margin-top:-6px;}

@media (max-width:1100px){
  .hero-full{min-height:460px;padding:72px 0 60px;}
  .first-course-row{gap:14px !important;}
  .first-course-row .featured-card{width:96% !important;min-height:500px !important;}
  .first-course-row .featured-card .course-body{min-height:206px !important;padding:20px 18px 16px !important;}
  .first-course-row .featured-card .course-subtitle{font-size:38px !important;}
}
@media (max-width:780px){
  .hero-full{min-height:380px;padding:56px 0 44px;background-position:center center;}
  .hero-copy h1{font-size:34px;}
  .hero-copy p{font-size:17px;}
  .features-overlap{margin-top:-24px !important;}
  .first-course-row .featured-card{width:100% !important;min-height:auto !important;}
  .first-course-row .featured-card .course-body{min-height:0 !important;padding:18px 16px 16px !important;}
  .first-course-row .featured-card .course-subtitle{font-size:34px !important;}
}


/* ===== V32 bloque secundario de cursos ===== */
.rest-course-grid .course-body{
  display:flex;
  flex-direction:column;
  min-height:214px;
}
.rest-course-grid .course-body h3{
  margin:0 0 6px;
}
.rest-course-grid .course-subtitle{
  min-height:auto;
  margin-bottom:8px;
}
.rest-course-grid .course-card-text{
  color:#4f5d6f;
  font-family:var(--ui);
  font-size:14px;
  line-height:1.5;
  margin-top:2px;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:62px;
}
.rest-course-grid .card-bottom{
  margin-top:auto;
  padding-top:14px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
.v27-subsection-title{
  margin:10px 0 6px;
  padding:16px 18px;
  background:#f7f8fa;
  border:1px dashed #cfd5df;
  border-radius:10px;
}
.v27-subsection-title h4{
  margin:0 0 6px;
  color:#1f2a44;
  font-size:18px;
}
.v27-subsection-title p{
  margin:0;
  color:#667085;
  font-size:14px;
  line-height:1.45;
}
.v27-other-top-preview{font-weight:700;color:#111;}
.v27-other-main-preview{color:#2f3136;line-height:1.15;}
.v27-other-desc-preview{color:#667085;line-height:1.45;max-width:460px;}
.v27-other-button-preview{color:var(--green);font-weight:700;}


/* ===== V33: imágenes del bloque secundario en proporción/tamaño original ===== */
/* Aplica a los cursos que están después de los 3 principales */
.rest-course-grid .ref-card .thumb{
  height:auto !important;
  min-height:0 !important;
  aspect-ratio:auto !important;
  background:#fff !important;
  display:flex !important;
  align-items:flex-start !important;
  justify-content:center !important;
  overflow:hidden !important;
}

.rest-course-grid .ref-card .thumb img{
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  object-fit:contain !important;
  object-position:center top !important;
  display:block !important;
}

/* Evita que una imagen pequeña se deforme verticalmente */
.rest-course-grid .ref-card{
  align-self:start;
}

/* Mantiene la tarjeta ordenada aunque la imagen tenga otra altura */
.rest-course-grid .ref-card .course-body{
  flex:1;
}


/* ===== V34: espacio dinámico entre título y subtítulo en bloque secundario ===== */
.rest-course-grid .course-body{
  gap: 0 !important;
}
.rest-course-grid .course-body h3{
  margin: 0 0 8px !important;
  min-height: auto !important;
}
.rest-course-grid .course-subtitle{
  display: block;
  margin: 0 0 10px !important;
  min-height: auto !important;
}
.rest-course-grid .course-subtitle:empty{
  display: none !important;
  margin: 0 !important;
}
.rest-course-grid .course-card-text{
  margin-top: 0 !important;
}


/* ===== V35: tarjetas compactas, botón alineado y líneas configurables ===== */
.v27-double-control{display:flex;align-items:flex-start;gap:8px;}
.v27-mini-label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:800;color:#425466;font-family:var(--ui);}
.v27-double-control .v27-mini-label input[type="number"]{width:74px;height:52px;}
.v27-carddesc-preview,.v27-other-desc-preview{max-width:460px;}

.first-course-row{gap:14px !important;}
.rest-course-grid{gap:14px !important;}

.first-course-row .featured-card .course-body,
.rest-course-grid .course-body{display:flex;flex-direction:column;gap:0 !important;}

.first-course-row .featured-card .course-body{min-height:180px !important;padding:18px 18px 14px !important;}
.first-course-row .featured-card .course-body h3{margin:0 0 8px !important;min-height:auto !important;}
.first-course-row .featured-card .course-subtitle{display:block;margin:0 0 10px !important;min-height:auto !important;}
.first-course-row .featured-card .course-subtitle:empty{display:none !important;margin:0 !important;}
.first-course-row .featured-card .course-card-text{margin:0 !important;min-height:0 !important;display:-webkit-box !important;-webkit-line-clamp:var(--featured-desc-lines,2) !important;-webkit-box-orient:vertical !important;overflow:hidden !important;}
.first-course-row .featured-card .card-bottom{padding-top:10px !important;display:flex !important;align-items:center !important;justify-content:space-between !important;gap:10px !important;width:100%;margin-top:auto !important;}
.first-course-row .featured-card .card-bottom > span:empty{display:none !important;}
.first-course-row .featured-card .interest{margin-left:auto !important;display:inline-flex !important;align-items:center !important;line-height:1.1 !important;}

.rest-course-grid .course-body{min-height:168px !important;padding:16px 16px 14px !important;}
.rest-course-grid .course-body h3{margin:0 0 8px !important;min-height:auto !important;}
.rest-course-grid .course-subtitle{display:block;margin:0 0 8px !important;min-height:auto !important;}
.rest-course-grid .course-subtitle:empty{display:none !important;margin:0 !important;}
.rest-course-grid .course-card-text{margin:0 !important;min-height:0 !important;display:-webkit-box !important;-webkit-line-clamp:var(--other-desc-lines,3) !important;-webkit-box-orient:vertical !important;overflow:hidden !important;}
.rest-course-grid .card-bottom{padding-top:10px !important;display:flex !important;align-items:center !important;justify-content:space-between !important;gap:10px !important;width:100%;margin-top:auto !important;}
.rest-course-grid .card-bottom > span:empty{display:none !important;}
.rest-course-grid .interest{margin-left:auto !important;display:inline-flex !important;align-items:center !important;line-height:1.1 !important;}

@media(max-width:980px){
  .v27-double-control{justify-content:flex-start;flex-wrap:wrap;}
}


/* ===== V36: estilos para encabezados de bloques informativos ===== */
.about-section .panel,
.about-panel{
  border-radius:10px;
}
.about-section .badge,
.content-section .badge,
.band .badge{
  letter-spacing:.10em;
}
.about-section h2,
.content-section h2,
.band .panel h2{
  line-height:1.08 !important;
  letter-spacing:-.035em;
}
.about-section p,
.content-section p,
.band .panel p{
  line-height:1.55 !important;
}
.share-label,
.share-inline strong{
  font-weight:800;
  color:#1f2a44;
}
.v27-section-badge-preview{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:max-content;
  border:1px solid rgba(7,134,59,.18);
  background:#eef8f2;
  color:var(--green);
  border-radius:999px;
  padding:6px 12px;
  font-weight:800;
  letter-spacing:.10em;
}
.v27-section-title-preview{
  color:#20345c;
  font-weight:800;
  line-height:1.08;
  letter-spacing:-.03em;
}
.v27-section-text-preview{
  color:#334155;
  line-height:1.45;
  max-width:620px;
}
.v27-share-label-preview{
  color:#1f2a44;
  font-weight:800;
}


/* ===== V37: división entre bloque de 3 cursos y bloque de 4+ cursos ===== */
.course-divider-band{
  margin: 34px 0 26px;
}
.course-divider-band .two{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:28px;
  align-items:stretch;
}
.course-divider-band .panel{
  background:#fff;
  border:1px solid #d9dee8;
  border-radius:12px;
  box-shadow:0 6px 20px rgba(15,23,42,.05);
  padding:38px 40px;
}
.course-divider-band .panel h2{
  margin:8px 0 18px;
}
.course-divider-band .panel p{
  margin:0;
}
.course-divider-band .share-inline{
  margin-top:26px;
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.course-divider-band .social{
  margin-top:24px;
}
.course-divider-band .btn.primary{
  margin-top:22px;
}
@media (max-width: 980px){
  .course-divider-band .two{grid-template-columns:1fr;}
  .course-divider-band .panel{padding:26px 24px;}
}


/* ===== V38: divisor visual oscuro entre bloques de cursos ===== */
.promo-divider{
  position:relative;
  margin:34px 0 28px;
  padding:44px 38px;
  border-radius:28px;
  overflow:hidden;
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:34px;
  color:var(--promo-text,#eef4ff);
  background:
    radial-gradient(circle at 92% 10%, rgba(78,109,197,.26) 0, rgba(78,109,197,.26) 90px, transparent 91px),
    radial-gradient(circle at 20% 110%, rgba(21,82,255,.18) 0, rgba(21,82,255,.18) 180px, transparent 181px),
    linear-gradient(115deg, var(--promo-bg-start,#071c4f) 0%, #02153b 38%, var(--promo-bg-end,#041229) 72%, #071635 100%);
  box-shadow:0 18px 44px rgba(4,13,34,.22);
}
.promo-divider:before{
  content:'';
  position:absolute; inset:0;
  background:
    radial-gradient(circle at 74% 24%, rgba(255,255,255,.07), transparent 22%),
    linear-gradient(135deg, transparent 58%, rgba(76,121,255,.08) 58%, rgba(76,121,255,.08) 59%, transparent 59%),
    linear-gradient(160deg, transparent 68%, rgba(76,121,255,.06) 68%, rgba(76,121,255,.06) 69%, transparent 69%);
  pointer-events:none;
}
.promo-copy, .promo-cards{position:relative; z-index:1;}
.promo-copy{
  display:flex; flex-direction:column; justify-content:center; align-items:flex-start;
  padding:18px 10px 18px 6px;
}
.promo-divider .badge{
  display:inline-flex; align-items:center; gap:10px;
  padding:12px 22px; border:1px solid rgba(99,146,255,.32);
  border-radius:999px; background:rgba(6,18,45,.28); color:var(--promo-badge,#65f3ba);
  text-transform:uppercase; letter-spacing:.05em; font-weight:800;
}
.promo-copy h2{
  margin:28px 0 16px; max-width:560px;
  font-size:clamp(38px,4.1vw,72px); line-height:.96; letter-spacing:-.04em;
  color:var(--promo-title,#ffffff); font-weight:800;
}
.promo-line{display:block; width:68px; height:6px; border-radius:999px; background:var(--promo-accent,#63f0c3); margin:0 0 22px;}
.promo-copy p{
  max-width:540px; color:rgba(233,241,255,.86); font-size:19px; line-height:1.65; margin:0 0 28px;
}
.promo-link{
  color:var(--promo-accent,#63f0c3); font-weight:800; text-decoration:none; font-size:18px; display:inline-flex; gap:10px; align-items:center;
}
.promo-link span{font-size:28px; line-height:1; transform:translateY(-1px);}
.promo-cards{
  display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:18px; align-content:center;
}
.promo-course-card{
  background:linear-gradient(180deg, rgba(255,255,255,.11), rgba(255,255,255,.07));
  border:1px solid rgba(159,182,255,.22); border-radius:22px; padding:12px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.promo-thumb{display:block; aspect-ratio:1.1/1; overflow:hidden; border-radius:18px; background:#0c1732;}
.promo-thumb img{width:100%; height:100%; object-fit:cover; display:block;}
.promo-card-copy{padding:18px 8px 10px;}
.promo-card-copy h3{margin:0 0 10px; color:#fff; font-size:24px; line-height:1.05; font-weight:800;}
.promo-card-copy p{margin:0; color:rgba(231,239,255,.82); font-size:15px; line-height:1.45;}
@media (max-width: 1180px){
  .promo-divider{grid-template-columns:1fr; gap:26px;}
}
@media (max-width: 860px){
  .promo-divider{padding:28px 22px; border-radius:22px;}
  .promo-cards{grid-template-columns:1fr;}
  .promo-copy h2{font-size:38px;}
  .promo-copy p{font-size:16px;}
}


/* ===== V39: mantenimiento del bloque de reservaciones de portada ===== */
#tab-portada .form-grid label strong{
  color:#1f2a44;
  font-size:18px;
}
#tab-portada textarea#reservationText{
  min-height:100px;
}


/* ===== V41: portada con imagen editable desde el CMS ===== */
.hero-full{
  min-height:560px;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
}
.hero-copy{
  max-width:760px;
}
.hero-copy .badge{
  background:rgba(255,255,255,.08);
  border-color:rgba(99,240,195,.35);
  color:#63f0c3;
}
.hero-copy h1{
  color:#fff !important;
  text-shadow:0 10px 32px rgba(0,0,0,.28);
}
.hero-copy p{
  color:rgba(255,255,255,.9) !important;
}
@media(max-width:780px){
  .hero-full{
    min-height:420px;
    background-position:center center !important;
  }
}


/* ===== V42: portada nueva visible y sin depender de datos viejos ===== */
.hero-full{
  min-height:620px !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
}
.hero-copy{
  max-width:760px !important;
}
.hero-copy h1{
  color:#fff !important;
  font-size:clamp(46px,5.8vw,78px) !important;
  line-height:1.02 !important;
  text-shadow:0 16px 42px rgba(0,0,0,.34);
}
.hero-copy p{
  color:rgba(255,255,255,.92) !important;
  font-size:21px !important;
}
.hero-copy .badge{
  background:rgba(255,255,255,.08) !important;
  border-color:rgba(99,240,195,.36) !important;
  color:#63f0c3 !important;
}


/* ===== V43: portada limpia, sin textos encima ===== */
.hero-clean,
.hero-full.hero-clean{
  min-height:620px !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  display:block !important;
  padding:0 !important;
}
.hero-clean .hero-copy,
.hero-clean .hero-full-inner,
.hero-clean h1,
.hero-clean p,
.hero-clean .badge{
  display:none !important;
}
.hero-maintenance-title{
  background:#f4fbf7;
  border:1px solid #cdebd9;
  border-radius:10px;
  padding:16px !important;
}
.hero-maintenance-title strong{
  color:#0f7f44;
  display:block;
  font-size:18px;
}
.hero-maintenance-title small{
  display:block;
  margin-top:6px;
  color:#516070;
}

/* ===== V44 COMPLETO: portada limpia y editable desde CMS ===== */
.hero-clean,.hero-full.hero-clean{
  min-height:620px !important;
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  display:block !important;
  padding:0 !important;
}
.hero-clean .hero-copy,.hero-clean .hero-full-inner,.hero-clean h1,.hero-clean p,.hero-clean .badge{
  display:none !important;
}
.hero-maintenance-title{
  background:#f4fbf7;
  border:1px solid #cdebd9;
  border-radius:10px;
  padding:16px !important;
}
.hero-maintenance-title strong{
  color:#0f7f44;
  display:block;
  font-size:18px;
}
.hero-maintenance-title small{
  display:block;
  margin-top:6px;
  color:#516070;
}

/* V45: reducir 50% encabezados del módulo Cursos publicados */
.admin-section#tab-cursos .panel h2{font-size:21px !important;line-height:1.15 !important;margin-bottom:14px !important;}

/* ===== V46: mantenimiento de los 4 cuadros amarillos ===== */
.feature-maintenance-title{
  background:#fff8dc;
  border:1px solid #efd36a;
  border-radius:10px;
  padding:16px !important;
}
.feature-maintenance-title strong{
  display:block;
  color:#1f2a44;
  font-size:18px;
}
.feature-maintenance-title small{
  display:block;
  color:#665400;
  margin-top:6px;
}
.feature-editor-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.feature-edit-card{
  background:#fff;
  border:1px solid #ddd5b8;
  border-radius:12px;
  padding:16px;
  display:grid;
  gap:10px;
}
.feature-edit-card h3{
  font-family:var(--ui);
  font-size:18px;
  margin:0;
  color:#1f2a44;
}
.feature-edit-card label{
  display:grid;
  gap:6px;
  font-weight:700;
}
.feature-edit-card input,
.feature-edit-card textarea{
  border:1px solid var(--line);
  border-radius:8px;
  padding:10px;
  font:inherit;
}
.feature-edit-card textarea{
  min-height:90px;
}
.feature-color-row{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
}
.feature-color-row input[type="color"]{
  height:42px;
  padding:4px;
}
.feature-mini-preview{
  border-radius:10px;
  padding:14px;
  min-height:140px;
}
.feature-mini-icon{
  font-size:28px;
  margin-bottom:10px;
}
.feature-mini-preview strong{
  display:block;
  font-size:16px;
  line-height:1.25;
  margin-bottom:8px;
}
.feature-mini-preview p{
  margin:0;
  font-size:14px;
  line-height:1.45;
}
@media(max-width:900px){
  .feature-editor-grid{grid-template-columns:1fr;}
  .feature-color-row{grid-template-columns:1fr;}
}

/* ===== V47: bloques de portada y footer profesional editable ===== */
.admin-help{
  color:#667085;
  line-height:1.5;
  margin-top:-8px;
  margin-bottom:18px;
}
.footer-admin-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.footer-admin-section{
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  padding:18px;
}
.footer-admin-section h3,
.footer-preview-admin h3{
  font-family:var(--ui);
  font-size:20px;
  color:#1f2a44;
  margin:0 0 14px;
}
.footer-columns-editor{
  display:grid;
  gap:14px;
  margin-top:16px;
}
.footer-column-edit{
  border:1px dashed #cfd6df;
  border-radius:10px;
  padding:14px;
  background:#f8fafc;
}
.footer-column-edit h4{
  margin:0 0 10px;
  color:#1f2a44;
  font-size:16px;
}
.footer-column-edit label{
  display:grid;
  gap:6px;
  font-weight:700;
  margin-bottom:10px;
}
.footer-column-edit input,
.footer-column-edit textarea{
  border:1px solid var(--line);
  border-radius:8px;
  padding:10px;
  font:inherit;
}
.footer-column-edit textarea{
  min-height:120px;
}
.footer-preview-admin{
  grid-column:1/-1;
  border:1px solid var(--line);
  border-radius:12px;
  padding:18px;
  background:#fff;
}
.site-footer-pro,
.footer-pro{
  background:var(--footer-bg,#1f2230);
  color:var(--footer-link,#f2f4f8);
}
.footer-pro{
  padding:44px 0 0;
}
.footer-pro.preview-mode{
  padding:26px 24px 0;
  border-radius:12px;
  overflow:hidden;
}
.footer-columns{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:46px;
  padding-bottom:44px;
}
.footer-col h3{
  font-family:var(--ui);
  font-size:var(--footer-title-size,17px);
  color:var(--footer-title,#fff);
  margin:0 0 20px;
  font-weight:800;
  letter-spacing:.01em;
}
.footer-col a{
  display:block;
  color:var(--footer-link,#f2f4f8);
  font-size:var(--footer-link-size,16px);
  line-height:1.45;
  margin:0 0 13px;
}
.footer-bottom-pro{
  border-top:1px solid var(--footer-border,#6d7280);
  color:var(--footer-bottom,#fff);
  display:grid;
  grid-template-columns:auto auto 1fr auto;
  gap:28px;
  align-items:center;
  padding:24px 0;
  font-size:var(--footer-bottom-size,16px);
}
.footer-brand-word{
  font-size:30px;
  font-weight:900;
  letter-spacing:-.04em;
}
.footer-cookie{
  text-align:center;
}
@media(max-width:1000px){
  .footer-admin-grid{grid-template-columns:1fr;}
  .footer-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;}
  .footer-bottom-pro{grid-template-columns:1fr;gap:12px;text-align:left;}
  .footer-cookie{text-align:left;}
}
@media(max-width:620px){
  .footer-columns{grid-template-columns:1fr;}
}

/* ===== V48: Admin uniforme, acordeones y menú activo ===== */
.admin-layout{
  align-items:start;
}
.admin-menu{
  border-radius:14px !important;
  padding:22px !important;
}
.admin-menu .btn,
.admin-menu a.btn{
  width:100%;
  min-height:58px;
  border-radius:12px !important;
  justify-content:flex-start;
  padding:16px 20px !important;
  font-size:18px !important;
  font-weight:800 !important;
  letter-spacing:.01em;
  margin-bottom:10px !important;
  background:#fff;
  color:#1f2a44;
  border:1px solid var(--line);
}
.admin-menu .btn.primary,
.admin-menu .btn.is-active{
  background:var(--green) !important;
  border-color:var(--green) !important;
  color:#fff !important;
}
.admin-section .panel,
.admin-section .v27-style-module{
  border-radius:14px !important;
  border:1px solid #d8dde8 !important;
  box-shadow:0 8px 24px rgba(15,23,42,.035);
}
.admin-section .panel h2,
.admin-section .v27-style-head h2,
.admin-section > .panel > h2{
  font-family:var(--ui) !important;
  font-size:32px !important;
  line-height:1.15 !important;
  letter-spacing:-.02em !important;
  font-weight:800 !important;
  color:#1f2a44 !important;
  margin:0 0 14px !important;
}
.admin-section .panel p,
.admin-section .v27-style-head p,
.admin-help{
  font-size:16px !important;
  line-height:1.55 !important;
  color:#667085 !important;
  margin-bottom:18px !important;
}
.admin-section label{
  color:#1f2a44;
  font-size:15px;
  font-weight:800;
}
.admin-section input,
.admin-section textarea,
.admin-section select{
  font-size:16px !important;
  font-weight:600;
}
.cms-accordion{
  padding:0 !important;
  overflow:hidden;
}
.cms-accordion-head{
  width:100%;
  border:0;
  background:#fff;
  padding:22px 26px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  text-align:left;
  border-bottom:1px solid transparent;
}
.cms-accordion-head strong{
  display:block;
  color:#1f2a44;
  font-size:26px;
  line-height:1.15;
  font-weight:850;
  letter-spacing:-.02em;
}
.cms-accordion-head small{
  display:block;
  margin-top:5px;
  color:#667085;
  font-size:14px;
  line-height:1.4;
  font-weight:600;
}
.cms-accordion-head b{
  width:42px;
  height:42px;
  border-radius:999px;
  background:#eef8f2;
  color:var(--green);
  display:grid;
  place-items:center;
  font-size:26px;
  line-height:1;
}
.cms-accordion.open .cms-accordion-head{
  border-bottom-color:#e3e7ef;
  background:#fbfcfe;
}
.cms-accordion-body{
  display:none;
  padding:24px 26px 28px;
}
.cms-accordion.open .cms-accordion-body{
  display:block;
}
.cms-accordion-body > h2,
.cms-accordion-body > .v27-style-head{
  display:none !important;
}
#tab-cursos .two{
  gap:18px;
}
#tab-cursos .panel h2,
#tab-reservas .panel h2,
#tab-datos .panel h2{
  font-size:32px !important;
}
@media(max-width:900px){
  .cms-accordion-head strong{font-size:22px;}
  .admin-menu .btn,.admin-menu a.btn{font-size:16px !important;}
}

/* ===== V49: footer visual mejorado, detalles internos y banner editable ===== */
.cms-accordion,.cms-ready{
  padding:26px !important;
  overflow:visible !important;
}
.cms-accordion-head{
  display:none !important;
}
.cms-accordion-body{
  display:block !important;
  padding:0 !important;
}
.cms-accordion-body > h2,
.cms-accordion-body > .v27-style-head{
  display:block !important;
}
.cms-details{
  border:1px solid #dce3ee;
  border-radius:14px;
  background:#fff;
  margin:14px 0;
  overflow:hidden;
}
.cms-details summary{
  cursor:pointer;
  list-style:none;
  padding:18px 22px;
  background:#f8fafc;
  color:#1f2a44;
  font-size:20px;
  font-weight:850;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.cms-details summary::-webkit-details-marker{display:none;}
.cms-details summary:after{
  content:"+";
  width:34px;
  height:34px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:#eef8f2;
  color:var(--green);
  font-size:24px;
}
.cms-details[open] summary:after{content:"−";}
.cms-details > .form-grid,
.cms-details > .footer-columns-editor,
.cms-details > .admin-help,
.cms-details > #footerAdminPreview{
  padding:20px 22px 24px;
}
.site-footer-pro{
  background:var(--footer-bg,#171b2a);
}
.footer-pro{
  padding:54px 0 0;
}
.footer-columns{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:52px;
  padding-bottom:52px;
}
.footer-col h3{
  color:var(--footer-title,#fff);
  font-size:var(--footer-title-size,17px);
  font-weight:850;
  margin:0 0 22px;
  letter-spacing:.01em;
}
.footer-col a{
  color:var(--footer-link,#e9edf7);
  display:block;
  font-size:var(--footer-link-size,16px);
  line-height:1.45;
  margin:0 0 13px;
  opacity:.94;
  transition:opacity .15s ease, transform .15s ease;
}
.footer-col a:hover{
  opacity:1;
  transform:translateX(3px);
  text-decoration:underline;
}
.footer-bottom-pro{
  border-top:1px solid var(--footer-border,rgba(255,255,255,.22));
  color:var(--footer-bottom,#fff);
  display:grid;
  grid-template-columns:auto auto 1fr auto;
  gap:30px;
  align-items:center;
  padding:26px 0;
  font-size:var(--footer-bottom-size,15px);
}
.footer-brand-word{
  color:var(--footer-bottom,#fff);
  font-size:34px;
  font-weight:950;
  letter-spacing:-.045em;
}
.footer-cookie{
  text-align:center;
  color:var(--footer-bottom,#fff);
}
.footer-lang{
  justify-self:end;
}
.footer-pro.preview-mode{
  padding:30px 26px 0;
  border-radius:16px;
  overflow:hidden;
}
.footer-column-edit textarea{
  font-family:ui-monospace, SFMono-Regular, Consolas, monospace;
  min-height:150px;
}
.promo-divider{
  background:
    radial-gradient(circle at 92% 10%, rgba(78,109,197,.26) 0, rgba(78,109,197,.26) 90px, transparent 91px),
    radial-gradient(circle at 20% 110%, rgba(21,82,255,.18) 0, rgba(21,82,255,.18) 180px, transparent 181px),
    linear-gradient(115deg, var(--promo-bg-start,#071c4f) 0%, #02153b 38%, var(--promo-bg-end,#041229) 72%, #071635 100%) !important;
}
.promo-copy h2{color:var(--promo-title,#fff) !important;}
.promo-copy p{color:var(--promo-text,rgba(233,241,255,.88)) !important;}
.promo-divider .badge{color:var(--promo-badge,#63f0c3) !important;}
.promo-line{background:var(--promo-accent,#63f0c3) !important;}
.promo-link{color:var(--promo-accent,#63f0c3) !important;}
@media(max-width:1000px){
  .footer-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;}
  .footer-bottom-pro{grid-template-columns:1fr;gap:12px;}
  .footer-cookie{text-align:left;}
  .footer-lang{justify-self:start;}
}
@media(max-width:620px){
  .footer-columns{grid-template-columns:1fr;}
}

/* ===== V50: editor columnas banner y páginas legales ===== */
.promo-items-editor{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  padding:20px 22px 24px;
}
.promo-item-edit{
  border:1px solid #dce3ee;
  border-radius:14px;
  padding:14px;
  background:#f8fafc;
  display:grid;
  gap:10px;
}
.promo-item-edit h4{
  margin:0;
  color:#1f2a44;
  font-size:18px;
}
.promo-item-edit label{
  display:grid;
  gap:6px;
}
.promo-item-edit input,
.promo-item-edit textarea{
  border:1px solid var(--line);
  border-radius:8px;
  padding:10px;
  font:inherit;
}
.promo-item-edit textarea{
  min-height:100px;
}
.promo-item-preview{
  border-radius:12px;
  background:#17243a;
  color:#fff;
  padding:12px;
  min-height:210px;
}
.promo-item-preview img{
  width:100%;
  height:90px;
  object-fit:cover;
  border-radius:10px;
  display:block;
  margin-bottom:12px;
}
.promo-item-preview strong{
  display:block;
  font-size:18px;
  margin-bottom:8px;
}
.promo-item-preview p{
  margin:0;
  color:#dce5f6;
  line-height:1.35;
}
.page-panel h1{
  font-family:var(--ui);
  font-size:clamp(36px,5vw,58px);
  font-weight:850;
  color:#1f2a44;
  margin:18px 0;
}
.page-panel p{
  font-size:20px;
  line-height:1.75;
  max-width:960px;
}
.sitemap-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin:28px 0;
}
.sitemap-list a{
  border:1px solid var(--line);
  border-radius:10px;
  padding:14px 16px;
  background:#fff;
  color:#1f2a44;
  font-weight:800;
}
@media(max-width:900px){
  .promo-items-editor{grid-template-columns:1fr;}
  .sitemap-list{grid-template-columns:1fr;}
}

/* ===== V51: barra común tipo Udemy para páginas legales/footer ===== */
.legal-topbar{background:#fff !important;height:84px;border-top:8px solid #d8f3f4;border-bottom:1px solid #e3e6ec;}
.legal-topbar .logo{width:170px;}
.legal-menu-top{align-items:center;gap:28px;font-weight:500;letter-spacing:0;font-size:16px;}
.legal-menu-top a{padding:0;color:#353849;font-weight:500;}
.legal-menu-top a:after{display:none;}
.legal-search{display:flex;align-items:center;gap:10px;min-width:360px;max-width:460px;flex:1;border:1px solid #9aa0b5;border-radius:999px;padding:10px 16px;background:#fff;}
.legal-search input{border:0;outline:0;font:inherit;width:100%;color:#353849;}
.legal-search span{color:#7b8192;font-size:22px;}
.legal-layout{display:grid;grid-template-columns:360px minmax(0,1fr);min-height:calc(100vh - 84px);background:#fff;}
.legal-sidebar{border-right:1px solid #d9dde7;background:#fff;position:sticky;top:84px;align-self:start;height:calc(100vh - 84px);overflow:auto;}
.legal-sidebar-title{min-height:150px;display:flex;align-items:center;gap:18px;padding:32px 26px;border-bottom:1px solid #d9dde7;color:#24263a;}
.legal-sidebar-title strong{font-size:26px;line-height:1.1;font-weight:850;}
.legal-mark{color:#7c3aed;font-size:34px;font-weight:900;}
.legal-side-group{border-bottom:1px solid #e7e9ef;}
.legal-side-group summary{cursor:pointer;list-style:none;padding:22px 30px;font-size:19px;font-weight:850;color:#24263a;display:flex;justify-content:space-between;align-items:center;}
.legal-side-group summary::-webkit-details-marker{display:none;}
.legal-side-group summary:after{content:"⌄";font-size:22px;}
.legal-side-group[open] summary:after{content:"⌃";}
.legal-side-group nav{padding:0 0 16px;}
.legal-side-group a{display:block;padding:13px 32px;color:#2f3142;font-size:18px;line-height:1.35;}
.legal-side-group a:hover,.legal-side-group a.active{background:#f4f5f8;color:#0b6d3c;font-weight:800;}
.legal-content{padding:42px 56px 80px;max-width:1040px;}
.legal-back{display:inline-flex;font-size:38px;color:#24263a;margin-bottom:18px;}
.legal-content h1{font-family:var(--ui);font-size:clamp(36px,5vw,58px);font-weight:850;color:#23263a;letter-spacing:-.035em;margin:20px 0 28px;}
.legal-content h2{font-family:var(--ui);font-size:28px;color:#23263a;font-weight:850;margin:34px 0 12px;}
.legal-content p{font-size:20px;line-height:1.75;color:#34384b;margin:0 0 20px;}
.legal-content .badge{background:#f1fff7;color:#0b7a43;}
@media(max-width:1100px){.legal-menu-top{gap:14px}.legal-search{min-width:240px}.legal-layout{grid-template-columns:300px minmax(0,1fr)}}
@media(max-width:860px){.legal-topbar{height:auto;padding:12px 0}.legal-topbar .nav{flex-wrap:wrap}.legal-menu-top{width:100%;flex-wrap:wrap}.legal-search{min-width:100%;order:5}.legal-layout{grid-template-columns:1fr}.legal-sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid #d9dde7}.legal-sidebar-title{min-height:auto}.legal-content{padding:32px 24px 60px}}

/* ===== V52: menú lateral legal limpio, sin encabezados de grupos ===== */
.legal-sidebar-clean .legal-sidebar-title{
  min-height:120px;
}
.legal-flat-nav{
  padding:10px 0 24px;
}
.legal-flat-nav a{
  display:block;
  padding:15px 30px;
  color:#2f3142;
  font-size:18px;
  line-height:1.35;
  border-bottom:1px solid #f0f1f4;
}
.legal-flat-nav a:hover,
.legal-flat-nav a.active{
  background:#f4f5f8;
  color:#0b6d3c;
  font-weight:850;
}
.legal-sidebar-clean .legal-side-group{
  display:none !important;
}

/* ===== V55: ajustes de estilo fijo solicitados ===== */

/* 1) Los tres cursos principales: 20% menos espacio entre uno y otro */
.first-course-row{
  gap:18px !important;
}

/* 2) Banner central: menos borde redondeado en las 3 columnitas */
.promo-course-card{
  border-radius:12px !important;
}
.promo-course-card .promo-thumb,
.promo-thumb{
  border-radius:10px !important;
}
.promo-course-card img{
  border-radius:10px !important;
}

/* 3) Segundo bloque de cursos: 4 en 4, más limpio y uniforme */
.rest-course-grid{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:22px !important;
  align-items:stretch !important;
}
.rest-course-grid .course-card{
  border-radius:10px !important;
  overflow:hidden !important;
  background:#fff !important;
  box-shadow:0 8px 22px rgba(15,23,42,.06) !important;
  border:1px solid #d9dee8 !important;
}
.rest-course-grid .thumb{
  aspect-ratio:600/360 !important;
  height:auto !important;
  background:#f7f9fb !important;
}
.rest-course-grid .thumb img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}
.rest-course-grid .course-body{
  min-height:210px !important;
  padding:24px 24px 22px !important;
  display:flex !important;
  flex-direction:column !important;
}
.rest-course-grid .course-body h3{
  margin:0 0 10px !important;
  line-height:1.08 !important;
}
.rest-course-grid .course-subtitle{
  margin-bottom:14px !important;
  line-height:1.18 !important;
}
.rest-course-grid .course-card-text{
  margin-top:0 !important;
  line-height:1.45 !important;
}
.rest-course-grid .card-bottom{
  margin-top:auto !important;
}

/* 4) Encabezados de los tres bloques de abajo: 30% menos */
#nosotros .panel h2,
#contacto .reservation-heading h2{
  font-size:calc(var(--section-title-effective, 48px) * .70) !important;
}
#nosotros .panel h2{
  line-height:1.05 !important;
}
#contacto .reservation-heading h2{
  line-height:1.08 !important;
}

/* Fallback directo por si el CMS inyecta valores grandes */
#nosotros .panel h2{
  max-font-size:42px;
  font-size:clamp(28px, 3vw, 42px) !important;
}
#contacto .reservation-heading h2{
  font-size:clamp(28px, 3vw, 42px) !important;
}

/* 5) Línea inferior del footer en una sola línea */
.footer-bottom-pro{
  grid-template-columns:auto auto auto auto !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:24px !important;
  white-space:nowrap !important;
  padding:20px 0 !important;
}
.footer-bottom-pro > *{
  white-space:nowrap !important;
}
.footer-cookie{
  text-align:center !important;
}
.footer-lang{
  justify-self:end !important;
}

/* 6) Reducir interlineado del menú del pie de página */
.footer-col h3{
  margin-bottom:14px !important;
  line-height:1.12 !important;
}
.footer-col a{
  margin-bottom:8px !important;
  line-height:1.22 !important;
}
.footer-columns{
  gap:42px !important;
  padding-bottom:34px !important;
}

/* Mejor responsive */
@media(max-width:1100px){
  .rest-course-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
  .footer-bottom-pro{
    grid-template-columns:1fr !important;
    justify-content:start !important;
    white-space:normal !important;
    gap:8px !important;
  }
  .footer-bottom-pro > *{
    white-space:normal !important;
  }
  .footer-lang{
    justify-self:start !important;
  }
}
@media(max-width:620px){
  .first-course-row,
  .rest-course-grid{
    grid-template-columns:1fr !important;
  }
}

/* ===== V56: línea final del footer al pie absoluto de la página ===== */
.site-footer-pro,
.footer-pro{
  padding-bottom:0 !important;
}
.footer-pro{
  display:flex !important;
  flex-direction:column !important;
}
.footer-columns{
  padding-bottom:34px !important;
}
.footer-bottom-pro{
  margin-top:auto !important;
  width:100% !important;
  border-top:1px solid var(--footer-border,rgba(255,255,255,.22)) !important;
  padding:18px 0 18px !important;
  display:grid !important;
  grid-template-columns:auto auto auto auto !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:28px !important;
  white-space:nowrap !important;
}
.footer-bottom-pro > *{
  white-space:nowrap !important;
}
.footer-brand-word{
  line-height:1 !important;
}
.footer-cookie{
  text-align:center !important;
}
.footer-lang{
  justify-self:end !important;
}

/* En páginas con poco contenido, empuja el footer al final visual */
body{
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
main{
  flex:1 0 auto;
}
footer{
  flex-shrink:0;
}

@media(max-width:900px){
  .footer-bottom-pro{
    grid-template-columns:1fr !important;
    justify-content:start !important;
    gap:8px !important;
    white-space:normal !important;
  }
  .footer-bottom-pro > *{
    white-space:normal !important;
  }
  .footer-lang{
    justify-self:start !important;
  }
}

/* ===== V57: ajustes finales solicitados ===== */

/* Encabezados: bajar 40% */
#nosotros .panel h2,
#contacto .reservation-heading h2{
  font-size:clamp(22px, 2.35vw, 36px) !important;
  line-height:1.08 !important;
}

/* Cuatro cuadros amarillos: siempre en una fila en escritorio y un poco más compactos */
.features-shell{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:18px !important;
}
.feature-yellow{
  min-height:300px !important;
  padding:34px 32px !important;
}
.feature-icon{
  font-size:30px !important;
  margin-bottom:18px !important;
}
.feature-yellow h3{
  font-size:20px !important;
  line-height:1.25 !important;
  margin-bottom:22px !important;
}
.feature-yellow p{
  font-size:18px !important;
  line-height:1.55 !important;
}

/* Logo real blanco en el footer final */
.footer-logo-link{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  text-decoration:none !important;
}
.footer-logo-link img{
  width:220px !important;
  max-height:58px !important;
  object-fit:contain !important;
  display:block !important;
}
.footer-logo-link span{
  display:none !important;
}

/* Línea final del footer verdaderamente al final */
.footer-bottom-pro{
  margin-top:28px !important;
  align-items:center !important;
}

/* Reducir aún más interlineado del menú del footer */
.footer-col h3{
  margin-bottom:10px !important;
  line-height:1.08 !important;
}
.footer-col a{
  line-height:1.12 !important;
  margin-bottom:6px !important;
}

/* Restaurar menú original agrupado en páginas legales */
.legal-sidebar-clean .legal-side-group{
  display:block !important;
}
.legal-flat-nav{
  display:none !important;
}

@media(max-width:1180px){
  .features-shell{
    grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
  }
}
@media(max-width:640px){
  .features-shell{
    grid-template-columns:1fr !important;
  }
  .feature-yellow{
    min-height:auto !important;
  }
  .footer-logo-link img{
    width:180px !important;
  }
}

/* ===== V58: placeholders/demo mucho más claros en todos los formularios ===== */
input::placeholder,
textarea::placeholder,
.reserve-form input::placeholder,
.reserve-form textarea::placeholder,
.form-grid input::placeholder,
.form-grid textarea::placeholder,
.admin-section input::placeholder,
.admin-section textarea::placeholder,
.contact-form input::placeholder,
.contact-form textarea::placeholder{
  color:#b8c0cc !important;
  opacity:1 !important;
  font-weight:500 !important;
}

input::-webkit-input-placeholder,
textarea::-webkit-input-placeholder{
  color:#b8c0cc !important;
  opacity:1 !important;
  font-weight:500 !important;
}

input::-moz-placeholder,
textarea::-moz-placeholder{
  color:#b8c0cc !important;
  opacity:1 !important;
  font-weight:500 !important;
}

input:-ms-input-placeholder,
textarea:-ms-input-placeholder{
  color:#b8c0cc !important;
  opacity:1 !important;
  font-weight:500 !important;
}

/* También bajamos un poco el peso visual de campos vacíos y ayudas */
.reserve-form input,
.reserve-form textarea,
.form-grid input,
.form-grid textarea{
  color:#1f2a44;
}

.reserve-form select{
  color:#1f2a44;
}

/* ===== V59: menos espacio entre bloques inferiores y sin redondeo en imágenes del banner ===== */

/* Reducir aproximadamente 50% el espacio entre el bloque Sobre nosotros/Contacto y el formulario */
#nosotros.band{
  padding-bottom:18px !important;
}
#contacto.reservation-section,
section#contacto{
  padding-top:18px !important;
}
#nosotros + #contacto,
#nosotros + .reservation-section{
  margin-top:0 !important;
}
.band + .reservation-section,
.band + section#contacto{
  margin-top:0 !important;
}

/* También compactar el espacio interno cuando estos bloques estén cerca */
#nosotros .two{
  margin-bottom:0 !important;
}
.reservation-unified{
  margin-top:0 !important;
}

/* Quitar bordes redondeados a las tres imágenes del banner central */
.promo-course-card .promo-thumb,
.promo-thumb,
.promo-course-card .promo-thumb img,
.promo-course-card img,
.promo-cards img{
  border-radius:0 !important;
}

/* Mantener las tarjetas del banner con menos redondeo, pero las imágenes totalmente rectas */
.promo-course-card{
  border-radius:10px !important;
  overflow:hidden !important;
}


/* ===== V60 footer 4 columnas + viñetas + Google for Education ===== */
.footer-columns{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:38px !important;
  align-items:start;
}
.footer-col a{
  position:relative;
  padding-left:14px;
}
.footer-col a::before{
  content:"•";
  position:absolute;
  left:0;
  top:0;
  color:var(--footer-link,#e9edf7);
  opacity:.95;
}
.footer-col-gfe{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
}
.footer-gfe-box{
  min-height:100%;
  padding-top:2px;
}
.gfe-wrap{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
}
.gfe-google{
  font-family:Arial, Helvetica, sans-serif;
  font-weight:700;
  font-size:30px;
  letter-spacing:-0.03em;
  line-height:1;
}
.gfe-sub{
  margin-top:8px;
  font-family:Arial, Helvetica, sans-serif;
  font-size:20px;
  color:#ffffff;
  font-weight:500;
  line-height:1.15;
}
.g-blue{color:#4285F4;}
.g-red{color:#EA4335;}
.g-yellow{color:#FBBC05;}
.g-green{color:#34A853;}

@media(max-width:1200px){
  .footer-columns{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:700px){
  .footer-columns{
    grid-template-columns:1fr !important;
  }
}


/* ===== V61 logo real para Google Workspace for Education en footer ===== */
.footer-columns{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}
.footer-col.google-education-col{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
.footer-col.google-education-col h3{
  margin-bottom:12px;
}
.google-education-footer-logo{
  display:block;
  width:100%;
  max-width:260px;
  height:auto;
  object-fit:contain;
  border-radius:0;
  background:transparent;
}
@media(max-width:1200px){
  .footer-columns{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:700px){
  .footer-columns{
    grid-template-columns:1fr !important;
  }
}


/* ===== V64: footer limpio con 4 columnas, sin quinta columna duplicada ===== */
.footer-columns{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}


/* ===== V65: limpieza, seguridad visual y estabilización ===== */

/* Variables base normalizadas */
:root{
  --pymes-green:#0b7a43;
  --pymes-green-2:#118c52;
  --pymes-dark:#171b2a;
  --pymes-line:#d9dee8;
  --pymes-muted:#667085;
}

/* Formularios: consistencia, placeholders claros y honeypot oculto */
.hp-field{
  position:absolute !important;
  left:-99999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  pointer-events:none !important;
}
input::placeholder,
textarea::placeholder{
  color:#c3cad5 !important;
  opacity:1 !important;
  font-weight:500 !important;
}
input:focus,
textarea:focus,
select:focus{
  outline:3px solid rgba(11,122,67,.18) !important;
  border-color:var(--pymes-green) !important;
}

/* Botones más consistentes */
.btn,
button.btn,
.reserve-form button{
  border-radius:10px !important;
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease !important;
}
.btn:hover,
button.btn:hover,
.reserve-form button:hover{
  transform:translateY(-1px);
}

/* Tarjetas de cursos más estables */
.course-card,
.featured-card,
.promo-course-card,
.feature-yellow{
  backface-visibility:hidden;
}
.rest-course-grid{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}
.first-course-row{
  gap:18px !important;
}

/* Cuatro cuadros amarillos: mantener 4 columnas en escritorio, compactos */
.features-shell{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:18px !important;
}
.feature-yellow{
  min-height:280px !important;
  padding:30px 28px !important;
}
.feature-yellow h3{
  font-size:20px !important;
  line-height:1.24 !important;
}
.feature-yellow p{
  font-size:17px !important;
  line-height:1.45 !important;
}

/* Banner central: imágenes sin redondeo y columnas consistentes */
.promo-course-card .promo-thumb,
.promo-course-card img,
.promo-cards img{
  border-radius:0 !important;
}
.promo-course-card{
  border-radius:10px !important;
}

/* Footer: 4 columnas limpias, viñetas solo en enlaces */
.footer-columns{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:34px !important;
}
.footer-col h3::before{
  content:none !important;
}
.footer-col a{
  position:relative;
  padding-left:14px;
  line-height:1.14 !important;
  margin-bottom:6px !important;
}
.footer-col a::before{
  content:"•";
  position:absolute;
  left:0;
  top:0;
  color:var(--footer-link,#e9edf7);
}
.footer-bottom-pro{
  grid-template-columns:auto auto auto auto !important;
  justify-content:space-between !important;
  align-items:center !important;
  white-space:nowrap !important;
}

/* Accesibilidad básica */
a:focus-visible,
button:focus-visible{
  outline:3px solid rgba(11,122,67,.35) !important;
  outline-offset:3px !important;
}

/* Responsive más estable */
@media(max-width:1180px){
  .rest-course-grid,
  .features-shell,
  .footer-columns{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:760px){
  .first-course-row,
  .rest-course-grid,
  .features-shell,
  .footer-columns{
    grid-template-columns:1fr !important;
  }
  .footer-bottom-pro{
    grid-template-columns:1fr !important;
    white-space:normal !important;
    gap:8px !important;
  }
  .legal-layout{
    grid-template-columns:1fr !important;
  }
  .admin-layout{
    grid-template-columns:1fr !important;
  }
}


/* ===== V66 form + footer adjustments ===== */
.reserve-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
.reserve-form label{display:flex;flex-direction:column;gap:8px;font-weight:700;min-width:0}
.reserve-form .full-field,
.reserve-form .notes-field,
.reserve-form button{grid-column:1 / -1}
.reserve-form textarea{width:100%;min-height:116px;resize:vertical}
.site-footer-pro{display:block !important;visibility:visible !important;opacity:1 !important}
.site-footer-pro .footer-pro{display:block !important}
.footer.site-footer-pro{margin-top:36px}
@media(max-width:760px){
  .reserve-form{grid-template-columns:1fr}
  .reserve-form .full-field,
  .reserve-form .notes-field,
  .reserve-form button{grid-column:auto}
}


/* ===== V67: publicación base + formulario refinado ===== */
.reserve-form{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px 28px;
  grid-template-areas:
    'course course'
    'name phone'
    '. email'
    'notes notes'
    'button button';
  align-items:start;
}
.reserve-form .course-field{grid-area:course}
.reserve-form .name-field{grid-area:name}
.reserve-form .phone-field{grid-area:phone}
.reserve-form .email-field{grid-area:email; justify-self:stretch}
.reserve-form .notes-field{grid-area:notes}
.reserve-form button{grid-area:button}
.reserve-form label{min-width:0}
.reserve-form textarea{width:100%; min-height:150px}
.reserve-form .email-field input{width:100%}
.footer.site-footer-pro{margin-top:34px}
@media(max-width:760px){
  .reserve-form{
    grid-template-columns:1fr;
    grid-template-areas:
      'course'
      'name'
      'phone'
      'email'
      'notes'
      'button';
    gap:16px;
  }
}


/* ===== V68: restauración de footer + menor espacio entre secciones ===== */
/* Garantizar visibilidad consistente del footer */
.site-footer-pro{display:block !important; margin-top:28px !important;}

/* Reducir ~30% los espacios verticales entre secciones */
.section{padding:31px 0 52px;}
.catalog-reference{padding-top:24px;}
.catalog-reference-head{margin:0 auto 26px;}
.first-course-row{margin:0 auto 39px;}
#nosotros.section{padding-top:22px; padding-bottom:44px;}
#contacto.section{padding-top:22px; padding-bottom:44px;}
.two{gap:20px;}
.features-overlap{padding-bottom:10px;}
.promo-divider{margin:24px 0 18px;}
.reservation-unified{gap:28px; padding:30px 34px;}

/* Reducir ~30% los encabezados señalados */
#nosotros .panel h2,
.reservation-heading h2{
  font-size:24px !important;
  line-height:1.1 !important;
  margin-bottom:10px !important;
}
#nosotros .panel .badge,
.reservation-heading .badge{margin-bottom:8px;}

/* Ajustes responsive relacionados */
@media (max-width:1100px){
  .section{padding:28px 0 44px;}
  .reservation-unified{gap:22px; padding:26px 28px;}
}
@media (max-width:780px){
  .section{padding:24px 0 36px;}
  #nosotros .panel h2,
  .reservation-heading h2{font-size:21px !important;}
  .two{gap:16px;}
}


/* ===== V69: corrección visible solicitada ===== */

/* RESTAURAR FOOTER: evitar que .footer .container lo convierta en flex lateral */
footer.site-footer-pro,
.footer.site-footer-pro{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:100% !important;
  clear:both !important;
  background:var(--footer-bg,#1f2230) !important;
  color:var(--footer-link,#f2f4f8) !important;
  border-top:0 !important;
  padding:0 !important;
  margin-top:24px !important;
}
footer.site-footer-pro > .container.footer-pro,
.footer.site-footer-pro > .container.footer-pro,
.site-footer-pro .footer-pro{
  display:block !important;
  max-width:1200px !important;
  width:min(1200px, calc(100% - 48px)) !important;
  margin:0 auto !important;
  padding:40px 0 0 !important;
}
.site-footer-pro .footer-columns{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:34px !important;
  padding-bottom:34px !important;
}
.site-footer-pro .footer-col h3{
  font-family:var(--ui) !important;
  color:var(--footer-title,#fff) !important;
  font-size:var(--footer-title-size,17px) !important;
  margin:0 0 16px !important;
  font-weight:900 !important;
}
.site-footer-pro .footer-col a{
  display:block !important;
  position:relative !important;
  padding-left:14px !important;
  margin:0 0 7px !important;
  line-height:1.18 !important;
  color:var(--footer-link,#f2f4f8) !important;
  font-size:var(--footer-link-size,16px) !important;
}
.site-footer-pro .footer-col a::before{
  content:"•" !important;
  position:absolute !important;
  left:0 !important;
}
.site-footer-pro .footer-bottom-pro{
  display:grid !important;
  grid-template-columns:auto auto auto auto !important;
  justify-content:space-between !important;
  align-items:center !important;
  gap:22px !important;
  border-top:1px solid var(--footer-border,rgba(255,255,255,.22)) !important;
  padding:18px 0 !important;
  color:var(--footer-bottom,#fff) !important;
  white-space:nowrap !important;
}
.site-footer-pro .footer-logo-link img{
  width:220px !important;
  max-height:58px !important;
  object-fit:contain !important;
}
.site-footer-pro .footer-logo-link span{display:none !important;}
.site-footer-pro .google-education-footer-logo{
  max-width:230px !important;
  width:100% !important;
  height:auto !important;
  display:block !important;
  border-radius:0 !important;
}

/* Reducir 30% REAL el espacio vertical entre secciones señaladas */
body section.section,
body .section{
  padding-top:31px !important;
  padding-bottom:52px !important;
}
body section#nosotros.section.band{
  padding-top:16px !important;
  padding-bottom:30px !important;
}
body section#contacto.section{
  padding-top:16px !important;
  padding-bottom:34px !important;
}
body .catalog-reference{
  padding-top:24px !important;
}
body .catalog-reference-head{
  margin-bottom:25px !important;
}
body .first-course-row{
  margin-bottom:39px !important;
}
body .promo-divider{
  margin-top:24px !important;
  margin-bottom:18px !important;
}

/* Reducir 30% REAL los encabezados marcados, venciendo el estilo dinámico */
html body section#nosotros.section.band .container.two .panel h2,
html body #nosotros .panel h2,
html body section#contacto .reservation-heading h2{
  font-size:24px !important;
  line-height:1.12 !important;
  letter-spacing:-0.015em !important;
  margin:8px 0 10px !important;
}

/* Mantener el formulario con Notas ancho completo y correo a la derecha */
html body .reserve-form{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:18px 28px !important;
  grid-template-areas:
    "course course"
    "name phone"
    ". email"
    "notes notes"
    "button button" !important;
}
html body .reserve-form .course-field{grid-area:course !important;}
html body .reserve-form .name-field{grid-area:name !important;}
html body .reserve-form .phone-field{grid-area:phone !important;}
html body .reserve-form .email-field{grid-area:email !important;}
html body .reserve-form .notes-field{grid-area:notes !important;}
html body .reserve-form button{grid-area:button !important;}
html body .reserve-form textarea{width:100% !important;min-height:145px !important;}

@media(max-width:900px){
  .site-footer-pro .footer-columns{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .site-footer-pro .footer-bottom-pro{grid-template-columns:1fr !important;white-space:normal !important;}
}
@media(max-width:760px){
  html body .reserve-form{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "course"
      "name"
      "phone"
      "email"
      "notes"
      "button" !important;
  }
  html body section#nosotros.section.band .container.two .panel h2,
  html body #nosotros .panel h2,
  html body section#contacto .reservation-heading h2{
    font-size:21px !important;
  }
}
@media(max-width:620px){
  .site-footer-pro .footer-columns{grid-template-columns:1fr !important;}
}


/* ===== V70: correo debajo del nombre + footer activo ===== */

/* FORMULARIO */
html body .reserve-form{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:18px 40px !important;
  grid-template-areas:
    "course course"
    "name phone"
    "email ."
    "notes notes"
    "button button" !important;
}
html body .reserve-form .course-field{grid-area:course !important;}
html body .reserve-form .name-field{grid-area:name !important;}
html body .reserve-form .phone-field{grid-area:phone !important;}
html body .reserve-form .email-field{grid-area:email !important;}
html body .reserve-form .notes-field{
  grid-area:notes !important;
  width:100% !important;
}
html body .reserve-form textarea{
  width:100% !important;
  min-height:200px !important;
}
html body .reserve-form button{
  grid-area:button !important;
}
html body .reserve-form label{
  width:100% !important;
}

/* FOOTER ACTIVADO Y VISIBLE */
footer[data-footer],
.footer.site-footer-pro,
.site-footer-pro{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:100% !important;
  clear:both !important;
  background:#1f2230 !important;
  color:#f2f4f8 !important;
  margin-top:26px !important;
}
footer[data-footer] .footer-pro,
.site-footer-pro .footer-pro{
  display:block !important;
  width:min(1200px, calc(100% - 48px)) !important;
  margin:0 auto !important;
  padding:38px 0 0 !important;
}
.site-footer-pro .footer-columns{
  display:grid !important;
  grid-template-columns:repeat(4, minmax(0,1fr)) !important;
  gap:30px !important;
  padding-bottom:28px !important;
}
.site-footer-pro .footer-col,
.site-footer-pro .footer-col-gfe{
  display:block !important;
}
.site-footer-pro .footer-col h3,
.site-footer-pro .footer-col-gfe h3{
  color:#ffffff !important;
  font-size:17px !important;
  margin:0 0 14px !important;
  font-weight:900 !important;
}
.site-footer-pro .footer-col a{
  display:block !important;
  color:#f2f4f8 !important;
  text-decoration:none !important;
  line-height:1.2 !important;
  margin:0 0 8px !important;
  padding-left:14px !important;
  position:relative !important;
}
.site-footer-pro .footer-col a::before{
  content:"•" !important;
  position:absolute !important;
  left:0 !important;
  top:0 !important;
}
.site-footer-pro .google-education-footer-logo{
  display:block !important;
  width:100% !important;
  max-width:220px !important;
  height:auto !important;
}
.site-footer-pro .footer-bottom-pro{
  display:grid !important;
  grid-template-columns:auto 1fr auto auto !important;
  align-items:center !important;
  gap:20px !important;
  border-top:1px solid rgba(255,255,255,.18) !important;
  padding:16px 0 18px !important;
  color:#fff !important;
}
.site-footer-pro .footer-logo-link{
  display:flex !important;
  align-items:center !important;
}
.site-footer-pro .footer-logo-link img{
  width:220px !important;
  max-height:56px !important;
  object-fit:contain !important;
}
.site-footer-pro .footer-logo-link span{
  display:none !important;
}
.site-footer-pro .footer-copy,
.site-footer-pro .footer-cookie,
.site-footer-pro .footer-lang{
  color:#fff !important;
  font-size:15px !important;
  text-decoration:none !important;
}

@media (max-width: 900px){
  html body .reserve-form{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "course"
      "name"
      "phone"
      "email"
      "notes"
      "button" !important;
  }
  .site-footer-pro .footer-columns{
    grid-template-columns:repeat(2, minmax(0,1fr)) !important;
  }
  .site-footer-pro .footer-bottom-pro{
    grid-template-columns:1fr !important;
    justify-items:start !important;
  }
}
@media (max-width: 620px){
  .site-footer-pro .footer-columns{
    grid-template-columns:1fr !important;
  }
}

/* ===== V71: FOOTER ESTÁTICO ACTIVADO - NO DEPENDE DE JS ===== */
.footer-static-v71,
footer.footer-static-v71,
body .footer-static-v71{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:100% !important;
  clear:both !important;
  background:#1f2230 !important;
  color:#f2f4f8 !important;
  border-top:0 !important;
  padding:0 !important;
  margin:38px 0 0 !important;
  position:relative !important;
  z-index:5 !important;
}
.footer-static-v71 .footer-pro{
  display:block !important;
  width:min(1200px, calc(100% - 48px)) !important;
  max-width:1200px !important;
  margin:0 auto !important;
  padding:42px 0 0 !important;
}
.footer-static-v71 .footer-columns{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:36px !important;
  padding:0 0 34px !important;
}
.footer-static-v71 .footer-col{
  display:block !important;
  min-width:0 !important;
}
.footer-static-v71 .footer-col h3{
  font-family:var(--ui,"Inter","Segoe UI",Arial,sans-serif) !important;
  font-size:17px !important;
  line-height:1.25 !important;
  color:#ffffff !important;
  font-weight:900 !important;
  margin:0 0 16px !important;
  letter-spacing:.01em !important;
}
.footer-static-v71 .footer-col a{
  display:block !important;
  color:#f2f4f8 !important;
  text-decoration:none !important;
  font-size:16px !important;
  line-height:1.25 !important;
  margin:0 0 8px !important;
  padding-left:14px !important;
  position:relative !important;
}
.footer-static-v71 .footer-col a::before{
  content:"•" !important;
  position:absolute !important;
  left:0 !important;
  top:0 !important;
  color:#f2f4f8 !important;
}
.footer-static-v71 .footer-col a:hover{
  color:#ffffff !important;
  text-decoration:underline !important;
}
.footer-static-v71 .google-education-footer-logo{
  display:block !important;
  width:100% !important;
  max-width:230px !important;
  height:auto !important;
  border-radius:0 !important;
  margin-top:4px !important;
}
.footer-static-v71 .footer-bottom-pro{
  display:grid !important;
  grid-template-columns:auto 1fr auto auto !important;
  align-items:center !important;
  gap:20px !important;
  border-top:1px solid rgba(255,255,255,.20) !important;
  padding:18px 0 !important;
  color:#fff !important;
}
.footer-static-v71 .footer-logo-link{
  display:flex !important;
  align-items:center !important;
}
.footer-static-v71 .footer-logo-link img{
  width:220px !important;
  max-height:56px !important;
  object-fit:contain !important;
}
.footer-static-v71 .footer-copy,
.footer-static-v71 .footer-cookie,
.footer-static-v71 .footer-lang{
  color:#ffffff !important;
  font-size:15px !important;
  text-decoration:none !important;
}
.footer-static-v71 .footer-cookie:hover{
  text-decoration:underline !important;
}

/* V71: Correo electrónico debajo del nombre */
html body .reserve-form{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:18px 40px !important;
  grid-template-areas:
    "course course"
    "name phone"
    "email ."
    "notes notes"
    "button button" !important;
}
html body .reserve-form .course-field{grid-area:course !important;}
html body .reserve-form .name-field{grid-area:name !important;}
html body .reserve-form .phone-field{grid-area:phone !important;}
html body .reserve-form .email-field{grid-area:email !important;}
html body .reserve-form .notes-field{grid-area:notes !important;}
html body .reserve-form button{grid-area:button !important;}
html body .reserve-form textarea{width:100% !important;min-height:200px !important;}

@media(max-width:900px){
  .footer-static-v71 .footer-columns{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  .footer-static-v71 .footer-bottom-pro{
    grid-template-columns:1fr !important;
    justify-items:start !important;
    white-space:normal !important;
  }
  html body .reserve-form{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "course"
      "name"
      "phone"
      "email"
      "notes"
      "button" !important;
  }
}
@media(max-width:620px){
  .footer-static-v71 .footer-columns{
    grid-template-columns:1fr !important;
  }
}


/* ===== V73: footer inferior 40% menor + Google for Education optimizado ===== */
.footer-static-v71 .footer-bottom-pro{
  padding:12px 0 !important;
  gap:12px !important;
}
.footer-static-v71 .footer-logo-link img{
  width:132px !important;
  max-height:34px !important;
}
.footer-static-v71 .footer-copy,
.footer-static-v71 .footer-cookie,
.footer-static-v71 .footer-lang{
  font-size:9px !important;
  line-height:1.2 !important;
}
.footer-static-v71 .google-education-footer-logo{
  display:block !important;
  width:100% !important;
  max-width:240px !important;
  height:auto !important;
  background:#1f2230 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:0 !important;
}
@media(max-width:900px){
  .footer-static-v71 .footer-logo-link img{width:110px !important; max-height:28px !important;}
  .footer-static-v71 .footer-copy,
  .footer-static-v71 .footer-cookie,
  .footer-static-v71 .footer-lang{font-size:10px !important;}
}

/* ===== V74: subir 30% texto inferior del footer ===== */
.footer-static-v71 .footer-copy,
.footer-static-v71 .footer-cookie,
.footer-static-v71 .footer-lang{
  font-size:12px !important;
  line-height:1.25 !important;
}
@media(max-width:900px){
  .footer-static-v71 .footer-copy,
  .footer-static-v71 .footer-cookie,
  .footer-static-v71 .footer-lang{
    font-size:12px !important;
  }
}



/* ===== FASE 1E CMS: adaptación PHP dinámica sobre diseño HTML V74 ===== */
body{background:var(--bg,#f1f0ee);}
.topbar .container.nav{width:min(var(--max),calc(100% - 48px));margin:auto;}
.course-card .course-body{display:flex!important;}
.featured-card .course-body{display:none!important;}
.featured-card .thumb{aspect-ratio:600/875;height:auto!important;background:#fff;}
.featured-card .thumb img{object-fit:contain!important;background:#fff;}
.ref-card .course-card-text{
  color:#384252;
  line-height:1.38;
  margin-top:6px;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.reserve-count{font-size:13px;color:#667085;}
.course-detail-hero{
  padding:42px 0 30px;
}
.course-detail-wrap{
  display:grid;
  grid-template-columns:1fr 390px;
  gap:28px;
  align-items:start;
}
.course-detail-card,
.course-reservation-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:8px;
  padding:28px;
}
.course-detail-card .detail-img{
  width:100%;
  max-height:620px;
  object-fit:contain;
  background:#fff;
  border:1px solid var(--line);
  border-radius:6px;
  margin:18px 0;
}
.course-detail-card h1{
  font-size:clamp(42px,5vw,64px);
}
.course-facts{
  list-style:none;
  margin:20px 0 0;
  padding:0;
  display:grid;
  gap:10px;
}
.course-facts li{
  border-top:1px solid var(--line);
  padding-top:10px;
}
.course-reservation-card{
  position:sticky;
  top:92px;
}
.course-reservation-card .reserve-form{
  grid-template-columns:1fr!important;
  grid-template-areas:
    "course"
    "name"
    "phone"
    "email"
    "notes"
    "button"!important;
}
.course-reservation-card .reserve-form .course-field,
.course-reservation-card .reserve-form .name-field,
.course-reservation-card .reserve-form .phone-field,
.course-reservation-card .reserve-form .email-field,
.course-reservation-card .reserve-form .notes-field,
.course-reservation-card .reserve-form button{grid-column:auto!important;grid-area:auto!important;}
.course-reservation-card .reserve-form textarea{min-height:130px!important;}

/* Admin CMS adaptado al estilo del paquete HTML */
.admin-cms-page .topbar{position:sticky;}
.admin-cms-wrap{
  width:min(1420px,calc(100% - 48px));
  margin:0 auto;
}
.admin-layout-real{
  display:grid;
  grid-template-columns:280px 1fr;
  gap:24px;
  align-items:start;
}
.admin-menu-real{
  position:sticky;
  top:92px;
}
.admin-menu-real .btn{
  width:100%;
  justify-content:flex-start;
  margin-bottom:8px;
  text-align:left;
}
.admin-menu-real .btn.active{
  background:var(--green);
  color:#fff;
}
.admin-content-real h1{
  font-size:clamp(42px,5vw,64px);
  margin-bottom:20px;
}
.admin-card-grid{
  display:grid;
  grid-template-columns:minmax(440px,.9fr) minmax(520px,1.1fr);
  gap:24px;
  align-items:start;
}
.cms-fieldset{
  border:1px solid var(--line);
  border-radius:10px;
  padding:16px;
  margin:0 0 16px;
}
.cms-fieldset legend{
  font-weight:900;
  color:#243a63;
  padding:0 8px;
}
.cms-course-list{
  display:grid;
  gap:12px;
}
.cms-course-row{
  display:grid;
  grid-template-columns:68px 1fr auto;
  gap:14px;
  align-items:center;
  border:1px solid var(--line);
  border-radius:10px;
  padding:12px;
  background:#fafafa;
}
.cms-course-thumb{
  width:68px;
  height:82px;
  border-radius:8px;
  overflow:hidden;
  background:#fff;
  border:1px solid var(--line);
  display:grid;
  place-items:center;
}
.cms-course-thumb img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.cms-course-thumb span{
  font-size:30px;
  font-weight:900;
  color:#243a63;
}
.cms-course-row h3{
  margin:0 0 4px;
  font-size:20px;
  line-height:1.1;
}
.cms-course-row p{
  margin:0 0 7px;
  color:#667085;
}
.cms-meta{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  font-size:12px;
  font-weight:900;
  color:#667085;
}
.cms-actions{
  display:grid;
  gap:6px;
  justify-items:end;
}
.cms-actions button{
  border:0;
  background:transparent;
  color:#b91c1c;
  font-weight:900;
  cursor:pointer;
}
.form-grid-admin{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.form-grid-admin .span2{grid-column:1/-1;}
.form-grid-admin label{
  display:grid;
  gap:6px;
  font-weight:800;
}
.form-grid-admin input,
.form-grid-admin textarea,
.form-grid-admin select{
  border:1px solid var(--line);
  border-radius:8px;
  padding:11px;
  font:inherit;
  background:#fff;
}
.form-grid-admin textarea{min-height:110px;}
.admin-note{
  color:#667085;
  margin-top:-10px;
}
.inline-delete{display:inline;}
.inline-delete button{font:inherit;}
@media(max-width:1100px){
  .course-detail-wrap,
  .admin-layout-real,
  .admin-card-grid{grid-template-columns:1fr;}
  .course-reservation-card,
  .admin-menu-real{position:relative;top:auto;}
  .cms-course-row{grid-template-columns:58px 1fr;}
  .cms-actions{grid-column:1/-1;display:flex;justify-content:flex-end;}
}


/* Fase 1G: bloque secundario de cursos en 4 columnas */
.rest-course-grid-four{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:22px!important;
  margin-top:32px!important;
}
.rest-course-grid-four .course-card .thumb{
  min-height:150px;
}
.rest-course-grid-four .course-card .thumb img{
  object-fit:contain;
  background:#fff;
  padding:10px;
}
@media(max-width:1100px){
  .rest-course-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:700px){
  .rest-course-grid-four{grid-template-columns:1fr!important;}
}


/* Fase 1H: página de curso vuelve a estructura de curso.html */
.course-v74-hero{
  background:linear-gradient(135deg,#071c4f,#041229);
  color:#fff;
}
.course-v74-hero h1,
.course-v74-hero p{color:#fff;}
.course-v74-hero .hero-img img{
  width:100%;
  max-height:560px;
  object-fit:contain;
  background:#fff;
  border-radius:14px;
  padding:10px;
}
.course-extra-text{
  opacity:.92;
  font-weight:700;
}
.main-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 360px;
  gap:24px;
  align-items:start;
}
.main-grid .side{
  position:sticky;
  top:92px;
}
.module{
  display:grid;
  grid-template-columns:48px 1fr;
  gap:14px;
  padding:16px 0;
  border-bottom:1px solid var(--line,#ddd);
}
.module .num{
  width:42px;
  height:42px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#e9f8ef;
  color:#0b7a43;
  font-weight:900;
}
.facts{
  list-style:none;
  padding:0;
  margin:0;
}
.facts li{
  border-bottom:1px solid var(--line,#ddd);
  padding:10px 0;
}
.rest-course-grid-four{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:22px!important;
  margin-top:32px!important;
}
.rest-course-grid-four .course-card .thumb img{
  object-fit:contain!important;
  background:#fff!important;
  padding:10px!important;
}
@media(max-width:1100px){
  .main-grid{grid-template-columns:1fr;}
  .main-grid .side{position:relative;top:auto;}
  .rest-course-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
@media(max-width:700px){
  .rest-course-grid-four{grid-template-columns:1fr!important;}
}

.promo-course-card .promo-thumb img{object-fit:cover!important}.features-shell .feature-yellow{min-height:220px}


/* Fase 3C */
.course-count-public{
  display:inline-flex;
  background:#e8f7ee;
  color:#08733b;
  border-radius:999px;
  padding:8px 14px;
  font-weight:900;
  margin-top:8px!important;
}


/* ===== Fase 3M: últimos cambios consolidados frontend ===== */
.feature-icon-img{max-width:56px;max-height:56px;object-fit:contain;display:inline-block;}
.feature-icon-emoji{font-size:30px;line-height:1;}
.footer-admin-provisional{margin-top:18px;text-align:center;opacity:.65;font-size:12px;}
.footer-admin-provisional a{color:inherit;text-decoration:none;}
.footer-admin-provisional a:hover{text-decoration:underline;}
.course-v74-hero .actions .btn.secondary,
.course-v74-hero .actions .btn:not(.primary){
  background:#ffffff!important;
  color:#071c4f!important;
  border:1px solid rgba(255,255,255,.85)!important;
  font-weight:700!important;
  min-width:220px;
}


/* ===== FASE 3N: portada de cursos + responsive base ===== */
.catalog-reference{overflow:hidden;}
.course-grid-shell{display:block;width:100%;}
.first-course-row{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr)) !important;gap:24px !important;max-width:1220px !important;margin:0 auto 42px !important;align-items:stretch !important;}
.first-course-row .featured-card{width:100% !important;min-height:0 !important;border-radius:8px !important;}
.first-course-row .featured-card .course-body{min-height:230px !important;padding:22px 20px 18px !important;}
.first-course-row .featured-card .course-body h3{font-family:var(--ui) !important;font-size:24px !important;line-height:1.12 !important;font-weight:650 !important;color:#172233 !important;min-height:0 !important;}
.first-course-row .featured-card .course-subtitle{font-family:var(--ui) !important;font-size:15px !important;line-height:1.35 !important;font-weight:700 !important;color:var(--green) !important;min-height:0 !important;text-transform:uppercase;letter-spacing:.04em;}
.first-course-row .featured-card .course-card-text{font-size:15px !important;line-height:1.5 !important;color:#445066 !important;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.rest-course-grid-four{display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr)) !important;gap:22px !important;align-items:stretch;}
.rest-course-grid-four .course-card{min-height:430px;}
.rest-course-grid-four .course-body h3{min-height:54px;}
.promo-divider{margin:20px auto 44px !important;}
@media(max-width:1100px){
  .rest-course-grid-four{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
  .first-course-row{gap:18px !important;}
}
@media(max-width:900px){
  .first-course-row{grid-template-columns:1fr !important;max-width:640px !important;}
  .first-course-row .featured-card .course-body{min-height:auto !important;}
  .rest-course-grid-four{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
  .promo-divider{grid-template-columns:1fr !important;}
}
@media(max-width:640px){
  .container{width:min(100% - 28px,var(--max)) !important;}
  .rest-course-grid-four{grid-template-columns:1fr !important;}
  .rest-course-grid-four .course-card{min-height:auto;}
  .course-body h3,.rest-course-grid-four .course-body h3{min-height:0 !important;}
  .catalog-reference-head h2{font-size:34px !important;line-height:1.05 !important;}
  .catalog-reference-head p{font-size:16px !important;line-height:1.55 !important;}
}


/* ===== Fase 3P: responsive real y navegabilidad pública ===== */
.mobile-menu-toggle{display:none;border:0;background:transparent;width:44px;height:44px;margin-left:auto;align-items:center;justify-content:center;flex-direction:column;gap:5px;cursor:pointer;border-radius:10px;}
.mobile-menu-toggle span{display:block;width:24px;height:2px;background:#1f2328;border-radius:99px;transition:transform .2s ease, opacity .2s ease;}
body.menu-open .mobile-menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
body.menu-open .mobile-menu-toggle span:nth-child(2){opacity:0;}
body.menu-open .mobile-menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.course-breadcrumb-wrap{background:#f7f6f4;border-bottom:1px solid var(--line);}
.course-breadcrumb{display:flex;gap:9px;align-items:center;padding:12px 0;font-size:14px;color:#586273;flex-wrap:wrap;}
.course-breadcrumb a{color:var(--green);font-weight:600;}
.course-breadcrumb strong{color:#17223a;font-weight:600;}
@media(max-width:1180px){
  .container{width:min(var(--max),calc(100% - 36px));}
  .menu{gap:22px;font-size:13px;}
  .logo{width:210px;}
  .first-course-row .featured-card{width:100%!important;}
  .first-course-row .featured-card .course-subtitle{font-size:clamp(38px,5vw,50px)!important;}
}
@media(max-width:900px){
  .topbar{height:auto;min-height:68px;position:sticky;}
  .nav{position:relative;min-height:68px;gap:12px;}
  .logo{width:190px;height:48px;}
  .mobile-menu-toggle{display:inline-flex;}
  .menu{display:none;position:absolute;top:100%;left:0;right:0;margin:0;background:#fff;border:1px solid var(--line);border-radius:0 0 16px 16px;box-shadow:0 18px 34px rgba(23,32,58,.12);padding:10px;z-index:99;}
  body.menu-open .menu{display:flex;flex-direction:column;gap:0;}
  .menu a{display:block;padding:15px 16px;border-bottom:1px solid #eef0f3;}
  .menu a:last-child{border-bottom:0;}
  .menu a:after{display:none;}
  .social{display:none;}
  .section{padding:34px 0 52px;}
  .hero-style.hero-full{min-height:360px!important;background-size:cover!important;background-position:center!important;}
  .features-overlap{margin-top:0!important;}
  .features-shell{grid-template-columns:1fr 1fr!important;padding:14px!important;gap:14px!important;}
  .feature-yellow{padding:22px 18px!important;min-height:auto!important;}
  .feature-yellow h3{font-size:16px!important;margin-bottom:10px!important;}
  .feature-yellow p{font-size:15px!important;line-height:1.45!important;}
  .catalog-reference-head h2{font-size:clamp(32px,8vw,44px)!important;}
  .catalog-reference-head p{font-size:16px!important;}
  .first-course-row{grid-template-columns:1fr!important;max-width:620px!important;margin-bottom:34px!important;}
  .first-course-row .featured-card{min-height:auto!important;}
  .first-course-row .featured-card .course-body{min-height:auto!important;padding:24px 20px 18px!important;}
  .first-course-row .featured-card .course-body h3{font-size:22px!important;min-height:0!important;}
  .first-course-row .featured-card .course-subtitle{font-size:clamp(36px,10vw,48px)!important;line-height:1!important;}
  .promo-divider{grid-template-columns:1fr!important;padding:28px 22px!important;border-radius:20px!important;}
  .promo-copy h2{font-size:clamp(30px,8vw,44px)!important;}
  .promo-cards{grid-template-columns:1fr!important;}
  .rest-course-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:16px!important;}
  .rest-course-grid-four .course-card{min-height:auto!important;}
  .course-body h3,.rest-course-grid-four .course-body h3{min-height:0!important;font-size:23px!important;}
  .two,.main-grid,.hero-grid{grid-template-columns:1fr!important;}
  .hero-img img{height:auto!important;max-height:440px!important;}
  .side{position:relative!important;top:auto!important;}
  .reservation-unified{grid-template-columns:1fr!important;padding:26px 20px!important;gap:22px!important;}
  .reservation-form-wrap .reserve-form,.reserve-form{grid-template-columns:1fr!important;}
  .reservation-form-wrap .reserve-form label,.reservation-form-wrap .reserve-form button,.reserve-form label,.reserve-form button{grid-column:1/-1!important;grid-row:auto!important;}
  .site-footer-pro .footer-bottom-pro{grid-template-columns:1fr!important;text-align:left!important;gap:14px!important;}
}
@media(max-width:620px){
  .container{width:calc(100% - 28px)!important;}
  .logo{width:168px;}
  .hero-style.hero-full{min-height:300px!important;}
  .features-shell{grid-template-columns:1fr!important;}
  .rest-course-grid-four{grid-template-columns:1fr!important;}
  .course-card{min-height:auto!important;}
  .thumb{height:auto!important;aspect-ratio:16/10;}
  .panel{padding:20px!important;}
  .panel h2{font-size:clamp(28px,9vw,38px)!important;}
  .actions{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;}
  .btn{width:100%;}
  .course-v74-hero{padding-top:24px!important;}
  .course-v74-hero h1{font-size:clamp(34px,11vw,48px)!important;}
  .course-v74-hero p{font-size:16px!important;line-height:1.55!important;}
  .footer-static-v71 .footer-columns,.site-footer-pro .footer-columns{grid-template-columns:1fr!important;gap:20px!important;}
}


/* ===== Fase 3Q: búsqueda pública, WhatsApp y navegación pendiente ===== */
.catalog-tools{
  max-width:980px;
  margin:0 auto 28px;
  display:grid;
  grid-template-columns:minmax(260px,1fr) minmax(210px,.38fr) auto;
  gap:12px;
  align-items:center;
}
.catalog-tools input,
.catalog-tools select{
  width:100%;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  padding:13px 14px;
  font:inherit;
  color:var(--text);
}
.course-count-public{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:0 14px;
  border-radius:999px;
  background:#eef8f2;
  color:var(--green);
  font-weight:750;
  white-space:nowrap;
}
.btn.whatsapp,
.whatsapp-inline,
.floating-whatsapp{
  background:#128c4a;
  color:#fff!important;
  border-color:#128c4a!important;
}
.whatsapp-inline{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  margin-top:12px;
  padding:13px 18px;
  border-radius:8px;
  font-weight:750;
}
.floating-whatsapp{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:45;
  padding:13px 18px;
  border-radius:999px;
  box-shadow:0 12px 28px rgba(18,140,74,.26);
  font-weight:800;
}
.mobile-sticky-reserve{display:none;}
@media(max-width:900px){
  .catalog-tools{grid-template-columns:1fr;max-width:640px;}
  .floating-whatsapp{bottom:76px;right:12px;padding:11px 14px;font-size:14px;}
  .mobile-sticky-reserve{
    display:flex;
    position:fixed;
    left:12px;
    right:12px;
    bottom:12px;
    z-index:46;
    align-items:center;
    justify-content:center;
    min-height:48px;
    background:var(--green);
    color:#fff!important;
    border-radius:999px;
    box-shadow:0 12px 28px rgba(7,134,59,.28);
    font-weight:800;
  }
  body{padding-bottom:72px;}
}
@media(max-width:520px){
  .catalog-tools{margin-bottom:20px;}
  .course-count-public{width:100%;}
}

/* Fase 3R: imagen 2 de curso en proporción vertical 630x750 */
.course-v74-hero .hero-img{
  max-width:630px;
  aspect-ratio:630 / 750;
  justify-self:end;
  display:grid;
  place-items:center;
  background:#fff;
}
.course-v74-hero .hero-img img{
  width:100%!important;
  height:100%!important;
  max-height:none!important;
  object-fit:cover!important;
  padding:0!important;
  border-radius:12px!important;
}
@media(max-width:900px){
  .course-v74-hero .hero-img{
    justify-self:center;
    width:min(100%,630px);
    max-height:none;
  }
}


/* ===== Fase 3U: detalle de curso, imagen 630x750, navegación y responsive fino ===== */
.course-v74-hero{background:#061743;color:#fff;padding:52px 0 42px!important;}
.course-v74-hero .hero-grid{grid-template-columns:minmax(0,1fr) minmax(340px,630px)!important;gap:52px!important;align-items:center!important;}
.course-v74-hero .course-hero-copy{max-width:760px;}
.course-v74-hero h1{font-size:clamp(44px,5.6vw,82px)!important;line-height:.98!important;color:#fff!important;margin:22px 0 18px!important;}
.course-v74-hero h1 span{font-weight:400!important;}
.course-v74-hero p{max-width:720px;color:#fff!important;font-size:clamp(17px,1.5vw,22px)!important;line-height:1.55!important;margin:0 0 14px!important;}
.course-v74-hero .course-extra-text{font-weight:500;opacity:.92;}
.course-v74-hero .course-actions{justify-content:flex-start!important;margin-top:30px!important;}
.course-v74-hero .course-detail-image{width:100%;max-width:630px;aspect-ratio:630/750;border-radius:8px!important;background:#fff!important;border:0!important;padding:0!important;box-shadow:0 18px 45px rgba(0,0,0,.14);}
.course-v74-hero .course-detail-image img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;border-radius:8px!important;}
.course-jump-nav{position:sticky;top:72px;z-index:8;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);}
.course-jump-nav .container{display:flex;gap:8px;align-items:center;overflow:auto;padding:10px 0;scrollbar-width:none;}
.course-jump-nav .container::-webkit-scrollbar{display:none;}
.course-jump-nav a{white-space:nowrap;border:1px solid #d9dee8;border-radius:999px;padding:9px 14px;font-size:14px;font-weight:650;color:#0f1c2f;background:#fff;}
.course-jump-nav a:hover{border-color:var(--green);color:var(--green);}
.course-detail-section{padding-top:32px!important;}
.course-outcomes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:8px;}
.outcome-item{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;padding:14px;border:1px solid #e1e6ee;border-radius:12px;background:#fbfcfe;}
.outcome-item span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#ecf9f1;color:var(--green);font-weight:800;}
.outcome-item p{margin:0;line-height:1.45;color:#2f3a4a;}
.reserve-intro{margin-top:-4px;color:#5b6677;line-height:1.55;}
.course-side-card .side-reserve-btn{width:100%;margin-top:18px;}
.related-courses-section{padding-top:20px!important;background:#f6f5f2;}
.compact-head{margin-bottom:24px!important;}
.compact-head h2{font-size:clamp(32px,4vw,48px)!important;}
.related-course-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.related-card{min-height:390px;}
.course-empty-state{margin:24px auto 0;max-width:760px;text-align:center;background:#fff;border:1px dashed #cfd7e6;border-radius:14px;padding:22px;color:#536070;font-weight:650;}
.catalog-tools input,.catalog-tools select{min-height:52px;}
.rest-course-grid-four .course-card{min-height:410px;}
.rest-course-grid-four .course-body h3{min-height:auto;}
@media(max-width:1100px){
  .course-v74-hero .hero-grid{grid-template-columns:1fr minmax(300px,460px)!important;gap:34px!important;}
  .course-v74-hero h1{font-size:clamp(40px,6vw,64px)!important;}
}
@media(max-width:900px){
  .course-v74-hero{padding:36px 0 34px!important;}
  .course-v74-hero .hero-grid{grid-template-columns:1fr!important;}
  .course-v74-hero .course-detail-image{max-width:520px;margin:0 auto;}
  .course-jump-nav{top:66px;}
  .course-v74-hero .course-actions{justify-content:center!important;}
  .course-v74-hero .course-hero-copy{text-align:center;margin:auto;}
  .related-course-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:680px){
  .course-v74-hero h1{font-size:clamp(36px,12vw,54px)!important;}
  .course-v74-hero p{font-size:16px!important;}
  .course-outcomes-grid,.related-course-grid{grid-template-columns:1fr;}
  .course-jump-nav{top:60px;}
  .course-jump-nav a{font-size:13px;padding:8px 12px;}
  .course-v74-hero .course-detail-image{max-width:100%;}
  .mobile-sticky-reserve{display:flex!important;}
}
@media(min-width:681px){.mobile-sticky-reserve{display:none!important;}}


/* ===== Fase 3V: título/subtítulo sobre portada con contraste inteligente ===== */
.hero-main-smart.hero-full{
  position:relative!important;
  isolation:isolate;
  overflow:hidden;
  min-height:620px!important;
  display:flex!important;
  align-items:center!important;
  padding:76px 0!important;
  background-size:cover!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
}
.hero-main-smart .hero-smart-shade{position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(4,13,36,.72) 0%,rgba(4,13,36,.48) 45%,rgba(4,13,36,.08) 100%);pointer-events:none;transition:background .2s ease;}
.hero-main-smart .hero-smart-inner{position:relative;z-index:1;display:flex;align-items:center;min-height:420px;}
.hero-main-smart .hero-smart-copy{display:block!important;max-width:var(--hero-copy-max,2145px)!important;padding:18px 0;color:#fff;}
.hero-main-smart .hero-smart-badge{display:inline-block!important;margin-bottom:18px!important;background:rgba(255,255,255,.88)!important;color:#07863b!important;border:0!important;box-shadow:0 8px 24px rgba(0,0,0,.08);}
.hero-main-smart .hero-smart-copy h1{display:block!important;margin:0 0 18px!important;line-height:1.02!important;letter-spacing:-.025em!important;font-weight:600!important;text-shadow:0 18px 45px rgba(0,0,0,.28);}
.hero-main-smart .hero-smart-copy p{display:block!important;max-width:var(--hero-copy-p-max,1040px)!important;line-height:1.55!important;font-weight:500!important;margin:0!important;text-shadow:0 12px 30px rgba(0,0,0,.22);}
.hero-main-smart.hero-text-light .hero-smart-copy h1,
.hero-main-smart.hero-text-light .hero-smart-copy p{color:#fff!important;}
.hero-main-smart.hero-text-light .hero-smart-shade{background:linear-gradient(90deg,rgba(4,13,36,.74) 0%,rgba(4,13,36,.50) 45%,rgba(4,13,36,.08) 100%);}
.hero-main-smart.hero-text-dark .hero-smart-copy h1{color:#071c4f!important;text-shadow:0 12px 32px rgba(255,255,255,.55);}
.hero-main-smart.hero-text-dark .hero-smart-copy p{color:#17233b!important;text-shadow:0 10px 26px rgba(255,255,255,.45);}
.hero-main-smart.hero-text-dark .hero-smart-badge{background:rgba(7,134,59,.10)!important;color:#06743d!important;}
.hero-main-smart.hero-text-dark .hero-smart-shade{background:linear-gradient(90deg,rgba(255,255,255,.86) 0%,rgba(255,255,255,.62) 44%,rgba(255,255,255,.12) 100%);}
.hero-main-smart[data-hero-position="center"] .hero-smart-inner{justify-content:center;text-align:center;}
.hero-main-smart[data-hero-position="center"] .hero-smart-copy p{margin-left:auto!important;margin-right:auto!important;}
.hero-main-smart[data-hero-position="center"] .hero-smart-shade{background:linear-gradient(90deg,rgba(4,13,36,.12),rgba(4,13,36,.58),rgba(4,13,36,.12));}
.hero-main-smart[data-hero-position="center"].hero-text-dark .hero-smart-shade{background:linear-gradient(90deg,rgba(255,255,255,.10),rgba(255,255,255,.78),rgba(255,255,255,.10));}
.hero-main-smart[data-hero-position="right"] .hero-smart-inner{justify-content:flex-end;text-align:right;}
.hero-main-smart[data-hero-position="right"] .hero-smart-copy p{margin-left:auto!important;}
.hero-main-smart[data-hero-position="right"] .hero-smart-shade{background:linear-gradient(270deg,rgba(4,13,36,.74) 0%,rgba(4,13,36,.50) 45%,rgba(4,13,36,.08) 100%);}
.hero-main-smart[data-hero-position="right"].hero-text-dark .hero-smart-shade{background:linear-gradient(270deg,rgba(255,255,255,.86) 0%,rgba(255,255,255,.62) 44%,rgba(255,255,255,.12) 100%);}
@media(max-width:900px){
  .hero-main-smart.hero-full{min-height:480px!important;padding:54px 0!important;}
  .hero-main-smart .hero-smart-inner{min-height:360px;}
  .hero-main-smart .hero-smart-copy{max-width:680px!important;}
  .hero-main-smart .hero-smart-copy h1{font-size:clamp(36px,9vw,58px)!important;}
  .hero-main-smart .hero-smart-copy p{font-size:clamp(16px,4vw,20px)!important;}
}
@media(max-width:620px){
  .hero-main-smart.hero-full{min-height:420px!important;padding:42px 0!important;}
  .hero-main-smart .hero-smart-inner{min-height:320px;align-items:flex-end;}
  .hero-main-smart .hero-smart-copy{text-align:left!important;}
  .hero-main-smart .hero-smart-copy h1{font-size:clamp(34px,12vw,48px)!important;}
  .hero-main-smart .hero-smart-badge{font-size:11px!important;margin-bottom:12px!important;}
  .hero-main-smart .hero-smart-shade,
  .hero-main-smart[data-hero-position="center"] .hero-smart-shade,
  .hero-main-smart[data-hero-position="right"] .hero-smart-shade{background:linear-gradient(180deg,rgba(4,13,36,.10) 0%,rgba(4,13,36,.72) 100%);}
  .hero-main-smart.hero-text-dark .hero-smart-shade,
  .hero-main-smart[data-hero-position="center"].hero-text-dark .hero-smart-shade,
  .hero-main-smart[data-hero-position="right"].hero-text-dark .hero-smart-shade{background:linear-gradient(180deg,rgba(255,255,255,.08) 0%,rgba(255,255,255,.82) 100%);}
}


/* ===== Fase 4B: portada con margen derecho reducido 20% ===== */
.hero-main-smart .hero-smart-copy{max-width:var(--hero-copy-max,2145px)!important;}
.hero-main-smart .hero-smart-copy p{max-width:var(--hero-copy-p-max,1040px)!important;}

/* ===== FASE 5A1H: estilización controlada de ficha pública del curso =====
   Base: FASE5A1G. Ajuste visual moderado, académico/comercial, sin contenido inventado. */
:root{
  --course-soft:#f7faf8;
  --course-soft-2:#eef6f1;
  --course-ink:#101827;
  --course-muted:#5f6b7a;
  --course-border:#dfe7e2;
}
body:has(.course-v74-hero){background:#f5f7f5!important;color:#182233;}
.course-breadcrumb-wrap{background:#f7faf8!important;border-bottom:1px solid #e3e9e5;}
.course-breadcrumb{font-size:13px;color:#667085;padding:13px 0;display:flex;gap:9px;align-items:center;overflow:auto;white-space:nowrap;}
.course-breadcrumb a{color:#1f6f3c;font-weight:650;}
.course-breadcrumb strong{color:#202b3a;font-weight:700;}
.course-v74-hero{
  background:linear-gradient(180deg,#ffffff 0%,#f7faf8 100%)!important;
  color:var(--course-ink)!important;
  padding:48px 0 42px!important;
  border-bottom:1px solid #e4ebe7;
  position:relative;
  overflow:hidden;
}
.course-v74-hero:before{
  content:"";position:absolute;inset:auto -12% -44% 42%;height:420px;
  background:radial-gradient(circle at 50% 45%,rgba(7,134,59,.09),rgba(7,134,59,0) 65%);
  pointer-events:none;
}
.course-v74-hero .hero-grid{
  grid-template-columns:minmax(0,1.02fr) minmax(320px,560px)!important;
  gap:54px!important;
  align-items:center!important;
  position:relative;z-index:1;
}
.course-v74-hero .course-hero-copy{max-width:760px;}
.course-v74-hero .badge{
  background:#edf8f1!important;border:1px solid #cfe7d8!important;color:#087238!important;
  border-radius:999px!important;padding:8px 15px!important;font-size:12px!important;letter-spacing:.08em!important;
}
.course-v74-hero h1{
  color:#111a2b!important;
  font-size:clamp(44px,5.4vw,76px)!important;
  line-height:1.02!important;
  letter-spacing:-.035em!important;
  margin:22px 0 18px!important;
  max-width:760px;
}
.course-v74-hero h1 span{color:#18233a!important;font-weight:500!important;}
.course-v74-hero p{
  color:#445065!important;
  max-width:680px!important;
  font-size:clamp(16px,1.25vw,19px)!important;
  line-height:1.65!important;
  margin:0 0 14px!important;
}
.course-v74-hero .course-extra-text{color:#526071!important;font-weight:500;}
.course-hero-facts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0;
  max-width:650px;
  margin:28px 0 0;
  border-top:1px solid #dfe8e3;
  border-bottom:1px solid #dfe8e3;
}
.course-hero-facts>div{
  display:grid;
  grid-template-columns:38px 1fr;
  grid-template-rows:auto auto;
  column-gap:10px;
  align-items:center;
  padding:16px 18px 15px;
  border-right:1px solid #dfe8e3;
}
.course-hero-facts>div:last-child{border-right:0;}
.course-hero-facts .fact-icon{grid-row:1/3;color:#087238;font-size:26px;line-height:1;display:grid;place-items:center;}
.course-hero-facts small{font-size:12px;color:#687386;font-weight:800;letter-spacing:.02em;}
.course-hero-facts strong{font-size:14px;color:#172033;font-weight:650;line-height:1.25;}
.course-v74-hero .course-actions{justify-content:flex-start!important;margin-top:28px!important;gap:12px!important;}
.course-v74-hero .actions .btn{
  min-height:50px;border-radius:8px!important;padding:13px 19px!important;
  box-shadow:none!important;font-weight:800!important;
}
.course-v74-hero .actions .btn.primary{
  background:#087b3a!important;border-color:#087b3a!important;color:#fff!important;
  box-shadow:0 10px 22px rgba(7,134,59,.14)!important;
}
.course-v74-hero .actions .btn.primary:hover{background:#066a31!important;}
.course-v74-hero .actions .btn.secondary,
.course-v74-hero .actions .btn:not(.primary){
  background:#fff!important;color:#111a2b!important;border-color:#d8e1dc!important;
}
.course-v74-hero .actions .btn.whatsapp{color:#087238!important;}
.course-v74-hero .course-detail-image{
  width:100%;max-width:560px;aspect-ratio:1.08/1!important;
  border-radius:18px!important;background:#fff!important;border:1px solid #dfe7e2!important;
  padding:18px!important;box-shadow:0 24px 60px rgba(16,24,40,.08)!important;
  justify-self:end;display:grid;place-items:center;overflow:hidden;position:relative;
}
.course-v74-hero .course-detail-image:before{
  content:"";position:absolute;inset:18px;border-radius:14px;background:#f3f8f5;z-index:0;
}
.course-v74-hero .course-detail-image img{
  position:relative;z-index:1;width:100%!important;height:100%!important;
  object-fit:contain!important;border-radius:12px!important;background:transparent!important;
}
.course-jump-nav{top:72px;background:rgba(255,255,255,.96)!important;border-bottom:1px solid #e2e8e4!important;box-shadow:0 8px 20px rgba(16,24,40,.035);}
.course-jump-nav .container{gap:10px;padding:11px 0;}
.course-jump-nav a{border:1px solid #dfe7e2!important;background:#fff!important;color:#1f2937!important;border-radius:999px!important;padding:8px 14px!important;font-weight:700!important;}
.course-jump-nav a:hover{color:#087238!important;border-color:#a9d6bb!important;background:#f5fbf7!important;}
.course-production-section{background:#f5f7f5!important;padding-top:34px!important;}
.course-production-section .main-grid{grid-template-columns:minmax(0,1fr) 330px!important;gap:24px!important;}
.course-production-section .panel{
  border:1px solid #dfe7e2!important;border-radius:14px!important;background:#fff!important;
  box-shadow:0 14px 36px rgba(16,24,40,.035);padding:28px!important;
}
.course-production-section .panel h2{
  color:#111a2b!important;font-size:clamp(30px,3vw,42px)!important;line-height:1.08!important;
  margin:0 0 16px!important;position:relative;padding-bottom:10px;
}
.course-production-section .panel h2:after{content:"";position:absolute;left:0;bottom:0;width:42px;height:2px;background:#087b3a;border-radius:3px;}
.course-production-section .panel p{color:#465364;line-height:1.7;}
.course-outcomes-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;margin-top:14px!important;}
.outcome-item{
  border:1px solid #e0e8e3!important;background:#fbfdfc!important;border-radius:12px!important;
  padding:15px 16px!important;box-shadow:none!important;align-items:start!important;
}
.outcome-item span{background:#edf8f1!important;color:#087b3a!important;width:30px!important;height:30px!important;font-size:16px;}
.outcome-item p{font-size:15px;line-height:1.5!important;color:#253044!important;}
.course-module-row{
  grid-template-columns:44px 1fr 28px!important;align-items:center!important;
  border:1px solid #e1e8e4!important;border-radius:12px!important;padding:14px 14px!important;margin:10px 0!important;
  background:#fff!important;transition:border-color .15s ease, background .15s ease;
}
.course-module-row:hover{border-color:#bddbc8!important;background:#fbfdfc!important;}
.course-module-row .num{width:34px!important;height:34px!important;border-radius:50%!important;background:#edf8f1!important;color:#087b3a!important;font-size:14px!important;}
.course-module-row .module-copy strong{font-family:var(--ui)!important;font-size:15px!important;color:#111a2b!important;line-height:1.4!important;}
.module-chevron{color:#64748b;font-size:18px;text-align:center;}
.course-side-card{position:relative;overflow:hidden;}
.course-side-card:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:#087b3a;}
.course-side-card h2{font-size:30px!important;}
.facts{gap:0!important;border:1px solid #e1e8e4;border-radius:12px;overflow:hidden;background:#fbfdfc;}
.facts li{border-bottom:1px solid #e1e8e4!important;margin:0!important;padding:12px 14px!important;background:#fff;}
.facts li:last-child{border-bottom:0!important;}
.facts strong{color:#111a2b;}
.side-reserve-btn{border-radius:8px!important;}
.related-courses-section{background:#f5f7f5!important;border-top:1px solid #e4ebe7;}
.related-card{border-radius:12px!important;border-color:#dfe7e2!important;box-shadow:0 12px 28px rgba(16,24,40,.035);}
.mobile-sticky-reserve{background:#087b3a!important;color:#fff!important;font-weight:800!important;}
@media(max-width:1100px){
  .course-v74-hero .hero-grid{grid-template-columns:1fr minmax(280px,430px)!important;gap:30px!important;}
  .course-v74-hero h1{font-size:clamp(40px,6vw,62px)!important;}
  .course-production-section .main-grid{grid-template-columns:1fr!important;}
}
@media(max-width:900px){
  .course-v74-hero{padding:34px 0 32px!important;}
  .course-v74-hero .hero-grid{grid-template-columns:1fr!important;}
  .course-v74-hero .course-hero-copy{text-align:left!important;margin:0!important;}
  .course-v74-hero .course-actions{justify-content:flex-start!important;}
  .course-v74-hero .course-detail-image{justify-self:center;max-width:560px;}
  .course-hero-facts{grid-template-columns:1fr;max-width:100%;}
  .course-hero-facts>div{border-right:0;border-bottom:1px solid #dfe8e3;}
  .course-hero-facts>div:last-child{border-bottom:0;}
}
@media(max-width:680px){
  .course-v74-hero h1{font-size:clamp(34px,12vw,48px)!important;}
  .course-v74-hero p{font-size:16px!important;}
  .course-v74-hero .course-detail-image{padding:12px!important;border-radius:14px!important;}
  .course-outcomes-grid{grid-template-columns:1fr!important;}
  .course-production-section .panel{padding:22px!important;border-radius:12px!important;}
  .course-module-row{grid-template-columns:38px 1fr 22px!important;padding:12px!important;}
}

/* FASE 5A1K - Footer público más funcional */
.site-footer-pro.footer-functional-v75{background:var(--footer-bg,#101827)!important;color:var(--footer-bottom,#c9d5df)!important;padding:48px 0 18px!important;border-top:1px solid color-mix(in srgb,var(--footer-border,#263244) 70%,transparent);}
.footer-functional-v75 .footer-pro{max-width:1180px!important;margin:0 auto!important;padding:0 22px!important;background:transparent!important;border-radius:0!important;box-shadow:none!important;}
.footer-functional-v75 .footer-functional-top{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);gap:34px;align-items:start;padding-bottom:28px;margin-bottom:28px;border-bottom:1px solid var(--footer-border,#263244);}
.footer-functional-v75 .footer-brand-block{display:grid;gap:12px;max-width:620px;}
.footer-functional-v75 .footer-logo-link{display:inline-flex;align-items:center;width:max-content;}
.footer-functional-v75 .footer-logo-link img{max-width:210px!important;max-height:60px!important;object-fit:contain;}
.footer-functional-v75 .footer-logo-text{color:var(--footer-title,#fff)!important;font-size:22px;font-weight:800;text-decoration:none;letter-spacing:-.02em;}
.footer-functional-v75 .footer-brand-block p{margin:0;color:var(--footer-bottom,#c9d5df);font-size:15px;line-height:1.65;opacity:.88;}
.footer-functional-v75 .footer-contact-block{display:grid;gap:8px;justify-items:start;}
.footer-functional-v75 .footer-contact-block h3,.footer-functional-v75 .footer-col h3{color:var(--footer-title,#fff)!important;font-size:var(--footer-title-size,16px)!important;margin:0 0 8px!important;font-weight:800;letter-spacing:.01em;text-transform:none!important;}
.footer-functional-v75 .footer-contact-block a,.footer-functional-v75 .footer-col a{color:var(--footer-link,#dbe7ef)!important;font-size:var(--footer-link-size,14px)!important;display:block;text-decoration:none!important;opacity:.88;margin:0 0 8px!important;line-height:1.45;}
.footer-functional-v75 .footer-contact-block a:hover,.footer-functional-v75 .footer-col a:hover{opacity:1;text-decoration:underline!important;text-underline-offset:3px;}
.footer-functional-v75 .footer-whatsapp{display:inline-flex!important;align-items:center;justify-content:center;padding:9px 13px;margin-top:4px!important;border-radius:999px;background:#0a8a43;color:#fff!important;font-weight:800;opacity:1!important;}
.footer-functional-v75 .footer-columns{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:30px!important;margin:0 0 28px!important;padding:0 0 28px!important;border-bottom:1px solid var(--footer-border,#263244);}
.footer-functional-v75 .footer-col{min-width:0;}
.footer-functional-v75 .footer-col a::before{display:none!important;content:none!important;}
.footer-functional-v75 .footer-bottom-pro{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;gap:18px!important;align-items:center!important;color:var(--footer-bottom,#c9d5df)!important;font-size:var(--footer-bottom-size,13px)!important;border:0!important;padding:0!important;margin:0!important;}
.footer-functional-v75 .footer-copy,.footer-functional-v75 .footer-cookie,.footer-functional-v75 .footer-lang{color:var(--footer-bottom,#c9d5df)!important;font-size:var(--footer-bottom-size,13px)!important;opacity:.84;}
.footer-functional-v75 .footer-cookie{text-decoration:none!important;}
.footer-functional-v75 .footer-cookie:hover{text-decoration:underline!important;text-underline-offset:3px;opacity:1;}
.footer-functional-v75 .footer-admin-provisional{margin-top:18px;text-align:center;font-size:12px;opacity:.42;}
.footer-functional-v75 .footer-admin-provisional a{color:var(--footer-bottom,#c9d5df)!important;text-decoration:none;}
@media(max-width:900px){.footer-functional-v75 .footer-functional-top{grid-template-columns:1fr}.footer-functional-v75 .footer-columns{grid-template-columns:repeat(2,minmax(0,1fr))!important}.footer-functional-v75 .footer-bottom-pro{grid-template-columns:1fr!important;gap:10px!important}}
@media(max-width:560px){.footer-functional-v75 .footer-columns{grid-template-columns:1fr!important}.site-footer-pro.footer-functional-v75{padding-top:36px!important}.footer-functional-v75 .footer-pro{padding:0 18px!important}}

/* FASE 5A1L - Footer público académico/comercial */
.site-footer-pro.footer-academic-v76{background:var(--footer-bg,#101827)!important;color:var(--footer-bottom,#c9d5df)!important;padding:54px 0 18px!important;border-top:1px solid var(--footer-border,#263244)!important;}
.footer-academic-v76 .footer-v76-inner{width:min(1180px,calc(100% - 44px))!important;margin:0 auto!important;padding:0!important;background:transparent!important;border-radius:0!important;box-shadow:none!important;}
.footer-academic-v76 .footer-v76-top{display:grid!important;grid-template-columns:minmax(260px,.95fr) minmax(360px,1.4fr) minmax(240px,.75fr)!important;gap:38px!important;align-items:start!important;padding-bottom:30px!important;border-bottom:1px solid var(--footer-border,#263244)!important;}
.footer-academic-v76.footer-layout-compact .footer-v76-top{grid-template-columns:minmax(260px,1fr) minmax(280px,1fr)!important;gap:30px!important;}
.footer-academic-v76.footer-layout-columns .footer-v76-top{grid-template-columns:minmax(420px,1.55fr) minmax(260px,.75fr)!important;}
.footer-academic-v76 .footer-v76-brand{display:grid;gap:13px;align-content:start;}
.footer-academic-v76 .footer-logo-link{display:inline-flex!important;width:max-content!important;align-items:center!important;}
.footer-academic-v76 .footer-logo-link img{display:block!important;max-width:220px!important;max-height:64px!important;object-fit:contain!important;}
.footer-academic-v76 .footer-logo-text{color:var(--footer-title,#fff)!important;font-size:23px!important;font-weight:800!important;text-decoration:none!important;letter-spacing:-.02em!important;}
.footer-academic-v76 .footer-v76-brand p{margin:0!important;color:var(--footer-bottom,#c9d5df)!important;font-size:15px!important;line-height:1.65!important;opacity:.9!important;}
.footer-academic-v76 .footer-v76-trust{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;}
.footer-academic-v76 .footer-v76-trust span{font-size:12px;color:var(--footer-bottom,#c9d5df);border:1px solid var(--footer-border,#263244);border-radius:999px;padding:6px 10px;background:rgba(255,255,255,.035);}
.footer-academic-v76 .footer-v76-links{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:28px!important;}
.footer-academic-v76.footer-layout-columns .footer-v76-links{grid-template-columns:repeat(4,minmax(0,1fr))!important;}
.footer-academic-v76 .footer-col{min-width:0!important;}
.footer-academic-v76 .footer-col h3,.footer-academic-v76 .footer-v76-contact h3{color:var(--footer-title,#fff)!important;font-size:var(--footer-title-size,16px)!important;margin:0 0 13px!important;font-weight:750!important;letter-spacing:.01em!important;text-transform:none!important;}
.footer-academic-v76 .footer-col h3:after,.footer-academic-v76 .footer-v76-contact h3:after{content:"";display:block;width:24px;height:2px;border-radius:999px;background:#0f8f4d;margin-top:9px;}
.footer-academic-v76 .footer-col a,.footer-academic-v76 .footer-v76-contact a,.footer-academic-v76 .footer-v76-contact span{display:block!important;color:var(--footer-link,#dbe7ef)!important;font-size:var(--footer-link-size,14px)!important;text-decoration:none!important;line-height:1.48!important;margin:0 0 9px!important;opacity:.88!important;}
.footer-academic-v76 .footer-col a:hover,.footer-academic-v76 .footer-v76-contact a:hover{text-decoration:underline!important;text-underline-offset:3px;opacity:1!important;}
.footer-academic-v76 .footer-col a::before{display:none!important;content:none!important;}
.footer-academic-v76 .footer-v76-contact{display:grid;gap:2px;align-content:start;}
.footer-academic-v76 .footer-whatsapp{display:inline-flex!important;width:max-content;align-items:center;justify-content:center;padding:9px 14px!important;margin-top:6px!important;border-radius:999px;background:#0a8a43!important;color:#fff!important;font-weight:750!important;opacity:1!important;}
.footer-academic-v76 .footer-v76-social-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid var(--footer-border,#263244);}
.footer-academic-v76 .footer-v76-social-row strong{color:var(--footer-title,#fff);font-size:var(--footer-title-size,16px);}
.footer-academic-v76 .footer-v76-social-row div{display:flex;gap:10px;flex-wrap:wrap;}
.footer-academic-v76 .footer-v76-social-row a{color:var(--footer-link,#dbe7ef)!important;text-decoration:none!important;border:1px solid var(--footer-border,#263244);border-radius:999px;padding:7px 12px;font-size:13px;background:rgba(255,255,255,.035);}
.footer-academic-v76 .footer-v76-bottom{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;gap:20px!important;align-items:center!important;color:var(--footer-bottom,#c9d5df)!important;font-size:var(--footer-bottom-size,13px)!important;border:0!important;padding:18px 0 0!important;margin:0!important;}
.footer-academic-v76 .footer-copy,.footer-academic-v76 .footer-legal-text,.footer-academic-v76 .footer-lang{color:var(--footer-bottom,#c9d5df)!important;font-size:var(--footer-bottom-size,13px)!important;opacity:.84!important;}
.footer-academic-v76 .footer-admin-provisional{margin-top:18px;text-align:center;font-size:12px;opacity:.38;}
.footer-academic-v76 .footer-admin-provisional a{color:var(--footer-bottom,#c9d5df)!important;text-decoration:none!important;}
@media(max-width:980px){.footer-academic-v76 .footer-v76-top,.footer-academic-v76.footer-layout-compact .footer-v76-top,.footer-academic-v76.footer-layout-columns .footer-v76-top{grid-template-columns:1fr!important}.footer-academic-v76 .footer-v76-links,.footer-academic-v76.footer-layout-columns .footer-v76-links{grid-template-columns:repeat(2,minmax(0,1fr))!important}.footer-academic-v76 .footer-v76-bottom{grid-template-columns:1fr!important;gap:10px!important}.footer-academic-v76 .footer-v76-social-row{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){.footer-academic-v76{padding-top:38px!important}.footer-academic-v76 .footer-v76-inner{width:min(100% - 32px,1180px)!important}.footer-academic-v76 .footer-v76-links{grid-template-columns:1fr!important}.footer-academic-v76 .footer-v76-trust{display:grid}.footer-academic-v76 .footer-v76-social-row div{display:grid;grid-template-columns:1fr 1fr;width:100%}.footer-academic-v76 .footer-v76-social-row a{text-align:center}}

/* FASE 5A1M - Footer moderno, funcional y alineado */
.site-footer-pro.footer-modern-v77{
  display:block!important;
  background:var(--footer-bg,#101827)!important;
  color:var(--footer-bottom,#c9d5df)!important;
  padding:62px 0 18px!important;
  border-top:1px solid var(--footer-border,#263244)!important;
  font-family:var(--ui,"Inter","Segoe UI",Arial,sans-serif)!important;
}
.footer-modern-v77 .footer-v77-shell{
  width:min(1280px,calc(100% - 64px))!important;
  margin:0 auto!important;
  padding:0!important;
  background:transparent!important;
  border-radius:0!important;
  box-shadow:none!important;
}
.footer-modern-v77 .footer-v77-main{
  display:grid!important;
  grid-template-columns:minmax(260px,.95fr) minmax(460px,1.65fr) minmax(260px,.85fr)!important;
  gap:48px!important;
  align-items:start!important;
  padding-bottom:46px!important;
  border-bottom:1px solid var(--footer-border,#263244)!important;
}
.footer-modern-v77.footer-layout-compact .footer-v77-main{
  grid-template-columns:minmax(280px,1.05fr) minmax(420px,1.35fr) minmax(240px,.8fr)!important;
}
.footer-modern-v77.footer-layout-columns .footer-v77-main{
  grid-template-columns:minmax(220px,.75fr) minmax(620px,1.75fr) minmax(260px,.85fr)!important;
}
.footer-modern-v77 .footer-v77-brand,
.footer-modern-v77 .footer-v77-col,
.footer-modern-v77 .footer-v77-contact{min-width:0!important;}
.footer-modern-v77 .footer-v77-brand{display:grid!important;gap:20px!important;align-content:start!important;}
.footer-modern-v77 .footer-v77-logo{display:inline-flex!important;width:max-content!important;max-width:240px!important;align-items:center!important;}
.footer-modern-v77 .footer-v77-logo img{display:block!important;width:230px!important;max-width:100%!important;max-height:70px!important;object-fit:contain!important;object-position:left center!important;}
.footer-modern-v77 .footer-v77-logo-text{display:inline-flex!important;color:var(--footer-title,#fff)!important;font-size:24px!important;font-weight:850!important;text-decoration:none!important;letter-spacing:-.02em!important;}
.footer-modern-v77 .footer-v77-brand p{margin:0!important;color:var(--footer-bottom,#c9d5df)!important;font-size:15px!important;line-height:1.75!important;opacity:.92!important;max-width:310px!important;}
.footer-modern-v77 .footer-v77-trust{list-style:none!important;padding:6px 0 0!important;margin:0!important;display:grid!important;gap:0!important;max-width:330px!important;}
.footer-modern-v77 .footer-v77-trust li{display:flex!important;align-items:center!important;gap:14px!important;color:var(--footer-link,#dbe7ef)!important;font-size:var(--footer-link-size,14px)!important;line-height:1.45!important;padding:15px 0!important;border-top:1px solid var(--footer-border,#263244)!important;opacity:.88!important;}
.footer-modern-v77 .footer-v77-trust li:before{content:"";width:32px;height:32px;flex:0 0 32px;border:1px solid rgba(22,163,74,.55);border-radius:999px;background:rgba(22,163,74,.08);box-shadow:inset 0 0 0 6px rgba(22,163,74,.035);}
.footer-modern-v77 .footer-v77-links{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:34px!important;align-items:start!important;}
.footer-modern-v77.footer-layout-compact .footer-v77-links{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
.footer-modern-v77 .footer-v77-col h3,
.footer-modern-v77 .footer-v77-contact h3{color:var(--footer-title,#fff)!important;font-size:var(--footer-title-size,16px)!important;line-height:1.25!important;margin:0 0 22px!important;font-weight:800!important;letter-spacing:.01em!important;text-transform:none!important;}
.footer-modern-v77 .footer-v77-col h3:after,
.footer-modern-v77 .footer-v77-contact h3:after{content:""!important;display:block!important;width:34px!important;height:3px!important;background:#0f8f4d!important;border-radius:99px!important;margin-top:12px!important;}
.footer-modern-v77 .footer-v77-col a{display:flex!important;align-items:flex-start!important;gap:10px!important;color:var(--footer-link,#dbe7ef)!important;font-size:var(--footer-link-size,14px)!important;line-height:1.45!important;text-decoration:none!important;margin:0 0 16px!important;opacity:.88!important;}
.footer-modern-v77 .footer-v77-col a span{color:#24b35a!important;font-size:18px!important;line-height:1!important;margin-top:0!important;}
.footer-modern-v77 .footer-v77-col a:hover,
.footer-modern-v77 .footer-v77-contact a:hover{opacity:1!important;color:#fff!important;text-decoration:none!important;}
.footer-modern-v77 .footer-v77-contact{display:grid!important;gap:0!important;padding-left:36px!important;border-left:1px solid var(--footer-border,#263244)!important;}
.footer-modern-v77 .footer-v77-contact-item{display:grid!important;grid-template-columns:30px 1fr!important;gap:14px!important;align-items:start!important;color:var(--footer-link,#dbe7ef)!important;text-decoration:none!important;font-size:var(--footer-link-size,14px)!important;line-height:1.45!important;padding:0 0 18px!important;margin:0 0 18px!important;border-bottom:1px solid var(--footer-border,#263244)!important;opacity:.9!important;}
.footer-modern-v77 .footer-v77-contact-item b{color:#22c55e!important;font-size:21px!important;line-height:1!important;font-weight:400!important;}
.footer-modern-v77 .footer-v77-whatsapp{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:max-content!important;padding:10px 15px!important;border-radius:999px!important;background:#17a34a!important;color:#fff!important;font-size:13px!important;font-weight:800!important;text-decoration:none!important;margin:0 0 16px!important;box-shadow:0 10px 20px rgba(15,143,77,.18)!important;}
.footer-modern-v77 .footer-v77-social{display:flex!important;gap:8px!important;flex-wrap:wrap!important;margin-top:4px!important;}
.footer-modern-v77 .footer-v77-social a{display:inline-flex!important;align-items:center!important;justify-content:center!important;color:var(--footer-link,#dbe7ef)!important;text-decoration:none!important;border:1px solid var(--footer-border,#263244)!important;border-radius:999px!important;padding:7px 11px!important;font-size:12px!important;background:rgba(255,255,255,.035)!important;}
.footer-modern-v77 .footer-v77-bottom{display:grid!important;grid-template-columns:minmax(0,1fr) auto auto!important;gap:28px!important;align-items:center!important;color:var(--footer-bottom,#c9d5df)!important;font-size:var(--footer-bottom-size,13px)!important;border:0!important;padding:26px 0 0!important;margin:0!important;}
.footer-modern-v77 .footer-v77-copy,
.footer-modern-v77 .footer-v77-lang{color:var(--footer-bottom,#c9d5df)!important;font-size:var(--footer-bottom-size,13px)!important;opacity:.86!important;}
.footer-modern-v77 .footer-v77-legal{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:18px!important;color:var(--footer-bottom,#c9d5df)!important;}
.footer-modern-v77 .footer-v77-legal span{position:relative!important;color:var(--footer-bottom,#c9d5df)!important;font-size:var(--footer-bottom-size,13px)!important;opacity:.86!important;white-space:nowrap!important;}
.footer-modern-v77 .footer-v77-legal span+span:before{content:""!important;position:absolute!important;left:-10px!important;top:50%!important;width:1px!important;height:14px!important;background:#0f8f4d!important;transform:translateY(-50%)!important;opacity:.9!important;}
.footer-modern-v77 .footer-admin-provisional{margin-top:18px!important;text-align:center!important;font-size:12px!important;opacity:.16!important;}
.footer-modern-v77 .footer-admin-provisional a{color:var(--footer-bottom,#c9d5df)!important;text-decoration:none!important;}
@media(max-width:1100px){
  .footer-modern-v77 .footer-v77-main,
  .footer-modern-v77.footer-layout-compact .footer-v77-main,
  .footer-modern-v77.footer-layout-columns .footer-v77-main{grid-template-columns:1fr!important;gap:34px!important;}
  .footer-modern-v77 .footer-v77-links,
  .footer-modern-v77.footer-layout-compact .footer-v77-links{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .footer-modern-v77 .footer-v77-contact{padding-left:0!important;border-left:0!important;border-top:1px solid var(--footer-border,#263244)!important;padding-top:28px!important;}
  .footer-modern-v77 .footer-v77-bottom{grid-template-columns:1fr!important;gap:12px!important;}
  .footer-modern-v77 .footer-v77-legal{justify-content:flex-start!important;flex-wrap:wrap!important;}
}
@media(max-width:620px){
  .site-footer-pro.footer-modern-v77{padding-top:42px!important;}
  .footer-modern-v77 .footer-v77-shell{width:min(100% - 30px,1280px)!important;}
  .footer-modern-v77 .footer-v77-links{grid-template-columns:1fr!important;gap:20px!important;}
  .footer-modern-v77 .footer-v77-logo img{width:205px!important;}
  .footer-modern-v77 .footer-v77-contact-item{grid-template-columns:26px 1fr!important;}
}

/* ===== FASE 5A1N: coherencia visual frontend y navegación pública ===== */
:root{
  --px-bg-soft:#f4f6f5;
  --px-ink:#101827;
  --px-text:#324155;
  --px-muted:#64748b;
  --px-line:#dbe3e1;
  --px-green:#07863b;
  --px-green-dark:#056b30;
  --px-card:#ffffff;
  --px-shadow:0 18px 42px rgba(16,24,39,.075);
  --px-shadow-soft:0 10px 28px rgba(16,24,39,.045);
  --px-radius:18px;
}
html{scroll-behavior:smooth;}
body{background:var(--courses-page-bg,var(--px-bg-soft));color:var(--px-text);}
.container{width:min(1240px,calc(100% - 48px));}
.topbar{height:78px;background:rgba(255,255,255,.94)!important;backdrop-filter:saturate(1.15) blur(10px);border-bottom:1px solid rgba(219,227,225,.9)!important;box-shadow:0 8px 24px rgba(16,24,39,.035);}
.nav{height:78px;}
.logo{width:220px;max-height:56px;object-fit:contain;}
.menu{gap:32px;align-items:center;}
.menu a{padding:28px 0 24px;color:#111827!important;font-weight:800;font-size:13px;letter-spacing:.055em;}
.menu a:after{bottom:18px;background:var(--px-green);height:3px;border-radius:999px;transition:transform .18s ease;}
.menu a:hover{color:var(--px-green)!important;}
.btn,.btn-admin,button,.interest{transition:background .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease,transform .18s ease;}
.btn.primary{background:var(--px-green)!important;border-color:var(--px-green)!important;color:#fff!important;box-shadow:0 12px 24px rgba(7,134,59,.16);}
.btn.primary:hover{background:var(--px-green-dark)!important;border-color:var(--px-green-dark)!important;transform:translateY(-1px);}
.btn.secondary,.btn:not(.primary):not(.yellow):not(.whatsapp){background:#fff!important;border-color:var(--px-line)!important;color:var(--px-ink)!important;}
.btn.whatsapp{background:#eefaf2!important;border-color:#ccefd8!important;color:var(--px-green)!important;}
.badge{background:#eef8f2!important;border:1px solid #cfeedd!important;color:var(--px-green)!important;font-weight:800;letter-spacing:.07em;}

/* Portada pública */
.hero-style.hero-full{min-height:520px;background-size:cover;background-position:center;border-bottom:1px solid var(--px-line);position:relative;}
.hero-main-smart:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(244,246,245,.94) 0%,rgba(244,246,245,.80) 36%,rgba(244,246,245,.30) 68%,rgba(244,246,245,.10) 100%);pointer-events:none;}
.hero-smart-inner{position:relative;z-index:2;min-height:520px;display:flex;align-items:center;}
.hero-smart-copy{max-width:min(var(--hero-copy-max,780px),760px);padding:48px 0;}
.hero-smart-copy h1{font-family:var(--display);font-weight:700;color:var(--px-ink);font-size:clamp(44px,5.4vw,76px);line-height:.98;letter-spacing:-.035em;margin:16px 0 16px;}
.hero-smart-copy p{max-width:min(var(--hero-copy-p-max,620px),650px);font-size:clamp(17px,1.55vw,22px);line-height:1.55;color:#334155;margin:0;}
.features-overlap{margin-top:-58px;padding-bottom:18px;}
.features-shell{background:rgba(255,255,255,.88)!important;border:1px solid var(--px-line);box-shadow:var(--px-shadow-soft);border-radius:20px!important;padding:16px!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;}
.feature-yellow{min-height:250px!important;border-radius:16px!important;padding:25px 24px!important;background:#fff!important;border:1px solid #e7ecea;}
.feature-yellow .feature-icon{font-size:30px!important;margin-bottom:16px!important;color:var(--px-green)!important;}
.feature-yellow h3{font-size:17px!important;line-height:1.25!important;color:var(--px-ink)!important;margin-bottom:10px!important;}
.feature-yellow p{font-size:15px!important;line-height:1.55!important;color:#526174!important;}
.catalog-reference{padding-top:44px;background:var(--courses-page-bg,var(--px-bg-soft));}
.catalog-reference-head h2{font-family:var(--display);font-weight:700;color:var(--px-ink);font-size:clamp(36px,4.3vw,62px);letter-spacing:-.03em;}
.catalog-reference-head p{font-weight:500;color:#4b5b70;max-width:840px;margin:0 auto!important;}
.catalog-tools{background:rgba(255,255,255,.86);border:1px solid var(--px-line);box-shadow:var(--px-shadow-soft);border-radius:16px;padding:14px;display:grid;grid-template-columns:1fr 240px auto;gap:12px;align-items:center;margin:0 auto 24px;}
.catalog-tools input,.catalog-tools select{border:1px solid var(--px-line);border-radius:12px;padding:13px 14px;background:#fff;color:var(--px-ink);font:inherit;}
.course-count-public{color:var(--px-muted);font-weight:700;font-size:14px;white-space:nowrap;}
.course-grid-shell{display:grid;gap:26px;}
.first-course-row,.grid{gap:22px!important;}
.first-course-row{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:stretch!important;}
.first-course-row .featured-card,.course-card.ref-card,.related-card{width:100%!important;min-height:auto!important;border-radius:18px!important;border:1px solid var(--px-line)!important;background:#fff!important;box-shadow:var(--px-shadow-soft)!important;overflow:hidden;}
.course-card:hover{box-shadow:var(--px-shadow)!important;transform:translateY(-2px);}
.first-course-row .featured-card .thumb,.ref-card .thumb{height:210px!important;background:#eef2f1!important;}
.first-course-row .featured-card .course-body,.ref-card .course-body{min-height:0!important;padding:22px!important;gap:12px!important;}
.first-course-row .featured-card .course-body h3,.ref-card .course-body h3{font-family:var(--ui)!important;font-size:23px!important;line-height:1.12!important;color:var(--px-ink)!important;font-weight:850!important;min-height:0!important;letter-spacing:-.025em;}
.first-course-row .featured-card .course-subtitle,.ref-card .course-subtitle{font-family:var(--ui)!important;font-size:16px!important;line-height:1.38!important;font-weight:650!important;color:#334155!important;}
.course-card-text,.ref-card .course-card-text,.course-body p{font-size:15px!important;line-height:1.55!important;color:#526174!important;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.card-bottom{border-top:1px solid #eef2f1;padding-top:14px!important;margin-top:auto!important;}
.interest{display:inline-flex;align-items:center;gap:6px;color:var(--px-green)!important;font-family:var(--ui)!important;font-size:14px!important;font-weight:850!important;}
.interest:after{content:"→";font-size:14px;}
.promo-divider{border-radius:22px!important;box-shadow:var(--px-shadow);overflow:hidden;border:1px solid rgba(255,255,255,.10);}
.two .panel,.panel{border-radius:18px!important;border:1px solid var(--px-line)!important;box-shadow:var(--px-shadow-soft);}

/* Ficha pública del curso */
.course-breadcrumb-wrap{background:#fff;border-bottom:1px solid var(--px-line);}
.course-breadcrumb{display:flex;gap:9px;align-items:center;padding:14px 0;font-size:13px;color:var(--px-muted);}
.course-breadcrumb a{color:var(--px-green);font-weight:750;}
.course-v74-hero{background:linear-gradient(180deg,#fff 0%,#f5f8f6 100%);padding:56px 0!important;border-bottom:1px solid var(--px-line);}
.course-v74-hero .hero-grid{grid-template-columns:minmax(0,1fr) minmax(360px,520px)!important;gap:48px!important;align-items:center;}
.course-hero-copy h1{font-family:var(--display);font-weight:700;color:var(--px-ink);font-size:clamp(42px,5vw,72px)!important;line-height:.98;letter-spacing:-.035em;margin:18px 0 16px;}
.course-hero-copy h1 span{color:#26364a;}
.course-hero-copy p{font-size:18px;line-height:1.65;color:#405169;max-width:720px;}
.course-hero-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:26px 0 22px;}
.course-hero-facts>div{background:#fff;border:1px solid var(--px-line);border-radius:16px;padding:16px;box-shadow:0 8px 20px rgba(16,24,39,.035);display:grid;grid-template-columns:36px 1fr;grid-template-areas:"icon small" "icon strong";column-gap:12px;align-items:center;}
.course-hero-facts .fact-icon{grid-area:icon;width:36px;height:36px;border-radius:999px;background:#eef8f2;color:var(--px-green);display:grid;place-items:center;font-size:18px;font-weight:900;}
.course-hero-facts small{grid-area:small;color:var(--px-muted);font-weight:800;font-size:12px;text-transform:uppercase;letter-spacing:.04em;}
.course-hero-facts strong{grid-area:strong;color:var(--px-ink);font-weight:850;font-size:15px;}
.course-detail-image{border-radius:24px!important;border:1px solid var(--px-line)!important;box-shadow:var(--px-shadow);background:#fff;}
.course-detail-image img{height:min(520px,54vw)!important;object-fit:cover!important;}
.course-actions{justify-content:flex-start!important;margin-top:10px!important;}
.course-jump-nav{position:sticky;top:78px;z-index:9;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--px-line);}
.course-jump-nav .container{display:flex;gap:8px;align-items:center;overflow:auto;padding:10px 0;}
.course-jump-nav a{display:inline-flex;padding:9px 13px;border-radius:999px;color:#334155;font-size:13px;font-weight:800;white-space:nowrap;}
.course-jump-nav a:hover{background:#eef8f2;color:var(--px-green);}
.course-production-section{background:var(--courses-page-bg,var(--px-bg-soft));}
.main-grid{grid-template-columns:minmax(0,1fr) 340px!important;gap:28px!important;}
.course-production-section .panel h2{font-family:var(--display);font-weight:700;color:var(--px-ink);font-size:clamp(30px,3vw,44px);letter-spacing:-.025em;margin-bottom:12px;}
.course-outcomes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.outcome-item{display:flex;gap:12px;align-items:flex-start;background:#fbfdfc;border:1px solid #e3ece8;border-radius:14px;padding:14px;}
.outcome-item span{width:28px;height:28px;flex:0 0 28px;border-radius:999px;background:#e8f7ee;color:var(--px-green);display:grid;place-items:center;font-weight:900;}
.outcome-item p{margin:0;line-height:1.48;color:#405169;}
.course-module-row{grid-template-columns:46px minmax(0,1fr) 22px!important;align-items:center;border:1px solid #e4ebe8!important;border-radius:14px;padding:14px!important;margin:10px 0;background:#fff;}
.course-module-row .num{background:#e8f7ee!important;color:var(--px-green)!important;border-radius:999px!important;width:36px!important;height:36px!important;}
.module-copy strong{font-size:16px;color:var(--px-ink);}
.module-chevron{color:var(--px-muted);font-weight:900;}
.course-side-card{position:sticky;top:140px;}
.course-side-card .facts li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #e6eeeb;color:#405169;}
.side-reserve-btn{width:100%;margin-top:18px;}
.related-courses-section{background:#fff;}
.compact-head{margin-bottom:22px!important;}
.compact-head h2{font-size:clamp(32px,3vw,48px);}
.mobile-sticky-reserve{box-shadow:0 -10px 24px rgba(16,24,39,.14)!important;}

/* Footer guard: evita que vuelva a aparecer amontonado */
.site-footer-pro.footer-modern-v77{background:var(--footer-bg,#101827)!important;padding:76px 0 28px!important;color:var(--footer-link,#dbe7ef)!important;}
.footer-modern-v77 .footer-v77-shell{width:min(100% - 56px,1320px)!important;margin:0 auto!important;}
.footer-modern-v77 .footer-v77-main{display:grid!important;grid-template-columns:minmax(260px,330px) minmax(0,1fr) minmax(260px,320px)!important;gap:48px!important;align-items:start!important;}
.footer-modern-v77 .footer-v77-links{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;gap:30px!important;min-width:0!important;}
.footer-modern-v77 .footer-v77-col a,.footer-modern-v77 .footer-v77-contact-item{word-break:normal!important;overflow-wrap:anywhere;}
.footer-admin-provisional{display:none!important;}

@media(max-width:1100px){
  .features-shell{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .first-course-row,.grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
  .catalog-tools{grid-template-columns:1fr 220px;}.course-count-public{grid-column:1/-1;}
  .course-v74-hero .hero-grid,.main-grid{grid-template-columns:1fr!important;}
  .course-side-card{position:static;}
  .footer-modern-v77 .footer-v77-main{grid-template-columns:1fr!important;gap:34px!important;}
}
@media(max-width:780px){
  .container{width:min(100% - 30px,1240px);}
  .topbar,.nav{height:auto;min-height:72px;}.topbar{padding:8px 0;}
  .logo{width:190px;}
  .menu{width:100%;gap:6px;justify-content:flex-start;overflow:auto;padding:6px 0 0;}
  .menu a{font-size:12px;padding:10px 4px;white-space:nowrap;}
  .menu a:after{display:none;}
  .hero-style.hero-full,.hero-smart-inner{min-height:460px;}
  .hero-main-smart:before{background:linear-gradient(180deg,rgba(244,246,245,.96) 0%,rgba(244,246,245,.82) 62%,rgba(244,246,245,.35) 100%);}
  .hero-smart-copy h1{font-size:42px;}
  .features-overlap{margin-top:18px;}.features-shell{grid-template-columns:1fr!important;}
  .first-course-row,.grid{grid-template-columns:1fr!important;}
  .catalog-tools{grid-template-columns:1fr;}
  .course-hero-facts{grid-template-columns:1fr;}
  .course-detail-image img{height:340px!important;}
  .course-outcomes-grid{grid-template-columns:1fr;}
  .footer-modern-v77 .footer-v77-shell{width:min(100% - 30px,1320px)!important;}
}

/* FASE 5A1W - Footer: quitar líneas intermedias y compactar bloques */
.site-footer-pro.footer-modern-v77 .footer-v77-trust{
  gap:6px!important;
}
.site-footer-pro.footer-modern-v77 .footer-v77-trust li{
  border-top:0!important;
  padding:8px 0!important;
  margin:0!important;
}
.site-footer-pro.footer-modern-v77 .footer-v77-contact{
  gap:4px!important;
}
.site-footer-pro.footer-modern-v77 .footer-v77-contact-item{
  border-bottom:0!important;
  padding:6px 0!important;
  margin:0!important;
}
.site-footer-pro.footer-modern-v77 .footer-v77-contact h3{
  margin-bottom:18px!important;
}

/* FASE 5A2B - Ajustes acumulados */
.course-admin-table th{
  font-size:15px!important;
}
.catalog-reference{
  padding-bottom:28px!important;
}
.catalog-reference + .section,
.catalog-reference + .band,
.section#contacto,
.band .section{
  padding-top:24px!important;
}
.site-footer-pro.footer-modern-v77 .footer-v77-trust{
  gap:2px!important;
}
.site-footer-pro.footer-modern-v77 .footer-v77-trust li{
  border-top:0!important;
  padding:5px 0!important;
  margin:0!important;
  line-height:1.22!important;
}
.site-footer-pro.footer-modern-v77 .footer-v77-trust li:before{
  width:26px!important;
  height:26px!important;
  flex-basis:26px!important;
}
.site-footer-pro.footer-modern-v77 .footer-v77-contact-item{
  border-bottom:0!important;
  padding:4px 0!important;
  margin:0!important;
  line-height:1.25!important;
}
.site-footer-pro.footer-modern-v77 .footer-v77-contact{
  gap:2px!important;
}

/* ===== FASE5A3G: reserva clara por grupo y horarios múltiples ===== */
html body .reserve-form.reserve-form-enhanced{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  grid-template-areas:
    "course course"
    "flow flow"
    "name phone"
    "email email"
    "notes notes"
    "button button"!important;
  gap:18px!important;
  align-items:start!important;
}
html body .reserve-form.reserve-form-enhanced .course-field{grid-area:course!important;}
html body .reserve-form.reserve-form-enhanced .reservation-flow{grid-area:flow!important;grid-column:1/-1!important;}
html body .reserve-form.reserve-form-enhanced .name-field{grid-area:name!important;}
html body .reserve-form.reserve-form-enhanced .phone-field{grid-area:phone!important;}
html body .reserve-form.reserve-form-enhanced .email-field{grid-area:email!important;}
html body .reserve-form.reserve-form-enhanced .notes-field{grid-area:notes!important;}
html body .reserve-form.reserve-form-enhanced button{grid-area:button!important;}
.reservation-flow{border:1px solid #dbe7df;background:linear-gradient(180deg,#f8fcfa,#ffffff);border-radius:18px;padding:18px;box-shadow:0 16px 34px rgba(16,24,40,.05);}
.reservation-flow-head{display:grid;gap:7px;margin-bottom:14px;}
.reservation-flow-head h3{font-family:var(--ui);font-size:22px;line-height:1.18;margin:0;color:#102034;font-weight:850;letter-spacing:-.02em;}
.reservation-flow-head p{margin:0;color:#5d6878;line-height:1.55;font-size:15px;}
.reservation-mini-badge{width:max-content;border:1px solid rgba(7,134,59,.18);background:#eef8f2;color:#087b3a;border-radius:999px;padding:6px 11px;font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.05em;}
.reservation-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:14px 0 16px;}
.reservation-steps span{background:#fff;border:1px solid #dfe7e2;border-radius:999px;padding:9px 10px;font-size:13px;font-weight:800;color:#344054;text-align:center;}
.reservation-steps strong{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#087b3a;color:#fff;margin-right:6px;font-size:12px;}
.reservation-groups-grid{display:grid;grid-template-columns:1fr;gap:12px;}
.reservation-group-card{border:1px solid #d8e4dc;background:#fff;border-radius:16px;padding:12px;transition:.18s ease;}
.reservation-group-card.is-selected{border-color:#0b8a3b;box-shadow:0 12px 28px rgba(11,138,59,.12);}
.reservation-group-choice{display:block!important;margin:0!important;font-weight:inherit!important;cursor:pointer;}
.reservation-group-choice input{position:absolute;opacity:0;pointer-events:none;}
.reservation-group-body{display:block;border-radius:13px;padding:12px;background:#f7faf8;border:1px solid transparent;}
.reservation-group-choice input:checked + .reservation-group-body{background:#eef8f2;border-color:#bfe2cc;}
.reservation-group-topline{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;}
.reservation-group-topline strong{font-size:17px;line-height:1.2;color:#101828;}
.reservation-group-topline em{font-style:normal;background:#fff;color:#087b3a;border:1px solid #cfe7d8;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:850;white-space:nowrap;}
.reservation-group-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px;color:#596579;font-size:13px;}
.reservation-group-meta span{background:#fff;border:1px solid #e3e8ef;border-radius:999px;padding:5px 9px;}
.reservation-schedule-zone{margin-top:11px;padding-top:11px;border-top:1px dashed #d9e4dd;}
.reservation-schedule-title{font-size:13px;font-weight:850;color:#344054;margin-bottom:8px;text-transform:uppercase;letter-spacing:.04em;}
.reservation-schedule-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;}
.reservation-schedule-chip{display:block!important;margin:0!important;font-weight:inherit!important;cursor:pointer;}
.reservation-schedule-chip input{position:absolute;opacity:0;pointer-events:none;}
.reservation-schedule-chip span{display:grid;gap:3px;border:1px solid #dfe7e2;background:#fff;border-radius:14px;padding:11px 12px;min-height:72px;transition:.16s ease;}
.reservation-schedule-chip strong{font-size:14px;color:#1d2939;line-height:1.25;}
.reservation-schedule-chip small{font-size:12px;color:#667085;font-weight:750;}
.reservation-schedule-chip input:checked + span{border-color:#0b8a3b;background:#edfbf2;box-shadow:inset 0 0 0 1px #0b8a3b;}
.reservation-schedule-chip.is-disabled{opacity:.55;cursor:not-allowed;}
.reservation-schedule-chip.is-disabled span{background:#f6f7f9;color:#8a93a3;}
.reservation-empty-state{border:1px dashed #d4dce6;background:#fff;border-radius:16px;padding:15px;display:grid;gap:5px;color:#5d6878;}
.reservation-empty-state strong{color:#172033;}
.reservation-live-summary{margin-top:14px;border:1px solid #cbe8d6;background:#f0fbf4;border-radius:16px;padding:14px 15px;display:grid;gap:4px;}
.reservation-live-summary strong{color:#0b5d33;font-size:14px;text-transform:uppercase;letter-spacing:.04em;}
.reservation-live-summary p{margin:0;color:#263445;line-height:1.45;font-weight:750;}
@media(max-width:780px){
  html body .reserve-form.reserve-form-enhanced{grid-template-columns:1fr!important;grid-template-areas:"course" "flow" "name" "phone" "email" "notes" "button"!important;}
  .reservation-steps{grid-template-columns:1fr;}
  .reservation-schedule-list{grid-template-columns:1fr;}
  .reservation-group-topline{display:grid;}
}

/* ===== FASE5A3H: estilización premium de reservaciones ===== */
html body .reservation-panel-pro{
  border:1px solid #e4ebe7 !important;
  background:linear-gradient(180deg,#fcfefd 0%,#ffffff 100%) !important;
  box-shadow:0 20px 46px rgba(15,23,42,.06) !important;
}
html body .reservation-panel-top{
  display:grid;
  gap:8px;
  margin-bottom:18px;
}
html body .reservation-top-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:7px 12px;
  border-radius:999px;
  background:#ecf8f0;
  border:1px solid #cfe8d7;
  color:#0a7b3a;
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
}
html body .reservation-panel-pro h2{
  margin:0;
}
html body .reservation-panel-pro .reserve-intro{
  margin:0;
  color:#5f6c7b;
  line-height:1.6;
  max-width:860px;
}

html body .reserve-form.reserve-form-enhanced{
  background:transparent !important;
  gap:18px 22px !important;
  grid-template-areas:
    "title1 title1"
    "course course"
    "flow flow"
    "title2 title2"
    "name phone"
    "email email"
    "notes notes"
    "button button" !important;
}
html body .reserve-form.reserve-form-enhanced .reservation-section-title{
  display:grid;
  gap:3px;
  padding:4px 2px 0;
}
html body .reserve-form.reserve-form-enhanced .reservation-section-title strong{
  color:#102034;
  font-size:18px;
  line-height:1.2;
  font-weight:850;
}
html body .reserve-form.reserve-form-enhanced .reservation-section-title small{
  color:#6b7685;
  font-size:13px;
  line-height:1.5;
}
html body .reserve-form.reserve-form-enhanced .reservation-eyebrow{
  color:#0b7b3b;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
html body .reserve-form.reserve-form-enhanced .reservation-section-title:first-of-type{grid-area:title1 !important;}
html body .reserve-form.reserve-form-enhanced .user-data-title{grid-area:title2 !important;}

html body .reserve-form.reserve-form-enhanced label{
  gap:9px;
  color:#102034;
  font-size:13px;
  font-weight:800;
}
html body .reserve-form.reserve-form-enhanced input,
html body .reserve-form.reserve-form-enhanced select,
html body .reserve-form.reserve-form-enhanced textarea{
  border:1px solid #d8e3dc !important;
  background:#fff !important;
  border-radius:14px !important;
  padding:13px 15px !important;
  color:#172433 !important;
  font-size:15px !important;
  box-shadow:0 1px 1px rgba(16,24,40,.02);
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
html body .reserve-form.reserve-form-enhanced select{
  min-height:50px;
}
html body .reserve-form.reserve-form-enhanced textarea{
  min-height:142px !important;
}
html body .reserve-form.reserve-form-enhanced input::placeholder,
html body .reserve-form.reserve-form-enhanced textarea::placeholder{
  color:#9aa4b2 !important;
}
html body .reserve-form.reserve-form-enhanced input:focus,
html body .reserve-form.reserve-form-enhanced select:focus,
html body .reserve-form.reserve-form-enhanced textarea:focus{
  border-color:#0b8a3b !important;
  box-shadow:0 0 0 4px rgba(11,138,59,.12) !important;
  outline:none !important;
}

html body .reservation-flow{
  padding:20px !important;
  border-radius:20px !important;
  border:1px solid #dce9e2 !important;
  background:linear-gradient(180deg,#f9fcfb 0%,#ffffff 100%) !important;
  box-shadow:0 18px 34px rgba(16,24,40,.05) !important;
}
html body .reservation-flow-head{
  gap:8px !important;
  margin-bottom:16px !important;
}
html body .reservation-mini-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:6px 11px;
  border-radius:999px;
  background:#102034;
  color:#fff;
  font-size:11px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
html body .reservation-flow-head h3{
  font-size:24px !important;
  line-height:1.15 !important;
}
html body .reservation-flow-head p{
  max-width:900px;
}
html body .reservation-steps{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin-bottom:14px;
}
html body .reservation-steps span{
  display:flex;
  align-items:center;
  gap:9px;
  padding:11px 12px;
  border-radius:14px;
  border:1px solid #dfe7e2;
  background:#fff;
  color:#475467;
  font-size:13px;
  font-weight:700;
}
html body .reservation-steps span strong{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  border-radius:50%;
  background:#eaf7ee;
  color:#0b8a3b;
  font-size:13px;
}
html body .reservation-steps span.is-active,
html body .reservation-steps span:first-child{
  border-color:#bfdec9;
  background:#effaf3;
  color:#0b5d33;
}
html body .reservation-help-strip{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-bottom:18px;
}
html body .reservation-help-strip span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  background:#fff;
  border:1px solid #e2e8e4;
  color:#516071;
  font-size:12px;
  font-weight:700;
}
html body .reservation-groups-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
html body .reservation-group-card{
  padding:14px !important;
  border-radius:18px !important;
  border:1px solid #d9e5de !important;
  background:linear-gradient(180deg,#ffffff 0%,#fbfdfc 100%) !important;
  box-shadow:0 8px 18px rgba(16,24,40,.03);
}
html body .reservation-group-card:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 28px rgba(16,24,40,.06);
}
html body .reservation-group-card.is-selected{
  border-color:#0b8a3b !important;
  background:linear-gradient(180deg,#ffffff 0%,#f1fbf5 100%) !important;
  box-shadow:0 16px 34px rgba(11,138,59,.12) !important;
}
html body .reservation-group-choice{
  display:block !important;
  cursor:pointer;
}
html body .reservation-group-choice input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
html body .reservation-group-body{
  display:grid;
  gap:8px;
}
html body .reservation-group-topline{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
html body .reservation-group-topline strong{
  color:#102034;
  font-size:17px;
  line-height:1.2;
}
html body .reservation-group-badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  justify-content:flex-end;
}
html body .reservation-group-badges em,
html body .reservation-group-badges small{
  display:inline-flex;
  align-items:center;
  padding:6px 10px;
  border-radius:999px;
  font-style:normal;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}
html body .reservation-group-badges em{
  background:#edf5ff;
  color:#1d4f91;
  border:1px solid #d6e4f8;
}
html body .reservation-group-badges small{
  background:#f2f4f7;
  color:#475467;
  border:1px solid #e4e7ec;
}
html body .reservation-group-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
html body .reservation-group-meta span{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:#667085;
  font-size:12px;
  font-weight:700;
}
html body .reservation-schedule-zone{
  margin-top:14px;
  padding-top:14px;
  border-top:1px dashed #d8e4dc;
}
html body .reservation-schedule-title{
  font-size:12px;
  font-weight:900;
  color:#0b5d33;
  letter-spacing:.06em;
  text-transform:uppercase;
  margin-bottom:10px;
}
html body .reservation-schedule-list{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
html body .reservation-schedule-chip{
  position:relative;
}
html body .reservation-schedule-chip span{
  position:relative;
  grid-template-columns:1fr;
  gap:4px !important;
  border-radius:15px !important;
  padding:12px 14px 12px 44px !important;
  min-height:74px !important;
}
html body .reservation-schedule-chip span::before{
  content:"";
  position:absolute;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  width:18px;
  height:18px;
  border-radius:50%;
  border:2px solid #c3d1cb;
  background:#fff;
}
html body .reservation-schedule-chip input:checked + span::before{
  border-color:#0b8a3b;
  background:radial-gradient(circle at center,#0b8a3b 0 45%,#ffffff 46% 100%);
}
html body .reservation-schedule-chip strong{
  font-size:14px !important;
  font-weight:850;
}
html body .reservation-schedule-chip small{
  font-size:12px !important;
  font-weight:700 !important;
}
html body .reservation-schedule-chip input:checked + span{
  background:#eefaf3 !important;
  border-color:#0b8a3b !important;
}
html body .reservation-empty-state{
  margin-top:16px;
  padding:16px 18px;
  border-radius:16px;
  border:1px dashed #cfdad3;
  background:#f9fbfa;
  color:#516071;
}
html body .reservation-empty-state strong{
  display:block;
  color:#102034;
  margin-bottom:5px;
}
html body .reservation-live-summary{
  margin-top:18px !important;
  border-radius:18px !important;
  padding:16px !important;
  background:linear-gradient(180deg,#f1fbf4 0%,#ffffff 100%) !important;
  border:1px solid #cce4d4 !important;
}
html body .reservation-live-summary-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
}
html body .reservation-live-summary-head strong{
  font-size:14px !important;
}
html body .reservation-live-summary-head span{
  color:#5d6b7c;
  font-size:12px;
  font-weight:700;
}
html body .reservation-summary-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-bottom:10px;
}
html body .reservation-summary-item{
  display:grid;
  gap:4px;
  padding:12px 13px;
  border-radius:14px;
  background:#fff;
  border:1px solid #deebe2;
}
html body .reservation-summary-item span{
  color:#667085;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}
html body .reservation-summary-item strong{
  color:#163047 !important;
  font-size:14px;
  line-height:1.35;
  text-transform:none !important;
  letter-spacing:normal !important;
}
html body .reservation-live-summary p{
  font-weight:700 !important;
  margin-bottom:10px !important;
}
html body .reservation-summary-tags{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
html body .summary-tag{
  display:inline-flex;
  align-items:center;
  padding:8px 11px;
  border-radius:999px;
  background:#ffffff;
  border:1px solid #d7e8dd;
  color:#16452a;
  font-size:12px;
  font-weight:800;
}
html body .summary-tag.is-placeholder{
  color:#667085;
  background:#f8faf9;
}
html body .reservation-submit-wrap{
  display:grid;
  gap:10px;
}
html body .reserve-form.reserve-form-enhanced button.btn.primary,
html body .reserve-form.reserve-form-enhanced .btn.primary{
  min-height:54px;
  border-radius:14px;
  font-weight:900;
  letter-spacing:.01em;
  box-shadow:0 14px 24px rgba(8,123,58,.18);
}
html body .reservation-submit-note{
  margin:0;
  color:#697586;
  font-size:13px;
  line-height:1.55;
}

@media(max-width:980px){
  html body .reservation-groups-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:760px){
  html body .reserve-form.reserve-form-enhanced{
    grid-template-columns:1fr !important;
    grid-template-areas:
      "title1"
      "course"
      "flow"
      "title2"
      "name"
      "phone"
      "email"
      "notes"
      "button" !important;
    gap:16px !important;
  }
  html body .reservation-flow{
    padding:16px !important;
  }
  html body .reservation-flow-head h3{
    font-size:21px !important;
  }
  html body .reservation-steps,
  html body .reservation-summary-grid{
    grid-template-columns:1fr;
  }
  html body .reservation-help-strip{
    flex-direction:column;
  }
  html body .reservation-group-topline{
    flex-direction:column;
  }
  html body .reservation-group-badges{
    justify-content:flex-start;
  }
  html body .reservation-live-summary-head{
    flex-direction:column;
  }
}


/* ===== FASE5A3I: producción reserva curso + horarios compactos ===== */
html body .reservation-panel-compact{
  padding:0 !important;
  border:0 !important;
  box-shadow:none !important;
  background:transparent !important;
}
html body .reservation-panel-compact .reservation-compact-stepper{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  margin:0 0 26px;
}
html body .reservation-compact-stepper span{
  display:flex;
  align-items:center;
  gap:10px;
  color:#5d6b7d;
  font-weight:800;
  position:relative;
}
html body .reservation-compact-stepper span:not(:last-child)::after{
  content:"";
  display:block;
  width:180px;
  height:2px;
  background:#dbe3df;
  margin-left:18px;
}
html body .reservation-compact-stepper b{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:50%;
  border:1px solid #dbe3df;
  background:#fff;
  color:#1c2938;
}
html body .reservation-compact-stepper .is-active{
  color:#0b7b3b;
}
html body .reservation-compact-stepper .is-active b{
  background:#0b8a3b;
  color:#fff;
  border-color:#0b8a3b;
}
html body .reservation-compact-stepper .is-active::after{
  background:#0b8a3b !important;
}
html body .reservation-panel-compact .reservation-panel-top{
  margin-bottom:18px;
}
html body .reservation-panel-compact .reservation-panel-top h2{
  font-size:42px !important;
  line-height:1.05 !important;
  margin:0 0 10px !important;
}
html body .reservation-panel-compact .reserve-intro{
  max-width:820px;
  color:#667085;
  line-height:1.55;
  font-size:16px;
}

html body .reserve-form.reserve-form-compact{
  display:block !important;
  background:transparent !important;
}
html body .reservation-main-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 420px;
  gap:34px;
  align-items:start;
}
html body .reservation-choice-panel,
html body .reservation-summary-card,
html body .reservation-data-card{
  background:#fff;
  border:1px solid #e3e9e5;
  border-radius:20px;
  box-shadow:0 18px 42px rgba(16,24,40,.055);
}
html body .reservation-choice-panel{
  padding:24px;
}
html body .reservation-step-head{
  display:flex;
  align-items:flex-start;
  gap:16px;
  margin-bottom:18px;
}
html body .reservation-step-number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  min-width:42px;
  border-radius:50%;
  background:#0b8a3b;
  color:#fff;
  font-weight:900;
}
html body .reservation-step-head h3{
  margin:0 0 5px;
  color:#102034;
  font-size:24px;
  line-height:1.15;
}
html body .reservation-step-head p{
  margin:0;
  color:#667085;
  line-height:1.5;
}
html body .compact-course-field{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:18px;
  color:#102034;
  font-weight:800;
  font-size:13px;
}
html body .compact-course-field select{
  min-height:54px;
  border:1px solid #dde6e0 !important;
  border-radius:14px !important;
  background:#fff !important;
  color:#111827 !important;
  font-size:16px !important;
  font-weight:800;
  padding:14px 16px !important;
}
html body .schedule-choice-area h4{
  margin:4px 0 14px;
  color:#102034;
  font-size:15px;
  font-weight:900;
}
html body .schedule-card-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
html body .reservation-option-card{
  display:block !important;
  position:relative;
  cursor:pointer;
  margin:0 !important;
  min-width:0;
}
html body .reservation-option-card input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
html body .option-card-inner{
  display:grid;
  gap:15px;
  min-height:178px;
  padding:20px 22px;
  border:1px solid #dde6e0;
  border-radius:17px;
  background:linear-gradient(180deg,#fff,#fefefe);
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease, transform .18s ease;
}
html body .reservation-option-card:hover .option-card-inner{
  border-color:#bfdec9;
  box-shadow:0 12px 26px rgba(16,24,40,.06);
  transform:translateY(-1px);
}
html body .reservation-option-card input:checked + .option-check + .option-card-inner{
  border-color:#0b8a3b;
  background:linear-gradient(180deg,#ffffff 0%,#f4fbf6 100%);
  box-shadow:0 14px 30px rgba(11,138,59,.12);
}
html body .option-check{
  position:absolute;
  top:18px;
  right:18px;
  width:24px;
  height:24px;
  border-radius:50%;
  border:2px solid #cfd8d3;
  background:#fff;
  z-index:2;
}
html body .reservation-option-card input:checked + .option-check{
  border-color:#0b8a3b;
  background:#0b8a3b;
}
html body .reservation-option-card input:checked + .option-check::after{
  content:"✓";
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#fff;
  font-size:14px;
  font-weight:900;
}
html body .option-card-top{
  display:flex;
  align-items:center;
  gap:12px;
  padding-right:28px;
}
html body .option-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:#eefaf3;
  color:#0b8a3b;
}
html body .option-icon svg{
  width:22px;
  height:22px;
}
html body .option-card-top strong{
  color:#102034;
  font-size:16px;
  font-weight:900;
}
html body .option-schedule-line{
  display:block;
  color:#0b6b33;
  font-size:20px;
  line-height:1.25;
  font-weight:950;
  letter-spacing:-.01em;
}
html body .option-meta-row{
  display:flex;
  align-items:center;
  gap:12px;
  color:#3d4958;
  font-size:14px;
  line-height:1.3;
}
html body .option-meta-row svg{
  width:18px;
  height:18px;
  color:#4b5565;
}
html body .option-meta-row b{
  color:#0b7b3b;
  font-weight:950;
}
html body .reservation-option-card.is-full{
  opacity:.62;
  cursor:not-allowed;
}
html body .reservation-info-strip{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:20px;
  padding:15px 16px;
  border-radius:14px;
  background:#f0fbf4;
  border:1px solid #d7ecdf;
  color:#0b6333;
}
html body .reservation-info-strip span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:50%;
  background:#0b8a3b;
  color:#fff;
  font-weight:900;
  font-style:normal;
}
html body .reservation-info-strip p{
  margin:0;
  font-size:14px;
  line-height:1.45;
  font-weight:700;
}

html body .reservation-side-panel{
  display:grid;
  gap:18px;
  position:sticky;
  top:20px;
}
html body .reservation-summary-card,
html body .reservation-data-card{
  padding:22px;
}
html body .summary-title-row,
html body .data-card-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:18px;
}
html body .summary-title-row h3,
html body .data-card-title h3{
  margin:0;
  color:#102034;
  font-size:22px;
  line-height:1.15;
}
html body .summary-icon,
html body .data-card-title span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;
  height:38px;
  border-radius:50%;
  background:#eefaf3;
  color:#0b8a3b;
}
html body .summary-icon svg,
html body .data-card-title svg{
  width:21px;
  height:21px;
}
html body .summary-line{
  display:grid;
  grid-template-columns:1fr auto;
  gap:12px;
  padding:13px 0;
  border-top:1px solid #e5ece8;
}
html body .summary-line span,
html body .summary-block > span{
  color:#344054;
  font-size:14px;
  font-weight:800;
}
html body .summary-line strong{
  color:#172433;
  font-size:15px;
  font-weight:900;
}
html body .summary-block{
  padding:13px 0;
  border-top:1px solid #e5ece8;
}
html body .summary-chip-list{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin-top:10px;
}
html body .summary-chip-list em{
  color:#8a94a3;
  font-style:normal;
  font-size:13px;
}
html body .summary-chip{
  border:0;
  border-radius:999px;
  background:#e8f7ed;
  color:#0b6b33;
  font-weight:850;
  padding:8px 11px;
  cursor:pointer;
}
html body .summary-chip span{
  margin-left:8px;
  opacity:.85;
}
html body .summary-progress{
  margin-top:12px;
}
html body .summary-progress div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#667085;
  font-size:13px;
  font-weight:800;
  margin-bottom:8px;
}
html body .summary-progress span{
  color:#0b7b3b;
}
html body .summary-progress i{
  display:block;
  height:5px;
  border-radius:999px;
  background:linear-gradient(90deg,#0b8a3b var(--progress,0%),#e3e7e5 var(--progress,0%));
}

html body .reservation-data-card label{
  display:flex !important;
  flex-direction:column;
  gap:8px;
  margin:0 0 14px !important;
  color:#102034;
  font-weight:850;
  font-size:13px;
}
html body .reservation-data-card label small{
  color:#667085;
  font-weight:750;
}
html body .reservation-data-card input,
html body .reservation-data-card textarea{
  width:100%;
  border:1px solid #dfe7e2 !important;
  border-radius:11px !important;
  background:#fff !important;
  color:#172433 !important;
  padding:12px 13px !important;
  font-size:14px !important;
  transition:border-color .18s ease, box-shadow .18s ease;
}
html body .reservation-data-card textarea{
  min-height:92px !important;
  resize:vertical;
}
html body .reservation-data-card input:focus,
html body .reservation-data-card textarea:focus{
  outline:0 !important;
  border-color:#0b8a3b !important;
  box-shadow:0 0 0 4px rgba(11,138,59,.12) !important;
}
html body .char-count{
  align-self:flex-end;
  color:#667085;
  font-size:12px;
  margin-top:-30px;
  padding-right:10px;
}
html body .reservation-data-card button.btn.primary{
  width:100%;
  min-height:55px;
  border-radius:12px !important;
  margin-top:4px;
  font-size:16px;
  font-weight:950;
  box-shadow:0 16px 28px rgba(8,123,58,.18);
}
html body .reservation-data-card button.btn.primary span{
  display:inline-block;
  transform:rotate(-12deg);
  margin-right:8px;
}
html body .reservation-trust-notes{
  display:grid;
  gap:10px;
  margin-top:16px;
}
html body .reservation-trust-notes p{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:0;
  color:#667085;
  font-size:13px;
  line-height:1.45;
}
html body .reservation-trust-notes p span{
  color:#0b8a3b;
  min-width:18px;
}

@media(max-width:1100px){
  html body .reservation-main-grid{
    grid-template-columns:1fr;
  }
  html body .reservation-side-panel{
    position:static;
  }
}
@media(max-width:760px){
  html body .reservation-compact-stepper{
    justify-content:flex-start;
    gap:12px;
    overflow-x:auto;
  }
  html body .reservation-compact-stepper span:not(:last-child)::after{
    width:80px;
  }
  html body .reservation-panel-compact .reservation-panel-top h2{
    font-size:32px !important;
  }
  html body .reservation-choice-panel{
    padding:18px;
  }
  html body .schedule-card-grid{
    grid-template-columns:1fr;
  }
  html body .option-schedule-line{
    font-size:18px;
  }
  html body .reservation-summary-card,
  html body .reservation-data-card{
    padding:18px;
  }
}


/* ===== FASE5A3J: corrección layout aprobado de reservaciones ===== */
html body .reservation-approved-section{
  padding-top:28px !important;
  padding-bottom:58px !important;
  background:#fff !important;
}
html body .reservation-approved-section .container{
  max-width:1280px !important;
}
html body .reservation-approved-shell{
  width:100% !important;
  margin:0 auto !important;
}
html body .reservation-approved-shell .reservation-panel-top{
  margin:0 0 20px !important;
}
html body .reservation-approved-shell .reservation-panel-top h2{
  font-size:44px !important;
  line-height:1.06 !important;
  margin:0 0 10px !important;
  color:#101828 !important;
}
html body .reservation-approved-shell .reserve-intro{
  max-width:760px !important;
  color:#667085 !important;
  font-size:16px !important;
  line-height:1.55 !important;
}
html body .reservation-approved-section .reservation-main-grid{
  grid-template-columns:minmax(0,1fr) 390px !important;
  gap:34px !important;
}
html body .reservation-approved-section .reservation-choice-panel{
  padding:26px !important;
  border-radius:20px !important;
}
html body .reservation-approved-section .reservation-step-head{
  margin-bottom:18px !important;
}
html body .reservation-approved-section .reservation-step-head h3{
  font-size:24px !important;
}
html body .reservation-approved-section .reservation-step-head p{
  display:none !important;
}
html body .reservation-approved-section .schedule-card-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:18px !important;
}
html body .reservation-approved-section .option-card-inner{
  min-height:166px !important;
  padding:18px 20px !important;
}
html body .reservation-approved-section .option-schedule-line{
  font-size:20px !important;
  line-height:1.22 !important;
  color:#0b6b33 !important;
  font-weight:950 !important;
}
html body .reservation-approved-section .reservation-side-panel{
  width:100% !important;
  max-width:390px !important;
}
html body .reservation-approved-section .reservation-summary-card,
html body .reservation-approved-section .reservation-data-card{
  border-radius:18px !important;
}
html body .reservation-approved-section .summary-chip{
  font-size:13px !important;
  line-height:1.15 !important;
}
html body .reservation-approved-section .reservation-data-card input,
html body .reservation-approved-section .reservation-data-card textarea{
  min-height:44px !important;
}
@media(max-width:1100px){
  html body .reservation-approved-section .reservation-main-grid{
    grid-template-columns:1fr !important;
  }
  html body .reservation-approved-section .reservation-side-panel{
    max-width:none !important;
  }
}
@media(max-width:760px){
  html body .reservation-approved-shell .reservation-panel-top h2{
    font-size:32px !important;
  }
  html body .reservation-approved-section .schedule-card-grid{
    grid-template-columns:1fr !important;
  }
}


/* ===== FASE5A3K HOTFIX: reserva encapsulada, sin SVG desbordados ===== */
html body .reservation-approved-section{
  padding:34px 0 62px !important;
  background:#fff !important;
}
html body .reservation-approved-section *{
  box-sizing:border-box !important;
}
html body .reservation-approved-section svg{
  width:18px !important;
  height:18px !important;
  max-width:18px !important;
  max-height:18px !important;
}
html body .reservation-approved-section .container{
  max-width:1280px !important;
  width:min(1280px, calc(100% - 48px)) !important;
  margin:0 auto !important;
}
html body .reservation-approved-shell{
  width:100% !important;
  margin:0 auto !important;
  display:block !important;
}
html body .reservation-compact-stepper{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:22px !important;
  margin:0 0 28px !important;
  color:#667085 !important;
}
html body .reservation-compact-stepper span{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  font-size:15px !important;
  font-weight:850 !important;
  color:#344054 !important;
}
html body .reservation-compact-stepper span:not(:last-child)::after{
  content:"" !important;
  display:block !important;
  width:160px !important;
  height:2px !important;
  background:#dce5e0 !important;
  margin-left:14px !important;
}
html body .reservation-compact-stepper b{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:38px !important;
  height:38px !important;
  border-radius:999px !important;
  border:1px solid #dce5e0 !important;
  background:#fff !important;
  color:#1d2939 !important;
  font-weight:900 !important;
}
html body .reservation-compact-stepper .is-active,
html body .reservation-compact-stepper .is-active b{
  color:#0b7b3b !important;
}
html body .reservation-compact-stepper .is-active b{
  background:#0b8a3b !important;
  border-color:#0b8a3b !important;
  color:#fff !important;
}
html body .reservation-compact-stepper .is-active::after{
  background:#0b8a3b !important;
}
html body .reservation-panel-top{
  margin:0 0 22px !important;
}
html body .reservation-panel-top h2{
  font-size:44px !important;
  line-height:1.05 !important;
  margin:0 0 10px !important;
  color:#101828 !important;
  letter-spacing:-.025em !important;
}
html body .reservation-panel-top .reserve-intro{
  max-width:760px !important;
  color:#667085 !important;
  font-size:16px !important;
  line-height:1.55 !important;
  margin:0 !important;
}

html body .pym-reserve{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
html body .pym-reserve-grid{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 390px !important;
  gap:34px !important;
  align-items:start !important;
  width:100% !important;
}
html body .pym-reserve-left,
html body .pym-summary,
html body .pym-data{
  background:#fff !important;
  border:1px solid #e3e9e5 !important;
  border-radius:20px !important;
  box-shadow:0 18px 42px rgba(16,24,40,.055) !important;
}
html body .pym-reserve-left{
  padding:26px !important;
  min-width:0 !important;
}
html body .pym-reserve-headline{
  display:flex !important;
  gap:16px !important;
  align-items:flex-start !important;
  margin:0 0 18px !important;
}
html body .pym-reserve-headline > span{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:42px !important;
  height:42px !important;
  min-width:42px !important;
  border-radius:50% !important;
  background:#0b8a3b !important;
  color:#fff !important;
  font-size:16px !important;
  font-weight:900 !important;
}
html body .pym-reserve-headline h3{
  margin:0 !important;
  color:#102034 !important;
  font-size:24px !important;
  line-height:1.15 !important;
  font-weight:900 !important;
  letter-spacing:-.015em !important;
}
html body .pym-reserve-headline p{
  margin:6px 0 0 !important;
  color:#667085 !important;
  line-height:1.5 !important;
  font-size:14px !important;
}
html body .pym-field{
  display:flex !important;
  flex-direction:column !important;
  gap:8px !important;
  color:#102034 !important;
  font-size:13px !important;
  font-weight:850 !important;
  margin:0 0 14px !important;
}
html body .pym-field input,
html body .pym-field select,
html body .pym-field textarea{
  width:100% !important;
  min-height:44px !important;
  border:1px solid #dfe7e2 !important;
  border-radius:11px !important;
  background:#fff !important;
  color:#172433 !important;
  padding:12px 13px !important;
  font-size:14px !important;
  line-height:1.35 !important;
  box-shadow:none !important;
}
html body .pym-course-field select{
  min-height:54px !important;
  border-radius:14px !important;
  font-size:16px !important;
  font-weight:850 !important;
}
html body .pym-schedules h4{
  margin:4px 0 14px !important;
  color:#102034 !important;
  font-size:15px !important;
  font-weight:900 !important;
}
html body .pym-schedule-grid{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:18px !important;
  width:100% !important;
}
html body .pym-slot{
  display:block !important;
  position:relative !important;
  margin:0 !important;
  cursor:pointer !important;
  min-width:0 !important;
  font-weight:normal !important;
}
html body .pym-slot input{
  position:absolute !important;
  opacity:0 !important;
  pointer-events:none !important;
  width:1px !important;
  height:1px !important;
}
html body .pym-slot-check{
  position:absolute !important;
  top:18px !important;
  right:18px !important;
  width:24px !important;
  height:24px !important;
  border-radius:50% !important;
  border:2px solid #cfd8d3 !important;
  background:#fff !important;
  z-index:2 !important;
}
html body .pym-slot input:checked + .pym-slot-check{
  background:#0b8a3b !important;
  border-color:#0b8a3b !important;
}
html body .pym-slot input:checked + .pym-slot-check::after{
  content:"✓" !important;
  position:absolute !important;
  inset:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#fff !important;
  font-size:14px !important;
  font-weight:900 !important;
}
html body .pym-slot-body{
  display:grid !important;
  gap:14px !important;
  min-height:166px !important;
  padding:18px 20px !important;
  border:1px solid #dde6e0 !important;
  border-radius:17px !important;
  background:#fff !important;
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease !important;
}
html body .pym-slot:hover .pym-slot-body{
  border-color:#bfdec9 !important;
  box-shadow:0 12px 26px rgba(16,24,40,.06) !important;
}
html body .pym-slot input:checked + .pym-slot-check + .pym-slot-body{
  border-color:#0b8a3b !important;
  background:linear-gradient(180deg,#ffffff 0%,#f4fbf6 100%) !important;
  box-shadow:0 14px 30px rgba(11,138,59,.12) !important;
}
html body .pym-slot-top{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  padding-right:34px !important;
}
html body .pym-slot-icon{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:40px !important;
  height:40px !important;
  min-width:40px !important;
  border-radius:50% !important;
  background:#eefaf3 !important;
  color:#0b8a3b !important;
  font-size:18px !important;
  line-height:1 !important;
}
html body .pym-slot-top strong{
  color:#102034 !important;
  font-size:16px !important;
  line-height:1.2 !important;
  font-weight:900 !important;
}
html body .pym-slot-line{
  display:block !important;
  color:#0b6b33 !important;
  font-size:20px !important;
  line-height:1.23 !important;
  font-weight:950 !important;
  letter-spacing:-.01em !important;
}
html body .pym-slot-meta{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  color:#3d4958 !important;
  font-size:14px !important;
  line-height:1.3 !important;
}
html body .pym-slot-meta b{
  color:#0b7b3b !important;
  font-weight:950 !important;
}
html body .pym-info{
  display:flex !important;
  align-items:center !important;
  gap:12px !important;
  margin-top:20px !important;
  padding:15px 16px !important;
  border-radius:14px !important;
  background:#f0fbf4 !important;
  border:1px solid #d7ecdf !important;
  color:#0b6333 !important;
}
html body .pym-info > span{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:28px !important;
  height:28px !important;
  min-width:28px !important;
  border-radius:50% !important;
  background:#0b8a3b !important;
  color:#fff !important;
  font-weight:900 !important;
}
html body .pym-info p{
  margin:0 !important;
  color:#0b6333 !important;
  font-size:14px !important;
  font-weight:750 !important;
  line-height:1.45 !important;
}
html body .pym-reserve-right{
  display:grid !important;
  gap:18px !important;
  position:sticky !important;
  top:20px !important;
  width:100% !important;
  min-width:0 !important;
}
html body .pym-summary,
html body .pym-data{
  padding:22px !important;
}
html body .pym-card-title,
html body .pym-data-title{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:14px !important;
  margin:0 0 18px !important;
}
html body .pym-card-title h3,
html body .pym-data-title h3{
  margin:0 !important;
  color:#102034 !important;
  font-size:22px !important;
  line-height:1.15 !important;
  font-weight:900 !important;
}
html body .pym-card-title > span,
html body .pym-data-title > span{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:38px !important;
  height:38px !important;
  min-width:38px !important;
  border-radius:50% !important;
  background:#eefaf3 !important;
  color:#0b8a3b !important;
  font-size:18px !important;
}
html body .pym-summary-row{
  display:grid !important;
  grid-template-columns:1fr auto !important;
  gap:12px !important;
  padding:13px 0 !important;
  border-top:1px solid #e5ece8 !important;
}
html body .pym-summary-row span,
html body .pym-summary-block > span{
  color:#344054 !important;
  font-size:14px !important;
  font-weight:800 !important;
}
html body .pym-summary-row strong{
  color:#172433 !important;
  font-size:15px !important;
  font-weight:900 !important;
}
html body .pym-summary-block{
  padding:13px 0 !important;
  border-top:1px solid #e5ece8 !important;
}
html body .pym-chip-list{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:9px !important;
  margin-top:10px !important;
}
html body .pym-chip-list em{
  color:#8a94a3 !important;
  font-style:normal !important;
  font-size:13px !important;
}
html body .pym-chip{
  border:0 !important;
  border-radius:999px !important;
  background:#e8f7ed !important;
  color:#0b6b33 !important;
  font-weight:850 !important;
  padding:8px 11px !important;
  cursor:pointer !important;
  font-size:13px !important;
  line-height:1.2 !important;
}
html body .pym-progress{
  margin-top:12px !important;
}
html body .pym-progress div{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  color:#667085 !important;
  font-size:13px !important;
  font-weight:800 !important;
  margin-bottom:8px !important;
}
html body .pym-progress span{
  color:#0b7b3b !important;
}
html body .pym-progress i{
  display:block !important;
  height:5px !important;
  border-radius:999px !important;
  background:linear-gradient(90deg,#0b8a3b var(--progress,0%),#e3e7e5 var(--progress,0%)) !important;
}
html body .pym-data textarea{
  min-height:92px !important;
  resize:vertical !important;
}
html body .pym-count{
  align-self:flex-end !important;
  color:#667085 !important;
  font-size:12px !important;
  margin-top:-30px !important;
  padding-right:10px !important;
}
html body .pym-submit{
  width:100% !important;
  min-height:55px !important;
  border:0 !important;
  border-radius:12px !important;
  background:#0b8a3b !important;
  color:#fff !important;
  font-size:16px !important;
  font-weight:950 !important;
  cursor:pointer !important;
  box-shadow:0 16px 28px rgba(8,123,58,.18) !important;
}
html body .pym-trust{
  display:grid !important;
  gap:10px !important;
  margin-top:16px !important;
}
html body .pym-trust p{
  display:flex !important;
  align-items:flex-start !important;
  gap:10px !important;
  margin:0 !important;
  color:#667085 !important;
  font-size:13px !important;
  line-height:1.45 !important;
}
@media(max-width:1100px){
  html body .pym-reserve-grid{
    grid-template-columns:1fr !important;
  }
  html body .pym-reserve-right{
    position:static !important;
  }
}
@media(max-width:760px){
  html body .reservation-approved-section .container{
    width:min(100% - 24px, 1280px) !important;
  }
  html body .reservation-compact-stepper{
    justify-content:flex-start !important;
    overflow-x:auto !important;
  }
  html body .reservation-compact-stepper span:not(:last-child)::after{
    width:80px !important;
  }
  html body .reservation-panel-top h2{
    font-size:32px !important;
  }
  html body .pym-reserve-left,
  html body .pym-summary,
  html body .pym-data{
    padding:18px !important;
  }
  html body .pym-schedule-grid{
    grid-template-columns:1fr !important;
  }
  html body .pym-slot-line{
    font-size:18px !important;
  }
}


/* ===== FASE5A3N: diseño aprobado página detalle de curso ===== */
:root{
  --pym-green:#078334;
  --pym-green-2:#0b8a3b;
  --pym-green-soft:#eef8f1;
  --pym-ink:#071733;
  --pym-muted:#5c687a;
  --pym-line:#e4e9e6;
  --pym-card:#ffffff;
  --pym-bg:#fbfcfb;
}
.course-approved-page{
  background:
    radial-gradient(circle at 76% 11%, rgba(11,138,59,.08), transparent 25%),
    linear-gradient(180deg,#ffffff 0%,#fbfcfb 100%);
  padding:22px 0 38px;
  color:var(--pym-ink);
}
.course-approved-container{
  width:min(1320px, calc(100% - 56px));
  margin:0 auto;
}
.course-approved-breadcrumb{
  display:flex;
  align-items:center;
  gap:12px;
  margin:6px 0 24px;
  color:#667085;
  font-size:13px;
  font-weight:750;
}
.course-approved-breadcrumb a{
  color:#344054;
  text-decoration:none;
}
.course-approved-breadcrumb strong{
  color:#111827;
}
.course-approved-hero{
  display:grid;
  grid-template-columns:minmax(0,.95fr) minmax(420px,.95fr);
  gap:34px;
  align-items:center;
  min-height:330px;
}
.course-approved-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:7px 14px;
  border-radius:999px;
  background:var(--pym-green-soft);
  color:var(--pym-green);
  font-size:12px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.course-approved-hero h1{
  margin:16px 0 14px;
  color:#0b1734;
  font-family:Georgia, "Times New Roman", serif;
  font-weight:800;
  font-size:clamp(44px,5.2vw,70px);
  line-height:.98;
  letter-spacing:-.04em;
}
.course-approved-hero h1 span{
  color:#0b1734;
}
.course-approved-hero p{
  max-width:650px;
  margin:0 0 24px;
  color:#253247;
  font-size:17px;
  line-height:1.55;
}
.course-approved-actions{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
}
.course-approved-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:56px;
  padding:0 30px;
  border-radius:10px;
  border:1px solid transparent;
  font-weight:900;
  line-height:1;
  text-decoration:none;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.course-approved-btn:hover{
  transform:translateY(-1px);
}
.course-approved-btn.primary,
.course-approved-btn.reserve{
  background:linear-gradient(180deg,#0b8f3e,#06742f);
  color:#fff;
  box-shadow:0 18px 30px rgba(6,116,47,.17);
}
.course-approved-btn.primary::before{
  content:"▣";
  font-size:16px;
}
.course-approved-btn.reserve{
  width:100%;
  margin-top:24px;
  font-size:18px;
}
.course-approved-btn.reserve::after{
  content:"→";
  margin-left:auto;
  font-size:24px;
  line-height:1;
}
.course-approved-btn.secondary{
  background:#fff;
  border-color:#d8e0dc;
  color:#0b1734;
}
.course-approved-btn.secondary::before{
  content:"⌁";
  color:var(--pym-green);
  font-size:18px;
}
.course-approved-hero-image{
  position:relative;
  min-height:320px;
  border-radius:0 0 0 80px;
  overflow:hidden;
}
.course-approved-hero-image img{
  display:block;
  width:100%;
  height:360px;
  object-fit:cover;
  object-position:center;
}
.course-approved-facts{
  display:grid;
  grid-template-columns:repeat(5, minmax(0,1fr));
  gap:14px;
  margin:30px 0 30px;
}
.course-approved-facts article{
  display:flex;
  align-items:center;
  gap:14px;
  min-height:78px;
  background:#fff;
  border:1px solid var(--pym-line);
  border-radius:14px;
  padding:16px 18px;
  box-shadow:0 10px 24px rgba(16,24,40,.035);
}
.course-approved-facts span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  min-width:36px;
  color:var(--pym-green);
  font-size:24px;
}
.course-approved-facts small{
  display:block;
  color:#4d596b;
  font-size:12px;
  font-weight:850;
}
.course-approved-facts strong{
  display:block;
  color:#142039;
  font-size:13px;
  line-height:1.25;
  margin-top:4px;
}
.course-approved-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 380px;
  gap:28px;
  align-items:start;
}
.course-approved-main{
  display:grid;
  gap:14px;
}
.course-approved-card{
  background:#fff;
  border:1px solid var(--pym-line);
  border-radius:16px;
  box-shadow:0 12px 28px rgba(16,24,40,.035);
}
.course-approved-icon-card{
  display:grid;
  grid-template-columns:92px minmax(0,1fr);
  gap:18px;
  padding:22px 26px 22px 20px;
}
.course-approved-icon-card.compact{
  min-height:190px;
}
.cap-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:66px;
  height:66px;
  border-radius:50%;
  background:var(--pym-green-soft);
  color:var(--pym-green);
  font-size:36px;
  line-height:1;
  margin:4px auto 0;
}
.course-approved-card h2{
  margin:0 0 10px;
  color:#0b1734;
  font-family:Georgia, "Times New Roman", serif;
  font-size:25px;
  line-height:1.15;
  font-weight:800;
}
.course-approved-card p{
  margin:0;
  color:#263449;
  line-height:1.55;
  font-size:15px;
}
.course-approved-bullets,
.course-approved-checks{
  margin:0;
  padding:0;
  list-style:none;
  display:grid;
  gap:8px;
}
.course-approved-bullets li,
.course-approved-checks li{
  position:relative;
  padding-left:22px;
  color:#253247;
  line-height:1.45;
  font-size:14px;
}
.course-approved-bullets li::before{
  content:"•";
  position:absolute;
  left:3px;
  color:var(--pym-green);
  font-size:20px;
  line-height:1;
}
.course-approved-checks{
  grid-template-columns:repeat(2,minmax(0,1fr));
  column-gap:34px;
}
.course-approved-checks li::before{
  content:"✓";
  position:absolute;
  left:0;
  color:var(--pym-green);
  font-weight:900;
}
.course-approved-modules{
  display:grid;
  gap:0;
}
.course-approved-modules details{
  border-bottom:1px solid var(--pym-line);
}
.course-approved-modules details:last-child{
  border-bottom:0;
}
.course-approved-modules summary{
  list-style:none;
  cursor:pointer;
  display:grid;
  grid-template-columns:120px minmax(0,1fr) 22px;
  gap:16px;
  align-items:center;
  padding:11px 0;
  color:#263449;
  font-size:14px;
}
.course-approved-modules summary::-webkit-details-marker{display:none}
.course-approved-modules summary strong{
  color:#0d1730;
  font-weight:900;
}
.course-approved-modules summary::after{
  content:"⌄";
  color:#0b1734;
  justify-self:end;
}
.course-approved-two{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.course-approved-side{
  position:sticky;
  top:22px;
}
.course-approved-reserve{
  background:#fff;
  border:1px solid var(--pym-line);
  border-radius:18px;
  box-shadow:0 20px 42px rgba(16,24,40,.055);
  padding:32px 32px 28px;
}
.reserve-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  border-radius:50%;
  background:var(--pym-green-soft);
  color:var(--pym-green);
  font-size:28px;
  margin-bottom:10px;
}
.course-approved-reserve h2{
  margin:0 0 16px;
  color:#0b1734;
  font-family:Georgia, "Times New Roman", serif;
  font-size:30px;
  line-height:1.12;
}
.course-approved-reserve > p{
  margin:0 0 24px;
  color:#465468;
  line-height:1.55;
  font-size:16px;
}
.reserve-steps{
  display:grid;
  gap:22px;
}
.reserve-steps div{
  display:grid;
  grid-template-columns:46px minmax(0,1fr);
  column-gap:16px;
  align-items:start;
}
.reserve-steps span{
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  border-radius:50%;
  background:var(--pym-green-soft);
  color:var(--pym-green);
  font-size:20px;
  font-weight:950;
  grid-row:span 2;
}
.reserve-steps strong{
  display:block;
  color:#0d1730;
  font-size:15px;
  line-height:1.25;
  font-weight:950;
  margin-top:2px;
}
.reserve-steps small{
  display:block;
  color:#5e6c7e;
  line-height:1.45;
  margin-top:4px;
  font-size:14px;
}
.secure-note{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  color:#2e3a4e;
  font-size:14px;
  margin-top:18px;
}
.course-approved-help{
  margin-top:28px;
  display:grid;
  grid-template-columns:1.2fr repeat(3,1fr);
  gap:0;
  align-items:center;
  background:#fff;
  border:1px solid var(--pym-line);
  border-radius:16px;
  box-shadow:0 12px 28px rgba(16,24,40,.035);
  overflow:hidden;
}
.course-approved-help > div{
  padding:26px 32px;
  text-align:center;
}
.course-approved-help h2{
  margin:0 0 5px;
  font-family:Georgia, "Times New Roman", serif;
  color:#0b1734;
  font-size:24px;
}
.course-approved-help p{
  margin:0;
  color:#667085;
}
.course-approved-help a{
  padding:22px 24px;
  color:#2b374b;
  text-decoration:none;
  border-left:1px solid var(--pym-line);
  font-size:14px;
}
.course-approved-help a strong{
  display:block;
  margin-top:5px;
  color:#0b1734;
  font-size:15px;
}
.course-reservation-page{
  background:#fbfcfb;
  padding:24px 0 64px;
}
.reservation-page-head{
  margin:22px auto 24px;
  max-width:850px;
  text-align:center;
}
.reservation-page-head h1{
  margin:12px 0 10px;
  font-family:Georgia, "Times New Roman", serif;
  color:#0b1734;
  font-size:44px;
}
.reservation-page-head p{
  color:#5d6b7d;
  line-height:1.6;
}
.reservation-page-card{
  max-width:1180px;
  margin:0 auto;
}
@media(max-width:1120px){
  .course-approved-hero,
  .course-approved-layout{
    grid-template-columns:1fr;
  }
  .course-approved-side{
    position:static;
  }
  .course-approved-facts{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .course-approved-hero-image{
    border-radius:24px;
  }
}
@media(max-width:760px){
  .course-approved-container{
    width:min(100% - 24px, 1320px);
  }
  .course-approved-hero h1{
    font-size:42px;
  }
  .course-approved-facts,
  .course-approved-two,
  .course-approved-help,
  .course-approved-checks{
    grid-template-columns:1fr;
  }
  .course-approved-icon-card{
    grid-template-columns:1fr;
  }
  .cap-icon{
    margin:0;
  }
  .course-approved-modules summary{
    grid-template-columns:1fr 22px;
  }
  .course-approved-modules summary strong{
    grid-column:1/-1;
  }
  .course-approved-help a{
    border-left:0;
    border-top:1px solid var(--pym-line);
  }
}


/* ===== FASE5A3P: carrusel principal de portada ===== */
.home-carousel-hero{
  position:relative;
  min-height:680px;
  overflow:hidden;
  background:#f7faf8;
  isolation:isolate;
}
.home-carousel-track,
.home-carousel-slide{
  position:absolute;
  inset:0;
}
.home-carousel-slide{
  opacity:0;
  pointer-events:none;
  background-size:cover;
  background-position:center right;
  transition:opacity .75s ease;
}
.home-carousel-slide.is-active{
  opacity:1;
  pointer-events:auto;
  z-index:2;
}
.home-carousel-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.98) 0%, rgba(255,255,255,.94) 34%, rgba(255,255,255,.70) 58%, rgba(255,255,255,.20) 100%),
    radial-gradient(circle at 20% 55%, rgba(11,138,59,.12), transparent 30%);
}
.home-carousel-inner{
  position:relative;
  z-index:4;
  min-height:680px;
  display:flex;
  align-items:center;
}
.home-carousel-copy{
  width:min(650px, 92vw);
  padding:80px 0 120px;
}
.home-carousel-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:8px 15px;
  border-radius:999px;
  background:#eaf8ef;
  color:#087b35;
  font-size:12px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.home-carousel-copy h1{
  margin:20px 0 18px;
  color:#0b1734;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(46px,5.6vw,76px);
  line-height:.98;
  letter-spacing:-.045em;
  font-weight:800;
}
.home-carousel-copy p{
  margin:0 0 30px;
  max-width:590px;
  color:#263449;
  font-size:19px;
  line-height:1.58;
}
.home-carousel-actions{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
}
.home-carousel-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:58px;
  padding:0 30px;
  border-radius:11px;
  text-decoration:none;
  font-weight:900;
  font-size:16px;
  transition:transform .16s ease, box-shadow .16s ease;
}
.home-carousel-btn:hover{
  transform:translateY(-1px);
}
.home-carousel-btn.primary{
  background:linear-gradient(180deg,#0b8f3e,#06742f);
  color:#fff;
  box-shadow:0 18px 32px rgba(6,116,47,.20);
}
.home-carousel-btn.primary::before{
  content:"▣";
  margin-right:10px;
}
.home-carousel-btn.secondary{
  background:rgba(255,255,255,.88);
  border:1px solid #0b1734;
  color:#0b1734;
}
.home-carousel-btn.secondary::before{
  content:"ⓘ";
  margin-right:10px;
  color:#0b1734;
}
.home-carousel-nav{
  position:absolute;
  z-index:8;
  top:50%;
  transform:translateY(-50%);
  width:46px;
  height:46px;
  border:1px solid rgba(11,23,52,.12);
  border-radius:50%;
  background:rgba(255,255,255,.82);
  color:#0b1734;
  font-size:34px;
  line-height:1;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 12px 28px rgba(16,24,40,.10);
}
.home-carousel-nav.prev{left:22px}
.home-carousel-nav.next{right:22px}
.home-carousel-dots{
  position:absolute;
  left:50%;
  bottom:26px;
  transform:translateX(-50%);
  z-index:8;
  display:flex;
  gap:10px;
}
.home-carousel-dots button{
  width:12px;
  height:12px;
  border:0;
  border-radius:999px;
  background:rgba(7,23,51,.22);
  cursor:pointer;
  transition:width .2s ease, background .2s ease;
}
.home-carousel-dots button.is-active{
  width:34px;
  background:#087b35;
}
@media(max-width:900px){
  .home-carousel-hero,
  .home-carousel-inner{
    min-height:720px;
  }
  .home-carousel-slide{
    background-position:center right;
  }
  .home-carousel-shade{
    background:linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(255,255,255,.93) 47%, rgba(255,255,255,.60) 100%);
  }
  .home-carousel-inner{
    align-items:flex-start;
  }
  .home-carousel-copy{
    padding:54px 0 180px;
  }
  .home-carousel-copy h1{
    font-size:42px;
  }
  .home-carousel-copy p{
    font-size:16px;
  }
  .home-carousel-actions{
    flex-direction:column;
    max-width:360px;
  }
  .home-carousel-nav{
    display:none;
  }
}
@media(max-width:560px){
  .home-carousel-hero,
  .home-carousel-inner{
    min-height:710px;
  }
  .home-carousel-copy h1{
    font-size:36px;
  }
}

/* Admin carrusel */
.carousel-admin-notice{
  margin-top:20px;
}
.admin-card-soft.carousel-admin-box{
  padding:20px;
  border:1px solid #dfe7e2;
  border-radius:18px;
  background:#fbfcfb;
  margin-bottom:22px;
}
.carousel-admin-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:16px;
}
.carousel-admin-slide{
  background:#fff;
  border:1px solid #dfe7e2;
  border-radius:16px;
  padding:16px;
}
.carousel-admin-slide h3{
  margin:0 0 12px;
  color:#102034;
}
.carousel-admin-preview{
  border:1px solid #dfe7e2;
  border-radius:14px;
  overflow:hidden;
  background:#f3f6f5;
  margin-bottom:12px;
}
.carousel-admin-preview img{
  display:block;
  width:100%;
  height:128px;
  object-fit:cover;
}
@media(max-width:1100px){
  .carousel-admin-grid{
    grid-template-columns:1fr;
  }
}


/* ===== FASE5A3Q: contacto simple en portada, sin formulario de reserva ===== */
.home-contact-section{
  background:linear-gradient(180deg,#ffffff 0%,#f8fbf9 100%);
}
.home-contact-panel{
  display:grid;
  grid-template-columns:minmax(0,.86fr) minmax(420px,1fr);
  gap:34px;
  align-items:start;
  background:#fff;
  border:1px solid #e3e9e5;
  border-radius:22px;
  padding:34px;
  box-shadow:0 18px 44px rgba(16,24,40,.055);
}
.home-contact-copy h2{
  margin:14px 0 12px;
  color:#0b1734;
  font-family:Georgia,"Times New Roman",serif;
  font-size:38px;
  line-height:1.08;
  letter-spacing:-.025em;
}
.home-contact-copy p{
  margin:0;
  color:#4d5a6d;
  font-size:17px;
  line-height:1.6;
  max-width:580px;
}
.home-contact-methods{
  display:grid;
  gap:12px;
  margin-top:28px;
}
.home-contact-methods a{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  padding:18px 20px;
  border:1px solid #e3e9e5;
  border-radius:14px;
  background:#fbfcfb;
  color:#0b1734;
  text-decoration:none;
}
.home-contact-methods strong{
  color:#087b35;
  font-weight:950;
}
.home-contact-methods span{
  color:#344054;
  font-weight:850;
}
.home-contact-form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  padding:24px;
  border:1px solid #e3e9e5;
  border-radius:18px;
  background:#fbfcfb;
}
.home-contact-form label{
  display:flex;
  flex-direction:column;
  gap:8px;
  color:#102034;
  font-size:13px;
  font-weight:850;
}
.home-contact-form .span2{
  grid-column:1/-1;
}
.home-contact-form input,
.home-contact-form select,
.home-contact-form textarea{
  width:100%;
  border:1px solid #dfe7e2;
  border-radius:11px;
  background:#fff;
  color:#172433;
  padding:13px 14px;
  font-size:14px;
  min-height:46px;
}
.home-contact-form textarea{
  min-height:120px;
  resize:vertical;
}
.home-contact-form input:focus,
.home-contact-form select:focus,
.home-contact-form textarea:focus{
  outline:0;
  border-color:#087b35;
  box-shadow:0 0 0 4px rgba(8,123,53,.12);
}
.home-contact-form button{
  grid-column:1/-1;
  min-height:54px;
  border:0;
  border-radius:12px;
  background:linear-gradient(180deg,#0b8f3e,#06742f);
  color:#fff;
  font-size:16px;
  font-weight:950;
  cursor:pointer;
  box-shadow:0 16px 28px rgba(8,123,58,.18);
}
.home-contact-form button::before{
  content:"➤";
  margin-right:10px;
}
.home-contact-form small{
  grid-column:1/-1;
  text-align:center;
  color:#667085;
}
@media(max-width:960px){
  .home-contact-panel{
    grid-template-columns:1fr;
    padding:22px;
  }
}
@media(max-width:620px){
  .home-contact-form{
    grid-template-columns:1fr;
    padding:18px;
  }
  .home-contact-copy h2{
    font-size:30px;
  }
  .home-contact-methods a{
    flex-direction:column;
    align-items:flex-start;
  }
}


/* ===== FASE5A3S: organización admin > portada ===== */
.admin-help-text{
  margin: -4px 0 18px;
  color:#5f6b7a;
  font-size:14px;
  line-height:1.5;
}
#tab-portada .carousel-admin-notice{
  margin-top:10px;
  background:#f0fbf4;
  border-color:#cfead8;
}
#tab-portada .carousel-admin-box{
  margin-bottom:26px;
  box-shadow:0 12px 30px rgba(16,24,40,.04);
}
#tab-portada .control-preview-pair{
  margin-top:10px;
  padding-top:18px;
  border-top:1px solid #e5ece8;
}
#tab-portada .hero-maintenance-title{
  background:#f7faf8;
  border:1px solid #e1e8e4;
  border-radius:14px;
  padding:14px 16px;
  margin-bottom:10px;
}
#tab-portada .hero-maintenance-title span{
  display:block;
  font-weight:900;
  color:#102034;
}
#tab-portada .hero-maintenance-title small{
  display:block;
  margin-top:4px;
  color:#667085;
}
.contact-admin-highlight{
  border-color:#cfead8!important;
  background:linear-gradient(180deg,#fff 0%,#f7fbf8 100%);
}
.contact-admin-highlight .block-head h2:after{
  content:" · no reserva";
  color:#0b8a3b;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
}
.portada-subnav{
  gap:10px;
  flex-wrap:wrap;
}
.portada-subnav .btn-admin{
  border-radius:999px;
}
@media(max-width:760px){
  #tab-portada .carousel-admin-grid{grid-template-columns:1fr}
}


/* ===== FASE5A3X: reserva completa dentro de una sola columna en página de curso ===== */
.course-approved-reserve-full{
  padding:26px 24px 22px;
}
.course-approved-reserve-full > p{
  margin-bottom:18px;
  font-size:14px;
}
.course-inline-reservation{
  margin-top:4px;
}
.course-inline-reservation .pym-reserve-css-ok{
  font-size:14px;
}
.course-inline-reservation .pym-reserve-css-ok .pym-reserve-grid{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:0!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-reserve-left,
.course-inline-reservation .pym-reserve-css-ok .pym-summary,
.course-inline-reservation .pym-reserve-css-ok .pym-data{
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:transparent!important;
  padding:0!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-reserve-left{
  margin-bottom:14px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-reserve-right{
  position:static!important;
  display:grid!important;
  gap:16px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-reserve-headline{
  margin:0 0 14px!important;
  gap:10px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-reserve-headline > span{
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  font-size:13px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-reserve-headline h3{
  font-size:15px!important;
  line-height:1.25!important;
  font-family:inherit!important;
  letter-spacing:0!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-reserve-headline p{
  font-size:12px!important;
  line-height:1.35!important;
  margin-top:3px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-field{
  margin-bottom:12px!important;
  font-size:12px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-field input,
.course-inline-reservation .pym-reserve-css-ok .pym-field select,
.course-inline-reservation .pym-reserve-css-ok .pym-field textarea{
  min-height:42px!important;
  padding:11px 12px!important;
  border-radius:10px!important;
  font-size:13px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-course-field select{
  min-height:46px!important;
  font-size:13px!important;
  font-weight:850!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-schedules h4{
  font-size:13px!important;
  margin:0 0 10px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-schedule-grid{
  grid-template-columns:1fr!important;
  gap:10px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-slot-check{
  top:14px!important;
  right:14px!important;
  width:20px!important;
  height:20px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-slot-body{
  min-height:0!important;
  padding:14px 14px!important;
  border-radius:13px!important;
  gap:9px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-slot-top{
  gap:9px!important;
  padding-right:28px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-slot-icon{
  width:30px!important;
  height:30px!important;
  min-width:30px!important;
  font-size:14px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-slot-top strong{
  font-size:13px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-slot-line{
  font-size:16px!important;
  line-height:1.25!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-slot-meta{
  font-size:12px!important;
  gap:7px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-info{
  margin-top:12px!important;
  padding:12px!important;
  gap:9px!important;
  border-radius:12px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-info > span{
  width:24px!important;
  height:24px!important;
  min-width:24px!important;
  font-size:12px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-info p{
  font-size:12px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-summary{
  border-top:1px solid var(--pym-line)!important;
  border-bottom:1px solid var(--pym-line)!important;
  padding:14px 0!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-card-title,
.course-inline-reservation .pym-reserve-css-ok .pym-data-title{
  margin:0 0 10px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-card-title h3,
.course-inline-reservation .pym-reserve-css-ok .pym-data-title h3{
  font-size:14px!important;
  font-family:inherit!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-card-title > span,
.course-inline-reservation .pym-reserve-css-ok .pym-data-title > span{
  width:28px!important;
  height:28px!important;
  min-width:28px!important;
  font-size:14px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-summary-row{
  padding:9px 0!important;
  gap:8px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-summary-row span,
.course-inline-reservation .pym-reserve-css-ok .pym-summary-block > span{
  font-size:12px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-summary-row strong{
  font-size:12px!important;
  text-align:right;
}
.course-inline-reservation .pym-reserve-css-ok .pym-summary-block{
  padding:9px 0!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-chip-list{
  gap:6px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-chip{
  font-size:11px!important;
  padding:7px 9px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-progress div{
  font-size:11px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-data{
  padding-top:14px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-data textarea{
  min-height:70px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-count{
  margin-top:-26px!important;
  font-size:10px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-submit{
  min-height:48px!important;
  border-radius:10px!important;
  font-size:14px!important;
  box-shadow:0 12px 24px rgba(8,123,58,.16)!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-trust{
  margin-top:12px!important;
  gap:8px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-trust p{
  font-size:11px!important;
}
@media(max-width:1120px){
  .course-approved-reserve-full{
    max-width:720px;
    margin:0 auto;
  }
}
@media(max-width:760px){
  .course-approved-reserve-full{
    padding:20px 18px;
  }
}


/* ===== FASE5A3Y: depuración visual de reserva compacta en curso ===== */
.course-approved-reserve-full{
  padding:24px 22px 22px!important;
}
.course-approved-reserve-full .reserve-icon{
  width:42px;
  height:42px;
  font-size:22px;
  margin-bottom:12px;
}
.course-approved-reserve-full h2{
  font-size:27px;
  margin-bottom:8px;
}
.course-approved-reserve-full > p{
  margin:0 0 16px!important;
  font-size:13px!important;
  line-height:1.45!important;
  color:#5a6678!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-reserve-headline{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  margin:0 0 10px!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-reserve-headline > span{
  width:26px!important;
  height:26px!important;
  min-width:26px!important;
  font-size:12px!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-reserve-headline h3{
  font-size:14px!important;
  margin:0!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-course-field,
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-summary,
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-info{
  display:none!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-schedules h4{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-schedule-grid{
  margin-top:0!important;
  gap:9px!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-slot-body{
  padding:13px 14px!important;
  gap:8px!important;
  border-radius:12px!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-slot-top{
  min-height:0!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-slot-top strong{
  font-size:13px!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-slot-line{
  font-size:15px!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-slot-meta{
  font-size:11.5px!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-reserve-left{
  padding-bottom:13px!important;
  border-bottom:1px solid var(--pym-line)!important;
  margin-bottom:12px!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-data{
  padding-top:0!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-data-title{
  justify-content:flex-start!important;
  gap:10px!important;
  margin-bottom:10px!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-data-title > span{
  width:26px!important;
  height:26px!important;
  min-width:26px!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-data-title h3{
  font-size:14px!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-field{
  margin-bottom:9px!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-field input,
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-field textarea{
  min-height:40px!important;
  font-size:12.5px!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-data textarea{
  min-height:64px!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-submit{
  margin-top:4px!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-trust p:first-child{
  display:flex!important;
}
.course-inline-reservation .pym-reserve-css-ok.pym-inline-compact .pym-trust p:last-child{
  display:none!important;
}
@media(max-width:760px){
  .course-approved-reserve-full h2{
    font-size:25px;
  }
}


/* ===== FASE5A3Z: notificación post-reserva y captcha sencillo ===== */
.course-reservation-success{
  margin:0 0 18px;
  border:1px solid #cfead8;
  border-radius:14px;
  overflow:hidden;
  background:#f7fcf8;
}
.success-ribbon{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:14px;
  background:#eaf8ef;
  border-bottom:1px solid #cfead8;
}
.success-ribbon > span{
  display:flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  min-width:30px;
  border-radius:50%;
  background:#0b8a3b;
  color:#fff;
  font-weight:950;
}
.success-ribbon strong{
  display:block;
  color:#0b1734;
  font-size:14px;
  line-height:1.2;
}
.success-ribbon small{
  display:block;
  color:#42604d;
  font-size:12px;
  line-height:1.4;
  margin-top:3px;
}
.success-summary{
  padding:14px;
}
.success-summary h3{
  margin:0 0 10px!important;
  font-family:inherit!important;
  color:#0b1734!important;
  font-size:14px!important;
  line-height:1.2!important;
}
.success-summary dl{
  margin:0;
  display:grid;
  gap:7px;
}
.success-summary div{
  display:grid;
  grid-template-columns:82px minmax(0,1fr);
  gap:8px;
  padding:0 0 7px;
  border-bottom:1px solid #dceee3;
}
.success-summary div:last-child{
  border-bottom:0;
  padding-bottom:0;
}
.success-summary dt{
  color:#5f6b7a;
  font-size:11.5px;
  font-weight:900;
}
.success-summary dd{
  margin:0;
  color:#13233a;
  font-size:12px;
  font-weight:850;
  line-height:1.35;
}
.course-inline-reservation .pym-reserve-css-ok .pym-captcha-field{
  margin-top:2px!important;
}
.course-inline-reservation .pym-reserve-css-ok .pym-captcha-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 110px;
  gap:8px;
  align-items:center;
}
.course-inline-reservation .pym-reserve-css-ok .pym-captcha-question{
  display:flex;
  align-items:center;
  min-height:40px;
  padding:0 12px;
  border:1px solid #dfe7e2;
  border-radius:10px;
  background:#f7faf8;
  color:#0b6333;
  font-size:12px;
  font-weight:900;
}
.course-inline-reservation .pym-reserve-css-ok .pym-captcha-row input{
  text-align:center;
  font-weight:900;
}
@media(max-width:460px){
  .course-inline-reservation .pym-reserve-css-ok .pym-captcha-row{
    grid-template-columns:1fr;
  }
}
