/* ==========================================================================
   Prestige Rides — design system
   Tokens are verbatim from @prestige-rides/ds@0.1.0 (_ds_bundle.css).
   The pr-* component layer below reproduces the library's rendered markup as
   plain CSS so the site ships without React or the design-canvas runtime.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Tokens — 88 custom properties, scoped to .pr-root
   -------------------------------------------------------------------------- */

.pr-root {
  --pr-color-black: #181918;
  --pr-color-gold: #a79957;
  --pr-color-surface-base: #181918;
  --pr-color-surface-raised: #1f201e;
  --pr-color-surface-overlay: #262724;
  --pr-color-surface-sunken: #121312;
  --pr-color-surface-inverse: #f4f2ea;
  --pr-color-gold-bright: #c8b76d;
  --pr-color-gold-strong: #b8a862;
  --pr-color-gold-base: #a79957;
  --pr-color-gold-muted: #8a7e47;
  --pr-color-gold-dim: #5c5430;
  --pr-color-gold-ghost: rgba(167, 153, 87, .12);
  --pr-color-gold-veil: rgba(167, 153, 87, .06);
  --pr-color-text-primary: #f4f2ea;
  --pr-color-text-secondary: #b6b3a6;
  --pr-color-text-muted: #7d7a70;
  --pr-color-text-gold: #a79957;
  --pr-color-text-on-gold: #181918;
  --pr-color-text-inverse: #181918;
  --pr-color-border-subtle: rgba(244, 242, 234, .09);
  --pr-color-border-default: rgba(244, 242, 234, .16);
  --pr-color-border-gold: rgba(167, 153, 87, .42);
  --pr-color-border-gold-strong: #a79957;
  --pr-color-success: #6f9b6a;
  --pr-color-warning: #c8a24a;
  --pr-color-danger: #b4655c;
  --pr-color-info: #6f8a9b;

  --pr-font-display: "Playfair Display", Georgia, serif;
  --pr-font-body: "Poppins", system-ui, sans-serif;

  --pr-text-display-size: 4rem;
  --pr-text-display-line: 1.05;
  --pr-text-display-tracking: .02em;
  --pr-text-h1-size: 3rem;
  --pr-text-h1-line: 1.12;
  --pr-text-h1-tracking: .02em;
  --pr-text-h2-size: 2.25rem;
  --pr-text-h2-line: 1.18;
  --pr-text-h2-tracking: .02em;
  --pr-text-h3-size: 1.5rem;
  --pr-text-h3-line: 1.28;
  --pr-text-h3-tracking: .01em;
  --pr-text-body-lg-size: 1.125rem;
  --pr-text-body-lg-line: 1.65;
  --pr-text-body-size: 1rem;
  --pr-text-body-line: 1.65;
  --pr-text-body-sm-size: .875rem;
  --pr-text-body-sm-line: 1.6;
  --pr-text-caption-size: .75rem;
  --pr-text-caption-line: 1.5;
  --pr-text-eyebrow-size: .75rem;
  --pr-text-eyebrow-tracking: .28em;
  --pr-text-wordmark-tracking: .14em;

  --pr-weight-light: 300;
  --pr-weight-regular: 400;
  --pr-weight-medium: 500;
  --pr-weight-semibold: 600;
  --pr-weight-bold: 700;

  --pr-space-3xs: .125rem;
  --pr-space-2xs: .25rem;
  --pr-space-xs: .5rem;
  --pr-space-sm: .75rem;
  --pr-space-md: 1rem;
  --pr-space-lg: 1.5rem;
  --pr-space-xl: 2rem;
  --pr-space-2xl: 3rem;
  --pr-space-3xl: 4rem;
  --pr-space-4xl: 6rem;
  --pr-space-5xl: 8rem;

  --pr-radius-none: 0;
  --pr-radius-sm: 2px;
  --pr-radius-md: 4px;
  --pr-radius-lg: 8px;
  --pr-radius-pill: 999px;

  --pr-shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);
  --pr-shadow-md: 0 4px 16px rgba(0, 0, 0, .45);
  --pr-shadow-lg: 0 12px 40px rgba(0, 0, 0, .55);
  --pr-shadow-gold: 0 0 0 1px rgba(167, 153, 87, .35), 0 8px 28px rgba(0, 0, 0, .5);

  --pr-duration-fast: .12s;
  --pr-duration-base: .2s;
  --pr-duration-slow: .36s;
  --pr-ease-standard: cubic-bezier(.4, 0, .2, 1);
  --pr-ease-out: cubic-bezier(.16, 1, .3, 1);

  --pr-container-sm: 40rem;
  --pr-container-md: 56rem;
  --pr-container-lg: 72rem;
  --pr-container-xl: 80rem;

  --pr-focus-ring: 0 0 0 2px var(--pr-color-surface-base), 0 0 0 4px var(--pr-color-gold-base);
}

