:root {
  --ink:#0d1b2a;
  --muted:#64748b;
  --line:#e5eaf0;
  --brand:#ff6b2c;
  --brand2:#ffb347;
  --navy:#071725;
  --green:#13a36f;
  --bg:#f6f8fb;
  --card:#fff;
  --shadow:0 18px 55px rgba(12,30,48,.11);
  --r:22px;
}

* {
  box-sizing:border-box;
}

html {
  scroll-behavior:smooth;
}

body {
  margin:0;
  font-family:Inter,Arial,sans-serif;
  color:var(--ink);
  background:var(--bg);
}

a {
  text-decoration:none;
  color:inherit;
}

button,input,select,textarea {
  font:inherit;
}

.container {
  width:min(1180px,calc(100% - 32px));
  margin:auto;
}

.topbar {
  background:var(--navy);
  color:#dbeafe;
  font-size:13px;
  padding:9px 0;
}

.topbar .container,.nav,.row,.between,.inline {
  display:flex;
  align-items:center;
}

.between {
  justify-content:space-between;
}

.inline {
  gap:10px;
}

.nav-wrap {
  background:rgba(255,255,255,.96);
  position:sticky;
  top:0;
  z-index:50;
  border-bottom:1px solid rgba(0,0,0,.05);
  backdrop-filter:blur(14px);
}

.nav {
  height:76px;
  justify-content:space-between;
}

.logo {
  display:flex;
  align-items:center;
  gap:11px;
  font-weight:900;
  font-size:24px;
}

.logo-mark {
  width:42px;
  height:42px;
  border-radius:14px;
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  display:grid;
  place-items:center;
  color:white;
  box-shadow:0 9px 22px rgba(255,107,44,.3);
}

.logo small {
  display:block;
  color:var(--muted);
  font-size:9px;
  letter-spacing:1.7px;
}

.nav-links {
  display:flex;
  gap:28px;
  align-items:center;
  font-weight:700;
  font-size:14px;
}

.btn {
  border:0;
  border-radius:13px;
  padding:13px 18px;
  font-weight:800;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
}

.btn-primary {
  background:linear-gradient(135deg,var(--brand),#ff8a38);
  color:white;
  box-shadow:0 12px 24px rgba(255,107,44,.24);
}

.btn-dark {
  background:var(--navy);
  color:white;
}

.btn-light {
  background:white;
  border:1px solid var(--line);
}

.hero {
  background:radial-gradient(circle at 85% 20%,rgba(255,147,74,.24),transparent 30%),linear-gradient(135deg,#071725,#123751);
  color:white;
  padding:72px 0 66px;
  overflow:hidden;
}

.hero-grid {
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:50px;
  align-items:center;
}

.eyebrow {
  display:inline-flex;
  gap:8px;
  align-items:center;
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.13);
  padding:8px 12px;
  border-radius:999px;
  font-size:13px;
  font-weight:800;
  color:#ffd4bf;
}

.hero h1 {
  font-size:clamp(42px,5vw,72px);
  line-height:1.03;
  margin:20px 0;
}

.hero h1 span {
  color:#ffb17d;
}

.hero p {
  font-size:18px;
  line-height:1.7;
  color:#c9d9e7;
  max-width:680px;
}

.search-box {
  background:white;
  color:var(--ink);
  padding:12px;
  border-radius:18px;
  display:grid;
  grid-template-columns:1.2fr 1fr auto;
  gap:9px;
  box-shadow:0 25px 65px rgba(0,0,0,.25);
  margin-top:30px;
}

.field {
  display:flex;
  align-items:center;
  gap:10px;
  border:1px solid var(--line);
  border-radius:12px;
  padding:0 13px;
  background:#fff;
}

.field input,.field select {
  border:0;
  outline:0;
  width:100%;
  height:48px;
  background:transparent;
}

.hero-visual {
  position:relative;
}

.hero-card {
  background:white;
  border-radius:30px;
  padding:13px;
  box-shadow:var(--shadow);
  transform:rotate(1.5deg);
}

.hero-card img {
  width:100%;
  height:430px;
  object-fit:cover;
  border-radius:22px;
}

.floating {
  position:absolute;
  background:white;
  color:var(--ink);
  padding:16px;
  border-radius:17px;
  box-shadow:var(--shadow);
  font-weight:800;
}

.float-one {
  left:-35px;
  bottom:44px;
}

.float-two {
  right:-25px;
  top:35px;
}

.section {
  padding:76px 0;
}

.section-title {
  text-align:center;
  max-width:700px;
  margin:0 auto 36px;
}

.section-title h2 {
  font-size:30px;
  margin:0 0 12px;
}

.section-title p {
  color:var(--muted);
  line-height:1.7;
}

.categories {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:22px;
}

.category {
  position:relative;
  min-height:250px;
  border-radius:24px;
  overflow:hidden;
  cursor:pointer;
  background:#0b1d2c;
  box-shadow:0 18px 45px rgba(12,30,48,.12);
  isolation:isolate;
  transition:.28s;
}

.category::before {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(7,23,37,.04),rgba(7,23,37,.88));
  z-index:1;
}

.category::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(255,107,44,.10),transparent 55%);
  z-index:1;
}

.category:hover {
  transform:translateY(-7px);
  box-shadow:0 26px 58px rgba(12,30,48,.18);
}

.category img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s;
}

.category:hover img {
  transform:scale(1.07);
}

.category-content {
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:2;
  padding:22px;
  color:white;
}

.category-icon {
  width:48px;
  height:48px;
  border-radius:15px;
  background:rgba(255,255,255,.93);
  color:var(--brand);
  display:grid;
  place-items:center;
  margin-bottom:14px;
  font-size:21px;
  box-shadow:0 10px 30px rgba(0,0,0,.18);
}

.category strong {
  font-size:20px;
  display:block;
  margin-bottom:7px;
}

.category span {
  font-size:13px;
  color:#e3edf4;
  line-height:1.5;
}

.map-section {
  background:#edf2f7;
}

.map-shell {
  display:grid;
  grid-template-columns:560px 1fr;
  min-height:650px;
  background:white;
  border-radius:25px;
  overflow:hidden;
  box-shadow:var(--shadow);
}

.results-panel {
  padding:23px;
  overflow:auto;
  max-height:650px;
}

.map-panel {
  position:relative;
  min-height:650px;
}

.map-canvas {
  width:100%;
  height:100%;
  min-height:650px;
  background:#dbe6ee;
}

.center-pin {
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-100%);
  z-index:8;
  font-size:42px;
  color:var(--brand);
  filter:drop-shadow(0 6px 5px rgba(0,0,0,.25));
  pointer-events:none;
}

.map-hint {
  position:absolute;
  top:20px;
  left:50%;
  transform:translateX(-50%);
  z-index:8;
  background:white;
  padding:10px 15px;
  border-radius:999px;
  box-shadow:var(--shadow);
  font-size:13px;
  font-weight:800;
  white-space:nowrap;
}

.result-card {
  border:1px solid var(--line);
  border-radius:22px;
  padding:14px;
  margin:15px 0;
  display:grid;
  grid-template-columns:150px 1fr;
  gap:17px;
  cursor:pointer;
  transition:.22s;
  background:white;
}

.result-card:hover {
  border-color:#ffc3a5;
  box-shadow:0 16px 34px rgba(12,30,48,.10);
  transform:translateY(-2px);
}

.result-card img {
  width:150px;
  height:145px;
  border-radius:17px;
  object-fit:cover;
}

.result-card h3 {
  font-size:18px!important;
  line-height:1.35;
}

.result-meta {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  color:#64748b;
  font-size:12px;
  margin-top:8px;
}

.result-meta span {
  display:inline-flex;
  align-items:center;
  gap:5px;
}

.result-actions {
  display:flex;
  gap:8px;
  margin-top:12px;
}

.result-actions .btn {
  padding:9px 12px;
  font-size:12px;
  border-radius:10px;
}

.result-description {
  color:#64748b;
  font-size:13px;
  line-height:1.5;
  margin-top:7px;
}

.stars {
  color:#f59e0b;
  font-size:13px;
}

.badge {
  font-size:11px;
  font-weight:900;
  padding:5px 8px;
  border-radius:999px;
  background:#e8fff5;
  color:#087a51;
}

.price {
  font-weight:900;
  color:var(--brand);
}

.features {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}

.feature {
  background:white;
  padding:27px;
  border-radius:20px;
  border:1px solid var(--line);
}

.feature i {
  font-size:24px;
  color:var(--brand);
  margin-bottom:14px;
}

.feature p {
  color:var(--muted);
  line-height:1.6;
}

.cta {
  background:linear-gradient(135deg,#ff6b2c,#ff9c4a);
  color:white;
  border-radius:30px;
  padding:48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}

.footer {
  background:#061522;
  color:#afc0ce;
  padding:58px 0 22px;
}

.footer-grid {
  display:grid;
  grid-template-columns:1.5fr repeat(3,1fr);
  gap:35px;
}

.footer h4 {
  color:white;
}

.footer a {
  display:block;
  margin:12px 0;
}

.copyright {
  border-top:1px solid #1b3345;
  margin-top:35px;
  padding-top:20px;
  font-size:13px;
}

.dashboard {
  display:grid;
  grid-template-columns:255px 1fr;
  min-height:100vh;
}

.sidebar {
  background:#071725;
  color:#c8d5df;
  padding:25px;
  position:sticky;
  top:0;
  height:100vh;
}

.sidebar .logo {
  color:white;
}

.side-nav {
  margin-top:35px;
}

.side-nav a {
  display:flex;
  gap:12px;
  padding:13px 14px;
  border-radius:12px;
  margin:6px 0;
  font-weight:700;
}

.side-nav a:hover,.side-nav a.active {
  background:#17344a;
  color:white;
}

.main {
  padding:28px;
}

.dash-head {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:24px;
}

.stats {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}

.stat {
  background:white;
  border:1px solid var(--line);
  border-radius:19px;
  padding:22px;
}

.stat b {
  font-size:31px;
  display:block;
  margin-top:12px;
}

.panel {
  background:white;
  border:1px solid var(--line);
  border-radius:20px;
  padding:22px;
  margin-top:22px;
  overflow:auto;
}

.table {
  width:100%;
  border-collapse:collapse;
}

.table th,.table td {
  text-align:left;
  padding:14px;
  border-bottom:1px solid var(--line);
  font-size:14px;
}

.status {
  font-size:12px;
  font-weight:900;
  padding:6px 9px;
  border-radius:999px;
  background:#fff4df;
  color:#9a6500;
}

.auth-page {
  min-height:100vh;
  display:grid;
  grid-template-columns:1fr 1fr;
}

.auth-visual {
  background:linear-gradient(135deg,rgba(7,23,37,.88),rgba(7,23,37,.65)),url("https://images.unsplash.com/photo-1621905252507-b35492cc74b4?w=1400") center/cover;
  color:white;
  padding:60px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
}

.auth-form {
  display:grid;
  place-items:center;
  padding:35px;
}

.auth-card {
  width:min(470px,100%);
  background:white;
  padding:34px;
  border-radius:24px;
  box-shadow:var(--shadow);
}

.form-group {
  margin:15px 0;
}

.form-group label {
  display:block;
  font-weight:800;
  font-size:13px;
  margin-bottom:7px;
}

.form-control {
  width:100%;
  padding:14px;
  border:1px solid var(--line);
  border-radius:12px;
  outline:0;
}

.form-control:focus {
  border-color:var(--brand);
}

.mobile-menu {
  display:none;
}

@media (max-width:1000px) {
  .categories {
    grid-template-columns:repeat(2,1fr);
  }
  .hero-grid {
    grid-template-columns:1fr;
  }
  .hero-visual {
    display:none;
  }
  .map-shell {
    grid-template-columns:1fr;
  }
  .results-panel {
    max-height:none;
  }
  .map-panel {
    min-height:500px;
  }
  .features {
    grid-template-columns:repeat(2,1fr);
  }
  .stats {
    grid-template-columns:repeat(2,1fr);
  }
}

@media (max-width:760px) {
  .topbar {
    display:none;
  }
  .nav-links {
    display:none;
  }
  earch-box {
    grid-template-columns:1fr;
  }
  .hero {
    padding:52px 0;
  }
  .hero h1 {
    font-size:43px;
  }
  .categories {
    grid-template-columns:1fr;
  }
  .category {
    min-height:230px;
  }
  .section {
    padding:55px 0;
  }
  .map-shell {
    border-radius:0;
  }
  .map-section .container {
    width:100%;
  }
  .map-panel {
    min-height:420px;
  }
  .map-canvas {
    min-height:420px;
  }
  .result-card {
    grid-template-columns:115px 1fr;
  }
  .result-card img {
    width:115px;
    height:125px;
  }
  .result-actions {
    flex-wrap:wrap;
  }
  .features {
    grid-template-columns:1fr;
  }
  .cta {
    padding:30px;
    display:block;
  }
  .footer-grid {
    grid-template-columns:1fr 1fr;
  }
  .dashboard {
    grid-template-columns:1fr;
  }
  .sidebar {
    height:auto;
    position:relative;
  }
  .stats {
    grid-template-columns:1fr;
  }
  .auth-page {
    grid-template-columns:1fr;
  }
  .auth-visual {
    display:none;
  }
}

.map-status-card {
  height:100%;
  min-height:650px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:40px;
  background:linear-gradient(135deg,#eaf2f7,#dce9f1);
  color:#0d1b2a;
}

.map-status-card i {
  font-size:52px;
  color:#ff6b2c;
  margin-bottom:18px;
}

.map-status-card h3 {
  font-size:24px;
  margin:0 0 10px;
}

.map-status-card p {
  max-width:520px;
  color:#64748b;
  line-height:1.7;
  margin:0;
}

@media (max-width:760px) {
  .map-status-card {
    min-height:420px;
  }
}

/* Map location search */
.map-location-search {
  position:absolute;
  z-index:10;
  top:20px;
  left:20px;
  width:min(430px,calc(100% - 40px));
  height:52px;
  background:#fff;
  border-radius:15px;
  box-shadow:0 15px 42px rgba(7,23,37,.2);
  display:flex;
  align-items:center;
  padding-left:16px;
  overflow:hidden;
}

.map-location-search>i {
  color:var(--brand);
  font-size:18px;
}

.map-location-search input {
  flex:1;
  border:0;
  outline:0;
  padding:0 13px;
  height:100%;
  min-width:0;
}

.map-location-search button {
  height:100%;
  width:54px;
  border:0;
  background:var(--navy);
  color:#fff;
  cursor:pointer;
  font-size:16px;
}

.map-location-search input.input-error {
  background:#fff0f0;
}

.map-panel .map-hint {
  top:84px;
}

.map-popup {
  display:grid;
  gap:5px;
  padding:3px;
  min-width:220px;
}

.map-popup strong {
  font-size:15px;
}

.map-popup span,.map-popup small {
  color:#64748b;
}

.map-popup a {
  margin-top:5px;
  color:#ff6b2c;
  font-weight:800;
}

.result-card h3 {
  margin:9px 0 4px;
}

.result-provider-name {
  font-size:13px;
  font-weight:800;
}

.result-card-footer {
  margin-top:12px;
}

.result-meta .fa-star {
  color:#f59e0b;
}

.result-meta .fa-bolt {
  color:#ff6b2c;
}

/* Provider public profile */
.provider-loading {
  min-height:65vh;
  display:grid;
  place-items:center;
  align-content:center;
  gap:15px;
  font-size:18px;
  color:var(--muted);
}

.provider-loading i {
  font-size:38px;
  color:var(--brand);
}

.provider-cover {
  min-height:430px;
  background-size:cover;
  background-position:center;
  display:flex;
  align-items:flex-end;
  color:white;
}

.back-map-pill {
  display:inline-flex;
  align-items:center;
  gap:9px;
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.25);
  backdrop-filter:blur(10px);
  padding:10px 14px;
  border-radius:999px;
  margin-bottom:30px;
  font-weight:800;
  font-size:13px;
}

.provider-identity {
  display:flex;
  align-items:center;
  gap:24px;
}

.provider-logo {
  width:118px;
  height:118px;
  object-fit:cover;
  background:#fff;
  border:6px solid rgba(255,255,255,.85);
  border-radius:28px;
}

.provider-identity h1 {
  font-size:clamp(34px,5vw,60px);
  margin:12px 0 10px;
  line-height:1.05;
}

.provider-identity p {
  color:#dbe8f2;
}

.provider-badges {
  display:flex;
  gap:9px;
}

.emergency-badge {
  font-size:11px;
  font-weight:900;
  padding:5px 8px;
  border-radius:999px;
  background:#fff0e8;
  color:#c44a13;
}

.provider-rating-line {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:9px;
}

.provider-rating-line span {
  color:#d3e0e9;
}

.provider-stars {
  color:#f8b63d;
  letter-spacing:1px;
}

.provider-stars span {
  color:#cbd5e1;
}

.provider-content-section {
  padding-top:40px;
}

.provider-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 350px;
  gap:28px;
  align-items:start;
}

