
    /* ============================================================
       AK Mobile Polish — tablet + mobile (≤ 768px)
       Additive only. Does not change desktop layout.
       ============================================================ */

    @media (max-width: 768px) {

        /* ---------- Kill horizontal overflow ---------- */
        html, body { overflow-x: hidden; max-width: 100vw; }

        /* Elementor containers with desktop-sized margins/padding overflow
           at 375px. Normalize gutter on mobile. */
        body .elementor-section,
        body .elementor-container,
        body .e-con,
        body .e-con-full,
        body .e-con-boxed {
            max-width: 100% !important;
        }

        body .e-con.e-parent,
        body .e-con-full.e-parent,
        body .e-con-boxed.e-parent {
            margin-left: 0 !important;
            margin-right: 0 !important;
            padding-left: 16px !important;
            padding-right: 16px !important;
        }

        /* Specific offenders on homepage (captured in audit). */
        .elementor-element-01d256a,
        .elementor-element-4f7cf74 {
            margin-left: 0 !important;
            margin-right: 0 !important;
            padding-left: 16px !important;
            padding-right: 16px !important;
            width: 100% !important;
            box-sizing: border-box !important;
        }

        /* Any image/video that might break out. */
        body img, body video, body iframe, body svg {
            max-width: 100%;
            height: auto;
        }

        /* Force tables to wrap / scroll horizontally inside their own box
           rather than pushing the page wider. */
        body table {
            display: block;
            max-width: 100%;
            overflow-x: auto;
            -webkit-overflow-scrolling: touch;
        }

        /* ---------- Typography ---------- */
        body h1, body .elementor-heading-title[class*="h1"] {
            font-size: clamp(28px, 7.2vw, 36px) !important;
            line-height: 1.15 !important;
            letter-spacing: -0.01em;
        }
        body h2 {
            font-size: clamp(22px, 5.6vw, 28px) !important;
            line-height: 1.2 !important;
        }
        body h3 { font-size: clamp(18px, 4.8vw, 22px) !important; line-height: 1.3 !important; }
        body h4 { font-size: clamp(16px, 4.2vw, 20px) !important; }
        body p, body li { font-size: 16px; line-height: 1.55; }

        /* Hero title should take the full column on mobile. */
        body h1 {
            max-width: 100% !important;
            width: 100% !important;
            text-wrap: balance;
        }

        /* ---------- Tap targets (WCAG AA = 44x44) ---------- */
        body a.elementor-button,
        body .ts-btn,
        body .e-btn,
        body .ak-btn {
            min-height: 44px;
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 10px 18px;
        }

        /* Icon-only save buttons: keep fixed square, no padding hijack. */
        body .ak-place-save,
        body .ak-event-save,
        body .ak-deal-save,
        body [class*="-save"][class*="ak-"] {
            width: 40px !important;
            height: 40px !important;
            min-width: 40px !important;
            min-height: 40px !important;
            padding: 0 !important;
        }
        body .ak-place-save svg,
        body .ak-event-save svg,
        body .ak-deal-save svg {
            width: 18px !important;
            height: 18px !important;
            flex: 0 0 18px !important;
        }

        /* Sign Up button was 29px tall on mobile — lift. */
        body .elementor-button-link.elementor-size-sm {
            padding: 10px 16px !important;
            font-size: 14px !important;
            min-height: 40px;
        }

        /* ---------- Forms ---------- */
        body input[type="text"],
        body input[type="email"],
        body input[type="password"],
        body input[type="tel"],
        body input[type="url"],
        body input[type="search"],
        body input[type="number"],
        body textarea,
        body select {
            font-size: 16px !important; /* Prevent iOS zoom on focus */
            min-height: 44px;
            box-sizing: border-box;
            max-width: 100%;
        }
        body textarea { min-height: 96px; }

        /* ---------- Homepage hero ---------- */
        .elementor-element.ak-home-hero,
        .ak-home-hero {
            padding: 40px 16px !important;
            min-height: auto !important;
        }
        .ak-home-hero > .e-con-inner,
        .ak-home-hero .elementor-container {
            gap: 24px !important;
        }

        /* Force multi-column flex containers to stack on mobile
           — EXCEPT the header, which must stay a single horizontal row. */
        body .e-con.e-flex:not(.elementor-location-header *):not(.elementor-location-header) > .e-con-inner,
        body .e-con.e-flex:not(.elementor-location-header *):not(.elementor-location-header) {
            flex-wrap: wrap !important;
        }
        body .elementor-location-header .e-con.e-flex,
        body .elementor-location-header .e-con.e-flex > .e-con-inner {
            flex-wrap: nowrap !important;
        }
        body .e-con-inner > .e-con:not(.elementor-location-header *) {
            flex: 1 1 100% !important;
            max-width: 100% !important;
        }
        body .elementor-location-header .e-con-inner > .e-con {
            flex: 0 1 auto !important;
            width: auto !important;
        }

        /* ---------- Category grid ---------- */
        .ak-cat-grid,
        .ak-categories,
        .ak-categories-grid,
        [class*="category-grid"] {
            grid-template-columns: repeat(2, 1fr) !important;
            gap: 12px !important;
        }

        /* ---------- Deals row ---------- */
        .elementor-element-751a50d .ts-post-feed,
        .elementor-element-751a50d .elementor-widget-container > * {
            display: grid !important;
            grid-template-columns: 1fr !important;
            gap: 16px !important;
        }
        .elementor-element-751a50d .ts-preview:nth-of-type(n+4) {
            display: block !important; /* Re-show hidden 4th on mobile — stacks cleanly */
        }

        /* ---------- Feed grids ---------- */
        .ts-post-feed .ts-preview-list,
        .ts-post-feed-list,
        .elementor-widget-ts-post-feed .ts-preview-list {
            grid-template-columns: 1fr !important;
            gap: 16px !important;
        }

        /* ---------- Auth page ---------- */
        /* Removed: the old-design auth overrides (#ak-auth-panel hidden-panel
           hack, .elementor-2247 column resets, #ak-auth-mini-footer). The auth
           pages were rebuilt Jul-2026 (ak-auth-pages.php split-card) and own all
           their responsive styling now — these stale selectors no longer exist
           in the DOM and only risked fighting the new layout. */

        /* ---------- Business CTA (ak-biz-v2) ---------- */
        .ak-biz-v2 { padding: 36px 16px !important; }
        .ak-biz-v2-steps { grid-template-columns: 1fr !important; gap: 14px !important; }
        .ak-biz-v2-cta-row { flex-direction: column !important; align-items: stretch !important; gap: 10px !important; }
        .ak-biz-v2-cta-row a { width: 100% !important; justify-content: center !important; }
        .ak-biz-v2 h2 { font-size: clamp(24px, 6.4vw, 30px) !important; }

        /* ---------- Footer ---------- */
        .elementor-location-footer .e-con,
        .elementor-location-footer .elementor-container {
            flex-direction: column !important;
            gap: 24px !important;
            text-align: center;
        }
        .elementor-location-footer ul {
            justify-content: center;
            flex-wrap: wrap;
        }

        /* ---------- Header: full-width, compact, single row ---------- */
        body .elementor-location-header,
        body .elementor-location-header > .elementor,
        body .elementor-location-header .elementor > section,
        body .elementor-location-header .elementor > .e-con,
        body .elementor-location-header .e-con {
            width: 100% !important;
            max-width: 100% !important;
            margin-left: 0 !important;
            margin-right: 0 !important;
        }
        body .elementor-location-header .e-con,
        body .elementor-location-header .elementor-container {
            padding: 6px 14px !important;
            flex-direction: row !important;
            align-items: center !important;
            justify-content: space-between !important;
            gap: 8px !important;
            min-height: 60px !important;
        }
        body .elementor-location-header .e-con-inner {
            max-width: 100% !important;
            width: 100% !important;
            padding: 0 !important;
            flex-direction: row !important;
            align-items: center !important;
            justify-content: space-between !important;
            gap: 8px !important;
        }
        /* Logo sizing: compact */
        body .elementor-location-header img {
            max-height: 38px !important;
            width: auto !important;
        }
        /* Hamburger button: decent tap target, no extra underline */
        body .elementor-location-header .elementor-menu-toggle {
            width: 44px !important;
            height: 44px !important;
            padding: 8px !important;
            border: none !important;
            background: transparent !important;
        }
        body .elementor-location-header .elementor-menu-toggle::after,
        body .elementor-location-header .elementor-menu-toggle::before {
            display: none !important;
        }
        /* Voxel nav widget hamburger (ts-mobile-menu) — stop it making header 98px tall */
        body .elementor-location-header .ts-nav-menu,
        body .elementor-location-header .ts-nav,
        body .elementor-location-header .ts-mobile-menu,
        body .elementor-location-header .ts-item-link {
            height: 48px !important;
            min-height: 48px !important;
        }
        body .elementor-location-header .ts-item-icon {
            height: 24px !important;
            min-height: 24px !important;
        }
        body .elementor-location-header .ts-item-icon svg {
            width: 22px !important;
            height: 22px !important;
        }
        body .elementor-location-header .ts-item-link {
            padding: 8px !important;
        }
        /* Remove underline/strike through on nav items on mobile */
        body .elementor-location-header .ts-nav li,
        body .elementor-location-header .ts-nav li::after,
        body .elementor-location-header .ts-nav li::before {
            border-bottom: none !important;
        }
        /* Force outer header containers full-width (reach into inline widths) */
        body .elementor-location-header > .elementor,
        body .elementor-location-header > .elementor > .elementor-element {
            width: 100% !important;
            max-width: 100% !important;
        }
        /* Cap header height */
        body .elementor-location-header,
        body .elementor-location-header > .elementor,
        body .elementor-location-header .elementor-element[data-id] {
            max-height: 64px !important;
        }
        body .elementor-location-header .e-con-inner,
        body .elementor-location-header .e-con {
            min-height: 0 !important;
        }
        /* Remove the decorative underline/accent bar beneath header on mobile */
        body .elementor-location-header .elementor-widget-nav-menu::after,
        body .elementor-location-header .ak-header-accent,
        body .elementor-location-header [class*="accent-bar"] {
            display: none !important;
        }
        /* Hide Sign Up button on narrowest screens (hamburger has Sign In) */
        body .elementor-location-header .elementor-button-link.elementor-size-sm {
            display: none !important;
        }

        /* ---------- Hero stats row (14K Followers, 500+ Places, 100+ Events) ---------- */
        /* Parent column that holds 3 stat rows — force horizontal 3-col layout. */
        body .elementor-element-055a042 {
            flex-direction: row !important;
            flex-wrap: nowrap !important;
            justify-content: space-between !important;
            gap: 8px !important;
            padding: 10px 0 !important;
        }
        body .elementor-element-055a042 > .e-con {
            flex: 1 1 0 !important;
            width: auto !important;
            max-width: none !important;
            flex-direction: column !important;
            align-items: center !important;
            text-align: center !important;
            gap: 4px !important;
            padding: 6px 4px !important;
        }
        body .elementor-element-055a042 > .e-con h6,
        body .elementor-element-055a042 > .e-con .elementor-heading-title {
            font-size: 13px !important;
            font-weight: 600 !important;
            text-align: center !important;
            line-height: 1.25 !important;
        }
        body .elementor-element-055a042 > .e-con .elementor-icon {
            font-size: 16px !important;
        }

        /* ---------- Instagram badge on hero image ---------- */
        /* The badge is absolutely positioned with a desktop left:-20px offset.
           Pull it inward on mobile so it sits nicely over the image. */
        body .elementor-element-ec9e294 {
            left: 14px !important;
            right: auto !important;
            bottom: 14px !important;
            top: auto !important;
            max-width: calc(100% - 28px) !important;
            border-radius: 14px !important;
            box-shadow: 0 8px 22px rgba(0,0,0,0.15) !important;
            padding: 10px 14px !important;
        }

        /* ---------- Event card date badge ---------- */
        body .elementor-element-de5bfd7 .ts-preview .elementor-element-4494d12,
        body .elementor-element-de5bfd7 .ts-preview [class*="event-date"],
        body .elementor-widget-ts-post-feed .ts-preview .elementor-element-4494d12 {
            min-width: 56px !important;
            width: 56px !important;
            padding: 6px 8px !important;
            gap: 2px !important;
            align-items: center !important;
            justify-content: center !important;
        }
        body .elementor-element-de5bfd7 .ts-preview .elementor-element-cf99ca4 .elementor-heading-title,
        body .elementor-element-de5bfd7 .ts-preview .elementor-element-cf99ca4 {
            font-size: 11px !important;
            font-weight: 700 !important;
            text-transform: uppercase !important;
            letter-spacing: 0.04em !important;
            line-height: 1.1 !important;
        }
        body .elementor-element-de5bfd7 .ts-preview .elementor-element-dfe2066 .elementor-heading-title,
        body .elementor-element-de5bfd7 .ts-preview .elementor-element-dfe2066 {
            font-size: 22px !important;
            font-weight: 800 !important;
            line-height: 1.05 !important;
        }

        /* ---------- Section-to-section spacing: compress ---------- */
        body .elementor-2226 > .elementor-element,
        body .elementor-2226 .e-con.e-parent {
            padding-top: 24px !important;
            padding-bottom: 24px !important;
            margin-top: 0 !important;
            margin-bottom: 0 !important;
        }
        /* Hero a little more breathing room */
        body .ak-home-hero,
        body .elementor-element.ak-home-hero {
            padding-top: 24px !important;
            padding-bottom: 16px !important;
        }
        /* Section headings tighter against their feeds */
        body .elementor-2226 h2 { margin-top: 0 !important; margin-bottom: 10px !important; }

        /* ---------- Category grid: 2 columns on mobile ---------- */
        body .elementor-element-b4df3cf {
            padding-top: 20px !important;
            padding-bottom: 24px !important;
        }
        /* The inner cards-row container (3c0d17d) holds all category cards. */
        body .elementor-element-3c0d17d,
        body .elementor-element-3c0d17d > .e-con-inner {
            display: grid !important;
            grid-template-columns: repeat(2, 1fr) !important;
            gap: 10px !important;
            flex-direction: unset !important;
        }
        body .elementor-element-3c0d17d > .e-con-inner > .e-con,
        body .elementor-element-3c0d17d > .e-con {
            flex: 1 1 auto !important;
            width: 100% !important;
            max-width: 100% !important;
            padding: 16px 8px !important;
            min-height: 110px !important;
        }
        body .elementor-element-3c0d17d .elementor-icon,
        body .elementor-element-3c0d17d img {
            max-height: 48px !important;
            width: auto !important;
        }

        /* Biz band margin collapse (was +40px top+bottom) */
        body .elementor-element-01d256a {
            margin-top: 0 !important;
            margin-bottom: 0 !important;
        }
        /* Deals band margin collapse (was +20px) */
        body .elementor-element-add160b {
            margin-top: 0 !important;
            margin-bottom: 0 !important;
        }
        /* Hamburger toggle tap area */
        .elementor-menu-toggle {
            min-width: 44px !important;
            min-height: 44px !important;
            padding: 10px !important;
        }

        /* Search forms stretch full width on mobile */
        .ts-search-form,
        .ts-search-form .ts-form,
        .elementor-widget-ts-search-form {
            width: 100% !important;
            max-width: 100% !important;
        }

        /* ---------- Pricing plans ---------- */
        .elementor-widget-ts-pricing-plan .ts-pricing-plans,
        .ts-pricing-plans {
            grid-template-columns: 1fr !important;
            gap: 16px !important;
        }

        /* ---------- Create-post hero + form ---------- */
        .ak-guest-section, .ak-auth-section {
            padding: 20px 16px !important;
        }

        /* ---------- Improve image rendering on small viewports ---------- */
        body img[loading="lazy"] { content-visibility: auto; }

        /* ---------- Remove accidental fixed widths ---------- */
        body [style*="width: 1200px"],
        body [style*="width:1200px"],
        body [style*="min-width: 1200px"] {
            width: 100% !important;
            min-width: 0 !important;
        }

        /* ---------- Smooth scroll + momentum ---------- */
        html { scroll-behavior: smooth; }
        body { -webkit-overflow-scrolling: touch; }

        /* ---------- Avoid text-size auto-inflation in iOS ---------- */
        html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
    }

    /* ---------- Very small phones (<= 380px) ---------- */
    @media (max-width: 380px) {
        body h1 { font-size: clamp(26px, 7vw, 32px) !important; }
        body .elementor-button { padding: 10px 14px !important; font-size: 14px !important; }
    }

    /* ---------- Touch-only device refinements ---------- */
    @media (hover: none) and (pointer: coarse) {
        /* Disable hover-only effects that look stuck on touch devices. */
        body .ts-preview:hover,
        body .ak-place-card:hover,
        body .ak-event-card:hover {
            transform: none !important;
        }
    }
    
