:root {

  --color-bg-primary: #f7f5f0;

  --color-bg-secondary: #f1ece3;

  --color-surface: #fffdf8;

  --color-text-main: #2c3e50;

  --color-text-soft: rgba(44, 62, 80, 0.78);

  --color-border: rgba(44, 62, 80, 0.14);

  --color-accent-primary: #9cb3a1;

  --color-accent-cta: #d4a373;

  --color-accent-cta-hover: #c28f5e;

  --color-cta-text: #22303d;

  --color-ink-surface: #2c3e50;

  --color-ink-text: rgba(247, 245, 240, 0.94);

  --shadow-soft: 0 16px 36px rgba(44, 62, 80, 0.08);

  --shadow-card: 0 10px 24px rgba(44, 62, 80, 0.09);

  --shadow-header: 0 6px 16px rgba(44, 62, 80, 0.06);

  --radius-card: 18px;

  --radius-soft: 14px;

  --radius-pill: 999px;

  --container-width: 1160px;

  --header-height: 72px;

}



*,

*::before,

*::after {

  box-sizing: border-box;

}



html {

  scroll-behavior: smooth;

  overflow-x: hidden;

}



body {

  margin: 0;

  background:

    radial-gradient(circle at top right, rgba(156, 179, 161, 0.18), transparent 28%),

    radial-gradient(circle at bottom left, rgba(212, 163, 115, 0.12), transparent 22%),

    var(--color-bg-primary);

  color: var(--color-text-main);

  font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  font-size: 16px;

  line-height: 1.7;

  -webkit-font-smoothing: antialiased;

  text-rendering: optimizeLegibility;

  overflow-x: hidden;

}



body.drawer-open {

  overflow: hidden;

}



img {

  max-width: 100%;

  display: block;

}



a {

  color: inherit;

  text-decoration: none;

}



button,

input,

textarea,

select {

  font: inherit;

}



button {

  cursor: pointer;

}



button,

a,

input,

textarea,

summary {

  -webkit-tap-highlight-color: transparent;

}



:focus-visible {

  outline: 3px solid rgba(212, 163, 115, 0.4);

  outline-offset: 3px;

}



.visually-hidden {

  position: absolute;

  width: 1px;

  height: 1px;

  padding: 0;

  margin: -1px;

  overflow: hidden;

  clip: rect(0, 0, 0, 0);

  white-space: nowrap;

  border: 0;

}



.page-shell {

  min-height: 100vh;

  overflow-x: hidden;

}



.site-header {

  position: sticky;

  top: 0;

  z-index: 80;

  background: rgba(247, 245, 240, 0.92);

  border-bottom: 1px solid rgba(44, 62, 80, 0.08);

  backdrop-filter: blur(10px);

  box-shadow: var(--shadow-header);

}



.site-header__inner,

.site-footer__inner,

.section__inner,

.hero__inner,

.band__inner {

  width: min(calc(100% - 36px), var(--container-width));

  margin: 0 auto;

}



.site-header__inner {

  min-height: var(--header-height);

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 12px;

}



.brand-mark {

  display: inline-flex;

  flex-direction: column;

  gap: 4px;

}



.brand-mark__name {

  font-family: "Playfair Display", Georgia, serif;

  font-size: clamp(1.28rem, 1.12rem + 0.45vw, 1.72rem);

  line-height: 1.1;

  letter-spacing: 0.02em;

}



.brand-mark__meta {

  font-size: 0.9rem;

  letter-spacing: 0.08em;

  text-transform: uppercase;

  color: var(--color-text-soft);

}



.site-nav {

  display: none;

  align-items: center;

  gap: 8px;

}



.site-nav__list {

  display: flex;

  align-items: center;

  flex-wrap: nowrap;

  white-space: nowrap;

  gap: 6px;

  list-style: none;

  padding: 0;

  margin: 0;

}



.site-nav__item {

  position: relative;

}



.site-nav__link,

.site-nav__toggle,

.drawer-nav__link,

