/* ============================================================
   REACO INTERNATIONAL — Global Stylesheet
   Professional institutional design inspired by IVETA/IEAC/ACECN
   ============================================================ */

/* ── Variables ── */
:root {
  --blue:       #0d2d5e;
  --blue-mid:   #1a4a8a;
  --blue-lt:    #e8eef8;
  --blue-xlt:   #f0f4fb;
  --gold:       #c8962b;
  --gold-lt:    #fdf3dc;
  --green:      #0e7c3a;
  --green-lt:   #e8f5ee;
  --white:      #ffffff;
  --off:        #f7f8fa;
  --border:     #dde3ea;
  --text:       #1e2d3d;
  --muted:      #5a6b7d;
  --shadow-sm:  0 2px 8px rgba(0,0,0,.07);
  --shadow:     0 4px 24px rgba(0,0,0,.10);
  --shadow-lg:  0 12px 48px rgba(0,0,0,.14);
  --r:          3px;
  --tr:         all .24s ease;
  --max:        1200px;
}

/* ── Reset ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box }
html { scroll-behavior:smooth; font-size:16px }
body { font-family:'Source Sans 3','Segoe UI',sans-serif; color:var(--text); background:#fff; line-height:1.65; overflow-x:hidden }
img { display:block; max-width:100% }
a { text-decoration:none; color:inherit; transition:var(--tr) }
ul { list-style:none }
button, input, select, textarea { font-family:inherit }

/* ── Typography ── */
h1,h2,h3,h4,h5 { font-family:'Merriweather','Georgia',serif; line-height:1.25; color:var(--blue) }
.eyebrow { display:inline-block; font-size:11px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:var(--green); margin-bottom:10px }
.eyebrow-gold { color:var(--gold) }
.eyebrow-white { color:rgba(255,255,255,.75) }
.section-title { font-size:clamp(22px,2.8vw,36px); font-weight:700; margin-bottom:14px }
.section-lead { font-size:16px; color:var(--muted); line-height:1.78; max-width:640px }
.rule { width:44px; height:3px; background:var(--green); margin:12px 0 20px; border-radius:2px }
.rule-gold { background:var(--gold) }
.rule-c { margin-left:auto; margin-right:auto }

/* ── Layout ── */
.container { max-width:var(--max); margin:0 auto; padding:0 24px }
.container-wide { max-width:1400px; margin:0 auto; padding:0 24px }
.section { padding:80px 0 }
.section-sm { padding:52px 0 }
.bg-off { background:var(--off) }
.bg-blue { background:var(--blue) }
.bg-blue-mid { background:var(--blue-mid) }
.bg-dk { background:var(--blue) }
.tc { text-align:center }
.flex { display:flex }
.ai-c { align-items:center }
.jb { justify-content:space-between }
.fw { flex-wrap:wrap }
.g16 { gap:16px }
.g24 { gap:24px }

