/* ===== UI Kit shared base — pairs with ../../colors_and_type.css ===== */

html, body { margin: 0; padding: 0; }

body {
  font-family: var(--font-body);
  background: var(--bg-1);
  color: var(--fg-1);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* Reset focus rings */
*:focus { outline: none; }
*:focus-visible {
  outline: 2px solid var(--gd-sky-400);
  outline-offset: 2px;
  border-radius: 6px;
}

img { display: block; max-width: 100%; }
button { font-family: inherit; cursor: pointer; }

/* Container */
.gd-wrap {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(20px, 4vw, 48px);
}

/* Subtle bottom hairline used on header */
.hairline {
  border-bottom: 1px solid var(--border-1);
}

/* Hero protection gradient overlay for full-bleed photo */
.hero-overlay {
  background: linear-gradient(180deg, rgba(10,30,72,0) 0%, rgba(10,30,72,0.18) 50%, rgba(10,30,72,0.55) 100%);
}

/* Reusable group-hover lift */
.lift {
  transition: transform var(--duration-base) var(--ease-smooth),
              box-shadow var(--duration-base) var(--ease-smooth);
}
.lift:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); }

/* Smile underline — used to highlight a key word */
.smile-underline {
  position: relative;
  display: inline-block;
  white-space: nowrap;
}
.smile-underline::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -0.18em;
  height: 0.36em;
  background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 16' preserveAspectRatio='none'><path d='M2 4 C 50 18, 150 18, 198 4' stroke='%23C8A340' stroke-width='4' fill='none' stroke-linecap='round'/></svg>") no-repeat center/100% 100%;
}

/* WhatsApp floating button (used on multiple screens) */
.wa-float {
  position: fixed;
  right: 22px; bottom: 22px;
  width: 56px; height: 56px; border-radius: 999px;
  background: #25D366;
  color: #fff;
  box-shadow: 0 12px 30px rgba(37,211,102,0.45);
  display: inline-flex; align-items: center; justify-content: center;
  z-index: 50; border: none;
}

/* Logo mark — small inline JS-friendly version */
.gd-logo-text {
  font-family: var(--font-display);
  font-weight: 900;
  letter-spacing: -0.04em;
  font-size: 22px;
  color: var(--gd-blue-600);
  display: inline-flex; align-items: baseline; gap: 6px;
}
.gd-logo-text .dental {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: 0.55em;
  color: var(--gd-blue-600);
  letter-spacing: 0;
  text-transform: lowercase;
}
.gd-logo-text .o-accent { color: var(--gd-sky-400); }
