/* =====================================================
   PHC PRO – MASTER STYLESHEET v1.0
   Matches block editor via editor-style.css
   ===================================================== */

@import url('https://fonts.googleapis.com/css2?family=Aptos:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400;1,600&display=swap');

/* ── 1. CSS CUSTOM PROPERTIES ── */
:root {
  --or:         #ff915a;
  --or-dark:    #e67d3f;
  --or-light:   rgba(255,145,90,.12);
  --or-glow:    rgba(255,145,90,.28);
  --gn:         #8bc38b;
  --gn-dark:    #6aaa6a;
  --gn-light:   rgba(139,195,139,.15);
  --yl:         #fdf4aa;
  --dk:         #111827;
  --mid:        rgba(17,24,39,.52);
  --bd:         #e5e7eb;
  --bg:         #f9fafb;
  --white:      #ffffff;
  --ps:         #4a9e4a;
  --nu:         #a08900;
  --mc:         #c0607a;
  --md:         #3a72b0;

  /* Shadows */
  --shadow-sm:  0 1px 4px rgba(0,0,0,.06);
  --shadow-md:  0 4px 16px rgba(0,0,0,.08);
  --shadow-lg:  0 10px 40px rgba(0,0,0,.12);
  --shadow-or:  0 4px 20px rgba(255,145,90,.26);
  --shadow-or-lg: 0 8px 32px rgba(255,145,90,.38);

  /* Radii */
  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 18px;
  --r-xl: 24px;
  --r-full: 100px;

  /* Transitions */
  --t-fast: 150ms ease;
  --t-mid:  250ms ease;
  --t-slow: 400ms ease;

  /* Spacing */
  --sp-xs:  0.5rem;
  --sp-sm:  1rem;
  --sp-md:  1.5rem;
  --sp-lg:  2rem;
  --sp-xl:  3rem;
  --sp-2xl: 4rem;
  --sp-3xl: 5rem;

  /* Typography */
  --font-base: 'Aptos', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --fs-xs:   0.6rem;
  --fs-sm:   0.78rem;
  --fs-base: 1rem;
  --fs-md:   1.05rem;
  --fs-lg:   1.25rem;
  --fs-xl:   1.5rem;
  --fs-2xl:  2rem;
  --fs-3xl:  2.5rem;
  --fs-4xl:  3rem;
  --fs-hero: clamp(1.8rem, 5vw, 3rem);

  /* Safety Net banner height offset — set via JS when banner is present */
  --phcsn-banner-h: 0px;
}

/* ── 2. RESET & BASE ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html {
  scroll-behavior: smooth;
  /* Prevent iOS Safari from inflating font sizes on orientation change */
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
body {
  font-family: var(--font-base);
  color: var(--dk);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  line-height: 1.6;
  /* Prevent tap flash on interactive elements in mobile WebKit */
  -webkit-tap-highlight-color: transparent;
}
a { text-decoration: none; color: inherit; }
img { max-width: 100%; height: auto; display: block; }
ul, ol { list-style: none; }

/* Focus-visible: show outline for keyboard users, hide for mouse */
:focus { outline: none; }
:focus-visible {
  outline: 2px solid var(--or);
  outline-offset: 3px;
  border-radius: 3px;
}

/* Scope button reset to theme elements only — prevents overriding CoBlocks/WooCommerce buttons */
.site-header button,
.phc-faq-btn,
.phc-cookie-btn,
.phc-share-btn,
#phc-back-to-top,
.nav-toggle { font-family: var(--font-base); cursor: pointer; }

/* Touch-action: allow momentum scroll on mobile; prevent double-tap zoom on buttons */
.btn, .nav-cta-btn, .phc-btn, .phc-cta-btn,
.wp-block-button__link, button {
  touch-action: manipulation;
}

/* ── 3. LAYOUT HELPERS ── */
.phc-wrap {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 clamp(1.2rem, 5vw, 2.8rem);
}

/* ── 4. KEYFRAME ANIMATIONS ── */

/* Blob morphing – GPU-composited via transform+border-radius only */
@keyframes blob1 {
  0%,100% { border-radius: 60% 40% 52% 48% / 44% 58% 42% 56%; transform: translate(-50%,-50%) scale(1); }
  33%     { border-radius: 45% 55% 65% 35% / 55% 40% 60% 45%; transform: translate(-50%,-50%) scale(1.04); }
  66%     { border-radius: 70% 30% 40% 60% / 38% 65% 35% 62%; transform: translate(-50%,-50%) scale(.97); }
}
@keyframes blob2 {
  0%,100% { border-radius: 44% 56% 38% 62% / 58% 42% 58% 42%; transform: translate(-50%,-50%) scale(1); }
  50%     { border-radius: 55% 45% 60% 40% / 45% 60% 40% 55%; transform: translate(-50%,-50%) scale(1.06); }
}
@keyframes blob3 {
  0%,100% { border-radius: 50% 50% 50% 50% / 50% 50% 50% 50%; transform: translate(-50%,-50%) scale(1); }
  40%     { border-radius: 65% 35% 45% 55% / 42% 58% 42% 58%; transform: translate(-50%,-50%) scale(1.08); }
  80%     { border-radius: 35% 65% 55% 45% / 60% 40% 60% 40%; transform: translate(-50%,-50%) scale(.95); }
}
/* Promote blob layers to own compositor layer → no main-thread layout */
.phc-blob-1, .phc-blob-2, .phc-blob-3 { will-change: transform, border-radius; }

/* Float / bob */
@keyframes bob {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-7px); }
}
@keyframes bob-gentle {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-4px); }
}

/* Ripple ring */
@keyframes ring {
  0%   { transform: scale(1); opacity: .4; }
  100% { transform: scale(1.55); opacity: 0; }
}

/* Fade up */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes slideLeft {
  from { opacity: 0; transform: translateX(20px); }
  to   { opacity: 1; transform: translateX(0); }
}

/* Bounce */
@keyframes bounce {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-5px); }
}

/* Pulse */
@keyframes pulse {
  0%,100% { opacity: 1; }
  50%     { opacity: .6; }
}

/* Spin slow */
@keyframes spinSlow {
  to { transform: rotate(360deg); }
}

/* Gradient shift */
@keyframes gradShift {
  0%,100% { background-position: 0% 50%; }
  50%     { background-position: 100% 50%; }
}

/* ── 5. SCROLL ANIMATION UTILITY ── */
.phc-reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .55s ease, transform .55s ease;
}
.phc-reveal.phc-visible {
  opacity: 1;
  transform: translateY(0);
}
.phc-reveal-left {
  opacity: 0;
  transform: translateX(-20px);
  transition: opacity .5s ease, transform .5s ease;
}
.phc-reveal-left.phc-visible { opacity: 1; transform: translateX(0); }
.phc-reveal-right {
  opacity: 0;
  transform: translateX(20px);
  transition: opacity .5s ease, transform .5s ease;
}
.phc-reveal-right.phc-visible { opacity: 1; transform: translateX(0); }

/* Stagger children */
.phc-stagger > *:nth-child(1) { transition-delay: .05s; }
.phc-stagger > *:nth-child(2) { transition-delay: .10s; }
.phc-stagger > *:nth-child(3) { transition-delay: .15s; }
.phc-stagger > *:nth-child(4) { transition-delay: .20s; }
.phc-stagger > *:nth-child(5) { transition-delay: .25s; }
.phc-stagger > *:nth-child(6) { transition-delay: .30s; }
.phc-stagger > *:nth-child(7) { transition-delay: .35s; }
.phc-stagger > *:nth-child(8) { transition-delay: .40s; }

/* ── 6. HEADER ── */
.site-header {
  background: var(--white);
  border-bottom: 1px solid rgba(0,0,0,.07);
  position: sticky;
  top: var(--phcsn-banner-h, 0px); /* banner-aware: shifts down when Safety Net banner is visible */
  z-index: 9900;
  box-shadow: 0 1px 8px rgba(0,0,0,.06);
  transition: box-shadow var(--t-mid);
}
.site-header.scrolled { box-shadow: 0 2px 20px rgba(0,0,0,.1); }

/* ── Alert-bar guard ──────────────────────────────────────────────────────────
   Any dismissible notice / alert injected into page content (Gutenberg HTML
   blocks, plugin banners) that uses position:sticky or :fixed with top:0 must
   stay BELOW the sticky header (z-index:9900). Cap them at 9800 so the header
   always wins without disrupting the skip-link or cookie banner above 9900.   */
.site-content [style*="position:sticky"],
.site-content [style*="position: sticky"],
.site-content [style*="position:fixed"],
.site-content [style*="position: fixed"] {
  z-index: 9800 !important;
}

.site-header .header-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 clamp(1rem, 3vw, 2rem);
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 80px;
  gap: 1.5rem;
}

/* ── Branding ──
   The entire branding block is a single <a> tag.
   No h1/p elements → WordPress's global-styles h1/p rules cannot interfere.
   No the_custom_logo() figure wrapper → no display:table from block-library. */
a.site-branding,
.site-branding {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-shrink: 0;
  flex-grow: 0;
  text-decoration: none;
  color: inherit;
}
a.site-branding:hover { text-decoration: none; }
img.site-logo {
  height: 56px;
  width: auto;
  display: block;
  flex-shrink: 0;
}
.site-branding-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 2px;
  min-width: 0;
}
.site-title {
  display: block;
  font-size: clamp(.92rem, 2vw, 1.08rem);
  font-weight: 700;
  color: var(--dk);
  line-height: 1.2;
  white-space: nowrap;
  text-align: left;
}
a.site-branding:hover .site-title { color: var(--or); }
.site-description {
  display: block;
  font-size: .58rem;
  color: var(--mid);
  font-weight: 500;
  letter-spacing: .04em;
  line-height: 1.2;
  white-space: nowrap;
  text-align: left;
}

/* Primary nav */
.site-nav {
  display: flex;
  align-items: center;
  gap: clamp(.1rem, .8vw, .5rem);
  flex-wrap: nowrap;
}
.site-nav ul {
  display: flex;
  align-items: center;
  gap: clamp(.1rem, .8vw, .5rem);
  flex-wrap: nowrap;
  list-style: none;
  margin: 0;
  padding: 0;
}
.site-nav li { position: relative; margin: 0; padding: 0; }
.site-nav a {
  font-size: clamp(.82rem, .95vw, .92rem);
  font-weight: 600;
  color: #374151;
  padding: .28rem .18rem .2rem;
  border-bottom: 2px solid transparent;
  transition: color var(--t-fast), border-color var(--t-fast);
  white-space: nowrap;
  display: block;
}
.site-nav a:hover,
.site-nav .current-menu-item > a,
.site-nav .current_page_item > a {
  color: var(--or);
  border-bottom-color: var(--or);
}

/* Dropdown */
.site-nav li ul {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background: var(--white);
  border-radius: var(--r-md);
  box-shadow: var(--shadow-lg);
  min-width: 180px;
  padding: .5rem 0;
  flex-direction: column;
  gap: 0;
  z-index: 200;
  border: 1px solid var(--bd);
}
.site-nav li:hover > ul { display: flex; }
.site-nav li ul a {
  display: block;
  padding: .55rem 1rem;
  border-bottom: none;
  font-size: .78rem;
  border-radius: 0;
  position: relative; /* Anchor for nested ::after chevron */
}
.site-nav li ul a:hover { background: var(--bg); color: var(--or); }

/* Dropdown indicator – chevron on parent items that have children */
.site-nav .menu-item-has-children > a::after {
  content: '';
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  margin-left: 5px;
  vertical-align: middle;
  opacity: 0.55;
  transition: transform var(--t-fast), opacity var(--t-fast);
}
.site-nav .menu-item-has-children:hover > a::after {
  transform: rotate(180deg);
  opacity: 1;
}
/* Nested (2nd-level) parent chevron points right — positioned absolutely, no float */
.site-nav li ul .menu-item-has-children > a::after {
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 5px solid currentColor;
  border-right: none;
  position: absolute;
  right: 0.75rem;
  top: 50%;
  transform: translateY(-50%);
  margin-left: 0;
  margin-top: 0;
}
.site-nav li ul .menu-item-has-children:hover > a::after {
  transform: translateY(-50%);
  opacity: 1;
}

