/*
 * LESTONNAC SHARED LAYOUT CSS v3
 * <link rel="stylesheet" href="/css/layout.css">
 */

/* ===== SKIP LINK (accessibility) ===== */
.skip-link{
  position:absolute;top:-999px;left:-999px;
  background:#0862a1;color:#fff;padding:10px 20px;
  font-family:'Source Sans 3',system-ui,sans-serif;font-size:.9rem;font-weight:700;
  border-radius:0 0 8px 0;z-index:9999;text-decoration:none;
}
.skip-link:focus{top:0;left:0;outline:3px solid #f97316;outline-offset:2px;}

/* ===== TOPBAR ===== */
.site-topbar{
  background:#065490;
  border-bottom:1px solid rgba(255,255,255,.1);
  height:34px;display:flex;align-items:center;
}
.topbar-inner{
  max-width:1280px;width:94%;margin:0 auto;
  display:flex;justify-content:space-between;align-items:center;gap:16px;
}
.topbar-info{
  display:inline-flex;align-items:center;gap:16px;
  color:rgba(255,255,255,.7);font-size:.72rem;
  font-family:'Source Sans 3',system-ui,sans-serif;
}
.topbar-info span{display:inline-flex;align-items:center;gap:4px;}
.topbar-info a{color:rgba(255,255,255,.7);text-decoration:none;transition:color .2s;}
.topbar-info a:hover{color:#fff;}
.topbar-clickedu{
  display:inline-flex;align-items:center;gap:6px;
  color:rgba(255,255,255,.85);font-size:.75rem;font-weight:700;
  font-family:'Source Sans 3',system-ui,sans-serif;
  text-decoration:none;padding:4px 10px;border-radius:4px;
  transition:all .2s;letter-spacing:.02em;flex-shrink:0;
}
.topbar-clickedu:hover{color:#fff;background:rgba(255,255,255,.12);}
.topbar-clickedu:focus-visible{outline:2px solid #f97316;outline-offset:2px;color:#fff;}
.topbar-actions{display:inline-flex;align-items:center;gap:12px;flex-shrink:0;}
.topbar-ig{display:inline-flex;align-items:center;color:rgba(255,255,255,.8);transition:color .2s;flex-shrink:0;}
.topbar-ig svg{width:16px;height:16px;}
.topbar-ig:hover{color:#fff;}
.topbar-ig:focus-visible{outline:2px solid #f97316;outline-offset:2px;border-radius:4px;color:#fff;}
@media(max-width:768px){.topbar-info{display:none;}.topbar-actions{gap:10px;}}

/* ===== HEADER ===== */
/* Push page content below fixed header (topbar 34px + header 72px = 106px) */
body{padding-top:106px;}
[id]{scroll-margin-top:114px;}
/* Pages with full-bleed heroes overlap the header space */
body.has-hero{padding-top:0;}

.site-header{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  background:#fff;box-shadow:0 1px 0 #e5e7eb;transition:box-shadow .3s;
}
.site-header.scrolled{box-shadow:0 2px 20px rgba(0,0,0,.08);}

.header-inner{
  display:flex;align-items:center;height:72px;gap:12px;
  max-width:1280px;width:94%;margin:0 auto;
}
.header-brand{
  display:flex;align-items:center;gap:10px;text-decoration:none;
  color:inherit;flex-shrink:0;white-space:nowrap;
}
.header-brand img{height:44px;width:auto;}
.header-brand span{
  font-family:'DM Serif Display',Georgia,serif;
  font-size:.92rem;color:#0862a1;line-height:1.15;
}
.header-brand small{
  display:block;font-family:'Source Sans 3',system-ui,sans-serif;
  font-size:.62rem;color:#9ca3af;font-weight:600;
  letter-spacing:.04em;text-transform:uppercase;
}

.main-nav{display:flex;align-items:center;gap:2px;flex:1;justify-content:flex-end;}
.nav-item{position:relative;}
.nav-link{
  display:flex;align-items:center;gap:3px;padding:6px 12px;white-space:nowrap;
  font-size:.92rem;font-weight:600;color:#4b5563;border-radius:8px;
  transition:all .2s;cursor:pointer;border:none;background:none;
  font-family:'Source Sans 3',system-ui,sans-serif;text-decoration:none;
}
.nav-link:hover,.nav-item.open .nav-link{color:#0862a1;background:#f9fafb;}
.nav-link:focus-visible{outline:2px solid #f97316;outline-offset:2px;border-radius:8px;}
.nav-link svg{width:11px;height:11px;transition:transform .2s;flex-shrink:0;}
.nav-item.open .nav-link svg{transform:rotate(180deg);}

.nav-dropdown{
  position:absolute;top:calc(100% + 8px);left:50%;
  transform:translateX(-50%) translateY(-6px);min-width:230px;
  background:#fff;border-radius:12px;
  box-shadow:0 12px 40px rgba(0,0,0,.12);border:1px solid #f3f4f6;
  padding:8px;opacity:0;visibility:hidden;transition:all .2s ease;z-index:100;
}
.nav-item.open .nav-dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);}
.dd-link{
  display:block;padding:9px 14px;font-size:.85rem;color:#4b5563;
  border-radius:8px;transition:all .15s;font-weight:500;
  text-decoration:none;white-space:nowrap;
}
.dd-link:hover{background:#f9fafb;color:#0862a1;}
.dd-link:focus-visible{outline:2px solid #f97316;outline-offset:2px;border-radius:8px;}
.dd-divider{height:1px;background:#f3f4f6;margin:4px 8px;}

.nav-curs{
  background:#fff3e8!important;color:#f97316!important;
  border:1.5px solid #fed7aa!important;border-radius:50px!important;
  padding:5px 14px!important;font-weight:700!important;
}
.nav-curs:hover{background:#f97316!important;color:#fff!important;border-color:#f97316!important;}

.header-cta{
  display:inline-flex;align-items:center;gap:8px;flex-shrink:0;
  padding:9px 20px;border-radius:50px;background:#f97316;color:#fff;
  font-size:.8rem;font-weight:700;border:none;cursor:pointer;
  transition:all .3s;font-family:'Source Sans 3',system-ui,sans-serif;
  text-decoration:none;white-space:nowrap;
}
.header-cta:hover{background:#ea580c;transform:translateY(-1px);box-shadow:0 4px 16px rgba(249,115,22,.3);}
.header-cta:focus-visible{outline:2px solid #0862a1;outline-offset:3px;}

.burger{display:none;background:none;border:none;cursor:pointer;padding:8px;flex-shrink:0;margin-left:auto;}
.burger span{display:block;width:22px;height:2px;background:#0862a1;margin:5px 0;transition:all .3s;border-radius:2px;}
.burger:focus-visible{outline:2px solid #f97316;outline-offset:3px;border-radius:6px;}

.mobile-nav{
  display:none;position:fixed;top:106px;left:0;right:0;bottom:0;
  background:#fff;z-index:999;overflow-y:auto;padding:20px;
}
.mobile-nav.open{display:block;}
.mob-section{border-bottom:1px solid #f3f4f6;padding:12px 0;}
.mob-toggle{
  display:flex;align-items:center;justify-content:space-between;width:100%;
  padding:10px 0;font-size:1rem;font-weight:700;color:#0862a1;
  background:none;border:none;cursor:pointer;
  font-family:'Source Sans 3',system-ui,sans-serif;text-decoration:none;
}
.mob-toggle:focus-visible{outline:2px solid #f97316;outline-offset:2px;border-radius:4px;}
.mob-toggle svg{width:16px;height:16px;transition:transform .2s;}
.mob-section.open .mob-toggle svg{transform:rotate(180deg);}
.mob-links{display:none;padding:4px 0 8px 12px;}
.mob-section.open .mob-links{display:block;}
.mob-links a{display:block;padding:8px 0;font-size:.92rem;color:#4b5563;text-decoration:none;}
.mob-links a:hover{color:#f97316;}
.mob-links a:focus-visible{outline:2px solid #f97316;outline-offset:2px;}

@media(max-width:1200px){
  .nav-link{padding:6px 8px;font-size:.84rem;}
  .header-cta{padding:8px 16px;font-size:.74rem;}
}
@media(max-width:1024px){
  .main-nav,.header-cta{display:none!important;}
  .burger{display:block!important;}
}
@media(max-width:480px){
  body{padding-top:100px;}
  .mobile-nav{top:100px;}
  .site-topbar{height:28px;}
  .topbar-clickedu{font-size:.7rem;}
}

/* ===== FOOTER ===== */
.site-footer{background:#0a1929;color:rgba(255,255,255,.45);padding:60px 0 30px;}
.site-footer .container{max-width:1200px;width:92%;margin:0 auto;}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:40px;}
.footer-brand img{height:50px;margin-bottom:12px;opacity:.7;}
.footer-brand p{font-size:.88rem;line-height:1.7;max-width:280px;}
.footer-col h4{font-family:'DM Serif Display',Georgia,serif;font-size:.95rem;color:#fff;margin-bottom:14px;}
.footer-col a{display:block;font-size:.85rem;padding:4px 0;color:rgba(255,255,255,.45);transition:color .2s;text-decoration:none;}
.footer-col a:hover{color:#f97316;}
.footer-col a:focus-visible{outline:2px solid #f97316;outline-offset:2px;border-radius:2px;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:20px;text-align:center;font-size:.78rem;}
.footer-bottom a{color:#f97316;text-decoration:none;}
@media(max-width:768px){.footer-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr;}}

/* ===== PREINSCRIPCIONS — hidden by default, shown via JS if active ===== */
#headerPreinBtn,[data-prein-hide]{display:none!important;}

/* ===== SCROLL REVEAL ANIMATIONS ===== */
.reveal-ready{
  opacity:0;
  transform:translateY(32px);
  transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);
  will-change:opacity,transform;
}
.reveal-ready.revealed{
  opacity:1;
  transform:translateY(0);
}
/* Respect reduced motion */
@media(prefers-reduced-motion:reduce){
  .reveal-ready{opacity:1;transform:none;transition:none;}
}

/* ===== PRINT STYLES ===== */
@media print {
  .site-topbar, .site-header, .mobile-nav, .chatbot-btn, .chatbot-window,
  #cookieBanner, .skip-link, .header-cta, .burger { display: none !important; }
  body { padding-top: 0 !important; background: #fff !important; color: #000 !important; font-size: 12pt; }
  .site-footer { background: #fff !important; color: #333 !important; border-top: 1px solid #ccc; padding: 20px 0; }
  .site-footer a { color: #333 !important; }
  a[href]:after { content: " (" attr(href) ")"; font-size: 0.8em; color: #666; }
  a[href^="#"]:after, a[href^="javascript"]:after, a[href^="mailto"]:after { content: ""; }
  img { max-width: 100% !important; }
  .reveal-ready { opacity: 1 !important; transform: none !important; }
}
