/* Book My Website — generated stylesheet. */
/* Style preset: Modern (modern) */

:root {
  --bmw-primary: #4f46e5;
  --bmw-primary-dark: #4338ca;
  --bmw-on-primary: #ffffff;
  --bmw-accent: #0ea5e9;
  --bmw-on-accent: #ffffff;
  --bmw-bg: #ffffff;
  --bmw-bg-alt: #f8fafc;
  --bmw-surface: #ffffff;
  --bmw-bg-inverse: #0f172a;
  --bmw-on-inverse: #e2e8f0;
  --bmw-text: #334155;
  --bmw-text-muted: #64748b;
  --bmw-heading: #0f172a;
  --bmw-border: #e2e8f0;

  --bmw-font-heading: 'Plus Jakarta Sans', ui-sans-serif, system-ui, sans-serif;
  --bmw-font-body: 'Inter', ui-sans-serif, system-ui, sans-serif;
  --bmw-base-size: 17px;
  --bmw-line-height: 1.65;
  --bmw-heading-line-height: 1.15;
  --bmw-heading-tracking: -0.02em;
  --bmw-heading-weight: 700;
  --bmw-eyebrow-tracking: 0.12em;

  --bmw-radius-sm: 8px;
  --bmw-radius-md: 10px;
  --bmw-radius-lg: 16px;
  --bmw-radius-full: 999px;
  --bmw-border-width: 1px;

  --bmw-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.06), 0 1px 3px rgba(15, 23, 42, 0.08);
  --bmw-shadow-md: 0 4px 6px -1px rgba(15, 23, 42, 0.08), 0 10px 20px -6px rgba(15, 23, 42, 0.12);
  --bmw-shadow-lg: 0 20px 45px -12px rgba(15, 23, 42, 0.25);

  --bmw-section-y: clamp(3.5rem, 7vw, 6.5rem);
  --bmw-gutter: clamp(1.25rem, 4vw, 2.5rem);
  --bmw-container: 1180px;
  --bmw-gap: 2rem;
  --bmw-gap-sm: 1rem;
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--bmw-font-body);
  font-size: var(--bmw-base-size);
  line-height: var(--bmw-line-height);
  color: var(--bmw-text);
  background: var(--bmw-bg);
  -webkit-font-smoothing: antialiased;
}

img, svg, video { display: block; max-width: 100%; height: auto; }

a { color: var(--bmw-primary); text-decoration: none; }
a:hover { text-decoration: underline; }

/* ---------------------------------------------------------------- layout -- */

.bmw-section {
  padding-block: var(--bmw-section-y);
  padding-inline: var(--bmw-gutter);
  background: var(--bmw-bg);
}
.bmw-section--alt { background: var(--bmw-bg-alt); }
.bmw-section--surface { background: var(--bmw-surface); }
.bmw-section--tight { padding-block: calc(var(--bmw-section-y) * 0.55); }
.bmw-section--flush { padding-block: 0; }

.bmw-section--inverse {
  background: var(--bmw-bg-inverse);
  color: var(--bmw-on-inverse);
}
.bmw-section--inverse .bmw-h1,
.bmw-section--inverse .bmw-h2,
.bmw-section--inverse .bmw-h3,
.bmw-section--inverse .bmw-h4 { color: #fff; }
.bmw-section--inverse .bmw-muted,
.bmw-section--inverse .bmw-lead { color: var(--bmw-on-inverse); opacity: 0.82; }
.bmw-section--inverse a { color: #fff; }

.bmw-container {
  width: 100%;
  max-width: var(--bmw-container);
  margin-inline: auto;
}
.bmw-container--narrow { max-width: 760px; }

.bmw-grid { display: grid; gap: var(--bmw-gap); }
.bmw-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.bmw-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.bmw-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* Two-column content/media split. */
.bmw-split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
}
.bmw-split--reverse > :first-child { order: 2; }

.bmw-stack { display: flex; flex-direction: column; gap: var(--bmw-gap-sm); }
.bmw-cluster { display: flex; flex-wrap: wrap; gap: var(--bmw-gap-sm); align-items: center; }
.bmw-cluster--center { justify-content: center; }
.bmw-center { text-align: center; }
.bmw-center .bmw-cluster { justify-content: center; }

/* ------------------------------------------------------------ typography -- */

.bmw-eyebrow {
  display: block;
  margin: 0 0 0.75rem;
  font-family: var(--bmw-font-body);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: var(--bmw-eyebrow-tracking);
  text-transform: uppercase;
  color: var(--bmw-primary);
}
.bmw-section--inverse .bmw-eyebrow { color: var(--bmw-primary); filter: brightness(1.35); }

.bmw-h1, .bmw-h2, .bmw-h3, .bmw-h4 {
  margin: 0;
  font-family: var(--bmw-font-heading);
  font-weight: var(--bmw-heading-weight);
  line-height: var(--bmw-heading-line-height);
  letter-spacing: var(--bmw-heading-tracking);
  color: var(--bmw-heading);
  text-wrap: balance;
}
.bmw-h1 { font-size: clamp(2.35rem, 5.2vw, 3.9rem); }
.bmw-h2 { font-size: clamp(1.85rem, 3.6vw, 2.65rem); }
.bmw-h3 { font-size: clamp(1.2rem, 1.9vw, 1.45rem); }
.bmw-h4 { font-size: 1.05rem; }

.bmw-lead {
  margin: 0;
  font-size: clamp(1.05rem, 1.5vw, 1.2rem);
  color: var(--bmw-text-muted);
  max-width: 62ch;
  text-wrap: pretty;
}
.bmw-text { margin: 0; text-wrap: pretty; }
.bmw-muted { color: var(--bmw-text-muted); }
.bmw-small { font-size: 0.9rem; }

/* Heading + lead pair that opens most sections. */
.bmw-section-head { margin-bottom: clamp(2.25rem, 4vw, 3.25rem); }
.bmw-section-head .bmw-lead { margin-top: 1rem; }
.bmw-section-head.bmw-center .bmw-lead { margin-inline: auto; }

/* ------------------------------------------------------------- controls --- */

.bmw-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.8em 1.6em;
  border: var(--bmw-border-width) solid transparent;
  border-radius: var(--bmw-radius-md);
  font-family: var(--bmw-font-body);
  font-size: 0.98rem;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}