/* Book button */
.nav-book {
  background: var(--or) !important;
  color: var(--white) !important;
  padding: .48rem clamp(.5rem, .8vw, .9rem) !important;
  border-radius: var(--r-full);
  border-bottom: none !important;
  box-shadow: var(--shadow-or);
  transition: transform var(--t-fast), box-shadow var(--t-fast) !important;
}
.nav-book:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-or-lg) !important;
  color: var(--white) !important;
}

/* Mobile toggle */
.nav-toggle {
  display: none;
  background: none;
  border: none;
  padding: .3rem;
  color: #374151;
  cursor: pointer;
}

/* Mobile menu */
.mobile-nav {
  display: none;
  background: var(--white);
  border-top: 1px solid var(--bd);
  padding: clamp(.8rem, 2vw, 1rem);
}
.mobile-nav.open { display: block; }
.mobile-nav ul { list-style: none; margin: 0; padding: 0; }
.mobile-nav a {
  display: block;
  padding: clamp(.5rem, 1.5vw, .7rem) clamp(.8rem, 2vw, 1rem);
  font-size: clamp(.85rem, 1.8vw, .9rem);
  font-weight: 600;
  color: #374151;
  border-bottom: 1px solid #f3f4f6;
}
.mobile-nav a:hover { color: var(--or); background: #fff8f5; }

@media (max-width: 900px) {
  .site-nav { display: none; }
  .nav-toggle { display: block; }
}

/* ── 7. FOOTER ── */
.site-footer {
  background: linear-gradient(135deg, #1f2937 0%, #111827 100%);
  color: rgba(255,255,255,.8);
  margin-top: var(--sp-3xl);
}
.footer-widgets {
  max-width: 1100px;
  margin: 0 auto;
  padding: var(--sp-xl) clamp(1.2rem, 5vw, 2.8rem);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--sp-lg);
}
.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.1);
  padding: var(--sp-sm) clamp(1.2rem, 5vw, 2.8rem);
  max-width: 1100px;
  margin: 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
}
.footer-copy { font-size: .8rem; color: rgba(255,255,255,.55); }
.footer-nav { display: flex; gap: 1.2rem; flex-wrap: wrap; }
.footer-nav a { font-size: .8rem; color: rgba(255,255,255,.55); transition: color var(--t-fast); }
.footer-nav a:hover { color: var(--or); }
.widget-title { font-size: clamp(.68rem, 1.5vw, .78rem); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.4); margin-bottom: clamp(.6rem, 1.5vw, .75rem); }
.site-footer .widget a { color: rgba(255,255,255,.7); }
.site-footer .widget a:hover { color: var(--or); }
.site-footer .widget ul li { border-bottom: 1px solid rgba(255,255,255,.07); padding: clamp(.3rem, 1vw, .4rem) 0; font-size: clamp(.8rem, 1.5vw, .85rem); }

/* ── 8. LABEL / SECTION PILL ── */
.phc-label {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: clamp(.6rem, 1.5vw, .9rem);
}
.phc-label-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: var(--or);
  flex-shrink: 0;
}
.phc-label-text {
  font-size: .6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .16em;
  color: var(--or);
}

/* ── 9. SECTION HEADINGS ── */
.phc-h2 {
  font-size: var(--fs-hero);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -.03em;
  color: var(--dk);
}
.phc-h2 em { font-style: italic; color: var(--or); }

/* ── 10. BUTTONS ── */
.phc-btn {
  display: inline-flex;
  align-items: center;
  gap: .48rem;
  background: var(--or);
  color: var(--white);
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: .76rem 1.6rem;
  border-radius: var(--r-full);
  box-shadow: var(--shadow-or);
  transition: transform var(--t-fast), box-shadow var(--t-fast);
  border: none;
  cursor: pointer;
}
.phc-btn:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-or-lg);
  color: var(--white);
}
.phc-btn svg { width: 13px; height: 13px; flex-shrink: 0; }
.phc-btn-outline {
  background: transparent;
  border: 2px solid var(--or);
  color: var(--or);
  box-shadow: none;
}
.phc-btn-outline:hover { background: var(--or); color: var(--white); }
.phc-btn-green { background: var(--gn-dark); box-shadow: 0 4px 16px rgba(106,170,106,.3); }
.phc-btn-green:hover { box-shadow: 0 8px 28px rgba(106,170,106,.45); color: var(--white); }

/* ── 11. HERO SECTION ── */
.phc-hero {
  padding: clamp(1rem, 3vw, 2rem) 0;
  overflow: hidden;
  position: relative;
}
.phc-hero-inner {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: clamp(1rem, 3vw, 2.5rem);
  align-items: center;
}

/* Text column */
.phc-hero-text { min-width: 0; overflow-wrap: break-word; word-break: break-word; }
.phc-hero-sub {
  font-size: clamp(.88rem, 2.3vw, 1.02rem);
  color: var(--mid);
  line-height: 1.75;
  max-width: 450px;
  margin-bottom: 1.2rem;
}
.phc-hero-sub strong { color: var(--dk); }
.phc-hero-ticks {
  display: flex;
  gap: 1.1rem;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}
.phc-tick {
  display: flex;
  align-items: center;
  gap: .38rem;
  font-size: .7rem;
  font-weight: 600;
  color: var(--mid);
}
.phc-tick-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  flex-shrink: 0;
  background: var(--or);
}
.phc-tick-dot.gn { background: var(--gn); }

/* Photo / visual column */
.phc-hero-visual {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: .4rem 2rem;
}
.phc-photo-outer {
  position: relative;
  width: clamp(240px, 35vw, 330px);
  height: clamp(310px, 44vw, 400px);
  overflow: visible;
}

/* Blob layers */
.phc-blob-1 {
  position: absolute;
  width: 88%; height: 82%;
  background: var(--yl);
  top: 44%; left: 50%;
  border-radius: 60% 40% 52% 48% / 44% 58% 42% 56%;
  transform: translate(-50%,-50%) scale(1);
  animation: blob1 2.8s ease-in-out infinite;
  z-index: 0;
}
.phc-blob-2 {
  position: absolute;
  width: 72%; height: 68%;
  background: rgba(255,145,90,.18);
  top: 44%; left: 50%;
  border-radius: 44% 56% 38% 62% / 58% 42% 58% 42%;
  transform: translate(-50%,-50%) scale(1);
  animation: blob2 2.2s ease-in-out infinite;
  animation-delay: .7s;
  z-index: 0;
}
.phc-blob-3 {
  position: absolute;
  width: 60%; height: 56%;
  background: rgba(139,195,139,.2);
  top: 44%; left: 50%;
  border-radius: 50% 50% 50% 50% / 50% 50% 50% 50%;
  transform: translate(-50%,-50%) scale(1);
  animation: blob3 3.4s ease-in-out infinite;
  animation-delay: 1.2s;
  z-index: 0;
}

/* Photo circle */
.phc-photo-circle {
  position: absolute;
  top: 46%; left: 50%;
  transform: translate(-50%, -58%);
  z-index: 1;
  border-radius: 50%;
  overflow: hidden;
  /* Safari/iOS: overflow:hidden on border-radius breaks on position:absolute.
     -webkit-mask-image forces a compositing layer that makes the clip work.  */
  -webkit-mask-image: -webkit-radial-gradient(white, black);
  mask-image: radial-gradient(white, black);
  width: clamp(150px, 22vw, 210px);
  height: clamp(150px, 22vw, 210px);
  border: 5px solid var(--white);
  box-shadow: var(--shadow-lg);
  background: #f0ede8;
}
.phc-photo-circle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  /* Safari fix: explicit display:block prevents inline baseline gap */
  display: block;
}

/* Floating pill badges */
.phc-badge {
  position: absolute;
  background: var(--white);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: var(--r-full);
  padding: .3rem .75rem;
  display: flex;
  align-items: center;
  gap: .35rem;
  font-size: .6rem;
  font-weight: 700;
  color: var(--dk);
  white-space: nowrap;
  z-index: 3;
  box-shadow: 0 2px 10px rgba(0,0,0,.08);
}
.phc-badge-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--gn); flex-shrink: 0; }
.phc-badge-dot.or { background: var(--or); }
.phc-badge-dot.gn { background: var(--gn); }
.phc-badge-top    { top: 8%; left: 50%; transform: translateX(-50%); animation: none; }
.phc-badge-right  { bottom: 40%; right: -12%; animation: none; }
.phc-badge-left   { bottom: 40%; left: -12%; animation: none; }
.phc-badge-bottom { display: none; }

/* Profile card (inside photo-outer) */
.phc-photo-card {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: var(--white);
  border: 1px solid rgba(255,145,90,.18);
  border-top: 3px solid var(--or);
  border-radius: 0 0 14px 14px;
  padding: .55rem .8rem .6rem;
  text-align: center;
  z-index: 3;
  box-shadow: 0 4px 18px rgba(0,0,0,.1);
}
.phc-photo-card-name  { font-size: .96rem; font-weight: 700; color: var(--dk); }
.phc-photo-card-cred  { font-size: .72rem; color: var(--mid); margin-top: .07rem; letter-spacing: .04em; }
.phc-photo-card-spec  { display: inline-block; font-size: .68rem; font-weight: 700; color: var(--or); text-transform: uppercase; letter-spacing: .1em; margin-top: .3rem; background: rgba(255,145,90,.08); border: 1px solid rgba(255,145,90,.2); border-radius: var(--r-full); padding: .16rem .55rem; }
.phc-stats-row        { display: flex; background: var(--gn); border-radius: 7px; margin-top: .5rem; overflow: hidden; border: 1px solid rgba(0,0,0,.07); }
.phc-stat-item        { flex: 1; padding: .38rem .35rem; text-align: center; border-right: 1px solid rgba(255,255,255,.2); }
.phc-stat-item:last-child { border-right: none; }
.phc-stat-n { font-size: 1.1rem; font-weight: 900; color: var(--white); line-height: 1; }
.phc-stat-l { font-size: .52rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.82); margin-top: .06rem; line-height: 1.3; }

/* Hero responsive */
@media (max-width: 780px) {
  .phc-hero-inner { display: flex; flex-direction: column; gap: 0; }
  .phc-hero-text  { width: 100%; }
  .phc-hero-sub   { max-width: 100%; }

  /* Visual column: centre within padded space.
     padding: 0 2rem (not 2.8rem) gives more horizontal room for the circle.
     margin-top: 2rem: enough clearance for badge-top which sits at top:12%.  */
  .phc-hero-visual { width: 100%; margin-top: 2rem; padding: 0 2rem; }

  /* photo-outer: taller to give vertical room; 280px wide fits most phones */
  .phc-photo-outer { margin: 0 auto; width: 100%; max-width: 280px; height: 340px; }

  /* Circle: minimum 175px so face fills the circle on narrow phones.
     At 280px photo-outer, 22vw on iPhone 12 (390px) = 85.8px → clamped to 175px.
     Positioning: top:44% of 340px = 149.6px, translate -50%/-58% of 175px =
     centre at 149.6 - 101.5 = 48.1px from top → circle top = 48.1-87.5 = -39px.
     To avoid clipping: shift top from 44% to 54% so centre is at 183.6px,
     circle top = 183.6 - 87.5 = 96.1px (safely inside 340px photo-outer).    */
  .phc-photo-circle {
    width: clamp(175px, 22vw, 210px);
    height: clamp(175px, 22vw, 210px);
    top: 54%;
  }

  /* Show face, not top of head — on portrait shots 15% from top centres on face */
  .phc-photo-circle img { object-position: center 15%; }

  .phc-badge { animation: none !important; }
  .phc-badge-top    { top: 10%;  left: 50%; }
  .phc-badge-right  { right: -24px; bottom: auto; top: 22%; }
  .phc-badge-left   { left: -24px;  bottom: auto; top: 22%; }
}

/* ── 12. CARDS GRID ── */
.phc-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: clamp(.9rem, 2vw, 1.2rem);
}
.phc-cards-grid-4 { grid-template-columns: repeat(4, 1fr); }
.phc-cards-grid-3 { grid-template-columns: repeat(3, 1fr); }
.phc-cards-grid-2 { grid-template-columns: repeat(2, 1fr); }

