/*
Theme Name:  Caribe Rent A Car
Theme URI:   https://www.cariberentacar.do/
Author:      Caribe Rent A Car
Description: Tema oficial de Caribe Rent A Car — alquiler de vehículos en República Dominicana. Diseño del prototipo 2026 portado a WordPress: buscador, flota por temporada, oficinas, reservas y facturación (requiere el plugin Caribe Core).
Version:     1.4.0
Requires PHP: 8.0
Text Domain: caribe-rentacar
*/

:root{
  --azul:#0A2E63;
  --azul-dark:#071F45;
  --azul-soft:#E7EDF6;
  --rojo:#D91E36;
  --rojo-dark:#A9142A;
  --rojo-soft:#FBE7E9;
  --sol:#F5A623;
  --sol-soft:#FEF1DC;
  --verde:#1F9D63;
  --verde-soft:#E3F6EC;
  --arena:#FAF8F4;
  --arena-2:#F1ECE2;
  --grafito:#1B1E27;
  --gris:#6B7280;
  --gris-claro:#D7DBE2;
  --blanco:#FFFFFF;
  --r-lg:24px;
  --r-md:16px;
  --r-sm:10px;
  --sh-sm:0 2px 10px rgba(10,46,99,.08);
  --sh-md:0 10px 30px rgba(10,46,99,.12);
  --sh-lg:0 24px 60px rgba(10,46,99,.20);
  --ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Inter',sans-serif;
  color:var(--grafito);
  background:var(--arena);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3,h4,.display{font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; letter-spacing:-0.02em; color:var(--azul-dark);}
.mono{font-family:'IBM Plex Mono',monospace;}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit; cursor:pointer; border:none;}
.material-symbols-outlined{font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24; vertical-align:middle; line-height:1;}
:focus-visible{outline:3px solid var(--sol); outline-offset:2px; border-radius:4px;}
@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms !important; transition-duration:.001ms !important;}}

.container{width:100%; max-width:1240px; margin:0 auto; padding:0 20px;}
.section{padding:80px 0;}
.eyebrow{font-family:'IBM Plex Mono',monospace; font-size:.78rem; letter-spacing:.12em; text-transform:uppercase; color:var(--rojo); font-weight:600; display:flex; align-items:center; gap:8px;}
.eyebrow::before{content:""; width:20px; height:3px; background:var(--sol); border-radius:2px;}
.section-head{max-width:640px; margin-bottom:44px;}
.section-head h2{font-size:clamp(1.7rem,4vw,2.5rem); margin-top:10px;}
.section-head p{color:var(--gris); margin-top:12px; font-size:1.02rem;}

