/* Coastal Ledger: glassy coastal calm with soft motion and airy trust. */
:root {
  --coast-ink: #12313a;
  --coast-deep: #0f6f78;
  --coast-sky: #8bd6e6;
  --coast-mint: #b8f0df;
  --coast-sand: #fff4d6;
}

html body {
  color: var(--coast-ink) !important;
  background:
    radial-gradient(circle at 12% 18%, rgba(139, 214, 230, .46), transparent 24rem),
    radial-gradient(circle at 88% 12%, rgba(184, 240, 223, .5), transparent 22rem),
    linear-gradient(180deg, #f5fdff, #eefbf8 52%, #fff9e9) !important;
}

html body::before {
  content: "" !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: -1 !important;
  pointer-events: none !important;
  background:
    linear-gradient(120deg, rgba(15, 111, 120, .08) 0 1px, transparent 1px 80px),
    radial-gradient(circle at 30% 105%, rgba(255, 244, 214, .8), transparent 26rem) !important;
  animation: coastalDrift 14s ease-in-out infinite alternate !important;
}

html body .site-header {
  background: rgba(245, 253, 255, .82) !important;
  backdrop-filter: blur(18px) !important;
  border-bottom: 1px solid rgba(15, 111, 120, .16) !important;
}

html body .hero,
html body .studio-hero,
html body .page-hero,
html body .service-detail-hero {
  overflow: hidden !important;
  border: 1px solid rgba(15, 111, 120, .2) !important;
  border-radius: 28px !important;
  background:
    linear-gradient(135deg, rgba(255,255,255,.7), rgba(255,255,255,.36)),
    radial-gradient(circle at 84% 20%, rgba(139, 214, 230, .36), transparent 18rem),
    linear-gradient(135deg, rgba(184,240,223,.4), rgba(255,244,214,.46)) !important;
  box-shadow: 0 28px 90px rgba(18, 49, 58, .12) !important;
  backdrop-filter: blur(20px) !important;
}

html body h1,
html body h2,
html body h3 {
  color: var(--coast-ink) !important;
  letter-spacing: 0 !important;
}

html body .button,
html body button,
html body a[class*="button"] {
  color: white !important;
  background: linear-gradient(135deg, #0f6f78, #16a3a8) !important;
  border: 0 !important;
  border-radius: 999px !important;
  box-shadow: 0 14px 28px rgba(15, 111, 120, .2) !important;
}

html body .button.secondary {
  color: var(--coast-ink) !important;
  background: rgba(255,255,255,.72) !important;
  border: 1px solid rgba(15, 111, 120, .2) !important;
}

html body .card,
html body .card-link,
html body article,
html body .summary-card,
html body .portrait-card,
html body .service-card,
html body .board-card,
html body .contact-panel,
html body .trust-panel {
  border-color: rgba(15, 111, 120, .16) !important;
  border-radius: 22px !important;
  background: rgba(255, 255, 255, .66) !important;
  box-shadow: 0 20px 50px rgba(18, 49, 58, .09) !important;
  backdrop-filter: blur(14px) !important;
  transition: transform .25s ease, box-shadow .25s ease !important;
}

html body .card:hover,
html body .card-link:hover,
html body article:hover {
  transform: translateY(-5px) !important;
  box-shadow: 0 30px 70px rgba(18, 49, 58, .14) !important;
}

html body .eyebrow,
html body .tag,
html body .badge,
html body .pill {
  color: #0f5961 !important;
  background: rgba(184, 240, 223, .74) !important;
  border-radius: 999px !important;
}

html body .link-more,
html body .open,
html body article .link-more,
html body article a,
html body .service-card a,
html body .specialty-card a,
html body .resource-card a,
html body .testimonial-card a {
  color: #0f6f78 !important;
  text-shadow: none !important;
  opacity: 1 !important;
}

html body:not(.vitalweb-remix) main .grid .card > span:first-child,
html body:not(.vitalweb-remix) main .grid .card strong,
html body:not(.vitalweb-remix) main .grid .card .open,
html body:not(.vitalweb-remix) main .grid .card .link-more {
  color: #0f6f78 !important;
}

html body .button.primary,
html body button.button.primary,
html body a.button.primary {
  color: #ffffff !important;
  background-color: #0f6f78 !important;
  background-image: linear-gradient(135deg, #0f6f78, #138f90) !important;
}

/* Interior layout identity: airy coastal glass with horizontal flow. */
html body .hero {
  border-radius: 36px !important;
  display: grid !important;
  grid-template-columns: minmax(0, .58fr) minmax(320px, .42fr) !important;
  min-height: 620px !important;
  align-items: center !important;
}

html body .about-grid,
html body .section.process-section,
html body .section.trust-section {
  border-radius: 30px !important;
  padding: clamp(22px, 4vw, 42px) !important;
  background: rgba(255, 255, 255, .42) !important;
  backdrop-filter: blur(16px) !important;
}

html body .service-list,
html body .systems-grid {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 12px !important;
}

html body .service-list article,
html body .systems-grid article {
  display: grid !important;
  grid-template-columns: 190px minmax(0, 1fr) !important;
  align-items: center !important;
  min-height: 132px !important;
  border-radius: 999px 34px 34px 999px !important;
  padding: 18px 28px !important;
}

html body .support-grid,
html body .trust-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 14px !important;
}

html body .support-grid article,
html body .trust-grid article {
  border-radius: 36px !important;
}

html body .support-grid article:first-child,
html body .trust-grid article:first-child {
  min-height: 260px !important;
  padding: clamp(26px, 5vw, 54px) !important;
}

html body:not(.vitalweb-remix) main {
  width: min(1160px, calc(100% - 36px)) !important;
}

html body:not(.vitalweb-remix) .intro-block {
  max-width: 720px !important;
  margin-inline: auto !important;
  text-align: center !important;
}

html body:not(.vitalweb-remix) .grid {
  grid-template-columns: 1fr !important;
  align-items: stretch !important;
  gap: 14px !important;
}

html body:not(.vitalweb-remix) main .grid .card {
  display: grid !important;
  grid-template-columns: 160px minmax(0, 1fr) 130px !important;
  align-items: center !important;
  grid-column: auto !important;
  min-height: 140px !important;
  border-radius: 999px 34px 34px 999px !important;
}

html body:not(.vitalweb-remix) main .grid .card:nth-child(2) {
  grid-column: auto !important;
  grid-template-columns: 160px minmax(0, 1fr) 130px !important;
  min-height: 170px !important;
}

@media (max-width: 820px) {
  html body:not(.vitalweb-remix) .grid {
    grid-template-columns: 1fr !important;
  }

  html body:not(.vitalweb-remix) main .grid .card,
  html body:not(.vitalweb-remix) main .grid .card:nth-child(2) {
    grid-column: auto !important;
    grid-template-columns: 1fr !important;
    display: flex !important;
  }
}

@keyframes coastalDrift {
  from { transform: translateY(0); opacity: .78; }
  to { transform: translateY(-18px); opacity: 1; }
}

/* Card spacing safety pass: keeps text from hugging card borders on all sample pages. */
html body :where(.card, .card-link, .summary-card, .portrait-card, .service-card, .specialty-card, .resource-card, .testimonial-card, .fit-card, .process-card, .detail-card, .board-card, .contact-panel, .trust-panel, .detail-module, .detail-console),
html body :where(.service-list, .support-grid, .systems-grid, .trust-grid, .mosaic-grid, .reason-stack, .fit-ribbon) > article,
html body :where(.process-lane) li {
  box-sizing: border-box !important;
  padding: clamp(20px, 2.4vw, 30px) !important;
}

/* Form spacing safety pass: keeps labels and controls comfortably inside contact forms. */
html body :where(form, .lead-form, .quote-form, .managed-form) {
  box-sizing: border-box !important;
  padding: clamp(22px, 2.6vw, 34px) !important;
}

/* Final readability/media safety pass: keeps page images contained and tiny marks readable. */
html body img {
  max-width: 100% !important;
}

html body :where(.brand-mark, .tag, .badge, .label, .kicker) {
  opacity: 1 !important;
  text-shadow: none !important;
}

html body :where(.brand-mark) {
  color: #102326 !important;
  background: #f7fff9 !important;
  border: 1px solid rgba(16, 35, 38, .14) !important;
}

html body:not(.vitalweb-remix) main .grid .card,
html body:not(.vitalweb-remix) main .grid .card:visited {
  color: inherit !important;
  overflow: hidden !important;
}

html body:not(.vitalweb-remix) main .grid .card * {
  opacity: 1 !important;
  text-shadow: none !important;
}

html body .button,
html body button,
html body a[class*="button"] {
  opacity: 1 !important;
  text-shadow: none !important;
}

/* Contact form safety pass: keeps compact demo forms readable on every page. */
html body form.contact-panel,
html body .contact-panel:is(form) {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 16px !important;
  align-content: start !important;
}

html body form.contact-panel label,
html body .contact-panel:is(form) label {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 7px !important;
  min-width: 0 !important;
  color: inherit !important;
  font-weight: 700 !important;
}

html body form.contact-panel input,
html body form.contact-panel select,
html body form.contact-panel textarea,
html body .contact-panel:is(form) input,
html body .contact-panel:is(form) select,
html body .contact-panel:is(form) textarea {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  min-height: 44px !important;
  padding: 10px 12px !important;
  border-radius: 8px !important;
  box-sizing: border-box !important;
  font: inherit !important;
}

html body form.contact-panel textarea,
html body .contact-panel:is(form) textarea {
  min-height: 116px !important;
  resize: vertical;
}

/* Form field readability pass: prevents dark inherited controls on light contact layouts. */
html body form.contact-panel input,
html body form.contact-panel select,
html body form.contact-panel textarea,
html body .contact-panel:is(form) input,
html body .contact-panel:is(form) select,
html body .contact-panel:is(form) textarea {
  color: #172126 !important;
  background: rgba(255, 255, 255, .96) !important;
  border-color: rgba(23, 33, 38, .22) !important;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .82) !important;
}

html body form.contact-panel input::placeholder,
html body form.contact-panel textarea::placeholder,
html body .contact-panel:is(form) input::placeholder,
html body .contact-panel:is(form) textarea::placeholder {
  color: #6c757d !important;
  opacity: 1 !important;
}
