
    /* ============================================================
       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;
        }

        /* ---------- Archives: sidebar + map stack below feed ---------- */
        body.post-type-archive-places .ts-filters-wrapper,
        body.post-type-archive-places .archive-sidebar,
        body.post-type-archive-places [class*="archive-sidebar"],
        body.post-type-archive-events .ts-filters-wrapper,
        body.post-type-archive-events .archive-sidebar,
        body.post-type-archive-events [class*="archive-sidebar"],
        body.post-type-archive-services .ts-filters-wrapper,
        body.post-type-archive-services .archive-sidebar,
        body.post-type-archive-services [class*="archive-sidebar"],
        body.post-type-archive-deals .ts-filters-wrapper,
        body.post-type-archive-deals .archive-sidebar,
        body.post-type-archive-deals [class*="archive-sidebar"],
        body.post-type-archive-communities .ts-filters-wrapper,
        body.post-type-archive-communities .archive-sidebar,
        body.post-type-archive-communities [class*="archive-sidebar"],
        body.search-results .ts-filters-wrapper,
        body.search-results .archive-sidebar,
        body.search-results [class*="archive-sidebar"] {
            position: static !important;
            width: 100% !important;
            max-width: 100% !important;
            margin-bottom: 16px !important;
        }
        body.post-type-archive-places .ts-map,
        body.post-type-archive-places .leaflet-container,
        body.post-type-archive-places .ts-post-feed-map,
        body.post-type-archive-events .ts-map,
        body.post-type-archive-events .leaflet-container,
        body.post-type-archive-events .ts-post-feed-map,
        body.post-type-archive-services .ts-map,
        body.post-type-archive-services .leaflet-container,
        body.post-type-archive-services .ts-post-feed-map,
        body.post-type-archive-deals .ts-map,
        body.post-type-archive-deals .leaflet-container,
        body.post-type-archive-deals .ts-post-feed-map,
        body.post-type-archive-communities .ts-map,
        body.post-type-archive-communities .leaflet-container,
        body.post-type-archive-communities .ts-post-feed-map,
        body.search-results .ts-map,
        body.search-results .leaflet-container,
        body.search-results .ts-post-feed-map {
            height: 280px !important;
            width: 100% !important;
            margin-top: 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}}

.akloc {
	--akloc-navy: #0B1324;
	--akloc-ink: #465268;
	--akloc-line: rgba(11,19,36,.10);
	--akloc-tint: #E4F1F2;
	--akloc-tint2: #D2E9EB;
	--akloc-accent: #368D96;
	--akloc-aink: #1D5B62;
	--akloc-cream: #FFF8EA;
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 28px;
	box-sizing: border-box;
}
.akloc * { box-sizing: border-box; }
.akloc-h2 {
	margin: 0 0 6px;
	font-family: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif;
	font-size: 23px; font-weight: 800; letter-spacing: -.4px; line-height: 1.25;
	color: var(--akloc-navy);
}
.akloc-sub { margin: 0 0 16px; font-size: 14.5px; color: var(--akloc-ink); }

/* ── about the town ─────────────────────────────────────────────── */
.akloc-about { padding: 8px 28px 4px; }
.akloc-card {
	display: grid; grid-template-columns: minmax(0, 380px) minmax(0, 1fr);
	gap: 26px; align-items: center;
	background: #fff; border: 1px solid var(--akloc-line); border-radius: 22px;
	overflow: hidden;
}
.akloc-card.is-plain { grid-template-columns: 1fr; background: var(--akloc-cream); }
.akloc-shot { position: relative; aspect-ratio: 4 / 3; background: var(--akloc-tint); }
.akloc-shot img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* a soft brand wash over the photo, so a listing photo standing in for a city
   shot still reads as part of the page rather than as a stray card */
.akloc-shot::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(115deg, rgba(29,91,98,.30), rgba(29,91,98,0) 58%);
	pointer-events: none;
}
.akloc-words { padding: 26px 30px 26px 4px; }
.akloc-card.is-plain .akloc-words { padding: 26px 30px; }
.akloc-blurb {
	margin: 6px 0 0; font-size: 15.5px; line-height: 1.68;
	color: var(--akloc-ink); max-width: 62ch;
}

