/* ==== lha-brand ==== */
:root{
  --lha-navy:#0A1A2F; --lha-navy-2:#122A52; --lha-gold:#C9A769;
  --lha-gold-deep:#A88444; --lha-ivory:#FAF4E6; --lha-charcoal:#36454F;
}
/* Tier 1 — warm ivory page background for content/marketing pages */
body{ background-color:var(--lha-ivory) !important; color:var(--lha-charcoal); }
body, p, li, .elementor-widget-text-editor{ font-family:'Inter',-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; }
/* Brand serif for headings */
h1,h2,h3,h4,h5,h6,.elementor-heading-title,.entry-title,.ast-archive-title{
  font-family:'Cormorant Garamond',Garamond,Georgia,"Times New Roman",serif !important;
}
/* Tier 2 — keep functional surfaces white for legibility */
.learndash-wrapper, .woocommerce form, .woocommerce .cart, .gform_wrapper,
.um, .um-profile, .ld-tabs-content, table.shop_table, .ast-separate-container .ast-article-post,
.entry-content .wp-block-table, .elementor-widget-form .elementor-field-group input{
  background-color:#fff;
}
/* Off-brand bright-blue content links -> deep gold (scoped, won't touch nav) */
.entry-content a:not(.button):not(.wp-block-button__link),
.elementor-widget-text-editor a, .um a, .woocommerce-message a{ color:var(--lha-gold-deep); }
.entry-content a:hover, .elementor-widget-text-editor a:hover{ color:var(--lha-gold); }
/* Header + left sidebar (Elementor header template) -> ivory */
.elementor-location-header,
.elementor-location-header > .elementor,
.elementor-location-header .elementor-section,
.elementor-location-header .e-con,
.elementor-location-header .e-con-inner,
.elementor-location-header .elementor-container{ background-color:var(--lha-ivory) !important; }
/* Swap the header logo (white-bg JPG) for the transparent PNG */
header img.wp-image-8743{
  content:url('/wp-content/uploads/lha-brand/lha-logo-colour.png?v=3') !important;
  width:300px !important; height:auto !important; max-width:100% !important;
}
/* The lighthouse icon (9580) duplicates the main logo on tablet/desktop, where the
   rail logo (8743) already shows — so hide it there. But on mobile the rail is hidden
   and 9580 is the ONLY header image; hiding it unconditionally left the mobile header
   an EMPTY ivory bar (2026-07-20). So on mobile, show that slot instead, content-
   swapped to the full brand logo. 767/768 boundary matches the tablet-band fix (08). */
@media (min-width:768px){
  .elementor-location-header img.wp-image-9580{ display:none !important; }
}
@media (max-width:767px){
  .elementor-location-header img.wp-image-9580{
    content:url('/wp-content/uploads/lha-brand/lha-logo-colour.png?v=3') !important;
    display:inline-block !important;
    height:38px !important; width:auto !important; max-width:200px !important;
  }
  .elementor-location-header .elementor-element-ba38f5c .elementor-widget-container{
    display:flex !important; align-items:center !important; justify-content:flex-start !important;
  }
  /* 2026-07-20 (Sam): the logo was centred, which looked unbalanced next to the Merits
     chip on the right. Left-align it (logo left · chip right), like the logged-out header.
     291ce38 is a flex COLUMN, so horizontal alignment is the CROSS axis -> align-items /
     align-self, not justify-content (which is the vertical/main axis here). */
  .elementor-location-header .elementor-element-291ce38{ align-items:flex-start !important; padding-left:14px !important; }
  .elementor-location-header .elementor-element-ba38f5c{ align-self:flex-start !important; text-align:left !important; }
}
/* Account / sign-in links that default to bright bootstrap-blue -> gold on dark, deep-gold on light */
.elementor-location-header a{ color:var(--lha-navy); }

/* ---------- Sign-in card (logged-out home): the UM login form (443) ships a
   TAN row background from its form-builder config — heavy and muddy on phones
   (Sam's screenshot 2026-07-08). Functional surfaces stay WHITE (3-tier rule):
   white panel, hairline border, roomier fields. ---------- */