.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li > a[href*="things-to-do-with-kids"]:hover,.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li.current-menu-item > a[href*="things-to-do-with-kids"]{background:#E4F3F4;color:#0F4F53;}.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li > a[href*="playgrounds"]:hover,.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li.current-menu-item > a[href*="playgrounds"]{background:#FDF0E6;color:#9A4F1D;}.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li > a[href*="kid-friendly-restaurants"]:hover,.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li.current-menu-item > a[href*="kid-friendly-restaurants"]{background:#FBEBE9;color:#7D2E27;}.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li > a[href*="amsterdam-with-a-baby"]:hover,.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li.current-menu-item > a[href*="amsterdam-with-a-baby"]{background:#EFECFB;color:#453A84;}

	.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li > a[href*="birthday-parties"]:hover,
	.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li.current-menu-item > a[href*="birthday-parties"] {
		background: #FDEBF1; color: #A32350;
	}
	.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li > a[href*="sports-schools"]:hover,
	.ts-popup-root.elementor-element-a2444e2-wrap .ts-term-dropdown-list > li.current-menu-item > a[href*="sports-schools"] {
		background: #E7F4ED; color: #1F5B41;
	}
	

	@media (max-width: 1024px) {
		/* Shell: 8px above the island, nothing below it. 8 + 56 = 64px, which is
		   exactly the max-height ak-mobile-polish.php caps the header at, so the
		   island no longer overflows its own shell. */
		html body header.elementor-location-header,
		html body header#site-header,
		html body .ts-header {
			padding: 8px 10px 0 !important;
		}

		/* One 40px row — logo · account · burger — 8px apart. Dropping the row
		   from 48px to 40px is the whole height saving: the island's 7px
		   vertical padding and 1px border are left alone, so 40 + 14 + 2 = 56. */
		html body header.elementor-location-header .e-con-inner {
			gap: 8px !important;
		}
		html body header.elementor-location-header nav.ts-nav-menu,
		html body header.elementor-location-header ul.ts-nav,
		html body header.elementor-location-header li.ts-mobile-menu,
		html body header.elementor-location-header .ts-mobile-menu .ts-item-link {
			height: 40px !important;
			min-height: 40px !important;
		}
		/* post-2270.css ships the nav item with `margin: 0 8px` and the account
		   dropdown with `margin-left: 8px`; the 8px rhythm is the flex gap's job
		   now, so each control is exactly 40px wide with nothing added. */
		html body header.elementor-location-header .ts-mobile-menu .ts-item-link {
			margin: 0 !important;
		}
		html body header.elementor-location-header .ak-account-dd {
			margin-left: 0 !important;
		}
		/* header-premium-style.php paints `.ts-mobile-menu` white for the stock
		   Voxel slide-out; that class is also on the <li>, which printed a white
		   square behind the round burger. The drawer (ak-mobile-menu.php)
		   replaced that popup, so the <li> needs no surface of its own — and at
		   40px the square is exactly the size of the button it sits behind. */
		html body header.elementor-location-header li.ts-mobile-menu {
			background: transparent !important;
			-webkit-backdrop-filter: none !important;
			backdrop-filter: none !important;
		}

		/* Logo: 24px tall (was 26px on phones, 30px at 768–1024), capped at
		   28px so no other rule can grow it back. Same image as desktop —
		   scaled, not swapped. */
		html body header.elementor-location-header .elementor-widget-image img,
		html body header.elementor-location-header.header-scrolled .elementor-widget-image img {
			height: 24px !important;
			max-height: 28px !important;
			width: auto !important;
		}

		/* Account: an icon-only 40×40 circle at every width up to the
		   breakpoint. ak-header-account-dropdown.php only does this ≤767px, so
		   768–1024 still showed a 66px icon+caret capsule next to a 40px
		   burger. */
		html body header.elementor-location-header .ak-account-dd .ak-account-trigger {
			width: 40px !important;
			height: 40px !important;
			padding: 0 !important;
			justify-content: center !important;
		}
		html body header.elementor-location-header .ak-account-dd .ak-account-caret {
			display: none !important;
		}

		/* header-premium-style.php shrinks the island to 4px padding once the
		   page is scrolled past 24px. At this size the island is already
		   compact, and a 6px shrink mid-scroll just shifts the page under the
		   reader's thumb — so the scrolled state keeps the same box. */
		html body header.elementor-location-header.header-scrolled > .elementor-element.e-con-boxed {
			padding: 7px 12px 7px 18px !important;
		}
		html body header.elementor-location-header > .elementor-element.e-con-boxed {
			padding: 7px 12px 7px 18px !important;
		}
	}

	/* Heroes that pull up under the header. At ≤860px each template already
	   uses -64px, which is still exactly the shell height, so nothing to do
	   there. Between 861px and the breakpoint they keep their desktop -72px,
	   which was 4px deeper than the old 68px shell and would now be 8px
	   deeper than the 64px one — so here they pull up by exactly 64px and
	   the hero top sits flush with the page top. */
	@media (min-width: 861px) and (max-width: 1024px) {
		html body .akhc-hero,
		html body .akps-hero,
		html body .akfs-hero,
		html body .akgl-hero,
		html body .akab-hero,
		html body .akfs-top {
			margin-top: -64px;
		}
	}
	
.ak-map-host .ts-map-defer,.akev-map .ts-map-defer{display:block;width:100%;height:100%}

    /* every H1: the logo's Fredoka. High specificity + !important to beat the
       per-template Plus Jakarta Sans H1 rules (incl. inline + body-injected). */
    /* Specificity-proof: templates set their H1 font with a CLASS selector +
       !important (e.g. `.ak-guide-single-title`), which outranks a plain
       `html body h1 !important`. Enumerating every class meant every NEW template
       silently fell back to Plus Jakarta Sans (the guides single page did).
       These attribute-selector forms out-specify any single/double class rule
       without needing to know the class name. */
    html body h1,
    html body h1[class],
    html body h1[style],
    html body [class] h1,
    html body [class] [class] h1,
    html body [class] [class] [class] h1,
    html body h1.elementor-heading-title,
    html body h1.akh-h1,
    html body h1.akb-h1,
    html body h1.akev-h1,
    html body h1.akp-h1,
    html body .akd-hero h1,
    html body .ak-guides-hero h1,
    html body .blog-custom-template h1,
    html body [data-id="32db6b7"] .elementor-heading-title,
    html body [data-id="f74d5c0"] .elementor-heading-title {
        font-family: 'Fredoka', 'Plus Jakarta Sans', sans-serif !important;
        letter-spacing: -0.01em !important;
    }
    
picture.ak-webp{display:contents}.akpv-link>picture.ak-webp>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}.ts-preview.akpv:hover .akpv-link>picture.ak-webp>img{transform:scale(1.05)}.akpa-pop .ts-preview.akpv:hover .akpv-link>picture.ak-webp>img,.akhc-pop .ts-preview.akpv:hover .akpv-link>picture.ak-webp>img{transform:none}@media (prefers-reduced-motion:reduce){.akpv-link>picture.ak-webp>img{transition:none!important}}

