/* ============================================================
   AITEB 2026 — style.css
   Bootstrap 5.3.8 via CDN + solo custom AITEB
   ============================================================ */

:root {
  --navy:        #1a3a5c;
  --navy-dark:   #0f2540;
  --navy-mid:    #2c5282;
  --green:       #4caf2e;
  --green-dark:  #3a8e20;
  --green-light: #6fc94e;
  --light-bg:    #f5f7fa;
  --text-muted-c:#6b7e90;
  --border:      #dde4ec;
  --shadow:      0 4px 24px rgba(26,58,92,.10);
  --radius:      10px;
  --header-h:    80px;
}

/* ── Base ─────────────────────────────────────────────────── */
html  { scroll-behavior: smooth; overflow-x: hidden; }
body  { font-family: 'Open Sans', sans-serif; color: #1e2d3d; padding-top: var(--header-h); overflow-x: hidden; }
h1,h2,h3,h4,h5,h6 { font-family: 'Raleway', sans-serif; color: var(--navy); }
a     { color: var(--green-dark); transition: color .2s; }
a:hover { color: var(--green); }

/* ── Utilità colori ───────────────────────────────────────── */
.text-green      { color: var(--green) !important; }
.text-navy       { color: var(--navy) !important; }
.bg-navy         { background-color: var(--navy) !important; }
.bg-navy-dark    { background-color: var(--navy-dark) !important; }
.bg-light-custom { background-color: var(--light-bg) !important; }

/* ── Bottoni brand ────────────────────────────────────────── */
.btn-aiteb {
  display: inline-block;
  background: var(--green); color: #fff; border: none;
  padding: 10px 30px; border-radius: 50px;
  font-family: 'Raleway', sans-serif; font-weight: 600; letter-spacing: .5px;
  transition: background .25s, transform .2s; cursor: pointer; text-decoration: none;
}
.btn-aiteb:hover { background: var(--green-dark); color: #fff; transform: translateY(-2px); }

.btn-outline-aiteb {
  display: inline-block;
  color: var(--green); border: 2px solid var(--green);
  padding: 8px 28px; border-radius: 50px;
  font-family: 'Raleway', sans-serif; font-weight: 600;
  background: transparent; transition: all .25s; text-decoration: none;
}
.btn-outline-aiteb:hover { background: var(--green); color: #fff; }

.btn-navy {
  display: inline-block;
  background: var(--navy); color: #fff; border: none;
  padding: 10px 30px; border-radius: 50px;
  font-family: 'Raleway', sans-serif; font-weight: 600;
  transition: background .25s; cursor: pointer; text-decoration: none;
}
.btn-navy:hover { background: var(--navy-dark); color: #fff; }

/* ── Header ───────────────────────────────────────────────── */
#site-header {
  position: fixed; top: 0; left: 0; right: 0;
  height: var(--header-h); background: #fff;
  box-shadow: 0 2px 16px rgba(26,58,92,.12); z-index: 1050;
  overflow: visible;
}
#site-header .header-inner {
  height: 100%; max-width: 1400px; margin: 0 auto; padding: 0 24px;
}
#site-header .logo-link img { height: 52px; display: block; }

/* Nav desktop */
.main-nav { list-style: none; margin: 0; padding: 0; }
.main-nav > li { position: relative; }
.main-nav > li > a {
  padding: 8px 14px; font-family: 'Raleway', sans-serif; font-weight: 600;
  font-size: .9rem; color: var(--navy); border-radius: 6px;
  white-space: nowrap; transition: background .2s, color .2s;
  text-decoration: none;
}
.main-nav > li > a:hover,
.main-nav > li.active > a { background: var(--light-bg); color: var(--green-dark); }

/* Dropdown */
.main-nav > li.has-dropdown::after {
  content: ''; position: absolute; top: 100%; left: 0; right: 0;
  height: 12px; display: none;
}
.main-nav > li.has-dropdown:hover::after { display: block; }

.main-nav .dropdown-menu {
  display: none; position: absolute; top: 100%; left: 0;
  min-width: 220px; background: #fff;
  border: 1px solid var(--border); border-radius: var(--radius);
  box-shadow: var(--shadow); padding: 6px 0 8px;
  list-style: none; z-index: 1060; margin-top: 0;
}
.main-nav .dropdown-menu li a {
  display: block; padding: 9px 20px; font-size: .875rem;
  color: var(--navy); white-space: nowrap; transition: background .2s;
  text-decoration: none;
}
.main-nav .dropdown-menu li a:hover { background: var(--light-bg); color: var(--green-dark); }
.main-nav > li:hover .dropdown-menu,
.main-nav > li .dropdown-menu.open { display: block; }

/* Lang switcher */
.lang-switcher { background: var(--light-bg); }
.lang-switcher button {
  font-size: .8rem; font-weight: 700; border-radius: 16px;
  cursor: pointer; color: var(--text-muted-c);
  border: none; background: none; padding: 3px 10px; transition: all .2s;
}
.lang-switcher button.active { background: var(--navy); color: #fff; }

/* Hamburger */
.hamburger-btn {
  background: none; border: none; cursor: pointer; padding: 6px;
}
.hamburger-btn span {
  display: block; width: 26px; height: 2.5px;
  background: var(--navy); border-radius: 2px; transition: all .3s;
}
.hamburger-btn.open span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.hamburger-btn.open span:nth-child(2) { opacity: 0; }
.hamburger-btn.open span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

/* Mobile menu */
.mobile-menu {
  display: none; position: fixed; top: var(--header-h); left: 0; right: 0;
  background: #fff; border-top: 2px solid var(--green); z-index: 1040;
  max-height: calc(100vh - var(--header-h)); overflow-y: auto;
  box-shadow: 0 8px 24px rgba(0,0,0,.12);
}
.mobile-menu.open { display: block; }
.mobile-menu ul { list-style: none; margin: 0; padding: 0; }
.mobile-menu ul li a,
.mobile-menu ul li span {
  display: block; padding: 11px 28px; color: var(--navy);
  font-family: 'Raleway', sans-serif; font-weight: 600; font-size: .95rem;
  border-bottom: 1px solid var(--border); cursor: pointer; text-decoration: none;
}
.mobile-menu ul li a:hover { background: var(--light-bg); }
.mobile-menu ul li.mobile-group > span {
  color: var(--green-dark); font-size: .8rem; letter-spacing: 1px;
  text-transform: uppercase; background: var(--light-bg);
  border-bottom: none; padding-top: 16px;
}
.mobile-menu ul li.mobile-sub > a { padding-left: 44px; font-weight: 500; font-size: .9rem; }
.mobile-lang button {
  border-radius: 16px; padding: 4px 16px; font-weight: 700; font-size: .85rem;
  cursor: pointer; color: var(--text-muted-c);
  border: 1px solid var(--border); background: var(--light-bg);
}
.mobile-lang button.active { background: var(--navy); color: #fff; border-color: var(--navy); }

/* ── Hero ─────────────────────────────────────────────────── */
#hero {
  position: relative; min-height: 520px; max-height: 600px;
  overflow: hidden; background: var(--navy-dark);
  display: flex; align-items: flex-end;
}
#hero img.hero-bg {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center;
}
#hero .hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to right, rgba(10,25,47,.55) 30%, rgba(10,25,47,.1) 100%);
}
#hero .hero-content {
  position: relative; z-index: 2;
  padding: 40px 48px 48px; max-width: 700px; color: #fff;
}
#hero .hero-badge {
  display: inline-block; background: var(--green); color: #fff;
  font-size: .78rem; font-weight: 700; letter-spacing: 1.5px;
  text-transform: uppercase; border-radius: 4px; padding: 4px 12px;
}
#hero h1 { color: #fff; font-size: 2.6rem; line-height: 1.2; font-weight: 800; }
#hero h2 { color: rgba(255,255,255,.88); font-size: 1.15rem; font-weight: 400; }
#hero .hero-sub { color: var(--green-light); font-size: .95rem; font-style: italic; }
#hero .hero-location,
#hero .hero-date {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: 'Raleway', sans-serif; font-weight: 600;
  font-size: .9rem; color: rgba(255,255,255,.9);
}
#hero .hero-date {
  background: var(--navy-mid); border: 2px solid rgba(255,255,255,.25);
  border-radius: 8px; padding: 6px 14px;
}
#hero .hero-meta { display: flex; gap: 20px; flex-wrap: wrap; align-items: center; }

