:root {
  --lb-navy: #081a2b;
  --lb-navy-2: #102c45;
  --lb-teal: #19c3b1;
  --lb-gold: #e7b85c;
  --lb-ink: #172033;
  --lb-muted: #64748b;
  --lb-bg: #f5f7fb;
  --lb-border: #e5eaf1;
  --lb-card-radius: 1.15rem;
}

html { scroll-behavior: smooth; }
body { color: var(--lb-ink); background: #fff; font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
a { text-decoration: none; }
.x-small { font-size: .75rem; }
.text-accent { color: var(--lb-teal) !important; }
.text-muted-2 { color: var(--lb-muted); }
.bg-soft { background: var(--lb-bg); }
.min-vh-70 { min-height: 70vh; }

.site-header { background: rgba(8, 26, 43, .97); backdrop-filter: blur(18px); box-shadow: 0 8px 24px rgba(8, 26, 43, .12); }
.navbar-brand { font-weight: 800; letter-spacing: -.04em; font-size: 1.45rem; }
.brand-mark { width: 2.15rem; height: 2.15rem; border-radius: .75rem; display: inline-grid; place-items: center; background: linear-gradient(135deg, var(--lb-teal), #0b8e9e); color: white; box-shadow: 0 8px 24px rgba(25, 195, 177, .25); }
.site-header .nav-link { color: rgba(255,255,255,.72); font-weight: 600; font-size: .94rem; }
.site-header .nav-link:hover, .site-header .nav-link:focus { color: #fff; }
.btn-accent { background: linear-gradient(135deg, var(--lb-teal), #0da59f); color: #041b24; border: 0; font-weight: 750; box-shadow: 0 8px 22px rgba(25,195,177,.24); }
.btn-accent:hover { color: #03171f; transform: translateY(-1px); background: linear-gradient(135deg, #29d5c2, #12b3ad); }
.btn-navy { background: var(--lb-navy); color: white; border-color: var(--lb-navy); }
.btn-navy:hover { background: var(--lb-navy-2); color: white; border-color: var(--lb-navy-2); }

.hero { position: relative; overflow: hidden; background: radial-gradient(circle at 78% 15%, rgba(25,195,177,.22), transparent 30%), linear-gradient(135deg, #061624 0%, #102d45 66%, #0c3d4c 100%); color: white; padding: 6rem 0 5.5rem; }
.hero::after { content:""; position:absolute; inset:auto -8rem -10rem auto; width:34rem; height:34rem; border:1px solid rgba(255,255,255,.08); border-radius:50%; box-shadow: 0 0 0 5rem rgba(255,255,255,.025),0 0 0 10rem rgba(255,255,255,.018); }
.hero-kicker { display:inline-flex; gap:.5rem; align-items:center; padding:.45rem .75rem; border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.06); border-radius:999px; font-size:.82rem; font-weight:700; color:#c8fff8; }
.hero h1 { font-size: clamp(2.65rem, 6vw, 5rem); line-height: .98; letter-spacing: -.055em; max-width: 13ch; }
.hero-copy { font-size: 1.1rem; color: rgba(255,255,255,.72); max-width: 36rem; }
.hero-card { position:relative; z-index:2; background: rgba(255,255,255,.97); color:var(--lb-ink); border-radius:1.5rem; padding:1.5rem; box-shadow:0 30px 80px rgba(0,0,0,.3); }
.hero-card .form-control,.hero-card .form-select { background:#f7f9fc; border-color:#e6ebf2; min-height:3rem; }

.section-eyebrow { color:#0e8f87; text-transform:uppercase; letter-spacing:.14em; font-size:.76rem; font-weight:800; }
.section-title { font-weight:800; letter-spacing:-.04em; }
.lux-card { border:1px solid var(--lb-border); border-radius:var(--lb-card-radius); overflow:hidden; box-shadow:0 14px 40px rgba(18,34,56,.06); transition:.2s ease; background:#fff; }
.lux-card:hover { transform:translateY(-4px); box-shadow:0 20px 50px rgba(18,34,56,.11); }
.lux-card img { width:100%; height:220px; object-fit:cover; background:#e9eef5; }
.event-card { border:1px solid var(--lb-border); border-radius:1rem; padding:1.3rem; height:100%; background:linear-gradient(145deg,#fff,#f9fbfd); transition:.2s; }
.event-card:hover { border-color:rgba(25,195,177,.55); box-shadow:0 12px 30px rgba(15,50,70,.08); }
.event-icon { width:3rem;height:3rem;border-radius:.9rem;display:grid;place-items:center;background:#e7fbf8;color:#087c75;font-size:1.3rem; }
.feature-icon { width:3.2rem;height:3.2rem;border-radius:1rem;display:grid;place-items:center;background:#eef7ff;color:#174ea6;font-size:1.35rem; }

.form-shell { background:var(--lb-bg); min-height:75vh; padding:3rem 0; }
.form-card { background:#fff;border:1px solid var(--lb-border);border-radius:1.4rem;box-shadow:0 22px 55px rgba(22,38,65,.08); }
.form-section-title { display:flex;align-items:center;gap:.7rem;font-weight:800;font-size:1.05rem;margin-bottom:1rem; }
.form-section-title span { width:2rem;height:2rem;border-radius:.65rem;background:#e7fbf8;color:#067c75;display:grid;place-items:center;font-size:.85rem; }
.form-label { font-weight:650; font-size:.88rem; color:#334155; }
.form-control,.form-select { border-color:#dbe2ea;border-radius:.72rem;min-height:2.8rem; }
.form-control:focus,.form-select:focus { border-color:var(--lb-teal);box-shadow:0 0 0 .2rem rgba(25,195,177,.14); }
.validation-summary-errors { color:#b42318; background:#fff1f0; border:1px solid #ffd7d4; border-radius:.8rem; padding:.8rem 1rem; }
.field-validation-error { color:#b42318; font-size:.78rem; }

.quote-summary { background:linear-gradient(145deg,#0b2135,#123850);color:white;border-radius:1.25rem;padding:1.5rem;position:sticky;top:6.5rem; }
.offer-select-card { border:2px solid var(--lb-border); border-radius:1rem; transition:.2s; cursor:pointer; }
.offer-select-card:has(input:checked) { border-color:var(--lb-teal); box-shadow:0 0 0 4px rgba(25,195,177,.12); }
.price-display { font-size:2rem;font-weight:850;letter-spacing:-.04em; }
.status-pill { display:inline-flex;align-items:center;border-radius:999px;padding:.35rem .7rem;font-weight:750;font-size:.74rem; }

.site-footer { background:#071827; }
.footer-link { color:rgba(255,255,255,.55);display:block;margin:.55rem 0;font-size:.9rem; }
.footer-link:hover { color:#fff; }

/* Admin */
.admin-body { background:#f4f6fa; }
.admin-shell { min-height:100vh; display:flex; }
.admin-sidebar { width:270px; background:linear-gradient(180deg,#081a2b,#0e2a40); color:white; flex:0 0 270px; position:fixed; inset:0 auto 0 0; z-index:1040; }
.admin-brand { display:flex;align-items:center;gap:.8rem;color:white;padding:1.4rem 1.25rem;font-size:1.25rem;font-weight:850;letter-spacing:-.04em;border-bottom:1px solid rgba(255,255,255,.08); }
.admin-nav { padding:1rem .75rem; overflow-y:auto; }
.admin-nav-label { display:block;color:rgba(255,255,255,.35);text-transform:uppercase;letter-spacing:.13em;font-size:.66rem;font-weight:800;padding:1rem .75rem .45rem; }
.admin-nav a { display:flex;align-items:center;gap:.75rem;color:rgba(255,255,255,.68);padding:.72rem .8rem;border-radius:.72rem;margin:.15rem 0;font-size:.9rem;font-weight:620; }
.admin-nav a:hover { background:rgba(255,255,255,.08);color:#fff; }
.admin-nav a i { width:1.25rem;font-size:1.03rem; }
.admin-back-link { margin:1rem;color:rgba(255,255,255,.65);display:flex;gap:.6rem;align-items:center;font-size:.85rem; }
.admin-main { margin-left:270px; width:calc(100% - 270px); min-width:0; }
.admin-topbar { height:78px;background:#fff;border-bottom:1px solid var(--lb-border);display:flex;align-items:center;gap:1rem;padding:0 1.5rem;position:sticky;top:0;z-index:1020; }
.admin-avatar { width:2.45rem;height:2.45rem;border-radius:.8rem;background:#e7fbf8;color:#087c75;display:grid;place-items:center;font-weight:800; }
.admin-content { padding:1.5rem; }
.admin-card { background:#fff;border:1px solid var(--lb-border);border-radius:1rem;box-shadow:0 10px 30px rgba(21,35,58,.045); }
.metric-card { background:#fff;border:1px solid var(--lb-border);border-radius:1rem;padding:1.15rem;display:flex;align-items:center;gap:1rem;height:100%; }
.metric-icon { width:3.1rem;height:3.1rem;border-radius:.9rem;display:grid;place-items:center;background:#eef7ff;color:#1d4ed8;font-size:1.25rem; }
.metric-value { font-size:1.65rem;font-weight:850;letter-spacing:-.04em;line-height:1; }
.table-modern { margin-bottom:0; }
.table-modern thead th { color:#64748b;text-transform:uppercase;letter-spacing:.07em;font-size:.7rem;border-bottom-color:#e7ebf0;padding:.85rem 1rem;white-space:nowrap; }
.table-modern tbody td { padding:.9rem 1rem;vertical-align:middle;border-bottom-color:#edf0f4;font-size:.88rem; }
.table-modern tbody tr:hover { background:#fbfcfe; }
.filter-bar { background:#fff;border:1px solid var(--lb-border);border-radius:1rem;padding:1rem; }
.master-row { background:#f8fafc; }
.detail-row td { background:#fff; }

@media (max-width: 991.98px) {
  .admin-sidebar { position:fixed; width:280px; }
  .admin-main { margin-left:0; width:100%; }
  .hero { padding:4rem 0; }
  .quote-summary { position:static; }
}
@media (max-width: 575.98px) {
  .hero h1 { font-size:2.55rem; }
  .hero-card { padding:1rem; }
  .admin-content { padding:1rem; }
  .form-shell { padding:1.5rem 0; }
}

/* Admin content editing */
.admin-edit-shell { max-width: 1440px; margin-inline: auto; }
.admin-action-bar {
  position: sticky;
  top: 78px;
  z-index: 1015;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: -1.5rem -1.5rem 1.5rem;
  padding: .9rem 1.5rem;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--lb-border);
  backdrop-filter: blur(16px);
}
.admin-action-bar .action-title { min-width: 0; }
.admin-action-bar .action-title h2 { font-size: 1rem; margin: 0; font-weight: 800; }
.admin-action-bar .action-title p { margin: .15rem 0 0; color: var(--lb-muted); font-size: .78rem; }
.admin-section-card { background:#fff; border:1px solid var(--lb-border); border-radius:1rem; box-shadow:0 10px 30px rgba(21,35,58,.04); overflow:hidden; }
.admin-section-card + .admin-section-card { margin-top: 1rem; }
.admin-section-header { padding: 1rem 1.2rem; border-bottom:1px solid var(--lb-border); display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.admin-section-header h3 { font-size:.98rem; font-weight:800; margin:0; }
.admin-section-header p { margin:.2rem 0 0; color:var(--lb-muted); font-size:.78rem; }
.admin-section-body { padding:1.2rem; }
.field-help { color:var(--lb-muted); font-size:.76rem; margin-top:.35rem; }
.character-counter { color:var(--lb-muted); font-size:.72rem; text-align:right; margin-top:.25rem; }
.seo-preview { border:1px solid #e2e8f0; border-radius:.85rem; padding:1rem; background:#fbfdff; }
.seo-preview-title { color:#1a0dab; font-size:1rem; line-height:1.2; }
.seo-preview-url { color:#188038; font-size:.78rem; }
.seo-preview-description { color:#4d5156; font-size:.82rem; }

.media-uploader {
  border: 2px dashed #cbd5e1;
  border-radius: 1rem;
  background: #f8fafc;
  padding: 1.35rem;
  text-align: center;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
}
.media-uploader:hover,
.media-uploader.is-dragging { border-color: var(--lb-teal); background:#effcf9; box-shadow:0 0 0 4px rgba(25,195,177,.09); }
.media-uploader-icon { width:3.4rem; height:3.4rem; border-radius:1rem; display:grid; place-items:center; margin:0 auto .7rem; background:#e7fbf8; color:#087c75; font-size:1.4rem; }
.media-uploader input[type=file] { max-width:100%; }
.upload-preview-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:.75rem; margin-top:1rem; text-align:left; }
.upload-preview-item { display:flex; align-items:center; gap:.75rem; border:1px solid #e2e8f0; border-radius:.8rem; background:#fff; padding:.6rem; min-width:0; }
.upload-preview-item img { width:58px; height:52px; border-radius:.55rem; object-fit:cover; background:#eef2f7; }
.upload-preview-item div { min-width:0; }
.upload-preview-item strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.8rem; }
.upload-preview-item small { display:block; color:var(--lb-muted); font-size:.7rem; }
.upload-file-icon { width:52px; height:52px; border-radius:.55rem; display:grid; place-items:center; background:#eef7ff; color:#1d4ed8; font-size:1.25rem; }
.existing-media-card { border:1px solid var(--lb-border); border-radius:1rem; overflow:hidden; background:#fff; height:100%; }
.existing-media-card > img { width:100%; height:190px; object-fit:cover; background:#edf1f6; }
.existing-media-card .media-meta { padding:.9rem; }
.primary-badge { position:absolute; top:.65rem; left:.65rem; box-shadow:0 4px 15px rgba(0,0,0,.18); }
.single-image-preview { width:100%; max-height:260px; object-fit:cover; border-radius:.9rem; border:1px solid var(--lb-border); background:#eef2f7; }

.admin-rich-editor { border-radius:.85rem !important; overflow:hidden; border-color:#dbe2ea !important; }
.tox-tinymce { border-radius:.85rem !important; border-color:#dbe2ea !important; }
.tox .tox-statusbar { border-top-color:#e5eaf1 !important; }

.icon-picker-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(96px,1fr)); gap:.6rem; max-height:55vh; overflow:auto; padding:.25rem; }
.icon-picker-item { border:1px solid #e2e8f0; border-radius:.75rem; background:#fff; min-height:78px; padding:.65rem .35rem; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.35rem; color:#334155; }
.icon-picker-item:hover { border-color:var(--lb-teal); background:#effcf9; color:#087c75; }
.icon-picker-item i { font-size:1.35rem; }
.icon-picker-item span { font-size:.65rem; text-align:center; line-height:1.15; }
.event-attribute-row { display:flex; align-items:center; gap:.8rem; padding:.8rem 0; border-bottom:1px solid #edf0f4; }
.event-attribute-row:last-child { border-bottom:0; }
.event-attribute-icon { width:2.6rem; height:2.6rem; flex:0 0 2.6rem; border-radius:.75rem; display:grid; place-items:center; background:#e7fbf8; color:#087c75; }

@media (max-width: 991.98px) {
  .admin-action-bar { top:78px; margin:-1rem -1rem 1rem; padding:.8rem 1rem; align-items:flex-start; }
  .admin-action-bar .btn-toolbar { width:100%; }
}
@media (max-width: 575.98px) {
  .admin-action-bar { position:static; flex-direction:column; }
  .admin-action-bar .btn-toolbar { display:grid !important; grid-template-columns:1fr 1fr; gap:.5rem !important; }
  .admin-action-bar .btn-toolbar .btn:first-child { grid-column:1 / -1; }
  .upload-preview-list { grid-template-columns:1fr; }
}
.upload-preview-remove { flex:0 0 auto; border-radius:.6rem; }
.icon-picker-item.is-selected {
  border-color: var(--lb-teal);
  background: #e7fbf8;
  color: #087c75;
  box-shadow: 0 0 0 3px rgba(25,195,177,.12);
}