.drawer-nav__toggle {

  min-height: 44px;

  display: inline-flex;

  align-items: center;

  gap: 10px;

  border: 0;

  background: transparent;

  color: var(--color-text-main);

  padding: 8px 12px;

  border-radius: 12px;

  font-size: 1rem;

  line-height: 1.4;

  transition: background-color 180ms ease, color 180ms ease, transform 180ms ease;

}



.site-nav__link:active,

.site-nav__toggle:active,

.drawer-nav__link:active,

.drawer-nav__toggle:active {

  transform: scale(0.98);

}





.site-nav__link:hover,

.site-nav__toggle:hover,

.drawer-nav__link:hover,

.drawer-nav__toggle:hover,

.site-nav__link[aria-current="page"] {

  color: var(--color-text-main);

  background: rgba(156, 179, 161, 0.16);

}



.site-nav__toggle::after,

.drawer-nav__toggle::after {

  content: "+";

  font-size: 1rem;

  transition: transform 180ms ease;

}



.site-nav__item.is-open > .site-nav__toggle::after,

.drawer-nav__group.is-open > .drawer-nav__toggle::after {

  transform: rotate(45deg);

}



.submenu {

  position: absolute;

  top: calc(100% + 8px);

  left: 0;

  min-width: 250px;

  background: rgba(255, 253, 248, 0.98);

  border: 1px solid rgba(44, 62, 80, 0.12);

  border-radius: 14px;

  box-shadow: var(--shadow-card);

  padding: 10px;

  display: none;

}



.site-nav__item.is-open .submenu {

  display: grid;

  gap: 4px;

}



.submenu a {

  min-height: 44px;

  display: flex;

  align-items: center;

  padding: 12px 14px;

  border-radius: 12px;

  color: var(--color-text-main);

  transition: background-color 180ms ease, color 180ms ease;

}



.submenu a:hover,

.submenu a:focus-visible {

  background: rgba(156, 179, 161, 0.16);

}



.site-header__actions {

  display: flex;

  align-items: center;

  gap: 12px;

}



.desktop-cta {

  display: none;

  white-space: nowrap;

  min-height: 44px;

  padding: 10px 16px;

  font-size: 0.94rem;

}



.mobile-cta {

  justify-content: center;

  text-align: center;

}



.menu-trigger {

  position: relative;

  min-width: 44px;

  min-height: 44px;

  border-radius: 12px;

  border: 1px solid rgba(44, 62, 80, 0.12);

  background: rgba(255, 253, 248, 0.88);

  color: var(--color-text-main);

  display: grid;

  place-items: center;

}



.menu-trigger::before {

  content: "";

  width: 18px;

  height: 2px;

  background: currentColor;

  border-radius: 2px;

  box-shadow: 0 -6px 0 currentColor, 0 6px 0 currentColor;

}



.drawer {

  position: fixed;

  inset: 0;

  z-index: 90;

  background: rgba(44, 62, 80, 0.44);

  opacity: 0;

  visibility: hidden;

  transition: opacity 220ms ease, visibility 220ms ease;

}



.drawer.is-open {

  opacity: 1;

  visibility: visible;

}