/* ── Breadcrumb ───────────────────────────────────────────── */
.breadcrumbs {
  background: var(--light-bg); padding: 10px 0;
  border-bottom: 1px solid var(--border); font-size: .82rem;
}
.breadcrumbs ol {
  list-style: none; margin: 0; padding: 0;
  display: flex; gap: 6px; align-items: center; flex-wrap: wrap;
}
.breadcrumbs ol li + li::before { content: "›"; color: #aaa; }
.breadcrumbs ol li a { color: var(--green-dark); text-decoration: none; }

/* ── Section header ───────────────────────────────────────── */
.section-header { margin-bottom: 44px; }
.section-header .label {
  display: inline-block; font-size: .75rem; font-weight: 700;
  letter-spacing: 2px; text-transform: uppercase; color: var(--green-dark);
}
.section-header h2 { font-size: 2rem; font-weight: 800; line-height: 1.2; }
.section-header p { color: var(--text-muted-c); font-size: 1.05rem; }
.section-header .divider {
  width: 50px; height: 4px; background: var(--green); border-radius: 2px;
}

/* ── Spacing utility ──────────────────────────────────────── */
.section-pad    { padding: 72px 0; }
.section-pad-sm { padding: 48px 0; }

/* ── Cards ────────────────────────────────────────────────── */
.aiteb-card,
.info-card,
.auth-card {
  background: #fff; border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow); padding: 28px;
}
.auth-card { max-width: 480px; margin: 0 auto; padding: 40px 36px; }
.auth-card h3 { font-size: 1.4rem; color: var(--navy); margin-bottom: 6px; }
.auth-card .subtitle { color: var(--text-muted-c); font-size: .9rem; margin-bottom: 24px; }

/* Info icon */
.ic-icon {
  width: 48px; height: 48px; background: var(--light-bg);
  border-radius: 10px; display: flex; align-items: center; justify-content: center;
  margin-bottom: 16px;
}
.ic-icon i { font-size: 1.4rem; color: var(--green-dark); }
.info-card h4 { font-size: 1rem; font-weight: 700; color: var(--navy); margin: 0 0 10px; }
.info-card p,
.info-card a { font-size: .9rem; color: var(--text-muted-c); margin: 0 0 4px; line-height: 1.6; display: block; text-decoration: none; }
.info-card a:hover { color: var(--green); }

/* Sidebar col non si allunga */
.sidebar-col { align-self: start; }

/* Presidente */
.president-card {
  background: #fff; border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow);
  padding: 32px; display: flex; gap: 28px; align-items: flex-start;
}
.president-card img {
  width: 120px; height: 120px; border-radius: 50%;
  object-fit: cover; border: 3px solid var(--green); flex-shrink: 0;
}
.president-card .role    { color: var(--green-dark); font-size: .85rem; font-weight: 600; }
.president-card .signature { font-style: italic; color: var(--text-muted-c); font-size: .9rem; }

/* Comitato */
.committee-card {
  background: #fff; border: 1px solid var(--border);
  border-radius: var(--radius); box-shadow: var(--shadow);
  text-align: center; padding: 24px 16px 20px;
  transition: transform .25s, box-shadow .25s;
}
.committee-card:hover { transform: translateY(-4px); box-shadow: 0 10px 32px rgba(26,58,92,.14); }
.committee-card img {
  width: 100px; height: 100px; border-radius: 50%;
  object-fit: cover; border: 3px solid var(--green); margin-bottom: 12px; display: block; margin-left: auto; margin-right: auto;
}
.committee-card h5    { font-size: 1rem; margin: 0 0 4px; color: var(--navy); font-weight: 700; }
.committee-card .city { font-size: .82rem; color: var(--text-muted-c); }
.committee-card .specialty { font-size: .8rem; color: var(--green-dark); font-weight: 600; margin-top: 4px; }

/* ── User bar (abstract page) ─────────────────────────────── */
.user-bar {
  background: var(--light-bg); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 12px 20px;
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 10px; margin-bottom: 28px;
}
.user-bar .user-info { display: flex; align-items: center; gap: 10px; }
.user-bar .avatar {
  width: 36px; height: 36px; background: var(--green); border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-weight: 700; font-size: .9rem;
}

/* ── Form ─────────────────────────────────────────────────── */
.form-control:focus,
.form-select:focus {
  border-color: var(--green);
  box-shadow: 0 0 0 3px rgba(76,175,46,.12);
}
.form-field-label {
  font-size: .75rem; font-weight: 700; letter-spacing: 1px;
  text-transform: uppercase; color: var(--navy); display: block; margin-bottom: 6px;
}

/* WYSIWYG */
.wysiwyg-toolbar {
  background: var(--light-bg); border: 1.5px solid var(--border);
  border-bottom: none; border-radius: 8px 8px 0 0;
  padding: 6px 10px; display: flex; flex-wrap: wrap; gap: 2px;
}
.wysiwyg-toolbar button {
  background: none; border: 1px solid transparent; border-radius: 4px;
  padding: 4px 8px; font-size: .8rem; cursor: pointer;
  color: var(--navy); font-weight: 600;
}
.wysiwyg-toolbar button:hover { background: var(--border); }
.wysiwyg-toolbar .sep { width: 1px; height: 20px; background: var(--border); margin: 0 4px; }
.wysiwyg-content {
  border: 1.5px solid var(--border); border-radius: 0 0 8px 8px;
  border-top: none; min-height: 120px; padding: 10px 14px;
  font-size: .9rem; outline: none; background: #fff;
}
.wysiwyg-content:focus { border-color: var(--green); }

.abstract-form-section {
  border-bottom: 2px solid var(--border); padding-bottom: 24px; margin-bottom: 24px;
}
.abstract-form-section:last-of-type { border-bottom: none; }
.abstract-form-section h5 {
  font-size: .85rem; font-weight: 700; color: var(--green-dark);
  letter-spacing: .5px; text-transform: uppercase;
  border-bottom: 2px solid var(--border); padding-bottom: 10px; margin-bottom: 20px;
}

/* Password strength */
.pwd-strength { height: 4px; border-radius: 2px; margin-top: 6px; transition: all .3s; background: var(--border); }
.pwd-strength.weak   { background: #e74c3c; width: 33%; }
.pwd-strength.medium { background: #f39c12; width: 66%; }
.pwd-strength.strong { background: var(--green); width: 100%; }

/* Alert */
.alert-success {
  background: #edfbf0; border: 1px solid #a3e6b0; border-radius: 8px;
  color: #1e6e35; padding: 14px 20px; font-size: .9rem; margin-bottom: 16px;
}
.alert-error {
  background: #fdf0f0; border: 1px solid #f5b5b5; border-radius: 8px;
  color: #c0392b; padding: 14px 20px; font-size: .9rem; margin-bottom: 16px;
}

/* ── Highlight box ────────────────────────────────────────── */
.highlight-box {
  background: linear-gradient(135deg, var(--navy), var(--navy-mid));
  border-radius: var(--radius); padding: 32px; color: #fff;
}
.highlight-box h3 { color: #fff; }
.highlight-box p  { color: rgba(255,255,255,.82); }

/* ── Page title bar ───────────────────────────────────────── */
.page-title-bar {
  background: linear-gradient(135deg, var(--navy) 60%, var(--navy-mid));
  padding: 36px 0 28px; color: #fff;
}
.page-title-bar h1    { font-size: 1.9rem; color: #fff; margin: 0 0 6px; }
.page-title-bar .sub  { color: rgba(255,255,255,.7); font-size: .95rem; margin: 0; }
.page-title-bar .label { color: var(--green-light); }

/* ── Green bar ────────────────────────────────────────────── */
.green-bar { height: 5px; background: linear-gradient(90deg, var(--green), var(--green-light)); }

/* ── Map ──────────────────────────────────────────────────── */
.map-embed { border-radius: var(--radius); overflow: hidden; border: 1px solid var(--border); }
.map-embed iframe { display: block; width: 100%; }

/* ── Footer ───────────────────────────────────────────────── */
#site-footer { background: var(--navy-dark); font-size: .875rem; }
#site-footer h5 {
  font-size: .9rem; font-weight: 700; letter-spacing: 1px;
  text-transform: uppercase; color: #fff; margin-bottom: 16px;
}
#site-footer a { color: rgba(255,255,255,.6); transition: color .2s; text-decoration: none; }
#site-footer a:hover { color: var(--green-light); }
#site-footer ul { list-style: none; padding: 0; margin: 0; }
#site-footer ul li { margin-bottom: 8px; }
#site-footer .footer-logo { height: 44px; filter: brightness(10); opacity: .9; display: block; }
#site-footer .footer-bottom {
  border-top: 1px solid rgba(255,255,255,.1); padding: 18px 0;
  font-size: .78rem; color: rgba(255,255,255,.4);
}
#site-footer .footer-patrocini h5 { margin-bottom: 18px; }
#site-footer .patrocini-strip {
  background: #fff; padding: 22px 28px;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: 28px 40px;
}
#site-footer .patrocini-strip img { height: 56px; width: auto; }
#site-footer .footer-social a {
  width: 34px; height: 34px; background: rgba(255,255,255,.1);
  border-radius: 50%; font-size: 1rem; transition: background .2s;
  color: rgba(255,255,255,.6);
}
#site-footer .footer-social a:hover { background: var(--green); color: #fff; }

/* ── Back to top ──────────────────────────────────────────── */
#back-to-top {
  position: fixed; bottom: 28px; right: 28px;
  width: 42px; height: 42px; background: var(--green); color: #fff;
  border-radius: 50%; font-size: 1.1rem;
  box-shadow: 0 4px 12px rgba(0,0,0,.2); z-index: 999;
  cursor: pointer; transition: background .2s; border: none;
}
#back-to-top:hover { background: var(--green-dark); }

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 991.98px) {
  #hero h1      { font-size: 1.8rem; }
  #hero .hero-content { padding: 28px 24px 36px; }
  .section-pad  { padding: 48px 0; }
  .president-card { flex-direction: column; align-items: center; text-align: center; }
}
@media (max-width: 575.98px) {
  :root { --header-h: 65px; }
  #site-header .header-inner { padding: 0 12px; }
  #site-header .logo-link img { height: 38px; }
  .lang-switcher { gap: 0 !important; }
  .lang-switcher button { padding: 2px 7px; font-size: .7rem; }
  .hamburger-btn { padding: 6px; flex-shrink: 0; }
  .hamburger-btn span { width: 22px; }
  #hero { min-height: 380px; }
  #hero h1 { font-size: 1.5rem; }
  .auth-card { padding: 28px 20px; }
}
@media (max-width: 374px) {
  #site-header .header-inner { padding: 0 8px; }
  #site-header .logo-link img { height: 32px; }
  .lang-switcher button { padding: 2px 5px; font-size: .65rem; }
}
