/*
Theme Name: Ease Squad
Theme URI: https://easesquad.com
Author: Ease Squad
Description: Custom theme for Ease Squad — Clean Spaces, Happy Faces.
Version: 1.0
Requires at least: 5.9
Requires PHP: 7.4
Text Domain: ease-squad
*/

:root{
  --ink:#122444; --ink-soft:#3c4a63;
  --blue:#0A5FA0; --blue-deep:#084b80;
  --red:#C21F2B; --gold:#EFA300;
  --cream:#FBF7F0; --white:#FFFFFF; --line:#E4DDCE;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--cream); color:var(--ink); font-family:'Inter',sans-serif; -webkit-font-smoothing:antialiased;}
h1,h2,h3{font-family:'Fraunces',serif; margin:0; color:var(--ink); font-weight:600;}
a{text-decoration:none; color:inherit;}
.wrap{max-width:1180px; margin:0 auto; padding:0 32px;}

/* ---------- Top utility bar ---------- */
.topbar{background:var(--ink); color:#B9C2D2; font-size:13px;}
.topbar .wrap{display:flex; align-items:center; justify-content:space-between; height:38px;}
.topbar-contacts{display:flex; align-items:center; gap:22px;}
.topbar-contacts a{color:#D7DEE9; display:flex; align-items:center; gap:6px;}
.topbar-contacts a:hover{color:var(--white);}
.topbar-contacts svg{width:13px; height:13px; flex-shrink:0;}
.topbar-note{color:#8A97AC;}

/* ---------- Nav ---------- */
header{position:sticky; top:0; z-index:50; background:rgba(251,247,240,0.92); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
nav.wrap{display:flex; align-items:center; justify-content:space-between; height:84px;}
.brand{display:flex; align-items:center; gap:12px;}
.brand svg{width:42px; height:42px; flex-shrink:0;}
.brand-text{display:flex; flex-direction:column; line-height:1.05;}
.brand-text strong{font-family:'Fraunces',serif; font-size:19px; font-weight:700; letter-spacing:0.01em; color:var(--ink);}
.brand-text span{font-size:10.5px; color:var(--blue); font-weight:600; letter-spacing:0.06em;}
.navlinks{display:flex; align-items:center; gap:38px; font-size:15px; font-weight:500;}
.navlinks a{position:relative; color:var(--ink-soft); padding:4px 0;}
.navlinks a:hover{color:var(--ink);}
.navlinks a.active{color:var(--ink);}
.navlinks a.active::after{content:""; position:absolute; left:0; right:0; bottom:-4px; height:2px; background:var(--red);}
.nav-cta{background:var(--ink); color:var(--white); padding:11px 22px; border-radius:3px; font-size:14px; font-weight:600; letter-spacing:0.01em;}
.nav-cta:hover{background:var(--blue-deep);}


/* ---------- Shared eyebrow / hero head ---------- */
.eyebrow-rule{display:flex; align-items:center; gap:10px; margin-bottom:18px;}
.eyebrow-rule .dot{width:7px; height:7px; border-radius:50%; background:var(--red);}
.eyebrow-rule span{font-size:13.5px; font-weight:600; color:var(--blue-deep); letter-spacing:0.02em;}

/* ---------- Home hero ---------- */
.hero{position:relative; overflow:hidden; padding-top:64px;}
.hero .wrap{display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:center; padding-bottom:64px;}
.hero h1{font-size:56px; line-height:1.05; letter-spacing:-0.01em; max-width:11.5ch;}
.hero h1 em{font-style:italic; color:var(--blue-deep); font-weight:500;}
.hero p.lede{margin-top:22px; font-size:17.5px; line-height:1.6; color:var(--ink-soft); max-width:42ch;}
.hero-ctas{display:flex; align-items:center; gap:22px; margin-top:34px;}
.btn-primary{background:var(--red); color:var(--white); padding:15px 30px; border-radius:3px; font-weight:600; font-size:15.5px; display:inline-block; box-shadow:0 10px 22px -10px rgba(194,31,43,0.55);}
.btn-primary:hover{background:#a51923; color:var(--white);}
.btn-secondary{font-weight:600; font-size:15px; color:var(--ink); display:flex; align-items:center; gap:8px;}
.btn-secondary svg{width:16px; height:16px;}
.btn-secondary:hover{color:var(--blue-deep);}
.trust-row{display:flex; gap:30px; margin-top:44px; padding-top:28px; border-top:1px solid var(--line);}
.trust-row div{display:flex; flex-direction:column;}
.trust-row strong{font-family:'Fraunces',serif; font-size:26px; color:var(--ink);}
.trust-row span{font-size:12.5px; color:var(--ink-soft); margin-top:2px;}
.hero-art{position:relative; aspect-ratio:0.92/1;}
.hero-art img{width:100%; height:100%; object-fit:cover; border-radius:10px; box-shadow:0 40px 70px -28px rgba(18,36,68,0.45);}
.hero-badge{position:absolute; left:-26px; bottom:-26px; width:128px; height:128px; background:var(--white); border-radius:50%; box-shadow:0 18px 34px -14px rgba(18,36,68,0.4); display:flex; align-items:center; justify-content:center; padding:14px;}
.hero-badge svg{width:100%; height:100%;}

/* ---------- How it works ---------- */
.how-it-works{padding:96px 0; background:var(--white); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.how-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:44px; margin-top:48px;}
.how-step{position:relative; padding-left:2px;}
.how-step .step-num{font-family:'Fraunces',serif; font-size:44px; color:var(--line); font-weight:600; line-height:1;}
.how-step h3{font-size:19px; margin-top:14px;}
.how-step p{font-size:14.5px; color:var(--ink-soft); margin-top:8px; line-height:1.6;}

/* ---------- Testimonials grid ---------- */
.testimonials{padding:96px 0;}
.testimonials-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:48px;}
.testimonial-card{background:var(--white); padding:32px 28px; display:flex; flex-direction:column;}
.testimonial-card .stars{color:var(--gold); font-size:14px; letter-spacing:2px;}
.testimonial-card p{font-size:15px; color:var(--ink); line-height:1.6; margin-top:14px; flex-grow:1;}
.testimonial-card footer{margin-top:18px; font-size:13px; color:var(--ink-soft); font-weight:600;}

/* ---------- FAQ ---------- */
.faq{padding:96px 0; background:var(--white); border-top:1px solid var(--line);}
.faq-list{max-width:760px; margin-top:44px;}
.faq-item{border-bottom:1px solid var(--line); padding:22px 0;}
.faq-item summary{list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:20px; font-family:'Fraunces',serif; font-size:18px; font-weight:600; color:var(--ink);}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary .plus{flex-shrink:0; width:22px; height:22px; position:relative;}
.faq-item summary .plus::before, .faq-item summary .plus::after{content:""; position:absolute; background:var(--blue-deep); border-radius:2px;}
.faq-item summary .plus::before{width:16px; height:2px; top:10px; left:3px;}
.faq-item summary .plus::after{width:2px; height:16px; top:3px; left:10px; transition:transform .2s ease;}
.faq-item[open] summary .plus::after{transform:rotate(90deg); opacity:0;}
.faq-item p{font-size:14.5px; color:var(--ink-soft); line-height:1.65; margin-top:14px; max-width:64ch;}

/* ---------- Gallery strip ---------- */
.gallery{padding-bottom:96px;}
.gallery-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:48px;}
.gallery-grid img{width:100%; height:220px; object-fit:cover; border-radius:4px;}
.gallery-grid a:nth-child(1){grid-row:span 2; }
.gallery-grid a:nth-child(1) img{height:100%;}

/* ---------- Service block images ---------- */
.service-block .wrap{align-items:center;}
.service-block .sb-media{aspect-ratio:4/3; border-radius:6px; overflow:hidden;}
.service-block .sb-media img{width:100%; height:100%; object-fit:cover;}
.service-block .sb-text{}

/* ---------- Services strip (home) — image cards ---------- */
.strip{background:var(--ink); padding:0;}
.strip .wrap{display:grid; grid-template-columns:repeat(3,1fr); max-width:1180px; padding:0;}
.strip-item{position:relative; aspect-ratio:4/3.1; overflow:hidden; text-align:left;}
.strip-item img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
.strip-item:hover img{transform:scale(1.05);}
.strip-item::after{content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(10,18,36,0.86) 0%, rgba(10,18,36,0.35) 55%, rgba(10,18,36,0.05) 100%);}
.strip-item .strip-content{position:relative; z-index:1; height:100%; display:flex; flex-direction:column; justify-content:flex-end; padding:30px 26px;}
.strip-item .bar{width:30px; height:3px; margin-bottom:14px;}
.strip-item:nth-child(1) .bar{background:var(--gold);}
.strip-item:nth-child(2) .bar{background:var(--blue);}
.strip-item:nth-child(3) .bar{background:var(--red);}
.strip-item h3{color:var(--white); font-size:19px; font-weight:600;}
.strip-item p{color:#D7DEE9; font-size:14.5px; margin-top:6px; line-height:1.5;}

/* ---------- Home services detail ---------- */
.services{padding:96px 0;}
.section-head{max-width:560px; margin-bottom:56px;}
.section-head .eyebrow-rule span{color:var(--red);}
.section-head h2{font-size:38px; line-height:1.15; letter-spacing:-0.01em;}
.services-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
.service-card{background:var(--cream); padding:34px 30px;}
.service-card .num{font-family:'Fraunces',serif; font-size:14px; color:var(--blue-deep); font-weight:600;}
.service-card h3{font-size:21px; margin-top:14px;}
.service-card p{font-size:14.5px; color:var(--ink-soft); line-height:1.6; margin-top:10px;}

/* ---------- Quote band ---------- */
.quote-band{background:var(--blue); padding:72px 0;}
.quote-band .wrap{display:grid; grid-template-columns:auto 1fr; gap:28px; align-items:flex-start;}
.quote-mark{font-family:'Fraunces',serif; font-size:80px; color:var(--gold); line-height:0.6; margin-top:14px;}
.quote-band p{color:var(--white); font-family:'Fraunces',serif; font-size:27px; line-height:1.42; max-width:26ch; font-weight:500;}
.quote-band footer{color:#D8E6F2; font-size:14px; margin-top:18px; font-family:'Inter',sans-serif;}

/* ---------- Final CTA ---------- */
.final-cta{padding:96px 0; text-align:center;}
.final-cta h2{font-size:40px; max-width:16ch; margin:0 auto; line-height:1.15;}
.final-cta p{color:var(--ink-soft); margin-top:18px; font-size:16px;}
.final-cta .btn-primary{margin-top:30px;}
.final-cta .cta-phone{display:block; margin-top:16px; font-size:14px; color:var(--ink-soft);}
.final-cta .cta-phone a{color:var(--blue-deep); font-weight:600;}

footer.site{background:var(--ink); padding-top:64px;}
.footer-grid{display:grid; grid-template-columns:1.2fr 1fr 1fr 1fr; gap:40px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,0.1);}
.footer-col h4{color:var(--white); font-size:13px; font-weight:600; letter-spacing:0.04em; margin-bottom:18px;}
.footer-col p{color:#9AA7BC; font-size:14px; line-height:1.6;}
.footer-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:11px;}
.footer-col a{color:#B9C2D2; font-size:14px;}
.footer-col a:hover{color:var(--white);}
.footer-contact-item{display:flex; align-items:flex-start; gap:10px; margin-bottom:11px;}
.footer-contact-item svg{width:15px; height:15px; color:var(--gold); flex-shrink:0; margin-top:2px;}
.footer-bottom{display:flex; align-items:center; justify-content:space-between; padding:26px 0;}
.footer-bottom p{color:#8A97AC; font-size:13px; margin:0;}
.footer-social{display:flex; gap:14px;}
.footer-social a{width:32px; height:32px; border-radius:50%; background:rgba(255,255,255,0.06); display:flex; align-items:center; justify-content:center;}
.footer-social svg{width:14px; height:14px; color:#B9C2D2;}
.footer-social a:hover{background:var(--blue);}
.footer-social a:hover svg{color:var(--white);}

/* ---------- Generic page hero banner (services/about/contact) ---------- */
.page-hero{padding:72px 0 0; border-bottom:1px solid var(--line);}
.page-hero .wrap{padding-bottom:56px;}
.page-hero h1{font-size:46px; line-height:1.08; max-width:15ch;}
.page-hero p{margin-top:18px; font-size:17px; color:var(--ink-soft); max-width:56ch; line-height:1.6;}
.page-banner{aspect-ratio:21/7; overflow:hidden;}
.page-banner img{width:100%; height:100%; object-fit:cover;}

/* ---------- Services page blocks ---------- */
.service-block{padding:80px 0; border-bottom:1px solid var(--line);}
.service-block:nth-child(even){background:var(--white);}
.service-block .wrap{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
.service-block:nth-child(even) .sb-media{order:2;}
.service-block .tag{font-family:'Fraunces',serif; font-size:15px; color:var(--blue-deep); font-weight:600;}
.service-block h2{font-size:30px; margin-top:12px; line-height:1.15;}
.service-block .bar{width:34px; height:3px; margin-bottom:18px;}
.service-block:nth-of-type(1) .bar{background:var(--gold);}
.service-block:nth-of-type(2) .bar{background:var(--blue);}
.service-block:nth-of-type(3) .bar{background:var(--red);}
.service-block:nth-of-type(4) .bar{background:var(--gold);}
.service-detail p.lede{font-size:16.5px; color:var(--ink-soft); line-height:1.65; max-width:56ch;}
.checklist{list-style:none; margin:26px 0 0; padding:0; display:grid; grid-template-columns:1fr 1fr; gap:12px 28px; max-width:56ch;}
.checklist li{font-size:14.5px; color:var(--ink); display:flex; gap:10px; align-items:flex-start;}
.checklist svg{width:16px; height:16px; margin-top:3px; flex-shrink:0; color:var(--blue-deep);}

/* ---------- About page ---------- */
.story{padding:80px 0; background:var(--white); border-bottom:1px solid var(--line);}
.story .wrap{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center;}
.story p{font-size:16.5px; color:var(--ink-soft); line-height:1.7; margin-top:16px;}
.story-art{aspect-ratio:4/5; position:relative; border-radius:8px; overflow:hidden;}
.story-art img{width:100%; height:100%; object-fit:cover;}
.values{padding:88px 0;}
.values-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:48px;}
.value-card{background:var(--cream); padding:34px 30px;}
.value-card .bar{width:30px; height:3px; margin-bottom:16px;}
.value-card:nth-child(1) .bar{background:var(--gold);}
.value-card:nth-child(2) .bar{background:var(--blue);}
.value-card:nth-child(3) .bar{background:var(--red);}
.value-card h3{font-size:19px;}
.value-card p{font-size:14.5px; color:var(--ink-soft); margin-top:10px; line-height:1.55;}
.badges-row{display:grid; grid-template-columns:repeat(4,1fr); gap:28px; padding:44px 0; border-bottom:1px solid var(--line);}
.badge-item{display:flex; align-items:center; gap:12px;}
.badge-item .ic{width:40px; height:40px; border-radius:50%; background:var(--cream); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.badge-item svg{width:19px; height:19px; color:var(--blue-deep);}
.badge-item span{font-size:13.5px; font-weight:600; color:var(--ink); line-height:1.3;}

.stats-band{background:var(--ink); padding:64px 0;}
.stats-band .wrap{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.stat{text-align:left;}
.stat strong{font-family:'Fraunces',serif; font-size:36px; color:var(--white); display:block;}
.stat span{font-size:13px; color:#9AA7BC; margin-top:6px; display:block;}

/* ---------- Contact page ---------- */
.map-frame{border-radius:6px; overflow:hidden; margin-top:28px; border:1px solid var(--line);}
.map-frame iframe{width:100%; height:220px; border:0; display:block; filter:grayscale(0.15);}
.contact-section{padding-bottom:96px;}
.contact-grid{display:grid; grid-template-columns:1fr 1.1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
.info-panel{background:var(--ink); padding:48px 40px; color:var(--white);}
.info-panel h2{color:var(--white); font-size:24px;}
.info-panel p{color:#B9C2D2; font-size:14.5px; margin-top:10px; line-height:1.6;}
.info-list{list-style:none; margin:36px 0 0; padding:0; display:flex; flex-direction:column; gap:24px;}
.info-list li{display:flex; gap:14px; align-items:flex-start;}
.info-list .ic{width:36px; height:36px; border-radius:3px; background:rgba(255,255,255,0.08); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.info-list svg{width:17px; height:17px; color:var(--gold);}
.info-list strong{display:block; font-size:14.5px; color:var(--white);}
.info-list span{display:block; font-size:13.5px; color:#9AA7BC; margin-top:2px;}
.hours{margin-top:36px; padding-top:28px; border-top:1px solid rgba(255,255,255,0.12);}
.hours strong{font-size:13px; color:var(--gold); letter-spacing:0.03em; font-weight:600;}
.hours-row{display:flex; justify-content:space-between; font-size:13.5px; color:#B9C2D2; margin-top:10px;}
.form-panel{background:var(--white); padding:48px 40px;}
.form-panel h2{font-size:24px;}
.form-panel > p{color:var(--ink-soft); font-size:14.5px; margin-top:8px;}
form{margin-top:30px; display:flex; flex-direction:column; gap:20px;}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
label{font-size:12.5px; font-weight:600; color:var(--ink); letter-spacing:0.01em; display:block; margin-bottom:7px;}
input, select, textarea{width:100%; border:1px solid var(--line); background:var(--cream); border-radius:3px; padding:12px 14px; font-family:'Inter',sans-serif; font-size:14.5px; color:var(--ink);}
input:focus, select:focus, textarea:focus{outline:2px solid var(--blue); outline-offset:1px; border-color:var(--blue);}
textarea{resize:vertical; min-height:110px;}
.submit-btn{background:var(--red); color:var(--white); border:none; padding:15px 30px; border-radius:3px; font-weight:600; font-size:15.5px; cursor:pointer; align-self:flex-start; margin-top:4px; box-shadow:0 10px 22px -10px rgba(194,31,43,0.55);}
.submit-btn:hover{background:#a51923;}

@media(max-width:860px){
  .navlinks{display:none;}
  .topbar-note{display:none;}
  .footer-grid{grid-template-columns:1fr 1fr; gap:32px;}
  .footer-bottom{flex-direction:column; gap:14px; text-align:center;}
  .page-banner{aspect-ratio:4/3;}
  .hero .wrap{grid-template-columns:1fr; padding-bottom:40px;}
  .hero h1{font-size:38px;}
  .hero-art{max-width:320px; margin:0 auto;}
  .strip .wrap{grid-template-columns:1fr;}
  .strip-item + .strip-item{border-left:none; border-top:1px solid rgba(255,255,255,0.12);}
  .services-grid{grid-template-columns:1fr;}
  .quote-band .wrap{grid-template-columns:1fr;}
  .quote-band p{font-size:22px;}
  .page-hero h1{font-size:34px;}
  .service-block .wrap{grid-template-columns:1fr; gap:24px;}
  .service-block:nth-child(even) .sb-media{order:0;}
  .checklist{grid-template-columns:1fr;}
  .how-grid{grid-template-columns:1fr; gap:32px;}
  .testimonials-grid{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .gallery-grid a:nth-child(1){grid-row:auto;}
  .gallery-grid a:nth-child(1) img{height:220px;}
  .story .wrap{grid-template-columns:1fr;}
  .story-art{max-width:280px; margin:0 auto;}
  .values-grid{grid-template-columns:1fr;}
  .stats-band .wrap{grid-template-columns:1fr 1fr; gap:32px;}
  .badges-row{grid-template-columns:1fr 1fr; gap:20px;}
  .contact-grid{grid-template-columns:1fr;}
  .row2{grid-template-columns:1fr;}
  .info-panel, .form-panel{padding:36px 26px;}
}