.provider-tabs {
  position:sticky;
  top:76px;
  z-index:12;
  background:#fff;
  border:1px solid var(--line);
  border-radius:17px;
  padding:7px;
  display:flex;
  gap:5px;
  margin-bottom:22px;
  box-shadow:0 10px 25px rgba(12,30,48,.06);
}

.provider-tabs a {
  padding:11px 14px;
  border-radius:11px;
  font-weight:800;
  font-size:13px;
}

.provider-tabs a:hover {
  background:#fff3ed;
  color:var(--brand);
}

.provider-box {
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  padding:28px;
  margin-bottom:24px;
  scroll-margin-top:150px;
}

.provider-section-head {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:23px;
}

.provider-section-head h2 {
  font-size:29px;
  margin:8px 0 0;
}

.provider-section-head>span {
  color:var(--muted);
  font-weight:800;
}

.provider-about {
  font-size:16px;
  line-height:1.85;
  color:#526477;
}

.provider-facts {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
  margin-top:24px;
}

.provider-facts>div {
  border:1px solid var(--line);
  border-radius:16px;
  padding:16px;
  display:flex;
  gap:13px;
  align-items:center;
}

.provider-facts i {
  color:var(--brand);
  font-size:20px;
  width:25px;
}

.provider-facts span {
  display:grid;
  font-weight:700;
  font-size:13px;
}

.provider-facts small {
  color:var(--muted);
  font-weight:600;
  margin-bottom:4px;
}

.provider-services {
  display:grid;
  gap:16px;
}

.provider-service-card {
  display:grid;
  grid-template-columns:155px minmax(0,1fr) 150px;
  gap:19px;
  border:1px solid var(--line);
  border-radius:20px;
  padding:14px;
}

.provider-service-card>img {
  width:155px;
  height:165px;
  object-fit:cover;
  border-radius:15px;
}

.provider-service-copy h3 {
  font-size:20px;
  margin:6px 0;
}

.provider-service-copy p {
  color:var(--muted);
  font-size:14px;
  line-height:1.6;
}

.service-category {
  font-size:11px;
  font-weight:900;
  color:var(--brand);
  text-transform:uppercase;
  letter-spacing:.7px;
}

.service-chips {
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}

.service-chips span {
  font-size:11px;
  padding:5px 8px;
  border-radius:999px;
  background:#f0f4f7;
  color:#4c6172;
  font-weight:800;
}

.provider-service-copy details {
  margin-top:13px;
}

.provider-service-copy summary {
  cursor:pointer;
  font-weight:800;
  font-size:13px;
  color:#24485f;
}

.provider-service-price {
  border-left:1px solid var(--line);
  padding-left:18px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
}

.provider-service-price small {
  color:var(--muted);
}

.provider-service-price strong {
  font-size:23px;
  margin:6px 0 15px;
  color:var(--brand);
}

.provider-gallery {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}

.provider-gallery button {
  position:relative;
  border:0;
  padding:0;
  height:190px;
  border-radius:17px;
  overflow:hidden;
  cursor:pointer;
  background:#e8eef2;
}

.provider-gallery img {
  width:100%;
  height:100%;
  object-fit:cover;
  transition:.3s;
}

.provider-gallery button:hover img {
  transform:scale(1.05);
}

.provider-gallery span {
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:22px 12px 11px;
  background:linear-gradient(transparent,rgba(0,0,0,.75));
  color:#fff;
  font-size:12px;
  text-align:left;
}

.reviews-summary {
  display:grid;
  grid-template-columns:220px 1fr;
  gap:30px;
  padding:22px;
  background:#f8fafc;
  border-radius:19px;
}

.rating-big {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border-right:1px solid var(--line);
}

.rating-big>strong {
  font-size:58px;
  line-height:1;
}

.rating-big>span:last-child {
  font-size:12px;
  color:var(--muted);
  margin-top:8px;
}

.rating-bars {
  display:grid;
  gap:8px;
}

.rating-bars>div {
  display:grid;
  grid-template-columns:50px 1fr 25px;
  gap:10px;
  align-items:center;
  font-size:12px;
}

.rating-bars b {
  height:8px;
  background:#e2e8f0;
  border-radius:99px;
  overflow:hidden;
}

.rating-bars i {
  display:block;
  height:100%;
  background:#f8b63d;
  border-radius:99px;
}

.reviews-list {
  display:grid;
  gap:14px;
  margin-top:20px;
}

.review-card {
  border:1px solid var(--line);
  border-radius:18px;
  padding:20px;
}

.review-card>div:first-child strong,.review-card>div:first-child span {
  display:block;
}

.review-card>div:first-child span,.review-card time {
  font-size:12px;
  color:var(--muted);
}

.review-card h3 {
  margin:9px 0 5px;
}

.review-card p {
  color:#526477;
  line-height:1.65;
}

.provider-reply {
  background:#f5f8fa;
  border-radius:13px;
  padding:14px;
  margin-top:13px;
}

.provider-reply p {
  margin-bottom:0;
}

.provider-sidebar {
  position:sticky;
  top:96px;
}

.provider-contact-card,.provider-hours-card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  padding:23px;
  margin-bottom:18px;
}

.provider-contact-card h2 {
  font-size:27px;
  margin:9px 0;
}

.provider-contact-card>p {
  color:var(--muted);
  line-height:1.6;
}

.provider-contact-btn {
  width:100%;
  margin-top:10px;
}

.contact-safety {
  display:flex;
  gap:11px;
  padding-top:18px;
  margin-top:18px;
  border-top:1px solid var(--line);
}

.contact-safety i {
  color:var(--green);
  font-size:21px;
}

.contact-safety span {
  display:grid;
  font-size:12px;
  color:var(--muted);
}

.contact-safety strong {
  color:var(--ink);
  margin-bottom:3px;
}

.provider-hours-card h3 {
  margin-top:0;
}

.provider-hours-card h3 i {
  color:var(--brand);
}

.provider-hours-card>div {
  display:flex;
  justify-content:space-between;
  padding:9px 0;
  border-bottom:1px solid #eef2f5;
  font-size:13px;
}

