
/* Payment experience */
.payment-page{min-height:72vh;padding:clamp(64px,8vw,112px) 0;background:linear-gradient(180deg,#edf4e8 0,#f8f6ef 42%,#fff 100%)}
.payment-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:48px}
.payment-heading h1{font-family:var(--font-display);font-size:clamp(48px,7vw,88px);line-height:.94;letter-spacing:-.06em;margin:12px 0 0;color:var(--theme-brand)}
.payment-heading h1 em{color:var(--theme-accent);font-weight:400}
.secure-note{max-width:340px;padding:20px 22px;border:1px solid rgba(31,54,39,.13);border-radius:var(--theme-radius);background:rgba(255,255,255,.7);display:grid;gap:6px}
.secure-note span{font-size:13px;line-height:1.55;color:#647168}
.package-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}
.package-card{background:#fff;border:1px solid rgba(31,54,39,.1);border-radius:calc(var(--theme-radius) + 8px);padding:28px;box-shadow:0 18px 50px rgba(31,54,39,.08);display:grid;gap:24px}
.package-card.package-featured{background:var(--theme-brand);color:#fff;transform:translateY(-12px);box-shadow:0 24px 60px rgba(31,54,39,.24)}
.package-card h2{font-size:27px;margin:8px 0}.package-card p{line-height:1.6;color:#6f7b73}.package-featured p{color:rgba(255,255,255,.7)}
.package-benefits{display:grid;gap:10px;list-style:none;margin:0;padding:0}.package-benefits li{font-size:13px;line-height:1.5;padding-left:24px;position:relative}.package-benefits li::before{color:var(--theme-accent);content:"✓";font-weight:800;left:0;position:absolute}.package-featured .package-benefits li{color:rgba(255,255,255,.86)}
.package-placement{font-size:11px;text-transform:uppercase;letter-spacing:.14em;font-weight:800;color:var(--theme-accent)}
.package-price{display:flex;align-items:flex-start;gap:8px;border-top:1px solid rgba(128,128,128,.2);padding-top:20px}.package-price span{font-size:11px;font-weight:800;margin-top:8px}.package-price strong{font-family:var(--font-display);font-size:46px;line-height:1}
.package-checkout{display:grid;gap:18px}.package-featured .field-label,.package-featured .gateway-choice legend{color:rgba(255,255,255,.72)}.package-featured select{background:#fff;color:#1f3627}
.gateway-choice{border:0;padding:0;margin:0;display:grid;gap:9px}.gateway-choice legend{font-size:12px;font-weight:800;margin-bottom:8px}
.gateway-choice label{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid rgba(128,128,128,.25);border-radius:12px;cursor:pointer}.gateway-choice label:has(input:checked){border-color:var(--theme-accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--theme-accent) 20%,transparent)}
.gateway-choice label span{display:grid;gap:2px}.gateway-choice small{font-size:10px;opacity:.68}.payment-button{width:100%;justify-content:space-between}.payment-links{display:flex;justify-content:center;gap:28px;margin-top:40px}.payment-links a{color:var(--theme-brand);font-weight:700}
.payment-empty{padding:50px;text-align:center;background:#fff;border-radius:24px;border:1px solid rgba(31,54,39,.1)}.payment-empty h2{font-family:var(--font-display);font-size:34px;margin:0 0 10px}.payment-empty p{color:#6c776f;margin-bottom:24px}
.payment-state-page{min-height:72vh;display:grid;place-items:center;padding:72px 20px;background:radial-gradient(circle at 50% 0,color-mix(in srgb,var(--theme-accent) 18%,transparent),transparent 42%),#edf4e8}
.payment-state-card{width:min(100%,580px);padding:48px;background:#fff;border-radius:28px;text-align:center;box-shadow:0 24px 70px rgba(31,54,39,.15)}
.payment-state-card h1{font-family:var(--font-display);font-size:clamp(38px,6vw,58px);line-height:1;margin:14px 0}.payment-state-card>p{color:#68736b;line-height:1.7}
.payment-spinner{display:inline-block;width:42px;height:42px;border:3px solid #dce6dc;border-top-color:var(--theme-accent);border-radius:50%;animation:payment-spin 1s linear infinite;margin-bottom:22px}@keyframes payment-spin{to{transform:rotate(360deg)}}
.state-icon{display:grid;place-items:center;width:62px;height:62px;margin:0 auto 18px;border-radius:50%;background:#e5f4dd;color:#386929;font-size:28px;font-weight:800}.status-failed .state-icon,.status-cancelled .state-icon,.status-expired .state-icon,.status-missing .state-icon{background:#f8e7e2;color:#a34b34}
.payment-summary{display:grid;grid-template-columns:repeat(3,1fr);margin:28px 0;padding:20px;background:#f4f6f1;border-radius:16px}.payment-summary div{display:grid;gap:5px}.payment-summary dt{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#7c867f}.payment-summary dd{font-weight:800;margin:0;font-size:13px}.state-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.boc-grid{display:grid;grid-template-columns:minmax(280px,420px) 1fr;gap:56px;align-items:center}.boc-qr-card{background:#fff;border-radius:28px;padding:30px;box-shadow:0 20px 60px rgba(31,54,39,.12);display:grid;text-align:center;gap:8px}.boc-qr-card img{width:100%;aspect-ratio:1;object-fit:contain;border-radius:14px}.boc-qr-card>strong{font-family:var(--font-display);font-size:42px;color:var(--theme-brand)}.boc-steps h2{font-family:var(--font-display);font-size:38px}.boc-steps ol{display:grid;gap:18px;padding-left:25px;margin:24px 0 32px}.boc-steps li{padding-left:8px;line-height:1.6}.boc-steps form{display:grid;gap:16px;max-width:520px}
.payment-history .dashboard-panel{padding:0;overflow:hidden}.payment-history-row{display:grid;grid-template-columns:1fr auto 150px;gap:24px;align-items:center;padding:22px 26px;border-bottom:1px solid rgba(31,54,39,.09);color:inherit;text-decoration:none;transition:background var(--transition-base)}.payment-history-row:hover{background:#f3f7ef}.payment-history-row>div:first-child{display:grid;gap:6px}.payment-history-row span,.payment-history-row time{font-size:12px;color:#6c776f}.history-amount{display:grid;justify-items:end;gap:5px}
.dashboard-hero-actions{display:flex;gap:12px;flex-wrap:wrap}.tip-card-payment{background:linear-gradient(145deg,var(--theme-brand),#315b43);color:#fff}.tip-card-payment p{color:rgba(255,255,255,.7)}.tip-card-payment .text-link{color:#fff}
.gateway-admin-grid{margin-bottom:24px}.gateway-settings{display:grid;gap:14px}.gateway-setting-row{display:grid;grid-template-columns:minmax(180px,1fr) auto auto auto;gap:14px;align-items:center;padding:14px;border:1px solid rgba(31,54,39,.1);border-radius:14px}.gateway-setting-row>div{display:grid;gap:4px}.gateway-setting-row>div span,.admin-help{font-size:11px;color:#708078}.admin-check{display:flex;gap:7px;align-items:center;font-size:12px;font-weight:700}.admin-help code{font-size:11px}.payment-admin-row{grid-template-columns:minmax(220px,1fr) auto auto auto}.payment-review-actions{display:flex;gap:8px}.listing-row-copy small{font-size:10px;color:#7c8780}
.gateway-rate-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px;background:#f1f5ed;border-radius:14px}
.gateway-config-card{display:grid;gap:14px;padding:18px;border:1px solid rgba(31,54,39,.12);border-radius:16px;background:#fff}.gateway-config-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.gateway-config-heading>div{display:grid;gap:3px}.gateway-config-heading span:not(.status-chip){font-size:11px;color:#708078}.gateway-config-card textarea{resize:vertical}.gateway-qr-preview{display:flex;align-items:center;gap:16px;padding:12px;background:#f1f5ed;border-radius:14px}.gateway-qr-preview img{width:86px;height:86px;object-fit:contain;background:#fff;border-radius:10px;padding:6px}.gateway-config-card input[type=file]{padding:9px;background:#fff}
.payer-details{padding:12px;border:1px solid rgba(128,128,128,.25);border-radius:12px}.payer-details summary{cursor:pointer;font-size:12px;font-weight:800}.payer-details summary small{display:block;margin-top:3px;font-size:10px;font-weight:500;opacity:.68}.payer-details-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.payer-details-grid .field-label{font-size:10px}.payer-address{grid-column:1/-1}
@media(max-width:980px){.package-grid{grid-template-columns:1fr 1fr}.package-card.package-featured{transform:none}.boc-grid{grid-template-columns:1fr}.payment-admin-row{grid-template-columns:1fr auto}.payment-review-actions{grid-column:1/-1}.gateway-setting-row{grid-template-columns:1fr auto auto}.gateway-setting-row .status-chip{grid-column:1/-1}}
@media(max-width:700px){.payment-heading{align-items:flex-start;flex-direction:column}.package-grid{grid-template-columns:1fr}.payment-heading h1{font-size:48px}.payment-page{padding:50px 0}.payment-state-card{padding:34px 22px}.payment-summary{grid-template-columns:1fr;gap:18px}.payment-history-row{grid-template-columns:1fr auto}.payment-history-row time{grid-column:1/-1}.gateway-setting-row{grid-template-columns:1fr 1fr}.gateway-setting-row>div{grid-column:1/-1}.dashboard-hero-actions{width:100%}.dashboard-hero-actions .button{flex:1}}
@media(max-width:700px){.gateway-rate-fields{grid-template-columns:1fr}.gateway-config-heading{align-items:flex-start}.gateway-qr-preview{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.payer-details-grid{grid-template-columns:1fr}.payer-address{grid-column:auto}}
@media(prefers-reduced-motion:reduce){.payment-spinner{animation:none}}
/* Tropical Modernism & Dynamic Theme System */
:root {
  /* Core defaults - overridden inline via PHP */
  --theme-brand: #1f3627;
  --theme-accent: #ba5a36;
  --theme-radius: 16px;
  --hero-overlay: 0.4;
  --font-display: 'Fraunces', serif;
  --font-sans: 'Plus Jakarta Sans', sans-serif;
  --transition-base: 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  --transition-slow: 0.6s cubic-bezier(0.16, 1, 0.3, 1);
  --reveal-y: 24px;

  /* Neutrals */
  --ink: #101412;
  --muted: #5e6660;
  --line: #d3d8d5;
  --paper: #f4f3ef;
  --card: #ffffff;
  --surface: #e9e8e4;
  
  /* Utilities */
  --shadow-color: rgba(16, 20, 18, 0.06);
  --shadow-sm: 0 4px 12px var(--shadow-color);
  --shadow-md: 0 12px 32px var(--shadow-color);
  --shadow-lg: 0 24px 64px rgba(16, 20, 18, 0.12);
  --focus-ring: 0 0 0 3px rgba(31, 54, 39, 0.15);
}

/* Base */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
body.is-admin {
  background: var(--surface);
}
a { color: inherit; text-decoration: none; transition: color var(--transition-base); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; border: none; background: none; padding: 0; }
.shell { width: min(1200px, calc(100% - 48px)); margin-inline: auto; }
.sr-only { height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; clip: rect(0,0,0,0); white-space: nowrap; }

/* Typography */
h1, h2, h3, h4, h5, h6, .brand, .font-display, .panel-heading h2 {
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: -0.02em;
  margin: 0;
}
h1 em, h2 em {
  font-style: italic;
  font-weight: 400;
  color: var(--theme-accent);
}
.eyebrow-accent {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--theme-accent);
  margin-bottom: 12px;
}
.eyebrow-light {
  display: inline-block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: rgba(255,255,255,0.7);
  margin-bottom: 12px;
}

/* Utilities */
.mt-24 { margin-top: 24px; }
.mb-24 { margin-bottom: 24px; }
.mb-16 { margin-bottom: 16px; }
.mt-auto { margin-top: auto; }
.text-danger { color: #d32f2f !important; }

/* Animations */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(var(--reveal-y));
  transition: opacity var(--transition-slow), transform var(--transition-slow);
}
.reveal-on-scroll.is-revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Header */
.site-glow {
  position: fixed;
  z-index: -2;
  inset: -40vh -20vw auto;
  height: 90vh;
  background: radial-gradient(ellipse at 22% 25%, rgba(186, 90, 54, 0.08), transparent 44%),
              radial-gradient(ellipse at 75% 0%, rgba(31, 54, 39, 0.05), transparent 42%);
  pointer-events: none;
}
.site-header {
  height: 80px;
  display: flex;
  align-items: center;
  background: rgba(244, 243, 239, 0.85);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(219, 224, 220, 0.6);
  position: sticky;
  top: 0;
  z-index: 50;
}
.nav-wrap { display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand {
  align-items: center;
  display: inline-flex;
  gap: 12px;
  font-size: 22px;
}
.brand-mark {
  align-items: center;
  background: var(--theme-brand);
  border-radius: 50%;
  color: var(--card);
  display: inline-flex;
  font-size: 11px;
  height: 34px;
  justify-content: center;
  letter-spacing: -0.05em;
  width: 34px;
  font-family: var(--font-sans);
  font-weight: 700;
}
.brand-accent { color: var(--theme-accent); }
.main-nav { display: flex; gap: 32px; margin-left: auto; margin-right: auto; }
.main-nav a { font-size: 14px; font-weight: 600; color: var(--muted); }
.main-nav a:hover { color: var(--theme-brand); }
.nav-actions { align-items: center; display: flex; gap: 16px; }

/* Language */
.language-picker { margin: 0; }
.lang-select-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 999px;
  height: 40px;
  padding: 0 14px;
  transition: border-color var(--transition-base);
  box-shadow: var(--shadow-sm);
}
.lang-select-wrapper:hover { border-color: var(--theme-brand); }
.lang-icon { color: var(--muted); margin-right: 8px; }
.lang-chevron { color: var(--muted); margin-left: 4px; pointer-events: none; }
.lang-select-wrapper select {
  appearance: none;
  background: transparent;
  border: none;
  color: var(--ink);
  font-size: 13px;
  font-weight: 600;
  outline: none;
  cursor: pointer;
  min-width: 110px;
}

/* Buttons */
.button {
  align-items: center;
  border-radius: 999px;
  display: inline-flex;
  gap: 8px;
  justify-content: center;
  min-height: 48px;
  padding: 0 24px;
  font-size: 14px;
  font-weight: 600;
  transition: all var(--transition-base);
}
.button svg { stroke-width: 2.5px; }
.button:hover { transform: translateY(-2px); }
.button:active { transform: translateY(0); }
.button-primary { background: var(--theme-brand); color: white; }
.button-primary:hover { background: var(--ink); box-shadow: var(--shadow-md); }
.button-dark { background: var(--ink); color: white; }
.button-dark:hover { background: var(--theme-brand); }
.button-white { background: var(--card); color: var(--ink); }
.button-white:hover { background: var(--paper); box-shadow: var(--shadow-md); }
.button-ghost { border: 1px solid var(--line); background: var(--card); color: var(--ink); }
.button-ghost:hover { border-color: var(--theme-brand); color: var(--theme-brand); }
.btn-sm { min-height: 38px; padding: 0 16px; font-size: 13px; }
.full-button { width: 100%; }

.avatar {
  align-items: center;
  background: rgba(31, 54, 39, 0.1);
  border-radius: 50%;
  color: var(--theme-brand);
  display: inline-flex;
  font-size: 13px;
  font-weight: 700;
  height: 36px;
  justify-content: center;
  width: 36px;
}
.avatar-link { align-items: center; display: flex; gap: 10px; font-weight: 500; font-size: 14px; color: var(--muted); }
.avatar-link:hover { color: var(--ink); }

/* Authentication */
.auth-page{background:var(--card);display:grid;grid-template-columns:minmax(420px,1.05fr) minmax(480px,.95fr);min-height:calc(100vh - 80px)}.auth-art{isolation:isolate;min-height:720px;overflow:hidden;padding:54px;position:relative}.auth-art>img{height:100%;inset:0;object-fit:cover;position:absolute;width:100%;z-index:-3;animation:auth-image-breathe 16s ease-in-out infinite alternate}.auth-art-shade{background:linear-gradient(180deg,rgba(5,15,10,.12),rgba(5,15,10,.72));inset:0;position:absolute;z-index:-2}.auth-art::after{background:radial-gradient(circle,rgba(186,90,54,.7),transparent 68%);border-radius:50%;content:"";height:300px;position:absolute;right:-100px;top:-100px;width:300px;z-index:-1;animation:auth-orb 8s ease-in-out infinite alternate}.auth-back{color:rgba(255,255,255,.82);font-size:13px;font-weight:600;position:relative}.auth-art-copy{bottom:64px;color:#fff;left:54px;max-width:580px;position:absolute;right:54px}.auth-art-copy h1{font-size:clamp(50px,6vw,82px);line-height:.98;margin:14px 0 24px}.auth-art-copy h1 em{color:#f5b28e}.auth-art-copy p{color:rgba(255,255,255,.76);font-size:17px;max-width:480px}.auth-proof{align-items:center;border-top:1px solid rgba(255,255,255,.22);display:flex;gap:16px;margin-top:34px;padding-top:22px}.auth-proof strong{font-family:var(--font-display);font-size:24px}.auth-proof span{color:rgba(255,255,255,.7);font-size:12px}.auth-form-wrap{align-items:center;display:flex;justify-content:center;padding:56px clamp(34px,6vw,96px)}.auth-form{max-width:540px;width:100%}.auth-form>.brand{margin-bottom:58px}.auth-heading{margin-bottom:30px}.auth-heading h2{font-size:clamp(38px,4vw,56px);line-height:1.04}.auth-heading p{color:var(--muted);margin:14px 0 0}.stack-form{display:flex;flex-direction:column;gap:18px}.field{display:flex;flex-direction:column;gap:8px}.field>span,.field-label{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}.field input,.field select,.field textarea{background:#fafaf8;border:1px solid var(--line);border-radius:calc(var(--theme-radius) * .72);color:var(--ink);min-height:52px;outline:none;padding:0 15px;transition:border-color var(--transition-base),box-shadow var(--transition-base),background var(--transition-base);width:100%}.field textarea{min-height:120px;padding-bottom:13px;padding-top:13px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{background:#fff;border-color:var(--theme-brand);box-shadow:var(--focus-ring)}.auth-field-grid{display:grid;gap:14px;grid-template-columns:1fr 1fr}.auth-switch{color:var(--muted);font-size:13px;margin:24px 0 0;text-align:center}.auth-switch a{color:var(--theme-brand);font-weight:700}.form-alert{background:#fff0ec;border:1px solid #f0c2b2;border-radius:12px;color:#8b3825;margin-bottom:20px;padding:13px 15px}.form-success{background:#edf7f0;border-color:#bfddc7;color:#245c35}@keyframes auth-image-breathe{to{transform:scale(1.08) translate3d(-1.5%,-1%,0)}}@keyframes auth-orb{to{transform:translate3d(-45px,35px,0) scale(1.18)}}

/* Flash */
.flash-container { margin-top: 24px; }
.flash { border-radius: var(--theme-radius); padding: 16px 24px; font-size: 14px; font-weight: 500; display: inline-block; }
.flash-success { background: #eef5e6; color: #2d503b; }
.flash-error { background: #faebe9; color: #9c3b32; }

/* Form Fields */
.field { display: flex; flex-direction: column; gap: 8px; width: 100%; }
.field-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--muted); }
.field select, .field input:not([type="radio"]):not([type="checkbox"]):not([type="range"]):not([type="color"]), .field textarea {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: calc(var(--theme-radius) - 4px);
  background: var(--card);
  color: var(--ink);
  transition: all var(--transition-base);
  outline: none;
  font-family: inherit;
}
.field select, .field input:not([type="radio"]):not([type="checkbox"]):not([type="range"]):not([type="color"]) { height: 48px; padding: 0 16px; font-size: 15px; }
.field textarea { padding: 16px; min-height: 120px; resize: vertical; }
.field select:focus, .field input:focus, .field textarea:focus {
  border-color: var(--theme-brand);
  box-shadow: var(--focus-ring);
}
.form-grid { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.form-grid .full { grid-column: 1 / -1; }
.form-row-2 { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; }

/* Custom Inputs */
.range-wrap { display: flex; align-items: center; gap: 16px; height: 48px; }
.range-wrap input[type="range"] {
  flex: 1;
  accent-color: var(--theme-brand);
  height: 4px;
  background: var(--line);
  border-radius: 99px;
  outline: none;
  -webkit-appearance: none;
}
.range-wrap input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--theme-brand);
  cursor: pointer;
  border: 2px solid white;
  box-shadow: var(--shadow-sm);
}
.range-val { font-variant-numeric: tabular-nums; font-family: monospace; font-size: 13px; font-weight: 600; color: var(--muted); width: 44px; text-align: right; }

.color-picker-wrap { display: flex; align-items: center; gap: 12px; height: 48px; }
.color-picker-wrap input[type="color"] {
  -webkit-appearance: none;
  border: 1px solid var(--line);
  border-radius: 8px;
  width: 48px;
  height: 48px;
  padding: 0;
  cursor: pointer;
  background: none;
}
.color-picker-wrap input[type="color"]::-webkit-color-swatch-wrapper { padding: 4px; }
.color-picker-wrap input[type="color"]::-webkit-color-swatch { border: none; border-radius: 4px; }
.color-hex { flex: 1; border: none !important; background: transparent !important; font-family: monospace; font-size: 14px !important; color: var(--muted) !important; padding: 0 !important; box-shadow: none !important; pointer-events: none; }

/* Cinematic Hero */
.hero-cinematic {
  position: relative;
  min-height: 90vh;
  display: flex;
  align-items: center;
  padding: 120px 0 80px;
  overflow: hidden;
  color: white;
}
.hero-cinematic::before{background:linear-gradient(90deg,rgba(255,255,255,.13),transparent 38%);content:"";inset:0;pointer-events:none;position:absolute;transform:translateX(-110%);z-index:2;animation:hero-light-sweep 9s ease-in-out infinite}.hero-cinematic::after{border:1px solid rgba(255,255,255,.22);border-radius:50%;content:"";height:440px;pointer-events:none;position:absolute;right:-160px;top:-180px;width:440px;z-index:2;animation:hero-ring 8s ease-in-out infinite alternate}.hero-img{animation:hero-breathe 18s ease-in-out infinite alternate}.search-panel-elevated{animation:search-float 5.5s ease-in-out infinite alternate}.hero-proof{animation:proof-float 4.5s ease-in-out infinite alternate}.hero-text-cinematic h1{animation:title-arrive 1.05s cubic-bezier(.16,1,.3,1) both}.hero-text-cinematic p{animation:title-arrive 1.05s .14s cubic-bezier(.16,1,.3,1) both}@keyframes hero-breathe{to{transform:scale(1.09)}}@keyframes hero-light-sweep{0%,58%{transform:translateX(-110%)}78%,100%{transform:translateX(110%)}}@keyframes hero-ring{to{transform:translate3d(-35px,25px,0) scale(.92)}}@keyframes search-float{to{transform:translateY(-7px);box-shadow:0 30px 70px rgba(0,0,0,.22)}}@keyframes proof-float{to{transform:translateY(-4px)}}@keyframes title-arrive{from{filter:blur(8px);opacity:0;transform:translateY(32px)}to{filter:blur(0);opacity:1;transform:none}}
.hero-media { position: absolute; inset: 0; z-index: 0; overflow: hidden; background: #000; }
.hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.05); /* Will be parallaxed */
  will-change: transform;
}
.hero-overlay-layer {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.1) 40%, rgba(0,0,0,0.6) 100%);
  opacity: calc(var(--hero-overlay) * 2);
  mix-blend-mode: multiply;
}
.hero-content-cinematic { position: relative; z-index: 10; max-width: 800px; margin: 0 auto; text-align: center; }
.hero-text-cinematic h1 {
  font-size: clamp(44px, 6vw, 84px);
  line-height: 1.05;
  margin: 0 0 24px;
  text-shadow: 0 12px 32px rgba(0,0,0,0.4);
}
.hero-text-cinematic p {
  font-size: clamp(16px, 2.5vw, 22px);
  color: rgba(255,255,255,0.9);
  max-width: 600px;
  margin: 0 auto 48px;
  text-shadow: 0 4px 16px rgba(0,0,0,0.4);
  font-weight: 300;
}

/* Elevated Search Panel */
.search-panel-elevated {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(20px);
  border-radius: var(--theme-radius);
  padding: 32px;
  box-shadow: var(--shadow-lg);
  color: var(--ink);
  text-align: left;
  border: 1px solid rgba(255,255,255,0.4);
}
.search-tabs { display: flex; gap: 24px; margin-bottom: 24px; border-bottom: 1px solid var(--line); padding-bottom: 16px; }
.search-tabs label { font-size: 15px; font-weight: 600; color: var(--muted); cursor: pointer; display: flex; align-items: center; gap: 8px; transition: color 0.2s; }
.search-tabs label:hover { color: var(--ink); }
.search-tabs input { accent-color: var(--theme-brand); width: 18px; height: 18px; }
.search-tabs input:checked + span { color: var(--ink); }
.search-fields { display: grid; grid-template-columns: 1fr 1fr auto; gap: 16px; align-items: end; }
.search-button { height: 48px; min-width: 160px; }
.advanced-link { color: var(--theme-brand); font-size: 13px; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; margin-top: 20px; transition: color 0.2s; }
.advanced-link:hover { color: var(--ink); }

.hero-proof { align-items: center; display: flex; justify-content: center; font-size: 14px; color: rgba(255,255,255,0.9); gap: 14px; margin-top: 40px; text-shadow: 0 2px 8px rgba(0,0,0,0.3); }
.hero-proof strong { color: white; font-weight: 600; }
.proof-avatars { display: flex; }
.proof-avatars i {
  align-items: center;
  background: var(--paper);
  border: 2px solid rgba(255,255,255,0.2);
  border-radius: 50%;
  color: var(--theme-brand);
  display: inline-flex;
  font-size: 10px;
  font-style: normal;
  font-weight: 700;
  height: 32px;
  justify-content: center;
  margin-left: -8px;
  width: 32px;
}
.proof-avatars i:first-child { margin-left: 0; }
.proof-avatars i:nth-child(2) { background: #eadcca; }
.proof-avatars i:nth-child(3) { background: #d0e4df; }
.proof-avatars i:nth-child(4) { background: var(--theme-brand); color: white; }

/* Grid Sections */
.section-block { padding: 100px 0; }
.section-heading { align-items: end; display: flex; justify-content: space-between; margin-bottom: 48px; }
.section-heading h2 { font-size: clamp(32px, 4vw, 44px); line-height: 1.1; margin: 8px 0 0; }
.text-link { color: var(--theme-brand); font-size: 14px; font-weight: 600; display: inline-flex; align-items: center; gap: 6px; transition: color var(--transition-base); }
.text-link:hover { color: var(--ink); }

.property-grid { display: grid; gap: 28px; grid-template-columns: repeat(3, 1fr); }
.property-card {
  background: var(--card);
  border-radius: var(--theme-radius);
  overflow: hidden;
  transition: transform var(--transition-slow), box-shadow var(--transition-slow);
  display: flex;
  flex-direction: column;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--line);
}
.property-card:hover { transform: translateY(-8px); box-shadow: var(--shadow-md); }
.property-image-wrap { display: block; height: 260px; overflow: hidden; position: relative; }
.property-image { height: 100%; object-fit: cover; transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1); width: 100%; }
.property-card:hover .property-image { transform: scale(1.08); }
.pill { background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(4px); border-radius: 999px; font-size: 10px; font-weight: 700; padding: 6px 12px; position: absolute; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink); left: 16px; top: 16px; }
.pill-featured { background: var(--theme-accent); color: white; }
.property-card-body { padding: 24px; display: flex; flex-direction: column; flex: 1; }
.property-meta { color: var(--theme-accent); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; margin-bottom: 10px; }
.property-title { font-size: 22px; line-height: 1.25; margin: 0 0 6px; color: var(--ink); }
.property-location { color: var(--muted); font-size: 14px; }
.property-stats { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--muted); display: flex; font-size: 13px; gap: 16px; margin-top: 20px; padding: 14px 0; }
.property-card-footer { align-items: center; display: flex; justify-content: space-between; padding-top: 16px; margin-top: auto; }
.property-card-footer strong { font-size: 20px; color: var(--theme-brand); }
.owner-label { color: var(--muted); font-size: 12px; max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Ads */
.ad-banner { margin: 32px auto; }
.ad-banner-card { border-radius: var(--theme-radius); box-shadow: var(--shadow-sm); overflow: hidden; position: relative; transition: transform var(--transition-slow); }
.ad-banner-image-link { display: block; }
.ad-banner img { display: block; height: clamp(140px, 18vw, 240px); object-fit: cover; width: 100%; transition: transform var(--transition-slow); }
.ad-banner-card:hover { box-shadow: var(--shadow-md); transform: scale(1.01); }
.ad-banner-card:hover img { transform: scale(1.02); }
.sponsored-badge { background: rgba(255,255,255,0.95); border-radius: 4px; bottom: 16px; color: var(--ink); font-size: 10px; font-weight: 700; letter-spacing: 0.1em; padding: 6px 10px; position: absolute; right: 16px; text-transform: uppercase; }
.ad-banner-copy{background:linear-gradient(90deg,rgba(9,20,14,.88),rgba(9,20,14,.1));color:#fff;display:flex;flex-direction:column;inset:0;justify-content:flex-end;padding:clamp(22px,4vw,48px);pointer-events:none;position:absolute}.ad-banner-copy small{font-size:10px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.ad-banner-copy strong{font-family:var(--font-display);font-size:clamp(20px,3vw,36px);line-height:1.12;margin-top:7px;max-width:650px}.ad-banner-copy a{pointer-events:auto}.ad-banner-cta{font-size:11px;margin-top:12px;width:fit-content}
.search-results-layout { display: grid; gap: 30px; min-width: 0; }
.search-results-layout.has-campaigns { grid-template-columns: minmax(0, 1fr) 280px; }
.search-results-layout.has-campaigns > .property-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.campaign-sidebar { align-self: start; display: grid; gap: 16px; min-width: 0; position: sticky; top: 104px; }
.campaign-sidebar-label { color: var(--muted); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.sidebar-campaign-card { background: var(--card); border: 1px solid var(--line); border-radius: calc(var(--theme-radius) + 2px); box-shadow: var(--shadow-sm); display: block; overflow: hidden; }
.sidebar-campaign-card img { aspect-ratio: 4 / 3; display: block; object-fit: cover; width: 100%; }
.sidebar-campaign-image { display: block; overflow: hidden; }
.sidebar-campaign-copy { display: grid; gap: 6px; padding: 18px; }
.sidebar-campaign-copy small { color: var(--theme-accent); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.sidebar-campaign-copy strong { font-family: var(--font-display); font-size: 20px; line-height: 1.22; overflow-wrap: anywhere; }
.sidebar-campaign-cta { color: var(--theme-brand); font-size: 12px; font-weight: 700; width: fit-content; }
.sidebar-campaign-card:hover { border-color: var(--theme-brand); box-shadow: var(--shadow-md); transform: translateY(-3px); }

/* Categories */
.category-band { background: rgba(31, 54, 39, 0.03); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.category-grid { display: grid; gap: 20px; grid-template-columns: repeat(3, 1fr); }
.category-tile {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: var(--theme-radius);
  padding: 32px;
  position: relative;
  transition: all var(--transition-slow);
  min-height: 160px;
  display: flex;
  flex-direction: column;
}
.category-tile:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); border-color: var(--theme-brand); }
.category-number { color: var(--muted); font-size: 13px; font-family: monospace; opacity: 0.7; }
.category-tile h3 { font-size: 24px; margin: auto 0 0; color: var(--ink); }
.category-arrow { position: absolute; top: 28px; right: 28px; color: var(--theme-brand); opacity: 0; transform: translateX(-10px); transition: all var(--transition-base); }
.category-tile:hover .category-arrow { opacity: 1; transform: translateX(0); }

/* Owner CTA */
.owner-cta { position: relative; margin: 80px auto 120px; color: white; border-radius: calc(var(--theme-radius) + 8px); overflow: hidden; box-shadow: var(--shadow-lg); }
.owner-cta-bg { position: absolute; inset: 0; background: var(--theme-brand); }
.owner-cta-content { display: grid; grid-template-columns: 1.2fr 1fr; position: relative; z-index: 2; padding: 80px; }
.owner-cta h2 { font-size: clamp(36px, 4vw, 52px); line-height: 1.1; margin: 16px 0 20px; }
.owner-cta h2 em { color: var(--theme-accent); }
.owner-cta p { color: rgba(255,255,255,0.8); font-size: 18px; max-width: 400px; margin-bottom: 40px; }
.owner-cta-art { position: relative; }
.cta-sun { background: var(--theme-accent); border-radius: 50%; height: 180px; width: 180px; position: absolute; right: 40px; top: -20px; mix-blend-mode: overlay; opacity: 0.8; }
.cta-house { background: var(--paper); bottom: -80px; position: absolute; transform: skewY(-5deg); border-radius: 8px 8px 0 0; }
.cta-house-back { height: 200px; right: 20px; width: 280px; opacity: 0.9; background: rgba(255,255,255,0.2); backdrop-filter: blur(10px); }
.cta-house-front { background: var(--card); border-left: 24px solid rgba(0,0,0,0.1); bottom: -90px; height: 240px; right: 140px; width: 240px; }
.cta-plant { bottom: 0; color: var(--theme-brand); position: absolute; right: 20px; opacity: 0.9; transform: scale(1.5); transform-origin: bottom right; }

/* Admin Dashboard Layout */
.admin-dashboard-layout { display: flex; min-height: 100vh; }

.admin-sidebar {
  width: 280px;
  background: var(--card);
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  z-index: 100;
  transition: transform var(--transition-base);
}

.admin-brand { height: 80px; display: flex; align-items: center; justify-content: space-between; padding: 0 24px; border-bottom: 1px solid var(--line); }
.mobile-close-sidebar { display: none; font-size: 24px; color: var(--muted); }

.admin-user-profile { padding: 24px; display: flex; align-items: center; gap: 16px; border-bottom: 1px solid var(--line); }
.admin-user-profile .avatar { width: 44px; height: 44px; font-size: 16px; background: var(--theme-brand); color: white; }
.admin-user-profile .user-meta { display: flex; flex-direction: column; gap: 2px; }
.admin-user-profile strong { font-size: 15px; font-weight: 600; color: var(--ink); }
.admin-user-profile small { font-size: 12px; color: var(--muted); font-weight: 500; }

.admin-sidebar-nav { flex: 1; overflow-y: auto; padding: 24px 16px; display: flex; flex-direction: column; gap: 24px; }
.nav-group { display: flex; flex-direction: column; gap: 4px; }
.nav-group-title { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; color: var(--muted); padding: 0 12px; margin-bottom: 8px; }
.admin-sidebar-nav a {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  border-radius: calc(var(--theme-radius) - 6px);
  font-size: 14px;
  font-weight: 500;
  color: var(--muted);
  transition: all var(--transition-base);
}
.admin-sidebar-nav a svg { opacity: 0.7; }
.admin-sidebar-nav a:hover { background: var(--surface); color: var(--ink); }
.admin-sidebar-nav a.active { background: rgba(31, 54, 39, 0.05); color: var(--theme-brand); font-weight: 600; }
.admin-sidebar-nav a.active svg { opacity: 1; color: var(--theme-brand); }
.admin-sidebar-nav .badge { background: var(--theme-accent); color: white; padding: 2px 8px; border-radius: 99px; font-size: 11px; margin-left: auto; }
.logout-link { color: #d32f2f !important; }
.logout-link:hover { background: #faebe9 !important; }

/* Admin Main Area */
.admin-main-wrap { min-height: 100vh; }
.admin-main-area { flex: 1; display: flex; flex-direction: column; min-width: 0; background: var(--surface); }

.admin-top-header {
  height: 80px;
  background: var(--card);
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  padding: 0 40px;
  gap: 20px;
  position: sticky;
  top: 0;
  z-index: 40;
}
.mobile-open-sidebar { display: none; color: var(--ink); }
.admin-breadcrumb { font-size: 14px; color: var(--muted); display: flex; align-items: center; gap: 8px; flex: 1; }
.admin-breadcrumb strong { color: var(--ink); font-weight: 600; }
.admin-breadcrumb .sep { color: var(--line); }

.admin-content-viewport { padding: 40px; max-width: 1200px; margin: 0 auto; width: 100%; flex: 1; }
.admin-flash-wrap { max-width: 1200px; margin: 0 auto; padding: 0 40px; width: 100%; }

/* Admin Sections */
.admin-section { display: none; animation: fade-in var(--transition-slow); }
.admin-section.active { display: block; }
@keyframes fade-in { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }

.admin-header { margin-bottom: 40px; display: flex; justify-content: space-between; align-items: flex-end; }
.admin-header h1 { font-size: clamp(32px, 4vw, 48px); line-height: 1.1; margin: 8px 0 12px; }
.admin-header p { color: var(--muted); font-size: 16px; margin: 0; }
.queue-count { background: rgba(186, 90, 54, 0.1); color: var(--theme-accent); padding: 8px 16px; border-radius: 999px; font-size: 13px; font-weight: 700; }

/* Metrics */
.metric-grid { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); margin-bottom: 40px; }
.metric-card { background: var(--card); border: 1px solid var(--line); border-radius: var(--theme-radius); padding: 28px; display: flex; flex-direction: column; transition: transform var(--transition-base), box-shadow var(--transition-base); box-shadow: var(--shadow-sm); }
.metric-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.metric-icon { color: var(--theme-brand); margin-bottom: 20px; }
.metric-card span { color: var(--muted); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 8px; }
.metric-card strong { font-family: var(--font-display); font-size: 40px; line-height: 1; color: var(--ink); margin-bottom: 12px; }
.metric-card small { color: var(--muted); font-size: 13px; }

.metric-highlight { background: var(--theme-brand); border-color: var(--theme-brand); color: white; }
.metric-highlight .metric-icon { color: rgba(255,255,255,0.8); }
.metric-highlight span, .metric-highlight small { color: rgba(255,255,255,0.7); }
.metric-highlight strong { color: white; }

/* Dashboard Panels */
.dashboard-panel { background: var(--card); border: 1px solid var(--line); border-radius: var(--theme-radius); padding: 36px; box-shadow: var(--shadow-sm); }
.dashboard-panel-dark { background: var(--ink); color: white; border-color: var(--ink); }
.dashboard-panel-dark h2 { color: white; }
.panel-heading { margin-bottom: 32px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.panel-heading h2 { font-size: 22px; }
.dashboard-panel-dark .panel-heading { border-bottom-color: rgba(255,255,255,0.1); }

/* Review List */
.review-list { display: flex; flex-direction: column; gap: 16px; }
.review-row { display: flex; align-items: center; gap: 24px; padding: 20px; border: 1px solid var(--line); border-radius: calc(var(--theme-radius) - 4px); background: var(--paper); transition: all var(--transition-base); }
.review-row:hover { background: var(--card); border-color: var(--theme-brand); box-shadow: var(--shadow-sm); }
.review-number { font-size: 14px; color: var(--muted); font-family: monospace; font-weight: 600; width: 44px; }
.listing-row-copy { flex: 1; display: flex; flex-direction: column; gap: 6px; }
.listing-row-copy strong { font-size: 16px; font-weight: 600; color: inherit; }
.listing-row-copy span { font-size: 13px; color: var(--muted); }
.listing-row-copy small{color:var(--muted);font-size:11px}.admin-package-benefits{color:var(--muted);font-size:11px;line-height:1.5;margin:4px 0 0;padding-left:18px}
.dashboard-panel-dark .listing-row-copy span { color: rgba(255,255,255,0.6); }
.review-actions { display: flex; gap: 12px; }
.review-actions .button { min-height: 40px; padding: 0 16px; font-size: 13px; gap: 8px; }
.review-actions .approve:hover { background: rgba(31, 54, 39, 0.08); color: var(--theme-brand); border-color: var(--theme-brand); }
.review-actions .reject:hover { background: #faebe9; color: #9c3b32; border-color: #9c3b32; }

/* Admin Grid Data List */
.admin-grid { display: grid; gap: 32px; grid-template-columns: 1.4fr 1fr; }
.admin-data-list { display: flex; flex-direction: column; gap: 16px; }
.admin-data-row { display: grid; grid-template-columns: minmax(220px, 1fr) 140px 140px auto; gap: 20px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line); }
.admin-data-row:last-child { border-bottom: none; }
.admin-record-row { display: grid; grid-template-columns: minmax(260px, 1fr) 160px auto; gap: 24px; align-items: start; padding: 20px 0; border-bottom: 1px solid var(--line); }
.admin-record-row:last-child { border-bottom: none; }
.admin-record-row.align-center { align-items: center; }

.record-message { font-size: 14px; color: var(--muted); line-height: 1.6; margin: 8px 0 0; background: var(--paper); padding: 12px 16px; border-radius: 8px; }
.status-chip { background: rgba(31, 54, 39, 0.08); color: var(--theme-brand); padding: 6px 12px; border-radius: 999px; font-size: 12px; font-weight: 700; text-align: center; white-space: nowrap; }
.record-time { font-size: 13px; color: var(--muted); font-family: monospace; text-align: right; }
.admin-empty { color: var(--muted); padding: 32px 0; text-align: center; font-style: italic; }

.admin-category-list { display: flex; flex-direction: column; }
.admin-category-row { display: flex; justify-content: space-between; align-items: center; padding: 16px 0; border-bottom: 1px solid rgba(255,255,255,0.1); }
.admin-category-row:last-child { border-bottom: none; }

.admin-ad-row { display: grid; grid-template-columns: 120px minmax(0,1fr); gap: 16px 20px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--line); }
.admin-ad-row:last-child { border-bottom: none; }
.ad-thumbnail { width: 120px; height: 80px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); }
.ad-actions { display: flex; gap: 8px; grid-column: 2; }
.campaign-editor { grid-column: 1 / -1; }
.campaign-editor > summary { list-style: none; width: fit-content; }
.campaign-editor > summary::-webkit-details-marker { display: none; }
.campaign-editor[open] > summary { border-color: var(--theme-brand); color: var(--theme-brand); margin-bottom: 18px; }
.campaign-edit-form { background: var(--paper); border: 1px solid var(--line); border-radius: var(--theme-radius); display: grid; gap: 16px; padding: 20px; }
.field-help { color: var(--muted); font-size: 12px; line-height: 1.5; }
.field-help-error { color: #9c3b32; font-weight: 700; }

/* Submit Row */
.submit-row { display: flex; flex-wrap: wrap; gap: 12px; justify-content: flex-end; padding-top: 24px; border-top: 1px solid var(--line); margin-top: 32px; }

/* Empty State Component */
.empty-state-panel { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; background: var(--card); border: 1px dashed var(--line); border-radius: var(--theme-radius); padding: 80px 24px; }
.empty-state-panel .empty-icon { color: var(--theme-accent); background: var(--paper); width: 80px; height: 80px; display: flex; align-items: center; justify-content: center; border-radius: 50%; margin-bottom: 24px; font-size: 32px; }
.empty-state-panel h3 { font-size: 28px; margin: 0 0 16px; }
.empty-state-panel p { color: var(--muted); max-width: 500px; margin: 0 0 32px; font-size: 16px; }

/* Property Submission */
.form-shell { padding-bottom: 100px; }
.listing-form { background: var(--card); border: 1px solid var(--line); border-radius: calc(var(--theme-radius) + 8px); box-shadow: var(--shadow-sm); padding: clamp(24px, 5vw, 56px); }
.listing-form .form-section { border-bottom: 1px solid var(--line); margin-bottom: 36px; padding-bottom: 36px; }
.listing-form .form-section:last-of-type { margin-bottom: 0; }
.form-section-title { align-items: center; display: flex; font-family: var(--font-display); font-size: 25px; gap: 12px; margin-bottom: 26px; }
.form-section-title > span { align-items: center; background: var(--theme-brand); border-radius: 50%; color: #fff; display: inline-flex; font-family: var(--font-sans); font-size: 10px; height: 30px; justify-content: center; width: 30px; }
.check-field { align-items: center; align-self: end; flex-direction: row; min-height: 48px; }
.check-field input { accent-color: var(--theme-brand); height: 18px; width: 18px; }
.check-field > span { color: var(--ink); font-size: 13px; letter-spacing: 0; text-transform: none; }
.property-kind-field[hidden], .property-kind-note[hidden] { display: none !important; }
.property-kind-note { background: #f1f5ef; border: 1px dashed #bdc9bf; border-radius: 12px; color: var(--muted); font-size: 13px; padding: 16px; }
.form-actions { align-items: center; display: flex; gap: 24px; justify-content: space-between; }
.form-actions > span { color: var(--muted); font-size: 13px; }

/* Property Detail */
.detail-top { padding-top: 38px; }
.detail-top .back-link { display: inline-flex; margin-bottom: 18px; }
.detail-gallery { border-radius: calc(var(--theme-radius) + 4px); box-shadow: var(--shadow-sm); display: grid; gap: 3px; grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr); grid-template-rows: repeat(4, 1fr); height: clamp(420px, 52vw, 650px); overflow: hidden; position: relative; }
.detail-gallery-item { display: block; min-height: 0; overflow: hidden; position: relative; }
.detail-gallery-item img { height: 100%; object-fit: cover; transition: transform var(--transition-slow); width: 100%; }
.detail-gallery-item:hover img { transform: scale(1.025); }
.detail-gallery-primary { grid-row: 1 / -1; }
.detail-gallery.gallery-items-1 { display: block; }
.detail-gallery.gallery-items-2 { grid-template-rows: 1fr; }
.detail-gallery.gallery-items-2 .detail-gallery-primary { grid-row: auto; }
.detail-gallery.gallery-items-3 { grid-template-rows: repeat(2, 1fr); }
.detail-gallery.gallery-items-4 { grid-template-rows: repeat(3, 1fr); }
.detail-gallery.gallery-items-5 { grid-template-rows: repeat(4, 1fr); }
.detail-gallery-more { display: grid; gap: 10px; grid-template-columns: repeat(5, minmax(0, 1fr)); margin-top: 10px; }
.detail-gallery-more a { border-radius: calc(var(--theme-radius) * .7); display: block; overflow: hidden; }
.detail-gallery-more img { aspect-ratio: 4 / 3; display: block; object-fit: cover; transition: transform var(--transition-base); width: 100%; }
.detail-gallery-more a:hover img { transform: scale(1.035); }
.lightbox-open { overflow: hidden; }
.property-lightbox { background: transparent; border: 0; height: 100dvh; margin: 0; max-height: none; max-width: none; padding: 0; width: 100vw; }
.property-lightbox::backdrop { background: rgba(7, 12, 9, .94); backdrop-filter: blur(10px); }
.property-lightbox[open] { align-items: center; display: grid; grid-template-columns: 84px minmax(0, 1fr) 84px; }
.property-lightbox figure { align-items: center; display: flex; flex-direction: column; height: 100%; justify-content: center; margin: 0; min-width: 0; padding: 58px 18px 28px; }
.property-lightbox figure img { border-radius: 8px; box-shadow: 0 28px 80px rgba(0,0,0,.45); max-height: calc(100dvh - 130px); max-width: 100%; object-fit: contain; }
.property-lightbox figcaption { color: rgba(255,255,255,.82); display: flex; font-size: 12px; gap: 18px; justify-content: center; letter-spacing: .04em; margin-top: 18px; }
.lightbox-close, .lightbox-nav { align-items: center; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); border-radius: 999px; color: #fff; cursor: pointer; display: flex; justify-content: center; position: relative; z-index: 2; }
.lightbox-close:hover, .lightbox-nav:hover { background: #fff; color: #17271d; }
.lightbox-close { font-size: 32px; height: 46px; position: absolute; right: 24px; top: 20px; width: 46px; }
.lightbox-nav { font-size: 48px; height: 58px; justify-self: center; line-height: 1; width: 58px; }
.admin-rich-text a, .hero-text-cinematic a, .payment-custom-instructions a, .ad-banner-copy a, .sidebar-campaign-copy a { color: inherit; font-weight: 700; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.payment-custom-instructions { background: color-mix(in srgb, var(--theme-accent) 9%, transparent); border-left: 3px solid var(--theme-accent); line-height: 1.6; margin: 18px 0; padding: 14px 16px; }
.gallery-overlay { align-items: flex-end; display: flex; inset: 0; justify-content: space-between; padding: 20px; pointer-events: none; position: absolute; }
.gallery-overlay .pill { bottom: 20px; left: 20px; top: auto; }
.gallery-count { background: rgba(255,255,255,.94); border-radius: 999px; color: var(--ink); font-size: 12px; font-weight: 700; padding: 9px 13px; }
.detail-layout { align-items: start; display: grid; gap: clamp(34px, 6vw, 74px); grid-template-columns: minmax(0, 1.25fr) minmax(340px, .75fr); padding-bottom: 110px; padding-top: 54px; }
.detail-main { min-width: 0; }
.detail-main h1 { font-size: clamp(42px, 6vw, 74px); line-height: 1.02; margin: 12px 0 20px; overflow-wrap: anywhere; }
.detail-address { color: var(--muted); font-size: 15px; margin: 0 0 30px; }
.detail-price { color: var(--theme-brand); font-family: var(--font-display); font-size: clamp(34px, 4vw, 50px); line-height: 1; }
.detail-price small { color: var(--muted); font-family: var(--font-sans); font-size: 13px; font-weight: 500; }
.detail-stats { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 16px 30px; margin: 30px 0 0; padding: 22px 0; }
.detail-stats span { color: var(--muted); font-size: 14px; }
.detail-stats strong { color: var(--ink); font-size: 16px; }
.detail-description { margin-top: 38px; }
.detail-description h2 { font-size: 30px; margin-bottom: 14px; }
.detail-description p { color: #4f5a53; font-size: 16px; line-height: 1.85; margin: 0; overflow-wrap: anywhere; }
.detail-side-rail { display: grid; gap: 28px; min-width: 0; position: sticky; top: 104px; }
.detail-side-rail .contact-card { position: static; }
.detail-side-rail .campaign-sidebar { position: static; }
.contact-card { background: var(--card); border: 1px solid var(--line); border-radius: calc(var(--theme-radius) + 8px); box-shadow: var(--shadow-md); padding: 28px; position: sticky; top: 104px; }
.contact-card-top { align-items: center; display: flex; gap: 14px; }
.avatar-large { flex: 0 0 52px; font-size: 16px; height: 52px; width: 52px; }
.contact-identity { display: grid; gap: 4px; min-width: 0; }
.contact-identity strong { font-size: 16px; overflow-wrap: anywhere; }
.contact-identity small { color: var(--muted); font-size: 12px; }
.contact-actions { display: grid; gap: 10px; margin: 24px 0 30px; }
.button-whatsapp { background: #e8f5ec; color: #146c3a; }
.button-whatsapp:hover { background: #d8eddf; }
.enquiry-form { border-top: 1px solid var(--line); padding-top: 28px; }
.form-heading { margin-bottom: 20px; }
.form-heading h2 { font-size: 27px; margin: 6px 0 0; }
.enquiry-fields { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; margin-bottom: 16px; }
.enquiry-fields label { display: grid; gap: 7px; min-width: 0; }
.enquiry-fields label.full { grid-column: 1 / -1; }
.enquiry-fields label > span { color: var(--muted); font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.enquiry-fields input, .enquiry-fields textarea { background: #fafaf8; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); font: inherit; min-height: 48px; outline: 0; padding: 12px 14px; width: 100%; }
.enquiry-fields textarea { line-height: 1.55; resize: vertical; }
.enquiry-fields input:focus, .enquiry-fields textarea:focus { background: #fff; border-color: var(--theme-brand); box-shadow: var(--focus-ring); }

/* Customer Dashboard */
.dashboard-shell { background: linear-gradient(180deg, #edf4e8 0, var(--paper) 360px); min-height: 75vh; padding: 70px 0 110px; }
.dashboard-hero { align-items: end; display: grid; gap: 32px; grid-template-columns: minmax(0, 1fr) auto; margin-bottom: 42px; }
.dashboard-hero h1 { font-size: clamp(44px, 6vw, 72px); line-height: 1; margin: 12px 0 18px; }
.dashboard-hero h1 em { color: var(--theme-accent); }
.dashboard-hero p { color: var(--muted); font-size: 16px; margin: 0; }
.dashboard-content { align-items: start; display: grid; gap: 28px; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .65fr); }
.dashboard-panel-heading { align-items: end; display: flex; gap: 20px; justify-content: space-between; }
.dashboard-panel-heading h2 { margin-top: 7px; }
.listing-table { display: grid; }
.listing-row { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 12px 18px; grid-template-columns: 62px minmax(180px, 1fr) auto auto; padding: 20px 0; }
.listing-row:last-child { border-bottom: 0; padding-bottom: 0; }
.listing-thumb { align-items: center; background: #e8eee7; border-radius: 12px; color: var(--theme-brand); display: flex; font-weight: 800; height: 62px; justify-content: center; overflow: hidden; width: 62px; }
.listing-thumb img { height: 100%; object-fit: cover; width: 100%; }
.listing-row-copy { min-width: 0; }
.listing-row-copy a { color: inherit; }
.listing-row-copy strong, .listing-row-copy span { overflow-wrap: anywhere; }
.row-price { color: var(--theme-brand); font-size: 14px; white-space: nowrap; }
.status { background: #edf1ed; border-radius: 999px; color: var(--theme-brand); font-size: 10px; font-weight: 800; padding: 7px 10px; text-transform: uppercase; white-space: nowrap; }
.status-pending { background: #fff3d9; color: #8a5a00; }
.status-rejected, .status-suspended { background: #fde8e3; color: #9b382a; }
.listing-row-actions { align-items: center; display: flex; grid-column: 2 / -1; justify-content: flex-end; }
.listing-row-actions > span { color: var(--muted); font-size: 11px; }
.dashboard-side { display: grid; gap: 20px; }
.tip-card, .mini-card { border: 1px solid var(--line); border-radius: calc(var(--theme-radius) + 4px); box-shadow: var(--shadow-sm); padding: 28px; }
.tip-card h2 { color: inherit; font-size: 28px; line-height: 1.14; margin: 14px 0; }
.tip-card p { font-size: 14px; line-height: 1.65; margin: 0 0 24px; }
.mini-card { background: var(--card); display: grid; gap: 10px; min-width: 0; }
.mini-card > strong { overflow-wrap: anywhere; }
.mini-card > span:not(.eyebrow) { color: var(--muted); font-size: 12px; line-height: 1.6; }

/* Account Recovery */
.auth-form-help { display: flex; justify-content: flex-end; margin-top: -7px; }
.auth-form-help a { color: var(--theme-brand); font-size: 12px; font-weight: 700; }
.auth-confirmation { background: #edf7f0; border: 1px solid #bfddc7; border-radius: 16px; color: #245c35; display: grid; gap: 8px; margin-bottom: 20px; padding: 20px; }
.auth-confirmation strong { font-size: 16px; }
.auth-confirmation p { font-size: 13px; line-height: 1.6; margin: 0; }
.auth-confirmation-error { background: #fff0ec; border-color: #f0c2b2; color: #8b3825; }

/* Footer */
.site-footer { background: var(--ink); color: rgba(255,255,255,0.7); padding: 100px 0 40px; margin-top: auto; }
.footer-grid { display: grid; gap: 60px; grid-template-columns: 2.5fr 1fr 1fr 1fr; }
.footer-brand { color: white; margin-bottom: 20px; display: inline-flex; }
.footer-brand .brand-mark { background: white; color: var(--ink); }
.footer-grid p { font-size: 15px; max-width: 320px; margin: 0; line-height: 1.8; }
.footer-grid > div:not(:first-child) { display: flex; flex-direction: column; gap: 16px; }
.footer-grid strong { color: white; font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.1em; margin-bottom: 12px; }
.footer-grid a:not(.brand) { font-size: 15px; transition: color var(--transition-base); }
.footer-grid a:hover { color: white; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.1); display: flex; justify-content: space-between; margin-top: 80px; padding-top: 32px; font-size: 13px; }

/* Media Queries */
@media (max-width: 1024px) {
  .metric-grid { grid-template-columns: repeat(2, 1fr); }
  .admin-grid { grid-template-columns: 1fr; }
  .property-grid { grid-template-columns: repeat(2, 1fr); }
  .form-grid { grid-template-columns: 1fr; }
  .detail-layout { grid-template-columns: minmax(0, 1fr) minmax(300px, .7fr); }
  .search-results-layout.has-campaigns { grid-template-columns: minmax(0, 1fr) 240px; }
  .search-results-layout.has-campaigns > .property-grid { grid-template-columns: 1fr; }
  .dashboard-content { grid-template-columns: minmax(0, 1fr) 300px; }
  .auth-page{grid-template-columns:.85fr 1.15fr}.auth-art{padding:38px}.auth-art-copy{bottom:46px;left:38px;right:38px}.auth-form-wrap{padding:48px}
}

@media (max-width: 768px) {
  .search-fields { grid-template-columns: 1fr; }
  .hero-content-cinematic { padding: 0 20px; }
  .owner-cta-content { grid-template-columns: 1fr; padding: 50px 30px; text-align: center; }
  .owner-cta-art { display: none; }
  .owner-cta p { margin: 16px auto 32px; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
  .detail-layout, .dashboard-content { grid-template-columns: 1fr; }
  .detail-side-rail { position: static; }
  .contact-card { position: static; }
  .search-results-layout.has-campaigns { grid-template-columns: 1fr; }
  .search-results-layout.has-campaigns > .property-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .campaign-sidebar { grid-template-columns: repeat(2, minmax(0, 1fr)); position: static; }
  .campaign-sidebar-label { grid-column: 1 / -1; }
  .dashboard-hero { align-items: start; grid-template-columns: 1fr; }
  .dashboard-side { grid-template-columns: 1fr 1fr; }
  
  /* Admin Mobile Sidebar */
  .admin-sidebar { position: fixed; left: -100%; transition: left 0.3s cubic-bezier(0.16, 1, 0.3, 1); box-shadow: var(--shadow-lg); }
  .admin-sidebar.open { left: 0; }
  .mobile-close-sidebar { display: block; }
  .mobile-open-sidebar { display: block; }
  .admin-top-header { padding: 0 24px; gap: 16px; }
  .admin-content-viewport { padding: 24px; }
  .admin-flash-wrap { padding: 0 24px; }
  .auth-page{display:block;min-height:auto}.auth-art{min-height:350px;padding:28px}.auth-art-copy{bottom:34px;left:28px;right:28px}.auth-art-copy h1{font-size:46px;margin-bottom:15px}.auth-art-copy p{font-size:14px}.auth-proof{margin-top:20px}.auth-form-wrap{padding:46px 24px 64px}.auth-form{max-width:560px}.auth-form>.brand{margin-bottom:38px}
}

@media (max-width: 640px) {
  .main-nav, .hide-mobile { display: none; }
  .property-grid, .category-grid { grid-template-columns: 1fr; }
  .search-results-layout.has-campaigns > .property-grid, .campaign-sidebar { grid-template-columns: 1fr; }
  .footer-bottom { flex-direction: column; gap: 16px; text-align: center; }
  .nav-wrap { gap: 8px; }
  .site-header .brand { flex: 1; gap: 8px; font-size: 16px; min-width: 0; white-space: nowrap; }
  .site-header .brand-mark { flex: 0 0 28px; height: 28px; width: 28px; }
  .site-header .nav-actions { gap: 6px; }
  .site-header .button-dark { font-size: 12px; min-height: 38px; padding: 0 12px; white-space: nowrap; }
  .lang-icon { display: none; }
  .lang-select-wrapper { height: 38px; padding: 0 8px; }
  .lang-select-wrapper select { font-size: 12px; min-width: 54px; }
  .admin-data-row { grid-template-columns: 1fr; gap: 12px; }
  .admin-record-row { grid-template-columns: 1fr; gap: 12px; }
  .review-row { flex-direction: column; align-items: stretch; gap: 16px; }
  .review-actions { flex-direction: column; }
  .ad-thumbnail { width: 100%; height: 160px; }
  .admin-ad-row { grid-template-columns: 1fr; align-items: stretch; }
  .ad-actions { flex-direction: column; grid-column: auto; }
  .detail-top { padding-top: 24px; }
  .detail-gallery { border-radius: 14px; display: flex; gap: 8px; height: 310px; overflow-x: auto; scroll-snap-type: x mandatory; }
  .detail-gallery-item, .detail-gallery-primary { flex: 0 0 88%; grid-row: auto; scroll-snap-align: start; }
  .detail-gallery-more { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; }
  .detail-gallery-more a { flex: 0 0 42%; scroll-snap-align: start; }
  .property-lightbox[open] { grid-template-columns: 52px minmax(0, 1fr) 52px; }
  .property-lightbox figure { padding-inline: 5px; }
  .lightbox-nav { font-size: 38px; height: 44px; width: 44px; }
  .lightbox-close { right: 14px; top: 14px; }
  .gallery-overlay { padding: 12px; }
  .gallery-overlay .pill { bottom: 12px; left: 12px; }
  .detail-layout { gap: 30px; padding-bottom: 72px; padding-top: 30px; }
  .detail-main h1 { font-size: 39px; margin-bottom: 16px; }
  .detail-address { line-height: 1.55; margin-bottom: 22px; }
  .detail-stats { gap: 12px 20px; margin-top: 24px; }
  .detail-description { margin-top: 30px; }
  .contact-card { padding: 22px; }
  .enquiry-fields { grid-template-columns: 1fr; }
  .enquiry-fields label.full { grid-column: auto; }
  .listing-form { padding: 24px 20px; }
  .form-actions { align-items: stretch; flex-direction: column; }
  .form-actions .button { width: 100%; }
  .dashboard-shell { padding: 48px 0 76px; }
  .dashboard-hero h1 { font-size: 46px; }
  .dashboard-hero-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
  .dashboard-hero-actions .button { width: 100%; }
  .dashboard-side { grid-template-columns: 1fr; }
  .dashboard-panel { padding: 24px 20px; }
  .dashboard-panel-heading { align-items: flex-start; }
  .listing-row { align-items: start; grid-template-columns: 52px minmax(0, 1fr); }
  .listing-thumb { height: 52px; width: 52px; }
  .listing-row .status, .listing-row .row-price { grid-column: 2; justify-self: start; }
  .listing-row-actions { grid-column: 1 / -1; }
  .listing-row-actions .button { width: 100%; }
  .tip-card, .mini-card { padding: 24px; }
  .submit-row .button { width: 100%; }
  .auth-art{min-height:310px}.auth-art-copy h1{font-size:39px}.auth-proof{display:none}.auth-field-grid{grid-template-columns:1fr}.auth-form-wrap{padding:38px 20px 56px}.auth-heading h2{font-size:38px}.hero-cinematic::after{display:none}
}

@media (max-width: 480px) {
  .dashboard-shell .metric-grid { grid-template-columns: 1fr; }
  .dashboard-panel-heading { flex-direction: column; }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
  .hero-img,.search-panel-elevated,.hero-proof{transform:none!important}
}
body[data-motion="none"] *,body[data-motion="none"] *::before,body[data-motion="none"] *::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}
body[data-motion="none"] .reveal-on-scroll,body[data-motion="none"] .reveal-on-scroll.is-revealed{opacity:1!important;transform:none!important}
body[data-motion="reduced"] *,body[data-motion="reduced"] *::before,body[data-motion="reduced"] *::after{animation:none!important;scroll-behavior:auto!important}