/* Toledo Subterráneo — mobile first. Colores base extraídos del logotipo oficial de Rutas de Toledo. */
:root{
  --brand-purple:#8926c4;
  --brand-navy:#2c3248;
  --brand-orange:#ee8001;
  --ink:#202432;
  --ink-soft:#4f5567;
  --stone:#6c6d74;
  --ivory:#f7f4ef;
  --paper:#fffdfa;
  --line:#e2dce3;
  --white:#fff;
  --shadow:0 18px 50px rgba(27,31,48,.12);
  --radius:18px;
  --radius-sm:12px;
  --container:1180px;
  --header-h:72px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 18px)}
body{margin:0;color:var(--ink);background:var(--paper);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;font-size:1rem;line-height:1.65;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}a{color:inherit}button,input,textarea,select{font:inherit}button{color:inherit}address{font-style:normal}figure{margin:0}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.08;letter-spacing:-.025em}h2{font-size:clamp(2rem,7vw,4.3rem);margin-bottom:1.25rem}h3{font-size:clamp(1.25rem,4.4vw,1.8rem);margin-bottom:.75rem}p{margin-bottom:1rem}::selection{background:#e6cff4;color:#171a26}
.container{width:min(100% - 32px,var(--container));margin-inline:auto}.section{padding:72px 0}.section-kicker{margin-bottom:.7rem;color:var(--brand-purple);font-weight:850;font-size:.78rem;letter-spacing:.13em;text-transform:uppercase}.section-heading{max-width:780px;margin-bottom:34px}.section-heading>p:last-child{color:var(--stone);font-size:1.05rem;max-width:68ch}.section-heading.narrow{max-width:850px;margin-inline:auto;text-align:left}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:12px;top:8px;z-index:9999;transform:translateY(-150%);background:var(--white);color:var(--ink);padding:10px 14px;border-radius:8px;box-shadow:var(--shadow);font-weight:700}.skip-link:focus{transform:none}:focus-visible{outline:3px solid var(--brand-orange);outline-offset:3px}
.site-header{position:sticky;top:0;z-index:1000;height:var(--header-h);background:rgba(247,244,239,.95);border-bottom:1px solid rgba(44,50,72,.12);backdrop-filter:blur(12px)}.header-inner{width:min(100% - 24px,1280px);height:100%;margin-inline:auto;display:flex;align-items:center;gap:12px}.brand{display:flex;align-items:center;text-decoration:none;min-width:0}.brand-logo{width:180px;height:auto;}.nav-toggle{width:44px;height:44px;margin-left:auto;border:1px solid var(--line);border-radius:10px;background:var(--paper);display:grid;place-content:center;gap:4px;cursor:pointer}.nav-toggle span[aria-hidden="true"]{width:20px;height:2px;background:var(--brand-navy);display:block;border-radius:2px}.site-nav{position:absolute;left:12px;right:12px;top:calc(100% + 8px);display:flex;flex-direction:column;gap:0;background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:8px}.site-nav a{padding:11px 12px;text-decoration:none;font-weight:750;border-radius:8px}.site-nav a:hover{background:#f2ebf6}.js .site-nav{display:none}.js .site-nav.is-open{display:flex}.no-js .nav-toggle{display:none}.header-cta{display:none}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 18px;border-radius:999px;background:var(--brand-purple);color:var(--white);text-decoration:none;font-weight:850;line-height:1.1;border:1px solid var(--brand-purple);transition:transform .18s ease,filter .18s ease,background-color .18s ease}.button:hover{filter:brightness(.88);transform:translateY(-1px)}.button-small{min-height:42px;padding:10px 16px}.button-ghost{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.58);color:var(--white)}.button-ghost:hover{background:rgba(255,255,255,.18);filter:none}.button-light{background:var(--white);color:var(--brand-navy);border-color:var(--white)}.button-outline{background:transparent;color:var(--brand-navy);border-color:var(--brand-navy)}.button-outline:hover{background:var(--brand-navy);color:var(--white);filter:none}
.hero{position:relative;min-height:calc(100svh - var(--header-h));display:grid;align-items:end;overflow:hidden;background:var(--brand-navy);color:var(--white)}.hero-image,.hero-shade{position:absolute;inset:0;width:100%;height:100%}.hero-image{object-fit:cover;object-position:center 48%}.hero-shade{background:linear-gradient(180deg,rgba(13,15,23,.08) 6%,rgba(13,15,23,.34) 48%,rgba(13,15,23,.91) 100%),linear-gradient(90deg,rgba(13,15,23,.53),transparent 72%)}.hero-content{position:relative;z-index:1;padding:72px 0 50px}.eyebrow{display:inline-block;margin-bottom:18px;padding:8px 12px;border:1px solid rgba(255,255,255,.36);border-radius:999px;background:rgba(19,17,23,.28);backdrop-filter:blur(5px);font-size:.82rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.hero h1{font-size:clamp(3rem,14vw,7.8rem);margin-bottom:16px;max-width:9ch}.hero-lead{font-size:clamp(1.3rem,5.2vw,2.25rem);line-height:1.2;max-width:27ch;font-weight:800;margin-bottom:12px}.hero-copy{max-width:55ch;color:rgba(255,255,255,.86);font-size:1.05rem}.hero-facts{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.hero-facts span{padding:7px 11px;border-radius:999px;background:rgba(137,38,196,.27);border:1px solid rgba(255,255,255,.24);font-size:.9rem;font-weight:750}.hero-actions{display:flex;flex-direction:column;align-items:stretch;gap:10px;max-width:560px}.reserve-note{margin:18px 0 0;max-width:52ch;padding:10px 13px;border-left:4px solid var(--brand-orange);background:rgba(20,20,29,.48);color:#fff;border-radius:0 10px 10px 0;font-size:.94rem}
.intro-section{background:var(--ivory)}.intro-grid{display:grid;gap:30px}.prose{color:var(--ink-soft);max-width:70ch}.prose-large{font-size:1.08rem}.prose p:last-child{margin-bottom:0}
.spaces-section{background:var(--paper)}.space-card{position:relative;overflow:hidden;border-radius:var(--radius);background:#fbf8f6;border:1px solid var(--line)}.space-media{aspect-ratio:4/3;overflow:hidden;background:#d8d0ca}.space-media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.space-card:hover .space-media img{transform:scale(1.018)}.space-content{padding:22px}.space-number{display:inline-flex;width:42px;height:42px;align-items:center;justify-content:center;border-radius:50%;background:var(--brand-navy);color:var(--white);font-size:.82rem;font-weight:850;margin-bottom:18px}.space-content p{color:var(--ink-soft);margin-bottom:0}.spaces-grid{display:grid;gap:18px;margin-top:18px}.space-card-featured{margin-bottom:18px}
.above-ground{background:var(--brand-navy);color:var(--white)}.split-layout{display:grid;gap:34px}.split-media{border-radius:var(--radius);overflow:hidden;max-height:700px}.split-media img{width:100%;height:100%;object-fit:cover}.split-content .section-kicker{color:#dba9f0}.split-content .prose{color:rgba(255,255,255,.79)}.fact-list{margin:28px 0 0;display:grid;gap:0;border-top:1px solid rgba(255,255,255,.18)}.fact-list div{padding:15px 0;border-bottom:1px solid rgba(255,255,255,.18)}.fact-list dt{font-size:.76rem;text-transform:uppercase;letter-spacing:.11em;color:#e5d8ec;font-weight:800}.fact-list dd{margin:4px 0 0;font-weight:700}
.visit-section{background:var(--ivory)}.info-panels{display:grid;gap:14px}.info-panels article{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-sm);padding:22px}.panel-mark{font-size:2rem;color:var(--brand-purple);line-height:1}.info-panels h3{margin-top:18px;font-size:1.2rem}.info-panels p{color:var(--stone);margin-bottom:0}.mandatory-panel{border-top:4px solid var(--brand-orange)!important}
.cta-band{padding:54px 0;background:var(--brand-purple);color:var(--white)}.cta-band .section-kicker{color:#fff}.cta-band h2{font-size:clamp(2rem,8vw,3.6rem);margin-bottom:10px}.cta-band p{max-width:60ch;color:rgba(255,255,255,.9)}.cta-band-inner{display:grid;gap:22px;align-items:center}
.practical-section{background:var(--paper)}.practical-grid{display:grid;gap:20px}.practical-main{background:var(--brand-navy);color:var(--white);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}.practical-main h3{font-size:1.45rem}.practical-main p{color:rgba(255,255,255,.8)}.practical-main .address{font-size:1.25rem;font-weight:800;color:var(--white)}.inline-actions{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:22px}.text-link{text-underline-offset:4px;text-decoration-thickness:1px;font-weight:800;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent)}.text-link:hover{text-decoration-thickness:2px}.practical-list{display:grid;gap:12px}.practical-list article{padding:20px 0;border-bottom:1px solid var(--line)}.practical-list h3{font-size:1.08rem;margin-bottom:.4rem}.practical-list p{color:var(--stone);margin-bottom:0}
.video-section{background:var(--ivory)}.video-grid{display:grid;gap:28px;align-items:center}.video-copy{color:var(--stone);max-width:55ch}.lite-video{border-radius:var(--radius);overflow:hidden;background:#171513;box-shadow:var(--shadow);aspect-ratio:16/9}.video-poster{position:relative;width:100%;height:100%;padding:0;border:0;background:#171513;cursor:pointer}.video-poster img{width:100%;height:100%;object-fit:cover;filter:brightness(.68)}.play-button{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:76px;height:76px;border-radius:50%;display:grid;place-content:center;padding-left:5px;background:var(--white);color:var(--brand-purple);font-size:1.5rem;box-shadow:0 14px 34px rgba(0,0,0,.25)}.video-label{position:absolute;left:18px;bottom:16px;padding:7px 10px;border-radius:999px;background:rgba(20,18,16,.72);color:#fff;font-weight:800;font-size:.88rem}.lite-video iframe{width:100%;height:100%;border:0}
.gallery-section{background:var(--paper)}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gallery-grid figure{position:relative;overflow:hidden;border-radius:12px;background:#ddd;min-height:180px}.gallery-grid img{width:100%;height:100%;object-fit:cover;aspect-ratio:1/1}.gallery-grid figcaption{position:absolute;left:10px;bottom:10px;padding:5px 8px;border-radius:7px;background:rgba(17,15,13,.72);color:#fff;font-size:.74rem;font-weight:800}.gallery-wide{grid-column:1 / -1}.gallery-wide img{aspect-ratio:16/10}
.faq-section{background:var(--ivory)}.faq-layout{display:grid;gap:30px}.faq-intro{max-width:520px}.faq-intro>p:last-child{color:var(--stone)}.faq-list{border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line)}.faq-list summary{cursor:pointer;list-style:none;padding:20px 40px 20px 0;font-weight:850;position:relative}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary::after{content:"+";position:absolute;right:4px;top:50%;transform:translateY(-50%);font-size:1.5rem;font-weight:400;color:var(--brand-purple)}.faq-list details[open] summary::after{content:"–"}.faq-list details p{padding:0 28px 20px 0;color:var(--stone);margin:0;max-width:72ch}
.other-tours{background:var(--paper)}.tour-grid{display:grid;gap:18px}.tour-card{overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:var(--ivory);box-shadow:0 8px 28px rgba(36,32,45,.05)}.tour-image{width:100%;height:auto;aspect-ratio:20/13;object-fit:cover}.tour-image-magic{object-position:center 58%}.tour-image-ghosts{object-position:center 60%}.tour-image-templars{object-position:center 55%}.tour-card-body{padding:22px}.tour-card-body p{color:var(--stone)}.section-actions{margin-top:26px}
.final-cta{padding:78px 0;background:#171b2a;color:var(--white)}.final-cta .section-kicker{color:#dba9f0}.final-cta h2{font-size:clamp(2.4rem,9vw,5.5rem);max-width:13ch;margin-bottom:16px}.final-cta p{color:rgba(255,255,255,.74);max-width:58ch;margin-bottom:24px}
.site-footer{padding:50px 0 92px;background:#eee9f1;color:var(--ink)}.footer-grid{display:grid;gap:34px}.footer-logo{width:260px;height:auto;}.footer-brand p{margin-top:14px;color:var(--stone);max-width:46ch}.footer-title{font-size:.82rem;letter-spacing:.11em;text-transform:uppercase;margin-bottom:12px}.site-footer address,.site-footer a{color:var(--ink-soft)}.footer-links{display:flex;flex-direction:column;align-items:flex-start;gap:6px}.footer-bottom{margin-top:36px;padding-top:20px;border-top:1px solid #d5cddd;display:flex;flex-direction:column;gap:8px;color:var(--stone);font-size:.9rem}.footer-bottom p{margin:0}
.mobile-booking{position:fixed;left:10px;right:10px;bottom:10px;z-index:900;min-height:48px;display:flex;align-items:center;justify-content:center;border-radius:999px;background:var(--brand-purple);color:#fff;text-decoration:none;font-weight:900;box-shadow:0 10px 30px rgba(47,20,65,.3)}

/* Floating WhatsApp contact */
.whatsapp-contact{
  position:fixed;
  right:12px;
  bottom:calc(70px + env(safe-area-inset-bottom,0px));
  z-index:920;
  width:52px;
  height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border-radius:999px;
  background:var(--brand-purple);
  color:#fff;
  text-decoration:none;
  box-shadow:0 12px 32px rgba(47,20,65,.30);
  transition:transform .18s ease,filter .18s ease;
}
.whatsapp-contact:hover{transform:translateY(-2px);filter:brightness(.9)}
.whatsapp-icon{width:25px;height:25px;fill:currentColor;flex:0 0 auto}
.whatsapp-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (min-width:700px){:root{--header-h:78px}.container{width:min(100% - 56px,var(--container))}.section{padding:96px 0}.brand-logo{width:220px}.header-cta{display:inline-flex;margin-left:4px}.hero-content{padding:105px 0 72px}.hero h1{max-width:none}.hero-actions{flex-direction:row}.intro-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start;gap:70px}.spaces-grid{grid-template-columns:1fr 1fr}.space-card-featured{display:grid;grid-template-columns:1.2fr .8fr;min-height:480px}.space-card-featured .space-media{aspect-ratio:auto}.space-card-featured .space-content{display:flex;flex-direction:column;justify-content:flex-end;padding:34px}.split-layout{grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center}.info-panels{grid-template-columns:repeat(3,1fr)}.cta-band-inner{grid-template-columns:1fr auto}.practical-grid{grid-template-columns:1fr 1fr;gap:44px}.practical-main{padding:34px}.video-grid{grid-template-columns:.75fr 1.25fr;gap:60px}.gallery-grid{grid-template-columns:repeat(4,1fr);gap:14px}.gallery-wide{grid-column:span 2}.gallery-grid img,.gallery-wide img{aspect-ratio:4/3}.faq-layout{grid-template-columns:.75fr 1.25fr;gap:70px}.tour-grid{grid-template-columns:repeat(3,1fr)}.footer-grid{grid-template-columns:1.25fr .75fr .75fr}.footer-bottom{flex-direction:row;justify-content:space-between}.site-footer{padding-bottom:44px}.mobile-booking{display:none}}
@media (min-width:1040px){.nav-toggle{display:none}.js .site-nav,.site-nav{position:static;display:flex!important;flex-direction:row;align-items:center;gap:2px;margin-left:auto;background:transparent;border:0;border-radius:0;box-shadow:none;padding:0}.site-nav a{font-size:.88rem;padding:9px}.header-cta{margin-left:8px}.hero-content{padding-bottom:82px}.hero-copy{font-size:1.15rem}.space-card-featured .space-content{padding:44px}.space-content{padding:26px}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
.error-page{min-height:100svh;display:grid;align-items:center;padding:64px 0;background:var(--ivory)}

@media (min-width:700px){
  .whatsapp-contact{right:22px;bottom:22px;width:auto;height:52px;padding:0 18px 0 15px;font-weight:850}
  .whatsapp-label{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal}
}