.find-another-card {
  display:grid;
  grid-template-columns:38px 1fr auto;
  align-items:center;
  gap:11px;
  padding:19px;
  background:linear-gradient(135deg,#071725,#173c56);
  color:#fff;
  border-radius:20px;
}

.find-another-card>i:first-child {
  font-size:25px;
  color:#ff9b62;
}

.find-another-card span {
  display:grid;
  font-size:12px;
  color:#bed0dc;
}

.find-another-card strong {
  color:#fff;
  font-size:14px;
  margin-bottom:3px;
}

.gallery-modal,.quote-modal {
  position:fixed;
  inset:0;
  background:rgba(2,12,20,.86);
  z-index:100;
  display:none;
  align-items:center;
  justify-content:center;
  padding:25px;
}

.gallery-modal.open,.quote-modal.open {
  display:flex;
}

.gallery-modal>button {
  position:absolute;
  top:25px;
  right:25px;
  width:46px;
  height:46px;
  border-radius:50%;
  border:0;
  background:#fff;
  font-size:20px;
}

.gallery-modal img {
  max-width:min(1000px,90vw);
  max-height:78vh;
  border-radius:18px;
}

.gallery-modal p {
  position:absolute;
  bottom:25px;
  color:#fff;
}

.quote-dialog {
  background:#fff;
  border-radius:24px;
  padding:30px;
  width:min(560px,100%);
  position:relative;
}

.modal-close {
  position:absolute;
  right:15px;
  top:15px;
  border:0;
  background:#f1f5f9;
  width:38px;
  height:38px;
  border-radius:50%;
  cursor:pointer;
}

.quote-dialog form {
  display:grid;
  gap:12px;
}

.quote-note {
  font-size:11px;
  color:var(--muted);
}

.quote-success {
  text-align:center;
  padding:24px;
}

.quote-success i {
  font-size:45px;
  color:var(--green);
}

@media (max-width:1000px) {
  .provider-layout {
    grid-template-columns:1fr;
  }
  .provider-sidebar {
    position:relative;
    top:auto;
  }
  .provider-service-card {
    grid-template-columns:130px 1fr;
  }
  .provider-service-card>img {
    width:130px;
  }
  .provider-service-price {
    grid-column:2;
    border-left:0;
    border-top:1px solid var(--line);
    padding:13px 0 0;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
  }
  .provider-service-price strong {
    margin:0;
  }
  .provider-gallery {
    grid-template-columns:repeat(2,1fr);
  }
}

@media (max-width:760px) {
  .map-location-search {
    top:14px;
    left:14px;
    width:calc(100% - 28px);
  }
  .map-panel .map-hint {
    top:76px;
  }
  .provider-cover {
    min-height:510px;
  }
  .provider-identity {
    align-items:flex-start;
    flex-direction:column;
  }
  .provider-logo {
    width:92px;
    height:92px;
  }
  .provider-identity h1 {
    font-size:36px;
  }
  .provider-layout {
    width:min(100% - 20px,1180px);
  }
  .provider-tabs {
    overflow-x:auto;
    white-space:nowrap;
    top:76px;
  }
  .provider-box {
    padding:20px;
  }
  .provider-facts {
    grid-template-columns:1fr;
  }
  .provider-service-card {
    grid-template-columns:1fr;
  }
  .provider-service-card>img {
    width:100%;
    height:210px;
  }
  .provider-service-price {
    grid-column:auto;
  }
  .provider-gallery {
    grid-template-columns:1fr;
  }
  .reviews-summary {
    grid-template-columns:1fr;
  }
  .rating-big {
    border-right:0;
    border-bottom:1px solid var(--line);
    padding-bottom:18px;
  }
  .provider-section-head {
    align-items:flex-start;
    flex-direction:column;
  }
  .provider-cover-content {
    padding-bottom:38px;
  }
}

/* Customer review submission */
.write-review-box {
  border:1px solid #ffd8c4;
  background:linear-gradient(180deg,#fff,#fffaf7);
}

.review-form-intro {
  color:var(--muted);
  line-height:1.7;
  max-width:760px;
}

.review-form {
  display:grid;
  gap:17px;
  margin-top:22px;
}

.review-form-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:15px;
}

.review-form label>span,.star-rating-field legend {
  display:block;
  font-weight:800;
  font-size:13px;
  margin-bottom:8px;
  color:#253d4e;
}

.star-rating-field {
  border:0;
  padding:0;
  margin:0;
}

.interactive-stars {
  display:inline-flex;
  flex-direction:row-reverse;
  justify-content:flex-end;
  gap:5px;
}

.interactive-stars input {
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.interactive-stars label {
  font-size:38px;
  color:#d7dee4;
  cursor:pointer;
  line-height:1;
  transition:.18s;
}

.interactive-stars label:hover,.interactive-stars label:hover~label,.interactive-stars input:checked~label {
  color:#f8b63d;
  transform:translateY(-2px);
}

.review-consent {
  display:flex!important;
  align-items:flex-start;
  gap:9px;
}

.review-consent input {
  margin-top:3px;
}

.review-consent span {
  margin:0!important;
  font-weight:600!important;
  color:var(--muted)!important;
}

.review-submit-btn {
  width:max-content;
  min-width:190px;
}

.review-form-success,.review-form-error {
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:15px;
  border-radius:14px;
  font-size:13px;
}

.review-form-success {
  background:#eaf8f0;
  color:#17663b;
}

.review-form-error {
  background:#fff0f0;
  color:#a32626;
}

.review-form-success i {
  font-size:20px;
}

.review-form-success div {
  display:grid;
  gap:3px;
}

.empty-reviews {
  text-align:center;
  padding:35px;
  color:var(--muted);
}

.empty-reviews i {
  font-size:35px;
  color:#aab8c2;
}

.empty-reviews h3 {
  color:var(--ink);
}

@media (max-width:760px) {
  .review-form-grid {
    grid-template-columns:1fr;
  }
  .interactive-stars label {
    font-size:34px;
  }
  .review-submit-btn {
    width:100%;
  }
}

.no-results-card {
  margin-top:18px;
  padding:28px 20px;
  text-align:center;
  border:1px dashed var(--line);
  border-radius:18px;
  background:#f8fafc;
}

.no-results-card i {
  font-size:34px;
  color:var(--brand);
  margin-bottom:12px;
}

.no-results-card h3 {
  margin:0 0 8px;
}

.no-results-card p {
  color:var(--muted);
  font-size:13px;
  line-height:1.6;
  margin:0 0 16px;
}

.admin-tabs {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:18px 0;
}

.admin-tabs button {
  border:1px solid #dbe3ea;
  background:#fff;
  padding:10px 15px;
  border-radius:10px;
  font-weight:800;
  cursor:pointer;
}

.admin-tabs button.active {
  background:#071725;
  color:#fff;
}

.tab-pane {
  display:none;
}

.tab-pane.active {
  display:block;
}

.action-row {
  display:flex;
  gap:6px;
  flex-wrap:wrap;
}

.btn-xs {
  padding:7px 10px;
  font-size:12px;
}

.status.active,.status.trial {
  background:#dcfce7;
  color:#166534;
}

.status.pending {
  background:#fff7ed;
  color:#9a3412;
}

.status.suspended,.status.expired,.status.rejected {
  background:#fee2e2;
  color:#991b1b;
}

.subscription-banner {
  padding:18px;
  border-radius:16px;
  margin-bottom:18px;
  background:linear-gradient(135deg,#071725,#153b5c);
  color:#fff;
}

.subscription-banner.warning {
  background:linear-gradient(135deg,#7f1d1d,#b91c1c);
}

.modal {
  position:fixed;
  inset:0;
  background:#0008;
  display:none;
  align-items:center;
  justify-content:center;
  z-index:10000;
  padding:20px;
}

.modal.show {
  display:flex;
}

.modal-card {
  background:#fff;
  border-radius:18px;
  padding:24px;
  width:min(700px,100%);
  max-height:90vh;
  overflow:auto;
}

.form-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
}

.form-grid .full {
  grid-column:1/-1;
}

.plan-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}

.plan-card {
  border:1px solid #dbe3ea;
  border-radius:16px;
  padding:18px;
}

.plan-card b {
  font-size:25px;
}

.muted {
  color:#64748b;
}

@media (max-width:800px) {
  .form-grid,.plan-grid {
    grid-template-columns:1fr;
  }
  .table {
    min-width:760px;
  }
  .panel {
    overflow:auto;
  }
}

.store-picker-map {
  height:350px;
  border-radius:16px;
  border:1px solid var(--line);
  overflow:hidden;
  margin-top:8px;
}

.wide-modal {
  width:min(920px,96vw);
}

.store-profile-card {
  display:grid;
  grid-template-columns:92px 1fr auto;
  gap:18px;
  align-items:center;
  padding:20px;
  border:1px solid var(--line);
  border-radius:18px;
}

.store-profile-card img {
  width:92px;
  height:92px;
  object-fit:cover;
  border-radius:18px;
  background:#eef2f7;
}

.provider-service-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}

.provider-service-card {
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:18px;
  background:#fff;
}

.provider-service-card>img {
  width:100%;
  height:170px;
  object-fit:cover;
  background:#eef2f7;
}

.provider-service-card>div {
  padding:16px;
}

.provider-service-card h3 {
  margin:5px 0;
}

.provider-service-card p {
  min-height:42px;
  color:var(--muted);
}

.analytics-filters {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.analytics-filters .form-control {
  width:auto;
  min-width:145px;
}

.chart-box {
  padding:15px;
  border:1px solid var(--line);
  border-radius:18px;
}

.wrap {
  flex-wrap:wrap;
}

.empty-state {
  padding:28px;
  text-align:center;
  border:1px dashed var(--line);
  border-radius:18px;
  color:var(--muted);
}

@media (max-width:850px) {
  .provider-service-grid {
    grid-template-columns:1fr;
  }
  .store-profile-card {
    grid-template-columns:70px 1fr;
  }
  .store-profile-card button {
    grid-column:1/-1;
  }
  .analytics-filters .form-control {
    width:100%;
  }
}

.edit-image-preview {
  display:block;
  width:100%;
  max-width:190px;
  height:105px;
  object-fit:cover;
  border:1px solid var(--line);
  border-radius:12px;
  margin-top:9px;
  background:#eef2f7;
}

.edit-image-preview[hidden] {
  display:none;
}

.card-actions {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.btn-danger {
  background:#fff1f2!important;
  border-color:#fecdd3!important;
  color:#be123c!important;
}

.btn-danger:hover {
  background:#ffe4e6!important;
}

.address-search-row {
  display:grid;
  grid-template-columns:1fr auto;
  gap:10px;
  margin-bottom:6px;
}

.address-search-row .btn {
  white-space:nowrap;
}

#serviceImagePreview.edit-image-preview {
  width:180px!important;
  max-width:180px!important;
  height:110px!important;
  object-fit:cover!important;
}

.admin-search {
  width:min(390px,100%);
  margin-left:auto;
}

.status-select {
  min-width:135px;
  padding:9px;
}

.admin-request-table {
  min-width:1250px;
}

.whatsapp-qr-card {
  text-align:center;
  max-width:430px;
}

.whatsapp-qr-card #whatsappQr {
  width:260px;
  height:260px;
  margin:16px auto;
  padding:10px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
}

.whatsapp-qr-card #whatsappQr svg {
  width:100%;
  height:100%;
  display:block;
}

.qr-note {
  font-size:12px;
  margin-top:12px;
}

@media (max-width:650px) {
  .address-search-row {
    grid-template-columns:1fr;
  }
  .admin-search {
    margin-left:0;
  }
}

.store-location-block {
  display:block;
}

.store-location-block>label {
  display:block;
  font-weight:700;
  margin-bottom:8px;
}

.map-instruction {
  font-weight:700;
  margin:14px 0 8px;
  color:var(--ink);
}

/* Hide Google Maps keyboard shortcut help and footer UI in the provider picker. */
.store-picker-map .gm-style-cc,.store-picker-map a[href^="https://maps.google.com/maps"],.store-picker-map button[aria-label="Keyboard shortcuts"] {
  display:none!important;
}

/* Provider dashboard: My Services cards */
.provider-service-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:22px;
  margin-top:20px;
}

.dashboard-service-card {
  min-width:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid #dfe7ee;
  border-radius:22px;
  background:#fff;
  box-shadow:0 10px 30px rgba(10,42,70,.07);
  transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;
}

.dashboard-service-card:hover {
  transform:translateY(-4px);
  border-color:#c9d8e4;
  box-shadow:0 18px 42px rgba(10,42,70,.12);
}

.dashboard-service-image {
  position:relative;
  height:190px;
  overflow:hidden;
  background:#edf3f7;
}

.dashboard-service-image img {
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}

.dashboard-service-card:hover .dashboard-service-image img {
  transform:scale(1.035);
}

.dashboard-service-status {
  position:absolute;
  top:14px;
  right:14px;
  margin:0;
  padding:7px 11px;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  box-shadow:0 4px 14px rgba(0,0,0,.12);
  backdrop-filter:blur(8px);
  text-transform:capitalize;
}

.dashboard-service-body {
  display:flex;
  flex:1;
  flex-direction:column;
  padding:20px 20px 16px;
}

.dashboard-service-category {
  color:var(--brand);
  font-size:11px;
  font-weight:900;
  letter-spacing:.8px;
  text-transform:uppercase;
}

.dashboard-service-body h3 {
  margin:8px 0 9px;
  color:#102f49;
  font-size:20px;
  line-height:1.28;
}

.dashboard-service-body p {
  display:-webkit-box;
  min-height:66px;
  margin:0 0 18px;
  overflow:hidden;
  color:var(--muted);
  font-size:14px;
  line-height:1.55;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:3;
}

.dashboard-service-meta {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  margin-top:auto;
  padding-top:15px;
  border-top:1px solid #edf1f4;
}

.dashboard-service-meta small {
  display:block;
  margin-bottom:3px;
  color:var(--muted);
  font-size:11px;
}

.dashboard-service-meta strong {
  color:#0b3557;
  font-size:19px;
}

.dashboard-service-tags {
  display:flex;
  justify-content:flex-end;
  flex-wrap:wrap;
  gap:5px;
}

.dashboard-service-tags span {
  padding:5px 8px;
  border-radius:999px;
  background:#f1f5f8;
  color:#496274;
  font-size:10px;
  font-weight:800;
}

.dashboard-service-actions {
  display:grid;
  grid-template-columns:1fr auto;
  gap:9px;
  padding:14px 20px 20px;
}

.dashboard-service-actions .btn {
  min-height:42px;
  justify-content:center;
  gap:7px;
}

.dashboard-service-actions .btn-danger {
  padding-left:15px;
  padding-right:15px;
}

@media (max-width:1180px) {
  .provider-service-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:720px) {
  .provider-service-grid {
    grid-template-columns:1fr;
    gap:16px;
  }
  .dashboard-service-image {
    height:210px;
  }
  .dashboard-service-actions {
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width:430px) {
  .dashboard-service-actions {
    grid-template-columns:1fr;
  }
  .dashboard-service-meta {
    align-items:flex-start;
    flex-direction:column;
  }
  .dashboard-service-tags {
    justify-content:flex-start;
  }
}

/* Final provider dashboard service-image size lock */
#myServices .provider-service-grid {
  align-items: stretch;
}

#myServices .dashboard-service-card {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

#myServices .dashboard-service-card > .dashboard-service-image {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  height: 170px !important;
  min-height: 170px !important;
  max-height: 170px !important;
  overflow: hidden !important;
  flex: 0 0 170px !important;
  background: #edf3f7;
}

#myServices .dashboard-service-card > .dashboard-service-image > img {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  height: 170px !important;
  min-height: 170px !important;
  max-height: 170px !important;
  object-fit: cover !important;
  object-position: center !important;
  margin: 0 !important;
  padding: 0 !important;
}

@media (max-width: 720px) {
  #myServices .dashboard-service-card > .dashboard-service-image, #myServices .dashboard-service-card > .dashboard-service-image > img {
    height: 180px !important;
    min-height: 180px !important;
    max-height: 180px !important;
  }
  #myServices .dashboard-service-card > .dashboard-service-image {
    flex-basis: 180px !important;
  }
}

/* Account recovery, security and responsive SEO pages */
.auth-logo-img {
  width:min(260px,80%);
  height:auto;
}

.auth-submit {
  width:100%;
  margin-top:10px;
}

.auth-link {
  text-align:center;
}

.auth-link a,.forgot-link {
  color:var(--brand);
  font-weight:800;
}

.login-options {
  margin:-2px 0 18px;
  font-size:14px;
}

.remember-label {
  display:flex;
  align-items:center;
  gap:7px;
}

.recovery-methods {
  display:flex;
  gap:12px;
  margin:15px 0;
}

.recovery-methods label {
  flex:1;
  border:1px solid var(--line);
  border-radius:13px;
  padding:12px;
  text-align:center;
  font-weight:800;
}

.demo-code-box {
  margin-top:15px;
  padding:14px;
  border-radius:12px;
  background:#fff6df;
  border:1px solid #ffc867;
  text-align:center;
}

.otp-input {
  letter-spacing:.35em;
  font-size:22px;
  text-align:center;
}