.bmw-btn:hover { text-decoration: none; transform: translateY(-1px); }

.bmw-btn--primary {
  background: var(--bmw-primary);
  color: var(--bmw-on-primary);
  box-shadow: var(--bmw-shadow-sm);
}
.bmw-btn--primary:hover { background: var(--bmw-primary-dark); }

.bmw-btn--outline {
  background: transparent;
  color: var(--bmw-heading);
  border-color: var(--bmw-border);
}
.bmw-btn--outline:hover { border-color: var(--bmw-primary); color: var(--bmw-primary); }

.bmw-btn--ghost { background: transparent; color: var(--bmw-primary); padding-inline: 0.4em; }

.bmw-section--inverse .bmw-btn--outline { color: #fff; border-color: rgba(255, 255, 255, 0.35); }
.bmw-section--inverse .bmw-btn--outline:hover { border-color: #fff; color: #fff; }

.bmw-badge {
  display: inline-block;
  padding: 0.35em 0.85em;
  border-radius: var(--bmw-radius-full);
  background: color-mix(in srgb, var(--bmw-primary) 12%, transparent);
  color: var(--bmw-primary);
  font-size: 0.8rem;
  font-weight: 600;
}

/* --------------------------------------------------------------- surfaces - */

.bmw-card {
  padding: clamp(1.5rem, 2.5vw, 2rem);
  background: var(--bmw-surface);
  border: var(--bmw-border-width) solid var(--bmw-border);
  border-radius: var(--bmw-radius-lg);
  box-shadow: var(--bmw-shadow-sm);
}
.bmw-card--flush { padding: 0; overflow: hidden; }
.bmw-card--plain { border-color: transparent; box-shadow: none; background: transparent; }
.bmw-card .bmw-h3 { margin-bottom: 0.6rem; }

.bmw-media {
  overflow: hidden;
  border-radius: var(--bmw-radius-lg);
  background: var(--bmw-bg-alt);
}
.bmw-media img { width: 100%; height: 100%; object-fit: cover; }
.bmw-media--square { aspect-ratio: 1 / 1; }
.bmw-media--wide { aspect-ratio: 16 / 10; }
.bmw-media--portrait { aspect-ratio: 3 / 4; }

.bmw-avatar {
  width: 48px;
  height: 48px;
  flex: 0 0 48px;
  border-radius: var(--bmw-radius-full);
  object-fit: cover;
  background: var(--bmw-bg-alt);
}

.bmw-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border-radius: var(--bmw-radius-md);
  background: color-mix(in srgb, var(--bmw-primary) 12%, transparent);
  color: var(--bmw-primary);
  font-size: 1.35rem;
  margin-bottom: 1.1rem;
}

.bmw-divider { height: 1px; background: var(--bmw-border); border: 0; margin: 0; }

/* ----------------------------------------------------------------- forms -- */

.bmw-field { display: flex; flex-direction: column; gap: 0.4rem; }
.bmw-label { font-size: 0.88rem; font-weight: 600; color: var(--bmw-heading); }
.bmw-input {
  width: 100%;
  padding: 0.75em 0.9em;
  font-family: inherit;
  font-size: 0.98rem;
  color: var(--bmw-text);
  background: var(--bmw-surface);
  border: var(--bmw-border-width) solid var(--bmw-border);
  border-radius: var(--bmw-radius-sm);
}
.bmw-input:focus {
  outline: 2px solid color-mix(in srgb, var(--bmw-primary) 45%, transparent);
  outline-offset: 1px;
  border-color: var(--bmw-primary);
}
textarea.bmw-input { min-height: 130px; resize: vertical; }

/* ------------------------------------------------------------------ nav --- */

.bmw-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bmw-gap);
  padding-block: 1.15rem;
  padding-inline: var(--bmw-gutter);
  background: var(--bmw-bg);
  border-bottom: var(--bmw-border-width) solid var(--bmw-border);
}
.bmw-nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--bmw-gap);
  width: 100%;
  max-width: var(--bmw-container);
  margin-inline: auto;
}
.bmw-brand {
  font-family: var(--bmw-font-heading);
  font-size: 1.3rem;
  font-weight: var(--bmw-heading-weight);
  letter-spacing: var(--bmw-heading-tracking);
  color: var(--bmw-heading);
  text-decoration: none;
}
.bmw-brand:hover { text-decoration: none; }
.bmw-nav__links { display: flex; flex-wrap: wrap; gap: 1.75rem; align-items: center; }
.bmw-nav__links a {
  font-size: 0.97rem;
  font-weight: 500;
  color: var(--bmw-text);
  text-decoration: none;
}
.bmw-nav__links a:hover { color: var(--bmw-primary); }