.pr-root[data-pr-surface="light"] {
  --pr-color-surface-base: #f4f2ea;
  --pr-color-surface-raised: #ffffff;
  --pr-color-surface-overlay: #ebe8dd;
  --pr-color-surface-sunken: #e2dfd2;
  --pr-color-surface-inverse: #181918;
  --pr-color-text-primary: #181918;
  --pr-color-text-secondary: #4a4941;
  --pr-color-text-muted: #6f6d63;
  --pr-color-text-gold: #7d7139;
  --pr-color-text-inverse: #f4f2ea;
  --pr-color-border-subtle: rgba(24, 25, 24, .1);
  --pr-color-border-default: rgba(24, 25, 24, .18);
}

/* Display type is set at desktop scale; step it down before it overflows. */
@media (max-width: 60em) {
  .pr-root {
    --pr-text-display-size: 3rem;
    --pr-text-h1-size: 2.375rem;
    --pr-text-h2-size: 1.875rem;
    --pr-text-h3-size: 1.3125rem;
    --pr-space-4xl: 4rem;
    --pr-space-3xl: 3rem;
  }
}

@media (max-width: 34em) {
  .pr-root {
    --pr-text-display-size: 2.375rem;
    --pr-text-h1-size: 2rem;
    --pr-text-h2-size: 1.625rem;
  }
}

/* --------------------------------------------------------------------------
   Root / reset
   -------------------------------------------------------------------------- */

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

.pr-root {
  /* Native date/time pickers and scrollbars need to know this is a dark UI. */
  color-scheme: dark;
  background: var(--pr-color-surface-base);
  color: var(--pr-color-text-primary);
  font-family: var(--pr-font-body);
  font-size: var(--pr-text-body-size);
  line-height: var(--pr-text-body-line);
  font-weight: var(--pr-weight-regular);
  -webkit-font-smoothing: antialiased;
}

.pr-root[data-pr-surface="light"] { color-scheme: light; }

.pr-root :focus-visible {
  outline: none;
  box-shadow: var(--pr-focus-ring);
  border-radius: var(--pr-radius-sm);
}

/* --------------------------------------------------------------------------
   Container
   -------------------------------------------------------------------------- */

.pr-container {
  width: 100%;
  margin-inline: auto;
  padding-inline: var(--pr-space-lg);
}

.pr-container--sm { max-width: calc(var(--pr-container-sm) + var(--pr-space-lg) * 2); }
.pr-container--md { max-width: calc(var(--pr-container-md) + var(--pr-space-lg) * 2); }
.pr-container--lg { max-width: calc(var(--pr-container-lg) + var(--pr-space-lg) * 2); }
.pr-container--xl { max-width: calc(var(--pr-container-xl) + var(--pr-space-lg) * 2); }
.pr-container--full { max-width: none; }