.dash-account-actions {
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.password-card {
  max-width:500px;
}

.seo-logo {
  width:235px;
  height:auto;
}

.seo-breadcrumb {
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
  margin-bottom:24px;
  font-size:14px;
}

.seo-breadcrumb a {
  color:var(--brand);
  font-weight:800;
}

.service-detail-hero,.seo-listing-hero {
  padding:64px 0;
  background:radial-gradient(circle at 90% 10%,rgba(255,179,71,.24),transparent 35%),linear-gradient(135deg,#071725,#103b59);
  color:#fff;
}

.service-detail-grid {
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:50px;
  align-items:center;
}

.service-detail-hero h1,.seo-listing-hero h1 {
  font-size:clamp(36px,5vw,66px);
  line-height:1.03;
  margin:14px 0;
}

.service-detail-hero p,.seo-listing-hero p {
  color:#d8e5ee;
  font-size:18px;
  line-height:1.75;
}

.service-main-image img {
  width:100%;
  height:470px;
  object-fit:cover;
  border-radius:30px;
  box-shadow:0 30px 80px #0006;
}

.service-hero-meta,.seo-trust-row {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.service-hero-meta span,.seo-trust-row span {
  padding:10px 13px;
  border:1px solid #ffffff2b;
  background:#ffffff12;
  border-radius:99px;
}

.service-price-box {
  display:flex;
  align-items:center;
  gap:15px;
  flex-wrap:wrap;
  margin-top:25px;
  padding:18px;
  border-radius:20px;
  background:#fff;
  color:var(--ink);
  width:max-content;
  max-width:100%;
}

.service-price-box small {
  display:block;
}

.service-price-box strong {
  font-size:28px;
}

.service-page-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 340px;
  gap:30px;
  align-items:start;
}

.luxury-content-card,.sticky-request-card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  padding:28px;
  box-shadow:var(--shadow);
  margin-bottom:25px;
}

.service-long-copy {
  font-size:17px;
  line-height:1.85;
  color:#34495b;
}

.service-feature-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:12px;
  margin-top:25px;
}

.service-feature-grid>div {
  padding:17px;
  border-radius:17px;
  background:var(--bg);
  display:flex;
  flex-direction:column;
  gap:6px;
}

.service-feature-grid i {
  color:var(--brand);
  font-size:22px;
}

.service-feature-grid span {
  color:var(--muted);
  font-size:13px;
}

.service-gallery {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
}

.service-gallery button {
  border:0;
  background:transparent;
  padding:0;
  text-align:left;
  cursor:pointer;
}

.service-gallery img {
  width:100%;
  height:190px;
  object-fit:cover;
  border-radius:16px;
}

.service-gallery span {
  display:block;
  padding:8px 3px;
  font-size:13px;
}

.sticky-request-card {
  position:sticky;
  top:100px;
}

.sticky-request-card>img {
  width:82px;
  height:82px;
  object-fit:contain;
  border-radius:18px;
  background:var(--bg);
}

.sticky-request-card .btn {
  display:flex;
  justify-content:center;
  margin-top:10px;
}

.lightbox {
  position:fixed;
  inset:0;
  background:#000d;
  display:none;
  place-items:center;
  padding:25px;
  z-index:999;
}

.lightbox.show {
  display:grid;
}

.lightbox img {
  max-width:95vw;
  max-height:90vh;
  border-radius:20px;
}

.seo-listing-hero {
  padding:55px 0;
}

.seo-service-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  margin-top:25px;
}

.seo-service-card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 12px 35px rgba(12,30,48,.08);
}

.seo-service-card>img {
  width:100%;
  height:210px;
  object-fit:cover;
}

.seo-service-card>div {
  padding:20px;
}

.seo-service-card h3 {
  margin:8px 0;
}

.seo-service-card p {
  color:var(--muted);
  line-height:1.65;
  min-height:70px;
}

.seo-card-meta {
  display:grid;
  gap:7px;
  margin:15px 0;
  font-size:13px;
  color:#425466;
}

.seo-empty {
  min-height:100vh;
  display:grid;
  place-content:center;
  text-align:center;
  gap:15px;
  padding:30px;
}

.seo-empty img {
  width:280px;
  max-width:80vw;
}

@media (max-width:1050px) {
  .service-detail-grid,.service-page-layout {
    grid-template-columns:1fr;
  }
  .service-main-image img {
    height:390px;
  }
  .sticky-request-card {
    position:static;
  }
  .seo-service-grid {
    grid-template-columns:repeat(2,1fr);
  }
}

@media (max-width:780px) {
  .dashboard {
    display:block;
  }
  .sidebar {
    position:relative;
    width:100%;
    min-height:auto;
  }
  .main {
    padding:18px;
  }
  .dash-head {
    align-items:flex-start;
    gap:15px;
    flex-wrap:wrap;
  }
  .dash-account-actions {
    width:100%;
  }
  .dash-account-actions .btn {
    flex:1;
  }
  .admin-tabs {
    overflow-x:auto;
    white-space:nowrap;
  }
  .stats {
    grid-template-columns:repeat(2,1fr);
  }
  .table-scroll,.panel {
    overflow-x:auto;
  }
  .auth-page {
    grid-template-columns:1fr;
  }
  .auth-visual {
    display:none;
  }
  .auth-form {
    min-height:100vh;
    padding:20px;
  }
  .service-detail-hero,.seo-listing-hero {
    padding:38px 0;
  }
  .service-main-image img {
    height:280px;
  }
  .service-feature-grid {
    grid-template-columns:repeat(2,1fr);
  }
  .service-gallery {
    grid-template-columns:repeat(2,1fr);
  }
  .seo-service-grid {
    grid-template-columns:1fr;
  }
  .nav-links {
    display:none;
  }
  .seo-logo {
    width:190px;
  }
}

@media (max-width:480px) {
  .stats {
    grid-template-columns:1fr;
  }
  .service-feature-grid,.service-gallery {
    grid-template-columns:1fr;
  }
  .service-gallery img {
    height:220px;
  }
  .service-price-box {
    width:100%;
  }
  .service-price-box .btn {
    width:100%;
  }
  .service-detail-hero h1,.seo-listing-hero h1 {
    font-size:36px;
  }
  .luxury-content-card,.sticky-request-card {
    padding:20px;
  }
  .login-options {
    align-items:flex-start;
    gap:8px;
  }
}

/* Exactly 16 physical luxury service category pages */
.category {
  display:block;
}

.category-learn-more {
  display:flex;
  align-items:center;
  gap:7px;
  margin-top:12px;
  color:var(--brand);
  font-weight:800;
}

.lux-service-logo {
  width:245px;
  height:auto;
}

.lux-service-hero {
  position:relative;
  overflow:hidden;
  padding:72px 0;
  background:radial-gradient(circle at 10% 20%,rgba(255,107,44,.18),transparent 34%),radial-gradient(circle at 90% 10%,rgba(255,179,71,.2),transparent 35%),linear-gradient(135deg,#06131f,#0c304a 58%,#0b2234);
  color:#fff;
}

.lux-service-hero-grid {
  display:grid;
  grid-template-columns:1.04fr .96fr;
  gap:56px;
  align-items:center;
}

.lux-service-hero-copy h1 {
  font-size:clamp(42px,5.5vw,76px);
  line-height:1.02;
  margin:16px 0 22px;
  letter-spacing:-.045em;
}

.lux-service-hero-copy>p {
  font-size:18px;
  line-height:1.8;
  color:#d4e3ec;
}

.lux-service-points,.lux-service-hero-actions {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}

.lux-service-points {
  margin:24px 0;
}

.lux-service-points span {
  padding:10px 13px;
  border:1px solid #ffffff24;
  background:#ffffff0e;
  border-radius:999px;
  font-size:13px;
}

.lux-service-hero-actions {
  margin-top:28px;
}

.lux-service-hero-media {
  position:relative;
}

.lux-service-hero-media>img {
  width:100%;
  height:510px;
  object-fit:cover;
  border-radius:34px;
  box-shadow:0 35px 90px #0008;
}

.lux-service-floating-card {
  position:absolute;
  left:-35px;
  bottom:34px;
  display:flex;
  align-items:center;
  gap:13px;
  padding:16px 18px;
  background:#fff;
  color:var(--ink);
  border-radius:18px;
  box-shadow:0 22px 55px #0005;
}

.lux-service-floating-card>i {
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:#fff3e9;
  color:var(--brand);
}

.lux-service-floating-card b,.lux-service-floating-card span {
  display:block;
}

.lux-service-floating-card span {
  color:var(--muted);
  font-size:12px;
}

.lux-service-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 350px;
  gap:30px;
  align-items:start;
}

.lux-service-intro {
  font-size:17px;
  line-height:1.85;
  color:#425466;
}

.lux-service-checklist {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  list-style:none;
  margin:26px 0 0;
  padding:0;
}

.lux-service-checklist li {
  display:flex;
  gap:11px;
  padding:15px;
  border-radius:16px;
  background:var(--bg);
  font-weight:700;
}

.lux-service-checklist i {
  color:var(--green);
}

.lux-service-gallery {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  margin-top:20px;
}

.lux-service-gallery-item {
  position:relative;
  border:0;
  padding:0;
  background:none;
  cursor:pointer;
  overflow:hidden;
  border-radius:18px;
}

.lux-service-gallery-item img {
  display:block;
  width:100%;
  height:270px;
  object-fit:cover;
  transition:.35s;
}

.lux-service-gallery-item:hover img {
  transform:scale(1.045);
}

.lux-service-gallery-item span {
  position:absolute;
  left:13px;
  bottom:13px;
  padding:8px 11px;
  border-radius:999px;
  background:#071725d9;
  color:#fff;
  font-size:12px;
  font-weight:800;
}

.lux-benefit-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

.lux-benefit-grid>div {
  padding:22px;
  border:1px solid var(--line);
  border-radius:18px;
}

.lux-benefit-grid i {
  font-size:24px;
  color:var(--brand);
}

.lux-faq details {
  border-top:1px solid var(--line);
  padding:18px 0;
}

.lux-faq summary {
  font-weight:850;
  cursor:pointer;
}

.lux-service-request-icon {
  width:62px;
  height:62px;
  display:grid;
  place-items:center;
  border-radius:19px;
  background:linear-gradient(135deg,var(--brand),var(--brand2));
  color:#fff;
  font-size:25px;
}

.lux-related-services {
  background:#071725;
  color:#fff;
  border-radius:24px;
  padding:24px;
}

.lux-related-services>a:not(.lux-view-all) {
  display:flex;
  align-items:center;
  gap:12px;
  padding:13px 0;
  border-bottom:1px solid #ffffff19;
}

.lux-related-services>a>i {
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#ffffff12;
  color:#ffb347;
}

.lux-view-all {
  display:flex;
  justify-content:space-between;
  margin-top:18px;
  color:#ffb347;
  font-weight:850;
}

.lux-lightbox-close {
  position:absolute;
  right:24px;
  top:18px;
  border:0;
  background:none;
  color:#fff;
  font-size:46px;
}

@media (max-width:1050px) {
  .lux-service-hero-grid,.lux-service-layout {
    grid-template-columns:1fr;
  }
  .lux-service-hero-media>img {
    height:430px;
  }
  .lux-service-floating-card {
    left:20px;
  }
}

@media (max-width:780px) {
  .lux-service-hero {
    padding:46px 0;
  }
  .lux-service-hero-copy h1 {
    font-size:42px;
  }
  .lux-service-hero-media>img {
    height:320px;
  }
  .lux-service-floating-card {
    position:relative;
    left:auto;
    bottom:auto;
    margin:-35px 15px 0;
  }
  .lux-service-checklist,.lux-benefit-grid,.lux-service-gallery {
    grid-template-columns:1fr;
  }
  .footer-grid {
    grid-template-columns:1fr;
  }
  .lux-service-logo {
    width:195px;
  }
}

@media (max-width:480px) {
  .lux-service-hero-copy h1 {
    font-size:36px;
  }
  .lux-service-hero-actions .btn {
    width:100%;
  }
  .lux-service-hero-media>img {
    height:260px;
  }
}

/* Final shared fixes for all 16 luxury service pages */
.logo_img, .footer_logo {
  width: 250px !important;
  max-width: 100% !important;
  height: auto !important;
  display: block;
}

.lux-service-logo {
  width: 250px !important;
  max-width: 100% !important;
  height: auto !important;
}

/* Keep light buttons readable on dark and light backgrounds */
.btn.btn-light {
  background: #ffffff !important;
  color: #071725 !important;
  border: 1px solid #d8e1e8 !important;
  box-shadow: 0 8px 22px rgba(7, 23, 37, .10);
}

.btn.btn-light i, .btn.btn-light span {
  color: inherit !important;
}

.btn.btn-light:hover, .btn.btn-light:focus {
  background: #f1f5f8 !important;
  color: #ff6b2c !important;
  border-color: #ffb38f !important;
  transform: translateY(-1px);
}

/* Make the complete right column sticky instead of only one card */
.lux-service-layout > aside {
  position: sticky;
  top: 96px;
  align-self: start;
  height: max-content;
}

.sticky-request-card.lux-service-request-card {
  position: static !important;
  top: auto !important;
  margin-bottom: 22px;
}