/* Card base */
.phc-card {
  background: var(--white);
  border: 1px solid var(--bd);
  border-radius: var(--r-lg);
  padding: clamp(1.2rem, 2.5vw, 1.7rem);
  transition: transform var(--t-mid), box-shadow var(--t-mid);
  position: relative;
  overflow: hidden;
}
.phc-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--bd);
  transition: background var(--t-mid);
}
.phc-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--shadow-lg);
}
.phc-card:hover::before { background: var(--or); }
.phc-card-accent-or::before { background: var(--or); }
.phc-card-accent-gn::before { background: var(--gn); }
.phc-card-accent-yl::before { background: var(--nu); }
.phc-card-accent-bl::before { background: var(--md); }

/* Icon box */
.phc-ibox {
  width: 44px; height: 44px;
  border-radius: 13px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: clamp(.9rem, 2vw, 1.2rem);
  flex-shrink: 0;
}
.phc-ibox svg {
  width: 22px; height: 22px;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}
.phc-ibox-or  { background: rgba(255,145,90,.12); } .phc-ibox-or  svg { stroke: var(--or); }
.phc-ibox-gn  { background: rgba(139,195,139,.15);} .phc-ibox-gn  svg { stroke: var(--gn-dark); }
.phc-ibox-yl  { background: rgba(253,244,170,.85);} .phc-ibox-yl  svg { stroke: var(--nu); }
.phc-ibox-bl  { background: rgba(74,134,200,.13); } .phc-ibox-bl  svg { stroke: var(--md); }
.phc-ibox-pk  { background: rgba(192,96,122,.12); } .phc-ibox-pk  svg { stroke: var(--mc); }
.phc-ibox-pu  { background: rgba(155,114,208,.13);} .phc-ibox-pu  svg { stroke: #8b5fc4; }
.phc-ibox-tl  { background: rgba(58,170,120,.12); } .phc-ibox-tl  svg { stroke: #2a9668; }

/* Card bar */
.phc-card-bar { width: 22px; height: 2.5px; border-radius: 2px; background: var(--bd); margin-bottom: .65rem; }
.phc-card-accent-or .phc-card-bar { background: rgba(255,145,90,.4); }
.phc-card-accent-gn .phc-card-bar { background: rgba(139,195,139,.6); }

.phc-card-title { font-size: clamp(.93rem, 1.9vw, 1.06rem); font-weight: 700; line-height: 1.25; margin-bottom: .48rem; color: var(--dk); }
.phc-card-body  { font-size: clamp(.76rem, 1.6vw, .86rem); line-height: 1.8; color: var(--mid); }

/* Card number */
.phc-card-num { font-size: .54rem; font-weight: 700; text-transform: uppercase; letter-spacing: .22em; color: rgba(17,24,39,.28); }

/* Featured / orange card */
.phc-card-featured {
  background: var(--or);
  border-color: var(--or);
  color: var(--white);
}
.phc-card-featured::before { background: rgba(255,255,255,.3); }
.phc-card-featured .phc-card-title,
.phc-card-featured .phc-card-body,
.phc-card-featured .phc-card-num { color: var(--white); }
.phc-card-featured .phc-ibox { background: rgba(255,255,255,.22); }
.phc-card-featured .phc-ibox svg { stroke: var(--white); }

/* Glass card */
.phc-card-glass {
  background: rgba(255,255,255,.7);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255,255,255,.5);
}

@media (max-width: 920px) { .phc-cards-grid-4 { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px) { .phc-cards-grid-4,.phc-cards-grid-3,.phc-cards-grid-2 { grid-template-columns: 1fr; } }

/* ── 13. SECTION WRAPPER ── */
.phc-section {
  padding: clamp(1.2rem, 3vw, 2rem) 0;
  margin: clamp(1.5rem, 4vw, 3rem) 0;
}
.phc-section-bg {
  background: var(--bg);
  border-radius: var(--r-xl);
  padding: clamp(2rem, 5vw, 4rem);
  margin: clamp(1.5rem, 4vw, 3rem) 0;
}
.phc-section-dark {
  background: var(--dk);
  color: var(--white);
  border-radius: var(--r-xl);
  padding: clamp(2rem, 5vw, 4rem);
  margin: clamp(1.5rem, 4vw, 3rem) 0;
}
.phc-section-gradient {
  background: linear-gradient(135deg, var(--or) 0%, #e06535 100%);
  color: var(--white);
  border-radius: var(--r-xl);
  padding: clamp(2rem, 5vw, 4rem);
  margin: clamp(1.5rem, 4vw, 3rem) 0;
}
.phc-section-blob {
  position: relative;
  overflow: hidden;
  padding: clamp(2rem, 5vw, 4rem);
  margin: clamp(1.5rem, 4vw, 3rem) 0;
}
.phc-blob-bg {
  position: absolute;
  border-radius: 50%;
  filter: blur(60px);
  opacity: .25;
  z-index: 0;
  pointer-events: none;
}
.phc-blob-bg-or { background: var(--or); }
.phc-blob-bg-gn { background: var(--gn); }
.phc-blob-bg-yl { background: var(--yl); }
.phc-section-blob > * { position: relative; z-index: 1; }

/* ── 14. HEAD ROW LAYOUT ── */
.phc-head-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
.phc-top-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: end;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}
@media (max-width: 860px) {
  .phc-head-row { grid-template-columns: 1fr; gap: 1.4rem; }
  .phc-top-row  { grid-template-columns: 1fr; gap: 1.4rem; }
}

/* ── 15. FAQ ACCORDION ── */
.phc-faq-list { display: flex; flex-direction: column; gap: .6rem; }
.phc-faq-item {
  border: 1px solid var(--bd);
  border-radius: var(--r-md);
  overflow: hidden;
  background: var(--white);
  transition: border-color .2s, box-shadow .2s;
  border-left-width: 4px;
}
.phc-faq-item:nth-child(odd)  { border-left-color: var(--gn); }
.phc-faq-item:nth-child(even) { border-left-color: var(--or); }
.phc-faq-item.open { box-shadow: 0 4px 20px rgba(0,0,0,.08); }
.phc-faq-item:nth-child(odd).open  { border-color: var(--gn); }
.phc-faq-item:nth-child(even).open { border-color: var(--or); }

.phc-faq-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: clamp(1rem, 2.5vw, 1.3rem) clamp(1rem, 3vw, 1.5rem);
  background: none;
  border: none;
  cursor: pointer;
  text-align: left;
}
.phc-faq-btn-text {
  font-size: clamp(.9rem, 2vw, 1rem);
  font-weight: 600;
  color: var(--dk);
  line-height: 1.4;
  flex: 1;
}
.phc-faq-item:nth-child(odd).open  .phc-faq-btn-text { color: #5a9e5a; }
.phc-faq-item:nth-child(even).open .phc-faq-btn-text { color: var(--or); }

.phc-faq-icon {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--bg);
  border: 1px solid var(--bd);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: transform .25s, background .2s, border-color .2s;
}
.phc-faq-icon svg { stroke: var(--mid); transition: stroke .2s; }
.phc-faq-item.open .phc-faq-icon { transform: rotate(180deg); }
.phc-faq-item:nth-child(odd).open  .phc-faq-icon { background: rgba(139,195,139,.15); border-color: var(--gn); }
.phc-faq-item:nth-child(odd).open  .phc-faq-icon svg { stroke: #5a9e5a; }
.phc-faq-item:nth-child(even).open .phc-faq-icon { background: rgba(255,145,90,.12); border-color: var(--or); }
.phc-faq-item:nth-child(even).open .phc-faq-icon svg { stroke: var(--or); }

.phc-faq-body {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows .28s ease;
}
.phc-faq-item.open .phc-faq-body { grid-template-rows: 1fr; }
.phc-faq-body-inner { overflow: hidden; }
.phc-faq-content {
  padding: 0 clamp(1rem, 3vw, 1.5rem) clamp(1rem, 2.5vw, 1.3rem);
  font-size: clamp(.82rem, 1.8vw, .93rem);
  color: var(--mid);
  line-height: 1.85;
}
.phc-faq-content ul  { margin-top: .75rem; padding-left: 1.1rem; display: flex; flex-direction: column; gap: .5rem; }
.phc-faq-content li  { line-height: 1.75; }
.phc-faq-content strong { color: var(--dk); font-weight: 600; }

/* ── 16. TESTIMONIALS ── */
.phc-testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(.9rem, 2vw, 1.2rem);
}
@media (max-width: 900px)  { .phc-testimonials-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .phc-testimonials-grid { grid-template-columns: 1fr; gap: .75rem; } }

.phc-quote {
  background: var(--white);
  border: 1px solid var(--bd);
  border-radius: var(--r-lg);
  padding: clamp(1.2rem, 2.5vw, 1.7rem);
  position: relative;
  overflow: hidden;
  transition: transform var(--t-mid), box-shadow var(--t-mid);
}
.phc-quote:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.phc-quote::before { content: '"'; position: absolute; top: -.5rem; left: 1rem; font-size: 6rem; font-weight: 900; color: rgba(255,145,90,.08); line-height: 1; font-family: Georgia, serif; }
.phc-quote-text { font-size: clamp(.84rem, 1.7vw, .95rem); color: var(--mid); line-height: 1.82; font-style: italic; position: relative; }
.phc-quote-author { display: flex; align-items: center; gap: .7rem; margin-top: 1rem; border-top: 1px solid var(--bd); padding-top: .85rem; }
.phc-quote-avatar { width: 36px; height: 36px; border-radius: 50%; background: var(--or-light); border: 2px solid rgba(255,145,90,.2); display: flex; align-items: center; justify-content: center; font-size: .75rem; font-weight: 700; color: var(--or); flex-shrink: 0; overflow: hidden; }
.phc-quote-avatar img { width: 100%; height: 100%; object-fit: cover; }
.phc-quote-name { font-size: .82rem; font-weight: 700; color: var(--dk); line-height: 1.2; }
.phc-quote-role { font-size: .65rem; color: var(--mid); letter-spacing: .04em; margin-top: .05rem; }
.phc-stars { display: flex; gap: 2px; margin-bottom: .7rem; }
.phc-star { width: 13px; height: 13px; fill: var(--or); }

/* ── 17. STEPS / PROCESS ── */
.phc-steps { display: flex; flex-direction: column; gap: 0; }
.phc-step {
  display: flex;
  gap: clamp(.8rem, 3vw, 1.2rem);
  padding-bottom: clamp(1rem, 3vw, 1.5rem);
  position: relative;
}
.phc-step:not(:last-child)::before {
  content: '';
  position: absolute;
  left: 20px; top: 45px;
  width: 2px; bottom: 0;
  background: rgba(255,145,90,.1);
}
.phc-step-num {
  width: clamp(36px, 8vw, 44px);
  height: clamp(36px, 8vw, 44px);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: clamp(.7rem, 2vw, .85rem);
  font-weight: 800;
  flex-shrink: 0;
  position: relative;
  z-index: 1;
  background: var(--or);
  color: var(--white);
  box-shadow: 0 2px 8px rgba(255,145,90,.25);
}
.phc-step-num.gn { background: var(--gn); box-shadow: 0 2px 8px rgba(139,195,139,.25); }
.phc-step-body h4 { font-size: clamp(.9rem, 3.5vw, 1.05rem); font-weight: 600; color: var(--dk); margin: .15rem 0 .25rem; line-height: 1.4; }
.phc-step-body p  { font-size: clamp(.8rem, 3vw, .9rem); color: var(--mid); line-height: 1.7; margin: 0; }

/* ── 18. STATS BAR ── */
.phc-stats-bar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  background: var(--gn);
  border-radius: var(--r-md);
  overflow: hidden;
}
.phc-stats-bar-item {
  padding: 1.2rem;
  text-align: center;
  border-right: 1px solid rgba(255,255,255,.2);
}
.phc-stats-bar-item:last-child { border-right: none; }
.phc-stats-bar-n { font-size: 1.6rem; font-weight: 900; color: var(--white); line-height: 1; }
.phc-stats-bar-l { font-size: .55rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: rgba(255,255,255,.8); margin-top: .25rem; }

