/* Costalegre appearance layer — Antigua blue-hour palette. */
:root {
  color-scheme: dark;
  --lvc-accent: #6A91FB;
  --lvc-accent-rgb: 106 145 251;
  --lvc-accent-hover: #92AEFC;
  --lvc-accent-bright: #92AEFC;
  --lvc-accent-soft: rgba(106,145,251,.10);
  --lvc-accent-ink: #05080F;
  --lvc-border-gold: rgba(106,145,251,.24);
  --lvc-action-shadow: 0 10px 28px rgb(0 0 0 / .28), 0 0 0 1px rgb(var(--lvc-accent-rgb) / .2);
}

html[data-lvc-theme='light'] {
  color-scheme: light;
  --lvc-bg: #EEF2FA;
  --lvc-bg-alt: #F7F9FD;
  --lvc-card: #FFFFFF;
  --lvc-border: rgba(14,19,48,.14);
  --lvc-border-gold: rgba(37,82,217,.30);
  --lvc-text: #0B1326;
  --lvc-soft: #2F3A5C;
  --lvc-muted: #525C78;
  --lvc-accent: #2552D9;
  --lvc-accent-rgb: 37 82 217;
  --lvc-accent-hover: #1C40B0;
  --lvc-accent-bright: #2F63F0;
  --lvc-accent-soft: rgba(37,82,217,.08);
  --lvc-accent-ink: #FFFFFF;
  --lvc-gold: #2552D9;
  --lvc-gold-hover: #1C40B0;
  --lvc-gold-soft: rgba(37,82,217,.08);
  --lvc-action-shadow: 0 10px 28px rgb(14 19 48 / .16), 0 0 0 1px rgb(var(--lvc-accent-rgb) / .18);
}

html { scrollbar-color: var(--lvc-accent) var(--lvc-bg-alt); }
body { caret-color: var(--lvc-accent); }
::selection { background: var(--lvc-accent); color: var(--lvc-accent-ink); }
::-moz-selection { background: var(--lvc-accent); color: var(--lvc-accent-ink); }

/* Flatter interactions: lift and a restrained edge replace the former halo. */
.lvc-btn:hover,
.lvc-btn:focus-visible,
.lvc-fbar__submit:hover,
.lvc-fbar__submit:focus-visible { box-shadow: var(--lvc-action-shadow); }
.lvc-btn--ghost:hover,
.lvc-btn--ghost:focus-visible { box-shadow: 0 8px 24px rgb(0 0 0 / .18); }
.lvc-card:hover,
.lvc-card:focus-within { box-shadow: 0 20px 46px rgb(0 0 0 / .22); }
.lvc-tile:hover,
.lvc-tile:focus-within { box-shadow: 0 18px 42px rgb(0 0 0 / .2); }
.lvc-magcard:hover,
.lvc-magcard:focus-within { box-shadow: 0 16px 40px rgb(0 0 0 / .16); }

