/* =================================================================
   MalagaPhoto — main.css
   Bootstrap 5 + custom design system (Cormorant Garamond + Manrope)
   ================================================================= */

/* Fonts */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400;1,500&family=Manrope:wght@400;500;600&display=swap');

/* ── CSS Variables ────────────────────────────────────────────── */
:root {
  --ink:   #111111;
  --bone:  #fafafa;
  --surface: #ffffff;
  --muted:  #666666;
  --muted2: #999999;
  --sand:   #f0ede8;
  --line:   #eaeaea;
  --accent: #e6e4e0;
  --radius: 6px;
}

/* ── Reset / Base ─────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html {
  background: var(--bone);
  color: var(--ink);
  scroll-behavior: smooth;
  overflow-x: hidden;
  scrollbar-gutter: stable;
}
body { background: var(--bone); color: var(--ink); overflow-x: hidden; }
@supports not (scrollbar-gutter: stable) {
  html { overflow-y: scroll; }
}
body {
  font-family: 'Manrope', system-ui, sans-serif;
  font-size: 15px;
  -webkit-font-smoothing: antialiased;
  margin: 0;
}
::selection { background: var(--ink); color: var(--bone); }

.mobile-temporary-unavailable {
  display: none !important;
}

.nav-mobile-home,
.nav-mobile-burger,
.nav-mobile-menu,
.photog-mobile-line {
  display: none;
}

h1, h2, h3, h4, .font-serif {
  font-family: 'Cormorant Garamond', Georgia, serif;
  font-weight: 500;
  letter-spacing: -0.01em;
}

a { color: inherit; text-decoration: none; }
a:hover { color: var(--ink); }
img { display: block; max-width: 100%; }

input::placeholder,
textarea::placeholder,
select::placeholder,
.form-control::placeholder,
.form-select::placeholder {
  color: rgba(17,17,17,.34) !important;
  opacity: 1;
}

/* ── Typography helpers ───────────────────────────────────────── */
.kicker {
  font-family: 'Manrope', sans-serif;
  font-size: 0.7rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.32em;
  color: var(--muted);
}
.h-display {
  font-size: clamp(2.4rem, 7vw, 5rem);
  line-height: 0.96;
  letter-spacing: -0.015em;
}
.h-section {
  font-size: clamp(1.8rem, 4vw, 3rem);
  line-height: 1.05;
  letter-spacing: -0.01em;
}
.text-ink    { color: var(--ink); }
.text-muted  { color: var(--muted); }
.text-muted2 { color: var(--muted2); }

/* ── Layout helpers ───────────────────────────────────────────── */
.mp-container { max-width: 1440px; margin: 0 auto; padding: 0 3rem; }
@media (max-width: 768px) { .mp-container { padding: 0 1.5rem; } }

.border-top { border-top: 1px solid var(--line); }
.border-bottom { border-bottom: 1px solid var(--line); }

/* ── Navbar ───────────────────────────────────────────────────── */
#mp-navbar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  backdrop-filter: blur(12px);
  background: rgba(250,250,250,0.82);
  border-bottom: 1px solid var(--line);
  height: 64px;
}
#mp-navbar .nav-inner {
  position: relative;
  max-width: 1440px; margin: 0 auto;
  padding: 0 3rem; height: 64px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
}
#mp-navbar .nav-left {
  display: flex;
  align-items: center;
  gap: 0;
  min-width: 0;
  justify-self: start;
  grid-column: 1;
  position: relative;
  z-index: 2;
}
@media (max-width: 991px) {
  #mp-navbar .nav-inner {
    gap: 1rem;
  }
}
@media (max-width: 1240px) {
  #mp-navbar .nav-title,
  #mp-navbar .nav-search {
    display: none !important;
  }
}
@media (max-width: 768px) { #mp-navbar .nav-inner { padding: 0 1.5rem; } }

#mp-navbar .mp-logo {
  display: none !important;
}
#mp-navbar .nav-links {
  gap: 1.5rem;
}

/* ── Navbar logo ─────────────────────────────────────────────── */
.mp-logo {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  cursor: pointer;
  text-decoration: none;
  gap: 0;
  overflow: visible;
  min-width: 190px;
}

/* Ephesis — thin airy signature, matches reference */
.mp-logo-text {
  font-family: 'Ephesis', 'Dancing Script', cursive;
  font-size: 2.25rem;
  font-weight: 400;
  color: var(--ink);
  letter-spacing: .02em;
  line-height: 1.1;
  display: block;
  clip-path: none;
  animation: none;
}

/* Flourish: single thin arc matching reference underline */
.mp-logo-flourish {
  display: block;
  width: 108%;
  height: 14px;
  margin-top: -4px;
  margin-left: -2px;
  overflow: visible;
}
.mp-logo-flourish path {
  fill: none;
  stroke: var(--ink);
  stroke-width: 0.9;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .5;
  stroke-dasharray: none;
  stroke-dashoffset: 0;
  animation: none;
}

/* ── Footer brand lockup ─────────────────────────────────────── */
.site-footer {
  position: relative;
  border-top: 0;
}
.site-footer::before {
  content: none;
}

.footer-logo-wrap {
  position: relative;
  display: inline-block;
  overflow: visible;
  line-height: 1.05;
  margin-top: -3.8rem;
  margin-bottom: .6rem;
  padding: 0 .9rem;
  isolation: isolate;
  z-index: 1;
}
.footer-logo-wrap::before {
  content: "";
  position: absolute;
  top: 50%;
  right: calc(100% + 1.1rem);
  width: 100vw;
  height: 1px;
  transform: translateY(-50%);
  pointer-events: none;
  background: linear-gradient(
    90deg,
    rgba(234,234,234,.92) 0%,
    rgba(234,234,234,.92) calc(100% - 5rem),
    rgba(234,234,234,0) 100%
  );
  z-index: 0;
}
.footer-logo-wrap::after {
  content: "";
  position: absolute;
  top: 50%;
  left: calc(100% + 1.1rem);
  width: 100vw;
  height: 1px;
  transform: translateY(-50%);
  pointer-events: none;
  background: linear-gradient(
    90deg,
    rgba(234,234,234,0) 0%,
    rgba(234,234,234,.92) 5rem,
    rgba(234,234,234,.92) 100%
  );
  z-index: 0;
}
.footer-brand-lockup {
  display: inline-block;
  text-decoration: none;
  line-height: 0;
  position: relative;
  z-index: 4;
}
.footer-brand-lockup:hover {
  opacity: .92;
}
.footer-brand-image {
  display: block;
  width: auto;
  height: 84px;
  max-width: min(100%, 420px);
  object-fit: contain;
}
.footer-script-wrap {
  display: inline-block;
  position: relative;
}
.footer-script {
  display: block;
  font-family: 'Cormorant Garamond', 'Georgia', serif;
  font-size: clamp(2.35rem, 4.4vw, 4.25rem);
  font-weight: 500;
  color: #050505;
  line-height: .86;
  letter-spacing: .025em;
  white-space: normal;
  clip-path: none;
  animation: none;
  text-rendering: geometricPrecision;
}
.footer-brand-name {
  display: inline-block;
  font-variant-ligatures: discretionary-ligatures;
  text-shadow: 0 1px 0 rgba(255,255,255,.35);
}
.footer-separator {
  display: none;
}
.footer-tagline-text {
  display: none;
}
.footer-flourish {
  display: none;
}

@media (max-width: 767.98px) {
  .footer-logo-wrap {
    margin-top: -2.1rem;
    padding: 0 .55rem;
  }

  .footer-logo-wrap::before {
    right: calc(100% + .75rem);
    background: linear-gradient(
      90deg,
      rgba(234,234,234,.92) 0%,
      rgba(234,234,234,.92) calc(100% - 3rem),
      rgba(234,234,234,0) 100%
    );
  }
  .footer-logo-wrap::after {
    left: calc(100% + .75rem);
    background: linear-gradient(
      90deg,
      rgba(234,234,234,0) 0%,
      rgba(234,234,234,.92) 3rem,
      rgba(234,234,234,.92) 100%
    );
  }

  .footer-brand-image {
    height: 64px;
    max-width: min(100%, 320px);
  }
}

.admin-preferences-row {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  margin-top: 1.25rem;
  padding: .9rem 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.admin-preferences-row label {
  display: flex;
  gap: .45rem;
  align-items: center;
  color: var(--muted);
  font-size: .78rem;
}

/* ── Shared keyframes ─────────────────────────────────────────── */
@keyframes scriptWrite {
  0%   { clip-path: inset(-40% 100% -40% 0); }
  100% { clip-path: inset(-40% 0%   -40% 0); }
}
@keyframes flourishDraw {
  0%   { stroke-dashoffset: 320; opacity: 0;   }
  8%   { opacity: .5; }
  100% { stroke-dashoffset: 0;   opacity: .5;  }
}
@keyframes footerWrite {
  0%   { clip-path: inset(-40% 100% -40% 0); }
  100% { clip-path: inset(-40% 0%   -40% 0); }
}
@keyframes penWrite {
  from { clip-path: inset(-20% 100% -20% 0); }
  to   { clip-path: inset(-20% 0%   -20% 0); }
}
.logo-draw-text {
  display: inline-block;
  clip-path: inset(-20% 100% -20% 0);
  animation: penWrite 3s cubic-bezier(0.18, 0.0, 0.28, 1) forwards;
}
.logo-draw-tagline { animation-duration: 4.5s; animation-delay: 0.15s; }
.logo-primary {
  display: inline-flex; align-items: center;
  font-family: 'Ephesis', 'Great Vibes', cursive;
  font-size: 2.6rem; font-weight: 400;
  color: var(--ink); line-height: 1.1; overflow: visible;
}
.logo-tagline { display: none; }

.cookie-consent {
  position: fixed;
  left: 24px;
  right: 24px;
  bottom: 24px;
  z-index: 2200;
  display: flex;
  justify-content: center;
  pointer-events: none;
  perspective: 1600px;
}
.cookie-consent-card {
  position: relative;
  width: min(760px, calc(100vw - 48px));
  border-radius: 22px;
  pointer-events: auto;
  overflow: visible;
  transform-origin: 86% 92%;
  transition: opacity .28s ease;
  will-change: transform, opacity;
}
.cookie-consent-inner {
  position: relative;
  width: 100%;
  border: 1px solid rgba(17,17,17,.1);
  border-radius: 22px;
  background: rgba(250,250,250,.96);
  box-shadow: 0 24px 60px rgba(17,17,17,.08);
  overflow: hidden;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  will-change: transform;
}
.cookie-consent-face {
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.cookie-consent-face--front {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1rem 1.2rem;
  align-items: end;
  padding: 1rem 1.1rem 1.05rem;
}
.cookie-consent-face--back {
  position: absolute;
  inset: 0;
  transform: rotateY(180deg);
  border-radius: 22px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.96) 0%, rgba(246,246,246,.98) 100%);
}
.cookie-consent-face--back::before {
  content: "";
  position: absolute;
  inset: 18px;
  border: 1px solid rgba(17,17,17,.08);
  border-radius: 14px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.88) 0%, rgba(248,248,248,.96) 100%);
}
.cookie-consent-face--back::after {
  content: "";
  position: absolute;
  left: 48px;
  right: 48px;
  top: 50%;
  height: 1px;
  background: linear-gradient(90deg, rgba(17,17,17,0) 0%, rgba(17,17,17,.14) 18%, rgba(17,17,17,.14) 82%, rgba(17,17,17,0) 100%);
  box-shadow: 0 18px 0 rgba(17,17,17,.06), 0 -18px 0 rgba(17,17,17,.06);
}
.cookie-consent-card::before {
  content: "";
  position: absolute;
  inset: 16px 22px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(255,255,255,.34) 0%, rgba(255,255,255,0) 32%, rgba(255,255,255,.1) 58%, rgba(17,17,17,.06) 100%);
  opacity: 0;
  pointer-events: none;
  z-index: 3;
}
.cookie-consent-card::after {
  content: "";
  position: absolute;
  inset: -20%;
  background:
    radial-gradient(circle at center, rgba(255,255,255,.98) 0%, rgba(255,255,255,.74) 18%, rgba(255,255,255,.14) 36%, rgba(255,255,255,0) 56%),
    repeating-conic-gradient(from 0deg, rgba(17,17,17,.18) 0deg 11deg, rgba(17,17,17,0) 11deg 22deg);
  opacity: 0;
  transform: scale(.5) rotate(0deg);
  pointer-events: none;
  mix-blend-mode: multiply;
}
.cookie-consent-card.is-flashing::after {
  animation: cookieShutterFlash .28s ease-out .2s forwards;
}
.cookie-consent-card.is-polaroid-throw::before {
  animation: cookiePhotoGloss .82s ease-out forwards;
}
.cookie-consent-card.is-polaroid-throw .cookie-consent-inner {
  animation: cookieCardFlip .82s cubic-bezier(.2,.78,.24,1) forwards;
}
.cookie-consent-card.is-polaroid-throw {
  animation: cookieCardThrow .82s cubic-bezier(.18,.82,.24,1) forwards;
}
.cookie-consent-card.is-fading-out {
  animation: cookieConsentFade .7s ease forwards;
}
.cookie-consent-copy {
  min-width: 0;
  position: relative;
  z-index: 4;
}
.cookie-consent-title {
  margin: 0 0 .35rem;
  font-size: .86rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--ink);
}
.cookie-consent-text {
  margin: 0;
  font-size: .88rem;
  line-height: 1.65;
  color: var(--muted);
}
.cookie-consent-actions {
  display: flex;
  gap: .65rem;
  flex-wrap: wrap;
  justify-content: flex-end;
  position: relative;
  z-index: 4;
}
.cookie-consent-btn {
  appearance: none;
  border: 1px solid rgba(17,17,17,.12);
  border-radius: 14px;
  background: #fff;
  color: var(--ink);
  min-width: 152px;
  padding: .82rem 1rem;
  font-size: .73rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, color .18s ease, opacity .18s ease;
}
.cookie-consent-btn:hover {
  border-color: rgba(17,17,17,.2);
}
.cookie-consent-btn--primary {
  background: #111;
  color: #fafafa;
  border-color: #111;
}
.cookie-consent-btn--ghost {
  background: rgba(255,255,255,.7);
}
.cookie-login-disabled {
  position: relative;
  color: rgba(17,17,17,.34) !important;
  cursor: not-allowed !important;
}
.cookie-login-disabled::before {
  content: attr(data-cookie-tooltip);
  position: absolute;
  right: 0;
  top: calc(100% + 10px);
  width: min(280px, 70vw);
  padding: .7rem .8rem;
  border: 1px solid rgba(17,17,17,.12);
  border-radius: 14px;
  background: rgba(255,255,255,.96);
  color: var(--ink);
  font-family: 'Manrope', system-ui, sans-serif;
  font-weight: 500;
  font-size: .72rem;
  letter-spacing: normal;
  line-height: 1.45;
  text-transform: none;
  box-shadow: 0 20px 48px rgba(17,17,17,.1);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-4px);
  transition: opacity .16s ease, transform .16s ease;
  z-index: 20;
}
.cookie-login-disabled:hover::before,
.cookie-login-disabled:focus-visible::before {
  opacity: 1;
  transform: translateY(0);
}
.nav-links a.cookie-login-disabled::after {
  opacity: 0 !important;
  transform: none !important;
}
@keyframes cookieFlash {
  0% { opacity: 0; transform: scale(.55); }
  32% { opacity: 1; transform: scale(1); }
  100% { opacity: 0; transform: scale(1.3); }
}
@keyframes cookieShutterFlash {
  0% {
    opacity: 0;
    transform: scale(.48) rotate(-16deg);
    filter: blur(0);
  }
  34% {
    opacity: .95;
    transform: scale(.98) rotate(12deg);
    filter: blur(0);
  }
  100% {
    opacity: 0;
    transform: scale(1.18) rotate(24deg);
    filter: blur(.8px);
  }
}
@keyframes cookiePhotoGloss {
  0% { opacity: 0; }
  16% { opacity: .08; }
  32% { opacity: .3; }
  100% { opacity: .12; }
}
@keyframes cookieCardFlip {
  0% {
    transform: rotateY(0deg) rotateZ(0deg) scale(1);
  }
  12% {
    transform: rotateY(-10deg) rotateZ(-1.5deg) scale(.995);
  }
  30% {
    transform: rotateY(-92deg) rotateZ(-5deg) scale(.965);
  }
  48% {
    transform: rotateY(-180deg) rotateZ(-7deg) scale(.95);
  }
  62% {
    transform: rotateY(-180deg) rotateZ(-6deg) scale(.95);
  }
  100% {
    transform: rotateY(-180deg) rotateZ(-2deg) scale(.9);
  }
}
@keyframes cookieCardThrow {
  0% {
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
    opacity: 1;
    filter: blur(0);
  }
  48% {
    transform: translate3d(0, 0, 0) rotate(0deg) scale(1);
    opacity: 1;
    filter: blur(0);
  }
  72% {
    transform: translate3d(118px, -26px, 0) rotate(7deg) scale(.74);
    opacity: .94;
    filter: blur(.15px);
  }
  100% {
    transform: translate3d(332px, -118px, 0) rotate(17deg) scale(.42);
    opacity: 0;
    filter: blur(.95px);
  }
}
@keyframes cookieConsentFade {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(8px); }
}
@media (max-width: 767px) {
  .cookie-consent {
    left: 14px;
    right: 14px;
    bottom: 14px;
  }
  .cookie-consent-card {
    width: calc(100vw - 28px);
    border-radius: 18px;
  }
  .cookie-consent-inner {
    border-radius: 18px;
  }
  .cookie-consent-face--front {
    grid-template-columns: 1fr;
    gap: .9rem;
    padding: 1rem;
  }
  .cookie-consent-actions {
    justify-content: stretch;
  }
  .cookie-consent-btn {
    width: 100%;
  }
  .cookie-login-disabled::before {
    right: auto;
    left: 0;
    width: min(260px, 78vw);
  }
}

.lang-toggle {
  display: flex; align-items: center;
  border: 0;
  border-radius: 0;
  overflow: visible;
  gap: .25rem;
}
.lang-btn {
  background: none; border: none; cursor: pointer;
  padding: 4px 6px;
  font-size: 0.7rem; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.22em;
  color: var(--muted); transition: color 0.15s;
  text-decoration: none; display: inline-block;
}
.lang-btn.active { color: var(--ink); }
.lang-sep { color: rgba(17,17,17,.18); font-size: 0.8rem; }

.nav-links {
  display: flex;
  align-items: center;
  gap: 1.75rem;
  min-width: 0;
}
.nav-links a {
  position: relative;
  padding: 4px 0;
  border-radius: 0;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .2em;
  text-decoration: none;
  white-space: nowrap;
}
.nav-home-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 999px;
  color: var(--muted);
  margin-right: .35rem;
}
.nav-home-link:hover,
.nav-home-link.active {
  color: var(--ink);
}
.nav-home-link::after {
  display: none;
}
.nav-links a:hover,
.nav-links a.active { color: var(--ink); }
.nav-links a::after {
  content: "";
  position: absolute;
  left: 0;
  right: .2em;
  bottom: -5px;
  height: 1px;
  background: currentColor;
  opacity: 0;
  transform: scaleX(.35);
  transform-origin: center;
  transition: opacity .18s, transform .18s;
}
.nav-links a:hover::after,
.nav-links a.active::after {
  opacity: .45;
  transform: scaleX(1);
}
.nav-title {
  grid-column: 2;
  justify-self: center;
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  max-width: min(32vw, 480px);
  pointer-events: auto;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--ink);
  font-size: .72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .2em;
  text-align: center;
  background: rgba(250,250,250,.94);
  border: 1px solid rgba(17,17,17,.08);
  box-shadow: 0 10px 30px rgba(17,17,17,.05);
  border-radius: 999px;
  padding: .58rem 1rem;
}
.nav-title-link,
.nav-title-current {
  color: inherit;
  text-decoration: none;
  white-space: nowrap;
}
.nav-title-link:hover {
  color: var(--muted);
}
.nav-title-sep {
  color: rgba(17,17,17,.2);
  font-size: .8rem;
  letter-spacing: 0;
  transform: translateY(-1px);
}
.nav-search {
  grid-column: 2;
  justify-self: center;
  position: relative;
  z-index: 1;
  align-items: center;
  width: min(34vw, 520px);
  min-width: 320px;
  height: 38px;
  padding: 0 .25rem 0 .8rem;
  color: var(--ink);
  background: rgba(250,250,250,.94);
  border: 1px solid rgba(17,17,17,.08);
  border-radius: 999px;
  box-shadow: 0 10px 30px rgba(17,17,17,.05);
  opacity: 0;
  pointer-events: none;
  transform: translateY(-4px);
  transition: opacity .18s ease, transform .18s ease, border-color .18s ease;
}
.nav-search.is-visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.nav-search.nav-search-with-title {
  display: none !important;
}
.nav-search:focus-within {
  border-color: rgba(17,17,17,.16);
}
.nav-search-field {
  position: relative;
  display: flex;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
  height: 100%;
}
.nav-search-input {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  padding: 0 .5rem;
  border: 0;
  outline: none;
  background: transparent;
  color: var(--ink);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .04em;
}
.nav-search-ghost {
  position: absolute;
  left: .5rem;
  right: .5rem;
  top: 50%;
  transform: translateY(-50%);
  overflow: hidden;
  color: rgba(17,17,17,.36);
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1;
  pointer-events: none;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: opacity .14s ease;
}
.nav-search-field.is-active .nav-search-ghost {
  opacity: 0;
}
.nav-search-submit {
  flex: 0 0 auto;
  position: relative;
  display: block;
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: 999px;
  background: #9b9b9b;
  color: #fff;
  cursor: pointer;
  transition: background .16s ease, transform .16s ease;
}
.nav-search-submit span {
  position: absolute;
  left: 8px;
  top: 14px;
  width: 13px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
}
.nav-search-submit span::after {
  content: "";
  position: absolute;
  right: -1px;
  top: 50%;
  width: 7px;
  height: 7px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: translateY(-50%) rotate(45deg);
  transform-origin: center;
}
.nav-search-submit:hover {
  background: #b2b2b2;
}
.nav-search-submit:active {
  transform: translateX(1px);
}
.nav-right {
  flex-shrink: 0;
  justify-self: end;
  grid-column: 3;
  position: relative;
  z-index: 2;
  gap: 1rem;
}
.nav-auth-group {
  display: inline-flex;
  align-items: center;
  gap: .9rem;
  padding-right: 1rem;
  margin-right: .05rem;
  border-right: 1px solid rgba(17,17,17,.14);
}
.nav-auth-group.no-language-selector {
  border-right:0;
  padding-right:0;
  margin-right:0;
}
.nav-account-link {
  display: inline-flex;
  align-items: center;
  padding: 4px 0;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .18em;
  text-decoration: none;
  white-space: nowrap;
}
.nav-account-link:hover,
.nav-account-link.active {
  color: var(--ink);
}
.nav-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
  padding: 4px 0;
  border: 0;
  border-radius: 0;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .18em;
  text-decoration: none;
  white-space: nowrap;
}
.nav-pill.primary {
  color: var(--ink);
}
.nav-pill:hover {
  background: transparent;
  color: var(--ink);
}

@media (max-width: 575px) {
  .lang-btn { padding: 4px 8px; letter-spacing: .2em; }
}

/* ── Buttons ──────────────────────────────────────────────────── */
.btn-mp {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 10px 22px;
  font-size: 0.75rem; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.16em;
  border: 1px solid var(--ink); border-radius: var(--radius);
  background: transparent; color: var(--ink); cursor: pointer;
  transition: background 0.2s, color 0.2s;
  white-space: nowrap;
}
.btn-mp:hover { background: var(--ink); color: var(--bone); }
.btn-mp:disabled { opacity: 0.5; cursor: not-allowed; }
.btn-mp-pill {
  border-radius: 999px;
  padding: 12px 28px;
  box-shadow: none;
}
.btn-mp-primary {
  background: var(--ink);
  color: var(--bone);
}
.btn-mp-primary:hover {
  background: #000;
  color: var(--bone);
}
.btn-mp-secondary {
  background: rgba(255,255,255,.7);
  border-color: rgba(17,17,17,.14);
  color: var(--ink);
}
.btn-mp-secondary:hover {
  background: rgba(17,17,17,.06);
  color: var(--ink);
}
.btn-mp-unavailable,
.btn-mp-unavailable:hover,
.btn-mp-unavailable:disabled {
  background: #e3e3e0;
  border-color: #d1d1cc;
  color: #77776f;
  cursor: not-allowed;
  opacity: 1;
}

/* ── Cards / Images ───────────────────────────────────────────── */
.mp-card {
  position: relative; overflow: hidden;
  border-radius: var(--radius);
  background: var(--sand);
  cursor: pointer;
  isolation: isolate;
}
.mp-card img.card-img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover;
  /* no transform here — zoom is on .mp-card-inner */
  transition: opacity 1s ease;
}
/* Zoom layer — wraps all .card-img elements, scales together */
.mp-card-inner {
  position: absolute; inset: 0;
  z-index: 0;
  transform: scale(1);
  transform-origin: 55% 45%;
  transition: transform 7s cubic-bezier(0.22,1,0.36,1), filter 1.4s ease;
  will-change: transform;
}
.mp-card:hover .mp-card-inner {
  transform: scale(1.12) translate(-1.5%, -1%);
  filter: saturate(1.06);
}
/* hover state override removed from individual img */
.mp-card:hover img.card-img { transform: none; filter: none; }
/* ── Card gradient — semi-transparent, fades to nothing at top ─── */
/* CHECKPOINT category-card-overlay-20260530: revert this block to the previous single linear-gradient if needed. */
.mp-card .card-gradient {
  position: absolute; left: 0; right: 0; bottom: 0; height: 82%;
  z-index: 1;
  background:
    radial-gradient(ellipse at 0% 100%,
      rgba(0,0,0,0.40) 0%,
      rgba(0,0,0,0.26) 24%,
      rgba(0,0,0,0.10) 44%,
      transparent 66%),
    linear-gradient(to top,
      rgba(0,0,0,0.32) 0%,
      rgba(0,0,0,0.18) 24%,
      rgba(0,0,0,0.07) 48%,
      rgba(0,0,0,0.02) 70%,
      transparent 100%),
    radial-gradient(ellipse at 20% 100%,
      rgba(0,0,0,0.18) 0%,
      rgba(0,0,0,0.08) 38%,
      transparent 64%);
  filter: blur(.22px);
  pointer-events: none;
  transition: opacity 0.4s ease;
}
.mp-card:hover .card-gradient {
  opacity: 0.95;
}
#categories .mp-card .card-gradient {
  right: auto;
  width: min(68%, 600px);
  height: 62%;
  background:
    radial-gradient(ellipse at 0% 100%,
      rgba(0,0,0,0.64) 0%,
      rgba(0,0,0,0.46) 24%,
      rgba(0,0,0,0.22) 43%,
      rgba(0,0,0,0.07) 58%,
      transparent 74%);
  filter: blur(.25px);
}

/* ── Card body — flex column, content pinned to bottom ────────── */
.mp-card .card-body {
  position: absolute; inset: 0;
  z-index: 2;
  padding: 1.25rem 1.5rem;
  color: #fff;
  display: flex; flex-direction: column; justify-content: flex-end;
  text-shadow: 0 1px 2px rgba(0,0,0,.22);
}

/* ── Distance badge — solid pill, readable, not shouting ─────── */
.card-badge {
  display: inline-flex; align-items: center; gap: 4px;
  align-self: flex-start;                /* don't stretch full width */
  padding: 3px 9px 3px 7px;
  font-size: 0.6rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: 0.22em;
  color: rgba(255,255,255,0.92);
  background: rgba(0,0,0,0.42);
  border: 1px solid rgba(255,255,255,0.14);
  border-radius: 999px;
  white-space: nowrap;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  margin-bottom: 0.5rem;
  transition: background 0.25s;
}
.mp-card:hover .card-badge {
  background: rgba(0,0,0,0.58);
}

/* ── Bottom row: name left, Explore right ─────────────────────── */
.card-bottom-row {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 1rem;
}

/* ── Explore → — quiet, brightens on hover ────────────────────── */
.card-explore-btn {
  flex-shrink: 0;
  font-size: 0.62rem; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.26em;
  color: rgba(255,255,255,0.60);
  white-space: nowrap;
  pointer-events: none;
  align-self: flex-end;
  margin-bottom: 2px;
  transition: color 0.25s, letter-spacing 0.25s;
}
.mp-card:hover .card-explore-btn {
  color: rgba(255,255,255,0.95);
  letter-spacing: 0.32em;
}

#categories .card-bottom-row > div {
  flex: 1 1 auto;
  min-width: 0;
}
.location-card-title {
  color: #fff;
  font-size: clamp(1.3rem, 2.5vw, 2.2rem);
  line-height: 1.18;
  margin: 0 0 .1rem;
  max-width: 100%;
  overflow: hidden;
  padding-bottom: .04em;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.location-card-action-row {
  display: block;
  position: relative;
  width: 100%;
}
.location-card-copy {
  margin-left: -.12rem;
  max-width: 100%;
  min-width: 0;
  width: 100%;
}
.location-card-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .3rem;
  position: static;
  text-align: right;
}
.location-distance-badge {
  position: absolute;
  top: 1.05rem;
  left: 1.25rem;
  align-self: auto;
  margin: 0;
  color: rgba(255,255,255,.84);
  background: rgba(18,18,18,.24);
  border-color: rgba(255,255,255,.04);
  box-shadow: 0 4px 14px rgba(0,0,0,.06);
  text-shadow: 0 1px 2px rgba(0,0,0,.42);
  backdrop-filter: blur(7px) saturate(1.08);
  -webkit-backdrop-filter: blur(7px) saturate(1.08);
}
.mp-card:hover .location-distance-badge {
  background: rgba(18,18,18,.30);
}
.location-card-meta .card-explore-btn {
  position: absolute;
  right: 0;
  bottom: .06rem;
}
.location-card-blurb {
  flex: 1 1 auto;
  margin: 0;
  padding-right: 8.25rem;
  padding-left: .18rem;
  max-width: none;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: rgba(255,255,255,.56);
  font-size: .82rem;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}
.genre-card-title {
  color: #fff;
  font-size: 3rem;
  line-height: 1.05;
  margin: 0;
  white-space: nowrap;
}
.genre-card-blurb {
  color: rgba(255,255,255,.85);
  font-size: .9rem;
  margin: .5rem 0 0;
  max-width: 420px;
}
#categories [data-testid="genre-card-commercial"] .genre-card-title {
  font-size: 2.65rem;
}
@media (max-width: 1200px) {
  .genre-card-title {
    font-size: 2.65rem;
  }
  #categories [data-testid="genre-card-commercial"] .genre-card-title {
    font-size: 2.35rem;
  }
}
@media (max-width: 992px) {
  .genre-card-title {
    font-size: 2.25rem;
  }
  #categories [data-testid="genre-card-commercial"] .genre-card-title {
    font-size: 2.05rem;
  }
}
@media (max-width: 768px) {
  .genre-card-title {
    font-size: 2rem;
  }
  #categories [data-testid="genre-card-commercial"] .genre-card-title {
    font-size: 1.8rem;
  }
}
@media (max-width: 420px) {
  #categories .card-bottom-row {
    gap: .65rem;
  }
  .genre-card-title,
  #categories [data-testid="genre-card-commercial"] .genre-card-title {
    font-size: 1.45rem;
  }
  #categories .card-explore-btn {
    font-size: .52rem;
    letter-spacing: .16em;
  }
  #categories .mp-card:hover .card-explore-btn {
    letter-spacing: .18em;
  }
}
/* Shimmer on hover */
.mp-card::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(100deg, transparent 0%, rgba(255,255,255,0.28) 50%, transparent 100%);
  transform: translateX(-120%) skewX(-20deg);
  pointer-events: none; opacity: 0;
  transition: opacity 0.3s;
}
.mp-card:hover::after { opacity: 1; animation: shimmer 2.4s ease-in-out infinite; }

@keyframes shimmer {
  0%   { transform: translateX(-120%) skewX(-20deg); }
  100% { transform: translateX(220%) skewX(-20deg); }
}

/* Alive-breathe for static cards */
.alive-img {
  animation: alive-breathe 32s ease-in-out infinite;
  transform-origin: 55% 45%;
}
@keyframes alive-breathe {
  0%   { transform: scale(1.00) translate(0%,0%); }
  25%  { transform: scale(1.018) translate(-0.6%,-0.3%); }
  50%  { transform: scale(1.03) translate(-1.1%,-0.6%); }
  75%  { transform: scale(1.018) translate(-0.4%,-0.4%); }
  100% { transform: scale(1.00) translate(0%,0%); }
}

/* ── Bento grid ───────────────────────────────────────────────── */
.bento-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 1.25rem;
}
@media (max-width: 768px) { .bento-grid { grid-template-columns: 1fr; } }

/* Location grid — alternating big/small rows */
.bento-7 { grid-column: span 7; height: 380px; }
.bento-6 { grid-column: span 6; height: 380px; }
.bento-5 { grid-column: span 5; height: 380px; }
.bento-4 { grid-column: span 4; height: 380px; }
.bento-3 { grid-column: span 3; height: 380px; }

/* Genre grid — same spans, taller */
.bento-g7 { grid-column: span 7; height: 480px; }
.bento-g5 { grid-column: span 5; height: 480px; }

@media (max-width: 768px) {
  .bento-7, .bento-6, .bento-5, .bento-4, .bento-3,
  .bento-g7, .bento-g5 {
    grid-column: span 1; height: 300px;
  }
}

