/* Premium layout for the service and city landing pages (their content is plain HTML from the page generator:
   .hero, .section-*, .services-grid, .about-*, .stats-*, .cta-*, .map-*). Everything is scoped to .vl-body. */

/* the navigation sits over the landing hero */
body.vmc-landing .vp-chrome{position:absolute;top:0;left:0;right:0;z-index:20}
body.admin-bar.vmc-landing .vp-chrome{top:32px}
body.vmc-landing .vp-hero{background:transparent}
body.vmc-landing .vp-waves{display:none}

.vl-body{font-family:var(--sans);color:var(--text2);font-size:17px;line-height:1.7}
.vl-body *,.vl-body *::before,.vl-body *::after{box-sizing:border-box}
.vl-body .page{display:block;min-height:0;overflow:visible}
.vl-body i[class*="fa-"]{display:none}
.vl-body h1,.vl-body h2,.vl-body h3,.vl-body p{margin:0}
.vl-body a{color:inherit}
.vl-body img{max-width:100%;height:auto}

/* hero */
.vl-body .hero{position:relative;isolation:isolate;overflow:hidden;background:var(--cream);color:#000;padding:calc(240*var(--u)) 0 calc(104*var(--u))}
.vl-body .hero::before{content:"";position:absolute;left:0;right:0;top:calc(-300*var(--u));height:calc(100% + 300*var(--u));background:url(../img/svc-hero-waves.webp) center top/cover no-repeat;opacity:.6;mix-blend-mode:multiply;z-index:-1;pointer-events:none}
.vl-body .hero-container{width:min(1338px,calc(100% - 48px));margin:0 auto}
.vl-body .hero-content{max-width:calc(980*var(--u));text-align:left}
.vl-body .hero-badge{display:inline-block;font-size:max(11px,calc(13*var(--u)));font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--brown)}
.vl-body .hero-title{margin-top:calc(30*var(--u));font-family:var(--serif);font-weight:500;font-size:calc(64*var(--u));line-height:1.14;color:#000}
.vl-body .hero-title::first-letter{font-family:var(--script);font-weight:400;font-size:1.95em;line-height:.6}
.vl-body .hero-subtitle{margin-top:calc(22*var(--u));max-width:calc(680*var(--u));font-size:max(15px,calc(18*var(--u)));line-height:1.65;color:var(--text2)}
.vl-body .hero-cta-group{display:flex;flex-wrap:wrap;gap:12px;margin-top:calc(34*var(--u))}

/* buttons */
.vl-body .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:12px 28px;border:1px solid var(--text2);border-radius:999px;font-family:var(--sans);font-size:14px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:var(--text2);background:none;transition:background .25s,color .25s}
.vl-body .btn-primary{background:var(--brown);border-color:var(--brown);color:var(--cream)}
.vl-body .btn:hover{background:var(--text2);color:var(--cream)}