/* Rebuilt footer */
.footer.luxury-service-footer {
  position: relative;
  margin-top: 30px;
  padding: 68px 0 0;
  overflow: hidden;
  /*background:
    radial-gradient(circle at 10% 0%, rgba(255,107,44,.13), transparent 30%),
    radial-gradient(circle at 90% 10%, rgba(255,179,71,.09), transparent 28%),
    #061522;*/
  color: #c7d5df;
  border-top: 1px solid rgba(255,255,255,.07);
}

.footer.luxury-service-footer::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 3px;
  background: linear-gradient(90deg, #ff6b2c, #ffb347, #ff6b2c);
}

.footer.luxury-service-footer .footer-grid {
  display: grid !important;
  grid-template-columns: minmax(280px, 1.7fr) repeat(3, minmax(150px, 1fr)) !important;
  gap: 46px !important;
  align-items: start;
}

.footer-brand-column {
  padding-right: 20px;
}

.footer-brand-column .footer_logo {
  margin: 0 0 20px;
}

.footer-brand-column > p {
  max-width: 440px;
  margin: 0;
  color: #aebfcb;
  line-height: 1.75;
  font-size: 14px;
}

.footer-trust-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-top: 22px;
}

.footer-trust-badges span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 11px;
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  color: #dbe7ee;
  font-size: 12px;
  font-weight: 700;
}

.footer-trust-badges i {
  color: #ffb347;
}

.footer-link-column h4 {
  margin: 6px 0 20px;
  color: #ffffff;
  font-size: 15px;
  letter-spacing: .02em;
}

.footer.luxury-service-footer .footer-link-column a {
  display: block;
  width: max-content;
  max-width: 100%;
  margin: 0 0 13px;
  color: #aebfcb;
  font-size: 14px;
  transition: .2s ease;
}

.footer.luxury-service-footer .footer-link-column a:hover {
  color: #ffb347;
  transform: translateX(4px);
}

.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  margin-top: 48px;
  padding-top: 21px;
  padding-bottom: 21px;
  border-top: 1px solid rgba(255,255,255,.08);
  color: #8499a8;
  font-size: 12px;
}

.footer-bottom > div {
  display: flex;
  gap: 20px;
}

.footer-bottom a {
  color: #aebfcb;
}

.footer-bottom a:hover {
  color: #ffb347;
}

@media (max-width: 1050px) {
  .footer.luxury-service-footer .footer-grid {
    grid-template-columns: 1.5fr 1fr 1fr !important;
  }
  .footer-link-column:last-child {
    grid-column: 2 / 4;
  }
}

@media (max-width: 780px) {
  .lux-service-layout > aside {
    position: static !important;
    top: auto !important;
  }
  .footer.luxury-service-footer {
    padding-top: 50px;
  }
  .footer.luxury-service-footer .footer-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 34px 24px !important;
  }
  .footer-brand-column {
    grid-column: 1 / -1;
    padding-right: 0;
  }
  .footer-link-column:last-child {
    grid-column: auto;
  }
  .footer-bottom {
    margin-top: 34px;
  }
}

@media (max-width: 520px) {
  .logo_img, .footer_logo, .lux-service-logo {
    width: 250px !important;
    max-width: 82vw !important;
  }
  .footer.luxury-service-footer .footer-grid {
    grid-template-columns: 1fr !important;
  }
  .footer-brand-column, .footer-link-column:last-child {
    grid-column: auto;
  }
  .footer-bottom {
    align-items: flex-start;
    flex-direction: column;
  }
  .footer-bottom > div {
    flex-wrap: wrap;
  }
}

/* Complete dynamic programmatic SEO */
.programmatic-hero {
  padding:70px 0;
  background:radial-gradient(circle at 12% 0%,rgba(255,107,44,.15),transparent 34%),linear-gradient(135deg,#071725,#0b314b);
  color:#fff;
}

.programmatic-hero h1 {
  font-size:clamp(40px,5vw,68px);
  line-height:1.04;
  margin:14px 0 18px;
  letter-spacing:-.04em;
}

.programmatic-hero p {
  max-width:850px;
  color:#d6e2ea;
  font-size:17px;
  line-height:1.75;
}

.seo-fallback-note {
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:17px 19px;
  margin-bottom:28px;
  border:1px solid #f2d3bd;
  background:#fff8f2;
  border-radius:16px;
}

.seo-fallback-note i {
  color:var(--brand);
  font-size:20px;
  margin-top:2px;
}

.seo-fallback-note b,.seo-fallback-note span {
  display:block;
}

.seo-fallback-note span {
  margin-top:4px;
  color:var(--muted);
}

.programmatic-card {
  overflow:hidden;
}

.seo-card-image {
  display:block;
  position:relative;
}

.programmatic-card .seo-card-image img {
  width:100%;
  height:240px;
  object-fit:cover;
}

.verified-ribbon {
  position:absolute;
  top:14px;
  left:14px;
  padding:8px 11px;
  border-radius:999px;
  background:#fff;
  color:#087f5b;
  font-size:12px;
  font-weight:850;
  box-shadow:0 10px 25px #0002;
}

.programmatic-card .seo-card-meta a {
  color:inherit;
}

.programmatic-card-action small,.provider-service-card small {
  display:block;
  color:var(--muted);
  font-size:11px;
}

.programmatic-card-action b,.provider-service-card b {
  display:block;
  margin-top:3px;
  font-size:18px;
}

.seo-local-content {
  margin-top:32px;
}

.provider-seo-hero {
  background:#071725;
}

.provider-cover {
  height:330px;
  overflow:hidden;
  opacity:1.0;
}

.provider-seo-summary {
  position:relative;
  margin-top:-92px;
  padding-bottom:34px;
  color:#fff;
}

.provider-seo-summary .seo-breadcrumb {
  margin-bottom:18px;
}

.provider-seo-head {
  display:flex;
  gap:22px;
  align-items:flex-end;
}

.provider-seo-logo {
  width:118px;
  height:118px;
  object-fit:cover;
  border-radius:25px;
  background:#fff;
  border:5px solid #fff;
  box-shadow:0 18px 40px #0005;
}

.provider-title-line {
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}

.provider-title-line h1 {
  margin:0;
  font-size:clamp(34px,4vw,56px);
  letter-spacing:-.035em;
}

.provider-verified {
  padding:8px 11px;
  border-radius:999px;
  background:#e9fff5;
  color:#087f5b;
  font-size:12px;
  font-weight:850;
}

.provider-seo-head p {
  margin:10px 0;
  color:#d4e0e8;
}

.provider-rating-line {
  display:flex;
  gap:11px;
  flex-wrap:wrap;
}

.provider-rating-line span {
  padding:9px 11px;
  border:1px solid #ffffff1f;
  background:#ffffff0d;
  border-radius:999px;
  font-size:12px;
}

.provider-seo-layout {
  display:grid;
  grid-template-columns:minmax(0,1fr) 350px;
  gap:30px;
  align-items:start;
}

.provider-seo-layout>aside {
  position:sticky;
  top:96px;
  align-self:start;
}

.provider-about-copy {
  font-size:17px;
  line-height:1.8;
  color:#425466;
}

.provider-service-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}

.provider-service-card {
  border:1px solid var(--line);
  border-radius:20px;
  overflow:hidden;
  background:#fff;
}

.provider-service-card>a img {
  width:100%;
  height:220px;
  object-fit:cover;
}

.provider-service-card>div {
  padding:20px;
}

.provider-service-card h3 {
  margin:8px 0;
}

.provider-service-card p {
  color:var(--muted);
  line-height:1.6;
}

.provider-review-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.provider-review-card {
  padding:20px;
  border:1px solid var(--line);
  border-radius:18px;
}

.review-stars {
  color:#f59f00;
}

.provider-review-card>div:last-of-type {
  display:flex;
  justify-content:space-between;
  gap:12px;
  font-size:12px;
}

.provider-review-card blockquote {
  margin:14px 0 0;
  padding:12px;
  border-left:3px solid var(--brand);
  background:var(--bg);
}

.provider-contact-card img,.provider-service-request img {
  width:84px;
  height:84px;
  object-fit:cover;
  border-radius:19px;
  margin-bottom:14px;
}

.provider-contact-card .btn,.provider-service-request .btn {
  width:100%;
  justify-content:center;
  margin-top:10px;
}

.provider-contact-details {
  display:grid;
  gap:10px;
  margin-top:18px;
  color:var(--muted);
  font-size:13px;
}

.provider-service-hero {
  background:linear-gradient(135deg,#071725,#0d3752);
  color:#fff;
}

.provider-service-hero p {
  color:#d6e2ea;
}

@media (max-width:1000px) {
  .provider-seo-layout {
    grid-template-columns:1fr;
  }
  .provider-seo-layout>aside {
    position:static;
  }
  .provider-service-grid {
    grid-template-columns:1fr;
  }
}

@media (max-width:760px) {
  .provider-cover {
    height:240px;
  }
  .provider-seo-summary {
    margin-top:-58px;
  }
  .provider-seo-head {
    align-items:flex-start;
  }
  .provider-seo-logo {
    width:88px;
    height:88px;
  }
  .provider-rating-line {
    display:grid;
  }
  .provider-review-grid {
    grid-template-columns:1fr;
  }
  .programmatic-card .seo-card-image img {
    height:220px;
  }
}

@media (max-width:520px) {
  .provider-seo-head {
    display:block;
  }
  .provider-seo-logo {
    margin-bottom:14px;
  }
  .provider-title-line h1 {
    font-size:34px;
  }
  .programmatic-hero h1 {
    font-size:36px;
  }
}

/* Google AdSense placements on dynamic programmatic SEO pages */
.seo-ad-block, .seo-grid-ad-card {
  position: relative;
  border: 1px solid #dfe7ed;
  background: #fff;
  overflow: hidden;
}

.seo-ad-label {
  display: inline-flex;
  align-items: center;
  width: max-content;
  max-width: calc(100% - 24px);
  margin: 12px 12px 0;
  padding: 5px 9px;
  border-radius: 999px;
  background: #f3f6f8;
  color: #647482;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1;
  text-transform: uppercase;
}

.seo-top-ad {
  width: 100%;
  min-height: 120px;
  margin: 0 0 30px;
  padding: 0 0 12px;
  border-radius: 20px;
  box-shadow: 0 12px 35px rgba(7, 23, 37, .06);
}

.seo-top-ad .seo-adsense-unit {
  width: 100%;
  min-height: 90px;
  margin-top: 8px;
}

.seo-grid-ad-card {
  min-height: 100%;
  display: flex;
  flex-direction: column;
  border-radius: 20px;
  box-shadow: 0 14px 38px rgba(7, 23, 37, .08);
}

.seo-grid-ad-ins {
  flex: 1;
  display: flex;
  align-items: stretch;
  min-height: 360px;
  padding: 8px 12px 16px;
}

.seo-grid-ad-ins .seo-adsense-unit {
  width: 100%;
  min-height: 340px;
}

.seo-ad-preview {
  border-style: dashed;
  border-color: #c8d4dc;
  background:     linear-gradient(135deg, rgba(7,23,37,.025), rgba(255,107,44,.035)),     #fff;
}

.seo-ad-preview-content, .seo-grid-ad-preview-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: #536675;
}

.seo-ad-preview-content {
  min-height: 92px;
  padding: 16px 24px 8px;
}

.seo-grid-ad-preview-content {
  flex: 1;
  min-height: 360px;
  padding: 34px 24px;
}

.seo-ad-preview-content i, .seo-grid-ad-preview-content i {
  margin-bottom: 12px;
  color: #f06b2f;
  font-size: 34px;
}

.seo-ad-preview-content strong, .seo-grid-ad-preview-content strong {
  color: #132b3d;
  font-size: 18px;
}

.seo-grid-ad-preview-content p {
  max-width: 270px;
  margin: 10px auto;
  line-height: 1.6;
}

.seo-ad-preview-content small, .seo-grid-ad-preview-content small {
  margin-top: 7px;
  color: #7a8c99;
  line-height: 1.5;
}

@media (max-width: 760px) {
  .seo-top-ad {
    min-height: 110px;
    margin-bottom: 24px;
    border-radius: 16px;
  }
  .seo-grid-ad-ins, .seo-grid-ad-preview-content {
    min-height: 300px;
  }
  .seo-grid-ad-ins .seo-adsense-unit {
    min-height: 280px;
  }
}

/* ===== SEYAANAFIX CONSOLIDATED RESPONSIVE SYSTEM ===== */
/* Shared navigation */
.mobile-nav-toggle {
  display: none;
  width: 46px;
  height: 46px;
  padding: 10px;
  border: 1px solid var(--line, #dfe7ed);
  border-radius: 14px;
  background: #ffffff;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  box-shadow: 0 8px 24px rgba(7, 23, 37, 0.08);
}

.mobile-nav-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  border-radius: 2px;
  background: var(--brand, #102f44);
  transition: transform 0.25s ease, opacity 0.25s ease;
}

.mobile-nav-open .mobile-nav-toggle span:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}

.mobile-nav-open .mobile-nav-toggle span:nth-child(2) {
  opacity: 0;
}

.mobile-nav-open .mobile-nav-toggle span:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}

/* Provider service cards and action buttons */
.provider-service-price {
  min-width: 190px;
}

.provider-service-price .btn {
  width: 100%;
  min-height: 44px;
  font-size: 14px;
  padding: 11px 16px;
  justify-content: center;
  text-align: center;
  white-space: nowrap;
}

.provider-service-price .btn + .btn {
  margin-top: 9px;
}

.provider-service-card {
  overflow: hidden;
}

.provider-service-copy, .provider-service-price {
  min-width: 0;
}