/* ── Buttons ── */
.btn { display:inline-flex; align-items:center; gap:8px; padding:11px 28px; border-radius:var(--r); font-size:14px; font-weight:700; border:2px solid transparent; cursor:pointer; transition:var(--tr); white-space:nowrap; font-family:inherit }
.btn-lg { padding:14px 36px; font-size:15px }
.btn-sm { padding:8px 18px; font-size:13px }
.btn-blue { background:var(--blue); color:#fff; border-color:var(--blue) }
.btn-blue:hover { background:#0a2349; border-color:#0a2349; transform:translateY(-1px); box-shadow:0 4px 14px rgba(13,45,94,.3) }
.btn-green { background:var(--green); color:#fff; border-color:var(--green) }
.btn-green:hover { background:#0a5e2b; transform:translateY(-1px); box-shadow:0 4px 14px rgba(14,124,58,.3) }
.btn-gold { background:var(--gold); color:#fff; border-color:var(--gold) }
.btn-gold:hover { background:#a57820 }
.btn-ol-blue { background:transparent; color:var(--blue); border-color:var(--blue) }
.btn-ol-blue:hover { background:var(--blue); color:#fff }
.btn-ol-white { background:transparent; color:#fff; border-color:rgba(255,255,255,.5) }
.btn-ol-white:hover { background:rgba(255,255,255,.1); border-color:#fff }
.btn-ol-green { background:transparent; color:var(--green); border-color:var(--green) }
.btn-ol-green:hover { background:var(--green); color:#fff }
.lnk { display:inline-flex; align-items:center; gap:6px; font-weight:600; font-size:14px; color:var(--blue); transition:var(--tr) }
.lnk:hover { color:var(--green); gap:10px }

/* ── Preloader ── */
#preloader { position:fixed; inset:0; background:var(--blue); display:flex; flex-direction:column; align-items:center; justify-content:center; z-index:9999; transition:opacity .5s,visibility .5s }
#preloader.gone { opacity:0; visibility:hidden }
.pre-logo { font-family:'Merriweather',serif; color:#fff; font-size:22px; font-weight:900; margin-bottom:24px; letter-spacing:1px }
.pre-logo span { color:#c8962b }
.pre-bar { width:160px; height:3px; background:rgba(255,255,255,.15); border-radius:2px; overflow:hidden }
.pre-fill { height:100%; background:var(--gold); animation:pfill .9s ease forwards }
@keyframes pfill { from{width:0} to{width:100%} }

/* ── Topbar ── */
.topbar { background:#0a2248; color:rgba(255,255,255,.72); font-size:13px; padding:8px 0; border-bottom:1px solid rgba(255,255,255,.07) }
.tb-inner { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap }
.tb-l, .tb-r { display:flex; align-items:center; gap:18px; flex-wrap:wrap }
.tb-item { display:flex; align-items:center; gap:6px }
.tb-item i { color:var(--gold); font-size:12px }
.tb-soc { display:flex; gap:7px }
.tb-soc a { width:25px; height:25px; border-radius:50%; background:rgba(255,255,255,.08); color:rgba(255,255,255,.6); display:flex; align-items:center; justify-content:center; font-size:10px }
.tb-soc a:hover { background:var(--gold); color:#fff }

/* ── Header ── */
.site-header { background:#fff; border-bottom:3px solid var(--blue); position:sticky; top:0; z-index:500; transition:box-shadow .25s }
.site-header.scrolled { box-shadow:0 2px 20px rgba(0,0,0,.12) }
.hdr-inner { display:flex; align-items:stretch; height:76px }
.logo-wrap { display:flex; align-items:center; gap:12px; padding-right:28px; border-right:1px solid var(--border); flex-shrink:0 }
.logo-wrap img { height:46px; width:auto }
.logo-text { display:flex; flex-direction:column; line-height:1.15 }
.logo-name { font-family:'Merriweather',serif; font-size:16px; font-weight:900; color:var(--blue) }
.logo-tag { font-size:10px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--green) }

/* Navigation */
.main-nav { display:flex; align-items:stretch; flex:1; padding:0 12px }
.main-nav > li { position:relative; display:flex; align-items:stretch }
.main-nav > li > a { display:flex; align-items:center; gap:4px; padding:0 13px; font-size:13.5px; font-weight:600; color:var(--text); border-bottom:3px solid transparent; transition:var(--tr); white-space:nowrap }
.main-nav > li > a:hover, .main-nav > li > a.active { color:var(--blue); border-bottom-color:var(--gold) }
.has-dd:hover .dropdown { opacity:1; visibility:visible; transform:translateY(0) }
.dropdown { position:absolute; top:100%; left:0; min-width:230px; background:#fff; border:1px solid var(--border); border-top:3px solid var(--blue); box-shadow:var(--shadow); padding:6px 0; z-index:200; opacity:0; visibility:hidden; transform:translateY(6px); transition:var(--tr) }
.dropdown a { display:block; padding:10px 20px; font-size:13.5px; color:var(--text); border-left:3px solid transparent; transition:var(--tr) }
.dropdown a:hover { background:var(--off); color:var(--blue); border-left-color:var(--gold); padding-left:24px }
.dropdown hr { border:none; border-top:1px solid var(--border); margin:5px 0 }
.hdr-actions { display:flex; align-items:center; gap:10px; padding-left:16px; border-left:1px solid var(--border); flex-shrink:0 }
.mob-toggle { display:none; background:none; border:none; cursor:pointer; font-size:22px; color:var(--blue); padding:4px; margin-left:auto }

/* Mobile Nav */
.mob-nav { display:none; position:fixed; inset:0; background:#fff; z-index:998; flex-direction:column; overflow-y:auto }
.mob-nav.open { display:flex }
.mob-nav-head { display:flex; align-items:center; justify-content:space-between; padding:16px 22px; border-bottom:1px solid var(--border) }
.mob-close { background:none; border:none; font-size:24px; cursor:pointer; color:var(--blue) }
.mob-body { padding:12px 0; flex:1 }
.mob-link { display:block; padding:13px 22px; font-size:16px; font-weight:600; color:var(--text); border-bottom:1px solid var(--border); transition:var(--tr) }
.mob-link:hover { color:var(--blue); background:var(--off); padding-left:28px }
.mob-link.sub { font-size:14px; padding-left:36px; font-weight:500; color:var(--muted) }
.mob-foot { padding:18px 22px; display:flex; flex-direction:column; gap:10px }

/* ── Hero ── */
.hero { position:relative; min-height:88vh; display:flex; align-items:center; overflow:hidden; background:var(--blue) }
.hero-slides { position:absolute; inset:0 }
.slide { position:absolute; inset:0; opacity:0; transition:opacity 1.2s ease }
.slide.active { opacity:1 }
.slide img { width:100%; height:100%; object-fit:cover }
.slide-overlay { position:absolute; inset:0; background:linear-gradient(105deg,rgba(13,45,94,.90) 0%,rgba(13,45,94,.70) 50%,rgba(13,45,94,.32) 100%) }
.hero-body { position:relative; z-index:2; max-width:700px }
.hero-eyebrow { display:inline-flex; align-items:center; gap:8px; background:rgba(200,150,43,.18); border:1px solid rgba(200,150,43,.4); color:var(--gold); padding:5px 14px; border-radius:2px; font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; margin-bottom:20px }
.hero-title { font-family:'Merriweather',serif; font-size:clamp(30px,4.5vw,58px); font-weight:900; color:#fff; line-height:1.12; margin-bottom:18px }
.hero-title em { color:var(--gold); font-style:normal }
.hero-sub { font-size:17px; color:rgba(255,255,255,.82); line-height:1.75; margin-bottom:34px; max-width:560px }
.hero-btns { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:48px }
.hero-stats { display:flex; gap:36px; flex-wrap:wrap; border-top:1px solid rgba(255,255,255,.15); padding-top:28px }
.hstat-num { font-family:'Merriweather',serif; font-size:30px; font-weight:900; color:#fff; line-height:1 }
.hstat-num span { color:var(--gold) }
.hstat-lbl { font-size:12px; color:rgba(255,255,255,.6); margin-top:4px; font-weight:500; letter-spacing:.5px; text-transform:uppercase }
.hero-ctrls { position:absolute; bottom:28px; right:0; z-index:3; display:flex; gap:6px }
.hctrl { width:42px; height:42px; border-radius:50%; border:1.5px solid rgba(255,255,255,.3); background:rgba(255,255,255,.08); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:16px; transition:var(--tr) }
.hctrl:hover { background:var(--gold); border-color:var(--gold) }
.hero-dots { position:absolute; bottom:34px; left:0; z-index:3; display:flex; gap:7px }
.hdot { width:8px; height:8px; border-radius:100px; background:rgba(255,255,255,.3); cursor:pointer; transition:var(--tr) }
.hdot.active { background:var(--gold); width:24px }

/* ── Why Strip (IVETA-style) ── */
.why-grid { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--border) }
.why-card { padding:36px 28px; border-right:1px solid var(--border); text-align:center; transition:var(--tr); position:relative; overflow:hidden }
.why-card:last-child { border-right:none }
.why-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:var(--gold); transform:scaleX(0); transition:var(--tr) }
.why-card:hover { background:var(--blue-xlt) }
.why-card:hover::after { transform:scaleX(1) }
.why-icon { width:68px; height:68px; border-radius:50%; background:var(--blue-lt); display:flex; align-items:center; justify-content:center; margin:0 auto 18px; font-size:28px; color:var(--blue); transition:var(--tr) }
.why-card:hover .why-icon { background:var(--blue); color:#fff }
.why-title { font-family:'Merriweather',serif; font-size:17px; font-weight:700; color:var(--blue); margin-bottom:10px }
.why-desc { font-size:14px; color:var(--muted); line-height:1.65; margin-bottom:16px }
.why-link { font-size:13px; font-weight:700; color:var(--blue); display:inline-flex; align-items:center; gap:5px; transition:var(--tr) }
.why-link:hover { color:var(--green); gap:9px }

/* ── About section ── */
.about-grid { display:grid; grid-template-columns:1fr 1fr; min-height:500px }
.about-img { position:relative; overflow:hidden }
.about-img img { width:100%; height:100%; object-fit:cover }
.about-overlay { position:absolute; inset:0; background:linear-gradient(135deg,rgba(13,45,94,.45) 0%,transparent 55%) }
.cpd-badge { position:absolute; bottom:28px; left:28px; background:#fff; padding:16px 20px; border-radius:4px; box-shadow:var(--shadow); border-left:4px solid var(--gold); display:flex; align-items:center; gap:12px }
.cpd-icon { width:40px; height:40px; background:var(--gold-lt); border-radius:50%; display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:18px; flex-shrink:0 }
.cpd-text { font-size:13px; font-weight:700; color:var(--blue); line-height:1.3 }
.cpd-sub { font-size:11px; color:var(--muted); font-weight:400 }
.about-text { padding:64px 56px; display:flex; flex-direction:column; justify-content:center; background:#fff }
.check-list { display:flex; flex-direction:column; gap:11px; margin:18px 0 24px }
.check-item { display:flex; align-items:flex-start; gap:11px; font-size:15px; color:var(--text) }
.check-item i { color:var(--green); margin-top:3px; font-size:13px; flex-shrink:0 }

/* ── Programs ── */
.programs-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:26px }
.prog-card { border:1px solid var(--border); border-radius:4px; overflow:hidden; background:#fff; display:flex; flex-direction:column; transition:var(--tr) }
.prog-card:hover { box-shadow:var(--shadow-lg); transform:translateY(-5px); border-color:transparent }
.prog-img { position:relative; height:210px; overflow:hidden }
.prog-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s }
.prog-card:hover .prog-img img { transform:scale(1.06) }
.prog-tag { position:absolute; top:12px; left:12px; padding:4px 12px; font-size:11px; font-weight:700; letter-spacing:1px; text-transform:uppercase; border-radius:2px; color:#fff }
.tag-blue { background:var(--blue) }
.tag-green { background:var(--green) }
.tag-gold { background:var(--gold) }
.tag-env { background:#2d6a4f }
.prog-body { padding:22px; flex:1; display:flex; flex-direction:column }
.prog-meta { display:flex; flex-wrap:wrap; gap:14px; margin-bottom:10px }
.prog-mi { display:flex; align-items:center; gap:5px; font-size:12px; color:var(--muted); font-weight:500 }
.prog-mi i { color:var(--green); font-size:11px }
.prog-title { font-family:'Merriweather',serif; font-size:17px; font-weight:700; color:var(--blue); margin-bottom:10px; line-height:1.3 }
.prog-desc { font-size:14px; color:var(--muted); line-height:1.65; flex:1; margin-bottom:18px }
.prog-foot { display:flex; align-items:center; justify-content:space-between; border-top:1px solid var(--border); padding-top:14px }
.prog-cta { background:var(--blue); color:#fff; padding:8px 18px; border-radius:var(--r); font-size:13px; font-weight:700; transition:var(--tr) }
.prog-cta:hover { background:var(--blue-mid) }
.prog-more { font-size:13px; font-weight:600; color:var(--blue); display:inline-flex; align-items:center; gap:4px; transition:var(--tr) }
.prog-more:hover { color:var(--green); gap:8px }

/* ── Membership ── */
.membership-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center }
.membership-benefits { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin:24px 0 }
.benefit-item { display:flex; align-items:flex-start; gap:12px; padding:16px; background:#fff; border:1px solid var(--border); border-radius:4px; transition:var(--tr) }
.benefit-item:hover { border-color:var(--blue); box-shadow:var(--shadow-sm) }
.benefit-icon { width:40px; height:40px; background:var(--blue-lt); border-radius:8px; display:flex; align-items:center; justify-content:center; color:var(--blue); font-size:18px; flex-shrink:0 }
.benefit-text { font-size:14px; font-weight:600; color:var(--blue); line-height:1.4 }
.membership-form-wrap { background:#fff; border:1px solid var(--border); border-radius:4px; padding:40px; box-shadow:var(--shadow) }
.form-title { font-family:'Merriweather',serif; font-size:22px; font-weight:700; color:var(--blue); margin-bottom:6px }
.form-sub { font-size:14px; color:var(--muted); margin-bottom:24px }
.form-group { display:flex; flex-direction:column; gap:6px; margin-bottom:18px }
.form-group label { font-size:13px; font-weight:700; color:var(--text) }
.form-input, .form-select, .form-textarea { width:100%; padding:12px 14px; border:1px solid var(--border); border-radius:var(--r); font-size:14px; font-family:inherit; color:var(--text); outline:none; transition:var(--tr); background:#fff }
.form-input:focus, .form-select:focus, .form-textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(13,45,94,.08) }
.form-textarea { min-height:110px; resize:vertical }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px }
.form-note { font-size:12px; color:var(--muted); margin-top:10px }

/* ── Stats bar ── */
.stats-bar { background:var(--blue) }
.stats-inner { display:grid; grid-template-columns:repeat(4,1fr); border-left:1px solid rgba(255,255,255,.08) }
.stat-box { padding:36px 24px; border-right:1px solid rgba(255,255,255,.08); text-align:center }
.stat-num { font-family:'Merriweather',serif; font-size:38px; font-weight:900; color:#fff; line-height:1 }
.stat-num span { color:var(--gold) }
.stat-lbl { font-size:13px; color:rgba(255,255,255,.6); margin-top:6px; font-weight:500 }

/* ── Conference feature dark ── */
.conf-section { background:var(--blue); position:relative; overflow:hidden }
.conf-section::before { content:''; position:absolute; top:-80px; right:-80px; width:500px; height:500px; border-radius:50%; border:1px solid rgba(255,255,255,.05) }
.conf-section::after { content:''; position:absolute; bottom:-60px; left:30%; width:340px; height:340px; border-radius:50%; background:radial-gradient(circle,rgba(200,150,43,.10),transparent 70%) }
.conf-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:center; position:relative; z-index:1 }
.conf-label { display:inline-flex; align-items:center; gap:7px; background:rgba(200,150,43,.15); border:1px solid rgba(200,150,43,.3); color:var(--gold); padding:4px 13px; border-radius:2px; font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; margin-bottom:18px }
.conf-title { font-family:'Merriweather',serif; font-size:clamp(24px,2.8vw,40px); font-weight:900; color:#fff; line-height:1.2; margin-bottom:16px }
.conf-desc { font-size:16px; color:rgba(255,255,255,.75); line-height:1.78; margin-bottom:26px }
.conf-details { display:flex; flex-direction:column; gap:13px; margin-bottom:32px }
.conf-detail { display:flex; align-items:center; gap:13px }
.cd-icon { width:40px; height:40px; border-radius:4px; background:rgba(200,150,43,.2); display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:16px; flex-shrink:0 }
.cd-text { font-size:15px; color:rgba(255,255,255,.82) }
.cd-text strong { color:#fff }
.conf-img-wrap { position:relative }
.conf-img-inner { border-radius:4px; overflow:hidden; box-shadow:0 24px 60px rgba(0,0,0,.45) }
.conf-img-inner img { width:100%; height:390px; object-fit:cover }
.conf-countdown-box { position:absolute; bottom:-16px; left:-16px; background:var(--gold); color:#fff; padding:20px 24px; border-radius:4px; box-shadow:0 8px 28px rgba(200,150,43,.4) }
.cd-box-label { font-size:10px; letter-spacing:2px; text-transform:uppercase; opacity:.85; margin-bottom:8px }
.countdown-row { display:flex; gap:10px; align-items:flex-end }
.cd-unit { text-align:center }
.cd-num { font-family:'Merriweather',serif; font-size:26px; font-weight:900; line-height:1 }
.cd-lbl { font-size:9px; letter-spacing:1px; text-transform:uppercase; opacity:.75; margin-top:2px }
.cd-sep { font-size:20px; font-weight:300; opacity:.5; padding-bottom:3px }

/* ── Join strip ── */
.join-strip { background:var(--blue-mid); padding:60px 0 }
.join-inner { display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap }
.join-title { font-family:'Merriweather',serif; font-size:28px; font-weight:900; color:#fff; margin-bottom:8px }
.join-sub { font-size:16px; color:rgba(255,255,255,.72); margin-bottom:20px }
.join-tags { display:flex; flex-wrap:wrap; gap:10px }
.jtag { display:inline-flex; align-items:center; gap:6px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.15); color:rgba(255,255,255,.88); padding:6px 14px; border-radius:2px; font-size:13px }
.jtag i { color:var(--gold); font-size:11px }
.join-ctas { flex-shrink:0; display:flex; flex-direction:column; gap:12px; min-width:240px }

/* ── Services grid ── */
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--border) }
.svc { padding:32px 28px; border-right:1px solid var(--border); border-bottom:1px solid var(--border); transition:var(--tr); position:relative; overflow:hidden }
.svc::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:var(--gold); transform:scaleX(0); transition:var(--tr) }
.svc:hover { background:var(--blue-xlt) }
.svc:hover::after { transform:scaleX(1) }
.svc-icon { width:50px; height:50px; border-radius:4px; background:var(--blue-lt); display:flex; align-items:center; justify-content:center; color:var(--blue); font-size:20px; margin-bottom:16px; transition:var(--tr) }
.svc:hover .svc-icon { background:var(--blue); color:#fff }
.svc-title { font-family:'Merriweather',serif; font-size:15px; font-weight:700; color:var(--blue); margin-bottom:9px }
.svc-desc { font-size:14px; color:var(--muted); line-height:1.65 }

/* ── News grid ── */
.news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px }
.news-card { border:1px solid var(--border); border-radius:4px; overflow:hidden; background:#fff; transition:var(--tr) }
.news-card:hover { box-shadow:var(--shadow); transform:translateY(-3px) }
.news-img { height:180px; overflow:hidden; background:var(--blue-lt) }
.news-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s }
.news-card:hover .news-img img { transform:scale(1.05) }
.news-body { padding:20px }
.news-date { font-size:12px; color:var(--muted); margin-bottom:8px }
.news-title { font-family:'Merriweather',serif; font-size:15px; font-weight:700; color:var(--blue); margin-bottom:8px; line-height:1.35 }
.news-excerpt { font-size:14px; color:var(--muted); line-height:1.6; margin-bottom:14px }
.news-more { font-size:13px; font-weight:700; color:var(--blue); display:inline-flex; align-items:center; gap:4px; transition:var(--tr) }
.news-more:hover { color:var(--green); gap:8px }

/* ── Partners ── */
.partners-strip { border-top:1px solid var(--border); border-bottom:1px solid var(--border); background:#fff }
.partners-lbl { font-size:11px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; color:var(--muted); text-align:center; margin-bottom:28px }
.partners-row { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:40px }
.partner { opacity:.5; filter:grayscale(1); transition:var(--tr); height:44px; display:flex; align-items:center }
.partner:hover { opacity:1; filter:grayscale(0) }
.partner img { height:100%; width:auto; max-width:120px; object-fit:contain }

/* ── Gallery grid ── */
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:4px }
.gallery-item { position:relative; overflow:hidden; aspect-ratio:4/3 }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .45s }
.gallery-item:hover img { transform:scale(1.08) }
.gallery-overlay { position:absolute; inset:0; background:rgba(13,45,94,.6); opacity:0; display:flex; align-items:center; justify-content:center; transition:var(--tr) }
.gallery-item:hover .gallery-overlay { opacity:1 }
.gallery-overlay i { color:#fff; font-size:28px }

/* ── Newsletter ── */
.newsletter { background:var(--green); padding:52px 0 }
.nl-inner { display:flex; align-items:center; gap:44px; flex-wrap:wrap }
.nl-text { flex:1; min-width:240px }
.nl-title { font-family:'Merriweather',serif; font-size:24px; font-weight:900; color:#fff; margin-bottom:6px }
.nl-sub { font-size:15px; color:rgba(255,255,255,.82) }
.nl-form { display:flex; gap:8px; flex:1; min-width:300px }
.nl-input { flex:1; padding:13px 18px; border:none; border-radius:var(--r); font-size:15px; font-family:inherit; color:var(--text); outline:none }
.nl-btn { background:var(--blue); color:#fff; padding:13px 28px; border:none; border-radius:var(--r); font-size:15px; font-weight:700; cursor:pointer; transition:var(--tr); white-space:nowrap; font-family:inherit }
.nl-btn:hover { background:#0a2349 }

/* ── Footer ── */
.site-footer { background:#071b3a; color:rgba(255,255,255,.7); padding:64px 0 0 }
.footer-grid { display:grid; grid-template-columns:1.5fr 1fr 1fr 1.1fr; gap:48px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.08) }
.footer-logo { display:flex; align-items:center; gap:10px; margin-bottom:16px }
.footer-logo img { height:36px; width:auto }
.footer-logo-name { font-family:'Merriweather',serif; font-size:16px; font-weight:900; color:#fff }
.footer-about { font-size:14px; line-height:1.78; color:rgba(255,255,255,.58); margin-bottom:20px }
.footer-soc { display:flex; gap:8px }
.footer-soc a { width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.08); color:rgba(255,255,255,.6); display:flex; align-items:center; justify-content:center; font-size:13px; transition:var(--tr) }
.footer-soc a:hover { background:var(--gold); color:#fff }
.footer-col-title { font-size:11px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#fff; margin-bottom:18px; padding-bottom:10px; border-bottom:2px solid var(--gold) }
.footer-links { display:flex; flex-direction:column; gap:10px }
.footer-links a { font-size:14px; color:rgba(255,255,255,.6); display:flex; align-items:center; gap:6px; transition:var(--tr) }
.footer-links a::before { content:'›'; color:var(--gold); flex-shrink:0 }
.footer-links a:hover { color:#fff; padding-left:4px }
.fcontact-item { display:flex; align-items:flex-start; gap:10px; font-size:14px; color:rgba(255,255,255,.65); margin-bottom:12px }
.fcontact-item i { color:var(--gold); font-size:13px; margin-top:3px; flex-shrink:0; width:14px }
.footer-bottom { padding:18px 0; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; font-size:13px; color:rgba(255,255,255,.38) }
.footer-bottom a { color:rgba(255,255,255,.5) }
.footer-bottom a:hover { color:var(--gold) }

/* ── Back to top ── */
.back-top { position:fixed; bottom:24px; right:24px; width:42px; height:42px; border-radius:50%; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; font-size:16px; z-index:200; opacity:0; transform:translateY(14px); transition:var(--tr); box-shadow:var(--shadow) }
.back-top.show { opacity:1; transform:translateY(0) }
.back-top:hover { background:var(--gold) }

/* ── Reveal animations ── */
.reveal { opacity:0; transform:translateY(22px); transition:opacity .6s ease,transform .6s ease }
.reveal.in { opacity:1; transform:translateY(0) }

/* ── Auth / Modal ── */
.modal-overlay { position:fixed; inset:0; background:rgba(7,27,58,.7); z-index:900; display:none; align-items:center; justify-content:center; padding:24px }
.modal-overlay.open { display:flex }
.modal-box { background:#fff; border-radius:6px; box-shadow:var(--shadow-lg); width:100%; max-width:480px; overflow:hidden }
.modal-head { background:var(--blue); color:#fff; padding:24px 28px; display:flex; align-items:center; justify-content:space-between }
.modal-title { font-family:'Merriweather',serif; font-size:20px; font-weight:700 }
.modal-close { background:none; border:none; color:rgba(255,255,255,.7); font-size:22px; cursor:pointer; transition:var(--tr) }
.modal-close:hover { color:#fff }
.modal-body { padding:28px }
.modal-tabs { display:flex; border-bottom:2px solid var(--border); margin-bottom:24px }
.modal-tab { padding:10px 24px; font-size:14px; font-weight:700; cursor:pointer; color:var(--muted); border-bottom:3px solid transparent; margin-bottom:-2px; background:none; border-top:none; border-left:none; border-right:none; font-family:inherit; transition:var(--tr) }
.modal-tab.active { color:var(--blue); border-bottom-color:var(--gold) }
.modal-panel { display:none }
.modal-panel.active { display:block }
.auth-msg { padding:10px 14px; border-radius:var(--r); font-size:14px; margin-bottom:16px; display:none }
.auth-msg.success { background:#d4edda; color:#155724; border:1px solid #c3e6cb }
.auth-msg.error { background:#f8d7da; color:#721c24; border:1px solid #f5c6cb }

/* ── Page header ── */
.page-header { background:linear-gradient(105deg,var(--blue) 0%,var(--blue-mid) 100%); padding:72px 0 52px; position:relative; overflow:hidden }
.page-header::after { content:''; position:absolute; top:-80px; right:-80px; width:400px; height:400px; border-radius:50%; border:1px solid rgba(255,255,255,.06) }
.page-header-inner { position:relative; z-index:1 }
.page-header-eyebrow { color:var(--gold); font-size:12px; font-weight:700; letter-spacing:2.5px; text-transform:uppercase; margin-bottom:12px }
.page-header-title { font-family:'Merriweather',serif; font-size:clamp(28px,3.5vw,48px); font-weight:900; color:#fff; margin-bottom:12px }
.page-header-sub { font-size:17px; color:rgba(255,255,255,.78); max-width:560px }

/* ── Accreditation tiers ── */
.accred-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px }
.accred-card { border:1px solid var(--border); border-radius:4px; padding:32px 28px; text-align:center; transition:var(--tr); position:relative; overflow:hidden }
.accred-card.featured { border-color:var(--gold); background:var(--gold-lt) }
.accred-badge { position:absolute; top:16px; right:16px; background:var(--gold); color:#fff; padding:4px 10px; border-radius:2px; font-size:11px; font-weight:700; letter-spacing:1px }
.accred-icon { width:64px; height:64px; border-radius:50%; background:var(--blue-lt); display:flex; align-items:center; justify-content:center; margin:0 auto 18px; font-size:28px; color:var(--blue) }
.accred-card.featured .accred-icon { background:var(--gold); color:#fff }
.accred-title { font-family:'Merriweather',serif; font-size:20px; font-weight:700; color:var(--blue); margin-bottom:10px }
.accred-desc { font-size:14px; color:var(--muted); line-height:1.65; margin-bottom:20px }

/* ── Responsive ── */
@media(max-width:1100px) {
  .why-grid { grid-template-columns:repeat(2,1fr) }
  .programs-grid { grid-template-columns:repeat(2,1fr) }
  .services-grid { grid-template-columns:repeat(2,1fr) }
  .news-grid { grid-template-columns:repeat(2,1fr) }
  .footer-grid { grid-template-columns:1fr 1fr; gap:32px }
  .conf-grid { grid-template-columns:1fr; gap:40px }
  .conf-img-wrap { display:none }
  .accred-grid { grid-template-columns:1fr }
}
@media(max-width:900px) {
  .about-grid { grid-template-columns:1fr }
  .about-img { height:300px }
  .about-text { padding:40px 32px }
  .stats-inner { grid-template-columns:repeat(2,1fr) }
  .membership-grid { grid-template-columns:1fr }
  .join-inner { flex-direction:column; text-align:center }
  .join-tags { justify-content:center }
  .join-ctas { min-width:unset; width:100% }
  .join-ctas .btn { width:100%; justify-content:center }
  .nl-inner { flex-direction:column }
  .gallery-grid { grid-template-columns:repeat(2,1fr) }
}
@media(max-width:768px) {
  .main-nav, .hdr-actions, .topbar { display:none }
  .mob-toggle { display:block }
  .hero { min-height:75vh }
  .hero-stats { gap:22px }
  .hero-btns { flex-direction:column }
  .hero-btns .btn { width:100%; justify-content:center }
  .why-grid { grid-template-columns:1fr }
  .programs-grid { grid-template-columns:1fr }
  .services-grid { grid-template-columns:1fr }
  .news-grid { grid-template-columns:1fr }
  .footer-grid { grid-template-columns:1fr }
  .nl-form { flex-direction:column }
  .form-row { grid-template-columns:1fr }
  .gallery-grid { grid-template-columns:1fr 1fr }
}
@media(max-width:480px) {
  .stats-inner { grid-template-columns:1fr }
  .membership-benefits { grid-template-columns:1fr }
  .gallery-grid { grid-template-columns:1fr }
}
