@font-face {
  font-family: 'Instrument Sans';
  src:
    url('../InstrumentSans-VariableFont_wdth,wght.ttf') format('truetype'),
    url('../InstrumentSans[wdth,wght].ttf') format('truetype');
  font-weight: 400 800;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Cormorant Garamond';
  src:
    url('../CormorantGaramond-Italic-VariableFont_wght.ttf') format('truetype'),
    url('../CormorantGaramond-Italic[wght].ttf') format('truetype'),
    url('../CormorantGaramond-BoldItalic.ttf') format('truetype');
  font-weight: 600 700;
  font-style: italic;
  font-display: swap;
}

:root {
  --blue: #78c5f3;
  --accent-highlight: #78c5f3;
  --accent-rest: #275e88;
  --button-fill: #78c5f3;
  --button-ink: #26425f;
  --button-hover-fill: #26425f;
  --blue-deep: #2389cf;
  --blue-soft: #eef9ff;
  --gray: #a6a5a5;
  --gray-soft: #f3f5f7;
  --ink: #091018;
  --navy: #0c1b29;
  --navy-2: #163149;
  --navy-3: #234663;
  --muted: #526171;
  --white: #ffffff;
  --shadow: 0 18px 52px rgba(9, 16, 24, 0.12);
  --shadow-soft: 0 10px 34px rgba(9, 16, 24, 0.08);
  --radius-xl: 30px;
  --radius-lg: 22px;
  --radius-md: 16px;
  --max: 1200px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: "Instrument Sans", "Aptos", "Avenir Next", Avenir, "Segoe UI", Arial, sans-serif; color: var(--ink); background: var(--white); line-height: 1.48; text-rendering: optimizeLegibility; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { display: block; max-width: 100%; }
button, input, textarea { font: inherit; }
h1, h2, h3, p { margin-top: 0; }

.skip-link { position: absolute; top: -80px; left: 1rem; z-index: 1000; padding: .75rem 1rem; border-radius: 999px; background: var(--ink); color: var(--white); }
.skip-link:focus { top: 1rem; }
.container { width: min(100% - 2rem, var(--max)); margin-inline: auto; position: relative; z-index: 2; }

.site-header { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.9); backdrop-filter: blur(18px); border-bottom: 1px solid rgba(166,165,165,.24); }
.nav-wrap { width: min(100% - 2rem, var(--max)); min-height: 72px; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.logo-link img { width: min(250px, 52vw); height: auto; }
.nav-menu { display: flex; align-items: center; gap: .7rem; list-style: none; padding: 0; margin: 0; }
.nav-menu a { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: .34rem; min-width: 92px; min-height: 66px; padding: .52rem .82rem; border-radius: 18px; color: var(--button-ink); font-weight: 850; font-size: .96rem; line-height: 1.05; border: 1px solid rgba(39,94,136,.18); background: rgba(255,255,255,.72); box-shadow: 0 10px 24px rgba(23,50,74,.06); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.nav-menu a::before { content: ''; position: absolute; inset-inline: 0; bottom: 0; height: 100%; background: var(--button-hover-fill); transform: scaleY(0); transform-origin: bottom; transition: transform .28s ease; z-index: -1; }
.nav-menu a:hover, .nav-menu a:focus-visible { color: var(--white); outline: none; transform: translateY(-1px); border-color: rgba(120,197,243,.72); box-shadow: 0 14px 30px rgba(23,50,74,.11); }
.nav-menu a:hover::before, .nav-menu a:focus-visible::before { transform: scaleY(1); }
.nav-menu .nav-icon {
  width: 1.9rem;
  height: 1.9rem;
  display: block;
  flex: 0 0 auto;
  color: var(--blue);
  transition: color .18s ease;
}
.nav-menu a:hover .nav-icon,
.nav-menu a:focus-visible .nav-icon {
  color: var(--white);
}
.nav-phone-item { display: flex; align-items: center; margin-left: .25rem; padding-left: .95rem; border-left: 2px solid rgba(38,66,95,.36); }
.nav-menu .nav-phone-link { min-width: auto; min-height: auto; padding: .2rem 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; color: #26425f; font-weight: 850; flex-direction: row; }
.nav-menu .nav-phone-link::before { content: none; }
.nav-menu .nav-phone-link:hover, .nav-menu .nav-phone-link:focus-visible { color: var(--blue); transform: none; border-color: transparent; box-shadow: none; }
.menu-toggle { display: none; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; border-radius: 50%; background: var(--blue-soft); color: var(--ink); cursor: pointer; }
.menu-toggle span, .menu-toggle span::before, .menu-toggle span::after { width: 20px; height: 2px; background: currentColor; border-radius: 999px; display: block; position: relative; transition: transform .2s ease, opacity .2s ease; }
.menu-toggle span::before, .menu-toggle span::after { content: ''; position: absolute; left: 0; }
.menu-toggle span::before { top: -7px; }
.menu-toggle span::after { top: 7px; }
.menu-open .menu-toggle span { transform: rotate(45deg); }
.menu-open .menu-toggle span::before { transform: rotate(90deg) translate(7px, 0); }
.menu-open .menu-toggle span::after { opacity: 0; }

.hero { position: relative; overflow: hidden; padding: clamp(3.5rem, 6vw, 5.7rem) 0 clamp(3.8rem, 7vw, 6rem); background: linear-gradient(135deg, rgba(255,255,255,.9), rgba(238,247,252,.92)), url('flow-light.svg') center/cover no-repeat; }
.hero::before, .hero::after { content: ''; position: absolute; inset: 0; pointer-events: none; }
.hero::before { background: url('flow-light.svg') center/cover no-repeat; opacity: .45; }
.hero::after { background: linear-gradient(120deg, transparent 0 44%, rgba(120,197,243,.10) 44% 100%); }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(330px, .82fr); align-items: center; gap: clamp(2rem, 5vw, 5rem); }
.eyebrow, .kicker { color: #155e89; text-transform: uppercase; letter-spacing: .12em; font-weight: 800; font-size: .82rem; margin-bottom: .85rem; }
.eyebrow { display: inline-flex; align-items: center; gap: .5rem; padding: .36rem .68rem; border: 1px solid rgba(120,197,243,.72); border-radius: 999px; background: rgba(255,255,255,.82); }
.eyebrow::before { content: ''; width: .55rem; height: .55rem; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 5px rgba(120,197,243,.18); animation: eyebrowPulse 1.9s ease-in-out infinite; transform-origin: center; }
@keyframes eyebrowPulse {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(120,197,243,.34), 0 0 0 5px rgba(120,197,243,.18), 0 0 10px rgba(120,197,243,.18); }
  50% { transform: scale(1.12); box-shadow: 0 0 0 8px rgba(120,197,243,0), 0 0 0 5px rgba(120,197,243,.16), 0 0 18px rgba(120,197,243,.42); }
}
h1 { max-width: 760px; font-size: clamp(2.75rem, 5.2vw, 4.7rem); line-height: .94; letter-spacing: -.045em; font-weight: 800; margin-bottom: 1rem; }
h1 span { color: var(--blue); font-family: 'Cormorant Garamond', Georgia, serif; font-style: italic; font-weight: 700; letter-spacing: -.02em; }
.hero-copy { max-width: 615px; color: #344252; font-size: clamp(1.05rem, 1.5vw, 1.2rem); line-height: 1.6; margin-bottom: 1.35rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .95rem; margin-bottom: 1.35rem; }
.btn { position: relative; isolation: isolate; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: .78rem; min-height: 58px; padding: .9rem 1.35rem; border-radius: 18px; border: 2px solid rgba(39,94,136,.32); font-weight: 850; cursor: pointer; background: rgba(255,255,255,.78); color: var(--button-ink); box-shadow: 0 14px 28px rgba(17,39,61,.10); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.btn::before { content: ''; position: absolute; inset-inline: 0; bottom: 0; height: 100%; background: var(--button-hover-fill); transform: scaleY(0); transform-origin: bottom; transition: transform .30s ease; z-index: -1; }
.btn:hover, .btn:focus-visible { transform: translateY(-1px); outline: none; color: var(--white); border-color: rgba(120,197,243,.88); box-shadow: 0 18px 36px rgba(17,39,61,.16); }
.btn:hover::before, .btn:focus-visible::before { transform: scaleY(1); }
.btn-primary, .btn-secondary { background: rgba(255,255,255,.78); color: var(--button-ink); }
.btn .btn-icon {
  width: 1.8rem;
  height: 1.8rem;
  display: block;
  flex: 0 0 auto;
  color: var(--blue);
  transition: color .18s ease;
}
.btn:hover .btn-icon,
.btn:focus-visible .btn-icon {
  color: var(--white);
}

.hero-details { display: flex; flex-wrap: wrap; gap: .6rem 1rem; color: #526171; font-weight: 700; font-size: .94rem; }
.hero-details span { display: inline-flex; align-items: center; gap: .45rem; }
.hero-details span::before { content: ''; width: .55rem; height: .55rem; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 5px rgba(120,197,243,.18); animation: eyebrowPulse 1.9s ease-in-out infinite; transform-origin: center; }
.portrait-panel { position: relative; max-width: 490px; justify-self: end; width: 100%; isolation: isolate; }
.portrait-art { display: none; }
.portrait-frame { position: relative; z-index: 2; display: block; aspect-ratio: 4 / 5; width: min(100%, 470px); border-radius: 32px; overflow: hidden; margin: 0; background: transparent; border: 0; padding: 0; box-shadow: -34px 24px 56px rgba(18, 38, 60, .34); }
.portrait-frame img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center; border-radius: 32px; background: #f4f8fc; position: relative; z-index: 1; }
.portrait-frame::after { content: none; }

h2 { font-size: clamp(2rem, 4.4vw, 3.6rem); line-height: .98; letter-spacing: -.045em; font-weight: 800; margin-bottom: .9rem; }

.about-strip { position: relative; overflow: hidden; padding: clamp(3rem, 6vw, 4.7rem) 0; color: var(--white); background: linear-gradient(135deg, rgba(10,23,35,.97), rgba(22,49,73,.95), rgba(35,70,99,.95)), url('flow-dark-about.svg') center/cover no-repeat; }
.about-strip::before { content: ''; position: absolute; inset: 0; background: url('flow-dark-about.svg') center/cover no-repeat; opacity: .72; pointer-events: none; }
.about-grid { display: grid; grid-template-columns: minmax(260px, .85fr) 1.4fr; gap: clamp(1.6rem, 4vw, 4rem); align-items: center; }
.about-strip .kicker, .approach .kicker { color: rgba(255,255,255,.9); }
.about-strip .about-copy p, .about-strip .section-head p, .approach .section-head p { color: rgba(255,255,255,.82); font-size: 1.08rem; line-height: 1.62; max-width: 720px; }
.value-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-radius: var(--radius-lg); overflow: hidden; background: rgba(255,255,255,.10); box-shadow: 0 20px 50px rgba(0,0,0,.18); border: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(6px); }
.value-grid article { padding: 1.25rem 1.15rem; border-left: 1px solid rgba(255,255,255,.12); display: flex; flex-direction: column; align-items: center; text-align: center; }
.value-grid article:first-child { border-left: 0; }
.value-grid h3 { font-size: 1.24rem; margin-bottom: .5rem; color: var(--white); }
.value-grid p { color: rgba(255,255,255,.82); line-height: 1.5; margin: 0; font-size: 1rem; }
.feature-icon { width: 4.2rem; height: 4.2rem; display: block; margin: 0 auto 1rem; object-fit: contain; opacity: .98; }

.services { position: relative; overflow: hidden; padding: clamp(3.4rem, 7vw, 5.6rem) 0; background: linear-gradient(180deg, rgba(243,251,255,.94) 0%, rgba(255,255,255,.92) 58%, rgba(238,249,255,.94) 100%), url('flow-light.svg') center/cover no-repeat; }
.services::before { content: ''; position: absolute; inset: 0; background: url('flow-light.svg') center/cover no-repeat; opacity: .24; pointer-events: none; }
.compact-head { margin-bottom: 1.65rem; }
.section-head p { color: var(--muted); font-size: 1.08rem; line-height: 1.62; max-width: 720px; }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.1rem; }
.service-grid::before { content: none; }
.service-grid::after { content: none; }
.service-card { position: relative; overflow: hidden; border-radius: 20px; background: transparent; box-shadow: var(--shadow-soft); border: 1px solid rgba(29, 58, 84, .18); }
.service-card picture { display: block; aspect-ratio: 4 / 3; background: var(--blue-soft); overflow: hidden; }
.service-card picture img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.01); }
.service-card div { padding: 1.15rem 1.2rem 1.25rem; min-height: 118px; background-color: #17324a; background-image: url('flow-services-cards.svg'); background-size: 300% 200%; background-repeat: no-repeat; border-top: 1px solid rgba(255,255,255,.08); }
.service-card h3 { font-size: 1.25rem; line-height: 1.1; margin-bottom: .45rem; color: var(--white); }
.service-card p { margin: 0; color: rgba(255,255,255,.90); font-size: 1rem; line-height: 1.48; }
.service-card:nth-child(1) div { background-position: 0% 0%; }
.service-card:nth-child(2) div { background-position: 50% 0%; }
.service-card:nth-child(3) div { background-position: 100% 0%; }
.service-card:nth-child(4) div { background-position: 0% 100%; }
.service-card:nth-child(5) div { background-position: 50% 100%; }
.service-card:nth-child(6) div { background-position: 100% 100%; }


.approach { position: relative; overflow: hidden; padding: clamp(3.4rem, 7vw, 5.7rem) 0; color: var(--white); background: linear-gradient(135deg, rgba(10,23,35,.97), rgba(25,52,76,.95), rgba(34,70,99,.95)), url('flow-dark-approach.svg') center/cover no-repeat; }
.approach::after { content: ''; position: absolute; inset: 0; background: url('flow-dark-approach.svg') center/cover no-repeat; opacity: .68; pointer-events: none; }
.approach-grid { display: grid; grid-template-columns: .9fr 1.25fr; gap: clamp(1.7rem, 4vw, 3rem); align-items: start; }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.steps article { min-height: 230px; padding: 1.4rem; border-radius: 22px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); box-shadow: 0 20px 50px rgba(0,0,0,.18); backdrop-filter: blur(6px); display: flex; flex-direction: column; align-items: center; text-align: center; }
.steps h3 { font-size: 1.24rem; margin-bottom: .5rem; color: var(--white); }
.steps p { color: rgba(255,255,255,.82); margin: 0; }

.contact { position: relative; overflow: hidden; padding: clamp(3.2rem, 6vw, 5rem) 0; background: linear-gradient(135deg, rgba(238,249,255,.94), rgba(255,255,255,.92) 58%, rgba(223,243,255,.94)), url('flow-light.svg') center/cover no-repeat; }
.contact::before { content: ''; position: absolute; inset: 0; background: url('flow-light.svg') center/cover no-repeat; opacity: .30; pointer-events: none; }
.contact-grid { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
.contact .kicker { color: #155e89; text-transform: uppercase; letter-spacing: .12em; font-weight: 800; font-size: .82rem; margin-bottom: .85rem; }
.contact-lines { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.15rem; }
.contact-lines a, .contact-lines span { display: inline-flex; padding: .55rem .8rem; border-radius: 999px; background: rgba(255,255,255,.86); border: 1px solid rgba(120,197,243,.26); color: #26384a; font-weight: 700; }
.contact-form { display: grid; grid-template-columns: repeat(2, 1fr); gap: .9rem; padding: 1.25rem; border-radius: 24px; background: rgba(255,255,255,.88); box-shadow: var(--shadow); border: 1px solid rgba(120,197,243,.28); }
.contact-form label { display: grid; gap: .4rem; color: #405061; font-size: .96rem; font-weight: 700; }
.contact-form input, .contact-form textarea { width: 100%; border: 1px solid rgba(166,165,165,.32); border-radius: 14px; background: #fff; padding: .82rem .9rem; color: var(--ink); outline: none; }
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--blue-deep); box-shadow: 0 0 0 4px rgba(120,197,243,.18); }
.contact-form .full, .contact-form .form-note { grid-column: 1 / -1; }
.contact-form button { justify-self: start; }
.form-note { color: var(--muted); margin: 0; font-size: .94rem; }

.site-footer { position: relative; overflow: hidden; padding: 1rem 0; color: rgba(255,255,255,.88); background: linear-gradient(90deg, rgba(12,27,41,.98), rgba(24,52,76,.98)), url('flow-dark-footer.svg') center/cover no-repeat; font-size: .95rem; }
.site-footer::before { content: ''; position: absolute; inset: 0; background: url('flow-dark-footer.svg') center/cover no-repeat; opacity: .8; pointer-events: none; }
.footer-grid { display: block; position: relative; z-index: 1; text-align: center; }
.footer-grid p { margin: 0; }
.footer-grid span { color: rgba(120,197,243,.85); padding-inline: .55rem; }
.footer-grid a:hover { color: var(--button-fill); }

@media (max-width: 980px) {
  .hero-grid, .about-grid, .approach-grid, .contact-grid { grid-template-columns: 1fr; }
  .portrait-panel { justify-self: start; max-width: 440px; }
  .value-grid { grid-template-columns: repeat(2, 1fr); }
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .steps { grid-template-columns: 1fr; }
  .footer-grid { display: block; }
}

@media (max-width: 720px) {
  .nav-wrap { min-height: 68px; }
  .menu-toggle { display: inline-flex; }
  nav { position: fixed; inset: 68px 0 auto 0; background: rgba(255,255,255,.98); border-bottom: 1px solid rgba(166,165,165,.25); box-shadow: var(--shadow-soft); transform: translateY(-115%); transition: transform .2s ease; }
  .menu-open nav { transform: translateY(0); }
  .nav-menu { padding: 1rem; flex-direction: column; align-items: stretch; }
  .nav-menu a { justify-content: center; min-width: 0; flex-direction: row; gap: .65rem; }
    .logo-link img { width: min(215px, 58vw); }
  .hero { padding-top: 2.6rem; }
  h1 { font-size: clamp(2.35rem, 12vw, 3.4rem); }
  h2 { font-size: clamp(2rem, 10vw, 2.8rem); }
  .hero-actions, .hero-details { align-items: stretch; flex-direction: column; }
  .hero-actions .btn { width: 100%; justify-content: flex-start; }
  .portrait-frame { max-width: 100%; border-radius: 24px; }
      .value-grid, .contact-form { grid-template-columns: 1fr; }
  .service-grid { grid-template-columns: 1fr; }
  .value-grid article { border-left: 0; border-top: 1px solid rgba(255,255,255,.12); }
  .value-grid article:first-child { border-top: 0; }
  .footer-grid { display: block; text-align: center; }
}


/* v0.38 page additions */
.nav-phone-item {
  gap: .38rem;
  white-space: nowrap;
}
.nav-phone-prefix {
  color: #526171;
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .01em;
}

.page-shell {
  position: relative;
  min-height: calc(100vh - 72px);
  overflow: hidden;
  padding: clamp(3.2rem, 7vw, 6.4rem) 0;
  background:
    radial-gradient(circle at 12% 12%, rgba(120,197,243,.20), transparent 28rem),
    radial-gradient(circle at 88% 18%, rgba(39,94,136,.16), transparent 25rem),
    radial-gradient(circle at 50% 92%, rgba(120,197,243,.18), transparent 28rem),
    linear-gradient(135deg, rgba(248,252,255,.95), rgba(235,246,253,.95) 54%, rgba(255,255,255,.96));
}
.page-shell::before,
.page-shell::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.page-shell::before {
  background:
    url('page-plants-abstract.svg') center/cover no-repeat,
    url('flow-light.svg') center/cover no-repeat;
  opacity: .96;
}
.page-shell::after {
  background:
    url('botanical-accent.svg') left bottom / min(46vw, 520px) auto no-repeat,
    url('botanical-accent.svg') right 8% bottom 8% / min(42vw, 500px) auto no-repeat;
  opacity: .50;
  transform: none;
}
.page-hero-card,
.legal-card,
.sent-card {
  position: relative;
  z-index: 2;
  border: 1px solid rgba(120,197,243,.28);
  background: rgba(255,255,255,.72);
  box-shadow: 0 28px 80px rgba(18,38,60,.16);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}
.page-hero-card {
  max-width: 980px;
  margin: 0 auto 1.15rem;
  padding: clamp(1.4rem, 4vw, 2.4rem);
  border-radius: 32px;
  text-align: center;
}
.page-hero-card .eyebrow {
  margin-inline: auto;
}
.page-hero-card h1 {
  margin-inline: auto;
  margin-bottom: .75rem;
}
.page-hero-card p {
  max-width: 760px;
  margin: 0 auto;
  color: #344252;
  font-size: clamp(1.04rem, 1.7vw, 1.2rem);
  line-height: 1.62;
}
.legal-card {
  max-width: 980px;
  margin: 0 auto;
  padding: clamp(1.25rem, 3vw, 2rem);
  border-radius: 28px;
}
.legal-content {
  display: grid;
  gap: 1.05rem;
}
.legal-content section {
  padding: 1.1rem 1.1rem 1.15rem;
  border-radius: 20px;
  background: rgba(255,255,255,.62);
  border: 1px solid rgba(39,94,136,.10);
}
.legal-content h2 {
  font-size: clamp(1.34rem, 2.4vw, 1.85rem);
  line-height: 1.08;
  letter-spacing: -.025em;
  margin: 0 0 .45rem;
  color: #17324a;
}
.legal-content h3 {
  font-size: clamp(1.14rem, 2vw, 1.45rem);
  margin: 1.1rem 0 .45rem;
  color: #17324a;
}
.legal-content p,
.legal-content li {
  color: #344252;
  line-height: 1.65;
  margin-bottom: .7rem;
}
.legal-content p:last-child,
.legal-content li:last-child {
  margin-bottom: 0;
}
.legal-content ul {
  margin: .4rem 0 0;
  padding-left: 1.25rem;
}
.legal-actions,
.sent-actions {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: .8rem;
  margin-top: 1.2rem;
}
.sent-wrap {
  min-height: calc(100vh - 72px);
  display: grid;
  place-items: center;
}
.sent-card {
  width: min(100%, 760px);
  padding: clamp(1.6rem, 5vw, 3rem);
  border-radius: 34px;
  text-align: center;
}
.sent-card .sent-icon {
  width: 82px;
  height: 82px;
  display: grid;
  place-items: center;
  margin: 0 auto 1rem;
  border-radius: 50%;
  background: rgba(120,197,243,.22);
  color: #2389cf;
  box-shadow: inset 0 0 0 1px rgba(120,197,243,.32), 0 14px 34px rgba(18,38,60,.12);
}
.sent-card .sent-icon svg {
  width: 48px;
  height: 48px;
}
.sent-card h1 {
  margin-inline: auto;
  margin-bottom: .75rem;
  max-width: 720px;
}
.sent-card p {
  color: #344252;
  font-size: clamp(1.05rem, 1.8vw, 1.22rem);
  line-height: 1.65;
  max-width: 640px;
  margin-inline: auto;
}
.sent-note {
  margin-top: 1rem;
  padding: .9rem 1rem;
  border-radius: 18px;
  background: rgba(255,255,255,.58);
  border: 1px solid rgba(39,94,136,.12);
  color: #526171 !important;
  font-size: .98rem !important;
}

@media (max-width: 720px) {
  .nav-phone-item {
    justify-content: center;
    padding-left: 0;
    margin-left: 0;
    border-left: 0;
  }
  .nav-phone-prefix {
    font-size: .86rem;
  }
  .page-shell {
    padding: 2.25rem 0;
  }
  .page-shell::after {
    background:
      url('botanical-accent.svg') left bottom / 88vw auto no-repeat,
      url('botanical-accent.svg') right 2rem bottom 8rem / 72vw auto no-repeat;
    opacity: .38;
  }
  .legal-content section {
    padding: .95rem;
  }
  .legal-actions,
  .sent-actions {
    align-items: stretch;
    flex-direction: column;
  }
  .legal-actions .btn,
  .sent-actions .btn {
    width: 100%;
    justify-content: flex-start;
  }
}


/* v0.39 refinements */

.contact-form select {
  width: 100%;
  border: 1px solid rgba(166,165,165,.32);
  border-radius: 14px;
  background-color: #fff;
  padding: .82rem 2.9rem .82rem .9rem;
  color: var(--ink);
  outline: none;
  -webkit-appearance: none;
  appearance: none;
  font: inherit;
  line-height: 1.3;
  cursor: pointer;
}
.select-wrap {
  position: relative;
}
.select-wrap::after {
  content: '';
  position: absolute;
  right: 1rem;
  top: 50%;
  width: 12px;
  height: 12px;
  border-right: 2px solid #78c5f3;
  border-bottom: 2px solid #78c5f3;
  transform: translateY(-65%) rotate(45deg);
  pointer-events: none;
}
.contact-form input:focus,
.contact-form textarea:focus,
.contact-form select:focus {
  border-color: #78c5f3;
  box-shadow: 0 0 0 4px rgba(120,197,243,.18);
}
.contact-form select:hover {
  border-color: rgba(120,197,243,.72);
}
.contact-form input::placeholder,
.contact-form textarea::placeholder,
.contact-form select:invalid {
  color: #6c7a88;
}
.contact-form button {
  margin-top: .2rem;
}
.conditional-field {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transform: translateY(-4px);
  transition: max-height .32s ease, opacity .24s ease, transform .24s ease;
}
.conditional-field.is-open {
  opacity: 1;
  transform: translateY(0);
}
.page-shell {
  padding: clamp(1.6rem, 4vw, 3rem) 0 clamp(3rem, 6vw, 5rem);
  background:
    radial-gradient(circle at 10% 14%, rgba(120,197,243,.18), transparent 20rem),
    radial-gradient(circle at 88% 16%, rgba(120,197,243,.16), transparent 19rem),
    radial-gradient(circle at 15% 88%, rgba(39,94,136,.10), transparent 18rem),
    radial-gradient(circle at 84% 88%, rgba(120,197,243,.18), transparent 18rem),
    linear-gradient(135deg, rgba(248,252,255,.96), rgba(239,247,252,.96) 54%, rgba(255,255,255,.97));
}
.page-shell::before {
  background: url('page-plants-abstract.svg') center/cover no-repeat;
  opacity: .94;
}
.page-shell::after {
  background: none;
}
.page-hero-card {
  max-width: 920px;
  margin: 0 auto 1rem;
  padding: clamp(1.2rem, 3vw, 1.8rem) clamp(1.1rem, 4vw, 2rem);
  border-radius: 28px;
}
.page-title-row {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .85rem;
  flex-wrap: wrap;
}
.page-title-row h1 {
  margin: 0;
}
.pulse-dot {
  width: .78rem;
  height: .78rem;
  border-radius: 50%;
  background: #78c5f3;
  box-shadow: 0 0 0 5px rgba(120,197,243,.18);
  animation: eyebrowPulse 1.9s ease-in-out infinite;
}
.page-updated {
  margin-top: .7rem !important;
  color: #425263 !important;
  font-size: clamp(1rem, 1.8vw, 1.12rem) !important;
}
.legal-card {
  max-width: 920px;
}
.sent-card {
  width: min(100%, 820px);
}
@media (max-width: 720px) {
  .page-shell {
    padding: 1.1rem 0 2.6rem;
  }
  .page-title-row {
    gap: .65rem;
  }
}


/* v0.40 consent checkbox */
.form-consent {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: .72rem;
  padding: .9rem 1rem;
  border-radius: 18px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(120,197,243,.28);
  color: #405061;
  line-height: 1.55;
  font-size: .94rem;
  font-weight: 650;
}
.form-consent input[type="checkbox"] {
  width: 1.1rem;
  height: 1.1rem;
  margin-top: .18rem;
  accent-color: #78c5f3;
  cursor: pointer;
}
.form-consent a {
  color: #155e89;
  font-weight: 850;
  text-decoration: underline;
  text-decoration-thickness: 1.5px;
  text-underline-offset: 3px;
}
.form-consent a:hover,
.form-consent a:focus-visible {
  color: #0d4164;
}


/* v0.41 consent checkbox refinement */
.form-consent {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: .55rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #526171;
  line-height: 1.45;
  font-size: .78rem;
  font-weight: 600;
}
.form-consent input[type="checkbox"] {
  width: 15px;
  height: 15px;
  min-width: 15px;
  margin: .15rem 0 0;
  padding: 0;
  border-radius: 3px;
  box-shadow: none;
  accent-color: #78c5f3;
  cursor: pointer;
}
.contact-form .form-consent input[type="checkbox"]:focus,
.contact-form .form-consent input[type="checkbox"]:focus-visible {
  outline: none;
  box-shadow: none;
}
.form-consent span {
  margin: 0;
}
.form-consent a {
  color: #155e89;
  font-weight: 800;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}
.form-consent a:hover,
.form-consent a:focus-visible {
  color: #0d4164;
  outline: none;
}


/* v0.42 consent text refinement */
.form-consent {
  font-size: .72rem;
  line-height: 1.4;
  font-weight: 550;
  gap: .5rem;
}

.form-consent a:hover,
.form-consent a:focus-visible {
  color: #78c5f3;
  outline: none;
}


/* v0.43 form and terms-title refinements */
.page-title-row {
  position: relative;
  display: block;
  width: max-content;
  max-width: 100%;
  margin: 0 auto;
  text-align: center;
}

.page-title-row h1 {
  margin: 0;
  font-size: clamp(3.4rem, 7vw, 5.8rem);
  line-height: .96;
}

.page-title-row .pulse-dot {
  position: absolute;
  left: -2.2rem;
  top: 50%;
  transform: translateY(-50%);
}

.page-updated {
  text-align: center;
}

@media (max-width: 720px) {
  .page-title-row h1 {
    font-size: clamp(2.65rem, 13vw, 3.7rem);
  }

  .page-title-row .pulse-dot {
    left: -1.55rem;
  }
}


/* v0.44 terms title size correction */
.page-hero-card .page-title-row h1 {
  font-size: clamp(2.35rem, 4vw, 3.35rem);
  line-height: 1;
}

@media (max-width: 720px) {
  .page-hero-card .page-title-row h1 {
    font-size: clamp(2.1rem, 10vw, 3rem);
  }
}


/* v0.45 sent page centering correction */
.sent-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
}

.sent-wrap .container {
  width: 100%;
  display: flex;
  justify-content: center;
}

.sent-card {
  width: min(100%, 860px);
  max-width: 860px;
  margin-inline: auto;
}

.sent-card h1,
.sent-card p,
.sent-note,
.sent-actions {
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.sent-actions {
  justify-content: center;
}

@media (max-width: 720px) {
  .sent-wrap .container {
    display: block;
  }

  .sent-card {
    width: 100%;
    max-width: 100%;
  }
}

/* v0.46 form validation and consent text correction */
.contact-form .form-consent {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: start;
  gap: .45rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #526171;
  font-size: .70rem !important;
  line-height: 1.34;
  font-weight: 500;
}

.contact-form .form-consent span,
.contact-form .form-consent a {
  font-size: .70rem !important;
  line-height: 1.34;
}

.contact-form .form-consent input[type="checkbox"] {
  width: 13px;
  height: 13px;
  min-width: 13px;
  margin: .1rem 0 0;
  padding: 0;
  box-shadow: none;
  outline: none;
  accent-color: #78c5f3;
}

.contact-form .form-consent input[type="checkbox"]:focus,
.contact-form .form-consent input[type="checkbox"]:focus-visible {
  outline: none;
  box-shadow: none;
}

.contact-form .form-consent a {
  color: #155e89;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.contact-form .form-consent a:hover,
.contact-form .form-consent a:focus-visible {
  color: #78c5f3 !important;
  outline: none;
}

.contact-grid > div p + p {
  margin-top: .85rem;
}

/* v0.47 requested refinements */
.contact-form .form-consent {
  font-size: .80rem !important;
  line-height: 1.38;
}

.contact-form .form-consent span,
.contact-form .form-consent a {
  font-size: .80rem !important;
  line-height: 1.38;
}

.site-footer a[href$="termsofuse.html"] {
  color: #78c5f3;
}

.site-footer a[href$="termsofuse.html"]:hover,
.site-footer a[href$="termsofuse.html"]:focus-visible {
  color: rgba(255,255,255,.88);
}

.page-title-row {
  width: 100%;
  max-width: 100%;
  text-align: center;
}

.page-title-row h1,
.page-hero-card .page-title-row h1,
.sent-card h1 {
  font-size: clamp(2.35rem, 4vw, 3.35rem);
  line-height: 1;
  text-align: center;
}

.page-title-row .pulse-dot {
  left: calc(50% - min(30vw, 18rem));
  top: 50%;
  transform: translateY(-50%);
}

.sent-card h1 {
  max-width: 760px;
}

.redirect-timer {
  width: min(100%, 520px);
  margin: 1.35rem auto 0;
  text-align: center;
}

.redirect-bar {
  width: 100%;
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(120,197,243,.18);
  box-shadow: inset 0 0 0 1px rgba(120,197,243,.22);
}

.redirect-bar span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: #78c5f3;
  transition-property: width;
  transition-timing-function: linear;
}

.redirect-timer p {
  margin-top: .55rem;
  color: #526171;
  font-size: .9rem;
  line-height: 1.4;
}

@media (max-width: 720px) {
  .page-title-row .pulse-dot {
    left: calc(50% - min(41vw, 12rem));
  }

  .page-title-row h1,
  .page-hero-card .page-title-row h1,
  .sent-card h1 {
    font-size: clamp(2.1rem, 10vw, 3rem);
  }
}

/* v0.48 terms title centering correction and timer duration support */
.page-hero-card .page-title-row {
  position: relative;
  display: block;
  width: fit-content;
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.page-hero-card .page-title-row h1 {
  display: block;
  margin: 0;
  text-align: center;
  font-size: clamp(2.35rem, 4vw, 3.35rem);
  line-height: 1;
}

.page-hero-card .page-title-row .pulse-dot {
  position: absolute;
  left: -2.35rem;
  top: 50%;
  transform: translateY(-50%);
}

.page-hero-card .page-updated {
  display: block;
  width: 100%;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center;
}

@media (max-width: 720px) {
  .page-hero-card .page-title-row .pulse-dot {
    left: -1.65rem;
  }

  .page-hero-card .page-title-row h1 {
    font-size: clamp(2.1rem, 10vw, 3rem);
  }
}

/* v0.49 iPadOS/mobile image rendering correction */
.portrait-frame {
  aspect-ratio: auto !important;
  height: auto !important;
}

.portrait-frame img {
  width: 100% !important;
  height: auto !important;
  object-fit: contain !important;
  object-position: center center !important;
}

@media (hover: none) and (pointer: coarse) {
  .portrait-panel {
    justify-self: center;
  }

  .portrait-frame img,
  .service-card picture img {
    transform: none;
    image-rendering: auto;
  }
}

@media (max-width: 1400px) and (hover: none) and (pointer: coarse) {
  .hero-grid {
    grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr);
    gap: clamp(1.5rem, 4vw, 3.25rem);
  }

  .portrait-panel {
    max-width: min(42vw, 440px);
  }

  .portrait-frame {
    width: 100%;
  }
}

@media (max-width: 1100px) {
  .hero-grid {
    grid-template-columns: 1fr;
  }

  .portrait-panel {
    justify-self: center;
    max-width: min(92vw, 440px);
  }
}

@media (max-width: 720px) {
  .portrait-panel {
    max-width: min(92vw, 380px);
  }

  .portrait-frame {
    border-radius: 24px;
  }

  .portrait-frame img {
    border-radius: 24px;
  }
}