.lha-camp-card .um-row{
  background:#ffffff !important;
  border:1px solid rgba(10,26,47,.10) !important;
  border-radius:12px !important;
  padding:18px 16px !important;
}
.lha-camp-card .um-field-label label{
  color:var(--lha-navy) !important; letter-spacing:.06em; font-weight:600;
}
.lha-camp-card .um-form input[type=text],
.lha-camp-card .um-form input[type=password]{
  border:1px solid rgba(10,26,47,.18) !important; border-radius:8px !important;
  padding:12px 14px !important; background:#ffffff !important;
}
.lha-camp-card .um-form input:focus{
  border-color:var(--lha-gold,#C9A769) !important;
  box-shadow:0 0 0 3px rgba(201,167,105,.20) !important;
}

/* ---------- Responsive (tablet / mobile) ---------- */
@media (max-width:1024px){
  header img.wp-image-8743{ width:200px !important; }
  h1,.elementor-heading-title.elementor-size-xxl{ font-size:2.4rem !important; line-height:1.15 !important; }
}
@media (max-width:768px){
  header img.wp-image-8743{ width:170px !important; }
  body{ font-size:16px; }
  /* make sure two-column areas can breathe when stacked */
  .e-con-inner, .elementor-container{ row-gap:1rem; }
}
@media (max-width:600px){
  header img.wp-image-8743{ width:150px !important; }
  h1, .elementor-heading-title{ font-size:2rem !important; }
  .elementor-button{ width:100%; text-align:center; }   /* full-width tappable CTAs */
}

/* ==== lha-brand-components ==== */
:root{ --lha-navy:#0A1A2F; --lha-navy2:#122A52; --lha-gold:#C9A769; --lha-gold-deep:#A88444;
  --lha-ivory:#FAF4E6; --lha-clay:#B25A3D; --lha-charcoal:#36454F; }

/* Headings the global rule may miss (widget titles, plugin headings) */
.widget-title,.wp-block-heading,.woocommerce h1,.woocommerce h2,.woocommerce h3,
.learndash-wrapper h1,.learndash-wrapper h2,.learndash-wrapper h3,
.um .um-form h1,.um .um-form h2,.um .um-form h3,.bbp-forum-title,.bbp-topic-title,
.bp-better-messages h1,.bp-better-messages h2{
  font-family:'Cormorant Garamond',Garamond,Georgia,serif !important; color:var(--lha-navy); }

/* Plugin/default BUTTONS (not designer Elementor buttons) -> navy fill, gold hover */
.um-button,.gform_button,.gform_wrapper .gform_footer input[type=submit],
.woocommerce .button,.woocommerce button.button,.woocommerce a.button,.woocommerce .single_add_to_cart_button,
.learndash-wrapper .ld-button,.learndash-wrapper .btn-join,.bp-better-messages .bpbm-button,
input[type=submit]:not(.elementor-button):not(.elementor-button-link),button.bbp-submit{
  background-color:var(--lha-navy) !important; color:var(--lha-ivory) !important;
  border:1px solid var(--lha-navy) !important; border-radius:5px !important; }
.um-button:hover,.gform_button:hover,.woocommerce .button:hover,.woocommerce a.button:hover,
.woocommerce .single_add_to_cart_button:hover,.learndash-wrapper .ld-button:hover,
input[type=submit]:not(.elementor-button):not(.elementor-button-link):hover{
  background-color:var(--lha-gold) !important; color:var(--lha-navy) !important; border-color:var(--lha-gold) !important; }

/* FORM FIELDS -> navy border, gold focus, charcoal text */
.um input:not([type=submit]):not([type=radio]):not([type=checkbox]),.um textarea,.um select,
.gform_wrapper input:not([type=submit]):not([type=button]):not([type=radio]):not([type=checkbox]),
.gform_wrapper textarea,.gform_wrapper select,
.woocommerce form .input-text,.woocommerce form select,
.elementor-field-group input:not([type=submit]),.elementor-field-group textarea,.elementor-field-group select{
  border:1px solid rgba(10,26,47,.22) !important; border-radius:5px !important; color:var(--lha-charcoal) !important; }
.um input:focus,.gform_wrapper input:focus,.gform_wrapper textarea:focus,
.woocommerce form .input-text:focus,.elementor-field-group input:focus,.elementor-field-group textarea:focus{
  border-color:var(--lha-gold) !important; box-shadow:0 0 0 2px rgba(201,167,105,.25) !important; outline:none !important; }

/* UM MEMBER DIRECTORIES (educators, specialists): kill the sky-blue accent, tidy cards */
.um-members-pagi .pagi{
  color:var(--lha-navy) !important; background:transparent !important;
  border-radius:8px !important; transition:background .15s ease; }
.um-members-pagi .pagi:hover{ background:rgba(201,167,105,.16) !important; }
.um-members-pagi .pagi.current, .um-members-pagi .pagi.current:hover{
  background:var(--lha-navy) !important; color:var(--lha-ivory) !important; }
.um-member{
  border:1px solid rgba(10,26,47,.08) !important; border-radius:12px !important;
  box-shadow:0 4px 14px rgba(10,26,47,.05) !important; overflow:hidden; }
.um-member:hover{ box-shadow:0 8px 22px rgba(10,26,47,.10) !important; }
.um-member-name, .um-member-name a{
  font-family:'Cormorant Garamond',Garamond,Georgia,serif !important;
  font-weight:600 !important; color:var(--lha-navy) !important; }
.um-member-photo img, .um-member img.avatar{ border-radius:50% !important;
  border:2px solid rgba(201,167,105,.45) !important; }
.um-member-cog a, .um-member-cog i{ color:var(--lha-navy) !important; }
.um-member-cog a:hover, .um-member-cog a:hover i{ color:var(--lha-gold-deep) !important; }

/* UM sky-blue accent: any leftover primary-blue buttons/links inside UM surfaces */
.um a.um-link, .um-notification-live-feed a:not(.um-button){ color:var(--lha-navy); }
/* UM account sidebar: navy icons, gold wash + deep-gold icon on the active tab */
.um-account-side li a i{ color:var(--lha-navy) !important; }
.um-account-side li a{ transition:background .15s ease; }
.um-account-side li a:hover{ background:rgba(201,167,105,.10) !important; }
.um-account-side li a.current{ background:rgba(201,167,105,.16) !important; }
.um-account-side li a.current i{ color:var(--lha-gold-deep) !important; }

/* ULTIMATE MEMBER -> navy/gold */
.um a{ color:var(--lha-gold-deep); }
.um .um-name a,.um .um-profile-nav .um-profile-nav-item.active a{ color:var(--lha-navy) !important; }
.um .um-profile-nav .um-profile-nav-item.active a{ border-bottom:2px solid var(--lha-gold) !important; }
.um .um-item-meta,.um .um-field-label{ color:var(--lha-charcoal) !important; }

/* LEARNDASH (LD30 CSS variables) -> brand */
.learndash-wrapper{ --ld-primary-color:#0A1A2F !important; --ld-secondary-color:#C9A769 !important;
  --color-ld-primary:#0A1A2F !important; --color-ld-secondary:#C9A769 !important; }
.learndash-wrapper .ld-progress-bar .ld-progress-bar-percentage{ background-color:var(--lha-gold) !important; }
.learndash-wrapper a{ color:var(--lha-gold-deep); }
/* LD reds (status/percentage) -> deep gold; red is logo-only */
.learndash-wrapper .ld-progress-percentage, .learndash-wrapper .ld-status-incomplete,
.learndash-wrapper .ld-status-progress, .learndash-wrapper .ld-progress-stats{
  color:var(--lha-gold-deep) !important; }
.learndash-wrapper .ld-status-icon{ border-color:var(--lha-gold) !important; }
.learndash-wrapper .ld-item-list .ld-item-list-item{ border-radius:10px !important; }
.learndash-wrapper .ld-item-list .ld-item-list-item:hover{ background:rgba(201,167,105,.08) !important; }

/* LD COURSE GRID (2026-07-17): Bootstrap-blue "Enrolled" ribbons + "Continue Study"
   buttons (#428bca) and the green "Completed" ribbon — plugin CSS outside
   .learndash-wrapper, so the vars above never reach it. Blue/green are off-brand:
   ribbons -> navy (completed -> deep gold), buttons -> navy with gold hover. */
.ld_course_grid .ribbon, .thumbnail .ribbon, div.ribbon.enrolled{
  background:var(--lha-navy) !important; color:var(--lha-ivory,#FAF4E6) !important; }
div.ribbon.completed{ background:var(--lha-gold-deep) !important; color:#fff !important; }
.ld_course_grid .ribbon::before, .ld_course_grid .ribbon::after,
.thumbnail .ribbon::before, .thumbnail .ribbon::after{
  border-color:var(--lha-navy) transparent transparent transparent !important; }
.ld_course_grid a.btn-primary, .ld-course-list-items a.btn-primary,
.ld_course_grid .btn.btn-primary{
  background:var(--lha-navy) !important; border-color:var(--lha-navy) !important;
  color:var(--lha-ivory,#FAF4E6) !important; }
.ld_course_grid a.btn-primary:hover, .ld-course-list-items a.btn-primary:hover,
.ld_course_grid .btn.btn-primary:hover{
  background:var(--lha-gold) !important; border-color:var(--lha-gold) !important;
  color:var(--lha-navy) !important; }
/* Course Grid's Bootstrap .row ships -15px side margins; inside the sidebar-padded
   .site-content (mu-16 v1.1) that bled 5px past the viewport -> horizontal scrollbar
   on My Assignments / Learn. Zeroing the negative margins keeps the grid inside its
   container (cards keep their own col- gutters). */
.ld-course-list-items.row{ margin-left:0 !important; margin-right:0 !important; }

/* AMELIA sign-in panel: stray bright-blue "Reset Password" link -> deep gold (2026-07-17) */
.am-asi__footer-link{ color:var(--lha-gold-deep) !important; }

/* WOOCOMMERCE */
.woocommerce span.price,.woocommerce .price,.woocommerce-Price-amount{ color:var(--lha-navy) !important; }
.woocommerce-message,.woocommerce-info{ border-top-color:var(--lha-gold) !important; }
.woocommerce a:not(.button){ color:var(--lha-gold-deep); }

/* TABLES -> soft gold header, serif, navy text */
table thead th,.woocommerce table.shop_table thead th,.learndash-wrapper table thead th{
  background:rgba(201,167,105,.12) !important; color:var(--lha-navy) !important;
  font-family:'Cormorant Garamond',serif !important; }

/* GRAVITY FORMS: red "(Required)" -> deep gold; validation -> brand clay (not stock red) */
.gform_wrapper .gfield_required, .gform_wrapper .gfield_required_text,
.gform_wrapper .gfield_required_asterisk{ color:var(--lha-gold-deep) !important; }
.gform_wrapper .gfield_validation_message, .gform_wrapper .validation_message{
  color:var(--lha-clay) !important; background:rgba(178,90,61,.06) !important;
  border:1px solid rgba(178,90,61,.25) !important; border-radius:8px !important; }

/* FORUMS / MESSAGES links */
.bbp-topic-title a,.bbp-forum-title a,.bp-better-messages a{ color:var(--lha-navy) !important; }

/* Kill off-brand RED on buttons (red is logo-only) -> navy fill, gold hover */
.um #um-submit-btn, .um input#um-submit-btn, .um-button#um-submit-btn,
.elementor-location-header a.elementor-button, .elementor-location-header .elementor-button{
  background-color:var(--lha-navy) !important; color:var(--lha-ivory) !important;
  border-color:var(--lha-navy) !important; }
.um #um-submit-btn:hover, .elementor-location-header .elementor-button:hover{
  background-color:var(--lha-gold) !important; color:var(--lha-navy) !important; border-color:var(--lha-gold) !important; }
/* UM login-card links (forgot password etc.) readable on the gold card */
.um .um-form a, .um a.um-link-alt, .um-account a, .um-field-area a{ color:var(--lha-navy) !important; }
/* WhatsApp CTA: readable text on dark fills; light/ghost WhatsApp buttons keep navy */
a[href*="wa.me"], a[href*="whatsapp"], a[href*="api.whatsapp"]{ color:#ffffff !important; }
a[href*="wa.me"] *, a[href*="whatsapp"] *, a[href*="api.whatsapp"] *{ color:#ffffff !important; }
/* WhatsApp post-button was invisible: the generic a[href*=whatsapp]{color:#fff} above
   (specificity 0-1-1, for WhatsApp buttons on DARK fills) beat the old
   .lha-post-btn--whatsapp class (0-1-0), so white text sat on the ivory news panel.
   Give this variant a visible, on-brand ghost style with enough specificity to win. */
.lha-post-btn--whatsapp, a.lha-post-btn.lha-post-btn--whatsapp,
.lha-post-actions a.lha-post-btn--whatsapp{
  background:transparent !important; color:var(--lha-navy) !important;
  border:1px solid var(--lha-navy) !important; }
.lha-post-btn--whatsapp *, a.lha-post-btn.lha-post-btn--whatsapp *,
.lha-post-actions a.lha-post-btn--whatsapp *{ color:var(--lha-navy) !important; }
.lha-post-actions a.lha-post-btn--whatsapp:hover, a.lha-post-btn.lha-post-btn--whatsapp:hover{
  background:rgba(201,167,105,.14) !important; color:var(--lha-navy) !important; }
/* BASE post button: the variants above only set colours — the shape (padding, radius,
   inline-block) was defined in first-gen CSS that no longer loads, so news-post CTAs
   rendered as unpadded highlighted text. Restore a proper button shape site-wide. */
.lha-post-btn, a.lha-post-btn, .lha-post-actions a.lha-post-btn{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  gap:.5rem !important; padding:12px 22px !important; border-radius:10px !important;
  font-family:Inter,system-ui,sans-serif !important; font-weight:700 !important; font-size:15px !important;
  line-height:1.1 !important; text-decoration:none !important; border:1px solid transparent;
  cursor:pointer; transition:background .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease; }
.lha-post-actions{ display:flex !important; flex-wrap:wrap !important; align-items:center !important;
  gap:12px !important; margin:18px 0 6px !important; }
/* AP5 C7 (2026-07-18, Sam note 7): the gold "Register now" read washed-beige next to the
   ghost WhatsApp button — flip primary to the site's NAVY primary (gold on hover) so news
   CTAs match every other primary button. */
.lha-post-btn--primary, a.lha-post-btn.lha-post-btn--primary{
  background:var(--lha-navy) !important; border-color:var(--lha-navy) !important;
  color:#FAF4E6 !important; box-shadow:0 10px 24px -12px rgba(10,26,47,.45) !important; }
.lha-post-btn--primary *{ color:#FAF4E6 !important; }
.lha-post-btn--primary:hover, a.lha-post-btn.lha-post-btn--primary:hover{
  background:#C9A769 !important; border-color:#C9A769 !important; color:var(--lha-navy) !important; }
.lha-post-btn--primary:hover *{ color:var(--lha-navy) !important; }
/* Like control + meta row: quiet, aligned, clearly secondary */
.wpulike{ margin:10px 0 4px !important; }
.wpulike .wp_ulike_general_class{ border-radius:999px !important; }
.lha-post-meta, .elementor-post-info{ color:#8a94a0 !important; font-size:.86rem !important; }
.lha-post-link{ display:block !important; width:100% !important; margin-top:10px !important;
  font-size:.95rem !important; color:#6b7280 !important; }
.lha-post-link a{ color:var(--lha-gold-deep) !important; text-decoration:none !important; }
.lha-post-link a:hover{ text-decoration:underline !important; }
/* Front page: breathing room between the header bar and the hero panel */
body.page-id-970 [data-elementor-type="wp-page"]{ padding-top:24px; }

/* Help block: more air between the WhatsApp button and its helper note */
.lha-help-note{ margin-top:1.2rem !important; }

/* NEWS posts: brand the stock plugin leftovers */
/* like button (wp-ulike): grey box -> quiet navy-outline pill, gold hover */
.wpulike .wp_ulike_btn, .wpulike .wp_ulike_general_class{
  background:transparent !important; border:1px solid rgba(10,26,47,.22) !important;
  border-radius:999px !important; box-shadow:none !important; color:var(--lha-navy) !important; }
.wpulike .wp_ulike_btn:hover{ background:rgba(201,167,105,.16) !important; }
.wpulike .count-box, .wp_ulike_counter{ color:var(--lha-gold-deep) !important; background:transparent !important; }
/* post meta row: charcoal text, deep-gold icons, serif-adjacent calm */
.entry-meta, .entry-meta a, .ast-blog-single-element{ color:#6b7280 !important; }
.entry-meta svg, .entry-meta .ahfb-svg-iconset svg{ fill:var(--lha-gold-deep) !important; }
/* comments are closed on news — drop the dangling "No Comments" */
.entry-meta .comments-link, .ast-comment-list-wrap, .comments-link{ display:none !important; }
/* Elementor Post-Info variant (News page uses this, not the Astra template) */
.elementor-widget-post-info li:has(.elementor-post-info__item--type-comments){ display:none !important; }
.elementor-widget-post-info .elementor-post-info__item,
.elementor-widget-post-info .elementor-icon-list-text{ color:#6b7280 !important; }
.elementor-widget-post-info .elementor-icon-list-icon svg,
.elementor-widget-post-info .elementor-icon-list-icon i{ fill:var(--lha-gold-deep) !important; color:var(--lha-gold-deep) !important; }
/* like counter chip beside the pill */
.wpulike + .count-box, .wp_ulike_counter_up{ border:1px solid rgba(10,26,47,.18) !important;
  border-radius:999px !important; color:var(--lha-gold-deep) !important; background:transparent !important; }

/* Help-block WhatsApp button on NAVY panels: a navy pill vanished into the panel —
   gold pill + navy text gives it presence and stays on-brand */
.lha-help-btn, .lha-help-btn *{
  background:var(--lha-gold) !important; color:var(--lha-navy) !important; }
.lha-help-btn{ box-shadow:0 10px 26px rgba(201,167,105,.28) !important; }
.lha-help-btn:hover, .lha-help-btn:hover *{ background:#d8bd8a !important; color:var(--lha-navy) !important; }
.lha-help-note{ color:rgba(250,244,230,.78) !important; }

/* Custom hero/post buttons (F6, re-cut AP5 C7 2026-07-18): NEWS-POST primaries are now the
   site's NAVY primary (gold hover) so they match every other primary button (Sam: the gold
   read washed-beige). Hero primaries (.lha-tdw-hero) keep navy-on-gold on dark panels. */
.lha-post-btn--primary, a.lha-post-btn.lha-post-btn--primary,
.lha-post-hero .lha-post-actions .lha-post-btn--primary, .lha-post-actions a.lha-post-btn--primary{
  background:var(--lha-navy) !important; color:#FAF4E6 !important; border-color:var(--lha-navy) !important; }
.lha-post-btn--primary *, .lha-post-actions a.lha-post-btn--primary *{ color:#FAF4E6 !important; }
.lha-post-btn--primary:hover, .lha-post-actions a.lha-post-btn--primary:hover{
  background:var(--lha-gold) !important; border-color:var(--lha-gold) !important; color:var(--lha-navy) !important; }
.lha-post-btn--primary:hover *{ color:var(--lha-navy) !important; }
.lha-tdw-hero__btn--primary{
  background:var(--lha-gold) !important; color:var(--lha-navy) !important; border-color:var(--lha-gold) !important; }
.lha-tdw-hero__btn--primary *{ color:var(--lha-navy) !important; }
/* belt-and-braces: house-style hero primaries stay navy-on-gold even if a post style interferes */
.lha-tt-hero .actions .btn-primary, .lha-events-hero2 .actions .btn-primary{ color:var(--lha-navy) !important; }

/* Support-page heroes sit on LIGHT panels: headings need deep gold for presence
   (the global muted-gold heading colour reads washed-out there) */
.lha-staff-hero__title, .lha-wa-hero__title,
.lha-staff-hero__cardTitle, .lha-wa-hero__cardTitle{ color:var(--lha-gold-deep) !important; }
.lha-tdw-hero__btn--secondary, .lha-tdw-hero__btn--secondary *{ color:var(--lha-ivory) !important; }

/* UM sign-in card (gold panel): readable checkbox + strong primary Login button.
   UM's own form design paints "Keep me signed in" washed-grey on the gold panel and
   the Login submit grey with gold text (weaker than Register — backwards). */
.um .um-field-checkbox-option, .um .um-field-checkbox-option span,
.um .um-remember-me label, .um .um-field-area label, .um .um-field-label label{
  color:var(--lha-navy) !important; opacity:1 !important; }
.um .um-field-checkbox-state i, .um .um-field-checkbox .um-icon-android-checkbox-outline-blank,
.um .um-field-checkbox .um-icon-android-checkbox{ color:var(--lha-navy) !important; opacity:1 !important; }
.um input[type=submit].um-button, .um .um-button:not(.um-alt), .um #um-submit-btn{
  background-color:var(--lha-navy) !important; color:var(--lha-ivory) !important;
  border-color:var(--lha-navy) !important; opacity:1 !important; }
.um .um-button.um-alt, .um-members .um-button.um-alt, .um-member .um-button.um-alt{
  background-color:var(--lha-ivory) !important; color:var(--lha-navy) !important;
  border:1px solid var(--lha-navy) !important; }
.um-members .um-button.um-alt:hover, .um-member .um-button.um-alt:hover{
  background-color:rgba(201,167,105,.16) !important; }
.um input[type=submit].um-button:hover, .um #um-submit-btn:hover{
  background-color:var(--lha-gold) !important; color:var(--lha-navy) !important; border-color:var(--lha-gold) !important; }

/* Membership Account (#245): the "Link in Bio" account buttons (Past Orders / Upgrade
   Membership / Log Out) shipped washed beige #bead90 on ivory — poor contrast, off-brand.
   Give them a proper navy button with ivory text and a gold hover. */
.page-id-245 .e-link-in-bio__cta{
  background-color:var(--lha-navy) !important; border-color:var(--lha-navy) !important;
  color:var(--lha-ivory) !important;
  transition:background-color .15s ease,color .15s ease,border-color .15s ease !important; }
.page-id-245 .e-link-in-bio__cta .e-link-in-bio__cta-text,
.page-id-245 .e-link-in-bio__cta *{ color:var(--lha-ivory) !important; }
.page-id-245 .e-link-in-bio__cta:hover{
  background-color:var(--lha-gold) !important; border-color:var(--lha-gold) !important;
  color:var(--lha-navy) !important; }
.page-id-245 .e-link-in-bio__cta:hover .e-link-in-bio__cta-text,
.page-id-245 .e-link-in-bio__cta:hover *{ color:var(--lha-navy) !important; }

/* News-post meta row: keep "Posted • Deadline" on one flowing line (dot was orphaning) */
.lha-post-hero__row{ display:flex !important; flex-wrap:wrap !important; align-items:center !important; gap:.5rem .9rem !important; }
.lha-post-meta{ display:inline-flex !important; flex-wrap:wrap !important; align-items:center !important; gap:.45rem !important; }
.lha-post-meta__dot{ line-height:1 !important; color:var(--lha-gold-deep) !important; }

/* wp-ulike buttons: small, quiet, brand-outlined (were default grey) */
.wpulike .wp_ulike_btn, .wpulike .wp_ulike_general_class, .wpulike-default .wp_ulike_btn{
  background:transparent !important; border:1px solid rgba(10,26,47,.18) !important;
  border-radius:6px !important; color:var(--lha-charcoal) !important; box-shadow:none !important; }
.wpulike .wp_ulike_btn:hover{ border-color:var(--lha-gold) !important; background:rgba(201,167,105,.10) !important; }
.wpulike .count-box{ color:var(--lha-charcoal) !important; }

/* ---- UM PROFILE PAGE (/user/): stock-UM skin -> LHA (2026-07-06, Sam's screenshot).
   Was: #444 tab bar, iOS-blue active tab, red/grey covers, tan field panel. ---- */
/* uniform brand cover: navy field + gold hairline; user-uploaded cover images are
   suppressed for a consistent, safeguarding-friendly surface (minors' portal) */
.um-cover, .um-cover-e{ background:var(--lha-navy) !important; }
.um-cover-e img, .um-cover-overlay{ display:none !important; }
.um-cover{ border-bottom:3px solid var(--lha-gold) !important; border-radius:14px 14px 0 0 !important; }
/* header card: serif navy name, quiet meta */
.um-profile .um-name, .um-profile .um-name a{
  font-family:'Cormorant Garamond',Garamond,Georgia,serif !important;
  font-weight:600 !important; color:var(--lha-navy) !important; }
.um-profile .um-meta, .um-profile .um-meta a{ color:#6b7280 !important; }
.um-profile-edit a, .um-profile-edit-a{ color:var(--lha-navy) !important; }
.um-profile-edit a:hover{ color:var(--lha-gold-deep) !important; }
/* tab bar: navy bar, ivory labels, gold active (was #444 + blue) */
.um-profile-nav{ background:var(--lha-navy) !important; border-radius:0 0 10px 10px !important; }
.um-profile-nav .um-profile-nav-item a{ color:#FAF4E6 !important; opacity:.85; }
.um-profile-nav .um-profile-nav-item a:hover{ background:rgba(201,167,105,.18) !important; opacity:1; }
.um-profile-nav .um-profile-nav-item.active a{
  background:var(--lha-gold) !important; color:var(--lha-navy) !important; opacity:1;
  border-radius:8px !important; }
.um-profile-nav .um-profile-nav-item.active a *,
.um-profile-nav .um-profile-nav-item.active a i{ color:var(--lha-navy) !important; }
/* profile body: white functional surface (kills the tan panel), branded labels */
.um-profile-body, .um-profile-body .um-form, .um .um-form form{ background:transparent !important; }
.um-profile-body .um-field, .um-main-meta, .um-field-area{ background:transparent !important; }
.um-profile-body{ background:#ffffff !important; border:1px solid rgba(201,167,105,.30) !important;
  border-top:0 !important; border-radius:0 0 14px 14px !important; padding:22px 26px !important; }
/* the tan panel: UM form-builder rows carry an inline #b89e76 background (an old
   branding attempt stored in the form config) — neutralise it everywhere */
.um .um-row, .um-profile-body .um-row{ background:transparent !important; }
.um-field-label, .um-field-label label{
  font-family:'Inter',sans-serif !important; font-size:.72rem !important; font-weight:600 !important;
  text-transform:uppercase !important; letter-spacing:.07em !important; color:var(--lha-gold-deep) !important; }
.um-field-value, .um-field-area{ color:var(--lha-charcoal) !important; font-family:'Inter',sans-serif !important; }
.um-field-divider{ border-color:rgba(10,26,47,.08) !important; }
/* UM modals (photo upload / crop): stock sky-blue header + blue buttons -> LHA
   (Sam's 2026-07-06 screenshot) */
.um-modal-header{
  background:var(--lha-navy) !important; color:#FAF4E6 !important;
  font-family:'Cormorant Garamond',Garamond,Georgia,serif !important;
  font-size:1.15rem !important; }
.um-modal .um-modal-btn, .um-modal a.um-modal-btn, .um-modal input[type="submit"],
.um-modal .um-single-image-upload, .um-modal .um-single-file-upload,
.um-modal div.uploader .button, .um-modal .qq-upload-button{
  background:var(--lha-navy) !important; color:#FAF4E6 !important;
  border:0 !important; border-radius:10px !important; box-shadow:none !important; }
.um-modal .um-modal-btn:hover, .um-modal .um-single-image-upload:hover,
.um-modal .qq-upload-button:hover{
  background:var(--lha-gold) !important; color:var(--lha-navy) !important; }
.um-modal .um-modal-btn.alt{
  background:#f3f4f6 !important; color:var(--lha-navy) !important; }
.um-modal .um-modal-btn.disabled{ opacity:.55 !important; }
.um-modal .um-single-image-preview{ border:1px dashed rgba(201,167,105,.5) !important; }

/* ---------- Registration route cards: make the tap target read as tappable ---------- */
a.lha-route-card{ display:block; position:relative; cursor:pointer;
  border:1.5px solid rgba(201,167,105,.65) !important; border-radius:14px !important;
  background:#fff !important; padding-right:52px !important; text-decoration:none !important;
  transition:box-shadow .15s ease, transform .15s ease, border-color .15s ease; }
a.lha-route-card::after{ content:"\203A"; position:absolute; right:20px; top:50%;
  transform:translateY(-50%); font:700 30px/1 Georgia,'Times New Roman',serif;
  color:var(--lha-gold-deep,#8c6f3f); }
a.lha-route-card:hover, a.lha-route-card:active{ border-color:var(--lha-gold) !important;
  box-shadow:0 8px 22px rgba(10,26,47,.14); transform:translateY(-1px); }

/* ---------- UM secondary buttons: ghost style so primary/secondary read correctly ---------- */
.um .um-button.um-alt{ background:transparent !important; color:var(--lha-navy) !important;
  border:1.5px solid var(--lha-navy) !important; box-shadow:none !important; }
.um .um-button.um-alt:hover{ background:rgba(10,26,47,.06) !important; color:var(--lha-navy) !important; }
/* UM prints an empty notice div that pads the top of the login card */
.um .um-postmessage:empty{ display:none !important; }

/* ---------- Faculty-Zone hero CTA (a.lha-btn-primary custom HTML, page 3539 —
   device-gated so it only renders on phones): off-brand red -> navy/gold.
   Global on purpose: every lha-btn-primary should follow brand (red is logo-only). ---------- */
a.lha-btn-primary{
  background:var(--lha-gold) !important; color:#0A1A2F !important;
  border-color:var(--lha-gold) !important; }
a.lha-btn-primary:hover, a.lha-btn-primary:active{
  background:var(--lha-gold-deep,#A88444) !important; color:#0A1A2F !important;
  border-color:var(--lha-gold-deep,#A88444) !important; }

/* ---------- Amelia panels: stock-blue #265CF2 -> brand navy/gold ---------- */
.amelia-v2-booking .am-button--primary.am-button--filled{
  background:var(--lha-navy) !important; border-color:var(--lha-navy) !important;
  color:#FAF4E6 !important; }
.amelia-v2-booking .am-button--primary.am-button--filled:hover{
  background:var(--lha-gold) !important; border-color:var(--lha-gold) !important;
  color:var(--lha-navy) !important; }
.amelia-v2-booking .am-button--primary:not(.am-button--filled){
  color:var(--lha-navy) !important; border-color:var(--lha-navy) !important; }

/* ---------- wp-ulike: stock red sprite -> deep gold (red is logo-only) ---------- */
.wpulike .wp_ulike_btn.wp_ulike_put_image{
  filter:grayscale(1) sepia(1) saturate(2.6) hue-rotate(-12deg) brightness(.82); }
.wpulike .count-box, .wpulike .wp_ulike_counter{
  background:var(--lha-navy) !important; color:#FAF4E6 !important; }
/* AP8 N6: the navy count badge sat ON TOP of the thumb (wp-ulike default overlaps
   the counter onto the button). Lay the control out as a clean flex row with a gap
   so the count is a tidy pill beside the thumb — no overlap, ClassDojo-like. */
.wpulike.wpulike-default .wp_ulike_general_class{
  display:inline-flex !important; align-items:center !important; gap:8px !important;
  background:transparent !important; border:0 !important; box-shadow:none !important; padding:0 !important; }
.wpulike.wpulike-default .wp_ulike_btn{ position:static !important; margin:0 !important; }
.wpulike.wpulike-default .count-box{
  position:static !important; margin:0 !important; top:auto !important; left:auto !important; right:auto !important;
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  min-width:26px !important; height:26px !important; padding:0 9px !important;
  border-radius:999px !important; background:var(--lha-navy) !important; color:#FAF4E6 !important;
  font-weight:700 !important; font-size:.8rem !important; line-height:1 !important; box-shadow:none !important; }

/* ---------- UM profile: reclaim wasted space ---------- */
.um-profile .um-cover, .um-profile .um-cover .um-cover-e{ max-height:220px; overflow:hidden; }
.um-profile .um-header .um-meta{ display:none !important; } /* duplicate name row */
.um-profile .um-profile-photo img{ max-width:160px; height:auto; }

/* ---------- AP4 B9 (2026-07-18, Sam img7): unify the sign-in card surfaces ----------
   The homepage hero card (.lha-camp-card, ivory) embeds UM's login form, whose own
   container paints an abrupt WHITE box around just the fields (box-in-box) with a white
   strip behind the buttons. Make UM's surfaces transparent inside the card — one clean
   ivory card; the INPUT FIELDS keep their white for legibility. */
.lha-camp-card .um.um-login,
.lha-camp-card .um.um-login .um-form,
.lha-camp-card .um.um-login .um-field-block,
.lha-camp-card .um.um-login form{
  background:transparent !important; box-shadow:none !important; border:0 !important; }
.lha-camp-card .um.um-login .um-row{ background:transparent !important; }

/* ==== lha-polish ==== */
/* Smooth, premium hover transitions on interactive elements (colour only — no layout shift) */
a, button, input[type=submit], .elementor-button, .um-button, .gform_button,
.woocommerce .button, .woocommerce a.button, .learndash-wrapper .ld-button{
  transition: background-color .18s ease, color .18s ease, border-color .18s ease, box-shadow .18s ease;
}

/* Keyboard focus: a clear gold ring for accessibility + brand. :focus-visible only
   fires for keyboard / assistive-tech users, so mouse clicks stay visually clean. */
a:focus-visible, button:focus-visible, .elementor-button:focus-visible, .um-button:focus-visible,
input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible{
  outline: 2px solid #C9A769 !important;
  outline-offset: 2px;
  border-radius: 3px;
}

/* Branded text selection (gold wash, navy text) */
::selection{ background: rgba(201,167,105,.30); color: #0A1A2F; }
::-moz-selection{ background: rgba(201,167,105,.30); color: #0A1A2F; }

/* Scroll-to-top (Astra): stock tan square + white chevron -> brand navy tile,
   ivory chevron, gold hover — matches the button language site-wide */
#ast-scroll-top{
  background:#0A1A2F !important; color:#FAF4E6 !important;
  border-radius:10px !important; border:1px solid rgba(201,167,105,.35) !important;
  box-shadow:0 6px 18px rgba(10,26,47,.28) !important;
  transition:background .18s ease, color .18s ease, transform .12s ease !important;
}
#ast-scroll-top:hover{
  background:#C9A769 !important; color:#0A1A2F !important; transform:translateY(-2px);
}
#ast-scroll-top svg, #ast-scroll-top .ast-icon svg{ fill:currentColor !important; }

/* ==== lha-forms-brand ==== */
/* GF 2.5 orbital design-token overrides: every accent -> brand navy/gold */
.gform-theme--framework.gform-theme--foundation,
.gform_wrapper.gravity-theme,
.gform_wrapper{
  --gf-color-primary:#0A1A2F !important;
  --gf-color-primary-rgb:10,26,47 !important;
  --gf-color-primary-contrast:#FAF4E6 !important;
  --gf-color-primary-darker:#06101d !important;
  --gf-color-primary-lighter:#203a61 !important;
  --gf-ctrl-btn-bg-color-primary:#0A1A2F !important;
  --gf-ctrl-btn-bg-color-hover-primary:#C9A769 !important;
  --gf-ctrl-btn-color-hover-primary:#0A1A2F !important;
  --gf-ctrl-checkbox-check-bg-color-checked:#0A1A2F !important;
  --gf-ctrl-radio-check-bg-color-selected:#0A1A2F !important;
  --gf-ctrl-checkbox-check-svg-color:#FAF4E6 !important;
  --gf-local-color-primary:#0A1A2F !important;
}
/* Buttons: primary CTAs, next/previous/submit, and the blue "Select All" */
.gform_wrapper .gform_button,
.gform_wrapper .gform_next_button,
.gform_wrapper .gform_previous_button,
.gform_wrapper .gform_save_link,
.gform_wrapper button.gform-theme-button,
.gform_wrapper input[type=submit],
.gform_wrapper input[type=button],
.gform_wrapper .gfield-choice-button-all,
.gform_wrapper .gchoice_select_all,
.gform_wrapper button[class*=select-all]{
  background-color:#0A1A2F !important;
  border-color:#0A1A2F !important;
  color:#FAF4E6 !important;
  border-radius:10px !important;
  transition:background-color .15s ease,color .15s ease,border-color .15s ease !important;
}
.gform_wrapper .gform_button:hover,
.gform_wrapper .gform_next_button:hover,
.gform_wrapper .gform_previous_button:hover,
.gform_wrapper button.gform-theme-button:hover,
.gform_wrapper input[type=submit]:hover,
.gform_wrapper input[type=button]:hover,
.gform_wrapper .gfield-choice-button-all:hover,
.gform_wrapper button[class*=select-all]:hover{
  background-color:#C9A769 !important;border-color:#C9A769 !important;color:#0A1A2F !important;
}
/* Ghost/secondary buttons (previous): outline navy */
.gform_wrapper .gform_previous_button{
  background-color:transparent !important;color:#0A1A2F !important;border:1px solid #0A1A2F !important;
}
/* Native checkbox/radio ticks -> navy (covers the blue "Secondary" tick) */
.gform_wrapper input[type=checkbox],
.gform_wrapper input[type=radio]{ accent-color:#0A1A2F !important; }
/* Required asterisk / text -> deep gold (red is logo-only) */
.gform_wrapper .gfield_required,
.gform_wrapper .gfield_required_asterisk,
.gform_wrapper .gfield_required_text{ color:#A88444 !important; }
/* Progress bar -> navy fill */
.gform_wrapper .gf_progressbar_percentage{ background:#0A1A2F !important; }
.gform_wrapper .gf_progressbar_percentage span{ color:#FAF4E6 !important; }
.gform_wrapper .gf_progressbar_title{ color:#0A1A2F !important; }
/* Section titles + labels -> navy, calmer weight */
.gform_wrapper .gsection .gsection_title,
.gform_wrapper h2.gsection_title,
.gform_wrapper .gform_title{ color:#0A1A2F !important; font-family:'Cormorant Garamond',Garamond,Georgia,serif !important; }
/* Focus ring -> gold, not blue */
.gform_wrapper input:focus,.gform_wrapper select:focus,.gform_wrapper textarea:focus{
  border-color:#C9A769 !important;box-shadow:0 0 0 3px rgba(201,167,105,.22) !important;outline:none !important;
}

/* ==== lha-account-pages ==== */
/* ---- WooCommerce My Account ---- */
.woocommerce-account .woocommerce-MyAccount-navigation ul{ list-style:none; margin:0; padding:0; border-radius:12px; overflow:hidden; border:1px solid rgba(201,167,105,.30); }
.woocommerce-account .woocommerce-MyAccount-navigation-link{ border-bottom:1px solid rgba(10,26,47,.06); }
.woocommerce-account .woocommerce-MyAccount-navigation-link a{
  display:block; padding:12px 18px; color:#203a61 !important; text-decoration:none !important;
  font-family:'Inter',system-ui,sans-serif; font-weight:600; transition:.14s; }
.woocommerce-account .woocommerce-MyAccount-navigation-link a:hover{ background:rgba(201,167,105,.12); color:#0A1A2F !important; }
.woocommerce-account .woocommerce-MyAccount-navigation-link.is-active a{ background:#0A1A2F; color:#FAF4E6 !important; }
.woocommerce-account .woocommerce-MyAccount-content{ background:#fff; border:1px solid rgba(201,167,105,.30); border-radius:12px; padding:26px 28px; }
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3{ font-family:'Cormorant Garamond',Garamond,Georgia,serif; color:#0A1A2F; }
.woocommerce .woocommerce-Button.button,
.woocommerce-account button.button,
.woocommerce-account input[type=submit].button,
.woocommerce a.button{
  background:#0A1A2F !important; border-color:#0A1A2F !important; color:#FAF4E6 !important;
  border-radius:10px !important; font-weight:600 !important;
  transition:background-color .15s ease,color .15s ease,border-color .15s ease !important; }
.woocommerce .woocommerce-Button.button:hover,
.woocommerce-account button.button:hover,
.woocommerce a.button:hover{ background:#C9A769 !important; border-color:#C9A769 !important; color:#0A1A2F !important; }
.woocommerce-account input:focus,.woocommerce-account select:focus,.woocommerce-account textarea:focus{
  border-color:#C9A769 !important; box-shadow:0 0 0 3px rgba(201,167,105,.22) !important; outline:none !important; }
.woocommerce form .form-row label{ color:#0A1A2F; font-weight:600; }
/* The WooCommerce show/hide-password eye toggle was caught by a brand button rule and rendered
   as a solid navy block below each password field (screenshot-caught 2026-07-17). Restore it to
   a quiet inline eye toggle sitting inside the field. */
.woocommerce-account .show-password-input,
.woocommerce-account button.show-password-input{
  background:transparent !important; border:0 !important; box-shadow:none !important;
  border-radius:0 !important; color:#0A1A2F !important; width:auto !important;
  min-width:0 !important; padding:0 !important; position:absolute !important; right:.7em; top:.7em; }

/* ---- Membership Account page (245): plain tan pills -> branded navy buttons ---- */
.page-id-245 .e-link-in-bio__cta,
.page-id-245 .e-link-in-bio__cta-link,
.page-id-245 a[class*="cta"]:not(.elementor-button-link),
.page-id-245 .elementor-button{
  background-color:#0A1A2F !important; color:#FAF4E6 !important; border-color:#0A1A2F !important;
  border-radius:10px !important; }
/* CRITICAL: Elementor's Link-in-Bio paints the button colour on the INNER text span, not the
   <a>. Styling only the <a> left a beige (#BEAD90) span covering the navy — the button rendered
   beige while getComputedStyle on the <a> reported navy (a screenshot, not a colour check,
   caught this 2026-07-17). Make the inner span transparent so the navy <a> shows, ivory text. */
.page-id-245 .e-link-in-bio__cta .e-link-in-bio__cta-text,
.page-id-245 .e-link-in-bio__cta-text{
  background-color:transparent !important; color:#FAF4E6 !important; }
.page-id-245 .e-link-in-bio__cta:hover,
.page-id-245 a[class*="cta"]:hover,
.page-id-245 .elementor-button:hover{ background-color:#C9A769 !important; color:#0A1A2F !important; }
.page-id-245 .e-link-in-bio__cta:hover .e-link-in-bio__cta-text{ color:#0A1A2F !important; }

/* ==== lha-polish-b7c6 ==== */
/* ---- B7: soften stark white profile cards (staff directory) ---- */
.page-id-5407 .ekit-team-style-default .profile-card,
.page-id-5407 .elementskit-single-team,
.page-id-5407 .profile-card{
  background:#fff;
  border:1px solid rgba(201,167,105,.28) !important;
  border-radius:14px !important;
  box-shadow:0 6px 18px rgba(10,26,47,.06) !important;
  padding-bottom:20px !important;
  overflow:hidden;
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.page-id-5407 .ekit-team-style-default .profile-card:hover,
.page-id-5407 .profile-card:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 30px rgba(10,26,47,.13) !important;
  border-color:#C9A769 !important;
}
/* trim the tall empty tail beneath the role text */
.page-id-5407 .profile-card .elementskit-team-content,
.page-id-5407 .profile-card .team-content{ padding-bottom:6px !important; }

/* ---- C6: declutter the teacher portal ---- */
.page-id-3678 .lha-shortcode-label{ display:none !important; }
/* pull each panel up under its section heading now the label is gone */
.page-id-3678 .lha-section-eyebrow{ margin-bottom:4px !important; }
.page-id-3678 .elementor-widget-shortcode{ margin-top:8px !important; }
/* The Amelia Appointments/Events panels floated inside a full-width STARK-WHITE box, filling
   only the left ~40% — a large empty white void (Sam flagged 2026-07-17). Drop the white box
   background so the panel (which carries its own white surface) sits on ivory instead of in an
   empty white rectangle; keep the eyebrow/heading, just lose the void. */
.page-id-3678 .lha-section-appointments,
.page-id-3678 .lha-section-events{ background:transparent !important; box-shadow:none !important; border:0 !important; }
.page-id-3678 .lha-section-appointments .amelia-app-booking,
.page-id-3678 .lha-section-events .amelia-app-booking{ margin-left:0 !important; }
/* Profile row: a 28px profile photo was stranded in a wide, near-empty column. Make it a
   proper round avatar so the column reads intentionally. SCOPED to page-body shortcode
   widgets only — NOT the site header's account avatar (which must stay small + consistent
   across every page). */
.page-id-3678 .elementor-widget-shortcode img[src*="profile_photo"]{
  width:96px !important; height:96px !important; border-radius:50% !important;
  object-fit:cover !important; border:3px solid rgba(201,167,105,.45); background:#fff; }

/* ---- AP4 B11 (2026-07-18, Sam img9+img12): the My Profile row was three unbalanced
   shortcode columns (avatar adrift in a wide empty column). One card, proper grid:
   narrow avatar column · Subjects · Bio. ---- */
.page-id-3678 .elementor-element-8d92f79{
  display:grid !important; grid-template-columns:140px 1fr 1fr; gap:26px; align-items:start;
  background:#fff; border:1px solid rgba(201,167,105,.30); border-radius:14px;
  padding:26px 28px; box-shadow:0 6px 18px rgba(10,26,47,.06); }
.page-id-3678 .elementor-element-8d92f79 > .elementor-element{ width:auto !important; max-width:none !important; }
.page-id-3678 .elementor-element-8d92f79 .elementor-widget-container{ margin:0 !important; }
.page-id-3678 .elementor-element-8d92f79 h3,
.page-id-3678 .elementor-element-8d92f79 label{
  font-family:'Cormorant Garamond',Garamond,Georgia,serif; color:#0A1A2F; font-size:1.25rem; font-weight:600; }
.page-id-3678 .elementor-element-8d92f79 textarea{
  width:100% !important; border:1.5px solid rgba(10,26,47,.18) !important; border-radius:10px !important; }
@media(max-width:900px){ .page-id-3678 .elementor-element-8d92f79{ grid-template-columns:1fr; } }

/* ---- AP4 B12 (Sam img10): Professional-Teaching-Tools cards — best-practice link rows:
   equal-height cards, links as full-width hover rows with their captions beneath. ---- */
.page-id-3678 .lha-grid{ display:grid !important; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:20px; align-items:stretch; }
.page-id-3678 .lha-card{ display:flex; flex-direction:column; height:100%; border:1px solid rgba(201,167,105,.30);
  border-radius:14px; box-shadow:0 6px 18px rgba(10,26,47,.06); }
.page-id-3678 .lha-link-list{ margin-top:4px; }
.page-id-3678 .lha-link-list a{ display:block; padding:10px 12px 2px; margin:0 -12px; border-radius:10px;
  font-weight:600; color:#A88444 !important; text-decoration:none !important; transition:.14s; }
.page-id-3678 .lha-link-list a:hover{ background:rgba(201,167,105,.10); color:#0A1A2F !important; }
.page-id-3678 .lha-link-caption{ margin:0 0 6px; padding:0 0 8px; color:#52606d; font-size:.9rem;
  border-bottom:1px solid rgba(10,26,47,.05); }
.page-id-3678 .lha-link-list .lha-link-caption:last-child{ border-bottom:0; }

/* ---- AP4 B14 (Sam img11): staff support panel — the category rows were washed tan boxes
   with empty icon squares. White row cards, gold marker dots, crisper ghost button. ---- */
.page-id-9956 .lha-staff-hero__quickItem{ background:#fff; border:1px solid rgba(201,167,105,.30);
  border-radius:12px; padding:16px 18px; box-shadow:0 4px 12px rgba(10,26,47,.05);
  display:flex; gap:14px; align-items:flex-start; }
.page-id-9956 .lha-staff-hero__quickIcon{ flex:none; width:10px; height:10px; margin-top:7px;
  border-radius:50%; background:#C9A769; box-shadow:0 0 0 4px rgba(201,167,105,.18); overflow:hidden; color:transparent; }
.page-id-9956 .lha-staff-hero__quickTitle{ color:#0A1A2F; font-weight:700; }
.page-id-9956 .lha-staff-hero__quickText{ color:#52606d; }
.page-id-9956 .lha-staff-hero__btn--ghost{ background:#fff !important; border:1.5px solid rgba(10,26,47,.25) !important; color:#0A1A2F !important; }
.page-id-9956 .lha-staff-hero__btn--ghost:hover{ border-color:#C9A769 !important; background:rgba(201,167,105,.10) !important; }
.page-id-9956 .lha-staff-hero__meta{ border-top:1px solid rgba(10,26,47,.08); padding-top:12px; }
.page-id-9956 .lha-staff-hero__dot{ background:#C9A769; }

/* ---- AP5 C10 (Sam note 12): the pupil support hero sat in a tan gradient panel — drop the
   panel background so it rests on the page ivory (the right-hand card keeps its own white). ---- */
.page-id-9956 .lha-wa-hero, .page-id-9956 .lha-wa-hero__wrap{
  background:transparent !important; background-image:none !important; box-shadow:none !important; }

/* ---- AP5 C2 (Sam note 2): air below the collapsed "Detailed progress" section on the
   pupil dashboard. ---- */
.lha-tdw-detail{ margin-bottom:32px !important; }

/* ---- AP6 D5 (Sam notes 5+9): the big WHITE wrapper slabs on the booking pages sat
   white-on-ivory — wrappers go transparent, their INNER cards keep white. ---- */
#lha-booking-hub, #lha-uc, #lha-wsc-book{
  background:transparent !important; box-shadow:none !important; }

/* ---- AP6 D1 (Sam note 1): the Amelia STEP-booking sidebar was muted-gold (#B89E76)
   with a grey Continue — bring it into the navy family. Amelia paints via its own
   vars/inline, so assert with !important; sidebar text goes light. ---- */
.am-fs-sb{ background:#0A1A2F !important; }
.am-fs-sb, .am-fs-sb *{ color:#FAF4E6 !important; }
.am-fs-sb .am-fs-sb-item, .am-fs-sb [class*="menu-item"]{ background:transparent !important; }
.am-fs-sb svg, .am-fs-sb svg *{ fill:#FAF4E6 !important; stroke:#FAF4E6 !important; }
/* step form primary/continue buttons: navy -> gold hover */
.am-fs-footer button.am-button--filled, .am-fs-footer .el-button--primary,
.amelia-v2-booking .el-button--primary{
  background:#0A1A2F !important; border-color:#0A1A2F !important; color:#FAF4E6 !important; }
.am-fs-footer button.am-button--filled:hover, .amelia-v2-booking .el-button--primary:hover{
  background:#C9A769 !important; border-color:#C9A769 !important; color:#0A1A2F !important; }

/* ==== AP7 batch B (2026-07-19, Sam's part-7 notes) ==== */
/* N5: /membership-account/ — the legacy "Your Account" logo stack (link-in-bio 51dde28
   + its spacer) duplicated Upgrade/Log Out and pushed the My Account card down the
   page. Hide it; My Account rises to the top. Past Orders moved into Member Links. */
.page-id-245 .elementor-element-f7fcfb1,
.page-id-245 .elementor-element-51dde28{ display:none !important; }

/* N6: the staff-support hero painted its own beige gradient — sit it on ivory like
   every other section (inner white cards unchanged). */
.lha-staff-hero{ background:#FAF4E6 !important; }

/* N9: University & Careers — the big white hero panel goes transparent so the page
   canvas (ivory) shows; the three step mini-cards inside keep their white. */
#lha-uc .hero{ background:transparent !important; box-shadow:none !important; border:0 !important; }

/* ==== Audit fix (2026-07-19): /about-us/ (page 72) — first-gen brand RED (#d51448)
   swapped to muted gold #b89e76 in the Elementor data. The "Join Now for Free" CTA
   then read gold-bg + white-text (fails contrast), so make it a navy CTA (matches the
   Login / Book-online buttons). Also soften the now-gold card frames. */
.page-id-72 .elementor-button{ background:#0A1A2F !important; color:#FAF4E6 !important; border-color:#0A1A2F !important; }
.page-id-72 .elementor-button:hover{ background:#122A52 !important; }
/* /contact-us/ (76): the red SEND submit + social icon circles were swapped to gold;
   a gold button/circle with a white glyph fails contrast, so make them navy. */
.page-id-76 .elementor-button, .page-id-76 button[type=submit]{ background:#0A1A2F !important; color:#FAF4E6 !important; border-color:#0A1A2F !important; }
.page-id-76 .elementor-social-icon{ background:#0A1A2F !important; }
.page-id-76 .elementor-social-icon:hover{ background:#122A52 !important; }

/* N7: UM member directories (Education Specialist Support on /support/, the tutors
   list on /our-educators/) — drop the stark white slab behind the grid and brand
   the member cards + Private Message buttons. */
.um-directory .um-members-wrapper, .um-directory .um-members,
.um-directory .um-members-list, .um-directory{ background:transparent !important; }
.um-directory .um-member{
  background:#fff !important; border:1px solid rgba(201,167,105,.30) !important;
  border-radius:14px !important; box-shadow:0 6px 18px rgba(10,26,47,.06) !important; }
.um-directory .um-member .um-member-name a{
  font-family:'Cormorant Garamond',Garamond,Georgia,serif !important; color:#0A1A2F !important; }
.um-directory .um-member-connect a.um-message-btn, .um-directory a.um-message-btn{
  background:#0A1A2F !important; border-color:#0A1A2F !important; color:#FAF4E6 !important;
  border-radius:10px !important; font-weight:600 !important; }
.um-directory .um-member-connect a.um-message-btn:hover, .um-directory a.um-message-btn:hover{
  background:#C9A769 !important; border-color:#C9A769 !important; color:#0A1A2F !important; }

/* ==== QC loop (2026-07-20): /digital-learning-tools/ (#3778) — the tool "Login to X"
   / "Access Courses" buttons rendered dark-gold text (#A88444) on a gold fill: the
   labels were near-illegible. Make them navy buttons with ivory text (the site CTA
   pattern), gold on hover. Scoped to the page's bespoke .tools/.tool-card classes
   (they appear nowhere else); the pill padding/radius already on the <a> is kept. */
.tools .tool-card .tool-content a{
  background:#0A1A2F !important; background-image:none !important;
  color:#FAF4E6 !important; border:0 !important; font-weight:700 !important; }
.tools .tool-card .tool-content a:hover{
  background:#C9A769 !important; color:#0A1A2F !important; }

/* ==== QC loop (2026-07-20): /cpd-school-solutions-talent-development/ (#10277) — the
   gold primary CTA "Book or Browse Events" had dark-gold text (#A88444) on its gold
   fill (#C9A24A): low contrast. Navy text reads cleanly on gold and still pops on the
   navy hero (the ghost buttons are gold-on-navy, which is legible, so left as-is). */
.lha-cpd-btn--gold{ color:#0A1A2F !important; font-weight:700 !important; }

/* ==== QC loop (2026-07-20): /university-careers-guidance/ (#10509) — the Astra theme
   .entry-title repeats the hero's branded <h1 class="title"> (a duplicate h1 + a small
   redundant title above the hero). Hide the theme title; display:none also drops it from
   the accessibility tree, leaving the hero as the sole h1. */
.page-id-10509 .entry-title{ display:none !important; }
/* General: any page built with the reusable [lha_hero] block already carries its own
   branded <h1>; hide Astra's duplicate theme .entry-title there (covers tutor-with-us
   #10554 + any future flagship-pattern page). */
body:has(.lha-blk-hero) .entry-title{ display:none !important; }

/* ==== Writing AI Coach (#3856, Sam 2026-07-20): sit its Gravity Form on a branded white
   card + force a navy submit (the stored block primary colour was an off-brand blue). */
.page-id-3856 .gform_wrapper{ background:#fff; border:1px solid rgba(201,167,105,.30); border-top:3px solid #C9A769;
	border-radius:16px; padding:24px 26px; box-shadow:0 8px 22px rgba(10,26,47,.07); max-width:720px; margin:8px auto 0; }
.page-id-3856 .gform_wrapper .gform_button, .page-id-3856 .gform_wrapper input[type=submit]{
	background:#0A1A2F !important; border-color:#0A1A2F !important; color:#FAF4E6 !important; border-radius:999px !important; }
.page-id-3856 .gform_wrapper .gform_button:hover, .page-id-3856 .gform_wrapper input[type=submit]:hover{
	background:#C9A769 !important; color:#0A1A2F !important; }

/* ==== QC loop (2026-07-20): the careers/jobs plugin (current-jobs #7469 + its job-detail
   pages) renders Bootstrap .btn-primary buttons in blue (#0D6EFD) — off-brand. The site
   uses no Bootstrap elsewhere, so retint .btn.btn-primary to navy + ivory (gold on hover). */
.btn.btn-primary{ background:#0A1A2F !important; border-color:#0A1A2F !important; color:#FAF4E6 !important; }
.btn.btn-primary:hover{ background:#C9A769 !important; border-color:#C9A769 !important; color:#0A1A2F !important; }
/* ...but /calendar-booking/ (My Timetable, #3671) reuses .btn-primary for its "My bookings"
   CTA inside a NAVY hero, where a navy fill is invisible. On the navy hero the primary CTA
   should be GOLD (pops, navy text). Page-scoped so it beats the global navy rule. */
.page-id-3671 .btn.btn-primary{ background:#C9A769 !important; border-color:#C9A769 !important; color:#0A1A2F !important; }
.page-id-3671 .btn.btn-primary:hover{ background:#FAF4E6 !important; border-color:#FAF4E6 !important; color:#0A1A2F !important; }

/* ==== QC loop (2026-07-20): book-a-tutor (#5666) booking funnel — the duration cards
   (.dur-card "One hour"/"Two hours", shown after a tutoring type is chosen) sit on a WHITE
   card but their label text inherited ivory (#FAF4E6) = illegible. Force navy text on the
   card label area (.dur-left); the .dur-chip keeps its own navy/white styling untouched. */
.page-id-5666 .dur-card, .page-id-5666 .dur-card .dur-left, .page-id-5666 .dur-card .dur-left *{ color:#102847 !important; }

/* ==== AP8 N7 (Sam 2026-07-20): the student dashboard (#3878) content had no right
   gutter next to the left sidebar, so cards touched the screen edge. Add a right gutter
   on desktop (the sidebar layout is desktop-only). */
@media(min-width:1025px){ .page-id-3878 .ast-container{ padding-right:44px !important; box-sizing:border-box; } }

/* ==== lha-nav ==== */
/* (1) Off-brand RED underline pointer -> brand gold (red is logo-only)
   (Elementor pointers paint ::after AND ::before depending on style — cover both) */
.elementor-nav-menu a::after,
.elementor-nav-menu .elementor-item::after,
.elementor-nav-menu .elementor-item:hover::after,
.elementor-nav-menu .elementor-item.elementor-item-active::after,
.elementor-nav-menu .elementor-item.highlighted::after,
.elementor-nav-menu a::before,
.elementor-nav-menu .elementor-item::before,
.elementor-nav-menu .elementor-item:hover::before,
.elementor-nav-menu .elementor-item.elementor-item-active::before,
.elementor-nav-menu .elementor-item.highlighted::before{
  background-color:#C9A769 !important;
  border-color:#C9A769 !important;
}

/* (2) Vertical fly-out sub-menus: readable width, card look, always on top, never clipped */
.elementor-nav-menu.sm-vertical .sub-menu,
.elementor-nav-menu.sm-vertical ul.sub-menu,
.elementor-nav-menu--dropdown .sub-menu{
  min-width:250px !important;
  background:#ffffff !important;
  border:1px solid rgba(10,26,47,.10) !important;
  border-radius:10px !important;
  box-shadow:0 10px 28px rgba(10,26,47,.18) !important;
  padding:6px !important;
  z-index:2147483000 !important;
  max-height:72vh !important;
  overflow-y:auto !important;
}
.elementor-nav-menu.sm-vertical .sub-menu .elementor-sub-item{
  white-space:normal !important;
  line-height:1.3 !important;
  padding:9px 12px !important;
  border-radius:6px !important;
}
.elementor-nav-menu.sm-vertical .sub-menu .elementor-sub-item:hover,
.elementor-nav-menu.sm-vertical .sub-menu .elementor-item-active{
  background:rgba(201,167,105,.14) !important;
  color:#0A1A2F !important;
}

/* (3) HORIZONTAL (logged-out header) dropdowns: same branded card treatment */
.elementor-nav-menu:not(.sm-vertical) .sub-menu{
  min-width:270px !important;
  background:#ffffff !important;
  border:1px solid rgba(201,167,105,.30) !important;
  border-top:2px solid #C9A769 !important;
  border-radius:0 0 12px 12px !important;
  box-shadow:0 14px 32px rgba(10,26,47,.16) !important;
  padding:8px !important;
  z-index:2147483000 !important;
}
.elementor-nav-menu:not(.sm-vertical) .sub-menu .elementor-sub-item{
  font-family:'Cormorant Garamond',Garamond,Georgia,serif !important;
  font-size:1.08rem !important;
  color:#0A1A2F !important;
  white-space:normal !important;
  line-height:1.3 !important;
  padding:11px 16px !important;
  border-radius:8px !important;
}
.elementor-nav-menu:not(.sm-vertical) .sub-menu .elementor-sub-item:hover{
  background:rgba(201,167,105,.14) !important;
  color:#0A1A2F !important;
}

/* (4) Current-page marker (desktop sidebar): a small gold hairline to the left of
   the active item + deep-gold label — editorial wayfinding, no icons.
   NB Elementor caches the header nav markup, so WP's current-menu-item classes never
   render — a tiny footer script (below) adds .lha-current client-side instead. */
@media (min-width:1025px){
  .elementor-nav-menu.sm-vertical .menu-item > a{ position:relative; }
  .elementor-nav-menu.sm-vertical .current-menu-item > a,
  .elementor-nav-menu.sm-vertical a.elementor-item-active,
  .elementor-nav-menu.sm-vertical a.lha-current{
    color:#A88444 !important;
  }
  .elementor-nav-menu.sm-vertical .current-menu-item > a::before,
  .elementor-nav-menu.sm-vertical a.elementor-item-active::before,
  .elementor-nav-menu.sm-vertical a.lha-current::before{
    content:"" !important; position:absolute !important; left:2px !important;
    top:50% !important; transform:translateY(-50%) !important;
    width:3px !important; height:1.1em !important;
    background:#C9A769 !important; border-radius:2px !important;
    opacity:1 !important;
  }
}

/* (5b) FIRST-GEN CAMPUS UI KILL, ungated (2026-07-08 deep audit): header
   template 84 still renders the abandoned first-generation mobile UI (white
   .lha-bottom-nav bar, right rail) for EVERY visitor; its styling sits in the
   Customizer CSS. mu-02's copy of this rule only prints for logged-in users —
   this ungated copy covers anonymous phones too. Physical removal from template
   84 happens at the design pass. */
.lha-bottom-nav, .lha-bottom-menu, .lha-right-rail, .lha-rail-card,
.lha-msg-wrap, .lha-campus-sidebar{ display:none !important; }
/* ⚠️ .lha-bottom-bell / .lha-desktop-bell were in this list but they are the
   REAL live header bell (icon-box 932fb6e in the Account cluster) — killing
   them everywhere hid the notifications icon (Sam, 2026-07-08). Suppress only
   on phones (the Account cluster is already elementor-hidden-mobile there). */
@media (max-width:768px){
  .lha-bottom-bell, .lha-desktop-bell{ display:none !important; }
}

/* (5) Unread-news dot on the "News" item: a quiet gold dot, not bold text (bold
   shifts the type rhythm and reads as an error). Same language as the current-page
   marker. Works in the sidebar and the mobile drawer. */
.lha-news-dot{
  display:inline-block !important; width:7px !important; height:7px !important;
  border-radius:50% !important; background:#C9A769 !important;
  margin-left:7px !important; vertical-align:middle !important;
  box-shadow:0 0 0 2.5px rgba(201,167,105,.22) !important;
}

/* ==== lha-tournamatch ==== */
.trn-container{ font-family:'Inter',system-ui,-apple-system,"Segoe UI",sans-serif; color:#36454F; }
.trn-container h1,.trn-container h2,.trn-container h3,.trn-competition-name{
  font-family:'Cormorant Garamond',Garamond,Georgia,serif !important; }
/* Competition header (previously the G&T banner image) -> clean navy panel */
.trn-competition-header{
  background:linear-gradient(135deg,#0A1A2F 0%,#203a61 100%) !important;
  color:#FAF4E6 !important; border-radius:14px !important; padding:26px 28px !important;
  box-shadow:0 12px 30px rgba(10,26,47,.16) !important; }
.trn-competition-header *,.trn-competition-name{ color:#FAF4E6 !important; text-shadow:none !important; }
.trn-competition-list-item{ color:rgba(250,244,230,.9) !important; }
/* Tabs: Standings / Rules / Matches / Join (.trn-nav-link) — active = navy pill */
.trn-nav-link.active,.trn-nav-link.trn-active,.trn-nav-link.current,.trn-nav-link.selected,
.trn-nav-link[aria-selected="true"],.trn-nav .active .trn-nav-link,li.active > .trn-nav-link{
  background:#0A1A2F !important; color:#FAF4E6 !important; border-color:#0A1A2F !important;
  border-radius:8px !important; }
.trn-nav-link{ color:#203a61 !important; }
.trn-nav-link:hover{ color:#A88444 !important; }
/* Buttons */
.trn-container .btn-primary,.trn-container button.trn-button,.trn-container .trn-button,
.trn-container input[type=submit],.trn-container a.button{
  background:#0A1A2F !important; border-color:#0A1A2F !important; color:#FAF4E6 !important; border-radius:8px !important; }
.trn-container .btn-primary:hover,.trn-container .trn-button:hover,.trn-container a.button:hover{
  background:#C9A769 !important; border-color:#C9A769 !important; color:#0A1A2F !important; }
/* DataTables + pagination active state (may render outside .trn-container) */
.dataTables_paginate .paginate_button.current,.dataTables_paginate .paginate_button.current:hover,
.paginate_button.current,.page-item.active .page-link,.pagination .active a{
  background:#0A1A2F !important; background-image:none !important; border-color:#0A1A2F !important;
  color:#FAF4E6 !important; border-radius:6px !important; }
.dataTables_paginate .paginate_button,.paginate_button,.page-link,.trn-container table a{ color:#203a61 !important; }
.trn-container table thead th{ background:rgba(201,167,105,.12) !important; color:#0A1A2F !important; }
/* Links + focus */
.trn-container a{ color:#A88444; }
.trn-container input:focus,.trn-container select:focus{ border-color:#C9A769 !important; box-shadow:0 0 0 3px rgba(201,167,105,.22) !important; outline:none !important; }
/* AP4 B2 (2026-07-18, Sam img1): league-card logos were cropped (square logo squeezed into
   the thumb box, edges cut). Contain, don't crop. */
.trn-container img, .trn-ladder-list img, .trn-widget img{
  object-fit:contain !important; object-position:center !important; background:#fff; }

/* ==== lha-tablet-band ==== */
/* ---- 768-1024px: sidebar column -> compact top bar ---- */
@media (min-width:768px) and (max-width:1024px){
  .elementor-element-826c329,
  .elementor-element-826c329 > .elementor-container,
  .elementor-element-826c329 > .e-con-inner{
    position:static !important;
    width:100% !important; max-width:100% !important;
    height:auto !important; min-height:0 !important;
  }
  .elementor-element-826c329{
    display:flex !important; align-items:center !important;
    padding:6px 14px !important;
    border-right:0 !important;
    border-bottom:1px solid rgba(10,26,47,.10) !important;
    box-shadow:0 2px 10px rgba(10,26,47,.06) !important;
  }
  /* Lay the column's contents out in a row: logo left, toggle right */
  .elementor-element-826c329 .elementor-container,
  .elementor-element-826c329 .elementor-widget-wrap,
  .elementor-element-826c329 .e-con-inner{
    display:flex !important; flex-direction:row !important;
    align-items:center !important; justify-content:space-between !important;
    flex-wrap:nowrap !important; gap:10px !important;
  }
  /* Elementor columns inside the bar: shrink to content so the row stays one line */
  .elementor-element-826c329 .elementor-column{ width:auto !important; flex:0 0 auto !important; }
  .elementor-element-826c329 .elementor-widget{ margin-bottom:0 !important; }
  .elementor-element-826c329 .elementor-widget-spacer,
  .elementor-element-826c329 .elementor-widget-divider{ display:none !important; }
  /* The inner e-con (b984fff) stacks logo/menu/extras vertically+centred -> one row */
  .elementor-element-826c329 .e-con,
  .elementor-element-826c329 .elementor-element-b984fff{
    display:flex !important; flex-direction:row !important; align-items:center !important;
    justify-content:space-between !important; flex-wrap:nowrap !important;
    width:100% !important; max-width:100% !important; min-height:0 !important;
    padding:0 !important; gap:10px !important;
  }
  .elementor-element-826c329 .elementor-widget{ width:auto !important; }
  /* Logo: sensible bar size */
  .elementor-element-826c329 img{ max-height:52px !important; width:auto !important; }
  /* The collapsed vertical menu list stays hidden (Elementor shows the dropdown instead) */
  .elementor-element-826c329 .elementor-nav-menu--main{ display:none !important; }
  /* Menu toggle: proper tap target, brand colours */
  .elementor-element-826c329 .elementor-menu-toggle{
    display:flex !important; align-items:center; justify-content:center;
    width:44px; height:44px; border-radius:8px;
    background:rgba(201,167,105,.14) !important; color:#0A1A2F !important;
  }
  /* Dropdown menu (opened by the toggle): branded card, full-width under the bar */
  .elementor-element-826c329 nav.elementor-nav-menu--dropdown{
    background:#FAF4E6 !important; border:1px solid rgba(201,167,105,.28) !important;
    border-radius:0 0 12px 12px !important; box-shadow:0 14px 30px rgba(10,26,47,.18) !important;
  }
  .elementor-element-826c329 nav.elementor-nav-menu--dropdown a{
    font-family:'Cormorant Garamond',Garamond,Georgia,serif !important;
    font-size:1.1rem !important; color:#0A1A2F !important; padding:13px 22px !important;
  }
  /* Content: full width in the band (kill any leftover desktop offset) */
  body [data-elementor-type="wp-page"],
  body [data-elementor-type="wp-post"],
  body .site-content{
    margin-left:0 !important; padding-left:0 !important;
  }
}

/* ---- Desktop >=1025px: hide the stray hamburger that leaked into the sidebar ---- */
@media (min-width:1025px){
  .elementor-element-826c329 .elementor-menu-toggle{ display:none !important; }
}

/* ==== lha-notify-messages ==== */
@media (min-width:769px){
  /* ---- UM notifications: left sheet -> branded dropdown card under the bell ---- */
  .um-notification-live-feed{
    left:auto !important; right:22px !important;
    top:88px !important; bottom:auto !important;
    width:400px !important; max-width:calc(100vw - 44px) !important;
    height:auto !important; max-height:70vh !important;
    border-radius:14px !important;
    border:1px solid rgba(201,167,105,.30) !important;
    border-top:3px solid #C9A769 !important;
    box-shadow:0 18px 44px rgba(10,26,47,.24) !important;
    overflow:hidden !important;
    z-index:2147482000 !important;
  }
  .um-notification-live-feed-inner{
    max-height:calc(70vh - 8px) !important;
    overflow-y:auto !important;
  }
}
/* ---- brand the feed's innards (all viewports) ---- */
.um-notification-live-feed{ font-family:'Inter',system-ui,-apple-system,"Segoe UI",sans-serif; }
.um-notification-live-feed h1, .um-notification-live-feed h2, .um-notification-live-feed h3{
  font-family:'Cormorant Garamond',Garamond,Georgia,serif !important; color:#0A1A2F !important; }
/* filter pills: iOS blue -> navy active / ghost inactive */
.um-notifications-filter{
  background:transparent !important; color:#36454F !important;
  border:1px solid rgba(10,26,47,.22) !important; border-radius:999px !important;
  padding:4px 14px !important; font-weight:600 !important; cursor:pointer;
  transition:background .18s ease, color .18s ease; }
.um-notifications-filter:hover{ background:rgba(201,167,105,.14) !important; color:#0A1A2F !important; }
.um-notifications-filter.active{
  background:#0A1A2F !important; color:#FAF4E6 !important; border-color:#0A1A2F !important; }
/* rows: readable text, gold hover wash, gold unread hint */
.um-notification-live-feed a{ color:#0A1A2F; }
.um-notification-live-feed .um-notification{
  border-bottom:1px solid rgba(10,26,47,.07) !important; transition:background .15s ease; }
.um-notification-live-feed .um-notification:hover{ background:rgba(201,167,105,.10) !important; }
.um-notification-live-feed .um-notification.unread,
.um-notification-live-feed .um-unread-notification{
  background:rgba(201,167,105,.14) !important; box-shadow:inset 3px 0 0 #C9A769 !important; }
/* ONE unread indicator only: UM paints its own blue-grey left border alongside our
   gold edge, muddying every row — remove the plugin's bar */
.um-notification-live-feed .um-notification{ border-left:0 !important; }
/* close × : navy, gold on hover (was faint grey) */
.um-notification-live-feed .um-notification-i-close,
.um-notification-live-feed [class*="close"] i{ color:#0A1A2F !important; opacity:.85; }
.um-notification-live-feed .um-notification-i-close:hover{ color:#A88444 !important; }

/* ---- Notifications: refine the card's innards ---- */
.um-notification-live-feed-inner::-webkit-scrollbar{ width:8px; }
.um-notification-live-feed-inner::-webkit-scrollbar-thumb{ background:rgba(201,167,105,.55); border-radius:8px; }
.um-notification-live-feed-inner::-webkit-scrollbar-track{ background:rgba(10,26,47,.04); }
.um-notification-live-feed .um-notification{ padding:12px 14px !important; }
.um-notification-live-feed .um-notification .time,
.um-notification-live-feed .um-notification [class*="time"]{ color:#A88444 !important; font-size:.78rem !important; }
.um-notification-live-feed img.avatar{ border-radius:50% !important; border:1.5px solid rgba(201,167,105,.5) !important; }
/* notification-type icons (the "eye" etc.) ship in UM light-blue -> deep gold */
.um-notification-live-feed .um-notification i,
.um-notification-live-feed .um-notification [class*="icon"],
.um-notification-live-feed svg{ color:#A88444 !important; fill:#A88444 !important; stroke:#A88444; }

/* ---- /notifications/ page (5392): give the list a proper card ---- */
body.page-id-5392 .elementor-element-e14b5b8{
  background:#ffffff; border:1px solid rgba(201,167,105,.30); border-radius:14px;
  box-shadow:0 12px 32px rgba(10,26,47,.08); padding:18px 20px; }
body.page-id-5392 .um-notification-live-feed{ position:static !important; width:100% !important;
  max-height:none !important; border:0 !important; box-shadow:none !important; }

/* ---- Better Messages (Chats): brand the working surfaces ---- */
.bp-messages-wrap-main{ font-family:'Inter',system-ui,-apple-system,"Segoe UI",sans-serif; }
/* the whole messenger: proper card on the ivory page */
.bp-messages-wrap-main{
  border:1px solid rgba(201,167,105,.30) !important; border-radius:14px !important;
  box-shadow:0 12px 32px rgba(10,26,47,.08) !important; overflow:hidden !important;
  background:#ffffff !important; }
/* desktop: fill the viewport like a real messenger (header ≈66px + admin bar + margins) */
@media (min-width:1025px){
  body:not(.lha-mini) .bp-messages-wrap-main{
    height:calc(100vh - 160px) !important; max-height:calc(100vh - 160px) !important;
    min-height:540px !important; }
  /* BM's inner layout ships a fixed height — make every layer fill the card */
  body:not(.lha-mini) .bp-messages-wrap-main .bp-messages-wrap,
  body:not(.lha-mini) .bp-messages-wrap-main .bp-messages-threads-wrapper,
  body:not(.lha-mini) .bp-messages-wrap-main .bp-messages-column{
    height:100% !important; max-height:100% !important; }
}
/* outgoing messages: don't repeat the sender's own avatar; stack hugs the RIGHT
   edge (it's width-capped, so without margin-left:auto it floats mid-canvas) */
.bm-messages-stack.outgoing .pic, .bm-messages-stack.outgoing img.avatar{ display:none !important; }
.bm-messages-stack.outgoing{ margin-left:auto !important; margin-right:8px !important; }

/* bottom-anchor the conversation (WhatsApp behaviour): short threads sit by the
   composer, not floating at the top of a void. margin-top:auto collapses to 0
   once content exceeds the viewport, so long threads scroll normally. */
.bp-messages-column .bm-messages-list{ display:flex !important; flex-direction:column !important; height:100% !important; }
.bp-messages-column .bm-messages-list > .bm-list{ flex:1 1 auto !important; }
/* BM scrolls via OverlayScrollbars v2: the scroller is the
   [data-overlayscrollbars-viewport] element and the content is .bm-list-content.
   Flex the viewport and give the content an auto top margin: short threads sit
   by the composer; once content outgrows the viewport the margin collapses to 0
   and scrolling behaves normally. */
.bp-messages-column .bm-list > [data-overlayscrollbars-viewport]{
  display:flex !important; flex-direction:column !important; }
.bp-messages-column .bm-list .bm-list-content{ margin-top:auto !important; }

/* composer: a defined field, not a bare strip */
.bp-messages-column [contenteditable="true"], .bm-send-message-area [contenteditable]{
  background:#F8F2E6 !important; border:1px solid rgba(10,26,47,.12) !important;
  border-radius:999px !important; padding:10px 18px !important; }
.bp-messages-column [contenteditable="true"]:focus{
  border-color:#C9A769 !important; box-shadow:0 0 0 2px rgba(201,167,105,.22) !important; outline:none !important; }
/* toolbar icons (new message, starred): navy, gold hover chip */
.bp-messages-wrap-main .new-message, .bp-messages-wrap-main .starred-messages{
  border-radius:8px; transition:background .15s ease; }
.bp-messages-wrap-main .new-message:hover, .bp-messages-wrap-main .starred-messages:hover{
  background:rgba(201,167,105,.16); }
.bp-messages-wrap-main .new-message .bm-svg, .bp-messages-wrap-main .starred-messages .bm-svg{
  stroke:#0A1A2F !important; }
/* thread rows: serif navy names, quiet previews, deep-gold times, round avatars */
.threads-list .thread .name{
  font-family:'Cormorant Garamond',Garamond,Georgia,serif !important;
  font-weight:600 !important; color:#0A1A2F !important; }
.threads-list .thread .bm-last-message-content{ color:#52606d !important; }
.threads-list .thread .time{ color:#A88444 !important; font-size:.76rem !important; }
.threads-list .thread img.avatar{ border-radius:50% !important; }
.threads-list::-webkit-scrollbar{ width:8px; }
.threads-list::-webkit-scrollbar-thumb{ background:rgba(201,167,105,.55); border-radius:8px; }
/* ---- conversation view redesign: "iMessage in a prospectus" ---- */
/* canvas: soft ivory tint so the reading area reads separately from the white list */
.bp-messages-column, .bm-messages-list, .bm-before-message-list{ background:#FBF6EC !important; }
.bp-messages-side-threads{ border-right:1px solid rgba(10,26,47,.08) !important; background:#ffffff !important; }
/* desktop: the messenger owns the full content width (no boxed card floating in
   ivory); the READING LINE stays capped instead. Sam 2026-07-23 (P12-1, image1): at
   68%/860px the bubbles clung to one side of a ~1380px conversation pane and left a
   wide ivory void ("narrow chat column in a wide ivory frame"). Widened to 82% capped
   at 1180px so messages use the space, while ultra-wide monitors keep a readable
   ceiling (short messages still shrink to content; only long messages / link-preview
   cards reach the cap, and those benefit most from the extra width). */
@media (min-width:1025px){
  body:not(.lha-mini) [data-elementor-type="wp-page"] .e-con:has(.bp-messages-wrap-main){
    max-width:calc(100% - 48px) !important; width:calc(100% - 48px) !important; }
  /* Elementor boxes the page twice more (inner wrapper 1140px, page root 1200px)
     and Astra caps the whole page container — lift all three, Messages page only */
  body.page-id-4558 .elementor-4558{ max-width:100% !important; }
  body.page-id-4558 .e-con-inner:has(.bp-messages-wrap-main){ max-width:100% !important; }
  body.page-id-4558 .ast-container{ max-width:calc(100% - 40px) !important; }
  /* Better Messages ships the full-page wrap at max-width:1200px + margin:0 auto, so
     on wide desktops the card floated centred with ~200px ivory gutters each side
     (Sam P12-1: "narrow chat column in a wide ivory frame"). This page renders the
     shortcode through Astra's classic entry-content (NOT an Elementor canvas — the
     .e-con lifts above are inert here), so the card's OWN 1200px cap is the only limit.
     Fill the content width, ceilinged at 1600px so 4K monitors don't stretch the
     messenger absurdly (margin:0 auto still centres it within that ceiling). */
  body.page-id-4558:not(.lha-mini) .bp-messages-wrap-main{
    max-width:1600px !important; width:100% !important; }
}
.bm-messages-stack{ max-width:min(82%, 1180px) !important; }
/* phones: the 68% reading-line cap is a DESKTOP nicety — on a narrow screen it
   wastes half the width (Sam's 2026-07-05 screenshot). WhatsApp proportions. */
@media (max-width:768px){
  /* phones: bubbles were ~65% of the screen with big empty gutters (Sam 2026-07-21:
     "so narrow when there's space"). Give long messages room; short ones still shrink. */
  .bm-messages-stack{ max-width:94% !important; }
  .bm-list-content{ padding-left:10px !important; padding-right:10px !important; }
  /* Sam 2026-07-21 (IMG_2140 "I don't see the bottom bar"): the app bottom bar must
     STAY visible in an open chat — he wants the nav present, not a full takeover.
     Keep it shown; the messenger height below (100dvh − header − bar) reserves its
     space so the composer sits ABOVE the bar rather than behind it. */
  body.lha-chat-open .lha-mobilebar{ display:flex !important; }
  body.lha-chat-open{ padding-bottom:0 !important; }
  /* the BAR owns the safe-area inset (mu-02 gives .lha-mobilebar padding-bottom:env());
     repeating env() inside the card double-counted the home indicator — ~34px of extra
     white under the composer whenever Safari's toolbar was collapsed. Exactly one
     element consumes the inset; the anchored pane below already clears the bar. */
  body.lha-chat-open .bp-messages-wrap-main{ padding-bottom:0 !important; }
  /* phones get the APP, not a page (Sam's 2026-07-06 screenshots: "Teachers"
     content trailing under the chat card): messenger fills the viewport,
     sibling page sections hide — same proven pattern as mini mode.
     ⚠️ :not(.lha-mini) is LOAD-BEARING: the popout iframe is 540px wide, so this
     media query matches INSIDE the popout too — without the exclusion these
     height rules beat mini's own 100vh (higher specificity) and left a dead
     white band under the popout chat (Sam's screenshot, caught same day). */
  body.page-id-4558:not(.lha-mini) [data-elementor-type="wp-page"] > .elementor-element:not(:has(.bp-messages-wrap-main)){ display:none !important; }
  /* Sam 2026-07-21 (IMG_2141, iPhone): with a chat OPEN the composer floated above a
     large dead WHITE gap, the bottom bar below it — iOS Safari only, never headless.
     Root cause: Better Messages' mobileFullScreen pins its wrap to the viewport by
     INSETS (position:fixed; top:0; bottom:0 — no height); our dvh height over-
     constrained that box, so CSS dropped `bottom` and the wrap became a top-anchored,
     dvh-sized guess. iOS re-pins fixed elements every frame through toolbar
     transitions but re-resolves dvh lazily (and never for the keyboard) — the
     disagreement painted as the white band. Fix: ANCHOR, never size. Keep BM's own
     inset mechanism and move only the bottom edge up to clear the bar: the pane's
     `bottom` and the bar's `bottom:0` resolve against the SAME viewport in the SAME
     frame, so no toolbar/keyboard state can open a gap, by construction.
     62px = the bar's real box (mu-02: 60px min-height items + 2px gold border);
     env() = the bar's own safe-area padding, mirrored so pane bottom == bar top in
     every state. No dvh anywhere. !important also beats any BM inline JS sizing.
     2026-07-21b (Sam IMG_2143): the LIST view kept the old dvh height and showed the
     same white-fade remnant under the settings row — the anchor now applies to BOTH
     states (list + open chat), matching BM's own on-device takeover. */
  body.page-id-4558:not(.lha-mini) .bp-messages-wrap-main{
    position:fixed !important;
    top:0 !important; left:0 !important; right:0 !important;
    bottom:calc(62px + env(safe-area-inset-bottom,0px)) !important;
    height:auto !important; max-height:none !important; min-height:0 !important;
    width:auto !important; margin:0 !important;
    border:0 !important; border-radius:0 !important;
    background:#ffffff !important;
    z-index:100000 !important; /* BM's OWN mobile tier (verify pass): above page chrome (sticky header 998,
       admin bar 99999) yet BELOW BM's body-level overlays — long-press menu / emoji picker /
       attachment modal / lightbox all sit at ~10000001 and would paint BEHIND a higher pane —
       and below the LHA bar (2147483000) + its sheets. */ }
  /* fill the anchored pane: BM's mobile classes do this only when ITS device
     detection fires — mirror the ≥1025px chain so every inner layer fills and the
     composer (last item of BM's flex column, min-height:0 list above it) lands
     exactly on the pane's bottom edge. */
  body.page-id-4558:not(.lha-mini) .bp-messages-wrap-main .bp-messages-wrap,
  body.page-id-4558:not(.lha-mini) .bp-messages-wrap-main .bp-messages-threads-wrapper,
  body.page-id-4558:not(.lha-mini) .bp-messages-wrap-main .bp-messages-column{
    height:100% !important; max-height:100% !important; min-height:0 !important; }
  /* BM's own 44px bottom strip (.chat-footer; grows by env() in its mobile mode)
     renders BELOW the composer and would hold it that far off the bar — the LHA
     bar replaces it while a chat is open (Back pill + bar cover all navigation). */
  body.page-id-4558.lha-chat-open:not(.lha-mini) .bp-messages-wrap-main .chat-footer{ display:none !important; }
  /* the page behind the anchored pane must never scroll: iOS pans the document to
     chase the keyboard caret and can leave that pan behind — sync() below restores
     0,0. (BM's own mobile mode locks body scroll too; this covers every path.) */
  body.page-id-4558:not(.lha-mini){ overflow:hidden !important; }
  /* Back control (2026-07-19; kept under the 2026-07-21 bar-visible regime above):
     Better Messages' faint gold "‹" chevron was easy to miss — make it read
     unmistakably as a button: a branded "‹ Back" pill. Returns to the inbox. */
  .bp-messages-wrap-main .chat-header a.back,
  .bp-messages-column .chat-header a.back{
    display:inline-flex !important; align-items:center; justify-content:center;
    width:auto !important; min-width:0 !important; height:auto !important;
    padding:7px 15px !important; margin-right:6px;
    background:rgba(10,26,47,.07) !important; border:1px solid rgba(10,26,47,.14) !important;
    border-radius:999px !important; color:#0A1A2F !important;
    font-size:0 !important; line-height:1 !important; background-image:none !important; }
  /* hide BM's own chevron glyph (its inline text / ::before) and print one clean label */
  .bp-messages-wrap-main .chat-header a.back::before,
  .bp-messages-column .chat-header a.back::before{ content:none !important; display:none !important; }
  .bp-messages-wrap-main .chat-header a.back::after,
  .bp-messages-column .chat-header a.back::after{
    content:"\2039  Back"; font:700 14px/1 Inter,system-ui,-apple-system,"Segoe UI",sans-serif; color:#0A1A2F; }
  .bp-messages-wrap-main .chat-header a.back:active{ background:rgba(201,167,105,.22) !important; }
  /* Composer row (Sam IMG_2152 zoom: send button rode 12px high + overlapped the
     pill's right end; clip rode low). Measured: .bm-reply is the row (clip ·
     .bm-editor · .bm-send-message); send was top-aligned to the 70px editor wrap
     while the pill centres at its middle. Fix: make .bm-reply a real flex row —
     every child centred on ONE axis, editor takes the free width, send is a
     fixed 46px square IN FLOW (no absolute offsets, no overlap). */
  .bp-messages-wrap-main .bm-reply{
    display:flex !important; align-items:center !important; gap:10px !important;
    padding:10px 12px !important; box-sizing:border-box !important; }
  .bp-messages-wrap-main .bm-reply > *{ align-self:center !important; }
  /* relative, NOT static: .bm-attachment / .bm-emojies are the anchors for their
     absolutely-positioned inner icons — static sent the clip off-screen and the
     smiley onto the pill's border (round-1 QC). relative = in-flow + anchor. */
  .bp-messages-wrap-main .bm-reply > :not(.bm-editor):not(.bm-send-message){ position:relative !important; }
  /* their inner icons are absolute with top offsets tuned for BM's old layout
     (round-2 QC: 9px low) — centre them in the wrapper on both axes instead */
  .bp-messages-wrap-main .bm-reply .bm-attachment > *,
  .bp-messages-wrap-main .bm-reply .bm-emojies > *{
    position:absolute !important; top:50% !important; left:50% !important;
    right:auto !important; bottom:auto !important; margin:0 !important;
    transform:translate(-50%,-50%) !important; }
  .bp-messages-wrap-main .bm-reply .bm-editor{ flex:1 1 auto !important; min-width:0 !important; margin:0 !important; }
  .bp-messages-wrap-main .bm-reply .bm-send-message{
    position:static !important; flex:0 0 auto !important;
    width:46px !important; height:46px !important;
    max-width:46px !important; max-height:46px !important; margin:0 !important; }
}
/* Sam 2026-07-21 (IMG_2148): the star/reply/⋮ hover controls sat permanently
   beside the FIRST message on iPhone — BM shows .message-controls spans on
   .selected/:hover, and iOS leaves the first message stuck in that state.
   Touchscreens have no hover: hide the interactive controls there entirely —
   long-press opens BM's proper actions menu, reactions still render, and
   span.bm-status (delivered/seen tick) is deliberately kept. */
@media (hover:none), (pointer:coarse){
  .bm-message .message-controls > span:not(.bm-status){ display:none !important; }
}
/* Sam 2026-07-21 (IMG_2145): BM veils the embedded list behind a 62%-white
   "Tap to open messages" overlay until first touch — looks broken/washed-out.
   On a dedicated Messages page the opt-in veil is pointless: hide it visually
   (opacity, NOT display — the sync() poller still fires BM's own onClick via
   el.click(), which works on invisible elements) and let JS auto-activate. */
.bp-messages-mobile-tap{ opacity:0 !important; pointer-events:none !important; }
/* long URLs/strings wrap sanely, never letter-columns */
.bm-message .bm-message-content{ overflow-wrap:anywhere !important; word-break:break-word !important; }
/* the stack cap above is the ONE width authority: BM also sets max-width:90% on
   .bm-message-content INSIDE it — the two caps multiply (68%×90%≈61%) and links
   wrapped needlessly narrow. Let content fill its stack. */
.bm-message .bm-message-content{ max-width:100% !important; }
/* MINI popout (540px panel): near-full-width bubbles — panel is already narrow,
   and the list must clear the overlaying composer so the last message is never
   clipped beneath it */
body.lha-mini .bm-messages-stack{ max-width:94% !important; }
body.lha-mini .bm-list-content{ padding-bottom:86px !important; }
/* sender name above a group: small-caps deep gold, quiet */
.bm-messages-list .bm-info{ font-family:'Inter',sans-serif !important; }
.bm-messages-list .bm-info, .bm-messages-list .bm-info *{
  font-size:.7rem !important; font-weight:600 !important; text-transform:uppercase;
  letter-spacing:.08em; color:#A88444 !important; }
/* Bubble corner radius: BM hard-codes border-radius:var(--bm-message-border-radius)
   with a ~0,6,0 selector that beats any sane override, and ships the var at 2px
   (near-square). Feed BM's OWN variable instead of fighting specificity — this is
   the only robust way to round the bubbles. 16px = soft, premium, uniform. */
.bp-messages-wrap, .bm-messages-list, .bm-messages, .bm-popup,
[class*="bm-messages"], [class*="bp-messages"]{ --bm-message-border-radius:16px !important; }
/* my bubbles: brand navy-2 (softer than near-black), roomier, lifted */
.bm-message .bm-message-content{ line-height:1.45 !important; }
.bm-message.my .bm-message-content{
  background:#122A52 !important; color:#FAF4E6 !important;
  padding:10px 15px !important;
  box-shadow:0 1px 2px rgba(10,26,47,.20), 0 6px 16px rgba(10,26,47,.13) !important; }
.bm-message.my .bm-message-content a{ color:#E9DCC0 !important; }
/* received bubbles: clean white LIFTED with a soft dual shadow so they read as
   premium cards against the ivory page (not a flat input box, not ivory-on-ivory
   mush). Shadow + gold hairline + 16px radius = unmistakably a chat bubble.
   Sam 2026-07-21: functional wasn't good enough — this is the premium pass. */
.bm-message:not(.my) .bm-message-content{
  background:#FFFFFF !important; color:#2C3A49 !important;
  border:1px solid rgba(201,167,105,.22) !important;
  padding:10px 15px !important;
  box-shadow:0 1px 2px rgba(10,26,47,.10), 0 6px 16px rgba(10,26,47,.06) !important; }
.bm-message:not(.my) .bm-message-content a{ color:#A88444 !important; }
/* ---- messenger polish pass (Sam IMG_2134/2135/2136) ---- */
/* avatars were SQUARE white logo boxes; round them everywhere (list + threads) */
.bp-messages-wrap-main .avatar, .bp-messages-wrap-main img.avatar, .bp-messages-wrap-main .bbpm-avatar,
.bp-messages-wrap-main .bbpm-avatar img, .bm-messages-listing .avatar, .bm-messages-listing img,
[class*=bm-] .avatar, [class*=bm-] .avatar img{
  border-radius:50% !important; object-fit:cover !important; overflow:hidden !important; }
/* in a 1-on-1 the per-message avatar + your OWN name are pure clutter — hide them
   (the header shows who you're talking to; alignment shows direction) */
.bm-messages-stack .bm-pic, .bm-messages-stack .avatar, .bm-messages-stack .bbpm-avatar{ display:none !important; }
/* no avatar gutter → let the bubble use the reclaimed width.
   BM ships .bm-content{margin-top:-35px} to tuck content up beside the avatar;
   with the avatar hidden that -35px pulls each group up INTO the one above
   (the overlapping-bubbles bug). Zero it so groups stack cleanly. */
.bm-messages-stack .bm-content{ margin-left:0 !important; padding-left:2px !important; margin-top:0 !important; }
.bm-messages-stack{ margin-bottom:16px !important; }
.bm-messages-stack.outgoing .bm-info{ display:none !important; }
/* incoming sender name: quieter, once per group */
.bm-messages-stack:not(.outgoing) .bm-info, .bm-messages-stack:not(.outgoing) .bm-info *{
  font-size:.64rem !important; opacity:.85 !important; }
/* Timestamp: BM ships .bm-message-info{float:right}, which on a multi-line
   message lifts the time to the TOP-right mid-text and orphans the last word on
   its own line (Sam IMG_2139 — "classes" alone under a floated 19:07). Drop the
   float and let the time sit INLINE right after the last word (WhatsApp/Telegram
   style): make the text run inline so the time nestles at the end of the last
   line, wrapping with it. Deterministic, tidy, premium. */
.bm-message-content-text, .bm-message-content-text > p{ display:inline !important; }
.bm-message-content-text > p{ margin:0 !important; }
.bm-message .bm-message-info{
  float:none !important; display:inline !important; position:static !important;
  margin-left:8px !important; white-space:nowrap !important;
  font-size:.66rem !important; opacity:.7 !important; }
.bm-message.my .bm-message-info, .bm-message.my .bm-message-info *{ color:rgba(250,244,230,.8) !important; }
/* link-preview card inside my bubbles: soft ivory inset instead of a dark brick */
.bm-message.my .bm-message-content > div{
  background:rgba(250,244,230,.10) !important; border:1px solid rgba(250,244,230,.22) !important;
  border-radius:10px !important; }
/* LINK PREVIEW (.url-wrap): BM appends the site domain to the OG title, so a long
   domain sprawled into a mid-word letter-column (IMG_2109/2112). Make it a tidy,
   compact card that sizes to its content. */
.bm-message-content a.url-wrap{ display:block !important; text-decoration:none !important;
  margin-top:6px !important; padding:8px 11px !important; border-radius:10px !important;
  background:rgba(250,244,230,.08) !important; border:1px solid rgba(250,244,230,.20) !important; }
.bm-message:not(.my) .bm-message-content a.url-wrap{
  background:rgba(10,26,47,.035) !important; border-color:rgba(10,26,47,.12) !important; }
.bm-message-content .url-description{ display:block !important; }
.bm-message-content .url-title{ display:-webkit-box !important; -webkit-line-clamp:2 !important;
  -webkit-box-orient:vertical !important; overflow:hidden !important;
  font:700 .82rem/1.3 'Inter',sans-serif !important; overflow-wrap:anywhere !important;
  text-decoration:none !important; }
/* domain: ONE line with an ellipsis — never a mid-word letter-column */
.bm-message-content .url-site{ display:block !important; margin-top:3px !important;
  font:600 .68rem 'Inter',sans-serif !important; letter-spacing:.02em; opacity:.72 !important;
  text-decoration:none !important; white-space:nowrap !important; overflow:hidden !important;
  text-overflow:ellipsis !important; max-width:100% !important; }
/* the raw URL a pupil pastes AS the message: shrink it right down + cap at 2 lines so
   the preview card is the focus, not a wall of underlined address. */
.bm-message-content-text a[href], .bm-message-content-text[href], .bm-message-content > a[href]:not(.url-wrap){
  display:-webkit-box !important; -webkit-line-clamp:2 !important; -webkit-box-orient:vertical !important;
  overflow:hidden !important; font-size:.72rem !important; line-height:1.35 !important;
  opacity:.8 !important; overflow-wrap:anywhere !important; }
/* date separators: small-caps deep gold, no pill */
.bm-sticky-date{
  background:transparent !important; border:0 !important; box-shadow:none !important;
  color:#A88444 !important; font:600 .7rem 'Inter',sans-serif !important;
  letter-spacing:.14em; text-transform:uppercase; opacity:1 !important; }
/* conversation header: serif name, white bar, hairline below */
.chat-header{ background:#ffffff !important; border-bottom:1px solid rgba(10,26,47,.08) !important; }
.chat-header [class*="name"], .chat-header b, .chat-header strong{
  font-family:'Cormorant Garamond',Garamond,Georgia,serif !important;
  font-size:1.2rem !important; font-weight:600 !important; color:#0A1A2F !important; }
/* AP4 B3 (2026-07-18, Sam img2): the group-chat subtitle ("N participants") inherited the
   upsized 1.2rem title type inside BM's fixed 14px line box (overflow:hidden) — descenders
   were clipped. Give the subtitle its own quiet type and let its line box fit. */
.chat-header .group-online, .bp-messages-wrap .group-online{
  font-family:'Inter',sans-serif !important; font-size:12.5px !important; font-weight:500 !important;
  line-height:1.35 !important; height:auto !important; max-height:none !important;
  overflow:visible !important; color:#52606d !important; }
.chat-header *:has(> .group-online){ height:auto !important; overflow:visible !important; }
/* composer + toolbar icons: navy (send button keeps its own ivory-on-navy) */
.bp-messages-wrap-main .bm-svg{ stroke:#0A1A2F; }
.bp-messages-wrap-main .bm-send-message .bm-svg{ stroke:currentColor !important; }

/* empty state: gold mark, warm copy, navy button for the new-conversation link */
.bp-messages-wrap svg{ stroke:#C9A769; }
.bp-messages-wrap{ color:#52606d; }
.bpbm-empty-link a{
  display:inline-block; background:#0A1A2F !important; color:#FAF4E6 !important;
  padding:10px 22px !important; border-radius:999px !important; text-decoration:none !important;
  font:600 .95rem 'Inter',sans-serif !important; transition:background .18s ease; }
.bpbm-empty-link a, .bpbm-empty-link a *{ color:#FAF4E6 !important; }
.bpbm-empty-link a:hover, .bpbm-empty-link a:hover *{ background:#C9A769 !important; color:#0A1A2F !important; }
/* unread conversations: bold serif name + darker preview (applies once unread exists) */
.threads-list .thread.unread .name, .threads-list .thread.bm-unread .name,
.threads-list .thread[class*="unread"] .name{ font-weight:700 !important; }
.threads-list .thread.unread .bm-last-message-content,
.threads-list .thread[class*="unread"] .bm-last-message-content{ color:#36454F !important; }
/* search field: visible border, gold focus */
.bp-messages-wrap-main input[type="text"], .bp-messages-wrap-main input[type="search"]{
  border:1px solid rgba(10,26,47,.20) !important; border-radius:8px !important;
  padding:8px 12px !important; color:#36454F !important; }
.bp-messages-wrap-main input[type="text"]:focus, .bp-messages-wrap-main input[type="search"]:focus{
  border-color:#C9A769 !important; box-shadow:0 0 0 2px rgba(201,167,105,.25) !important; outline:none !important; }
/* thread rows: divider + gold hover wash */
.threads-list .thread{
  border-bottom:1px solid rgba(10,26,47,.06) !important;
  transition:background .15s ease; cursor:pointer; }
.threads-list .thread:hover{ background:rgba(201,167,105,.10) !important; }
/* active conversation: gold wash + gold edge */
.threads-list .thread.bp-messages-active-thread{
  background:rgba(201,167,105,.16) !important;
  box-shadow:inset 3px 0 0 #C9A769 !important; }
/* unread badge: gold on navy-free — small, warm, obvious */
.bp-better-messages-unread{
  background:#C9A769 !important; color:#0A1A2F !important;
  border-radius:999px !important; font-weight:700 !important; }
.bp-better-messages-unread.no-count{ background:transparent !important; }
/* send button: navy, gold hover */
.bm-send-message{
  background:#0A1A2F !important; color:#FAF4E6 !important;
  border-radius:10px !important; transition:background .18s ease; }
.bm-send-message:hover{ background:#C9A769 !important; color:#0A1A2F !important; }
.bm-send-message svg, .bm-send-message .bm-svg{ stroke:currentColor !important; fill:currentColor !important; }
/* AP8 N8: the paper-plane was position:absolute (top:34px + side margin) so it sat low-left.
   Reset it to a normal in-flow element and flex-centre it in the button. */
.bm-send-message{ display:flex !important; align-items:center !important; justify-content:center !important; }
.bm-send-message svg, .bm-send-message .bm-svg{ position:static !important; top:auto !important; left:auto !important; right:auto !important; bottom:auto !important; margin:0 !important; }

/* ---- Mini mode (inside the envelope popout iframe): messenger only ---- */
body.lha-mini{ background:#ffffff !important; padding:0 !important; }
html:has(body.lha-mini){ margin-top:0 !important; }
body.lha-mini #wpadminbar,
body.lha-mini [data-elementor-type="header"],
body.lha-mini [data-elementor-type="footer"],
body.lha-mini .lha-mobilebar, body.lha-mini .lha-drawer, body.lha-mini .lha-drawer-backdrop{ display:none !important; }
/* AP8 N5: the popout header already says "Messages" + "Open full view" — drop the page title so it is not doubled */
body.lha-mini .entry-title, body.lha-mini .entry-header, body.lha-mini .ast-single-post-order{ display:none !important; }
body.lha-mini [data-elementor-type="wp-page"]{ margin:0 !important; padding:0 !important; }
body.lha-mini [data-elementor-type="wp-page"] > .elementor-element:not(:has(.bp-messages-wrap-main)){ display:none !important; }
body.lha-mini [data-elementor-type="wp-page"] > .elementor-element:has(.bp-messages-wrap-main){
  margin:0 !important; padding:0 !important; max-width:100% !important; }
body.lha-mini .bp-messages-wrap-main{
  border:0 !important; border-radius:0 !important; box-shadow:none !important;
  height:100vh !important; max-height:100vh !important; }

/* ---- Envelope popout panel (Facebook-style quick chat) ---- */
.lha-msg-pop{
  display:none; position:fixed; right:64px; top:88px;
  width:540px; max-width:calc(100vw - 88px); height:72vh;
  background:#ffffff; border:1px solid rgba(201,167,105,.30);
  border-top:3px solid #C9A769; border-radius:14px;
  box-shadow:0 18px 44px rgba(10,26,47,.24); z-index:2147482100;
  overflow:hidden; flex-direction:column; }
.lha-msg-pop.open{ display:flex; }
.lha-msg-pop-head{
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 16px; border-bottom:1px solid rgba(10,26,47,.08); background:#FAF4E6; }
.lha-msg-pop-head b{
  font:600 1.15rem 'Cormorant Garamond',Garamond,Georgia,serif; color:#0A1A2F; }
.lha-msg-pop-head a{
  font:600 .8rem 'Inter',sans-serif; color:#A88444; text-decoration:none; }
.lha-msg-pop-head a:hover{ color:#C9A769; }
.lha-msg-pop iframe{ flex:1; width:100%; border:0; }
/* skeleton shimmer while the messenger boots inside the iframe (BM is JS-built;
   the white void otherwise lasts seconds on slow loads) */
.lha-msg-pop-skel{ flex:1; padding:18px 16px; display:none; }
.lha-msg-pop.lha-loading .lha-msg-pop-skel{ display:block; }
.lha-msg-pop.lha-loading iframe{ position:absolute; visibility:hidden; }
.lha-msg-pop-skel i{
  display:block; height:14px; border-radius:7px; margin-bottom:14px;
  background:linear-gradient(90deg, rgba(201,167,105,.10) 25%, rgba(201,167,105,.24) 50%, rgba(201,167,105,.10) 75%);
  background-size:200% 100%; animation:lha-skel 1.2s ease-in-out infinite; }
.lha-msg-pop-skel i:nth-child(1){ width:55%; }
.lha-msg-pop-skel i:nth-child(2){ width:82%; }
.lha-msg-pop-skel i:nth-child(3){ width:70%; }
.lha-msg-pop-skel i:nth-child(4){ width:40%; }
@keyframes lha-skel{ 0%{ background-position:200% 0; } 100%{ background-position:-200% 0; } }
@media (max-width:768px){ .lha-msg-pop{ display:none !important; } }

/* ---- Messages quick-access icon in the top bar (desktop only) ---- */
.lha-msg-quick{ display:none; }
@media (min-width:769px){
  .lha-msg-quick{
    display:inline-flex; align-items:center; justify-content:center;
    width:38px; height:38px; margin-right:6px; border-radius:10px;
    color:#0A1A2F; transition:background .18s ease; vertical-align:middle; }
  .lha-msg-quick:hover{ background:rgba(201,167,105,.18); }
  .lha-msg-quick svg{ width:23px; height:23px; stroke:#0A1A2F; fill:none;
    stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
  /* fallback placement: bar-anchored when the bell was never found */
  .elementor-element-f084bb1{ position:relative; }
  .lha-msg-quick.lha-msg-fallback{ position:absolute; right:104px; top:50%; transform:translateY(-50%); }
}

/* ---------- Better Messages toasts (Toastify): brand the stock black cards ---------- */
.Toastify__toast{ background:#0A1A2F !important; color:#FAF4E6 !important;
  border:1px solid rgba(201,167,105,.55) !important; border-radius:14px !important;
  box-shadow:0 10px 28px rgba(10,26,47,.35) !important;
  font-family:'Inter',-apple-system,"Segoe UI",sans-serif !important; }
.Toastify__toast a{ color:#C9A769 !important; }
.Toastify__close-button{ color:#FAF4E6 !important; opacity:.75; }
.Toastify__progress-bar{ background:#C9A769 !important; }
@media (max-width:768px){
  /* toasts must stack ABOVE the LHA bottom bar, not behind/over it */
  .Toastify__toast-container--bottom-left, .Toastify__toast-container--bottom-center,
  .Toastify__toast-container--bottom-right{ bottom:78px !important; }
  .Toastify__toast{ margin:0 10px 10px; }
}

/* ==== lha-header ==== */
.lha-page-title{ display:none; }
/* Desktop only: the fixed sidebar is 225px wide, so clear it. (In the 769–1024
   band the header is already a two-row bar — the title would clutter it.) */
@media (min-width:1025px){
  .elementor-element-f084bb1{ position:relative; }
  .lha-page-title{
    display:block; position:absolute; left:255px; top:50%; transform:translateY(-50%);
    font-family:'Cormorant Garamond',Garamond,Georgia,serif;
    font-size:1.45rem; font-weight:600; color:#0A1A2F; letter-spacing:.01em;
    pointer-events:none; max-width:40vw; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .lha-page-title i{ font-style:normal; color:#A88444; }
}
/* Header hairlines: the template ships heavy near-black borders under the top bar
   and beside the sidebar — soften both to the same hairline the components use */
.elementor-element-f084bb1{ border-bottom-color:rgba(10,26,47,.12) !important; border-bottom-width:1px !important; }
/* Top bar stays visible while scrolling (Account · Messages · Alerts always reachable).
   NB: sticky must live on the HEADER WRAPPER — the bar's own parent is exactly the
   bar's height, so sticky on the bar itself can never move (the first attempt's bug).
   The fixed sidebar child is out of flow, so the wrapper's flow-height IS the bar. */
@media (min-width:769px){
  [data-elementor-type="header"]{
    position:sticky !important; top:0; z-index:998; }
  body.admin-bar [data-elementor-type="header"]{ top:32px; }
  .elementor-element-f084bb1{
    background:#FAF4E6 !important;
    box-shadow:0 2px 10px rgba(10,26,47,.05); }
  /* Utility cluster: Account · envelope · bell. PROPERLY FIXED 2026-07-07: the
     template's container c0e5f44 was a 2-column centred GRID (each item centred
     in a ~700px track = the huge gap; a translateX(66px) nudge papered over it
     and CLASHED on live at narrower viewports). The container is now a
     right-aligned flex row with a 14px gap — no transform needed. */
  /* the Account widget must SIZE TO ITS CONTENT: with the avatar chip injected
     the label overflowed a fixed-ish box and the envelope stamped over the text
     (live, Sam's screenshot 2026-07-07) */
  .elementor-element-7cfd416{ min-width:max-content !important; }
  /* the cluster slot runs full-bleed; fixed clearance keeps the bell off the
     window edge/scrollbar at EVERY viewport width (Sam's wide-zoom screenshot) */
  .elementor-element-c0e5f44{ padding-right:32px !important; }
  .elementor-element-7cfd416 .elementor-item{ white-space:nowrap !important; overflow:visible !important; }
  .lha-msg-quick{ margin-right:2px !important; }
  /* AP4 B1 (2026-07-18): the UM notifications widget (c9c5d69) is the bell's CLICK TARGET
     and must stay in the DOM (do NOT delete it from template 84 — tried, killed the bell),
     but its wrapper still reserved a ~280px flex slot at the right of the cluster, pushing
     Account/chat/bell ~290px in from the edge (Sam: "something is pushing the icons in").
     Collapse the WRAPPER's flex footprint; programmatic .click() still works on a
     zero-size element. Also stop its parent slot (f702f85) grabbing spare row width. */
  .elementor-element-c9c5d69{ position:absolute !important; width:0 !important; min-width:0 !important;
    height:0 !important; margin:0 !important; padding:0 !important; }
  .elementor-element-f702f85{ width:auto !important; flex-grow:0 !important; }
}
.elementor-element-826c329{ border-right-color:rgba(10,26,47,.12) !important; border-right-width:1px !important; }

/* Header bell — RESTORED 2026-07-09 to the approach that ALWAYS worked.
   The reliable, visible bell is the decorative Elementor SVG icon (svg.e-far-bell)
   — a vector glyph that paints navy every time. DO NOT try to make Ultimate
   Member's own bell (widget c9c5d69) the visible one: its `um-icon-ios-bell` is
   drawn by UM's Ionicons icon FONT via a ::before that is EMPTY on this surface,
   so it paints nothing (the invisible bell Sam hit 2026-07-08/09 — two wasted
   iterations recolouring an element that had no glyph). UM's bell stays put as
   the click target that opens the live feed; the JS in wp_footer forwards clicks
   from the visible SVG bell to it so the whole bell is clickable. Keep UM's bell
   from adding a second visible mark next to the SVG one. */
.elementor-icon:has(svg.e-far-bell){
  display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:10px; cursor:pointer;
  transition:background .18s ease; }
.elementor-icon:has(svg.e-far-bell):hover{ background:rgba(201,167,105,.18); }
.elementor-icon svg.e-far-bell{ width:28px !important; height:28px !important; fill:#0A1A2F !important; }
/* UM's own bell: keep it in the DOM (it's the feed's click target — the SVG
   bell forwards clicks to it) but VISUALLY COLLAPSED. ⚠️ Its compact look used
   to come from Customizer CSS post #879 — when 879 was retired (2026-07-09,
   template-84 design pass) UM's stock styling surfaced as a 60px DARK-GREY
   CIRCLE beside the bell. These rules are 879-independent: collapse the box
   entirely; programmatic .click() still works on a zero-size element. */
.elementor-element-c9c5d69 .um-icon-ios-bell{ display:none !important; }
.elementor-element-c9c5d69 .um-notification-b,
.elementor-element-c9c5d69 .um-notification-b.left{
  cursor:pointer;
  width:0 !important; height:0 !important; min-width:0 !important; min-height:0 !important;
  padding:0 !important; margin:0 !important; border:0 !important;
  background:transparent !important; box-shadow:none !important; overflow:hidden !important; }
.elementor-element-c9c5d69 .um-notification-b .um-notification-live-count{ display:none !important; }
/* The body-level FLOATING corner bell is redundant with the header bell, BUT its
   subtree holds the ONLY .um-notification-live-feed — the header widget c9c5d69
   renders just the icon+count. `display:none` here hid the FEED too, so clicking the
   header bell opened a panel that could never paint (Sam 2026-07-10 "click the bell,
   nothing happens" — regression from the 2026-07-09 grey-circle cleanup, when this
   rule was added to kill the corner bell). Fix: keep the container RENDERABLE but
   collapse the visible bell to zero; the feed is position:fixed (mu-10) so it opens
   top-right regardless of where this container sits. */
body > .um-notification-b{
  position:fixed !important; right:0 !important; bottom:0 !important; left:auto !important; top:auto !important;
  width:0 !important; height:0 !important; margin:0 !important; padding:0 !important;
  overflow:visible !important; background:transparent !important; box-shadow:none !important; border:0 !important; }
body > .um-notification-b > .um-icon-ios-bell,
body > .um-notification-b > .um-notification-live-count{ display:none !important; }

.lha-msg-quick{ position:relative; margin-right:10px !important; top:-1px;
  width:40px; height:40px; }
.lha-msg-quick svg{ width:30px !important; height:30px !important; stroke-width:1.6 !important; }
.lha-msg-badge{
  position:absolute; top:0px; right:-4px; min-width:16px; height:16px; padding:0 4px;
  background:#C9A769; color:#0A1A2F; border-radius:999px; border:1.5px solid #FAF4E6;
  font:700 10px/13px 'Inter',sans-serif; text-align:center; }
.lha-bell-badge{
  position:absolute; top:1px; right:1px; min-width:16px; height:16px; padding:0 4px;
  background:#C9A769; color:#0A1A2F; border-radius:999px; border:1.5px solid #FAF4E6;
  font:700 10px/13px 'Inter',sans-serif; text-align:center; pointer-events:none; z-index:6; }
.lha-acct-avatar{
  width:28px !important; height:28px !important; border-radius:50% !important;
  object-fit:cover !important; background:#ffffff;
  border:1.5px solid rgba(201,167,105,.65) !important; box-shadow:0 1px 4px rgba(10,26,47,.10);
  vertical-align:middle !important; margin-right:9px !important; }

/* Contextual basket (2026-07-08, Sam): appears ONLY while the cart holds
   something — empty basket = clean academy header (no retail furniture),
   mid-purchase = a visible way back to checkout. Same 40px hover language as
   the envelope/bell; gold count badge. Logged-in only (anon pages are
   Varnish-cached, so a server-rendered count could go stale). */
.lha-basket-quick{ position:relative; display:inline-flex; align-items:center; justify-content:center;
  width:40px; height:40px; border-radius:10px; margin-right:14px; top:-1px;
  transition:background .18s ease; text-decoration:none !important; }
/* cramped-header fix (Sam's screenshot): the count badge sat on the envelope —
   breathing room between bag and envelope, badge kept inside the bag's box */
.lha-basket-quick:hover{ background:rgba(201,167,105,.18); }
.lha-basket-quick svg{ width:26px; height:26px; stroke:#0A1A2F; fill:none;
  stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.lha-basket-badge{
  position:absolute; top:0px; right:-4px; min-width:16px; height:16px; padding:0 4px;
  background:#C9A769; color:#0A1A2F; border-radius:999px; border:1.5px solid #FAF4E6;
  font:700 10px/13px 'Inter',sans-serif; text-align:center; }

/* ===================== HEADER LOCK (2026-07-09, Sam: "lock the header in")
   The desktop header icons have regressed TWICE from blanket display:none rules
   that caught classes template 84 reuses on the real elements (.lha-desktop-bell)
   or from the UM icon-font glyph being empty. This guard makes the logged-in
   DESKTOP utility cluster UNHIDEABLE: on real desktop (>=1025px) the Account
   cluster, the messenger envelope and the SVG bell are forced visible, so no
   later stray rule anywhere can silently remove them again. It only asserts what
   is already true today (changes nothing now) — it just stops future edits from
   breaking it. To intentionally change these icons, edit HERE; do not add a
   competing display:none elsewhere. (Loads at priority 1600 = after 02/04/07, so
   this wins.) Mobile/tablet are untouched: the cluster is elementor-hidden-mobile
   and the app bottom bar owns phones. ===================== */
@media (min-width:1025px){
  /* Force each element in the bell + envelope chain to its NATURAL display (so
     this is a no-op today) — but as a 2-class !important rule it out-specifies
     any blanket 1-class hide like `.lha-desktop-bell{display:none}` (the exact
     shape of both past regressions). The bell lives under TWO wrapper classes,
     .lha-desktop-bell (the e-con, flex) AND .lha-bottom-bell (the icon-box
     widget, block) — hiding EITHER kills it, so both are pinned. Values measured
     live 2026-07-09: cluster/desktop-bell/envelope=flex, bottom-bell=block,
     icon=inline-flex. */
  .elementor-location-header .elementor-element-c0e5f44{ display:flex !important; }
  .elementor-element-c0e5f44 .lha-desktop-bell{ display:flex !important; }
  .elementor-element-c0e5f44 .lha-bottom-bell{ display:block !important; }
  .elementor-element-c0e5f44 .elementor-icon:has(svg.e-far-bell){ display:inline-flex !important; }
  .elementor-element-c0e5f44 .lha-msg-quick{ display:flex !important; }
  .elementor-element-c0e5f44 .lha-desktop-bell,
  .elementor-element-c0e5f44 .lha-bottom-bell,
  .elementor-element-c0e5f44 .lha-msg-quick,
  .elementor-element-c0e5f44 .elementor-icon:has(svg.e-far-bell){ visibility:visible !important; opacity:1 !important; }
}

/* 2026-07-22 TABLET BAND (Sam: "print screen phone AND tablet too") — 768–1024 was a
   header no-man's land nobody had ever QC'd: the legacy row-1 bar (f084bb1) half-
   rendered as an orphaned ivory strip (desktop envelope + an HFE menu toggle + the
   "hidden-mobile" middle, which Elementor only hides <768) ABOVE Astra's collapsed
   logo/hamburger row, with the Merits chip parked top-left inside it. The bottom bar
   is already active in this band, so treat it as mobile chrome: hide row 1 entirely
   (Alerts + Messages live in the bar; the Merits chip joins the logo row via mu-38). */
@media (min-width:768px) and (max-width:1024px){
  .elementor-element-f084bb1{ display:none !important; }
  .lha-msg-quick{ display:none !important; }
  /* the logo row's hamburgers (HFE's toggle AND Elementor's menu-toggle, element
     490e1a2) are redundant here — the bottom bar's Menu is the nav in this band,
     exactly as on phone — and sat as ghosts behind the Merits chip */
  .hfe-nav-menu__toggle{ display:none !important; }
  /* Elementor re-shows its toggle with a heavier !important selector — outgun it */
  .elementor-menu-toggle,
  .elementor-element .elementor-menu-toggle,
  .elementor-element.elementor-element-490e1a2 .elementor-widget-container .elementor-menu-toggle,
  header .elementor-widget-nav-menu .elementor-menu-toggle{ display:none !important; visibility:hidden !important; }
}

/* ==== lha-headergap ==== */
.elementor-location-header .elementor-element-c308b53{ display:none !important; min-height:0 !important; height:0 !important; }@media (min-width:1025px){ .elementor-location-header.elementor, .elementor-location-header .elementor-element-f084bb1{ width:100% !important; max-width:100% !important; } .elementor-location-header .elementor-element-f084bb1 > .e-con-inner{ width:100% !important; max-width:100% !important; } .elementor-location-header .elementor-element-291ce38{ flex:1 1 auto !important; width:auto !important; max-width:none !important; } .elementor-location-header .elementor-element-c0e5f44{ width:auto !important; max-width:none !important; flex:0 0 auto !important; margin-left:auto !important; margin-right:0 !important; }}