/* ==== 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 — 68% of the column but never
   beyond 860px, so huge monitors keep book-like line lengths */
@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; }
}
.bm-messages-stack{ max-width:min(68%, 860px) !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){
  .bm-messages-stack{ max-width:88% !important; }
  .bm-list-content{ padding-left:10px !important; padding-right:10px !important; }
  /* open conversation: composer owns the bottom edge — the app bar was sitting
     on top of the type box (Sam's 2026-07-06 screenshot). Bar returns on back. */
  body.lha-chat-open .lha-mobilebar{ display:none !important; }
  body.lha-chat-open{ padding-bottom:0 !important; }
  body.lha-chat-open .bp-messages-wrap-main{ padding-bottom:env(safe-area-inset-bottom,0px) !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; }
  body.page-id-4558:not(.lha-mini) .bp-messages-wrap-main{
    height:calc(100dvh - 148px) !important; max-height:none !important; }
  body.page-id-4558.lha-chat-open:not(.lha-mini) .bp-messages-wrap-main{
    height:calc(100dvh - 84px) !important; }
  /* 2026-07-19 (Sam): opening a chat hides the bottom bar (composer owns the
     bottom, standard messaging pattern) — but the ONLY way back to the app menu
     was Better Messages' faint gold "‹" chevron, easy to miss ("you can't see the
     bottom menu"). Make that back control read unmistakably as a button: a
     branded "‹ Back" pill. Tapping it returns to the inbox, where the bar lives. */
  .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: the send pill overlapped the input's right edge — cap its size
     and reserve clearance in the field */
  .bm-message-form .bm-send-message, .bm-send-message{
    max-width:46px !important; max-height:46px !important; }
  .bm-message-form textarea{ padding-right:54px !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; }
/* my bubbles: brand navy-2 (softer than near-black), asymmetric rounding, roomier */
.bm-message .bm-message-content{ line-height:1.45 !important; }
.bm-message.my .bm-message-content{
  background:#122A52 !important; color:#FAF4E6 !important;
  border-radius:16px 16px 4px 16px !important; padding:9px 14px !important;
  box-shadow:0 2px 8px rgba(10,26,47,.10) !important; }
.bm-message.my .bm-message-content a{ color:#E9DCC0 !important; }
/* received bubbles: white with a hairline (not a grey block) */
.bm-message:not(.my) .bm-message-content{
  background:#ffffff !important; color:#36454F !important;
  border:1px solid rgba(10,26,47,.10) !important;
  border-radius:16px 16px 16px 4px !important; padding:9px 14px !important; }
.bm-message:not(.my) .bm-message-content a{ color:#A88444 !important; }
/* in-bubble timestamp: smaller, quieter */
.bm-message .bm-message-info{ 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; }
/* 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-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; }
}

/* ==== 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; }}