﻿@layer reset, base, layout, components, utilities, motion, print;:root{--color-primary:#003da5;--color-primary-dark:#002d7a;--color-primary-light:#1a56c4;--color-accent:#06c;--color-accent-strong:#0058ad;--color-accent-light:#5b9bd5;--color-bg:#fff;--color-bg-alt:#f0f4fc;--color-bg-band:#e6edf8;--color-bg-dark:#001f6b;--color-text:#1a1a2e;--color-text-muted:#4a5568;--color-heading:#001f6b;--color-border:#c8d8ee;--font-heading:"Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;--font-body:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:2rem;--space-xl:4rem;--max-width:1200px;--gutter:clamp(1rem,4vw,2rem);--radius:0.25rem;--shadow-sm:0 1px 2px var(--c-shadow-soft);--shadow-md:0 6px 18px var(--c-shadow-soft);--transition:0.25s ease;--z-hero-bg:1;--z-hero-overlay:2;--z-hero-text:4;--z-sticky:200;--z-skip-link:1000;--color-white:#fff;--color-black:#000;--color-on-primary:#dce8f8;--color-topbar:#f1e9d8;--color-footer-link:#c8d8f0;--color-footer-muted:#8aafd6;--color-bg-nav-dark:#1f1f1f;--color-error-bg:#fdecec;--color-error-border:#c53030;--color-error-text:#7a0f0f;--text-xl:clamp(1.25rem,1rem + 1vw,1.75rem);--text-2xl:clamp(1.5rem,1rem + 2vw,2.5rem);--text-3xl:clamp(2rem,1.5rem + 2.5vw,3.5rem);--leading-tight:1.2;--leading-normal:1.6;--c-hero-mob-a:rgba(0,31,107,.30);--c-hero-mob-b:rgba(0,18,51,.48);--c-hero-vig-0:rgba(0,18,51,.05);--c-hero-vig-1:rgba(0,18,51,.52);--c-hero-vig-edge:rgba(0,18,51,.22);--c-ph-a:rgba(0,31,107,.92);--c-ph-b:rgba(0,61,165,.78);--c-focus-ring:rgba(0,61,165,.18);--c-uah-shadow:rgba(0,31,107,.45);--c-uah-shadow-h:rgba(0,31,107,.6);--c-map-stripe:rgba(0,61,165,.06);--c-map-a:rgba(230,237,248,.65);--c-map-b:rgba(91,155,213,.35);--c-shadow-soft:rgba(0,0,0,.08);--c-scrim:rgba(0,0,0,.45);--c-tshadow-1:rgba(0,0,0,.85);--c-tshadow-2:rgba(0,0,0,.6);--c-tshadow-3:rgba(0,0,0,.35);--c-logo-shadow:rgba(0,0,0,.4);--c-logo-shadow-h:rgba(0,0,0,.55);--c-pin-shadow:rgba(0,0,0,.25);--c-cookies-shadow:rgba(0,0,0,.18);--c-divider:hsla(0,0%,100%,.1);--color-gold:#c9a55a;--color-gold-dark:#8a6a24;--color-gold-light:#e5c98a;--c-uah-border:#000;--color-band-bg:#0a1a3c;--color-band-border:#16305f;--color-band-text:#e8eefb;--c-band-surface:hsla(0,0%,100%,.05);color-scheme:light;--c-dropcap:var(--color-gold-dark)}@layer reset{*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{min-height:100vh;min-height:100svh}img,picture,svg,video{display:block;max-width:100%;height:auto}ol,ul{list-style:none}button,input,select,textarea{font:inherit;color:inherit}table{border-collapse:collapse}a{color:inherit;text-decoration:none}[role=button],a,button{touch-action:manipulation}[role=button]:active,a:active,button:active{opacity:.75}body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}@layer base{body{border-top:4px solid var(--color-gold);font-family:var(--font-body);font-size:100%;line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:700;line-height:var(--leading-tight);color:var(--color-heading);margin-bottom:.6em}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}p{margin-bottom:1em;max-width:70ch;line-height:var(--leading-normal)}a{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}a:focus-visible,a:hover{color:var(--color-primary-dark)}:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px;border-radius:.125rem}hr{border:0;border-top:1px solid var(--color-border);margin:var(--space-lg) 0}[id]{scroll-margin-top:9rem}::selection{background:var(--color-gold-light);color:var(--color-primary-dark)}}@layer layout{.container{width:100%;max-width:var(--max-width);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:clamp(1.75rem,4vw,3.5rem)}.section--alt{background:var(--color-bg-alt)}.section--band{background:var(--color-band-bg);border-block:1px solid var(--color-band-border);color:var(--color-band-text)}.grid{display:grid;gap:var(--space-md)}.grid--2,.grid--3{grid-template-columns:1fr}@media (min-width:37.5em){.grid--3{grid-template-columns:repeat(2,1fr)}}@media (min-width:56.25em){.grid--2{grid-template-columns:repeat(2,1fr)}.grid--3{grid-template-columns:repeat(3,1fr)}}}@layer components{.skip-link{position:absolute;left:-9999px;top:0;background:var(--color-primary);color:var(--color-white);padding:var(--space-sm) var(--space-md);z-index:var(--z-skip-link);text-decoration:none}.skip-link:focus{left:0}@media (min-width:43.75em){}.site-header{background:var(--color-white);border-bottom:6px solid var(--color-primary);position:sticky;top:0;z-index:var(--z-sticky);box-shadow:var(--shadow-sm);padding-top:env(safe-area-inset-top)}.site-header__inner{justify-content:space-between;gap:var(--space-md);min-height:7.5rem}.brand,.site-header__inner{display:flex;align-items:center}.brand{gap:var(--space-sm);text-decoration:none;color:inherit}.brand__crest{width:auto;height:6.5rem;max-height:6.5rem;flex-shrink:0;object-fit:contain;filter:brightness(.42) contrast(1.25)}@media (min-width:37.5em){}.nav-toggle{background:transparent;border:1px solid var(--color-border);border-radius:var(--radius);padding:.625rem .75rem;cursor:pointer;min-width:2.75rem;min-height:2.75rem;display:inline-flex;flex-direction:column;justify-content:center;gap:.25rem}.nav-toggle__bar{display:block;width:1.375rem;height:.125rem;background:var(--color-primary)}.main-nav{position:absolute;inset:100% 0 auto 0;background:var(--color-white);border-bottom:4px solid var(--color-primary);box-shadow:var(--shadow-md);display:none}.main-nav[data-open=true]{display:block}.main-nav__list{display:flex;flex-direction:column;padding:var(--space-xs) 0}.main-nav__link{display:block;padding:.875rem var(--gutter);font-weight:600;font-size:1rem;color:var(--color-heading);text-decoration:none;border-bottom:1px solid var(--color-border);border-left:4px solid transparent;min-height:2.75rem}.main-nav__link:focus-visible,.main-nav__link:hover,.main-nav__link[aria-current=page]{color:var(--color-primary);border-left-color:var(--color-gold);background:var(--color-bg-alt)}@media (min-width:56.25em){.nav-toggle{display:none}.main-nav{position:static;display:block;background:transparent;border:0;box-shadow:none}.main-nav__list{flex-direction:row;padding:0;gap:var(--space-xs)}.main-nav__link{padding:.875rem 1.375rem;border-bottom:3px solid transparent;border-left:0;background:transparent;font-size:1.125rem;font-weight:700}.main-nav__link:focus-visible,.main-nav__link:hover,.main-nav__link[aria-current=page]{border-bottom-color:var(--color-gold);background:transparent}}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.75rem 1.5rem;font-family:var(--font-body);font-weight:600;font-size:.9375rem;letter-spacing:.02em;text-transform:uppercase;text-decoration:none;border:2px solid transparent;border-radius:var(--radius);cursor:pointer}.btn--primary{background:var(--color-primary);color:var(--color-white)}.btn--primary:focus-visible,.btn--primary:hover{background:var(--color-primary-dark);color:var(--color-white)}.btn--accent{background:var(--color-accent-strong);color:var(--color-white)}.btn--accent:focus-visible,.btn--accent:hover{background:var(--color-accent-light);color:var(--color-text)}.btn--ghost{background:transparent;color:var(--color-white);border-color:var(--color-white)}.btn--ghost:focus-visible,.btn--ghost:hover{background:var(--color-white);color:var(--color-primary)}.btn--lg{padding:.875rem 2rem;font-size:1rem}.btn-group{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md)}@keyframes strip-enter-l{0%{transform:translateX(-105%)}to{transform:translateX(0)}}@keyframes strip-enter-r{0%{transform:translateX(105%)}to{transform:translateX(0)}}@keyframes hero-fade-up{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.hero{border-bottom:4px solid var(--color-gold);position:relative;min-height:clamp(30rem,78vh,51.25rem);min-height:clamp(30rem,78svh,51.25rem);display:flex;align-items:center;justify-content:center;color:var(--color-white);overflow:hidden;padding-block:clamp(3.5rem,8vw,6rem);background:linear-gradient(160deg,var(--c-hero-mob-a),var(--c-hero-mob-b)),url(/img/fachada-rectorado-400w.webp) center/cover no-repeat}.hero__bg{display:none}@media (min-width:37.5em){.hero{background:none}.hero:before{inset:0;background:radial-gradient(ellipse at 50% 50%,var(--c-hero-vig-0) 0,var(--c-hero-vig-1) 100%),linear-gradient(180deg,var(--c-hero-vig-edge) 0,transparent 18%,transparent 82%,var(--c-hero-vig-edge));z-index:var(--z-hero-overlay)}.hero:before{content:"";position:absolute;pointer-events:none}.hero__bg{display:flex;flex-direction:column;position:absolute;inset:0;z-index:var(--z-hero-bg);gap:.1875rem}.hero__strip{flex:1;overflow:hidden}.hero__strip--1{animation:strip-enter-l 1.1s cubic-bezier(.76,0,.24,1) both}.hero__strip--2{animation:strip-enter-r 1.1s cubic-bezier(.76,0,.24,1) .12s both}.hero__strip--3{animation:strip-enter-l 1.1s cubic-bezier(.76,0,.24,1) .24s both}.hero__strip-inner{display:flex;height:100%;gap:.1875rem}.hero__strip-img{flex-shrink:0;width:42vw;height:100%;overflow:hidden;filter:brightness(1.08) saturate(1.35) contrast(1.08) sepia(.09) hue-rotate(-6deg)}.hero__strip-img picture{display:block;height:100%}.hero__strip-img img{width:100%;height:100%;object-fit:cover;object-position:center}}.hero__text-wrap{position:static;z-index:var(--z-hero-text);width:min(92vw,1200px);text-align:center;background:var(--c-scrim);padding:2rem 3rem;border-radius:3px}.hero__tagline{font-family:var(--font-heading);font-weight:700;font-size:clamp(1.2rem,.6rem + 2.5vw,3.75rem);letter-spacing:.1em;text-transform:uppercase;color:var(--color-white);line-height:1.15;margin:0;text-shadow:0 1px 4px var(--c-tshadow-1),0 4px 24px var(--c-tshadow-2),0 12px 48px var(--c-tshadow-3);animation:hero-fade-up .9s ease-out .6s both}.btn--full{width:100%;justify-content:center;margin-top:var(--space-sm)}.page-header{background:linear-gradient(135deg,var(--c-ph-a),var(--c-ph-b)),var(--color-primary);padding-block:clamp(2.5rem,5vw,4rem)}.page-header,.page-header h1{color:var(--color-white)}.page-header__lead{color:var(--color-on-primary);max-width:65ch;font-size:1.0625rem}.breadcrumb{font-size:.875rem;color:var(--color-on-primary);margin-bottom:var(--space-sm)}.breadcrumb ol{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.breadcrumb a{color:var(--color-on-primary);text-decoration:underline}.breadcrumb [aria-current=page]{color:var(--color-white);font-weight:600}.section__title{position:relative;padding-left:1.05rem;margin-bottom:var(--space-md)}.section__title:before{content:"";position:absolute;left:0;top:.08em;bottom:.08em;width:5px;background:var(--color-gold);transform-origin:top}.section__intro{max-width:70ch;color:var(--color-text-muted);font-size:1.0625rem;margin-bottom:var(--space-lg)}.feature{padding:var(--space-sm) var(--space-md);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius)}.feature__icon{width:44px;height:44px;border-radius:50%;border:2px solid var(--color-gold);background:var(--color-bg-band);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-family:var(--font-heading);font-weight:700;margin-bottom:var(--space-sm)}.feature__title{font-size:1.0625rem;margin-bottom:var(--space-xs)}.feature__text{color:var(--color-text-muted);font-size:.9375rem;margin:0}@media (min-width:50em){}.info-block{background:var(--color-bg-alt);padding:var(--space-md);border-left:4px solid var(--color-gold);border-radius:var(--radius)}.info-block h3{color:var(--color-primary);margin-bottom:var(--space-sm)}.info-block dl{display:grid;gap:var(--space-xs)}.info-block dt{font-weight:600;color:var(--color-heading)}.info-block dd{margin-bottom:var(--space-sm);color:var(--color-text-muted)}.info-block blockquote{margin:0 0 var(--space-md);padding-left:var(--space-md);border-left:3px solid var(--color-gold)}.info-block blockquote p{margin-bottom:var(--space-xs);font-family:var(--font-heading);font-size:1.0625rem;line-height:1.65;font-style:italic}.info-block blockquote footer{font-size:.8125rem;color:inherit;opacity:.75}.form{background:var(--color-white);padding:var(--space-lg);border:1px solid var(--color-border);border-radius:var(--radius)}.form,.form__row{display:grid;gap:var(--space-md)}@media (min-width:40em){.form__row--2{grid-template-columns:1fr 1fr}}.form__field{display:flex;flex-direction:column;gap:var(--space-xs)}.form label{font-weight:600;font-size:.9375rem;color:var(--color-heading)}.form input,.form select,.form textarea{width:100%;font-size:16px;padding:.75rem .875rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-white);color:var(--color-text);min-height:2.75rem}.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--c-focus-ring)}.form textarea{min-height:140px;resize:vertical}.form__check{display:flex;align-items:flex-start;gap:var(--space-sm);font-size:.9375rem;color:var(--color-text-muted);cursor:pointer}.form__check input{width:auto;min-height:auto;margin-top:.25rem}.form__honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.form__note{font-size:.875rem;color:var(--color-text-muted)}.form__error{background:var(--color-error-bg);border-left:4px solid var(--color-error-border);border-radius:var(--radius);padding:var(--space-md);color:var(--color-error-text)}.form__error strong{display:block;margin-bottom:var(--space-xs);font-size:1.0625rem}.form__error p{margin:0;max-width:none}.form__importe{background:var(--color-bg-alt);border-left:4px solid var(--color-accent-strong);border-radius:var(--radius);padding:var(--space-md);color:var(--color-heading);font-weight:600;font-size:1.0625rem;margin:0}.form__importe[hidden]{display:none}.contact-grid{display:grid;gap:var(--space-lg)}@media (min-width:56.25em){.contact-grid{grid-template-columns:1.4fr 1fr}}.faq details{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-md);margin-bottom:var(--space-sm)}.faq summary{cursor:pointer;font-weight:600;color:var(--color-heading);list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:" +";color:var(--color-accent);font-weight:700}.faq details[open] summary:after{content:" −"}.faq details>p{margin-top:var(--space-sm);color:var(--color-text-muted)}.site-footer{border-top:7px solid var(--color-gold);background:var(--color-bg-dark);color:var(--color-footer-link);padding:1.25rem 0 calc(var(--space-sm) + env(safe-area-inset-bottom));font-size:1.0625rem}.site-footer h3{color:var(--color-white);font-size:1rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-sm)}.site-footer a{color:var(--color-footer-link);text-decoration:underline}.site-footer a:hover{color:var(--color-white);text-decoration:underline}.footer-main{display:grid;gap:var(--space-md);grid-template-columns:repeat(2,1fr);margin-bottom:var(--space-md)}@media (min-width:56.25em){.footer-main{grid-template-columns:repeat(4,1fr);gap:var(--space-lg);align-items:start}}.footer-col li{margin-bottom:var(--space-xs)}.footer-col p{margin-bottom:var(--space-sm)}.footer-col--logo{display:none}@media (min-width:56.25em){.footer-col--logo{display:flex;justify-content:center;align-items:center}}.footer__logo-link{display:flex;align-items:center;justify-content:center;background:var(--color-white);border-radius:10px;padding:.875rem 1.25rem;box-shadow:0 4px 20px var(--c-logo-shadow);transition:transform .2s}.footer__logo-link:hover{box-shadow:0 8px 28px var(--c-logo-shadow-h);transform:translateY(-2px)}.footer__logo{height:110px;width:auto;display:block}.footer__logo-link:not(.footer__logo-link--uah) .footer__logo{filter:brightness(0)}.photo-break{width:100%;aspect-ratio:21/9;overflow:hidden;display:block}.photo-break img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}.incluye-layout{display:grid;grid-template-columns:1fr;gap:var(--space-lg);align-items:center}@media (min-width:56.25em){.incluye-layout{grid-template-columns:1fr 1fr}}.incluye-foto{margin:0;border-radius:var(--radius);overflow:hidden}.incluye-foto img{width:100%;aspect-ratio:3/2;object-fit:cover;object-position:top center;display:block;filter:contrast(1.28) brightness(.88) saturate(1.15)}.footer__logo-link--uah{background:var(--color-bg-dark);box-shadow:0 4px 20px var(--c-uah-shadow)}.footer__logo-link--uah:hover{box-shadow:0 8px 28px var(--c-uah-shadow-h)}.footer__logo-link--uah .footer__logo{width:227px;height:auto}.site-footer__bottom{border-top:1px solid var(--c-divider);padding-top:var(--space-sm);padding-bottom:var(--space-sm);display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg);justify-content:space-between;font-size:1rem;color:var(--color-footer-muted)}.footer-legal{display:flex;flex-wrap:wrap;gap:var(--space-md);align-items:center}.footer-legal a{display:inline-flex;align-items:center;min-height:2.75rem;padding:.5rem 0}.footer-legal__btn{background:none;border:0;color:inherit;font:inherit;padding:.5rem 0;cursor:pointer;text-decoration:none;min-height:2.75rem;display:inline-flex;align-items:center}.footer-legal__btn:focus-visible,.footer-legal__btn:hover{color:var(--color-white);text-decoration:underline}.cookies{position:fixed;inset:auto 0 0 0;background:var(--color-bg-nav-dark);color:var(--color-white);padding:var(--space-md);border-top:4px solid var(--color-gold);z-index:var(--z-sticky);box-shadow:0 -4px 18px var(--c-cookies-shadow)}.cookies[hidden]{display:none}.cookies__inner{display:flex;flex-direction:column;gap:var(--space-sm);max-width:var(--max-width);margin-inline:auto}@media (min-width:50em){.cookies__inner{flex-direction:row;align-items:center;justify-content:space-between}}.cookies p{margin:0;font-size:1rem}.cookies a{color:var(--color-accent-light);text-decoration:underline}.cookies__actions{display:flex;gap:var(--space-sm);flex-wrap:wrap}.error-page{text-align:center;padding-block:var(--space-xl)}.error-page__code{font-family:var(--font-heading);font-size:clamp(4rem,12vw,8rem);color:var(--color-primary);line-height:1;margin-bottom:var(--space-sm)}.error-page__img{max-width:min(100%,720px);height:auto;margin:0 auto var(--space-lg);border-radius:var(--radius);box-shadow:var(--shadow-md)}.lead{font-size:1.0625rem;color:var(--color-text-muted)}.prose{max-width:75ch}.prose h2{margin-top:var(--space-lg)}.prose h3{margin-top:var(--space-md)}.prose ol,.prose ul{margin-left:var(--space-lg);margin-bottom:var(--space-md);list-style:disc}.prose ol{list-style:decimal}.map{position:relative;aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;border:1px solid var(--color-border);background:var(--color-bg-band)}.map__facade{position:relative;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-md);background:linear-gradient(135deg,var(--c-map-a),var(--c-map-b)),repeating-linear-gradient(45deg,var(--c-map-stripe),var(--c-map-stripe) 2px,transparent 0,transparent 14px);border:0;cursor:pointer;text-align:center;color:var(--color-text);font:inherit;transition:filter var(--transition)}.map__facade:focus-visible,.map__facade:hover{filter:brightness(1.05)}.map__pin{font-size:clamp(2.5rem,6vw,3.5rem);line-height:1;filter:drop-shadow(0 2px 4px var(--c-pin-shadow))}.map__facade-body{display:flex;flex-direction:column;gap:var(--space-xs);max-width:38ch}.map__facade-body strong{font-family:var(--font-heading);font-size:1.125rem;color:var(--color-primary)}.map__facade-addr{color:var(--color-heading);font-size:.9375rem}.map__facade-note{color:var(--color-text-muted);font-size:.8125rem;line-height:1.45}.map__facade-note a{color:var(--color-primary)}.map__frame{width:100%;height:100%;border:0;display:block}.comollegar{align-items:stretch}.comollegar .info-block{margin:0}.comollegar .map{aspect-ratio:auto;min-height:18rem;height:100%}}@layer utilities{.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mt-md{margin-top:var(--space-md)}}@layer motion{@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.hero__tagline:after{transform:translateX(-50%)!important}}}@layer print{@media print{*,:after,:before{background:transparent;color:var(--color-black);box-shadow:none;text-shadow:none}a[href]:after{content:" (" attr(href) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}.cookies,.hero,.nav-toggle{display:none}body{font-size:12pt}h1,h2,h3{page-break-after:avoid}img{max-width:100%}@page{margin:2cm}}}
/* --- Selector de idioma con banderas (esquina superior derecha) --- */
@layer components{
.brand{margin-right:auto}
.lang-switch{display:flex;gap:.5rem;align-items:center;flex-shrink:0}
.lang-flag{position:relative;display:block;width:2rem;height:1.35rem;border-radius:2px;background-size:cover;background-position:center;box-shadow:0 0 0 1px var(--c-pin-shadow);text-indent:-9999px;white-space:nowrap;opacity:.5;transition:opacity .15s,box-shadow .15s}
.lang-flag::after{content:"";position:absolute;left:0;right:0;top:50%;height:2.75rem;transform:translateY(-50%)}
.lang-flag:hover,.lang-flag:focus-visible{opacity:1}
.lang-flag.is-active{opacity:1;box-shadow:0 0 0 2px var(--color-primary)}
.lang-flag--es{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 3 2'><rect width='3' height='2' fill='%23c60b1e'/><rect y='.5' width='3' height='1' fill='%23ffc400'/></svg>")}
.lang-flag--gb{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 30'><clipPath id='t'><path d='M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z'/></clipPath><path d='M0,0 v30 h60 v-30 z' fill='%23012169'/><path d='M0,0 L60,30 M60,0 L0,30' stroke='%23fff' stroke-width='6'/><path d='M0,0 L60,30 M60,0 L0,30' clip-path='url(%23t)' stroke='%23C8102E' stroke-width='4'/><path d='M30,0 v30 M0,15 h60' stroke='%23fff' stroke-width='10'/><path d='M30,0 v30 M0,15 h60' stroke='%23C8102E' stroke-width='6'/></svg>")}
.hero__cta{position:absolute;left:0;right:0;bottom:1.5rem;margin:0;text-align:center;z-index:var(--z-hero-text);animation:hero-fade-up .9s ease-out .95s both}@media (min-width:37.5em){.hero__text-wrap{position:relative}.hero__cta{position:static;bottom:auto;margin:1.75rem auto 0;max-width:none}}
@media (min-width:56.25em){.lang-flag{width:1.5rem;height:1rem}.lang-flag::after{height:2rem}}
.lang-flag.is-active{display:none}
.lang-flag{opacity:1}
.lang-switch{margin-left:.333rem}
/* El atributo hidden debe ganar a display:flex de .form__field (misma capa y especificidad = ganaba flex) */
.form__field[hidden]{display:none}
@media (min-width:56.25em){.main-nav__link{font-size:1.215rem}}
.nav-toggle{order:1;margin-left:.333rem}.lang-flag::after{left:-.375rem;right:-.375rem}
}

@layer components{
/* --- Página de reserva estilo widget (calendario + tarjeta) --- */
@media (min-width:56.25em){}

.booking__h{font-size:var(--text-xl);margin-bottom:var(--space-md)}
.booking__hint{color:var(--color-text-muted);font-size:.9375rem;margin-top:var(--space-md);max-width:60ch}
/* Calendario */
.cal{display:grid;gap:var(--space-lg)}
@media (min-width:40em){.cal{grid-template-columns:1fr 1fr;gap:var(--space-xl)}}
.cal__loading{color:var(--color-text-muted)}
.cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}
.cal__title{font-family:var(--font-heading);font-weight:700;color:var(--color-heading);font-size:1.0625rem;text-transform:capitalize}
.cal__nav{background:transparent;border:2px solid var(--color-primary);border-radius:50%;width:2.75rem;height:2.75rem;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-primary);font-size:1.5rem;font-weight:700;line-height:1}
.cal__nav:focus-visible,.cal__nav:hover{background:var(--color-primary);color:var(--color-white);border-color:var(--color-primary)}
.cal__nav[disabled]{opacity:.3;cursor:default}
.cal__dows,.cal__grid{display:grid;grid-template-columns:repeat(7,1fr)}
.cal__dow{text-align:center;font-size:.75rem;color:var(--color-text-muted);padding-bottom:.35rem;text-transform:uppercase;letter-spacing:.03em}
.cal__grid{gap:4px}
@media (max-width:37.4375em){
  /* Bleed del grid de días hasta el borde de la tarjeta (a11y-013): a 375px
     el padding de .bv2-cal por sí solo dejaba celdas de ~42.7px, por debajo
     del mínimo de 44px. Solo se libera el ancho del grid, el resto de
     .bv2-cal (título, hint) conserva su padding normal. */
  .cal__grid{margin-inline:calc(-1 * clamp(1rem,3vw,1.75rem))}
}
.cal__day{appearance:none;background:transparent;border:0;aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:50%;cursor:pointer;font-size:.9375rem;color:var(--color-text);font-variant-numeric:tabular-nums;touch-action:pan-y}
.cal__day--empty{visibility:hidden;cursor:default}
.cal__day--off{color:var(--color-text-muted);opacity:.35;cursor:default}
.cal__day:not(.cal__day--off):not(.cal__day--empty):hover{background:var(--color-bg-alt)}
.cal__day--range{background:var(--color-bg-alt);border-radius:0}
.cal__day--in{background:var(--color-primary);color:var(--color-white)}
.cal__day--in.cal__day--start{border-radius:50% 0 0 50%}
.cal__day--in.cal__day--end{border-radius:0 50% 50% 0}
.cal__day--in.cal__day--start.cal__day--end{border-radius:50%}
/* Tarjeta de reserva */
@media (min-width:56.25em){}

.booking__rates{display:flex;gap:var(--space-sm);margin:0 0 var(--space-xs)}.booking__rate{flex:1;background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);display:flex;flex-direction:column;gap:2px}.booking__rate-room{font-size:.8125rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-weight:600}.booking__rate-price{font-family:var(--font-heading);color:var(--color-heading)}.booking__rate-price strong{font-size:1.4rem;color:var(--color-primary)}.booking__rate-price span{font-size:.8125rem;color:var(--color-text-muted)}.booking__rates-note{font-size:.8125rem;color:var(--color-text-muted);margin:0 0 var(--space-md)}.contact-cta{background:var(--color-bg-alt);border-left:4px solid var(--color-accent);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-lg);font-size:1rem}.contact-cta a{font-weight:600}

