:root{
  --paper:#f4f5f2;--paper2:#e6e9e5;--ink:#12151b;--ink2:#20252d;
  --blue:#0078e6;--blue-soft:#6ec4ff;--blue-mist:#d6eeff;
  --teal:#00a49b;--coral:#ff6b4a;--line:rgba(18,21,27,.18);
  --serif:"Bricolage Grotesque","Manrope",Arial,sans-serif;
  --sans:"Manrope",Arial,sans-serif;
  --mono:"IBM Plex Mono",monospace;
  --max:1440px;--pad:clamp(1.1rem,4vw,4.8rem);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;overflow-x:hidden}
img{max-width:100%;display:block}a{color:inherit}
button,input,select,textarea{font:inherit}
.skip-link{position:fixed;top:-5rem;left:1rem;background:var(--blue);color:#fff;padding:.8rem 1rem;z-index:1000}
.skip-link:focus{top:1rem}
.wrap{max-width:var(--max);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}

.site-header{height:84px;max-width:var(--max);margin:0 auto;padding:0 var(--pad);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line);position:relative;z-index:20}
.brand{display:flex;align-items:center;text-decoration:none;min-width:0}
.brand-mark{height:54px;width:auto;max-width:min(360px,50vw);object-fit:contain;object-position:left center}
.site-header nav{display:flex;gap:1.6rem}
.site-header nav a{font-size:.78rem;text-decoration:none;font-weight:600}
.site-header nav a:after{content:"";display:block;width:0;height:1px;background:var(--ink);transition:.3s}
.site-header nav a:hover:after,.site-header nav a:focus:after{width:100%}
.header-note{justify-self:end;font-family:var(--mono);font-size:.63rem;color:#63676d}
.menu-toggle{display:none;background:none;border:1px solid var(--line);padding:.55rem .8rem;font-family:var(--mono);font-size:.7rem}

.kicker,.section-head>span{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;font-weight:600;color:#4d535a}
.section{padding-top:clamp(3.5rem,7vw,7rem);padding-bottom:clamp(3.5rem,7vw,7rem)}
.section-head{display:grid;grid-template-columns:160px 1fr minmax(200px,.55fr);gap:clamp(1rem,3vw,3rem);align-items:end;margin-bottom:clamp(2.5rem,5vw,4.5rem)}
.section-head h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,5.2vw,5.6rem);line-height:.9;letter-spacing:-.045em;margin:0;max-width:14ch}
.section-head>p{margin:0;color:#5c6168}

.button{min-height:52px;padding:.85rem 1.1rem;border:1px solid var(--ink);display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;text-decoration:none;font-size:.76rem;font-weight:700;cursor:pointer;background:transparent;color:var(--ink)}
.button.dark{background:var(--ink);color:#fff}
.button.dark:hover,.button.dark:focus{background:var(--blue);border-color:var(--blue)}
.button:disabled{opacity:.45;cursor:not-allowed}
.text-button{font-size:.8rem;text-underline-offset:5px}

.pay-hero{padding-top:clamp(3.5rem,7vw,6rem);padding-bottom:clamp(1.5rem,3vw,2.5rem)}
.pay-band{background:var(--blue);color:#fff;padding:clamp(1.8rem,3.5vw,3.2rem) var(--pad);font-family:var(--serif);font-size:clamp(1.5rem,3vw,2.8rem);line-height:1.15;font-weight:550;text-align:center}
.pay-band p{margin:0;text-wrap:balance}

.catalog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--ink);border-left:1px solid var(--ink);margin-bottom:clamp(2.5rem,5vw,4rem)}
.service-card{min-height:220px;padding:clamp(1.3rem,2.2vw,2rem);background:#f8f9f7;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);display:flex;flex-direction:column;gap:.6rem;cursor:pointer;text-align:left;font:inherit;color:inherit;transition:background .2s,transform .2s}
.service-card:hover,.service-card:focus-visible{background:#fff;transform:translateY(-3px);box-shadow:0 10px 0 rgba(18,21,27,.08);position:relative;z-index:2;outline:none}
.service-card.selected{background:var(--ink);color:#fff}
.service-card.selected .svc-meta,.service-card.selected .svc-desc{color:#aeb5bf}
.service-card.selected .svc-price{color:var(--blue-soft)}
.svc-meta{display:flex;justify-content:space-between;gap:1rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.045em;color:#59616d}
.svc-meta b{border:1px solid #aeb5bf;padding:.2rem .4rem;font-weight:500}
.service-card h3{font-family:var(--serif);font-size:clamp(1.6rem,2.4vw,2.4rem);line-height:1.05;font-weight:650;letter-spacing:-.03em;margin:.4rem 0 0}
.svc-desc{margin:0;color:#555e69;font-size:.92rem;flex:1}
.svc-price{font-family:var(--mono);font-size:.95rem;font-weight:600;color:var(--blue);margin-top:auto}

.checkout-shell{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.checkout-form{background:#f8f9f7;border:1px solid var(--ink);padding:clamp(1.4rem,2.5vw,2.4rem)}
.checkout-form h3{font-family:var(--serif);font-size:clamp(1.8rem,2.6vw,2.6rem);font-weight:550;margin:0 0 1.2rem;letter-spacing:-.03em}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-grid label{display:flex;flex-direction:column;gap:.4rem;font-family:var(--mono);font-size:.68rem;letter-spacing:.04em;color:#4d535a}
.form-grid label.full{grid-column:1/-1}
.form-grid input,.form-grid select,.form-grid textarea{border:1px solid var(--line);background:#fff;padding:.75rem .85rem;font-family:var(--sans);font-size:.95rem;color:var(--ink)}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{outline:2px solid var(--blue);outline-offset:1px}
.form-actions{margin-top:1.4rem;display:flex;flex-direction:column;gap:.8rem;align-items:stretch}
.form-actions .button{width:100%;justify-content:center}
.form-hint{font-size:.82rem;color:#5c6168;margin:0}
.status-box{margin-top:1rem;padding:1rem 1.1rem;border:1px solid var(--line);background:#fff;font-size:.88rem;display:none}
.status-box.show{display:block}
.status-box.error{border-color:var(--coral);background:#fff5f2}
.status-box.info{border-color:var(--blue);background:var(--blue-mist)}
.status-box.ok{border-color:var(--teal);background:#e8f8f6}

.summary-card{border:1px solid var(--ink);background:var(--ink);color:#fff;padding:clamp(1.4rem,2.5vw,2.4rem);position:sticky;top:1.2rem}
.summary-card>span{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;color:#929ba7}
.summary-card h3{font-family:var(--serif);font-size:clamp(1.8rem,2.5vw,2.5rem);font-weight:500;margin:.6rem 0 1.2rem;letter-spacing:-.03em}
.summary-card dl{margin:0}
.summary-card dl div{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid #3b4049;padding:.85rem 0;font-size:.9rem}
.summary-card dt{font-family:var(--mono);font-size:.65rem;letter-spacing:.04em;color:#929ba7}
.summary-card dd{margin:0;text-align:right}
.summary-total{font-family:var(--serif);font-size:clamp(2.2rem,3.5vw,3.2rem);font-weight:500;letter-spacing:-.04em;margin:1.2rem 0 .4rem;color:var(--blue-soft)}
.summary-card small{color:#929ba7;font-size:.78rem;display:block;line-height:1.45}
.trust-list{margin:1.4rem 0 0;padding:0;list-style:none}
.trust-list li{font-size:.82rem;color:#b7bec7;padding:.35rem 0;border-top:1px solid #3b4049}
.trust-list li:before{content:"→ ";color:var(--teal)}

.result-hero{padding-top:clamp(4rem,8vw,7rem);padding-bottom:clamp(3rem,6vw,5rem);text-align:left}
.result-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.8rem,5.5vw,5.5rem);line-height:.92;letter-spacing:-.045em;margin:1rem 0 1.2rem;max-width:14ch}
.result-hero p{max-width:540px;color:#555e69}#result-order{font-family:var(--mono);font-size:.85rem;letter-spacing:.04em;color:var(--ink)}
.result-actions{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2rem}

.pay-note{display:grid;grid-template-columns:160px 1fr .9fr;gap:clamp(1.2rem,3vw,3rem);align-items:end;margin-top:clamp(2.5rem,5vw,4rem);padding-top:1.6rem;border-top:1px solid var(--ink)}
.pay-note span{font-family:var(--mono);font-size:.72rem;letter-spacing:.055em;color:#4d535a}
.pay-note h3{font-family:var(--serif);font-size:clamp(1.7rem,3vw,2.8rem);line-height:1.05;font-weight:600;letter-spacing:-.035em;margin:0;max-width:16ch}
.pay-note p{margin:0;color:#555e69;max-width:480px}

.contact{background:#f8f5ef}
.contact-layout{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(2rem,5vw,5rem)}
.contact-copy>span{font-family:var(--mono);font-size:.68rem;letter-spacing:.1em;font-weight:600;color:#4d535a}
.contact-copy h2{font-family:var(--serif);font-weight:400;font-size:clamp(2.4rem,4.5vw,4.5rem);line-height:.92;letter-spacing:-.04em;margin:1rem 0}
.contact-cta{display:inline-flex;align-items:center;gap:1rem;min-height:52px;padding:.85rem 1.1rem;background:var(--ink);color:#fff;text-decoration:none;font-size:.76rem;font-weight:700}
.contact-cta:hover{background:var(--blue)}
.contact-links p{font-family:var(--mono);font-size:.65rem;letter-spacing:.08em;color:#63676d}
.contact-links a{display:grid;grid-template-columns:110px 1fr auto;gap:1rem;align-items:center;padding:1rem 0;border-top:1px solid var(--line);text-decoration:none}
.contact-links a span{font-family:var(--mono);font-size:.62rem;color:#686d73}
.contact-links a strong{font-size:.95rem}

footer.wrap{min-height:140px;padding-top:1.6rem;padding-bottom:1.6rem;display:grid;gap:.5rem;align-content:center;border-top:1px solid var(--line);margin-top:2rem}
.footer-brand{display:block;max-width:min(380px,100%);text-decoration:none}
.footer-brand img{width:100%;height:auto}
footer p{margin:0;color:#555e69;font-size:.9rem}
footer small{color:#686d73}
footer a{color:inherit;text-underline-offset:3px}

body.izi-open{overflow:auto;padding-bottom:160px}
#izi-overlay{position:fixed;inset:0;z-index:40;display:none;align-items:flex-end;justify-content:center;padding:0 0 140px;overflow:auto;background:rgba(18,21,27,.45)}
#izi-overlay.show{display:flex}
#izi-overlay .panel{background:#fff;border:1px solid #b7d4f0;border-bottom:none;border-radius:18px 18px 0 0;padding:1.15rem 1.15rem 1.35rem;width:min(520px,100%);max-height:min(88vh,920px);overflow:auto;text-align:left;box-shadow:0 -12px 48px rgba(18,21,27,.28);animation:izi-up .28s ease}
/* Barra TEST / iframe 3DS de Izipay deben quedar por encima del overlay */
body.izi-open iframe[src*="micuentaweb"],
body.izi-open iframe[src*="3ds"],
body.izi-open [class*="kr-toolbar"],
body.izi-open [id*="kr-toolbar"],
body.izi-open [class*="kr-debug"],
body.izi-open .kr-popin,
body.izi-open .kr-overlay{z-index:300!important}
@media(min-width:720px){
  #izi-overlay{align-items:center;padding:1.25rem 1.25rem 150px}
  #izi-overlay .panel{border-radius:8px;border-bottom:1px solid #b7d4f0;box-shadow:0 22px 60px rgba(11,92,171,.22);animation:izi-fade .22s ease}
}
@keyframes izi-up{from{transform:translateY(18px);opacity:.6}to{transform:none;opacity:1}}
@keyframes izi-fade{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}
#izi-overlay .panel-kr{max-width:520px}
#izi-overlay .panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}
#izi-overlay .panel-head-copy{display:grid;gap:.2rem;min-width:0}
#izi-overlay .panel-kicker{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;color:#63676d}
#izi-overlay .panel-title{font-family:var(--serif);font-size:1.35rem;line-height:1.15;font-weight:700}
#izi-overlay .panel-close{appearance:none;border:1px solid #9ec4e8;background:#fff;color:#0b5cab;width:2.25rem;height:2.25rem;line-height:1;font-size:1.35rem;cursor:pointer;flex:0 0 auto}
#izi-overlay .panel-close:hover,#izi-overlay .panel-close:focus{background:#0b5cab;border-color:#0b5cab;color:#fff}
#izi-overlay .panel-meta{display:grid;grid-template-columns:1.4fr .8fr;gap:.75rem;padding:.85rem .95rem;margin:0 0 .85rem;background:linear-gradient(135deg,#0b5cab 0%,#0078e6 55%,#0a8fd6 100%);color:#fff;border:1px solid #0b5cab;box-shadow:inset 0 1px 0 rgba(255,255,255,.18)}
#izi-overlay .panel-meta[hidden]{display:none}
#izi-overlay .panel-meta span{display:block;font-family:var(--mono);font-size:.58rem;letter-spacing:.08em;color:rgba(255,255,255,.78);margin-bottom:.2rem}
#izi-overlay .panel-meta strong{display:block;font-size:.95rem;line-height:1.25;word-break:break-word}
#izi-overlay .panel-meta div:last-child strong{font-size:1.2rem;color:#fff}
#izi-overlay .panel-hint{margin:0 0 1rem;color:#555e69;font-size:.86rem}
#izi-overlay .panel-test{margin:0 0 1rem;padding:.85rem .95rem;border:1px dashed #0b5cab;background:#eef7ff}
#izi-overlay .panel-test[hidden]{display:none}
#izi-overlay .panel-test span{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;color:#0b5cab;margin-bottom:.4rem}
#izi-overlay .panel-test p{margin:0 0 .7rem;font-size:.82rem;color:#334155}
#izi-overlay .panel-test dl{margin:0}
#izi-overlay .panel-test div{display:grid;grid-template-columns:90px 1fr;gap:.4rem;padding:.25rem 0;font-size:.78rem}
#izi-overlay .panel-test dt{font-family:var(--mono);font-size:.62rem;color:#64748b}
#izi-overlay .panel-test dd{margin:0;font-family:var(--mono);overflow-wrap:anywhere}
#izi-overlay .kr-form-container{min-height:180px;background:#f7fbff;border:1px solid #d6e8f8;padding:.85rem .85rem .35rem;overflow:visible}
#izi-overlay .kr-form-container #micuentawebstd_rest_wrapper,
#izi-overlay .kr-form-container .kr-embedded,
#izi-overlay .kr-form-container .kr-smart-form{margin:0}
#izi-overlay .kr-form-container input,
#izi-overlay .kr-form-container select,
#izi-overlay .kr-form-container textarea,
#izi-overlay .kr-form-container button{font:inherit}
#izi-overlay .kr-form-container .kr-payment-button,
#izi-overlay .kr-form-container button.kr-payment-button{min-height:auto}
#izi-overlay .panel-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--line);font-family:var(--mono);font-size:.62rem;letter-spacing:.06em;color:#686d73}
#izi-overlay .panel-foot a{color:var(--ink);font-weight:600}

@media(max-width:1050px){
  .brand-mark{height:44px;max-width:260px}
  .section-head{grid-template-columns:1fr}
  .checkout-shell{grid-template-columns:1fr}
  .summary-card{position:static}
  .pay-note{grid-template-columns:1fr}
  .contact-layout{grid-template-columns:1fr}
}
@media(max-width:720px){
  .site-header{grid-template-columns:1fr auto;height:auto;padding-top:.8rem;padding-bottom:.8rem;gap:.6rem}
  .header-note{display:none}
  .menu-toggle{display:inline-flex}
  .site-header nav{display:none;grid-column:1/-1;flex-direction:column;gap:.8rem;padding-bottom:.6rem}
  .site-header nav.open{display:flex}
  .brand-mark{height:34px;max-width:210px}
  .catalog-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .footer-brand{max-width:300px}
}