.drawer__panel {

  position: absolute;

  right: 0;

  top: 0;

  bottom: 0;

  width: min(100vw, 420px);

  max-width: 100vw;

  background: linear-gradient(180deg, #f7f5f0 0%, #efe8dc 100%);

  transform: translateX(100%);

  transition: transform 220ms ease;

  display: flex;

  flex-direction: column;

  padding: 20px;

}



.drawer.is-open .drawer__panel {

  transform: translateX(0);

}



.drawer__top {

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 16px;

  margin-bottom: 24px;

}



.drawer__close {

  position: relative;

  min-width: 44px;

  min-height: 44px;

  border-radius: 12px;

  border: 1px solid rgba(44, 62, 80, 0.12);

  background: rgba(255, 253, 248, 0.88);

  color: var(--color-text-main);

}



.drawer__close::before,

.drawer__close::after {

  content: "";

  position: absolute;

  left: 50%;

  top: 50%;

  width: 18px;

  height: 2px;

  background: currentColor;

  border-radius: 2px;

}



.drawer__close::before {

  transform: translate(-50%, -50%) rotate(45deg);

}



.drawer__close::after {

  transform: translate(-50%, -50%) rotate(-45deg);

}



.drawer-nav {

  display: grid;

  gap: 10px;

  margin-top: 12px;

}



.drawer-nav__group {

  border-radius: 14px;

  background: rgba(255, 253, 248, 0.72);

  border: 1px solid rgba(44, 62, 80, 0.08);

}



.drawer-nav__toggle,

.drawer-nav__link {

  width: 100%;

  justify-content: space-between;

  padding: 12px 14px;

}



.drawer-nav__submenu {

  padding-top: 8px;

  display: none;

  padding: 0 16px 14px;

  gap: 6px;

}



.drawer-nav__group.is-open .drawer-nav__submenu {

  display: grid;

}



.drawer-nav__submenu a {

  margin-top: 8px;

  min-height: 44px;

  display: flex;

  align-items: center;

  padding: 12px 14px;

  border-radius: 12px;

  color: var(--color-text-main);

  background: rgba(156, 179, 161, 0.12);

}



.drawer__footer {
  margin-top: auto;
  display: grid;
  gap: 12px;
  justify-items: center;
  text-align: center;
  width: 100%;
}



.drawer__footer .button {
  width: min(100%, 240px);
  margin: 0 auto;
  min-height: 38px;
  padding: 6px 12px;
  font-size: 0.88rem;
  line-height: 1.1;
  justify-content: center;
  box-shadow: 0 8px 16px rgba(212, 163, 115, 0.18);
}



.button,

.button-secondary,

.button-quiet {

  min-height: 50px;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  gap: 10px;

  padding: 12px 20px;

  border-radius: var(--radius-pill);

  border: 1px solid transparent;

  font-weight: 600;

  font-size: 1rem;

  line-height: 1.3;

  transition: transform 180ms ease, background-color 180ms ease, border-color 180ms ease, color 180ms ease, box-shadow 180ms ease;

}



.button {

  background: var(--color-accent-cta);

  color: var(--color-cta-text);

  box-shadow: 0 10px 22px rgba(212, 163, 115, 0.24);

}



.button:hover,

.button:focus-visible {

  background: var(--color-accent-cta-hover);

  transform: translateY(-1px);

}



.button:active,

.button-secondary:active,

.button-quiet:active {

  transform: translateY(0) scale(0.98);

}





.button-secondary {

  background: rgba(156, 179, 161, 0.18);

  color: var(--color-text-main);

  border-color: rgba(156, 179, 161, 0.34);

}



.button-secondary:hover,

.button-secondary:focus-visible {

  background: rgba(156, 179, 161, 0.28);

}



.button-quiet {

  background: transparent;

  border-color: rgba(44, 62, 80, 0.14);

  color: var(--color-text-main);

}



.button-quiet:hover,

.button-quiet:focus-visible {

  background: rgba(255, 255, 255, 0.55);

}



.hero {

  padding: clamp(48px, 7vw, 92px) 0 40px;

}



.hero__inner {

  display: grid;

  gap: 26px;

}



.hero__grid {

  display: grid;

  gap: 24px;

  align-items: center;

}



.hero__copy {

  display: grid;

  gap: 16px;

}



.hero__eyebrow,

.eyebrow {

  display: inline-flex;

  align-items: center;

  gap: 10px;

  font-size: 1rem;

  font-weight: 600;

  letter-spacing: 0.06em;

  text-transform: uppercase;

  color: rgba(44, 62, 80, 0.74);

}



.hero__eyebrow {

  display: none !important;

}



.hero__eyebrow::before,

.eyebrow::before {

  content: "";

  width: 32px;

  height: 1px;

  background: rgba(44, 62, 80, 0.32);

}



.hero h1,

.hero h2,

.section h2,

.section h3,

.site-footer h2,

.site-footer h3,

.page-title,

.display {

  margin: 0;

  font-family: "Playfair Display", Georgia, serif;

  font-weight: 600;

  line-height: 1.12;

  letter-spacing: -0.02em;

}



.hero h1 {

  font-size: clamp(2.05rem, 4.4vw, 3.45rem);

}



.hero__quote {

  margin: 0;

  font-family: "Playfair Display", Georgia, serif;

  font-size: clamp(1.05rem, 1rem + 0.35vw, 1.28rem);

  line-height: 1.5;

  color: rgba(44, 62, 80, 0.86);

}



.section h2,

.page-title {

  font-size: clamp(1.58rem, 2.6vw, 2.38rem);

}



.section h3 {

  font-size: clamp(1.22rem, 1.8vw, 1.62rem);

}



.lead,

.body-large,

.section p,

.card p,

.price-card p,

.faq-item p,

.legal-stack p,

.legal-stack li,

.article-body p,

.article-body li,

.footer-note,

.input-help,

.contact-block p {

  margin: 0;

  font-size: 1rem;

  color: var(--color-text-soft);

  line-height: 1.78;

}



.lead {

  font-size: clamp(1rem, 0.98rem + 0.22vw, 1.16rem);

  line-height: 1.82;

}



.footer-note {

  line-height: 1.8;

}



.button-row {

  display: flex;

  flex-wrap: wrap;

  gap: 12px;

}





.button-row--about {

  margin-bottom: 10px;

}

.hero-card,

.card,

.price-card,

.contact-block,

.faq-shell,

.article-card,

.note-panel,

.trust-band,

.legal-stack,

.success-card {

  background: rgba(255, 253, 248, 0.88);

  border: 1px solid var(--color-border);

  border-radius: var(--radius-card);

  box-shadow: var(--shadow-card);

}



.hero-card,

.card,

.price-card,

.contact-block,

.faq-shell,

.article-card,

.note-panel,

.legal-stack,

.success-card {

  padding: clamp(18px, 2.6vw, 26px);

}



.hero-media {

  position: relative;

  min-height: 290px;

}



.hero-media__frame {

  position: relative;

  overflow: hidden;

  border-radius: 18px;

  min-height: 100%;

  background: linear-gradient(145deg, rgba(156, 179, 161, 0.28), rgba(212, 163, 115, 0.16));

  box-shadow: var(--shadow-soft);

}



.hero-media__frame img {

  width: 100%;

  height: 100%;

  min-height: 290px;

  object-fit: cover;

  object-position: center top;

}



.hero-media__orb,

.soft-orb {

  position: absolute;

  border-radius: 50%;

  pointer-events: none;

  filter: blur(10px);

}



.hero-media__orb--sage,

.soft-orb--sage {

  background: rgba(156, 179, 161, 0.28);

}



.hero-media__orb--terracotta,

.soft-orb--terracotta {

  background: rgba(212, 163, 115, 0.22);

}



.hero-media__orb--a {

  width: 132px;

  height: 132px;

  top: -14px;

  right: -16px;

}



.hero-media__orb--b {

  width: 116px;

  height: 116px;

  left: -16px;

  bottom: -14px;

}



.section {

  padding: clamp(40px, 6.2vw, 88px) 0;

}



.section--muted {

  background: linear-gradient(180deg, rgba(255, 255, 255, 0.38), rgba(241, 236, 227, 0.46));

  border-top: 1px solid rgba(44, 62, 80, 0.06);

  border-bottom: 1px solid rgba(44, 62, 80, 0.06);

}



.section--ink {

  background:

    radial-gradient(circle at top left, rgba(156, 179, 161, 0.12), transparent 28%),

    linear-gradient(180deg, #2c3e50 0%, #243545 100%);

  color: var(--color-ink-text);

}



.section--ink .lead,

.section--ink p,

.section--ink li,

.section--ink .eyebrow,

.section--ink .section-intro {

  color: rgba(247, 245, 240, 0.84);

}



.section--ink .button-secondary,

.section--ink .button-quiet {

  border-color: rgba(247, 245, 240, 0.22);

  color: var(--color-ink-text);

}



.section--ink .button-quiet:hover,

.section--ink .button-quiet:focus-visible {

  background: rgba(247, 245, 240, 0.08);

}



.section-intro {

  display: grid;

  gap: 12px;

  max-width: 680px;

  margin-bottom: 24px;

}



.card-grid {

  display: grid;

  gap: 16px;

}



.card-grid--2 {

  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));

}



