/* ===== P4 Cleaning | Boutique Luxury Styles ===== */
:root{
  --ink:#223043;
  --slate:#2F4A6D;     /* deep slate blue */
  --teal:#4FA3A3;      /* muted teal */
  --bg:#F7F9FB;        /* soft white */
  --line:#DCE3E8;      /* cool gray */
  --card:#ffffff;

  --shadow: 0 18px 60px rgba(25, 40, 60, .12);
  --shadow2: 0 10px 30px rgba(25, 40, 60, .10);

  --radius: 22px;
  --radius2: 16px;
}
/* ===== Type System (Boutique / Editorial) ===== */
body{
  letter-spacing: .01em;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1,h2,h3{
  font-family: ui-serif, Georgia, "Times New Roman", serif;
  letter-spacing: .02em;
}

.kicker{
  letter-spacing: .01em;
}

.sub, p{
  letter-spacing: .005em;
}

.menu a{
  letter-spacing: .06em; /* cleaner nav look */
  text-transform: uppercase;
  font-size: 12px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  color:var(--ink);
  background:
    radial-gradient(900px 420px at 25% -10%, rgba(79,163,163,.18), transparent 60%),
    radial-gradient(900px 420px at 85% 20%, rgba(47,74,109,.12), transparent 55%),
    linear-gradient(#ffffff, var(--bg));
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, "Helvetica Neue", Helvetica, sans-serif;
}

.wrap{max-width:1140px;margin:0 auto;padding:0 18px}
.section{padding:84px 0}
.section.tight{padding:52px 0}
hr.divider{border:0;border-top:1px solid rgba(220,227,232,.9);margin:0}

/* ===== Header / Nav ===== */
header{
  position:sticky; top:0; z-index:80;
  background:rgba(255,255,255,.82);
  backdrop-filter: blur(14px);
  border-bottom:1px solid rgba(220,227,232,.8);
}
.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:14px 0;
  gap:18px;
}
.brand{
  display:flex; gap:12px; align-items:center;
  text-decoration:none;
}
.brand img{height:38px;width:auto;display:block}
.brand .name{
  font-family: ui-serif, Georgia, "Times New Roman", serif;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:var(--slate);
  font-weight:600;
  font-size:12px;
  opacity:.9;
}
.menu{display:flex; gap:22px; align-items:center; flex-wrap:wrap}
.menu a{
  text-decoration:none;
  color:var(--ink);
  font-weight:700;
  font-size:13px;
  letter-spacing:.04em;
  opacity:.85;
}
.menu a:hover{opacity:1;color:var(--slate)}
.cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid rgba(79,163,163,.55);
  background: linear-gradient(180deg, rgba(79,163,163,.18), rgba(79,163,163,.06));
  color:var(--slate);
  font-weight:900;
  box-shadow: 0 10px 24px rgba(79,163,163,.10);
}
.cta:hover{
  border-color: rgba(79,163,163,.85);
  box-shadow: 0 16px 40px rgba(79,163,163,.18);
}

/* ===== Hero ===== */
.hero{
  position:relative;
  padding:92px 0 66px;
}
.hero::before{
  content:"";
  position:absolute;
  inset:-120px 0 auto 0;
  height:520px;
  background:
    radial-gradient(1200px 420px at 50% 0%, rgba(79,163,163,.16), transparent 60%),
    radial-gradient(1100px 420px at 70% 30%, rgba(47,74,109,.10), transparent 55%);
  pointer-events:none;
}
.hero-grid{
  position:relative;
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap:24px;
  align-items:center;
}
@media (max-width: 920px){
  .hero-grid{grid-template-columns:1fr}
}

.hero-card{
  background:rgba(255,255,255,.72);
  border:1px solid rgba(220,227,232,.85);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding:38px 30px;
  overflow:hidden;
  position:relative;
}
.hero-card::after{
  /* subtle “swoosh” echo to make it feel custom */
  content:"";
  position:absolute;
  right:-140px;
  top:-120px;
  width:360px;
  height:360px;
  background: radial-gradient(circle at 30% 30%, rgba(79,163,163,.22), transparent 60%);
  transform: rotate(10deg);
  pointer-events:none;
}

.hero-logo img{
  width:min(560px, 100%);
  height:auto;
  display:block;
  margin: 0 0 10px;
}