@media (min-width: 48em) {
  .pr-container { padding-inline: var(--pr-space-xl); }
  .pr-container--sm { max-width: calc(var(--pr-container-sm) + var(--pr-space-xl) * 2); }
  .pr-container--md { max-width: calc(var(--pr-container-md) + var(--pr-space-xl) * 2); }
  .pr-container--lg { max-width: calc(var(--pr-container-lg) + var(--pr-space-xl) * 2); }
  .pr-container--xl { max-width: calc(var(--pr-container-xl) + var(--pr-space-xl) * 2); }
}

/* --------------------------------------------------------------------------
   Section
   -------------------------------------------------------------------------- */

.pr-section {
  position: relative;
  background: var(--pr-color-surface-base);
  color: var(--pr-color-text-primary);
}

.pr-section--base { background: var(--pr-color-surface-base); }
.pr-section--raised { background: var(--pr-color-surface-raised); }
.pr-section--sunken { background: var(--pr-color-surface-sunken); }

.pr-section--gold {
  background: var(--pr-color-gold-base);
  color: var(--pr-color-text-on-gold);
}

.pr-section--compact { padding-block: var(--pr-space-2xl); }
.pr-section--normal { padding-block: var(--pr-space-3xl); }
.pr-section--spacious { padding-block: var(--pr-space-4xl); }

.pr-section--divided { border-top: 1px solid var(--pr-color-border-subtle); }

/* --------------------------------------------------------------------------
   Logo
   -------------------------------------------------------------------------- */

.pr-logo {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--pr-space-2xs);
  color: var(--pr-color-gold-base);
}

.pr-logo__mark { display: block; width: auto; height: 34px; }
.pr-logo--sm .pr-logo__mark { height: 26px; }
.pr-logo--lg .pr-logo__mark { height: 46px; }

.pr-logo__wordmark {
  font-family: var(--pr-font-display);
  font-weight: var(--pr-weight-medium);
  font-size: 1.25rem;
  line-height: 1.1;
  letter-spacing: var(--pr-text-wordmark-tracking);
  text-transform: uppercase;
  color: var(--pr-color-text-primary);
}

.pr-logo--sm .pr-logo__wordmark { font-size: 1rem; }
.pr-logo--lg .pr-logo__wordmark { font-size: 1.75rem; }

.pr-logo__tagline {
  font-family: var(--pr-font-body);
  font-size: var(--pr-text-caption-size);
  font-weight: var(--pr-weight-light);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--pr-color-text-muted);
}

/* --------------------------------------------------------------------------
   Button
   -------------------------------------------------------------------------- */

.pr-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--pr-space-xs);
  font-family: var(--pr-font-body);
  font-weight: var(--pr-weight-medium);
  letter-spacing: .1em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  border: 1px solid transparent;
  border-radius: var(--pr-radius-sm);
  cursor: pointer;
  transition:
    background var(--pr-duration-base) var(--pr-ease-standard),
    border-color var(--pr-duration-base) var(--pr-ease-standard),
    color var(--pr-duration-base) var(--pr-ease-standard);
}

.pr-button--sm { padding: .5rem 1rem; font-size: .6875rem; }
.pr-button--md { padding: .75rem 1.5rem; font-size: .75rem; }
.pr-button--lg { padding: .9375rem 2rem; font-size: .8125rem; }

.pr-button--full { width: 100%; }

.pr-button__icon { display: inline-flex; flex: none; }
.pr-button__icon svg { width: 1em; height: 1em; }

.pr-button--primary {
  background: var(--pr-color-gold-base);
  border-color: var(--pr-color-gold-base);
  color: var(--pr-color-text-on-gold);
}
.pr-button--primary:hover {
  background: var(--pr-color-gold-bright);
  border-color: var(--pr-color-gold-bright);
}

.pr-button--secondary {
  background: transparent;
  border-color: var(--pr-color-border-default);
  color: var(--pr-color-text-primary);
}
.pr-button--secondary:hover {
  border-color: var(--pr-color-border-gold-strong);
  color: var(--pr-color-text-gold);
}

