/* Puget Sound Moving — city.css */
.city-hero { background:var(--navy); position:relative; overflow:hidden; display:flex; align-items:center; min-height:78vh; }
.city-hero-bg { position:absolute; inset:0; background: radial-gradient(ellipse 70% 70% at 65% 40%, rgba(30,58,138,0.55) 0%, transparent 70%), radial-gradient(ellipse 40% 40% at 10% 80%, rgba(201,148,42,0.1) 0%, transparent 60%); }
.city-hero-skyline { position:absolute; bottom:0; left:0; right:0; height:180px; opacity:.05; pointer-events:none; }
.city-hero-inner { position:relative; z-index:2; width:100%; max-width:1280px; margin:0 auto; padding:80px 5% 90px; display:grid; grid-template-columns:1fr 400px; gap:64px; align-items:center; }
.hero-eyebrow { font-family:'Bebas Neue',sans-serif; font-size:13px; letter-spacing:6px; color:var(--gold); margin-bottom:18px; display:flex; align-items:center; gap:12px; }
.hero-eyebrow::before { content:''; width:40px; height:2px; background:var(--gold); display:block; }
.city-hero-headline { font-family:'Bebas Neue',sans-serif; font-size:clamp(52px,7vw,96px); line-height:.92; color:var(--white); letter-spacing:2px; margin-bottom:24px; }
.city-hero-headline .city-name { color:var(--gold); display:block; }
.city-hero-sub { font-size:17px; color:rgba(255,255,255,.65); line-height:1.7; max-width:510px; margin-bottom:36px; font-weight:300; }
.city-hero-sub strong { color:var(--white); font-weight:600; }
.hero-buttons { display:flex; gap:16px; flex-wrap:wrap; }
.hero-trust { display:flex; gap:28px; margin-top:44px; padding-top:32px; border-top:1px solid rgba(255,255,255,.1); flex-wrap:wrap; }
.trust-item { text-align:center; }
.trust-number { font-family:'Bebas Neue',sans-serif; font-size:38px; color:var(--gold-light); letter-spacing:1px; line-height:1; }
.trust-label { font-size:12px; color:rgba(255,255,255,.45); text-transform:uppercase; letter-spacing:1px; margin-top:3px; }
/* local intro */
.local-intro { padding:90px 0; background:var(--off-white); }
.local-intro-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:72px; align-items:center; margin-top:48px; }
.local-intro-text p { font-size:16px; color:var(--text-mid); line-height:1.85; margin-bottom:18px; }
.local-intro-text p strong { color:var(--text-dark); font-weight:600; }
.biz-card { background:var(--navy); padding:36px 32px; position:relative; overflow:hidden; }
.biz-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--gold),var(--gold-light),var(--gold)); }
.biz-card-label { font-family:'Bebas Neue',sans-serif; font-size:13px; letter-spacing:5px; color:var(--gold); margin-bottom:24px; }
.biz-row { display:flex; gap:14px; margin-bottom:18px; align-items:flex-start; }
.biz-row:last-child { margin-bottom:0; }
.biz-icon { font-size:18px; flex-shrink:0; margin-top:1px; }
.biz-info-label { font-size:11px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--gold); margin-bottom:4px; }
.biz-info-value { font-size:14px; color:rgba(255,255,255,.8); line-height:1.6; }
.biz-info-value a { color:var(--gold-light); text-decoration:none; }
/* map */
.map-section { padding:80px 0; background:var(--white); }
.map-header { text-align:center; margin-bottom:40px; }
.map-embed-wrapper { position:relative; width:100%; height:460px; border:3px solid var(--navy); box-shadow:0 20px 60px rgba(13,31,74,.15); }
.map-embed-wrapper::before { content:''; position:absolute; top:8px; left:8px; right:-8px; bottom:-8px; border:2px solid var(--gold); z-index:-1; }
.map-embed-wrapper iframe { width:100%; height:100%; border:0; display:block; }
/* neighborhoods */
.neighborhoods { padding:90px 0; background:var(--navy); position:relative; overflow:hidden; }
.neighborhoods::before { content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(201,148,42,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(201,148,42,.04) 1px,transparent 1px); background-size:60px 60px; pointer-events:none; }
.neighborhoods-inner { position:relative; z-index:2; }
.neighborhoods-grid { display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:start; margin-top:48px; }
.neighborhoods-desc { font-size:16px; color:rgba(255,255,255,.55); line-height:1.75; margin-bottom:32px; }
.neighborhood-chips { display:flex; flex-wrap:wrap; gap:10px; }
.n-chip { display:inline-flex; align-items:center; gap:7px; padding:9px 18px; background:rgba(255,255,255,.05); border:1.5px solid rgba(201,148,42,.25); font-size:13.5px; font-weight:600; color:rgba(255,255,255,.8); text-decoration:none; transition:all .2s; clip-path:polygon(6px 0%,100% 0%,calc(100% - 6px) 100%,0% 100%); }
.n-chip::before { content:'⬥'; color:var(--gold); font-size:9px; }
.n-chip:hover { background:rgba(201,148,42,.15); border-color:var(--gold); color:var(--gold-light); }
.neighborhoods-map-panel { background:var(--navy-mid); height:420px; position:relative; overflow:hidden; border:1px solid rgba(201,148,42,.2); display:flex; align-items:center; justify-content:center; }
.map-grid-bg { position:absolute; inset:0; background-image:linear-gradient(rgba(201,148,42,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(201,148,42,.08) 1px,transparent 1px); background-size:40px 40px; }
.map-center-label { font-family:'Bebas Neue',sans-serif; font-size:26px; letter-spacing:4px; color:rgba(255,255,255,.12); text-align:center; z-index:1; position:relative; }
.n-map-dot { position:absolute; width:10px; height:10px; background:var(--gold); border-radius:50%; box-shadow:0 0 0 4px rgba(201,148,42,.2),0 0 0 8px rgba(201,148,42,.1); animation:city-pulse 2s ease-in-out infinite; }
@keyframes city-pulse { 0%,100%{box-shadow:0 0 0 4px rgba(201,148,42,.2),0 0 0 8px rgba(201,148,42,.1)} 50%{box-shadow:0 0 0 8px rgba(201,148,42,.3),0 0 0 16px rgba(201,148,42,.1)} }
@media (prefers-reduced-motion: reduce) { .n-map-dot { animation: none; } }
/* photos */
.photos-section { padding:90px 0; background:var(--off-white); }
.photos-grid { display:grid; grid-template-columns:1.6fr 1fr 1fr; grid-template-rows:260px 260px; gap:3px; }
.photo-slot { background:#D8D5CC; position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.photo-slot:first-child { grid-row:1/3; }
.photo-slot img { width:100%; height:100%; object-fit:cover; display:block; }
.photo-placeholder { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; width:100%; height:100%; background:linear-gradient(135deg,#E5E3DA 0%,#D0CEC5 100%); transition:background .3s; }
.photo-slot:hover .photo-placeholder { background:linear-gradient(135deg,#D8D5CC 0%,#C5C3BA 100%); }
.photo-placeholder-icon { font-size:32px; opacity:.35; }
.photo-placeholder-text { font-family:'Bebas Neue',sans-serif; font-size:13px; letter-spacing:3px; color:rgba(13,31,74,.3); text-align:center; }
/* services on city page */
.city-services { padding:90px 0; background:var(--white); }
.services-header { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:end; margin-bottom:52px; }
.services-desc { font-size:16px; color:var(--text-mid); line-height:1.75; }
/* city-services-grid is set inline in template to 3 columns */
.city-services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:#D8D5CC; }
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:#D8D5CC; }
.service-card { background:var(--white); padding:36px 28px; position:relative; overflow:hidden; text-decoration:none; display:block; transition:all .35s cubic-bezier(.23,1,.32,1); }
.service-card::before { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:var(--gold); transform:scaleX(0); transition:transform .35s ease; }
.service-card:hover { transform:translateY(-6px); box-shadow:0 20px 60px rgba(13,31,74,.12); z-index:2; }
.service-card:hover::before { transform:scaleX(1); }
.service-icon { width:50px; height:50px; background:var(--navy); display:flex; align-items:center; justify-content:center; margin-bottom:20px; font-size:22px; clip-path:polygon(10% 0%,100% 0%,90% 100%,0% 100%); transition:background .3s; }
.service-card:hover .service-icon { background:var(--gold); }
.service-title { font-family:'Bebas Neue',sans-serif; font-size:20px; letter-spacing:1px; color:var(--navy); margin-bottom:10px; }
.service-desc-text { font-size:13px; color:var(--text-mid); line-height:1.6; margin-bottom:16px; }
.service-link-text { font-size:12px; font-weight:700; letter-spacing:1px; text-transform:uppercase; color:var(--gold); display:flex; align-items:center; gap:7px; transition:gap .2s; }
.service-card:hover .service-link-text { gap:12px; }
/* testimonials */
.testimonials-section { padding:90px 0; background:var(--white); }
.testimonials-header { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:48px; flex-wrap:wrap; gap:20px; }
.testimonials-rating { display:flex; flex-direction:column; align-items:flex-end; gap:6px; }
.stars { display:flex; gap:4px; }
.star { color:var(--gold); font-size:20px; }
.rating-num { font-family:'Bebas Neue',sans-serif; font-size:50px; color:var(--navy); line-height:1; }
.rating-count { font-size:13px; color:var(--text-light); letter-spacing:1px; }
.testimonials-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.review-card { background:var(--off-white); padding:30px 26px; border-left:3px solid transparent; transition:all .3s; position:relative; }
.review-card:hover { border-left-color:var(--gold); transform:translateY(-4px); box-shadow:0 20px 50px rgba(13,31,74,.09); }
.review-stars { display:flex; gap:4px; margin-bottom:14px; }
.review-star { color:var(--gold); font-size:15px; }
.review-text { font-size:15px; line-height:1.7; color:var(--text-dark); margin-bottom:18px; font-style:italic; position:relative; }
.review-text::before { content:'\201C'; font-family:'Playfair Display',serif; font-size:72px; color:var(--gold); opacity:.12; position:absolute; top:-18px; left:-8px; line-height:1; }
.review-author { display:flex; align-items:center; gap:12px; }
.review-avatar { width:38px; height:38px; background:var(--navy); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Bebas Neue',sans-serif; font-size:16px; color:var(--gold); flex-shrink:0; }
.review-name { font-weight:700; font-size:14px; color:var(--navy); }
.review-meta { font-size:12px; color:var(--text-light); }
.review-source { position:absolute; top:18px; right:18px; font-size:10px; font-weight:700; letter-spacing:1px; color:var(--text-light); text-transform:uppercase; }
/* why us */
.why-local { padding:90px 0; background:var(--navy-mid); position:relative; overflow:hidden; }
.why-local::before { content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(201,148,42,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(201,148,42,.04) 1px,transparent 1px); background-size:60px 60px; pointer-events:none; }
.why-local-inner { position:relative; z-index:2; }
.why-local-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:rgba(201,148,42,.15); margin-top:52px; }
.why-card { background:var(--navy); padding:40px 32px; position:relative; overflow:hidden; transition:background .3s; }
.why-card:hover { background:var(--navy-light); }
.why-card::after { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.why-card:hover::after { transform:scaleX(1); }
.why-num { font-family:'Bebas Neue',sans-serif; font-size:64px; color:rgba(201,148,42,.12); line-height:1; margin-bottom:8px; }
.why-title { font-family:'Bebas Neue',sans-serif; font-size:22px; letter-spacing:1.5px; color:var(--white); margin-bottom:12px; }
.why-desc { font-size:14px; color:rgba(255,255,255,.5); line-height:1.7; }
/* seo section */
.seo-section { padding:90px 0; background:var(--off-white); }
.seo-grid { display:grid; grid-template-columns:1fr 1fr; gap:80px; margin-top:52px; }
.seo-block h3 { font-family:'Bebas Neue',sans-serif; font-size:28px; letter-spacing:1.5px; color:var(--navy); margin-bottom:16px; }
.seo-block p { font-size:15px; color:var(--text-mid); line-height:1.85; margin-bottom:14px; }
.seo-block ul { list-style:none; margin:12px 0; display:flex; flex-direction:column; gap:9px; }
.seo-block ul li { font-size:15px; color:var(--text-mid); display:flex; align-items:flex-start; gap:10px; line-height:1.6; }
.seo-block ul li::before { content:'⬥'; color:var(--gold); font-size:9px; margin-top:5px; flex-shrink:0; }
/* faq on city page */
.city-faq { padding:80px 0; background:var(--navy); position:relative; overflow:hidden; }
.city-faq::before { content:''; position:absolute; inset:0; background-image:linear-gradient(rgba(201,148,42,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(201,148,42,.04) 1px,transparent 1px); background-size:60px 60px; pointer-events:none; }
.city-faq-inner { position:relative; z-index:2; display:grid; grid-template-columns:1fr 1.5fr; gap:80px; align-items:start; }
.faq-sticky { position:sticky; top:96px; }
.faq-sticky p { font-size:16px; color:rgba(255,255,255,.45); line-height:1.75; margin:16px 0 32px; }
/* responsive */
@media (max-width:1100px) {
  .city-hero-inner { grid-template-columns:1fr; }
  .quote-card { display:none; }
  .local-intro-grid { grid-template-columns:1fr; gap:40px; }
  .neighborhoods-grid { grid-template-columns:1fr; gap:40px; }
  .neighborhoods-map-panel { height:280px; }
  .services-grid { grid-template-columns:repeat(2,1fr); }
  .services-header { grid-template-columns:1fr; gap:20px; }
  .testimonials-grid { grid-template-columns:1fr 1fr; }
  .why-local-grid { grid-template-columns:1fr 1fr; }
  .seo-grid { grid-template-columns:1fr; gap:48px; }
  .city-faq-inner { grid-template-columns:1fr; gap:48px; }
  .faq-sticky { position:static; }
}
@media (max-width:720px) {
  .services-grid { grid-template-columns:1fr; }
  .testimonials-grid { grid-template-columns:1fr; }
  .testimonials-header { flex-direction:column; align-items:flex-start; }
  .why-local-grid { grid-template-columns:1fr; }
  .photos-grid { grid-template-columns:1fr 1fr; grid-template-rows:200px 200px 200px; }
  .photos-grid .photo-slot:first-child { grid-row:auto; }
}

/* ── Trust Badges Bar (Google / Angi / BBB) ───────────────── */
.psm-trust-badges-bar {
  background: var(--white); border-top: 1px solid #E5E3DA; border-bottom: 1px solid #E5E3DA;
  padding: 18px 5%;
}
.psm-trust-badges-inner {
  max-width: 1280px; margin: 0 auto;
  display: flex; align-items: center; gap: 32px; flex-wrap: wrap;
}
.psm-trust-badge-label {
  font-family: 'Bebas Neue', sans-serif; font-size: 13px; letter-spacing: 4px;
  color: var(--text-light); white-space: nowrap; flex-shrink: 0;
}
.psm-trust-badges { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; }
.psm-trust-badge {
  display: flex; align-items: center; gap: 10px; text-decoration: none;
  color: var(--text-dark); transition: opacity .2s;
}
.psm-trust-badge:hover { opacity: .75; }
.psm-trust-badge-score {
  font-family: 'Bebas Neue', sans-serif; font-size: 20px; color: var(--navy);
}
.psm-trust-badge-text { display: flex; flex-direction: column; line-height: 1.2; }
.psm-trust-badge-name { font-weight: 700; font-size: 14px; color: var(--navy); }
.psm-trust-badge-sub  { font-size: 11px; color: var(--text-light); letter-spacing: .5px; }
.psm-trust-badge-divider {
  width: 1px; height: 36px; background: #E5E3DA; flex-shrink: 0;
}

/* ── Trusted Logos Bar ────────────────────────────────────── */
.psm-trusted-logos-bar {
  background: var(--off-white); border-top: 1px solid #E5E3DA;
  padding: 36px 5%;
}
.psm-trusted-logos-label {
  font-family: 'Bebas Neue', sans-serif; font-size: 13px; letter-spacing: 5px;
  color: var(--text-light); text-align: center; margin-bottom: 24px; text-transform: uppercase;
}
.psm-trusted-logos {
  display: flex; align-items: center; justify-content: center;
  gap: 40px; flex-wrap: wrap;
}
.psm-trusted-logo {
  display: flex; align-items: center; justify-content: center;
  opacity: .55; transition: opacity .25s; filter: grayscale(1);
}
.psm-trusted-logo:hover { opacity: .85; filter: grayscale(0); }
.psm-trusted-logo img { max-height: 60px; max-width: 140px; object-fit: contain; display: block; }
.psm-trusted-logo-placeholder {
  width: 140px; height: 56px; border: 2px dashed #D8D5CC;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; color: var(--text-light); letter-spacing: 1px;
  font-family: 'Bebas Neue', sans-serif;
}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 720px) {
  .psm-trust-badges-inner { gap: 20px; }
  .psm-trust-badges        { gap: 20px; }
  .psm-trusted-logos       { gap: 24px; }
  .psm-trusted-logo img    { max-width: 110px; }
}

/* ── Hero inline trust badges (replaces stat strip) ──────── */
.hero-trust-badges {
  margin-top: 36px; padding-top: 28px;
  border-top: 1px solid rgba(255,255,255,.12);
}
.hero-trust-badges-label {
  font-family: 'Bebas Neue', sans-serif; font-size: 11px; letter-spacing: 5px;
  color: rgba(255,255,255,.35); margin-bottom: 14px; text-transform: uppercase;
}
.hero-trust-badges-items {
  display: flex; align-items: center; gap: 20px; flex-wrap: wrap;
}
.hero-trust-badge-item {
  display: flex; align-items: center; gap: 8px; text-decoration: none;
  transition: opacity .2s;
}
.hero-trust-badge-item:hover { opacity: .8; }
.hero-tbadge-name {
  font-family: 'Bebas Neue', sans-serif; font-size: 15px; letter-spacing: 1px;
  color: var(--white);
}
.hero-tbadge-score {
  font-size: 12px; font-weight: 600; color: var(--gold-light);
}
.hero-tbadge-sep {
  width: 1px; height: 28px; background: rgba(255,255,255,.15); flex-shrink: 0;
}
@media (max-width: 480px) {
  .hero-trust-badges-items { gap: 14px; }
  .hero-tbadge-sep { display: none; }
}
