@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;500;600&family=Inter:wght@300;400;500;600;700&display=swap');

/* =========================================================
   LYCEUM UI — MASTER PUBLIC SYSTEM
   Basado en el Index actual de Lyceum.
   ========================================================= */

:root{
  --navy:#03192e;
  --navy2:#06233e;
  --gold:#e5a936;
  --gold2:#f4c45c;
  --ivory:#f4eee4;
  --ivory2:#fbf8f2;
  --ink:#0a2036;
  --muted:#66717c;
  --line:rgba(8,31,52,.13);
  --white:#fff;
  --serif:'Playfair Display',Georgia,'Times New Roman',serif;
  --sans:'Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --container:1180px;
  --nav-height:62px;
  --radius-xs:5px;
  --radius-sm:7px;
  --radius-md:12px;
  --radius-lg:17px;
  --shadow-nav:0 16px 45px rgba(0,0,0,.18);
  --shadow-soft:0 16px 38px rgba(3,25,46,.08);
}

*,
*::before,
*::after{box-sizing:border-box}

html{scroll-behavior:smooth}

body,
.ly-page{
  margin:0;
  min-height:100%;
  font-family:var(--sans);
  background:var(--ivory2);
  color:var(--ink);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

body{padding-top:90px}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
::selection{background:var(--gold);color:var(--navy)}

.ly-container,
.ly-wrap{
  width:min(calc(100% - 44px),var(--container));
  margin-inline:auto;
}

.ly-section{position:relative;padding:72px 0}
.ly-section--compact{position:relative;padding:48px 0}
.ly-section--hero{
  position:relative;
  min-height:55vh;
  display:flex;
  align-items:center;
  padding:100px 0 70px;
}
.ly-section--dark{
  background:linear-gradient(90deg,var(--navy),var(--navy2));
  color:#fff;
}
.ly-section--paper{background:linear-gradient(90deg,#f2ebe0,var(--ivory2))}

.ly-display,
.ly-title,
.ly-article-title{
  margin:0;
  font-family:var(--serif);
  font-weight:500;
  letter-spacing:-.035em;
}
.ly-display{font-size:clamp(3rem,5.2vw,5rem);line-height:.95}
.ly-title{font-size:clamp(2.15rem,3.4vw,3.65rem);line-height:1}
.ly-gradient-text,.ly-gold{color:var(--gold)}
.ly-lead{
  max-width:680px;
  margin:18px 0 0;
  font-size:.82rem;
  line-height:1.7;
  color:var(--muted);
}
.ly-section--dark .ly-lead,.ly-on-dark{color:rgba(255,255,255,.72)}

.ly-eyebrow,
.ly-kicker{
  display:inline-flex;
  align-items:center;
  gap:9px;
  margin:0 0 14px;
  font-size:.58rem;
  line-height:1.2;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold);
}
.ly-kicker:hover{color:var(--gold2)}

.ly-section-label{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:16px;
}
.ly-section-label__num{
  font-family:var(--serif);
  font-size:1.85rem;
  line-height:1;
  color:var(--gold);
}
.ly-section-label__line{
  width:34px;
  height:1px;
  background:rgba(10,32,54,.42);
}
.ly-section--dark .ly-section-label__line{background:rgba(255,255,255,.35)}
.ly-section-label__text{
  font-size:.54rem;
  font-weight:600;
  letter-spacing:.08em;
  line-height:1.35;
  text-transform:uppercase;
}

.ly-glass{
  border:1px solid rgba(8,31,52,.11);
  background:rgba(255,255,255,.42);
  box-shadow:var(--shadow-soft);
  backdrop-filter:blur(13px) saturate(120%);
  -webkit-backdrop-filter:blur(13px) saturate(120%);
}
.ly-section--dark .ly-glass,
.ly-glass--dark{
  border-color:rgba(255,255,255,.15);
  background:rgba(255,255,255,.045);
  box-shadow:none;
}

/* NAVBAR */
.ly-nav{
  position:fixed;
  z-index:800;
  top:14px;
  left:50%;
  transform:translateX(-50%);
  width:min(calc(100% - 58px),var(--container));
  height:var(--nav-height);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:0 24px;
  color:#fff;
  border:1px solid rgba(255,255,255,.20);
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg,rgba(10,38,66,.70),rgba(5,27,49,.58));
  box-shadow:var(--shadow-nav);
  backdrop-filter:blur(18px) saturate(135%);
  -webkit-backdrop-filter:blur(18px) saturate(135%);
  transition:top .28s ease,background .28s ease,box-shadow .28s ease;
}
.ly-nav.is-scrolled,
.ly-nav.scrolled{
  top:8px;
  background:rgba(4,23,44,.92);
  box-shadow:0 16px 44px rgba(0,0,0,.26);
}
.ly-brand{
  display:flex;
  align-items:center;
  flex:0 0 auto;
  gap:12px;
  min-width:0;
}
.ly-brand img{
  width:auto;
  height:36px;
  object-fit:contain;
}
.ly-brand__name{
  font-family:var(--serif);
  font-size:1rem;
  line-height:1;
  letter-spacing:2.4px;
  color:#fff;
}
.ly-brand__sub{
  display:block;
  margin-top:3px;
  font-size:.43rem;
  line-height:1;
  letter-spacing:2px;
  color:rgba(255,255,255,.55);
}
.ly-nav__links{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:28px;
  min-width:0;
}
.ly-nav__link{
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:36px;
  white-space:nowrap;
  font-size:.68rem;
  font-weight:400;
  color:rgba(255,255,255,.90);
  transition:color .2s ease;
}
.ly-nav__link:hover,
.ly-nav__link.is-active{color:var(--gold2)}
.ly-nav__link.is-active::after{
  content:'';
  position:absolute;
  left:0;
  right:0;
  bottom:3px;
  height:1px;
  background:var(--gold);
  opacity:.75;
}

/* BUTTONS */
.ly-btn{
  appearance:none;
  border:0;
  border-radius:var(--radius-xs);
  min-height:40px;
  padding:0 23px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  white-space:nowrap;
  font-size:.64rem;
  line-height:1;
  font-weight:600;
  letter-spacing:.01em;
  transition:transform .2s ease,background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease;
}
.ly-btn:hover{transform:translateY(-2px)}
.ly-btn--primary{
  color:#172330;
  border:1px solid rgba(255,255,255,.12);
  background:linear-gradient(180deg,var(--gold2),var(--gold));
  box-shadow:0 10px 24px rgba(229,169,54,.18);
}
.ly-btn--secondary{
  color:var(--gold);
  border:1px solid rgba(229,169,54,.72);
  background:rgba(255,255,255,.025);
}
.ly-btn--ghost{
  color:inherit;
  border:1px solid rgba(8,31,52,.16);
  background:transparent;
}
.ly-nav .ly-btn--ghost,
.ly-section--dark .ly-btn--ghost{
  color:#fff;
  border-color:rgba(255,255,255,.18);
}

.ly-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ly-stack{display:flex;flex-direction:column;gap:14px}

/* BADGES */
.ly-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:5px 9px;
  border-radius:999px;
  font-size:.52rem;
  line-height:1;
  font-weight:600;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.ly-badge--blue{
  color:var(--navy);
  border:1px solid rgba(3,25,46,.14);
  background:rgba(3,25,46,.07);
}
.ly-badge--gold{
  color:#6c4905;
  border:1px solid rgba(229,169,54,.35);
  background:rgba(229,169,54,.18);
}
.ly-section--dark .ly-badge--blue,
.ly-nav .ly-badge--blue{
  color:#fff;
  border-color:rgba(255,255,255,.17);
  background:rgba(255,255,255,.08);
}

/* CARDS */
.ly-card{
  border:1px solid var(--line);
  background:rgba(255,255,255,.34);
}
.ly-card--interactive{
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.ly-card--interactive:hover{
  transform:translateY(-3px);
  border-color:rgba(229,169,54,.40);
  box-shadow:0 18px 38px rgba(3,25,46,.08);
}

/* FORMS */
.ly-field{display:flex;flex-direction:column;gap:7px}
.ly-label{
  font-size:.55rem;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
}
.ly-input,
.ly-select,
.ly-textarea{
  width:100%;
  min-height:42px;
  border:1px solid rgba(8,31,52,.15);
  border-radius:var(--radius-sm);
  outline:none;
  background:rgba(255,255,255,.62);
  color:var(--ink);
  padding:10px 12px;
  font-size:.72rem;
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.ly-textarea{min-height:130px;resize:vertical}
.ly-input:focus,
.ly-select:focus,
.ly-textarea:focus{
  border-color:rgba(229,169,54,.70);
  box-shadow:0 0 0 3px rgba(229,169,54,.10);
  background:#fff;
}

/* GENERIC PUBLIC HERO */
.ly-public-hero{
  position:relative;
  overflow:hidden;
  min-height:300px;
  display:flex;
  align-items:center;
  color:#fff;
  background:linear-gradient(90deg,var(--navy),var(--navy2));
}
.ly-public-hero__inner{
  width:min(calc(100% - 44px),var(--container));
  margin-inline:auto;
  padding:48px 0 54px;
}
.ly-public-hero__title{
  max-width:860px;
  margin:0;
  font-family:var(--serif);
  font-size:clamp(2.8rem,5vw,4.8rem);
  font-weight:500;
  line-height:.95;
  letter-spacing:-.04em;
}
.ly-public-hero__text{
  max-width:610px;
  margin:18px 0 0;
  color:rgba(255,255,255,.74);
  font-size:.78rem;
  line-height:1.7;
}

/* FOOTER */
.ly-footer{
  position:relative;
  padding:34px 0;
  color:#fff;
  background:linear-gradient(90deg,var(--navy),var(--navy2));
  border-top:1px solid rgba(255,255,255,.09);
}
.ly-footer__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
}
.ly-footer .ly-brand img{height:32px}
.ly-footer__links{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:18px;
}
.ly-footer__links a{
  font-size:.57rem;
  color:rgba(255,255,255,.57);
  transition:color .2s ease;
}
.ly-footer__links a:hover{color:var(--gold2)}

.ly-mobile-nav{display:none}

.ly-notice{
  padding:14px 16px;
  border:1px solid rgba(8,31,52,.13);
  background:rgba(255,255,255,.45);
  font-size:.72rem;
  line-height:1.55;
}
.ly-notice--error{
  border-color:rgba(130,40,40,.22);
  background:rgba(130,40,40,.06);
}

@media (max-width:940px){
  body{padding-top:82px}
  .ly-nav{
    top:9px;
    width:calc(100% - 20px);
    padding:0 17px;
  }
  .ly-nav__links{gap:14px}
  .ly-nav__link{font-size:.62rem}
  .ly-section{padding:60px 0}
  .ly-footer__inner{align-items:flex-start;flex-direction:column}
  .ly-footer__links{justify-content:flex-start}
}

@media (max-width:760px){
  body{padding-top:78px}
  .ly-container,
  .ly-wrap,
  .ly-public-hero__inner{
    width:min(calc(100% - 28px),var(--container));
  }
  .ly-nav{height:58px;padding:0 14px}
  .ly-brand img{height:32px}
  .ly-brand__name{font-size:.9rem}
  .ly-nav__links .ly-nav__link{display:none}
  .ly-nav__links{gap:8px}
  .ly-nav .ly-btn{
    min-height:35px !important;
    padding:0 13px !important;
    font-size:.58rem;
  }
  .ly-display{font-size:clamp(2.75rem,12vw,4rem)}
  .ly-title{font-size:clamp(2rem,9vw,3rem)}
  .ly-section{padding:48px 0}
  .ly-section--compact{padding:36px 0}
  .ly-public-hero{min-height:260px}
  .ly-public-hero__inner{padding:38px 0 44px}
  .ly-footer{padding-bottom:30px}
}

@media (max-width:480px){
  .ly-brand{gap:8px}
  .ly-brand__sub{letter-spacing:1.4px}
  .ly-footer__links{gap:12px 16px}
  .ly-row{align-items:stretch}
  .ly-row > .ly-btn{width:100%}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,
  *::before,
  *::after{
    transition:none !important;
    animation:none !important;
  }
}