/* Global overflow protection */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}

img, video, iframe {
  max-width: 100%;
}

table {
  max-width: 100%;
}

input, select, textarea, button {
  max-width: 100%;
}

@media (max-width: 1100px) {
  .container {
    width: min(100% - 32px, 1180px);
  }
  .provider-layout, .lux-service-layout, .seo-provider-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .provider-sidebar, .sticky-request-card {
    position: static;
    top: auto;
  }
}

@media (max-width: 900px) {
  .nav {
    min-height: 76px;
    position: relative;
  }
  .nav .logo_img, .nav .lux-service-logo {
    width: min(210px, 58vw);
    height: auto;
  }
  .mobile-nav-toggle {
    display: inline-flex;
    margin-left: auto;
    flex: 0 0 auto;
    z-index: 1002;
  }
  .nav .nav-links {
    display: none;
    position: absolute;
    z-index: 1001;
    top: calc(100% + 10px);
    left: 0;
    right: 0;
    width: 100%;
    padding: 14px;
    border: 1px solid var(--line, #dfe7ed);
    border-radius: 18px;
    background: #ffffff;
    box-shadow: 0 22px 55px rgba(7, 23, 37, 0.18);
    flex-direction: column;
    align-items: stretch;
    gap: 4px;
  }
  .nav.mobile-nav-open .nav-links {
    display: flex;
  }
  .nav .nav-links a, .nav .nav-links button, .nav .nav-links .btn {
    width: 100%;
    min-height: 46px;
    margin: 0;
    padding: 12px 14px;
    border-radius: 12px;
    justify-content: flex-start;
    text-align: left;
  }
  .nav .nav-links .btn {
    justify-content: center;
    text-align: center;
    margin-top: 5px;
  }
  body.mobile-menu-active {
    overflow: hidden;
  }
  .hero-grid, .map-shell, .footer-grid, .features, .categories, .seo-service-grid, .provider-service-grid, .service-feature-grid, .lux-benefit-grid, .lux-service-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .provider-cover {
    min-height: 440px;
  }
  .provider-cover-content {
    padding-top: 48px;
    padding-bottom: 42px;
  }
  .provider-identity {
    align-items: flex-start;
  }
  .provider-service-card {
    grid-template-columns: 150px minmax(0, 1fr);
  }
  .provider-service-card > img {
    width: 150px;
    height: 100%;
    min-height: 190px;
  }
  .provider-service-price {
    grid-column: 2;
    min-width: 0;
    padding: 16px 0 0;
    border-top: 1px solid var(--line, #dfe7ed);
    border-left: 0;
    display: grid;
    grid-template-columns: auto minmax(120px, 1fr) minmax(120px, 1fr);
    gap: 10px;
    align-items: center;
  }
  .provider-service-price small {
    grid-column: 1;
  }
  .provider-service-price strong {
    grid-column: 1;
    margin: 0;
  }
  .provider-service-price .btn {
    width: 100%;
    margin: 0;
  }
}

@media (max-width: 700px) {
  .container {
    width: min(100% - 22px, 1180px);
  }
  .section {
    padding-top: 52px;
    padding-bottom: 52px;
  }
  .topbar {
    display: none;
  }
  .nav-wrap {
    position: sticky;
    top: 0;
    z-index: 1000;
  }
  .nav {
    min-height: 70px;
  }
  .hero-grid, .map-shell, .footer-grid, .features, .categories, .seo-service-grid, .provider-service-grid, .service-feature-grid, .lux-benefit-grid, .lux-service-gallery, .provider-gallery, .provider-facts, .review-form-grid, .form-grid, .stats, .plan-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .between, .inline, .dash-head, .provider-section-head {
    align-items: flex-start;
    flex-direction: column;
  }
  .hero h1, .provider-identity h1, .lux-service-hero-copy h1, .seo-listing-hero h1 {
    font-size: clamp(32px, 10vw, 48px);
    line-height: 1.08;
  }
  .provider-cover {
    min-height: 470px;
    background-position: center;
  }
  .provider-cover-content {
    padding-top: 34px;
    padding-bottom: 34px;
  }
  .provider-identity {
    flex-direction: column;
    gap: 18px;
  }
  .provider-logo {
    width: 88px;
    height: 88px;
  }
  .provider-rating-line {
    gap: 7px;
    flex-wrap: wrap;
  }
  .provider-content-section {
    padding-top: 28px;
  }
  .provider-layout {
    width: min(100% - 18px, 1180px);
  }
  .provider-tabs {
    position: sticky;
    top: 70px;
    z-index: 20;
    width: 100%;
    overflow-x: auto;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }
  .provider-box {
    padding: 18px;
    border-radius: 18px;
  }
  .provider-service-card {
    grid-template-columns: minmax(0, 1fr);
    border-radius: 18px;
  }
  .provider-service-card > img {
    width: 100%;
    height: 215px;
    min-height: 0;
  }
  .provider-service-copy {
    padding: 18px;
  }
  .provider-service-price {
    grid-column: auto;
    padding: 17px 18px 18px;
    border-top: 1px solid var(--line, #dfe7ed);
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .provider-service-price small, .provider-service-price strong {
    grid-column: 1 / -1;
  }
  .provider-service-price strong {
    margin: 3px 0 4px;
  }
  .provider-service-price .btn {
    min-width: 0;
    min-height: 46px;
    padding: 11px 10px;
    white-space: normal;
    line-height: 1.25;
  }
  .provider-service-price .btn + .btn {
    margin-top: 0;
  }
  .provider-contact-card, .provider-hours-card {
    border-radius: 18px;
  }
  .map-canvas {
    min-height: 420px;
  }
  .footer {
    text-align: left;
  }
  .footer_logo {
    width: min(230px, 75vw);
  }
  .seo-top-ad, .seo-grid-ad-card {
    border-radius: 16px;
  }
}

@media (max-width: 420px) {
  .container {
    width: min(100% - 16px, 1180px);
  }
  .nav .logo_img, .nav .lux-service-logo {
    width: min(180px, 56vw);
  }
  .mobile-nav-toggle {
    width: 42px;
    height: 42px;
  }
  .provider-box {
    padding: 15px;
  }
  .provider-service-price {
    grid-template-columns: minmax(0, 1fr);
  }
  .provider-service-price small, .provider-service-price strong, .provider-service-price .btn {
    grid-column: 1;
  }
  .provider-service-price .btn {
    width: 100%;
  }
  .btn {
    max-width: 100%;
  }
}

/* =========================================================
   Provider dashboard compact services + clean history chart
   ========================================================= */
@media (min-width: 721px) {
  #myServices .provider-service-grid {
    gap: 16px;
    margin-top: 16px;
  }

  #myServices .dashboard-service-card {
    border-radius: 17px;
    box-shadow: 0 7px 22px rgba(10,42,70,.065);
  }

  #myServices .dashboard-service-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(10,42,70,.10);
  }

  #myServices .dashboard-service-card > .dashboard-service-image,
  #myServices .dashboard-service-card > .dashboard-service-image > img {
    height: 145px !important;
    min-height: 145px !important;
    max-height: 145px !important;
  }

  #myServices .dashboard-service-card > .dashboard-service-image {
    flex-basis: 145px !important;
  }

  #myServices .dashboard-service-status {
    top: 10px;
    right: 10px;
    padding: 5px 9px;
    font-size: 10px;
  }

  #myServices .dashboard-service-body {
    padding: 14px 15px 11px;
  }

  #myServices .dashboard-service-category {
    font-size: 10px;
    letter-spacing: .65px;
  }

  #myServices .dashboard-service-body h3 {
    margin: 6px 0 6px;
    font-size: 17px;
    line-height: 1.25;
  }

  #myServices .dashboard-service-body p {
    min-height: 40px;
    margin-bottom: 12px;
    font-size: 13px;
    line-height: 1.5;
    -webkit-line-clamp: 2;
  }

  #myServices .dashboard-service-meta {
    gap: 8px;
    padding-top: 10px;
  }

  #myServices .dashboard-service-meta strong {
    font-size: 17px;
  }

  #myServices .dashboard-service-tags span {
    padding: 4px 7px;
    font-size: 9px;
  }

  #myServices .dashboard-service-actions {
    gap: 7px;
    padding: 10px 15px 14px;
  }

  #myServices .dashboard-service-actions .btn {
    min-height: 36px;
    padding-top: 7px;
    padding-bottom: 7px;
    font-size: 12px;
  }
}

#analytics .analytics-stats {
  margin: 20px 0 18px;
}

#analytics .chart-box {
  position: relative;
  overflow: hidden;
  padding: 0;
  border: 1px solid #dfe8ef;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 9px 28px rgba(10,42,70,.06);
}

.analytics-chart-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 20px 13px;
  border-bottom: 1px solid #edf2f5;
}

.analytics-chart-head h3 {
  margin: 0 0 3px;
  color: #102f49;
  font-size: 17px;
}

.analytics-chart-head p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.analytics-chart-key {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex: 0 0 auto;
  color: #496274;
  font-size: 12px;
  font-weight: 800;
}

.analytics-chart-key::before {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: #0b5fff;
  content: "";
  box-shadow: 0 0 0 4px rgba(11,95,255,.10);
}

.analytics-chart-canvas {
  position: relative;
  height: 315px;
  padding: 17px 18px 15px;
}

.analytics-chart-canvas canvas {
  width: 100% !important;
  height: 100% !important;
}

@media (max-width: 720px) {
  .analytics-chart-head {
    align-items: flex-start;
    flex-direction: column;
    padding: 16px;
  }

  .analytics-chart-canvas {
    height: 275px;
    padding: 12px 10px 12px;
  }
}

/* =========================================================
   Final provider dashboard and public profile layout fixes
   ========================================================= */

/* Keep exactly three compact service cards across normal desktop workspaces. */
@media (min-width: 901px) {
  #myServices .provider-service-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }

  #myServices .dashboard-service-card {
    min-width: 0;
    width: 100%;
  }
}

@media (min-width: 721px) and (max-width: 900px) {
  #myServices .provider-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

/* Public provider profile cover: prevent inherited dashboard/public hero rules
   from stretching or misaligning the image. */
.provider-seo-hero > .provider-cover {
  position: relative;
  display: block;
  width: 100%;
  height: 330px;
  min-height: 330px;
  overflow: hidden;
  background: #071725;
}

.provider-seo-hero > .provider-cover::after {
  position: absolute;
  inset: 0;
  content: "";
  background: linear-gradient(180deg, rgba(7,23,37,.06) 15%, rgba(7,23,37,.68) 100%);
  pointer-events: none;
}

.provider-seo-hero > .provider-cover > img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center;
}

/* Public provider service cards: isolate them from the very different
   interactive provider-detail card component that uses the same class name. */
.provider-seo-layout .luxury-content-card .provider-service-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  align-items: stretch;
  margin-top: 18px;
}

.provider-seo-layout .luxury-content-card .provider-service-card {
  display: flex;
  min-width: 0;
  height: 100%;
  flex-direction: column;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #dfe7ee;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 7px 22px rgba(10,42,70,.06);
}

.provider-seo-layout .luxury-content-card .provider-service-card > a {
  display: block;
  flex: 0 0 auto;
  overflow: hidden;
  background: #edf3f7;
}

.provider-seo-layout .luxury-content-card .provider-service-card > a > img {
  display: block;
  width: 100%;
  height: 175px;
  max-width: none;
  object-fit: cover;
  object-position: center;
  transition: transform .3s ease;
}

.provider-seo-layout .luxury-content-card .provider-service-card:hover > a > img {
  transform: scale(1.025);
}

.provider-seo-layout .luxury-content-card .provider-service-card > div {
  display: flex;
  flex: 1;
  flex-direction: column;
  padding: 16px;
}

.provider-seo-layout .luxury-content-card .provider-service-card h3 {
  margin: 6px 0 7px;
  font-size: 18px;
  line-height: 1.3;
}

.provider-seo-layout .luxury-content-card .provider-service-card h3 a {
  color: #102f49;
}

.provider-seo-layout .luxury-content-card .provider-service-card p {
  display: -webkit-box;
  min-height: 42px;
  margin: 0 0 15px;
  overflow: hidden;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.provider-seo-layout .luxury-content-card .provider-service-card .between {
  align-items: end;
  gap: 12px;
  margin-top: auto;
  padding-top: 13px;
  border-top: 1px solid #edf1f4;
}

.provider-seo-layout .luxury-content-card .provider-service-card .btn {
  min-height: 36px;
  padding: 8px 12px;
  white-space: nowrap;
}

@media (max-width: 1100px) {
  .provider-seo-layout .luxury-content-card .provider-service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 700px) {
  .provider-seo-hero > .provider-cover {
    height: 240px;
    min-height: 240px;
  }

  .provider-seo-layout .luxury-content-card .provider-service-grid {
    grid-template-columns: 1fr;
  }

  .provider-seo-layout .luxury-content-card .provider-service-card > a > img {
    height: 190px;
  }
}

/* =========================================================
   Final provider profile + analytics dashboard polish
   ========================================================= */
.provider-profile-hero {
  position: relative;
  min-height: 470px;
  display: flex;
  align-items: flex-end;
  background-size: cover;
  background-position: center;
  color: #fff;
  isolation: isolate;
}

.provider-profile-hero::after {
  position: absolute;
  inset: auto 0 0;
  height: 120px;
  content: "";
  background: linear-gradient(180deg, transparent, rgba(4,20,32,.35));
  z-index: -1;
}

/*.provider-profile-hero-inner {
  width: 100%;
  padding-top: 48px;
  padding-bottom: 48px;
}*/

.provider-profile-breadcrumb {
  margin-bottom: 26px;
  color: rgba(255,255,255,.78);
}

.provider-profile-breadcrumb a,
.provider-profile-breadcrumb b {
  color: #fff;
}

.provider-profile-identity {
  display: flex;
  align-items: flex-end;
  gap: 24px;
}

.provider-profile-logo {
  width: 126px;
  height: 126px;
  flex: 0 0 126px;
  object-fit: cover;
  border: 5px solid rgba(255,255,255,.95);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 20px 46px rgba(0,0,0,.30);
}

.provider-profile-copy {
  max-width: 880px;
}

.provider-profile-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin-bottom: 13px;
}