.card-grid--3 {

  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));

}



.card--soft {

  background: rgba(255, 253, 248, 0.7);

}



.card--ink {

  background: rgba(247, 245, 240, 0.08);

  border-color: rgba(247, 245, 240, 0.14);

}



.card__label,

.meta-line,

.pill-link {

  display: inline-flex;

  align-items: center;

  gap: 8px;

  font-size: 1rem;

  font-weight: 600;

  color: var(--color-text-main);

}



.meta-line {

  color: rgba(44, 62, 80, 0.72);

}



.list-clean,

.list-tight,

.article-body ul,

.article-body ol,

.legal-stack ul {

  margin: 0;

  padding-left: 1.2rem;

}



.list-clean li,

.list-tight li,

.article-body li,

.legal-stack li {

  margin-bottom: 12px;

  line-height: 1.72;

}



.list-tight li:last-child,

.article-body li:last-child,

.legal-stack li:last-child {

  margin-bottom: 0;

}



.anchor-nav {

  display: flex;

  flex-wrap: wrap;

  gap: 10px;

}



.anchor-nav a {

  min-height: 44px;

  display: inline-flex;

  align-items: center;

  padding: 10px 16px;

  border-radius: var(--radius-pill);

  background: rgba(156, 179, 161, 0.16);

  color: var(--color-text-main);

  font-weight: 600;

}



