:root{
    --navy:#1b3a5c;
    --navy-deep:#132a44;
    --blue:#4f8fc7;
    --blue-light:#a9cbe8;
    --sky:#e8f1f9;
    --paper:#f7f9fb;
    --white:#ffffff;
    --ink:#2b3b4a;
    --muted:#5c7186;
    --line:#dbe6ef;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  #top,#services,#testimonials,#about,#contact{scroll-margin-top:88px;}
  html,body{margin:0;padding:0;}
  body{
    font-family:'Segoe UI', system-ui, -apple-system, Arial, sans-serif;
    color:var(--ink);
    background:var(--white);
    -webkit-font-smoothing:antialiased;
  }
  a{text-decoration:none;color:inherit;}
  img,svg{max-width:100%;}
  .wrap{max-width:1180px;margin:0 auto;padding:0 32px;}

  /* ---------- Header ---------- */
  header{
    background:var(--white);
    border-bottom:1px solid var(--line);
    position:sticky;top:0;z-index:50;
  }
  .header-inner{
    display:flex;align-items:center;justify-content:space-between;
    padding:18px 32px;max-width:1180px;margin:0 auto;flex-wrap:wrap;gap:16px;
  }
  .brand{display:flex;align-items:center;gap:14px;}
  .brand-mark{width:52px;height:52px;flex:none;}
  .brand-text h1{
    font-size:1.5rem;margin:0;color:var(--navy);letter-spacing:.2px;font-weight:700;
  }
  .brand-text p{
    margin:0;font-size:.68rem;letter-spacing:2px;color:var(--blue);font-weight:600;
  }
  nav{display:flex;gap:34px;align-items:center;}
  nav a{
    font-size:.98rem;color:var(--ink);font-weight:500;padding:6px 2px;position:relative;
  }
  nav a.active{color:var(--navy);font-weight:700;}
  nav a.active::after{
    content:"";position:absolute;left:0;right:0;bottom:-20px;height:2px;background:var(--blue);
  }
  .head-actions{display:flex;gap:12px;}
  .pill-btn{
    display:inline-flex;align-items:center;gap:8px;
    background:var(--navy);color:var(--white);
    padding:11px 22px;border-radius:30px;font-size:.92rem;font-weight:600;
    border:none;cursor:pointer;white-space:nowrap;
  }
  .pill-btn.ghost{background:var(--blue);}
  .pill-btn svg{width:15px;height:15px;flex:none;}

  /* ---------- Hero ---------- */
  .hero{
    position:relative;
    background:
      linear-gradient(90deg, rgba(19,42,68,.93) 0%, rgba(19,42,68,.82) 32%, rgba(19,42,68,.35) 62%, rgba(19,42,68,.08) 100%),
      url(../images/hero.jpg) center 30% / cover no-repeat;
    color:var(--white);
    overflow:hidden;
  }
  .hero-grid{
    display:grid;grid-template-columns:1fr;align-items:stretch;
    max-width:1180px;margin:0 auto;
  }
  .hero-copy{padding:64px 32px 64px 32px;position:relative;z-index:2;}
  .eyebrow{
    font-size:.7rem;letter-spacing:2.5px;color:var(--blue-light);font-weight:600;margin-bottom:12px;
  }
  .hero-copy h2{
    font-size:1.9rem;line-height:1.1;margin:0 0 12px;font-weight:800;
  }
  .hero-copy h2 span{display:block;color:var(--blue-light);}
  .hero-copy p{
    font-size:.92rem;line-height:1.5;color:#d7e4ef;max-width:420px;margin:0 0 18px;
  }
  .cta-btn{
    display:inline-flex;align-items:center;gap:8px;
    background:var(--blue-light);color:var(--navy-deep);
    padding:10px 20px;border-radius:26px;font-weight:700;font-size:.88rem;
  }
  .cta-btn svg{width:14px;height:14px;}

  /* ---------- Info strip ---------- */
  .info-strip{
    background:var(--sky);
    border-bottom:1px solid var(--line);
  }
  .info-grid{
    display:grid;grid-template-columns:repeat(4,1fr);
    max-width:1180px;margin:0 auto;
  }
  .info-item{
    display:flex;gap:14px;align-items:flex-start;
    padding:30px 26px;border-left:1px solid var(--line);
  }
  .info-item:first-child{border-left:none;}
  .info-icon{
    width:42px;height:42px;border-radius:50%;background:var(--navy);
    display:flex;align-items:center;justify-content:center;flex:none;
  }
  .info-icon svg{width:19px;height:19px;fill:var(--white);}
  .info-item strong{display:block;font-size:.95rem;color:var(--navy);margin-bottom:2px;}
  .info-item span{display:block;font-size:.84rem;color:var(--muted);}
  .info-item .link{color:var(--blue);font-size:.8rem;font-weight:600;}
  .hours-list{font-size:.78rem;color:var(--muted);line-height:1.55;}
  .hours-list .row{display:flex;justify-content:space-between;gap:14px;}

  /* ---------- Services ---------- */
  .services{padding:88px 0 60px;background:var(--paper);}
  .section-head{text-align:center;margin-bottom:52px;}
  .section-head .eyebrow{
    color:var(--blue);justify-content:center;display:flex;align-items:center;gap:10px;margin-bottom:14px;
  }
  .section-head .eyebrow::before,.section-head .eyebrow::after{
    content:"";width:34px;height:1px;background:var(--blue-light);
  }
  .section-head h3{font-size:2.2rem;color:var(--navy);margin:0 0 10px;font-weight:800;}
  .section-head p{color:var(--muted);margin:0;font-size:1.02rem;}

  .card-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:26px;
  }
  .service-card{
    background:var(--white);border:1px solid var(--line);border-radius:14px;
    overflow:hidden;display:flex;flex-direction:column;
  }
  .service-photo{
    height:150px;
    background:linear-gradient(135deg,#c9dced,#7fa8c9);
    position:relative;
  }
  .service-photo span{
    position:absolute;bottom:10px;left:12px;font-size:.68rem;letter-spacing:1px;
    color:rgba(255,255,255,.9);background:rgba(19,42,68,.35);padding:4px 10px;border-radius:12px;
  }
  .service-body{padding:20px 22px 24px;flex:1;display:flex;flex-direction:column;}
  .service-body h4{margin:0 0 10px;color:var(--navy);font-size:1.12rem;font-weight:700;}
  .service-body p{margin:0 0 18px;color:var(--muted);font-size:.88rem;line-height:1.55;flex:1;}
  .price-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto;}
  .price-chip{
    flex:1;min-width:70px;background:var(--sky);border-radius:8px;text-align:center;
    padding:9px 6px;font-size:.78rem;color:var(--navy);font-weight:600;
  }
  .price-chip small{display:block;color:var(--muted);font-weight:500;font-size:.68rem;margin-bottom:2px;}
  .call-price{
    display:block;text-align:center;background:var(--sky);border-radius:8px;
    padding:12px 6px;font-size:.85rem;color:var(--navy);font-weight:600;margin-top:auto;
  }

  .package-card{
    background:linear-gradient(150deg,var(--sky),#dfeaf4);
    border:1px solid var(--line);border-radius:14px;
    display:flex;flex-direction:column;overflow:hidden;
  }
  .package-photo{height:110px;}
  img.service-photo,img.package-photo,img.quote-art{display:block;width:100%;object-fit:cover;}
  .package-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1;}
  .package-body h4{margin:0 0 6px;color:var(--navy);font-size:1.35rem;font-weight:800;}
  .package-body p{margin:0 0 18px;color:var(--muted);font-size:.85rem;line-height:1.5;}
  .package-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;flex:1;}
  .package-list li{
    display:flex;justify-content:space-between;font-size:.92rem;color:var(--navy);
    font-weight:600;border-top:1px solid rgba(27,58,92,.12);padding-top:12px;
  }
  .package-list li:first-child{border-top:none;padding-top:0;}

  /* ---------- Testimonials ---------- */
  .testimonials{padding:70px 0 84px;background:var(--white);}
  .rating-summary{
    display:flex;align-items:center;justify-content:center;gap:10px;margin:0 0 44px;
  }
  .rating-stars{color:#f0ad4e;font-size:1.15rem;letter-spacing:2px;}
  .rating-summary strong{color:var(--navy);font-size:1.05rem;}
  .rating-summary span{color:var(--muted);font-size:.92rem;}
  .testi-carousel{
    display:flex;align-items:center;gap:18px;max-width:640px;margin:0 auto;
  }
  .testi-viewport{overflow:hidden;flex:1;}
  .testi-track{
    display:flex;transition:transform .45s ease;
  }
  .testi-arrow{
    flex:none;width:44px;height:44px;border-radius:50%;
    background:var(--sky);border:1px solid var(--line);cursor:pointer;
    display:flex;align-items:center;justify-content:center;
  }
  .testi-arrow svg{width:18px;height:18px;}
  .testi-arrow:hover{background:var(--blue-light);}
  .testi-card{
    background:var(--paper);border:1px solid var(--line);border-radius:14px;
    padding:30px 28px;display:flex;flex-direction:column;gap:14px;
    flex:0 0 100%;box-sizing:border-box;
  }
  .testi-dots{display:flex;justify-content:center;gap:8px;margin-top:22px;}
  .dot{
    width:8px;height:8px;border-radius:50%;background:var(--line);cursor:pointer;
  }
  .dot.active{background:var(--blue);}
  .testi-stars{color:#f0ad4e;font-size:.95rem;letter-spacing:2px;}
  .testi-card p{margin:0;color:var(--ink);font-size:.92rem;line-height:1.6;flex:1;}
  .testi-foot{display:flex;align-items:center;gap:10px;}
  .testi-avatar{
    width:36px;height:36px;border-radius:50%;background:var(--navy);color:var(--white);
    display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;flex:none;
  }
  .testi-name{font-size:.86rem;color:var(--navy);font-weight:700;}
  .testi-source{font-size:.74rem;color:var(--muted);display:flex;align-items:center;gap:5px;}

  /* ---------- Quote banner ---------- */
  .quote-banner{
    background:linear-gradient(120deg,var(--sky),#dbe9f5);
    padding:70px 0;
  }
  .quote-grid{
    display:grid;grid-template-columns:.85fr 1.15fr;gap:50px;align-items:center;
  }
  .quote-art{
    height:230px;border-radius:16px;
    position:relative;
  }
  .quote-copy .eyebrow{color:var(--blue);margin-bottom:16px;}
  .quote-copy h3{font-size:2rem;color:var(--navy);margin:0 0 16px;font-weight:800;}
  .quote-copy p{color:var(--muted);font-size:1.02rem;line-height:1.65;max-width:520px;margin:0 0 16px;}
  .signature{font-family:Georgia, 'Times New Roman', serif;font-style:italic;font-size:1.3rem;color:var(--navy);}

  /* ---------- Footer ---------- */
  footer{background:var(--navy-deep);color:#d7e4ef;padding:52px 0 26px;}
  .footer-grid{
    display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:40px;padding-bottom:34px;
    border-bottom:1px solid rgba(255,255,255,.12);
  }
  .footer-brand{display:flex;gap:14px;align-items:center;}
  .footer-brand h4{margin:0;color:var(--white);font-size:1.25rem;font-weight:700;}
  .footer-brand p{margin:0;font-size:.7rem;letter-spacing:2px;color:var(--blue-light);}
  .footer-col h5{margin:0 0 14px;color:var(--white);font-size:.9rem;font-weight:700;}
  .footer-col .f-row{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px;font-size:.86rem;color:#c3d6e6;}
  .footer-col .f-row svg{width:15px;height:15px;flex:none;margin-top:2px;fill:var(--blue-light);}
  .foot-hours .row{display:flex;justify-content:space-between;font-size:.82rem;color:#c3d6e6;padding:3px 0;gap:16px;}
  .foot-bottom{
    display:flex;justify-content:space-between;padding-top:22px;font-size:.78rem;color:#8fa7bd;flex-wrap:wrap;gap:10px;
  }

  /* ---------- Responsive ---------- */
  @media (max-width:920px){
    nav{order:3;width:100%;justify-content:center;gap:22px;}
    .header-inner{justify-content:center;}
    .hero-grid{grid-template-columns:1fr;}
    .info-grid{grid-template-columns:repeat(2,1fr);}
    .info-item:nth-child(3){border-left:none;}
    .card-grid{grid-template-columns:repeat(2,1fr);}
    .quote-grid{grid-template-columns:1fr;}
    .footer-grid{grid-template-columns:1fr;gap:26px;}
  }
  @media (max-width:560px){
    .hero-copy{padding:46px 24px;}
    .hero-copy h2{font-size:1.6rem;}
    .card-grid{grid-template-columns:1fr;}
    .testi-carousel{gap:8px;}
    .testi-arrow{width:36px;height:36px;}
    .testi-card{padding:22px 18px;}
    .info-grid{grid-template-columns:1fr;}
    .info-item{border-left:none;border-top:1px solid var(--line);}
    .info-item:first-child{border-top:none;}
    .head-actions{width:100%;justify-content:center;}
  }