/* ── 19. GRADIENT HERO BANNER ── */
.phc-cta-banner {
  background: linear-gradient(135deg, var(--or) 0%, #e55a25 50%, var(--or) 100%);
  background-size: 200% 200%;
  animation: gradShift 5s ease infinite;
  border-radius: var(--r-xl);
  padding: clamp(2rem, 5vw, 3.5rem);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.phc-cta-banner::before {
  content: '';
  position: absolute;
  width: 300px; height: 300px;
  border-radius: 50%;
  background: rgba(255,255,255,.05);
  top: -100px; right: -100px;
  animation: spinSlow 20s linear infinite;
}
.phc-cta-banner h2 { color: var(--white); font-size: clamp(1.4rem, 4vw, 2.2rem); font-weight: 700; margin-bottom: .75rem; }
.phc-cta-banner p  { color: rgba(255,255,255,.85); font-size: clamp(.9rem, 2vw, 1.05rem); max-width: 540px; margin: 0 auto 1.5rem; }
.phc-cta-banner .phc-btn { background: var(--white); color: var(--or); }
.phc-cta-banner .phc-btn:hover { background: var(--dk); color: var(--white); }

/* ── 20. GLASSMORPHISM PANEL ── */
.phc-glass {
  background: rgba(255,255,255,.65);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,.5);
  border-radius: var(--r-xl);
  box-shadow: 0 8px 32px rgba(0,0,0,.08);
}

/* ── 21. ABOUT / PROFILE LAYOUT ── */
.phc-about-wrap { padding: clamp(2rem, 4vw, 3.5rem) 0; }
.phc-about-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 clamp(1.2rem, 5vw, 2.8rem);
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
}
.phc-about-bottom { grid-column: 1 / -1; }
.phc-profile-col  { display: flex; flex-direction: column; align-items: center; gap: clamp(.8rem, 3vw, 1rem); }

.phc-profile-circle {
  width: 200px; height: 200px;
  border-radius: 50%;
  overflow: hidden;
  border: 4px solid var(--or);
  box-shadow: 0 4px 12px rgba(255,145,90,.3);
  flex-shrink: 0;
}
.phc-profile-circle img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }

.phc-name-card {
  background: var(--white);
  border: 1px solid var(--bd);
  border-radius: var(--r-md);
  padding: clamp(.8rem, 2vw, 1rem) clamp(1rem, 3vw, 1.4rem);
  text-align: center;
  box-shadow: var(--shadow-sm);
  width: 100%;
}
.phc-name-card h3 { font-size: clamp(.72rem, 2.2vw, .85rem); font-weight: 600; color: var(--dk); margin: 0 0 .2rem; line-height: 1.3; }
.phc-name-tag { font-size: clamp(.55rem, 1.8vw, .65rem); font-weight: 700; color: var(--or); text-transform: uppercase; letter-spacing: .1em; }

@media (max-width: 920px) {
  .phc-about-inner { grid-template-columns: 1fr; }
  .phc-about-bottom { grid-column: 1; }
  .phc-profile-col { flex-direction: row; flex-wrap: wrap; justify-content: center; }
}
@media (max-width: 480px) {
  .phc-profile-col { flex-direction: column; align-items: center; }
}

/* ── 22. PARTNER / ASSOCIATE CARDS ── */
.phc-partner-card {
  border: 1px solid var(--bd);
  border-radius: var(--r-lg);
  background: var(--white);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform var(--t-mid), box-shadow var(--t-mid);
}
.phc-partner-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.phc-partner-bar { height: 4px; width: 100%; flex-shrink: 0; background: var(--or); }
.phc-partner-logo-row {
  background: var(--bg);
  border-bottom: 1px solid var(--bd);
  padding: clamp(1.2rem, 3vw, 1.8rem);
  display: flex;
  align-items: center;
  gap: 1rem;
  min-height: 100px;
}
.phc-partner-logo-box {
  width: 56px; height: 56px;
  border-radius: var(--r-sm);
  border: 1px solid var(--bd);
  background: var(--white);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
  overflow: hidden;
}
.phc-partner-logo-box img { width: 100%; height: 100%; object-fit: contain; }
.phc-partner-body { padding: clamp(1rem, 2.5vw, 1.4rem); display: flex; flex-direction: column; gap: .85rem; flex: 1; }
.phc-tag { font-size: .56rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; border-radius: var(--r-full); padding: .2rem .6rem; border: 1px solid var(--bd); color: var(--mid); background: var(--bg); }
.phc-tags { display: flex; flex-wrap: wrap; gap: .35rem; }

/* Visit link */
.phc-visit {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--or);
  text-decoration: none;
  transition: gap var(--t-fast);
}
.phc-visit:hover { gap: .7rem; }
.phc-visit svg { width: 11px; height: 11px; fill: none; stroke: currentColor; stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; }

/* ── 23. PRICING PANEL ── */
.phc-pricing-wrap { background: var(--white); border-radius: var(--r-xl); border: 1px solid var(--bd); overflow: hidden; box-shadow: var(--shadow-md); }
.phc-pricing-head { background: var(--or); padding: clamp(1rem, 3vw, 1.4rem); text-align: center; }
.phc-pricing-head h3 { color: var(--white); font-size: clamp(1.1rem, 3vw, 1.4rem); font-weight: 700; }
.phc-pricing-body { padding: clamp(1rem, 3vw, 1.6rem); }
.phc-pricing-upi { background: var(--yl); border-radius: var(--r-sm); padding: .65rem 1rem; text-align: center; font-weight: 600; font-size: .85rem; }

/* ── 24. BLOG / CONTENT LAYOUT ── */
.phc-content-wrap { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1fr 300px; gap: 2rem; padding: 2rem clamp(1.2rem, 5vw, 2.8rem); }
.phc-content-wrap.no-sidebar { grid-template-columns: 1fr; max-width: 800px; }
.phc-entry { background: var(--white); border-radius: var(--r-lg); box-shadow: var(--shadow-sm); padding: 2rem; border: 1px solid var(--bd); margin-bottom: 2rem; transition: transform var(--t-mid), box-shadow var(--t-mid); }
.phc-entry:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.phc-entry-title { font-size: clamp(1.2rem, 3vw, 1.6rem); font-weight: 700; color: var(--dk); margin-bottom: .75rem; line-height: 1.25; }
.phc-entry-title a { color: inherit; transition: color var(--t-fast); }
.phc-entry-title a:hover { color: var(--or); }
.phc-entry-meta { font-size: .75rem; color: var(--mid); margin-bottom: 1rem; }
.phc-entry-thumb { border-radius: var(--r-md); overflow: hidden; margin: 1.25rem 0; }
.phc-entry-thumb img { width: 100%; height: auto; display: block; }
.phc-entry-content { font-size: clamp(.9rem, 2vw, 1rem); line-height: 1.82; color: #4b5563; }
.phc-read-more { display: inline-flex; align-items: center; gap: .4rem; margin-top: 1.25rem; background: var(--or); color: var(--white); padding: .6rem 1.2rem; border-radius: var(--r-full); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; box-shadow: var(--shadow-or); transition: transform var(--t-fast), box-shadow var(--t-fast); }
.phc-read-more:hover { transform: translateY(-2px); box-shadow: var(--shadow-or-lg); color: var(--white); }

/* Sidebar */
.phc-sidebar .widget { background: var(--white); border-radius: var(--r-lg); padding: 1.5rem; border: 1px solid var(--bd); margin-bottom: 1.5rem; }
.phc-sidebar .widget-title { font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--mid); margin-bottom: .75rem; padding-bottom: .5rem; border-bottom: 2px solid var(--or); }
.phc-sidebar .widget ul li { border-bottom: 1px solid var(--bd); padding: .4rem 0; font-size: .85rem; }
.phc-sidebar .widget ul li a { color: var(--dk); transition: color var(--t-fast); }
.phc-sidebar .widget ul li a:hover { color: var(--or); }

@media (max-width: 900px) { .phc-content-wrap { grid-template-columns: 1fr; } }

/* ── 25. PAGE.PHP FULL WIDTH ── */
/* Standard page: constrained to 1200px — hero alignfull blocks are also bound to this */
.phc-page-content { max-width: 1200px; margin: 0 auto; padding: 0; }

/* Full-width template: NO max-width so alignfull blocks truly reach viewport edges */
.phc-page-content.phc-full-width {
  max-width: none;
  width: 100%;
}
/* phc-page-article: flush layout — no box shadow. Pages use block editor full-width. */
.phc-page-article { background: var(--white); padding: 0; }
.phc-page-article h1 { font-size: clamp(1.5rem, 4vw, 2.4rem); font-weight: 700; color: var(--dk); margin-bottom: 1.5rem; line-height: 1.15; }

/* Hide page title when meta flag is set */
.phc-no-title .phc-entry-header { display: none !important; }

/* ── 25a. HERO VISUAL SHORTCODE BLOCK ── */
/* Standalone blob + photo visual for use in hero right column */
.phc-hero-visual-sc {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: .4rem 2rem;
  min-height: 340px;
}
/* Button alias fix: CSS supports both phc-btn-outline AND phc-btn--outline (double-dash) */
.phc-btn--outline,
.phc-btn-outline {
  background: transparent;
  border: 2px solid var(--or);
  color: var(--or);
  box-shadow: none;
}
.phc-btn--outline:hover,
.phc-btn-outline:hover { background: var(--or); color: var(--white); }

/* ── 26. 404 PAGE ── */
.phc-404 { text-align: center; padding: var(--sp-3xl) var(--sp-sm); }
.phc-404-num { font-size: 8rem; font-weight: 900; color: var(--or); line-height: 1; opacity: .18; }
.phc-404 h1 { font-size: clamp(1.5rem, 4vw, 2rem); font-weight: 700; color: var(--dk); margin-top: -2rem; margin-bottom: .75rem; }
.phc-404 p  { color: var(--mid); font-size: 1rem; margin-bottom: 1.5rem; }

/* ── 27. BREADCRUMBS — removed ── */

/* ── 28. GUTENBERG BLOCK OVERRIDES ── */
/* NOTE: do NOT apply hover-transform to all wp-block-group — it breaks every section.
   Only phc-card and phc-card-* variants get the hover lift (defined in section 12). */