/* sections */
.vl-body section{position:relative}
.vl-body .services-section,.vl-body .about-section,.vl-body .map-section,.vl-body .faq-section{padding:calc(96*var(--u)) 0 0}
.vl-body .section-container,.vl-body .stats-container,.vl-body .cta-container{width:min(1180px,calc(100% - 48px));margin:0 auto}
.vl-body .section-header{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;margin-bottom:calc(48*var(--u))}
.vl-body .section-badge{font-size:12px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--rose);display:flex;align-items:center;gap:14px}
.vl-body .section-badge::before,.vl-body .section-badge::after{content:"";width:40px;height:1px;background:currentColor;opacity:.55}
.vl-body .section-title{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.1vw,46px);line-height:1.2;color:#000}
.vl-body .section-description{max-width:760px;font-size:16px;line-height:1.7;color:#4b3f3c}

.vl-body .services-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:24px}
.vl-body .service-card{display:flex;flex-direction:column;gap:12px;padding:30px 28px 24px;border:1px solid #000;border-radius:24px;background:transparent;transition:background .3s}
.vl-body .service-card:hover{background:rgba(223,202,175,.3)}
.vl-body .service-icon{display:none}
.vl-body .service-title{font-family:var(--serif);font-weight:400;font-size:26px;line-height:1.25;color:#000}
.vl-body .service-description{font-size:15px;line-height:1.7;color:var(--text2)}
.vl-body .service-link{align-self:flex-end;margin-top:auto;font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;color:#000;display:inline-flex;align-items:center;gap:8px}
.vl-body .service-link::after{content:"";width:26px;height:26px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.2'%3E%3Ccircle cx='12' cy='12' r='11'/%3E%3Cpath d='M7 12h10M13 8l4 4-4 4'/%3E%3C/svg%3E") center/contain no-repeat}

.vl-body .about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}
.vl-body .about-content{display:flex;flex-direction:column;gap:18px}
.vl-body .about-content h2{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3vw,44px);line-height:1.2;color:#000}
.vl-body .about-content p{font-size:16px;line-height:1.75}
.vl-body .about-image img{display:block;width:100%;border-radius:24px;object-fit:cover;aspect-ratio:4/5}
.vl-body .about-features{display:grid;gap:14px;margin-top:8px}
.vl-body .about-feature{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:16px;background:rgba(223,202,175,.32)}
.vl-body .about-feature-icon{flex:none;width:26px;height:26px;border-radius:50%;background:var(--rose) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f3eeeb' stroke-width='2.4'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") center/14px no-repeat}
.vl-body .about-feature-content h3{font-family:var(--serif);font-weight:500;font-size:19px;color:#000}
.vl-body .about-feature-content p{font-size:15px;line-height:1.6}

.vl-body .stats-section{margin-top:calc(96*var(--u));background:var(--brown);color:var(--cream);padding:calc(36*var(--u)) 0}
.vl-body .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);text-align:center}
.vl-body .stat-item{position:relative;display:flex;flex-direction:column;gap:8px;align-items:center;padding:10px 8px}
.vl-body .stat-item+.stat-item::before{content:"";position:absolute;left:0;top:16%;bottom:16%;width:1px;background:rgba(223,202,175,.3)}
.vl-body .stat-icon{display:none}
.vl-body .stat-number{font-family:'Playfair Display SC',var(--serif);font-style:italic;font-size:clamp(34px,3.4vw,50px);line-height:1}
.vl-body .stat-label{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--tan)}

.vl-body .cta-section{width:min(1335px,calc(100% - 32px));margin:calc(96*var(--u)) auto 0;padding:calc(72*var(--u)) 24px;border-radius:24px;overflow:hidden;isolation:isolate;position:relative;background:var(--rose);color:var(--light);text-align:center}
.vl-body .cta-section::before{content:"";position:absolute;inset:0;background:url(../img/cta-waves.webp) center/cover;mix-blend-mode:overlay;opacity:.2;z-index:-1}
.vl-body .cta-container{display:flex;flex-direction:column;align-items:center;gap:22px}
.vl-body .cta-title{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.2vw,46px);line-height:1.25;color:var(--light)}
.vl-body .cta-description{max-width:620px;font-size:16px;line-height:1.6;color:var(--light)}
.vl-body .cta-section .btn{border-color:var(--light);color:var(--light);background:none}
.vl-body .cta-section .btn:hover{background:var(--light);color:var(--rose)}

.vl-body .map-container,.vl-body .map-wrapper{width:100%}
.vl-body .map-wrapper iframe,.vl-body iframe{display:block;width:100%!important;max-width:100%;height:auto!important;aspect-ratio:16/8;border:0;border-radius:24px}

@media (max-width:1099px){
  body.vmc-landing .vp-chrome{position:absolute}
  .vl-body{font-size:16px}
  .vl-body .hero{padding:calc(150*var(--u)) 0 calc(64*var(--u))}
  .vl-body .hero-container,.vl-body .section-container,.vl-body .stats-container,.vl-body .cta-container{width:calc(100% - 40px)}
  .vl-body .hero-title{font-size:calc(40*var(--u))}
  .vl-body .services-section,.vl-body .about-section,.vl-body .map-section,.vl-body .faq-section{padding-top:64px}
  .vl-body .about-grid{grid-template-columns:1fr;gap:32px}
  .vl-body .stats-grid{grid-template-columns:repeat(2,1fr);row-gap:18px}
  .vl-body .stat-item:nth-child(3)::before{display:none}
  .vl-body .cta-section,.vl-body .stats-section{margin-top:64px}
}
@media (max-width:782px){body.admin-bar.vmc-landing .vp-chrome{top:46px}}