.pr-button--ghost {
  background: transparent;
  border-color: transparent;
  color: var(--pr-color-text-gold);
}
.pr-button--ghost:hover { background: var(--pr-color-gold-ghost); }

.pr-button--inverse {
  background: var(--pr-color-surface-base);
  border-color: var(--pr-color-surface-base);
  color: var(--pr-color-text-primary);
}
.pr-button--inverse:hover {
  background: var(--pr-color-surface-overlay);
  border-color: var(--pr-color-surface-overlay);
}

.pr-button:disabled,
.pr-button[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }

/* On the gold band the ghost button needs ink, not gold-on-gold. */
.pr-section--gold .pr-button--ghost {
  color: var(--pr-color-text-on-gold);
  border-color: rgba(24, 25, 24, .32);
}
.pr-section--gold .pr-button--ghost:hover { background: rgba(24, 25, 24, .1); }

/* --------------------------------------------------------------------------
   PhoneCTA
   -------------------------------------------------------------------------- */

.pr-phone {
  display: inline-flex;
  align-items: center;
  gap: var(--pr-space-xs);
  font-family: var(--pr-font-body);
  color: var(--pr-color-text-primary);
  text-decoration: none;
  transition: color var(--pr-duration-base) var(--pr-ease-standard);
}

.pr-phone:hover { color: var(--pr-color-text-gold); }

.pr-phone__glyph {
  width: 1.15em;
  height: 1.15em;
  flex: none;
  color: var(--pr-color-gold-base);
}

.pr-phone__text { display: flex; flex-direction: column; line-height: 1.25; }

.pr-phone__label {
  font-size: var(--pr-text-caption-size);
  font-weight: var(--pr-weight-light);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--pr-color-text-muted);
}

.pr-phone__number { font-weight: var(--pr-weight-medium); letter-spacing: .02em; }

.pr-phone--sm { font-size: var(--pr-text-body-sm-size); }
.pr-phone--md { font-size: var(--pr-text-body-size); }
.pr-phone--lg { font-size: var(--pr-text-body-lg-size); }

.pr-phone--button {
  border: 1px solid var(--pr-color-border-gold);
  border-radius: var(--pr-radius-sm);
  padding: .6875rem 1.375rem;
}
.pr-phone--button.pr-phone--lg { padding: .8125rem 1.75rem; }
.pr-phone--button:hover {
  background: var(--pr-color-gold-ghost);
  border-color: var(--pr-color-border-gold-strong);
}

.pr-phone--block {
  width: 100%;
  border: 1px solid var(--pr-color-border-subtle);
  border-radius: var(--pr-radius-sm);
  padding: var(--pr-space-sm) var(--pr-space-md);
}
.pr-phone--block:hover { border-color: var(--pr-color-border-gold); }

/* --------------------------------------------------------------------------
   Card
   -------------------------------------------------------------------------- */

.pr-card {
  position: relative;
  display: block;
  border: 1px solid transparent;
  border-radius: var(--pr-radius-md);
  background: var(--pr-color-surface-raised);
  color: inherit;
  text-decoration: none;
}

.pr-card--outlined { border-color: var(--pr-color-border-subtle); }
.pr-card--raised { background: var(--pr-color-surface-overlay); box-shadow: var(--pr-shadow-md); }
.pr-card--plain { background: transparent; }

.pr-card--gold {
  background: var(--pr-color-surface-overlay);
  border-color: var(--pr-color-border-gold);
  box-shadow: var(--pr-shadow-gold);
}

.pr-card--pad-none { padding: 0; }
.pr-card--pad-xs { padding: var(--pr-space-sm); }
.pr-card--pad-sm { padding: var(--pr-space-md); }
.pr-card--pad-md { padding: var(--pr-space-lg); }
.pr-card--pad-lg { padding: var(--pr-space-xl); }
.pr-card--pad-xl { padding: var(--pr-space-2xl); }

