/* Reference palette and three native-block homepage layouts.
   Interior pages retain the existing cc components with these palette overrides. */
:root {
  --pc-navy:#123a54;
  --pc-navy-dark:#0e2c40;
  --pc-teal:#1e7f87;
  --pc-gold:#c79a45;
  --pc-ink:#1c2b36;
  --pc-muted:#5a6b76;
  --pc-line:#e1e7ea;
  --pc-soft:#f7f9fa;
  --pc-font:"Avenir Next","Helvetica Neue",Arial,sans-serif;
  --cc-ivory:#fff;
  --cc-white:#fff;
  --cc-blush:#eef2f4;
  --cc-sage-wash:#f7f9fa;
  --cc-sage:#1e7f87;
  --cc-wine:#1e7f87;
  --cc-wine-dark:#176a70;
  --cc-clay:#c79a45;
  --cc-clay-dark:#176a70;
  --cc-champagne:#c79a45;
  --cc-ink:#1c2b36;
  --cc-body:#5a6b76;
  --cc-muted:#5a6b76;
  --cc-line:#e1e7ea;
  --cc-line-soft:#e1e7ea;
  --cc-serif:var(--pc-font);
  --cc-sans:var(--pc-font);
  --cc-wide:min(1240px,calc(100% - 48px))
}

body {
  background:#fff;
  color:var(--pc-ink);
  font-family:var(--pc-font);
  line-height:1.6
}
h1,h2,h3,h4,h5,h6,.wp-block-post-title {
  color:var(--pc-ink);
  font-family:var(--pc-font);
  font-weight:700;
  letter-spacing:-.035em;
  line-height:1.15
}
a {
  color:var(--pc-teal)
}
:focus-visible {
  outline:3px solid var(--pc-gold);
  outline-offset:3px
}
.cc-topline {
  display:none
}
.cc-header {
  background:rgba(255,255,255,.97);
  border-bottom:1px solid var(--pc-line);
  box-shadow:0 1px 2px rgba(18,46,63,.06)
}
.cc-nav-shell {
  min-height:78px
}
.cc-brand-mark {
  border:2px solid var(--pc-navy);
  border-radius:50%;
  color:var(--pc-teal);
  font-family:var(--pc-font);
  font-weight:800
}
.cc-brand-name,.cc-brand-name a {
  color:var(--pc-navy);
  font-family:var(--pc-font);
  font-weight:800
}
.cc-brand-sub {
  color:var(--pc-teal)
}
.cc-header .wp-block-navigation a {
  color:var(--pc-muted)
}
.cc-header .wp-block-navigation a:hover {
  color:var(--pc-teal)
}
.cc-header-cta .wp-block-button__link,.cc-button,.wp-block-button__link {
  background:var(--pc-teal);
  border-color:var(--pc-teal);
  color:#fff!important;
  border-radius:999px;
  font-family:var(--pc-font);
  font-weight:700
}
.cc-button:hover,.wp-block-button__link:hover {
  background:#176a70;
  border-color:#176a70
}
.cc-site-footer {
  background:var(--pc-navy-dark);
  color:rgba(255,255,255,.76)
}
.cc-site-footer h4,.cc-site-footer .cc-brand-name,.cc-site-footer .cc-brand-name a {
  color:#fff
}
.cc-site-footer a {
  color:rgba(255,255,255,.8)
}
.cc-site-footer a:hover {
  color:var(--pc-gold)
}
.cc-page-hero {
  background:var(--pc-soft)
}
.cc-page-hero::after {
  border-color:rgba(30,127,135,.25)
}
.cc-kicker {
  color:var(--pc-teal)
}
.cc-section-dark,.cc-trust-band,.cc-cta {
  background:var(--pc-navy)
}
.cc-section-blush {
  background:#eef2f4
}
.cc-section-tint {
  background:#f7f9fa
}

