/* AGUSCAR · Una única capa de estilos. Sin fuentes ni librerías externas. */
:root { color-scheme: light; --red:#a00000; --ink:#151515; --muted:#5e5e5e; --line:#e4e3e0; --paper:#f5f4f1; --radius:16px; --content:1160px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:105px; }
body { margin:0; background:#fff; color:var(--ink); font:400 16px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
button,a { -webkit-tap-highlight-color:transparent; }
button { font:inherit; }
a { color:inherit; text-underline-offset:4px; }
img { display:block; max-width:100%; height:auto; }
picture { display:block; }
figure,h1,h2,h3,p { margin:0; }
button,summary { cursor:pointer; }
button,a,summary { touch-action:manipulation; }
button:disabled { cursor:default; }
[hidden] { display:none!important; }
:focus-visible { outline:3px solid #2870d1; outline-offset:5px; }
::selection { background:#a00000; color:#fff; }
.container { width:min(calc(100% - 48px),var(--content)); margin-inline:auto; }
.skip-link { position:fixed; left:16px; top:-100px; z-index:100; padding:12px 18px; background:#fff; color:#111; border-radius:8px; }
.skip-link:focus { top:12px; }
.icon { width:20px; height:20px; flex:0 0 20px; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:50px; padding:12px 23px; border:1px solid transparent; border-radius:8px; font-size:.95rem; font-weight:750; line-height:1.3; text-align:center; text-decoration:none; transition:background 160ms ease,border-color 160ms ease,transform 160ms ease; }
.btn:hover { transform:translateY(-2px); }
.btn-primary { background:var(--red); color:#fff; }
.btn-primary:hover { background:#830000; }
.btn-outline { color:#fff; border-color:#ffffff80; background:#15151566; }
.btn-outline:hover { background:#fff; color:#111; border-color:#fff; }
.btn-dark { color:#fff; background:var(--ink); }
.btn-dark:hover { background:#333; }
.btn-light { color:#111; background:#fff; }
.btn-light:hover { background:#eee; }
.btn-small { min-height:44px; padding:10px 17px; font-size:.85rem; }
.text-link { display:inline-flex; align-items:center; gap:8px; font-weight:700; color:var(--red); }
.site-header { position:sticky; top:0; z-index:50; border-bottom:1px solid #ffffff14; background:#101010; color:#fff; }
.header-inner { min-height:86px; display:flex; align-items:center; justify-content:space-between; gap:25px; }
.brand { display:inline-flex; align-items:center; gap:12px; flex-shrink:0; color:#fff; text-decoration:none; }
.brand img { width:56px; height:56px; border-radius:9px; }
.brand-name { display:block; font-weight:850; font-size:1.05rem; line-height:1.3; letter-spacing:.15em; }
.brand-sub { display:block; margin-top:3px; font-size:.62rem; font-weight:600; letter-spacing:.12em; color:#bdbdbd; text-transform:uppercase; }
.main-nav { display:flex; align-items:center; gap:25px; }
.main-nav a { color:#d7d7d7; font-size:.86rem; text-decoration:none; }
.main-nav a:hover { color:#fff; text-decoration:underline; }
.header-actions { display:flex; align-items:center; gap:14px; }
.language-switch { display:flex; align-items:center; gap:2px; }
.language-switch a { display:grid; place-items:center; min-width:42px; min-height:44px; padding:5px 8px; border-radius:6px; color:#c2c2c2; font-size:.76rem; font-weight:750; text-decoration:none; }
.language-switch a[aria-current="page"] { background:#ffffff18; color:#fff; }
.hero { position:relative; isolation:isolate; overflow:hidden; min-height:700px; color:#fff; background:#151515; }
.hero-media,.hero-slides,.hero-slide,.hero-shade { position:absolute; inset:0; }
.hero-media { z-index:-1; }
.hero-slide picture,.hero-slide img { width:100%; height:100%; }
.hero-slide img { object-fit:cover; object-position:center 57%; }
.hero-slide:not([hidden]) { animation:photo-in 650ms ease both; }
.hero-shade { background:linear-gradient(90deg,#070707f5 0%,#080808dd 32%,#0a0a0a99 58%,#08080824 100%),linear-gradient(0deg,#080808b3,transparent 30%); pointer-events:none; }
.hero-content { position:relative; padding-block:90px 110px; pointer-events:none; }
.hero-text { max-width:740px; pointer-events:auto; }
.eyebrow { display:inline-flex; align-items:center; gap:11px; font-size:.76rem; font-weight:750; letter-spacing:.13em; text-transform:uppercase; }
.eyebrow::before { content:""; width:8px; height:8px; flex:0 0 8px; border-radius:50%; background:#f04747; box-shadow:0 0 0 5px #b600002e; }
.hero h1 { max-width:760px; margin-top:25px; font-size:clamp(2.5rem,5.3vw,4.6rem); font-weight:850; line-height:1.04; letter-spacing:-.045em; }
.hero h1 span { display:block; margin-top:12px; font-size:.64em; line-height:1.16; font-weight:650; letter-spacing:-.025em; }
.hero-lead { max-width:570px; margin-top:25px; color:#dedede; font-size:1.08rem; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.hero-note { margin-top:23px; font-size:.85rem; color:#c7c7c7; }
.hero-controls { position:absolute; right:max(24px,calc((100% - var(--content)) / 2)); bottom:24px; display:flex; align-items:center; gap:3px; padding:4px; border:1px solid #ffffff50; border-radius:10px; background:#080808c9; color:#fff; }
.hero-dot,.hero-toggle { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; border:0; border-radius:7px; background:transparent; color:#fff; font-size:.78rem; font-weight:700; }
.hero-dot[aria-current="true"] { background:var(--red); }
.hero-toggle { padding-inline:14px; border-left:1px solid #ffffff40; margin-left:4px; }
.hero-toggle:disabled { color:#d7d7d7; }
.hero-toggle:hover:not(:disabled),.hero-dot:hover { background:#ffffff24; }
.trust-strip { background:#111; color:#fff; border-top:1px solid #ffffff1a; }
.trust-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.trust-item { display:flex; align-items:center; gap:15px; padding:25px 24px; border-right:1px solid #ffffff20; }
.trust-item:first-child { padding-left:0; }
.trust-item:last-child { border:0; }
.trust-number { flex-shrink:0; color:#f45c62; font-size:1.65rem; font-weight:800; line-height:1.1; }
.trust-item strong { display:block; font-size:.9rem; }
.trust-item p { margin-top:2px; color:#bfbfbf; font-size:.77rem; }
.section { padding-block:85px; }
.section-kicker { display:block; margin-bottom:13px; color:var(--red); font-size:.75rem; font-weight:800; text-transform:uppercase; letter-spacing:.15em; }
.section-title { max-width:780px; font-size:clamp(2rem,3.7vw,3rem); font-weight:800; line-height:1.12; letter-spacing:-.035em; text-wrap:balance; }
.section-lead { max-width:670px; margin-top:18px; color:var(--muted); font-size:1rem; }
.section-heading { margin-bottom:35px; }
.services-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:23px; }
.service-card { display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--line); border-radius:var(--radius); background:#fff; }
.service-media { position:relative; aspect-ratio:8 / 5; overflow:hidden; background:#e5e5e5; }
.service-media picture,.service-media img { width:100%; height:100%; }
.service-media img { object-fit:cover; }
.service-content { display:flex; flex:1; flex-direction:column; align-items:flex-start; gap:14px; padding:25px; }
.service-number { color:var(--red); font-size:.75rem; font-weight:800; letter-spacing:.13em; }
.service-content h3 { font-size:1.3rem; line-height:1.25; font-weight:800; letter-spacing:-.02em; }
.service-content p { color:var(--muted); font-size:.91rem; }
.service-content .text-link { margin-top:auto; padding-top:4px; min-height:44px; font-size:.86rem; }
.plans-section { background:var(--paper); }
.plans-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:35px; }
.plans-intro .section-heading { margin-bottom:0; }
.availability-chip { flex-shrink:0; display:flex; align-items:center; gap:10px; padding:12px 17px; border:1px solid #d7d3cc; border-radius:8px; color:#444; font-size:.8rem; font-weight:650; }
.plans-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px; align-items:stretch; }
.plan { position:relative; display:flex; flex-direction:column; padding:34px; border:1px solid #dcd9d4; border-top:4px solid #222; border-radius:var(--radius); background:#fff; }
.plan-featured { border-color:var(--red); border-top-color:var(--red); }
.plan-name { font-size:1.55rem; font-weight:800; letter-spacing:-.025em; }
.plan-tagline { margin-top:5px; color:var(--muted); font-size:.9rem; }
.plan-price { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px; margin-top:23px; line-height:1.1; }
.plan-price .currency { font-size:.82rem; color:#555; font-weight:650; }
.plan-price strong { font-size:3.2rem; font-weight:850; letter-spacing:-.055em; }
.plan-price .period { color:#555; font-size:.9rem; }
.plan-benefits { display:grid; gap:11px; margin:26px 0 28px; padding:23px 0 0; border-top:1px solid var(--line); list-style:none; }
.plan-benefits li { display:flex; align-items:flex-start; gap:10px; font-size:.9rem; }
.plan-benefits li::before { content:"✓"; flex:0 0 17px; color:var(--red); font-weight:850; }
.plan .btn { margin-top:auto; width:100%; }
.plans-terms { max-width:830px; margin-top:24px; color:#555; font-size:.8rem; }
.plans-more { margin-top:13px; font-size:.83rem; }
.coverage-section { background:#121212; color:#fff; }
.coverage-grid { display:grid; grid-template-columns:1fr 1.02fr; align-items:center; gap:60px; }
.coverage-section .section-kicker { color:#f16a6a; }
.coverage-section .section-lead { color:#c2c2c2; }
.coverage-cities { display:flex; flex-wrap:wrap; gap:10px; margin-top:23px; padding:0; list-style:none; }
.coverage-cities li { padding:8px 14px; border:1px solid #ffffff40; border-radius:7px; font-size:.84rem; }
.coverage-address { margin-top:25px; color:#c8c8c8; font-size:.9rem; font-style:normal; }
.coverage-address strong { display:block; margin-bottom:5px; color:#fff; }
.coverage-section .hero-actions { margin-top:22px; }
.coverage-photo { position:relative; overflow:hidden; border-radius:var(--radius); }
.coverage-photo picture,.coverage-photo img { width:100%; }
.coverage-photo img { aspect-ratio:4 / 3; object-fit:cover; }
.coverage-photo figcaption { padding:15px 18px; background:#242424; color:#ddd; font-size:.8rem; }
.faq-layout { display:grid; grid-template-columns:.82fr 1.18fr; align-items:start; gap:65px; }
.faq-list { border-top:1px solid var(--line); }
.faq-item { border-bottom:1px solid var(--line); }
.faq-item summary { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:70px; padding-block:20px; list-style:none; font-size:.96rem; font-weight:750; line-height:1.45; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:"+"; flex:0 0 22px; color:var(--red); font-size:1.5rem; font-weight:500; text-align:center; }
.faq-item[open] summary::after { content:"−"; }
.faq-answer { padding:0 26px 22px 0; color:var(--muted); font-size:.91rem; }
.contact-section { background:var(--red); color:#fff; }
.contact-inner { display:flex; align-items:center; justify-content:space-between; gap:35px; padding-block:48px; }
.contact-inner h2 { max-width:650px; font-size:clamp(1.6rem,3vw,2.2rem); line-height:1.15; letter-spacing:-.025em; }
.contact-inner p { margin-top:12px; color:#ffe1e1; font-size:.94rem; }
.contact-inner .hero-actions { flex-shrink:0; margin-top:0; }
.site-footer { background:#080808; color:#fff; }
.footer-main { display:grid; grid-template-columns:1.2fr 1fr .8fr; gap:50px; padding-block:52px; }
.footer-description { max-width:310px; margin-top:18px; color:#b8b8b8; font-size:.85rem; }
.footer-block h2 { margin-bottom:15px; font-size:.76rem; font-weight:750; text-transform:uppercase; letter-spacing:.1em; color:#bdbdbd; }
.footer-block a { display:block; width:fit-content; min-height:42px; padding-block:6px; color:#e5e5e5; font-size:.86rem; }
.footer-block address { font-size:.84rem; font-style:normal; color:#c1c1c1; }
.footer-bottom { display:flex; justify-content:space-between; flex-wrap:wrap; gap:15px; padding-block:20px; border-top:1px solid #ffffff20; color:#aaa; font-size:.76rem; }
.footer-bottom a { color:#ddd; }
.mobile-contact { display:none; }
.reveal-animate { animation:reveal-in 500ms ease both; }
@keyframes photo-in { from { opacity:.5; } to { opacity:1; } }
@keyframes reveal-in { from { opacity:.7; transform:translateY(10px); } to { opacity:1; transform:none; } }
@media (max-width:1100px) {
  .main-nav { gap:17px; }
  .header-inner { gap:18px; }
  .header-actions { gap:8px; }
  .brand-sub { font-size:.58rem; }
  .coverage-grid { gap:35px; }
  .contact-inner { align-items:flex-start; flex-direction:column; }
  .hero { min-height:660px; }
}
@media (max-width:900px) {
  .main-nav { display:none; }
  .hero h1 { font-size:3.5rem; max-width:660px; }
  .hero-text { max-width:660px; }
  .hero-shade { background:linear-gradient(90deg,#070707ed 0%,#080808d9 45%,#08080880 100%); }
  .services-grid { gap:17px; }
  .service-content { padding:21px; }
  .trust-item { padding:22px 15px; gap:10px; }
  .trust-number { font-size:1.35rem; }
  .coverage-grid,.faq-layout { grid-template-columns:1fr; gap:35px; }
  .coverage-photo { max-width:700px; }
  .plans-intro { align-items:flex-start; flex-direction:column; gap:22px; }
  .faq-layout .section-heading { margin:0; }
  .footer-main { gap:28px; grid-template-columns:1.1fr 1fr; }
  .footer-main .footer-block:last-child { grid-column:2; }
}
@media (max-width:720px) {
  html { scroll-padding-top:90px; }
  body { padding-bottom:calc(82px + env(safe-area-inset-bottom,0px)); }
  .container { width:calc(100% - 36px); }
  .header-inner { min-height:76px; gap:10px; }
  .brand { gap:9px; }
  .brand img { width:48px; height:48px; }
  .brand-name { font-size:.9rem; }
  .brand-sub { max-width:130px; font-size:.53rem; }
  .header-call { display:none; }
  .language-switch a { min-width:37px; padding-inline:6px; }
  .hero { min-height:0; }
  .hero-content { padding-block:54px 100px; }
  .hero h1 { font-size:clamp(2.4rem,9.8vw,3.7rem); margin-top:21px; }
  .hero h1 span { font-size:.63em; margin-top:12px; }
  .hero-lead { margin-top:22px; font-size:.99rem; }
  .eyebrow { font-size:.67rem; letter-spacing:.08em; }
  .hero-shade { background:linear-gradient(90deg,#050505f0 0%,#070707c7 100%); }
  .hero-actions { gap:10px; margin-top:25px; }
  .hero-actions .btn { flex:1 1 180px; }
  .hero-note { font-size:.76rem; margin-top:18px; }
  .hero-controls { right:18px; bottom:15px; padding:1px; }
  .hero-toggle { padding-inline:10px; font-size:.73rem; }
  .hero-dot { min-width:44px; }
  .trust-grid { grid-template-columns:1fr; }
  .trust-item,.trust-item:first-child { padding:16px 0; border-right:0; border-bottom:1px solid #ffffff1a; gap:18px; }
  .trust-number { width:54px; font-size:1.5rem; }
  .trust-item p { font-size:.79rem; }
  .section { padding-block:58px; }
  .section-title { font-size:clamp(1.9rem,6.8vw,2.6rem); }
  .section-lead { font-size:.94rem; }
  .services-grid,.plans-grid { grid-template-columns:1fr; gap:20px; }
  .service-media { aspect-ratio:16 / 9; }
  .service-content { padding:23px; }
  .plan { padding:28px 25px; }
  .plan-benefits { gap:13px; }
  .plan-price strong { font-size:3rem; }
  .availability-chip { font-size:.76rem; }
  .contact-inner { padding-block:36px; gap:24px; }
  .contact-inner .hero-actions { width:100%; }
  .footer-main { grid-template-columns:1fr; gap:30px; padding-block:40px; }
  .footer-main .footer-block:last-child { grid-column:auto; }
  .footer-bottom { flex-direction:column; gap:9px; }
  .mobile-contact { position:fixed; bottom:0; left:0; right:0; z-index:60; display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px)); border-top:1px solid #ddd; background:#fff; box-shadow:0 -6px 30px #00000012; }
  .mobile-contact .btn { min-height:50px; padding:12px 10px; gap:7px; font-size:.81rem; white-space:nowrap; }
}
@media (max-width:360px) {
  .brand-sub { display:none; }
  .brand img { width:44px; height:44px; }
  .brand-name { font-size:.82rem; letter-spacing:.1em; }
  .header-actions { gap:0; }
  .hero h1 { font-size:2.35rem; }
  .btn { padding-inline:16px; }
  .plan { padding-inline:21px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
}