.booking__dates{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}
.booking__date{padding:.625rem .875rem}
.booking__date+.booking__date{border-left:1px solid var(--color-border)}
.booking__date-label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-weight:600}
.booking__date-val{display:block;font-size:.9375rem;color:var(--color-heading);font-weight:600;margin-top:.15rem}

.booking__reassure{font-size:.8125rem;color:var(--color-text-muted);margin:0;line-height:1.5}
.booking__reassure strong{color:var(--color-heading)}
/* Amenities */
.amenities{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:var(--space-sm) var(--space-lg);list-style:none;padding:0;margin:0;max-width:none}
.amenity{display:flex;align-items:center;gap:var(--space-sm);color:var(--color-text);font-size:1.0625rem}
.amenity__ic{flex-shrink:0;width:1.75rem;height:1.75rem;border-radius:50%;background:var(--color-bg-band);color:var(--color-primary);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem}
}

@layer components{.booking__hint--err{color:var(--color-error-text);font-weight:600}}

@layer components{.breadcrumb--dark,.breadcrumb--dark a{color:var(--color-text-muted)}.breadcrumb--dark a:hover{color:var(--color-primary)}.breadcrumb--dark [aria-current=page]{color:var(--color-heading);font-weight:600}.reservar-h1{margin-bottom:var(--space-lg)}}

