
:root{
  --orange:#EF8D00;
  --navy:#1c3f5f;
  --navy-dark:#132b40;
  --gray-bg:#f4f4f4;
  --text:#333;
}
*{box-sizing:border-box;}
body{
  margin:0;
  font-family:"Helvetica Neue", Arial, sans-serif;
  color:var(--text);
  background:#fff;
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}

/* HEADER */
header.main-header{
  position:relative;
  background:
    linear-gradient(90deg, rgba(19,43,64,0.78) 0%, rgba(19,43,64,0.5) 40%, rgba(19,43,64,0) 75%),
    url("media/css/img/foto-portada-1024@2x.jpg") center top / cover no-repeat;
  color:#fff;
}
.top-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:20px 30px;
  flex-wrap:wrap;
  gap:16px;
}
.logo-block{display:flex; align-items:center; gap:14px;}
.logo-block img{height:70px;}
.top-right{display:flex; align-items:center; gap:18px; flex-wrap:wrap;}
.lang-switch{display:flex; background:#fff; border-radius:3px; overflow:hidden; font-size:0.85rem; font-weight:600;}
.lang-switch a{padding:8px 12px; color:var(--navy);}
.lang-switch a.active{background:var(--navy); color:#fff;}
.social-icons{display:flex; gap:10px;}
.social-icons a{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,0.15);display:flex;align-items:center;justify-content:center;font-size:0.9rem;}
.social-icons a svg{display:block;}

/* NAV */
nav.main-nav{background:var(--orange);}
nav.main-nav ul{list-style:none; margin:0;padding:0; display:flex; flex-wrap:wrap; justify-content:center;}
nav.main-nav > ul > li{position:relative;}
nav.main-nav > ul > li > a{display:block; padding:16px 20px; color:#fff; font-weight:600; font-size:0.9rem; letter-spacing:0.03em; white-space:nowrap;}
nav.main-nav > ul > li:hover, nav.main-nav > ul > li.active{background:rgba(0,0,0,0.15);}
nav.main-nav ul ul{display:none; position:absolute; top:100%;left:0; background:var(--navy); min-width:230px; z-index:10; flex-direction:column;}
nav.main-nav > ul > li:hover > ul{display:flex;}
nav.main-nav ul ul li a{padding:12px 18px; font-size:0.85rem; font-weight:400; color:#fff;}
nav.main-nav ul ul li a:hover{background:rgba(255,255,255,0.1);}

/* HERO (homepage, tall) */
.hero{padding:100px 40px 140px; max-width:1100px; margin:0 auto; text-align:center;}
.hero h1{font-size:2.6rem; font-weight:800; text-transform:uppercase; line-height:1.25; text-shadow:0 2px 6px rgba(0,0,0,0.4); margin:0;}
.hero .read-more{display:block; margin:40px auto 0; font-size:0.9rem; border:2px solid #fff; border-radius:50%; width:44px;height:44px; line-height:40px; text-align:center;}

/* PAGE BANNER (inner pages, short) */
.page-banner{padding:50px 40px; max-width:1100px;}
.page-banner h1{font-size:2rem; font-weight:800; text-transform:uppercase; margin:0; text-shadow:0 2px 6px rgba(0,0,0,0.5);}
.breadcrumb{font-size:0.85rem; margin-top:10px; opacity:0.9;}
.breadcrumb a{text-decoration:underline;}

/* MAIN CONTENT */
main{max-width:1100px; margin:0 auto; padding:50px 30px;}
section{margin-bottom:60px;}
h2.section-title{color:var(--orange); font-size:1.6rem; font-weight:700; letter-spacing:0.02em; margin-bottom:20px; border-bottom:3px solid var(--orange); padding-bottom:10px;}
h3.sub-title{color:var(--navy); font-size:1.2rem; margin:30px 0 12px;}
.intro p{line-height:1.7; font-size:1.05rem;}
.intro .read-more-link{color:var(--orange); font-weight:700;}

.novedades article, .content-block article{background:var(--gray-bg); border-left:5px solid var(--orange); border-radius:4px; padding:24px 28px; margin-bottom:24px;}
.novedades article h3, .content-block article h3{color:var(--navy); margin:0 0 12px; font-size:1.2rem;}
.novedades article .subdate, .content-block article .subdate{color:var(--orange); font-weight:700; font-size:0.85rem; margin-bottom:8px;}
.novedades article p, .content-block article p{line-height:1.6; margin:0.4em 0;}
.novedades article a, .content-block article a{color:var(--orange); font-weight:600;}
.novedades article a:hover, .content-block article a:hover{text-decoration:underline;}
.event-year{font-weight:700; color:var(--navy); margin-top:10px;}

p, li{line-height:1.7;}
.plain-text p{margin:0 0 1em;}

/* CTA cards */
.cta-row{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:24px; text-align:center;}
.cta-card{background:var(--navy); color:#fff; padding:40px 20px; border-radius:6px; transition:transform 0.15s ease, background 0.15s ease;}
.cta-card:hover{background:var(--orange); transform:translateY(-4px);}
.cta-card img{height:48px; margin:0 auto 16px; filter:brightness(0) invert(1);}
.cta-card h3{margin:0; font-size:1.1rem; text-transform:uppercase; letter-spacing:0.03em;}

/* Simple link-hub cards (Eventos, Convocatorias, Anuncios landing) */
.hub-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px,1fr)); gap:24px;}
.hub-card{display:block; background:var(--gray-bg); border-top:4px solid var(--orange); border-radius:4px; padding:30px 22px; text-align:center; font-weight:700; color:var(--navy); font-size:1.05rem; letter-spacing:0.02em; text-transform:uppercase; transition:background 0.15s ease;}
.hub-card:hover{background:#eee;}

/* Board / team grid */
.board-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(170px,1fr)); gap:26px; margin-top:20px;}
.board-member{text-align:center;}
.board-member img{width:120px; height:120px; object-fit:cover; border-radius:50%; margin:0 auto 12px; border:3px solid var(--orange);}
.board-member .name{font-weight:700; color:var(--navy); font-size:0.95rem;}
.board-member .role{color:var(--orange); font-size:0.85rem; font-weight:600; text-transform:uppercase; margin-top:2px;}

/* Tables */
table.data-table{width:100%; border-collapse:collapse; margin:20px 0;}
table.data-table th, table.data-table td{border:1px solid #ddd; padding:10px 14px; text-align:left; font-size:0.95rem;}
table.data-table th{background:var(--navy); color:#fff;}
table.data-table tr:nth-child(even){background:var(--gray-bg);}

/* Link lists */
ul.link-list{list-style:none; padding:0; margin:0 0 30px;}
ul.link-list li{padding:8px 0; border-bottom:1px solid #eee;}
ul.link-list a{color:var(--navy); font-weight:600;}
ul.link-list a:hover{color:var(--orange); text-decoration:underline;}

/* Download list (PDFs etc) */
ul.download-list{list-style:none; padding:0; margin:10px 0;}
ul.download-list li{padding:4px 0;}
ul.download-list a{color:var(--orange); font-weight:600;}
ul.download-list a:hover{text-decoration:underline;}

/* Disabled-form notice */
.form-disabled-notice{background:#fff3cd; border:1px solid #ffe08a; border-left:5px solid var(--orange); border-radius:4px; padding:16px 20px; max-width:640px; margin:0 0 20px; font-weight:600; color:#664d03;}
.form-disabled-notice a{color:var(--navy); text-decoration:underline;}

/* Simple form styling */
.form-box{background:var(--gray-bg); border-radius:6px; padding:30px; max-width:480px;}
.form-box label{display:block; font-weight:600; color:var(--navy); margin:14px 0 6px; font-size:0.9rem;}
.form-box input{width:100%; padding:10px 12px; border:1px solid #ccc; border-radius:4px; font-size:0.95rem;}
.form-box button{margin-top:22px; background:var(--orange); color:#fff; border:none; padding:12px 26px; border-radius:4px; font-weight:700; cursor:pointer;}

/* SPONSORS */
.sponsors{background:var(--gray-bg); padding:40px 30px;}
.sponsors h2{text-align:center;}
.sponsor-grid{display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:30px; max-width:1100px; margin:0 auto;}
.sponsor-grid a{background:#fff; padding:12px 18px; border-radius:4px; box-shadow:0 1px 4px rgba(0,0,0,0.08);}
.sponsor-grid img{height:50px; width:auto; object-fit:contain;}

/* FOOTER */
footer{background:var(--navy-dark); color:#cdd8e2; padding:40px 30px 20px; text-align:center; font-size:0.85rem;}
footer p{margin:4px 0 16px;}
footer ul{list-style:none; display:flex; flex-wrap:wrap; justify-content:center; gap:20px; padding:0; margin:0 0 16px;}
footer a:hover{color:#fff; text-decoration:underline;}
.back-to-top{display:inline-block; margin-top:10px; color:#fff; font-weight:700; font-size:0.8rem; letter-spacing:0.05em;}

@media (max-width:768px){
  .hero h1{font-size:1.8rem;}
  .top-bar{justify-content:center; text-align:center;}
  nav.main-nav > ul{flex-direction:column;}
  nav.main-nav ul ul{position:static; display:none;}
}

/* ===== Additions: full-content rebuild (galleries, forms, details) ===== */

/* Image galleries (event photo archives) */
ul.img-gallery{list-style:none; padding:0; margin:16px 0; display:grid; grid-template-columns:repeat(auto-fill, minmax(160px,1fr)); gap:12px;}
ul.img-gallery li{padding:0;}
ul.img-gallery img{width:100%; height:120px; object-fit:cover; border-radius:4px;}
ul.img-gallery a:hover img{opacity:0.85;}

/* Back link on detail/gallery pages */
.back-link a{color:var(--orange); font-weight:700;}
.back-link a:hover{text-decoration:underline;}

/* Board member affiliation line (ECS committee) */
.board-member .affil{color:#666; font-size:0.8rem; margin-top:2px;}

/* Forms: extend .form-box to selects, textareas and buttons */
.form-box{max-width:640px;}
.form-box select, .form-box textarea{width:100%; padding:10px 12px; border:1px solid #ccc; border-radius:4px; font-size:0.95rem; background:#fff;}
.form-box input[type="checkbox"], .form-box input[type="radio"]{width:auto; margin-right:6px;}
.form-box button, .form-box input[type="submit"]{margin-top:22px; background:var(--orange); color:#fff; border:none; padding:12px 26px; border-radius:4px; font-weight:700; cursor:pointer;}
.form-box hr{border:none; border-top:1px solid #ddd; margin:20px 0;}

/* Price lists (membership fees) */
main dl{background:var(--gray-bg); border-radius:4px; padding:16px 22px; max-width:420px;}
main dl dt{font-weight:700; color:var(--navy); margin-top:8px;}
main dl dd{margin:0 0 6px; color:var(--orange); font-weight:700;}

/* Embedded video players */
main iframe{max-width:100%; border:0;}

/* Download list file-size note */
ul.download-list em{color:#888; font-weight:400; font-style:normal; font-size:0.85rem;}