.pr-card--interactive {
  transition:
    border-color var(--pr-duration-base) var(--pr-ease-standard),
    transform var(--pr-duration-base) var(--pr-ease-standard);
}
.pr-card--interactive:hover {
  border-color: var(--pr-color-border-gold);
  transform: translateY(-2px);
}

/* --------------------------------------------------------------------------
   SectionHeading
   -------------------------------------------------------------------------- */

.pr-heading {
  display: flex;
  flex-direction: column;
  gap: var(--pr-space-sm);
}

.pr-heading--center { align-items: center; text-align: center; }
.pr-heading--end { align-items: flex-end; text-align: right; }

.pr-heading__eyebrow {
  font-family: var(--pr-font-body);
  font-size: var(--pr-text-eyebrow-size);
  font-weight: var(--pr-weight-medium);
  letter-spacing: var(--pr-text-eyebrow-tracking);
  text-transform: uppercase;
  color: var(--pr-color-text-gold);
}

.pr-heading__ornament {
  display: block;
  width: 72px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--pr-color-gold-base), transparent);
}
.pr-heading--start .pr-heading__ornament {
  background: linear-gradient(90deg, var(--pr-color-gold-base), transparent);
}

.pr-heading__title {
  margin: 0;
  font-family: var(--pr-font-display);
  font-weight: var(--pr-weight-regular);
  color: var(--pr-color-text-primary);
  max-width: 22ch;
}
.pr-heading--center .pr-heading__title { max-width: 26ch; }

.pr-heading__title--h1 {
  font-size: var(--pr-text-h1-size);
  line-height: var(--pr-text-h1-line);
  letter-spacing: var(--pr-text-h1-tracking);
}
.pr-heading__title--h2 {
  font-size: var(--pr-text-h2-size);
  line-height: var(--pr-text-h2-line);
  letter-spacing: var(--pr-text-h2-tracking);
}
.pr-heading__title--h3 {
  font-size: var(--pr-text-h3-size);
  line-height: var(--pr-text-h3-line);
  letter-spacing: var(--pr-text-h3-tracking);
}

.pr-heading__description {
  margin: 0;
  max-width: 62ch;
  font-family: var(--pr-font-body);
  font-size: var(--pr-text-body-lg-size);
  line-height: var(--pr-text-body-lg-line);
  font-weight: var(--pr-weight-light);
  color: var(--pr-color-text-secondary);
}

/* --------------------------------------------------------------------------
   FeatureList
   -------------------------------------------------------------------------- */

.pr-features {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--pr-space-sm);
}

.pr-features--cols-2 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.pr-features--cols-3 { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }

.pr-features__item {
  display: flex;
  align-items: flex-start;
  gap: var(--pr-space-sm);
}

.pr-features__marker {
  flex: none;
  color: var(--pr-color-gold-base);
  line-height: var(--pr-text-body-line);
}

.pr-features__text {
  font-family: var(--pr-font-body);
  font-size: var(--pr-text-body-size);
  line-height: var(--pr-text-body-line);
  font-weight: var(--pr-weight-light);
  color: var(--pr-color-text-secondary);
}

/* --------------------------------------------------------------------------
   ServiceCard
   -------------------------------------------------------------------------- */

.pr-service {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--pr-space-sm);
  padding: var(--pr-space-xl);
  border: 1px solid var(--pr-color-border-subtle);
  border-radius: var(--pr-radius-md);
  background: var(--pr-color-surface-raised);
  color: inherit;
  text-decoration: none;
  transition:
    border-color var(--pr-duration-base) var(--pr-ease-standard),
    transform var(--pr-duration-base) var(--pr-ease-standard);
}

.pr-service--linked:hover {
  border-color: var(--pr-color-border-gold);
  transform: translateY(-2px);
}

.pr-service--featured {
  border-color: var(--pr-color-border-gold);
  box-shadow: var(--pr-shadow-gold);
}