/* ── Catalog pages: location / genre ───────────────────────────── */
@font-face { font-family:'Location Antonio'; font-style:normal; font-weight:100; font-display:swap; src:url('/public/fonts/antonio-latin-100-normal.woff2') format('woff2'); }
.location-reference-page { padding-bottom: 5rem; overflow-x: clip; background: #fafafa; color: #171717; }
.location-reference-nav {
  position: sticky; top: 0; z-index: 100; height: 42px; width: 100%;
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  padding: 0 max(22px, calc((100vw - 1360px) / 2)); gap: 20px;
  color: #777; background: rgba(250,250,250,.96); border-bottom: 1px solid #e8e7e5;
  font: 500 9px/1 Manrope, system-ui, sans-serif; letter-spacing: .14em; text-transform: uppercase;
}
.location-reference-nav a { color: inherit; text-decoration: none; white-space: nowrap; }
.location-reference-nav a:hover { color: #171717; }
.location-nav-left,.location-nav-right { display:flex; align-items:center; gap:25px; min-width:0; }
.location-nav-right { justify-content:flex-end; gap:22px; }
.location-nav-home { font-size:16px; }
.location-nav-crumb { display:flex; align-items:center; gap:8px; max-width:40vw; padding:8px 17px; overflow:hidden; border-radius:30px; background:#fff; box-shadow:0 1px 8px rgba(0,0,0,.07); color:#333; white-space:nowrap; }
.location-nav-crumb span,.location-nav-crumb b { overflow:hidden; text-overflow:ellipsis; }
.location-nav-crumb i,.location-nav-langs i { color:#bbb; font-style:normal; }
.location-nav-crumb b { color:#222; font-weight:600; }
.location-nav-langs { display:flex; align-items:center; gap:6px; }
.location-nav-langs .active { color:#222; font-weight:700; }
.reference-stage { width:100%; padding-top:0; }
.reference-hero { position:relative; isolation:isolate; display:grid; grid-template-columns:1fr 1.7fr 1fr; grid-template-rows:1fr 1fr; gap:5px; width:min(100%,1920px); height:clamp(400px,62vh,720px); margin:0 auto; overflow:hidden; background:#f0ede8; }
.reference-hero img { display:block; width:100%; height:100%; object-fit:cover; }
.reference-hero-left { grid-column:1; grid-row:1 / 3; }
.reference-hero-center { position:relative; grid-column:2; grid-row:1 / 3; min-width:0; overflow:hidden; }
.reference-hero-center>img { position:relative; z-index:0; }
.reference-hero-center::before { content:""; position:absolute; z-index:1; inset:-20% -60%; pointer-events:none; background:linear-gradient(105deg,transparent 45%,rgba(255,255,255,.16) 50%,transparent 55%); transform:translateX(-110%); }
.reference-hero-center:hover::before { transform:translateX(110%); transition:transform 2.6s cubic-bezier(.35,.1,.2,1); }
.reference-hero-center::after { content:""; position:absolute; z-index:1; inset:45% 0 0; background:linear-gradient(0deg,rgba(0,0,0,.58),transparent); pointer-events:none; }
.reference-hero-right { display:grid; grid-column:3; grid-row:1 / 3; grid-template-rows:1fr 1fr; gap:5px; min-height:0; }
.reference-hero-caption { position:absolute; z-index:1; right:12px; bottom:clamp(24px,5vw,62px); left:12px; text-align:center; color:#fff; }
.reference-hero-caption h1 { margin:0; color:#fff; font:100 clamp(2.1rem,3.7vw,3.5rem)/1 'Location Antonio','Cormorant Garamond',Georgia,serif; letter-spacing:.34em; text-indent:.34em; text-transform:uppercase; text-shadow:0 1px 14px rgba(0,0,0,.35); }
.reference-hero-caption p { margin:.25rem 0 0; color:rgba(255,255,255,.82); font:600 8px/1.5 Manrope,system-ui,sans-serif; letter-spacing:.24em; text-transform:uppercase; }
.reference-under { display:grid; grid-template-columns:minmax(138px,170px) minmax(0,1fr) minmax(285px,320px); align-items:start; gap:clamp(22px,3.4vw,44px); width:min(100% - 48px,1328px); margin:0 auto; padding:17px 0 15px; }
.reference-meters { padding-top:4px; }
.reference-meter { margin-bottom:11px; color:#777; }
.reference-meter span { display:flex; justify-content:space-between; align-items:center; gap:10px; font:600 8px/1.2 Manrope,system-ui,sans-serif; letter-spacing:.095em; text-transform:uppercase; }
.reference-meter b { display:flex; align-items:center; gap:6px; font-weight:600; }
.reference-meter-icon { display:inline-grid; width:10px; place-items:center; color:#e48e5c; font:700 9px/1 Manrope,sans-serif; }
.reference-meter-camera svg { display:block; width:10px; height:9px; fill:none; stroke:currentColor; stroke-width:1.2; }
.reference-meter-impression .reference-meter-icon { color:#8d929d; }
.reference-meter strong { color:#48494c; font-size:9px; letter-spacing:0; }
.reference-meter > i { display:block; height:3px; margin-top:5px; background:#d9dadd; }
.reference-meter > i em { display:block; width:var(--meter-value,0%); height:100%; background:#4d515b; }
.reference-meter > i em { transform:scaleX(0); transform-origin:left; animation:reference-meter-fill 1.2s .65s cubic-bezier(.2,.7,.2,1) forwards; }
.reference-map-link { display:flex; align-items:center; gap:10px; margin-top:15px; color:#878787; }
.reference-map-link span { color:#c9cbd0; font-size:32px; line-height:1; }
.reference-map-link i { font:italic 400 12px 'Cormorant Garamond',Georgia,serif; }
.reference-quote-block { min-width:0; padding:0 0 2px; text-align:center; }
.reference-quote { margin:0; color:#77736e; font:italic 400 clamp(19px,1.4vw,29px)/1.38 'Cormorant Garamond',Georgia,serif; }
.reference-more-toggle { display:flex; align-items:center; justify-content:center; gap:11px; width:100%; margin-top:14px; padding:0; color:#88847e; border:0; background:transparent; cursor:pointer; font:italic 400 12px 'Cormorant Garamond',Georgia,serif; }
.reference-more-toggle::before,.reference-more-toggle::after { content:""; height:1px; flex:1; background:#dedbd7; }
.reference-more-toggle span { font:600 14px Manrope,sans-serif; }
.reference-extended { margin:12px auto 0; max-width:660px; color:#77736e; text-align:left; font:italic 400 15px/1.65 'Cormorant Garamond',Georgia,serif; }
.reference-badge-area { display:flex; align-items:center; gap:18px; padding-left:8px; }
.reference-badge { position:relative; flex:0 0 154px; height:144px; background:#eee; box-shadow:0 4px 11px rgba(0,0,0,.2); }
.reference-badge { animation:reference-badge-float 5.5s 1.5s ease-in-out infinite; }
.reference-badge::after { content:""; position:absolute; inset:-20% -60%; pointer-events:none; background:linear-gradient(105deg,transparent 42%,rgba(255,255,255,.48) 50%,transparent 58%); transform:translateX(-85%); animation:reference-badge-shine 9s 2.2s cubic-bezier(.4,.1,.2,1) infinite; }
.reference-badge img { width:100%; height:100%; object-fit:cover; filter:grayscale(.88) contrast(.9) brightness(1.1); }
.reference-badge-check,.reference-badge-heart { position:absolute; bottom:6px; width:27px; height:27px; display:grid; place-items:center; padding:0; color:#fff; border:1px solid rgba(255,255,255,.7); border-radius:50%; background:rgba(45,45,45,.48); cursor:pointer; font:500 15px/1 Manrope,sans-serif; transition:background .25s,transform .25s,color .25s; }
.reference-badge-check:hover,.reference-badge-heart:hover { transform:scale(1.12); background:rgba(30,30,30,.76); }
.reference-badge-check[aria-pressed="true"] { background:#fff; color:#626774; box-shadow:0 0 0 3px rgba(255,255,255,.22); }
.reference-badge-heart[aria-pressed="true"] { color:#fff; background:#a86767; }
.reference-badge.is-liked img { filter:grayscale(.52) contrast(.95) brightness(1.04); }
.reference-badge-check { left:6px; }
.reference-badge-heart { right:6px; font-size:20px; }
.reference-handwritten { display:flex; flex-direction:column; gap:8px; color:#c4c2bf; font:italic 400 19px/1 'Cormorant Garamond',Georgia,serif; white-space:nowrap; transform:rotate(-3deg); }
.reference-handwritten span { opacity:.72; }
.reference-handwritten span { animation:reference-note-in .9s cubic-bezier(.2,.7,.2,1) both; }
.reference-handwritten span:nth-child(2) { animation-delay:.12s; }
.reference-handwritten span:nth-child(3) { animation-delay:.24s; }
.reference-photographers { width:min(100% - 48px,1328px); margin:0 auto; padding-top:10px; }
.reference-photographers .catalog-section-head { margin:0 0 20px; }
.reference-photographers .catalog-section-head h2 { font:italic 400 clamp(1.8rem,3vw,2.5rem)/1.1 'Cormorant Garamond',Georgia,serif; }
.reference-photographers .catalog-section-head .kicker { font-size:.62rem; letter-spacing:.17em; }
.reference-photographers .photographer-row { display:flex; flex-direction:column; gap:0; padding:22px 24px 24px; border:1px solid transparent; border-radius:16px; overflow:visible; transition:background .35s,box-shadow .35s,border-color .35s; }
.reference-photographers .photographer-row:hover { background:#fff; border-color:var(--line); box-shadow:0 24px 70px rgba(0,0,0,.09); }
.reference-photographers .photog-meta { padding:0; height:auto; }
.reference-photographers .photog-meta-card { display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; align-items:center; gap:5px 18px; min-height:0; height:auto; padding:0; border:0; border-radius:0; box-shadow:none; background:transparent; backdrop-filter:none; }
.reference-photographers .photog-meta { margin-bottom:15px; }
.reference-photographers .photog-topline { grid-column:1; grid-row:2; margin:0; }
.reference-photographers .photog-meta-row { justify-content:flex-start; }
.reference-photographers .photog-city { font-size:9px; letter-spacing:.12em; }
.reference-photographers .photog-price { margin-left:15px; }
.reference-photographers .photog-titleblock { grid-column:1; grid-row:1; display:flex; flex-direction:row; align-items:baseline; gap:13px; }
.reference-photographers .photog-name { font-size:1.8rem; font-weight:400; font-style:normal; }
.reference-photographers .photog-rule { display:none; }
.reference-photographers .photog-tagline { margin:0; color:#7a7772; font:italic 400 14px 'Cormorant Garamond',Georgia,serif; }
.reference-photographers .photog-actions { grid-column:2; grid-row:1 / 3; display:flex; align-items:center; gap:8px; margin:0; }
.reference-photographers .reference-photog-badges { grid-column:1; grid-row:3; display:flex; flex-wrap:wrap; gap:7px; margin-top:9px; }
.reference-photog-badge { position:relative; display:inline-flex; align-items:center; gap:6px; padding:5px 9px; border:1px solid #e8e6e2; border-radius:2px; color:#7f7b75; background:#fff; font:600 8px/1.2 Manrope,system-ui,sans-serif; letter-spacing:.1em; text-transform:uppercase; cursor:help; transition:color .2s,border-color .2s,background .2s; }
.reference-photog-badge i { color:#bd967a; font-style:normal; }
.reference-photog-badge:hover { color:#4c4b49; border-color:#c9c4bd; background:#fbfaf8; }
.reference-photog-badge[title]:hover::after,.reference-photog-badge[title]:focus::after { content:attr(title); position:absolute; z-index:10; left:0; bottom:calc(100% + 8px); width:max-content; max-width:min(280px,70vw); padding:9px 11px; color:#fff; background:rgba(40,40,40,.92); font:400 11px/1.45 Manrope,system-ui,sans-serif; letter-spacing:0; text-transform:none; white-space:normal; box-shadow:0 4px 14px rgba(0,0,0,.14); }
.reference-photographers .photog-actions .btn-mp { min-height:31px; padding:0 15px; border-radius:30px; font-size:9px; letter-spacing:.13em; }
.reference-photographers .photog-gallery { width:100%; min-height:0; }
.reference-photographers .photog-gallery-card { min-height:0; padding:0; }
.reference-photographers .portfolio-strip-wrap { -webkit-mask-image:linear-gradient(90deg,#000 94%,transparent); mask-image:linear-gradient(90deg,#000 94%,transparent); }
.reference-photographers .portfolio-strip { height:242px; gap:12px; padding:0 0 8px; }
.reference-photographers .portfolio-thumb { width:164px; height:230px; aspect-ratio:auto; border-radius:3px; box-shadow:0 2px 8px rgba(0,0,0,.08); }
.reference-photographers .portfolio-thumb--wide { width:336px; height:230px; aspect-ratio:auto; }
.reference-photographers .photog-mobile-line { display:none; }
.reference-photographers .catalog-section-note { font-size:.9rem; }
.location-reference-page .catalog-section-empty { width:min(calc(100% - 80px),1296px); margin:30px auto; }
@media(max-width:760px) {
  .location-reference-page .catalog-section-empty { width:calc(100% - 32px); }
}
@media(max-width:900px) {
  .location-reference-nav { grid-template-columns:1fr auto; height:44px; padding:0 16px; }
  .location-nav-left { gap:12px; }
  .location-nav-left a:not(:first-child) { display:none; }
  .location-nav-right { gap:12px; }
  .location-nav-crumb { grid-column:2; grid-row:1; max-width:50vw; }
  .location-nav-right { grid-column:1 / 3; grid-row:2; display:none; }
  .location-reference-nav { position:relative; }
  .reference-hero { grid-template-columns:1fr 1.7fr 1fr; height:clamp(360px,58vh,520px); gap:3px; }
  .reference-under { grid-template-columns:135px minmax(0,1fr); gap:20px; }
  .reference-badge-area { grid-column:1 / -1; justify-content:center; padding:14px 0 0; }
  .reference-badge { flex-basis:115px; height:108px; }
  .reference-handwritten { font-size:16px; }
  .reference-photographers { width:calc(100% - 32px); }
}
@media(max-width:640px) {
  .location-nav-left { display:none; }
  .location-reference-nav { display:flex; justify-content:center; padding:0 12px; }
  .location-nav-crumb { max-width:75vw; }
  .reference-hero { grid-template-columns:1fr 1.5fr; grid-template-rows:1.5fr 1fr; height:440px; }
  .reference-hero-left { grid-column:1; grid-row:1 / 3; }
  .reference-hero-center { grid-column:2; grid-row:1 / 3; }
  .reference-hero-right { display:none; }
  .reference-hero-caption h1 { font-size:1.55rem; letter-spacing:.12em; }
  .reference-hero-caption p { font-size:6px; }
  .reference-under { grid-template-columns:1fr; width:calc(100% - 32px); gap:15px; padding-top:18px; }
  .reference-meters { display:grid; grid-template-columns:1fr 1fr; gap:8px 15px; }
  .reference-meter { margin:0; }
  .reference-map-link { grid-column:1 / -1; margin-top:4px; }
  .reference-quote { font-size:21px; }
  .reference-badge-area { display:none; }
  .reference-photographers { width:calc(100% - 32px); }
  .reference-photographers .photog-meta-card { grid-template-columns:1fr; }
  .reference-photographers .photog-topline { grid-row:2; }
  .reference-photographers .photog-actions { grid-column:1; grid-row:3; justify-content:flex-start; margin-top:8px; }
  .reference-photographers .reference-photog-badges { grid-column:1; grid-row:4; }
  .reference-photographers .photog-titleblock { flex-wrap:wrap; gap:4px 10px; }
  .reference-photographers .photog-tagline { flex-basis:100%; }
  .reference-photographers .portfolio-strip { height:190px; }
  .reference-photographers .photographer-row { padding:16px 12px 18px!important; }
  .reference-photographers .photog-meta { margin-bottom:12px; }
  .reference-photographers .portfolio-thumb { width:134px; height:178px; }
  .reference-photographers .portfolio-thumb--wide { width:261px; height:178px; }
}

.admin-rich-toolbar { display:flex; gap:5px; padding:6px; border:1px solid var(--line); border-bottom:0; background:#f8f7f5; }
.admin-rich-toolbar button { padding:4px 8px; border:1px solid rgba(17,17,17,.12); background:#fff; color:#333; cursor:pointer; font:12px Manrope,system-ui,sans-serif; }
.admin-rich-editor { min-height:145px; overflow:auto; background:#fff; line-height:1.55; }
.admin-rich-editor:focus { outline:2px solid rgba(97,108,134,.2); outline-offset:1px; }

/* Keep the location strip layout ahead of the catalogue's generic breakpoints. */
@media(min-width:1600px) {
  .location-reference-page .reference-photographers .photog-gallery { width:100%; }
  .location-reference-page .reference-photographers .portfolio-strip-wrap { -webkit-mask-image:linear-gradient(90deg,#000 94%,transparent); mask-image:linear-gradient(90deg,#000 94%,transparent); }
}

/* Location detail corrections: preserve the site's established navigation type,
   restore the reference page's framed hero and detail-card proportions. */
@font-face { font-family:'Cormorant Garamond'; font-style:normal; font-weight:300; font-display:swap; src:url('/public/fonts/cormorant-garamond-latin-300-normal.woff2') format('woff2'); }
@font-face { font-family:'Cormorant Garamond'; font-style:normal; font-weight:400; font-display:swap; src:url('/public/fonts/cormorant-garamond-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family:'Cormorant Garamond'; font-style:normal; font-weight:500; font-display:swap; src:url('/public/fonts/cormorant-garamond-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family:'Cormorant Garamond'; font-style:italic; font-weight:400; font-display:swap; src:url('/public/fonts/cormorant-garamond-latin-400-italic.woff2') format('woff2'); }
.location-reference-nav {
  height:56px;
  font:500 11px/1 Manrope,system-ui,sans-serif;
  letter-spacing:.16em;
}
.location-nav-left,.location-nav-right { gap:1.5rem; }
.location-nav-right { gap:1.25rem; }
.location-nav-crumb { padding:8px 18px; letter-spacing:.16em; }
.location-nav-crumb b { font-weight:600; }
.reference-hero {
  width:min(100% - 48px,1552px);
  height:clamp(420px,67vh,520px);
  gap:5px;
  overflow:hidden;
  background:#fafafa;
}
.reference-hero img { margin:0; }
.reference-hero-left { overflow:hidden; animation:none; }
.reference-hero-left,.reference-hero-right { position:relative; }
.reference-hero-left>img { animation:reference-kenburns 44s ease-in-out infinite alternate; }
.reference-hero-right { overflow:hidden; }
.reference-hero-left::after,.reference-hero-right::before { content:''; position:absolute; z-index:2; inset:0; pointer-events:none; background:linear-gradient(105deg,transparent 28%,rgba(255,255,255,.05) 40%,rgba(255,255,255,.17) 50%,rgba(255,255,255,.05) 60%,transparent 72%); transform:translateX(-140%); }
.reference-hero-left:hover::after,.reference-hero-right:hover::before { transform:translateX(140%); transition:transform 2.8s cubic-bezier(.35,.1,.2,1); }
.reference-hero-caption h1 {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-size:clamp(1.9rem,3.2vw,3rem);
  font-weight:500;
  letter-spacing:.005em;
  text-indent:0;
  text-transform:none;
}
@keyframes reference-title-in-serif {
  from { opacity:0; transform:translateY(8px); filter:blur(8px); }
  to { opacity:1; transform:none; filter:blur(0); }
}
.reference-hero-caption h1 { animation-name:reference-title-in-serif; }
.reference-location-pop {
  left:-325px;
  top:calc(100% + 12px);
  grid-template-columns:260px minmax(0,1fr);
  gap:25px;
  width:min(1044px,calc(100vw - 48px));
  min-height:252px;
  padding:18px 22px;
  overflow:visible;
  border-radius:17px;
}
.reference-pop-locations {
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  align-items:center;
  gap:16px;
  min-width:0;
  padding-right:20px;
  border-right:1px solid #ebe9e6;
}
.reference-pop-map { position:relative; inset:auto; width:76px; height:70px; border:0; background:transparent; }
.reference-pop-map svg { opacity:.52; }
.reference-pop-location-list { display:grid; gap:11px; min-width:0; }
.reference-pop-location-list a { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:3px 8px; padding-bottom:8px; color:#77736e; border-bottom:1px solid #eeeae6; text-decoration:none; }
.reference-pop-location-list a:last-child { padding-bottom:0; border-bottom:0; }
.reference-pop-location-list strong { overflow:hidden; color:#77736e; font:italic 400 18px/1.1 'Cormorant Garamond',Georgia,serif; text-overflow:ellipsis; white-space:nowrap; }
.reference-pop-location-list a>span { color:#77736e; font:600 7px/1 Manrope,system-ui,sans-serif; letter-spacing:.12em; }
.reference-pop-location-list a>span b { font-size:12px; }
.reference-pop-location-list small { grid-column:1/-1; color:#96918a; font:600 7px/1.2 Manrope,system-ui,sans-serif; letter-spacing:.13em; }
.reference-pop-nearby { min-width:0; align-self:center; }
.reference-pop-nearby h3 { margin:0 0 11px; color:#8f8982; font:600 9px/1.2 Manrope,system-ui,sans-serif; letter-spacing:.2em; }
.reference-nearby-grid { gap:14px; }
.reference-nearby-grid a { display:flex; flex-direction:column; align-items:center; gap:9px; color:#504d49; font:600 8px/1.35 Manrope,system-ui,sans-serif; letter-spacing:.1em; text-align:center; }
.reference-nearby-grid img { width:100%; height:138px; border-radius:3px; filter:none; box-shadow:0 5px 12px rgba(0,0,0,.12); }
.reference-nearby-grid a:hover img { transform:translateY(-3px); }
.reference-pop-map-link { display:none; }
.reference-badge-area { gap:20px; }
.reference-handwritten { gap:8px; }
.reference-note-action { display:flex; align-items:center; gap:8px; min-width:103px; padding:2px 0; border:0; color:#c4c2bf; background:transparent; cursor:pointer; text-align:left; font:italic 400 19px/1 'Cormorant Garamond',Georgia,serif; transition:color .2s,transform .35s cubic-bezier(.2,.7,.2,1); }
.reference-note-action i,.reference-note-action b { color:inherit; font:400 17px/1 'Cormorant Garamond',Georgia,serif; }
.reference-note-action b { margin-left:-5px; }
.reference-note-action:hover { color:#88847e; transform:translateX(3px); }
.reference-note-action[aria-pressed="true"] { color:#8f6d68; transform:translateX(4px); }
.reference-note-action[aria-pressed="true"] i,.reference-note-action[aria-pressed="true"] b { color:#ad7168; }
.reference-badge.is-liked { animation:reference-badge-like .62s cubic-bezier(.2,.75,.3,1),reference-badge-float 5.5s 1.5s ease-in-out infinite; }
.reference-badge.is-liked::before { content:'♥'; position:absolute; z-index:4; top:42%; left:50%; color:#fff; font:400 30px/1 Georgia,serif; opacity:0; pointer-events:none; transform:translate(-50%,-50%) scale(.35); text-shadow:0 2px 10px rgba(0,0,0,.25); animation:reference-like-heart .9s ease-out both; }
@keyframes reference-badge-like { 35% { transform:translateY(-4px) scale(1.025); } 70% { transform:translateY(0) scale(.99); } }
@keyframes reference-like-heart { 18% { opacity:.9; transform:translate(-50%,-50%) scale(1); } 100% { opacity:0; transform:translate(-50%,-90%) scale(1.35); } }
.reference-photographers .photographer-row { padding:20px 26px 26px; border:1px solid rgba(17,17,17,.08); border-radius:16px; background:rgba(255,255,255,.9); }
.reference-photographers .photog-meta { margin:0 0 17px; }
.reference-photographers .photog-meta-card { display:block; }
.reference-photog-layout { display:grid; gap:14px; }
.reference-photog-name-line { display:flex; align-items:baseline; gap:18px; min-width:0; }
.reference-photog-name-line .photog-name { margin:0; font:500 1.7rem/1.1 'Cormorant Garamond',Georgia,serif; white-space:nowrap; }
.reference-photog-city { color:#77736e; font:400 13px/1.2 Manrope,system-ui,sans-serif; }
.reference-photog-price { margin-left:auto; color:#77736e; font:500 11px/1 Manrope,system-ui,sans-serif; letter-spacing:.1em; }
.reference-photog-tagline { margin-top:2px; color:#96918a; font:italic 400 13px/1.3 'Cormorant Garamond',Georgia,serif; }
.reference-photog-toolbar { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.reference-photog-tool-left { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.reference-photog-badge,.reference-photog-action,.reference-photog-portfolio { min-height:27px; display:inline-flex; align-items:center; justify-content:center; gap:6px; padding:0 12px; border:1px solid #ddd9d3; border-radius:18px; color:#77736e; background:#fff; text-decoration:none; font:500 9px/1 Manrope,system-ui,sans-serif; letter-spacing:.1em; white-space:nowrap; transition:background .2s,color .2s,border-color .2s,transform .2s; }
.reference-photog-badge { cursor:help; }
.reference-photog-badge svg,.reference-photog-action svg { width:12px; height:12px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.reference-photog-badge { position:relative; }
.reference-photog-tip { position:absolute; left:0; bottom:calc(100% + 10px); z-index:20; width:max-content; min-width:170px; max-width:min(290px,75vw); padding:10px 13px; border:1px solid rgba(17,17,17,.08); border-radius:10px; background:rgba(255,255,255,.98); color:#262320; box-shadow:0 14px 34px rgba(17,17,17,.12); font:400 11px/1.5 Manrope,system-ui,sans-serif; letter-spacing:0; text-align:left; text-transform:none; opacity:0; visibility:hidden; transform:translateY(5px); pointer-events:none; transition:opacity .18s,transform .18s,visibility .18s; }
.reference-photog-tip b,.reference-photog-tip span { display:block; white-space:normal; }
.reference-photog-tip b { margin-bottom:4px; color:#77736e; font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
.reference-photog-badge:hover .reference-photog-tip,.reference-photog-badge:focus-visible .reference-photog-tip { opacity:1; visibility:visible; transform:none; }
.reference-photog-badge i { color:#bd967a; font-style:normal; }
.reference-photog-action { cursor:pointer; }
.reference-photog-action:hover,.reference-photog-badge:hover { border-color:#bcb6ae; background:#f7f5f2; color:#282725; }
.reference-photog-action:disabled { opacity:.5; cursor:not-allowed; }
.reference-photog-portfolio { margin-left:auto; border-color:#b9b5ae; color:#4d4b48; }
.reference-photog-portfolio:hover { border-color:#171717; color:#fff; background:#171717; }
.reference-photog-portfolio span { font-size:13px; }
.reference-photographers .portfolio-strip { height:242px; }
.reference-photographers .portfolio-thumb,.reference-photographers .portfolio-thumb--wide { height:230px; }
.reference-photographers .portfolio-strip { gap:8px; }
.location-reference-page .reference-photographers .portfolio-thumb img { transition:transform 1.1s cubic-bezier(.22,1,.36,1),filter 1.1s cubic-bezier(.22,1,.36,1); }
.location-reference-page .reference-photographers .portfolio-thumb:hover img { transform:scale(1.045) translate3d(-6px,-2px,0); filter:none; }
.location-reference-page .reference-photographers .portfolio-thumb:nth-child(even):hover img { transform:scale(1.045) translate3d(6px,-2px,0); }
.location-reference-page .reference-photographers .portfolio-thumb::before { content:''; position:absolute; z-index:2; inset:0; pointer-events:none; background:linear-gradient(105deg,transparent 28%,rgba(255,255,255,.05) 40%,rgba(255,255,255,.17) 50%,rgba(255,255,255,.05) 60%,transparent 72%); transform:translateX(-140%); transition:transform 2.8s cubic-bezier(.35,.1,.2,1); }
.location-reference-page .reference-photographers .portfolio-thumb:hover::before { transform:translateX(140%); }
.reference-photographers .photographer-row { transition:background .35s,box-shadow .35s,border-color .35s,transform .35s; }
.reference-photographers .photographer-row:hover { transform:translateY(-2px); }
@media(max-width:900px) {
  .location-reference-nav { height:56px; }
  .reference-hero { width:calc(100% - 32px); height:clamp(360px,58vh,480px); }
  .reference-location-pop { left:-8px; top:calc(100% + 9px); width:min(720px,calc(100vw - 32px)); grid-template-columns:1fr; gap:14px; padding:18px; }
  .reference-pop-locations { grid-template-columns:76px 1fr; min-height:100px; padding:0 0 14px; border-right:0; border-bottom:1px solid #ebe9e6; }
  .reference-nearby-grid img { height:90px; }
}
@media(max-width:640px) {
  .location-reference-nav { display:grid; grid-template-columns:auto minmax(0,1fr); height:56px; padding:0 12px; font-size:.58rem; }
  .location-nav-left { display:flex; grid-column:1; gap:0; }
  .location-nav-left .location-nav-home,.location-nav-left a:nth-child(2),.location-nav-left a:nth-child(4) { display:none; }
  .location-nav-left a:nth-child(3) { display:inline-flex!important; }
  .location-nav-crumb { grid-column:2; grid-row:1; justify-self:end; max-width:60vw; }
  .reference-hero { width:calc(100% - 20px); height:400px; gap:4px; }
  .reference-under { grid-template-columns:1fr; }
  .reference-location-pop { left:0; top:calc(100% + 8px); width:calc(100vw - 32px); padding:14px; }
  .reference-pop-locations { display:none; }
  .reference-nearby-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .reference-nearby-grid img { height:100px; }
  .reference-photog-name-line { flex-wrap:wrap; gap:6px 12px; }
  .reference-photog-price { margin-left:0; }
  .reference-photog-toolbar { align-items:flex-start; flex-direction:column; }
  .reference-photog-portfolio { margin-left:0; }
  .reference-hero-caption h1 { font-size:1.9rem; letter-spacing:.005em; }
}
@media(prefers-reduced-motion:reduce) {
  .reference-hero-left>img,.reference-photographers .portfolio-thumb img { animation:none; transition:none; }
  .reference-note-action,.reference-photog-badge,.reference-photog-action,.reference-photog-portfolio { transition:none; }
}
@media(max-width:767px) {
  .location-reference-page .reference-photographers .photographer-row { display:flex!important; width:100%; max-width:100%!important; margin:0!important; padding:16px 0 18px!important; border:0!important; border-top:1px solid rgba(17,17,17,.09)!important; border-radius:0!important; background:transparent!important; box-shadow:none!important; overflow:visible!important; }
  .location-reference-page .reference-photographers .photog-meta { display:flex!important; }
  .location-reference-page .reference-photographers .photog-gallery,
  .location-reference-page .reference-photographers .photog-gallery-card { display:flex!important; width:100%!important; max-width:100%!important; margin:0!important; padding:0!important; background:transparent!important; box-shadow:none!important; }
  .location-reference-page .reference-photographers .photog-mobile-line { display:none!important; }
}

/* Reference interactions: hover map, animated copy reveal, and strip controls. */
.reference-hero { animation:reference-hero-in 1.1s cubic-bezier(.2,.7,.2,1) both; }
.reference-hero-left,.reference-hero-center>img,.reference-hero-right>img { animation:reference-kenburns 38s ease-in-out infinite alternate; }
.reference-hero-left { animation-duration:44s; }
.reference-hero-center>img { animation-duration:50s; animation-delay:-8s; }
.reference-hero-right>img:first-child { animation-duration:39s; animation-delay:-4s; }
.reference-hero-right>img:last-child { animation-duration:47s; animation-delay:-12s; }
.reference-hero-center::before,.reference-hero-right>img { transition:filter 1s ease; }
.reference-hero-right>img { transition:filter 1s ease,scale 2.6s cubic-bezier(.2,.6,.2,1); }
.reference-hero-right>img:hover { filter:brightness(1.04); scale:1.025; }
.reference-hero-caption h1 { animation:reference-title-in 2.1s .18s cubic-bezier(.2,.7,.2,1) both; }
.reference-hero-caption p { animation:reference-caption-in 1.7s .48s cubic-bezier(.2,.7,.2,1) both; }
.reference-quote { position:relative; max-width:780px; margin:0 auto; padding:0 clamp(16px,3.2vw,44px); font-size:clamp(22px,1.4vw,29px); line-height:1.4; animation:reference-caption-in 1.8s .3s cubic-bezier(.2,.7,.2,1) both; }
.reference-quote::before,.reference-quote::after { position:absolute; color:rgba(60,64,70,.14); font:400 3.4em/1 'Cormorant Garamond',Georgia,serif; pointer-events:none; }
.reference-quote::before { content:"“"; left:0; top:-.36em; }
.reference-quote::after { content:"”"; right:0; bottom:-.65em; }
.reference-more-toggle { margin-top:18px; font-size:clamp(15px,1vw,18px); }
.reference-more-toggle span { transition:transform .4s cubic-bezier(.2,.6,.2,1); }
.reference-more-toggle.is-open span { transform:rotate(180deg); }
.reference-extended-wrap { display:grid; grid-template-rows:0fr; opacity:0; transition:grid-template-rows .6s cubic-bezier(.3,.7,.2,1),opacity .5s .05s; }
.reference-under.is-open .reference-extended-wrap { grid-template-rows:1fr; opacity:1; }
.reference-extended { min-height:0; overflow:hidden; max-width:780px; padding:0 clamp(16px,3.2vw,44px); text-align:left; transition:transform .65s cubic-bezier(.3,.7,.2,1); transform:translateY(-7px); }
.reference-under.is-open .reference-extended { transform:none; }
.reference-location-wrap { position:relative; z-index:5; width:max-content; max-width:100%; }
.reference-location-wrap::after { content:""; position:absolute; left:-8px; right:-8px; top:100%; height:30px; }
.reference-map-link { position:relative; z-index:61; width:max-content; max-width:100%; padding:4px 2px; text-decoration:none; cursor:pointer; }
.reference-map-link span { transition:transform .6s cubic-bezier(.2,.6,.2,1); }
.reference-location-wrap:hover .reference-map-link span,.reference-location-wrap:focus-within .reference-map-link span { transform:translateY(-3px) rotate(-8deg); }
.reference-location-pop { position:absolute; z-index:60; left:-14px; top:-16px; display:grid; grid-template-columns:1fr; width:min(820px,calc(100vw - 32px)); min-height:214px; padding:30px 22px 18px 166px; overflow:hidden; border:1px solid rgba(17,17,17,.08); border-radius:16px; background:rgba(255,255,255,.98); box-shadow:0 25px 70px rgba(0,0,0,.16); opacity:0; visibility:hidden; pointer-events:none; transform:translateY(8px) scale(.985); transform-origin:top left; transition:opacity .35s ease,visibility 0s linear .4s,transform .55s cubic-bezier(.2,.7,.2,1); }
.reference-location-wrap:hover .reference-location-pop,.reference-location-wrap:focus-within .reference-location-pop { opacity:1; visibility:visible; pointer-events:auto; transform:none; transition-delay:0s; }
.reference-pop-map { position:absolute; left:18px; top:25px; width:126px; height:154px; display:grid; place-items:center; overflow:hidden; color:#797d82; background:linear-gradient(135deg,#f1f1ef,#faf9f6); }
.reference-pop-map svg { position:absolute; inset:0; width:100%; height:100%; opacity:.75; }
.reference-pop-map span { position:relative; z-index:1; align-self:end; margin-bottom:13px; padding:4px 7px; background:rgba(255,255,255,.86); color:#34322f; font:italic 500 13px 'Cormorant Garamond',Georgia,serif; }
.reference-pop-nearby h3 { margin:0 0 10px; color:#34322f; font:italic 400 1.1rem/1.2 'Cormorant Garamond',Georgia,serif; }
.reference-nearby-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.reference-nearby-grid a { display:grid; grid-template-columns:46px minmax(0,1fr); align-items:center; gap:9px; color:#55524e; font:500 9px/1.4 Manrope,system-ui,sans-serif; letter-spacing:.1em; text-transform:uppercase; opacity:0; transform:translateY(9px); transition:opacity .45s ease,transform .65s cubic-bezier(.2,.7,.2,1),color .2s; transition-delay:0s; }
.reference-nearby-grid a:nth-child(2) { transition-delay:55ms; }
.reference-nearby-grid a:nth-child(3) { transition-delay:110ms; }
.reference-nearby-grid a:nth-child(4) { transition-delay:165ms; }
.reference-nearby-grid a:hover { color:#111; }
.reference-nearby-grid img { display:block; width:46px; height:46px; object-fit:cover; filter:grayscale(.65); transition:filter .6s ease,transform .6s cubic-bezier(.2,.7,.2,1); }
.reference-nearby-grid a:hover img { filter:none; transform:translateY(-2px); }
.reference-location-wrap:hover .reference-nearby-grid a,.reference-location-wrap:focus-within .reference-nearby-grid a { opacity:1; transform:none; transition-delay:calc(var(--nearby-index,0) * 65ms + 100ms); }
.reference-location-wrap:hover .reference-nearby-grid a:nth-child(2),.reference-location-wrap:focus-within .reference-nearby-grid a:nth-child(2) { transition-delay:165ms; }
.reference-location-wrap:hover .reference-nearby-grid a:nth-child(3),.reference-location-wrap:focus-within .reference-nearby-grid a:nth-child(3) { transition-delay:230ms; }
.reference-location-wrap:hover .reference-nearby-grid a:nth-child(4),.reference-location-wrap:focus-within .reference-nearby-grid a:nth-child(4) { transition-delay:295ms; }
.reference-pop-map-link { display:inline-flex; align-items:center; gap:8px; margin-top:11px; color:#77736e; font:600 8px Manrope,system-ui,sans-serif; letter-spacing:.15em; text-transform:uppercase; }
.reference-pop-map-link span { font-size:15px; transition:transform .25s; }
.reference-pop-map-link:hover span { transform:translateX(3px); }
.reference-strip-shell { position:relative; min-width:0; width:100%; }
.reference-strip-shell .portfolio-strip-wrap { overflow:hidden; cursor:grab; }
.reference-strip-shell .portfolio-strip { width:100%; min-width:0; max-width:100%; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:rgba(17,17,17,.3) transparent; }
.reference-strip-shell .portfolio-strip.is-dragging { cursor:grabbing; scroll-behavior:auto; user-select:none; }
.reference-strip-shell .portfolio-thumb { scroll-snap-align:start; }
.reference-strip-arrow { position:absolute; z-index:5; top:calc(50% - 21px); width:42px; height:42px; display:grid; place-items:center; padding:0; border:0; border-radius:50%; color:#333; background:rgba(255,255,255,.94); box-shadow:0 2px 12px rgba(0,0,0,.2); cursor:pointer; font:300 27px/1 'Cormorant Garamond',Georgia,serif; transition:opacity .2s,transform .2s; }
.reference-strip-arrow.previous { left:-12px; }
.reference-strip-arrow.next { right:-12px; }
.reference-strip-arrow:disabled { opacity:0; pointer-events:none; }
.reference-strip-arrow:not(:disabled):hover { transform:scale(1.07); }
.reference-photographers .photog-gallery-card { overflow:visible; }
@keyframes reference-hero-in { from {opacity:0;transform:translateY(8px)} to {opacity:1;transform:none} }
@keyframes reference-kenburns { from { transform:scale(1.04) translate(0,0) } to { transform:scale(1.12) translate(-.8%,-.5%) } }
@keyframes reference-title-in { from {opacity:0;transform:translateY(10px);letter-spacing:.55em} to {opacity:1;transform:none;letter-spacing:.34em} }
@keyframes reference-caption-in { from {opacity:0;transform:translateY(8px)} to {opacity:1;transform:none} }
@keyframes reference-meter-fill { to {transform:scaleX(1)} }
@keyframes reference-badge-float { 0%,100% {transform:translateY(0)} 50% {transform:translateY(-4px)} }
@keyframes reference-badge-shine { 0%,58% {transform:translateX(-85%)} 88%,100% {transform:translateX(85%)} }
@keyframes reference-note-in { from {opacity:0;transform:translate(8px,4px) rotate(-3deg)} to {opacity:.72;transform:rotate(-3deg)} }
@media(max-width:900px) {
  .reference-location-pop { left:-10px; width:min(700px,calc(100vw - 32px)); padding-left:145px; }
  .reference-pop-map { left:14px; width:112px; }
  .reference-nearby-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:640px) {
  .reference-location-wrap { position:relative; }
  .reference-location-pop { position:absolute; top:calc(100% + 8px); left:16px; width:calc(100vw - 32px); min-height:0; padding:16px; grid-template-columns:1fr; }
  .reference-pop-map { display:none; }
  .reference-nearby-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .reference-nearby-grid a { opacity:1; transform:none; }
  .reference-strip-arrow { display:none; }
  .reference-quote { font-size:21px; }
}

@media(prefers-reduced-motion:reduce) {
  .reference-hero,.reference-hero-left,.reference-hero-center>img,.reference-hero-right>img,.reference-hero-caption h1,.reference-hero-caption p,.reference-quote,.reference-meter>i em,.reference-badge,.reference-badge::after,.reference-handwritten span { animation:none; }
  .reference-extended-wrap,.reference-extended { transition:none; }
}

.catalog-page {
  padding-top: 0;
  padding-bottom: 5rem;
  overflow-x: clip;
}
.catalog-hero {
  position: relative;
  overflow: hidden;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-top: -64px;
  padding-top: 64px;
  min-height: clamp(34rem, 78vh, 56rem);
  display: flex;
  align-items: flex-end;
  padding-bottom: clamp(2rem, 4vw, 3.5rem);
  background: #fff;
  isolation: isolate;
  background-image:
    linear-gradient(to right,
      rgba(255,255,255,1) 0%,
      rgba(255,255,255,.97) 10%,
      rgba(255,255,255,.72) 20%,
      rgba(255,255,255,.26) 31%,
      rgba(255,255,255,.10) 40%,
      rgba(255,255,255,.10) 60%,
      rgba(255,255,255,.26) 69%,
      rgba(255,255,255,.72) 80%,
      rgba(255,255,255,.97) 90%,
      rgba(255,255,255,1) 100%);
}
.catalog-hero-inner {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 3rem;
}
.catalog-hero-copy {
  position: relative;
  z-index: 1;
  max-width: 920px;
  padding-right: 1rem;
  color: var(--ink);
}
.catalog-hero-no-image {
  min-height: clamp(28rem, 68vh, 48rem);
}
.catalog-hero::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: min(100%, 1920px);
  transform: translateX(-50%) scale(1.04);
  background-image:
    linear-gradient(to bottom,
      rgba(255,255,255,.03) 0%,
      rgba(255,255,255,.14) 38%,
      rgba(255,255,255,.48) 75%,
      rgba(255,255,255,.94) 100%),
    var(--hero-image, none);
  background-size: cover, cover;
  background-position: center center, center 56%;
  background-repeat: no-repeat;
  filter: saturate(.62) brightness(1.03) contrast(.92);
  -webkit-mask-image: linear-gradient(to right,
    transparent 0%,
    rgba(0,0,0,.18) 6%,
    rgba(0,0,0,.72) 14%,
    #000 24%,
    #000 76%,
    rgba(0,0,0,.72) 86%,
    rgba(0,0,0,.18) 94%,
    transparent 100%);
  mask-image: linear-gradient(to right,
    transparent 0%,
    rgba(0,0,0,.18) 6%,
    rgba(0,0,0,.72) 14%,
    #000 24%,
    #000 76%,
    rgba(0,0,0,.72) 86%,
    rgba(0,0,0,.18) 94%,
    transparent 100%);
}
.catalog-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to right,
      rgba(255,255,255,1) 0%,
      rgba(255,255,255,.98) 9%,
      rgba(255,255,255,.82) 17%,
      rgba(255,255,255,.42) 25%,
      rgba(255,255,255,.10) 35%,
      transparent 43%,
      transparent 57%,
      rgba(255,255,255,.10) 65%,
      rgba(255,255,255,.42) 75%,
      rgba(255,255,255,.82) 83%,
      rgba(255,255,255,.98) 91%,
      rgba(255,255,255,1) 100%),
    radial-gradient(ellipse at 16% 18%, rgba(255,255,255,.58), transparent 32%),
    radial-gradient(ellipse at 84% 16%, rgba(255,255,255,.56), transparent 32%),
    linear-gradient(to bottom, transparent 58%, #fff 100%);
  pointer-events: none;
}
@media (min-width: 1800px) {
  .catalog-hero {
    background-image:
      linear-gradient(to right,
        rgba(250,250,250,1) 0%,
        rgba(250,250,250,.995) 12%,
        rgba(250,250,250,.92) 19%,
        rgba(250,250,250,.60) 27%,
        rgba(250,250,250,.20) 36%,
        rgba(250,250,250,.08) 43%,
        rgba(250,250,250,.08) 57%,
        rgba(250,250,250,.20) 64%,
        rgba(250,250,250,.60) 73%,
        rgba(250,250,250,.92) 81%,
        rgba(250,250,250,.995) 88%,
        rgba(250,250,250,1) 100%);
  }
  .catalog-hero::before {
    width: min(100%, 1760px);
    transform: translateX(-50%) scale(1.015);
    -webkit-mask-image: linear-gradient(to right,
      transparent 0%,
      rgba(0,0,0,.08) 5%,
      rgba(0,0,0,.42) 12%,
      rgba(0,0,0,.82) 20%,
      #000 29%,
      #000 71%,
      rgba(0,0,0,.82) 80%,
      rgba(0,0,0,.42) 88%,
      rgba(0,0,0,.08) 95%,
      transparent 100%);
    mask-image: linear-gradient(to right,
      transparent 0%,
      rgba(0,0,0,.08) 5%,
      rgba(0,0,0,.42) 12%,
      rgba(0,0,0,.82) 20%,
      #000 29%,
      #000 71%,
      rgba(0,0,0,.82) 80%,
      rgba(0,0,0,.42) 88%,
      rgba(0,0,0,.08) 95%,
      transparent 100%);
  }
  .catalog-hero::after {
    background:
      linear-gradient(to right,
        rgba(250,250,250,1) 0%,
        rgba(250,250,250,.998) 8%,
        rgba(250,250,250,.92) 15%,
        rgba(250,250,250,.68) 22%,
        rgba(250,250,250,.30) 30%,
        rgba(250,250,250,.08) 38%,
        transparent 45%,
        transparent 55%,
        rgba(250,250,250,.08) 62%,
        rgba(250,250,250,.30) 70%,
        rgba(250,250,250,.68) 78%,
        rgba(250,250,250,.92) 85%,
        rgba(250,250,250,.998) 92%,
        rgba(250,250,250,1) 100%),
      radial-gradient(ellipse at 13% 18%, rgba(250,250,250,.92), transparent 28%),
      radial-gradient(ellipse at 87% 18%, rgba(250,250,250,.92), transparent 28%),
      linear-gradient(to bottom, transparent 55%, #fafafa 100%);
  }
}
.catalog-hero .h-display {
  max-width: 12em;
  margin-top: .25rem;
  line-height: .88;
  letter-spacing: 0;
}
.catalog-hero-meta-line {
  display: flex;
  align-items: center;
  gap: .75rem;
  flex-wrap: wrap;
  margin-bottom: .55rem;
}
.catalog-hero-city-link {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  color: rgba(17,17,17,.66);
  text-decoration: none;
  font-size: .72rem;
  line-height: 1.2;
  letter-spacing: .18em;
  text-transform: uppercase;
  transition: color .18s ease, opacity .18s ease;
}
.catalog-hero-city-link svg {
  width: .98rem;
  height: .98rem;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .9;
}
.catalog-hero-city-link:hover,
.catalog-hero-city-link:focus {
  color: rgba(17,17,17,.92);
}
.catalog-hero-minutes {
  display: inline-flex;
  align-items: center;
  color: rgba(17,17,17,.50);
  font-size: .68rem;
  line-height: 1.2;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.catalog-hero-minutes::before {
  content: "";
  width: .22rem;
  height: .22rem;
  margin-right: .75rem;
  border-radius: 999px;
  background: rgba(17,17,17,.32);
}
.catalog-lede {
  max-width: 34rem;
  margin-top: .9rem;
  color: rgba(17,17,17,.70);
  font-size: clamp(.95rem, 1vw, 1.05rem);
  line-height: 1.68;
}
.catalog-section {
  margin-top: clamp(2.5rem, 5vw, 4.5rem);
}
.catalog-hero + .catalog-section {
  position: relative;
  margin-top: 0;
  padding-top: clamp(1.8rem, 3.8vw, 3.2rem);
}
.catalog-hero + .catalog-section::before {
  content: "";
  position: absolute;
  left: 50%;
  top: calc(clamp(2.6rem, 5.5vw, 4.8rem) * -1);
  width: 100vw;
  height: clamp(9rem, 16vw, 15rem);
  transform: translateX(-50%);
  background:
    linear-gradient(to bottom,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,.80) 20%,
      rgba(255,255,255,1) 38%,
      rgba(253,253,253,.98) 58%,
      rgba(251,251,251,.99) 78%,
      var(--bone) 100%);
  pointer-events: none;
  z-index: 0;
}
.catalog-hero + .catalog-section > * {
  position: relative;
  z-index: 1;
}
.catalog-section-featured {
  margin-top: 0;
  padding: 0;
  background: transparent;
}
.catalog-section-more {
  margin-top: clamp(3rem, 6vw, 5.5rem);
}
.catalog-section-genre .catalog-section-head {
}
.catalog-section-location .catalog-section-head {
  padding-right: clamp(0rem, 6vw, 4rem);
}
.catalog-section-head {
  display: flex;
  align-items: end;
  justify-content: flex-start;
  gap: 1rem;
  margin-bottom: .15rem;
  padding-bottom: 0;
  border-bottom: none;
}
.catalog-section-head h2 {
  margin: .2rem 0 0;
  font-size: clamp(1.65rem, 3vw, 2.65rem);
  line-height: .9;
  font-style: italic;
}
.catalog-section-note {
  margin: .55rem 0 0;
  width: 100%;
  flex-basis: 100%;
  color: var(--muted);
  font-size: .92rem;
  line-height: 1.65;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (max-width: 992px) {
  .catalog-hero {
    min-height: clamp(30rem, 68vh, 48rem);
  }
}
@media (max-width: 640px) {
  .catalog-page {
    padding-top: 0;
  }
  .catalog-hero {
    min-height: clamp(28rem, 62vh, 42rem);
    padding-bottom: 2.4rem;
  }
  .catalog-hero-inner {
    padding: 0 1.5rem;
  }
  .catalog-section-head {
    align-items: start;
    flex-direction: column;
  }
  .catalog-section-note {
    max-width: 100%;
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
  }
}
@media (min-width: 1921px) {
  .catalog-hero::before {
    width: 1920px;
  }
  .catalog-hero::after {
    background:
      linear-gradient(to right,
        rgba(250,250,250,1) 0%,
        rgba(250,250,250,.72) 10%,
        transparent 24%,
        transparent 76%,
        rgba(250,250,250,.72) 90%,
        rgba(250,250,250,1) 100%),
      radial-gradient(ellipse at 18% 18%, rgba(250,250,250,.44), transparent 34%),
      radial-gradient(ellipse at 82% 16%, rgba(250,250,250,.38), transparent 35%),
      linear-gradient(to bottom, transparent 58%, #fafafa 100%);
  }
}

/* ── Photo strip (horizontal scroll) — photographer profile ─────── */
.photo-strip {
  display: flex; gap: 0.75rem;
  overflow-x: auto; scroll-snap-type: x mandatory;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  padding: 0 3rem 1rem;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: rgba(17,17,17,.18) transparent;
}
.photo-strip::-webkit-scrollbar { height: 3px; }
.photo-strip::-webkit-scrollbar-track { background: transparent; }
.photo-strip::-webkit-scrollbar-thumb { background: rgba(17,17,17,.18); border-radius: 99px; }
.photo-strip-item {
  flex-shrink: 0; scroll-snap-align: start;
  width: 280px; aspect-ratio: 2/3;
  position: relative; overflow: hidden;
  border-radius: var(--radius); background: var(--sand);
  cursor: pointer;
}
.photo-strip-item--wide {
  width: 360px;
  aspect-ratio: 4/3;
}
.photo-share-mode .photo-strip-item.is-selected,
.photo-share-mode .profile-gallery-item.is-selected {
  outline: 0;
  outline-offset: 0;
}
.photo-select-toggle {
  position: absolute;
  top: .6rem;
  right: .6rem;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.55);
  background: rgba(255,255,255,.78);
  color: var(--ink);
  cursor: pointer;
  transition: transform .15s ease, background .15s ease, opacity .15s ease;
  opacity: 0;
  pointer-events: none;
}
.photo-select-toggle span {
  font-size: .8rem;
  line-height: 1;
  transform: translateY(-1px);
}
.photo-select-toggle:hover {
  transform: scale(1.04);
  background: rgba(255,255,255,.95);
}
.photo-share-mode .photo-select-toggle {
  opacity: 1;
  pointer-events: auto;
}
.photo-share-mode .photo-strip-item.is-selected .photo-select-toggle,
.photo-share-mode .profile-gallery-item.is-selected .photo-select-toggle {
  background: var(--ink);
  color: var(--bone);
  border-color: transparent;
}
.photo-strip-item img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 900ms cubic-bezier(0.22,1,0.36,1);
}
.photo-strip-item:hover img { transform: scale(1.06); }

/* ── Portfolio strip wrapper — self-contained per photographer ── */
.portfolio-strip-wrap {
  position: relative;
  overflow: hidden; /* ensures strip never bleeds into adjacent rows */
  -webkit-mask-image: linear-gradient(to right, black 85%, transparent 100%);
          mask-image: linear-gradient(to right, black 85%, transparent 100%);
  width: 100%;
}

/* Photographer row portfolio strip */
.portfolio-strip {
  display: flex; gap: 0.75rem;
  overflow-x: auto; scroll-snap-type: x mandatory;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 0.75rem;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: rgba(17,17,17,.15) transparent;
}
.portfolio-strip::-webkit-scrollbar { height: 3px; }
.portfolio-strip::-webkit-scrollbar-track { background: transparent; }
.portfolio-strip::-webkit-scrollbar-thumb { background: rgba(17,17,17,.15); border-radius: 99px; }
.portfolio-thumb {
  flex-shrink: 0; scroll-snap-align: start;
  width: 248px; aspect-ratio: 5/6;
  position: relative; overflow: hidden;
  border-radius: 16px; background: var(--sand);
  box-shadow: 0 3px 10px rgba(17,17,17,.045);
  cursor: pointer;
  transition:
    width .22s ease,
    box-shadow .22s ease,
    opacity .18s ease,
    transform .18s ease;
}
.portfolio-thumb--portrait {
  width: 248px;
  aspect-ratio: 5/6;
}
/* Double-wide feature tile — landscape proportion */
.portfolio-thumb--wide {
  width: 360px; aspect-ratio: 4/3;
}
.portfolio-thumb img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 1400ms cubic-bezier(0.22,1,0.36,1), filter 1400ms cubic-bezier(0.22,1,0.36,1);
  transform: scale(1.07) translate3d(0, 0, 0);
  transform-origin: center center;
  filter: saturate(.96) brightness(.98);
}
.portfolio-thumb:hover img {
  transform: scale(1.08) translate3d(-6px, -1px, 0);
  filter: saturate(1.02) brightness(1.01);
}
.portfolio-thumb:nth-child(even):hover img {
  transform: scale(1.08) translate3d(5px, -1px, 0);
}
.portfolio-thumb--wide:hover img {
  transform: scale(1.075) translate3d(-7px, -1px, 0);
}
.portfolio-thumb--wide:nth-child(even):hover img {
  transform: scale(1.075) translate3d(6px, 0, 0);
}
.portfolio-thumb::after {
  content: '';
  position: absolute; inset-x: 0; bottom: 0; height: 45%;
  background: linear-gradient(to top, rgba(0,0,0,0.55), transparent);
  pointer-events: none;
  transition: opacity 1200ms cubic-bezier(0.22,1,0.36,1);
}
.portfolio-thumb:hover::after {
  opacity: .72;
}

/* ── Photographer row ─────────────────────────────────────────── */
.photographer-row {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  padding: 2.25rem 0;
  border-top: 1px solid rgba(17,17,17,0.07);
  align-items: stretch;
  /* critical: prevent right col from expanding past viewport */
  max-width: 100%;
  overflow: hidden;
}
@media (max-width: 992px) { .photographer-row { grid-template-columns: 1fr; } }

.photog-meta {
  position: relative;
  top: auto;
  align-self: stretch;
  height: 100%;
  display: flex;
  padding-bottom: 8px;
}
.photog-meta-card {
  background:
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(251,250,247,.94)),
    radial-gradient(circle at top right, rgba(169,145,109,.10), transparent 34%);
  border: 1px solid rgba(17,17,17,.07);
  border-radius: 14px;
  padding: 1.15rem 1.15rem 1rem;
  overflow: visible;
  box-shadow: 0 6px 18px rgba(17,17,17,.035);
  backdrop-filter: blur(12px);
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.photog-gallery {
  min-width: 0;
  width: 100%;
  display: flex;
}
.photog-gallery-card {
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: .05rem 0;
  border: 0;
  border-radius: 14px;
  background: transparent;
  overflow: hidden;
  display: flex;
  align-items: center;
}
@media (min-width: 1600px) {
  .catalog-section .photographer-row {
    overflow: visible;
  }
  .catalog-section .photog-gallery {
    width: calc(100% + ((100vw - 1440px) / 2));
  }
  .catalog-section .portfolio-strip-wrap {
    -webkit-mask-image: linear-gradient(to right, black 92%, transparent 100%);
            mask-image: linear-gradient(to right, black 92%, transparent 100%);
  }
}
@media (min-width: 1921px) {
  .catalog-section .photog-gallery {
    width: calc(100% + ((100vw - 1440px) / 2));
  }
}
.photog-topline {
  display: block;
  margin-bottom: .9rem;
}
.photog-titleblock {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .8rem;
}
.photog-meta-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .75rem;
}
.photog-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(1.95rem, 2.45vw, 2.55rem);
  font-weight: 500;
  font-style: italic;
  letter-spacing: -.028em;
  line-height: .92;
  margin: 0;
}
.photog-city {
  display: inline-flex;
  align-items: center;
  gap: .34rem;
  margin-top: 0;
  color: #7f7468;
  font-size: .58rem;
  letter-spacing: .22em;
}
.photog-city-icon {
  flex: 0 0 auto;
  width: 11px;
  height: 11px;
  opacity: .72;
}
.photog-price {
  display: inline-flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: .28rem;
  margin-left: auto;
  text-align: right;
}
.photog-price-label {
  font-size: .62rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .13em;
  color: #8d8378;
}
.photog-price-amount {
  font-family: inherit;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1;
  color: var(--ink);
}
.photog-rule {
  width: 56px;
  height: 1px;
  background: linear-gradient(90deg, rgba(17,17,17,.34), rgba(17,17,17,.08));
}
.photog-tagline {
  font-size: .88rem;
  line-height: 1.52;
  color: #756d66;
  max-width: 24ch;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  max-height: calc(1.52em * 3);
}
.photog-info-hints {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-top: .1rem;
}
.photog-info-hints--paired .photog-info-chip {
  flex: 1 1 0;
  justify-content: center;
}
.photog-info-chip {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: .32rem;
  min-height: 24px;
  padding: .2rem .45rem;
  border: 1px solid rgba(17,17,17,.10);
  border-radius: 999px;
  background: rgba(255,255,255,.82);
  color: #82776c;
  font-size: .62rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  cursor: help;
  outline: none;
  isolation: isolate;
}
.photog-info-chip--align-right {
  position: static;
}
.photog-info-chip svg {
  flex: 0 0 auto;
  opacity: .78;
}
.photog-tooltip {
  position: absolute;
  left: 0;
  bottom: calc(100% + 10px);
  width: min(300px, 42vw);
  max-width: min(300px, calc(100vw - 3rem));
  min-width: 200px;
  padding: .7rem .8rem;
  border: 1px solid rgba(17,17,17,.08);
  border-radius: 12px;
  background: rgba(255,255,255,.98);
  color: #262320;
  font-family: 'Manrope', system-ui, sans-serif;
  font-size: .74rem;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: 0;
  text-transform: none;
  white-space: normal;
  word-break: break-word;
  overflow-wrap: anywhere;
  text-wrap: pretty;
  box-shadow: 0 14px 34px rgba(17,17,17,.12);
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
  z-index: 8;
}
.photog-tooltip br {
  display: block;
  content: "";
  margin-top: .3rem;
}
.photog-tooltip--align-right {
  left: auto;
  right: 0;
  width: min(240px, calc(100% - .5rem));
  min-width: 0;
  text-align: left;
}
.photog-tooltip::before {
  content: "";
  position: absolute;
  left: 16px;
  top: calc(100% - 5px);
  width: 10px;
  height: 10px;
  border-right: 1px solid rgba(17,17,17,.08);
  border-bottom: 1px solid rgba(17,17,17,.08);
  background: rgba(255,255,255,.98);
  transform: translateY(6px) rotate(45deg);
  opacity: 0;
  visibility: hidden;
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
  pointer-events: none;
  z-index: 7;
}
.photog-tooltip--align-right::before {
  left: auto;
  right: 34px;
}
.photog-info-chip:hover .photog-tooltip,
.photog-info-chip:focus-visible .photog-tooltip {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}
.photog-info-chip:hover .photog-tooltip::before,
.photog-info-chip:focus-visible .photog-tooltip::before {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) rotate(45deg);
}
.photog-info-chip:hover,
.photog-info-chip:focus-visible {
  border-color: rgba(17,17,17,.18);
  background: rgba(255,255,255,.98);
}
.photog-actions {
  margin-top: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: .55rem;
  margin-top: auto;
}
.photog-actions .btn-mp {
  width: 100%;
  justify-content: center;
  min-height: 44px;
}
.photog-actions .btn-mp-primary {
  letter-spacing: .18em;
}
.photog-actions .btn-mp-secondary,
.photog-actions .btn-mp-unavailable {
  background: linear-gradient(180deg, rgba(247,246,242,.96), rgba(238,235,228,.96));
  border-color: rgba(17,17,17,.10);
  color: #7a7064;
}

.catalog-section-head {
  display: block;
  text-align: left;
  margin-bottom: 1.25rem;
}
.catalog-section-head > div {
  width: 100%;
  min-width: 0;
}
.catalog-section-head .kicker,
.catalog-section-head h2,
.catalog-section-head p,
.catalog-section-note {
  text-align: left;
}
@media (max-width: 992px) {
  .catalog-section-head { margin-bottom: 1rem; }
  .photog-gallery-card { padding: .95rem; }
}

/* ── Lead form sidebar ────────────────────────────────────────── */
#lead-offcanvas .offcanvas-body { padding: 0; display: flex; flex-direction: column; }
#lead-offcanvas .offcanvas { width: 520px !important; max-width: 100vw; background: var(--bone); }
#lead-offcanvas {
  min-height: 0;
}
#lead-offcanvas > div:first-child {
  flex: 0 0 auto;
  padding: .78rem 1.15rem .62rem !important;
}
#lead-offcanvas > div:first-child .kicker {
  font-size: .58rem;
}
#lf-photog-name {
  font-size: 1.28rem !important;
}
#lf-photog-tagline {
  font-size: .72rem !important;
}
.lead-header { padding: 2.5rem 2rem 1.25rem; border-bottom: 1px solid var(--line); }
.lead-body { flex: 1; min-height: 0; overflow-y: auto; padding: 1.5rem 2rem; }
#lf-form {
  min-height: 0;
  overflow-y: auto !important;
  padding: .72rem 1.15rem .7rem !important;
  gap: .5rem .7rem !important;
  scrollbar-width: thin;
}
#lead-offcanvas > div:last-child {
  flex: 0 0 auto;
  padding: .62rem 1.15rem !important;
}
.lf-name-field {
  grid-column: 1 / -1 !important;
}
.lf-contact-method-field {
  grid-column: 1 / 2 !important;
  align-self: stretch;
}
.lead-footer { padding: 1.25rem 2rem; border-top: 1px solid var(--line); background: var(--bone); }
.lead-label { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.18em; color: var(--ink); display: block; margin-bottom: 0.34rem; }
.form-control:focus, .form-select:focus { border-color: rgba(17,17,17,0.4); box-shadow: 0 0 0 2px rgba(17,17,17,0.1); }
.lf-contact-methods {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  gap: .28rem;
  height: 2.45rem;
  padding: .18rem;
  border: 1px solid rgba(17,17,17,.12);
  border-radius: 999px;
  background: rgba(255,255,255,.72);
}
.lf-contact-option {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-width: 0;
  padding: 0 .38rem;
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--muted);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
  white-space: nowrap;
}
.lf-contact-option.is-active {
  background: var(--ink);
  color: var(--bone);
}
.lf-contact-option:disabled,
.lf-contact-option.is-disabled {
  cursor: not-allowed;
  opacity: .34;
}
#lf-phone-wrap .iti {
  width: 100%;
}
#lf-phone-wrap .iti__tel-input,
#lf-phone-wrap .iti input {
  width: 100%;
  border-color: rgba(17,17,17,.18);
}
.lf-contact-detail {
  grid-column: 2 / 3;
  min-height: 0;
  align-self: end;
}
.lf-contact-group-title {
  grid-column: 1 / -1 !important;
  margin-bottom: -.46rem;
}
.lf-contact-group-title .lead-label {
  margin-bottom: 0;
}
.lf-contact-detail > div {
  width: 100%;
  min-width: 0;
}
.lf-contact-detail .form-control,
.lf-contact-detail .iti {
  max-width: none;
}
.lf-contact-detail .lead-label {
  display: none;
}
.lf-contact-detail input.form-control,
#lf-phone-wrap .iti__tel-input,
#lf-phone-wrap .iti input {
  height: 2.45rem;
  min-height: 2.45rem;
}
.lf-contact-hint {
  display: none;
}
.lf-field-error {
  min-height: 0;
  margin-top: .14rem;
  font-size: .72rem;
}
.lf-include-question-check {
  margin-top: 0;
  width: 100%;
  min-height: auto;
  padding: .06rem 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  white-space: normal;
  color: var(--muted);
  font-size: .78rem;
}
.lf-message-block {
  grid-column: 1 / -1;
  display: grid;
  gap: .45rem;
}
.lf-message-block textarea {
  min-height: 7.2rem;
  resize: vertical;
  line-height: 1.55;
}
.lf-date-range-field {
  margin: .52rem 0 .5rem;
}
.lf-date-range-control {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr);
  gap: .34rem;
  align-items: center;
  padding: .34rem;
  border: 1px solid rgba(17,17,17,.12);
  border-radius: 12px;
  background: rgba(255,255,255,.62);
}
.lf-date-range-control input {
  border-color: rgba(17,17,17,.18);
  background: #fff;
}
.lf-date-mode-switch {
  display: inline-grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  padding: .16rem;
  border: 1px solid rgba(17,17,17,.12);
  border-radius: 999px;
  background: rgba(255,255,255,.85);
  white-space: nowrap;
}
.lf-date-mode-switch button {
  border: 0;
  border-radius: 999px;
  background: transparent;
  color: var(--muted);
  min-height: 2.05rem;
  padding: 0 .58rem;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  cursor: pointer;
}
.lf-date-mode-switch button.is-active {
  background: var(--ink);
  color: var(--bone);
}
.lf-date-range-control[data-mode="specific"] #lf-date-to {
  display: none;
}
.lf-date-range-control[data-mode="specific"] {
  grid-template-columns: auto minmax(0, 1fr);
}
.lf-when-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: .52rem;
  align-items: end;
}
.lf-when-grid .chip-row,
.lf-time-options {
  flex-wrap: nowrap;
  gap: .32rem;
  overflow-x: auto;
  padding-bottom: .1rem;
  scrollbar-width: thin;
}
.lf-weekday-field {
  display: none;
}
.lf-weekday-field.is-visible {
  display: block;
}
.lf-time-options .chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.1rem;
  padding-inline: .8rem;
  letter-spacing: .06em;
  font-weight: 800;
}
.lf-time-select {
  display: none;
}
.lf-weekday-field > div:first-child,
.lf-time-field > div:first-child {
  margin-bottom: .35rem !important;
  color: var(--ink) !important;
  font-size: .72rem !important;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.lf-captcha-picture {
  display: flex;
  align-items: center;
  gap: .45rem;
  user-select: none;
}
.lf-captcha-block {
  min-width: 0;
  padding: .42rem .48rem;
  border: 1px solid rgba(17,17,17,.14);
  border-radius: var(--radius);
  background: #fff;
}
.lf-action-panel {
  display: grid;
  gap: .52rem;
  padding: .62rem .75rem;
  border: 1px solid rgba(17,17,17,.14);
  border-radius: 10px;
  background: #fff;
}
.lf-response-consent {
  align-items: flex-start;
  width: 100%;
  min-width: 0;
  color: var(--ink);
  font-weight: 600;
  font-size: .82rem;
}
.lf-response-consent span {
  max-width: 44rem;
}
.lf-action-error {
  min-height: .35rem;
  margin-top: .24rem;
  font-size: .72rem;
}
.lf-captcha-label {
  color: var(--muted);
  font-size: .58rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  white-space: nowrap;
}
.lf-captcha-img {
  width: 7rem;
  height: 2rem;
  border-radius: 0;
  flex: 0 0 auto;
  pointer-events: none;
}
.lf-footer-row {
  display: grid;
  grid-template-columns: auto minmax(190px, 1fr);
  gap: .6rem;
  align-items: start;
}
.lf-footer-row .btn-mp {
  width: 100%;
  min-height: calc(2rem + .84rem + 2px);
  height: calc(2rem + .84rem + 2px);
  justify-content: center;
  align-self: start;
}
.lf-footer-row .btn-mp:disabled {
  cursor: not-allowed;
  opacity: .48;
}
#lf-captcha {
  height: 2rem;
  min-height: 2rem;
  padding-top: .25rem;
  padding-bottom: .25rem;
}
.lf-copy-check {
  display: inline-flex;
  align-items: center;
  gap: .48rem;
  color: var(--muted);
  font-size: .84rem;
  line-height: 1.35;
  cursor: pointer;
  user-select: none;
  min-width: 0;
}
.lf-copy-check input {
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--ink);
  flex: 0 0 20px;
}
.lf-include-question-check {
  min-height: 1.8rem;
}
.lf-include-question-check.is-contact-hidden {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}
.lf-response-consent.lf-copy-check {
  font-size: .86rem;
  line-height: 1.35;
}

/* Lead drawer: final balanced layout */
#lead-offcanvas {
  width: min(680px, 100vw) !important;
}
#lead-offcanvas > div:first-child {
  padding: .9rem 1.25rem .72rem !important;
}
#lf-form {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: .82rem .9rem !important;
  padding: 1rem 1.25rem .95rem !important;
}
#lf-form .form-control,
#lf-form .form-select,
#lf-form input[type="date"] {
  min-height: 44px;
  border-radius: 11px;
  background: #fff;
}
.lf-name-field,
.lf-contact-group-title,
.lf-contact-method-field,
.lf-contact-detail {
  align-self: stretch;
}
.lf-name-field {
  grid-column: 1 / -1 !important;
}
.lf-contact-method-field {
  grid-column: 1 / 2 !important;
}
.lf-contact-detail {
  grid-column: 2 / 3 !important;
  display: grid;
  gap: .35rem;
  align-items: start;
}
.lf-contact-detail > div {
  width: 100%;
}
.lf-contact-detail .lead-label,
.lf-contact-hint {
  display: none !important;
}
.lf-contact-methods {
  min-height: 44px;
  height: 44px;
}
.lf-contact-methods {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
  gap: 3px;
  padding: 3px;
  border: 1px solid rgba(17,17,17,.14);
  border-radius: 11px;
  background: #fff;
}
.lf-contact-option {
  border-radius: 8px;
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .07em;
}
.lf-include-question-check {
  width: 100%;
  min-height: auto;
  height: auto;
  display: inline-flex;
  align-items: center;
  padding: .05rem 0 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--muted);
  font-size: .84rem;
}
.lf-message-block {
  grid-column: 1 / -1 !important;
}
.lf-message-block textarea {
  min-height: 118px;
}
#lf-when-section,
#lf-packages-section {
  grid-column: 1 / -1 !important;
  border-top: 1px solid rgba(17,17,17,.08) !important;
  padding-top: .85rem !important;
}
#lf-when-section > .lead-label {
  margin-bottom: .6rem;
}
.lf-date-range-field {
  margin: 0 0 .62rem;
}
.lf-date-range-control {
  min-height: 48px;
  padding: 4px;
  border-radius: 12px;
  background: #fff;
}
.lf-date-mode-switch {
  align-self: stretch;
  border: 0;
  background: rgba(17,17,17,.045);
  border-radius: 9px;
}
.lf-date-mode-switch button {
  min-height: 38px;
  border-radius: 8px;
}
.lf-when-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: .62rem;
}
.lf-weekday-field > div:first-child,
.lf-time-field > div:first-child {
  font-size: .76rem !important;
  letter-spacing: .06em;
  margin-bottom: .42rem !important;
}
.lf-when-grid .chip-row,
.lf-time-options {
  display: flex;
  flex-wrap: wrap;
  gap: .38rem;
  overflow: visible;
}
.chip {
  min-height: 34px;
  padding: .42rem .72rem;
  border-radius: 999px;
  background: #fff;
  font-size: .66rem;
  font-weight: 750;
  letter-spacing: .07em;
}
.lf-time-options .chip {
  min-height: 36px;
}
#lead-offcanvas > div:last-child {
  padding: .85rem 1.25rem 1rem !important;
  border-top: 1px solid rgba(17,17,17,.08) !important;
  background: var(--bone) !important;
}
.lf-action-panel {
  display: grid;
  gap: .58rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}
.lf-footer-row {
  grid-template-columns: minmax(220px, auto) minmax(220px, 1fr);
  gap: .72rem;
  align-items: start;
}
.lf-response-consent.lf-copy-check {
  align-items: flex-start;
  gap: .55rem;
  font-size: .9rem;
  line-height: 1.42;
  white-space: pre-line;
  padding: 0;
  border: 0;
  background: transparent;
  min-height: auto;
  height: auto;
}
.lf-response-consent.lf-copy-check input {
  width: 23px;
  height: 23px;
  flex-basis: 23px;
  margin-top: .04rem;
}
@media (max-width: 640px) {
  #lf-form,
  .lf-date-range-control,
  .lf-footer-row {
    grid-template-columns: 1fr !important;
  }
  .lf-name-field,
  .lf-contact-group-title,
  .lf-contact-method-field,
  .lf-contact-detail {
    grid-column: 1 / -1 !important;
  }
  .lf-footer-row {
    gap: .55rem;
  }
}
body.photo-share-mode #lead-offcanvas .lead-body {
  overflow-y: auto !important;
}
body.photo-share-mode #lf-form {
  gap: .5rem .7rem !important;
}
body.photo-share-mode #lf-email-wrap {
  grid-column: 1 / -1 !important;
}
body.photo-share-mode #lf-question-note {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) auto;
  gap: .38rem .55rem;
  align-items: center;
  margin-top: .5rem !important;
  padding: .52rem .62rem !important;
  font-size: .7rem !important;
}
body.photo-share-mode #lf-question-note #lf-select-photos-btn {
  padding: .42rem .62rem !important;
  border-radius: 10px !important;
  font-size: .58rem !important;
  letter-spacing: .12em !important;
}
body.photo-share-mode #lf-question-note > #lf-selected-wrap {
  grid-column: 1 / -1;
}
body.photo-share-mode #lf-question-note:not(.has-selected-photos) > #lf-selected-wrap {
  display: none !important;
}
@media (max-width: 640px) {
  #lf-form {
    grid-template-columns: 1fr !important;
  }
  #lf-form > div,
  .lf-name-field,
  .lf-contact-group-title,
  .lf-contact-method-field,
  #lf-phone-wrap,
  #lf-email-wrap,
  .lf-contact-detail,
  #lf-form [data-lead-message-block],
  .lf-when-grid {
    grid-column: 1 / -1 !important;
  }
  .lf-when-grid,
  .lf-date-range-control {
    grid-template-columns: 1fr;
  }
  .lf-contact-detail {
    grid-template-columns: 1fr;
    grid-column: 1 / -1 !important;
  }
  .lf-include-question-check {
    min-height: 0;
    white-space: normal;
  }
  .lf-date-range-control span {
    display: none;
  }
  .lf-copy-check {
    min-width: 0;
  }
  .lf-contact-option {
    flex: 1 1 auto;
  }
  #lead-offcanvas {
    width: 100vw !important;
  }
  .lf-captcha-picture {
    max-width: 100%;
    gap: .32rem;
  }
  .lf-captcha-img {
    width: 6.5rem;
    height: 2.1rem;
  }
  .lf-captcha-label {
    display: none;
  }
  .lf-action-panel {
    padding: 0;
  }
  .lf-footer-row {
    grid-template-columns: 1fr;
    gap: .55rem;
  }
  .lf-captcha-picture {
    justify-content: space-between;
  }
}
/* Package radio cards */
.pkg-card {
  padding: 1rem 1.25rem; border: 1px solid rgba(17,17,17,0.12); border-radius: var(--radius);
  cursor: pointer; transition: border-color 0.15s, background 0.15s;
  margin-bottom: 0.5rem;
}
.pkg-card.selected { border-color: var(--ink); background: rgba(240,237,232,0.4); }
.pkg-card:hover:not(.selected) { border-color: rgba(17,17,17,0.35); }
.pkg-name { font-family: 'Cormorant Garamond', serif; font-size: 1.35rem; }
.pkg-price { font-size: 0.95rem; font-weight: 500; }
.pkg-delivers { font-size: 0.75rem; color: var(--muted); margin-top: 2px; }
.pkg-empty-note {
  padding: 1rem 1.25rem;
  border: 1px dashed rgba(17,17,17,.18);
  border-radius: var(--radius);
  background: rgba(255,255,255,.5);
}
.pkg-empty-title {
  font-size: 1.35rem;
  line-height: 1.05;
}
.pkg-empty-subtitle {
  margin-top: .25rem;
  color: var(--muted);
  font-size: .78rem;
}

/* Chip pills (weekdays / time) */
.chip-row { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.chip {
  padding: 5px 14px; font-size: 0.7rem; font-weight: 500;
  text-transform: uppercase; letter-spacing: 0.16em;
  border: 1px solid rgba(17,17,17,0.14); border-radius: 999px;
  background: transparent; color: var(--muted); cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.chip.active { background: var(--ink); color: var(--bone); border-color: var(--ink); }
.chip:disabled,
.chip.is-disabled {
  cursor: not-allowed;
  opacity: .36;
  background: rgba(17,17,17,.03);
}

/* ── Lightbox ─────────────────────────────────────────────────── */
#mp-lightbox {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(12,12,12,0.88);
  display: flex; align-items: center; justify-content: center;
  padding: 1rem;
  opacity: 0; pointer-events: none;
  transition: opacity 0.25s;
}
#mp-lightbox.open { opacity: 1; pointer-events: auto; }
#mp-lightbox img {
  max-height: 92vh; max-width: 94vw;
  object-fit: contain; border-radius: var(--radius);
  box-shadow: 0 32px 80px rgba(0,0,0,0.55);
  /* ensure image itself is never dimmed */
  filter: none !important; opacity: 1 !important;
}
.lb-btn {
  position: absolute; width: 44px; height: 44px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,0.1); border-radius: 999px;
  color: #fff; border: none; cursor: pointer;
  transition: background 0.15s;
}
.lb-btn:hover { background: rgba(255,255,255,0.22); }
#lb-close { top: 1.25rem; right: 1.25rem; }
#lb-prev  { left: 1.25rem; top: 50%; transform: translateY(-50%); }
#lb-next  { right: 1.25rem; top: 50%; transform: translateY(-50%); }
/* lb-counter removed */

/* ── Toast ────────────────────────────────────────────────────── */
#mp-toast-wrap { position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 9990; display: flex; flex-direction: column; gap: 0.5rem; }
.mp-toast {
  padding: 0.9rem 1.25rem; border-radius: var(--radius);
  font-size: 0.85rem; color: var(--bone);
  background: var(--ink); box-shadow: 0 8px 28px rgba(17,17,17,0.22);
  animation: toast-in 0.3s ease;
  max-width: 340px;
}
.mp-toast.error { background: #c0392b; }
@keyframes toast-in { from { opacity:0; transform: translateY(12px); } to { opacity:1; transform: none; } }

/* ── Inline CTA (photographer profile) ────────────────────────── */
#inline-cta {
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid var(--line);
}

/* ── Skeleton ─────────────────────────────────────────────────── */
.skeleton { background: var(--line); border-radius: var(--radius); animation: pulse 1.5s ease-in-out infinite; }
@keyframes pulse { 0%,100% { opacity:1; } 50% { opacity:0.5; } }

/* ── Dashboard / Forms ────────────────────────────────────────── */
.lead-row {
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: 1.25rem; background: var(--surface);
  display: grid; grid-template-columns: 1fr 2fr 1.2fr; gap: 1.25rem;
  align-items: start;
}
@media (max-width: 768px) { .lead-row { grid-template-columns: 1fr; } }

@media (max-width: 992px) {
  .photog-meta { position: static; height: auto; }
  .photog-meta-card { padding: 1.1rem; }
  .photog-tagline { max-width: none; }
}

.photo-mode-tabs {
  display: flex;
  gap: .5rem;
  margin: 0 0 1.25rem;
  flex-wrap: wrap;
}
.photo-mode-tabs a {
  padding: 8px 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  color: var(--muted);
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .18em;
}
.photo-mode-tabs a.active {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--bone);
}
.dashboard-photo-sections { display: flex; flex-direction: column; gap: 1.5rem; }
.dashboard-photo-row {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  padding: 1rem;
}
.dashboard-photo-row-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 1rem;
  margin-bottom: 1rem;
}
.dashboard-photo-row-head h2 {
  font-size: 1.8rem;
  line-height: 1;
  margin: .25rem 0 0;
}
.dashboard-photo-add {
  display: flex;
  align-items: center;
  gap: .5rem;
  min-width: min(340px, 100%);
}
.photo-upload-targets {
  min-width: 0;
}
.photo-target-grid {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
}
.photo-target-option {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  min-height: 32px;
  padding: 5px 10px;
  border: 1px solid rgba(17,17,17,.14);
  border-radius: 999px;
  color: var(--muted);
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  cursor: pointer;
  user-select: none;
}
.photo-target-option.primary {
  border-radius: var(--radius);
  color: var(--ink);
}
.photo-target-option input {
  margin: 0;
}
.dashboard-photo-empty {
  padding: 1.5rem;
  border: 1px dashed var(--line);
  border-radius: var(--radius);
  color: var(--muted);
  font-size: .85rem;
}
.photo-upload-batch-panels {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .8rem;
  margin-top: .95rem;
}
.photo-upload-batch-note {
  margin-top: .7rem;
  font-size: .75rem;
  color: var(--muted);
}
.upload-check-actions {
  display: flex;
  gap: .45rem;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: .75rem;
}
.upload-check-action {
  border: 1px solid rgba(17,17,17,.12);
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: var(--muted);
  font-size: .62rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  padding: .34rem .58rem;
  cursor: pointer;
}
.upload-check-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: .5rem;
  max-height: 13.5rem;
  overflow: auto;
  padding-right: .15rem;
}
.upload-check-pill {
  display: flex;
  align-items: center;
  gap: .55rem;
  min-height: 40px;
  padding: .65rem .75rem;
  border: 1px solid rgba(17,17,17,.12);
  border-radius: 14px;
  background: rgba(255,255,255,.96);
  color: var(--ink);
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.upload-check-pill:hover {
  border-color: rgba(17,17,17,.24);
  box-shadow: 0 6px 14px rgba(17,17,17,.05);
}
.upload-check-pill input {
  margin: 0;
  flex: 0 0 auto;
  accent-color: var(--ink);
}
.upload-check-pill span {
  display: block;
  font-size: .77rem;
  line-height: 1.3;
}
.upload-check-pill.is-partial {
  border-color: rgba(17,17,17,.28);
  background: rgba(17,17,17,.04);
}
@media (max-width: 900px) {
  .photo-upload-batch-panels {
    grid-template-columns: 1fr;
  }
  .upload-check-grid {
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
  }
}
.dashboard-photo-strip {
  display: flex;
  gap: .75rem;
  overflow-x: auto;
  padding-bottom: .35rem;
  scroll-snap-type: x mandatory;
}
.dashboard-photo-card {
  flex: 0 0 220px;
  scroll-snap-align: start;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  overflow: hidden;
  transition: opacity .15s, transform .15s, box-shadow .15s;
}
.dashboard-photo-card.dragging {
  opacity: .5;
  transform: scale(.98);
  box-shadow: 0 10px 28px rgba(17,17,17,.12);
}
.dashboard-photo-thumb {
  aspect-ratio: 3 / 2;
  position: relative;
  overflow: hidden;
  background: var(--sand);
  cursor: zoom-in;
}
.dashboard-photo-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.dashboard-photo-hidden {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.52);
  color: #fff;
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .2em;
}
.dashboard-photo-controls { padding: .65rem; }
.dashboard-order-control {
  display: grid;
  grid-template-columns: 32px 1fr 32px;
  gap: .35rem;
  align-items: center;
}
.dashboard-order-control button,
.dashboard-photo-actions button {
  border: 1px solid rgba(17,17,17,.14);
  border-radius: var(--radius);
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font-size: .7rem;
  text-transform: uppercase;
  letter-spacing: .12em;
}
.dashboard-order-control button { height: 32px; letter-spacing: 0; font-size: .9rem; }
.dashboard-order-control input {
  width: 100%;
  height: 32px;
  border: 1px solid rgba(17,17,17,.14);
  border-radius: var(--radius);
  text-align: center;
  font-size: .75rem;
}
.dashboard-photo-actions {
  display: flex;
  gap: .35rem;
  margin-top: .5rem;
}
.dashboard-photo-actions button {
  flex: 1;
  padding: 5px 6px;
}
.dashboard-photo-actions button.danger {
  border-color: rgba(192,57,43,.35);
  color: #a93226;
}
.dashboard-photo-preview {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: rgba(10,10,10,.9);
}
.dashboard-photo-preview.open { display: flex; }
.dashboard-photo-preview img {
  max-width: 94vw;
  max-height: 88vh;
  object-fit: contain;
  border-radius: var(--radius);
  box-shadow: 0 32px 80px rgba(0,0,0,.55);
}
.dashboard-photo-preview button {
  position: absolute;
  top: 1rem;
  right: 1rem;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: var(--radius);
  background: rgba(255,255,255,.08);
  color: #fff;
  padding: 8px 14px;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .7rem;
}
@media (max-width: 768px) {
  .dashboard-photo-form-grid { grid-template-columns: 1fr !important; }
  .dashboard-photo-row-head { align-items: stretch; flex-direction: column; }
  .dashboard-photo-add { min-width: 0; width: 100%; }
  .dashboard-photo-card { flex-basis: 170px; }
}

.status-badge {
  display: inline-block; padding: 2px 10px;
  font-size: 0.65rem; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase;
  border-radius: 999px; background: var(--line); color: var(--ink);
}
.status-badge.new { background: #111; color: #fafafa; }
.status-badge.converted { background: #d4edda; color: #155724; }

/* ── About section ────────────────────────────────────────────── */
@media (max-width: 768px) {
  .about-grid { grid-template-columns: 1fr !important; gap: 2.5rem !important; }
}

/* ── Utility ──────────────────────────────────────────────────── */
.section-pad { padding: 6rem 0; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* Mobile enablement pass */
@media (max-width: 767px) {
  html,
  body {
    overflow-x: hidden;
  }

  body {
    font-size: 14px;
  }

  .mp-container {
    width: 100%;
    padding-left: 1rem;
    padding-right: 1rem;
  }

  #mp-navbar .nav-inner {
    min-height: 58px;
    padding: 0 .9rem;
    grid-template-columns: auto 1fr auto;
    gap: .7rem;
  }

  .nav-mobile-home {
    display: inline-flex !important;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(17,17,17,.12);
    border-radius: 999px;
    color: var(--ink);
    background: rgba(255,255,255,.72);
  }

  #mp-navbar .nav-links {
    display: none !important;
  }

  .nav-search-wrap,
  .nav-title {
    display: none !important;
  }

  #mp-navbar .nav-search {
    display: flex !important;
    grid-column: 2;
    min-width: 0;
    width: 100%;
    height: 38px;
    padding: 0 .2rem 0 .58rem;
    border-radius: 999px;
    opacity: 0;
    pointer-events: none;
    transform: translateY(-3px);
  }

  #mp-navbar .nav-search.nav-search-with-title {
    display: flex !important;
  }

  #mp-navbar .nav-search.is-visible {
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  #mp-navbar .nav-search-input,
  #mp-navbar .nav-search-ghost {
    font-size: .64rem;
    letter-spacing: .01em;
  }

  #mp-navbar .nav-search-submit {
    width: 30px;
    height: 30px;
  }

  .nav-auth-group,
  .lang-toggle {
    display: none !important;
  }

  .nav-mobile-burger {
    display: inline-grid !important;
    width: 42px;
    height: 38px;
    place-items: center;
    gap: 4px;
    padding: 8px 10px;
    border: 1px solid rgba(17,17,17,.12);
    border-radius: 999px;
    background: rgba(255,255,255,.72);
    color: var(--ink);
  }

  .nav-mobile-burger span {
    display: block;
    width: 17px;
    height: 1px;
    background: currentColor;
  }

  .nav-mobile-menu {
    position: fixed;
    top: 62px;
    left: .75rem;
    right: .75rem;
    z-index: 1001;
    display: none;
    padding: .65rem;
    border: 1px solid rgba(17,17,17,.1);
    border-radius: 18px;
    background: rgba(250,250,250,.96);
    box-shadow: 0 22px 60px rgba(17,17,17,.16);
    backdrop-filter: blur(18px);
  }

  #mp-navbar.is-mobile-menu-open .nav-mobile-menu {
    display: grid;
    gap: .2rem;
  }

  .nav-mobile-menu a {
    display: flex;
    min-height: 42px;
    align-items: center;
    justify-content: flex-start;
    padding: .55rem .75rem;
    border-radius: 12px;
    color: var(--ink);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
  }

  .nav-mobile-menu a:active {
    background: rgba(17,17,17,.06);
  }

  .nav-mobile-langs {
    display: flex;
    justify-content: flex-end;
    gap: .4rem;
    padding-top: .35rem;
  }

  .nav-mobile-langs a {
    justify-content: center;
    min-height: 34px;
    width: 48px;
    padding: 0;
    border: 1px solid rgba(17,17,17,.1);
  }

  .nav-mobile-langs a.active {
    background: var(--ink);
    color: var(--bone);
  }

  .catalog-hero {
    display: none !important;
  }

  .catalog-section {
    padding-top: 3.9rem !important;
  }

  .catalog-section + .catalog-section {
    padding-top: 1.2rem !important;
  }

  .catalog-section-head {
    display: none !important;
  }

  [data-testid="home-kicker"],
  [data-testid="home-kicker"] + .h-display,
  .home-search-hint,
  .home-search-results-head,
  .home-search-status,
  #locations .kicker,
  #categories .kicker,
  #categories .catalog-section-head,
  #locations .catalog-section-head {
    display: none !important;
  }

  #locations,
  #categories {
    margin-top: 1.15rem !important;
  }

  #locations > div:first-child,
  #categories > div:first-child {
    padding-top: 0 !important;
    margin-bottom: .75rem !important;
    border-top: 0 !important;
  }

  .photographer-row {
    display: block !important;
    width: 100vw;
    max-width: none !important;
    box-sizing: border-box;
    margin: 0 calc(50% - 50vw) 1rem !important;
    padding: .72rem 0 .62rem !important;
    border: 1px solid rgba(17,17,17,.08) !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-radius: 0 !important;
    background: rgba(255,255,255,.82) !important;
    box-shadow: 0 14px 36px rgba(17,17,17,.06) !important;
    overflow: hidden;
  }

  .photographer-row .photog-meta {
    display: none !important;
  }

  .photographer-row .photog-gallery,
  .photographer-row .photog-gallery-card {
    display: block !important;
    width: 100vw !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .photog-mobile-line {
    display: flex !important;
    align-items: baseline;
    gap: .6rem;
    min-height: 38px;
    padding: 0 1rem .55rem;
    color: var(--ink);
    text-decoration: none;
    border-bottom: 1px solid rgba(17,17,17,.08);
    white-space: nowrap;
    overflow: hidden;
  }

  .photog-mobile-summary {
    display: flex;
    align-items: baseline;
    gap: .72rem;
    min-width: 0;
    flex: 1 1 auto;
    color: inherit;
    text-decoration: none;
    overflow: hidden;
  }

  .photog-mobile-name {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.22rem;
    font-style: italic;
    line-height: 1;
  }

  .photog-mobile-city,
  .photog-mobile-price {
    flex: 0 0 auto;
    color: rgba(17,17,17,.52);
    font-size: .57rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
  }

  .photog-mobile-city {
    display: inline-flex;
    align-items: center;
    gap: .24rem;
    transform: translateY(-.03rem);
  }

  .photog-mobile-city-icon {
    opacity: .68;
    transform: translateY(-.02rem);
  }

  .photog-mobile-price {
    margin-left: auto;
    color: rgba(17,17,17,.7);
  }

  .photog-mobile-open {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 74px;
    min-height: 30px;
    padding: .35rem .62rem;
    border: 1px solid rgba(17,17,17,.16);
    border-radius: 999px;
    color: var(--ink);
    background: rgba(255,255,255,.72);
    font-size: .56rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-decoration: none;
    text-transform: uppercase;
  }

  .site-footer {
    padding-top: 2rem;
  }

  .footer-shell {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.2rem !important;
    text-align: left !important;
  }

  .footer-nav {
    align-items: flex-start !important;
    text-align: left !important;
  }

  .site-footer .mp-container > .d-flex {
    align-items: stretch !important;
  }

  .site-footer .mp-container > .d-flex > div:last-child {
    align-items: flex-end !important;
    text-align: right !important;
    margin-left: auto;
  }

  .portfolio-strip-wrap,
  .catalog-section .portfolio-strip-wrap {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    padding-left: 0;
    padding-right: 0;
    overflow-x: visible;
    overflow-y: visible;
    -webkit-mask-image: none !important;
            mask-image: none !important;
  }

  .portfolio-strip-wrap::after {
    content: "drag to scroll";
    position: absolute;
    right: .65rem;
    bottom: .2rem;
    z-index: 2;
    padding: .16rem .45rem;
    border-radius: 999px;
    background: rgba(17,17,17,.62);
    color: #fff;
    font-size: .48rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    pointer-events: none;
  }

  .portfolio-strip-wrap::before {
    content: "";
    position: absolute;
    right: 0;
    top: .62rem;
    bottom: .58rem;
    z-index: 2;
    width: 3rem;
    background: linear-gradient(90deg, rgba(250,250,250,0), rgba(250,250,250,.84));
    pointer-events: none;
  }

  .portfolio-strip {
    gap: .55rem;
    padding-top: .62rem;
    padding-bottom: .58rem;
    padding-left: 1rem;
    padding-right: 1rem;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
    scrollbar-color: rgba(17,17,17,.34) rgba(17,17,17,.08);
  }

  .portfolio-strip::-webkit-scrollbar {
    height: 7px;
  }

  .portfolio-strip::-webkit-scrollbar-track {
    background: rgba(17,17,17,.12);
    border-radius: 999px;
  }

  .portfolio-strip::-webkit-scrollbar-thumb {
    background: rgba(17,17,17,.5);
    border-radius: 999px;
  }

  .location-card-title,
  .genre-card-title {
    line-height: 1.18 !important;
    overflow: visible !important;
    padding-bottom: .05em;
  }

  .portfolio-thumb {
    width: min(62vw, 230px);
    height: 15rem;
    border-radius: 0;
    scroll-snap-align: start;
  }

  .portfolio-thumb img {
    border-radius: 0;
  }

  .portfolio-thumb--wide {
    width: min(82vw, 310px);
  }

  #lead-offcanvas {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100dvh !important;
  }

  #lead-offcanvas > div:first-child {
    padding: .5rem .78rem .42rem !important;
  }

  #lf-form.lead-body {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .34rem !important;
    padding: .52rem .78rem .48rem !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  #lead-offcanvas > div:last-child {
    padding: .42rem .78rem .55rem !important;
  }

  #lead-offcanvas > div:first-child .kicker {
    font-size: .52rem;
    letter-spacing: .18em;
  }

  #lf-photog-name {
    font-size: 1.02rem !important;
  }

  #lf-photog-tagline {
    display: -webkit-box;
    margin-top: .12rem !important;
    font-size: .66rem !important;
    line-height: 1.25;
    overflow: hidden;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
  }

  #lead-offcanvas .btn-close {
    top: .7rem !important;
    right: .8rem !important;
  }

  .lead-label {
    margin-bottom: .16rem;
    font-size: .5rem;
    letter-spacing: .13em;
  }

  #lf-form .form-control,
  #lf-form .form-select,
  #lf-form input[type="date"] {
    min-height: 34px;
    border-radius: 8px;
    font-size: .8rem;
    padding-top: .34rem;
    padding-bottom: .34rem;
  }

  .lf-name-field,
  .lf-contact-group-title,
  .lf-contact-method-field,
  .lf-contact-detail,
  .lf-message-block,
  #lf-when-section,
  #lf-packages-section {
    grid-column: 1 / -1 !important;
  }

  .lf-contact-group-title {
    margin-bottom: -.28rem;
  }

  .lf-contact-methods {
    height: 34px;
    min-height: 34px;
    gap: .18rem;
    padding: .14rem;
  }

  .lf-contact-option {
    font-size: .5rem;
    letter-spacing: .05em;
  }

  .lf-contact-detail input.form-control,
  #lf-phone-wrap .iti__tel-input,
  #lf-phone-wrap .iti input {
    height: 34px;
    min-height: 34px;
    font-size: .82rem;
  }

  .lf-message-block {
    gap: .28rem;
  }

  .lf-message-block textarea {
    min-height: 56px;
    font-size: .82rem;
    line-height: 1.35;
  }

  .lf-include-question-check {
    min-height: 1.1rem;
    padding-top: 0;
    font-size: .66rem;
    line-height: 1.25;
  }

  #lf-when-section,
  #lf-packages-section {
    padding-top: .42rem !important;
  }

  .lf-date-range-field {
    margin: .25rem 0 .3rem;
  }

  .lf-date-range-control,
  .lf-date-range-control[data-mode="specific"] {
    grid-template-columns: 1fr !important;
    gap: .28rem;
    min-height: 0;
    padding: .22rem;
    border-radius: 9px;
  }

  .lf-date-mode-switch {
    width: 100%;
    min-height: 30px;
  }

  .lf-date-mode-switch button {
    min-height: 26px;
    padding: 0 .45rem;
    font-size: .5rem;
  }

  .lf-when-grid {
    gap: .42rem;
  }

  .lf-weekday-field > div:first-child,
  .lf-time-field > div:first-child {
    margin-bottom: .18rem !important;
    font-size: .55rem !important;
  }

  .lf-time-options .chip,
  .lf-when-grid .chip {
    min-height: 27px;
    padding-inline: .5rem;
    font-size: .56rem;
  }

  .lf-time-select {
    display: block;
    width: 100%;
    min-height: 34px;
    border: 1px solid rgba(17,17,17,.18);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    padding: .35rem .7rem;
    font-size: .8rem;
  }

  .lf-time-options {
    display: none !important;
  }

  .lf-action-panel {
    gap: .32rem;
    padding: .38rem;
    border-radius: 10px;
  }

  .lf-response-consent.lf-copy-check {
    gap: .42rem;
    font-size: .64rem;
    line-height: 1.2;
  }

  .lf-response-consent span {
    font-size: 0 !important;
    line-height: 1 !important;
  }

  .lf-response-consent span::before {
    content: "I agree to share my contact details for a response.";
    display: inline;
    font-size: .64rem !important;
    line-height: 1.2 !important;
  }

  .lf-response-consent.lf-copy-check input,
  .lf-copy-check input {
    width: 16px;
    height: 16px;
    flex-basis: 16px;
  }

  .lf-footer-row {
    grid-template-columns: 1fr !important;
    gap: .45rem;
  }

  .lf-captcha-block {
    padding: .32rem .38rem;
    border-radius: 10px;
  }

  .lf-captcha-picture {
    justify-content: space-between;
    gap: .34rem;
  }

  .lf-captcha-img {
    width: 5.2rem;
    height: 1.55rem;
  }

  #lf-captcha {
    width: 46px !important;
    height: 1.65rem;
    min-height: 1.65rem;
    font-size: .76rem !important;
  }

  .lf-footer-row .btn-mp {
    min-height: 36px;
    height: 36px;
    padding: .55rem .85rem;
    font-size: .56rem;
    letter-spacing: .13em;
  }

  body.photo-share-mode #lf-question-note,
  body.photo-share-mode #lf-select-photos-btn,
  body.photo-share-mode #lf-selected-wrap {
    display: none !important;
  }

  .lead-footer {
    padding: .9rem 1rem;
  }

  .dashboard-page {
    padding-top: 5.2rem !important;
    padding-bottom: 2rem !important;
  }

  .dashboard-shell {
    padding: 0 .85rem !important;
  }

  .dashboard-tabs {
    margin-bottom: 1rem !important;
    padding-bottom: .5rem !important;
  }

  .dashboard-tabs a:not([href*="tab=leads"]) {
    display: none !important;
  }

  .dashboard-tabs a[href*="tab=leads"] {
    width: 100%;
    text-align: center;
  }

  .admin-page {
    padding-top: 5.2rem !important;
    padding-bottom: 2rem !important;
  }

  .admin-shell {
    padding: 0 .85rem !important;
    overflow-x: auto;
  }

  .admin-tabs {
    margin-bottom: 1rem !important;
  }

  .admin-tabs a:not([href*="tab=leads"]) {
    display: none !important;
  }

  .admin-tabs a[href*="tab=leads"] {
    width: 100%;
    text-align: center;
  }

  .admin-shell table {
    min-width: 680px;
  }

  .admin-shell table,
  .admin-shell .table {
    font-size: .78rem;
  }

  .lead-chat-shell {
    display: flex !important;
    flex-direction: column;
    min-height: 0 !important;
    border-radius: 14px !important;
  }

  .lead-chat-list {
    max-height: 220px !important;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(17,17,17,.1);
  }

  .lead-chat-item {
    padding: .75rem .85rem !important;
  }

  .lead-chat-panel {
    min-height: 56vh !important;
  }

  .lead-chat-messages {
    max-height: 48vh !important;
    padding: .85rem !important;
  }

  .lead-chat-composer {
    padding: .85rem !important;
  }

  .lead-chat-composer textarea {
    min-height: 96px;
  }
}

@media (max-width: 900px) and (orientation: landscape) {
  #lead-offcanvas > div:first-child {
    padding: .42rem .75rem .34rem !important;
  }

  #lf-form.lead-body {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    gap: .32rem .58rem !important;
    padding: .45rem .75rem .42rem !important;
  }

  .lf-name-field,
  .lf-message-block,
  #lf-when-section,
  #lf-packages-section {
    grid-column: 1 / -1 !important;
  }

  .lf-contact-method-field {
    grid-column: 1 / 2 !important;
  }

  .lf-contact-detail {
    grid-column: 2 / 3 !important;
    align-self: end;
  }

  .lf-message-block textarea {
    min-height: 54px;
  }

  .lf-date-range-control,
  .lf-date-range-control[data-mode="specific"] {
    grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr) !important;
  }

  .lf-date-range-control[data-mode="specific"] {
    grid-template-columns: auto minmax(0, 1fr) !important;
  }

  .lf-when-grid {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: .5rem;
  }

  #lead-offcanvas > div:last-child {
    padding: .34rem .75rem .42rem !important;
  }

  .lf-action-panel {
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: .55rem;
    align-items: center;
  }

  .lf-footer-row {
    grid-template-columns: 142px 132px !important;
    gap: .34rem;
    align-items: stretch;
    justify-content: end;
  }

  .lf-footer-row .btn-mp {
    width: 132px;
    min-width: 132px;
    max-width: 132px;
    padding-left: .45rem;
    padding-right: .45rem;
    font-size: .5rem;
    letter-spacing: .1em;
  }

  .lf-captcha-block {
    width: 142px;
    max-width: 142px;
    min-width: 0;
  }

  .lf-captcha-picture {
    justify-content: flex-start;
    gap: .2rem;
  }

  .lf-captcha-label {
    display: none;
  }

  .lf-captcha-img {
    width: 72px;
    height: 1.55rem;
  }

  #lf-captcha {
    width: 42px !important;
    min-width: 42px;
    flex: 0 0 42px;
  }
}

/* Final location-hero alignment: the same clean frame surrounds every tile. */
.location-reference-page .reference-hero {
  gap:6px;
  padding:6px;
  background:#fafafa;
}
.location-reference-page .reference-hero-left,
.location-reference-page .reference-hero-center,
.location-reference-page .reference-hero-right {
  min-width:0;
  min-height:0;
}
.location-reference-page .reference-hero-center::after {
  z-index:2;
  inset:42% 0 0;
  background:linear-gradient(0deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.24) 44%,transparent 100%);
}
.location-reference-page .reference-hero-caption {
  z-index:3;
  bottom:26px;
  color:#fff;
}
.location-reference-page .reference-hero-caption h1 {
  position:relative;
  z-index:1;
  color:#fff;
  text-shadow:0 1px 18px rgba(0,0,0,.45);
}
.location-reference-page .reference-hero-caption p {
  position:relative;
  z-index:1;
  color:rgba(255,255,255,.86);
}

/* Photographer strips stay open on the page; their card frame is a hover state. */
.location-reference-page .reference-photographers .photographer-row {
  margin:0;
  padding:8px 6px 24px;
  border:1px solid transparent;
  border-radius:16px;
  background:transparent;
  box-shadow:none;
  transform:none;
  transition:background .35s,box-shadow .35s,border-color .35s,transform .35s;
}
.location-reference-page .reference-photographers .photographer-row:hover,
.location-reference-page .reference-photographers .photographer-row:focus-within {
  border-color:rgba(17,17,17,.09);
  background:rgba(255,255,255,.94);
  box-shadow:0 18px 52px rgba(17,17,17,.08);
  transform:translateY(-2px);
}
.location-reference-page .reference-photographers .photographer-row + .photographer-row {
  margin-top:48px;
}
.reference-photog-name-line { gap:16px; }
.reference-photog-description {
  min-width:0;
  max-width:38%;
  overflow:hidden;
  color:#77736e;
  text-overflow:ellipsis;
  white-space:nowrap;
  font:italic 400 14px/1.2 'Cormorant Garamond',Georgia,serif;
}
.reference-photog-price { flex:none; }
@media(max-width:760px) {
  .location-reference-page .reference-photographers .photographer-row { padding:8px 0 24px!important; }
  .location-reference-page .reference-photographers .photographer-row + .photographer-row { margin-top:30px!important; }
  .reference-photog-name-line { flex-wrap:wrap; }
  .reference-photog-description { flex-basis:100%; max-width:100%; }
  .reference-photog-price { margin-left:0; }
}

/* FullHD layout grid: explicit widths and uniform edge/inter-image gutters. */
@media(min-width:1200px) {
  .location-reference-page .reference-hero {
    width:min(calc(100% - 48px),1552px);
    height:clamp(460px,48.15vw,520px);
    padding:6px;
    gap:6px;
    grid-template-columns:minmax(0,1fr) minmax(0,1.7fr) minmax(0,1fr);
    grid-template-rows:1fr 1fr;
    background:#fafafa;
  }
  .location-reference-page .reference-photographers {
    width:min(calc(100% - 48px),1328px);
  }
}
.location-reference-page .reference-photographers .portfolio-strip-wrap {
  -webkit-mask-image:none!important;
  mask-image:none!important;
}
.location-reference-page .reference-photographers .portfolio-strip {
  gap:8px;
  padding:0 0 8px;
  scroll-padding-inline:0;
  scrollbar-width:thin;
  scrollbar-color:rgba(17,17,17,.3) transparent;
}
.location-reference-page .reference-photographers .portfolio-thumb {
  flex:0 0 auto;
  border-radius:3px;
  box-shadow:0 2px 8px rgba(0,0,0,.08);
}
@media(max-width:900px) {
  .location-reference-page .reference-hero {
    width:calc(100% - 32px);
    height:clamp(360px,58vh,480px);
    padding:5px;
    gap:5px;
  }
}
@media(max-width:640px) {
  .location-reference-page .reference-hero {
    width:calc(100% - 20px);
    height:400px;
    padding:4px;
    gap:4px;
  }
}

/* Final screenshot-matched location geometry and reference Chullo meters. */
.location-reference-page .reference-hero {
  width:min(calc(100% - 48px),1552px);
  height:clamp(420px,24vw,460px);
  padding:8px;
  gap:8px;
  background:#fff;
  overflow:hidden;
  grid-template-columns:minmax(0,1fr) minmax(0,1.7fr) minmax(0,1fr);
}
.location-reference-page .reference-hero-left,
.location-reference-page .reference-hero-center,
.location-reference-page .reference-hero-right,
.location-reference-page .reference-hero-right-tile {
  min-width:0;
  min-height:0;
  overflow:hidden;
}
.location-reference-page .reference-hero-left { animation:none; }
.location-reference-page .reference-hero-left>img,
.location-reference-page .reference-hero-right-tile>img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.location-reference-page .reference-hero-left>img { animation:reference-kenburns 44s ease-in-out infinite alternate; }
.location-reference-page .reference-hero-right { grid-template-rows:1fr 1fr; gap:8px; }
.location-reference-page .reference-hero-right-tile { position:relative; }
.location-reference-page .reference-hero-right-tile>img { animation:reference-kenburns 42s ease-in-out infinite alternate; }
.location-reference-page .reference-hero-right>img { display:none; }
.location-reference-page .reference-hero-center>img { animation:reference-kenburns 50s -8s ease-in-out infinite alternate; }
.location-reference-page .reference-hero-caption { bottom:27px; }
.location-reference-page .reference-hero-caption h1 { font-size:clamp(2rem,2.5vw,2.55rem); letter-spacing:.27em; text-indent:.27em; }
.location-reference-page .reference-hero-caption p { font-size:8px; letter-spacing:.2em; }
.location-reference-page .reference-under { position:relative; }
.location-reference-page .reference-meters {
  display:grid;
  width:172px;
  min-width:0;
  gap:12px;
  padding-top:4px;
}
.location-reference-page .reference-meter.mt { display:grid; gap:6px; margin:0; }
.location-reference-page .reference-meter-line.ml {
  display:flex;
  align-items:center;
  gap:7px;
  white-space:nowrap;
  color:#4a4540;
  font:600 10px/1.2 Manrope,system-ui,sans-serif;
  letter-spacing:.12em;
}
.location-reference-page .reference-meter-line svg {
  width:12px;
  height:12px;
  flex:none;
  fill:none;
  stroke:#e98042;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.location-reference-page .reference-meter-impression .reference-meter-line svg { stroke:#1f8a86; }
.location-reference-page .reference-meter-line b {
  margin-left:auto;
  padding-left:12px;
  color:#1f1d1a;
  font:600 12px/1.2 Manrope,system-ui,sans-serif;
  letter-spacing:0;
}
.location-reference-page .reference-meter-bar.hb {
  position:relative;
  display:block;
  height:4px;
  margin:0;
  overflow:hidden;
  border-radius:4px;
  background:rgba(40,30,20,.14);
}
.location-reference-page .reference-meter-bar.hb::before {
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:var(--v,0%);
  border-radius:4px;
  background:linear-gradient(90deg,#f8c04a,#f58a2e 50%,#e5392b);
  transform:scaleX(0);
  transform-origin:left;
  animation:reference-meter-fill 1.2s .65s cubic-bezier(.2,.7,.2,1) forwards;
}
.location-reference-page .reference-meter-impression .reference-meter-bar.hb::before {
  background:linear-gradient(90deg,#8fd6c0,#35b8a4 55%,#1f8a99);
}
.location-reference-page .reference-meter[data-tip] { position:relative; }
.location-reference-page .reference-meter[data-tip]::after {
  content:attr(data-tip);
  position:absolute;
  z-index:20;
  left:0;
  bottom:calc(100% + 7px);
  padding:6px 8px;
  color:white;
  background:#383633;
  font:400 10px/1.3 Manrope,system-ui,sans-serif;
  letter-spacing:0;
  text-transform:none;
  opacity:0;
  pointer-events:none;
  transition:opacity .2s;
}
.location-reference-page .reference-meter[data-tip]:hover::after,
.location-reference-page .reference-meter[data-tip]:focus::after { opacity:1; }
.location-reference-page .reference-photographers .catalog-section-head { display:none; }
.location-reference-page .reference-photographers {
  padding-top:10px;
}
.location-reference-page .reference-photographers .photographer-row {
  padding:24px 26px 26px;
}
.location-reference-page .reference-photographers .photographer-row + .photographer-row { margin-top:34px; }
.location-reference-page .reference-photographers .photog-meta { margin-bottom:15px; }
.location-reference-page .reference-photographers .portfolio-strip { gap:8px; }
.location-reference-page .reference-location-wrap { position:static!important; }
.location-reference-page .reference-location-wrap::after { display:none!important; }
.location-reference-page .reference-location-pop {
  position:absolute!important;
  z-index:80;
  top:0!important;
  left:50%!important;
  display:grid;
  grid-template-columns:260px minmax(0,1fr)!important;
  gap:25px;
  width:min(1044px,calc(100vw - 32px))!important;
  min-height:252px;
  padding:18px 22px!important;
  overflow:hidden;
  border:1px solid rgba(17,17,17,.08);
  border-radius:17px;
  background:rgba(255,255,255,.99);
  box-shadow:0 25px 70px rgba(0,0,0,.16);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translate(-50%,8px) scale(.985)!important;
  transform-origin:top center;
  transition:opacity .35s ease,visibility 0s linear .4s,transform .55s cubic-bezier(.2,.7,.2,1);
}
.location-reference-page .reference-location-wrap:hover .reference-location-pop,
.location-reference-page .reference-location-wrap:focus-within .reference-location-pop {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(-50%,0) scale(1)!important;
  transition-delay:0s;
}
.location-reference-page .reference-pop-locations {
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  align-items:center;
  gap:16px;
  min-width:0;
  padding-right:20px;
  border-right:1px solid #ebe9e6;
}
.location-reference-page .reference-pop-map {
  position:relative;
  inset:auto;
  width:76px;
  height:70px;
  background:transparent;
}
.location-reference-page .reference-pop-map svg { position:absolute; inset:0; width:100%; height:100%; opacity:.42; }
.location-reference-page .reference-pop-location-list { display:block; min-width:0; }
.location-reference-page .reference-pop-location-list a {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:baseline;
  gap:4px 8px;
  text-decoration:none;
}
.location-reference-page .reference-pop-location-list strong {
  color:#514c47;
  font:italic 400 22px/1.1 'Cormorant Garamond',Georgia,serif;
}
.location-reference-page .reference-pop-location-list a>span {
  color:#8b857e;
  font:600 8px/1.2 Manrope,system-ui,sans-serif;
  letter-spacing:.12em;
}
.location-reference-page .reference-pop-location-list small {
  grid-column:1/-1;
  color:#918b84;
  font:600 8px/1.4 Manrope,system-ui,sans-serif;
  letter-spacing:.12em;
}
.location-reference-page .reference-pop-nearby { min-width:0; }
.location-reference-page .reference-pop-nearby h3 {
  margin:0 0 9px;
  color:#8b857e;
  font:600 10px/1.2 Manrope,system-ui,sans-serif;
  letter-spacing:.17em;
  text-align:left;
}
.location-reference-page .reference-nearby-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.location-reference-page .reference-nearby-grid a {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:10px;
  color:#45413d;
  text-align:center;
  font:500 9px/1.3 Manrope,system-ui,sans-serif;
  letter-spacing:.09em;
}
.location-reference-page .reference-nearby-grid img {
  width:100%;
  height:138px;
  border-radius:3px;
  filter:none;
  box-shadow:0 5px 14px rgba(0,0,0,.16);
}
.location-reference-page .reference-pop-map-link { display:none; }
@media(max-width:760px) {
  .location-reference-page .reference-hero { width:calc(100% - 20px); height:400px; padding:5px; gap:5px; }
  .location-reference-page .reference-photographers .photographer-row { padding:20px!important; }
  .location-reference-page .reference-location-pop { top:0!important; grid-template-columns:1fr!important; min-height:0; }
  .location-reference-page .reference-pop-locations { grid-template-columns:55px minmax(0,1fr); padding:0 0 12px; border-right:0; border-bottom:1px solid #ebe9e6; }
  .location-reference-page .reference-pop-map { width:55px; height:54px; }
  .location-reference-page .reference-nearby-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .location-reference-page .reference-nearby-grid img { height:100px; }
}

/* Full-width hero: its central landscape tile stays close to 16:9. */
.location-reference-page .reference-hero {
  width:min(calc(100% - 48px),1840px);
  height:min(525px,28vw);
  grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);
  padding:8px;
  gap:8px;
}
/* The badge behaves like the physical achievement card in the supplied demo. */
.location-reference-page .reference-badge-area { gap:0; padding-left:0; }
.location-reference-page .reference-badge {
  flex:0 0 154px;
  height:144px;
  border-radius:2px;
  overflow:visible;
  cursor:pointer;
  outline:none;
  animation:none;
  transform:perspective(900px) translateY(var(--badge-lift,0px)) rotateX(var(--badge-rx,0deg)) rotateY(var(--badge-ry,0deg));
  transform-style:preserve-3d;
  transition:box-shadow .35s ease;
  box-shadow:0 1px 2px rgba(22,15,6,.12),0 3px 6px -1px rgba(22,15,6,.09),0 9px 16px -5px rgba(22,15,6,.09),0 20px 32px -10px rgba(22,15,6,.09),0 38px 56px -16px rgba(22,15,6,.08),0 66px 90px -28px rgba(22,15,6,.08);
}
.location-reference-page .reference-badge:hover,
.location-reference-page .reference-badge:focus-visible,
.location-reference-page .reference-badge.is-hovered {
  box-shadow:0 2px 3px rgba(30,24,14,.16),0 12px 16px rgba(30,24,14,.16),0 28px 34px -2px rgba(30,24,14,.2),0 50px 56px -10px rgba(30,24,14,.26);
}
.location-reference-page .reference-badge::after {
  inset:0;
  z-index:3;
  background:linear-gradient(135deg,rgba(255,255,255,0) 20%,rgba(255,255,255,.07) 38%,rgba(255,255,255,.26) 49.2%,rgba(255,255,255,0) 50.2%);
  transform:translate(-105%,-105%);
  animation:none;
}
.location-reference-page .reference-badge::before {
  content:"";
  position:absolute;
  z-index:4;
  inset:0;
  pointer-events:none;
  background:url("/public/images/location-reference/jewelcase@4x.png") center/100% 100% no-repeat;
}
.location-reference-page .reference-badge:hover::after,
.location-reference-page .reference-badge:focus-visible::after { animation:badge-gloss 1.5s cubic-bezier(.35,.1,.2,1) 1; }
.location-reference-page .reference-badge img {
  position:absolute;
  inset:-14px;
  width:calc(100% + 28px);
  height:calc(100% + 28px);
  object-fit:cover;
  opacity:.55;
  transform:translate(var(--badge-px,0px),var(--badge-py,0px));
  transition:filter .7s ease,opacity .7s ease;
  backface-visibility:hidden;
}
.location-reference-page .reference-badge:hover img,
.location-reference-page .reference-badge:focus-visible img,
.location-reference-page .reference-badge.is-hovered img { filter:none; opacity:1; }
.location-reference-page .reference-badge.is-liked img { filter:grayscale(1) contrast(.85) brightness(1.12); opacity:.55; }
.location-reference-page .reference-badge.is-checked img { filter:none; opacity:1; }
.location-reference-page .reference-badge.is-liked:hover img,
.location-reference-page .reference-badge.is-checked:hover img { filter:none; opacity:1; }
.location-reference-page .reference-badge-check,
.location-reference-page .reference-badge-heart {
  z-index:5;
  bottom:8px;
  width:28px;
  height:28px;
  border-color:rgba(255,255,255,.52);
  background:rgba(40,36,30,.28);
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
}
.location-reference-page .reference-badge-check { left:8px; }
.location-reference-page .reference-badge-heart { right:8px; }
.location-reference-page .reference-badge-check svg,
.location-reference-page .reference-badge-heart svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.location-reference-page .reference-badge-heart svg { fill:none; }
.location-reference-page .reference-badge-check[aria-pressed="true"] { color:#fff; background:rgba(49,143,91,.76); }
.location-reference-page .reference-badge-heart[aria-pressed="true"] { color:#fff; background:rgba(168,103,103,.78); }
.location-reference-page .reference-badge-heart[aria-pressed="true"] svg,
.collection-mark.saved-mark[aria-pressed="true"] svg { fill:currentColor; }
.location-reference-page .reference-badge-check.badge-pop,
.location-reference-page .reference-badge-heart.badge-pop { animation:badge-button-pop .75s cubic-bezier(.3,1.4,.4,1); }
.location-reference-page .reference-badge-check.badge-unpop,
.location-reference-page .reference-badge-heart.badge-unpop { animation:badge-button-unpop .35s ease; }
.location-reference-page .reference-badge-burst,
.location-reference-page .reference-badge-fly-mark {
  position:fixed;
  z-index:10002;
  pointer-events:none;
  color:#ff4d3a;
  font:500 34px/1 Georgia,serif;
  text-shadow:0 8px 20px rgba(224,55,43,.5);
  transform:translate(-50%,-50%);
  animation:badge-heart-burst .85s cubic-bezier(.2,.7,.2,1) forwards;
}
.location-reference-page .reference-badge-burst.visited,
.location-reference-page .reference-badge-fly-mark.visited { color:#2f9a62; text-shadow:0 8px 20px rgba(47,154,98,.48); }
.location-reference-page .reference-badge-fly-mark { z-index:10001; font-size:17px; text-shadow:0 3px 10px rgba(0,0,0,.25); }
.location-reference-page .reference-badge-fly-mark { animation:none; }
.location-reference-page .reference-badge-fly-mark:nth-of-type(even) { color:#f77b62; }
.location-reference-page .reference-badge-fly-mark.visited:nth-of-type(even) { color:#7ac99a; }
.location-reference-page .reference-under {
  width:min(calc(100% - 48px),1472px);
  grid-template-columns:172px minmax(0,1fr) 154px;
  gap:clamp(24px,3vw,44px);
  align-items:start;
}
.location-reference-page .reference-badge-area { width:154px; justify-content:flex-end; }
.location-reference-page .reference-photographers { width:min(calc(100% - 48px),1472px); }
.location-reference-page .reference-photographers .photographer-row { width:100%; }
.location-reference-page .reference-photographers .portfolio-strip { width:100%; }
.location-reference-page .reference-photographers .portfolio-thumb img { transform:none!important; transition:filter .35s ease!important; }
.location-reference-page .reference-photographers .portfolio-thumb:hover img,
.location-reference-page .reference-photographers .portfolio-thumb:nth-child(even):hover img { transform:none!important; }
.location-reference-page .reference-photographers .portfolio-thumb { cursor:zoom-in; }
.location-reference-page .reference-photographers .reference-strip-arrow { z-index:10; }

.location-collection-overlay {
  position:fixed;
  inset:0;
  z-index:9998;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:30px;
  padding:48px 24px 32px;
  overflow:auto;
  background:rgba(246,244,240,.95);
  -webkit-backdrop-filter:blur(13px);
  backdrop-filter:blur(13px);
  opacity:0;
  visibility:hidden;
  transition:opacity .5s ease,visibility .5s;
}
.location-collection-overlay.is-open { opacity:1; visibility:visible; }
.location-collection-overlay.is-closing { opacity:0; }
.collection-close {
  position:absolute;
  top:24px;
  right:28px;
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid rgba(30,28,25,.12);
  border-radius:50%;
  color:#36332e;
  background:rgba(255,255,255,.8);
  cursor:pointer;
  font:300 29px/1 'Cormorant Garamond',Georgia,serif;
  transition:transform .25s,background .25s;
}
.collection-close:hover { transform:rotate(90deg); background:#fff; }
.collection-intro { position:relative; z-index:4; text-align:center; opacity:0; transform:translateY(6px); transition:opacity .8s .2s,transform 1s cubic-bezier(.2,.7,.2,1) .2s; }
.location-collection-overlay.is-open .collection-intro { opacity:1; transform:none; }
.collection-intro span { color:#25221e; font:500 clamp(2.4rem,4vw,3.5rem)/1.05 'Cormorant Garamond',Georgia,serif; letter-spacing:.08em; }
.collection-shelves { width:min(880px,calc(100vw - 48px)); position:relative; }
.collection-row { position:relative; z-index:2; display:flex; align-items:flex-end; justify-content:center; gap:24px; width:100%; min-height:190px; padding-bottom:48px; }
.collection-row::before { content:""; position:absolute; z-index:0; right:0; bottom:30px; left:0; height:24px; clip-path:polygon(1.6% 0,98.6% 0,100% 100%,0 100%); background:linear-gradient(180deg,#e4e1d9 0,#f1efe9 55%,#faf9f6 100%); opacity:0; transition:opacity .6s .1s; }
.collection-row::after { content:""; position:absolute; z-index:0; right:0; bottom:3px; left:0; height:28px; border-radius:0 0 3px 3px; background:linear-gradient(180deg,#eeebe4 0,#e2dfd6 50%,#d2cec3 100%); box-shadow:inset 0 1px 0 #fff,inset 0 -1px 0 rgba(110,102,88,.3); opacity:0; transition:opacity .6s .1s; }
.location-collection-overlay.is-open .first-row::before,
.location-collection-overlay.is-open .first-row::after { opacity:1; }
.collection-card { position:relative; z-index:2; flex:0 1 170px; width:170px; height:158px; margin:0; transform:translateY(-46px); opacity:0; transition:opacity .6s cubic-bezier(.3,.1,.2,1) calc(.25s + var(--card-i,0)*.08s),transform .9s cubic-bezier(.2,.75,.25,1) calc(.25s + var(--card-i,0)*.08s); }
.collection-card.static:nth-child(1) { --card-i:0; }
.collection-card.static:nth-child(2) { --card-i:1; }
.collection-card.static:nth-child(3) { --card-i:2; }
.location-collection-overlay.is-open .first-row .collection-card.static { opacity:1; transform:none; }
.collection-photo,.collection-slot { position:absolute; inset:0; overflow:hidden; border-radius:2px; }
.collection-photo { box-shadow:0 1px 2px rgba(30,24,14,.16),0 6px 10px rgba(30,24,14,.15),0 16px 22px -2px rgba(30,24,14,.17),0 28px 36px -8px rgba(30,24,14,.2); }
.collection-photo::after,.collection-flying-card::after { content:""; position:absolute; z-index:2; inset:0; pointer-events:none; background:url("/public/images/location-reference/jewelcase@4x.png") center/100% 100% no-repeat; }
.collection-photo img { display:block; width:100%; height:100%; object-fit:cover; filter:none; transition:filter 1.4s,opacity 1.4s; }
.collection-card.static .collection-photo img { filter:grayscale(.5) contrast(.93) brightness(1.04); opacity:.85; }
.collection-card.static:hover .collection-photo img { filter:none; opacity:1; }
.collection-slot { border-radius:2px; background:linear-gradient(180deg,rgba(40,32,18,.07),rgba(40,32,18,.02)); box-shadow:inset 0 3px 8px rgba(40,32,18,.16),inset 0 0 0 1px rgba(40,32,18,.09); opacity:0; }
.location-collection-overlay.is-open .first-row .main-card { opacity:1; transform:none; }
.location-collection-overlay.is-open .main-card .collection-slot { opacity:1; transition:opacity .6s .2s; }
.main-card .collection-photo { visibility:hidden; }
.main-card.landed .collection-photo { visibility:visible; animation:collection-thud .55s cubic-bezier(.3,1.4,.5,1); }
.main-card.landed .collection-slot { opacity:0!important; transition:opacity .4s; }
.collection-flying-card { position:fixed; z-index:10000; overflow:hidden; border-radius:2px; pointer-events:none; box-shadow:0 1px 2px rgba(22,15,6,.2),0 12px 26px -2px rgba(22,15,6,.22),0 40px 60px -20px rgba(22,15,6,.25); transform-origin:center; will-change:transform; }
.collection-flying-card img { display:block; width:100%; height:100%; object-fit:cover; filter:grayscale(.85) contrast(.9) brightness(1.1); }
.collection-flight-gloss { position:absolute; inset:0; background:linear-gradient(135deg,transparent 20%,rgba(255,255,255,.07) 38%,rgba(255,255,255,.26) 49.2%,transparent 50.2%); pointer-events:none; }
.collection-shelves .second-row { margin-top:6px; opacity:0; transform:translateY(34px); transition:opacity .9s .1s,transform 1s cubic-bezier(.2,.7,.2,1) .1s; }
.location-collection-overlay.settled .second-row { opacity:.72; transform:none; }
.collection-mark { position:absolute; z-index:4; bottom:9px; width:28px; height:28px; display:grid; place-items:center; padding:0; border:1px solid rgba(255,255,255,.5); border-radius:50%; color:rgba(255,255,255,.95); background:rgba(40,36,30,.32); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); cursor:pointer; opacity:.75; transition:background .3s,opacity .3s,transform .3s; }
.collection-mark:hover { opacity:1; transform:scale(1.08); }
.collection-mark svg { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.visited-mark { left:9px; }
.saved-mark { right:9px; }
.collection-mark[aria-pressed="true"] { opacity:1; background:rgba(40,36,30,.58); }
.main-card.saved .collection-photo img { filter:grayscale(1) contrast(.85) brightness(1.12); opacity:.55; }
.main-card.visited .collection-photo img { filter:none; opacity:1; }
.location-collection-overlay .collection-row.second-row .collection-card { transform:translateY(12px); opacity:0; }
.location-collection-overlay.settled .collection-row.second-row .collection-card { transform:none; opacity:1; }
@keyframes badge-gloss { to { transform:translate(105%,105%); } }
@keyframes badge-button-pop { 0%{transform:scale(1)} 25%{transform:scale(.55)} 55%{transform:scale(1.45) rotate(-8deg)} 78%{transform:scale(.94) rotate(3deg)} 100%{transform:scale(1)} }
@keyframes badge-button-unpop { 0%{transform:scale(1)} 50%{transform:scale(.7)} 100%{transform:scale(1)} }
@keyframes badge-heart-burst { 18%{opacity:.9;transform:translate(-50%,-50%) scale(1)} 100%{opacity:0;transform:translate(-50%,-90%) scale(1.35)} }
@keyframes collection-thud { 0%{transform:translateY(-7px)} 100%{transform:none} }
@media(max-width:760px) {
  .location-reference-page .reference-hero { width:calc(100% - 20px); height:400px; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); grid-template-rows:1.5fr 1fr; }
  .location-reference-page .reference-hero-left { grid-column:1; grid-row:1 / 3; }
  .location-reference-page .reference-hero-center { grid-column:2; grid-row:1 / 3; }
  .location-reference-page .reference-hero-right { display:none; }
  .location-reference-page .reference-under { width:calc(100% - 32px); grid-template-columns:minmax(0,1fr); gap:16px; }
  .location-reference-page .reference-meters { width:172px; }
  .location-reference-page .reference-badge-area { width:auto; justify-content:center; }
  .location-reference-page .reference-photographers { width:calc(100% - 32px); }
  .location-collection-overlay { justify-content:flex-start; gap:18px; padding:76px 14px 24px; }
  .collection-shelves { width:100%; }
  .collection-row { flex-wrap:wrap; gap:16px; min-height:0; padding-bottom:42px; }
  .collection-card { flex:0 1 calc(50% - 10px); width:calc(50% - 10px); max-width:170px; height:auto; aspect-ratio:191/177; }
  .collection-row::before { bottom:27px; }
  .collection-row::after { bottom:0; }
  .collection-row.second-row { display:none; }
  .collection-close { top:16px; right:16px; }
}
@media(min-width:761px) and (max-width:900px) {
  .location-reference-page .reference-hero { width:calc(100% - 32px); height:clamp(360px,58vh,480px); grid-template-columns:minmax(0,1fr) minmax(0,1.7fr); }
  .location-reference-page .reference-hero-right { display:none; }
  .location-reference-page .reference-under { width:calc(100% - 32px); grid-template-columns:172px minmax(0,1fr); }
  .location-reference-page .reference-badge-area { grid-column:1 / -1; width:auto; justify-content:center; }
  .location-reference-page .reference-photographers { width:calc(100% - 32px); }
}
@media(prefers-reduced-motion:reduce) {
  .location-reference-page .reference-badge,.location-reference-page .reference-badge *,.location-collection-overlay,.collection-card,.collection-row::before,.collection-row::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}

/* Location label sits on the hero edge; the nearby panel stays connected to it. */
.location-reference-page .reference-hero { overflow:visible; z-index:20; }
.location-reference-page .reference-under { position:relative; z-index:1; }
.location-reference-page .reference-location-wrap {
  position:absolute!important;
  z-index:25;
  left:12px;
  bottom:12px;
  width:max-content;
  max-width:calc(100vw - 40px);
}
.location-reference-page .reference-location-wrap::after {
  display:block!important;
  position:absolute;
  z-index:0;
  left:0;
  right:-1100px;
  top:100%;
  height:22px;
  content:"";
}
.location-reference-page .reference-map-link {
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  gap:12px;
  width:max-content;
  max-width:100%;
  margin:0;
  padding:8px 16px 8px 9px;
  border:1px solid rgba(255,255,255,.74);
  border-radius:3px;
  color:#625d57;
  background:rgba(255,255,255,.91);
  box-shadow:0 4px 16px rgba(20,18,15,.13);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  text-decoration:none;
  cursor:pointer;
  transition:background .35s,box-shadow .35s,transform .45s cubic-bezier(.2,.7,.2,1);
}
.location-reference-page .reference-map-link:hover { background:rgba(255,255,255,.97); box-shadow:0 7px 22px rgba(20,18,15,.18); transform:translateY(-2px); }
.location-reference-page .reference-location-sketch { display:block; flex:none; width:75px; height:58px; color:#d5d7d8; }
.location-reference-page .reference-location-sketch svg { display:block; width:100%; height:100%; }
.location-reference-page .reference-location-copy { display:grid; gap:5px; min-width:0; }
.location-reference-page .reference-location-copy strong { color:#58534e; font:italic 400 22px/1 'Cormorant Garamond',Georgia,serif; white-space:nowrap; }
.location-reference-page .reference-location-copy small { color:#7f7972; font:600 12px/1.25 Manrope,system-ui,sans-serif; letter-spacing:.015em; white-space:nowrap; }
.location-reference-page .reference-location-pop {
  top:calc(100% + 20px)!important;
  left:calc((min(100vw - 48px,1840px) - min(1044px,100vw - 32px))/2 - 12px)!important;
  grid-template-columns:260px minmax(0,1fr)!important;
  width:min(1044px,calc(100vw - 32px))!important;
  padding:18px 22px!important;
  transform:translateY(8px) scale(.985)!important;
  transform-origin:top center;
  transition:opacity .35s ease,visibility 0s linear .8s,transform .55s cubic-bezier(.2,.7,.2,1);
}
.location-reference-page .reference-location-wrap:hover .reference-location-pop,
.location-reference-page .reference-location-wrap:focus-within .reference-location-pop {
  transform:translateY(0) scale(1)!important;
  transition-delay:0s;
}
.location-reference-page .reference-pop-locations {
  display:grid;
  place-items:center;
  min-height:190px;
  padding-right:20px;
  border-right:1px solid #ebe9e6;
}
.location-reference-page .reference-pop-location-list { display:none!important; }
.location-reference-page .reference-pop-map { position:relative; inset:auto; width:110px; height:82px; background:transparent; }
.location-reference-page .reference-pop-map svg { position:absolute; inset:0; width:100%; height:100%; opacity:.42; }
.location-reference-page .reference-pop-nearby { position:relative; z-index:2; }
@media(max-width:760px) {
  .location-reference-page .reference-location-wrap { left:8px; bottom:8px; }
  .location-reference-page .reference-location-sketch { width:52px; height:46px; }
  .location-reference-page .reference-location-copy strong { font-size:18px; }
  .location-reference-page .reference-location-copy small { font-size:10px; }
  .location-reference-page .reference-map-link { gap:8px; padding:6px 10px 6px 6px; }
  .location-reference-page .reference-location-pop { top:calc(100% + 16px)!important; left:calc((100vw - min(1044px,100vw - 32px))/2 - 8px)!important; grid-template-columns:1fr!important; }
  .location-reference-page .reference-pop-locations { display:none; }
}

/* Portfolio previews stay pixel-stable; clicking opens the full-resolution lightbox. */
.location-reference-page .reference-photographers .portfolio-thumb img,
.location-reference-page .reference-photographers .portfolio-thumb:hover img,
.location-reference-page .reference-photographers .portfolio-thumb:nth-child(even):hover img,
.location-reference-page .reference-photographers .portfolio-thumb--wide:hover img {
  filter:none!important;
  transform:none!important;
  transition:none!important;
  animation:none!important;
  image-rendering:auto;
  backface-visibility:visible;
}

/* Place location details immediately below the score meters. */
.location-reference-page .reference-under { z-index:30!important; }
.location-reference-page .reference-under > .reference-meters { grid-column:1;grid-row:1; }
.location-reference-page .reference-under > .reference-location-wrap {
  position:relative!important;
  grid-column:1;
  grid-row:2;
  left:auto!important;
  bottom:auto!important;
  z-index:40;
  width:max-content;
  max-width:min(320px,100%);
  margin-top:12px;
}
.location-reference-page .reference-under > .reference-quote-block { grid-column:2;grid-row:1 / span 2;align-self:start; }
.location-reference-page .reference-under > .reference-badge-area { grid-column:3;grid-row:1 / span 2;align-self:start; }
.location-reference-page .reference-location-wrap::after { left:-8px;right:-1100px;top:100%;height:18px; }
.location-reference-page .reference-map-link {
  border-color:rgba(255,255,255,.36)!important;
  background:rgba(250,248,244,.66)!important;
  box-shadow:0 2px 9px rgba(24,22,18,.07)!important;
  -webkit-backdrop-filter:blur(3px)!important;
  backdrop-filter:blur(3px)!important;
}
.location-reference-page .reference-location-sketch { opacity:.38; }
.location-reference-page .reference-location-copy strong { font-size:25px!important; }
.location-reference-page .reference-location-copy small { font-size:13px!important; }
.location-reference-page .reference-location-pop {
  top:calc(100% + 10px)!important;
  left:calc((min(1044px,100vw - 32px) - min(100vw - 48px,1472px))/2)!important;
  display:block!important;
  width:min(1044px,calc(100vw - 32px))!important;
  min-height:0!important;
  padding:20px 24px!important;
  transform:none!important;
  transition:opacity .25s ease,visibility 0s linear .8s!important;
}
.location-reference-page .reference-location-wrap:hover .reference-location-pop,
.location-reference-page .reference-location-wrap:focus-within .reference-location-pop {
  transform:none!important;
  transition-delay:0s!important;
}
.location-reference-page .reference-pop-nearby h3 { margin-bottom:12px; }
.location-reference-page .reference-nearby-grid a { grid-template-columns:150px minmax(0,1fr); }
.location-reference-page .reference-nearby-grid img { width:150px;height:96px;filter:none; }
.location-reference-page .reference-quote-block { display:flex;flex-direction:column; }
.location-reference-page .reference-quote { order:0; }
.location-reference-page .reference-more-toggle { order:1; }
.location-reference-page .reference-extended-wrap { order:2; }
.location-reference-page .reference-under.is-open .reference-extended-wrap { order:1; }
.location-reference-page .reference-under.is-open .reference-more-toggle { order:2; }
@media(max-width:760px) {
  .location-reference-page .reference-under > .reference-meters,
  .location-reference-page .reference-under > .reference-location-wrap,
  .location-reference-page .reference-under > .reference-quote-block,
  .location-reference-page .reference-under > .reference-badge-area { grid-column:auto;grid-row:auto; }
  .location-reference-page .reference-under > .reference-location-wrap { max-width:100%;margin:4px 0 10px; }
  .location-reference-page .reference-location-pop { top:calc(100% + 8px)!important;left:0!important; }
  .location-reference-page .reference-nearby-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .location-reference-page .reference-nearby-grid a { grid-template-columns:72px minmax(0,1fr); }
  .location-reference-page .reference-nearby-grid img { width:72px;height:58px; }
}
.location-reference-page .reference-photographers .portfolio-thumb::after { pointer-events:none; }
/* Keep the portfolio strip image visually identical while hovering. */
.location-reference-page .reference-photographers .portfolio-thumb::before,
.location-reference-page .reference-photographers .portfolio-thumb::after,
.location-reference-page .reference-photographers .portfolio-thumb:hover::before,
.location-reference-page .reference-photographers .portfolio-thumb:hover::after {
  display:none!important;
  content:none!important;
  opacity:1!important;
  animation:none!important;
  transition:none!important;
}
.location-reference-page .reference-photographers .portfolio-thumb img,
.location-reference-page .reference-photographers .portfolio-thumb:hover img,
.location-reference-page .reference-photographers .portfolio-thumb:nth-child(even):hover img,
.location-reference-page .reference-photographers .portfolio-thumb--wide:hover img {
  filter:none!important;
  transform:none!important;
  transition:none!important;
  animation:none!important;
  opacity:1!important;
  image-rendering:auto;
  backface-visibility:visible;
}

/* Reference v86 location label and achievement card treatment. */
.location-reference-page .reference-hero { background:transparent!important; }
.location-reference-page .reference-map-link {
  gap:11px!important;
  padding:8px 15px 8px 9px!important;
  border:1px solid rgba(255,255,255,.55)!important;
  border-radius:3px!important;
  background:rgba(250,248,244,.82)!important;
  box-shadow:0 4px 14px rgba(24,22,18,.12)!important;
  -webkit-backdrop-filter:blur(5px)!important;
  backdrop-filter:blur(5px)!important;
  transform:none!important;
}
.location-reference-page .reference-location-sketch { width:78px!important;height:58px!important;opacity:.82; }
.location-reference-page .reference-location-copy { gap:5px!important; }
.location-reference-page .reference-location-copy strong { font-size:21px!important; }
.location-reference-page .reference-location-copy small { font-size:13px!important;letter-spacing:0!important; }
.location-reference-page .reference-location-wrap:hover .reference-map-link span,
.location-reference-page .reference-location-wrap:focus-within .reference-map-link span { transform:none!important; }
.location-reference-page .reference-location-pop {
  background:rgba(255,255,255,.94)!important;
  -webkit-backdrop-filter:blur(16px)!important;
  backdrop-filter:blur(16px)!important;
}

.location-reference-page .reference-badge-area { width:191px!important; }
.location-reference-page .reference-badge {
  position:relative!important;
  display:block!important;
  flex:0 0 191px!important;
  width:191px!important;
  height:177px!important;
  overflow:visible!important;
  border-radius:2px!important;
  background:transparent!important;
  box-shadow:none!important;
  transform:none!important;
  transform-style:flat!important;
  translate:0 0;
  animation:reference-card-hop 9s 2s ease-in-out infinite!important;
}
.location-reference-page .reference-badge::before,
.location-reference-page .reference-badge::after { content:none!important;animation:none!important; }
.location-reference-page .reference-badge-plate {
  position:absolute;
  inset:0;
  display:block;
  overflow:hidden;
  border-radius:2px;
  background:#ececea;
  transform:perspective(900px) translateY(var(--badge-lift,0px)) rotateX(var(--badge-rx,0deg)) rotateY(var(--badge-ry,0deg));
  transform-style:preserve-3d;
  box-shadow:0 1px 2px rgba(30,24,14,.16),0 6px 10px rgba(30,24,14,.15),0 16px 22px -2px rgba(30,24,14,.17),0 32px 40px -8px rgba(30,24,14,.22);
  transition:box-shadow .5s ease;
}
.location-reference-page .reference-badge-plate::before {
  position:absolute;
  inset:0;
  z-index:3;
  content:"";
  pointer-events:none;
  background:url("/public/images/location-reference/jewelcase@4x.png") center/100% 100% no-repeat;
}
.location-reference-page .reference-badge-plate::after {
  position:absolute;
  inset:0;
  z-index:4;
  content:"";
  pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,0) 20%,rgba(255,255,255,.07) 38%,rgba(255,255,255,.26) 49.2%,rgba(255,255,255,0) 50.2%);
  transform:translate(-105%,-105%);
}
.location-reference-page .reference-badge:hover .reference-badge-plate,
.location-reference-page .reference-badge:focus-visible .reference-badge-plate,
.location-reference-page .reference-badge.is-hovered .reference-badge-plate {
  box-shadow:0 2px 3px rgba(30,24,14,.16),0 12px 16px rgba(30,24,14,.16),0 28px 34px -2px rgba(30,24,14,.2),0 50px 56px -10px rgba(30,24,14,.26);
}
.location-reference-page .reference-badge:hover .reference-badge-plate::after,
.location-reference-page .reference-badge:focus-visible .reference-badge-plate::after { animation:reference-card-shine 3.4s linear 1 forwards; }
.location-reference-page .reference-badge-plate img {
  position:absolute;
  inset:-14px;
  display:block;
  width:calc(100% + 28px);
  height:calc(100% + 28px);
  object-fit:cover;
  opacity:.55;
  filter:grayscale(.85) contrast(.9) brightness(1.1);
  transform:translate(var(--badge-px,0px),var(--badge-py,0px))!important;
  transition:filter 1.2s ease,opacity 1.2s ease;
  backface-visibility:visible;
}
.location-reference-page .reference-badge:hover .reference-badge-plate img,
.location-reference-page .reference-badge:focus-visible .reference-badge-plate img,
.location-reference-page .reference-badge.is-hovered .reference-badge-plate img,
.location-reference-page .reference-badge.is-checked .reference-badge-plate img { filter:none;opacity:1; }
.location-reference-page .reference-badge.is-liked:not(.is-checked) .reference-badge-plate img { filter:grayscale(1) contrast(.85) brightness(1.12);opacity:.55; }
.location-reference-page .reference-badge-check,
.location-reference-page .reference-badge-heart {
  z-index:6!important;
  bottom:10px!important;
  width:34px!important;
  height:34px!important;
  border-color:rgba(255,255,255,.55)!important;
  background:rgba(40,36,30,.3)!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)!important;
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
  transform:translateY(var(--badge-lift,0px));
}
.location-reference-page .reference-badge-check { left:10px!important; }
.location-reference-page .reference-badge-heart { right:10px!important; }
.location-reference-page .reference-badge-check:hover,
.location-reference-page .reference-badge-heart:hover { background:rgba(40,36,30,.55)!important; }
.location-reference-page .reference-badge.is-opening,
.location-reference-page .reference-badge.is-open { animation:none!important; }
.location-reference-page .reference-badge.is-opening .reference-badge-plate,
.location-reference-page .reference-badge.is-open .reference-badge-plate { transform:none; }
.location-reference-page .collection-flying-card { transform-origin:center; border-radius:2px; }
.location-reference-page .collection-flying-card::after { content:none!important; }
.location-reference-page .collection-flying-card img { filter:grayscale(.85) contrast(.9) brightness(1.1); transform:none; }
.location-reference-page .collection-flying-card img.flight-colour { filter:none; opacity:0; }
.location-reference-page .collection-flying-card .collection-mark { width:34px;height:34px;bottom:10px; }
.location-reference-page .collection-flying-card .visited-mark { left:10px; }
.location-reference-page .collection-flying-card .saved-mark { right:10px; }
.location-reference-page .collection-flying-card .collection-mark svg { width:16px;height:16px; }
.location-reference-page .collection-flying-card .collection-flight-gloss { background:url("/public/images/location-reference/jewelcase@4x.png") center/100% 100% no-repeat; }
.location-reference-page .location-collection-overlay {
  background:rgba(244,242,238,.5)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.12)!important;
  backdrop-filter:blur(18px) saturate(1.12)!important;
}
.location-reference-page .collection-shelves { width:min(880px,calc(100vw - 48px)); }
.location-reference-page .collection-row { gap:30px; min-height:209px; }
.location-reference-page .location-collection-overlay { transition:opacity 1.1s cubic-bezier(.4,0,.2,1),visibility 0s linear 1.1s!important; }
.location-reference-page .location-collection-overlay.is-open { transition-delay:0s!important; }
.location-reference-page .collection-card { flex:0 1 191px;width:191px;height:177px; }
.location-reference-page .collection-photo { border-radius:2px; }
.location-reference-page .collection-photo::after { background:url("/public/images/location-reference/jewelcase@4x.png") center/100% 100% no-repeat; }
@keyframes reference-card-hop { 0%,70%,100%{translate:0 0} 85%{translate:0 -5px} }
@keyframes reference-card-shine { 0%{transform:translate(-105%,-105%)} 100%{transform:translate(105%,105%)} }
@media(max-width:760px) {
  .location-reference-page .reference-badge { flex-basis:191px!important;width:191px!important;height:177px!important; }
  .location-reference-page .reference-badge-area { width:auto!important; }
  .location-reference-page .collection-card { flex-basis:calc(50% - 10px);width:calc(50% - 10px);height:auto;aspect-ratio:191/177; }
}

/* Final location drawer placement and non-shifting reveal. */
.location-reference-page .reference-under { grid-template-columns:220px minmax(0,1fr) 191px!important; }
.location-reference-page .reference-under > .reference-location-wrap { max-width:none;width:max-content; }
.location-reference-page .reference-map-link {
  border-color:rgba(255,255,255,.36)!important;
  background:rgba(250,248,244,.66)!important;
  box-shadow:0 2px 9px rgba(24,22,18,.07)!important;
  -webkit-backdrop-filter:blur(3px)!important;
  backdrop-filter:blur(3px)!important;
}
.location-reference-page .reference-location-sketch { opacity:.38!important; }
.location-reference-page .reference-location-copy strong { font-size:25px!important; }
.location-reference-page .reference-location-pop {
  top:calc(100% + 10px)!important;
  left:calc((min(1044px,100vw - 32px) - min(100vw - 48px,1472px))/2)!important;
  width:min(1044px,calc(100vw - 32px))!important;
  transform:none!important;
  transition:opacity .25s ease,visibility 0s linear .8s!important;
}
.location-reference-page .reference-location-wrap:hover .reference-location-pop,
.location-reference-page .reference-location-wrap:focus-within .reference-location-pop { transform:none!important;transition-delay:0s!important; }
@media(max-width:760px) {
  .location-reference-page .reference-under { grid-template-columns:1fr!important; }
  .location-reference-page .reference-under > .reference-location-wrap { max-width:100%;width:max-content; }
  .location-reference-page .reference-location-pop { left:0!important;width:calc(100vw - 32px)!important; }
}

/* Keep the map and place label bare; reveal the wide nearby tray behind them. */
.location-reference-page .reference-under > .reference-location-wrap {
  width:max-content!important;
  max-width:none!important;
  margin-top:10px!important;
}
.location-reference-page .reference-map-link {
  z-index:3!important;
  gap:12px!important;
  padding:4px 0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}
.location-reference-page .reference-location-sketch { width:92px!important;height:66px!important;opacity:.38!important; }
.location-reference-page .reference-location-copy strong { font-size:25px!important; }
.location-reference-page .reference-location-copy small { font-size:13px!important; }
.location-reference-page .reference-location-pop {
  position:absolute!important;
  z-index:1!important;
  top:-12px!important;
  left:calc((min(1100px,100vw - 32px) - min(100vw - 48px,1472px))/2)!important;
  display:grid!important;
  grid-template-columns:250px minmax(0,1fr)!important;
  gap:18px!important;
  width:min(1100px,calc(100vw - 32px))!important;
  min-height:198px!important;
  padding:16px 20px 18px calc((min(100vw - 48px,1472px) - min(1100px,100vw - 32px))/2)!important;
  overflow:hidden;
  border:1px solid rgba(17,17,17,.08)!important;
  border-radius:16px!important;
  background:rgba(255,255,255,.94)!important;
  box-shadow:0 20px 55px rgba(0,0,0,.13)!important;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:none!important;
  transition:opacity .28s ease,visibility 0s linear .7s!important;
}
.location-reference-page .reference-location-wrap:hover .reference-location-pop,
.location-reference-page .reference-location-wrap:focus-within .reference-location-pop {
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:none!important;
  transition-delay:0s!important;
}
.location-reference-page .reference-pop-locations { display:none!important; }
.location-reference-page .reference-pop-nearby { grid-column:2;align-self:center;min-width:0; }
.location-reference-page .reference-pop-nearby::before {
  position:absolute;
  top:0;
  bottom:0;
  left:-10px;
  width:1px;
  content:"";
  background:#ebe9e6;
}
.location-reference-page .reference-pop-nearby { position:relative; }
.location-reference-page .reference-pop-nearby h3 { margin:0 0 11px!important; }
.location-reference-page .reference-nearby-grid { grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:13px!important; }
.location-reference-page .reference-nearby-grid a { display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:8px!important;align-content:start;text-align:center; }
.location-reference-page .reference-nearby-grid img { width:100%!important;height:auto!important;aspect-ratio:1/1;object-fit:cover; }
.location-reference-page .reference-nearby-grid a span { display:block; }

/* Keep the badge pose and frame fixed through the collection flight. */
.location-reference-page .reference-badge.is-opening,
.location-reference-page .reference-badge.is-open { animation-play-state:paused!important; }
.location-reference-page .reference-badge.is-opening .reference-badge-plate,
.location-reference-page .reference-badge.is-open .reference-badge-plate {
  transform:perspective(900px) translateY(var(--badge-lift,0px)) rotateX(var(--badge-rx,0deg)) rotateY(var(--badge-ry,0deg));
}
.location-reference-page .reference-badge-plate {
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.75),0 1px 2px rgba(30,24,14,.16),0 6px 10px rgba(30,24,14,.15),0 16px 22px -2px rgba(30,24,14,.17),0 32px 40px -8px rgba(30,24,14,.22);
}
.location-reference-page .collection-close { transition:opacity .4s ease,transform .25s,background .25s; }
.location-reference-page .location-collection-overlay:not(.settled) .collection-close { opacity:0!important;pointer-events:none!important; }
.location-reference-page .location-collection-overlay.settled .collection-close { opacity:1;pointer-events:auto; }
.location-reference-page .location-collection-overlay.is-closing { transition-duration:.9s!important; }
@media(max-width:760px) {
  .location-reference-page .reference-location-pop { top:calc(100% + 8px)!important;left:0!important;grid-template-columns:1fr!important;width:calc(100vw - 32px)!important;min-height:0!important;padding:16px!important; }
  .location-reference-page .reference-pop-nearby { grid-column:1; }
  .location-reference-page .reference-nearby-grid { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
}

/* Align only the hover panel backdrop with the fixed map and town label. */
.location-reference-page .reference-location-copy { align-content:center; }
.location-reference-page .reference-location-pop {
  overflow:visible!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
.location-reference-page .reference-location-pop::before {
  position:absolute;
  z-index:0;
  top:-106px;
  left:174px;
  width:1080px;
  height:270px;
  content:"";
  border:1px solid rgba(17,17,17,.08);
  border-radius:16px;
  background:rgba(255,255,255,.94);
  box-shadow:0 20px 55px rgba(0,0,0,.13);
  pointer-events:none;
}
.location-reference-page .reference-pop-nearby { z-index:2; }
@media(max-width:760px) {
  .location-reference-page .reference-location-pop::before { top:0;left:0;width:100%;height:100%; }
}

/* Final alignment and drawer hit area: keep the hover tray inside its panel. */
.location-reference-page .reference-photog-description {
  color:#514b44!important;
  opacity:1!important;
  font-weight:500!important;
  line-height:1.35!important;
}
.location-reference-page .reference-under > .reference-location-wrap { margin-top:-2px!important; }
.location-reference-page .reference-location-pop {
  top:-118px!important;
  height:270px!important;
  min-height:270px!important;
  padding-top:0!important;
  padding-bottom:0!important;
  overflow:hidden!important;
  border:1px solid rgba(17,17,17,.08)!important;
  background:rgba(255,255,255,.94)!important;
  box-shadow:0 20px 55px rgba(0,0,0,.13)!important;
  transition:opacity .28s ease,visibility 0s linear .9s!important;
}
.location-reference-page .reference-location-wrap:hover .reference-location-pop,
.location-reference-page .reference-location-wrap:focus-within .reference-location-pop {
  transition-delay:0s!important;
}
.location-reference-page .reference-location-pop::before { content:none!important; }
@media(max-width:760px) {
  .location-reference-page .reference-location-pop {
    top:calc(100% + 8px)!important;
    height:auto!important;
    min-height:0!important;
    padding:16px!important;
  }
}

/* Match the reference drawer: place label at the left, then center the nearby row. */
.location-reference-nav {
  position:fixed!important;
  top:0!important;
  left:0!important;
  right:0!important;
  z-index:1000!important;
}
.reference-stage { padding-top:56px!important; }
.location-reference-page .reference-under > .reference-location-wrap {
  margin-left:0!important;
  margin-top:-2px!important;
}
.location-reference-page .reference-location-pop {
  left:0!important;
  width:min(920px,calc(100vw - 32px))!important;
  height:270px!important;
  min-height:270px!important;
  grid-template-columns:203px minmax(0,1fr)!important;
  align-items:center!important;
  gap:18px!important;
  padding:18px 20px!important;
}
.location-reference-page .reference-location-pop {
  top:-108px!important;
  padding-left:26px!important;
}
.location-reference-page .reference-pop-locations {
  display:none!important;
}
.location-reference-page .reference-pop-nearby {
  grid-column:2!important;
  align-self:center!important;
  min-width:0;
}
@media(max-width:760px) {
  .reference-stage { padding-top:44px!important; }
  .location-reference-page .reference-location-pop {
    left:0!important;
    height:auto!important;
    min-height:0!important;
    grid-template-columns:1fr!important;
    padding:16px!important;
  }
  .location-reference-page .reference-pop-nearby { grid-column:1!important; }
}

/* A little more room for the location score labels and values. */
.location-reference-page .reference-meters { width:184px!important; }
@media(max-width:760px) {
  .location-reference-page .reference-meters { width:184px!important; }
}

/* Other places are square, single-image cards; their detail pages use the regular location template. */
.bento-grid.other-place-grid {
  grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));
  gap:clamp(1rem,2vw,1.5rem);
}
.other-place-grid .other-place-card {
  display:block;
  grid-column:auto;
  width:100%;
  height:auto;
  aspect-ratio:1;
  color:inherit;
  text-decoration:none;
}
.other-place-grid .other-place-card { transition:opacity 1.6s cubic-bezier(.3,.1,.3,1); }
.other-place-grid .other-place-card .mp-card-inner,
.other-place-grid .other-place-card:hover .mp-card-inner {
  transform:none;
  transition:filter 1.6s cubic-bezier(.3,.1,.3,1);
}
@media (hover:hover) {
  .other-place-grid:has(.other-place-card:hover) .other-place-card:not(:hover) { opacity:.6; }
  .other-place-grid:has(.other-place-card:hover) .other-place-card:not(:hover) .mp-card-inner { filter:saturate(.4); }
}
@media (prefers-reduced-motion:reduce) {
  .other-place-grid .other-place-card,
  .other-place-grid .other-place-card .mp-card-inner { transition-duration:.01s; }
}
.other-places-heading { padding-top:1rem; padding-bottom:2rem; }
.other-places-heading h1 { margin:.45rem 0 .5rem; font-size:clamp(2.4rem,5vw,4.5rem); line-height:1; }
.other-places-heading p { margin:0; color:var(--muted); font-size:.95rem; }
.other-places-empty { border:1px solid var(--line); padding:2rem; color:var(--muted); text-align:center; background:rgba(255,255,255,.7); }

/* Final accordion override: keep the description content stationary as it closes. */
.location-reference-page .reference-under.is-open.is-collapsing .reference-extended { transform:none!important; }

@media(min-width:761px) {
  .location-reference-page .reference-hero { margin-top:0!important; padding:0 8px 8px!important; border-top:0!important; }
}

/* Fill more of a Full HD viewport while preserving the existing tile gutters. */
.location-reference-page .reference-hero { width:min(calc(100% - 32px),1888px)!important; }
.location-reference-page .reference-quote { max-width:920px!important; }
.location-reference-page .reference-extended { max-width:920px!important; }

/* Keep the description toggle in normal flow and animate the measured content height. */
.location-reference-page .reference-quote-block > .reference-quote,
.location-reference-page .reference-quote-block > .reference-more-toggle,
.location-reference-page .reference-quote-block > .reference-extended-wrap {
  order:0!important;
}
.location-reference-page .reference-extended-wrap {
  display:block!important;
  grid-template-rows:none!important;
  max-height:0;
  overflow:hidden!important;
  opacity:0;
  transition:max-height .58s cubic-bezier(.2,.7,.2,1),opacity .32s ease;
}
.location-reference-page .reference-under.is-open:not(.is-collapsing) .reference-extended-wrap { opacity:1; }
.location-reference-page .reference-under.is-open.is-collapsing .reference-extended-wrap { opacity:0; }
.location-reference-page .reference-extended { transform:none!important;transition:none!important; }
.location-reference-page .reference-under.is-open.is-collapsing .reference-extended { transform:none!important; }
.location-reference-page .reference-more-toggle { transition:opacity .18s ease; }
.location-reference-page .reference-more-toggle.is-label-changing { opacity:0; }

/* Stable description accordion with a real chevron instead of a text glyph. */
.location-reference-page .reference-more-toggle > .reference-more-label {
  display:inline-block;
  font:inherit!important;
  transform:none!important;
  transition:none!important;
}
.location-reference-page .reference-more-toggle > .reference-more-icon {
  display:grid;
  flex:0 0 16px;
  width:16px;
  height:16px;
  place-items:center;
  font:inherit!important;
  transform:none;
  transition:transform .28s cubic-bezier(.2,.7,.2,1);
}
.location-reference-page .reference-more-toggle > .reference-more-icon svg {
  display:block;
  width:14px;
  height:14px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.location-reference-page .reference-more-toggle.is-open > .reference-more-icon { transform:rotate(180deg)!important; }
.location-reference-page .reference-extended-wrap {
  display:block!important;
  grid-template-rows:none!important;
  height:0;
  max-height:none!important;
  overflow:hidden!important;
  opacity:0;
  transition:height .58s cubic-bezier(.2,.7,.2,1),opacity .32s ease!important;
}
.location-reference-page .reference-under.is-open:not(.is-collapsing) .reference-extended-wrap { opacity:1!important; }
.location-reference-page .reference-under.is-open.is-collapsing .reference-extended-wrap { opacity:0!important; }
.location-reference-page .reference-extended { transform:none!important;transition:none!important; }
.location-reference-page .reference-quote-block > .reference-quote,
.location-reference-page .reference-quote-block > .reference-more-toggle,
.location-reference-page .reference-quote-block > .reference-extended-wrap { order:0!important; }

/* Let the expanded copy close before the toggle returns to its compact row. */
.location-reference-page .reference-under.is-open.is-collapsing .reference-extended-wrap {
  grid-template-rows:0fr!important;
  opacity:0!important;
}
.location-reference-page .reference-under.is-open.is-collapsing .reference-extended {
  transform:translateY(-7px)!important;
}
.location-reference-page .reference-more-toggle:disabled { cursor:default; }
.location-reference-page .reference-more-toggle { transition:opacity .18s ease; }
.location-reference-page .reference-more-toggle.is-label-changing { opacity:0; }

/* Delay the drawer reveal until the pointer has stayed over the location. */
.location-reference-page .reference-location-wrap:hover:not(:focus-within) .reference-location-pop {
  transition-delay:.2s!important;
}
.location-reference-page .reference-location-wrap:focus-within .reference-location-pop {
  transition-delay:0s!important;
}

/* Match the score bars to the right edge of the location travel-time label. */
.location-reference-page .reference-meters { width:222px!important; }
@media(max-width:760px) {
  .location-reference-page .reference-meters { width:184px!important; }
}

/* Final accordion override: keep description text still during the close. */
.location-reference-page .reference-under.is-open.is-collapsing .reference-extended { transform:none!important; }


/* A new additional place can use distinct crops until side photos are assigned. */
.location-reference-page .is-single-image-collage .reference-hero-left > img,
.location-reference-page .is-single-image-collage .reference-hero-right-tile > img {
  position:absolute;
  width:150%;
  height:150%;
  max-width:none;
  object-fit:cover;
  animation:none;
}
.location-reference-page .is-single-image-collage .reference-hero-left > img { left:0; top:-25%; object-position:left center; }
.location-reference-page .is-single-image-collage .reference-hero-right-tile:first-child > img { left:0; top:0; object-position:left top; }
.location-reference-page .is-single-image-collage .reference-hero-right-tile:last-child > img { right:0; bottom:0; object-position:right bottom; }
/* Keep home-card captions on one line while using the available width. */
#locations .location-card-blurb {
  display:block;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  line-height:1.35;
  padding-right:5.5rem;
}
#locations .bento-7 .location-card-blurb,
#locations .bento-6 .location-card-blurb { padding-right:4.5rem; }
/* Share the caption row with Explore without reserving unused fixed space. */
#locations .location-card-action-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  column-gap:.6rem;
}
#locations .location-card-copy { display:contents; }
#locations .location-card-title { grid-column:1 / -1; }
#locations .location-card-blurb,
#locations .bento-7 .location-card-blurb,
#locations .bento-6 .location-card-blurb { grid-column:1; padding-right:0; }
#locations .location-card-meta { grid-column:2; grid-row:2; }
#locations .location-card-meta .card-explore-btn { position:static; }
/* Keep additional-place titles and Explore separate on square cards. */
.other-place-grid .location-card-action-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) 4.6rem;
  align-items:end;
  gap:.45rem;
}
.other-place-grid .location-card-copy { width:auto; min-width:0; }
.other-place-grid .location-card-title {
  display:block;
  font-size:clamp(1rem,1.45vw,1.45rem);
  line-height:1.12;
  white-space:normal;
  overflow-wrap:anywhere;
  text-overflow:clip;
}
.other-place-grid .location-card-meta .card-explore-btn { position:static; width:100%; text-align:right; white-space:nowrap; }
@media (min-width:1200px) {
  .bento-grid.other-place-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
}
/* Consistent text navigation on location and shared page headers. */
#mp-navbar .nav-home-link { width:auto; height:auto; margin-right:0; border-radius:0; }
@media (max-width:991px) {
  #mp-navbar .nav-mobile-home { width:auto; height:auto; border:0; border-radius:0; background:none; font-size:.68rem; font-weight:600; text-transform:uppercase; letter-spacing:.12em; text-decoration:none; }
}
@media (max-width:640px) {
  .location-reference-nav { grid-template-columns:minmax(0,1fr) auto; gap:6px; }
  .location-nav-left { display:flex; gap:10px; overflow-x:auto; }
  .location-nav-left a, .location-nav-left a:not(:first-child) { display:inline-flex!important; }
  .location-nav-crumb { max-width:28vw; padding:6px 8px; }
}
/* Location pages use the same header as the rest of the site. */
.location-reference-page .reference-stage { padding-top:64px!important; }
.location-mobile-crumb { display:none; }
@media (max-width:1240px) {
  .location-mobile-crumb { display:block; padding:.65rem 1rem; font-size:.7rem; color:var(--muted); }
  .location-mobile-crumb a { color:inherit; text-decoration:none; }
}
/* More prominent, readable title and place line over the main location image. */
.location-reference-page .reference-hero-caption { left:5%; right:5%; bottom:clamp(28px,4.5vw,66px); }
.location-reference-page .reference-hero-caption h1 {
  font-size:clamp(2.5rem,4.4vw,5rem);
  line-height:1.02;
  letter-spacing:.14em;
  text-indent:.14em;
  overflow-wrap:anywhere;
  text-shadow:0 2px 22px rgba(0,0,0,.6);
}
.location-reference-page .reference-hero-caption p {
  margin-top:.65rem;
  font-size:clamp(.65rem,.95vw,.9rem);
  line-height:1.4;
  letter-spacing:.16em;
  text-shadow:0 1px 12px rgba(0,0,0,.7);
}
@media (max-width:640px) {
  .location-reference-page .reference-hero-caption h1 { font-size:clamp(1.7rem,6vw,2.5rem); letter-spacing:.08em; text-indent:.08em; }
  .location-reference-page .reference-hero-caption p { font-size:.58rem; letter-spacing:.1em; }
}
/* Matching right tiles form the upper and lower halves of one zoomed crop. */
.location-reference-page .reference-hero-right.has-matching-tiles .reference-hero-right-tile > img {
  position:absolute;
  left:0;
  right:auto;
  width:100%;
  height:200%;
  max-width:none;
  object-fit:cover;
  object-position:center;
  animation:none;
}
.location-reference-page .reference-hero-right.has-matching-tiles .reference-hero-right-tile:first-child > img { top:0; bottom:auto; }
.location-reference-page .reference-hero-right.has-matching-tiles .reference-hero-right-tile:last-child > img { top:auto; bottom:0; }
/* Favor opposite image corners for fallback side views. */
.location-reference-page .is-single-image-collage .reference-hero-left > img {
  width:175%;
  height:175%;
  left:0;
  right:auto;
  top:0;
  bottom:auto;
  object-position:left top;
}
.location-reference-page .reference-hero-right.has-matching-tiles .reference-hero-right-tile > img {
  width:150%;
  height:200%;
  left:auto;
  right:0;
  object-position:right bottom;
}
.location-reference-page .reference-hero-right.has-split-portrait .reference-hero-right-tile > img {
  width:100%;
  right:auto;
  left:0;
  object-position:center;
}
/* Keep front-page card captions close to their titles. */
#locations .location-card-action-row { row-gap:0; }
#locations .location-card-title { margin-bottom:0; padding-bottom:.08em; line-height:1.2; }
#locations .location-card-blurb { margin:0; }

/* Show the real desktop location header at a reduced scale in the editor. */
.admin-hero-preview { position:relative; width:100%; overflow:hidden; background:#f1efeb; margin:.5rem 0 1.5rem; border:1px solid var(--line); }
.admin-hero-preview iframe { position:absolute; top:0; left:0; width:1440px; height:800px; border:0; transform-origin:top left; pointer-events:none; }
.admin-main-photo-control { max-width:420px; margin-bottom:1rem; }
.admin-hero-slot-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; align-items:start; }
.admin-hero-slot-grid .is-left { grid-row:span 2; }
@media(max-width:600px) { .admin-hero-slot-grid { grid-template-columns:1fr; } .admin-hero-slot-grid .is-left { grid-row:auto; } }
.admin-hero-layout-choice { display:flex; flex-wrap:wrap; gap:.75rem 1.5rem; border:0; padding:0; margin:0 0 1rem; font-size:.85rem; }
.admin-hero-layout-choice legend { float:none; width:auto; margin-bottom:.4rem; }
.admin-hero-slot[hidden], [data-right-portrait-controls][hidden], .admin-square-crop[hidden] { display:none!important; }
.admin-crop-stage { position:relative; line-height:0; overflow:hidden; touch-action:none; cursor:move; }
.admin-crop-stage img { display:block; width:100%; height:auto; }
.admin-crop-box { position:absolute; box-sizing:border-box; border:2px solid white; box-shadow:0 0 0 9999px rgba(0,0,0,.5); pointer-events:none; }
.admin-square-crop input[type=range] { width:100%; }
/* Keep the layout choice and selected right-side controls in the right column. */
.admin-hero-slot-grid .is-left { grid-column:1; grid-row:1 / span 4; }
.admin-hero-slot-grid .admin-hero-layout-choice,
.admin-hero-slot-grid .is-right-landscape,
.admin-hero-slot-grid [data-right-portrait-controls] { grid-column:2; }
.admin-hero-slot-grid .admin-hero-layout-choice { margin:0; }
@media(max-width:600px) {
  .admin-hero-slot-grid .is-left,
  .admin-hero-slot-grid .admin-hero-layout-choice,
  .admin-hero-slot-grid .is-right-landscape,
  .admin-hero-slot-grid [data-right-portrait-controls] { grid-column:1; grid-row:auto; }
}
.admin-photo-picker { width:min(900px,94vw); max-height:85vh; border:1px solid var(--line); padding:1.25rem; background:#fff; }
.admin-photo-picker::backdrop { background:rgba(0,0,0,.55); }
.admin-photo-picker-head { display:flex; justify-content:space-between; align-items:center; gap:1rem; }
.admin-photo-picker-head h2 { margin:0 0 1rem; }
.admin-photo-picker-head button { border:0; background:none; font-size:2rem; cursor:pointer; }
.admin-photo-picker-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:.7rem; margin-top:1rem; }
.admin-photo-picker-item { padding:0; border:1px solid var(--line); background:#fff; text-align:left; cursor:pointer; overflow:hidden; }
.admin-photo-picker-item:hover,.admin-photo-picker-item:focus-visible { outline:2px solid var(--ink); outline-offset:2px; }
.admin-photo-picker-item img { display:block; width:100%; aspect-ratio:1; object-fit:cover; }
.admin-photo-picker-item span { display:block; padding:.4rem; font-size:.7rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.admin-main-photo-control { max-width:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; align-items:start; }
@media(max-width:600px) { .admin-main-photo-control { grid-template-columns:1fr; } }

.admin-crop-stage img { user-select:none; -webkit-user-drag:none; pointer-events:none; }
.admin-crop-result { position:relative; width:min(250px,100%); aspect-ratio:1; overflow:hidden; border:1px solid var(--line); background:#f1efeb; }
.admin-crop-result img { position:absolute; display:block; max-width:none; height:auto; user-select:none; pointer-events:none; }
.admin-crop-result::after { content:""; position:absolute; inset:0; pointer-events:none; background:url("/public/images/location-reference/jewelcase@4x.png") center/100% 100% no-repeat; }
/* Small caps add a monumental hierarchy without forcing every letter to full height. */
.location-reference-page .reference-hero-caption { bottom:clamp(12px,1.5vw,22px); }
.location-reference-page .reference-hero-caption h1 {
  font-family:'Cormorant Garamond',Georgia,serif;
  font-variant:small-caps;
  font-weight:600;
  text-transform:none;
  letter-spacing:.045em;
  text-indent:0;
  line-height:.98;
  animation-name:reference-title-in-serif;
}
.location-reference-page .reference-hero-caption p {
  margin-top:.3rem;
  font-size:clamp(.55rem,.7vw,.72rem);
  letter-spacing:.14em;
}
@media(max-width:640px) {
  .location-reference-page .reference-hero-caption { bottom:12px; }
  .location-reference-page .reference-hero-caption h1 { letter-spacing:.025em; text-indent:0; }
  .location-reference-page .reference-hero-caption p { font-size:.52rem; }
}
.location-reference-page .reference-hero-caption h1 {
  font-weight:400;
  font-variant:normal;
  text-transform:uppercase;
  letter-spacing:.035em;
}
.location-reference-page .reference-hero-caption h1::first-letter { font-size:1.25em; }
.location-reference-page .reference-hero-caption h1 {
  font-size:clamp(2rem,3.5vw,3.8rem);
  font-weight:300;
}
@media(max-width:640px) {
  .location-reference-page .reference-hero-caption h1 { font-size:clamp(1.45rem,5vw,2rem); }
}
.location-reference-page .reference-hero-caption p { color:rgba(255,255,255,.62); }

.location-reference-page .reference-hero-caption::before {
  content:'✦';
  display:block;
  width:5.5rem;
  margin:0 auto .45rem;
  color:rgba(255,255,255,.5);
  font:400 .55rem/1 Georgia,serif;
  text-align:center;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent) left center / 42% 1px no-repeat,
             linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent) right center / 42% 1px no-repeat;
  text-shadow:0 1px 5px rgba(0,0,0,.35);
}
/* Compact typography for the square location listing cards. */
.other-place-grid .other-place-card .card-body { padding:.75rem; }
.other-place-grid .location-card-title {
  font-size:1rem;
  line-height:1.1;
  font-weight:600;
  letter-spacing:0;
}
.other-place-grid .location-distance-badge {
  top:.65rem;
  left:.7rem;
  padding:.22rem .45rem;
  font-size:.55rem;
  line-height:1.1;
  letter-spacing:.08em;
}
.other-place-grid .location-card-meta .card-explore-btn {
  font-size:.5rem;
  line-height:1.2;
  letter-spacing:.1em;
  margin-bottom:0;
}
.other-place-grid .other-place-card:hover .card-explore-btn { letter-spacing:.32em; }
/* Reveal nearby places only after deliberately hovering the location link. */
.location-reference-page .reference-location-wrap:not(.is-nearby-open) .reference-location-pop,
.location-reference-page .reference-location-wrap:hover:not(.is-nearby-open) .reference-location-pop,
.location-reference-page .reference-location-wrap:focus-within:not(.is-nearby-open) .reference-location-pop {
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transition:opacity .2s ease,visibility 0s linear .2s!important;
}
.location-reference-page .reference-location-wrap.is-nearby-open .reference-location-pop {
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
  transition:opacity .28s ease,visibility 0s!important;
}
.location-reference-page .reference-location-wrap.is-nearby-open .reference-nearby-grid a { opacity:1; transform:none; }
/* Keep the location label fixed while the expandable copy uses its column. */
.location-reference-page .reference-extended {
  width:100%;
  max-width:none!important;
  padding:0;
  font-size:17px;
  line-height:1.6;
}
@media(min-width:761px) {
  .location-reference-page .reference-under { grid-template-rows:85px auto; }
  .location-reference-page .reference-under > .reference-location-wrap { align-self:start; }
}
/* Give the photographer introduction and portfolio link clearer visual weight. */
.location-reference-page .reference-photog-description {
  font-size:clamp(17px,1.15vw,20px);
  max-width:45%;
}
.location-reference-page .reference-photog-portfolio {
  margin-left:auto;
  min-height:34px;
  padding:0 15px;
  font-size:10px;
  letter-spacing:.09em;
  color:#3f3a35;
  border-color:#bdb7ae;
  background:rgba(255,255,255,.86);
}
.location-reference-page .reference-photog-portfolio:hover,
.location-reference-page .reference-photog-portfolio:focus-visible { color:#fff; background:#171717; border-color:#171717; }
@media(max-width:760px) {
  .location-reference-page .reference-photog-description { max-width:100%; font-size:17px; }
  .location-reference-page .reference-photog-toolbar { flex-wrap:wrap; }
}
.location-reference-page .reference-photog-toolbar { justify-content:flex-start; }
.location-reference-page .reference-photog-tool-left { gap:8px; }
.location-reference-page .reference-photog-portfolio { margin-left:0; }
.location-reference-page .reference-photog-action { min-height:34px; padding:0 15px; }
/* Balance the photographer row with details on the left and actions on the right. */
.location-reference-page .reference-photog-toolbar { justify-content:space-between; gap:12px 24px; }
.location-reference-page .reference-photog-actions { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin-left:auto; }
@media(max-width:760px) {
  .location-reference-page .reference-photog-actions { margin-left:0; justify-content:flex-start; }
}
/* Keep portfolio rows, photos and navigation controls stationary on hover. */
.location-reference-page .reference-photographers .photographer-row:hover,
.location-reference-page .reference-photographers .photographer-row:focus-within { transform:none!important; }
.portfolio-strip .portfolio-thumb img,
.portfolio-strip .portfolio-thumb:hover img { transform:scale(1.07) translate3d(0,0,0); }
.location-reference-page .reference-photographers .portfolio-strip .portfolio-thumb img,
.location-reference-page .reference-photographers .portfolio-strip .portfolio-thumb:hover img { transform:none!important; }
.reference-strip-arrow:not(:disabled):hover { transform:none; }
.location-reference-page .reference-photog-actions { flex-wrap:nowrap; }
@media(max-width:760px) { .location-reference-page .reference-photog-actions { max-width:100%; overflow-x:auto; padding-bottom:2px; } }

.location-reference-page .reference-photog-name-line .reference-photog-portfolio { flex:none; margin-left:0; align-self:center; }
.location-reference-page .reference-photog-name-line:not(:has(.reference-photog-price)) .reference-photog-portfolio { margin-left:auto; }
@media(max-width:760px) {
  .location-reference-page .reference-photog-name-line .reference-photog-portfolio { margin-left:auto; }
}
/* Match the portfolio link to the two actions beneath it. */
.location-reference-page .reference-photog-actions { width:250px; max-width:100%; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; overflow:visible; }
.location-reference-page .reference-photog-name-line .reference-photog-portfolio { width:250px; max-width:100%; }
.location-reference-page .reference-photog-description {
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  white-space:normal;
  overflow:hidden;
  font-size:clamp(16px,1.05vw,18px);
}
@media(max-width:760px) {
  .location-reference-page .reference-photog-description { font-size:16px; }
}
.location-reference-page .reference-photog-actions,
.location-reference-page .reference-photog-name-line .reference-photog-portfolio { width:224px; }
.location-reference-page .reference-photog-name-line .reference-photog-portfolio {
  min-height:29px;
  font-size:9px;
  color:#77736e;
  border-color:#ddd9d3;
  background:transparent;
}
.location-reference-page .reference-photog-name-line .reference-photog-portfolio:hover,
.location-reference-page .reference-photog-name-line .reference-photog-portfolio:focus-visible { color:#fff; background:#171717; border-color:#171717; }
.location-reference-page .reference-photog-actions .reference-photog-action { min-width:0; padding-inline:6px; letter-spacing:.06em; }

.location-reference-page .reference-photog-name-line .reference-photog-portfolio { width:auto; min-width:150px; font-size:10px; }

.location-reference-page .reference-photog-actions .reference-photog-action { min-height:27px; }

.location-reference-page .reference-hero-caption h1 {
  font-weight:300;
  color:rgba(255,255,255,.91);
  text-shadow:0 1px 8px rgba(0,0,0,.42);
}
/* Keep the badge cover steady and show the whole selected image. */
.location-reference-page .reference-badge-plate,
.location-reference-page .reference-badge.is-opening .reference-badge-plate,
.location-reference-page .reference-badge.is-open .reference-badge-plate { transform:none!important; }
.location-reference-page .reference-badge-plate img {
  inset:0;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  transform:none!important;
}
/* Keep the expanded text and its closing control close together. */
.location-reference-page .reference-extended > :last-child { margin-bottom:0; }
.location-reference-page .reference-under.is-open .reference-more-toggle { margin-top:0; }
/* Location badge and collection scene, matching the supplied v86 reference. */
.location-reference-page .reference-badge-plate {
  transform:translateY(0)!important;
  transition:transform .9s cubic-bezier(.2,.75,.25,1),box-shadow .6s ease!important;
  box-shadow:0 1px 2px rgba(22,15,6,.12),0 3px 6px -1px rgba(22,15,6,.09),0 9px 16px -5px rgba(22,15,6,.09),0 20px 32px -10px rgba(22,15,6,.09),0 38px 56px -16px rgba(22,15,6,.08),0 66px 90px -28px rgba(22,15,6,.08)!important;
}
.location-reference-page .reference-badge:hover .reference-badge-plate,
.location-reference-page .reference-badge:focus-visible .reference-badge-plate { transform:translateY(-8px)!important; }
.location-reference-page .reference-badge.is-opening .reference-badge-plate,
.location-reference-page .reference-badge.is-open .reference-badge-plate { transform:none!important; }
.location-reference-page .reference-badge-plate img { inset:0; width:100%; height:100%; object-fit:cover; transform:none!important; }
.location-reference-page .reference-badge-check,
.location-reference-page .reference-badge-heart { transition:transform .9s cubic-bezier(.2,.75,.25,1),background .25s,color .25s; }
.location-reference-page .reference-badge:hover .reference-badge-check,
.location-reference-page .reference-badge:hover .reference-badge-heart { transform:translateY(-8px); }
.location-reference-page .reference-badge.is-opening .reference-badge-check,
.location-reference-page .reference-badge.is-opening .reference-badge-heart,
.location-reference-page .reference-badge.is-open .reference-badge-check,
.location-reference-page .reference-badge.is-open .reference-badge-heart { opacity:0; pointer-events:none; }
.location-collection-overlay {
  background:rgba(244,242,238,.5)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.12)!important;
  backdrop-filter:blur(18px) saturate(1.12)!important;
  transition:opacity 1.1s cubic-bezier(.4,0,.2,1),visibility 0s linear 1.1s!important;
}
.location-collection-overlay.is-open { transition-delay:0s!important; }
.location-collection-overlay .collection-intro { max-width:650px; padding:0 16px; }
.location-collection-overlay .collection-intro span { color:#fff; font:400 clamp(1.9rem,3.6vw,3.3rem)/1.05 'Cormorant Garamond',Georgia,serif; font-variant:small-caps; letter-spacing:.16em; text-shadow:0 1px 2px rgba(30,24,14,.22),0 4px 22px rgba(30,24,14,.3); }
.location-collection-overlay .collection-intro p { max-width:560px; margin:12px auto 0; color:#fff; font:italic 400 17px/1.45 'Cormorant Garamond',Georgia,serif; text-shadow:0 1px 2px rgba(30,24,14,.26),0 2px 14px rgba(30,24,14,.32); }
.location-collection-overlay .collection-intro::before { content:''; position:absolute; z-index:-1; inset:-36px -15% -30px; background:radial-gradient(ellipse at center,rgba(30,24,14,.17),transparent 70%); }
.location-collection-overlay .collection-close { transition:none!important; }
.location-collection-overlay .collection-close:hover { transform:none; background:#fff; }
.location-collection-overlay:not(.settled) .collection-close { opacity:0; pointer-events:none; }
.location-collection-overlay.settled .collection-close { opacity:1; pointer-events:auto; }
.location-collection-overlay .collection-row { gap:30px; min-height:209px; }
.location-collection-overlay .collection-card { flex:0 1 191px; width:191px; height:177px; }
.location-collection-overlay .collection-card.static .collection-photo img,
.location-collection-overlay .collection-card.static:hover .collection-photo img,
.location-collection-overlay .main-card:not(.visited):not(.saved) .collection-photo img { filter:grayscale(.5) contrast(.93) brightness(1.05); opacity:.85; }
.location-collection-overlay .collection-card[data-shelf-state="visited"] .collection-photo img { filter:none!important; opacity:1!important; }
.location-collection-overlay .collection-card[data-shelf-state="wishlisted"] .collection-photo img { filter:grayscale(1) contrast(.85) brightness(1.12)!important; opacity:.55!important; }
.location-collection-overlay .collection-card.static .collection-mark { opacity:.96; background:linear-gradient(180deg,rgba(52,47,40,.58),rgba(24,21,17,.78)); }
.location-collection-overlay .collection-card.static .collection-mark[aria-pressed="true"] { opacity:1; }
.location-collection-overlay .collection-card.static .saved-mark[aria-pressed="true"] svg { fill:currentColor; }
.location-collection-overlay .collection-state-label { position:absolute; left:50%; bottom:11px; z-index:6; transform:translate(-50%,3px); padding:5px 14px 6px; border-radius:99px; color:#fff; background:rgba(28,25,21,.78); font:italic 600 15px/1 'Cormorant Garamond',Georgia,serif; letter-spacing:.07em; opacity:0; pointer-events:none; transition:opacity 1.4s ease,transform 1.8s ease; white-space:nowrap; }
.location-collection-overlay .collection-card.static:hover .collection-state-label:not(:empty) { opacity:1; transform:translate(-50%,0); }
.location-collection-overlay .collection-card.static .badge-pop { animation:badge-button-pop .6s cubic-bezier(.3,1.4,.4,1); }
.location-collection-overlay.settled .second-row { opacity:1; }
.collection-flying-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.collection-flying-card .collection-flight-gloss { background:url('/public/images/location-reference/jewelcase@4x.png') center/100% 100% no-repeat; }
.collection-flying-card .collection-mark { width:34px; height:34px; bottom:10px; }
@media(max-width:760px) {
  .location-collection-overlay .collection-row { gap:16px; }
  .location-collection-overlay .collection-card { flex:0 1 calc(50% - 10px); width:calc(50% - 10px); height:auto; aspect-ratio:191/177; }
}
@media(prefers-reduced-motion:reduce) {
  .location-reference-page .reference-badge-plate { transition:none!important; }
}
/* The flying badge and its particles are attached directly to the body. */
.collection-flying-card img.flight-grey { filter:grayscale(.85) contrast(.9) brightness(1.1); }
.collection-flying-card img.flight-colour { filter:none; opacity:0; }
.location-collection-overlay .main-card .collection-mark { width:34px; height:34px; bottom:10px; }
body > .reference-badge-burst, body > .reference-badge-fly-mark {
  position:fixed; z-index:10002; pointer-events:none; color:#ff4d3a;
  font:500 34px/1 Georgia,serif; text-shadow:0 8px 20px rgba(224,55,43,.5);
  transform:translate(-50%,-50%); animation:badge-heart-burst .85s cubic-bezier(.2,.7,.2,1) forwards;
}
body > .reference-badge-fly-mark { z-index:10001; font-size:17px; animation:none; }
body > .reference-badge-burst.visited, body > .reference-badge-fly-mark.visited { color:#2f9a62; text-shadow:0 8px 20px rgba(47,154,98,.48); }
/* Keep the shelf close control available and finish the badge flight without a jump. */
.location-collection-overlay.is-open .collection-close { z-index:10; opacity:1!important; pointer-events:auto!important; }
.location-collection-overlay.is-closing .collection-close { opacity:0!important; pointer-events:none!important; }
.location-collection-overlay .main-card.landed .collection-photo { animation:none; }
.location-reference-page .reference-badge.is-closing .reference-badge-plate,
.location-reference-page .reference-badge.is-returned .reference-badge-plate { transform:none!important; }
.location-reference-page .reference-badge.is-returned { animation-play-state:paused!important; }
.location-reference-page .reference-badge.is-returned:not(.is-checked):not(.is-liked) .reference-badge-plate img { filter:grayscale(.85) contrast(.9) brightness(1.1); opacity:.55; }
.location-reference-page .reference-badge.is-returned.is-liked:not(.is-checked) .reference-badge-plate img { filter:grayscale(1) contrast(.85) brightness(1.12); opacity:.55; }
.location-reference-page .reference-badge.is-returned.is-checked .reference-badge-plate img { filter:none; opacity:1; }
/* Keep the landing point and the close control fixed throughout the shelf transition. */
.location-collection-overlay .first-row .main-card { transform:none!important; transition:none!important; }
.location-collection-overlay .collection-close {
  position:fixed;
  z-index:100;
  top:24px;
  right:28px;
  opacity:1;
  transform:none!important;
  transition:none!important;
}
.location-collection-overlay.is-open .collection-close { opacity:1!important; pointer-events:auto!important; }
.location-collection-overlay.is-closing .collection-close { opacity:0!important; pointer-events:none!important; }
body > .badge-simple-reaction {
  position:fixed;
  z-index:10003;
  pointer-events:none;
  color:#dd6258;
  font:400 42px/1 Georgia,serif;
  text-shadow:0 2px 8px rgba(0,0,0,.18);
}
body > .badge-simple-reaction.is-visited { color:#319765; font-size:32px; }
.location-reference-page .reference-badge:not(.is-returned):hover .reference-badge-plate img,
.location-reference-page .reference-badge:not(.is-returned):focus-visible .reference-badge-plate img {
  filter:grayscale(.45) contrast(.95) brightness(1.04)!important;
  opacity:.85!important;
}
@media(max-width:760px) { .location-collection-overlay .collection-close { top:16px; right:16px; } }
.location-reference-page .reference-badge-check.badge-pop,
.location-reference-page .reference-badge-heart.badge-pop,
.location-collection-overlay .collection-mark.badge-pop { animation:badge-subtle-confirm .3s ease; }
@keyframes badge-subtle-confirm { 50% { scale:1.12; } }
/* Use one consistent image and state treatment before, during and after flight. */
.location-reference-page .reference-badge-plate img,
.location-collection-overlay .main-card .collection-photo img { opacity:1!important; filter:grayscale(.8)!important; }
.location-reference-page .reference-badge.is-liked:not(.is-checked) .reference-badge-plate img,
.location-collection-overlay .main-card.saved:not(.visited) .collection-photo img { opacity:1!important; filter:grayscale(.55)!important; }
.location-reference-page .reference-badge.is-checked .reference-badge-plate img,
.location-collection-overlay .main-card.visited .collection-photo img { opacity:1!important; filter:none!important; }
.location-reference-page .reference-badge:not(.is-returned):not(.is-opening):not(.is-open):hover .reference-badge-plate img,
.location-reference-page .reference-badge:not(.is-returned):not(.is-opening):not(.is-open):focus-visible .reference-badge-plate img { filter:grayscale(.45)!important; opacity:1!important; }
.location-reference-page .reference-badge.is-opening .reference-badge-plate img { transition:filter .2s ease,opacity .2s ease!important; }
.collection-flying-card img.flight-image { position:absolute; inset:0; width:100%; height:100%; opacity:1; object-fit:cover; transform:none; }
.collection-flying-card::after { display:none; }
.collection-flying-card .collection-flight-gloss { z-index:2; }
.collection-flying-card .collection-mark,
.location-collection-overlay .main-card .collection-mark { z-index:4; width:34px; height:34px; opacity:1; border-color:rgba(255,255,255,.55); background:rgba(40,36,30,.3); }
.collection-flying-card .visited-mark[aria-pressed="true"],
.location-collection-overlay .main-card .visited-mark[aria-pressed="true"] { background:rgba(49,143,91,.76); }
.collection-flying-card .saved-mark[aria-pressed="true"],
.location-collection-overlay .main-card .saved-mark[aria-pressed="true"] { background:rgba(168,103,103,.78); }
.collection-flying-card .saved-mark[aria-pressed="true"] svg,
.location-collection-overlay .main-card .saved-mark[aria-pressed="true"] svg { fill:currentColor; }
/* Liked and achieved are distinct, mutually exclusive visual states. */
.location-reference-page .reference-badge.is-liked:not(.is-checked) .reference-badge-plate img,
.location-reference-page .reference-badge.is-liked:not(.is-checked):hover .reference-badge-plate img,
.location-reference-page .reference-badge.is-liked:not(.is-checked):focus-visible .reference-badge-plate img,
.location-collection-overlay .main-card.saved:not(.visited) .collection-photo img,
.location-collection-overlay .collection-card[data-shelf-state="wishlisted"] .collection-photo img { filter:grayscale(.55)!important; opacity:1!important; }
.location-reference-page .reference-badge.is-checked .reference-badge-plate img,
.location-reference-page .reference-badge.is-checked:hover .reference-badge-plate img,
.location-reference-page .reference-badge.is-checked:focus-visible .reference-badge-plate img,
.location-collection-overlay .main-card.visited .collection-photo img,
.location-collection-overlay .collection-card[data-shelf-state="visited"] .collection-photo img { filter:none!important; opacity:1!important; }.location-reference-page .reference-badge:not(.is-returned):not(.is-opening):not(.is-open).is-liked:not(.is-checked):hover .reference-badge-plate img,
.location-reference-page .reference-badge:not(.is-returned):not(.is-opening):not(.is-open).is-liked:not(.is-checked):focus-visible .reference-badge-plate img { filter:grayscale(.55)!important; }
.location-reference-page .reference-badge:not(.is-returned):not(.is-opening):not(.is-open).is-checked:hover .reference-badge-plate img,
.location-reference-page .reference-badge:not(.is-returned):not(.is-opening):not(.is-open).is-checked:focus-visible .reference-badge-plate img { filter:none!important; }
/* Clearly distinguish the selected wishlist and visited marks. */
.location-reference-page .reference-badge-heart[aria-pressed="true"],
.location-collection-overlay .collection-mark.saved-mark[aria-pressed="true"],
.collection-flying-card .collection-mark.saved-mark[aria-pressed="true"] {
  color:#c83535!important; background:rgba(255,255,255,.94)!important;
  border-color:rgba(195,53,53,.5)!important; opacity:1!important;
}
.location-reference-page .reference-badge-check[aria-pressed="true"],
.location-collection-overlay .collection-mark.visited-mark[aria-pressed="true"],
.collection-flying-card .collection-mark.visited-mark[aria-pressed="true"] {
  color:#218553!important; background:rgba(255,255,255,.94)!important;
  border-color:rgba(33,133,83,.5)!important; opacity:1!important;
}
.location-reference-page .reference-badge-heart[aria-pressed="true"] svg,
.location-collection-overlay .collection-mark.saved-mark[aria-pressed="true"] svg,
.collection-flying-card .collection-mark.saved-mark[aria-pressed="true"] svg { fill:currentColor!important; stroke:currentColor!important; }
.location-reference-page .reference-badge-check[aria-pressed="true"] svg,
.location-collection-overlay .collection-mark.visited-mark[aria-pressed="true"] svg,
.collection-flying-card .collection-mark.visited-mark[aria-pressed="true"] svg { fill:none!important; stroke:currentColor!important; stroke-width:2.4; }
.collection-flying-card { will-change:auto; transform:none; }
.collection-flying-card .flight-image { image-rendering:auto; backface-visibility:visible; }
/* Keep badge controls anchored while their state changes. */
.location-reference-page .reference-badge .reference-badge-check,
.location-reference-page .reference-badge .reference-badge-heart { transform:none!important; animation:none!important; }
.location-reference-page .reference-badge:not(.is-returned):not(.is-opening):not(.is-open):hover .reference-badge-check,
.location-reference-page .reference-badge:not(.is-returned):not(.is-opening):not(.is-open):hover .reference-badge-heart { transform:translateY(-8px)!important; }
.location-collection-overlay .collection-mark,
.location-collection-overlay .collection-mark:hover,
.collection-flying-card .collection-mark { transform:none!important; animation:none!important; }
.location-collection-overlay .main-card .visited-mark,
.collection-flying-card .visited-mark { left:10px; bottom:10px; }
.location-collection-overlay .main-card .saved-mark,
.collection-flying-card .saved-mark { right:10px; bottom:10px; }
.location-collection-overlay .collection-card[data-shelf-state="wishlisted"] .collection-photo img { filter:saturate(.45)!important; opacity:1!important; }
.location-collection-overlay .collection-card[data-shelf-state="visited"] .collection-photo img { filter:none!important; opacity:1!important; }
/* Reveal the other shelf marks in a quiet stagger after the badge lands. */
.location-collection-overlay .collection-card.static { --shelf-mark-delay:0s; }
.location-collection-overlay .collection-card.static:nth-child(2) { --shelf-mark-delay:.1s; }
.location-collection-overlay .collection-card.static:nth-child(3) { --shelf-mark-delay:.2s; }
.location-collection-overlay .collection-card.static:nth-child(4) { --shelf-mark-delay:.3s; }
.location-collection-overlay .second-row .collection-card.static { --shelf-mark-delay:.4s; }
.location-collection-overlay .second-row .collection-card.static:nth-child(2) { --shelf-mark-delay:.5s; }
.location-collection-overlay .second-row .collection-card.static:nth-child(3) { --shelf-mark-delay:.6s; }
.location-collection-overlay .second-row .collection-card.static:nth-child(4) { --shelf-mark-delay:.7s; }
.location-collection-overlay .collection-card.static .collection-mark {
  transition:opacity .45s ease calc(.2s + var(--shelf-mark-delay)),background .2s ease,color .2s ease;
}
.location-collection-overlay:not(.settled) .collection-card.static .collection-mark { opacity:0!important; pointer-events:none; }
.location-collection-overlay.settled .collection-card.static .collection-mark { opacity:1!important; pointer-events:auto; }
@media(prefers-reduced-motion:reduce) {
  .location-collection-overlay .collection-card.static .collection-mark { transition:none; }
}
.location-collection-overlay:not(.settled) .collection-card.static .collection-mark { transition-delay:0s; }

/* Improve collection heading contrast against changing photographs. */
.location-collection-overlay .collection-intro { isolation:isolate; }
.location-collection-overlay .collection-intro::before {
  inset:-22px -28px;
  border-radius:24px;
  background:radial-gradient(ellipse at center,rgba(25,22,18,.48),rgba(25,22,18,.25) 58%,transparent 85%);
  -webkit-backdrop-filter:blur(7px);
  backdrop-filter:blur(7px);
  -webkit-mask-image:radial-gradient(ellipse at center,#000 45%,transparent 85%);
  mask-image:radial-gradient(ellipse at center,#000 45%,transparent 85%);
}
.location-collection-overlay .collection-intro span,
.location-collection-overlay .collection-intro p { color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.6),0 3px 16px rgba(0,0,0,.4); }
/* Use smooth image resampling throughout the badge and shelf. */
.location-reference-page .reference-badge-plate img,
.location-collection-overlay .collection-photo img,
.collection-flying-card .flight-image {
  image-rendering:auto;
  -ms-interpolation-mode:bicubic;
  backface-visibility:visible;
}
/* Spread the collection heading backdrop into a softer, less visible edge. */
.location-collection-overlay .collection-intro::before {
  inset:-95px -120px;
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(25,22,18,.42) 0%,rgba(25,22,18,.30) 28%,rgba(25,22,18,.14) 55%,rgba(25,22,18,0) 100%);
  -webkit-mask-image:radial-gradient(ellipse at center,#000 20%,rgba(0,0,0,.75) 48%,transparent 100%);
  mask-image:radial-gradient(ellipse at center,#000 20%,rgba(0,0,0,.75) 48%,transparent 100%);
}
/* Keep the landing geometry without showing a placeholder on the shelf. */
.location-collection-overlay .collection-slot { visibility:hidden!important; background:none!important; box-shadow:none!important; }
/* A barely visible, feathered backdrop improves text contrast without an outline. */
.location-collection-overlay .collection-intro::before {
  inset:-80px -100px;
  border-radius:0;
  background:radial-gradient(ellipse at center,rgba(25,22,18,.16) 0%,rgba(25,22,18,.07) 36%,transparent 75%);
  filter:blur(32px);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  -webkit-mask-image:none;
  mask-image:none;
}
/* The badge uses the same shadow at rest, in flight and on the shelf. */
.location-reference-page .reference-badge-plate,
.collection-flying-card,
.location-collection-overlay .main-card .collection-photo {
  box-shadow:0 2px 5px rgba(22,15,6,.12),0 10px 22px -6px rgba(22,15,6,.14),0 24px 45px -16px rgba(22,15,6,.12)!important;
}
/* Keep location titles on one line; JavaScript scales down only when needed. */
.location-reference-page .reference-hero-caption h1 { white-space:nowrap; overflow-wrap:normal; font-size:var(--hero-title-fit,clamp(2rem,3.5vw,3.8rem)); }
@media(max-width:640px) {
  .location-reference-page .reference-hero-caption h1 { font-size:var(--hero-title-fit,clamp(1.45rem,5vw,2rem)); }
}
/* Main shelf controls appear only after their badge reaches the shelf. */
.location-collection-overlay .main-card:not(.landed) .collection-mark {
  visibility:hidden!important;
  opacity:0!important;
  pointer-events:none!important;
}
.location-collection-overlay .main-card.landed .collection-mark {
  visibility:visible;
  opacity:1!important;
  pointer-events:auto;
  transition:opacity .3s ease;
}

/* Matching controls and a clean glass flare on each collection photo. */
.location-collection-overlay .collection-card .collection-mark {
  box-sizing:border-box;
  width:34px;
  height:34px;
  bottom:10px;
  background:rgba(28,27,25,.78);
  border:1px solid rgba(255,255,255,.65);
}
.location-collection-overlay .collection-card .visited-mark { left:10px; }
.location-collection-overlay .collection-card .saved-mark { right:10px; }
.location-collection-overlay .collection-card .collection-mark svg { width:16px; height:16px; }
.location-collection-overlay .collection-card .collection-mark[aria-pressed="true"] { background:rgba(255,255,255,.96); }
.location-collection-overlay .collection-photo::after,
.collection-flying-card .collection-flight-gloss {
  background:url("/public/images/location-reference/jewelcase@4x.png") center/100% 100% no-repeat;
}
.location-collection-overlay .collection-close {
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  width:42px;
  height:42px;
  padding:0;
  margin:0;
  font:400 22px/1 Arial,sans-serif;
  color:#36332e;
  background:rgba(255,255,255,.94)!important;
  border:1px solid rgba(30,28,25,.16);
  border-radius:50%;
}
.location-collection-overlay .collection-close:focus-visible { outline:2px solid #36332e; outline-offset:3px; }

.location-reference-page .reference-map-link .reference-map-hint {
  position:absolute;
  left:50%;
  top:calc(100% + 5px);
  z-index:2;
  display:flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border:1px solid rgba(40,36,30,.12);
  border-radius:999px;
  background:rgba(255,255,255,.97);
  box-shadow:0 4px 14px rgba(0,0,0,.1);
  color:#514c46;
  font:500 10px/1.2 sans-serif;
  white-space:nowrap;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  transform:translateX(-50%)!important;
  transition:opacity .2s ease,visibility .2s ease;
}
.location-reference-page .reference-map-hint svg { width:13px; height:13px; flex:none; }
.location-reference-page .reference-map-link:hover .reference-map-hint,
.location-reference-page .reference-map-link:focus-visible .reference-map-hint { opacity:1; visibility:visible; }
.location-reference-page .reference-location-wrap:hover .reference-map-link .reference-map-hint,
.location-reference-page .reference-location-wrap:focus-within .reference-map-link .reference-map-hint { transform:translateX(-50%)!important; }

.admin-page [data-upload-slot].is-upload-ready {
  background:#253c31;
  border-color:#253c31;
  color:#fff;
  box-shadow:0 0 0 3px rgba(53,110,79,.2);
}
.admin-portrait-frame { display:grid; gap:.4rem; padding:.65rem; border:1px solid var(--line); background:#f8f7f4; }
.admin-portrait-frame label { display:grid; grid-template-columns:80px 1fr; align-items:center; gap:.5rem; font-size:.78rem; }
.admin-portrait-frame input[type="range"] { width:100%; }
.admin-portrait-frame small { color:var(--muted); font-size:.73rem; }
.admin-main-photo-control { grid-template-columns:1fr; }
.admin-main-photo-control > .admin-square-crop { width:100%; max-width:none; }
.admin-badge-crop-layout { display:grid; grid-template-columns:minmax(0,470px) minmax(0,280px); gap:1.5rem; align-items:start; justify-content:start; }
.admin-badge-choice-column { min-width:0; display:grid; justify-items:start; gap:.75rem; }
.admin-badge-choices { display:grid; grid-template-columns:repeat(auto-fill,minmax(95px,1fr)); gap:.6rem; margin:0; padding:0; border:0; }
.admin-badge-choices { display:flex; flex-wrap:nowrap; overflow-x:auto; align-items:flex-start; padding:3px 3px .5rem; }
.admin-badge-choice { flex:0 0 108px; }
.admin-badge-preview-label { margin:.9rem 0 .4rem; }
.admin-badge-choices legend { float:none; width:auto; margin-bottom:.5rem; }
.admin-badge-choice { position:relative; display:grid; gap:.25rem; padding:.35rem; border:1px solid var(--line); border-radius:8px; cursor:pointer; font-size:.72rem; }
.admin-badge-choice:has(input:checked) { border-color:#447b59; box-shadow:0 0 0 2px rgba(68,123,89,.22); }
.admin-badge-choice input { position:absolute; top:.55rem; left:.55rem; accent-color:#447b59; }
.admin-badge-choice img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:4px; }
.admin-badge-crop-controls { display:grid; justify-items:start; gap:.65rem; min-width:0; width:100%; }
.admin-badge-crop-controls > .admin-editor-note,
.admin-badge-crop-controls > p { margin:0; }
.admin-badge-crop-controls .admin-crop-stage { width:max-content; max-width:100%; border-radius:6px; background:#f1efeb; }
.admin-badge-crop-controls .admin-crop-stage img { width:auto; max-width:min(250px,100%); max-height:250px; height:auto; }
.admin-badge-crop-controls label { width:100%; }
.admin-listing-layout { display:grid; grid-template-columns:minmax(0,1fr) 250px; gap:1.5rem; align-items:start; }
.admin-listing-layout > div:first-child { display:grid; gap:.6rem; justify-items:start; min-width:0; }
.admin-listing-layout select { width:min(100%,400px); }
.admin-listing-stage { width:max-content; max-width:100%; background:#eee; }
.admin-listing-stage img { width:auto; max-width:min(400px,100%); max-height:320px; }
.admin-listing-layout input[type="range"] { display:block; width:min(100%,400px); }
@media(max-width:600px) { .admin-listing-layout { grid-template-columns:1fr; } }
@media(max-width:600px) { .admin-badge-crop-layout { grid-template-columns:1fr; } }
.admin-map-spots { margin-top:1.25rem; padding-top:1rem; border-top:1px solid var(--line); }
.admin-score .lead-label { display:flex; justify-content:space-between; gap:1rem; }
.admin-score output { color:#514c46; font-variant-numeric:tabular-nums; }
.admin-score input[type="range"] { width:100%; accent-color:#3e8079; }
.admin-editor-navigation { display:flex; align-items:end; flex-wrap:wrap; gap:.6rem; }
.admin-editor-navigation label { display:grid; gap:.25rem; min-width:190px; font-size:.75rem; color:var(--muted); }
.admin-location-switcher { width:230px; max-width:100%; font-size:.75rem; color:var(--muted); }
.admin-location-switcher-label { display:block; margin-bottom:.25rem; }
.admin-location-switcher details { position:relative; }
.admin-location-switcher summary { display:flex; align-items:center; justify-content:space-between; gap:.5rem; min-height:42px; padding:.6rem .75rem; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); cursor:pointer; list-style:none; }
.admin-location-switcher summary::-webkit-details-marker { display:none; }
.admin-location-switcher summary::after { content:'⌄'; font-size:1rem; }
.admin-location-switcher-menu { position:absolute; z-index:100; top:calc(100% + 5px); left:0; width:max(100%,260px); max-height:350px; overflow:auto; padding:.65rem; border:1px solid var(--line); border-radius:10px; background:#fff; box-shadow:0 12px 30px rgba(0,0,0,.14); }
.admin-location-search-label { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.admin-location-group-label { display:block; margin:.75rem .4rem .3rem; font-size:.65rem; font-weight:600; text-transform:uppercase; letter-spacing:.07em; color:var(--muted); }
.admin-location-switcher-menu [data-editor-location] { display:block; width:100%; padding:.5rem .55rem; border:0; border-radius:6px; background:transparent; text-align:left; color:var(--ink); cursor:pointer; }
.admin-location-switcher-menu [data-editor-location]:hover, .admin-location-switcher-menu [data-editor-location]:focus-visible, .admin-location-switcher-menu [aria-current="page"] { background:#edf3ef; }
.admin-location-switcher-menu [hidden] { display:none!important; }
.admin-location-no-results { margin:.75rem .4rem; }
.location-admin-edit { position:fixed; z-index:900; right:16px; bottom:16px; padding:.7rem 1rem; border-radius:999px; background:#263c31; color:white; text-decoration:none; font:600 12px/1 sans-serif; box-shadow:0 4px 18px rgba(0,0,0,.2); }
.admin-floating-save { position:fixed; z-index:900; right:24px; bottom:24px; display:flex; align-items:center; gap:.9rem; padding:.6rem .7rem .6rem 1rem; border:1px solid rgba(30,40,32,.14); border-radius:12px; background:rgba(255,255,255,.97); box-shadow:0 8px 30px rgba(0,0,0,.16); font-size:.8rem; color:#514c46; }
.admin-floating-save[hidden] { display:none; }
@media(max-width:600px) { .admin-floating-save { right:12px; bottom:12px; left:12px; justify-content:space-between; } }
.admin-metadata-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
.admin-location-language-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:.65rem; margin:.75rem 0 1rem; }
.admin-location-language-toolbar [role="tablist"] { display:flex; gap:.3rem; }
.admin-location-language-toolbar [role="tab"] { padding:.5rem .85rem; border:1px solid var(--line); border-radius:7px; background:#fff; cursor:pointer; }
.admin-location-language-toolbar [role="tab"][aria-selected="true"] { background:#eaf2ed; border-color:#779c85; }
.admin-location-copy-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(180px,300px); gap:1rem; align-items:start; }
.admin-location-language-panels [hidden] { display:none!important; }
.admin-location-copy-layout [data-text-main-photo] { padding-top:2.5rem; min-width:0; }
@media(max-width:700px) { .admin-location-copy-layout { grid-template-columns:1fr; } .admin-location-copy-layout [data-text-main-photo] { padding-top:0; max-width:300px; } }
@media(max-width:700px) { .admin-metadata-row { grid-template-columns:1fr; } }
.admin-coordinate-fields { display:grid; grid-template-columns:minmax(0,2fr) minmax(115px,1fr) minmax(115px,1fr); gap:.75rem; }
.admin-map-spots summary { cursor:pointer; }
@media(max-width:600px) { .admin-coordinate-fields { grid-template-columns:1fr 1fr; } .admin-coordinate-fields > :first-child { grid-column:1 / -1; } }
.admin-map-spot { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1.5fr) minmax(100px,1fr) minmax(100px,1fr) auto; align-items:end; gap:.75rem; margin:.75rem 0; }
.admin-map-spot label { display:grid; gap:.3rem; font-size:.8rem; }
@media(max-width:760px) { .admin-map-spot { grid-template-columns:1fr; } }
.location-reference-page .has-multiple-spots .reference-multiple-spots {
  grid-column:2;
  align-self:stretch;
  min-width:0;
  overflow:auto;
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:8px 4px 8px 20px;
  border-left:1px solid rgba(0,0,0,.1);
}
.reference-spots-heading { color:#8a847c; font:600 10px/1.4 sans-serif; letter-spacing:.1em; }
.reference-multiple-spots .reference-spot { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:6px 9px; color:#6e6861; text-decoration:none; border-radius:7px; font:italic 17px/1.2 'Cormorant Garamond',Georgia,serif; }
.reference-multiple-spots .reference-spot.primary { color:#403b35; font-size:21px; }
.reference-multiple-spots .reference-spot small { color:#888078; font:500 10px/1.2 sans-serif; white-space:nowrap; }
.reference-multiple-spots .reference-spot:hover, .reference-multiple-spots .reference-spot:focus-visible { background:rgba(70,60,45,.07); }
.location-reference-page .has-multiple-spots .reference-location-copy { position:relative; }
.location-reference-page .has-multiple-spots .reference-multiple-label,
.location-reference-page .has-multiple-spots .reference-multiple-subtitle { opacity:1; transition:opacity .2s ease; }
.location-reference-page .has-multiple-spots.is-nearby-open .reference-multiple-label,
.location-reference-page .has-multiple-spots.is-nearby-open .reference-multiple-subtitle { opacity:0; }
.location-reference-page .has-multiple-spots .reference-multiple-names {
  position:absolute; z-index:4; left:85px; top:calc(50% - 22px); padding-left:19px; transform:none!important;
  display:flex; flex-direction:column; align-items:stretch; gap:0;
  width:165px; max-height:none; overflow:visible;
  color:#77716a; font-size:inherit; line-height:1.1;
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .2s ease,visibility 0s linear .2s;
}
.location-reference-page .has-multiple-spots.is-nearby-open .reference-multiple-names { opacity:1; visibility:visible; pointer-events:auto; transition:opacity .25s ease .1s,visibility 0s; }
.location-reference-page .reference-multiple-place { position:relative; display:block; width:max-content; max-width:100%; color:#77716a; text-decoration:none; font:italic 21px/1.15 'Cormorant Garamond',Georgia,serif; }
.location-reference-page .reference-multiple-place.is-primary { color:#77716a; font-size:21px; line-height:1.15; }
.location-reference-page .reference-multiple-separator { display:block; align-self:stretch; width:100%; padding:8px 0; text-align:center; color:#aaa39b; font:italic 12px/1 'Cormorant Garamond',Georgia,serif; }
.admin-map-connector { display:grid; gap:.3rem; width:min(100%,220px); margin:.75rem 0; }
.admin-other-order-list { display:grid; gap:.4rem; max-width:620px; margin:.8rem 0; }
.admin-other-order-item { display:flex; align-items:center; gap:.7rem; padding:.6rem .8rem; border:1px solid var(--line); border-radius:8px; background:#fff; cursor:grab; }
.admin-other-order-item span:nth-child(2) { flex:1; }
.admin-other-order-item button { border:1px solid var(--line); border-radius:5px; background:#fff; padding:.25rem .55rem; cursor:pointer; }
.admin-other-grid-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem; margin:1rem 0; }
.admin-other-grid-heading p { margin:0; color:var(--muted); font-size:.82rem; }
.admin-other-card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(225px,1fr)); align-items:start; gap:1rem; }
.admin-other-card { display:flex; flex-direction:column; min-width:0; padding:.7rem; border:1px solid var(--line); border-radius:12px; background:#fff; cursor:grab; }
.admin-other-card.is-dragging { opacity:.45; }
.admin-other-card > .content-site-preview { order:-1; width:100%; margin-bottom:.8rem; }
.admin-other-visual { position:relative; display:block; overflow:hidden; width:100%; aspect-ratio:1; border-radius:7px; background:#d9d6d1; color:#fff; text-decoration:none; }
.admin-other-visual:hover, .admin-other-visual:focus-visible,
.admin-other-visual:hover .admin-other-visual-title,
.admin-other-visual:hover .admin-other-distance,
.admin-other-visual:hover .admin-other-hidden,
.admin-other-visual:focus-visible .admin-other-visual-title,
.admin-other-visual:focus-visible .admin-other-distance,
.admin-other-visual:focus-visible .admin-other-hidden { color:#fff; }
.admin-other-visual::after { content:''; position:absolute; inset:35% 0 0; background:linear-gradient(transparent,rgba(0,0,0,.7)); pointer-events:none; }
.admin-other-visual img { display:block; width:100%; height:100%; object-fit:cover; }
.admin-other-distance,.admin-other-hidden { position:absolute; z-index:1; top:.6rem; left:.6rem; padding:.25rem .45rem; border-radius:3px; background:rgba(25,23,20,.58); font:600 9px/1 sans-serif; letter-spacing:.05em; }
.admin-other-hidden { left:auto; right:.6rem; }
.admin-other-visual-title { position:absolute; z-index:1; bottom:.65rem; left:.7rem; right:.7rem; display:flex; justify-content:space-between; align-items:end; gap:.5rem; }
.admin-other-visual-title strong { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font:600 16px/1.1 'Cormorant Garamond',Georgia,serif; }
.admin-other-visual-title small { flex:none; font:600 8px/1 sans-serif; letter-spacing:.08em; }
.admin-other-card .content-admin-card-main > div:first-child { margin-bottom:.6rem!important; }
.admin-other-drag-label { align-self:center; color:var(--muted); font-size:.73rem; }
.admin-other-card-actions { display:flex; gap:.3rem; }
.admin-other-card-actions button { padding:.2rem .45rem; border:1px solid var(--line); border-radius:5px; background:#fff; cursor:pointer; }
.admin-other-card-edit { margin:.5rem 0; padding:.55rem; border:1px solid var(--line); border-radius:7px; cursor:auto; }
.admin-other-card-edit summary { cursor:pointer; font-size:.78rem; font-weight:600; }
.admin-other-detail-link.btn-mp { display:flex; justify-content:center; width:100%; margin-top:.55rem; padding:.7rem .8rem; border-color:#31483b; background:#31483b; color:#fff; font-size:.7rem; text-align:center; }
.admin-other-detail-link.btn-mp:hover,.admin-other-detail-link.btn-mp:focus-visible { background:#22362b; color:#fff; }
.admin-create-place-status { margin:0; color:#725c3f; font-size:.83rem; }
.content-admin-card.admin-add-place { display:block; padding:0; }
.admin-add-place > summary { padding:1.15rem 1.35rem; cursor:pointer; font-weight:600; }
.admin-add-place-form { display:grid; gap:1rem; width:100%; padding:.15rem 1.35rem 1.35rem; }
.admin-add-place-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; width:100%; }
.admin-add-place-column { display:grid; align-content:start; gap:.8rem; min-width:0; }
.admin-add-place-column label { display:block; min-width:0; }
.admin-add-place-column .form-control { width:100%; min-width:0; }
.admin-add-place-heading { padding-bottom:.4rem; border-bottom:1px solid var(--line); font-size:.76rem; font-weight:600; color:var(--muted); text-transform:uppercase; letter-spacing:.08em; }
.admin-add-place-note { display:block; margin-top:.25rem; color:var(--muted); font-size:.72rem; line-height:1.4; }
.admin-add-place-visible { display:flex; align-items:center; gap:.45rem; font-size:.78rem; color:var(--muted); }
.admin-add-place-visible:has(input:not(:checked)) { color:#a12e2e; }
.admin-add-place-visible input { accent-color:#a12e2e; }
.admin-add-photo-row { display:grid; grid-template-columns:minmax(150px,220px) minmax(180px,1fr) minmax(220px,1.2fr); gap:1.25rem; align-items:start; padding:1rem; border:1px solid var(--line); border-radius:10px; background:#faf9f7; }
.admin-add-photo { display:grid; gap:.45rem; min-width:0; }
.admin-add-photo-preview { position:relative; display:grid; place-items:center; overflow:hidden; width:100%; max-width:260px; background:#eae8e3; border:1px solid var(--line); border-radius:6px; color:#918a80; font-size:.72rem; }
.admin-add-photo-preview.is-square { width:min(100%,130px); aspect-ratio:1; }
.admin-add-photo-preview.is-landscape { aspect-ratio:16/9; }
.admin-add-photo-preview img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.admin-add-photo-preview img[hidden], .admin-add-photo-preview span[hidden] { display:none; }
.admin-add-file-label { display:grid; gap:.25rem; font-size:.75rem; color:var(--muted); }
.admin-add-file-label input { width:100%; font-size:.72rem; }
.admin-add-optional { font-weight:400; color:var(--muted); letter-spacing:0; text-transform:none; }
.admin-add-scores { display:grid; align-content:start; gap:.9rem; }
.admin-add-submit-row { display:flex; flex-wrap:wrap; align-items:end; gap:1rem; }
.admin-add-submit-action { display:grid; gap:.25rem; }
.admin-add-create { min-height:52px; padding:.9rem 1.5rem; font-size:.82rem; }
.admin-add-create:disabled { opacity:.45; cursor:not-allowed; }
.admin-add-meter .lead-label { display:flex; justify-content:space-between; }
.admin-add-meter input { display:block; width:100%; accent-color:#3e8079; }
.admin-other-saved { display:flex; align-items:center; flex-wrap:wrap; gap:.7rem; padding:.75rem 1rem; margin-bottom:1rem; background:#e6f3e8; border:1px solid #c7e2cb; border-radius:var(--radius); font-size:.85rem; }
.admin-other-saved .btn-mp { padding:.45rem .7rem; font-size:.7rem; }
.admin-add-coordinates { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; }
.admin-add-slug-review { width:min(100%,320px); }
@media(max-width:760px) { .admin-add-place-columns { grid-template-columns:1fr; } }
@media(max-width:760px) { .admin-add-photo-row { grid-template-columns:1fr; } }

/* Standalone collection, using the same glass photos and shelves as the drawer. */
.nav-links [data-nav-collection].is-empty-collection,
.nav-mobile-menu [data-nav-collection].is-empty-collection { opacity:.55; }
.my-collection-page { position:relative; isolation:isolate; min-height:85vh; padding:110px 32px 90px; overflow:hidden; background:#dedbd4; }
.my-collection-page::before { content:''; position:absolute; z-index:-2; inset:-60px; background:linear-gradient(110deg,rgba(238,235,228,.68),rgba(228,224,215,.76)),url('/public/images/location-reference/la-bateria-1.webp') center/cover no-repeat; filter:blur(32px) saturate(.75); transform:scale(1.05); pointer-events:none; }
.my-collection-page::after { content:''; position:absolute; z-index:-1; inset:0; background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(247,245,241,.62)); pointer-events:none; }
.my-collection-page + .site-footer { margin-top:0!important; background:#fff!important; }
.my-collection-page + .site-footer .footer-logo-wrap { margin-top:0; }
.my-collection-page + .site-footer .footer-brand-image { mix-blend-mode:normal; filter:contrast(1.5); }
.location-reference-page .reference-photog-actions .reference-photog-action:only-child { grid-column:1 / -1; }
@media (hover:hover) {
  .location-reference-page .reference-photographers .portfolio-strip { transition:filter .5s ease; }
  .location-reference-page .reference-photographers:has(.portfolio-strip:hover) .photographer-row:not(:has(.portfolio-strip:hover)) .portfolio-strip { filter:saturate(.3); }
}
@media (prefers-reduced-motion:reduce) { .location-reference-page .reference-photographers .portfolio-strip { transition:none; } }
.my-collection-layout { width:min(1510px,100%); margin:auto; display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,340px); gap:clamp(30px,4vw,65px); align-items:start; }
.my-collection-content { width:100%; min-width:0; margin:0; }
.my-collection-intro { text-align:center; color:#49453e; }
.my-collection-intro h1 { margin:0; font:400 clamp(2.6rem,5vw,4rem)/1.05 'Cormorant Garamond',Georgia,serif; font-variant:small-caps; letter-spacing:.12em; }
.my-collection-intro p { margin:.8rem auto 1.7rem; max-width:570px; font:italic 18px/1.4 'Cormorant Garamond',Georgia,serif; }
.my-collection-empty { max-width:650px; margin:0 auto 1.5rem; color:#655f57; text-align:center; font-size:.87rem; line-height:1.6; }
.my-collection-empty[hidden] { display:none; }
.my-collection-shelves { display:grid; gap:15px; }
.my-collection-row { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; align-items:end; padding:0 14px 46px; }
.my-collection-row::before { content:''; position:absolute; z-index:0; bottom:25px; left:0; right:0; height:22px; clip-path:polygon(1.6% 0,98.4% 0,100% 100%,0 100%); background:linear-gradient(#e4e1d9,#faf9f6); }
.my-collection-row::after { content:''; position:absolute; z-index:0; bottom:0; left:0; right:0; height:26px; border-radius:0 0 3px 3px; background:linear-gradient(#eeebe4,#d2cec3); box-shadow:inset 0 1px #fff,inset 0 -1px rgba(110,102,88,.3); }
.my-collection-card { position:relative; z-index:1; min-width:0; margin:0; }
.my-collection-photo { position:relative; display:block; aspect-ratio:191/177; overflow:hidden; border-radius:2px; background:#d5d0c8; box-shadow:0 2px 5px rgba(22,15,6,.12),0 10px 22px -6px rgba(22,15,6,.18),0 24px 45px -16px rgba(22,15,6,.17); }
.my-collection-photo::after { content:''; position:absolute; inset:0; pointer-events:none; background:url('/public/images/location-reference/jewelcase@4x.png') center/100% 100% no-repeat; }
.my-collection-photo img { display:block; width:100%; height:100%; object-fit:cover; }
.my-collection-card[data-state="saved"] .my-collection-photo img { filter:saturate(.45); }
.my-collection-card.is-example .my-collection-photo img { filter:grayscale(.5); opacity:.8; }
.my-collection-card figcaption { position:absolute; z-index:3; left:0; right:0; bottom:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-height:25px; padding:6px 7px; background:rgba(30,28,25,.55); color:#fff; font:500 11px/1.2 sans-serif; text-align:center; pointer-events:none; }
.my-collection-mark { position:absolute; z-index:2; bottom:35px; width:34px; height:34px; padding:0; display:grid; place-items:center; color:#fff; background:rgba(28,27,25,.78); border:1px solid rgba(255,255,255,.65); border-radius:50%; cursor:pointer; }
.my-collection-mark.is-visited { left:10px; }
.my-collection-mark.is-saved { right:10px; }
.my-collection-mark svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.my-collection-mark[aria-pressed="true"] { background:#fff; }
.my-collection-mark:disabled { cursor:default; opacity:1; }
.my-collection-mark.is-visited[aria-pressed="true"] { color:#28875b; }
.my-collection-mark.is-saved[aria-pressed="true"] { color:#c83c3c; }
.my-collection-mark.is-saved[aria-pressed="true"] svg { fill:currentColor; }
.my-collection-mark:focus-visible,.my-collection-photo:focus-visible { outline:2px solid #2c654a; outline-offset:3px; }
.my-collection-explore { display:table; margin:1.8rem auto 0; color:#4f4a43; text-decoration:none; border-bottom:1px solid currentColor; padding:.3rem; }
.my-collection-route { margin-top:80px; padding:28px; border:1px solid rgba(255,255,255,.7); border-radius:16px; background:rgba(250,249,246,.68); box-shadow:0 18px 55px rgba(60,49,37,.1); backdrop-filter:blur(16px); }
.my-collection-route-kicker { color:#8c8276; font:600 10px/1.2 sans-serif; letter-spacing:.14em; }
.my-collection-route h2 { margin:.7rem 0; color:#4e4840; font:italic 400 32px/1 'Cormorant Garamond',Georgia,serif; }
.my-collection-route .my-collection-route-note { margin:1rem 0 1.25rem; font:400 12px/1.5 sans-serif; color:#756e64; }
.my-collection-saved-lists { margin-top:1.2rem; padding-top:1rem; border-top:1px solid rgba(115,103,86,.2); color:#514b43; font:500 12px/1.4 sans-serif; }
.my-collection-saved-lists[hidden] { display:none; }
.my-collection-saved-lists summary { cursor:pointer; }
.my-collection-saved-item { display:flex; flex-wrap:wrap; align-items:center; gap:.5rem; margin-top:.65rem; }
.my-collection-saved-item a { flex:1; min-width:0; overflow-wrap:anywhere; color:#514b43; }
.my-collection-saved-count { color:#756e64; white-space:nowrap; font-size:11px; }
.my-collection-route .my-collection-saved-item button { width:auto; min-width:0; padding:.4rem .55rem; font-size:10px; }
.my-collection-route .my-collection-saved-item .my-collection-saved-icon { display:grid; place-items:center; width:30px; height:30px; padding:6px; border:1px solid rgba(60,56,48,.22); border-radius:50%; background:rgba(255,255,255,.6); color:#514b43; opacity:1; cursor:pointer; }
.my-collection-saved-icon svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.my-collection-saved-item input { min-width:0; flex:1; padding:.4rem; border:1px solid #ccc; border-radius:4px; }
.my-collection-saved-item small { flex-basis:100%; color:#756e64; }
.my-collection-saved-choices { flex-basis:100%; display:grid; gap:.3rem; max-height:180px; overflow:auto; }
.my-collection-saved-choices label { display:flex; align-items:center; gap:.4rem; }
.my-collection-saved-item .my-collection-saved-choices input { flex:none; width:auto; }
.my-collection-share[hidden], .my-collection-edit-toolbar[hidden], .my-collection-editor-choices[hidden] { display:none!important; }
.my-collection-edit-toolbar { display:grid; gap:.7rem; margin:1rem 0 1.5rem; padding:1rem; background:rgba(255,255,255,.7); border:1px solid rgba(115,103,86,.2); }
.my-collection-edit-toolbar label { display:grid; gap:.35rem; color:#514b43; font:500 12px/1.3 sans-serif; }
.my-collection-edit-toolbar input { width:100%; padding:.6rem; border:1px solid #ccc; border-radius:5px; }
.my-collection-edit-toolbar > div { display:flex; flex-wrap:wrap; gap:.5rem; }
.my-collection-edit-toolbar button { padding:.6rem .9rem; border:1px solid #393733; border-radius:999px; background:#242321; color:#fff; font:600 11px/1.2 sans-serif; cursor:pointer; }
.my-collection-edit-toolbar p { margin:0; color:#756e64; font:400 12px/1.4 sans-serif; }
.my-collection-editor-choices { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin-top:1.5rem; }
@media(max-width:700px) { .my-collection-editor-choices { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.my-collection-route p { color:#756e64; font:400 14px/1.55 sans-serif; }
.my-collection-route-illustration { display:flex; align-items:center; margin:1.6rem .2rem; }
.my-collection-route-point { width:10px; height:10px; border:1px solid #a59884; border-radius:50%; background:#f8f6f1; flex:none; }
.my-collection-route-point:first-child { background:#a59884; }
.my-collection-route-line { flex:1; border-top:1px dashed #bcb1a0; }
.my-collection-route-fields { display:grid; gap:.5rem; margin-bottom:1.2rem; }
.my-collection-route-fields label { display:grid; gap:.35rem; color:#756e64; font:500 11px/1.2 sans-serif; }
.my-collection-route-fields input,.my-collection-route-fields select { width:100%; min-width:0; min-height:40px; padding:.6rem .7rem; border:1px solid rgba(115,103,86,.18); border-radius:7px; background:rgba(255,255,255,.7); color:#514b43; font:400 12px/1.3 sans-serif; }
.my-collection-date-fields { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
.my-collection-time-choice { display:flex; flex-wrap:wrap; gap:.4rem .9rem; margin:0 0 .25rem; padding:0; border:0; }
.my-collection-time-choice legend { float:none; width:auto; margin:0 0 .4rem; color:#756e64; font:500 11px/1.2 sans-serif; }
.my-collection-time-choice label { display:flex; align-items:center; gap:.35rem; }
.my-collection-time-choice input { width:auto; min-height:0; margin:0; accent-color:#718477; }
.my-collection-route-fields [hidden] { display:none!important; }
.my-collection-share { display:grid; justify-items:center; gap:.6rem; margin:1.5rem auto 0; max-width:640px; }
.my-collection-share button { padding:.7rem .95rem; border:1px solid rgba(60,56,48,.22); border-radius:7px; background:rgba(255,255,255,.82); color:#514b43; font:500 12px/1.2 sans-serif; cursor:pointer; }
.my-collection-share button:disabled { opacity:.45; cursor:not-allowed; }
.my-collection-share [data-facebook-share] { color:#514b43; font:500 12px/1.3 sans-serif; }
.my-collection-share [data-share-result] { display:grid; gap:.55rem; width:100%; padding:1rem; border:1px solid rgba(255,255,255,.7); border-radius:10px; background:rgba(255,255,255,.5); }
.my-collection-share [data-share-result][hidden] { display:none; }
.my-collection-share label,.my-collection-share small { color:#655e55; font:400 12px/1.4 sans-serif; }
.my-collection-share-url { display:flex; gap:.5rem; }
.my-collection-share-url input { flex:1; width:0; min-width:0; padding:.6rem; border:1px solid rgba(60,56,48,.18); border-radius:6px; background:#fff; color:#514b43; }
.my-collection-share p { margin:0; color:#655e55; font:400 12px/1.4 sans-serif; text-align:center; }
.my-collection-route button { display:flex; justify-content:space-between; align-items:center; gap:.5rem; width:100%; padding:.8rem .9rem; border:0; border-radius:7px; background:#77776c; color:white; font:500 12px/1.2 sans-serif; opacity:.72; cursor:default; }
.my-collection-route button span { font-size:9px; text-transform:uppercase; letter-spacing:.07em; }
@media(max-width:1000px) { .my-collection-layout { grid-template-columns:1fr; } .my-collection-route { margin:0 auto; width:min(100%,500px); } }
@media(max-width:700px) { .my-collection-page { padding:85px 16px 50px; } .my-collection-row { grid-template-columns:repeat(2,minmax(0,1fr)); gap:35px 16px; } }
.location-reference-page .reference-multiple-place > span { display:block; position:relative; }
.location-reference-page .reference-multiple-place > span::before {
  content:""; position:absolute; left:-19px; top:.2em; width:12px; height:15px;
  background:center/contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23847e76' stroke-width='1.5'%3E%3Cpath d='M12 21s7-6.4 7-12a7 7 0 1 0-14 0c0 5.6 7 12 7 12Z'/%3E%3Ccircle cx='12' cy='9' r='2.3'/%3E%3C/svg%3E");
}
.location-reference-page .reference-multiple-place > small { display:block; position:absolute; z-index:2; left:calc(100% + 5px); bottom:0; padding:5px 8px; border:1px solid rgba(40,36,30,.12); border-radius:999px; background:rgba(255,255,255,.97); box-shadow:0 3px 12px rgba(0,0,0,.09); color:#514c46; font:500 10px/1.2 sans-serif; opacity:0; visibility:hidden; pointer-events:none; transition:opacity .2s ease,visibility .2s ease; white-space:nowrap; }
.location-reference-page .reference-multiple-place:hover > small,
.location-reference-page .reference-multiple-place:focus-visible > small { opacity:1; visibility:visible; color:#3d3934; }
.location-reference-page .has-multiple-spots .reference-multiple-names { top:50%; transform:translateY(-50%) scale(var(--list-scale,1))!important; transform-origin:left center; width:135px; }
.location-reference-page .has-multiple-spots .reference-multiple-place,
.location-reference-page .has-multiple-spots .reference-multiple-place.is-primary { font-size:clamp(13px,calc(23px - (var(--location-count) - 2) * 2px),21px); line-height:1.1; }
.location-reference-page .has-multiple-spots .reference-multiple-separator { padding:clamp(3px,calc(10px - (var(--location-count) - 2) * 1.5px),7px) 0; }
.location-reference-page .reference-extended { width:100%; max-width:920px!important; margin-top:20px; padding:0 8px; text-align:justify; }
@media(max-width:600px) { .location-reference-page .reference-extended { text-align:left; } }
.location-reference-page .reference-more-toggle { width:calc(100% - 16px); max-width:904px; align-self:center; min-height:44px; padding:10px 0; cursor:pointer; }
.location-reference-page .reference-more-toggle:hover .reference-more-label,
.location-reference-page .reference-more-toggle:focus-visible .reference-more-label { color:#514c46; text-decoration:underline; }
.location-reference-page .has-multiple-spots.is-nearby-open .reference-map-hint { opacity:0; visibility:hidden; }
@media(max-width:760px) {
  .location-reference-page .has-multiple-spots .reference-multiple-spots { grid-column:1; max-height:240px; padding:4px; border:0; }
}
.admin-split-portrait-preview { position:relative; }
.admin-split-portrait-preview > [data-hero-image-preview] { position:absolute; opacity:0; pointer-events:none; }
.admin-split-portrait-preview > [data-split-preview] { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }

.admin-side-photos { margin-top:1.5rem; padding:1.2rem; border:1px solid var(--line); border-radius:14px; background:#f8f7f4; }
.admin-side-photos > .admin-editor-note { margin:.35rem 0 1rem; }
.admin-side-photos .admin-hero-slot-grid { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap:1rem; }
.admin-side-photos .admin-hero-slot-grid .is-left { grid-column:auto; grid-row:auto; }
.admin-side-photos-right { display:grid; gap:1rem; align-content:start; min-width:0; }
.admin-side-photos .admin-hero-slot,
.admin-side-photos [data-right-portrait-controls] { min-width:0; padding:1rem; border:1px solid var(--line); border-radius:10px; background:#fff; }
.admin-side-photos .admin-hero-layout-choice { display:flex; gap:.5rem; padding:.75rem; border:1px solid var(--line); border-radius:10px; background:#fff; }
.admin-side-photos .admin-hero-layout-choice legend { padding:0 .3rem; }
.admin-side-photos .admin-hero-layout-choice label { display:flex; align-items:center; gap:.4rem; padding:.5rem .65rem; border:1px solid var(--line); border-radius:8px; cursor:pointer; }
.admin-side-photos .admin-hero-layout-choice label:has(input:checked) { background:#eaf2ed; border-color:#779c85; }
@media(max-width:760px) { .admin-side-photos .admin-hero-slot-grid { grid-template-columns:1fr; } }

/* Both rows sit on matching, slightly wider shelves. */
.location-collection-overlay .collection-shelves { width:min(920px,calc(100vw - 48px)); }
.location-collection-overlay.settled .second-row::before,
.location-collection-overlay.settled .second-row::after { opacity:1; }
@media(max-width:760px) {
  .location-collection-overlay .collection-shelves { width:100%; }
  .location-collection-overlay .collection-row.second-row { display:flex; }
}

@media(min-width:761px) {
  .location-reference-page .reference-location-pop {
    width:min(calc(920px + var(--nearby-extra-width,0px)),var(--nearby-available-width,calc(100vw - 32px)))!important;
    grid-template-columns:var(--nearby-location-width,203px) minmax(0,1fr)!important;
  }
}

/* Collection controls sit in the translucent strip, without shifting the photos. */
.my-collection-card figcaption {
  min-height:42px; display:flex; flex-direction:column; justify-content:center;
  gap:2px; padding:4px 39px; background:rgba(28,27,25,.68);
}
.my-collection-caption-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.my-collection-caption-status { color:rgba(255,255,255,.66); font:500 9px/1 sans-serif; letter-spacing:.04em; }
.my-collection-mark { width:28px; height:28px; bottom:7px; background:rgba(255,255,255,.12); }
.my-collection-mark.is-visited { left:6px; }
.my-collection-mark.is-saved { right:6px; }
.my-collection-mark svg { width:14px; height:14px; }
.my-collection-card.is-status-switching figcaption { animation:collection-strip-feedback .55s ease; }
.location-collection-overlay .collection-card::after {
  content:""; position:absolute; z-index:3; left:0; right:0; bottom:0; height:40px;
  background:rgba(28,27,25,.68); pointer-events:none;
}
.location-collection-overlay .main-card:not(.landed)::after { visibility:hidden; }
.location-collection-overlay .collection-card .collection-mark {
  width:28px; height:28px; bottom:6px; background:rgba(255,255,255,.12);
}
.location-collection-overlay .collection-card .visited-mark { left:6px; }
.location-collection-overlay .collection-card .saved-mark { right:6px; }
.location-collection-overlay .collection-card .collection-mark svg { width:14px; height:14px; }
.location-collection-overlay .collection-card .collection-state-label {
  left:38px; right:38px; bottom:15px; padding:0; border-radius:0;
  transform:none!important; color:rgba(255,255,255,.7); background:none;
  font:500 9px/1.1 sans-serif; letter-spacing:.04em; text-align:center;
  opacity:0; transition:opacity .25s ease;
}
.location-collection-overlay.settled .collection-card.static .collection-state-label:not(:empty),
.location-collection-overlay .main-card.landed .collection-state-label:not(:empty) { opacity:1; }
.location-collection-overlay:not(.settled) .collection-card.static .collection-state-label { opacity:0!important; }
.location-collection-overlay .collection-card.is-status-switching::after { animation:collection-strip-feedback .55s ease; }
.location-collection-overlay .collection-card .collection-title-label {
  position:absolute; z-index:6; left:38px; right:38px; bottom:15px;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  color:#fff; font:500 10px/1.1 sans-serif; text-align:center;
  pointer-events:none; transition:opacity .2s ease,bottom .2s ease;
}
.location-collection-overlay .collection-card:has(.collection-state-label:not(:empty)) .collection-title-label { bottom:22px; }
.location-collection-overlay .collection-card .collection-state-label { bottom:8px; }
.location-collection-overlay .collection-card.is-status-confirming .collection-title-label { opacity:0; }
.location-collection-overlay .collection-card.is-status-confirming .collection-state-label { bottom:15px; opacity:1; }
.location-collection-overlay .main-card:not(.landed) .collection-title-label { visibility:hidden; }
.my-collection-caption-name,.my-collection-caption-status { transition:opacity .2s ease,transform .2s ease; }
.my-collection-card.is-status-confirming .my-collection-caption-name { opacity:0; }
.my-collection-card.is-status-confirming .my-collection-caption-status { transform:translateY(-6px); color:rgba(255,255,255,.9); }
@keyframes collection-strip-feedback {
  0%,100% { background:rgba(28,27,25,.68); }
  45% { background:rgba(90,108,94,.84); }
}
@media(prefers-reduced-motion:reduce) {
  .my-collection-card.is-status-switching figcaption,
  .location-collection-overlay .collection-card.is-status-switching::after { animation:none; }
  .my-collection-caption-name,.my-collection-caption-status,
  .location-collection-overlay .collection-card .collection-title-label,
  .location-collection-overlay .collection-card .collection-state-label { transition:none; }
}

/* Use identical control geometry at the source, in flight, and on every shelf. */
.location-reference-page .reference-badge:hover .reference-badge-plate,
.location-reference-page .reference-badge:focus-visible .reference-badge-plate,
.location-reference-page .reference-badge:hover .reference-badge-check,
.location-reference-page .reference-badge:hover .reference-badge-heart,
.location-reference-page .reference-badge:focus-visible .reference-badge-check,
.location-reference-page .reference-badge:focus-visible .reference-badge-heart { transform:none!important; }
.location-reference-page .reference-badge.is-opening .reference-badge-check,
.location-reference-page .reference-badge.is-opening .reference-badge-heart { opacity:1!important; }
.location-reference-page .reference-badge-check,
.location-reference-page .reference-badge-heart,
.collection-flying-card .collection-mark,
.location-collection-overlay .collection-card .collection-mark,
.my-collection-card .my-collection-mark {
  box-sizing:border-box; width:34px!important; height:34px!important; bottom:10px!important;
}
.location-reference-page .reference-badge-check,
.collection-flying-card .visited-mark,
.location-collection-overlay .collection-card .visited-mark,
.my-collection-card .my-collection-mark.is-visited { left:10px!important; }
.location-reference-page .reference-badge-heart,
.collection-flying-card .saved-mark,
.location-collection-overlay .collection-card .saved-mark,
.my-collection-card .my-collection-mark.is-saved { right:10px!important; }
.location-reference-page .reference-badge-check svg,
.location-reference-page .reference-badge-heart svg,
.collection-flying-card .collection-mark svg,
.location-collection-overlay .collection-card .collection-mark svg,
.my-collection-card .my-collection-mark svg { width:16px!important; height:16px!important; }
.collection-flying-card .collection-mark { visibility:visible!important; opacity:1!important; }
.location-collection-overlay .collection-card .collection-title-label,
.location-collection-overlay .collection-card .collection-state-label { left:50px; right:50px; }
.my-collection-card figcaption { padding-left:50px; padding-right:50px; }

/* Keep the place name on one line; show the status only as brief feedback. */
.location-collection-overlay .collection-card .collection-title-label,
.location-collection-overlay .collection-card:has(.collection-state-label:not(:empty)) .collection-title-label,
.location-collection-overlay .collection-card .collection-state-label,
.location-collection-overlay .collection-card.is-status-confirming .collection-state-label {
  bottom:14px; font:500 13px/1.2 sans-serif; white-space:nowrap;
  overflow:hidden; text-overflow:ellipsis;
}
.location-collection-overlay.settled .collection-card.static .collection-state-label:not(:empty),
.location-collection-overlay .main-card.landed .collection-state-label:not(:empty) { opacity:0; }
.location-collection-overlay.settled .collection-card.static.is-status-confirming .collection-state-label,
.location-collection-overlay .main-card.landed.is-status-confirming .collection-state-label { opacity:1; }
.my-collection-card figcaption { position:absolute; display:block; height:40px; padding-top:12px; padding-bottom:0; }
.my-collection-caption-name,.my-collection-caption-status {
  display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  font:500 13px/1.2 sans-serif;
}
.my-collection-caption-status { position:absolute; left:50px; right:50px; top:12px; opacity:0; color:#fff; }
.my-collection-card.is-status-confirming .my-collection-caption-status { opacity:1; transform:none; }

/* Keep both controls above the photo and caption throughout the handoff. */
.location-reference-page .reference-badge-check,
.location-reference-page .reference-badge-heart,
.collection-flying-card .collection-mark,
.location-collection-overlay .collection-card .collection-mark,
.my-collection-card .my-collection-mark {
  z-index:8;
  box-shadow:0 -2px 7px rgba(0,0,0,.22), 0 2px 5px rgba(0,0,0,.18), inset 0 1px 1px rgba(255,255,255,.25);
}
.location-reference-page .reference-badge-check[aria-pressed="false"],
.location-reference-page .reference-badge-heart[aria-pressed="false"],
.collection-flying-card .collection-mark[aria-pressed="false"],
.location-collection-overlay .collection-card .collection-mark[aria-pressed="false"],
.my-collection-card .my-collection-mark[aria-pressed="false"] {
  background:rgba(28,27,25,.78);
}

/* Keep the controls still and use the same understated outline in every state. */
.location-reference-page .reference-badge-check[aria-pressed],
.location-reference-page .reference-badge-heart[aria-pressed],
.collection-flying-card .collection-mark[aria-pressed],
.location-collection-overlay .collection-card .collection-mark[aria-pressed],
.my-collection-card .my-collection-mark[aria-pressed] {
  border:1px solid rgba(255,255,255,.34)!important;
  transform:none!important;
  scale:1!important;
  animation:none!important;
  transition:background-color .2s ease,color .2s ease,opacity .3s ease;
}
.location-reference-page .reference-badge-check[aria-pressed="false"]:hover,
.location-reference-page .reference-badge-heart[aria-pressed="false"]:hover {
  background:rgba(28,27,25,.78)!important;
}

.admin-nearby-choices { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:.5rem; margin-top:.8rem; }
.admin-nearby-choice { display:flex; align-items:center; gap:.55rem; padding:.6rem .7rem; border:1px solid #e0e1dd; border-radius:6px; font-size:.85rem; }
.admin-nearby-choice span { min-width:0; flex:1; }
.admin-nearby-choice small { color:#777; white-space:nowrap; }
.location-collection-overlay .collection-card .collection-title-label,
.location-collection-overlay .collection-card:has(.collection-state-label:not(:empty)) .collection-title-label,
.my-collection-caption-name { font-size:11px; }
.location-reference-page .reference-badge-check[aria-pressed="true"],
.location-reference-page .reference-badge-heart[aria-pressed="true"],
.collection-flying-card .collection-mark[aria-pressed="true"],
.location-collection-overlay .collection-card .collection-mark[aria-pressed="true"],
.my-collection-card .my-collection-mark[aria-pressed="true"] { background:rgba(233,231,225,.94)!important; }
.my-collection-route-fields .my-collection-children { display:flex; align-items:center; gap:.5rem; margin:.35rem 0; }
.my-collection-route-fields .my-collection-children input { width:16px; height:16px; min-height:0; margin:0; padding:0; accent-color:#718477; }
.my-collection-route-action { position:relative; padding-top:9px; }
.my-collection-route-action button { justify-content:center; }
.my-collection-coming-soon { position:absolute; z-index:1; top:0; right:12px; padding:4px 8px; border-radius:10px; background:#eae7df; color:#68645a; font:600 9px/1 sans-serif; letter-spacing:.05em; text-transform:uppercase; }

/* A single restrained shadow and stationary controls keep the badge steady. */
.location-reference-page .reference-badge,
.location-reference-page .reference-badge:hover,
.location-reference-page .reference-badge:focus-visible,
.location-reference-page .reference-badge.is-hovered { box-shadow:none!important; transform:none!important; }
.location-reference-page .reference-badge-plate,
.collection-flying-card,
.location-collection-overlay .collection-card .collection-photo,
.my-collection-card .my-collection-photo { box-shadow:0 3px 9px rgba(22,15,6,.18)!important; }
.location-reference-page .reference-badge:not(.is-returned):not(.is-opening):not(.is-open):hover .reference-badge-check,
.location-reference-page .reference-badge:not(.is-returned):not(.is-opening):not(.is-open):hover .reference-badge-heart { transform:none!important; }

/* Center up to two lines in the existing caption strip. */
.location-collection-overlay .collection-card .collection-title-label,
.location-collection-overlay .collection-card:has(.collection-state-label:not(:empty)) .collection-title-label {
  bottom:6px; height:28px; display:-webkit-box; -webkit-box-orient:vertical;
  -webkit-line-clamp:2; white-space:normal; overflow:hidden; line-height:14px;
}
.my-collection-card figcaption { box-sizing:border-box; display:flex; align-items:center; justify-content:center; padding-top:0; }
.my-collection-caption-name { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; white-space:normal; overflow:hidden; line-height:14px; max-height:28px; }
.admin-location-warnings { display:flex; flex-wrap:wrap; gap:.35rem; margin:.5rem 0; }
.admin-location-warnings:empty { display:none; }
.admin-location-warning { display:inline-flex; align-items:center; padding:.3rem .55rem; border:1px solid #e2c795; border-radius:999px; background:#fff6e4; color:#805a20; font:600 11px/1.25 sans-serif; text-decoration:none; }
.admin-location-warning:hover { background:#faebce; color:#654213; }
.location-collection-overlay .main-card.landed .collection-mark { transition:filter .35s ease!important; }
.location-collection-overlay .main-card.landed.is-arriving .collection-mark { filter:opacity(0); }
.location-collection-overlay .main-card::after { transition:opacity .35s ease; }
.location-collection-overlay .main-card.is-arriving::after { opacity:0; }
.location-collection-overlay .main-card.is-arriving .collection-title-label { opacity:0; }
.my-collection-route-fields { grid-template-columns:minmax(0,1fr) auto; align-items:end; }
.my-collection-route-fields > :not(.my-collection-date-fields):not([data-route-days-field]):not(.my-collection-children) { grid-column:1/-1; }
.my-collection-route-fields .my-collection-children { grid-column:2; align-self:end; min-height:40px; margin:0; }
.my-collection-route-places { border:1px solid rgba(115,103,86,.18); border-radius:7px; background:rgba(255,255,255,.7); color:#514b43; padding:.7rem; font:400 12px/1.3 sans-serif; }
.my-collection-route-places summary { cursor:pointer; }
.my-collection-route-places [data-route-places] { display:grid; gap:.4rem; margin-top:.7rem; max-height:180px; overflow:auto; }
.my-collection-route-fields .my-collection-route-places label { display:flex; align-items:center; gap:.45rem; }
.my-collection-route-fields .my-collection-route-places input { width:15px; height:15px; min-height:0; margin:0; padding:0; accent-color:#718477; }
.admin-swap-photos { display:flex; flex-wrap:wrap; gap:.5rem; margin:.6rem 0; }
.dashboard-location-kind { display:inline-flex; margin-left:.45rem; vertical-align:middle; padding:.25rem .55rem; border:1px solid #dedbd4; border-radius:999px; background:#f6f4f0; color:#70695e; font:600 10px/1.2 sans-serif; letter-spacing:.04em; }
.location-reference-page .reference-photographers .portfolio-thumb,
.location-reference-page .reference-photographers .portfolio-thumb:hover,
.location-reference-page .reference-photographers .portfolio-thumb img,
.location-reference-page .reference-photographers .portfolio-thumb:hover img {
  transform:none!important; scale:1!important; animation:none!important; transition:none!important;
}
@media (min-width:761px) {
  .location-reference-page .reference-photographers .portfolio-strip { height:250px; }
  .location-reference-page .reference-photographers .portfolio-thumb { width:170px; height:238px; }
  .location-reference-page .reference-photographers .portfolio-thumb--wide { width:348px; height:238px; }
}
.location-reference-page .reference-photographers .portfolio-thumb[data-portrait-photo] {
  width:auto; aspect-ratio:var(--portrait-ratio); flex:0 0 auto;
}
.my-collection-share-preview { display:block; width:min(100%,520px); height:auto; border-radius:6px; margin:.5rem auto; }
.my-collection-share-preview[hidden] { display:none; }
.my-collection-layout.is-shared { grid-template-columns:minmax(0,1fr); }
.my-collection-layout.is-shared .my-collection-content { width:min(100%,900px); margin:auto; }
.my-collection-shared-title { margin-bottom:.55rem; color:#554e45; font:italic 400 clamp(2rem,4.5vw,3.7rem)/1.1 'Cormorant Garamond',Georgia,serif; overflow-wrap:anywhere; }
.my-collection-share-title { display:grid; gap:.35rem; width:min(100%,420px); color:#655e55; font:500 12px/1.3 sans-serif; text-align:left; }
.my-collection-share-title input { width:100%; padding:.65rem; border:1px solid rgba(60,56,48,.18); border-radius:6px; background:#fff; }
.my-collection-share { display:grid; grid-template-columns:auto minmax(150px,1fr) auto auto; align-items:center; gap:1rem; max-width:none; margin:2rem auto 0; padding:1.15rem 1.3rem; border:1px solid rgba(255,255,255,.7); background:rgba(255,255,255,.62); box-shadow:0 8px 24px rgba(65,57,45,.08); }
.my-collection-share .my-collection-share-title { width:auto; color:#514a41; font:italic 400 23px/1.1 'Cormorant Garamond',Georgia,serif; white-space:nowrap; }
.my-collection-share [data-share-title] { width:100%; min-width:0; padding:.65rem .15rem; border:0; border-bottom:1px solid rgba(83,73,61,.38); border-radius:0; outline:none; background:transparent; color:#4e473f; font:italic 400 24px/1.2 'Cormorant Garamond',Georgia,serif; }
.my-collection-share [data-share-title]:focus { border-bottom-color:#514a41; }
.my-collection-share [data-create-share] { padding:.7rem 1.3rem; border:0; border-radius:999px; background:#171717; color:#fff; font:600 10px/1.2 sans-serif; letter-spacing:.04em; text-transform:uppercase; cursor:pointer; }
.my-collection-share [data-create-share]:not(:disabled) { background:#171717; opacity:1; box-shadow:none; }
.my-collection-share [data-create-share]:not(:disabled):hover { background:#383838; }
.my-collection-share [data-create-share]::after { content:' →'; margin-left:.35rem; }
.my-collection-share [data-copy-collection] { padding:.7rem 1rem; border:1px solid #171717; border-radius:999px; background:transparent; color:#171717; font:600 10px/1.2 sans-serif; letter-spacing:.04em; text-transform:uppercase; cursor:pointer; }
.my-collection-share [data-copy-collection]:not(:disabled):hover { background:rgba(23,23,23,.08); }
.my-collection-share-suggestions { grid-column:1/-1; display:flex; flex-wrap:wrap; align-items:center; gap:.4rem .55rem; color:#8b8277; font:500 10px/1.2 sans-serif; }
.my-collection-share .my-collection-share-suggestions button { padding:.3rem .6rem; border:1px solid rgba(98,87,74,.19); border-radius:999px; background:rgba(255,255,255,.6); color:#71685d; font:400 12px/1.2 sans-serif; cursor:pointer; }
.my-collection-share .my-collection-share-suggestions button:hover { border-color:#7c897b; color:#425b48; }
.my-collection-share [data-share-status] { grid-column:1/-1; }
.my-collection-share [data-share-status]:empty { display:none; }
@media(max-width:900px) { .my-collection-share { grid-template-columns:1fr auto auto; } .my-collection-share .my-collection-share-title { grid-column:1/-1; } }
@media(max-width:520px) { .my-collection-share { grid-template-columns:1fr 1fr; } .my-collection-share [data-share-title] { grid-column:1/-1; } }
.search-page-mobile-search { display:none; }
@media(max-width:991px) { .search-page-mobile-search { display:flex; gap:.5rem; margin-bottom:1.5rem; } .search-page-mobile-search input { flex:1; min-width:0; padding:.65rem; border:1px solid #ccc; border-radius:5px; } .search-page-mobile-search button { padding:.65rem .9rem; border:1px solid #ccc; border-radius:5px; background:#fff; } }