.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  padding:14px 26px; border-radius:100px; font-weight:600; font-size:.95rem;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .2s;
  white-space:nowrap;
}
.btn-primary{background:var(--rojo); color:#fff; box-shadow:var(--sh-sm);}
.btn-primary:hover{background:var(--rojo-dark); transform:translateY(-2px); box-shadow:var(--sh-md);}
.btn-dark{background:var(--azul-dark); color:#fff;}
.btn-dark:hover{background:var(--azul); transform:translateY(-2px);}
.btn-ghost{background:#fff; color:var(--azul-dark); border:1.5px solid var(--gris-claro);}
.btn-ghost:hover{border-color:var(--azul); transform:translateY(-2px);}
.btn-sm{padding:9px 16px; font-size:.85rem;}
.btn:disabled{opacity:.4; cursor:not-allowed; transform:none !important;}

/* ---------- NAV ---------- */
header.topnav{
  position:sticky; top:0; z-index:200; background:rgba(250,248,244,.85);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(10,46,99,.08);
}
.nav-inner{display:flex; align-items:center; justify-content:space-between; padding:14px 20px; max-width:1240px; margin:0 auto;}
.logo{display:flex; align-items:center; gap:10px; font-family:'Plus Jakarta Sans'; font-weight:800; font-size:1.15rem; color:var(--azul-dark);}
.logo .flagbar{display:flex; flex-direction:column; gap:2px;}
.logo .flagbar span{width:22px; height:3px; border-radius:2px;}
.logo .flagbar span:nth-child(1){background:var(--azul);}
.logo .flagbar span:nth-child(2){background:var(--rojo);}
.navlinks{display:none; gap:6px; align-items:center;}
.navlinks button{padding:10px 16px; border-radius:100px; font-weight:600; font-size:.92rem; color:var(--gris); background:transparent; transition:.2s;}
.navlinks button.active,.navlinks button:hover{background:var(--azul-soft); color:var(--azul-dark);}
.nav-cta{display:none;}
.burger{display:flex; background:none; padding:8px;}
.mobile-menu{display:none; flex-direction:column; gap:4px; padding:10px 20px 18px;}
.mobile-menu.open{display:flex;}
.mobile-menu button{text-align:left; padding:12px 14px; border-radius:12px; font-weight:600; color:var(--azul-dark); background:var(--arena-2);}
@media(min-width:900px){
  .navlinks{display:flex;}
  .nav-cta{display:inline-flex;}
  .burger{display:none;}
}

/* ---------- HERO ---------- */
.hero{position:relative; min-height:88vh; display:flex; align-items:flex-end; overflow:hidden; border-radius:0 0 32px 32px;}
.hero-slides{position:absolute; inset:0;}
.hero-slides img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0; animation:heroFade 15s infinite; transform:scale(1.08); }
.hero-slides img:nth-child(1){animation-delay:0s;}
.hero-slides img:nth-child(2){animation-delay:5s;}
.hero-slides img:nth-child(3){animation-delay:10s;}
@keyframes heroFade{
  0%{opacity:0; transform:scale(1.12);}
  6%{opacity:1; transform:scale(1.02);}
  30%{opacity:1; transform:scale(1);}
  36%{opacity:0;}
  100%{opacity:0;}
}
.hero::after{content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(7,31,69,.25) 0%,rgba(7,31,69,.55) 65%,rgba(7,31,69,.88) 100%);}
.hero-content{position:relative; z-index:2; width:100%; padding:0 20px 40px; max-width:1240px; margin:0 auto; color:#fff;}
.hero-tag{display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.3); padding:7px 14px; border-radius:100px; font-size:.82rem; font-weight:600; backdrop-filter:blur(6px); animation:riseIn .8s var(--ease) both;}
.hero h1{color:#fff; font-size:clamp(2.1rem,5.6vw,3.6rem); max-width:820px; margin-top:16px; animation:riseIn .8s .1s var(--ease) both;}
.hero p.lead{color:rgba(255,255,255,.85); max-width:560px; margin-top:14px; font-size:1.08rem; animation:riseIn .8s .2s var(--ease) both;}
@keyframes riseIn{from{opacity:0; transform:translateY(22px);} to{opacity:1; transform:translateY(0);}}

/* Buscador */
.search-card{
  position:relative; z-index:3; background:#fff; border-radius:var(--r-lg); box-shadow:var(--sh-lg);
  margin:-52px auto 0; max-width:1240px; padding:22px; display:grid; gap:14px;
  grid-template-columns:1fr; animation:riseIn .8s .3s var(--ease) both;
}
.search-card .field{display:flex; flex-direction:column; gap:6px;}
.search-card label{font-size:.76rem; font-weight:600; color:var(--gris); text-transform:uppercase; letter-spacing:.04em; display:flex; gap:6px; align-items:center;}
.search-card label .material-symbols-outlined{font-size:16px; color:var(--rojo);}
.search-card input,.search-card select{
  border:1.5px solid var(--gris-claro); border-radius:var(--r-sm); padding:12px 14px; font-size:.95rem; font-family:inherit;
  background:var(--arena); transition:.2s;
}
.search-card input:focus,.search-card select:focus{border-color:var(--azul); background:#fff;}
.search-grid{display:grid; grid-template-columns:1fr; gap:14px;}
@media(min-width:760px){.search-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1080px){.search-grid{grid-template-columns:1.3fr 1fr 1fr .9fr 1fr;}}
.search-card .btn{width:100%; padding:14px;}

/* ---------- VEHICLE CARDS ---------- */
.grid{display:grid; gap:22px; grid-template-columns:1fr;}
@media(min-width:640px){.grid-2{grid-template-columns:repeat(2,1fr);}}
@media(min-width:900px){.grid-3{grid-template-columns:repeat(3,1fr);} .grid-4{grid-template-columns:repeat(4,1fr);}}

.vcard{background:#fff; border-radius:var(--r-md); overflow:hidden; box-shadow:var(--sh-sm); transition:transform .3s var(--ease), box-shadow .3s var(--ease); display:flex; flex-direction:column;}
.vcard:hover{transform:translateY(-6px); box-shadow:var(--sh-md);}
.vcard .thumb{position:relative; aspect-ratio:4/3; overflow:hidden;}
.vcard .thumb img{width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease);}
.vcard:hover .thumb img{transform:scale(1.06);}
.vcard .badge{position:absolute; top:12px; left:12px; background:rgba(255,255,255,.92); padding:5px 12px; border-radius:100px; font-size:.72rem; font-weight:700; color:var(--azul-dark);}
.vcard .body{padding:18px; display:flex; flex-direction:column; gap:10px; flex:1;}
.vcard h4{font-size:1.05rem;}
.vcard .specs{display:flex; flex-wrap:wrap; gap:10px; color:var(--gris); font-size:.8rem;}
.vcard .specs span{display:flex; align-items:center; gap:4px;}
.vcard .specs .material-symbols-outlined{font-size:16px;}
.vcard .price{display:flex; align-items:baseline; gap:4px; margin-top:auto;}
.vcard .price b{font-size:1.35rem; color:var(--rojo); font-family:'Plus Jakarta Sans';}
.vcard .price span{color:var(--gris); font-size:.8rem;}
.vcard .foot{display:flex; justify-content:space-between; align-items:center; padding-top:6px;}

/* Categorías */
.catchip{background:#fff; border-radius:var(--r-md); padding:22px 18px; text-align:center; box-shadow:var(--sh-sm); transition:.25s var(--ease); cursor:pointer;}
.catchip:hover{transform:translateY(-4px); box-shadow:var(--sh-md); background:var(--azul-soft);}
.catchip .material-symbols-outlined{font-size:34px; color:var(--rojo); margin-bottom:8px;}
.catchip h4{font-size:.95rem;}
.catchip p{font-size:.78rem; color:var(--gris); margin-top:2px;}

/* Servicios */
.svc{display:flex; gap:14px; background:#fff; border-radius:var(--r-md); padding:20px; box-shadow:var(--sh-sm);}
.svc .ic{width:46px; height:46px; border-radius:14px; background:var(--sol-soft); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.svc .ic .material-symbols-outlined{color:var(--sol); font-size:24px;}
.svc h4{font-size:.98rem; margin-bottom:4px;}
.svc p{font-size:.85rem; color:var(--gris);}

/* Opiniones */
.reviews-track{display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:10px;}
.rcard{scroll-snap-align:start; min-width:280px; max-width:320px; background:#fff; border-radius:var(--r-md); padding:22px; box-shadow:var(--sh-sm);}
.rcard .stars{color:var(--sol); font-size:.9rem; margin-bottom:10px;}
.rcard p{font-size:.92rem; color:var(--grafito);}
.rcard .who{display:flex; align-items:center; gap:10px; margin-top:16px;}
.rcard .who img{width:38px; height:38px; border-radius:50%; object-fit:cover;}
.rcard .who b{font-size:.85rem; display:block;}
.rcard .who span{font-size:.76rem; color:var(--gris);}

/* Mapa */
.map-wrap{border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-md); position:relative; height:380px;}
.map-wrap iframe{width:100%; height:100%; border:0; filter:grayscale(.15);}
.map-pins{position:absolute; bottom:16px; left:16px; background:#fff; padding:14px; border-radius:var(--r-md); box-shadow:var(--sh-md); display:flex; gap:14px; flex-wrap:wrap; max-width:90%;}
.map-pins .pin{display:flex; align-items:center; gap:6px; font-size:.8rem; font-weight:600; color:var(--azul-dark);}
.map-pins .pin .material-symbols-outlined{color:var(--rojo); font-size:18px;}

/* Footer */
footer{background:var(--azul-dark); color:#fff; margin-top:60px; border-radius:32px 32px 0 0; overflow:hidden;}
.footer-flag{height:6px; display:flex;}
.footer-flag span{flex:1;}
.footer-flag span:nth-child(1){background:var(--azul);}
.footer-flag span:nth-child(2){background:#fff;}
.footer-flag span:nth-child(3){background:var(--rojo);}
.footer-grid{display:grid; gap:34px; grid-template-columns:1fr; padding:56px 0 30px;}
@media(min-width:760px){.footer-grid{grid-template-columns:1.4fr 1fr 1fr 1fr;}}
footer h5{font-size:.85rem; text-transform:uppercase; letter-spacing:.08em; color:rgba(255,255,255,.6); margin-bottom:14px;}
footer ul{list-style:none; display:flex; flex-direction:column; gap:10px;}
footer ul a{color:rgba(255,255,255,.85); font-size:.92rem; transition:.2s;}
footer ul a:hover{color:var(--sol);}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12); padding:20px 0; display:flex; flex-wrap:wrap; gap:12px; justify-content:space-between; font-size:.8rem; color:rgba(255,255,255,.6);}
.socials{display:flex; gap:10px;}
.socials a{width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center;}
.socials a:hover{background:var(--rojo);}
.newsletter{display:flex; gap:8px; margin-top:10px;}
.newsletter input{flex:1; padding:11px 14px; border-radius:100px; border:1px solid rgba(255,255,255,.2); background:rgba(255,255,255,.06); color:#fff; font-size:.85rem;}
.newsletter input::placeholder{color:rgba(255,255,255,.5);}
.newsletter button{background:var(--rojo); color:#fff; padding:11px 18px; border-radius:100px; font-weight:600; font-size:.85rem;}

/* ---------- VIEWS (SPA sections) ---------- */
.view{display:none;}
.view.active{display:block; animation:fadeView .45s var(--ease);}
@keyframes fadeView{from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);}}

/* Vehicle detail */
.vdetail{display:grid; grid-template-columns:1fr; gap:36px;}
@media(min-width:960px){.vdetail{grid-template-columns:1.2fr .8fr;}}
.gallery-main{position:relative; border-radius:var(--r-lg); overflow:hidden; aspect-ratio:16/10; box-shadow:var(--sh-md);}
.gallery-main img{width:100%; height:100%; object-fit:cover;}
.gallery-count{position:absolute; bottom:14px; right:14px; background:rgba(7,31,69,.75); color:#fff; padding:6px 12px; border-radius:100px; font-size:.78rem; font-weight:600;}
.gallery-video-btn{position:absolute; top:14px; left:14px; background:rgba(255,255,255,.92); padding:8px 14px; border-radius:100px; font-size:.8rem; font-weight:700; display:flex; gap:6px; align-items:center; color:var(--azul-dark);}
.thumbs{display:flex; gap:10px; margin-top:12px; overflow-x:auto; padding-bottom:6px;}
.thumbs img{width:78px; height:58px; object-fit:cover; border-radius:10px; cursor:pointer; opacity:.6; transition:.2s; flex-shrink:0; border:2px solid transparent;}
.thumbs img.active,.thumbs img:hover{opacity:1; border-color:var(--rojo);}

.tabs{display:flex; gap:6px; border-bottom:1px solid var(--gris-claro); margin:26px 0 18px; overflow-x:auto;}
.tab-btn{padding:10px 6px; font-weight:600; color:var(--gris); font-size:.9rem; border-bottom:2.5px solid transparent; white-space:nowrap;}
.tab-btn.active{color:var(--rojo); border-color:var(--rojo);}
.tab-panel{display:none;}
.tab-panel.active{display:block; animation:fadeView .35s var(--ease);}
.spec-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:14px;}
@media(min-width:560px){.spec-grid{grid-template-columns:repeat(3,1fr);}}
.spec-item{background:#fff; border-radius:var(--r-sm); padding:14px; box-shadow:var(--sh-sm); text-align:center;}
.spec-item .material-symbols-outlined{color:var(--rojo); font-size:26px;}
.spec-item b{display:block; font-size:.88rem; margin-top:6px;}
.spec-item span{font-size:.74rem; color:var(--gris);}

.price-table{width:100%; border-collapse:collapse; background:#fff; border-radius:var(--r-md); overflow:hidden; box-shadow:var(--sh-sm);}
.price-table th,.price-table td{padding:12px 14px; text-align:left; font-size:.88rem; border-bottom:1px solid var(--arena-2);}
.price-table th{background:var(--azul-soft); color:var(--azul-dark); font-weight:700;}
.price-table tr:last-child td{border-bottom:none;}

.side-card{background:#fff; border-radius:var(--r-md); padding:22px; box-shadow:var(--sh-sm); margin-bottom:18px;}
.policy-list{display:flex; flex-direction:column; gap:12px; margin-top:8px;}
.policy-list li{list-style:none; display:flex; gap:10px; font-size:.88rem; color:var(--grafito);}
.policy-list .material-symbols-outlined{color:var(--verde); font-size:20px;}

/* Calendar */
.legend{display:flex; flex-wrap:wrap; gap:14px; margin:14px 0 18px;}
.legend .lg{display:flex; align-items:center; gap:6px; font-size:.8rem; color:var(--gris); font-weight:600;}
.legend .dot{width:12px; height:12px; border-radius:4px;}
.cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:6px;}
.cal-day-name{text-align:center; font-size:.72rem; font-weight:700; color:var(--gris); padding-bottom:4px;}
.cal-cell{aspect-ratio:1; border-radius:10px; display:flex; align-items:center; justify-content:center; font-size:.82rem; font-weight:600; color:#fff; cursor:default;}
.st-disp{background:var(--verde);}
.st-res{background:var(--rojo);}
.st-mant{background:var(--sol); color:var(--azul-dark);}
.st-fuera{background:var(--grafito); opacity:.55;}
.st-prox{background:var(--azul); }
.cal-cell.empty{background:transparent;}

/* Wizard */
.stepper{display:flex; align-items:center; margin-bottom:44px; overflow-x:auto; padding-bottom:6px;}
.step{display:flex; align-items:center; flex-direction:column; gap:8px; min-width:96px; position:relative;}
.step .circ{width:40px; height:40px; border-radius:50%; background:#fff; border:2.5px solid var(--gris-claro); display:flex; align-items:center; justify-content:center; font-weight:700; color:var(--gris); transition:.3s; z-index:2;}
.step span.lbl{font-size:.74rem; font-weight:600; color:var(--gris); text-align:center;}
.step.active .circ{border-color:var(--rojo); color:var(--rojo); background:var(--rojo-soft);}
.step.active span.lbl{color:var(--rojo-dark);}
.step.done .circ{background:var(--verde); border-color:var(--verde); color:#fff;}
.step-line{flex:1; height:2.5px; background:var(--gris-claro); margin:0 -6px; margin-bottom:26px;}
.step-line.done{background:var(--verde);}

.wizard-panel{display:none;}
.wizard-panel.active{display:block; animation:fadeView .4s var(--ease);}
.wizard-body{display:grid; grid-template-columns:1fr; gap:30px;}
@media(min-width:960px){.wizard-body{grid-template-columns:1.5fr .9fr;}}
.form-grid{display:grid; grid-template-columns:1fr; gap:16px;}
@media(min-width:600px){.form-grid.two{grid-template-columns:1fr 1fr;}}
.form-grid .field{display:flex; flex-direction:column; gap:6px;}
.form-grid label{font-size:.82rem; font-weight:600; color:var(--gris);}
.form-grid input,.form-grid select{border:1.5px solid var(--gris-claro); border-radius:var(--r-sm); padding:12px 14px; font-size:.92rem; font-family:inherit; background:#fff;}
.form-grid input:focus,.form-grid select:focus{border-color:var(--azul);}

.pick-card{border:2px solid var(--gris-claro); border-radius:var(--r-md); padding:16px; cursor:pointer; transition:.2s; display:flex; gap:14px; align-items:center; background:#fff;}
.pick-card img{width:88px; height:64px; object-fit:cover; border-radius:10px;}
.pick-card.selected{border-color:var(--rojo); background:var(--rojo-soft);}
.pick-card .meta{flex:1;}
.pick-card .meta b{font-family:'Plus Jakarta Sans'; font-size:.98rem;}
.pick-card .meta div{font-size:.78rem; color:var(--gris);}
.pick-card .pr{font-family:'Plus Jakarta Sans'; font-weight:800; color:var(--rojo);}

.extra-row{display:flex; align-items:center; justify-content:space-between; background:#fff; border-radius:var(--r-md); padding:16px; box-shadow:var(--sh-sm);}
.extra-row + .extra-row{margin-top:12px;}
.extra-row .left{display:flex; gap:14px; align-items:center;}
.extra-row .ic{width:42px; height:42px; border-radius:12px; background:var(--azul-soft); display:flex; align-items:center; justify-content:center; color:var(--azul);}
.extra-row b{font-size:.92rem;}
.extra-row .sub{font-size:.78rem; color:var(--gris);}
.toggle{position:relative; width:46px; height:26px; border-radius:100px; background:var(--gris-claro); flex-shrink:0; transition:.25s;}
.toggle::after{content:""; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:#fff; transition:.25s; box-shadow:0 2px 4px rgba(0,0,0,.2);}
.toggle.on{background:var(--verde);}
.toggle.on::after{transform:translateX(20px);}

.summary-card{background:#fff; border-radius:var(--r-md); box-shadow:var(--sh-sm); padding:22px; position:sticky; top:90px;}
.summary-card h4{font-size:1rem; margin-bottom:14px;}
.summary-row{display:flex; justify-content:space-between; font-size:.86rem; padding:8px 0; border-bottom:1px dashed var(--arena-2); color:var(--gris);}
.summary-row b{color:var(--grafito); font-weight:600;}
.summary-total{display:flex; justify-content:space-between; padding-top:14px; font-family:'Plus Jakarta Sans'; font-weight:800; font-size:1.2rem; color:var(--rojo);}

.confirm-box{text-align:center; padding:40px 20px; background:#fff; border-radius:var(--r-lg); box-shadow:var(--sh-md);}
.confirm-box .material-symbols-outlined{font-size:64px; color:var(--verde);}
.plate{display:inline-block; margin:14px 0; background:var(--azul-dark); color:#fff; padding:10px 22px; border-radius:10px; letter-spacing:.1em; font-size:1.15rem;}
.checklist{display:flex; flex-wrap:wrap; gap:12px; justify-content:center; margin:18px 0;}
.checklist span{display:flex; align-items:center; gap:6px; font-size:.82rem; background:var(--verde-soft); color:var(--verde); padding:7px 14px; border-radius:100px; font-weight:600;}

/* Damage / inspection */
.chk-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:14px;}
@media(min-width:640px){.chk-grid{grid-template-columns:repeat(3,1fr);}}
@media(min-width:960px){.chk-grid{grid-template-columns:repeat(4,1fr);}}
.chk-card{background:#fff; border-radius:var(--r-md); padding:16px; text-align:center; box-shadow:var(--sh-sm); transition:.2s;}
.chk-card .material-symbols-outlined{font-size:28px; color:var(--gris);}
.chk-card.done{background:var(--verde-soft);}
.chk-card.done .material-symbols-outlined{color:var(--verde);}
.chk-card b{display:block; font-size:.84rem; margin:8px 0 10px;}

.annot-wrap{position:relative; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-md);}
.annot-wrap img{width:100%; display:block;}
.annot-circle{position:absolute; width:70px; height:70px; border:4px solid var(--rojo); border-radius:50%; top:52%; left:58%; box-shadow:0 0 0 3px rgba(217,30,54,.25);}
.annot-arrow{position:absolute; top:36%; left:64%; width:70px; height:70px; }
.annot-card{position:absolute; bottom:16px; left:16px; background:#fff; border-radius:var(--r-md); padding:14px 16px; box-shadow:var(--sh-md); max-width:260px;}
.annot-card .sev{display:inline-block; background:var(--sol-soft); color:#8a5a00; font-size:.7rem; font-weight:700; padding:3px 10px; border-radius:100px; margin-bottom:6px;}
.annot-card b{font-size:.92rem; display:block;}
.annot-card p{font-size:.78rem; color:var(--gris); margin-top:4px;}

.compare-wrap{position:relative; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-md); aspect-ratio:16/10; user-select:none;}
.compare-wrap img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover;}
.compare-after{clip-path:inset(0 0 0 50%);}
.compare-label{position:absolute; top:14px; background:rgba(7,31,69,.75); color:#fff; font-size:.72rem; font-weight:700; padding:5px 12px; border-radius:100px;}
.compare-label.b{left:14px;} .compare-label.a{right:14px;}
.compare-slider{position:absolute; top:0; bottom:0; left:50%; width:0; z-index:5;}
.compare-slider::before{content:""; position:absolute; top:0; bottom:0; left:0; width:3px; background:#fff; box-shadow:0 0 8px rgba(0,0,0,.4);}
.compare-handle{position:absolute; top:50%; left:0; transform:translate(-50%,-50%); width:44px; height:44px; border-radius:50%; background:#fff; box-shadow:var(--sh-md); display:flex; align-items:center; justify-content:center; color:var(--azul); pointer-events:none;}
.compare-range{position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:ew-resize; margin:0;}

.alert-new{display:flex; gap:14px; background:var(--sol-soft); border:1.5px solid #f0c25f; border-radius:var(--r-md); padding:18px; align-items:flex-start;}
.alert-new .material-symbols-outlined{color:#a5680b; font-size:28px;}
.alert-new b{display:block; color:#7a4d00;}
.alert-new p{font-size:.86rem; color:#7a4d00; margin-top:2px;}

.sig-grid{display:grid; grid-template-columns:1fr; gap:20px;}
@media(min-width:820px){.sig-grid{grid-template-columns:repeat(3,1fr);}}
.sig-box{background:#fff; border-radius:var(--r-md); padding:16px; box-shadow:var(--sh-sm); text-align:center;}
.sig-box canvas{width:100%; height:140px; border:1.5px dashed var(--gris-claro); border-radius:var(--r-sm); background:var(--arena); touch-action:none;}
.sig-box h5{font-size:.86rem; margin-bottom:10px;}
.sig-box .actions{display:flex; gap:8px; justify-content:center; margin-top:10px;}

.pdf-list{display:flex; flex-wrap:wrap; gap:12px; margin:16px 0 22px;}
.pdf-list span{display:flex; align-items:center; gap:6px; background:#fff; padding:9px 15px; border-radius:100px; font-size:.83rem; font-weight:600; box-shadow:var(--sh-sm);}
.pdf-list .material-symbols-outlined{color:var(--verde); font-size:18px;}
.qr-box{display:flex; gap:20px; align-items:center; background:#fff; border-radius:var(--r-md); padding:20px; box-shadow:var(--sh-sm); flex-wrap:wrap;}
.qr-box img{width:110px; height:110px; border-radius:10px;}

/* Admin */
.admin-shell{display:grid; grid-template-columns:1fr; gap:0; background:#fff; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sh-md); min-height:640px;}
@media(min-width:900px){.admin-shell{grid-template-columns:250px 1fr;}}
.admin-side{background:var(--azul-dark); color:#fff; padding:22px 14px; display:flex; flex-direction:column; gap:4px;}
.admin-side .abrand{display:flex; align-items:center; gap:8px; color:#fff; font-family:'Plus Jakarta Sans'; font-weight:800; padding:0 10px 18px;}
.admin-side button{display:flex; align-items:center; gap:10px; text-align:left; padding:11px 12px; border-radius:10px; color:rgba(255,255,255,.75); font-size:.87rem; font-weight:600; background:transparent;}
.admin-side button.active,.admin-side button:hover{background:rgba(255,255,255,.1); color:#fff;}
.admin-side .material-symbols-outlined{font-size:19px;}
.admin-main{padding:26px;}
.admin-top{display:flex; justify-content:space-between; align-items:center; margin-bottom:22px; flex-wrap:wrap; gap:12px;}
.admin-search{display:flex; align-items:center; gap:8px; background:var(--arena); border-radius:100px; padding:9px 16px; color:var(--gris); font-size:.85rem; min-width:220px;}
.stat-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-bottom:26px;}
@media(min-width:760px){.stat-grid{grid-template-columns:repeat(4,1fr);}}
.stat-card{background:var(--arena); border-radius:var(--r-md); padding:18px;}
.stat-card .material-symbols-outlined{color:var(--rojo);}
.stat-card b{font-family:'Plus Jakarta Sans'; font-size:1.5rem; display:block; margin-top:8px;}
.stat-card span{font-size:.78rem; color:var(--gris);}
.chart-card{background:var(--arena); border-radius:var(--r-md); padding:20px; margin-bottom:26px;}
.bars{display:flex; align-items:flex-end; gap:10px; height:140px; margin-top:14px;}
.bars .bar{flex:1; background:linear-gradient(180deg,var(--rojo),var(--azul)); border-radius:8px 8px 2px 2px; position:relative;}
.bars .bar span{position:absolute; bottom:-22px; left:0; right:0; text-align:center; font-size:.68rem; color:var(--gris);}
.admin-table{width:100%; border-collapse:collapse;}
.admin-table th,.admin-table td{padding:12px 10px; text-align:left; font-size:.85rem; border-bottom:1px solid var(--arena-2);}
.admin-table th{color:var(--gris); font-weight:700; font-size:.74rem; text-transform:uppercase; letter-spacing:.04em;}
.pill{padding:4px 11px; border-radius:100px; font-size:.72rem; font-weight:700;}
.pill.ok{background:var(--verde-soft); color:var(--verde);}
.pill.pend{background:var(--sol-soft); color:#8a5a00;}
.pill.bad{background:var(--rojo-soft); color:var(--rojo);}
.empty-admin{text-align:center; padding:70px 20px; color:var(--gris);}
.empty-admin .material-symbols-outlined{font-size:44px; color:var(--gris-claro);}
.empty-admin h4{color:var(--azul-dark); margin:14px 0 6px;}

.proto-banner{background:var(--azul-dark); color:#fff; text-align:center; font-size:.78rem; padding:9px 16px;}
.proto-banner b{color:var(--sol);}

@media print{
  header,.proto-banner,footer,.no-print{display:none !important;}
}

/* ---- Ajustes WordPress ---- */
.proto-banner{display:none;}
.screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important;height:1px;width:1px;overflow:hidden;}
.aviso-ok{background:var(--verde-soft);color:var(--verde);border:1px solid var(--verde);border-radius:var(--r-md);padding:16px 20px;margin:20px 0;font-weight:600;}
.navlinks a, .mobile-menu a{background:none;border:none;font-family:inherit;font-weight:600;font-size:.92rem;color:var(--grafito);padding:8px 14px;border-radius:100px;transition:background .2s;display:inline-block;}
.navlinks a:hover, .navlinks a.active{background:var(--azul-soft);color:var(--azul);}
.mobile-menu a{display:block;width:100%;text-align:left;padding:14px 18px;}


/* ---- Formulario de reserva (tarjeta lateral) — rediseño 2030 ---- */
.rform{margin-top:6px;}
.rform .rf{margin-bottom:14px;}
.rform label{display:flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gris);margin-bottom:7px;}
.rform label .material-symbols-outlined{font-size:15px;color:var(--azul);}
.rform input,.rform select{width:100%;box-sizing:border-box;border:1.5px solid #E3E6EC;background:#FBFBFD;border-radius:14px;padding:13px 15px;font-size:.95rem;font-family:inherit;color:var(--grafito);transition:border-color .18s, box-shadow .18s, background .18s;appearance:none;}
.rform select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%230A2E63' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;padding-right:38px;}
.rform input:focus,.rform select:focus{outline:none;border-color:var(--azul);background:#fff;box-shadow:0 0 0 4px rgba(10,46,99,.10);}
.rform input:hover,.rform select:hover{border-color:#c9cfda;}
.rf-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.rform ::placeholder{color:#9AA1AD;}

/* Estimador en vivo */
.rf-est{background:linear-gradient(135deg,var(--azul) 0%,#0D3A7C 100%);border-radius:18px;padding:18px 20px;color:#fff;margin:18px 0 16px;display:none;}
.rf-est.on{display:block;animation:rfIn .35s ease;}
@keyframes rfIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.rf-est .fila{display:flex;justify-content:space-between;font-size:.85rem;color:rgba(255,255,255,.78);padding:3px 0;}
.rf-est .fila.total{border-top:1px solid rgba(255,255,255,.22);margin-top:9px;padding-top:11px;color:#fff;font-weight:700;font-size:1.02rem;align-items:baseline;}
.rf-est .fila.total b{font-family:'Plus Jakarta Sans',sans-serif;font-size:1.5rem;color:#FFD65C;}
.rf-est .nota{font-size:.68rem;color:rgba(255,255,255,.55);margin-top:8px;}
.rform .btn-primary{width:100%;justify-content:center;padding:15px;font-size:1rem;box-shadow:0 10px 26px rgba(217,30,54,.35);}
.rform .btn-primary:hover{transform:translateY(-2px);box-shadow:0 14px 32px rgba(217,30,54,.45);}
.rf-fine{display:flex;gap:8px;align-items:flex-start;font-size:.74rem;color:var(--gris);margin-top:12px;line-height:1.5;}
.rf-fine .material-symbols-outlined{font-size:16px;color:var(--verde);flex:none;margin-top:1px;}