.anchor-nav a:hover,

.anchor-nav a:focus-visible {

  background: rgba(156, 179, 161, 0.28);

}



.pricing-grid {

  display: grid;

  gap: 16px;

}



.price-card {

  display: grid;

  gap: 12px;

}



.price-card__amount {

  font-family: "Playfair Display", Georgia, serif;

  font-size: clamp(1.72rem, 3vw, 2.55rem);

  color: var(--color-text-main);

  line-height: 1;

}



.price-card__meta {

  font-size: 1rem;

  font-weight: 600;

  color: rgba(44, 62, 80, 0.66);

  letter-spacing: 0.04em;

  text-transform: uppercase;

}



.step-list {

  display: grid;

  gap: 12px;

}



.step {

  display: grid;

  grid-template-columns: 48px 1fr;

  gap: 12px;

  align-items: start;

}



.step__index {

  width: 48px;

  height: 48px;

  display: grid;

  place-items: center;

  border-radius: 14px;

  background: rgba(212, 163, 115, 0.18);

  color: var(--color-text-main);

  font-family: "Playfair Display", Georgia, serif;

  font-size: 1.15rem;

  font-weight: 600;

}



.faq-shell {

  display: grid;

  gap: 12px;

}



.faq-item {

  border-radius: 14px;

  border: 1px solid rgba(44, 62, 80, 0.1);

  background: rgba(255, 255, 255, 0.72);

  overflow: hidden;

}



.faq-item summary {

  list-style: none;

  min-height: 50px;

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 16px;

  padding: 14px 18px;

  cursor: pointer;

  font-weight: 600;

  font-size: 1rem;

}



.faq-item summary::-webkit-details-marker {

  display: none;

}



.faq-item summary::after {

  content: "+";

  font-size: 1.2rem;

  color: var(--color-text-main);

}



.faq-item[open] summary::after {

  content: "-";

}



.faq-item__content {

  padding: 0 18px 18px;

  border-top: 1px solid rgba(44, 62, 80, 0.08);

}



.contact-layout,

.split-layout {

  display: grid;

  gap: 12px;

}



.contact-block,

.note-panel {

  display: grid;

  gap: 12px;

}



