/* Stephanie West Header V3 — intentionally high-specificity to resist theme button/menu styles */
.swx3-header,
.swx3-header * { box-sizing: border-box; }
.swx3-header {
  --swx3-pink:#da0a6c;
  --swx3-pink-dark:#b00859;
  --swx3-blush:#fff7f9;
  --swx3-ink:#17283b;
  --swx3-muted:#526174;
  --swx3-line:#ecdde4;
  --swx3-white:#fff;
  position:relative;
  z-index:99990;
  width:100%;
  color:var(--swx3-ink);
  background:var(--swx3-white);
  font-family:Roboto,Arial,sans-serif;
  isolation:isolate;
}
.swx3-header--sticky { position:sticky; top:0; }
.admin-bar .swx3-header--sticky { top:32px; }
.swx3-header a,
.swx3-header button {
  -webkit-appearance:none !important;
  appearance:none !important;
  background:none !important;
  border:0 !important;
  border-radius:0;
  box-shadow:none !important;
  color:inherit;
  font:inherit;
  letter-spacing:normal;
  line-height:normal;
  margin:0 !important;
  text-decoration:none !important;
  text-transform:none !important;
}
.swx3-header button { cursor:pointer; padding:0 !important; }
.swx3-header ul,
.swx3-header ol,
.swx3-header li { list-style:none !important; margin:0 !important; padding:0 !important; }
.swx3-shell { width:min(1280px,calc(100% - 40px)); margin:0 auto; }

