/* ESBN site-wide helpers (used by Elementor classes). Edit design in Elementor; this file only holds shared hover/sticky/form rules. */
html, body { overflow-x: clip; }
body { background: #FFFFFF; }

/* Sticky header on desktop */
@media (min-width: 1025px) {
  .ekit-template-content-header { position: sticky; top: 0; z-index: 999; }
  .admin-bar .ekit-template-content-header { top: 32px; }
}
.ekit-template-content-header { box-shadow: 0 6px 24px rgba(11,31,51,0.06); }

/* Cards */
.es-card { transition: transform .25s ease, box-shadow .25s ease; }
.es-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(11,31,51,0.12) !important; }
.es-card .elementor-widget-image img { transition: transform .4s ease; }
.es-card:hover .elementor-widget-image img { transform: scale(1.03); }
.es-card .elementor-widget-image { overflow: hidden; }

/* Buttons */
.elementor-button { transition: background-color .2s ease, color .2s ease, border-color .2s ease, transform .2s ease; }
.elementor-button:active { transform: translateY(1px); }
.es-chip .elementor-button { cursor: pointer; }

/* Text-link style for "Explore Now" style buttons */
.es-textlink .elementor-button { padding: 0 !important; background: transparent !important; }
.es-textlink .elementor-button:hover { color: #0B1F33 !important; }

/* Footer newsletter (Contact Form 7) */
.es-newsletter { display: flex; flex-direction: column; gap: 12px; }
.es-newsletter p { margin: 0; }
.es-newsletter input[type=email] { width: 100%; box-sizing: border-box; padding: 14px 16px; border-radius: 6px; border: 1px solid rgba(255,255,255,0.25); background: rgba(255,255,255,0.06); color: #FFFFFF; font-family: Manrope, sans-serif; font-size: 15px; }
.es-newsletter input[type=email]::placeholder { color: rgba(255,255,255,0.65); }
.es-newsletter input[type=email]:focus { outline: 2px solid #C6A15B; outline-offset: 1px; }
.es-newsletter input[type=submit] { width: 100%; padding: 14px 16px; border: 0; border-radius: 6px; background: #C6A15B; color: #0B1F33; font-family: Manrope, sans-serif; font-weight: 700; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; cursor: pointer; }
.es-newsletter input[type=submit]:hover { background: #D4B576; }
.es-footer .wpcf7-response-output { color: #FFFFFF; margin: 10px 0 0 !important; font-size: 13px; }
.es-footer .wpcf7-spinner { display: none; }

/* Footer link lists */
.es-footer .elementor-icon-list-item a:hover .elementor-icon-list-text { color: #C6A15B !important; }

/* Contact page form */
.es-contact-form input:not([type=submit]), .es-contact-form textarea { width: 100%; box-sizing: border-box; padding: 12px 14px; border: 1px solid #E4E2DA; border-radius: 6px; font-family: Manrope, sans-serif; }
.es-contact-form input[type=submit] { background: #C6A15B; color: #0B1F33; border: 0; border-radius: 6px; padding: 14px 28px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; cursor: pointer; }

/* ElementsKit mobile menu panel */
.ekit-wid-con .elementskit-menu-hamburger { border-color: #0B1F33 !important; }
.ekit-wid-con .elementskit-menu-hamburger .elementskit-menu-hamburger-icon { background-color: #0B1F33 !important; }

@media (prefers-reduced-motion: reduce) {
  .es-card, .es-card img, .elementor-button { transition: none !important; }
  .es-card:hover { transform: none; }
}

/* Keep words whole in headings */
.elementor-heading-title { overflow-wrap: normal; word-break: normal; hyphens: manual; }

/* Containers that should shrink to their content */
.e-con.es-fit { --width: auto !important; width: auto !important; flex: 0 0 auto !important; }

/* ===== Header: logged-in vs logged-out buttons ===== */
body.logged-in .es-hdr-login, body.logged-in .es-hdr-register { display: none !important; }
body:not(.logged-in) .es-hdr-account, body:not(.logged-in) .es-hdr-member { display: none !important; }

/* ===== Members area (page 20) ===== */
.esbn-hello { color: #fff; }
.esbn-hello-eyebrow { margin: 0 0 10px; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: #C6A15B; }
.esbn-hello-title { margin: 0; font-size: 40px; line-height: 1.12; font-weight: 800; color: #fff; }
.esbn-hello-title span { color: #C6A15B; }
.esbn-hello-sub { margin: 12px 0 0; max-width: 560px; font-size: 16px; line-height: 1.6; color: rgba(255,255,255,.8); }
.esbn-chips { list-style: none; margin: 22px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.esbn-chips li { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; font-size: 13px; font-weight: 700; color: #fff; background: rgba(255,255,255,.08); border: 1px solid rgba(198,161,91,.4); }
.esbn-chips li i { color: #C6A15B; font-size: 12px; }
@media (max-width: 767px) { .esbn-hello-title { font-size: 28px; } .esbn-hello-sub { font-size: 15px; } .esbn-chips li { font-size: 12px; padding: 7px 12px; } }

.esbn-post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
@media (max-width: 1024px) { .esbn-post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .esbn-post-grid { grid-template-columns: 1fr; } }
.esbn-post-card { display: flex; flex-direction: column; background: #fff; border: 1px solid #E4E2DA; border-radius: 12px; overflow: hidden; transition: box-shadow .2s, transform .2s, border-color .2s; }
.esbn-post-card:hover { transform: translateY(-3px); box-shadow: 0 16px 36px rgba(11,31,51,.10); border-color: #C6A15B; }
.esbn-post-img img { display: block; width: 100%; height: 180px; object-fit: cover; }
.esbn-post-body { display: flex; flex-direction: column; gap: 10px; padding: 20px 22px 22px; flex: 1; }
.esbn-post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 12px; color: #5B6B78; }
.esbn-tag { padding: 3px 9px; border-radius: 4px; background: #F7F7F3; color: #596445; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; font-size: 11px; }
.esbn-tag-new { background: #C6A15B; color: #0B1F33; }
.esbn-post-card h3 { margin: 0; font-size: 18px; line-height: 1.35; font-weight: 800; }
.esbn-post-card h3 a { color: #0B1F33; text-decoration: none; }
.esbn-post-card h3 a:hover { color: #8a6d33; }
.esbn-post-card p { margin: 0; font-size: 14px; line-height: 1.6; color: #5B6B78; flex: 1; }
.esbn-more { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: #0B1F33; text-decoration: none; }
.esbn-more i { color: #C6A15B; transition: transform .2s; }
.esbn-post-card:hover .esbn-more i { transform: translateX(3px); }
.esbn-empty { display: flex; align-items: center; gap: 18px; padding: 26px 28px; border: 1px dashed #D9D6CC; border-radius: 12px; background: rgba(255,255,255,.6); }
.esbn-empty-ic { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: #0B1F33; color: #C6A15B; font-size: 18px; }
.esbn-empty strong { display: block; font-size: 16px; color: #0B1F33; }
.esbn-empty p { margin: 4px 0 0; font-size: 14px; line-height: 1.55; color: #5B6B78; }
@media (max-width: 480px) { .esbn-empty { flex-direction: column; align-items: flex-start; padding: 20px; } }
/* members area fixes */
body .esbn-hello h1.esbn-hello-title { color: #fff !important; }
body .esbn-hello h1.esbn-hello-title span { color: #C6A15B !important; }
.esbn-chips li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #C6A15B; flex: 0 0 auto; }
.esbn-more svg { color: #C6A15B; transition: transform .2s; }
.esbn-post-card:hover .esbn-more svg { transform: translateX(3px); }
.esbn-empty-ic svg { display: block; }
/* header member buttons: never wrap; icon-only on small phones */
.es-hdr-account .elementor-button, .es-hdr-member .elementor-button { white-space: nowrap; }
@media (max-width: 600px) {
  .es-hdr-account .elementor-button-text, .es-hdr-member .elementor-button-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .es-hdr-account .elementor-button, .es-hdr-member .elementor-button { padding-left: 13px !important; padding-right: 13px !important; }
  .es-hdr-account .elementor-button-icon, .es-hdr-member .elementor-button-icon { margin: 0 !important; }
}
body .esbn-hello h1.esbn-hello-title { font-size: 44px !important; line-height: 1.12 !important; letter-spacing: -0.01em; }
@media (max-width: 1024px) { body .esbn-hello h1.esbn-hello-title { font-size: 38px !important; } }
@media (max-width: 767px) { body .esbn-hello h1.esbn-hello-title { font-size: 30px !important; } }