.form-grid {

  display: grid;

  gap: 12px;

}



.form-grid--2 {

  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));

}



.field {

  display: grid;

  gap: 10px;

}



.field label,

.checkbox-row label {

  font-weight: 600;

  font-size: 1rem;

  color: var(--color-text-main);

}



.field input,

.field textarea {

  width: 100%;

  min-height: 50px;

  border-radius: 14px;

  border: 1px solid rgba(44, 62, 80, 0.16);

  background: rgba(255, 253, 248, 0.94);

  color: var(--color-text-main);

  padding: 12px 14px;

}



.field textarea {

  min-height: 140px;

  resize: vertical;

}



.checkbox-row {

  display: grid;

  grid-template-columns: 24px 1fr;

  gap: 12px;

  align-items: start;

}



.checkbox-row input {

  width: 22px;

  height: 22px;

  margin-top: 3px;

  accent-color: var(--color-text-main);

}



.checkbox-row span {

  color: var(--color-text-main);

}



.checkbox-row a {

  color: var(--color-text-main);

  text-decoration: underline;

  text-underline-offset: 2px;

  text-decoration-thickness: 1.5px;

  font-weight: 600;

}



.checkbox-row a:hover,

.checkbox-row a:focus-visible {

  color: #1f2d3a;

}



 .calendly-shell {

  position: relative;

  min-height: 680px;

  border-radius: 18px;

  border: 1px solid rgba(44, 62, 80, 0.12);

  background: rgba(255, 253, 248, 0.92);

  overflow: hidden;

  box-shadow: var(--shadow-card);

}



.calendly-shell iframe,

.calendly-shell .calendly-inline-widget,

.calendly-shell .calendly-host {

  min-width: 100%;

  min-height: 680px;

  position: relative;

  z-index: 1;

}



.calendly-overlay {

  position: absolute;

  inset: 0;

  z-index: 4;

  display: grid;

  place-items: center;

  background: rgba(247, 245, 240, 0.84);

  backdrop-filter: blur(10px);

  padding: 20px;

  transition: opacity 220ms ease, visibility 220ms ease;

}



.calendly-overlay.is-loading {

  background: rgba(247, 245, 240, 0.9);

}



.calendly-overlay.is-hidden {

  opacity: 0;

  visibility: hidden;

  pointer-events: none;

}



.calendly-overlay__card {

  max-width: 380px;

  text-align: center;

  background: rgba(255, 253, 248, 0.96);

  border: 1px solid rgba(44, 62, 80, 0.14);

  border-radius: 18px;

  padding: 24px;

  box-shadow: var(--shadow-card);

}



.article-grid {

  display: grid;

  gap: 16px;

  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));

}



.article-card {

  display: grid;

  gap: 16px;

  align-content: start;

}



.article-card__media {

  aspect-ratio: 16 / 9;

  border-radius: 14px;

  overflow: hidden;

  background:

    linear-gradient(135deg, rgba(156, 179, 161, 0.28), rgba(212, 163, 115, 0.22));

}



.article-card__media img {

  width: 100%;

  height: 100%;

  object-fit: cover;

  display: block;

}



.article-hero-media {

  margin-bottom: 32px;

  border-radius: 18px;

  overflow: hidden;

  aspect-ratio: 16 / 9;

  box-shadow: var(--shadow-card);

  background: var(--color-bg-muted);

}



.article-hero-media img {

  width: 100%;

  height: 100%;

  object-fit: cover;

  display: block;

}



.article-card__eyebrow {

  font-size: 1rem;

  font-weight: 600;

  color: rgba(44, 62, 80, 0.68);

  text-transform: uppercase;

  letter-spacing: 0.05em;

}



.article-body {

  display: grid;

  gap: 12px;

}



.article-body h2,

.article-body h3 {

  margin: 8px 0 0;

}



.trust-band {

  padding: 20px;

}



.trust-band__grid {

  display: grid;

  gap: 16px;

  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));

}



.trust-band__item strong,

.card strong,

.note-panel strong {

  color: var(--color-text-main);

}