.pr-service__tag {
  position: absolute;
  top: var(--pr-space-md);
  right: var(--pr-space-md);
  font-size: var(--pr-text-caption-size);
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--pr-color-text-gold);
}

.pr-service__icon {
  display: block;
  width: 36px;
  height: 36px;
  margin-bottom: var(--pr-space-xs);
  color: var(--pr-color-gold-base);
}
.pr-service__icon svg { width: 100%; height: 100%; }

.pr-service__title {
  margin: 0;
  font-family: var(--pr-font-display);
  font-size: var(--pr-text-h3-size);
  line-height: var(--pr-text-h3-line);
  font-weight: var(--pr-weight-regular);
  color: var(--pr-color-text-primary);
}

.pr-service__description {
  margin: 0;
  font-family: var(--pr-font-body);
  font-size: var(--pr-text-body-size);
  line-height: var(--pr-text-body-line);
  font-weight: var(--pr-weight-light);
  color: var(--pr-color-text-secondary);
}

.pr-service__points {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--pr-space-2xs);
  font-size: var(--pr-text-body-sm-size);
  color: var(--pr-color-text-secondary);
}
.pr-service__points li { padding-left: var(--pr-space-md); position: relative; }
.pr-service__points li::before {
  content: "\2022";
  position: absolute;
  left: 0;
  color: var(--pr-color-gold-base);
}

.pr-service__price {
  margin-top: auto;
  padding-top: var(--pr-space-sm);
  font-size: var(--pr-text-body-sm-size);
  letter-spacing: .06em;
  color: var(--pr-color-text-gold);
}

/* When the price slot carries the card's call to action, keep it restrained
   until hover — the design language reserves gold for accents, not decoration. */
a.pr-service__price { text-decoration: none; }
a.pr-service__price:hover { text-decoration: underline; }

/* --------------------------------------------------------------------------
   Forms — FormField / Input / Select / Textarea
   -------------------------------------------------------------------------- */

.pr-field {
  display: flex;
  flex-direction: column;
  gap: var(--pr-space-2xs);
}

.pr-field__label {
  font-family: var(--pr-font-body);
  font-size: var(--pr-text-body-sm-size);
  letter-spacing: .02em;
  color: var(--pr-color-text-secondary);
}

.pr-field__required { color: var(--pr-color-gold-base); margin-left: 2px; }

.pr-field__control { display: block; }

.pr-field__hint,
.pr-field__error {
  margin: 0;
  font-family: var(--pr-font-body);
  font-size: var(--pr-text-caption-size);
  line-height: var(--pr-text-caption-line);
}

.pr-field__hint { color: var(--pr-color-text-muted); }
.pr-field__error { color: var(--pr-color-danger); }

.pr-input,
.pr-select__control,
.pr-textarea {
  width: 100%;
  font-family: var(--pr-font-body);
  font-size: var(--pr-text-body-size);
  line-height: 1.4;
  color: var(--pr-color-text-primary);
  background: var(--pr-color-surface-base);
  border: 1px solid var(--pr-color-border-default);
  border-radius: var(--pr-radius-sm);
  padding: .6875rem var(--pr-space-md);
  transition:
    border-color var(--pr-duration-base) var(--pr-ease-standard),
    box-shadow var(--pr-duration-base) var(--pr-ease-standard);
}

.pr-input::placeholder,
.pr-textarea::placeholder { color: var(--pr-color-text-muted); }

.pr-input:focus,
.pr-select__control:focus,
.pr-textarea:focus {
  outline: none;
  border-color: var(--pr-color-gold-base);
  box-shadow: 0 0 0 1px var(--pr-color-gold-base);
}

.pr-input:disabled,
.pr-select__control:disabled,
.pr-textarea:disabled { opacity: .45; cursor: not-allowed; }

