:root {
  color-scheme: light;
  --ink: #193647;
  --ink-strong: #123346;
  --body: #4d636e;
  --muted: #768991;
  --line: #e4ecec;
  --paper: #fff;
  --mist: #f5faf9;
  --sea: #079bb4;
  --sea-deep: #087c91;
  --leaf: #49a96a;
  --sun: #f1a638;
  --coral: #ec6a62;
  --violet: #8752b9;
  --shadow-soft: 0 16px 45px rgba(17, 53, 69, .09);
  --shadow-card: 0 22px 70px rgba(17, 53, 69, .15);
  --radius-sm: 12px;
  --radius-md: 20px;
  --radius-lg: 30px;
  --container: 1200px;
  --header-height: 84px;
  --ease: cubic-bezier(.2, .7, .2, 1);
  font-family: "DM Sans", "Segoe UI", Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body { margin: 0; background: var(--paper); color: var(--body); font-size: 16px; line-height: 1.7; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button { color: inherit; }
:focus-visible { outline: 3px solid rgba(7,155,180,.64); outline-offset: 3px; }
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3, strong { color: var(--ink-strong); }
h1, h2, h3 { font-family: Manrope, "Segoe UI", sans-serif; letter-spacing: -.045em; line-height: 1.1; }
h1 { font-size: clamp(3rem, 7.1vw, 6.5rem); font-weight: 700; }
h2 { font-size: clamp(2.25rem, 4.2vw, 4rem); font-weight: 700; }
h3 { font-size: clamp(1.25rem, 2vw, 1.65rem); font-weight: 700; }
em { color: var(--sea); font-style: normal; }
.container { width: min(var(--container), calc(100% - 64px)); margin-inline: auto; }
.section-pad { padding-block: clamp(76px, 10vw, 132px); }
.eyebrow { margin-bottom: 18px; color: var(--sea-deep); font-size: .71rem; font-weight: 700; letter-spacing: .17em; line-height: 1.4; }
.eyebrow-light { color: rgba(255,255,255,.84); }
.skip-link { position: fixed; z-index: 999; top: 12px; left: 12px; padding: 10px 16px; transform: translateY(-160%); border-radius: 8px; background: var(--ink-strong); color: white; }
.skip-link:focus { transform: translateY(0); }
.button { display: inline-flex; min-height: 52px; align-items: center; justify-content: center; gap: 16px; padding: 13px 21px; border: 1px solid transparent; border-radius: 8px; font-size: .91rem; font-weight: 700; line-height: 1.2; transition: transform .22s var(--ease), background .22s var(--ease), color .22s var(--ease), box-shadow .22s var(--ease); }
.button:hover { transform: translateY(-2px); }
.button:active { transform: translateY(0) scale(.98); }
.button-primary { background: var(--sea); box-shadow: 0 8px 20px rgba(7,155,180,.19); color: white; }
.button-primary:hover { background: var(--sea-deep); box-shadow: 0 12px 26px rgba(7,155,180,.27); }
.button-outline { border-color: var(--sea); background: transparent; color: var(--sea-deep); }
.button-outline:hover { background: var(--sea); color: white; }
.button-white { background: white; color: var(--ink-strong); }
.button-white:hover { background: #effafa; }
.button-small { min-height: 44px; padding: 10px 16px; font-size: .84rem; }
.button-primary, .button-outline, .button-white { position: relative; overflow: hidden; isolation: isolate; }
.button-primary::before, .button-outline::before, .button-white::before { position: absolute; inset: -30% -20% auto auto; width: 36%; height: 180%; transform: translateX(120%) rotate(18deg); background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.42), rgba(255,255,255,0)); content: ""; opacity: 0; transition: transform .7s ease, opacity .2s ease; }
.button-primary:hover::before, .button-outline:hover::before, .button-white:hover::before { transform: translateX(-150%) rotate(18deg); opacity: 1; }
.text-link { display: inline-flex; align-items: center; gap: 12px; color: var(--ink-strong); font-size: .92rem; font-weight: 700; }
.text-link span { color: var(--sea); transition: transform .2s var(--ease); }
.text-link:hover span { transform: translateX(5px); }
.text-link:hover { color: var(--sea-deep); }
.center-cta { display: flex; justify-content: center; padding-top: 42px; }
.form-note { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: .78rem; }
.reveal { opacity: 1; transform: none; }
.js-enabled .reveal { opacity: 0; transform: translateY(20px); transition: opacity .65s var(--ease), transform .65s var(--ease); }
.js-enabled .reveal.is-visible { opacity: 1; transform: none; }
.kicker-glow, .eyebrow { text-shadow: 0 0 18px rgba(121, 203, 220, .12); }
.hero-orb, .floating-orb, .ambient-orb { position: absolute; border-radius: 50%; filter: blur(20px); opacity: .34; pointer-events: none; }
.ambient-orb { background: radial-gradient(circle, rgba(72, 195, 176, .9), rgba(72, 195, 176, 0)); }
.image-soft-float { animation: floatSoft 9s ease-in-out infinite; }
.image-tilt-hover { transition: transform .5s var(--ease), box-shadow .5s var(--ease); }
.image-tilt-hover:hover { transform: scale(1.02) rotate(-.6deg); }
.card-lift { transition: transform .32s var(--ease), box-shadow .32s var(--ease), border-color .32s var(--ease); }
.card-lift:hover { transform: translateY(-6px); box-shadow: var(--shadow-card); }
.premium-glow { box-shadow: 0 0 0 1px rgba(121,203,220,.08), 0 18px 38px rgba(19, 54, 71, .08); }
.glass-panel { background: linear-gradient(135deg, rgba(255,255,255,.88), rgba(245,250,250,.7)); backdrop-filter: blur(14px); }
.gradient-heading { background: linear-gradient(90deg, var(--sea-deep), var(--sea), var(--leaf), var(--sun)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.shimmer-text { position: relative; display: inline-block; }
.shimmer-text::after { position: absolute; inset: 0; background: linear-gradient(120deg, transparent 15%, rgba(255,255,255,.7) 50%, transparent 85%); transform: translateX(-120%); animation: shimmerText 3.2s ease-in-out infinite; content: ""; }
.pulse-ring { animation: pulseRing 2.4s ease-out infinite; }
.float-y { animation: floatUpDown 5.8s ease-in-out infinite; }
.spin-slow { animation: spinSlow 18s linear infinite; }
.fade-reveal { animation: fadeReveal .7s ease both; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; clip-path: inset(50%); }

@keyframes floatSoft { 0%, 100% { transform: translateY(0px) scale(1); } 50% { transform: translateY(-9px) scale(1.015); } }
@keyframes floatUpDown { 0%, 100% { transform: translateY(0px); } 50% { transform: translateY(-10px); } }
@keyframes pulseRing { 0% { box-shadow: 0 0 0 0 rgba(7,155,180,.34); } 70% { box-shadow: 0 0 0 16px rgba(7,155,180,0); } 100% { box-shadow: 0 0 0 0 rgba(7,155,180,0); } }
@keyframes shimmerText { 0% { transform: translateX(-120%); } 100% { transform: translateX(120%); } }
@keyframes spinSlow { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes fadeReveal { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 700px) {
  .container { width: min(var(--container), calc(100% - 40px)); }
  .section-pad { padding-block: 76px; }
  body { font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}