.pc-hero,.pc-section {
  box-sizing:border-box;
  position:relative;
  margin-block:0!important
}
.pc-hero *,.pc-section * {
  box-sizing:border-box
}
.pc-hero .wp-block-group,.pc-section .wp-block-group {
  margin-block-start:0
}
.pc-container {
  width:min(1240px,calc(100% - 48px));
  margin-inline:auto
}
.pc-section {
  padding-block:clamp(64px,8vw,100px)
}
.pc-eyebrow,.pc-hero-eyebrow {
  color:var(--pc-teal);
  font-size:.78rem;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin:0 0 20px
}
.pc-eyebrow::before {
  content:"";
  display:inline-block;
  width:18px;
  height:2px;
  margin:0 9px 4px 0;
  background:var(--pc-gold)
}
.pc-section-head {
  max-width:660px;
  margin-bottom:clamp(40px,5vw,64px)
}
.pc-section-title {
  font-size:clamp(2rem,3.3vw,3.25rem);
  margin:0 0 18px
}
.pc-section-lede {
  color:var(--pc-muted);
  font-size:1.1rem;
  margin:0
}
.pc-hero {
  min-height:700px;
  display:flex;
  align-items:center;
  overflow:hidden;
  color:#fff
}
.pc-hero-reference {
  min-height:min(88vh,850px)
}
.pc-hero-reference .pc-hero-media {
  position:absolute;
  inset:0
}
.pc-hero-reference .pc-hero-media::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(100deg,rgba(7,22,34,.93) 0%,rgba(10,30,45,.78) 43%,rgba(14,41,59,.38) 74%,rgba(14,41,59,.25) 100%)
}
.pc-hero-reference .pc-hero-image,.pc-hero-reference .pc-hero-image img {
  width:100%;
  height:100%;
  margin:0;
  object-fit:cover
}
.pc-hero-reference>.pc-container {
  position:relative;
  z-index:1
}
.pc-hero-inner {
  max-width:680px;
  padding-block:clamp(88px,10vw,144px)
}
.pc-hero-eyebrow {
  color:var(--pc-gold)
}
.pc-hero-title {
  color:#fff;
  font-size:clamp(3.1rem,5.6vw,5.25rem);
  font-weight:800;
  line-height:1.04;
  margin:0 0 24px;
  max-width:13ch
}
.pc-hero-title em {
  color:#e1b968;
  font-style:normal
}
.pc-hero-lede {
  color:rgba(255,255,255,.86);
  font-size:clamp(1.08rem,1.55vw,1.28rem);
  line-height:1.65;
  max-width:58ch;
  margin:0 0 30px
}
.pc-hero-actions {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin:0 0 48px
}
.pc-hero-actions .wp-block-button__link,.pc-banner-actions .wp-block-button__link {
  min-height:51px;
  padding:.92rem 1.7rem
}
.pc-button-gold .wp-block-button__link {
  background:var(--pc-gold);
  border-color:var(--pc-gold);
  color:var(--pc-navy-dark)!important
}
.pc-button-gold .wp-block-button__link:hover {
  background:#ad8339;
  border-color:#ad8339;
  color:var(--pc-navy-dark)!important
}
.pc-button-teal .wp-block-button__link {
  background:var(--pc-teal);
  border-color:var(--pc-teal)
}
.pc-button-outline .wp-block-button__link {
  background:transparent;
  color:#fff!important;
  border:1.5px solid rgba(255,255,255,.65)
}
.pc-button-outline .wp-block-button__link:hover {
  background:rgba(255,255,255,.08);
  border-color:#fff
}
.pc-hero-trust {
  display:flex;
  flex-wrap:wrap;
  gap:16px 26px
}
.pc-trust-item {
  color:rgba(255,255,255,.84);
  font-size:.9rem;
  font-weight:600;
  margin:0;
  padding-left:19px;
  position:relative
}
.pc-trust-item::before {
  content:"✓";
  color:var(--pc-gold);
  position:absolute;
  left:0
}

.pc-services {
  background:#fff
}
.pc-services-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px
}
.pc-service-card {
  border:1px solid var(--pc-line);
  border-radius:14px;
  padding:30px 27px;
  background:#fff;
  box-shadow:0 8px 24px rgba(18,46,63,.045);
  min-height:285px
}
.pc-service-number {
  display:grid;
  place-items:center;
  width:45px;
  height:45px;
  border-radius:12px;
  background:#d8ecee;
  color:var(--pc-teal);
  font-size:.84rem;
  font-weight:800;
  margin:0 0 25px
}
.pc-service-card h3 {
  font-size:1.3rem;
  margin:0 0 13px
}
.pc-service-card h3 a {
  color:var(--pc-ink);
  text-decoration:none
}
.pc-service-card>p:not(.pc-service-number):not(.pc-service-link) {
  color:var(--pc-muted);
  font-size:.94rem;
  margin-bottom:22px
}
.pc-service-link {
  font-size:.88rem;
  font-weight:700;
  margin:0
}
.pc-service-link a {
  text-decoration:none
}
.pc-about {
  background:var(--pc-soft)
}
.pc-about-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(45px,6vw,85px);
  align-items:center
}
.pc-about-media {
  position:relative
}
.pc-about-image,.pc-about-image img {
  width:100%;
  margin:0;
  border-radius:15px;
  object-fit:cover;
  aspect-ratio:4/3
}
.pc-about-badge {
  position:absolute;
  left:22px;
  bottom:22px;
  background:#fff;
  padding:17px 23px;
  border-radius:10px;
  box-shadow:0 12px 30px rgba(18,46,63,.13)
}
.pc-about-badge-title {
  color:var(--pc-navy);
  font-size:.95rem;
  font-weight:800;
  margin:0
}
.pc-about-badge-sub {
  color:var(--pc-muted);
  font-size:.79rem;
  margin:0
}
.pc-about-copy h2 {
  font-size:clamp(2rem,3.5vw,3.6rem);
  margin:0 0 24px
}
.pc-about-copy>p:not(.pc-eyebrow) {
  color:var(--pc-muted);
  margin-bottom:20px
}
.pc-about-copy .wp-block-buttons {
  margin-top:28px
}
.pc-trust-band {
  background:var(--pc-navy);
  color:#fff
}
.pc-trust-band .pc-eyebrow {
  color:var(--pc-gold)
}
.pc-trust-band .pc-section-title {
  color:#fff
}
.pc-trust-band .pc-section-lede {
  color:rgba(255,255,255,.74)
}
.pc-trust-grid {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:27px
}
.pc-trust-card {
  border-top:2px solid var(--pc-gold);
  padding-top:23px
}
.pc-trust-card h3 {
  color:#fff;
  font-size:1.18rem;
  margin:0 0 12px
}
.pc-trust-card p {
  color:rgba(255,255,255,.74);
  font-size:.94rem;
  margin:0
}