@layer components{
/* --- Polish de la página de reserva (más diseño, menos quirófano) --- */
.reservar-h1{font-family:var(--font-heading);letter-spacing:.01em}
.reservar-sub{color:var(--color-text-muted);font-size:1.0625rem;margin:calc(-.4 * var(--space-md)) 0 var(--space-lg);max-width:56ch}

.cal__day{transition:background .15s ease,color .15s ease,transform .12s ease}
.cal__day:not(.cal__day--off):not(.cal__day--empty):hover{background:var(--color-bg-alt);transform:translateY(-1px)}
.cal__day--in{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-light));color:var(--color-white)}




.booking__badge{position:absolute;left:var(--space-sm);bottom:var(--space-sm);background:var(--c-scrim);color:var(--color-white);font-size:.8125rem;font-weight:600;padding:.3rem .7rem;border-radius:2rem}
.amenity{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-sm) var(--space-md);transition:transform .15s ease,box-shadow .15s ease}
.amenity:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}


}

/* --- Indice de navegacion interna (paginas legales largas) --- */
@layer components{
.toc{margin:var(--space-lg) 0;padding:var(--space-md);background:var(--color-bg-alt);border-left:3px solid var(--color-gold);border-radius:var(--radius)}
.toc__titulo{margin:0 0 var(--space-sm);font-size:1rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-heading)}
.toc .toc__lista,.toc .toc__sublista{margin:0;padding:0;list-style:none}
.toc__lista>li{margin-bottom:.5rem}
.toc .toc__sublista{margin:.35rem 0 .6rem var(--space-md);border-left:1px solid var(--color-border);padding-left:var(--space-sm)}
.toc__sublista li{margin-bottom:.5rem}
.toc a{display:flex;align-items:center;min-height:2.75rem;padding:.45rem .25rem;color:var(--color-accent-strong);text-decoration:none;border-radius:3px;line-height:1.4}
.toc a:hover,.toc a:focus-visible{background:var(--color-white);text-decoration:underline;text-underline-offset:2px}
.toc__sublista a{font-size:.9375rem;color:var(--color-text-muted)}
@media (min-width:37.5em){.toc{padding:var(--space-md) var(--space-lg)}.toc a{padding:.3rem .25rem}}
}

