/* Location directory and local landing pages */
.franchise-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.85fr);align-items:start;gap:clamp(2rem,7vw,7rem);padding:clamp(2rem,6vw,5rem) 0}
.franchise-intro .section-title{max-width:720px;margin:1rem 0 1.25rem}
.franchise-intro .section-lede{max-width:600px}
.franchise-note{max-width:500px;margin-top:2rem;color:#596c64;line-height:1.7}
.franchise-form-card{border:1px solid rgba(24,48,40,.14);border-radius:1.25rem;background:#fff;padding:clamp(1.25rem,3vw,2rem);box-shadow:0 15px 40px rgba(28,57,46,.06)}
.franchise-form{display:grid;gap:1.1rem}
.franchise-field{display:grid;gap:.45rem}
.franchise-field label{font-size:.9rem;font-weight:600;color:#193b32}
.franchise-field label span{color:#a84230}
.franchise-field input,.franchise-field textarea{width:100%;min-height:48px;border:1px solid #cbd5d0;border-radius:.55rem;background:#fff;padding:.75rem .85rem;color:#193b32;font:inherit}
.franchise-field textarea{min-height:135px;resize:vertical}
.franchise-field input:focus,.franchise-field textarea:focus{border-color:#176c52;outline:3px solid rgba(23,108,82,.14)}
.franchise-submit{justify-self:start;gap:.6rem}
.franchise-notice{margin-bottom:1.25rem;border-radius:.6rem;padding:.85rem 1rem;line-height:1.55}
.franchise-notice-success{background:#e7f4ed;color:#174d36}
.franchise-notice-error{background:#fff0ed;color:#8a2d21}
.franchise-honeypot{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.store-location-link{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;color:inherit;text-decoration:none}
.store-location-link:hover h3,.store-location-link:focus-visible h3{color:var(--color-primary,#176c52)}
.location-directory-page{min-height:60vh}
.location-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.location-card{display:flex;min-height:190px;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:1.25rem;border:1px solid rgba(24,48,40,.15);border-radius:1rem;background:#fff;padding:1.5rem;color:#193b32;text-decoration:none;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.location-card:hover,.location-card:focus-visible{transform:translateY(-3px);border-color:#80a99a;box-shadow:0 12px 30px rgba(28,57,46,.08)}
.location-card:focus-visible,.location-hero-index a:focus-visible,.location-fact a:focus-visible,.location-all-link:focus-visible{outline:3px solid #de7b4c;outline-offset:3px}
.location-card-index{font-family:"DM Mono",monospace;font-size:.68rem;letter-spacing:.1em;color:#687970}
.location-card-name{font-family:Outfit,sans-serif;font-size:1.45rem;font-weight:600;line-height:1.15}
.location-card-action,.location-hero-index a,.location-fact a,.location-all-link{display:inline-flex;align-items:center;gap:.5rem;font-size:.86rem;font-weight:600;color:#176c52;text-decoration:none}
.location-main{padding:1.5rem 0 5rem}
.location-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,.7fr);align-items:center;gap:clamp(2rem,7vw,7rem);padding:clamp(2rem,6vw,5.5rem) 0 4rem}
.location-hero-copy h1{margin:1rem 0;font-family:Outfit,sans-serif;font-size:clamp(3rem,7vw,6.5rem);font-weight:600;letter-spacing:-.055em;line-height:.98}
.location-hero-copy h1 em{color:#176c52;font-style:normal}
.location-intro{max-width:640px;color:#596c64;font-size:1.1rem;line-height:1.7}
.location-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.75rem}
.location-hero-index{position:relative;overflow:hidden;border-radius:1.25rem;background:#193b32;padding:2rem;color:#fff}
.location-hero-index:after{position:absolute;right:-35px;bottom:-90px;width:230px;height:230px;border:1px solid rgba(255,255,255,.18);border-radius:50%;content:""}
.location-hero-index>.eyebrow{color:#c3ded2}
.location-hero-index>strong{display:block;margin:.5rem 0;font-family:Outfit,sans-serif;font-size:6rem;font-weight:500;line-height:1}
.location-hero-index>span:nth-of-type(2){color:#d8e7e0;font-size:.9rem}
.location-index-rule{display:block;width:100%;height:1px;margin:1.4rem 0;background:rgba(255,255,255,.25)}
.location-hero-index p{max-width:260px;color:#e1ece7;line-height:1.65}
.location-hero-index a{position:relative;z-index:1;color:#f0bc8e}
.location-facts{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(24,48,40,.15);border-bottom:1px solid rgba(24,48,40,.15)}
.location-fact{padding:2rem 2.5rem 2rem 0}
.location-fact+.location-fact{border-left:1px solid rgba(24,48,40,.15);padding-left:2.5rem}
.location-fact h2{margin:.65rem 0;font-family:Outfit,sans-serif;font-size:1.7rem}
.location-fact p{color:#596c64;line-height:1.65}
.location-fact-note a{margin-top:.25rem}
.location-directory-section{padding-top:4.5rem}
.location-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:1.5rem}
.location-section-heading h2{margin:.5rem 0;font-family:Outfit,sans-serif;font-size:clamp(2rem,4vw,3.2rem);line-height:1.05}
.location-directory-compact{grid-template-columns:repeat(2,minmax(0,1fr))}
.location-directory-compact .location-card{min-height:150px}
.location-editor-content{margin:2rem 0}
@media(max-width:760px){.franchise-layout{grid-template-columns:1fr}.location-directory{grid-template-columns:repeat(2,minmax(0,1fr))}.location-hero{grid-template-columns:1fr;padding:2.5rem 0}.location-hero-index{max-width:none}.location-facts{grid-template-columns:1fr}.location-fact{padding:1.5rem 0}.location-fact+.location-fact{border-top:1px solid rgba(24,48,40,.15);border-left:0;padding-left:0}.location-section-heading{align-items:flex-start;flex-direction:column}.location-directory-compact{grid-template-columns:1fr}}
@media(max-width:480px){.location-directory{grid-template-columns:1fr}.location-card{min-height:150px}.location-main{padding-top:.75rem}}
/* Keep Elementor starter layouts aligned with the original service/location design. */
body .elementor .service-detail-hero,
body .elementor .service-information,
body .elementor .service-rate-panel,
body .elementor .location-hero,
body .elementor .location-facts{display:grid!important;align-items:center}
body .elementor .service-detail-hero{grid-template-columns:minmax(0,1.35fr) minmax(15rem,.65fr)!important;gap:clamp(2rem,7vw,7rem)!important;min-height:28rem;padding:5.5rem 0 5rem;border-bottom:1px solid rgba(27,57,47,.14)}
body .elementor .service-information{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:clamp(2rem,8vw,8rem)!important;padding:4rem 0;border-bottom:1px solid rgba(27,57,47,.14)}
body .elementor .service-rate-panel{grid-template-columns:minmax(0,.95fr) minmax(17rem,1.05fr)!important;gap:3rem!important;margin-top:3.5rem;padding:clamp(1.5rem,4vw,3rem);border:1px solid rgba(27,57,47,.13);border-radius:1rem 1rem 1rem .3rem;background:rgba(255,255,255,.68)}
body .elementor .service-detail-actions,
body .elementor .location-actions{display:flex!important;flex-direction:row!important;flex-wrap:wrap;gap:.75rem!important;margin-top:1.8rem}
body .elementor .service-detail-index{display:flex;min-height:18rem;flex-direction:column;align-items:flex-start;justify-content:center;overflow:hidden;padding:2rem}
body .elementor .service-detail-bottom{margin-top:5.5rem;padding:3.2rem 0;border-top:1px solid rgba(27,57,47,.14);text-align:center}
body .elementor .location-hero{grid-template-columns:minmax(0,1.35fr) minmax(17rem,.65fr)!important;gap:clamp(2rem,7vw,7rem)!important;min-height:32rem;padding:5.2rem 0 4.8rem;border-bottom:1px solid rgba(27,57,47,.14)}
body .elementor .location-facts{grid-template-columns:.9fr 1.1fr!important;gap:clamp(2rem,8vw,8rem)!important;padding:3.6rem 0;border-bottom:1px solid rgba(27,57,47,.14)}
body .elementor .service-detail-copy .elementor-widget-heading h1,
body .elementor .location-hero-copy .elementor-widget-heading h1{font-family:var(--app-font-serif);font-size:clamp(3.3rem,8vw,7.2rem);font-weight:700;letter-spacing:-.07em;line-height:.9}
body .elementor .service-detail-copy .service-detail-intro,
body .elementor .location-hero-copy .location-intro{max-width:38rem;color:hsl(var(--muted-foreground));font-size:clamp(1rem,1.5vw,1.16rem);line-height:1.8}
body .elementor .elementor-widget-button.button-primary .elementor-button{min-height:3rem;border-radius:999px;background:#193b32;color:#fff}
body .elementor .elementor-widget-button.button-secondary .elementor-button{min-height:3rem;border:1px solid rgba(27,57,47,.22);border-radius:999px;background:transparent;color:#193b32}
body .elementor .location-hero-index{display:flex;min-height:21rem;flex-direction:column;align-items:flex-start;justify-content:center;overflow:hidden;padding:2rem}
body .elementor .location-hero-index .elementor-widget-heading h1,
body .elementor .location-hero-index .elementor-widget-heading h2,
body .elementor .location-hero-index .elementor-widget-text-editor strong{font-family:var(--app-font-serif);font-size:7rem;letter-spacing:-.09em;line-height:.9}
body .elementor .service-detail-hero>.e-con-inner{display:grid!important;grid-template-columns:minmax(0,1.35fr) minmax(15rem,.65fr);align-items:center;gap:clamp(2rem,7vw,7rem)}
body .elementor .service-information>.e-con-inner{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2rem,8vw,8rem)}
body .elementor .service-rate-panel>.e-con-inner{display:grid!important;grid-template-columns:minmax(0,.95fr) minmax(17rem,1.05fr);align-items:center;gap:3rem}
body .elementor .location-hero>.e-con-inner{display:grid!important;grid-template-columns:minmax(0,1.35fr) minmax(17rem,.65fr);align-items:center;gap:clamp(2rem,7vw,7rem)}
body .elementor .location-facts>.e-con-inner{display:grid!important;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,8vw,8rem)}
@media(max-width:760px){body .elementor .service-detail-hero,body .elementor .service-information,body .elementor .service-rate-panel,body .elementor .location-hero,body .elementor .location-facts{grid-template-columns:1fr!important;gap:1.5rem!important}.location-hero-index{max-width:none}}
@media(max-width:760px){body .elementor .service-detail-hero>.e-con-inner,body .elementor .service-information>.e-con-inner,body .elementor .service-rate-panel>.e-con-inner,body .elementor .location-hero>.e-con-inner,body .elementor .location-facts>.e-con-inner{grid-template-columns:1fr!important;gap:1.5rem}}
.lxp-menu { display: flex; align-items: center; gap: 1.7rem; margin: 0; padding: 0; list-style: none; }
/* Preserve original detail-page typography against Elementor's global kit styles. */
body .service-detail .service-detail-copy h1{max-width:12ch;margin-top:1.25rem;color:hsl(var(--foreground));font-family:var(--app-font-serif);font-size:clamp(3.3rem,8vw,7.5rem);font-weight:700;letter-spacing:-.07em;line-height:.9}
body .location-main .location-hero-copy h1{margin:1rem 0;color:hsl(var(--foreground));font-family:Outfit,sans-serif;font-size:clamp(3rem,7vw,6.5rem);font-weight:600;letter-spacing:-.055em;line-height:.98}
body .service-detail .service-info-block h2,body .service-detail .service-rate-panel h2,body .service-detail .service-detail-bottom h2{margin-top:1.1rem;color:hsl(var(--foreground));font-family:var(--app-font-serif);font-size:clamp(1.8rem,3vw,2.8rem);font-weight:650;letter-spacing:-.055em;line-height:1.02}
body .service-detail a.button-primary,body .location-main a.button-primary{color:hsl(var(--primary-foreground));background:hsl(var(--primary));font-size:.82rem;font-weight:700;text-decoration:none}
body .service-detail a.button-secondary,body .location-main a.button-secondary{color:hsl(var(--primary));font-size:.82rem;font-weight:700;text-decoration:none}
body .service-detail a.button-secondary:hover,body .location-main a.button-secondary:hover{color:hsl(var(--primary-foreground))}
.lxp-menu li { margin: 0; padding: 0; list-style: none; }
.lxp-menu .sub-menu { margin-top: .75rem; padding-left: 1rem; }
.lxp-editor-content { padding-block: 2rem; line-height: 1.8; }
.lxp-editor-content > * + * { margin-top: 1.25rem; }
.lxp-editor-content h2, .lxp-editor-content h3 { font-family: var(--app-font-serif); line-height: 1.15; }
.lxp-editor-content h2 { font-size: 2rem; }
.lxp-editor-content h3 { font-size: 1.5rem; }
.lxp-editor-content ul, .lxp-editor-content ol { padding-left: 1.5rem; }
.lxp-editor-content ul { list-style: disc; }
.lxp-editor-content ol { list-style: decimal; }
.lxp-editor-content a { text-decoration: underline; text-underline-offset: .2rem; }
.lxp-editor-content .button-primary { text-decoration: none; }
.lxp-editor-content img { max-width: 100%; height: auto; }
.lxp-editor-content .wp-block-image { margin-block: 1.5rem; }
.lxp-editor-content article + article { margin-top: 3rem; }
.alignwide { width: 100%; }
.alignfull { max-width: none; }
.mobile-toggle .mobile-close-icon { display: none; }
.mobile-toggle[aria-expanded="true"] .mobile-menu-icon { display: none; }
.mobile-toggle[aria-expanded="true"] .mobile-close-icon { display: block; }
.footer .brand-mark { position: static; transform: none; }
@media (max-width: 1060px) {
  .lxp-menu { display: grid; gap: 1rem; align-items: start; }
}
