/*
 * Premium Hero v9 — real public website HTML/CSS, not a rendered mockup.
 * Preserves all content, H1, link URLs and the image-first layout.
 * Shared across 28 landing pages and compatible with v8's 1200px grid.
 */
:root {
  --ph-espresso: #2d1b13;
  --ph-cocoa: #503421;
  --ph-brown: #765439;
  --ph-gold: #c48a30;
  --ph-gold-light: #f2c976;
  --ph-cream: #fffaf2;
  --ph-stroke: rgba(133, 89, 42, .17);
}
.hero-top-image { isolation: isolate; }
.hero-top-image > .container { min-width: 0; }
.hero-top-image .hero-main-card { margin-bottom: clamp(18px, 2.8vw, 34px); }
.hero-top-image .hero-copy-below.premium-hero {
  --ph-inner: min(1050px, 100%);
  isolation: isolate;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  gap: 0;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0 auto;
  padding: clamp(26px, 4.2vw, 57px) clamp(17px, 4.15vw, 56px) clamp(18px, 3.5vw, 43px);
  text-align: center;
  border-radius: clamp(22px, 3vw, 38px);
  border: 1px solid rgba(187, 137, 69, .33);
  background:
    radial-gradient(ellipse 430px 310px at -4% 40%, rgba(228, 182, 108, .22), transparent 68%),
    radial-gradient(ellipse 430px 340px at 103% 12%, rgba(224, 180, 103, .20), transparent 67%),
    linear-gradient(145deg, #fffefd 0%, #fff9f0 52%, #f9ebd7 100%);
  box-shadow: 0 4px 5px rgba(68, 38, 15, .025), 0 18px 42px rgba(67, 43, 24, .07), 0 38px 90px rgba(68, 38, 15, .09);
  overflow: hidden;
}
.premium-hero::before,
.premium-hero::after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
  border-radius: 50%;
}
.premium-hero::before {
  width: clamp(160px, 30vw, 390px);
  height: clamp(160px, 30vw, 390px);
  left: clamp(-260px, -15vw, -95px);
  top: 20%;
  border: 1px solid rgba(184, 124, 45, .15);
  box-shadow: 0 0 0 32px rgba(210, 165, 91, .053), 0 0 0 70px rgba(210, 165, 91, .035);
}
.premium-hero::after {
  width: clamp(170px, 31vw, 410px);
  height: clamp(170px, 31vw, 410px);
  right: clamp(-270px, -17vw, -115px);
  top: 5%;
  border: 1px solid rgba(184, 124, 45, .16);
  box-shadow: 0 0 0 36px rgba(210, 165, 91, .053), 0 0 0 78px rgba(210, 165, 91, .035);
}
.hero-top-image .premium-hero .ph-eyebrow {
  display: inline-flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 10px;
  max-width: 100%;
  margin: 0 auto clamp(19px, 2vw, 27px);
  padding: 7px 20px 7px 9px;
  border: 1px solid rgba(177, 118, 48, .35);
  background: linear-gradient(115deg, rgba(255,255,255,.99), rgba(254,242,220,.98));
  box-shadow: 0 9px 24px rgba(112, 72, 27, .09), inset 0 1px 0 rgba(255,255,255,.9);
  border-radius: 999px;
  color: #684021;
  letter-spacing: .015em;
  font-size: clamp(12px, 1.13vw, 14px);
  font-weight: 900;
  line-height: 1.4;
  text-wrap: balance;
  overflow-wrap: anywhere;
}
.hero-top-image .premium-hero .ph-eyebrow-icon {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  border-radius: 50%;
  background: linear-gradient(145deg, #bc8233, #80501f);
  color: #fff8df;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.38);
}
.premium-hero .ph-eyebrow-icon svg { width: 19px; height: 19px; }
.hero-top-image .premium-hero h1 {
  width: 100%;
  max-width: 1040px;
  margin: 0 auto clamp(16px, 2vw, 25px);
  font-size: clamp(33px, 4.95vw, 66px);
  font-weight: 900;
  line-height: 1.22;
  letter-spacing: -.045em;
  color: var(--ph-espresso);
  overflow-wrap: break-word;
  text-wrap: balance;
  text-shadow: 0 2px 0 rgba(255,255,255,.55);
}
.hero-top-image .premium-hero h1 .grad {
  position: relative;
  background: linear-gradient(130deg, #82501f 4%, #ba8430 42%, #9a6222 78%, #754719 98%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  white-space: nowrap;
  font-weight: 900;
}
.hero-top-image .premium-hero .lead {
  width: 100%;
  max-width: 930px;
  margin: 0 auto clamp(18px, 2.6vw, 29px);
  font-size: clamp(16px, 1.53vw, 19px);
  font-weight: 500;
  line-height: 1.9;
  color: #614937;
  text-wrap: pretty;
  overflow-wrap: break-word;
}
.premium-hero .lead strong { color: #3f261b; font-weight: 900; }
.hero-top-image .premium-hero .ph-detail-panel {
  display: block;
  width: 100%;
  max-width: var(--ph-inner);
  min-width: 0;
  margin: 0 auto clamp(22px, 2.5vw, 30px);
  padding: clamp(15px, 2.3vw, 24px) clamp(15px, 2.5vw, 29px);
  border: 1px solid rgba(180, 122, 56, .19);
  border-radius: 23px;
  background: rgba(255, 255, 255, .71);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.9), 0 14px 28px rgba(98,64,35,.065);
  text-align: left;
}
.premium-hero .ph-detail-heading {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 13px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(180, 122, 56, .16);
  font-weight: 900;
  font-size: clamp(13px, 1.15vw, 15px);
  line-height: 1.6;
  color: #704520;
}
.premium-hero .ph-detail-heading em { font-style: normal; color: #b88b51; padding-inline: 3px; }
.premium-hero .ph-detail-icon {
  flex: 0 0 29px;
  width: 29px;
  height: 29px;
  display: grid;
  place-items: center;
  background: #f9edd6;
  border-radius: 9px;
  color: #9a6326;
}
.premium-hero .ph-detail-icon svg { width: 17px; height: 17px; }
.premium-hero .ph-detail-content {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: 12px 26px;
  color: #624c39;
  font-size: clamp(13px, 1.08vw, 15px);
  line-height: 1.85;
  overflow-wrap: break-word;
}
.premium-hero .ph-detail-content p {
  padding: 0;
  margin: 0;
  font-size: inherit;
  line-height: inherit;
  color: inherit;
}
.premium-hero .ph-detail-content > :not(p) { min-width: 0; }
.premium-hero .ph-detail-content > :only-child { grid-column: 1 / -1; }
.premium-hero .ph-detail-content:has(> .mini-cards),
.premium-hero .ph-detail-content:has(> .office-hero-note) { grid-template-columns: 1fr; }
.premium-hero .ph-detail-content .mini-cards { max-width: 100%; }
.premium-hero .ph-actions-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  width: 100%;
  max-width: 650px;
  margin: 0 auto clamp(11px, 1.4vw, 18px);
  color: #81572a;
  font-size: clamp(12px, 1.1vw, 14px);
  font-weight: 900;
  letter-spacing: .01em;
}
.premium-hero .ph-actions-label::before,
.premium-hero .ph-actions-label::after {
  content: "";
  flex: 1 1 0;
  min-width: 5px;
  height: 1px;
  background: linear-gradient(90deg,transparent,#d9b47b);
}
.premium-hero .ph-actions-label::after { transform: scaleX(-1); }
.hero-top-image .premium-hero .hero-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(10px, 1.5vw, 18px);
  width: min(100%, 790px);
  max-width: 100%;
  min-width: 0;
  margin: 0 auto clamp(20px, 2.8vw, 32px);
  align-items: stretch;
  justify-content: center;
}
.hero-top-image .premium-hero .hero-actions .btn {
  min-width: 0;
  width: 100%;
  min-height: 66px;
  max-width: 100%;
  gap: 10px;
  padding: 12px 18px;
  border-radius: 19px;
  font-size: clamp(14px, 1.36vw, 17px);
  line-height: 1.45;
  font-weight: 900;
  white-space: normal;
  text-align: center;
  text-decoration: none;
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
  overflow-wrap: anywhere;
}
.premium-hero .hero-actions .btn span { min-width: 0; }
.hero-top-image .premium-hero .hero-actions .btn-icon-line {
  background: linear-gradient(155deg, #12c75a 0%, #06923e 50%, #036f32 100%);
  color: #fff;
  border: 1px solid rgba(255,255,255,.7);
  box-shadow: 0 12px 26px rgba(2, 116, 48, .18), inset 0 1px 0 rgba(255,255,255,.3);
}
.hero-top-image .premium-hero .hero-actions .btn-icon-phone {
  background: linear-gradient(140deg, #f4cf72 0%, #d9a343 46%, #b57c26 100%);
  color: #27180e;
  border: 1px solid rgba(169, 112, 36, .42);
  box-shadow: 0 12px 26px rgba(127, 81, 26, .16), inset 0 1px 0 rgba(255,255,255,.5);
}
.premium-hero .hero-actions .btn svg { width: 25px; height: 25px; flex: 0 0 25px; }
.premium-hero .hero-actions .btn::after {
  content: "→";
  margin-left: auto;
  font-size: 20px;
  font-weight: 500;
  opacity: .8;
}
.premium-hero .hero-actions .btn:hover { transform: translateY(-2px); filter: saturate(1.08); }
.premium-hero .hero-actions .btn:focus-visible { outline: 3px solid #5d4b34; outline-offset: 4px; }
.hero-top-image .premium-hero .ph-trust-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(8px, 1.2vw, 14px);
  width: 100%;
  max-width: var(--ph-inner);
  min-width: 0;
  margin: 0 auto;
}
.premium-hero .ph-trust-grid .ph-trust-card {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
  min-width: 0;
  min-height: 98px;
  padding: clamp(12px, 1.15vw, 15px);
  text-align: left;
  border: 1px solid rgba(179, 133, 76, .21);
  border-radius: 19px;
  background: linear-gradient(145deg, rgba(255,255,255,.98), rgba(255,250,240,.91));
  box-shadow: 0 11px 25px rgba(80,53,28,.07), inset 0 1px 0 #fff;
  color: #634124;
}
.premium-hero .ph-trust-icon {
  width: 43px;
  height: 43px;
  flex: 0 0 43px;
  border-radius: 13px;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg,#fff2d4,#f7d99c);
  border: 1px solid rgba(194,141,62,.15);
  color: #96601f;
}
.premium-hero .ph-trust-icon svg { width: 23px; height: 23px; }
.premium-hero .ph-trust-content { display: block; min-width: 0; }
.premium-hero .ph-trust-content strong {
  display: block;
  font-size: clamp(13px, 1.16vw, 15px);
  font-weight: 900;
  line-height: 1.45;
  color: #4d2f1c;
  overflow-wrap: break-word;
}
.premium-hero .ph-trust-content small {
  display: block;
  margin-top: 5px;
  color: #856d59;
  font-size: 12px;
  line-height: 1.45;
  font-weight: 500;
  overflow-wrap: break-word;
}
/* Some service pages have their own additional notes below the trust row. */
.premium-hero > .office-hero-note {
  width: 100%;
  max-width: var(--ph-inner);
  margin-top: 12px;
}
@media (max-width: 1000px) {
  .hero-top-image .premium-hero h1 { font-size: clamp(32px, 5.8vw, 56px); }
  .premium-hero .ph-detail-content { gap: 12px 18px; }
  .hero-top-image .premium-hero .ph-trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .hero-top-image .hero-copy-below.premium-hero {
    border-radius: 23px;
    padding: 26px 16px 18px;
  }
  .hero-top-image .premium-hero .ph-eyebrow {
    font-size: 12px;
    gap: 6px;
    margin-bottom: 21px;
    padding: 6px 13px 6px 6px;
  }
  .hero-top-image .premium-hero .ph-eyebrow-icon { width: 29px; height: 29px; flex-basis: 29px; }
  .hero-top-image .premium-hero h1 {
    font-size: clamp(29px, 7.9vw, 43px);
    line-height: 1.24;
    letter-spacing: -.045em;
    margin-bottom: 15px;
    overflow-wrap: break-word;
  }
  .hero-top-image .premium-hero .lead { font-size: 15px; line-height: 1.85; margin-bottom: 19px; }
  .hero-top-image .premium-hero .ph-detail-panel { padding: 15px; border-radius: 17px; margin-bottom: 22px; }
  .premium-hero .ph-detail-content { grid-template-columns: 1fr; font-size: 13px; gap: 10px; }
  .premium-hero .ph-detail-heading { font-size: 12px; }
  .hero-top-image .premium-hero .hero-actions { grid-template-columns: 1fr; gap: 10px; }
  .hero-top-image .premium-hero .hero-actions .btn { min-height: 58px; padding: 11px 14px; font-size: 15px; }
  .hero-top-image .premium-hero .ph-trust-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .premium-hero .ph-trust-grid .ph-trust-card { flex-direction: column; text-align: center; gap: 7px; padding: 13px 8px; min-height: 134px; border-radius: 16px; }
  .premium-hero .ph-trust-icon { width: 38px; height: 38px; flex-basis: 38px; border-radius: 12px; }
  .premium-hero .ph-trust-icon svg { width: 21px; height: 21px; }
  .premium-hero .ph-trust-content strong { font-size: 13px; }
  .premium-hero .ph-trust-content small { font-size: 11px; line-height: 1.4; }
}
@media (max-width: 360px) {
  .hero-top-image .hero-copy-below.premium-hero { padding-inline: 12px; }
  .hero-top-image .premium-hero h1 { font-size: 25px; }
  .premium-hero .ph-trust-grid .ph-trust-card { padding-inline: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .premium-hero .hero-actions .btn { transition: none; }
}

/* The original floating buttons must not cover the new contact area. */
body.ph-cta-visible .float-contact {
  opacity: 0;
  pointer-events: none;
  transform: translateY(16px);
}
