/* AOLE Site Engine — card + template styles (theme-agnostic, brand colors hardcoded) */

.aole-container{max-width:1200px;margin:0 auto;padding:0 24px;}
.aole-section{padding:70px 0;}

/* Buttons */
.aole-btn{display:inline-flex;align-items:center;gap:.5rem;font-weight:500;font-size:17px;padding:14px 32px;border-radius:50px;border:2px solid transparent;cursor:pointer;transition:all .25s ease;text-decoration:none;line-height:1;}
.aole-btn-gold{background:#B39352;color:#111111;border-color:#B39352;}
.aole-btn-gold:hover{background:#9C7E44;border-color:#9C7E44;color:#111111;transform:translateY(-2px);}
.aole-btn-outline{background:transparent;color:#fff;border-color:rgba(255,255,255,.55);}
.aole-btn-outline:hover{background:#fff;color:#17335C;}

/* Featured tag */
.aole-tag{display:inline-flex;align-items:center;gap:4px;background:#B39352;color:#0E2244;font-size:12px;font-weight:500;letter-spacing:.5px;text-transform:uppercase;padding:5px 12px;border-radius:20px;}
.aole-tag--sm{font-size:.66rem;padding:4px 10px;}

/* ============ FEATURED SERVICES (big cards — homepage) ============ */
.aole-featured-services{display:flex;flex-direction:column;gap:28px;}
.aole-fcard{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);background:#fff; border-radius:20px;overflow:hidden;box-shadow:0 10px 30px rgba(23,51,92,.10);}
.aole-fcard,.aole-fcard *{text-decoration:none !important;}
.aole-fcard-media{position:relative;min-height:430px;background:#eef2f6 center/cover no-repeat;}
.aole-fcard-media .aole-tag{position:absolute;top:20px;left:20px;}
.aole-fcard-content{padding:40px 44px;}
.aole-fcard-content h3{margin:0 0 12px;font-size:2rem;color:#17335C;line-height:1.15;}
.aole-fcard-content h3 a{color:#17335C;}
.aole-fcard-tagline{color:#5A6B7D;font-size:18px;line-height:1.55;margin:0 0 24px;}
.aole-fcard-benefits{list-style:none;padding:0;margin:0 0 24px;display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;}
.aole-fcard-benefits li{position:relative;padding-left:28px;color:#1B2A3D;font-size:14px;line-height:1.4;}
.aole-fcard-benefits li::before{content:"\2713";position:absolute;left:0;top:0;color:#B39352;font-weight:800;}
.aole-fcard-pills{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px;}
.aole-fcard-pills span{background:#F4F6F8;border:1px solid #E1E7ED;color:#17335C;font-size:.82rem;font-weight:600;padding:7px 15px;border-radius:20px;}
.aole-fcard-actions{display:flex;gap:14px;flex-wrap:wrap;}
.aole-btn-outline-dark{background:transparent;color:#17335C;border-color:#cdd6df;}
.aole-btn-outline-dark:hover{background:#17335C;color:#fff;border-color:#17335C;}
/* Alternate image side: 1st card image LEFT, 2nd card image RIGHT, and so on */
.aole-featured-services .aole-fcard:nth-child(even) .aole-fcard-media{order:2;}
.aole-featured-services .aole-fcard:nth-child(even) .aole-fcard-content{order:1;}
@media(max-width:860px){
  .aole-fcard{grid-template-columns:1fr;}
  .aole-fcard-media{min-height:240px;}
  .aole-fcard-benefits{grid-template-columns:1fr;}
  .aole-fcard-content{padding:30px 26px;}
  /* On mobile keep the image on top for every card, regardless of alternation */
  .aole-featured-services .aole-fcard:nth-child(even) .aole-fcard-media{order:-1;}
  .aole-featured-services .aole-fcard:nth-child(even) .aole-fcard-content{order:0;}
}

/* ============ SERVICES GRID (small cards — services page) ============ */
.aole-services-grid{display:grid;gap:22px;}
.aole-services-grid.aole-cols-2{grid-template-columns:repeat(2,1fr);}
.aole-services-grid.aole-cols-3{grid-template-columns:repeat(3,1fr);}
.aole-services-grid.aole-cols-4{grid-template-columns:repeat(4,1fr);}
.aole-scard{display:flex;flex-direction:column;background:#fff;border:1px solid #eef0f3;border-radius:18px;overflow:hidden;box-shadow:0 6px 18px rgba(23,51,92,.06);color:inherit;transition:box-shadow .3s ease;}
.aole-scard,.aole-scard *{text-decoration:none !important;}
.aole-scard:hover{box-shadow:0 14px 34px rgba(23,51,92,.13);}
.aole-scard-img{position:relative;aspect-ratio:16/11;overflow:hidden;background:#eef2f6;}
.aole-scard-zoom{position:absolute;inset:0;background-position:center;background-size:cover;background-repeat:no-repeat;transition:transform .5s ease;}
.aole-scard:hover .aole-scard-zoom{transform:scale(1.06);}
.aole-scard-img .aole-tag{position:absolute;top:14px;left:14px;z-index:2;}
.aole-scard-body{padding:26px 28px 30px;}
.aole-scard-body h3{margin:0 0 12px;font-size:27px !important;color:#17335C;line-height:1.2;}
.aole-scard-body p{margin:0 0 18px;color:#6b7a8a;font-size:17px;line-height:1.6;}
.aole-scard-cta{color:#B39352;font-weight:700;font-size:14px;}
.aole-scard-cta .aole-arrow{display:inline-block;transition:transform .25s ease;}
.aole-scard:hover .aole-scard-cta .aole-arrow{transform:translateX(4px);}

/* ============ SINGLE SERVICE TEMPLATE ============ */
.aole-single{display:block;width:100%;max-width:100%;grid-column:1 / -1;column-span:all;}
.aole-single > section{display:block;width:100%;float:none;}
/* Astra fallback: neutralize the flex .ast-container on the Service single */
body.single-service .site-content .ast-container{display:block;max-width:100%;padding-left:0;padding-right:0;}
.aole-svc-hero{background:#17335C center/cover no-repeat;color:#fff;padding:90px 0 70px;}
.aole-svc-hero h1{color:#fff;font-size:clamp(2.2rem,5vw,3.2rem);margin:0 0 12px;}
.aole-svc-tagline{color:#dbe6f2;font-size:1.25rem;max-width:640px;margin:0 0 26px;}
.aole-svc-hero-actions{display:flex;gap:14px;flex-wrap:wrap;}
.aole-bg-light{background:#F4F6F8;}
.aole-svc-head{text-align:center;max-width:760px;margin:0 auto 42px;}
.aole-svc-head h2{color:#17335C;font-size:2rem;margin:0;}
.aole-eyebrow{display:block;color:#B39352;font-weight:700;font-size:.8rem;letter-spacing:2px;text-transform:uppercase;margin-bottom:8px;}
.aole-svc-intro{max-width:860px;margin:0 auto;font-size:18px;color:#3a4a5c;line-height:1.85;}
.aole-svc-intro h2,.aole-svc-intro h3{color:#17335C;margin:1.7em 0 .4em;line-height:1.25;}
.aole-svc-intro p{margin:0 0 1.15em;}
.aole-benefits{list-style:none;padding:0;margin:0 auto;max-width:920px;display:grid;grid-template-columns:repeat(2,1fr);gap:14px;}
.aole-benefits li{position:relative;padding:14px 18px 14px 44px;background:#fff;border:1px solid #E7ECF1;border-radius:10px;color:#1B2A3D;box-shadow:0 3px 10px rgba(23,51,92,.04);}
.aole-benefits li::before{content:"✓";position:absolute;left:16px;top:12px;color:#B39352;font-weight:800;}
.aole-features{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;max-width:960px;margin:0 auto;}
.aole-feature{background:#fff;border:1px solid #E1E7ED;border-radius:12px;padding:22px 24px;box-shadow:0 6px 18px rgba(23,51,92,.05);}
.aole-feature h3{margin:0 0 6px;color:#17335C;font-size:1.1rem;}
.aole-feature p{margin:0;color:#5A6B7D;}
.aole-process{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;text-align:center;}
.aole-step-num{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#B39352;color:#0E2244;font-weight:800;font-size:1.4rem;margin-bottom:10px;}
.aole-step h3{color:#17335C;font-size:1.05rem;margin:0;}
.aole-faq{max-width:820px;margin:0 auto;}
.aole-faq details{border:1px solid #E1E7ED;border-radius:10px;padding:14px 18px;margin-bottom:10px;background:#fff;}
.aole-faq summary{font-weight:700;color:#17335C;cursor:pointer;}
.aole-faq details>div{margin-top:10px;color:#5A6B7D;}
.aole-cta-band{background:#0E2244;color:#fff;text-align:center;padding:64px 0;}
.aole-cta-band h2{color:#fff;font-size:2rem;margin:0 0 20px;}
.aole-svc-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:10px 0 6px;}
.aole-svc-gitem{aspect-ratio:4/3;border-radius:10px;background:#eef2f6 center/cover no-repeat;display:block;transition:transform .2s ease;}
.aole-svc-gitem:hover{transform:scale(1.02);}
@media(max-width:560px){.aole-svc-gallery{grid-template-columns:repeat(2,1fr);}}

/* ============ RESPONSIVE ============ */
@media(max-width:900px){
  .aole-featured-services,.aole-services-grid.aole-cols-3,.aole-services-grid.aole-cols-4{grid-template-columns:repeat(2,1fr);}
  .aole-benefits,.aole-features,.aole-process{grid-template-columns:1fr;}
}
@media(max-width:560px){
  .aole-featured-services,.aole-services-grid.aole-cols-2,.aole-services-grid.aole-cols-3,.aole-services-grid.aole-cols-4{grid-template-columns:1fr;}
}

/* ============================================================
   SINGLE SERVICE — matches Lovable ServiceDetail
   ============================================================ */
.svc-container{max-width:1200px;margin:0 auto;padding:0 24px;}
.svc-block{padding:70px 0;}
.svc-block--white{background:#fff;}
.svc-block--surface{background:#F4F6F8;}

/* Buttons */
.svc-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:500;font-size:17px;padding:15px 30px;border-radius:50px;border:2px solid transparent;text-decoration:none;cursor:pointer;transition:all .25s ease;line-height:1;}
.svc-btn-gold{background:#B39352;color:#111;border-color:#B39352;}
.svc-btn-gold:hover{background:#9C7E44;border-color:#9C7E44;color:#111;}
.svc-btn-outline-white{background:transparent;color:#fff;border-color:rgba(255,255,255,.5);}
.svc-btn-outline-white:hover{background:#fff;color:#17335C;}
.svc-btn-outline-navy{background:transparent;color:#17335C;border-color:#cfd8e1;}
.svc-btn-outline-navy:hover{background:#17335C;color:#fff;border-color:#17335C;}
.svc-btn-full{width:100%;margin-top:10px;}

.svc-kicker{display:block;color:#B39352;font-weight:500;font-size:14px !important;letter-spacing:2px;text-transform:uppercase;margin-bottom:12px;}
.svc-h2{font-size:38px !important;color:#17335C;line-height:1.15;margin:0;}
.svc-h2--big{font-size:clamp(2.1rem,3.6vw,3rem);}
.svc-h3{font-size:1.5rem;color:#17335C;margin:38px 0 14px;}
.svc-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px;}
.svc-actions--center{justify-content:center;}
.svc-ico{width:18px;height:18px;flex:0 0 18px;color:#B39352;margin-top:2px;}
.svc-ico--spark{width:17px;height:17px;flex-basis:17px;}

/* Hero */
.svc-hero{position:relative;background:#17335C;color:#fff;overflow:hidden;}
.svc-hero-img{position:absolute;inset:0;z-index:0;background-size:cover;background-position:center;opacity:.25;}
.svc-hero::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#17335C 0%,rgba(23,51,92,.92) 55%,rgba(23,51,92,.55) 100%);}
.svc-hero-inner{position:relative;z-index:2;padding-top:70px;padding-bottom:80px;}
.svc-crumb{display:flex;align-items:center;gap:8px;font-size:.78rem;color:rgba(255,255,255,.6);margin-bottom:14px;}
.svc-crumb a{color:rgba(255,255,255,.6);text-decoration:none;}
.svc-crumb a:hover{color:#B39352;}
.svc-hero h1{color:#fff;font-size:62px !important;line-height:1.12;margin:0;max-width:16em;}
.svc-lead{color:rgba(255,255,255,.82);font-size:20px;line-height:1.6;max-width:40em;margin:18px 0 0;}

/* Intro two-column */
.svc-intro-grid{display:grid;grid-template-columns:3fr 2fr;gap:48px;align-items:start;}
.svc-intro-text{font-size:19px;color:#4a5b6d;line-height:1.75;margin-top:16px;}
.svc-intro-text p{margin:1em 0 1em;}
.svc-benefits{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-direction:column;gap:12px;}
.svc-benefits li{display:flex;gap:12px;color:#223a5e;font-size:1.02rem;line-height:1.5;}
.svc-features{list-style:none;padding:0;margin:16px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:20px 24px;}
.svc-features li{display:flex;gap:9px;font-size:14px;color:#223a5e;line-height:1.4;}
.svc-aside{position:sticky;top:110px;}
.svc-aside-img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:24px;box-shadow:0 14px 34px rgba(23,51,92,.14);}
.svc-estimate-card{margin-top:22px;background:#F4F6F8;border:1px solid #E6EBF0;border-radius:24px;padding:28px;}
.svc-estimate-card h3{font-size:1.5rem;color:#17335C;margin:0 0 8px;}
.svc-estimate-card p{color:#5A6B7D;margin:0 0 18px;line-height:1.6;}

/* Process */
.svc-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:52px;}
.svc-step{position:relative;background:#fff;border:1px solid #E6EBF0;border-radius:24px;padding:34px 30px 30px;box-shadow:0 8px 24px rgba(23,51,92,.06);}
.svc-step-badge{position:absolute;top:-16px;left:30px;background:#B39352;color:#111;font-weight:700;font-size:.85rem;padding:5px 16px;border-radius:50px;}
.svc-step-ico{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:#17335C;color:#B39352;margin-top:6px;}
.svc-step-ico svg{width:26px;height:26px;}
.svc-step h3{font-size:25px !important;color:#17335C;margin:20px 0 8px;}
.svc-step p{color:#5A6B7D;line-height:1.6;margin:0; font-size: 17px !important;}
.svc-financing{text-align:center;color:#5A6B7D;font-size:.95rem;margin-top:30px;}

/* FAQ */
.svc-faq-wrap{max-width:800px;margin:0 auto;}
.svc-faq{margin-top:26px;}
.svc-faq details{border-bottom:1px solid #E6EBF0;padding:18px 2px;}
.svc-faq summary{font-weight:500;color:#17335C;font-size:1.1rem;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;}
.svc-faq summary::-webkit-details-marker{display:none;}
.svc-faq summary::after{content:"\203A";transform:rotate(90deg);transition:transform .2s ease;color:#B39352;font-size:1.4rem;line-height:1;}
.svc-faq details[open] summary::after{transform:rotate(-90deg);}
.svc-faq details>div{box-sizing:border-box;overflow:hidden;padding-top:12px;color:#5A6B7D;line-height:1.7;transition:height .28s ease;}

/* Related services */
.svc-related{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:36px;}
.svc-related-card{display:block;background:#fff;border:1px solid #E6EBF0;border-radius:18px;overflow:hidden;box-shadow:0 6px 18px rgba(23,51,92,.06);text-decoration:none;transition:box-shadow .25s ease,transform .25s ease;}
.svc-related-card:hover{box-shadow:0 16px 34px rgba(23,51,92,.14);transform:translateY(-4px);}
.svc-related-img{display:block;aspect-ratio:4/3;background:#eef2f6 center/cover no-repeat;}
.svc-related-body{display:block;padding:18px 20px 20px;}
.svc-related-name{display:block;color:#17335C;margin:0 0 8px;font-size:21px !important;line-height:1.2;}
.svc-related-more{color:#17335C;font-weight:500;font-size:14px !important;display:inline-flex;gap:6px;align-items:center;}
.svc-related-card:hover .svc-related-more{color:#B39352;}
.svc-arrow{transition:transform .2s ease;display:inline-block;}
.svc-related-card:hover .svc-arrow{transform:translateX(4px);}

/* CTA band */
.svc-cta{background:#0E2244;color:#fff;text-align:center;}
.svc-cta h2{color:#fff;font-size:clamp(1.9rem,3.4vw,2.6rem);margin:0 0 14px;}
.svc-cta p{color:rgba(255,255,255,.75);max-width:44em;margin:0 auto 22px;line-height:1.6;}

/* Responsive */
@media(max-width:980px){
  .svc-intro-grid{grid-template-columns:1fr;}
  .svc-aside{position:static;margin-top:8px;}
  .svc-steps{grid-template-columns:1fr;gap:34px;}
  .svc-related{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:600px){
  .svc-features{grid-template-columns:1fr;}
  .svc-related{grid-template-columns:1fr;}
  .svc-block{padding:52px 0;}
}

/* ============ QUOTE POPUP (sitewide) ============ */
.aole-quote-overlay{position:fixed;inset:0;z-index:99999;background:rgba(14,34,68,.62);display:none;align-items:flex-start;justify-content:center;padding:40px 20px;overflow-y:auto;}
.aole-quote-overlay.open{display:flex;}
.aole-quote-modal{background:#fff;border-radius:18px;max-width:680px;width:100%;padding:36px 40px 32px;position:relative;box-shadow:0 30px 70px rgba(0,0,0,.32);margin:auto;}
.aole-quote-modal h3{font-size:1.6rem;color:#17335C;margin:0 0 6px;}
.aole-quote-sub{color:#5A6B7D;margin:0 0 18px;line-height:1.5;}
.aole-quote-close{position:absolute;top:12px;right:16px;background:none;border:none;font-size:1.9rem;line-height:1;color:#8a98a6;cursor:pointer;padding:0;}
.aole-quote-close:hover{color:#17335C;}
@media(max-width:560px){.aole-quote-modal{padding:26px 22px;}}

/* Quote form (Contact Form 7 inside the popup) */
.aole-quote-form br{display:none;}
.aole-quote-form p{margin:0;}
.aole-quote-form .wpcf7-form-control-wrap{display:block;}
.aole-quote-form input,.aole-quote-form select,.aole-quote-form textarea{margin:0;}
.aole-quote-form .aq-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.aole-quote-form .aq-row .aq-field{margin-bottom:0;}
.aole-quote-form .aq-field{margin-bottom:16px;}
.aole-quote-form .aq-label{display:block;font-weight:600;color:#17335C;font-size:.92rem;margin-bottom:7px;}
.aole-quote-form input[type=text],
.aole-quote-form input[type=email],
.aole-quote-form input[type=tel],
.aole-quote-form select,
.aole-quote-form textarea{width:100%;box-sizing:border-box;padding:13px 15px;border:1px solid #d9e0e7;border-radius:12px;font-size:15px;color:#17335C;background:#fff;font-family:inherit;transition:border-color .2s ease,box-shadow .2s ease;}
.aole-quote-form input:focus,
.aole-quote-form select:focus,
.aole-quote-form textarea:focus{outline:none;border-color:#B39352;box-shadow:0 0 0 3px rgba(179,147,82,.15);}
.aole-quote-form textarea{min-height:96px;resize:vertical;}
/* Segmented radio: Phone / Email / Text */
.aole-quote-form .aq-segment .wpcf7-radio{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.aole-quote-form .aq-segment .wpcf7-list-item{position:relative;margin:0;}
.aole-quote-form .aq-segment .wpcf7-list-item label{display:block;cursor:pointer;position:relative;margin:0;}
.aole-quote-form .aq-segment input[type=radio]{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:2;}
.aole-quote-form .aq-segment .wpcf7-list-item-label{display:block;text-align:center;padding:13px 8px;border:1px solid #d9e0e7;border-radius:12px;color:#17335C;font-weight:600;transition:all .2s ease;}
.aole-quote-form .aq-segment input[type=radio]:checked + .wpcf7-list-item-label{background:#F6EFE1;border-color:#B39352;color:#17335C;}
/* Submit */
.aole-quote-form .wpcf7-submit{width:100%;background:#B39352;color:#111;border:none;font-weight:700;font-size:17px;padding:16px;border-radius:50px;cursor:pointer;margin-top:8px;transition:background .2s ease;}
.aole-quote-form .wpcf7-submit:hover{background:#9C7E44;}
.aole-quote-form .wpcf7-spinner{margin:12px auto 0;display:block;}
.aole-quote-form .wpcf7-response-output{margin:16px 0 0!important;border-radius:10px;font-size:.92rem;}
@media(max-width:560px){
  .aole-quote-form .aq-row{grid-template-columns:1fr;}
  .aole-quote-form .aq-segment .wpcf7-radio{grid-template-columns:1fr;}
}

/* ============ GALLERY (filterable, from service galleries) ============ */
.aole-gallery-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:26px;}
.aole-gfilter{border:1px solid #d9e0e7;background:#fff;color:#17335C;font-weight:600;font-size:14px;padding:9px 18px;border-radius:50px;cursor:pointer;transition:all .2s ease;font-family:inherit;}
.aole-gfilter:hover{border-color:#B39352;}
.aole-gfilter.is-active{background:#B39352;border-color:#B39352;color:#111;}
.aole-gallery-grid{display:grid;gap:14px;grid-template-columns:repeat(3,1fr);}
.aole-gcols-2 .aole-gallery-grid{grid-template-columns:repeat(2,1fr);}
.aole-gcols-4 .aole-gallery-grid{grid-template-columns:repeat(4,1fr);}
.aole-gallery-item{position:relative;display:block;border-radius:16px;overflow:hidden;background:#eef2f6;text-decoration:none;box-shadow:0 6px 18px rgba(23,51,92,.08);line-height:0;}
.aole-gallery-img{display:block;width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s ease;}
.aole-gallery-item:hover .aole-gallery-img{transform:scale(1.06);}
.aole-gallery-tag{position:absolute;left:12px;bottom:12px;z-index:2;background:rgba(14,34,68,.85);color:#fff;font-size:12px;font-weight:600;padding:12px 12px;border-radius:50px;}
.aole-gallery-item.is-hidden{display:none;}
@media(max-width:900px){.aole-gallery-grid,.aole-gcols-4 .aole-gallery-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:560px){.aole-gallery-grid,.aole-gcols-2 .aole-gallery-grid,.aole-gcols-4 .aole-gallery-grid{grid-template-columns:1fr;}}

/* Lightbox */
.aole-lightbox{position:fixed;inset:0;z-index:100000;background:rgba(10,20,40,.9);display:none;align-items:center;justify-content:center;padding:30px;}
.aole-lightbox.open{display:flex;}
.aole-lightbox img{max-width:92vw;max-height:88vh;border-radius:12px;box-shadow:0 20px 60px rgba(0,0,0,.5);}
.aole-lightbox-close{position:absolute;top:16px;right:24px;background:none;border:none;color:#fff;font-size:2.4rem;line-height:1;cursor:pointer;}

/* ============ SERVICE QUICK LINKS (Elementor footer) ============ */
.aole-slinks-title{margin:0 0 14px;font-size:1.05rem;font-weight:700;color:inherit;}
.aole-slinks{list-style:none;margin:0;padding:0;display:grid;gap:10px 26px;}
.aole-slinks-cols-2{grid-template-columns:1fr 1fr;}
.aole-slink a{color:#ffffff;opacity:.82;text-decoration:none;font-size:15px;line-height:1.45;display:inline-block;transition:opacity .2s ease,color .2s ease,transform .2s ease;}
.aole-slink a:hover{opacity:1;color:#B39352;transform:translateX(3px);}
.aole-slink.is-current a{opacity:1;color:#B39352;font-weight:600;}
@media(max-width:560px){.aole-slinks-cols-2{grid-template-columns:1fr;}}

/* ============================================================
   BLOG — archive + single (default WP "post" type)
   ============================================================ */

/* ---- Hero ---- */
.ablog-hero{background:linear-gradient(180deg,#F4F6F8 0%,#fff 100%);text-align:center;padding:66px 0 46px;}
.ablog-hero-inner{max-width:840px;}
.ablog-hero-title{color:#17335C;font-size:clamp(2.3rem,5vw,3.5rem) !important;line-height:1.1;margin:0;letter-spacing:-.5px;}
.ablog-accent{color:#B39352;}
.ablog-hero-lead{color:#5A6B7D;font-size:19px;line-height:1.65;max-width:42em;margin:18px auto 0;}

/* ---- Category chips ---- */
.ablog-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:30px;}
.ablog-filter{border:1px solid #E6EBF0;background:#fff;color:#17335C;font-weight:600;font-size:14px;padding:9px 20px;border-radius:50px;text-decoration:none;transition:all .2s ease;}
.ablog-filter:hover{border-color:#B39352;color:#17335C;}
.ablog-filter.is-active{background:#17335C;border-color:#17335C;color:#fff;}

/* ---- Cards ---- */
.ablog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.ablog-card{display:flex;flex-direction:column;background:#fff;border:1px solid #E6EBF0;border-radius:20px;overflow:hidden;box-shadow:0 6px 18px rgba(23,51,92,.06);transition:transform .25s ease,box-shadow .25s ease;}
.ablog-card:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(23,51,92,.14);}
.ablog-card-media{position:relative;display:block;overflow:hidden;}
.ablog-card-img{display:block;aspect-ratio:16/10;background:#eef2f6 center/cover no-repeat;transition:transform .5s ease;}
.ablog-card:hover .ablog-card-img{transform:scale(1.05);}
.ablog-chip{position:absolute;top:14px;right:14px;background:rgba(14,34,68,.86);color:#fff;font-size:12px;font-weight:600;letter-spacing:.3px;padding:7px 14px;border-radius:50px;}
.ablog-chip--lead{left:14px;right:auto;background:#B39352;color:#111;}
.ablog-card-body{display:flex;flex-direction:column;flex:1;padding:24px 26px 26px;}
.ablog-meta{display:flex;align-items:center;gap:10px;color:#8A98A6;font-size:12.5px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;margin-bottom:12px;}
.ablog-dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:#C9D2DB;}
.ablog-card-title{margin:0 0 10px;font-size:22px !important;line-height:1.3;}
.ablog-card-title a{color:#17335C;text-decoration:none;transition:color .2s ease;}
.ablog-card:hover .ablog-card-title a{color:#B39352;}
.ablog-card-excerpt{color:#5A6B7D;font-size:15.5px;line-height:1.65;margin:0 0 18px;}
.ablog-card-more{margin-top:auto;display:inline-flex;align-items:center;gap:7px;color:#17335C;font-weight:600;font-size:14px;text-decoration:none;}
.ablog-card:hover .ablog-card-more{color:#B39352;}
.ablog-card:hover .ablog-card-more .svc-arrow{transform:translateX(4px);}

/* ---- Lead card (newest post, page 1) ---- */
.ablog-card--lead{display:grid;grid-template-columns:1.05fr 1fr;border-radius:24px;margin-bottom:30px;}
.ablog-card--lead .ablog-card-media{height:100%;}
.ablog-card--lead .ablog-card-img{height:100%;aspect-ratio:auto;min-height:360px;}
.ablog-card--lead .ablog-card-body{justify-content:center;padding:44px 46px;}
.ablog-card--lead .ablog-card-title{font-size:32px !important;}
.ablog-card--lead .ablog-card-excerpt{font-size:17px;}

/* ---- Pagination ---- */
.ablog .pagination{margin-top:52px;display:flex;justify-content:center;}
.ablog .nav-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.ablog .page-numbers{display:grid;place-items:center;min-width:44px;height:44px;padding:0 15px;background:#fff;border:1px solid #E6EBF0;border-radius:50px;color:#17335C;font-weight:600;text-decoration:none;transition:all .2s ease;}
.ablog .page-numbers:hover{border-color:#B39352;}
.ablog .page-numbers.current{background:#17335C;border-color:#17335C;color:#fff;}
.ablog .page-numbers.dots{border-color:transparent;background:none;}
.ablog .pagination .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;}
.ablog-empty{text-align:center;padding:40px 0 20px;}
.ablog-empty p{color:#5A6B7D;margin:12px 0 26px;}

/* ---- Single: reading progress ---- */
.ablog-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:9999;pointer-events:none;}
.ablog-progress-bar{display:block;height:100%;width:0;background:#B39352;}

/* ---- Single: head ---- */
.ablog-hero--post{text-align:left;padding-bottom:40px;}
.ablog-post-head{max-width:820px;}
.ablog-crumb{color:#8A98A6;}
.ablog-crumb a{color:#8A98A6;}
.ablog-crumb a:hover{color:#B39352;}
.ablog-chip--static{position:static;display:inline-block;margin-bottom:18px;background:#F6EFE1;border:1px solid #EADDC2;color:#17335C;text-decoration:none;}
.ablog-chip--static:hover{background:#B39352;border-color:#B39352;color:#111;}
.ablog-post-title{color:#17335C;font-size:clamp(2.05rem,4.2vw,3.05rem) !important;line-height:1.15;margin:0 0 24px;letter-spacing:-.5px;}
.ablog-byline{display:flex;align-items:center;gap:14px;}
.ablog-avatar{border-radius:50%;flex:0 0 auto;}
.ablog-author-name{display:block;color:#17335C;font-weight:700;font-size:15px;}
.ablog-byline-meta{display:flex;align-items:center;gap:9px;color:#8A98A6;font-size:13.5px;margin-top:2px;}
.ablog-featured{margin-top:6px;}
.ablog-featured img{display:block;width:100%;max-height:520px;object-fit:cover;border-radius:24px;box-shadow:0 18px 44px rgba(23,51,92,.16);}
.ablog-body--pulled{padding-top:54px;}

/* ---- Single: layout ---- */
.ablog-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:56px;align-items:start;}
.aole-prose{max-width:760px;font-size:19px;line-height:1.8;color:#3F4F61;}
.aole-prose>*:first-child{margin-top:0;}
.aole-prose p{margin:0 0 1.35em;}
.aole-prose h2{color:#17335C;font-size:32px !important;line-height:1.25;margin:1.9em 0 .55em;}
.aole-prose h3{color:#17335C;font-size:24px !important;line-height:1.3;margin:1.7em 0 .5em;}
.aole-prose h4{color:#17335C;font-size:20px !important;margin:1.6em 0 .5em;}
.aole-prose a{color:#17335C;text-decoration:underline;text-decoration-color:#B39352;text-decoration-thickness:2px;text-underline-offset:3px;}
.aole-prose a:hover{color:#B39352;}
.aole-prose ol{margin:0 0 1.35em;padding-left:1.3em;}
.aole-prose ul{list-style:none;margin:0 0 1.35em;padding-left:0;}
.aole-prose ul li{position:relative;padding-left:26px;}
.aole-prose ul li::before{content:"";position:absolute;left:6px;top:.68em;width:7px;height:7px;border-radius:50%;background:#B39352;}
.aole-prose li{margin-bottom:.55em;}
.aole-prose img{max-width:100%;height:auto;border-radius:18px;display:block;}
.aole-prose figure{margin:2em 0;}
.aole-prose figcaption{color:#8A98A6;font-size:14px;text-align:center;margin-top:10px;}
.aole-prose blockquote{margin:2em 0;padding:4px 0 4px 26px;border-left:4px solid #B39352;color:#17335C;font-size:21px;line-height:1.6;font-style:italic;}
.aole-prose blockquote p:last-child{margin-bottom:0;}
.aole-prose hr{border:none;border-top:1px solid #E6EBF0;margin:2.4em 0;}
.aole-prose code{background:#F4F6F8;border:1px solid #E6EBF0;border-radius:6px;padding:2px 7px;font-size:.88em;}
.aole-prose pre{background:#0E2244;color:#E8EEF7;border-radius:16px;padding:22px 24px;overflow-x:auto;font-size:15px;line-height:1.6;}
.aole-prose pre code{background:none;border:none;padding:0;color:inherit;}
.aole-prose table{width:100%;border-collapse:collapse;margin:2em 0;font-size:16px;}
.aole-prose th,.aole-prose td{border:1px solid #E6EBF0;padding:12px 14px;text-align:left;}
.aole-prose th{background:#F4F6F8;color:#17335C;}
.ablog-linkpages{margin-top:24px;display:flex;gap:8px;color:#5A6B7D;font-weight:600;}

/* ---- Single: tags + share rail ---- */
.ablog-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px;padding-top:26px;border-top:1px solid #E6EBF0;}
.ablog-tags a{background:#F4F6F8;border:1px solid #E6EBF0;color:#17335C;font-size:13px;font-weight:600;padding:7px 15px;border-radius:50px;text-decoration:none;transition:all .2s ease;}
.ablog-tags a:hover{border-color:#B39352;color:#B39352;}
.ablog-aside{position:sticky;top:110px;}
.ablog-share{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:22px;}
.ablog-share-label{color:#8A98A6;font-size:12.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;}
.ablog-share-btn{display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid #E6EBF0;border-radius:50%;background:#fff;color:#17335C;cursor:pointer;transition:all .2s ease;}
.ablog-share-btn svg{width:17px;height:17px;}
.ablog-share-btn:hover{background:#17335C;border-color:#17335C;color:#fff;}
.ablog-share-btn.is-copied{background:#B39352;border-color:#B39352;color:#111;}

/* ---- Single: author box, prev/next ---- */
.ablog-authorbox-wrap,.ablog-nav-wrap{padding-top:0;}
.ablog-authorbox{display:flex;gap:22px;align-items:flex-start;max-width:820px;margin:0 auto;background:#F4F6F8;border:1px solid #E6EBF0;border-radius:24px;padding:30px 32px;}
.ablog-authorbox h3{color:#17335C;font-size:22px !important;margin:0 0 8px;}
.ablog-authorbox p{color:#5A6B7D;line-height:1.7;margin:0;}
.ablog-nav{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:820px;margin:0 auto;}
.ablog-nav-item{background:#fff;border:1px solid #E6EBF0;border-radius:18px;padding:20px 24px;text-decoration:none;transition:all .25s ease;}
.ablog-nav-item:hover{border-color:#B39352;transform:translateY(-3px);}
.ablog-nav-item--next{text-align:right;}
.ablog-nav-dir{display:block;color:#B39352;font-size:12.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:8px;}
.ablog-nav-title{display:block;color:#17335C;font-weight:600;line-height:1.35;}

/* ---- Blog responsive ---- */
@media(max-width:1024px){
  .ablog-layout{grid-template-columns:1fr;gap:38px;}
  .ablog-aside{position:static;}
  .aole-prose{max-width:none;}
}
@media(max-width:900px){
  .ablog-grid{grid-template-columns:repeat(2,1fr);}
  .ablog-card--lead{grid-template-columns:1fr;}
  .ablog-card--lead .ablog-card-img{min-height:240px;}
  .ablog-card--lead .ablog-card-body{padding:28px 26px 30px;}
  .ablog-card--lead .ablog-card-title{font-size:26px !important;}
}
@media(max-width:600px){
  .ablog-hero{padding:44px 0 34px;}
  .ablog-grid,.ablog-nav{grid-template-columns:1fr;}
  .aole-prose{font-size:17.5px;}
  .aole-prose h2{font-size:26px !important;}
  .aole-prose h3{font-size:21px !important;}
  .ablog-featured img{max-height:280px;border-radius:18px;}
  .ablog-authorbox{flex-direction:column;gap:16px;padding:26px 24px;}
  .ablog-nav-item--next{text-align:left;}
}

/* ============================================================
   TRANSPARENT HEADER OFFSET
   The site header sits in the flow, so plugin templates pull their hero up
   underneath it (same negative margin used on the Elementor pages) and add
   that height back as padding so the H1 clears the header.
   Tune ONE number: --aole-header-h = the header's total height.
   ============================================================ */
:root{--aole-header-h:110px;}

.aole-single .svc-hero,
.aole-single .ablog-hero{margin-top:calc(var(--aole-header-h) * -1);}
.aole-single .svc-hero-inner{padding-top:calc(70px + var(--aole-header-h));}
.aole-single .ablog-hero{padding-top:calc(66px + var(--aole-header-h));}

/* Keep the header painting above the hero we just slid under it. */
.aole-single .svc-hero,
.aole-single .ablog-hero{z-index:0;}

@media(max-width:900px){
  :root{--aole-header-h:92px;}
  .aole-single .ablog-hero{padding-top:calc(44px + var(--aole-header-h));}
}


/* ============================================================
   HIDE-ON-SCROLL HEADER ("headroom")
   Two elements do two jobs:
     .aole-hh-root  the header wrapper — sticky, so it pins to the top and
                    keeps its space in the flow (fixed would break the
                    negative-margin hero offset above)
     .aole-hh       the capsule (.blur-header) — carries the slide + the
                    .is-stuck hook you style
   Sticky can't be put on the capsule itself: a sticky element is trapped
   inside its parent's box, so it would scroll away with the wrapper.
   ============================================================ */
.aole-hh-root{position:sticky;top:0;z-index:999;transition:transform .35s cubic-bezier(.22,.61,.36,1);}
.aole-hh-root.is-hidden{transform:translateY(calc(-100% - 30px));}

/* Slide the capsule only (use INSTEAD of the two rules above when the wrapper
   has its own background band you want left in place):
   .aole-hh{transition:transform .35s cubic-bezier(.22,.61,.36,1);}
   .aole-hh.is-hidden{transform:translateY(calc(-100% - 30px));} */

/* .is-stuck is still applied to .blur-header once the page scrolls off the top —
   left unstyled on purpose; add your own rule there if you want one. */

/* Sit below the WP admin bar when logged in (not fixed on small screens). */
body.admin-bar .aole-hh-root{top:32px;}
@media(max-width:782px){body.admin-bar .aole-hh-root{top:0;}}
@media(prefers-reduced-motion:reduce){.aole-hh-root{transition:none;}}

/* ============================================================
   CLICK (:active) STATE
   Browsers ship a default active-link color (a red/pink) that shows for as
   long as the mouse is held down, whenever a rule doesn't cover :active.
   Scoped to links with no class, so buttons keep their own colors.
   ============================================================ */
html{-webkit-tap-highlight-color:transparent;}
a:active:not([class]){color:inherit;}

/* ============================================================
   REVIEWS — cards for the "review" post type
   ============================================================ */
.aole-reviews{display:grid;gap:24px;grid-template-columns:repeat(4,1fr);align-items:start;}
.aole-rcols-1{grid-template-columns:1fr;}
.aole-rcols-2{grid-template-columns:repeat(2,1fr);}
.aole-rcols-3{grid-template-columns:repeat(3,1fr);}

.aole-review-card{display:flex;flex-direction:column;gap:18px;background:#fff;border:1px solid #E6EBF0;border-radius:18px;padding:28px 26px;box-shadow:0 6px 20px rgba(23,51,92,.07);transition:box-shadow .25s ease,transform .25s ease;}
.aole-review-card:hover{box-shadow:0 16px 34px rgba(23,51,92,.12);transform:translateY(-3px);}

/* Stars */
.aole-review-stars{display:flex;gap:5px;}
.aole-star{display:block;width:17px;height:17px;color:#DDE3EA;}
.aole-star.is-filled{color:#B39352;}
.aole-star svg{display:block;width:100%;height:100%;}

/* Quote */
.aole-review-text{margin:0;padding:0;border:none;font-style:normal;color:#17335C;font-size:16.5px;line-height:1.65;}
.aole-review-text::before{content:"\201C";}
.aole-review-text::after{content:"\201D";}

/* Person row */
.aole-review-person{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:4px;}
.aole-review-avatar{width:44px;height:44px;flex:0 0 44px;border-radius:50%;object-fit:cover;background:#F4F6F8;}
.aole-review-avatar--empty{display:grid;place-items:center;overflow:hidden;color:#C2CCD6;background:#F4F6F8;}
.aole-review-avatar--empty svg{width:100%;height:100%;display:block;}
.aole-review-who{display:flex;flex-direction:column;gap:2px;min-width:0;}
.aole-review-name{color:#17335C;font-weight:700;font-size:15px;line-height:1.3;}
.aole-review-loc{color:#8A98A6;font-size:13.5px;line-height:1.3;}

@media(max-width:1024px){.aole-reviews,.aole-rcols-3{grid-template-columns:repeat(2,1fr);}}
@media(max-width:600px){.aole-reviews,.aole-rcols-2,.aole-rcols-3{grid-template-columns:1fr;}}

/* ---- Reviews marquee (always scrolling, pauses on hover) ---- */
.aole-reviews-marquee{position:relative;overflow:hidden;padding:6px 0 14px;}
/* Soften both edges so cards enter and leave instead of being chopped off. */
.aole-reviews-marquee{-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);}
.aole-reviews-track{display:flex;align-items:stretch;width:max-content;animation:aole-marquee var(--aole-marquee-duration,40s) linear infinite;}
/* Spacing lives on the card, not on flex gap: the track must be an exact
   multiple of one set's width or the loop point drifts. */
.aole-reviews-track .aole-review-card{flex:0 0 330px;margin-right:24px;}
.aole-reviews-track .aole-rclone{display:flex;}
.aole-reviews-marquee:hover .aole-reviews-track,
.aole-reviews-marquee:focus-within .aole-reviews-track{animation-play-state:paused;}
@keyframes aole-marquee{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@media(max-width:600px){
  .aole-reviews-track .aole-review-card{flex-basis:280px;margin-right:16px;}
}
/* No animation for anyone who asked for less motion: drop the duplicates and
   let the real reviews scroll by hand instead. */
@media(prefers-reduced-motion:reduce){
  .aole-reviews-track{animation:none;}
  .aole-reviews-track .aole-rclone{display:none;}
  .aole-reviews-marquee{overflow-x:auto;-webkit-mask-image:none;mask-image:none;}
}

/* Too few reviews to scroll: a plain centred row, no duplicates, no motion. */
.aole-reviews--few{display:flex;flex-wrap:wrap;justify-content:center;gap:24px;grid-template-columns:none;}
.aole-reviews--few .aole-review-card{flex:0 1 330px;}
.aole-reviews-marquee.is-static{-webkit-mask-image:none;mask-image:none;}
.aole-reviews-marquee.is-static .aole-reviews-track{animation:none;width:100%;justify-content:center;flex-wrap:wrap;gap:24px;}
.aole-reviews-marquee.is-static .aole-rclone{display:none;}
.aole-reviews-marquee.is-static .aole-review-card{margin-right:0;flex:0 1 330px;}

/* Single-service gallery section spacing (reuses .aole-gallery grid + lightbox) */
.svc-gallery-sec .aole-gallery{margin-top:26px;}
.svc-gallery-sec .aole-gallery-item{cursor:zoom-in;}