.swx3-utility { background:var(--swx3-blush); border-bottom:1px solid var(--swx3-line); }
.swx3-utility__inner { min-height:34px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.swx3-tagline { margin:0; color:var(--swx3-muted); font-size:12.5px; font-weight:600; line-height:1.3; }
.swx3-contact-links { display:flex; align-items:center; gap:20px; flex:0 0 auto; }
.swx3-header .swx3-contact-links > a { display:inline-flex; align-items:center; gap:7px; color:var(--swx3-ink) !important; font-size:13px; font-weight:700; white-space:nowrap; }
.swx3-header .swx3-contact-links > a:hover,
.swx3-header .swx3-contact-links > a:focus-visible { color:var(--swx3-pink) !important; }
.swx3-contact-links svg { width:14px; height:14px; color:var(--swx3-pink); flex:0 0 auto; }

.swx3-main { position:relative; background:var(--swx3-white); border-bottom:1px solid var(--swx3-line); }
.swx3-main__inner { min-height:80px; display:flex; align-items:center; gap:26px; }
.swx3-header .swx3-brand { display:flex; flex-direction:column; flex:0 0 auto; min-width:232px; color:var(--swx3-ink) !important; }
.swx3-brand__name { display:block; font-size:28px; font-weight:780; line-height:1; letter-spacing:-.035em; }
.swx3-brand__role { display:block; margin-top:7px; color:var(--swx3-pink); font-size:10.5px; font-weight:850; line-height:1.2; letter-spacing:.13em; text-transform:uppercase; }

.swx3-panel { margin-left:auto; display:flex; align-items:center; min-width:0; }
.swx3-panel__head,
.swx3-mobile-actions { display:none; }
.swx3-nav { display:block; min-width:0; }
.swx3-header .swx3-menu { display:flex !important; align-items:center; justify-content:flex-end; gap:2px; margin:0 !important; padding:0 !important; }
.swx3-header .swx3-menu > li { position:relative; display:flex !important; align-items:center; }
.swx3-header .swx3-menu > li > a {
  position:relative;
  display:flex !important;
  align-items:center;
  min-height:44px;
  padding:0 11px !important;
  border-radius:10px !important;
  background:transparent !important;
  color:var(--swx3-ink) !important;
  font-size:14px !important;
  font-weight:680 !important;
  line-height:1.1 !important;
  white-space:nowrap;
  transition:background .16s ease,color .16s ease;
}
.swx3-header .swx3-menu > li.menu-item-has-children > a { padding-right:28px !important; }
.swx3-header .swx3-menu > li.menu-item-has-children > a::after {
  content:"";
  position:absolute;
  right:11px;
  top:50%;
  width:7px;
  height:7px;
  border-right:1.7px solid currentColor;
  border-bottom:1.7px solid currentColor;
  transform:translateY(-68%) rotate(45deg);
  transition:transform .16s ease;
}
.swx3-header .swx3-menu > li:hover > a,
.swx3-header .swx3-menu > li:focus-within > a,
.swx3-header .swx3-menu > li.current-menu-item > a,
.swx3-header .swx3-menu > li.current-menu-ancestor > a {
  color:var(--swx3-pink) !important;
  background:var(--swx3-blush) !important;
}
.swx3-header .swx3-menu > li:hover > a::after,
.swx3-header .swx3-menu > li:focus-within > a::after { transform:translateY(-22%) rotate(225deg); }

.swx3-header .swx3-menu .sub-menu {
  position:absolute !important;
  top:calc(100% + 10px);
  left:0;
  z-index:20;
  display:block !important;
  min-width:278px;
  padding:10px !important;
  background:var(--swx3-white) !important;
  border:1px solid var(--swx3-line) !important;
  border-radius:16px !important;
  box-shadow:0 18px 50px rgba(23,40,59,.14) !important;
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  pointer-events:none;
  transition:opacity .16s ease,transform .16s ease,visibility .16s ease;
}
.swx3-header .swx3-menu > li:last-child > .sub-menu,
.swx3-header .swx3-menu > li:nth-last-child(2) > .sub-menu { left:auto; right:0; }
.swx3-header .swx3-menu li:hover > .sub-menu,
.swx3-header .swx3-menu li:focus-within > .sub-menu,
.swx3-header .swx3-menu li.swx3-desktop-open > .sub-menu {
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  pointer-events:auto;
}
.swx3-header .swx3-menu .sub-menu li { position:relative; display:block !important; }
.swx3-header .swx3-menu .sub-menu a {
  display:block !important;
  padding:10px 12px !important;
  border-radius:9px !important;
  background:transparent !important;
  color:var(--swx3-ink) !important;
  font-size:13.5px !important;
  font-weight:580 !important;
  line-height:1.28 !important;
  white-space:normal;
  transition:background .15s ease,color .15s ease,transform .15s ease;
}
.swx3-header .swx3-menu .sub-menu a:hover,
.swx3-header .swx3-menu .sub-menu a:focus-visible,
.swx3-header .swx3-menu .sub-menu .current-menu-item > a {
  color:var(--swx3-pink) !important;
  background:var(--swx3-blush) !important;
  transform:translateX(2px);
}
.swx3-header .swx3-menu .sub-menu .sub-menu { top:-10px; left:calc(100% + 8px); }
.swx3-header .swx3-menu > li.swx3-menu-item--wide > .sub-menu {
  width:540px;
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:2px 8px;
}

.swx3-header .swx3-menu > li.swx3-menu-item--book > a,
.swx3-header .swx3-book {
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
  min-height:46px;
  padding:0 22px !important;
  border-radius:999px !important;
  background:var(--swx3-pink) !important;
  color:#fff !important;
  font-size:14px !important;
  font-weight:780 !important;
  white-space:nowrap;
  transition:background .16s ease,transform .16s ease,box-shadow .16s ease;
}
.swx3-header .swx3-menu > li.swx3-menu-item--book > a::after { display:none; }
.swx3-header .swx3-menu > li.swx3-menu-item--book > a:hover,
.swx3-header .swx3-menu > li.swx3-menu-item--book > a:focus-visible,
.swx3-header .swx3-book:hover,
.swx3-header .swx3-book:focus-visible {
  background:var(--swx3-pink-dark) !important;
  color:#fff !important;
  transform:translateY(-1px);
  box-shadow:0 8px 22px rgba(218,10,108,.22) !important;
}
.swx3-header .swx3-book { margin-left:12px !important; flex:0 0 auto; }
.swx3-menu-toggle,
.swx3-overlay { display:none !important; }
.swx3-submenu-toggle { display:none !important; }
.swx3-menu-notice { margin:0; padding:12px 16px; border-radius:10px; background:#fff5d8; color:#654d00; font-size:13px; }

@media (max-width:1180px) {
  .swx3-shell { width:min(1180px,calc(100% - 28px)); }
  .swx3-main__inner { gap:16px; }
  .swx3-header .swx3-brand { min-width:204px; }
  .swx3-brand__name { font-size:25px; }
  .swx3-header .swx3-menu > li > a { padding-left:8px !important; padding-right:8px !important; font-size:13px !important; }
  .swx3-header .swx3-menu > li.menu-item-has-children > a { padding-right:23px !important; }
  .swx3-header .swx3-menu > li.menu-item-has-children > a::after { right:8px; }
  .swx3-header .swx3-book { padding:0 17px !important; margin-left:6px !important; }
}

@media (max-width:1040px) {
  .swx3-header--sticky { top:0; }
  .admin-bar .swx3-header--sticky { top:32px; }
  .swx3-utility__inner { min-height:32px; }
  .swx3-tagline { font-size:12px; }
  .swx3-contact-email { display:none !important; }
  .swx3-main__inner { min-height:68px; justify-content:space-between; }
  .swx3-header .swx3-brand { min-width:0; }
  .swx3-brand__name { font-size:24px; }
  .swx3-brand__role { margin-top:5px; font-size:9.5px; }
  .swx3-header .swx3-menu-toggle {
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:42px;
    padding:0 15px !important;
    border:1px solid var(--swx3-line) !important;
    border-radius:999px !important;
    background:var(--swx3-white) !important;
    color:var(--swx3-ink) !important;
    font-size:14px !important;
    font-weight:750 !important;
  }
  .swx3-menu-toggle__icon { width:19px; height:19px; color:var(--swx3-pink); }
  .swx3-header .swx3-book { display:none !important; }
  .swx3-panel {
    position:fixed;
    top:0;
    right:0;
    z-index:100002;
    width:min(390px,100%);
    height:100vh;
    height:100dvh;
    margin:0;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    background:var(--swx3-white);
    border-left:1px solid var(--swx3-line);
    box-shadow:-20px 0 60px rgba(23,40,59,.18);
    transform:translateX(105%);
    visibility:hidden;
    transition:transform .24s ease,visibility .24s ease;
    overflow:hidden;
  }
  .admin-bar .swx3-panel { top:32px; height:calc(100dvh - 32px); }
  .swx3-header.swx3-mobile-open .swx3-panel { transform:translateX(0); visibility:visible; }
  .swx3-panel__head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    min-height:78px;
    padding:16px 18px;
    border-bottom:1px solid var(--swx3-line);
    background:var(--swx3-blush);
  }
  .swx3-panel__head > div { display:flex; flex-direction:column; gap:3px; }
  .swx3-panel__head strong { color:var(--swx3-ink); font-size:18px; line-height:1.1; }
  .swx3-panel__head span { color:var(--swx3-muted); font-size:12px; }
  .swx3-header .swx3-panel-close {
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    width:42px;
    height:42px;
    border:1px solid var(--swx3-line) !important;
    border-radius:50% !important;
    background:var(--swx3-white) !important;
    color:var(--swx3-ink) !important;
  }
  .swx3-panel-close svg { width:20px; height:20px; }
  .swx3-nav { flex:1 1 auto; overflow:auto; overscroll-behavior:contain; padding:10px 16px 22px; }
  .swx3-header .swx3-menu { display:block !important; width:100%; }
  .swx3-header .swx3-menu > li { display:grid !important; grid-template-columns:1fr auto; align-items:center; border-bottom:1px solid var(--swx3-line); }
  .swx3-header .swx3-menu > li > a {
    min-height:55px;
    padding:0 6px !important;
    border-radius:0 !important;
    color:var(--swx3-ink) !important;
    font-size:16px !important;
    font-weight:690 !important;
  }
  .swx3-header .swx3-menu > li.menu-item-has-children > a { padding-right:6px !important; }
  .swx3-header .swx3-menu > li.menu-item-has-children > a::after { display:none; }
  .swx3-header .swx3-menu > li:hover > a,
  .swx3-header .swx3-menu > li:focus-within > a { background:transparent !important; }
  .swx3-header .swx3-submenu-toggle {
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    width:44px;
    height:44px;
    border-radius:50% !important;
    color:var(--swx3-pink) !important;
  }
  .swx3-submenu-toggle svg { width:17px; height:17px; transition:transform .18s ease; }
  .swx3-menu li.swx3-mobile-submenu-open > .swx3-submenu-toggle svg { transform:rotate(180deg); }
  .swx3-header .swx3-menu .sub-menu,
  .swx3-header .swx3-menu > li.swx3-menu-item--wide > .sub-menu {
    position:static !important;
    grid-column:1 / -1;
    width:100%;
    min-width:0;
    display:block !important;
    max-height:0;
    padding:0 0 0 12px !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    opacity:1;
    visibility:visible;
    transform:none;
    pointer-events:auto;
    overflow:hidden;
    transition:max-height .24s ease,padding-bottom .24s ease;
  }
  .swx3-header .swx3-menu li.swx3-mobile-submenu-open > .sub-menu { max-height:1200px; padding-bottom:10px !important; }
  .swx3-header .swx3-menu .sub-menu li { border-left:2px solid var(--swx3-line); }
  .swx3-header .swx3-menu .sub-menu a {
    padding:10px 12px !important;
    border-radius:8px !important;
    font-size:14px !important;
    line-height:1.3 !important;
  }
  .swx3-header .swx3-menu .sub-menu .sub-menu { margin-left:8px !important; }
  .swx3-header .swx3-menu > li.swx3-menu-item--book { display:block !important; margin-top:14px !important; border:0; }
  .swx3-header .swx3-menu > li.swx3-menu-item--book > a {
    justify-content:center;
    min-height:50px;
    padding:0 20px !important;
    border-radius:999px !important;
    font-size:15px !important;
  }
  .swx3-mobile-actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:14px 16px calc(14px + env(safe-area-inset-bottom)); border-top:1px solid var(--swx3-line); background:var(--swx3-white); }
  .swx3-header .swx3-mobile-actions > a { display:flex !important; align-items:center; justify-content:center; min-height:48px; padding:0 12px !important; border-radius:999px !important; font-size:13.5px !important; font-weight:760 !important; }
  .swx3-header .swx3-mobile-call { border:1px solid var(--swx3-pink) !important; color:var(--swx3-pink) !important; }
  .swx3-header .swx3-mobile-book { background:var(--swx3-pink) !important; color:#fff !important; }
  .swx3-header .swx3-overlay {
    position:fixed;
    inset:0;
    z-index:100001;
    display:block !important;
    width:100%;
    height:100%;
    background:rgba(15,28,43,.42) !important;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .24s ease,visibility .24s ease;
  }
  .swx3-header.swx3-mobile-open .swx3-overlay { opacity:1; visibility:visible; pointer-events:auto; }
  body.swx3-menu-lock { overflow:hidden; }
}

@media (max-width:767px) {
  .admin-bar .swx3-header--sticky { top:46px; }
  .admin-bar .swx3-panel { top:46px; height:calc(100dvh - 46px); }
  .swx3-utility { display:none; }
  .swx3-shell { width:calc(100% - 24px); }
  .swx3-main__inner { min-height:64px; }
  .swx3-brand__name { font-size:22px; }
  .swx3-brand__role { font-size:8.7px; letter-spacing:.11em; }
  .swx3-header .swx3-menu-toggle { min-height:40px; padding:0 13px !important; }
  .swx3-menu-toggle__text { font-size:13px; }
}

@media (max-width:390px) {
  .swx3-brand__name { font-size:20px; }
  .swx3-brand__role { max-width:190px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .swx3-menu-toggle__text { display:none; }
  .swx3-header .swx3-menu-toggle { width:42px; padding:0 !important; border-radius:50% !important; }
}

@media (prefers-reduced-motion:reduce) {
  .swx3-header *, .swx3-header *::before, .swx3-header *::after { scroll-behavior:auto !important; transition:none !important; }
}