/* --------------------------------------------------------------- footer --- */

.bmw-footer { padding-block: clamp(3rem, 5vw, 4.5rem); padding-inline: var(--bmw-gutter); }
.bmw-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: space-between;
  align-items: center;
  margin-top: 2.75rem;
  padding-top: 1.75rem;
  border-top: 1px solid rgba(148, 163, 184, 0.25);
  font-size: 0.9rem;
}
.bmw-footer a { color: inherit; opacity: 0.85; text-decoration: none; }
.bmw-footer a:hover { opacity: 1; text-decoration: underline; }
.bmw-footer ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.65rem; }

/* ------------------------------------------------------------ list items -- */

.bmw-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.85rem; }
.bmw-list li { display: flex; gap: 0.7rem; align-items: flex-start; }
.bmw-list li::before {
  content: "✓";
  flex: 0 0 auto;
  font-weight: 700;
  color: var(--bmw-primary);
}

/* A priced line item: name ...... price */
.bmw-priced { display: flex; align-items: baseline; gap: 0.75rem; }
.bmw-priced__name { font-family: var(--bmw-font-heading); font-weight: 600; color: var(--bmw-heading); }
.bmw-priced__dots { flex: 1 1 auto; border-bottom: 1px dotted var(--bmw-border); transform: translateY(-0.25rem); }
.bmw-priced__price { font-family: var(--bmw-font-heading); font-weight: 700; color: var(--bmw-primary); white-space: nowrap; }

/* Definition-style rows: label on the left, value on the right. */
.bmw-rows { display: flex; flex-direction: column; gap: 0.9rem; }
.bmw-rows__row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 0.9rem;
  border-bottom: 1px solid var(--bmw-border);
}
.bmw-rows__row:last-child { border-bottom: 0; padding-bottom: 0; }

/* ----------------------------------------------------------- responsive -- */

@media (max-width: 900px) {
  .bmw-grid--3, .bmw-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bmw-split { grid-template-columns: minmax(0, 1fr); }
  .bmw-split--reverse > :first-child { order: 0; }
}

