:root{
  --brand:#2f80ed;
  --brand-ink:#0f3a7a;
  --ink:#0f172a;
  --muted:#6b7280;
  --card:#ffffff;
  --tile:#edf4fa;
  --soft:#ffffff;
  --cream: linear-gradient(135deg, #0E98D6 0%, #FCCB56 100%);
  --shadow:0 8px 22px rgba(26,39,68,.06);
  --footer-grad: linear-gradient(90deg, #0E98D6 0%, #7FC8F8 100%);
  --footer-ink:#0f172a;
  --footer-muted:#6b7280;
}

/* ---------- HERO ---------- */
.service-hero{
  position:relative;
  margin:18px auto;
  max-width:1400px;
  border-radius:12px;
  height:350px;
  overflow:hidden;
  box-shadow:var(--shadow);
}
.service-hero__media{ position:relative; height:100%; overflow:hidden; }
.service-hero__media img{ width:100%; height:100%; object-fit:cover; display:block; }
.service-hero__overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 50%);
}
.service-hero__top-right{
  position:absolute; right:75px; top:220px;
  display:inline; gap:20px;
}
.service-hero__title{
  color:#fff; font-weight:800; font-size:clamp(16px,3vw,22px);
  margin:0; text-shadow:0 2px 8px rgba(0,0,0,.35); padding-bottom:15px;
}

/* ---------- BUTTONS ---------- */
.btn-book{
  display:inline-flex; align-items:center; justify-content:center;
  text-decoration:none; font-weight:800; border-radius:10px;
  padding:10px 70px; border:2px solid transparent;
  transition:transform .15s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
}
.btn-book--ghost{ background:#fff; color:var(--brand); border-color:#fff; box-shadow:0 6px 14px rgba(249,252,255,.18); }
.btn-book--ghost:hover{ background:#f6faff; color:var(--brand); border-color:#e3efff; transform:translateY(-1px); }
.btn-book--large{ padding:12px 60px; font-size:16px; }

/* ---------- LAYOUT ---------- */
.service-wrap{ margin-top:18px; }
.service-grid{
  display:grid; grid-template-columns:1.35fr 0.65fr; gap:18px;
}

/* ===== Booking Modal ===== */
.bm-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.35);
  display:flex; align-items:center; justify-content:center;
  padding:24px; z-index:2000;
}
.bm-close{
  position:fixed; top:14px; left:14px;
  background:transparent; border:none; color:#1e3a8a; font-size:28px; line-height:1;
  cursor:pointer; font-weight:700;
}
.bm-modal{
  width:100%; max-width:520px; background:#fff; border-radius:16px;
  box-shadow:0 18px 38px rgba(16,24,40,.18); overflow:hidden;
}

/* header bar (blue) with white Continue button on right */
.bm-header{
   color:#fff; padding:14px; display:flex; align-items:center; justify-content:space-between;
}
.bm-header-left{ display:flex; flex-direction:column; gap:4px; }
.bm-service-name{ font-weight:800; }
.bm-service-price{ font-weight:800; opacity:.95; }
.bm-continue{
  background:#fff; color:#2f80ed; border:2px solid #fff;
  border-radius:10px; padding:8px 14px; font-weight:800;
}
.bm-continue:disabled{ opacity:.6; pointer-events:none; }

.bm-body{ padding:16px; }