/* --- Respiro y anclas en el cuerpo legal --- */
@layer components{
.prose h2,.prose h3,.prose h4{scroll-margin-top:9rem}
.prose h4{margin-top:var(--space-md);margin-bottom:.35rem;font-size:1rem;color:var(--color-heading)}
.prose h2{padding-top:var(--space-sm);border-top:1px solid var(--color-border)}
.prose p{margin-bottom:var(--space-md);text-align:justify;text-wrap:pretty;hyphens:auto}
.prose .doc-start{margin:var(--space-lg) 0 0;padding-bottom:var(--space-sm);border-bottom:2px solid var(--color-gold);color:var(--color-text-muted);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.15em;text-align:center}
.prose .doc-start+h2{border-top:none;padding-top:0;margin-top:var(--space-md)}
}

/* === BOOKING V2: filete oro+azul, calendario arriba, formulario apaisado, popup móvil (15-07-2026) === */
@layer components {
.booking-v2{background:transparent;border:0;padding:0;display:flex;flex-direction:column;gap:var(--space-lg)}
/* Filete decorativo: 4px dorado + 3px azul */
.bv2-stripe{height:7px;background:linear-gradient(180deg,var(--color-gold) 0,var(--color-gold) 4px,var(--color-primary) 4px);border-radius:2px;margin-bottom:calc(-1 * var(--space-sm))}
/* BLOQUE SUPERIOR */
.bv2-top{display:grid;gap:var(--space-lg)}
@media (min-width:56.25em){.bv2-top{grid-template-columns:1fr 300px;gap:var(--space-xl);align-items:start}}
/* Panel calendario */
.bv2-cal{background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius);padding:clamp(1rem,3vw,1.75rem);box-shadow:var(--shadow-sm)}
.bv2-cal .booking__h{padding-left:1.1rem;position:relative;margin-bottom:var(--space-md)}
.bv2-cal .booking__h::before{content:"";position:absolute;left:0;top:.1em;bottom:.1em;width:4px;background:var(--color-gold)}
/* Calendario SIEMPRE visible inline (móvil y desktop), sin botón de apertura.
   David 2026-07-22: "que esté visible sin llamada". Se retiran el botón
   'cal-trigger' y el modal de móvil; el JS que los manejaba queda inerte
   (sin regla .cal-modal--open no se crea overlay). */
