/* =========================================================
   DESIGN TOKENS (edit once)
   ========================================================= */
:root{
  --brand-blue:  #3B4F6B;
  --brand-gold:  #B38D0B;
  --neutral-light:#E1ECF4;   /* section backgrounds */
  --paper:       #ffffff;    /* card/page surfaces */
  --ink:         #1a1a1a;    /* body text on light */
  --ink-muted:   #667085;    /* helper/labels */
  --brand-text:  #ffffff;    /* text on brand buttons */
}

/* =========================================================
   1) HEADER BUTTONS (Astra)
   ========================================================= */
.ast-builder-header .ast-custom-button{
  background:var(--brand-blue);
  color:var(--brand-text);
  border:1px solid var(--brand-blue);
  border-radius:4px;
  padding:.6em 1.1em;
  transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.ast-builder-header .ast-custom-button:hover,
.ast-builder-header .ast-custom-button:focus-visible{
  background:var(--brand-gold);
  color:var(--ink);
  border-color:var(--brand-gold);
}

/* Menu item styled as a button */
.site-header .main-header-menu .menu-link.ast-button{
  background:var(--brand-blue);
  color:var(--brand-text);
  border:1px solid var(--brand-blue);
  border-radius:4px;
}
.site-header .main-header-menu .menu-link.ast-button:hover,
.site-header .main-header-menu .menu-link.ast-button:focus-visible{
  background:var(--brand-gold);
  color:var(--ink);
  border-color:var(--brand-gold);
}

/* =========================================================
   2) PAGE BACKGROUND HIERARCHY (non-home pages)
   ========================================================= */
body:not(.home){ background:var(--neutral-light); }
body:not(.home) .site,
body:not(.home) .ast-container,
body:not(.home) .site-content,
body:not(.home) .content-area,
body:not(.home) .entry-content{ background:var(--paper); }

/* Non-home header contrast + nav colors */
body:not(.home) .site-header{
  background: var(--paper) !important;
  box-shadow: 0 2px 10px rgba(0,0,0,.06);
}
body:not(.home) .main-header-menu .menu-link,
body:not(.home) .ast-header-custom-item a{ color: var(--brand-blue) !important; }
body:not(.home) .main-header-menu .menu-link:hover{ color: var(--brand-gold) !important; }
body:not(.home) .ast-mobile-menu-trigger-minimal .ast-mobile-svg,
body:not(.home) .ast-button-wrap .menu-toggle .ast-mobile-svg{ fill: var(--brand-blue) !important; }

/* =========================================================
   3) CONTACT PAGE (by page ID and by slug)
   ========================================================= */
/* Replace 123 with actual Contact page ID if needed */
body.page-id-123 .contact-form-wrap{
  max-width:none;
  width:100%;
  margin:0;
}

/* Inputs focus (WPForms/Spectra/Gutenberg) */
body.page-id-123 input[type="text"],
body.page-id-123 input[type="email"],
body.page-id-123 textarea{
  outline:none;
  box-shadow:none;
  transition:border-color .15s ease, box-shadow .15s ease;
}
body.page-id-123 input[type="text"]:focus,
body.page-id-123 input[type="email"]:focus,
body.page-id-123 textarea:focus{
  border-color:var(--brand-blue) !important;
  box-shadow:0 0 0 3px rgb(59 79 107 / .15);
}

/* Compact consent checkboxes (WPForms Lite) */
body.page-id-123 .wpforms-field.wpforms-field-checkbox{ margin:.75rem 0 0; }
body.page-id-123 .wpforms-field-checkbox ul{ margin:0; padding:0; list-style:none; }
body.page-id-123 .wpforms-field-checkbox li{ display:flex; align-items:center; gap:.5rem; }
body.page-id-123 .wpforms-field-checkbox .wpforms-field-label{ font-size:.95rem; color:var(--ink-muted); margin-bottom:.25rem; }
body.page-id-123 .wpforms-field-checkbox input[type="checkbox"]{ transform:scale(1.1); }
body.page-id-123 .wpforms-field-checkbox li label{ position:absolute; left:-9999px; }
body.page-id-123 .wpforms-field-checkbox .wpforms-field-description{
  display:inline; margin:0; font-size:.95rem; color:var(--ink-muted);
}
body.page-id-123 .wpforms-field-checkbox .wpforms-field-description a{ color:var(--brand-blue); }
body.page-id-123 .wpforms-field-checkbox .wpforms-field-description a:hover{ color:var(--brand-gold); }

/* Contact page (slug): ensure full white and kill stray tints/borders */
.page-name-contact .site,
.page-name-contact .site-content,
.page-name-contact .content-area,
.page-name-contact .ast-container,
.page-name-contact .entry-content,
.page-name-contact .site-footer,
.page-name-contact .footer-adv-overlay,
.page-name-contact .ast-footer-overlay{
  background:#fff !important;
}
.page-name-contact .wp-block-group.has-background{
  background:transparent !important; border:0 !important; box-shadow:none !important;
}
.page-name-contact .wp-block-group:last-child,
.page-name-contact section:last-child{
  margin-bottom:0 !important; padding-bottom:0 !important;
}

/* =========================================================
   4) GLOBAL SUBMIT BUTTONS (Gutenberg, Spectra, WPForms)
   ========================================================= */
:where(
  .wp-element-button,
  .wp-block-button__link,
  .uagb-buttons__link,
  .uagb-forms-main-submit-btn,
  .ast-button,
  button[type="submit"],
  input[type="submit"],
  input[type="button"],
  input[type="reset"]
){
  background:var(--brand-blue) !important;
  color:var(--brand-text) !important;
  border:1px solid var(--brand-blue) !important;
  border-radius:4px !important;
  padding:.75em 1.5em !important;
  transition:background .2s ease,color .2s ease,border-color .2s ease !important;
}
@media (hover:hover){
  :where(
    .wp-element-button,
    .wp-block-button__link,
    .uagb-buttons__link,
    .uagb-forms-main-submit-btn,
    .ast-button,
    button[type="submit"],
    input[type="submit"],
    input[type="button"],
    input[type="reset"]
  ):hover{
    background:var(--brand-gold) !important;
    color:var(--ink) !important;
    border-color:var(--brand-gold) !important;
  }
}

/* =========================================================
   5) FOOTER MENU TIDY
   ========================================================= */
@media (min-width:921px){
  .ast-builder-footer .ast-footer-menu-wrap ul{
    display:flex; flex-wrap:wrap; row-gap:6px; column-gap:1.25rem; justify-content:center;
  }
  .ast-builder-footer .ast-footer-menu-wrap li{ white-space:nowrap; }
}

/* =========================================================
   6) SERVICE GRID + CARDS
   ========================================================= */
.service-grid{ background:var(--neutral-light); padding:48px 0; }
.service-card{
  background:var(--paper);
  border:1px solid #e7edf2;
  border-radius:14px;
  padding:22px 22px 18px;
  height:100%;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
  display:flex; flex-direction:column; justify-content:flex-start;
}
.service-card::before{
  content:"";
  display:block;
  height:4px; width:42px;
  background:var(--brand-gold);
  border-radius:4px;
  margin-bottom:14px;
}
.service-card h3, .service-card h4{ margin:4px 0 8px; color:var(--brand-blue); }
.service-card p{ line-height:1.4; margin:0 0 14px; }
.service-card a{
  color:var(--brand-blue);
  text-decoration:underline; text-underline-offset:2px;
}
.service-card a:hover{ color:var(--brand-gold); text-decoration-thickness:2px; }
.service-card:hover{
  border-color:var(--brand-gold);
  box-shadow:0 10px 20px rgba(25,41,61,.08);
  transform:translateY(-3px);
}
/* Spectra Info Box rounding */
.uagb-ifb__outer-wrap,
.uagb-ifb__outer-wrap .uagb-ifb__content-wrap{
  position:relative; overflow:hidden; border-radius:14px;
}
.uagb-ifb__outer-wrap .uagb-ifb-link-wrap{ border-radius:inherit; }
.uagb-ifb__outer-wrap{ z-index:1; }

/* =========================================================
   7) BLOG & POLICY PAGES — clean white sheet, no mystery borders
   ========================================================= */
.page-name-privacy-policy .entry-content,
.page-name-disclaimer .entry-content{
  background:#fff;
  max-width:72ch;
  margin-inline:auto;
  padding: clamp(22px, 3.2vw, 36px);
  border:0 !important;
  box-shadow:none !important;
  outline:none !important;
}
/* Remove inner borders/shadows within those pages */
.page-name-privacy-policy .entry-content *[class*="uagb"],
.page-name-privacy-policy .entry-content .wp-block-group.has-background,
.page-name-privacy-policy .entry-content .wp-block-group,
.page-name-disclaimer .entry-content *[class*="uagb"],
.page-name-disclaimer .entry-content .wp-block-group.has-background,
.page-name-disclaimer .entry-content .wp-block-group{
  border:0 !important; box-shadow:none !important; background:transparent !important;
}
/* Keep a soft neutral page backdrop; comment next line for pure white */
.page-name-privacy-policy .site, .page-name-disclaimer .site{ background: var(--neutral-light); }

/* Blog single: same tidy sheet */
.single-post .entry-content{
  background:#fff;
  max-width:72ch;
  margin-inline:auto;
  padding: clamp(22px, 3.2vw, 36px);
  border:0 !important; box-shadow:none !important; outline:none !important;
}
.single-post .entry-content .wp-block-group.has-background,
.single-post .entry-content .wp-block-group{
  border:0 !important; box-shadow:none !important; background:transparent !important;
}

/* =========================================================
   8) HEADER / NAV TWEAKS (iPad) + TALK-TO-US PILL
   ========================================================= */
/* Keep desktop menu on iPad? trim link padding. If you prefer hamburger earlier, set Astra breakpoint to 1024–1120px. */
@media (min-width:769px) and (max-width:1100px){
  .main-header-menu .menu-item > .menu-link{ padding-left:10px; padding-right:10px; }
}

/* Force vertical "Talk to Us" widget to become horizontal on tablet/phone */
@media (max-width:1100px){
  .talkToUs, .talk-to-us,
  .talkToUs *, .talk-to-us *{
    transform:none !important;
    rotate:0deg !important;
    writing-mode:horizontal-tb !important;
    white-space:nowrap !important;
  }
  .talkToUs, .talk-to-us{
    right:12px !important; bottom:30px !important; top:auto !important;
    width:auto !important; padding:10px 14px !important; border-radius:20px !important;
    letter-spacing:.5px !important; z-index:40;
  }
}

/* =========================================================
   9) GRAPHIC ENHANCERS (attach as classes in editor)
   ========================================================= */
/* hero-animated: subtle constellation overlay */
.hero-animated{ position:relative; isolation:isolate; overflow:hidden; }
.hero-animated::before,
.hero-animated::after{
  content:""; position:absolute; inset:-20%;
  background:
    radial-gradient(10px 10px at 20% 30%, rgba(179,141,11,.18) 0 40%, transparent 41%),
    radial-gradient(12px 12px at 70% 60%, rgba(179,141,11,.14) 0 40%, transparent 41%),
    radial-gradient(8px 8px  at 40% 80%,  rgba(202,217,230,.25) 0 40%, transparent 41%);
  filter: blur(1px);
  animation: hero-drift 24s linear infinite;
  pointer-events:none; z-index:0;
}
.hero-animated::after{ animation-duration:36s; animation-direction:reverse; opacity:.7; }
@keyframes hero-drift{
  0%{ transform:translateY(-2%) rotate(0) }
  50%{ transform:translateY(2%) rotate(180deg) }
  100%{ transform:translateY(-2%) rotate(360deg) }
}

/* cta-gold: pill button */
.cta-gold{
  background:var(--brand-gold); color:#152337;
  border:1px solid var(--brand-gold);
  border-radius:999px; padding:.85rem 1.15rem; font-weight:600;
  box-shadow:0 6px 18px rgba(179,141,11,.24);
  transition: transform .15s ease, box-shadow .2s ease, background .2s ease;
}
.cta-gold:hover{ transform:translateY(-2px); box-shadow:0 10px 24px rgba(179,141,11,.32); }
.cta-gold:active{ transform:translateY(0); box-shadow:0 4px 10px rgba(179,141,11,.28); }

/* gold-wave: decorative wave separators for a section */
.gold-wave{ position:relative; isolation:isolate; overflow:hidden; }
.gold-wave::before,
.gold-wave::after{
  content:""; position:absolute; left:0; right:0; height:22px; z-index:1;
  background:
    linear-gradient(90deg, rgba(179,141,11,.22) 25%, transparent 25%) 0 0/16px 100%,
    linear-gradient(90deg, rgba(202,217,230,.55), rgba(202,217,230,0));
}
.gold-wave::before{ top:-1px; transform: scaleY(-1); opacity:.55; }
.gold-wave::after { bottom:-1px; opacity:.35; }

/* grid-overlay: pale blueprint grid over section */
.grid-overlay{ position:relative; isolation:isolate; background:var(--neutral-light); }
.grid-overlay::after{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:
     linear-gradient(to right, rgba(59,79,107,.05) 1px, transparent 1px),
     linear-gradient(to bottom, rgba(59,79,107,.05) 1px, transparent 1px);
  background-size: 28px 28px;
}

/* gold-accent-edge: slim gold bar along left edge */
.gold-accent-edge{ position:relative; }
.gold-accent-edge::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:6px; border-radius:6px;
  background: linear-gradient(180deg, #d9b658, #B38D0B 60%, #8f6f05);
}

/* u-underline: gold underline accent for a few words in a heading */
.u-underline{ box-shadow: inset 0 -0.25em 0 rgba(179,141,11,.35); transition: box-shadow .25s ease; }
.u-underline:hover{ box-shadow: inset 0 -0.7em 0 rgba(179,141,11,.5); }

/* =========================================================
   10) READABILITY POLISH
   ========================================================= */
a{ text-underline-offset:2px; text-decoration-thickness:from-font; }
a:hover{ color:var(--brand-gold); text-decoration-thickness:2px; }
.entry-content h2, .entry-content h3{ color: var(--brand-blue); margin:1.2em 0 .6em; }
.entry-content p{ line-height:1.6; margin:.85em 0; }
.entry-content ul, .entry-content ol{ margin:.5em 0 .9em 1.25em; }
.entry-content li{ margin:.35em 0; }
.entry-content .key-takeaway{
  background: linear-gradient(0deg, rgba(202,217,230,.45), rgba(202,217,230,.45));
  border-left:4px solid var(--brand-gold);
  padding:.75rem .9rem; border-radius:8px; margin:.75rem 0; font-weight:600;
}
/* Make any full-width blocks truly edge-to-edge on Home */
.home .entry-content .alignfull{
  width:100vw; max-width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
}
/* Remove container padding that can cause a thin gutter on iPad */
.home .site-content .ast-container{ padding-left:0; padding-right:0; }
/* Force Talk-to-Us vertical widget to horizontal on ≤1100px */
@media (max-width:1100px){
  .talkToUs, .talk-to-us,
  .talkToUs *, .talk-to-us *{
    transform: none !important;
    rotate: 0deg !important;
    writing-mode: horizontal-tb !important;
    white-space: nowrap !important;
  }
  .talkToUs, .talk-to-us{
    right: 12px !important;
    bottom: 30px !important;
    top: auto !important;
    width: auto !important;
    padding: 10px 14px !important;
    border-radius: 20px !important;
    letter-spacing: .5px !important;
    z-index: 40;
  }
}
/* CONTACT: make everything white, including the body */
.page-name-contact{ background:#fff !important; }
.page-name-contact .site,
.page-name-contact .site-content,
.page-name-contact .content-area,
.page-name-contact .ast-container,
.page-name-contact .entry-content,
.page-name-contact .site-footer,
.page-name-contact .footer-adv-overlay,
.page-name-contact .ast-footer-overlay{
  background:#fff !important;
}
.page-name-contact .wp-block-group.has-background{
  background:transparent !important; border:0 !important; box-shadow:none !important;
}
.page-name-contact .wp-block-group:last-child,
.page-name-contact section:last-child{
  margin-bottom:0 !important; padding-bottom:0 !important;
}

/* PRIVACY / DISCLAIMER: remove all theme borders/shadows, keep tidy width */
.page-name-privacy-policy .entry-content,
.page-name-disclaimer .entry-content{
  background:#fff;
  max-width:72ch; margin-inline:auto;
  padding: clamp(22px, 3.2vw, 36px);
  border:0 !important; box-shadow:none !important; outline:none !important;
}
/* Nuke any inner borders/shadows from blocks & Astra container */
.page-name-privacy-policy .entry-content .wp-block-group,
.page-name-privacy-policy .entry-content .wp-block-group.has-background,
.page-name-disclaimer .entry-content .wp-block-group,
.page-name-disclaimer .entry-content .wp-block-group.has-background,
.page-name-privacy-policy .entry-content *[class*="uagb"],
.page-name-disclaimer .entry-content *[class*="uagb"]{
  background:transparent !important; border:0 !important; box-shadow:none !important;
}
/* Optional: soft page backdrop; change to #fff for pure white page */
.page-name-privacy-policy .site,
.page-name-disclaimer .site{ background: var(--neutral-light); }

/* BLOG single: same clean “sheet”, no borders */
.single-post .entry-content{
  background:#fff;
  max-width:72ch; margin-inline:auto;
  padding: clamp(22px, 3.2vw, 36px);
  border:0 !important; box-shadow:none !important; outline:none !important;
}
.single-post .entry-content .wp-block-group,
.single-post .entry-content .wp-block-group.has-background{
  background:transparent !important; border:0 !important; box-shadow:none !important;
}