/* fields */
.bm-field{ position:relative; margin-bottom:12px; }
.bm-input{
  width:100%; background:#f1f5fb; border:1px solid #dbe6f5; border-radius:10px;
  padding:12px 40px 12px 14px; outline:none;
}
.bm-ico{ position:absolute; right:12px; top:50%; transform:translateY(-50%); color:#0E98D6; }

/* terms */
.bm-terms-wrap{ margin-top:16px; }
.bm-terms-title{ font-size:12px; color:#6b7280; font-weight:700; margin-bottom:6px; }
.bm-terms-box{
  background:#eaf2fb; border:1px solid #dbe6f5; border-radius:8px; padding:12px; color:#445;
  max-height:120px; overflow:auto;
}

/* review */
.bm-review{ display:flex; flex-direction:column; gap:16px; margin-top:8px; }
.bm-review-row{ display:flex; align-items:center; gap:10px; }
.bm-dot{ width:10px; height:10px; background:#0E98D6; border-radius:50%; }
.bm-review-col{ flex:1; }
.bm-review-label{ font-size:12px; color:#6b7280; font-weight:700; }
.bm-review-value{ font-weight:800; color:#0f172a; }
.bm-edit{
  border:none; background:#eaf2fb; color:#0E98D6; width:30px; height:30px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
}
.bm-review-block{ background:#f7fbff; border:1px solid #e6eef8; border-radius:10px; padding:12px; }
.bm-review-line{ font-weight:700; color:#1f2937; }
.bm-review-line + .bm-review-line{ margin-top:6px; }

/* pay buttons */
.bm-pay-title{ margin:16px 0 10px; font-weight:800; color:#0f172a; }
.bm-pay{
  border:none; border-radius:10px; padding:10px 14px; font-weight:800;
}
.btn-cash{ background:#2f80ed; color:#fff; }
.btn-paypal{ background:linear-gradient(135deg,#0E98D6 0%, #FCCB56 100%); color:#0f172a; }


@media (max-width:900px){ .service-grid{ grid-template-columns:1fr; } }

/* ---------- CARDS ---------- */
.card{ background:var(--card); border-radius:12px; box-shadow:var(--shadow); }
.service-card{ padding:16px; }
.card__header{ margin-bottom:10px; }

.tag{
  display:inline-block; background:#0E98D6; color:#fff;
  font-weight:800; padding:10px 12px; border-radius:8px;
  width:100%; height:45px; text-align:center;
}

/* description inner box */
.desc-box{ max-width:100%; background:var(--tile); border-radius:10px; padding:14px 16px; }
.desc-box__text{ margin:0; color:#374151; line-height:1.6; white-space:pre-line; }

/* price card (desktop/tablet) */
.service-card--price{
  height:220px; width:270px !important;
  display:flex; align-items:center; justify-content:center;
  background:var(--cream) !important; border-radius:30px; box-shadow:var(--shadow);
}
.price-box{ text-align:center; padding:10px 12px; }
.price-box__value{
  font-weight:900; font-size:24px; color:var(--brand-ink);
  margin:0 0 12px 0; background:#fff; border-radius:12px; padding:8px 12px;
}

/* make the description side taller ONLY on desktop */
@media (min-width:901px){
  .service-grid .service-card:not(.service-card--price){ min-height:560px; }
}


:root{
    --brand:#2f80ed; --ink:#0f172a; --muted:#6b7280;
    --card:#ffffff; --tile:#edf4fa; --row:#e9f0f8;
  }

  .wrap { max-width: 1200px; margin: 24px auto; padding: 0 12px; }
  .card { background:var(--card); border-radius:16px; padding:24px; box-shadow:0 8px 22px rgba(26,39,68,.06); }

  .topbar{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
  .back-link{ color:#64748b; text-decoration:none; display:inline-flex; align-items:center; gap:6px; font-weight:600; }
  .title{ font-weight:700; color:var(--ink); text-align:center; flex:1; }
  .btn-create{
    background:var(--brand); color:#fff; font-weight:700; border:none;
    border-radius:10px; padding:10px 14px; text-decoration:none; display:inline-flex; align-items:center; gap:8px;
  }
  .btn-create i{ font-size:18px; }

  .searchbar{ margin:18px auto 14px; max-width:520px; position:relative; }
  .searchbar input{
    width:100%; border:none; outline:none; background:var(--tile);
    padding:12px 40px 12px 14px; border-radius:12px; font-size:16px;
  }
  .searchbar button{
    position:absolute; right:10px; top:50%; transform:translateY(-50%);
    border:none; background:transparent; color:#94a3b8; font-size:18px;
  }

  .list{ display:flex; flex-direction:column; gap:14px; margin-top:10px; }
  .row-item{
    display:flex; align-items:center; justify-content:space-between;
    background:#e8f0fb; border-radius:10px; padding:14px 16px; text-decoration:none;
    color:var(--ink);
  }
  .row-item .name{ font-weight:700; }
  .row-item .view{ display:flex; align-items:center; gap:8px; color:#64748b; }
  .row-item .view i{ font-size:18px; }
  .row-item .view small{ display:block; font-size:11px; margin-top:-2px; }

  .empty{ text-align:center; color:#94a3b8; padding:24px 0; }

  @media (max-width:640px){
    .card{ padding:18px; }
    .row-item{ padding:12px 14px; }
  }

/* ---------- MOBILE RULES ---------- */
@media (max-width:900px){
  /* hide footer on phones for this page */
  .site-footer{ display:none !important; }

  .service-grid{ grid-template-columns:1fr !important; gap:14px !important; }
  .service-grid .service-card:not(.service-card--price){ min-height:420px !important; }
  .desc-box{ margin-left:auto; margin-right:auto; }

  /* fixed sticky price bar */
  .service-wrap{ padding-bottom:90px !important; }
  .service-card--price{
    position:fixed; left:12px; right:12px;
    bottom:calc(env(safe-area-inset-bottom, 0) + 12px);
    width:auto !important; height:64px !important;
    border-radius:14px !important; margin:0 !important;
    z-index:1000; box-shadow:0 -6px 16px rgba(0,0,0,.08);
  }
  .price-box{ width:100%; display:flex; align-items:center; justify-content:center; gap:12px; padding:0 14px !important; }
  .price-box__value{ margin:0 !important; font-size:16px !important; padding:6px 10px !important; }
  .btn-book{ padding:7px 35px !important; font-size:15px !important; }

  /* compact hero */
  .service-hero{ height:190px !important; border-radius:10px; }
  .service-hero__top-right{ right:16px !important; top:auto !important; bottom:18px !important; }
  .service-hero__title{ font-size:18px !important; padding-bottom:8px !important; }

  /* tag size */
  .tag{
    width:auto !important; min-width:100%;
    height:44px !important; padding:10px 14px !important;
    display:inline-flex; align-items:center; justify-content:center; border-radius:8px !important; font-size:18px;
  }

  /* related grid one per row */
  .related__grid{ grid-template-columns:1fr !important; gap:10px !important; }
}

/* ---------- RELATED ---------- */
.related{ margin:40px 0; padding-bottom: 70px; padding-top: 70px; }
.related__title{
  text-align:center; font-weight:800; color:#475569;
  margin:10px 0 8px; font-size:clamp(16px,2.8vw,20px);
}
.related__empty{ text-align:center; color:var(--muted); font-size:15px; padding:30px 0; }

.related__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
@media (max-width:900px){ .related__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:600px){ .related__grid{ grid-template-columns:1fr; } }

.rel-card{
  background:var(--soft); border-radius:10px; padding:10px 12px;
  box-shadow:0 4px 10px rgba(26,39,68,.08); display:flex; flex-direction:column; gap:8px;
  text-decoration:none; color:var(--ink);
}
.rel-card__thumb{ width:100%; height:120px; border-radius:8px; overflow:hidden; }
.rel-card__thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.rel-card__name{ font-weight:800; font-size:14px; }
.rel-card__snippet{ font-size:12px; color:var(--muted); line-height:1.4; height:38px; overflow:hidden; }

/* ---------- MAP STRIP (full width) ---------- */
.map-cta{
  width:100vw; position:relative; left:50%; right:50%;
  margin-left:-50vw; margin-right:-50vw;
  background:#f1f7ff; padding:24px 0 18px; margin-top:18px;
}
.map-cta__inner{ max-width:1280px; margin:0 auto; padding:0 16px; text-align:center; }
.map-cta__inner img{ max-width:1000px; width:100%; height:auto; display:inline-block; border-radius:12px; }
.map-cta__caption{ margin-top:10px; color:var(--footer-ink); font-weight:600; }

/* ---------- DESKTOP FOOTER BAR ---------- */
.site-footer{ width:100%; }
.site-footer__bar{ max-width:1280px; margin:1px auto 4px; padding:0 16px; }
.site-footer__grid{
  background:var(--footer-grad); color:#fff; border-radius:14px; padding:22px 24px;
  display:grid; grid-template-columns:1fr 1fr 1fr; gap:16px;
}
.footer-col{ display:flex; flex-direction:column; gap:8px; }
.footer-title{ font-weight:700; }
.footer-text{ color:#e6f3ff; }
.footer-link{ color:#e6f3ff; text-decoration:none; }
.footer-link:hover{ text-decoration:underline; }
.footer-social{ display:flex; gap:12px; margin-top:8px; }
.soc{
  width:34px; height:34px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:50%; background:#eaf2fb; color:#0E98D6; text-decoration:none;
}
.soc:hover{ filter:brightness(.96); }

@media (max-width:900px){
  .site-footer__grid{ grid-template-columns:1fr; text-align:left; }
  .text-md-end{ text-align:left !important; }
}
/* hide the desktop footer on phones if used on this page */
@media (max-width:768px){ .site-footer{ display:none; } }