/* Only round contained groups — alignfull/alignwide hero sections must stay edge-to-edge */
.wp-block-group:not(.alignfull):not(.alignwide) { border-radius: var(--r-lg); }
.wp-block-button__link {
  border-radius: var(--r-full) !important;
  font-weight: 700;
  font-family: var(--font-base);
  transition: transform var(--t-fast), box-shadow var(--t-fast);
  font-size: clamp(.68rem, 1.5vw, .78rem);
  letter-spacing: .06em;
  text-transform: uppercase;
  padding: clamp(.6rem, 1.5vw, .76rem) clamp(1.2rem, 3vw, 1.6rem) !important;
}
.wp-block-button__link:hover { transform: translateY(-2px); }
.wp-block-image img { border-radius: var(--r-md); }
.wp-block-quote {
  border-left: 4px solid var(--or);
  border-radius: 0 var(--r-md) var(--r-md) 0;
  background: var(--bg);
  padding: clamp(1rem, 3vw, 1.5rem) clamp(1.2rem, 4vw, 2rem);
  font-size: clamp(.9rem, 1.8vw, 1.05rem);
  font-style: italic;
  color: var(--mid);
  margin: clamp(1rem, 2vw, 1.5rem) 0;
  line-height: 1.8;
}
.wp-block-quote cite { font-size: clamp(.65rem, 1.5vw, .78rem); font-weight: 700; color: var(--or); font-style: normal; letter-spacing: .06em; text-transform: uppercase; }
.wp-block-separator { border-color: var(--bd); }
.wp-block-table td, .wp-block-table th { border-color: var(--bd); }
.wp-block-table thead { background: var(--or); color: var(--white); }
.wp-block-code { border-radius: var(--r-md); background: var(--dk); color: rgba(255,255,255,.85); }
.wp-block-heading { letter-spacing: -.02em; }
.entry-content h1, .entry-content h2, .entry-content h3,
.entry-content h4, .entry-content h5, .entry-content h6 { color: var(--dk); line-height: 1.3; margin-bottom: clamp(.5rem, 1.5vw, .75rem); margin-top: clamp(.75rem, 2vw, 1.5rem); }
.entry-content p { font-size: clamp(.9rem, 1.8vw, 1.05rem); line-height: 1.82; margin-bottom: clamp(.75rem, 1.5vw, 1rem); color: #4b5563; }
.entry-content a { color: var(--or); }
.entry-content a:hover { text-decoration: underline; }
.entry-content ul, .entry-content ol { padding-left: clamp(1rem, 3vw, 1.5rem); margin-bottom: 1rem; }
.entry-content li { margin-bottom: clamp(.25rem, 1vw, .4rem); line-height: 1.7; }

/* ── 29. COMMENTS ── */
.comments-area { max-width: 760px; margin: 2rem auto; padding: 0 clamp(1.2rem, 5vw, 2.8rem); }
.comments-title, .comment-reply-title { font-size: clamp(1rem, 2.5vw, 1.2rem); font-weight: 700; color: var(--dk); margin-bottom: 1.5rem; }
.comment-list { list-style: none; margin: 0; padding: 0; }
.comment { border: 1px solid var(--bd); border-radius: var(--r-md); padding: clamp(.9rem, 2vw, 1.25rem); margin-bottom: 1rem; background: var(--white); }
.comment-meta { font-size: clamp(.65rem, 1.5vw, .75rem); color: var(--mid); margin-bottom: .5rem; }
.comment-body p { font-size: clamp(.85rem, 1.8vw, .9rem); line-height: 1.75; color: #4b5563; }
.comment-form input,
.comment-form textarea {
  width: 100%;
  padding: clamp(.5rem, 1.5vw, .65rem) clamp(.8rem, 2vw, 1rem);
  border: 1px solid var(--bd);
  border-radius: var(--r-sm);
  font-family: var(--font-base);
  font-size: clamp(.85rem, 1.8vw, .9rem);
  transition: border-color var(--t-fast);
  margin-bottom: clamp(.6rem, 1.5vw, .75rem);
}
.comment-form input:focus,
.comment-form textarea:focus { outline: none; border-color: var(--or); }
.comment-form input[type="submit"] {
  background: var(--or);
  color: var(--white);
  border: none;
  font-weight: 700;
  cursor: pointer;
  border-radius: var(--r-full);
  padding: .65rem 1.4rem;
  width: auto;
  text-transform: uppercase;
  letter-spacing: .06em;
  font-size: .78rem;
  transition: transform var(--t-fast), box-shadow var(--t-fast);
}
.comment-form input[type="submit"]:hover { transform: translateY(-2px); box-shadow: var(--shadow-or); }

/* ── 30. PAGINATION ── */
.navigation .nav-links {
  display: flex;
  gap: .5rem;
  justify-content: center;
  margin: 2rem 0;
  flex-wrap: wrap;
}
.navigation .page-numbers {
  padding: .5rem .9rem;
  border: 1px solid var(--bd);
  border-radius: var(--r-sm);
  font-size: .82rem;
  font-weight: 600;
  color: var(--dk);
  transition: all var(--t-fast);
}
.navigation .page-numbers.current,
.navigation .page-numbers:hover { background: var(--or); color: var(--white); border-color: var(--or); }

/* ── 31. SEARCH FORM ── */
.search-form { display: flex; gap: .5rem; }
.search-form input[type="search"] {
  flex: 1;
  padding: .6rem 1rem;
  border: 1px solid var(--bd);
  border-radius: var(--r-full);
  font-family: var(--font-base);
  font-size: .88rem;
  transition: border-color var(--t-fast);
}
.search-form input[type="search"]:focus { outline: none; border-color: var(--or); }
.search-form input[type="submit"] {
  background: var(--or);
  color: var(--white);
  border: none;
  border-radius: var(--r-full);
  padding: .6rem 1.2rem;
  font-size: .78rem;
  font-weight: 700;
  cursor: pointer;
  transition: transform var(--t-fast);
}
.search-form input[type="submit"]:hover { transform: translateY(-1px); }

/* ── 32. UTILITY CLASSES ── */
.phc-text-center { text-align: center; }
.phc-text-or  { color: var(--or); }
.phc-text-gn  { color: var(--gn-dark); }
.phc-text-mid { color: var(--mid); }
.phc-mt-sm    { margin-top: var(--sp-sm); }
.phc-mt-lg    { margin-top: var(--sp-lg); }
.phc-mb-lg    { margin-bottom: var(--sp-lg); }
.phc-flex-center { display: flex; align-items: center; justify-content: center; gap: .75rem; }
.phc-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-lg); }
@media (max-width: 680px) { .phc-grid-2 { grid-template-columns: 1fr; } }

/* ── 33. NOTICE / BADGE STRIP ── */
.phc-notice {
  background: var(--or);
  color: var(--white);
  border-radius: var(--r-sm);
  padding: .8rem 1.4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .8rem;
  font-size: .95rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  box-shadow: 0 4px 12px rgba(255,145,90,.3);
  animation: bounce 2s ease-in-out infinite;
}
.phc-notice-gn { background: var(--gn-dark); }

/* ── 34. RESPONSIVE UTILITIES ── */
@media (max-width: 480px) {
  .phc-wrap { padding: 0 1rem; }
  .phc-cta-banner { padding: 1.5rem 1rem; }
  .phc-section-bg { padding: 1.5rem 1rem; }
  .phc-section-dark { padding: 1.5rem 1rem; }
  .phc-section-gradient { padding: 1.5rem 1rem; }
  .phc-section { padding: .8rem 0; margin: 1rem 0; }
  /* NOTE: .phc-hero, .phc-hero-visual, .phc-photo-outer intentionally NOT overridden here.
     The 780px breakpoint values (margin-top:2.8rem, padding:0 2.8rem, height:320px)
     must be preserved — they are calculated to accommodate badge overflow. */
  .phc-quote { padding: 1rem; }
  .phc-stats-bar-item { padding: .8rem .5rem; }
  .phc-about-wrap { padding: 1.5rem 0; }
}

/* ── 35. ACCESSIBILITY: REDUCED MOTION ── */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration:       0.01ms !important;
    animation-iteration-count: 1     !important;
    transition-duration:      0.01ms !important;
    scroll-behavior:          auto   !important;
  }
  /* Keep transforms so layouts don't break — just make them instant */
  .phc-reveal,
  .phc-reveal-left,
  .phc-reveal-right {
    opacity:   1 !important;
    transform: none !important;
    transition: none !important;
  }
  .phc-blob-1,
  .phc-blob-2,
  .phc-blob-3 {
    animation: none !important;
  }
  .phc-badge {
    animation: none !important;
  }
  .phc-cta-banner {
    animation: none !important;
  }
  .phc-notice {
    animation: none !important;
  }
}

/* =====================================================
   PHC PRO – ADDITIONS v3.1.0
   Sections 36–42: Skip link · Social share · Cookie
   banner · CF7/WPForms · WooCommerce · Booking ·
   Print stylesheet
   ===================================================== */

/* ── 36. ACCESSIBILITY: SKIP LINK ── */
.skip-link {
  position: absolute;
  top: -100%;
  left: 1rem;
  z-index: 9999;
  background: var(--dk);
  color: var(--white);
  padding: .6rem 1.2rem;
  border-radius: 0 0 var(--r-sm) var(--r-sm);
  font-size: .85rem;
  font-weight: 700;
  text-decoration: none;
  transition: top var(--t-fast);
}
.skip-link:focus {
  top: 0;
  outline: 3px solid var(--or);
  outline-offset: 2px;
}

/* ── 37. SOCIAL SHARE BAR ── */
.phc-share-bar {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .6rem;
  margin-bottom: 1rem;
}
.phc-share-label {
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  color: var(--mid);
  margin: 0;
  white-space: nowrap;
}
.phc-share-btns {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
}
.phc-share-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .4rem .85rem;
  border-radius: var(--r-full);
  font-size: .78rem;
  font-weight: 700;
  text-decoration: none;
  color: var(--white);
  background: var(--share-color, var(--mid));
  border: none;
  cursor: pointer;
  transition: opacity var(--t-fast), transform var(--t-fast);
  font-family: var(--font-base);
  line-height: 1;
}
.phc-share-btn:hover {
  opacity: .88;
  transform: translateY(-1px);
}
.phc-share-btn svg { flex-shrink: 0; }

/* ── 38. GDPR COOKIE CONSENT BANNER ── */
#phc-cookie-banner {
  position: fixed;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 9998;
  width: calc(100% - 2rem);
  max-width: 680px;
  background: var(--dk);
  color: var(--white);
  border-radius: var(--r-xl);
  box-shadow: var(--shadow-lg);
  transition: opacity .35s ease, transform .35s ease;
}
.phc-cookie-inner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  padding: 1.1rem 1.5rem;
}
.phc-cookie-text {
  flex: 1 1 260px;
  font-size: .82rem;
  line-height: 1.55;
  color: rgba(255,255,255,.85);
  margin: 0;
}
.phc-cookie-text a {
  color: var(--or);
  text-decoration: underline;
}
.phc-cookie-actions {
  display: flex;
  gap: .5rem;
  flex-shrink: 0;
}
.phc-cookie-btn {
  padding: .45rem 1.1rem;
  border-radius: var(--r-full);
  font-size: .78rem;
  font-weight: 700;
  cursor: pointer;
  border: none;
  font-family: var(--font-base);
  transition: opacity var(--t-fast);
}
.phc-cookie-btn:hover { opacity: .85; }
.phc-cookie-btn--accept {
  background: var(--or);
  color: var(--white);
}
.phc-cookie-btn--decline {
  background: rgba(255,255,255,.12);
  color: rgba(255,255,255,.8);
  border: 1px solid rgba(255,255,255,.2);
}
@media (max-width: 500px) {
  #phc-cookie-banner { bottom: 0; border-radius: var(--r-xl) var(--r-xl) 0 0; }
  .phc-cookie-inner  { flex-direction: column; }
  .phc-cookie-actions { width: 100%; }
  .phc-cookie-btn { flex: 1; text-align: center; }
}