.cal-modal{display:block;margin-top:var(--space-md)}
/* Panel info: foto + tarifas + fechas */
.bv2-info{display:flex;flex-direction:column;gap:var(--space-md)}
@media (min-width:56.25em){.bv2-info{position:sticky;top:8.5rem}}
.bv2-photo{position:relative;aspect-ratio:4/3;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-md)}
.bv2-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.bv2-photo:hover img{transform:scale(1.05)}
.bv2-photo .booking__badge{position:absolute;left:var(--space-sm);bottom:var(--space-sm);background:var(--c-scrim);color:var(--color-white);font-size:.8125rem;font-weight:600;padding:.3rem .7rem;border-radius:2rem}
/* Tarifas con borde dorado */
.bv2-info .booking__rates{border:1px solid var(--color-gold);border-radius:var(--radius);overflow:hidden}
/* Fechas: valor en dorado */
.bv2-info .booking__date-val{color:var(--color-gold-dark);font-weight:700}
/* BLOQUE INFERIOR: campos del formulario */
.bv2-fields{background:var(--color-white);border:1px solid var(--color-border);border-top:3px solid var(--color-primary);border-radius:var(--radius);padding:var(--space-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:var(--space-md)}
/* Labels dorados */
.bv2-fields label:not(.form__check){color:var(--color-gold-dark)}
/* Fila tipo hab + importe */
.bv2-fields__row--top{display:grid;gap:var(--space-md)}
@media (min-width:56.25em){.bv2-fields__row--top{grid-template-columns:minmax(240px,auto) 1fr;align-items:start}}
/* Fila 3 cols: nombre · email · telefono */
.bv2-fields__row--3col{display:grid;gap:var(--space-md)}
@media (min-width:40em){.bv2-fields__row--3col{grid-template-columns:1fr 1fr}}
@media (min-width:56.25em){.bv2-fields__row--3col{grid-template-columns:1fr 1fr 1fr}}
/* Fila inferior: captcha · RGPD · submit */
.bv2-fields__row--bottom{display:flex;flex-direction:column;gap:var(--space-md);padding-top:var(--space-sm);border-top:1px solid var(--color-border)}
@media (min-width:56.25em){.bv2-fields__row--bottom{display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:var(--space-lg)}}
.bv2-submit{display:flex;flex-direction:column;gap:var(--space-sm)}
.bv2-submit .btn--full,.bv2-submit .booking__reassure{margin:0}
.booking-v2 .form__importe{margin:0}
}