.legal-stack {

  display: grid;

  gap: 16px;

}



.success-card {

  max-width: 760px;

  margin: 0 auto;

  text-align: center;

}



.site-footer {

  margin-top: 24px;

  padding: 44px 0 20px;

  background:

    radial-gradient(circle at top right, rgba(156, 179, 161, 0.12), transparent 24%),

    linear-gradient(180deg, #2c3e50 0%, #223242 100%);

  color: var(--color-ink-text);

  border-top: 4px solid rgba(212, 163, 115, 0.64);

}



.site-footer__grid {

  display: grid;

  gap: 16px;

}



.site-footer h2,

.site-footer h3 {

  color: var(--color-ink-text);

}



.site-footer p,

.site-footer li,

.site-footer a,

.site-footer .meta-line {

  color: rgba(247, 245, 240, 0.84);

}



.site-footer a:hover,

.site-footer a:focus-visible {

  color: #fff;

}



.footer-contact {

  display: grid;

  gap: 10px;

}



.icon-inline,

.icon-link {

  display: inline-flex;

  align-items: center;

  justify-content: center;

  flex-shrink: 0;

}





.about-social,

.contact-social {

  display: flex;

}



.about-social .icon-link,

.contact-social .icon-link {

  border-color: rgba(44, 62, 80, 0.22);

  color: var(--color-text-main);

}



.about-social .icon-link:hover,

.about-social .icon-link:focus-visible,

.contact-social .icon-link:hover,

.contact-social .icon-link:focus-visible {

  background: rgba(44, 62, 80, 0.08);

  border-color: rgba(44, 62, 80, 0.38);

}

.icon-inline svg,

.icon-link svg {

  width: 18px;

  height: 18px;

  display: block;

  fill: currentColor;

}



.footer-contact .meta-line {

  display: inline-flex;

  align-items: center;

  gap: 10px;

}



.footer-social {

  gap: 12px;

}



.icon-link {

  border: 1px solid rgba(247, 245, 240, 0.2);

  border-radius: 999px;

  padding: 6px;

  transition: transform 160ms ease, background-color 160ms ease, border-color 160ms ease;

}



.icon-link:hover,

.icon-link:focus-visible {

  background: rgba(247, 245, 240, 0.12);

  border-color: rgba(247, 245, 240, 0.4);

  transform: translateY(-1px);

}



.icon-link--disabled {

  opacity: 0.5;

  cursor: default;

}



.site-footer__bottom {

  margin-top: 28px;

  padding-top: 18px;

  border-top: 1px solid rgba(247, 245, 240, 0.14);

  display: flex;

  flex-wrap: wrap;

  gap: 12px;

  justify-content: space-between;

}



.footer-links {

  display: flex;

  flex-wrap: wrap;

  gap: 12px;

}



.cookie-banner {

  position: fixed;

  left: 20px;

  right: 20px;

  bottom: 18px;

  z-index: 95;

  padding: 18px;

  background: rgba(255, 253, 248, 0.98);

  border: 1px solid rgba(44, 62, 80, 0.14);

  border-radius: 18px;

  box-shadow: var(--shadow-card);

  display: none;

  gap: 16px;

}



.cookie-banner.is-visible {

  display: grid;

}



.cookie-banner__actions {

  display: flex;

  flex-wrap: wrap;

  gap: 12px;

}



.desktop-only {

  display: none;

}



@media (min-width: 720px) {

  .hero__grid,

  .split-layout {

    grid-template-columns: minmax(0, 1.15fr) minmax(280px, 0.85fr);

  }



  .hero__grid--balanced {

    grid-template-columns: repeat(2, minmax(0, 1fr));

  }



  .contact-layout {

    grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.85fr);

    align-items: start;

  }



  .site-footer__grid {

    grid-template-columns: 1.2fr 1fr 1fr;

  }

}