.kicker{
  font-family: ui-serif, Georgia, "Times New Roman", serif;
  font-size:40px;
  line-height:1.18;
  margin:10px 0 10px;
  color:var(--slate);
}
.sub{
  margin:0;
  color:#516479;
  font-size:16px;
  line-height:1.8;
  max-width:640px;
}

.btn-row{display:flex; gap:12px; flex-wrap:wrap; margin-top:18px}
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:12px 16px;
  border-radius:14px;
  text-decoration:none;
  font-weight:900;
  letter-spacing:.02em;
}
.btn.primary{
  background: var(--teal);
  color: #fff;
  box-shadow: 0 18px 45px rgba(79,163,163,.28);
}
.btn.primary:hover{filter:brightness(.97)}
.btn.ghost{
  background: rgba(255,255,255,.9);
  border: 1px solid rgba(220,227,232,.95);
  color: var(--slate);
}
.btn.ghost:hover{border-color:#bfcbd6}

/* Right hero panel */
.hero-side{
  border-radius: var(--radius);
  border:1px solid rgba(220,227,232,.85);
  background:rgba(255,255,255,.64);
  box-shadow: var(--shadow2);
  padding:22px;
}
.hero-side h3{
  margin:0 0 10px;
  color:var(--slate);
  font-size:15px;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.bullets{
  display:grid;
  gap:10px;
}
.bullet{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:12px 12px;
  border-radius: 14px;
  background: rgba(247,249,251,.75);
  border: 1px solid rgba(220,227,232,.75);
}
.dot{
  width:10px;height:10px;border-radius:99px;
  margin-top:6px;
  background: var(--teal);
  box-shadow: 0 0 0 4px rgba(79,163,163,.12);
}
.bullet strong{display:block;color:#2d3f57}
.bullet span{display:block;color:#54677c;font-size:13px;line-height:1.6}

/* ===== Premium -Standards” band ===== */
.band{
  background: rgba(255,255,255,.62);
  border-top:1px solid rgba(220,227,232,.9);
  border-bottom:1px solid rgba(220,227,232,.9);
}
.band-grid{
  display:grid;
  grid-template-columns: repeat(3,1fr);
  gap:14px;
  padding:22px 0;
}
@media (max-width: 920px){ .band-grid{grid-template-columns:1fr} }
.band-item{
  border-radius: 18px;
  padding:16px 16px;
  border:1px solid rgba(220,227,232,.85);
  background: rgba(247,249,251,.85);
}
.band-item .title{
  font-weight:900;color:var(--slate);letter-spacing:.04em;
}
.band-item .desc{
  margin-top:6px;color:#55697e;font-size:13px;line-height:1.7;
}

/* ===== Cards / Content ===== */
.grid{display:grid;gap:16px}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
@media (max-width: 920px){
  .grid.cols-3, .grid.cols-2{grid-template-columns:1fr}
  .kicker{font-size:34px}
}
.card{
  background: rgba(255,255,255,.72);
  border:1px solid rgba(220,227,232,.85);
  border-radius: var(--radius2);
  padding:22px;
  box-shadow: var(--shadow2);
}
.card h2, .card h3{
  margin:0 0 8px;
  color:var(--slate);
}
.card p{margin:0;color:#53677b;line-height:1.8;font-size:15px}
.pill{
  display:inline-flex;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(79,163,163,.45);
  background:rgba(79,163,163,.09);
  color:var(--slate);
  font-weight:900;
  font-size:12px;
  letter-spacing:.06em;
  text-transform:uppercase;
}

/* ===== Map block ===== */
.map-wrap{
  border-radius: var(--radius2);
  overflow:hidden;
  border:1px solid rgba(220,227,232,.9);
  background:white;
  box-shadow: var(--shadow2);
}
.map-placeholder{
  height:380px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(900px 320px at 30% 20%, rgba(79,163,163,.18), transparent 55%),
    linear-gradient(180deg, #ffffff, #f1f5f9);
  color:#415469;
  text-align:center;
  padding:18px;
}
.small{font-size:13px;color:#617386;line-height:1.7}
/* ===== Contact form feature panel ===== */
.form-shell{
  position: relative;
  padding: 28px;
  border-radius: var(--radius);
  border: 1px solid rgba(220,227,232,.85);
  background: rgba(255,255,255,.70);
  box-shadow: var(--shadow);
  overflow: hidden;
}

.form-shell::before{
  content:"";
  position:absolute;
  inset:-60px -80px auto auto;
  width:520px;
  height:520px;
  background: radial-gradient(circle at 30% 30%, rgba(79,163,163,.28), transparent 62%);
  transform: rotate(10deg);
  pointer-events:none;
}

.form-shell::after{
  content:"";
  position:absolute;
  left:-140px;
  bottom:-220px;
  width:520px;
  height:520px;
  background: radial-gradient(circle at 40% 40%, rgba(47,74,109,.14), transparent 62%);
  pointer-events:none;
}

.form-head{
  text-align:center;
  margin-bottom: 16px;
}

.form-head .micro{
  display:inline-block;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
  color: var(--slate);
  font-size:12px;
  opacity:.9;
  padding-bottom:10px;
  position:relative;
}

.form-head .micro::after{
  content:"";
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  bottom:0;
  width:64px;
  height:3px;
  border-radius:99px;
  background: var(--teal);
  opacity:.9;
}

.form-grid-2{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:12px;
}
@media (max-width: 920px){
  .form-grid-2{grid-template-columns:1fr}
}

select:focus, input:focus, textarea:focus{
  outline:none;
  border-color: rgba(79,163,163,.70);
  box-shadow: 0 0 0 4px rgba(79,163,163,.14);
}

button{
  background: var(--teal);
}


/* Slightly larger input fields */
input,
select,
textarea {
  padding: 10px 12px;   /* more interior space */
  font-size: 15px;
}

/* Make textarea noticeably larger */
textarea {
  min-height: 150px;   /* increase from whatever it is now */
}

/* Give 2-column rows more space */
.form-grid-2 {
  gap: 22px;  /* increase horizontal spacing */
}
form {
  display: grid;
  gap: 18px;
}

.form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  align-items: start;
}

label {
  display: block;
  margin-bottom: 6px;
  font-weight: 700;
  font-size: 13px;
}

input,
select {
  height: 48px;
  padding: 10px 12px;
  font-size: 15px;
}

textarea {
  min-height: 180px;
  padding: 12px;
  font-size: 15px;
}/* ===== FAQ ===== */
.faq{display:grid;gap:10px}
details{
  border:1px solid rgba(220,227,232,.9);
  border-radius: 16px;
  background: rgba(255,255,255,.70);
  padding:14px 14px;
  box-shadow: 0 10px 26px rgba(25, 40, 60, .06);
}

summary{
  cursor:pointer;
  font-weight:900;
  color:var(--slate);
}
details p{margin:10px 0 0;color:#55697e;line-height:1.75;font-size:14px}

/* ===== Footer (Boutique) ===== */
.site-footer{
  padding: 34px 0;
  border-top: 1px solid rgba(220,227,232,.8);
  background: rgba(255,255,255,.72);
}

.footer-row{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:22px;
  flex-wrap:wrap;
}

.footer-brand{
  display:flex;
  gap:14px;
  align-items:flex-start;
  max-width:520px;
}

.footer-logo{
  height:42px;
  width:auto;
  display:block;
  opacity:.95;
}

.footer-tagline{
  font-size:13px;
  line-height:1.6;
  color:#5b6e82;
}

.footer-tagline strong{
  color: var(--slate);
  letter-spacing:.08em;
  text-transform: uppercase;
  font-family: ui-serif, Georgia, "Times New Roman", serif;
  font-size: 13px;
}

.footer-links{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:10px;
}

.footer-nav{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:center;
}

.footer-nav a{
  color: var(--slate);
  text-decoration:none;
  font-weight:900;
  letter-spacing:.06em;
  text-transform: uppercase;
  font-size: 11px;
  opacity:.92;
}

.footer-nav a:hover{
  opacity:1;
  text-decoration: underline;
  text-underline-offset: 4px;
}

/* Elegant separators (no &nbsp;) */
.footer-nav a:not(:last-child)::after{
  content:"•";
  margin-left:14px;
  color:#9aabbc;
  font-weight:700;
}

.footer-meta{
  font-size:12px;
  color:#6a7e92;
  letter-spacing:.03em;
}