.pc-steps {
  background:#fff
}
.pc-steps-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(30px,5vw,75px);
  margin-bottom:70px
}
.pc-step-number {
  color:var(--pc-teal);
  font-size:2.5rem;
  font-weight:800;
  line-height:1;
  margin:0 0 24px
}
.pc-step h3 {
  font-size:1.3rem;
  margin:0 0 13px
}
.pc-step p:last-child {
  color:var(--pc-muted);
  font-size:.96rem
}
.pc-cta-banner {
  background:var(--pc-navy);
  border-radius:17px;
  color:#fff;
  padding:clamp(30px,5vw,58px);
  display:flex;
  gap:30px;
  justify-content:space-between;
  align-items:center
}
.pc-cta-banner h2 {
  color:#fff;
  font-size:clamp(1.8rem,2.8vw,2.6rem);
  margin:0 0 12px
}
.pc-cta-banner p {
  color:rgba(255,255,255,.77);
  margin:0
}
.pc-banner-actions {
  flex-shrink:0;
  display:flex;
  flex-wrap:wrap;
  gap:12px
}
.pc-location {
  background:var(--pc-soft)
}
.pc-location-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(30px,6vw,80px)
}
.pc-info-card {
  background:#fff;
  border:1px solid var(--pc-line);
  border-radius:15px;
  padding:clamp(30px,4vw,45px)
}
.pc-info-card h3 {
  font-size:1.5rem;
  margin-bottom:25px
}
.pc-info-card p {
  border-bottom:1px solid var(--pc-line);
  padding-bottom:18px;
  color:var(--pc-muted)
}
.pc-info-card .wp-block-buttons {
  margin-top:28px
}
.pc-info-card .pc-button-outline .wp-block-button__link {
  color:var(--pc-navy)!important;
  border-color:var(--pc-line)
}
.pc-location-panel {
  min-height:390px;
  background:var(--pc-navy);
  border-radius:15px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  color:#fff;
  background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
  background-size:32px 32px
}
.pc-location-panel h3 {
  color:#fff;
  font-size:2rem;
  margin:0 0 7px
}
.pc-location-panel p {
  color:rgba(255,255,255,.75);
  margin:0 0 5px
}

.pc-hero-split {
  background:#eef2f4;
  color:var(--pc-ink);
  min-height:630px
}
.pc-hero-split .pc-hero-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(35px,6vw,85px);
  align-items:center
}
.pc-hero-split .pc-hero-inner {
  padding-block:80px
}
.pc-hero-split .pc-hero-title {
  color:var(--pc-navy)
}
.pc-hero-split .pc-hero-title em {
  color:var(--pc-teal)
}
.pc-hero-split .pc-hero-eyebrow {
  color:var(--pc-teal)
}
.pc-hero-split .pc-hero-lede,.pc-hero-split .pc-trust-item {
  color:var(--pc-muted)
}
.pc-hero-split .pc-button-outline .wp-block-button__link {
  color:var(--pc-navy)!important;
  border-color:var(--pc-navy)
}
.pc-hero-split .pc-hero-image,.pc-hero-split .pc-hero-image img {
  width:100%;
  height:580px;
  margin:0;
  border-radius:160px 15px 15px 15px;
  object-fit:cover
}
.pc-hero-editorial {
  display:block;
  background:var(--pc-navy);
  min-height:0
}
.pc-hero-editorial>.pc-container {
  position:relative;
  z-index:1
}
.pc-hero-editorial .pc-hero-inner {
  max-width:840px;
  padding-block:82px 65px
}
.pc-hero-editorial .pc-hero-title {
  max-width:16ch
}
.pc-hero-editorial .pc-hero-media {
  height:clamp(300px,40vw,530px)
}
.pc-hero-editorial .pc-hero-image,.pc-hero-editorial .pc-hero-image img {
  width:100%;
  height:100%;
  margin:0;
  object-fit:cover
}

