:root{
  --navy:#0f2b46;
  --navy-deep:#0a1f34;
  --green:#1c9e54;
  --green-dark:#157a40;
  --green-darker:#126b38;
  --paper:#f6f8f9;
  --white:#ffffff;
  --ink:#16232f;
  --ink-soft:#4b5c6b;
  --line:#dde4e9;
  --radius:14px;
  --font:'Archivo',system-ui,sans-serif;
  --ease-out:cubic-bezier(0.23,1,0.32,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
a,button{touch-action:manipulation}
:focus-visible{outline:3px solid var(--green-dark);outline-offset:2px;border-radius:4px}
.skip-link{position:absolute;left:-9999px;top:0;z-index:100;background:var(--navy);color:#fff;padding:12px 20px;font-weight:700;border-radius:0 0 var(--radius) 0}
.skip-link:focus{left:0}
body{font-family:var(--font);color:var(--ink);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}

/* ===== Botones ===== */
.btn{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:16px;padding:15px 28px;border-radius:var(--radius);transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),background .2s var(--ease-out);white-space:nowrap}
.btn:active{transform:scale(.97);transition-duration:.1s}
.btn-wa{background:var(--green-dark);color:#fff;box-shadow:0 6px 18px rgba(21,122,64,.28)}
.btn-ghost{border:1.5px solid var(--line);color:var(--navy);background:var(--white)}
@media (hover:hover){
  .btn-wa:hover{background:var(--green-darker)}
  .btn-ghost:hover{border-color:var(--navy)}
}
.btn svg{flex:none}

/* ===== Nav ===== */
header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);transition:background .3s var(--ease-out),border-color .3s var(--ease-out)}

/* Estado sobre el banner oscuro (portada) */
header.on-dark{background:linear-gradient(180deg,rgba(10,31,52,.62) 0%,rgba(10,31,52,0) 100%);border-bottom-color:transparent;backdrop-filter:none}
header.on-dark .brand{color:#fff}
header.on-dark .brand small{color:rgba(255,255,255,.65)}
header.on-dark .nav-links{color:rgba(255,255,255,.82)}
header.on-dark .nav-links a:hover{color:#fff}
header.on-dark .nav-links a.active{color:#fff}
header.on-dark .nav-links a.active::after{background:#4cd488}
header.on-dark .lang-switch{border-color:rgba(255,255,255,.35)}
header.on-dark .lang-switch button{color:rgba(255,255,255,.75)}
header.on-dark .lang-switch button:hover{color:#fff}
header.on-dark .lang-switch button.active{background:#fff;color:var(--navy)}
header.on-dark .nav-toggle span{background:#fff}
.nav{display:flex;align-items:center;justify-content:space-between;height:72px;gap:16px}
.brand{display:flex;align-items:center;gap:12px;font-weight:800;color:var(--navy);font-size:16px;letter-spacing:-.01em;white-space:nowrap}
.brand small{display:block;font-weight:500;font-size:11px;color:var(--ink-soft);letter-spacing:.02em}
.logo-mark{width:44px;height:44px;border-radius:12px;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:800;font-style:italic;font-size:15px;flex:none;border:2.5px solid #fff;box-shadow:0 0 0 1.5px var(--line),0 2px 6px rgba(15,43,70,.18)}
header.on-dark .logo-mark{box-shadow:none}
.nav-links{display:flex;gap:20px;align-items:center;font-weight:600;font-size:14.5px;color:var(--ink-soft)}
@media (max-width:1120px){.nav-links{gap:16px;font-size:14px}.brand small{display:none}}
.nav-links a:hover{color:var(--navy)}
.nav-right{display:flex;gap:12px;align-items:center}
.nav .btn{padding:11px 20px;font-size:14px}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--navy);margin:5px 0;border-radius:2px}

/* ===== Selector de idioma ===== */
.lang-switch{display:flex;border:1.5px solid var(--line);border-radius:999px;overflow:hidden;flex:none}
.lang-switch button{font-family:var(--font);font-size:12.5px;font-weight:700;letter-spacing:.03em;padding:7px 12px;background:none;border:none;cursor:pointer;color:var(--ink-soft);transition:background .15s var(--ease-out),color .15s var(--ease-out)}
@media (hover:none){.lang-switch button{padding:12px 14px}}
.lang-switch button:hover{color:var(--navy)}
.lang-switch button.active{background:var(--navy);color:#fff}

/* ===== Tipografía display (identidad) ===== */
.display{text-transform:uppercase;font-weight:900;font-stretch:125%;letter-spacing:0;line-height:.98}

/* ===== Cinta de demarcación (firma visual) ===== */
.hazard{height:8px;background:repeating-linear-gradient(-45deg,var(--green) 0 16px,var(--navy-deep) 16px 32px)}

/* ===== Hero banner (portada) ===== */
.hero-banner{position:relative;min-height:100dvh;margin-top:-72px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;overflow:hidden;background:var(--navy-deep)}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 68%}
.hero-banner::before{content:'';position:absolute;inset:0;z-index:1;background:
  linear-gradient(180deg,rgba(10,31,52,.42) 0%,rgba(10,31,52,.18) 40%,rgba(10,31,52,.82) 100%),
  linear-gradient(78deg,rgba(10,31,52,.92) 0%,rgba(10,31,52,.62) 48%,rgba(10,31,52,.18) 100%)}
.hero-banner::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background-image:
  linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:76px 76px}
.hero-inner{position:relative;z-index:2;width:100%;padding-top:168px;padding-bottom:72px}
.hero-tag{display:flex;align-items:center;gap:14px;font-size:13px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#9fd9b6;margin-bottom:26px}
.tag-bar{width:38px;height:3px;background:var(--green);flex:none}
.hero-banner h1{font-size:clamp(40px,6.6vw,88px);color:#fff}
.hero-banner h1 em{font-style:normal;color:#4cd488}
.hero-sub{margin:28px 0 36px;font-size:19px;line-height:1.6;color:#cfdce6;max-width:54ch}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap}
.btn-ghost-dark{border:1.5px solid rgba(255,255,255,.38);color:#fff;background:rgba(255,255,255,.07);backdrop-filter:blur(4px)}
@media (hover:hover){.btn-ghost-dark:hover{border-color:#fff;background:rgba(255,255,255,.14)}}

/* ===== Franja de datos integrada al banner ===== */
.hero-stats{position:relative;z-index:2;border-top:1px solid rgba(255,255,255,.16);background:rgba(10,31,52,.58);backdrop-filter:blur(10px)}
.hero-stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.hstat{padding:26px 30px;border-left:1px solid rgba(255,255,255,.12)}
.hstat:first-child{border-left:none}
.hstat strong{display:block;font-size:26px;font-weight:800;letter-spacing:-.02em;color:#fff}
.hstat span{font-size:13px;color:#9fb3c4}

/* ===== Cabecera de páginas interiores ===== */
.page-head{position:relative;overflow:hidden;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-deep) 100%);color:#fff;padding:84px 0 64px}
.page-head::after{content:'';position:absolute;inset:0;pointer-events:none;background-image:
  linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:76px 76px}
.page-head .wrap{position:relative;z-index:1}
.page-head h1{font-size:clamp(32px,4.6vw,54px);color:#fff}
.page-head .lead{color:#b9c8d6;max-width:62ch}

/* ===== Secciones ===== */
section{padding:88px 0;scroll-margin-top:80px}
.eyebrow{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--green-dark);margin-bottom:14px}
h2{font-size:clamp(28px,3.4vw,40px);line-height:1.12;letter-spacing:-.025em;color:var(--navy);font-weight:800}
.lead{margin-top:18px;font-size:17px;color:var(--ink-soft);max-width:62ch}

/* ===== Nosotros ===== */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.about-grid img{border-radius:var(--radius);aspect-ratio:4/3;object-fit:cover}
.mision{margin-top:28px;padding:24px 28px;background:var(--paper);border-left:4px solid var(--green);border-radius:0 var(--radius) var(--radius) 0}
.mision p{font-size:16px;color:var(--ink);font-weight:500}
.mision span{display:block;margin-top:10px;font-size:13px;color:var(--ink-soft)}

/* ===== Servicios (bento) ===== */
.servicios{background:var(--paper)}
.bento{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:48px}
.cell{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:32px 28px;transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out)}
@media (hover:hover){
  .cell:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(15,43,70,.10)}
}
.cell h3{font-size:20px;letter-spacing:-.015em;color:var(--navy);margin:16px 0 10px}
.cell p{font-size:15px;color:var(--ink-soft)}
.cell-icon{width:48px;height:48px;border-radius:12px;background:rgba(28,158,84,.12);display:grid;place-items:center;color:var(--green)}
.cell-lg{grid-column:span 2;background:var(--navy);border:none}
.cell-lg h3{color:#fff;font-size:24px}
.cell-lg p{color:#b9c8d6;max-width:52ch}
.cell-lg .cell-icon{background:rgba(28,158,84,.25);color:#4cd488}
.cell-img{padding:0;overflow:hidden;position:relative;min-height:240px;border:none}
.cell-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cell-cta{background:linear-gradient(135deg,var(--green-dark) 0%,var(--green-darker) 100%);border:none;display:flex;flex-direction:column;justify-content:space-between;gap:20px}
.cell-cta h3{color:#fff;margin-top:0}
.cell-cta p{color:rgba(255,255,255,.88)}
.cell-cta .cta-go{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:15px;color:#fff;background:rgba(255,255,255,.16);padding:10px 18px;border-radius:999px;align-self:flex-start;transition:background .2s var(--ease-out),gap .2s var(--ease-out)}
@media (hover:hover){
  .cell-cta:hover{box-shadow:0 16px 36px rgba(18,107,56,.35)}
  .cell-cta:hover .cta-go{background:rgba(255,255,255,.26);gap:12px}
}

/* ===== Documentos ===== */
.docs-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:start}
.check-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;margin-top:8px}
.check{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;background:var(--paper);border-radius:12px;font-weight:600;font-size:15px;color:var(--navy)}
.check svg{flex:none;color:var(--green);margin-top:2px}

/* ===== Cursos ===== */
.cursos{background:var(--navy);color:#fff}
.cursos h2{color:#fff}
.cursos .lead{color:#b9c8d6}
.cursos-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.cursos-grid img{border-radius:var(--radius);aspect-ratio:16/11;object-fit:cover}
.cursos ul{list-style:none;margin-top:26px;display:grid;gap:14px}
.cursos li{display:flex;gap:12px;align-items:flex-start;font-size:16px;color:#dbe5ec}
.cursos li svg{flex:none;color:#4cd488;margin-top:4px}

/* ===== Contacto ===== */
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:48px}
.ccard{border:1px solid var(--line);border-radius:var(--radius);padding:28px}
.ccard h3{font-size:16px;color:var(--navy);margin-bottom:8px;display:flex;align-items:center;gap:10px}
.ccard h3 svg{color:var(--green)}
.ccard p{font-size:15px;color:var(--ink-soft)}
.contact-cta{margin-top:44px;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-deep) 100%);border-radius:calc(var(--radius) + 6px);padding:52px;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap}
.contact-cta h3{color:#fff;font-size:clamp(22px,2.6vw,30px);letter-spacing:-.02em;max-width:20ch;line-height:1.2}
.contact-cta p{color:#9fb3c4;margin-top:8px;font-size:15px}

/* ===== Footer ===== */
footer{border-top:1px solid var(--line);padding:36px 0;font-size:14px;color:var(--ink-soft)}
.foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}

/* ===== Reveal ===== */
@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0;transform:translateY(22px);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out)}
  .reveal.in{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  .reveal{opacity:0;transition:opacity .3s ease-out}
  .reveal.in{opacity:1}
}

@keyframes menuIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* ===== WhatsApp flotante ===== */
.wa-float{position:fixed;right:22px;bottom:22px;z-index:60;width:58px;height:58px;border-radius:50%;background:var(--green);display:grid;place-items:center;box-shadow:0 10px 28px rgba(28,158,84,.4);transition:transform .2s var(--ease-out)}
.wa-float:active{transform:scale(.97);transition-duration:.1s}
@media (hover:hover){
  .wa-float:hover{transform:scale(1.08)}
}

/* ===== Responsive ===== */
@media (max-width:960px){
  .about-grid,.docs-grid,.cursos-grid{grid-template-columns:1fr;gap:40px}
  .hero-inner{padding-top:132px;padding-bottom:52px}
  .hero-sub{font-size:17px}
  .hero-stats{border-top:none}
  .hero-stats-grid{grid-template-columns:1fr 1fr}
  .hstat{border-left:none;border-top:1px solid rgba(255,255,255,.12);padding:20px 24px}
  .hstat:nth-child(even){border-left:1px solid rgba(255,255,255,.12)}
  .bento{grid-template-columns:1fr 1fr}
  .cell-lg{grid-column:span 2}
  .stats-grid{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  .nav-links{display:none;position:absolute;top:72px;left:0;right:0;background:var(--white);flex-direction:column;padding:20px 24px;gap:18px;border-bottom:1px solid var(--line);align-items:flex-start}
  .nav-links.open{display:flex}
  @media (prefers-reduced-motion:no-preference){
    .nav-links.open{animation:menuIn .2s var(--ease-out)}
  }
  .nav-toggle{display:block}
}
@media (max-width:600px){
  section{padding:64px 0}
  .bento{grid-template-columns:1fr}
  .cell-lg{grid-column:span 1}
  .check-cols{grid-template-columns:1fr}
  .contact-cta{padding:36px 24px}
  .nav .btn-wa{display:none}
  .brand span:not(.logo-mark){display:none}
}

/* ===== Nav activa (multipágina) ===== */
.nav-links a.active{color:var(--navy)}
.nav-links a.active::after{content:'';display:block;height:2px;background:var(--green-dark);border-radius:2px;margin-top:2px}

/* ===== Tienda ===== */
.shop-note{background:rgba(28,158,84,.09);border:1px solid rgba(28,158,84,.25);color:var(--green-darker);font-weight:600;font-size:14.5px;padding:14px 18px;border-radius:12px;margin-bottom:28px}
.shop-filters{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}
.shop-filters button{font-family:var(--font);font-size:14px;font-weight:700;padding:10px 18px;border-radius:999px;border:1.5px solid var(--line);background:var(--white);color:var(--ink-soft);cursor:pointer;transition:all .18s var(--ease-out)}
.shop-filters button.active{background:var(--navy);border-color:var(--navy);color:#fff}
@media (hover:hover){.shop-filters button:not(.active):hover{border-color:var(--navy);color:var(--navy)}}
.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.shop-loading{color:var(--ink-soft);grid-column:1/-1;padding:40px 0}
.prod-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:26px 24px;display:flex;flex-direction:column;transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out)}
@media (hover:hover){.prod-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(15,43,70,.10)}}
.prod-icon{width:52px;height:52px;border-radius:12px;background:rgba(28,158,84,.12);display:grid;place-items:center;color:var(--green-dark);margin-bottom:14px}
.prod-img{height:150px;border-radius:10px;overflow:hidden;margin-bottom:14px;background:var(--paper)}
.prod-img img{width:100%;height:100%;object-fit:cover}
.prod-cat{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green-dark)}
.prod-card h3{font-size:17.5px;letter-spacing:-.01em;color:var(--navy);margin:6px 0 8px}
.prod-card p{font-size:14px;color:var(--ink-soft);flex:1}
.prod-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}
.prod-foot strong{font-size:17px;color:var(--navy);letter-spacing:-.01em}
.btn-add{font-family:var(--font);font-size:14px;font-weight:700;padding:10px 18px;border-radius:999px;border:none;background:var(--green-dark);color:#fff;cursor:pointer;transition:background .18s var(--ease-out),transform .18s var(--ease-out);touch-action:manipulation}
.btn-add:active{transform:scale(.95)}
.btn-add.ok{background:var(--navy)}
@media (hover:hover){.btn-add:hover{background:var(--green-darker)}}

/* Carrito */
.cart-fab{position:fixed;left:22px;bottom:22px;z-index:60;width:58px;height:58px;border-radius:50%;background:var(--navy);color:#fff;border:none;cursor:pointer;display:grid;place-items:center;box-shadow:0 10px 28px rgba(15,43,70,.4);transition:transform .2s var(--ease-out)}
.cart-fab:active{transform:scale(.95)}
@media (hover:hover){.cart-fab:hover{transform:scale(1.08)}}
.cart-count{position:absolute;top:-4px;right:-4px;min-width:24px;height:24px;border-radius:999px;background:var(--green);color:#fff;font-size:13px;font-weight:800;display:grid;place-items:center;padding:0 6px}
.cart-overlay{position:fixed;inset:0;z-index:70;background:rgba(10,31,52,.55);backdrop-filter:blur(3px)}
.cart-drawer{position:fixed;top:0;right:0;bottom:0;z-index:71;width:min(420px,100%);background:var(--white);display:flex;flex-direction:column;box-shadow:-20px 0 60px rgba(10,31,52,.3)}
@media (prefers-reduced-motion:no-preference){.cart-drawer:not([hidden]){animation:drawerIn .3s var(--ease-out)}}
@keyframes drawerIn{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
.cart-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--line)}
.cart-head h2{font-size:20px}
.cart-close{background:none;border:none;font-size:30px;line-height:1;color:var(--ink-soft);cursor:pointer;padding:4px 10px}
.cart-items{flex:1;overflow-y:auto;padding:16px 24px}
.cart-empty{color:var(--ink-soft);font-size:15px;padding:24px 0}
.cart-ok{color:var(--green-darker);font-weight:700}
.cart-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.ci-info strong{display:block;font-size:14.5px;color:var(--navy)}
.ci-info span{font-size:13px;color:var(--ink-soft)}
.ci-qty{display:flex;align-items:center;gap:10px}
.ci-qty button{width:32px;height:32px;border-radius:8px;border:1.5px solid var(--line);background:var(--white);font-size:17px;font-weight:700;color:var(--navy);cursor:pointer;touch-action:manipulation}
.ci-qty span{min-width:20px;text-align:center;font-weight:700}
.cart-foot{border-top:1px solid var(--line);padding:18px 24px 22px}
.cart-total{display:flex;align-items:center;justify-content:space-between;font-size:15px;margin-bottom:14px}
.cart-total strong{font-size:22px;color:var(--navy);letter-spacing:-.01em}
.cart-foot input,.cart-foot textarea{width:100%;font-family:var(--font);font-size:15px;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;margin-bottom:10px;color:var(--ink)}
.cart-foot input:focus,.cart-foot textarea:focus{outline:none;border-color:var(--green-dark)}
.cart-send{width:100%;justify-content:center}

/* ===== Panel admin ===== */
.admin-body{background:var(--paper);min-height:100dvh}
.adm-login{min-height:100dvh;display:grid;place-items:center;padding:24px}
.adm-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:28px}
.adm-login .adm-card{width:min(380px,100%);display:flex;flex-direction:column;gap:12px}
.adm-brand{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.adm-brand small{display:block;color:var(--ink-soft)}
.adm-card input,.adm-card select,.adm-card textarea{font-family:var(--font);font-size:15px;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;color:var(--ink);width:100%}
.adm-card input:focus,.adm-card textarea:focus,.adm-card select:focus{outline:none;border-color:var(--green-dark)}
.adm-err{color:#b3261e;font-size:14px;font-weight:600}
.adm-top{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--white);border-bottom:1px solid var(--line);padding:12px 24px}
.adm-tabs{display:flex;gap:8px}
.adm-tabs button{font-family:var(--font);font-size:14.5px;font-weight:700;padding:9px 18px;border-radius:999px;border:none;background:none;color:var(--ink-soft);cursor:pointer}
.adm-tabs button.active{background:var(--navy);color:#fff}
.adm-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;border-radius:999px;background:var(--green);color:#fff;font-size:12px;padding:0 5px;margin-left:4px}
.adm-out{font-family:var(--font);font-size:14px;font-weight:600;background:none;border:1.5px solid var(--line);border-radius:999px;padding:8px 16px;color:var(--ink-soft);cursor:pointer}
.adm-main{max-width:860px;margin:0 auto;padding:28px 24px 80px}
.adm-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.adm-bar h2{font-size:24px}
.adm-bar select{font-family:var(--font);font-size:14px;padding:9px 12px;border:1.5px solid var(--line);border-radius:10px;background:var(--white)}
.adm-list{display:grid;gap:12px}
.adm-empty{color:var(--ink-soft);padding:30px 0}
.adm-pedido[data-estado="Pendiente"]{border-left:4px solid var(--green)}
.adm-pedido[data-estado="Cancelado"]{opacity:.6}
.ped-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;font-size:14.5px;color:var(--ink-soft)}
.ped-head strong{color:var(--navy);font-size:16px}
.ped-estado{font-family:var(--font);font-size:13.5px;font-weight:600;padding:7px 10px;border:1.5px solid var(--line);border-radius:9px;background:var(--white)}
.ped-items{list-style:none;margin:12px 0 0;font-size:14px;color:var(--ink)}
.ped-items li{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px dashed var(--line)}
.ped-items li span{color:var(--ink-soft)}
.ped-notas{margin-top:10px;font-size:13.5px;color:var(--ink-soft);font-style:italic}
.ped-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}
.ped-foot>strong{font-size:19px;color:var(--navy)}
.adm-form{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.adm-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.adm-check{display:flex;align-items:center;gap:8px;font-size:14.5px;color:var(--ink)}
.adm-check input{width:auto}
.adm-actions{display:flex;gap:10px}
.adm-prod{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px}
.adm-prod.inactivo{opacity:.55}
.pr-info strong{display:block;color:var(--navy);font-size:15.5px}
.pr-info span{font-size:13.5px;color:var(--ink-soft)}
.pr-actions{display:flex;gap:8px}
.adm-mini{font-family:var(--font);font-size:13px;font-weight:700;padding:8px 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--white);color:var(--navy);cursor:pointer}
@media (max-width:960px){.shop-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.shop-grid{grid-template-columns:1fr}.adm-grid2{grid-template-columns:1fr}.adm-top{flex-wrap:wrap}}

/* hidden gana siempre */
.cart-drawer[hidden],.cart-overlay[hidden],.cart-count[hidden],.adm-app[hidden],.adm-login[hidden]{display:none}

/* ===== Tres áreas (portada) ===== */
.areas-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px}
.area-card{display:block;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:30px 26px;transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out)}
@media (hover:hover){.area-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(15,43,70,.10)}}
.area-card h3{font-size:19px;color:var(--navy);margin:14px 0 8px}
.area-card p{font-size:14.5px;color:var(--ink-soft)}
.area-link{display:inline-block;margin-top:14px;font-size:14px;font-weight:700;color:var(--green-dark)}

/* ===== Proceso (portada) ===== */
.proceso{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-deep) 100%);color:#fff;position:relative;overflow:hidden}
.proceso::after{content:'';position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:76px 76px}
.proceso .wrap{position:relative;z-index:1}
.proceso h2{color:#fff}
.proc-lines{margin-top:36px;display:grid;gap:6px}
.proc-lines p{font-size:clamp(22px,3.2vw,36px);font-weight:800;font-stretch:118%;letter-spacing:-.01em;line-height:1.25;color:rgba(255,255,255,.45)}
.proc-lines p:last-child{color:#4cd488}

/* ===== Industrias (portada) ===== */
.industrias{background:var(--paper)}
.ind-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:44px}
.ind-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}
.ind-card img{height:150px;width:100%;object-fit:cover}
.ind-icon{height:150px;display:grid;place-items:center;background:rgba(28,158,84,.10);color:var(--green-dark)}
.ind-body{padding:20px 22px}
.ind-body h3{font-size:16.5px;color:var(--navy);margin-bottom:6px}
.ind-body p{font-size:13.5px;color:var(--ink-soft)}

/* ===== Footer completo ===== */
footer{border-top:none;padding:0;font-size:14px;color:#b9c8d6;background:var(--navy-deep)}
.foot-hazard{height:8px;background:repeating-linear-gradient(-45deg,var(--green) 0 16px,var(--navy-deep) 16px 32px)}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px;padding:52px 0 40px}
.foot-col h4{color:#fff;font-size:15px;margin-bottom:14px;letter-spacing:.02em}
.foot-col p,.foot-col a{display:block;font-size:14px;color:#9fb3c4;line-height:1.9}
.foot-col a:hover{color:#fff}
.foot-brand{display:flex;align-items:center;gap:12px;margin-bottom:14px;color:#fff;font-weight:800}
.foot-legal{border-top:1px solid rgba(255,255,255,.12);padding:18px 0;display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:13px;color:#7e94a8}
.foot-legal a{color:#9fb3c4;font-weight:600}
@media (max-width:960px){
  .areas-grid{grid-template-columns:1fr}
  .ind-grid{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr;gap:28px;padding:40px 0 30px}
}
@media (max-width:600px){.ind-grid{grid-template-columns:1fr}}

/* ===== Pulido móvil ===== */
@media (max-width:600px){
  .hero-tag{display:none}
  .hero-banner h1{font-size:37px}
  .hero-sub{font-size:16px;margin:18px 0 26px}
  .hero-inner{padding-top:104px;padding-bottom:38px}
  .hero-banner::before{background:linear-gradient(180deg,rgba(10,31,52,.60) 0%,rgba(10,31,52,.46) 45%,rgba(10,31,52,.84) 100%)}
  .hstat{padding:16px 20px}
  .hstat strong{font-size:20px;white-space:nowrap}
  .hstat span{font-size:12.5px}
  .proc-lines p{font-size:20px}
  .page-head{padding:56px 0 44px}
  section{padding:56px 0}
  h2{font-size:26px}
}

/* ============================================================
   REDISEÑO PREMIUM (estilo shell oscuro + paneles redondeados)
   ============================================================ */
:root{--radius-panel:28px;--shell-gap:12px}
body{background:var(--navy-deep)}

/* Header pastilla flotante */
header{position:sticky;top:12px;margin:0 var(--shell-gap);border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.9);backdrop-filter:blur(14px);box-shadow:0 8px 30px rgba(5,15,26,.25)}
.nav{height:62px;padding:0 10px 0 6px}
header.on-dark{background:rgba(10,31,52,.42);border-color:rgba(255,255,255,.14);backdrop-filter:blur(14px)}
.nav .wrap{padding:0 14px}

/* Secciones como paneles redondeados sobre la cáscara */
main>section,main>.page-head{background:var(--white);border-radius:var(--radius-panel);margin:var(--shell-gap);overflow:hidden}
main>.hazard{margin:0 calc(var(--shell-gap) + 16px);border-radius:999px}
.hero-banner{border-radius:var(--radius-panel);margin:calc(-62px - 12px) var(--shell-gap) var(--shell-gap);min-height:calc(100dvh - var(--shell-gap))}
footer{margin-top:4px}

/* Pills y radios */
.btn{border-radius:999px}
@media (hover:hover){.btn:hover{transform:translateY(-2px)}}
.cell,.area-card,.ind-card,.ccard,.prod-card,.adm-card{border-radius:18px}
.check{border-radius:14px}
.cell-img img,.ind-card img,.about-grid img,.cursos-grid img{transition:transform .6s var(--ease-out)}
@media (hover:hover){
  .ind-card:hover img,.cell-img:hover img{transform:scale(1.05)}
  .ind-card{transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out)}
  .ind-card:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(5,15,26,.35)}
}

/* Chips flotantes del hero */
.hero-chips{position:absolute;right:40px;top:30%;z-index:2;display:grid;gap:14px;justify-items:end}
.chip{display:inline-flex;align-items:center;gap:9px;background:rgba(255,255,255,.92);color:var(--navy);font-weight:700;font-size:13.5px;padding:10px 16px;border-radius:999px;box-shadow:0 10px 30px rgba(5,15,26,.35);backdrop-filter:blur(6px)}
.chip svg{color:var(--green-dark);flex:none}
@media (max-width:960px){.hero-chips{display:none}}

/* Marquee de especialidades (en la cáscara, entre paneles) */
.marquee{overflow:hidden;padding:26px 0;user-select:none}
.marquee-track{display:flex;gap:48px;width:max-content}
.marquee-track span{font-size:clamp(26px,3.6vw,44px);font-weight:800;font-stretch:122%;text-transform:uppercase;letter-spacing:.01em;color:rgba(255,255,255,.14);white-space:nowrap}
@media (prefers-reduced-motion:no-preference){
  .marquee-track{animation:marquee 36s linear infinite}
  @keyframes marquee{to{transform:translateX(-50%)}}
}

/* Movimiento: entrada del hero */
@media (prefers-reduced-motion:no-preference){
  .hero-bg{animation:bgZoom 2.6s var(--ease-out) both}
  @keyframes bgZoom{from{transform:scale(1.08)}to{transform:scale(1)}}
  .tag-bar{transform-origin:left;animation:barGrow .8s .2s var(--ease-out) backwards}
  @keyframes barGrow{from{transform:scaleX(0)}}
  .chip{animation:chipIn .7s var(--ease-out) backwards,chipFloat 4.5s ease-in-out infinite alternate}
  .chip-1{animation-delay:1s,2s}
  .chip-2{animation-delay:1.2s,2.6s}
  @keyframes chipIn{from{opacity:0;transform:translateY(16px)}}
  @keyframes chipFloat{to{transform:translateY(-9px)}}
  .hero-stats{animation:chipIn .8s .5s var(--ease-out) backwards}
}

/* Ajustes del shell en móvil */
@media (max-width:600px){
  :root{--radius-panel:20px;--shell-gap:8px}
  header{top:8px;margin:0 8px}
  .hero-banner{margin-top:calc(-62px - 8px)}
  .marquee-track span{font-size:24px}
}

/* Menú móvil bajo el header pastilla */
@media (max-width:960px){
  .nav-links{top:calc(100% + 10px);z-index:70;border-radius:20px;border:1px solid var(--line);box-shadow:0 18px 50px rgba(5,15,26,.35);padding:18px 22px}
}
@media (max-width:960px){
  header.on-dark .nav-links{color:var(--ink-soft)}
  header.on-dark .nav-links a:hover,header.on-dark .nav-links a.active{color:var(--navy)}
  header.on-dark .nav-links a.active::after{background:var(--green-dark)}
}

/* ===== Galería trabajo en campo ===== */
.gal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:40px}
.gal-grid figure{margin:0;border-radius:16px;overflow:hidden;background:var(--paper)}
.gal-grid img{width:100%;height:260px;object-fit:cover;transition:transform .6s var(--ease-out)}
@media (hover:hover){.gal-grid figure:hover img{transform:scale(1.05)}}
.docs-img{margin-top:28px;border-radius:16px;aspect-ratio:4/3;object-fit:cover;width:100%}
@media (max-width:960px){.gal-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.gal-grid img{height:200px}}

/* ===== Carrusel de clientes ===== */
.clientes{padding-bottom:56px}
.cli-marquee{overflow:hidden;margin-top:36px}
.cli-track{display:flex;gap:14px;width:max-content;padding-right:14px}
@media (prefers-reduced-motion:no-preference){
  .cli-track{animation:marquee 70s linear infinite}
  .cli-marquee:hover .cli-track{animation-play-state:paused}
}
@media (prefers-reduced-motion:reduce){
  .cli-track{flex-wrap:wrap;width:auto;padding:0 24px}
}
.cli{flex:none;display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:999px;padding:12px 22px;font-weight:700;font-size:14.5px;color:var(--ink-soft);background:var(--paper);white-space:nowrap}
.cli img{height:30px;width:auto;display:block}

/* ===== Carrusel de clientes estilo TAP ===== */
.mq-titulo{text-align:center;font-size:13px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 30px}
.clientes{padding:56px 0}
#cliMarquee{position:relative}
.mq-vista{overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mq-vista::-webkit-scrollbar{display:none}
.mq-tira{display:flex;width:max-content}
.mq-grupo{display:flex;align-items:center;gap:3rem;padding-right:3rem}
.mq-cliente{flex:0 0 auto;display:flex;align-items:center}
.mq-cliente img{height:92px;width:auto;max-width:260px;object-fit:contain;border-radius:16px;transition:transform .35s var(--ease-out)}
.mq-nombre{height:92px;min-width:200px;padding:0 30px;border-radius:16px;background:var(--paper);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:17px;letter-spacing:-.01em;color:var(--navy);text-align:center;transition:transform .35s var(--ease-out)}
@media (hover:hover){
  .mq-cliente:hover img{transform:scale(1.12)}
  .mq-nombre:hover{transform:scale(1.06)}
}
.mq-flecha{position:absolute;top:50%;transform:translateY(-50%);left:14px;z-index:2;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--white);color:var(--navy);font-size:17px;font-family:var(--font);cursor:pointer;box-shadow:0 8px 24px rgba(15,43,70,.15);transition:background .2s,transform .2s}
.mq-flecha--der{left:auto;right:14px}
@media (hover:hover){.mq-flecha:hover{background:rgba(28,158,84,.12);transform:translateY(-50%) scale(1.08)}}
@media (max-width:640px){
  .mq-flecha{display:none}
  .mq-cliente img{height:68px;max-width:200px}
  .mq-nombre{height:68px;min-width:150px;font-size:14.5px;padding:0 20px}
  .mq-grupo{gap:1.8rem;padding-right:1.8rem}
}
@media (prefers-reduced-motion:reduce){.mq-vista{mask-image:none;-webkit-mask-image:none}}

/* Logos de clientes: parejos entre sí */
.mq-cliente img{--h:92px;height:calc(var(--h)*var(--z,1));margin:calc((var(--h) - var(--h)*var(--z,1))/2) 0;mix-blend-mode:multiply;border-radius:0}
@media (max-width:640px){.mq-cliente img{--h:68px}}

/* ===== Hero de marca (sin foto): logo V&A como protagonista ===== */
.hero-banner{--brandw:min(34vw,460px);background:
  radial-gradient(52% 72% at 77% 46%,rgba(28,158,84,.26),transparent 62%),
  radial-gradient(70% 90% at 10% 0%,rgba(36,96,168,.46),transparent 60%),
  linear-gradient(135deg,#123456 0%,#0a1f34 100%)}
.hero-banner::before{background:radial-gradient(90% 55% at 50% 112%,rgba(5,15,26,.6),transparent 70%)}
.hero-brand{position:absolute;z-index:1;right:max(3vw,28px);top:50%;transform:translateY(-56%);width:var(--brandw);pointer-events:none}
.brand-art{width:100%;height:auto;display:block;overflow:visible;filter:drop-shadow(0 24px 50px rgba(5,15,26,.5))}
.brand-glow{position:absolute;inset:6% 2%;background:radial-gradient(circle,rgba(76,212,136,.32),transparent 68%);filter:blur(34px)}
.hero-brand .chip{position:absolute}
.hero-brand .chip-1{left:-6%;top:14%}
.hero-brand .chip-2{right:-3%;bottom:12%}
.hero-inner>.reveal{max-width:calc(100vw - var(--brandw) - 150px)}
.hero-banner h1{font-size:clamp(38px,5.6vw,84px)}
@media (prefers-reduced-motion:no-preference){
  .brand-logo,.ring{transform-box:fill-box;transform-origin:center}
  .brand-logo{animation:logoIn 1.2s .15s var(--ease-out) backwards,logoFloat 6s 1.4s ease-in-out infinite alternate}
  @keyframes logoIn{from{opacity:0;transform:translateY(26px) scale(.94)}}
  @keyframes logoFloat{to{transform:translateY(-12px)}}
  .ring-a{animation:ringSpin 90s linear infinite}
  .ring-b{animation:ringSpin 60s linear infinite reverse}
  @keyframes ringSpin{to{transform:rotate(360deg)}}
  .brand-glow{animation:glowPulse 5s ease-in-out infinite alternate}
  @keyframes glowPulse{from{opacity:.55}to{opacity:1}}
}
@media (max-width:960px){
  .hero-banner{--brandw:80vw}
  .hero-brand{right:-16vw;top:84px;transform:none;opacity:.26}
  .hero-brand .chip{display:none}
  .hero-inner>.reveal{max-width:none}
}
@media (max-width:600px){
  .hero-banner::before{background:radial-gradient(90% 55% at 50% 112%,rgba(5,15,26,.6),transparent 70%)}
}

/* Ajuste fino del hero de marca */
.hero-brand .chip-1{left:2%;top:-3%}
.hero-brand .chip-2{right:0;bottom:5%}
@media (max-width:960px){
  .hero-brand{right:-24vw;top:66px;opacity:.13}
}

/* ===== Logo oficial como imagen (cabecera, pie y panel) ===== */
img.logo-mark{display:block;width:44px;height:44px;border:0;padding:0;border-radius:12px;object-fit:cover;background:#214da4;box-shadow:0 2px 8px rgba(5,15,26,.30)}
header.on-dark img.logo-mark{box-shadow:0 0 0 1px rgba(255,255,255,.18)}
.foot-brand img.logo-mark{width:48px;height:48px}
.adm-brand img.logo-mark{width:48px;height:48px}