/* ── 39. CONTACT FORM 7 ── */
.wpcf7 { margin: 2rem 0; }
.wpcf7 .wpcf7-form-control-wrap { display: block; margin-bottom: 1rem; }
.wpcf7 input:not([type="submit"]),
.wpcf7 textarea,
.wpcf7 select {
  width: 100%;
  padding: .72rem 1rem;
  border: 1.5px solid var(--bd);
  border-radius: var(--r-md);
  font-family: var(--font-base);
  font-size: .95rem;
  color: var(--dk);
  background: var(--white);
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
  -webkit-appearance: none;
}
.wpcf7 input:not([type="submit"]):focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
  outline: none;
  border-color: var(--or);
  box-shadow: 0 0 0 3px var(--or-light);
}
.wpcf7 textarea { min-height: 130px; resize: vertical; }
.wpcf7 input[type="submit"],
.wpcf7 .wpcf7-submit {
  background: linear-gradient(135deg,var(--or) 0%,var(--or-dark) 100%);
  color: var(--white);
  border: none;
  border-radius: var(--r-full);
  padding: .76rem 2rem;
  font-family: var(--font-base);
  font-size: .9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  cursor: pointer;
  box-shadow: var(--shadow-or);
  transition: box-shadow var(--t-mid), transform var(--t-fast);
}
.wpcf7 input[type="submit"]:hover,
.wpcf7 .wpcf7-submit:hover {
  box-shadow: var(--shadow-or-lg);
  transform: translateY(-1px);
}
.wpcf7 .wpcf7-not-valid-tip {
  color: #dc2626;
  font-size: .78rem;
  margin-top: .25rem;
  display: block;
}
.wpcf7 .wpcf7-response-output {
  border-radius: var(--r-md);
  padding: .8rem 1.1rem;
  font-size: .88rem;
  margin-top: 1rem;
  border: none;
}
.wpcf7 .wpcf7-mail-sent-ok { background: rgba(106,170,106,.12); color: #166534; }
.wpcf7 .wpcf7-validation-errors,
.wpcf7 .wpcf7-acceptance-missing { background: rgba(255,145,90,.1); color: #9a3412; }

/* ── 40. WPFORMS ── */
.wpforms-container { margin: 2rem 0; }
.wpforms-field { margin-bottom: 1.25rem; }
.wpforms-field label {
  display: block;
  font-size: .82rem;
  font-weight: 700;
  color: var(--dk);
  margin-bottom: .4rem;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.wpforms-field input:not([type="submit"]),
.wpforms-field textarea,
.wpforms-field select {
  width: 100%;
  padding: .72rem 1rem;
  border: 1.5px solid var(--bd);
  border-radius: var(--r-md);
  font-family: var(--font-base);
  font-size: .95rem;
  color: var(--dk);
  background: var(--white);
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
  -webkit-appearance: none;
}
.wpforms-field input:not([type="submit"]):focus,
.wpforms-field textarea:focus,
.wpforms-field select:focus {
  outline: none;
  border-color: var(--or);
  box-shadow: 0 0 0 3px var(--or-light);
}
.wpforms-field textarea { min-height: 130px; resize: vertical; }
.wpforms-submit button[type="submit"],
.wpforms-field input[type="submit"] {
  background: linear-gradient(135deg,var(--or) 0%,var(--or-dark) 100%);
  color: var(--white);
  border: none;
  border-radius: var(--r-full);
  padding: .76rem 2rem;
  font-family: var(--font-base);
  font-size: .9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  cursor: pointer;
  box-shadow: var(--shadow-or);
  transition: box-shadow var(--t-mid), transform var(--t-fast);
}
.wpforms-submit button[type="submit"]:hover { box-shadow: var(--shadow-or-lg); transform: translateY(-1px); }
.wpforms-error-container,.wpforms-field .wpforms-error {
  color: #dc2626;
  font-size: .78rem;
  margin-top: .25rem;
}

/* ── 41. WOOCOMMERCE ── */
.phc-woo-wrap { align-items: flex-start; }

/* Product grid */
.woocommerce ul.products li.product a img {
  border-radius: var(--r-md);
  transition: transform var(--t-mid);
}
.woocommerce ul.products li.product:hover a img { transform: translateY(-3px); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--font-base);
  font-weight: 700;
  color: var(--dk);
}
.woocommerce ul.products li.product .price { color: var(--or); font-weight: 700; }

/* Buttons */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .cart .button {
  background: linear-gradient(135deg,var(--or) 0%,var(--or-dark) 100%) !important;
  color: var(--white) !important;
  border-radius: var(--r-full) !important;
  font-family: var(--font-base) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .07em !important;
  border: none !important;
  box-shadow: var(--shadow-or) !important;
  transition: box-shadow var(--t-mid), transform var(--t-fast) !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover { box-shadow: var(--shadow-or-lg) !important; transform: translateY(-1px) !important; }

/* Cart / checkout */
.woocommerce-cart table.cart td,
.woocommerce-cart table.cart th { border-color: var(--bd); }
.woocommerce .cart-collaterals .cart_totals { background: var(--bg); border-radius: var(--r-lg); padding: 1.5rem; }

/* Star ratings */
.woocommerce .star-rating span { color: var(--or); }

/* Sale badge */
.woocommerce span.onsale { background: var(--or); border-radius: var(--r-full); }

/* ── 42. BOOKING SHORTCODE ── */
.phc-booking-wrap {
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--shadow-md);
}
.phc-booking-fallback {
  text-align: center;
  background: var(--bg);
  border-radius: var(--r-xl);
  padding: 3rem 2rem;
  border: 1px solid var(--bd);
}
.phc-booking-fallback h3 {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--dk);
  margin-bottom: .75rem;
}
.phc-booking-fallback p {
  color: var(--mid);
  max-width: 420px;
  margin: 0 auto;
}

/* ── 43. ARCHIVE / SEARCH HEADER ── */
.phc-archive-header { margin-bottom: 2.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--bd); }
.phc-archive-label {
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--or);
  margin-bottom: .4rem;
}
.phc-archive-title {
  font-size: clamp(1.4rem, 3.5vw, 2rem);
  font-weight: 700;
  color: var(--dk);
  line-height: 1.15;
  letter-spacing: -.03em;
}