/* === Calendario y formulario Booking-V2: acabados visuales === */
@layer components{
/* Día de HOY: punto dorado bajo el número */
.cal__day{position:relative}
.cal__day--today:not(.cal__day--in){color:var(--color-gold-dark);font-weight:700}
.cal__day--today:not(.cal__day--in)::after{content:"";position:absolute;bottom:3px;left:50%;transform:translateX(-50%);width:4px;height:4px;border-radius:50%;background:var(--color-gold);pointer-events:none}
/* Rango entre fechas: tinte dorado suave */
.cal__day--range{background:rgba(201,165,90,.13);border-radius:0}
/* Días seleccionados: halo azul */
.cal__day--in{box-shadow:0 2px 8px rgba(0,61,165,.28)}
/* Nombres de mes en Palatino, un poco más grande */
.cal__title{font-family:var(--font-heading);font-size:1.125rem;letter-spacing:.01em}
/* Separador dorado bajo los DOW */
.cal__dows{border-bottom:1px solid var(--color-gold-light);margin-bottom:var(--space-xs)}
/* Precios en dorado (columna info) */
.bv2-info .booking__rate-price strong{color:var(--color-gold-dark)}
/* Tarifa: hover con borde dorado */
.booking__rate{transition:border-color .15s ease,background .15s ease;cursor:pointer;text-align:left;font:inherit}.booking__rate--selected{border-color:var(--color-gold);background:var(--color-white)}
/* Formulario: focus con acento dorado */
.bv2-fields .form input:focus,.bv2-fields .form select:focus,.bv2-fields .form textarea:focus{border-color:var(--color-gold);box-shadow:0 0 0 3px rgba(201,165,90,.18)}
/* Select: flecha dorada personalizada */
.bv2-fields select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23c9a55a' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}
/* Submit: halo dorado al pasar el ratón */
.bv2-submit .btn--primary{transition:background .2s ease,transform .1s ease,box-shadow .2s ease}
.bv2-submit .btn--primary:hover{transform:translateY(-1px);box-shadow:0 4px 18px rgba(201,165,90,.4)}
/* Texto «No se te cobra ahora»: más editorial */
.booking__reassure{font-style:italic;border-left:3px solid var(--color-gold-light);padding-left:.75rem;margin-top:var(--space-xs)}
.booking__reassure strong{font-style:normal}
}

