.elementor-kit-5068{--e-global-color-primary:#0B3D6E;--e-global-color-secondary:#1D6FA5;--e-global-color-text:#111827;--e-global-color-accent:#C4480A;--e-global-typography-primary-font-family:"Montserrat";--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-family:"Montserrat";--e-global-typography-secondary-font-weight:700;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Inter";--e-global-typography-accent-font-weight:600;color:#111827;font-family:"Inter", Sans-serif;font-weight:400;}.elementor-kit-5068 e-page-transition{background-color:#FFBC7D;}.elementor-kit-5068 a{color:#1D6FA5;}.elementor-kit-5068 a:hover{color:#0B3D6E;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --color-primary:#0B3D6E; --color-primary-dark:#072A4D; --color-accent:#C4480A; --color-accent-dark:#A63D0A; --color-secondary:#1D6FA5; --color-text:#111827; --color-text-muted:#374151; --color-border-strong:#9CA3AF; --color-border:#E5E7EB; --color-surface-alt:#F3F4F6; --color-surface:#FFFFFF; --color-success:#15803D; --color-warning:#B45309; --color-error:#B91C1C; --color-rating:#FBBF24; --font-heading:Montserrat; --font-body:Inter; --size-display:clamp(2.25rem, 1.6rem + 3vw, 3.5rem); --size-h1:clamp(2rem, 1.5rem + 2.2vw, 3rem); --size-h2:clamp(1.625rem, 1.3rem + 1.5vw, 2.25rem); --size-h3:clamp(1.25rem, 1.1rem + 0.7vw, 1.5rem); --size-h4:1.125rem; --size-body-lg:1.125rem; --size-body:1rem; --size-small:0.875rem; --size-eyebrow:0.8125rem; --space-section:clamp(3rem, 2rem + 4vw, 6rem); --space-gutter:clamp(1rem, 0.5rem + 2vw, 2rem); --size-container:1200px; --space-2:0.5rem; --space-4:1rem; --space-6:1.5rem; --space-8:2rem; --space-12:3rem; --radius-sm:4px; --radius-md:8px; --radius-lg:16px; --color-heading:#0B3D6E; --color-outline:#0B3D6E; --color-on-dark:#FFFFFF; --color-card:#FFFFFF; --color-field:#FFFFFF; --color-field-text:#111827; --weight-heading:800; --case-heading:none; --size-cta:1rem; --color-on-accent:#FFFFFF; --shadow-card:0 1px 3px rgba(17,24,39,.08), 0 4px 12px rgba(17,24,39,.06); --shadow-raised:0 8px 24px rgba(17,24,39,.12); --font-script:Caveat; }
/* Start custom CSS *//* GM structural CSS: see design-system/kit.md. Source of truth for kit 5068 → custom_css.
   Theme-safe: colors come only from role variables (--color-heading, --color-outline, --color-on-dark, --color-card…),
   so the same CSS works for light (neutral) and dark (BTD) skins. */
/* Page canvas follows the skin (the legacy kit body-background setting is unreliable) */
body{background-color:var(--color-surface);color:var(--color-text);font-family:var(--font-body),system-ui,sans-serif;}
.elementor-location-header{position:sticky;top:0;z-index:100;}
.admin-bar .elementor-location-header{top:32px;}
@media (max-width:782px){.admin-bar .elementor-location-header{top:46px;}}
@media (max-width:600px){.admin-bar .elementor-location-header{top:0;}}
@media (max-width:767px){body{padding-bottom:calc(56px + env(safe-area-inset-bottom));}}
/* Header nav layout */
.elementor-location-header .elementor-widget-nav-menu{flex:1 1 auto;position:static;}
@media (max-width:1024px){.elementor-location-header .elementor-widget-nav-menu{flex:0 0 auto;order:3;}}
@media (max-width:767px){.elementor-location-header .icon-call{margin-left:auto;}}
.elementor-location-header .elementor-nav-menu--dropdown.elementor-nav-menu__container{position:absolute;top:100%;left:0;right:0;width:auto;margin-top:0;z-index:99;}
.elementor-location-header .elementor-nav-menu--main .elementor-item{font-family:var(--font-body);font-size:var(--size-body);font-weight:600;color:var(--color-text);padding:12px 14px;}
.elementor-location-header .elementor-nav-menu--main .elementor-item:hover,.elementor-location-header .elementor-nav-menu--main .elementor-item.elementor-item-active{color:var(--color-outline);}
.elementor-location-header .elementor-nav-menu--main .elementor-item:after{background-color:var(--color-accent);height:3px;}
.elementor-location-header .elementor-menu-toggle{font-size:28px;color:var(--color-heading);background:transparent;width:48px;height:48px;}
.elementor-location-header .elementor-menu-toggle svg{fill:var(--color-heading);}
.elementor-location-header .elementor-nav-menu--dropdown{background:var(--color-surface);box-shadow:0 8px 24px rgba(17,24,39,.12);}
.elementor-location-header .elementor-nav-menu--dropdown .elementor-item{font-family:var(--font-body);font-weight:600;color:var(--color-text);padding:16px 20px;font-size:1.0625rem;border-top:1px solid var(--color-border);}
.elementor-location-header .elementor-nav-menu--dropdown .elementor-item:hover{background:var(--color-surface-alt);color:var(--color-outline);}
/* Icons: CSS masks filled with currentColor / role colors, so they follow the theme and hover states automatically. */
.elementor .btn-phone{position:relative;}
.elementor .btn-phone::before{content:"";position:absolute;left:1rem;top:50%;width:1.125rem;height:1.125rem;transform:translateY(-50%);background-color:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") no-repeat center/contain;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") no-repeat center/contain;}
.elementor .icon-call{position:relative;}
.elementor .icon-call::before{content:"";position:absolute;left:50%;top:50%;width:1.375rem;height:1.375rem;transform:translate(-50%,-50%);background-color:var(--color-on-accent,var(--color-on-dark));-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") no-repeat center/contain;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E") no-repeat center/contain;}
/* Generic service icon (wrench). Per client, swap it for real icons (e-svg) once assets exist. */
.elementor .svc-icon{position:relative;}
.elementor .svc-icon::before{content:"";position:absolute;left:50%;top:50%;width:28px;height:28px;transform:translate(-50%,-50%);background-color:var(--color-outline);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E") no-repeat center/contain;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z'/%3E%3C/svg%3E") no-repeat center/contain;}
.card-link:hover .svc-icon{background-color:var(--color-outline);}
.card-link:hover .svc-icon::before{background-color:var(--color-surface);}
/* Check-mark lists (hero proof bullets, "what's included") */
.check-list ul{list-style:none;margin:0;padding:0;}
.check-list li{position:relative;padding-left:1.75rem;}
.check-list li::before{content:"\2713";position:absolute;left:0;top:0;font-weight:800;color:var(--color-success);}
.section-dark .check-list li::before,.cta-band .check-list li::before{color:var(--color-rating);}
/* Rating stars: first <span> inside a .rating-line (Elementor strips class attrs from inline HTML) */
.rating-line > span:first-child{color:var(--color-rating);letter-spacing:.1em;}
/* Process steps: connector line behind the numbers (desktop only) */
/* (drawn per step: a ::before on the grid itself becomes a grid item and overflows) */
@media (min-width:1025px){.elementor .step{position:relative;}.elementor .step:not(:last-child)::after{content:"";position:absolute;top:28px;left:calc(50% + 36px);width:calc(100% - 72px + var(--space-8));height:2px;background:var(--color-border-strong);}}
/* Swipeable row on mobile (reviews carousel) */
@media (max-width:767px){.elementor .snap-row{grid-template-columns:none !important;grid-template-rows:none !important;grid-auto-flow:column;grid-auto-columns:86%;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;margin-right:calc(-1 * var(--space-gutter));padding-right:var(--space-gutter);padding-bottom:.5rem;}.elementor .snap-row > *{scroll-snap-align:start;}}
/* Service-area city boxes: the whole box is the link target */
.elementor .area-link > a{display:block;flex:1;margin:-.75rem -1rem;padding:.75rem 1rem;}
/* FAQ accordion +/− indicator (the V4 icon slot renders empty without an uploaded SVG) */
/* Elementor's accordion base CSS sets the icon box to 200×20px and prints after the kit, so the size is forced here (seen as a wide white pill on every site, design review 2026-10-11) */
.elementor .faq-header .e-accordion-item-icon-base{flex:0 0 auto;width:32px !important;height:32px !important;border-radius:999px;background:var(--color-card);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;}
.faq-header .e-accordion-item-icon-base::before{content:"+";font-family:var(--font-body);font-size:1.25rem;font-weight:700;line-height:1;color:var(--color-outline);}
details[open] > .faq-header .e-accordion-item-icon-base::before{content:"\2212";}
.faq-header:hover .faq-q{color:var(--color-outline);}
/* Inline links inside body copy: visibly links (a11y) */
.elementor .e-paragraph-base a:not([class]),.elementor .e-heading-base a:not([class]){color:var(--color-secondary);text-decoration:underline;text-underline-offset:2px;}
.elementor .e-paragraph-base a:not([class]):hover{color:var(--color-outline);}
.section-dark .e-paragraph-base a:not([class]),.cta-band .e-paragraph-base a:not([class]),.elementor-location-footer .e-paragraph-base a:not([class]){color:inherit;}
/* Warning-sign lists (symptoms): "!" marker in warning color */
.flag-list ul{list-style:none;margin:0;padding:0;}
.flag-list li{position:relative;padding-left:2rem;}
.flag-list li::before{content:"!";position:absolute;left:0;top:.35em;width:1.25rem;height:1.25rem;border-radius:999px;background:var(--color-warning);color:#fff;font-size:.8125rem;font-weight:800;line-height:1.25rem;text-align:center;}
/* Sticky side card: its grid column must stretch so position:sticky has room to travel */
.content-grid > :last-child{align-self:stretch;}
/* ...but a side-card placed directly in the grid (the pSEO singles) must not stretch, or it is as tall as the article and has nowhere to stick */
.content-grid > .side-card{align-self:start;}
/* Form controls: inputs/selects inherit token sizing even where V4 defaults set 12px */
.elementor .form-input{height:auto;}
.elementor select.form-input{appearance:auto;}
.elementor .form-input::placeholder{color:#6B7280;opacity:1;}
/* Phone buttons: keep room for the icon regardless of the order btn-outline / btn-outline-light print in (their padding shorthand can land after btn-phone) */
.elementor a.btn-phone{padding-inline-start:2.75rem;}
/* In-page jumps to form fields (e.g. Contact hero "Fill Out the Form" → #qf-site) clear the sticky header and show the field above */
.elementor [id^="qf-"]{scroll-margin-top:220px;}
/* Forms inside a padded .form-card: drop the form's own 20px inset so fields align with the card heading */
.elementor .form-card > form.e-form-base{padding-inline:0;}
/* Keyboard a11y (QA 2026-09-28, ported from BTD): visible focus ring on every link/button (several links had none); the page body is programmatically focused by the skip link, so it gets no ring; focused elements scroll clear of the sticky header; the header's duplicate skip link is removed (the theme's is first and works) */
.elementor a:focus-visible,.elementor button:focus-visible,.elementor summary:focus-visible,.elementor [role="button"]:focus-visible,.elementor input:focus-visible,.elementor select:focus-visible,.elementor textarea:focus-visible{outline:3px solid var(--color-outline);outline-offset:3px;}
#content:focus{outline:none;}
html{scroll-padding-top:110px;}
.elementor-location-header .skip-link{display:none;}
/* Design rules (design-system/design-rules.md; first review 2026-10-11): one kit change per rule, every site inherits it.
   Tap targets: 44px hit areas on text links and chips without changing how they look (the padding is the hit area, margins keep the layout). */
.elementor a.link-arrow,.elementor .link-arrow > a{display:inline-block;padding-block:.625rem;margin-block:-.625rem;}
.elementor-location-footer .e-paragraph-base > a.e-paragraph-link-base,.elementor .footer-link > a{display:inline-block;padding-block:.5rem;margin-block:-.5rem;}
.elementor .area-link{min-height:44px;display:inline-flex;align-items:center;}
.elementor .area-link > a,.elementor .chip,.elementor .svc-row{min-height:44px;}
.elementor-location-header .elementor-nav-menu--main .elementor-item{min-height:44px;}
.elementor-location-header a:has(img){display:inline-flex;align-items:center;min-height:44px;}
/* Widows: balance heading lines (no effect where unsupported); long words still wrap instead of spilling. */
.elementor h1,.elementor h2,.elementor h3{text-wrap:balance;overflow-wrap:anywhere;}
.elementor .faq-header .faq-q{min-width:0;overflow-wrap:anywhere;}
/* Measure: running text stays readable at tablet and desktop widths. */
.elementor .prose,.elementor .prose > *,.elementor .lead{max-width:70ch;}
/* Treatments (design-system/treatments.json): a style-less treat-* class on a wrapper around a component; these rules restyle the
   component's root section and its children without touching the component or its global classes. Bands: */
.elementor .treat-band-tint > .section{background-color:var(--color-surface-alt);}
.elementor .treat-band-dark > .section,.elementor .treat-band-photo > .section{background-color:var(--color-primary);color:var(--color-on-dark);}
.elementor .treat-band-dark > .section :is(h1,h2,h3,h4,p,li,span,.stat-value,.stat-label,.faq-q,.review-text,.review-meta),.elementor .treat-band-photo > .section :is(h1,h2,h3,h4,p,li,span,.stat-value,.stat-label,.faq-q,.review-text,.review-meta){color:var(--color-on-dark);}
.elementor .treat-band-dark > .section .eyebrow,.elementor .treat-band-photo > .section .eyebrow{color:var(--color-rating);}
.elementor .treat-band-dark > .section .check-list li::before,.elementor .treat-band-photo > .section .check-list li::before{color:var(--color-rating);}
.elementor .treat-band-dark > .section :is(.card,.card-link,.review-card,.faq-item,.step),.elementor .treat-band-photo > .section :is(.card,.card-link,.review-card,.faq-item,.step){background-color:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);}
.elementor .treat-band-dark > .section .btn-outline,.elementor .treat-band-photo > .section .btn-outline{color:var(--color-on-dark);border-color:var(--color-on-dark);}
.elementor .treat-band-photo{position:relative;background-image:var(--treat-photo);background-size:cover;background-position:center;}
.elementor .treat-band-photo > .section{background-color:rgba(11,61,110,.82);}
/* Alignment and density */
.elementor .treat-align-left > .section .section-head{margin-inline:0;text-align:left;align-items:flex-start;max-width:60ch;}
.elementor .treat-align-center > .section .section-head{margin-inline:auto;text-align:center;align-items:center;}
.elementor .treat-dense > .section{padding-block:clamp(2rem,1.5rem+2vw,3.5rem);}
.elementor .treat-airy > .section{padding-block:clamp(4.5rem,3rem+6vw,9rem);}
.elementor .treat-airy > .section .section-head{max-width:640px;}
/* Media side in two-column sections: flip the grid's reading order (the second child is the photo/card by default) */
.elementor .treat-media-left > .section .e-grid > :first-child{order:2;}
.elementor .treat-media-left > .section .e-grid > :last-child{order:1;}
@media (max-width:767px){.elementor .treat-media-left > .section .e-grid > *{order:0;}}
/* Edge: let the inner container run wall to wall */
.elementor .treat-edge > .section > .container{max-width:none;padding-inline:0;}
/* Accents (design-system/accents.json): style-less accent-* classes placed by the plan; the kit CSS does the drawing.
   The treatment wrapper around a component is the positioning context for the accents that sit over it. On a dark or
   photo band the accents switch to the rating gold (the wrapper's component root carries section-dark / cta-band, or the
   wrapper carries a band-dark/band-photo treatment). */
.elementor .treat-wrap{position:relative;display:flex;flex-direction:column;padding:0;}
.elementor .treat-wrap > .e-component,.elementor .treat-wrap > section,.elementor .treat-wrap > .section{width:100%;}
.elementor .accent-stamp,.elementor .accent-micro,.elementor .accent-script{box-sizing:border-box;}
/* the accent text rules must beat Elementor's e-default-p/e-default-span (same specificity, printed later) */
.elementor .treat-wrap > .accent-script,.elementor .treat-wrap > .accent-stamp{font-family:inherit;}
/* stamp: a rotated outlined label over the section's top-left (static above it on phones) */
.elementor .accent-stamp{position:absolute;z-index:2;top:1.5rem;left:max(var(--space-gutter),calc((100% - var(--size-container,1200px))/2 + var(--space-gutter)));width:auto;margin:0;display:inline-block;padding:.35em .9em;border:2px solid var(--color-accent-dark,var(--color-accent));border-radius:6px;color:var(--color-accent-dark,var(--color-accent));font-family:var(--font-heading);font-size:var(--size-small);font-weight:800;letter-spacing:.14em;text-transform:uppercase;line-height:1.2;transform:rotate(-4deg);transform-origin:left top;background:transparent;white-space:nowrap;}
.elementor .treat-wrap:is(.treat-band-dark,.treat-band-photo) .accent-stamp,.elementor .treat-wrap:has(> .section-dark,> .cta-band,> .hero-min) .accent-stamp{color:var(--color-rating);border-color:var(--color-rating);}
@media (max-width:767px){.elementor .accent-stamp{position:static;transform:rotate(-2deg);margin:var(--space-4) var(--space-gutter) calc(-1 * var(--space-2));align-self:flex-start;color:var(--color-accent-dark,var(--color-accent)) !important;border-color:var(--color-accent-dark,var(--color-accent)) !important;}}
/* micro-stats: a small label/value strip in the section's top-right corner at desktop, a dark strip under the section on phones */
.elementor .accent-micro{position:absolute;z-index:2;top:.75rem;left:auto;right:max(var(--space-gutter),calc((100% - var(--size-container,1200px))/2 + var(--space-gutter)));width:auto;max-width:calc(100% - 2 * var(--space-gutter));margin:0;display:inline-flex;gap:var(--space-6);padding:.5rem .9rem;border-radius:var(--radius-md);background:rgba(17,24,39,.72);color:#fff;}
.elementor .accent-micro .accent-micro-item{display:flex;flex-direction:column;gap:.1rem;min-width:0;width:auto;padding:0;}
.elementor .accent-micro .accent-micro-label{font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.8;line-height:1.2;white-space:nowrap;}
.elementor .accent-micro .accent-micro-value{font-family:var(--font-heading);font-size:var(--size-body);font-weight:800;line-height:1.2;white-space:nowrap;}
@media (max-width:767px){.elementor .accent-micro{position:static;order:99;width:100%;max-width:none;margin:0;border-radius:0;justify-content:space-between;padding:.75rem var(--space-gutter);background:var(--color-primary);}}
/* underline: a hand-drawn accent underline under <em> in the section's headings (Elementor keeps <em> in overrides; it strips <mark> and class attributes) */
.elementor .accent-underline :is(h1,h2,h3) em{font-style:normal;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 12' preserveAspectRatio='none'%3E%3Cpath d='M2 8 C 20 2, 40 10, 60 5 S 90 3, 98 7' fill='none' stroke='%23C4480A' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-size:100% .35em;background-position:0 100%;padding-bottom:.12em;}
.elementor .treat-wrap:is(.treat-band-dark,.treat-band-photo) :is(h1,h2,h3) em,.elementor .treat-wrap:has(> .section-dark,> .cta-band,> .hero-min) :is(h1,h2,h3) em{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 12' preserveAspectRatio='none'%3E%3Cpath d='M2 8 C 20 2, 40 10, 60 5 S 90 3, 98 7' fill='none' stroke='%23FBBF24' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E");}
/* script-aside: one handwritten line inside the section's bottom padding, bottom-left (a wrapper child like the stamp) */
.elementor .accent-script{position:absolute;z-index:2;bottom:.5rem;left:max(var(--space-gutter),calc((100% - var(--size-container,1200px))/2 + var(--space-gutter)));width:auto;margin:0;font-family:var(--font-script,'Caveat'),cursive;font-size:clamp(1.375rem,1.1rem + 1vw,1.875rem);line-height:1.2;color:var(--color-accent-dark,var(--color-accent));transform:rotate(-2deg);transform-origin:left bottom;}
.elementor .treat-wrap:is(.treat-band-dark,.treat-band-photo) .accent-script,.elementor .treat-wrap:has(> .section-dark,> .cta-band,> .hero-min) .accent-script{color:var(--color-rating);}
@media (max-width:767px){.elementor .accent-script{position:static;order:98;margin:var(--space-3) var(--space-gutter) var(--space-4);color:var(--color-accent-dark,var(--color-accent)) !important;}}
/* ticker: a full-width accent band of short lines that scrolls slowly; still and wrapping under reduced motion */
.elementor .accent-ticker{width:100%;overflow:hidden;background:var(--color-accent);color:var(--color-on-accent,#fff);padding:.75rem 0;}
.elementor .accent-ticker .accent-ticker-row{display:flex;gap:3rem;width:max-content;padding-inline:1.5rem;animation:accent-ticker 38s linear infinite;font-family:var(--font-heading);font-weight:700;font-size:var(--size-body-lg);white-space:nowrap;}
.elementor .accent-ticker .accent-ticker-row > *{margin:0;}
.elementor .accent-ticker .accent-ticker-row > *::before{content:"\2691";margin-right:1rem;opacity:.85;}
.elementor .accent-ticker:hover .accent-ticker-row{animation-play-state:paused;}
@keyframes accent-ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.elementor .accent-ticker .accent-ticker-row{animation:none;width:auto;flex-wrap:wrap;justify-content:center;gap:1rem 2rem;}.elementor .accent-ticker .accent-ticker-row > .accent-ticker-dup{display:none;}}
/* text logo link: a 44px hit area like the image logo */
.elementor-location-header .logo-text,.elementor-location-header .logo-text > a{display:inline-flex;align-items:center;min-height:44px;}
/* Cards in one row share a height; the link sits at the bottom of each. */
.elementor .e-grid:has(> .card-link),.elementor .e-grid:has(> .card){align-items:stretch;grid-template-rows:auto;}
.elementor .card-link,.elementor .card{display:flex;flex-direction:column;}
.elementor .card-link > :last-child,.elementor .card > :last-child{flex:1;}/* End custom CSS */