.akfs {
	--accent: #368D96;
	--deep:   #2A7780;
	--aink:   #1D5B62;
	--tint:   #E4F1F2;
	--tint2:  #D2E9EB;
	--sun:      #F4B942;
	--sun-ink:  #4A340A;
	--cream:    #FFF8EA;
	--cream-2:  #FFF3DA;
	--navy:     #0B1324;
	--scribble: #C83D3D;
	--ink:      #465268;
	--line:     rgba(11,19,36,.10);
	font-family: Manrope, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	color: var(--navy);
}
.akfs *, .akfs *::before, .akfs *::after { box-sizing: border-box; }
.akfs-wrap { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.akfs .ak-fs-ico { width: 16px; height: 16px; flex: none; fill: currentColor; display: inline-block; vertical-align: -3px; }

/* ══════════════ header ══════════════ */
.akfs-top {
	background: linear-gradient(180deg, var(--cream) 0%, #FFFDF8 100%);
	margin-top: -72px; padding: calc(72px + 34px) 0 34px; position: relative; overflow: hidden;
}
.akfs-topblob { position: absolute; top: -140px; right: -90px; width: 380px; height: 380px; border-radius: 50%; background: var(--cream-2); pointer-events: none; }
.akfs-top .akfs-wrap { position: relative; z-index: 1; }
.akfs-crumbs { font-size: 13px; font-weight: 600; color: #7C8798; margin: 0 0 18px; }
.akfs-crumbs a { color: var(--aink); text-decoration: none; }
.akfs-crumbs a:hover { text-decoration: underline; }

.akfs-head { display: flex; gap: 22px; align-items: flex-start; }
.akfs-avatar {
	width: 104px; height: 104px; flex: none; border-radius: 22px; overflow: hidden; background: #fff;
	border: 5px solid #fff; box-shadow: 0 16px 34px -20px rgba(11,19,36,.45);
	display: flex; align-items: center; justify-content: center;
}
.akfs-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.akfs-avatar span { font-family: 'Fredoka', sans-serif; font-size: 40px; font-weight: 600; color: var(--accent); }
.akfs-headtext { min-width: 0; flex: 1; }
.akfs-catline { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.akfs-catchip {
	background: var(--akfs-pill-bg, var(--tint)); color: var(--akfs-pill-fg, var(--aink));
	border-radius: 9999px; padding: 5px 13px;
	font-family: 'Plus Jakarta Sans', sans-serif; font-size: 11px; font-weight: 800;
	letter-spacing: .6px; text-transform: uppercase; text-decoration: none;
}
.akfs-catchip:hover { background: var(--akfs-pill-fg, var(--tint2)); color: #fff; }
/* One pill per thing the category covers, rather than one long run-on label. */
.akfs-cats { display: inline-flex; flex-wrap: wrap; gap: 4px; align-items: center; max-width: 100%; }
/* the "At a glance" category row, coloured like the header pill */
.akfs-catpill {
	display: inline-block; background: var(--akfs-pill-bg, var(--tint));
	color: var(--akfs-pill-fg, var(--aink)); border-radius: 9999px; padding: 2px 9px;
	font-size: 11px; font-weight: 800; letter-spacing: .3px; text-transform: uppercase;
	text-decoration: none; line-height: 1.5;
}
/* .akfs-facts2 a paints every link in the card ink; the pill keeps its own. */
.akfs-facts2 a.akfs-catpill { color: var(--akfs-pill-fg, var(--aink)); }
.akfs-facts2 a.akfs-catpill:hover { background: var(--akfs-pill-fg, var(--tint2)); color: #fff; }
.akfs-facts2 .akfs-cats { margin-top: 3px; }
.akfs-facts2 li.akfs-catfact .ak-fs-ico { fill: var(--akfs-pill-fg, var(--accent)); }
.akfs-verified {
	display: inline-flex; align-items: center; gap: 5px; background: #E9F7EF; color: #1D6A3E;
	border-radius: 9999px; padding: 5px 12px; font-size: 11.5px; font-weight: 800;
	font-family: 'Plus Jakarta Sans', sans-serif;
}
.akfs-verified .ak-fs-ico { width: 14px; height: 14px; }
.akfs-top h1 {
	font-family: 'Fredoka', sans-serif !important; font-weight: 600 !important;
	font-size: clamp(28px, 4vw, 42px) !important; line-height: 1.12 !important;
	letter-spacing: -.8px; margin: 12px 0 0 !important; color: var(--navy);
}
.akfs-subtitle { margin: 8px 0 0; font-size: 16.5px; line-height: 1.6; color: var(--ink); max-width: 60ch; }
.akfs-headmeta { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 0; }
.akfs-mchip {
	display: inline-flex; align-items: center; gap: 7px; background: #fff;
	border: 1px solid rgba(11,19,36,.09); border-radius: 9999px; padding: 7px 14px;
	font-size: 13px; font-weight: 600; color: #3B4658;
}
.akfs-mchip .ak-fs-ico { width: 15px; height: 15px; fill: var(--accent); }

/* ══════════════ actions ══════════════ */
/* The buttons are ak-cta.php's now; this row only places them beside Save and
   Share and hands them the family-services sun accent. */
.akfs-actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 22px 0 0; align-items: center; }
/* The sun accent itself is in ak-cta.php, on .for-services, so the inline row
   and the sticky bar that mirrors it cannot drift apart. */
.akfs-actions .akcta-row { display: contents; }
.akfs-actions .akcta-btn { min-height: 46px; }
.akfs-iconbtn {
	width: 46px; height: 46px; border-radius: 50%; display: inline-flex; align-items: center;
	justify-content: center; border: 1.5px solid var(--line); background: #fff; color: var(--aink);
	cursor: pointer; text-decoration: none; padding: 0;
	transition: background .15s ease, transform .1s ease;
}
.akfs-iconbtn:hover { background: var(--tint); transform: translateY(-1px); color: var(--aink); }
.akfs-iconbtn.active { background: var(--accent); border-color: var(--accent); color: #fff; }
.akfs-iconbtn .ak-fs-ico { width: 19px; height: 19px; }

/* ══════════════ body ══════════════ */
.akfs-main { padding: 40px 0 70px; }
.akfs-cols { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 34px; align-items: start; }
.akfs-sec { margin: 0 0 34px; }
.akfs-sec:last-child { margin-bottom: 0; }
.akfs-sec > h2 {
	font-family: 'Plus Jakarta Sans', sans-serif; font-size: 20px; font-weight: 800;
	letter-spacing: -.4px; margin: 0 0 14px; color: var(--navy);
}
.akfs-prose { font-size: 16px; line-height: 1.75; color: #2F3A4C; }
.akfs-prose p { margin: 0 0 14px; }
.akfs-prose p:last-child { margin-bottom: 0; }
.akfs-prose h2, .akfs-prose h3 { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 800; margin: 22px 0 10px; font-size: 18px; }
.akfs-prose ul, .akfs-prose ol { margin: 0 0 14px; padding-left: 22px; }
.akfs-prose li { margin: 0 0 6px; }
.akfs-prose a { color: var(--aink); font-weight: 700; }

.akfs-creds { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.akfs-creds li {
	display: flex; gap: 11px; align-items: flex-start; background: #fff;
	border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px;
}
.akfs-creds .ak-fs-ico { width: 18px; height: 18px; fill: var(--accent); margin-top: 1px; }
.akfs-creds b { font-family: 'Plus Jakarta Sans', sans-serif; font-size: 14.5px; font-weight: 800; display: block; }
.akfs-creds small { display: block; font-size: 13px; color: var(--ink); margin-top: 2px; }

.akfs-gal { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.akfs-gal a { display: block; border-radius: 14px; overflow: hidden; aspect-ratio: 4 / 3; background: var(--tint); }
.akfs-gal img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
.akfs-gal a:hover img { transform: scale(1.04); }

.akfs-faq { display: grid; gap: 10px; }
.akfs-faq details { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 0 18px; }
.akfs-faq summary {
	cursor: pointer; list-style: none; padding: 15px 0;
	font-family: 'Plus Jakarta Sans', sans-serif; font-size: 15px; font-weight: 800; color: var(--navy);
	display: flex; align-items: center; gap: 10px;
}
.akfs-faq summary::-webkit-details-marker { display: none; }
.akfs-faq summary::after {
	content: ''; margin-left: auto; width: 10px; height: 10px; flex: none;
	border-right: 2.5px solid var(--accent); border-bottom: 2.5px solid var(--accent);
	transform: rotate(45deg) translateY(-2px); transition: transform .2s ease;
}
.akfs-faq details[open] summary::after { transform: rotate(-135deg) translateY(-2px); }
.akfs-faq .akfs-answer { padding: 0 0 16px; font-size: 15px; line-height: 1.7; color: #2F3A4C; }
.akfs-faq .akfs-answer p { margin: 0 0 10px; }
.akfs-faq .akfs-answer p:last-child { margin-bottom: 0; }

.akfs-map { height: 320px; border-radius: 18px; overflow: hidden; border: 1px solid var(--line); background: var(--tint); }
.akfs-mapaddr { margin: 12px 0 0; font-size: 14.5px; color: var(--ink); display: flex; gap: 8px; align-items: flex-start; }
.akfs-mapaddr .ak-fs-ico { fill: var(--accent); margin-top: 2px; }

.akfs-more { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.akfs-morecard {
	display: block; text-decoration: none; background: #fff; border: 1px solid var(--line);
	border-radius: 18px; padding: 16px; color: var(--navy);
	transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.akfs-morecard:hover { transform: translateY(-3px); border-color: var(--tint2); box-shadow: 0 18px 36px -24px rgba(11,19,36,.4); color: var(--navy); }
.akfs-morecard b { display: block; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 15px; font-weight: 800; line-height: 1.3; }
.akfs-morecard span { display: block; margin-top: 6px; font-size: 13px; line-height: 1.5; color: var(--ink); }

/* ══════════════ aside ══════════════ */
.akfs-aside { display: grid; gap: 16px; position: sticky; top: 96px; }
.akfs-cardbox { background: #fff; border: 1px solid var(--line); border-radius: 20px; padding: 20px; }
.akfs-cardbox h3 {
	margin: 0 0 12px; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 15px;
	font-weight: 800; color: var(--navy);
}
.akfs-facts2 { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; }
.akfs-facts2 li { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.5; color: #2F3A4C; }
.akfs-facts2 .ak-fs-ico { width: 17px; height: 17px; fill: var(--accent); margin-top: 2px; }
.akfs-facts2 small { display: block; font-size: 12px; font-weight: 700; color: #8A93A6; text-transform: uppercase; letter-spacing: .5px; }
.akfs-facts2 a { color: var(--aink); font-weight: 700; word-break: break-word; }

.akfs-claimbox, .akfs-ownerbox { background: var(--tint); border: 0; }
.akfs-claimbox p, .akfs-ownerbox p { margin: 0 0 14px; font-size: 13.5px; line-height: 1.55; color: var(--aink); }
.akfs-smallbtn {
	display: inline-flex; align-items: center; gap: 8px; background: var(--accent); color: #fff;
	border-radius: 9999px; padding: 10px 18px; text-decoration: none;
	font-family: 'Plus Jakarta Sans', sans-serif; font-size: 13.5px; font-weight: 800;
}
.akfs-smallbtn:hover { background: var(--deep); color: #fff; }
.akfs-smallbtn.is-secondary { background: #fff; color: var(--aink); }
.akfs-smallbtn.is-secondary:hover { background: #F4F7F8; color: var(--aink); }
.akfs-ownerrow { display: flex; flex-wrap: wrap; gap: 8px; }

/* ══════════════ highlights / who it's for ══════════════ */
.akfs-chips { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.akfs-chips li {
	display: inline-flex; align-items: flex-start; gap: 9px; background: var(--tint); color: var(--aink);
	border-radius: 14px; padding: 11px 15px; font-size: 14px; font-weight: 600; line-height: 1.45; max-width: 100%;
}
.akfs-chips .ak-fs-ico { width: 16px; height: 16px; fill: var(--accent); margin-top: 2px; }
.akfs-stages { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.akfs-stages li {
	background: #fff; border: 1px solid var(--line); border-radius: 9999px; padding: 9px 16px;
	font-size: 13.5px; font-weight: 700; color: #3B4658;
}

/* ══════════════ services & prices ══════════════ */
.akfs-offers { display: grid; gap: 12px; }
.akfs-offer {
	display: flex; gap: 18px; align-items: flex-start; justify-content: space-between;
	background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 16px 18px;
}
.akfs-offer-main { min-width: 0; }
.akfs-offer b { display: block; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 15.5px; font-weight: 800; line-height: 1.35; }
.akfs-offer p { margin: 6px 0 0; font-size: 14px; line-height: 1.6; color: var(--ink); }
.akfs-offer-dur { margin: 9px 0 0; display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; font-weight: 700; color: #8A93A6; }
.akfs-offer-dur .ak-fs-ico { width: 14px; height: 14px; fill: #A7AEBD; }
.akfs-offer-price { flex: none; text-align: right; font-family: 'Plus Jakarta Sans', sans-serif; max-width: 140px; }
.akfs-offer-price b { font-size: 19px; font-weight: 800; color: var(--aink); display: block; white-space: nowrap; }
.akfs-offer-price small { display: block; margin-top: 2px; font-size: 11px; font-weight: 700; color: #8A93A6; text-transform: uppercase; letter-spacing: .4px; }
.akfs-offer-price.is-quote b { font-size: 13px; color: var(--ink); white-space: normal; line-height: 1.4; }

/* ══════════════ team ══════════════ */
.akfs-team { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.akfs-team li { display: flex; gap: 13px; align-items: flex-start; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 15px; }
.akfs-tav { width: 54px; height: 54px; flex: none; border-radius: 50%; overflow: hidden; background: var(--tint); display: flex; align-items: center; justify-content: center; }
.akfs-tav img { width: 100%; height: 100%; object-fit: cover; display: block; }
.akfs-tav span { font-family: 'Fredoka', sans-serif; font-size: 21px; font-weight: 600; color: var(--accent); }
.akfs-team b { display: block; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 14.5px; font-weight: 800; line-height: 1.3; }
.akfs-team em { display: block; font-style: normal; font-size: 12.5px; font-weight: 700; color: var(--accent); margin-top: 2px; }
.akfs-team p { margin: 7px 0 0; font-size: 13px; line-height: 1.55; color: var(--ink); }

/* ══════════════ availability ══════════════ */
.akfs-hours { list-style: none; margin: 0; padding: 0; border: 1px solid var(--line); border-radius: 16px; overflow: hidden; background: #fff; }
.akfs-hours li { display: flex; justify-content: space-between; gap: 16px; padding: 11px 16px; font-size: 14px; border-top: 1px solid var(--line); }
.akfs-hours li:first-child { border-top: 0; }
.akfs-hours li.is-today { background: var(--tint); }
.akfs-hours span { font-weight: 700; color: var(--navy); }
.akfs-hours em { font-style: normal; color: var(--ink); text-align: right; }
.akfs-hours em.is-closed { color: #9AA2B1; }
.akfs-resp { margin: 13px 0 0; display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 700; color: var(--aink); background: var(--tint); border-radius: 9999px; padding: 9px 15px; }
.akfs-resp .ak-fs-ico { fill: var(--accent); }

/* ══════════════ insurance ══════════════ */
.akfs-note { display: flex; gap: 13px; align-items: flex-start; background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 17px 19px; }
.akfs-note .ak-fs-ico { width: 20px; height: 20px; fill: var(--accent); margin-top: 1px; }
.akfs-note b { display: block; font-family: 'Plus Jakarta Sans', sans-serif; font-size: 15px; font-weight: 800; }
.akfs-note p { margin: 5px 0 0; font-size: 14px; line-height: 1.6; color: var(--ink); }

/* ══════════════ video ══════════════ */
.akfs-video { position: relative; border-radius: 18px; overflow: hidden; background: var(--navy); aspect-ratio: 16 / 9; border: 1px solid var(--line); }
.akfs-video iframe { width: 100%; height: 100%; border: 0; display: block; }
.akfs-vbtn {
	position: absolute; inset: 0; width: 100%; height: 100%; border: 0; padding: 0; cursor: pointer;
	background-size: cover; background-position: center; background-color: var(--navy);
	display: flex; align-items: center; justify-content: center;
}
.akfs-vbtn::before { content: ''; position: absolute; inset: 0; background: rgba(11,19,36,.34); }
.akfs-vplay { position: relative; width: 68px; height: 68px; border-radius: 50%; background: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 14px 32px -14px rgba(0,0,0,.7); transition: transform .18s ease; }
.akfs-vbtn:hover .akfs-vplay { transform: scale(1.06); }
.akfs-vplay .ak-fs-ico { width: 25px; height: 25px; fill: var(--navy); margin-left: 4px; }

/* ══════════════ socials ══════════════ */
.akfs-socials { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.akfs-socials a {
	display: inline-flex; align-items: center; gap: 9px; min-height: 44px; padding: 0 17px; border-radius: 9999px;
	background: #fff; border: 1px solid var(--line); color: var(--aink); text-decoration: none;
	font-family: 'Plus Jakarta Sans', sans-serif; font-size: 13.5px; font-weight: 800;
	transition: background .15s ease, transform .15s ease;
}
.akfs-socials a:hover { background: var(--tint); transform: translateY(-1px); color: var(--aink); }
.akfs-socials .ak-fs-ico { width: 17px; height: 17px; }

/* ══════════════ owner nudge ══════════════ */
.akfs-nudge { background: var(--cream-2); border: 1px solid rgba(244,185,66,.45); border-radius: 18px; padding: 18px 20px; margin: 0 0 30px; }
.akfs-nudge h2 { font-family: 'Plus Jakarta Sans', sans-serif !important; font-size: 15.5px !important; font-weight: 800 !important; margin: 0 0 6px !important; color: var(--navy); display: flex; align-items: center; gap: 8px; }
.akfs-nudge h2 .ak-fs-ico { fill: #B5820F; }
.akfs-nudge p { margin: 0 0 10px; font-size: 13.5px; line-height: 1.6; color: #4A3F22; }
.akfs-nudge ul { margin: 0 0 14px; padding-left: 20px; font-size: 13.5px; line-height: 1.75; color: #4A3F22; }

@media (max-width: 980px) {
	.akfs-cols { grid-template-columns: 1fr; }
	.akfs-aside { position: static; }
	.akfs-more { grid-template-columns: 1fr; }

	/*
	 * Stacked, the sidebar would land after everything — so the overview of who
	 * this is, where they work and what they charge would sit below the whole
	 * page. display:contents dissolves the <aside> box so its cards become grid
	 * items of .akfs-cols in their own right, and order lifts the two that
	 * answer "is this for me?" above the prose. One instance, one DOM: nothing
	 * is rendered twice and a crawler still reads a single copy of each card.
	 */
	.akfs-cols { gap: 20px; }
	.akfs-aside { display: contents; }
	.akfs-cols > .akfs-maincol { order: 2; }
	.akfs-aside > .akfs-cardbox { order: 3; }
	.akfs-aside > .akfs-glance,
	.akfs-aside > .akfs-ownerbox { order: 1; }
}
@media (max-width: 860px) {
	.akfs-top { margin-top: -64px; padding: calc(64px + 22px) 0 28px; }
	.akfs-wrap { padding: 0 18px; }
	.akfs-head { gap: 16px; }
	.akfs-avatar { width: 76px; height: 76px; border-radius: 18px; border-width: 4px; }
	.akfs-avatar span { font-size: 30px; }
	.akfs-gal { grid-template-columns: repeat(2, 1fr); }
	.akfs-team { grid-template-columns: 1fr; }
}

/*
 * Phone. The hero stops being two columns and becomes one stack — logo, then
 * category, then the name, then the tagline, then a chip row that wraps. The
 * four action buttons leave the flow entirely and become a fixed bar at the
 * bottom of the viewport, which is the only way to keep them above the fold on
 * a 390px screen without the logo and the H1 fighting for the same row.
 */
@media (max-width: 720px) {
	.akfs-topblob { width: 250px; height: 250px; top: -110px; right: -95px; }
	.akfs-top { padding: calc(64px + 18px) 0 24px; }
	.akfs-crumbs { margin: 0 0 14px; font-size: 12px; line-height: 1.5; }

	.akfs-head { display: block; }
	.akfs-avatar { width: 72px; height: 72px; border-radius: 18px; border-width: 4px; margin: 0 0 14px; }
	.akfs-avatar span { font-size: 28px; }
	.akfs-headtext { width: 100%; }

	.akfs-catline { gap: 6px; }
	.akfs-catchip { font-size: 11px; padding: 5px 10px; letter-spacing: .4px; }
	.akfs-verified { font-size: 10.5px; padding: 5px 10px; }

	.akfs-top h1 { font-size: 27px !important; line-height: 1.16 !important; letter-spacing: -.4px; margin: 10px 0 0 !important; }
	.akfs-subtitle { font-size: 15px; line-height: 1.55; margin-top: 7px; }

	.akfs-headmeta { gap: 6px; margin-top: 14px; }
	.akfs-mchip { padding: 6px 12px; font-size: 12.5px; gap: 6px; }
	.akfs-mchip .ak-fs-ico { width: 13px; height: 13px; }

	.akfs-actions { margin-top: 16px; gap: 8px; }

	.akfs-main { padding: 30px 0 40px; }
	.akfs-sec { margin-bottom: 28px; }
	.akfs-offer { flex-direction: column; gap: 10px; }
	.akfs-offer-price { text-align: left; max-width: none; }
	.akfs-chips li { width: 100%; }

}
/* The phone bar is ak-cta.php's, shared with place and event singles, and it
   reserves its own room with body.ak-has-cta-sticky. The inline row stays
   visible underneath it, the way the deal single has always worked — and that
   also closes a gap the old CSS left: it hid the inline buttons from 980 down
   while the bar only appeared at 720, so a tablet saw no booking button at
   all. */
@media (prefers-reduced-motion: reduce) {
	.akfs *, .akfs *::before, .akfs *::after { transition: none !important; animation: none !important; }
	.akfs a:hover, .akfs button:hover { transform: none !important; }
}


    .akcta-row { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
    .akcta-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 13px 24px; border: 1.5px solid rgba(11,19,36,.12); border-radius: 9999px; background: #fff; color: #0b1324 !important; font-family: 'Plus Jakarta Sans', 'Manrope', system-ui, sans-serif; font-size: 14px; font-weight: 800; line-height: 1; text-decoration: none !important; cursor: pointer; transition: background .16s ease, border-color .16s ease, color .16s ease, transform .16s ease, box-shadow .16s ease; }
    .akcta-btn .ak-ico { width: 18px; height: 18px; flex: 0 0 18px; }
    .akcta-btn:hover { border-color: #2A7780; color: #2A7780 !important; transform: translateY(-1px); }
    .akcta-btn.is-primary { border-color: transparent; background: var(--akcta-accent, #2A7780); color: #fff !important; box-shadow: 0 4px 16px var(--akcta-shadow, rgba(42,119,128,.34)); }
    .akcta-btn.is-primary:hover { background: var(--akcta-accent-hover, #1f5d64); color: #fff !important; box-shadow: 0 8px 22px var(--akcta-shadow, rgba(42,119,128,.42)); }
    .akcta-btn.is-ghost { padding: 11px 17px; font-size: 13px; }
    .akcta-btn.is-ghost .ak-ico { width: 16px; height: 16px; flex: 0 0 16px; }
    /* Post-type accents, so the shared component still looks like the page it is on. */
    .akcta-row.for-events, .akcta-sticky.for-events { --akcta-accent: #ff6b6b; --akcta-accent-hover: #f2554f; --akcta-shadow: rgba(255,107,107,.38); }
    .akcta-row.for-deals-offers, .akcta-sticky.for-deals-offers { --akcta-accent: #E24B4B; --akcta-accent-hover: #C83D3D; --akcta-shadow: rgba(226,75,75,.34); }
    /* Family services is the site's sun yellow, not the indigo in config.php's
       category palette — that is what the family-service single has looked
       like since it was written, and the sticky bar has to match the inline
       row it mirrors. Dark ink, because yellow will not carry white text. */
    .akcta-row.for-services, .akcta-sticky.for-services { --akcta-accent: #F4B942; --akcta-accent-hover: #E39B1F; --akcta-shadow: rgba(244,185,66,.34); }
    .for-services .akcta-btn.is-primary, .for-services .akcta-btn.is-primary:hover { color: #4A340A !important; }

    .akcta-sticky { display: none; }
    @media (max-width: 720px) {
      .akcta-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; display: flex; align-items: center; gap: 8px;
        padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px)); background: rgba(255,255,255,.97);
        backdrop-filter: saturate(150%) blur(8px); border-top: 1px solid rgba(11,19,36,.10); box-shadow: 0 -6px 20px rgba(11,19,36,.10); }
      .akcta-sticky .akcta-btn { flex: 1 1 auto; min-width: 0; padding: 13px 14px; }
      .akcta-sticky .akcta-btn span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
      .akcta-sticky .akcta-btn.is-icon { flex: 0 0 52px; padding: 0; height: 46px; }
      .akcta-sticky .akcta-btn.is-icon .ak-ico { width: 19px; height: 19px; flex: 0 0 19px; }
      body.ak-has-cta-sticky { padding-bottom: 86px; }
      .akcta-row .akcta-btn { flex: 1 1 auto; }
    }
    

/* The card box is ours, so the three singles cannot drift apart; a host that
   already has a card class can pass `card_class` and this stays compatible. */
.ak-rv { --ak-rv-accent:#2A7780; --ak-rv-deep:#1D5B62;
    background:#fff; border:1px solid #e6eced; border-radius:20px; padding:30px; margin:0 0 26px; }
@media (max-width:560px) { .ak-rv { padding:20px; border-radius:16px; } }
.ak-rv .ak-rv-h { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 14px;
    font-family:'Plus Jakarta Sans',sans-serif; font-weight:800; font-size:22px; color:#0b1324; }
.ak-rv .ak-rv-h .ak-ico { color:var(--ak-rv-accent); flex:0 0 auto; }
.ak-rv .ak-rv-count { font-size:15px; font-weight:600; color:#6e7a74; }
.ak-rv-themes { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 14px; }
.ak-rv-chip { background:#eef6f7; color:#1D5B62; border-radius:999px; padding:5px 12px;
    font:600 12.5px/1 Manrope,sans-serif; }
.ak-rv-google, .ak-rv-empty, .ak-rv-signin, .ak-rv-modnote {
    font-family:Manrope,sans-serif; font-size:14.5px; line-height:1.6; }
.ak-rv-google { color:#6e7a74; margin:0 0 12px; }
.ak-rv-empty { color:#6e7a74; text-align:center; padding:18px 0 6px; }
.ak-rv-signin { text-align:center; padding:6px 0 16px; margin:0; }
.ak-rv-signin a { color:var(--ak-rv-accent); font-weight:800; text-decoration:none; }
.ak-rv-signin a:hover { text-decoration:underline; }
.ak-rv-modnote { color:#6e7a74; background:#f6fafb; border:1px solid #e2eef0; border-radius:10px;
    padding:10px 14px; margin:0 0 14px; font-size:13.5px; }
/* Voxel widgets rendered inline carry Elementor's own padding; strip it. */
.ak-rv .elementor-element, .ak-rv .elementor-widget-container { padding:0 !important; margin:0 !important; background:transparent !important; }
/* Elementor's own container styles must not reshape the card. */
.ak-rv .ak-rv-elem { margin:0; padding:0; width:auto; max-width:none; }
.ak-rv .ts-review-bars, .ak-rv .ts-review-stats { font-family:Manrope,sans-serif; }
.ak-rv .ts-status-list { padding:0 !important; list-style:none !important; }
.ak-rv .ts-status { background:#f8fafb; border:1px solid #e6eced; border-radius:12px; padding:16px; margin-bottom:12px; }
.ak-rv .ts-status-content p { font-family:Manrope,sans-serif !important; color:#3e4944 !important; line-height:1.6 !important; }
/* We print our own empty line above the composer; Voxel's magnifying-glass
   "No posts available" underneath it just says the same thing twice. */
.ak-rv .ts-no-posts { display:none !important; }
.ak-rv .ts-empty-list, .ak-rv .ts-empty-feed { padding:22px; text-align:center; color:#6e7a74; font-style:italic; }
.ak-rv .vx-btn, .ak-rv .ts-btn { background:var(--ak-rv-accent) !important; color:#fff !important; border:0 !important;
    font-family:'Plus Jakarta Sans',sans-serif !important; font-weight:700 !important; border-radius:12px !important; padding:12px 20px !important; }
.ak-rv .vx-btn:hover, .ak-rv .ts-btn:hover { background:var(--ak-rv-deep) !important; }
@media (max-width:560px) { .ak-rv .ak-rv-h { font-size:19px; } }