.pr-input--sm { padding: .5rem var(--pr-space-sm); font-size: var(--pr-text-body-sm-size); }
.pr-input--lg { padding: .875rem var(--pr-space-lg); font-size: var(--pr-text-body-lg-size); }

.pr-input--invalid,
.pr-select__control--invalid,
.pr-textarea--invalid { border-color: var(--pr-color-danger); }

.pr-input--invalid:focus,
.pr-select__control--invalid:focus,
.pr-textarea--invalid:focus {
  border-color: var(--pr-color-danger);
  box-shadow: 0 0 0 1px var(--pr-color-danger);
}

.pr-select { position: relative; display: block; }

.pr-select__control {
  appearance: none;
  -webkit-appearance: none;
  padding-right: var(--pr-space-2xl);
  cursor: pointer;
}

.pr-select__control option {
  background: var(--pr-color-surface-overlay);
  color: var(--pr-color-text-primary);
}

.pr-select__chevron {
  position: absolute;
  right: var(--pr-space-md);
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 8px;
  color: var(--pr-color-gold-base);
  pointer-events: none;
}

.pr-textarea { resize: vertical; min-height: 6rem; line-height: var(--pr-text-body-line); }

/* --------------------------------------------------------------------------
   Header
   -------------------------------------------------------------------------- */

.pr-header {
  background: var(--pr-color-surface-base);
  color: var(--pr-color-text-primary);
}

.pr-header--sticky { position: sticky; top: 0; z-index: 60; }

.pr-header__inner {
  display: flex;
  align-items: center;
  gap: var(--pr-space-lg);
  padding-block: var(--pr-space-lg);
}

.pr-header__brand { flex: none; text-decoration: none; }

.pr-header__nav {
  display: flex;
  align-items: center;
  gap: var(--pr-space-lg);
  margin-inline: auto;
}

.pr-header__link {
  font-family: var(--pr-font-body);
  font-size: var(--pr-text-body-sm-size);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--pr-color-text-secondary);
  text-decoration: none;
  transition: color var(--pr-duration-base) var(--pr-ease-standard);
}
.pr-header__link:hover,
.pr-header__link--active { color: var(--pr-color-text-gold); }

.pr-header__actions {
  display: flex;
  align-items: center;
  gap: var(--pr-space-md);
  flex: none;
}

.pr-header__toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  padding: 0 10px;
  background: transparent;
  border: 1px solid var(--pr-color-border-default);
  border-radius: var(--pr-radius-sm);
  cursor: pointer;
}

.pr-header__toggle-bar {
  display: block;
  height: 1px;
  background: var(--pr-color-text-primary);
  transition: transform var(--pr-duration-base) var(--pr-ease-standard),
              opacity var(--pr-duration-base) var(--pr-ease-standard);
}

.pr-header--open .pr-header__toggle-bar:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.pr-header--open .pr-header__toggle-bar:nth-child(2) { opacity: 0; }
.pr-header--open .pr-header__toggle-bar:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.pr-header__drawer {
  display: none;
  flex-direction: column;
  gap: var(--pr-space-md);
  padding: var(--pr-space-lg);
  border-top: 1px solid var(--pr-color-border-subtle);
  background: var(--pr-color-surface-base);
}

.pr-header--open .pr-header__drawer { display: flex; }

.pr-header__drawer-link {
  font-family: var(--pr-font-body);
  font-size: var(--pr-text-body-size);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--pr-color-text-secondary);
  text-decoration: none;
}
.pr-header__drawer-link:hover { color: var(--pr-color-text-gold); }

@media (max-width: 64em) {
  .pr-header__nav,
  .pr-header__phone { display: none; }
  .pr-header__toggle { display: flex; }
  .pr-header__inner { justify-content: space-between; }
  .pr-header__actions { margin-left: auto; }
}

@media (max-width: 30em) {
  .pr-header__actions .pr-button { display: none; }
}

/* --------------------------------------------------------------------------
   Footer
   -------------------------------------------------------------------------- */