/* ── 44. PRINT STYLESHEET ── */
@media print {
  /* Hide interactive / non-content elements */
  .site-header,
  .site-footer,
  .phc-sidebar,
  .phc-share-bar,
  #phc-cookie-banner,
  #phc-back-to-top,
  .nav-toggle,
  .mobile-nav,
  .navigation,
  .comments-area,
  .phc-cta-banner,
  .phc-stats-bar,
  .wpcf7,
  .wpforms-container,
  .phc-booking-wrap {
    display: none !important;
  }

  /* Page setup */
  @page { margin: 2cm; }
  body {
    font-family: Georgia, serif;
    font-size: 11pt;
    color: #000;
    background: #fff;
    line-height: 1.5;
  }

  /* Headings */
  h1, h2, h3, h4 { color: #000; page-break-after: avoid; }
  h1 { font-size: 20pt; }
  h2 { font-size: 16pt; }
  h3 { font-size: 13pt; }

  /* Links — show URL inline */
  a[href]::after { content: " (" attr(href) ")"; font-size: 9pt; color: #555; }
  a[href^="#"]::after,
  a[href^="javascript:"]::after { content: ""; }

  /* Images */
  img { max-width: 100% !important; page-break-inside: avoid; }

  /* Tables */
  table { border-collapse: collapse; width: 100%; }
  td, th { border: 1px solid #ccc; padding: 6pt; }

  /* Avoid breaking inside cards */
  .phc-card, .phc-entry, blockquote { page-break-inside: avoid; }

  /* Full width on print */
  .phc-content-wrap, .phc-page-content { max-width: 100% !important; }
  .phc-sidebar { display: none !important; }

  /* Watermark / branding line */
  .phc-entry-header::before {
    content: "Physical Health Consultants — physicalhealthconsultants.com";
    display: block;
    font-size: 8pt;
    color: #888;
    border-bottom: 1px solid #ddd;
    margin-bottom: .75rem;
    padding-bottom: .4rem;
  }
}

/* ─────────────────────────────────────────────────────────────────────────
   PHC PRO v3.2.0 — QA FIXES: Nav CTA · Hamburger Icon Swap · Footer Columns
   ───────────────────────────────────────────────────────────────────────── */

/* ── Nav CTA Button ── */
.nav-cta-btn {
  display: inline-flex;
  align-items: center;
  padding: .46rem 1.2rem;
  background: var(--or);
  color: #fff !important;
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  border-radius: var(--r-full);
  text-decoration: none !important;
  transition: background var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);
  white-space: nowrap;
  flex-shrink: 0;
  box-shadow: 0 3px 14px rgba(255,145,90,.32);
  margin-left: .5rem;
}
.nav-cta-btn:hover,
.nav-cta-btn:focus-visible {
  background: var(--or-dark);
  transform: translateY(-1px);
  box-shadow: 0 5px 20px rgba(255,145,90,.42);
}

/* Hide nav CTA on mobile (hamburger takes priority) */
@media (max-width: 900px) {
  .nav-cta-btn { display: none; }
}

/* ── Hamburger ↔ Close icon swap ── */
.nav-toggle .icon-close-lines { display: none; }
.nav-toggle[aria-expanded="true"] .icon-menu-lines  { display: none; }
.nav-toggle[aria-expanded="true"] .icon-close-lines { display: block; }

/* ── Footer column variants (applied by footer.php + customizer CSS) ── */
.footer-widgets.footer-cols-1 {
  grid-template-columns: 1fr !important;
  max-width: 600px;
  text-align: center;
}
.footer-widgets.footer-cols-2 {
  grid-template-columns: repeat(2, 1fr) !important;
}
.footer-widgets.footer-cols-4 {
  grid-template-columns: repeat(4, minmax(180px, 1fr)) !important;
}

/* ── Footer style variants (applied by footer.php class) ── */
.site-footer.phc-footer-light {
  background: #fff !important;
  color: #374151 !important;
  border-top: 1px solid #e5e7eb !important;
}
.site-footer.phc-footer-light .footer-copy,
.site-footer.phc-footer-light .footer-nav a,
.site-footer.phc-footer-light .widget-title,
.site-footer.phc-footer-light .widget,
.site-footer.phc-footer-light a { color: #374151 !important; }
.site-footer.phc-footer-light .footer-bottom { border-top-color: #e5e7eb !important; }
.site-footer.phc-footer-light .footer-nav a:hover { color: var(--or) !important; }

.site-footer.phc-footer-orange {
  background: linear-gradient(135deg, #ff915a 0%, #e55a25 100%) !important;
}
.site-footer.phc-footer-orange .footer-copy,
.site-footer.phc-footer-orange .footer-nav a,
.site-footer.phc-footer-orange .widget-title,
.site-footer.phc-footer-orange .widget,
.site-footer.phc-footer-orange a { color: #fff !important; }
.site-footer.phc-footer-orange .footer-bottom {
  border-top-color: rgba(255,255,255,.25) !important;
}
.site-footer.phc-footer-orange .footer-nav a:hover { color: rgba(255,255,255,.7) !important; }

/* ── Hero section — remove editor hover blue outlines ── */
.wp-block-html .phc-hero-visual,
.wp-block-html .phc-blob-1,
.wp-block-html .phc-blob-2,
.wp-block-html .phc-blob-3 {
  pointer-events: none;
}
/* Front-end: restore pointer-events so badges/cards remain clickable */
.phc-hero-visual .phc-badge,
.phc-hero-visual .phc-photo-card {
  pointer-events: auto;
}

/* ── Footer responsive: all column variants collapse to 1 column on mobile ── */
@media (max-width: 640px) {
  .footer-widgets.footer-cols-2,
  .footer-widgets.footer-cols-3,
  .footer-widgets.footer-cols-4 {
    grid-template-columns: 1fr !important;
  }
}
@media (min-width: 641px) and (max-width: 900px) {
  .footer-widgets.footer-cols-4 {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

/* ══════════════════════════════════════════════════════════════════════════
   PHC PRO — HERO SPACING COMPLETE FIX
   Root causes addressed:
   1. WordPress block gap (margin-block-start) stacking on hero padding
   2. entry-content default margins adding space before/after hero
   3. Breadcrumb margin-bottom creating gap above hero
   4. Footer 5rem margin-top creating excessive gap after hero sections
   5. Title header gap when hero follows immediately
   ══════════════════════════════════════════════════════════════════════════ */

/* ── RC1: Eliminate WordPress block gap margin on alignfull/alignwide blocks ──
   WordPress core CSS injects margin-block-start: var(--wp--style--block-gap, 1.5em)
   between every block. For full-width sections (hero, CTA, stats bars) this
   creates double-spacing when stacked: block-gap + section's own padding-top. */
.entry-content > .wp-block-group.alignfull,
.entry-content > .wp-block-group.alignwide,
.phc-entry-content > .wp-block-group.alignfull,
.phc-entry-content > .wp-block-group.alignwide {
  margin-block-start: 0;
  margin-block-end: 0;
  margin-top: 0;
  margin-bottom: 0;
}

/* First block in content: no top gap regardless of alignment */
.entry-content > *:first-child,
.phc-entry-content > *:first-child {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
}

/* Last block in content: no bottom gap (footer has its own margin) */
.entry-content > *:last-child,
.phc-entry-content > *:last-child {
  margin-block-end: 0 !important;
  margin-bottom: 0 !important;
}

/* ── RC2: Fix entry-content default margins on the content wrapper itself ── */
.entry-content,
.phc-entry-content {
  margin-top: 0;
  margin-bottom: 0;
  padding: 0;
}

/* ── RC4: Footer margin-top — scoped fix ──
   Full-width page sections (hero, CTA, stats) already have bottom padding.
   Zero the 5rem footer gap ONLY on page templates where alignfull sections
   butt up against the footer. Blog/single/archive keep a comfortable gap. */
.phc-page-content + * > .site-footer,
.phc-page-content ~ .site-footer,
.phc-full-width ~ .site-footer {
  margin-top: 0;
}
/* Direct fix: pages use phc-page-content, no extra margin needed */
body.phc-front-page .site-footer,
body.page .site-footer,
body.page-template-full-width .site-footer,
body.page-template-landing-page .site-footer,
body.page-template-no-header .site-footer {
  margin-top: 0;
}
/* Blog, single, archive: keep the 2rem gap (reduced from 5rem) */
body.single .site-footer,
body.archive .site-footer,
body.blog .site-footer,
body.search-results .site-footer {
  margin-top: 2rem;
}

/* ── RC5: Page title header — prevent double-space when hero follows ──
   Scope ONLY to phc-page-content (page.php / full-width.php).
   Do NOT apply to single.php or archive.php where phc-entry-header
   sits inside phc-content-wrap which already has its own padding. */
.phc-page-content .phc-entry-header {
  padding: clamp(1.5rem, 4vw, 2.5rem) clamp(1.2rem, 5vw, 2.8rem) 0;
  margin-bottom: 1.5rem !important;
}
/* Blog/archive post headers: no extra padding (phc-content-wrap handles it) */
.phc-content-wrap .phc-entry-header {
  padding: 0;
  margin-bottom: 1rem;
}

/* ── RC6: Full-width page template — ensure alignfull blocks break out ──
   On .phc-full-width, article and entry-content have no max-width. */
.phc-full-width .phc-page-article,
.phc-full-width .entry-content,
.phc-full-width .phc-entry-content {
  max-width: none;
  width: 100%;
}

/* Alignfull blocks inside full-width template:
   Use overflow-safe breakout — avoids the 100vw scrollbar bug on Windows
   (100vw counts scrollbar width, causing ~17px horizontal overflow).
   Instead we rely on the parent having no padding/max-width constraint. */
.phc-full-width .entry-content > .wp-block-group.alignfull,
.phc-full-width .phc-entry-content > .wp-block-group.alignfull {
  width: auto;
  max-width: none;
  /* Break out of any residual containing padding */
  margin-left: calc(-1 * clamp(0px, 2vw, 1rem));
  margin-right: calc(-1 * clamp(0px, 2vw, 1rem));
}

/* Standard page template: alignfull still constrained to 1200px container */
.phc-page-content:not(.phc-full-width) .wp-block-group.alignfull {
  width: 100%;
  max-width: none;
}

/* ── Hero visual column: remove excess padding that causes height bloat ── */
.phc-hero-visual {
  padding: 0 1.5rem; /* was 0 2rem — tighter; NOTE: non-media-query, cascade-safe fallback */
}

/* ── Consecutive full-width sections: prevent double padding at join ──
   When two alignfull groups are stacked (e.g. hero + stats bar),
   remove the bottom padding of the first and top padding of the second
   if they share the same background color (handled by design). */
.entry-content > .wp-block-group.alignfull + .wp-block-group.alignfull,
.phc-entry-content > .wp-block-group.alignfull + .wp-block-group.alignfull {
  margin-top: 0;
}

/* ══════════════════════════════════════════════════════════════
   COBLOCKS COMPATIBILITY (GoDaddy CoBlocks plugin)
   Ensures CoBlocks blocks work with the PHC Pro theme without
   layout conflicts. CoBlocks uses its own CSS custom properties
   and class prefixes: .wp-block-coblocks-*.
   ══════════════════════════════════════════════════════════════ */

/* CoBlocks gutter variable — match our spacing */
:root { --coblocks-gutter: 1.5rem; }

/* CoBlocks accordion */
.wp-block-coblocks-accordion-item { border-color: var(--bd); }
.wp-block-coblocks-accordion-item__title {
  font-family: var(--font-base);
  font-weight: 600;
  color: var(--dk);
}
.wp-block-coblocks-accordion-item__content { font-family: var(--font-base); }

/* CoBlocks alert */
.wp-block-coblocks-alert { border-radius: var(--r-md); font-family: var(--font-base); }
.wp-block-coblocks-alert__title { font-weight: 700; }

/* CoBlocks features */
.wp-block-coblocks-features-grid { gap: var(--coblocks-gutter); }

/* CoBlocks pricing table */
.wp-block-coblocks-pricing-table-item {
  border-radius: var(--r-lg);
  border-color: var(--bd);
  font-family: var(--font-base);
}
.wp-block-coblocks-pricing-table-item__price-currency,
.wp-block-coblocks-pricing-table-item__price-amount { color: var(--or); }
.wp-block-coblocks-pricing-table-item__button .wp-block-button__link {
  background: var(--or);
  border-radius: var(--r-full) !important;
}

/* CoBlocks media card */
.wp-block-coblocks-media-card { font-family: var(--font-base); }

/* CoBlocks social sharing */
.wp-block-coblocks-social-link { border-radius: var(--r-full); }

/* CoBlocks form */
.wp-block-coblocks-form input[type="text"],
.wp-block-coblocks-form input[type="email"],
.wp-block-coblocks-form input[type="tel"],
.wp-block-coblocks-form textarea,
.wp-block-coblocks-form select {
  font-family: var(--font-base);
  border: 1.5px solid var(--bd);
  border-radius: var(--r-md);
  padding: .72rem 1rem;
  font-size: .95rem;
  color: var(--dk);
  width: 100%;
}
.wp-block-coblocks-form input[type="text"]:focus,
.wp-block-coblocks-form input[type="email"]:focus,
.wp-block-coblocks-form textarea:focus { border-color: var(--or); outline: none; }
.wp-block-coblocks-form input[type="submit"],
.wp-block-coblocks-form button[type="submit"] {
  background: var(--or);
  color: #fff;
  border: none;
  border-radius: var(--r-full);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  padding: .76rem 1.6rem;
  cursor: pointer;
  font-family: var(--font-base);
}

/* CoBlocks row/columns — prevent block-gap conflict with our hero spacing fix */
.wp-block-group.alignfull .wp-block-coblocks-row,
.wp-block-group.alignfull .wp-block-coblocks-column,
.wp-block-group.alignfull .wp-block-coblocks-features-grid {
  margin-block-start: 0;
  margin-top: 0;
}

/* CoBlocks hero block — let it use full width inside our layouts */
.wp-block-coblocks-hero .wp-block-coblocks-hero__box {
  font-family: var(--font-base);
}

/* ══════════════════════════════════════════════════════════════
   HERO HEIGHT & SPACING CONTROL SYSTEM
   --phc-hero-min-h : minimum height (default: 0 = auto)
   --phc-hero-pad-t : top padding override
   --phc-hero-pad-b : bottom padding override
   Override via: Customizer → Hero Section → spacing setting
   Or inline on the block: style="--phc-hero-min-h:80vh"
   ══════════════════════════════════════════════════════════════ */
:root {
  --phc-hero-min-h:  0px;
  --phc-hero-pad-t:  clamp(1rem, 3vw, 2rem);
  --phc-hero-pad-b:  clamp(1rem, 3vw, 2rem);
  --phc-hero-pad-x:  clamp(1.2rem, 5vw, 2.8rem);
}

/* The Gutenberg hero GROUP block — respect custom property overrides */
.wp-block-group.alignfull {
  /* Block gap suppression: most critical fix for the whitespace bug */
  --wp--style--block-gap: 0px;
}
/* Also suppress gap on columns INSIDE any alignfull group */
.wp-block-group.alignfull > .wp-block-columns {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
  --wp--style--block-gap: clamp(1rem, 3vw, 2.5rem);
}
/* And the columns block's own children */
.wp-block-group.alignfull > .wp-block-columns > .wp-block-column {
  margin-block-start: 0 !important;
}

/* ─── Utility classes for height control (add via "Additional CSS Class") ─── */
/* Usage: add class phc-hero-sm / phc-hero-md / phc-hero-lg / phc-hero-full to the group block */
.phc-hero-xs  { min-height: 30vh !important; }
.phc-hero-sm  { min-height: 45vh !important; }
.phc-hero-md  { min-height: 60vh !important; }
.phc-hero-lg  { min-height: 75vh !important; }
.phc-hero-full{ min-height: 100vh !important; }
.phc-hero-auto{ min-height: 0   !important; }  /* explicit auto — default */

/* Padding utility classes (add to group block) */
.phc-pad-none { padding: 0 !important; }
.phc-pad-xs   { padding: .75rem var(--phc-hero-pad-x) !important; }
.phc-pad-sm   { padding: 1.5rem var(--phc-hero-pad-x) !important; }
.phc-pad-md   { padding: 2.5rem var(--phc-hero-pad-x) !important; }
.phc-pad-lg   { padding: 4rem   var(--phc-hero-pad-x) !important; }
.phc-pad-xl   { padding: 6rem   var(--phc-hero-pad-x) !important; }

/* Align-items for vertical centering of hero content */
.phc-valign-top    > .wp-block-columns { align-items: flex-start !important; }
.phc-valign-center > .wp-block-columns { align-items: center     !important; }
.phc-valign-bottom > .wp-block-columns { align-items: flex-end   !important; }

/* ─── Block gap normalisation (also fixes CoBlocks stacking) ─── */
/* Prevent WP from adding gap BETWEEN consecutive alignfull groups */
.entry-content > .wp-block-group.alignfull + .wp-block-group.alignfull,
.phc-entry-content > .wp-block-group.alignfull + .wp-block-group.alignfull {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
}

/* ─── Margin control utility classes ─── */
.phc-mt-0  { margin-top: 0 !important; }
.phc-mb-0  { margin-bottom: 0 !important; }
.phc-mt-xs { margin-top: .5rem  !important; }
.phc-mt-sm { margin-top: 1rem   !important; }
.phc-mt-md { margin-top: 2rem   !important; }
.phc-mt-lg { margin-top: 3rem   !important; }
.phc-mb-sm { margin-bottom: 1rem   !important; }
.phc-mb-md { margin-bottom: 2rem   !important; }
.phc-mb-lg { margin-bottom: 3rem   !important; }

/* ══════════════════════════════════════════════════════════════════════════
   PHC NATIVE HERO — CoBlocks-free equivalent
   Replicates wp-block-coblocks-hero layout (center-left alignment,
   controlled padding, optional min-height) using only core Gutenberg blocks.

   Usage in block editor:
     Add CSS class  phc-hero-native          → base hero container
     Add CSS class  phc-hero-center-left     → left-aligned content, vertically centred
     Add CSS class  phc-pad-xs/sm/md/lg/xl   → padding control (beats inline styles)
     Add CSS class  phc-hero-sm/md/lg/full   → min-height control
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Base container ── */
.phc-hero-native {
  display: flex;
  align-items: center;
  min-height: var(--phc-hero-min-h, 0px);
  width: 100%;
  box-sizing: border-box;
}

/* ── Content alignment variants ── */
.phc-hero-native.phc-hero-center-left  { justify-content: flex-start; text-align: left; }
.phc-hero-native.phc-hero-center-right { justify-content: flex-end;   text-align: left; }
.phc-hero-native.phc-hero-center       { justify-content: center;      text-align: center; }

/* ── Inner content width cap (mirrors CoBlocks max-width:560px) ──
   WP 6.x constrained layout: contentSize on the block JSON controls max-width
   directly on the block itself — no inner wrapper div is output.
   We just ensure direct block children respect the constrained width. */
.phc-hero-native.phc-hero-center-left  > * { max-width: var(--phc-hero-content-max, 560px); }
.phc-hero-native.phc-hero-center-right > * { max-width: var(--phc-hero-content-max, 560px); }
.phc-hero-native.phc-hero-center       > * { max-width: var(--phc-hero-content-max, 560px); margin-left: auto; margin-right: auto; }

/* ── Padding scale: override CoBlocks has-*-padding equivalents ── */
/* These use !important to beat any saved inline style, same as phc-pad-* above */
.phc-hero-native.phc-pad-none    { padding: 0 !important; }
.phc-hero-native.phc-pad-xs      { padding: .75rem var(--phc-hero-pad-x) !important; }
.phc-hero-native.phc-pad-sm      { padding: 1.5rem  var(--phc-hero-pad-x) !important; }
.phc-hero-native.phc-pad-md      { padding: 2.5rem  var(--phc-hero-pad-x) !important; }
.phc-hero-native.phc-pad-lg      { padding: 4rem    var(--phc-hero-pad-x) !important; }
.phc-hero-native.phc-pad-xl      { padding: 6rem    var(--phc-hero-pad-x) !important; }

/* ── Min-height: reuse existing phc-hero-* scale ── */
.phc-hero-native.phc-hero-xs   { min-height: 30vh !important; }
.phc-hero-native.phc-hero-sm   { min-height: 45vh !important; }
.phc-hero-native.phc-hero-md   { min-height: 60vh !important; }
.phc-hero-native.phc-hero-lg   { min-height: 75vh !important; }
.phc-hero-native.phc-hero-full { min-height: 100vh !important; }
.phc-hero-native.phc-hero-auto { min-height: 0    !important; }

/* ── Block-gap suppression inside native hero ── */
.phc-hero-native > * + * { margin-block-start: 0; }
.phc-hero-native .wp-block-heading { margin-block-start: 0; }

/* ── Buttons row: left-align inside center-left hero ── */
.phc-hero-native.phc-hero-center-left .wp-block-buttons { justify-content: flex-start; }
.phc-hero-native.phc-hero-center .wp-block-buttons      { justify-content: center; }

/* ── Responsive: full width on mobile, reasonable font scale ── */
@media (max-width: 600px) {
  .phc-hero-native { min-height: 0 !important; }
  .phc-hero-native > * { max-width: 100% !important; }
  
  /* Blockquote responsive sizing */
  .wp-block-quote {
    padding: 1rem 1.2rem;
    font-size: .9rem;
    margin: 1rem 0;
    line-height: 1.7;
  }
  .wp-block-quote cite {
    font-size: .65rem;
    margin-top: .5rem;
  }
}

/* ══════════════════════════════════════════════════════════════
   PHC v6 — CoBlocks & Plugin Compatibility Layer
   ══════════════════════════════════════════════════════════════ */

/* ── CoBlocks: restore button styles we may have reset ── */
.wp-block-coblocks-buttons .wp-block-button__link,
.wp-block-coblocks-accordion__title,
.wp-block-coblocks-accordion button,
[class*="coblocks-"] button {
  font-family: inherit;
  cursor: pointer;
}

/* ── CoBlocks Accordion: z-index + stacking guard ──
   Prevents phc-hero-visual blobs (position:absolute) from
   overlapping CoBlocks shape dividers and accordions.       */
.wp-block-coblocks-accordion {
  position: relative;
  z-index: 1;
}
.wp-block-coblocks-shape-divider {
  position: relative;
  z-index: 2;
}

/* ── CoBlocks Hero: isolation from phc-hero-visual blobs ── */
.wp-block-coblocks-hero {
  position: relative;
  z-index: 1;
  isolation: isolate;
}

/* ── CoBlocks Carousel: full compatibility fix ──
   Root causes of clipping in Image 2:
   1. .entry-content has overflow:hidden — clips carousel arrows + slide overflow
   2. alignfull groups clip via their own overflow:hidden
   3. The glide.js track needs overflow:visible on the wrapper but hidden on track
   4. Arrow buttons get display:none from theme's button reset rules           */

/* Allow the carousel wrapper to overflow its entry-content parent */
.wp-block-coblocks-gallery-carousel {
  overflow: visible !important;
  position: relative;
}
/* The actual sliding track must stay hidden — that's what creates the clip effect */
.wp-block-coblocks-gallery-carousel .glide__track {
  overflow: hidden;
}
/* Slides: allow natural width, don't inherit theme img{display:block} */
.wp-block-coblocks-gallery-carousel .glide__slides {
  display: flex;
  margin: 0;
  padding: 0;
  list-style: none;
  white-space: nowrap;
}
.wp-block-coblocks-gallery-carousel .glide__slide {
  flex-shrink: 0;
  white-space: normal;
}
.wp-block-coblocks-gallery-carousel .glide__slide img {
  display: inline-block;
  width: 100%;
  height: auto;
}
/* Arrow buttons: theme button styles override glide arrows; restore them */
.wp-block-coblocks-gallery-carousel .glide__arrow {
  display: flex !important;
  align-items: center;
  justify-content: center;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 40px;
  height: 40px;
  border-radius: 50% !important;
  background: var(--white) !important;
  border: 1px solid var(--bd) !important;
  box-shadow: var(--shadow-sm) !important;
  cursor: pointer;
  padding: 0 !important;
  color: var(--dk) !important;
  font-size: 1.1rem;
  text-transform: none !important;
  letter-spacing: normal !important;
  font-weight: 400 !important;
}
.wp-block-coblocks-gallery-carousel .glide__arrow--left  { left: -20px; }
.wp-block-coblocks-gallery-carousel .glide__arrow--right { right: -20px; }
.wp-block-coblocks-gallery-carousel .glide__arrow:hover {
  background: var(--or) !important;
  border-color: var(--or) !important;
  color: var(--white) !important;
}
/* Bullets/dots */
.wp-block-coblocks-gallery-carousel .glide__bullets {
  display: flex;
  justify-content: center;
  gap: .4rem;
  margin-top: .75rem;
}
.wp-block-coblocks-gallery-carousel .glide__bullet {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--bd);
  border: none;
  padding: 0;
  cursor: pointer;
  transition: background var(--t-fast);
}
.wp-block-coblocks-gallery-carousel .glide__bullet--active,
.wp-block-coblocks-gallery-carousel .glide__bullet:hover {
  background: var(--or);
}
/* Prevent entry-content overflow:hidden from clipping the arrows */
.entry-content:has(.wp-block-coblocks-gallery-carousel),
.phc-entry-content:has(.wp-block-coblocks-gallery-carousel) {
  overflow: visible;
}
/* Fallback for browsers without :has() — use a utility class */
.entry-content.has-carousel,
.phc-entry-content.has-carousel {
  overflow: visible;
}

/* ── WooCommerce: basic brand alignment ── */
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button {
  background-color: var(--or, #ff915a) !important;
  color: #fff !important;
  border-radius: var(--r-full, 100px) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
  border: none !important;
}
.woocommerce button.button:hover,
.woocommerce a.button:hover {
  background-color: var(--or-dark, #e67d3f) !important;
}
.woocommerce .price { color: var(--or, #ff915a); font-weight: 700; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
  border-color: var(--bd, #e5e7eb);
}

/* ── Jetpack: fix sharing button alignment ── */
.jetpack-sharing-buttons__list { display: flex; flex-wrap: wrap; gap: .5rem; list-style: none; padding: 0; }

/* ── Contact Form 7: don't overstyle file inputs ──
   functions.php scopes CF7 to input:not([type=submit]),
   but exclude file and date types explicitly here.         */
.wpcf7 input[type="file"],
.wpcf7 input[type="date"],
.wpcf7 input[type="color"],
.wpcf7 input[type="range"] {
  border: none !important;
  background: transparent !important;
  padding: 0 !important;
  border-radius: 0 !important;
}

/* ── phc-faq-btn: prevent leaking into CoBlocks accordion ──
   theme.js FAQ click handler only fires on .phc-faq-btn;
   this CSS rule ensures CoBlocks' own buttons aren't
   accidentally styled to look like phc-faq-btn.            */
.wp-block-coblocks-accordion__title {
  background: none;
  border: none;
  text-align: left;
  width: 100%;
  padding: 0;
}

/* ── Flip card touch mode: show hand cursor, no text-select ── */
.phc-flip-card.phc-flip-touch-mode {
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
}

/* ── Flip card: active state for mobile tap ── */
.phc-flip-card.phc-flip-touch-mode.phc-flip-active .phc-flip-card-inner {
  transform: rotateY(180deg);
}
.phc-flip-card.phc-flip-touch-mode.phc-flip-active.phc-flip-fade .phc-flip-card-front {
  opacity: 0;
}
.phc-flip-card.phc-flip-touch-mode.phc-flip-active.phc-flip-fade .phc-flip-card-back {
  opacity: 1;
}

/* ── Reduced motion: disable all flip/blob animations ── */
@media (prefers-reduced-motion: reduce) {
  .phc-flip-card-inner,
  .phc-blob-1, .phc-blob-2, .phc-blob-3,
  .phc-photo-card,
  .phc-badge {
    animation: none !important;
    transition-duration: 0.01ms !important;
  }
}

/* ── Cookie Preferences button ───────────────────────────────────────────────
 * Moved from inline style (opacity:.55 failed WCAG 4.5:1 contrast).
 * Uses an explicit colour on dark footer that passes contrast at all sizes.
 */
.phc-cookie-manage-btn {
	background: none;
	border: none;
	cursor: pointer;
	font-size: .78rem;
	/* Explicit colour instead of opacity: passes WCAG AA on both light + dark footers */
	color: #9ca3af;
	text-decoration: underline;
	padding: 0;
	transition: color .2s ease;
}
.phc-footer-dark  .phc-cookie-manage-btn { color: #9ca3af; }
.phc-footer-light .phc-cookie-manage-btn { color: #6b7280; }
.phc-cookie-manage-btn:hover,
.phc-cookie-manage-btn:focus {
	color: #ff915a;
	outline: 2px solid #ff915a;
	outline-offset: 2px;
	border-radius: 2px;
}

/* ══════════════════════════════════════════════════════════════════════════
   PHC PRO v2.0.4 — PRODUCTION PATCH
   ══════════════════════════════════════════════════════════════════════════ */

/* ── SAFETY NET BANNER: push sticky header below banner ── */
:root[style*="--phcsn-banner-h"] .site-header {
  transition: top var(--t-fast), box-shadow var(--t-mid);
}
[id] {
  scroll-margin-top: calc(80px + var(--phcsn-banner-h, 0px) + .5rem);
}

/* ── NAV CTA: scale padding for 80px header ── */
.nav-cta-btn {
  padding: .52rem 1.2rem;
}

/* ── MOBILE HEADER: slightly shorter on narrow screens ── */
@media (max-width: 900px) {
  .site-header .header-inner { height: 68px; }
  img.site-logo { height: 46px; }
}

/* ── HERO MOBILE: zero WP block-gap between stacked columns ──
   theme.json sets blockGap:1.5rem globally. When .wp-block-columns stacks
   on mobile, WP converts the column gap to margin-block-start on the second
   column. The hero visual already has margin-top:1.5rem for badge clearance
   so we zero the WP-injected gap to prevent double spacing.
   Target: the columns wrapper gap AND the second column margin directly.   */
@media (max-width: 781px) {
  .phc-hero-auto .wp-block-columns,
  .wp-block-group.phc-hero-auto .wp-block-columns {
    gap: 0 !important;
  }
  .phc-hero-auto .wp-block-column + .wp-block-column,
  .wp-block-group.phc-hero-auto .wp-block-column + .wp-block-column {
    margin-block-start: 0 !important;
    margin-top: 0 !important;
  }
}

/* ── TESTIMONIALS / REVIEWS: mobile card padding ── */
@media (max-width: 560px) {
  .phc-quote { padding: 1rem; }
  .phc-quote::before { font-size: 4rem; top: -.3rem; }
  .phc-quote-author { flex-wrap: wrap; gap: .5rem; }
  .phc-quote-text { font-size: .82rem; }
}

/* ── GENERAL MOBILE SECTION PADDING ── */
@media (max-width: 600px) {
  .phc-section,
  .phc-section-bg,
  .phc-section-dark,
  .phc-section-gradient { border-radius: 0 !important; }
  .phc-card { padding: 1rem; }
  .phc-partner-logo-row { min-height: auto; padding: 1rem; }
  .phc-partner-body { padding: .85rem; }
  /* Stats bar: 2-col on small screens */
  .phc-stats-bar { grid-template-columns: repeat(2, 1fr); }
  .phc-stats-bar-item:nth-child(odd)  { border-right: 1px solid rgba(255,255,255,.2); }
  .phc-stats-bar-item:nth-child(even) { border-right: none; }
}

/* ── FOOTER: consistent mobile spacing ── */
@media (max-width: 480px) {
  .footer-widgets { padding: 2rem 1rem; gap: 1.5rem; }
  .footer-bottom  { padding: 1rem; flex-direction: column; align-items: flex-start; gap: .5rem; }
}

/* ── SAFE AREA INSETS: notch/home-indicator aware ── */
@supports (padding: max(0px, env(safe-area-inset-left))) {
  .site-header .header-inner {
    padding-left:  max(clamp(1rem, 3vw, 2rem), env(safe-area-inset-left));
    padding-right: max(clamp(1rem, 3vw, 2rem), env(safe-area-inset-right));
  }
  .phc-wrap,
  .footer-widgets,
  .footer-bottom {
    padding-left:  max(clamp(1.2rem, 5vw, 2.8rem), env(safe-area-inset-left));
    padding-right: max(clamp(1.2rem, 5vw, 2.8rem), env(safe-area-inset-right));
  }
}