@media (min-width: 960px) {

  .site-nav {

    display: flex;

  }



  .site-nav__list {

    gap: 4px;

  }



  .site-nav__link,

  .site-nav__toggle {

    min-height: 40px;

    padding: 7px 10px;

    font-size: 0.94rem;

    white-space: nowrap;

  }



  .site-header__actions {

    gap: 8px;

  }



  .desktop-cta {

    display: inline-flex;

  }



  .mobile-cta {

    display: none;

  }



  .menu-trigger,

  .drawer {

    display: none;

  }

}







@media (max-width: 959px) {
  .site-header {
    position: fixed;
    left: 0;
    right: 0;
  }

  .page-shell {
    padding-top: var(--header-height);
  }

  .site-footer__grid > div:nth-child(2) {
    display: none;
  }

  .desktop-cta {

    display: none !important;

  }



  .hero {

    padding-top: clamp(20px, 6vw, 36px);

  }



  .hero__grid--balanced .hero-media {

    order: -1;

  }



  .hero__grid--balanced .hero-media__frame {

    min-height: 220px;

  }



  .hero__grid--balanced .hero-media__frame img {

    min-height: 220px;

  }



  .mobile-cta {

    display: inline-flex;

    max-width: 108px;

  }



  .calendly-shell,

  .calendly-shell iframe,

  .calendly-shell .calendly-inline-widget,

  .calendly-shell .calendly-host {

    min-height: 620px;

  }



  .button-row {

    flex-direction: row;

    flex-wrap: wrap;

  }



  .site-header .brand-mark__name {

    font-size: clamp(1rem, 3.8vw, 1.2rem);

  }



  .site-header .brand-mark__meta {

    font-size: 0.7rem;

  }

}



.hero-photo--mobile {

  display: none;

}



.hero-photo--desktop {

  display: block;

}



@media (max-width: 768px) {

  .hero-photo--mobile {

    display: block;

  }



  .hero-photo--desktop {

    display: none;

  }

}













/* ---- Lightweight scroll reveal (except legal/privacy via JS guard) ---- */

.js-reveal-active .reveal-item {

  position: relative;

  isolation: isolate;

  opacity: 0;

  overflow: hidden;

  contain: paint;

  transform: translateY(20px) scale(0.995);

  filter: saturate(0.94);

  transition:

    opacity 560ms cubic-bezier(0.22, 1, 0.36, 1),

    transform 620ms cubic-bezier(0.22, 1, 0.36, 1),

    filter 520ms ease;

  transition-delay: var(--reveal-delay, 0ms);

  will-change: opacity, transform;

}



.js-reveal-active .reveal-item::before {

  content: "";

  position: absolute;

  inset: -1px;

  border-radius: inherit;

  pointer-events: none;

  z-index: 2;

  opacity: 0;

  background: linear-gradient(

    112deg,

    rgba(247, 245, 240, 0) 0%,

    rgba(156, 179, 161, 0.2) 36%,

    rgba(212, 163, 115, 0.18) 54%,

    rgba(247, 245, 240, 0) 86%

  );

  transform: translateX(-120%);

}



.js-reveal-active .reveal-item.is-visible {

  opacity: 1;

  transform: translateY(0) scale(1);

  filter: none;

}



.js-reveal-active .reveal-item.is-visible::before {

  opacity: 1;

  animation: revealGradientSweep 780ms cubic-bezier(0.22, 1, 0.36, 1) forwards;

  animation-delay: var(--reveal-delay, 0ms);

}



@keyframes revealGradientSweep {

  0% {

    transform: translateX(-120%);

    opacity: 0;

  }

  16% {

    opacity: 0.95;

  }

  100% {

    transform: translateX(125%);

    opacity: 0;

  }

}



@media (prefers-reduced-motion: reduce) {

  .js-reveal-active .reveal-item,

  .js-reveal-active .reveal-item::before {

    opacity: 1 !important;

    transform: none !important;

    filter: none !important;

    transition: none !important;

    animation: none !important;

  }

}

.drawer-nav__link[aria-current="page"],
.drawer-nav__submenu a[aria-current="page"] {
  background: rgba(156, 179, 161, 0.22);
  font-weight: 600;
}