@media (max-width: 640px) {
  .bmw-grid--2, .bmw-grid--3, .bmw-grid--4 { grid-template-columns: minmax(0, 1fr); }
  .bmw-nav { flex-wrap: wrap; }
  .bmw-nav__inner { flex-wrap: wrap; justify-content: center; text-align: center; }
  .bmw-nav__links { justify-content: center; gap: 1.1rem; }
  .bmw-footer__bottom { flex-direction: column; text-align: center; }
  .bmw-btn { width: 100%; }
  .bmw-cluster > .bmw-btn { width: auto; flex: 1 1 auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  * { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}


/* ---- section styles ---- */

/* Navbar — centered brand */
.bmw-nav--centered .bmw-nav__inner--centered {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
}
.bmw-nav--centered .bmw-nav__inner--centered > :last-child { justify-content: flex-end; }
.bmw-nav--centered .bmw-brand { text-align: center; white-space: nowrap; }
@media (max-width: 640px) {
  .bmw-nav--centered .bmw-nav__inner--centered { grid-template-columns: 1fr; justify-items: center; }
  .bmw-nav--centered .bmw-nav__inner--centered > :last-child { justify-content: center; }
  .bmw-nav--centered .bmw-brand { order: -1; margin-bottom: 0.35rem; }
}

/* Pricing — three tiers */
.bmw-tier { display: flex; flex-direction: column; gap: 0.9rem; }
.bmw-tier .bmw-badge { align-self: flex-start; }
.bmw-tier__price {
  margin: 0;
  font-family: var(--bmw-font-heading);
  font-size: clamp(2rem, 3.5vw, 2.6rem);
  font-weight: var(--bmw-heading-weight);
  letter-spacing: var(--bmw-heading-tracking);
  color: var(--bmw-heading);
}
.bmw-tier__unit { font-size: 0.95rem; font-weight: 400; color: var(--bmw-text-muted); margin-left: 0.35rem; }
.bmw-tier__cta { margin-top: auto; }
.bmw-tier--featured { border-color: var(--bmw-primary); box-shadow: var(--bmw-shadow-md); }

/* Gallery — full-bleed strip */
.bmw-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.bmw-strip .bmw-media { border-radius: 0; aspect-ratio: 4 / 3; }
@media (max-width: 640px) { .bmw-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Testimonial — single large */
.bmw-pullquote {
  margin: 0;
  font-family: var(--bmw-font-heading);
  font-size: clamp(1.5rem, 3.2vw, 2.25rem);
  font-weight: var(--bmw-heading-weight);
  line-height: 1.35;
  letter-spacing: var(--bmw-heading-tracking);
  color: #fff;
  text-wrap: balance;
}

/* FAQ — accordion */
.bmw-faq { display: flex; flex-direction: column; gap: 0.75rem; }
.bmw-faq__item {
  background: var(--bmw-surface);
  border: var(--bmw-border-width) solid var(--bmw-border);
  border-radius: var(--bmw-radius-lg);
  overflow: hidden;
}
.bmw-faq__q {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 1.35rem;
  font-family: var(--bmw-font-heading);
  font-size: 1.03rem;
  font-weight: 600;
  color: var(--bmw-heading);
  cursor: pointer;
  list-style: none;
}
.bmw-faq__q::-webkit-details-marker { display: none; }
.bmw-faq__q::after {
  content: "+";
  flex: 0 0 auto;
  font-size: 1.4rem;
  line-height: 1;
  color: var(--bmw-primary);
  transition: transform 0.2s ease;
}
.bmw-faq__item[open] .bmw-faq__q::after { transform: rotate(45deg); }
.bmw-faq__a { padding: 0 1.35rem 1.25rem; }

/* Newsletter signup */
.bmw-signup {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  max-width: 520px;
  margin: 2rem auto 0;
}
.bmw-signup .bmw-input { flex: 1 1 240px; width: auto; }
@media (max-width: 640px) { .bmw-signup .bmw-input, .bmw-signup .bmw-btn { flex: 1 1 100%; } }

/* ---- page overrides ---- */

#i720e{margin-inline:auto;}#iu6hp{margin-top:0.75rem;}#i6rgn{margin-top:0.25rem;}#ivngl{margin-inline:auto;}#i8na6{margin-top:clamp(2.5rem,5vw,4rem);}#ir794{margin-top:0.5rem;}#i9w6k{margin-top:0.5rem;}#courts{gap:clamp(3rem,6vw,5rem);}#ikvvf{margin-inline:auto;}#ipx5a{align-items:stretch;}#i9sunq{margin-top:1.5rem;}#ivp7un{margin-top:1.25rem;}#i9bg4j{margin-top:1.25rem;}#il1w0r{opacity:0.75;}#iu5q9m{text-align:left;}#i3g0ec{margin-top:2rem;}#iahz66{margin:0;}#if846j{margin:1rem auto 0;}#i1yhfq{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}#i1u60g{margin-top:1rem;}#iilqkh{margin-inline:auto;}#i8xcml{margin-top:1rem;}#iqbvtg{margin-top:1rem;}#ilztlb{gap:1rem;}#iv0hgq{margin:0;}#i683hb{gap:1.15rem;}#iodkrc{align-items:start;}#i6h4ea{color:#fff;}#i2a0nz{opacity:0.8;}#ipola5{margin-top:0.5rem;}#il0dy6{color:#fff;margin-bottom:1rem;}#igx43j{color:#fff;margin-bottom:1rem;}#i95tmj{color:#fff;margin-bottom:1rem;}