.pr-footer {
  background: var(--pr-color-surface-sunken);
  color: var(--pr-color-text-secondary);
  border-top: 1px solid var(--pr-color-border-subtle);
  padding-block: var(--pr-space-3xl) var(--pr-space-xl);
}

.pr-footer__top {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) 2fr;
  gap: var(--pr-space-3xl);
}

@media (max-width: 60em) {
  .pr-footer__top { grid-template-columns: 1fr; gap: var(--pr-space-2xl); }
}

.pr-footer__brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--pr-space-md);
}

.pr-footer__area {
  margin: 0;
  font-size: var(--pr-text-body-sm-size);
  font-weight: var(--pr-weight-light);
  color: var(--pr-color-text-muted);
  max-width: 30ch;
}

.pr-footer__phone { align-self: stretch; max-width: 20rem; }

.pr-footer__groups {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: var(--pr-space-lg) var(--pr-space-md);
}

.pr-footer__group-title {
  margin: 0 0 var(--pr-space-sm);
  font-family: var(--pr-font-body);
  font-size: var(--pr-text-caption-size);
  font-weight: var(--pr-weight-medium);
  letter-spacing: var(--pr-text-eyebrow-tracking);
  text-transform: uppercase;
  color: var(--pr-color-text-gold);
}

.pr-footer__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--pr-space-xs);
}

.pr-footer__link {
  font-size: var(--pr-text-body-sm-size);
  font-weight: var(--pr-weight-light);
  color: var(--pr-color-text-secondary);
  text-decoration: none;
  transition: color var(--pr-duration-base) var(--pr-ease-standard);
}
.pr-footer__link:hover { color: var(--pr-color-text-gold); }

.pr-footer__bottom {
  margin-top: var(--pr-space-2xl);
  padding-top: var(--pr-space-lg);
  border-top: 1px solid var(--pr-color-border-subtle);
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: var(--pr-space-md);
}

.pr-footer__legal,
.pr-footer__tagline {
  margin: 0;
  font-size: var(--pr-text-caption-size);
  color: var(--pr-color-text-muted);
}

.pr-footer__tagline {
  font-family: var(--pr-font-display);
  font-style: italic;
  color: var(--pr-color-text-gold);
}

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */

.pr-hero {
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  background: var(--pr-color-surface-sunken);
  color: var(--pr-color-text-primary);
  padding-block: var(--pr-space-4xl);
}

.pr-hero--short { min-height: 46vh; }
.pr-hero--tall { min-height: 78vh; }
.pr-hero--full { min-height: 100vh; }

.pr-hero__scrim {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: var(--pr-color-surface-sunken);
}

.pr-hero__inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--pr-space-md);
}

.pr-hero--center .pr-hero__inner { align-items: center; text-align: center; }

.pr-hero__eyebrow {
  font-family: var(--pr-font-body);
  font-size: var(--pr-text-eyebrow-size);
  font-weight: var(--pr-weight-medium);
  letter-spacing: var(--pr-text-eyebrow-tracking);
  text-transform: uppercase;
  color: var(--pr-color-text-gold);
}

.pr-hero__title {
  margin: 0;
  max-width: 17ch;
  font-family: var(--pr-font-display);
  font-size: var(--pr-text-display-size);
  line-height: var(--pr-text-display-line);
  letter-spacing: var(--pr-text-display-tracking);
  font-weight: var(--pr-weight-regular);
  color: var(--pr-color-text-primary);
}

.pr-hero__subtitle {
  margin: 0;
  max-width: 54ch;
  font-family: var(--pr-font-body);
  font-size: var(--pr-text-body-lg-size);
  line-height: var(--pr-text-body-lg-line);
  font-weight: var(--pr-weight-light);
  color: var(--pr-color-text-secondary);
}

.pr-hero__actions { margin-top: var(--pr-space-md); }
.pr-hero__extra { width: 100%; }