/* --- «Cisneros» C+A (15-07-2026, co-diseño con David): tipografía Palatino
       (token --font-heading), barra dorada en titulares, banda azul noche,
       capitular dorada, filete dorado centrado bajo el tagline (sustituto
       ligero del hero-glint, retirado por congelar el renderizador de
       Chromium), Ken Burns del mosaico y arreglos de base. Selectores
       .section--band con combinador descendente (no BEM plano: el color
       de la banda depende del contexto del ancestro, no del componente). --- */
@layer components{
@keyframes bar-grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes hero-rule{to{transform:translateX(-50%) scaleX(1)}}
@keyframes hero-kb{from{transform:scale(1.02)}to{transform:scale(1.08)}}
.section__title:before{animation:bar-grow .6s ease-out both}
@supports (animation-timeline: view()){
.section__title:before{animation:bar-grow linear both;animation-timeline:view();animation-range:entry 15% entry 65%}
}
.section--band .section__title{color:var(--color-white)}
.section--band .lead,.section--band .section__intro,.section--band blockquote{color:var(--color-band-text)}
.section--band .lead strong{color:var(--color-gold-light)}
.section--band .info-block{background:var(--c-band-surface)}
.section--band a{color:var(--color-gold-light)}
.section--alt .lead::first-letter{float:left;font-family:var(--font-heading);font-size:3.1em;line-height:.85;padding:.06em .14em 0 0;color:var(--c-dropcap)}
.hero__tagline{position:relative;padding-bottom:.35em}
.hero__tagline:after{content:"";position:absolute;left:50%;bottom:0;width:5.5em;height:3px;background:linear-gradient(90deg,var(--color-gold),var(--color-gold-light));transform:translateX(-50%) scaleX(0);animation:hero-rule 1s cubic-bezier(.2,.6,.2,1) 1.6s both}
@media (min-width:37.5em){
.hero__strip-img img{animation:hero-kb 24s ease-in-out infinite alternate}
.hero__strip--2 .hero__strip-img img{animation-duration:30s}
.hero__strip--3 .hero__strip-img img{animation-duration:27s}
}
}