.provider-profile-copy h1 {
  margin: 0;
  max-width: 900px;
  font-size: clamp(36px,5vw,62px);
  line-height: 1.03;
  letter-spacing: -.035em;
}

.provider-profile-location {
  margin: 14px 0 12px;
  color: #dce8f0;
  font-size: 15px;
}

.provider-profile-metrics {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.provider-profile-metrics span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 11px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  background: rgba(255,255,255,.09);
  backdrop-filter: blur(10px);
  font-size: 12px;
}

.provider-profile-metrics .fa-star {
  color: #ffc857;
}

.provider-profile-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.provider-profile-actions .btn {
  min-height: 44px;
}

.provider-services-intro {
  max-width: 720px;
  margin: -4px 0 18px;
}

.profile-whatsapp-card .btn {
  width: 100%;
  justify-content: center;
}

.analytics-toolbar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

.analytics-toolbar h2 {
  margin: 5px 0 4px;
}

.analytics-toolbar-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.analytics-quick-periods {
  display: inline-flex;
  padding: 4px;
  border: 1px solid #dfe7ee;
  border-radius: 13px;
  background: #f5f8fa;
}

.analytics-quick-periods button {
  min-height: 34px;
  padding: 7px 12px;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #587083;
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.analytics-quick-periods button.active {
  background: #fff;
  color: #0b5fff;
  box-shadow: 0 4px 13px rgba(10,42,70,.09);
}

.analytics-date-filters {
  margin-top: 18px;
  padding: 13px;
  border: 1px solid #e2e9ef;
  border-radius: 16px;
  background: #f8fafb;
}

.analytics-kpi-grid {
  display: grid;
  grid-template-columns: repeat(5,minmax(0,1fr));
  gap: 13px;
  margin: 18px 0;
}

.analytics-kpi-card {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-width: 0;
  padding: 17px;
  border: 1px solid #dfe7ee;
  border-radius: 17px;
  background: #fff;
  box-shadow: 0 7px 22px rgba(10,42,70,.05);
}

.analytics-kpi-icon {
  display: grid;
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  place-items: center;
  border-radius: 12px;
  background: #edf4ff;
  color: #0b5fff;
}

.analytics-kpi-card small,
.analytics-kpi-card em {
  display: block;
}

.analytics-kpi-card small {
  color: #5d7384;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .45px;
}

.analytics-kpi-card b {
  display: block;
  margin: 4px 0 3px;
  color: #102f49;
  font-size: 25px;
  line-height: 1;
}

.analytics-kpi-card em {
  color: #8293a0;
  font-size: 10px;
  font-style: normal;
  line-height: 1.35;
}

.analytics-kpi-revenue .analytics-kpi-icon {
  background: #e9fbf4;
  color: #0a9b6d;
}

.analytics-kpi-revenue b {
  font-size: 20px;
  line-height: 1.15;
}

.analytics-chart-layout {
  display: grid;
  grid-template-columns: minmax(0,1fr) 280px;
  gap: 16px;
  align-items: stretch;
}

.analytics-main-chart {
  min-width: 0;
}

.analytics-chart-legend {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  color: #587083;
  font-size: 12px;
  font-weight: 800;
}

.analytics-chart-legend span {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.analytics-chart-legend span::before {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  content: "";
}

.analytics-chart-legend .requests::before {
  background: #0b5fff;
}

.analytics-chart-legend .completed::before {
  background: #0aa06e;
}

.analytics-empty-chart {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  text-align: center;
  color: #718594;
  background: #fff;
}

.analytics-empty-chart[hidden] {
  display: none;
}

.analytics-empty-chart i {
  margin-bottom: 10px;
  color: #b2c1cc;
  font-size: 34px;
}

.analytics-empty-chart h3 {
  margin: 0 0 5px;
  color: #29485f;
}

.analytics-empty-chart p {
  margin: 0;
}

.analytics-summary-card {
  padding: 20px;
  border: 1px solid #dfe7ee;
  border-radius: 20px;
  background: linear-gradient(180deg,#ffffff,#f7fafc);
  box-shadow: 0 9px 28px rgba(10,42,70,.06);
}

.analytics-summary-card h3 {
  margin: 6px 0 18px;
  color: #102f49;
}

.analytics-conversion-ring {
  --conversion: 0deg;
  position: relative;
  display: grid;
  width: 150px;
  height: 150px;
  margin: 0 auto 22px;
  place-content: center;
  border-radius: 50%;
  text-align: center;
  background: conic-gradient(#0b5fff var(--conversion),#e8eef3 0deg);
}

.analytics-conversion-ring::before {
  position: absolute;
  inset: 13px;
  border-radius: 50%;
  background: #fff;
  content: "";
}

.analytics-conversion-ring strong,
.analytics-conversion-ring span {
  position: relative;
  z-index: 1;
}

.analytics-conversion-ring strong {
  color: #102f49;
  font-size: 30px;
}

.analytics-conversion-ring span {
  color: #718594;
  font-size: 11px;
}

.analytics-summary-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 0;
  border-top: 1px solid #e7edf2;
  color: #5b7182;
  font-size: 12px;
}

.analytics-summary-row b {
  color: #173c57;
}

.analytics-summary-card > p {
  margin: 15px 0 0;
  font-size: 11px;
  line-height: 1.55;
}

@media (max-width: 1240px) {
  .analytics-kpi-grid {
    grid-template-columns: repeat(3,minmax(0,1fr));
  }
}

@media (max-width: 960px) {
  .provider-profile-hero {
    min-height: 430px;
  }

  .analytics-toolbar {
    flex-direction: column;
  }

  .analytics-chart-layout {
    grid-template-columns: 1fr;
  }

  .analytics-summary-card {
    display: grid;
    grid-template-columns: auto 170px 1fr;
    gap: 18px;
    align-items: center;
  }

  .analytics-summary-card h3,
  .analytics-summary-card > .eyebrow {
    grid-column: 1;
  }

  .analytics-conversion-ring {
    grid-column: 2;
    grid-row: 1 / span 4;
    width: 130px;
    height: 130px;
    margin: 0;
  }
}

@media (max-width: 720px) {
  .provider-profile-hero {
    min-height: 520px;
    align-items: flex-end;
    background-position: center;
  }

  .provider-profile-hero-inner {
    padding-top: 34px;
    padding-bottom: 34px;
  }

  .provider-profile-identity {
    align-items: flex-start;
    flex-direction: column;
    gap: 16px;
  }

  .provider-profile-logo {
    width: 92px;
    height: 92px;
    flex-basis: 92px;
    border-radius: 22px;
  }

  .provider-profile-copy h1 {
    font-size: 36px;
  }

  .provider-profile-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .provider-profile-actions .btn {
    width: 100%;
    justify-content: center;
  }

  .analytics-toolbar-actions {
    width: 100%;
    align-items: stretch;
    flex-direction: column;
  }

  .analytics-quick-periods {
    width: 100%;
  }

  .analytics-quick-periods button {
    flex: 1;
  }

  .analytics-export-btn {
    width: 100%;
    justify-content: center;
  }

  .analytics-date-filters {
    align-items: stretch;
    flex-direction: column;
  }

  .analytics-date-filters .form-control,
  .analytics-date-filters .btn {
    width: 100%;
  }

  .analytics-kpi-grid {
    grid-template-columns: repeat(2,minmax(0,1fr));
  }

  .analytics-kpi-revenue {
    grid-column: 1 / -1;
  }

  .analytics-summary-card {
    display: block;
  }

  .analytics-conversion-ring {
    margin: 0 auto 20px;
  }
}

@media (max-width: 430px) {
  .analytics-kpi-grid {
    grid-template-columns: 1fr;
  }

  .analytics-kpi-revenue {
    grid-column: auto;
  }

  .analytics-chart-canvas {
    height: 250px;
  }
}



/* Twenty-seven service catalogue additions */
.category-page-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  color: var(--brand);
  font-size: 11px;
  font-weight: 850;
}
.category-page-link:hover {
  text-decoration: underline;
}
.lux-service-hero-media > img,
.lux-service-gallery-item img {
  background: #edf3f7;
}


/* ===== Larger homepage service cards ===== */
#categoryGrid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(290px,1fr));
  gap:24px;
}
.category{
  min-height:420px;
  border-radius:22px;
  overflow:hidden;
}
.category>img{
  width:100%;
  height:200px;
  object-fit:cover;
}
.category-content{
  padding:20px;
}
.category-content strong{
  display:block;
  margin:10px 0 8px;
  font-size:1.18rem;
  line-height:1.3;
}
.category-content span{
  display:block;
  min-height:72px;
  margin-bottom:12px;
  font-size:.97rem;
  line-height:1.65;
}
.category-icon{
  width:60px;
  height:60px;
  font-size:24px;
}
.category-learn-more,
.category-page-link{
  font-size:.92rem;
  font-weight:700;
}
@media (max-width:768px){
  #categoryGrid{
    grid-template-columns:1fr;
    gap:18px;
  }
  .category{
    min-height:390px;
  }
  .category>img{
    height:180px;
  }
}

/* =========================================================
   SeyaanaFix Signature Service Universe
   A bespoke visual system for the 27 homepage service cards
   ========================================================= */