.pc-preview-header {
  background:#fff;
  border-bottom:1px solid var(--pc-line);
  position:sticky;
  top:0;
  z-index:20
}
.pc-preview-nav {
  min-height:76px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px
}
.pc-preview-brand {
  text-decoration:none;
  line-height:1.12
}
.pc-preview-brand strong {
  display:block;
  color:var(--pc-navy);
  font-size:1.15rem;
  font-weight:800
}
.pc-preview-brand span {
  display:block;
  color:var(--pc-teal);
  font-size:.62rem;
  letter-spacing:.11em;
  text-transform:uppercase;
  font-weight:800
}
.pc-preview-nav nav {
  display:flex;
  gap:27px
}
.pc-preview-nav nav a {
  color:var(--pc-muted);
  text-decoration:none;
  font-size:.9rem;
  font-weight:600
}
.pc-preview-cta {
  border-radius:999px;
  background:var(--pc-teal);
  color:#fff;
  text-decoration:none;
  padding:10px 18px;
  font-weight:700;
  font-size:.85rem
}
.pc-preview-footer {
  background:var(--pc-navy-dark);
  color:rgba(255,255,255,.76);
  padding:55px 0
}
.pc-preview-footer strong {
  color:#fff
}
.pc-preview-footer p {
  margin:6px 0
}

@media(max-width:1050px) {
  .pc-services-grid,.pc-trust-grid {
  grid-template-columns:repeat(2,minmax(0,1fr))
}
.pc-hero-split .pc-hero-image,.pc-hero-split .pc-hero-image img {
  height:470px
}

}
@media(max-width:760px) {
  .pc-container {
  width:min(100% - 36px,1240px)
}
.pc-section {
  padding-block:66px
}
.pc-hero-reference {
  min-height:790px
}
.pc-hero-reference .pc-hero-media::after {
  background:linear-gradient(90deg,rgba(7,22,34,.89),rgba(7,22,34,.58))
}
.pc-hero-inner {
  padding-block:85px
}
.pc-hero-title {
  font-size:clamp(3rem,8vw,4.4rem)
}
.pc-about-grid,.pc-location-grid,.pc-hero-split .pc-hero-grid {
  grid-template-columns:1fr
}
.pc-hero-split .pc-hero-inner {
  padding-block:70px 20px
}
.pc-hero-split .pc-hero-media {
  padding-bottom:55px
}
.pc-hero-split .pc-hero-image,.pc-hero-split .pc-hero-image img {
  height:360px;
  border-radius:120px 15px 15px 15px
}
.pc-steps-grid {
  grid-template-columns:1fr;
  gap:35px;
  margin-bottom:50px
}
.pc-cta-banner {
  display:block
}
.pc-banner-actions {
  margin-top:26px
}
.pc-preview-nav nav {
  display:none
}

}
@media(max-width:520px) {
  .pc-services-grid,.pc-trust-grid {
  grid-template-columns:1fr
}
.pc-hero-reference {
  min-height:750px
}
.pc-hero-inner {
  padding-block:75px
}
.pc-hero-actions .wp-block-button,.pc-hero-actions .wp-block-button__link {
  width:100%
}
.pc-hero-trust {
  display:block
}
.pc-trust-item {
  margin-bottom:9px
}
.pc-about-badge {
  left:10px;
  bottom:10px;
  padding:12px 15px
}
.pc-location-panel {
  min-height:290px
}
.pc-preview-cta {
  display:none
}

}

/* Darker ink on pale surfaces keeps small labels readable. */
.pc-about .pc-eyebrow,
.pc-location .pc-eyebrow,
.pc-hero-split .pc-hero-eyebrow { color: #176a70; }
.pc-service-number { color: #123a54; }
@media (max-width: 980px) {
  .cc-header-cta { display: none !important; }
  .cc-nav-shell { min-height: 76px; }
}
@media (max-width: 760px) {
  .pc-hero-reference .pc-hero-image img { object-position: 70% center; }
}
