/* ===========================================================
   The Sign Post Guy — brand layer
   Applies the locked SPG brand palette, type scale, radii,
   spacing, depth and motion from SPG_Design_Language.md.
   Loaded last so it wins over the template stylesheet.
   =========================================================== */

:root{
  --ink:#14212B;
  --teal:#0C546C;
  --teal-deep:#0A3F52;
  --sky:#0C9CE4;
  --amber:#F5A623;
  --amber-ink:#3F2B04;
  --canvas:#F2EDE7;
  --surface:#FFFFFF;
  --tint:#FBEDE0;
  --line:#E7E0D6;
  --muted:#667685;

  --r-card:20px;
  --r-tile:16px;
  --r-btn:14px;

  --shadow:0 4px 16px rgba(20,33,43,.06);
  --shadow-raised:0 10px 28px rgba(12,84,108,.10);

  --ease:cubic-bezier(.2,.7,.2,1);
  --dur:240ms;

  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",
         Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji";
}

/* ---------- Foundations ---------- */

body{
  font-family:var(--sans);
  background:var(--canvas);
  color:var(--ink);
  font-size:15px;
  line-height:1.62;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4,h5,h6,.alt-font,.title-large,.title-big{
  font-family:var(--sans);
  color:var(--teal);
  letter-spacing:-.01em;
}
h4,h5,h6{color:var(--ink)}

h1{font-size:34px;font-weight:800;line-height:1.15}
h2{font-size:30px;font-weight:800;line-height:1.2}
h3{font-size:24px;font-weight:750;line-height:1.25}
h4{font-size:18px;font-weight:700}
h5,h6{font-size:18px;font-weight:700}

p{color:var(--ink)}
a{color:var(--teal);transition:color var(--dur) var(--ease)}
a:hover,a:focus{color:var(--teal-deep)}

/* Muted text is safe on white only. On the warm canvas it drops to
   4.01:1, so anything sitting on canvas keeps Ink. */
.text-med-gray,.text-gray,.text-light-gray,small{color:var(--muted)}
section:not(.bg-extra-dark-gray) .text-med-gray,
section:not(.bg-extra-dark-gray) .text-gray{color:var(--ink)}

/* ---------- Surfaces ---------- */

section{background:var(--canvas)}
.bg-white,section.bg-white{background:var(--surface)}

/* The booking band — deep teal instead of flat near-black. */
.bg-extra-dark-gray{
  background:linear-gradient(160deg,var(--teal) 0%,var(--teal-deep) 100%)!important;
  color:#fff;
}
.bg-extra-dark-gray h1,.bg-extra-dark-gray h2,.bg-extra-dark-gray h3,
.bg-extra-dark-gray h4,.bg-extra-dark-gray h5,.bg-extra-dark-gray h6,
.bg-extra-dark-gray p,.bg-extra-dark-gray span{color:#fff!important}

.bg-light-gray,footer.bg-light-gray{background:var(--canvas)!important}

.border-color-extra-light-gray,
.border-bottom,.border-top{border-color:var(--line)!important}

/* ---------- Buttons ---------- */

.btn,.button,input[type=submit],button{
  font-family:var(--sans);
  border-radius:var(--r-btn);
  min-height:44px;
  padding:0 24px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
  font-size:14px;
  letter-spacing:.04em;
  border:none;
  transition:background var(--dur) var(--ease),
             transform var(--dur) var(--ease),
             box-shadow var(--dur) var(--ease);
}

/* Primary — the one action that matters. Amber never takes white text. */
.btn-spg-primary{
  background:var(--amber)!important;
  color:var(--amber-ink)!important;
  box-shadow:var(--shadow-raised);
}
.btn-spg-primary:hover,.btn-spg-primary:focus{
  background:#e59a1f!important;
  color:var(--amber-ink)!important;
  transform:translateY(-2px);
}

/* Supporting actions */
.btn-spg-secondary,
.btn.btn-medium,.btn.btn-small,.btn.btn-large{
  background:transparent;
  color:var(--teal);
  border:1px solid var(--teal);
}
.btn-spg-secondary:hover,.btn-spg-secondary:focus,
.btn.btn-medium:hover,.btn.btn-small:hover,.btn.btn-large:hover{
  background:var(--teal);
  color:#fff;
}

.bg-extra-dark-gray .btn-spg-secondary{
  color:#fff;border-color:rgba(255,255,255,.55);
}
.bg-extra-dark-gray .btn-spg-secondary:hover{
  background:#fff;color:var(--teal);border-color:#fff;
}

/* ---------- Header ---------- */

header .navbar{background:transparent;border-bottom:none;transition:background var(--dur) var(--ease)}
/* Over the hero the bar is transparent, so its links must stay white. */
header .navbar a,header .navbar .text-deep-pink,header .navbar .text-deep-pink a{color:#fff!important}
.header-appear header .navbar{
  background:rgba(242,237,231,.96);
  backdrop-filter:saturate(140%) blur(8px);
  border-bottom:1px solid var(--line);
  box-shadow:var(--shadow);
}
.header-appear header .navbar a,
.header-appear header .navbar .text-deep-pink,
.header-appear header .navbar .text-deep-pink a{color:var(--teal)!important}

/* ---------- Hero ---------- */

#home{position:relative}

#home .slider-text-middle img{max-width:min(560px,72vw);height:auto}
.hero-cta{margin-top:34px;text-align:center;position:relative;z-index:3}
#home .down-section{display:none}
.hero-cta .btn-spg-primary{
  font-size:15px;padding:0 30px;min-height:52px;
}
.hero-cta .hero-cta-note{
  display:block;margin-top:16px;color:#fff;font-size:15px;font-weight:600;
  text-shadow:0 1px 2px rgba(10,33,43,.9),0 2px 14px rgba(10,33,43,.75);
}

/* Quote card on the teal band — a solid white surface. A translucent
   card sank into the gradient; Surface #FFFFFF is the token for cards
   and it gives the testimonial real weight against the teal. */
.bg-extra-dark-gray .bg-deep-pink{
  background:var(--surface)!important;
  border:none;
  border-radius:var(--r-card);
  box-shadow:0 18px 44px rgba(10,33,43,.28);
  padding:34px 32px 32px!important;
}
.bg-extra-dark-gray .bg-deep-pink h6{
  color:var(--ink)!important;
  font-size:17px!important;
  font-weight:500!important;
  line-height:1.55!important;
}
.bg-extra-dark-gray .bg-deep-pink h7{
  color:var(--muted)!important;
  font-size:13px!important;
  font-weight:600!important;
  display:block;
}
/* the decorative quote glyph — brought inside the card, teal, above the
   text. Left absolute it was sliced in half by the card edge. */
.bg-extra-dark-gray .bg-deep-pink .special-char-medium{
  position:static!important;
  transform:none!important;
  display:block;
  margin:0 0 14px;
  color:var(--teal)!important;
  opacity:.30;
  font-size:38px;
  line-height:1;
}

/* Any grey utility text sitting on the teal band must go light, or it
   vanishes. Catches the "GET A QUOTE" eyebrow. */
.bg-extra-dark-gray [class*="text-medium-gray"],
.bg-extra-dark-gray [class*="text-med-gray"],
.bg-extra-dark-gray [class*="text-light-gray"],
.bg-extra-dark-gray [class*="text-gray"],
.bg-extra-dark-gray small{color:rgba(255,255,255,.82)!important}

/* ---------- Cards, images, testimonial ---------- */

.feature-box img,.grid-item img,section img:not(.logo):not(.footer-logo){
  border-radius:var(--r-tile);
}
#about img,.spg-shot{
  box-shadow:var(--shadow);
  transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
#about img:hover,.spg-shot:hover{
  transform:translateY(-3px);box-shadow:var(--shadow-raised);
}

.testimonial-style-1 .testimonial-content,
.bg-fast-blue,[class*="bg-fast-blue"]{
  background:var(--teal)!important;
  border-radius:var(--r-card);
  box-shadow:var(--shadow-raised);
}

/* ---------- Service-area chips ---------- */

.spg-areas{margin-top:22px!important}
.spg-areas li{
  border-right:none!important;
  background:var(--surface);
  border:1px solid var(--line)!important;
  border-radius:var(--r-btn);
  margin:5px;
  padding:9px 16px!important;
  color:var(--ink)!important;
  font-weight:500;
  box-shadow:var(--shadow);
  transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.spg-areas li:hover{border-color:var(--teal)!important;transform:translateY(-1px)}

/* ---------- Difference list ---------- */

.spg-difference li,ul.spg-list li{
  border-bottom:1px solid var(--line)!important;
  color:var(--ink);
}

/* ---------- Contact strip ---------- */

.feature-box i,.feature-box-icon i,section i[class^="ti-"],section i[class*=" ti-"]{
  color:var(--teal);
}

/* ---------- Footer ---------- */

footer{background:var(--canvas);border-top:1px solid var(--line)}
footer,footer p,footer span,footer a{color:var(--muted)}
footer a:hover{color:var(--teal)}

/* ---------- Scroll-to-top ---------- */

.scroll-top-arrow,a.scroll-top-arrow{
  background:var(--teal)!important;color:#fff!important;
  border-radius:var(--r-btn)!important;box-shadow:var(--shadow-raised);
}

/* ---------- Accessibility ---------- */

a:focus-visible,button:focus-visible,.btn:focus-visible,
input:focus-visible,textarea:focus-visible,select:focus-visible{
  outline:3px solid var(--sky);
  outline-offset:3px;
  border-radius:6px;
}

@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
  .hero-cta .btn-spg-primary:hover,#about img:hover{transform:none}
}

/* ---------- Responsive ---------- */

@media (max-width:767px){
  h1{font-size:28px}
  h2{font-size:24px}
  h3{font-size:20px}
  .hero-cta{bottom:6%}
  .hero-cta .btn-spg-primary{min-height:48px;font-size:14px;padding:0 22px}
  .spg-areas li{padding:8px 13px!important;font-size:14px}
}

/* ---------- Customer feedback ---------- */

.spg-feedback{padding-top:70px;padding-bottom:70px}
.spg-feedback h3{margin-bottom:8px}
.spg-feedback .spg-feedback-sub{color:var(--muted);margin-bottom:38px}

.spg-quote{
  background:var(--surface);
  border-radius:var(--r-card);
  box-shadow:var(--shadow);
  padding:28px 26px 24px;
  margin:0 0 24px;
  position:relative;
  height:calc(100% - 24px);
  transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.spg-quote:hover{transform:translateY(-3px);box-shadow:var(--shadow-raised)}

.spg-quote .spg-quote-mark{
  display:block;
  font-size:46px;
  line-height:.7;
  color:var(--teal);
  opacity:.28;
  margin-bottom:10px;
}
.spg-quote blockquote{
  border:none;padding:0;margin:0 0 16px;
  font-size:16px;font-weight:450;line-height:1.6;color:var(--ink);
}
.spg-quote figcaption{
  font-size:13px;font-weight:600;color:var(--muted);letter-spacing:.02em;
}

.spg-quote-feature{
  padding:38px 40px 32px;
  margin-bottom:34px;
  border-left:4px solid var(--amber);
}
.spg-quote-feature blockquote{font-size:19px;line-height:1.6;font-weight:450}
.spg-quote-feature .spg-quote-mark{font-size:56px}

.spg-quote-row{display:flex;flex-wrap:wrap}

@media (max-width:991px){
  .spg-quote-row{display:block}
  .spg-quote{height:auto}
  .spg-quote-feature{padding:28px 24px 24px}
  .spg-quote-feature blockquote{font-size:17px}
}