.signature-services-section {
  position: relative;
  overflow: hidden;
  padding: 92px 0 104px;
  background:
    linear-gradient(180deg, #f7fbff 0%, #ffffff 42%, #f5f9fc 100%);
  isolation: isolate;
}

.signature-services-section::before {
  position: absolute;
  inset: 0;
  z-index: -3;
  content: "";
  opacity: .32;
  background-image:
    linear-gradient(rgba(11,95,255,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(11,95,255,.055) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(to bottom, black, transparent 78%);
}

.signature-services-glow {
  position: absolute;
  z-index: -2;
  width: 430px;
  height: 430px;
  border-radius: 50%;
  filter: blur(85px);
  opacity: .18;
  pointer-events: none;
}

.signature-services-glow-one {
  top: -150px;
  left: -160px;
  background: #0b5fff;
}

.signature-services-glow-two {
  right: -180px;
  bottom: -180px;
  background: #12b981;
}

.signature-services-heading {
  display: grid;
  grid-template-columns: minmax(0,1.2fr) minmax(280px,.8fr);
  gap: 58px;
  align-items: end;
  margin-bottom: 38px;
}

.signature-services-heading .eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}

.signature-services-heading h2 {
  max-width: 760px;
  margin: 0;
  color: #0b2940;
  font-size: clamp(38px,5vw,66px);
  line-height: .98;
  letter-spacing: -.045em;
}

.signature-services-heading-copy {
  padding-left: 24px;
  border-left: 1px solid rgba(18,62,95,.15);
}

.signature-services-heading-copy p {
  margin: 0 0 16px;
  color: #607889;
  font-size: 16px;
  line-height: 1.75;
}

.signature-services-heading-copy > span {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  color: #173d58;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.signature-services-heading-copy > span b {
  color: #0b5fff;
  font-size: 28px;
  line-height: 1;
  letter-spacing: -.04em;
}

#categoryGrid.signature-service-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap: 26px;
  align-items: stretch;
}

.signature-service-card.category {
  --tone: #0b5fff;
  --tone-soft: rgba(11,95,255,.15);
  position: relative;
  display: flex;
  min-width: 0;
  min-height: 510px;
  flex-direction: column;
  overflow: hidden;
  border: 0;
  border-radius: 30px 30px 30px 10px;
  color: inherit;
  background:
    linear-gradient(150deg, rgba(255,255,255,.98), rgba(247,250,252,.96));
  box-shadow:
    0 24px 60px rgba(21,54,79,.10),
    0 3px 12px rgba(21,54,79,.05);
  text-decoration: none;
  isolation: isolate;
  transform: translateZ(0);
  transition:
    transform .42s cubic-bezier(.2,.8,.2,1),
    box-shadow .42s ease,
    border-radius .42s ease;
}

.signature-service-card.tone-azure { --tone:#0b5fff; --tone-soft:rgba(11,95,255,.16); }
.signature-service-card.tone-emerald { --tone:#0aa778; --tone-soft:rgba(10,167,120,.16); }
.signature-service-card.tone-amber { --tone:#e79b1f; --tone-soft:rgba(231,155,31,.18); }
.signature-service-card.tone-violet { --tone:#7457d8; --tone-soft:rgba(116,87,216,.17); }
.signature-service-card.tone-coral { --tone:#de6a58; --tone-soft:rgba(222,106,88,.17); }
.signature-service-card.tone-teal { --tone:#078c9f; --tone-soft:rgba(7,140,159,.17); }

.signature-service-card::before {
  position: absolute;
  inset: auto -55px -65px auto;
  z-index: -1;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  content: "";
  background: radial-gradient(circle, var(--tone-soft), transparent 68%);
  transition: transform .55s ease, opacity .55s ease;
}

.signature-service-card::after {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 74px;
  height: 74px;
  content: "";
  clip-path: polygon(0 0, 100% 100%, 0 100%);
  background: linear-gradient(135deg, var(--tone-soft), rgba(255,255,255,0));
  pointer-events: none;
}

.signature-card-outline {
  position: absolute;
  inset: 1px;
  z-index: 4;
  border: 1px solid rgba(255,255,255,.58);
  border-radius: 29px 29px 29px 9px;
  pointer-events: none;
}

.signature-card-media {
  position: relative;
  height: 245px;
  margin: 10px 10px 0;
  overflow: hidden;
  border-radius: 22px 22px 22px 8px;
  background: #dfe9f0;
}

.signature-card-media > img,
.signature-service-card.category > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.015);
  transition: transform .75s cubic-bezier(.2,.8,.2,1), filter .5s ease;
}

.signature-card-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(2,19,31,.04) 20%, rgba(2,19,31,.12) 55%, rgba(2,19,31,.68) 100%);
}

.signature-card-number {
  position: absolute;
  top: 16px;
  left: 16px;
  display: inline-flex;
  min-width: 44px;
  height: 31px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 999px;
  color: #fff;
  background: rgba(4,20,32,.36);
  backdrop-filter: blur(12px);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .16em;
}

.signature-card-emblem {
  position: absolute;
  right: 18px;
  bottom: 17px;
  display: grid;
  width: 66px;
  height: 66px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.48);
  border-radius: 22px 22px 22px 7px;
  color: #fff;
  background:
    linear-gradient(145deg, rgba(255,255,255,.28), rgba(255,255,255,.10));
  backdrop-filter: blur(16px);
  box-shadow: 0 15px 30px rgba(0,0,0,.22);
  font-size: 25px;
  transform: rotate(-3deg);
  transition: transform .48s cubic-bezier(.2,.8,.2,1), background .35s ease;
}

.signature-card-orbit {
  position: absolute;
  inset: -8px;
  border: 1px dashed rgba(255,255,255,.40);
  border-radius: 25px 25px 25px 9px;
  transition: transform .7s ease;
}

.signature-card-content.category-content {
  display: flex;
  min-height: 255px;
  padding: 24px 24px 23px;
  flex-direction: column;
}

.signature-card-title-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.signature-card-title-row strong,
.signature-service-card .category-content strong {
  margin: 0;
  color: #102f49;
  font-size: 23px;
  line-height: 1.15;
  letter-spacing: -.025em;
}

.signature-card-title-row > i {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  place-items: center;
  border-radius: 50%;
  color: var(--tone);
  background: var(--tone-soft);
  font-size: 12px;
  transform: rotate(-32deg);
  transition: transform .38s ease, color .38s ease, background .38s ease;
}

.signature-card-description,
.signature-service-card .category-content > span.signature-card-description {
  display: -webkit-box;
  min-height: 72px;
  margin: 13px 0 15px;
  overflow: hidden;
  color: #6a7f8e;
  font-size: 14px;
  line-height: 1.65;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.signature-card-traits {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 19px;
}

.signature-card-traits small {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 6px 10px;
  border: 1px solid rgba(18,62,95,.09);
  border-radius: 999px;
  color: #4f6879;
  background: #f6f9fb;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .025em;
}

.signature-card-traits small:first-child {
  color: var(--tone);
  border-color: var(--tone-soft);
  background: var(--tone-soft);
}

.signature-card-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid rgba(19,58,85,.10);
}

.signature-card-footer .category-learn-more {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #526b7c;
  font-size: 11px;
  font-weight: 800;
}

.signature-card-footer .category-learn-more i {
  color: var(--tone);
}

.signature-card-footer .category-page-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin: 0;
  color: var(--tone);
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
  transition: gap .3s ease;
}

.signature-service-card:hover {
  border-radius: 30px 30px 30px 18px;
  box-shadow:
    0 34px 80px rgba(21,54,79,.16),
    0 8px 24px rgba(21,54,79,.08);
  transform: translateY(-9px);
}

.signature-service-card:hover::before {
  opacity: .95;
  transform: scale(1.35);
}

.signature-service-card:hover .signature-card-media > img {
  filter: saturate(1.06) contrast(1.02);
  transform: scale(1.085);
}

.signature-service-card:hover .signature-card-emblem {
  background:
    linear-gradient(145deg, color-mix(in srgb, var(--tone) 72%, transparent), rgba(255,255,255,.18));
  transform: rotate(3deg) translateY(-3px);
}

.signature-service-card:hover .signature-card-orbit {
  transform: rotate(12deg) scale(1.04);
}

.signature-service-card:hover .signature-card-title-row > i {
  color: #fff;
  background: var(--tone);
  transform: rotate(0deg);
}

.signature-service-card:hover .category-page-link {
  gap: 11px;
}

.signature-service-card:focus-visible {
  outline: 3px solid var(--tone-soft);
  outline-offset: 5px;
}

@media (max-width: 1180px) {
  #categoryGrid.signature-service-grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
  }
}

@media (max-width: 820px) {
  .signature-services-section {
    padding: 72px 0 80px;
  }

  .signature-services-heading {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .signature-services-heading-copy {
    max-width: 680px;
    padding-left: 0;
    border-left: 0;
  }

  .signature-services-heading h2 {
    font-size: clamp(38px,10vw,54px);
  }
}

@media (max-width: 650px) {
  #categoryGrid.signature-service-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .signature-service-card.category {
    min-height: 0;
    border-radius: 25px 25px 25px 9px;
  }

  .signature-card-media {
    height: 220px;
    border-radius: 18px 18px 18px 7px;
  }

  .signature-card-content.category-content {
    min-height: 250px;
    padding: 21px 20px 20px;
  }

  .signature-card-title-row strong,
  .signature-service-card .category-content strong {
    font-size: 21px;
  }

  .signature-card-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .signature-card-footer .category-page-link {
    width: 100%;
    justify-content: space-between;
    padding: 11px 13px;
    border-radius: 12px;
    background: var(--tone-soft);
  }
}

@media (prefers-reduced-motion: reduce) {
  .signature-service-card,
  .signature-card-media > img,
  .signature-card-emblem,
  .signature-card-orbit,
  .signature-card-title-row > i,
  .signature-card-footer .category-page-link {
    transition: none !important;
  }

  .signature-service-card:hover {
    transform: none;
  }
}



/* ===== Signature card readability fix ===== */

/* Keep content fully below the image */
.signature-card-content.category-content{
    position:relative;
    margin-top:0;
    background:#ffffff;
    z-index:3;
}

/* Strong readable heading */
.signature-card-title-row{
    align-items:flex-start;
}

.signature-card-title-row strong,
.signature-service-card .category-content strong{
    color:#0b2940 !important;
    text-shadow:none;
    font-weight:800;
}

/* Description completely inside white content area */
.signature-card-description,
.signature-service-card .category-content > span.signature-card-description{
    position:relative;
    display:block;
    margin:16px 0 18px;
    padding:0;
    min-height:70px;
    color:#647889 !important;
    background:transparent;
    z-index:5;
    -webkit-line-clamp:unset;
    overflow:visible;
}

/* Extra separation between image and text */
.signature-card-media{
    margin-bottom:10px;
}

.signature-card-content{
    border-top:1px solid rgba(0,0,0,.05);
}

/* Better contrast on hover */
.signature-service-card:hover .signature-card-title-row strong{
    color:#081f31 !important;
}

/* =========================================================
   SeyaanaFix Service Story Cards
   Three-stage visual preview activated on hover/focus
   ========================================================= */

.service-story-media {
  isolation: isolate;
}

.service-story-track {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

.service-story-frame {
  position: absolute;
  inset: 0;
  margin: 0;
  opacity: 0;
  transform: translateX(10%) scale(1.035);
  transition:
    opacity .62s cubic-bezier(.2,.8,.2,1),
    transform .78s cubic-bezier(.2,.8,.2,1);
  pointer-events: none;
}

.service-story-frame::after {
  position: absolute;
  inset: 0;
  content: "";
  background:
    linear-gradient(180deg, rgba(4,20,32,.04) 12%, rgba(4,20,32,.08) 48%, rgba(4,20,32,.72) 100%);
}

.service-story-frame.is-active {
  opacity: 1;
  transform: translateX(0) scale(1);
}

.service-story-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.025);
  transition: transform 2.2s cubic-bezier(.2,.8,.2,1);
}

.service-story-card.is-story-playing .service-story-frame.is-active img {
  transform: scale(1.095);
}

/* Override the former single-image hover rule for the story frames */
.signature-service-card.service-story-card:hover .service-story-frame img {
  filter: saturate(1.04) contrast(1.02);
}

.service-story-count {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 4;
  display: inline-flex;
  height: 31px;
  align-items: center;
  gap: 7px;
  padding: 0 12px;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 999px;
  color: #fff;
  background: rgba(4,20,32,.36);
  backdrop-filter: blur(12px);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.service-story-caption {
  position: absolute;
  left: 18px;
  right: 98px;
  bottom: 42px;
  z-index: 4;
  display: flex;
  min-height: 44px;
  flex-direction: column;
  justify-content: flex-end;
  color: #fff;
  transition: opacity .18s ease, transform .18s ease;
}

.service-story-caption.is-changing {
  opacity: 0;
  transform: translateY(5px);
}

.service-story-caption small {
  margin-bottom: 3px;
  color: rgba(255,255,255,.76);
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.service-story-caption b {
  font-size: 14px;
  line-height: 1.2;
  letter-spacing: -.01em;
}

.service-story-progress {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 16px;
  z-index: 5;
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 7px;
}

.service-story-progress > span {
  position: relative;
  height: 3px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255,255,255,.32);
}

.service-story-progress > span i {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: #fff;
  transform: scaleX(0);
  transform-origin: left;
}

.service-story-progress > span.is-complete i {
  transform: scaleX(1);
}

.service-story-progress > span.is-active i {
  animation: serviceStoryProgress 1s linear forwards;
}

.service-story-progress > span:first-child.is-active i {
  animation-duration: .85s;
}

.service-story-card:not(.is-story-playing) .service-story-progress > span:first-child.is-active i {
  animation: none;
  transform: scaleX(.26);
}

@keyframes serviceStoryProgress {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

/* Styled service-name signature */
.signature-service-name {
  position: relative;
  display: flex;
  min-width: 0;
  flex: 1;
  flex-direction: column;
}

.signature-service-name > small {
  margin-bottom: 5px;
  color: var(--tone);
  font-size: 8px;
  font-weight: 950;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.signature-service-name > strong {
  position: relative;
  display: inline-block;
  width: fit-content;
  max-width: 100%;
  color: #0b2940 !important;
  font-size: clamp(22px,2vw,27px) !important;
  line-height: 1.05 !important;
  letter-spacing: -.035em !important;
}

.signature-title-line {
  position: relative;
  display: block;
  width: 48px;
  height: 4px;
  margin-top: 10px;
  overflow: hidden;
  border-radius: 99px;
  background: var(--tone-soft);
}

.signature-title-line::before {
  position: absolute;
  inset: 0;
  content: "";
  border-radius: inherit;
  background: linear-gradient(90deg,var(--tone),color-mix(in srgb,var(--tone) 38%,white));
  transform: scaleX(.42);
  transform-origin: left;
  transition: transform .52s cubic-bezier(.2,.8,.2,1);
}

.service-story-card:hover .signature-title-line::before,
.service-story-card:focus-within .signature-title-line::before {
  transform: scaleX(1);
}

.service-story-card:hover .signature-service-name > strong {
  color: #071f31 !important;
}

@media (max-width: 650px) {
  .service-story-caption {
    right: 86px;
  }

  .service-story-count {
    padding: 0 10px;
  }

  .signature-service-name > strong {
    font-size: 23px !important;
  }
}

@media (hover: none) {
  .service-story-count {
    display: none;
  }

  .service-story-progress > span:first-child.is-active i {
    transform: scaleX(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  .service-story-frame,
  .service-story-frame img,
  .service-story-caption,
  .signature-title-line::before {
    transition: none !important;
    animation: none !important;
  }
}



/* Minimal cleaner story cards */
.signature-card-number,
.service-story-count,
.signature-service-name>small,
.service-story-caption small{
    display:none !important;
}
.service-story-caption{
    right:20px;
    bottom:20px;
    min-height:auto;
}
.service-story-caption b{
    font-size:15px;
    font-weight:800;
}
.signature-service-name{
    padding-top:2px;
}


/* Unique per-service story taglines */
.service-story-caption b{
  display:inline-block;
  max-width:100%;
  color:#fff;
  font-size:15px;
  font-weight:850;
  line-height:1.25;
  letter-spacing:-.01em;
  text-shadow:0 2px 14px rgba(0,0,0,.38);
}
.service-story-card:hover .service-story-caption b{
  transform:translateY(-1px);
}

/* Information and legal pages */
.legal-content-card{max-width:980px;margin:0 auto;padding:clamp(28px,5vw,58px)}
.legal-section+ .legal-section{margin-top:34px;padding-top:30px;border-top:1px solid rgba(15,54,74,.11)}
.legal-section h2{margin:0 0 12px;color:#0b2940;font-size:clamp(22px,3vw,31px)}
.legal-section p{margin:0;color:#526979;font-size:16px;line-height:1.85}