/* Appearance control. */
.lvc-appearance { position: relative; flex: 0 0 auto; }
.lvc-appearance__summary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 46px;
  min-height: 46px;
  padding: 0;
  border: 1px solid var(--lvc-border);
  border-radius: var(--lvc-radius);
  color: var(--lvc-text);
  background: transparent;
  cursor: pointer;
  list-style: none;
  transition: border-color .2s ease, background .2s ease, color .2s ease;
}
.lvc-appearance__summary::-webkit-details-marker { display: none; }
.lvc-appearance__summary:hover,
.lvc-appearance__summary:focus-visible,
.lvc-appearance[open] .lvc-appearance__summary { border-color: var(--lvc-border-gold); background: var(--lvc-accent-soft); }
.lvc-appearance__summary:focus-visible { outline: 2px solid var(--lvc-accent); outline-offset: 3px; }
.lvc-appearance__icon { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.lvc-appearance__icon--sun { display: none; }
html[data-lvc-theme='light'] .lvc-appearance__icon--sun { display: block; }
html[data-lvc-theme='light'] .lvc-appearance__icon--moon { display: none; }
.lvc-appearance__summary-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.lvc-appearance__panel {
  position: absolute;
  top: calc(100% + .7rem);
  right: 0;
  z-index: 90;
  display: grid;
  gap: .2rem;
  width: 168px;
  margin: 0;
  padding: .55rem;
  border: 1px solid var(--lvc-border);
  border-radius: 12px;
  background: var(--lvc-card);
  box-shadow: 0 18px 50px rgb(0 0 0 / .28);
  animation: lvc-appearance-in .18s cubic-bezier(.16,1,.3,1) both;
}
.lvc-appearance__panel legend { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.lvc-appearance__option { position: relative; display: flex; align-items: center; min-height: 40px; padding: .55rem .7rem .55rem 2rem; color: var(--lvc-soft); font-size: .82rem; cursor: pointer; }
.lvc-appearance__option:hover { color: var(--lvc-text); background: var(--lvc-accent-soft); }
.lvc-appearance__option input { position: absolute; left: .7rem; width: 13px; height: 13px; margin: 0; accent-color: var(--lvc-accent); }
.lvc-appearance__option:has(input:checked) { color: var(--lvc-text); font-weight: 600; }
@keyframes lvc-appearance-in { from { opacity: .75; transform: translateY(-4px); filter: blur(2px); } to { opacity: 1; transform: none; filter: none; } }

/* Light-mode shared chrome and forms. */
html[data-lvc-theme='light'] .lvc-header { background: rgba(247,249,253,.94); box-shadow: 0 1px 0 rgba(14,19,48,.08); }
html[data-lvc-theme='light'] .lvc-mega,
html[data-lvc-theme='light'] .lvc-nav__list .sub-menu,
html[data-lvc-theme='light'] .lvc-drawer { background: #F7F9FD; }
html[data-lvc-theme='light'] .lvc-fbar__inner { background: rgba(255,255,255,.97); box-shadow: 0 18px 50px rgba(14,19,48,.14); backdrop-filter: none; }
html[data-lvc-theme='light'] .lvc-fbar__input[type='date']::-webkit-calendar-picker-indicator { filter: none; }
html[data-lvc-theme='light'] .lvc-footer { background: #F7F9FD; }
html[data-lvc-theme='light'] input,
html[data-lvc-theme='light'] select,
html[data-lvc-theme='light'] textarea { color-scheme: light; }

/* Photographic surfaces keep their own dark contrast system in either mode. */
html[data-lvc-theme='light'] .lvc-hero,
html[data-lvc-theme='light'] .lvc-article__hero,
html[data-lvc-theme='light'] .lvc-lander,
html[data-lvc-theme='light'] .lvc-tile:not(.lvc-tile--text),
html[data-lvc-theme='light'] .lvc-magfeature__card:not(.lvc-magfeature__card--text) {
  --lvc-text: #FBFBFB;
  --lvc-soft: rgba(251,251,251,.80);
  --lvc-muted: #B9C3D6;
  --lvc-accent: #6A91FB;
  --lvc-accent-rgb: 106 145 251;
  --lvc-accent-hover: #92AEFC;
  --lvc-accent-bright: #92AEFC;
  --lvc-accent-soft: rgba(106,145,251,.10);
  --lvc-accent-ink: #05080F;
  --lvc-gold: #6A91FB;
  --lvc-gold-hover: #92AEFC;
  --lvc-gold-soft: rgba(106,145,251,.10);
  --lvc-border: rgba(255,255,255,.14);
  --lvc-border-gold: rgba(106,145,251,.24);
}

/* Keep ghost actions legible on photography when the page itself is light. */
html[data-lvc-theme='light'] :is(
  .lvc-hero,
  .lvc-article__hero,
  .lvc-lander,
  .lvc-tile:not(.lvc-tile--text),
  .lvc-magfeature__card:not(.lvc-magfeature__card--text)
) .lvc-btn--ghost {
  color: #6A91FB;
  border-color: #6A91FB;
}
html[data-lvc-theme='light'] :is(
  .lvc-hero,
  .lvc-article__hero,
  .lvc-lander,
  .lvc-tile:not(.lvc-tile--text),
  .lvc-magfeature__card:not(.lvc-magfeature__card--text)
) .lvc-btn--ghost:is(:hover, :focus-visible) {
  color: #92AEFC;
  border-color: #92AEFC;
}

/* Villa templates map their local palette back to the shared appearance. */
html[data-lvc-theme='light'] .pmvr-property {
  --pmvr-card-hover: #FFFFFF;
  --pmvr-accent-bg: rgba(37,82,217,.06);
  --pmvr-soft: #525C78;
  --pmvr-glow: rgba(37,82,217,.10);
  --pmvr-on-accent: #FFFFFF;
}
html[data-lvc-theme='light'] .pmvr-sticky-bar,
html[data-lvc-theme='light'] .pmvr-mobile-cta {
  --pmvr-accent: #2552D9;
  --pmvr-accent-l: #1C40B0;
  --pmvr-accent-d: #1C40B0;
  --pmvr-accent-bg: rgba(37,82,217,.06);
  --pmvr-text: #0B1326;
  --pmvr-muted: #2F3A5C;
  --pmvr-soft: #525C78;
  --pmvr-on-accent: #FFFFFF;
  --pmvr-sticky-ink: #0B1326;
  --pmvr-sticky-spec: #2552D9;
  --pmvr-sticky-sep: rgba(37,82,217,.28);
  background: rgba(245,246,251,.96);
}
html[data-lvc-theme='light'] .pmvr-property .pmvr-about__panels,
html[data-lvc-theme='light'] .pmvr-property .pmvr-dest-card {
  background: var(--pmvr-card);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: 0 18px 48px rgb(21 21 21 / .12);
}
html[data-lvc-theme='light'] .pmvr-property .pmvr-dest-card {
  box-shadow: 0 18px 48px rgb(21 21 21 / .16);
}
html[data-lvc-theme='light'] .pmvr-sim-card__body { background: var(--pmvr-card); }
html[data-lvc-theme='light'] .pmvr-sim-card__name { color: var(--pmvr-text); }
html[data-lvc-theme='light'] .pmvr-sim-card__loc,
html[data-lvc-theme='light'] .pmvr-sim-card__specs { color: var(--pmvr-soft); }
html[data-lvc-theme='light'] .pmvr-sim-card__footer { border-top-color: var(--pmvr-border); }
html[data-lvc-theme='light'] .pmvr-sim-card:hover { box-shadow: 0 16px 48px rgba(14,19,48,.14), 0 0 0 1px rgba(37,82,217,.12); }
html[data-lvc-theme='light'] .pmvr-sticky-bar__name { text-shadow: none; }
html[data-lvc-theme='light'] .pmvr-hero {
  --pmvr-bg: #000000;
  --pmvr-bg2: #050505;
  --pmvr-bg3: #0A0A0A;
  --pmvr-card: #11181F;
  --pmvr-card-hover: #161E26;
  --pmvr-card-2: #0F151C;
  --pmvr-accent: #6A91FB;
  --pmvr-accent-rgb: 106 145 251;
  --pmvr-accent-l: #92AEFC;
  --pmvr-accent-d: #2A4FBF;
  --pmvr-accent-dim: rgba(106,145,251,.10);
  --pmvr-accent-bg: rgba(106,145,251,.06);
  --pmvr-text: #F5F7FA;
  --pmvr-muted: #9CA8B5;
  --pmvr-soft: #6B7480;
  --pmvr-border: rgba(255,255,255,.08);
  --pmvr-border-a: rgba(106,145,251,.18);
  --pmvr-glow: rgba(106,145,251,.13);
  --pmvr-on-accent: #05080F;
}
html[data-lvc-theme='light'] .pmvr-btn--primary {
  background: #2552D9;
  border-color: #2552D9;
  color: #FFFFFF;
}
html[data-lvc-theme='light'] .pmvr-btn--primary:hover,
html[data-lvc-theme='light'] .pmvr-btn--primary:focus-visible {
  background: #1C40B0;
  border-color: #1C40B0;
}
html[data-lvc-theme='light'] .pmvr-about__arrow:hover,
html[data-lvc-theme='light'] .pmvr-about__arrow:focus,
html[data-lvc-theme='light'] .pmvr-gallery__more:hover { color: #FFFFFF; }

/* Preserve D-037's one-line header budget after adding the 46px control. */
@media (min-width: 1180px) and (max-width: 1359px) {
  .lvc-header__actions .lvc-btn--ghost { display: none; }
}

@media (max-width: 1179px) {
  .lvc-drawer .lvc-appearance { margin-top: 1.4rem; padding-top: 1.4rem; border-top: 1px solid var(--lvc-border); }
  .lvc-drawer .lvc-appearance__summary { width: 100%; justify-content: flex-start; gap: .7rem; padding: 0 .85rem; }
  .lvc-drawer .lvc-appearance__summary-label { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; }
  .lvc-drawer .lvc-appearance__panel { position: static; width: 100%; margin-top: .55rem; box-shadow: none; }
}

@media (prefers-reduced-motion: reduce) {
  .lvc-appearance__panel { animation: none; }
}