/* ===== Añadidos auditoría 2026-07-24 ===== */
/* Foto-break de la home: reemplaza el style="" inline (ELIAWEB v7). */
.photo-break--home{aspect-ratio:16/9;border-top:6px solid var(--color-primary)}

/* Nota legal del mapa, ahora fuera del botón (fix a11y <a> en <button>): separación. */
.map__facade-note--out{margin-top:var(--space-sm)}

/* Títulos de categoría del hub de FAQ (sobre banda oscura → texto claro). */
.faq__cat{margin:var(--space-lg) 0 var(--space-sm);color:var(--color-band-text);font-size:1.125rem}

/* Enlaces dentro de las tarjetas de FAQ: van sobre fondo blanco, no sobre la
   banda → color primario (si no, heredan el dorado de la banda y son ilegibles). */
.faq details a{color:var(--color-primary)}
.faq details a:hover,.faq details a:focus-visible{color:var(--color-primary-dark)}

/* Fotos cedidas por la UAH: son de origen pequeño (500-640 px de ancho).
   Sin tope se estirarían a todo el ancho del contenedor (~1136 px) y saldrían
   borrosas. Se limitan a su resolución real y se centran. */
.incluye-foto--uah{max-width:40rem;margin-inline:auto}

/* HERO MÓVIL (<600 px): foto de la fachada al atardecer, cedida por la UAH,
   sin la capa de color azul que llevaba antes. En escritorio no aplica: ahí
   sigue el mosaico de tiras (.hero__bg). */
@media (max-width:37.4375em){
  .hero{background:url(/img/uah-fachada-atardecer.webp) center/cover no-repeat}
}

/* HERO MÓVIL (<600 px): la foto va limpia arriba, sin texto encima ni velo de
   color, y el H1 + el botón caen DEBAJO, sobre fondo azul oscuro sólido para
   que el texto blanco siga siendo legible (contraste 15,9:1).
   En escritorio no cambia nada: sigue el mosaico de tiras con el texto encima. */
@media (max-width:37.4375em){
  section.hero{display:block;min-height:0;padding-block:0;background:none}
  section.hero:before{content:"";position:static;display:block;width:100%;
    aspect-ratio:3/2;
    background:url(/img/uah-fachada-atardecer.webp) center/cover no-repeat}
  section.hero .hero__text-wrap{width:100%;background:var(--color-bg-dark);
    padding:var(--space-lg) var(--space-md);border-radius:0}
  /* Bug real (David, iPhone, 2026-07-27): .hero__cta hereda position:absolute;
     bottom:1.5rem de la regla base (pensada para el hero grande de escritorio).
     El fix a static solo estaba en @media(min-width:37.5em), este breakpoint
     de abajo (<600px) se quedo sin el mismo arreglo: el boton "RESERVAR
     HABITACION" quedaba flotando encima del titular, solapado. */
  section.hero .hero__cta{position:static;bottom:auto;margin:1.75rem auto 0;max-width:none}
}

/* Bandas con foto VERTICAL (arco-patio, patio_148 y fachada-rectorado son
   retrato, no apaisadas): la banda panoramica con cover solo ensenaba ~1/3
   central de cada foto, superampliado. Este modificador muestra la foto
   ENTERA, centrada sobre el fondo de banda. */
.photo-break--retrato{aspect-ratio:auto;background:var(--color-bg-band);padding:var(--space-lg) var(--space-md);display:flex;justify-content:center}
.photo-break--retrato img{width:min(100%,24rem);height:auto;object-fit:contain;border-radius:var(--radius);filter:contrast(1.28) brightness(.88) saturate(1.15)}

/* Excepcion solo para la home (David, 2026-07-27): ancho completo, recorte
   con encuadre subido (mas arco, menos suelo) en vez de foto entera. */
.photo-break--home.photo-break--retrato{aspect-ratio:4/3;background:none;padding:0;display:block}
.photo-break--home.photo-break--retrato img{width:100%;height:100%;object-fit:cover;object-position:center 32%;border-radius:0}
