/* ============================================================
   PureSpace360 — Shared Stylesheet
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

.ps {
  font-family: 'Nunito', sans-serif;
  color: #1a0a4e;
  background: #fff;
  zoom: 1.1;
}

/* ── NAV ── */
.ps-nav {
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 40px; height: 68px; background: #fff;
  border-bottom: 1px solid #f0ebfa;
  position: sticky; top: 0; z-index: 100;
}
.ps-logo { display: flex; align-items: center; gap: 9px; cursor: pointer; }
.ps-logo-mark {
  width: 34px; height: 34px;
  display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr 1fr; gap: 2px;
}
.lm1 { background:#f0a0c0; border-radius:2px 8px 2px 2px; }
.lm2 { background:#e879a0; border-radius:8px 8px 8px 2px; }
.lm3 { background:#c060e0; border-radius:2px; }
.lm4 { background:#9040d0; border-radius:2px 2px 8px 2px; }
.lm5 { background:#7b3fc4; border-radius:2px; grid-column:1; }
.ps-logo-name { font-size:17px; font-weight:800; color:#1a0a4e; line-height:1.1; }
.ps-logo-tag  { font-size:10px; color:#a855f7; font-weight:600; }
.ps-nav-links { display:flex; gap:22px; }
.ps-nav-links a { font-size:14px; font-weight:600; color:#1a0a4e; text-decoration:none; opacity:0.7; }
.ps-nav-links a:hover, .ps-nav-links a.active { opacity:1; color:#a855f7; }
.ps-nav-right { display:flex; align-items:center; gap:10px; }
.ps-nav-phone { font-size:13px; font-weight:700; color:#1a0a4e; margin-right:6px; }
.ps-nav-phone i { color:#a855f7; margin-right:4px; }
.ps-btn-nav-outline {
  background:transparent; color:#1a0a4e;
  font-family:'Nunito',sans-serif; font-size:13px; font-weight:700;
  padding:9px 18px; border-radius:50px; border:2px solid #1a0a4e;
  cursor:pointer; text-decoration:none; display:inline-block;
}
.ps-btn-nav-outline:hover { background:#f3f0fa; }
.ps-btn-nav-solid {
  background:#1a0a4e; color:#fff;
  font-family:'Nunito',sans-serif; font-size:13px; font-weight:700;
  padding:10px 20px; border-radius:50px; border:none;
  cursor:pointer; text-decoration:none; display:inline-block;
}
.ps-btn-nav-solid:hover { background:#2d1a6e; }

/* ── HERO ── */
.ps-hero {
  background: linear-gradient(110deg, #1a0a4e 45%, #4a1a8a 75%, #7b3fc4 100%);
  min-height:480px; display:flex; align-items:center; padding:80px 48px;
}
.ps-hero-content { max-width:560px; flex-shrink:0; }
.ps-hero-image { flex:1; max-width:900px; flex-shrink:0; align-self:center; }
.ps-hero-eyebrow {
  font-size:16px; font-weight:700; letter-spacing:0.15em; text-transform:uppercase;
  color:#e879a0; margin-bottom:20px;
}
.ps-hero-h1 { font-size:56px; font-weight:800; color:#fff; line-height:1.1; margin-bottom:20px; }
.ps-hero-h1 span {
  background:linear-gradient(90deg,#e879a0,#c084fc);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.ps-hero-sub {
  font-size:18px; color:rgba(255,255,255,0.65); line-height:1.75;
  margin-bottom:44px; max-width:480px;
}
.ps-hero-btns { display:flex; gap:14px; flex-wrap:wrap; align-items:center; }
.ps-btn-book {
  background:#fff; color:#1a0a4e;
  font-family:'Nunito',sans-serif; font-size:17px; font-weight:800;
  padding:18px 36px; border-radius:50px; border:none; cursor:pointer;
  display:inline-flex; align-items:center; gap:8px; text-decoration:none;
}
.ps-btn-book i { font-size:18px; color:#a855f7; }
.ps-btn-book:hover { background:#f3f0fa; }
.ps-btn-price {
  background:transparent; color:#fff;
  font-family:'Nunito',sans-serif; font-size:17px; font-weight:700;
  padding:17px 34px; border-radius:50px; border:2px solid rgba(255,255,255,0.5);
  cursor:pointer; display:inline-flex; align-items:center; gap:8px; text-decoration:none;
}
.ps-btn-price i { font-size:18px; color:#e879a0; }
.ps-btn-price:hover { border-color:rgba(255,255,255,0.8); }
.ps-hero-phone { font-size:15px; color:rgba(255,255,255,0.5); margin-top:22px; font-weight:600; }
.ps-hero-phone i { color:#e879a0; margin-right:5px; }

/* ── TRUST BAR ── */
.ps-trust {
  display:flex; align-items:center; justify-content:center; flex-wrap:wrap;
  gap:32px; padding:18px 40px;
  background:#f8f5ff; border-bottom:1px solid #ede8f7;
}
.ps-trust-item { display:flex; align-items:center; gap:8px; font-size:13px; font-weight:600; color:#1a0a4e; }
.ps-trust-item i { font-size:17px; color:#a855f7; }

/* ── FEATURES ── */
.ps-features { padding:88px 40px; background:#fff; }
.ps-features h2 { font-size:34px; font-weight:800; color:#1a0a4e; text-align:center; margin-bottom:52px; }
.ps-feat-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:44px; max-width:1000px; margin:0 auto; }
.ps-feat { text-align:center; }
.ps-feat-icon {
  width:84px; height:84px; border-radius:50%; background:#f3e8fd;
  display:flex; align-items:center; justify-content:center; margin:0 auto 20px;
}
.ps-feat-icon i { font-size:36px; color:#a855f7; }
.ps-feat h3 { font-size:15px; font-weight:800; letter-spacing:0.08em; text-transform:uppercase; color:#1a0a4e; margin-bottom:12px; }
.ps-feat p  { font-size:16px; color:#666; line-height:1.75; }
.ps-feat-cta { text-align:center; margin-top:48px; }
.ps-btn-dark {
  background:#1a0a4e; color:#fff;
  font-family:'Nunito',sans-serif; font-size:15px; font-weight:700;
  padding:15px 34px; border-radius:50px; border:none; cursor:pointer;
  text-decoration:none; display:inline-block;
}
.ps-btn-dark:hover { background:#2d1a6e; }

/* ── SERVICES ── */
.ps-services { padding:88px 40px; background:#f8f5ff; }
.ps-services h2 { font-size:34px; font-weight:800; color:#1a0a4e; text-align:center; margin-bottom:10px; }
.ps-services-sub { text-align:center; font-size:17px; color:#777; margin-bottom:48px; }
.ps-svc-row { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; max-width:1000px; margin:0 auto; }
.ps-svc { background:#fff; border-radius:18px; border-top:4px solid #a855f7; padding:36px 28px; text-align:center; }
.ps-svc.s2 { border-top-color:#e879a0; }
.ps-svc.s3 { border-top-color:#7b3fc4; }
.ps-svc i  { font-size:38px; color:#a855f7; margin-bottom:16px; display:block; }
.ps-svc.s2 i { color:#e879a0; }
.ps-svc.s3 i { color:#7b3fc4; }
.ps-svc h3 { font-size:17px; font-weight:800; color:#1a0a4e; margin-bottom:10px; }
.ps-svc p  { font-size:15px; color:#666; line-height:1.7; margin-bottom:16px; }
.ps-svc a  { font-size:14px; font-weight:700; color:#a855f7; text-decoration:none; }
.ps-svc a:hover { text-decoration:underline; }

/* ── REVIEWS ── */
.ps-reviews { padding:72px 40px; background:#fff; }
.ps-reviews h2 { font-size:28px; font-weight:800; color:#1a0a4e; text-align:center; margin-bottom:8px; }
.ps-reviews-sub { text-align:center; font-size:15px; color:#777; margin-bottom:40px; }
.ps-rev-row { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; max-width:900px; margin:0 auto 28px; }
.ps-rev { border:1px solid #ede8f7; border-radius:14px; padding:22px; }
.ps-rev-stars { color:#f59e0b; font-size:15px; margin-bottom:10px; }
.ps-rev-text  { font-size:13px; color:#444; line-height:1.75; font-style:italic; margin-bottom:14px; }
.ps-rev-name  { font-size:13px; font-weight:800; color:#1a0a4e; }
.ps-rev-loc   { font-size:12px; color:#999; }
.ps-rev-more  { text-align:center; }
.ps-rev-more a { font-size:14px; font-weight:700; color:#a855f7; text-decoration:none; }
.ps-rev-more a:hover { text-decoration:underline; }

/* ── BOTTOM CTA ── */
.ps-bottom-cta {
  background:linear-gradient(135deg,#1a0a4e 0%,#3d1278 100%);
  padding:72px 40px; text-align:center;
}
.ps-bottom-cta h2 { font-size:32px; font-weight:800; color:#fff; margin-bottom:10px; }
.ps-bottom-cta p  { font-size:15px; color:rgba(255,255,255,0.6); margin-bottom:32px; }
.ps-cta-btns { display:flex; justify-content:center; gap:14px; flex-wrap:wrap; }
.ps-phone-line { font-size:14px; font-weight:700; color:rgba(255,255,255,0.5); margin-top:20px; }
.ps-phone-line i { color:#e879a0; margin-right:5px; }

/* ── FOOTER ── */
.ps-foot { background:#0f0630; padding:32px 40px; }
.ps-foot-inner { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:16px; margin-bottom:20px; }
.ps-foot-brand { font-size:15px; font-weight:800; color:#fff; }
.ps-foot-brand span { font-size:11px; color:rgba(255,255,255,0.3); display:block; margin-top:2px; font-weight:400; }
.ps-foot-links { display:flex; gap:24px; flex-wrap:wrap; }
.ps-foot-links a { font-size:13px; color:rgba(255,255,255,0.45); text-decoration:none; font-weight:500; }
.ps-foot-links a:hover { color:#c084fc; }
.ps-foot-bottom { border-top:1px solid rgba(255,255,255,0.08); padding-top:16px; font-size:12px; color:rgba(255,255,255,0.2); }

/* ── SHARED PILLS ── */
.pill-group { display:flex; gap:8px; flex-wrap:wrap; }
.pill {
  font-family:'Nunito',sans-serif; font-size:13px; font-weight:700;
  padding:8px 16px; border-radius:50px; border:2px solid #e8e0f7;
  background:#fff; color:#555; cursor:pointer; transition:all 0.15s;
}
.pill.active { background:#1a0a4e; border-color:#1a0a4e; color:#fff; }

/* ── SHARED FORM ── */
.form-card { background:#fff; border-radius:18px; padding:28px 24px; }
.form-section { margin-bottom:24px; }
.form-section:last-child { margin-bottom:0; }
.form-section-title {
  font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:0.1em;
  color:#a855f7; margin-bottom:14px; padding-bottom:8px; border-bottom:1px solid #f0ebfa;
}
.field { margin-bottom:14px; }
.field:last-child { margin-bottom:0; }
.field label { display:block; font-size:13px; font-weight:700; color:#1a0a4e; margin-bottom:6px; }
.field input[type=text],
.field input[type=email],
.field input[type=tel],
.field input[type=number],
.field select,
.field textarea {
  width:100%; padding:10px 12px; border-radius:10px; border:1.5px solid #e8e0f7;
  font-family:'Nunito',sans-serif; font-size:14px; font-weight:600; color:#1a0a4e;
  background:#fff; appearance:none; -webkit-appearance:none;
}
.field textarea { resize:vertical; min-height:80px; }
.field input:focus, .field select:focus, .field textarea:focus { outline:none; border-color:#a855f7; }
.field-hint { font-size:11px; color:#aaa; margin-top:4px; font-weight:600; }
.two-col-fields { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.field-error { border-color:#f87171 !important; }
.err-msg { font-size:11px; color:#dc2626; font-weight:700; margin-top:4px; display:none; }
.err-msg.show { display:block; }

/* ── SQFT SLIDER ── */
.sqft-slider { width:100%; margin:8px 0 4px; accent-color:#a855f7; }
.sqft-display { font-size:20px; font-weight:800; color:#7b3fc4; }

/* ── ADDON GRID ── */
.addon-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.addon-field { display:flex; flex-direction:column; gap:4px; }
.addon-field label { font-size:12px; font-weight:700; color:#444; }
.addon-field input {
  padding:8px 10px; border-radius:8px; border:1.5px solid #e8e0f7;
  font-family:'Nunito',sans-serif; font-size:13px; font-weight:700; color:#1a0a4e; width:100%;
}

/* ── PAGE HERO (calculator / services / booking) ── */
.page-hero {
  background:linear-gradient(110deg, #1a0a4e 45%, #4a1a8a 75%, #7b3fc4 100%);
  padding:52px 48px; text-align:center;
}
.page-hero-eyebrow { font-size:13px; font-weight:800; letter-spacing:0.15em; text-transform:uppercase; color:#e879a0; margin-bottom:14px; }
.page-hero h1 { font-size:48px; font-weight:800; color:#fff; line-height:1.15; margin-bottom:14px; }
.page-hero p  { font-size:17px; color:rgba(255,255,255,0.65); max-width:520px; margin:0 auto; line-height:1.8; }

/* ── BREADCRUMB ── */
.breadcrumb { padding:14px 40px; font-size:12px; color:#999; font-weight:600; background:#f8f5ff; border-bottom:1px solid #ede8f7; }
.breadcrumb a { color:#a855f7; text-decoration:none; cursor:pointer; }

/* ── 360 PROMISE ── */
.ps-promise { background:#fff; padding:88px 40px; }
.ps-promise-inner { max-width:1000px; margin:0 auto; }
.ps-promise-eyebrow {
  font-size:13px; font-weight:800; letter-spacing:0.15em; text-transform:uppercase;
  color:#e879a0; margin-bottom:12px;
}
.ps-promise-heading { font-size:34px; font-weight:800; color:#1a0a4e; margin-bottom:10px; }
.ps-promise-sub { font-size:17px; color:#777; margin-bottom:44px; }
.ps-promise-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-bottom:44px;
}
.ps-promise-card {
  background:#fff; border-radius:18px;
  border:1px solid #ede8f7; border-top:4px solid #a855f7;
  padding:36px 28px;
}
.ps-promise-card:nth-child(2) { border-top-color:#e879a0; }
.ps-promise-card:nth-child(3) { border-top-color:#7b3fc4; }
.ps-promise-icon { font-size:32px; color:#a855f7; margin-bottom:16px; }
.ps-promise-card:nth-child(2) .ps-promise-icon { color:#e879a0; }
.ps-promise-card:nth-child(3) .ps-promise-icon { color:#7b3fc4; }
.ps-promise-card h3 { font-size:17px; font-weight:800; color:#1a0a4e; margin-bottom:10px; }
.ps-promise-card p  { font-size:15px; color:#666; line-height:1.75; margin:0; }
.ps-promise-cta { display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.ps-promise-link {
  font-size:15px; font-weight:700; color:#a855f7; text-decoration:none;
  display:inline-flex; align-items:center; gap:5px;
}
.ps-promise-link i { font-size:14px; }
.ps-promise-link:hover { text-decoration:underline; }

/* ── HAMBURGER MENU ── */
.ps-hamburger {
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:36px; height:36px; background:none; border:none; cursor:pointer; padding:4px;
}
.ps-hamburger span {
  display:block; height:2.5px; background:#1a0a4e; border-radius:2px; transition:all 0.25s;
}
.ps-mobile-menu {
  display:none; flex-direction:column; background:#fff;
  border-bottom:1px solid #f0ebfa; padding:16px 20px 20px;
}
.ps-mobile-menu a {
  font-size:15px; font-weight:700; color:#1a0a4e; text-decoration:none;
  padding:12px 0; border-bottom:1px solid #f5f0fc;
}
.ps-mobile-menu a:last-child { border-bottom:none; }
.ps-mobile-menu a.active { color:#a855f7; }
.ps-mobile-menu-btns {
  display:flex; flex-direction:column; gap:10px; margin-top:16px;
}
.ps-mobile-menu-btns a {
  border:none; text-align:center; padding:13px; border-radius:50px; font-size:14px; font-weight:800;
}
.ps-mobile-menu-btns .mbtn-solid { background:#1a0a4e; color:#fff; }
.ps-mobile-menu-btns .mbtn-outline { background:transparent; color:#1a0a4e; border:2px solid #1a0a4e; }

/* ── RESPONSIVE ── */
@media (max-width:768px) {
  .ps { zoom:1; }

  /* Nav */
  .ps-nav { padding:0 20px; height:60px; }
  .ps-nav-links { display:none; }
  .ps-nav-phone { display:none; }
  .ps-nav-right { display:none; }
  .ps-hamburger { display:flex; }

  /* Hero */
  .ps-hero { padding:48px 24px; flex-direction:column; min-height:auto; text-align:center; }
  .ps-hero-content { max-width:100%; }
  .ps-hero-h1 { font-size:36px; }
  .ps-hero-eyebrow { font-size:13px; }
  .ps-hero-sub { font-size:15px; max-width:100%; margin-bottom:28px; }
  .ps-hero-btns { justify-content:center; flex-direction:column; align-items:center; }
  .ps-btn-book, .ps-btn-price { font-size:15px; padding:14px 28px; width:100%; justify-content:center; }
  .ps-hero-phone { font-size:13px; }
  .ps-hero-image { display:none; }

  /* Trust bar */
  .ps-trust { padding:14px 20px; gap:12px; justify-content:flex-start; overflow-x:auto; flex-wrap:nowrap; }
  .ps-trust-item { font-size:12px; flex-shrink:0; }

  /* Features */
  .ps-features { padding:48px 24px; }
  .ps-features h2 { font-size:24px; margin-bottom:36px; }
  .ps-feat-grid { grid-template-columns:1fr; gap:32px; }
  .ps-feat p { font-size:14px; }

  /* Services */
  .ps-services { padding:48px 24px; }
  .ps-services h2 { font-size:24px; }
  .ps-services-sub { font-size:15px; }
  .ps-svc-row { grid-template-columns:1fr; }

  /* Promise */
  .ps-promise { padding:48px 24px; }
  .ps-promise-heading { font-size:26px; }
  .ps-promise-grid { grid-template-columns:1fr; }

  /* Bottom CTA */
  .ps-bottom-cta { padding:48px 24px; }
  .ps-bottom-cta h2 { font-size:24px; }
  .ps-cta-btns { flex-direction:column; align-items:center; }
  .ps-cta-btns a { width:100%; justify-content:center; }

  /* Footer */
  .ps-foot { padding:32px 24px; }
  .ps-foot-inner { flex-direction:column; gap:20px; }
  .ps-foot-links { gap:16px; }

  /* Page hero */
  .page-hero { padding:36px 24px; }
  .page-hero h1 { font-size:30px; }
  .page-hero p { font-size:15px; }

  /* Breadcrumb */
  .breadcrumb { padding:12px 24px; }

  /* Forms */
  .two-col-fields { grid-template-columns:1fr; }

  /* Reviews */
  .ps-rev-row { grid-template-columns:1fr; }
}