/* ── weather, in the words column of the hero card ──────────────── */
/* `is-wait` holds the filled card's height; a failed request collapses it. */
.akwx{margin:18px 0 0;max-width:620px;padding:13px 16px 6px;border:1px solid var(--akloc-line);border-radius:16px;background:var(--akloc-cream)}
.akwx.is-wait{min-height:162px;border-color:transparent;background:none}
.akwx.is-wait>*{visibility:hidden}
.akwx.is-off{display:none}
.akwx-eyebrow{margin:0}
.akwx-top{display:flex;flex-wrap:wrap;align-items:center;gap:12px 26px;margin-top:9px}
.akwx-now{display:flex;align-items:center;gap:11px}
.akwx-ico{display:block;flex:none;width:20px;height:20px;color:var(--akloc-accent)}
.akwx-ico svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.akwx-now .akwx-ico{width:34px;height:34px}
.akwx-temp b{font-size:27px;letter-spacing:-.6px}
.akwx-temp i{margin-left:6px;font-size:15px;font-weight:700}
.akwx-rain{font-size:12.5px;font-weight:800;white-space:nowrap;color:var(--akloc-aink);background:var(--akloc-tint);border-radius:9999px;padding:5px 11px}
.akwx-days{display:flex;gap:18px;margin:0;padding:0;list-style:none}
.akwx-days li{display:flex;flex-direction:column;align-items:center;gap:3px}
.akwx-days em{display:flex;align-items:baseline;gap:5px}
.akwx-days b{font-size:13px}
.akwx b{font-weight:800;color:var(--akloc-navy)}
.akwx-days i{font-size:11.5px}
.akwx i,.akwx em{font-style:normal;color:#7C8798}
.akwx-days li>span:first-child{font-size:10.5px;font-weight:800;letter-spacing:.4px;text-transform:uppercase;color:#7C8798}
.akwx-nudge,.akwx-by{margin:0}
.akwx-nudge a,.akwx-by a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
.akwx-nudge a{font-size:14px;font-weight:800;line-height:1.35;color:var(--akloc-aink)}
.akwx-nudge a:hover{text-decoration:underline}
.akwx-by a{font-size:11px;color:#8A94A3}

/* ── chips ──────────────────────────────────────────────────────── */
.akloc-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 18px; }
.akloc-chiplabel {
	font-family: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif;
	font-size: 11.5px; font-weight: 800; letter-spacing: .5px; text-transform: uppercase;
	color: #7C8798; margin-right: 2px;
}
.akloc-chip {
	display: inline-flex; align-items: center; gap: 7px; min-height: 38px;
	padding: 0 15px; border-radius: 9999px; text-decoration: none;
	background: var(--akloc-tint); color: var(--akloc-aink);
	border: 1.5px solid transparent;
	font-family: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif;
	font-size: 13.5px; font-weight: 800; line-height: 1;
	transition: background .16s ease, border-color .16s ease, transform .16s ease;
}
.akloc-chip:hover { background: var(--akloc-tint2); border-color: var(--akloc-accent); color: var(--akloc-aink); transform: translateY(-1px); }
.akloc-chip i { font-style: normal; font-size: 11.5px; font-weight: 800; opacity: .62; }
.akloc-chip.is-big { min-height: 44px; font-size: 14.5px; padding: 0 18px; }

/* ── the map ────────────────────────────────────────────────────── */
.akloc-mapwrap { padding: 30px 28px 4px; }
.akloc-map {
	position: relative; height: 420px; border-radius: 20px; overflow: hidden;
	border: 1px solid var(--akloc-line); background: var(--akloc-tint);
}
.akloc .akloc-canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.akloc-boot {
	position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
	background: var(--akloc-tint); font-size: 14px; color: var(--akloc-aink); font-weight: 700;
}
.akloc-boot.is-done { opacity: 0; visibility: hidden; transition: opacity .25s ease; }
.akloc-spin {
	width: 26px; height: 26px; border-radius: 50%;
	border: 3px solid rgba(54,141,150,.28); border-top-color: var(--akloc-accent);
	animation: akloc-spin .8s linear infinite;
}
@keyframes akloc-spin { to { transform: rotate(360deg); } }
.akloc-note { margin: 12px 0 0; font-size: 13.5px; color: #6B7686; }
/* vx:map.css strips the provider's own info-window chrome; this is the card
   inside it, deliberately small — the full card is one tap away on the grid. */
.akloc-pop { width: 234px; }
.akloc-poplink {
	display: flex; gap: 11px; align-items: center; padding: 10px;
	background: #fff; border-radius: 14px; text-decoration: none;
	box-shadow: 0 18px 40px -22px rgba(11,19,36,.55);
}
.akloc-popshot { width: 56px; height: 56px; flex: none; border-radius: 11px; overflow: hidden; background: var(--akloc-tint); }
.akloc-popshot img { width: 100%; height: 100%; object-fit: cover; display: block; }
.akloc-popbody { min-width: 0; display: block; }
.akloc-popbody b {
	display: block; font-family: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif;
	font-size: 14px; font-weight: 800; color: var(--akloc-navy); line-height: 1.3;
}
.akloc-popbody em { display: block; margin-top: 3px; font-style: normal; font-size: 12px; color: #6B7686; }

/* ── nearby + siblings ──────────────────────────────────────────── */
.akloc-strip { padding: 34px 28px 4px; }
.akloc-townrow { padding: 34px 28px 20px; }
.akloc-tiles { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.akloc-tile {
	display: block; padding: 18px 18px 20px; border-radius: 16px; text-decoration: none;
	background: #fff; border: 1px solid var(--akloc-line); color: var(--akloc-navy);
	transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.akloc-tile:hover {
	transform: translateY(-3px); border-color: var(--akloc-tint2);
	box-shadow: 0 18px 38px -26px rgba(11,19,36,.45); color: var(--akloc-navy);
}
.akloc-tile b {
	display: block; font-family: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif;
	font-size: 15.5px; font-weight: 800; letter-spacing: -.2px; line-height: 1.3;
}
.akloc-tile span { display: block; margin-top: 6px; font-size: 12.5px; line-height: 1.5; color: #6B7686; }
.akloc-up { padding: 26px 28px 8px; margin: 0; }
.akloc-up a {
	font-family: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif;
	font-size: 14px; font-weight: 800; color: var(--akloc-aink);
	text-decoration: underline; text-underline-offset: 3px;
}

/* ── the towns a category has, as tiles (a category page) ────────── */
.akloc-towns { display: grid; grid-template-columns: repeat(auto-fill, minmax(206px, 1fr)); gap: 12px; }
.akloc-town {
	display: flex; align-items: center; gap: 12px; min-width: 0;
	padding: 10px 16px 10px 10px; border-radius: 16px; text-decoration: none;
	background: #fff; border: 1px solid var(--akloc-line); color: var(--akloc-navy);
	transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.akloc-town.is-plain { padding: 15px 16px; }
.akloc-town:hover {
	transform: translateY(-2px); border-color: var(--akloc-tint2);
	box-shadow: 0 16px 32px -26px rgba(11,19,36,.45); color: var(--akloc-navy);
}
.akloc-town-shot { width: 54px; height: 54px; flex: none; border-radius: 12px; overflow: hidden; background: var(--akloc-tint); display: block; }
.akloc-town-shot img { width: 100%; height: 100%; object-fit: cover; display: block; }
.akloc-town-body { min-width: 0; display: block; }
.akloc-town-body b {
	display: block; font-family: 'Plus Jakarta Sans', 'Inter', system-ui, sans-serif;
	font-size: 15px; font-weight: 800; letter-spacing: -.2px; line-height: 1.3; overflow-wrap: anywhere;
}
.akloc-town-body span { display: block; margin-top: 3px; font-size: 12.5px; color: #6B7686; }

/* ── browse by town, on a section archive (a crawl path, kept small) ─ */
/* Real space underneath: on /places/ and /events/ the next thing down the page
   is the dark footer band, and the chips were sitting on its edge. */
.akloc-townbar { padding: 30px 28px 40px; }
.akloc-townbar .akloc-chiplabel { display: block; margin: 0; }
.akloc-townbar .akloc-chips { margin-top: 8px; }

/* ── where to find them, injected into a single listing ──────────── */
/* Two classes on purpose: this block is a CHILD of somebody else's column, so
   the wrapper's own gutter and max-width have to come off, including inside the
   860px query below where `.akloc` sets a gutter again. */
.akloc.akloc-where { max-width: none; margin: 30px 0 0; padding: 0; }
.akloc-where .akloc-h2 { font-size: 20px; }
.akloc-where .akloc-sub { margin: 0 0 12px; }
.akloc-where .akloc-chips { margin-top: 0; }
/* The last chip carries a whole sentence and wraps on a phone; `.akloc-chip`
   has no vertical padding because a one-line chip does not need any. */
.akloc-where .akloc-chip { padding-top: 9px; padding-bottom: 9px; line-height: 1.3; text-align: left; }
.akloc-chip.is-here { background: var(--akloc-accent); color: #fff; }
.akloc-chip.is-here:hover { background: var(--akloc-aink); border-color: transparent; color: #fff; }
.akloc-chip.is-here i { opacity: .85; }
.akloc-chip.is-all { background: #fff; border-color: var(--akloc-line); }
.akloc-chip.is-all:hover { background: var(--akloc-tint); }
.akloc-chip .ak-ico { width: 15px; height: 15px; flex: none; }

@media (max-width: 1100px) { .akloc-tiles { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 860px) {
	.akloc, .akloc-about, .akloc-mapwrap, .akloc-strip, .akloc-townrow, .akloc-townbar, .akloc-up { padding-left: 18px; padding-right: 18px; }
	.akloc-card { grid-template-columns: 1fr; gap: 0; }
	.akloc-shot { aspect-ratio: 16 / 9; }
	.akloc-words, .akloc-card.is-plain .akloc-words { padding: 22px; }
	.akloc-h2 { font-size: 20px; }
	.akloc-map { height: 340px; }
	.akloc-tiles { grid-template-columns: 1fr 1fr; }
	.akwx { max-width: none; }
}
/* Today and the three days stop fitting on one line. */
@media (max-width: 620px) {
.akwx.is-wait{min-height:201px}
.akwx-days{width:100%;justify-content:space-between;gap:10px}
}
@media (max-width: 520px) {
	.akloc-tiles, .akloc-towns { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	.akloc-spin { animation: none; }
	.akloc-tile:hover, .akloc-chip:hover, .akloc-town:hover { transform: none; }
	.akloc-boot.is-done { transition: none; }
}

