/* All Canada — An Independent Guide to Canada's Provinces, Cities & Culture */
/* Government of Canada FIP (Federal Identity Program) official colour palette */
/* Source: canada.ca/en/treasury-board-secretariat/services/government-communications/design-standard/colour-design-standard-fip.html */

/* ── Font-display override: ensure text is always visible during font load ── */
@font-face {
  font-family: 'Playfair Display';
  font-display: swap;
}
@font-face {
  font-family: 'Inter';
  font-display: swap;
}
@font-face {
  font-family: 'Source Serif 4';
  font-display: swap;
}

*,*::before,*::after { box-sizing: border-box; }
html,body,h1,h2,h3,h4,h5,h6,p,ul,ol,figure,blockquote,dl,dd { margin: 0; padding: 0; }

:root {
    /* ── Government of Canada FIP Official Colour Palette ── */
    /* Standard Signature Colours */
    --fip-red:       #EB2D37;   /* FIP Red — Pantone 032, RGB 235,45,55       */
    --fip-black:     #000000;   /* Black — Process Black, RGB 0,0,0            */
    --fip-white:     #FFFFFF;   /* White — Process White, RGB 255,255,255      */
    --pewter-grey:   #969696;   /* Pewter Grey — Pantone 429, RGB 150,150,150  */

    /* Signage Colours */
    --light-grey:    #C8C8C8;   /* Light Grey — Pantone 428, RGB 200,200,200   */
    --dark-grey:     #4B4B4B;   /* Dark Grey — Pantone 432, RGB 75,75,75       */
    --fip-yellow:    #FAD714;   /* Yellow — Pantone 109, RGB 250,215,20        */
    --fip-blue:      #005A9B;   /* Blue — Pantone 301, RGB 0,90,155            */
    --fip-green:     #008750;   /* Green — Pantone 348, RGB 0,135,80           */
    --safety-red:    #E60F2D;   /* Safety Red — Pantone 185, RGB 230,15,45     */

    /* Derived Tints (from official palette) */
    --green-tint:    #E8F4EC;   /* Green at ~10% opacity on white              */
    --blue-tint:     #E5F0F9;   /* Blue at ~10% opacity on white               */
    --yellow-tint:   #FEF9E0;   /* Yellow at ~10% opacity on white             */
    --red-tint:      #FCE8EB;   /* FIP Red at ~10% opacity on white            */
    --blue-deep:     #003F6E;   /* Blue darkened 30%                           */
    --green-deep:    #005E38;   /* Green darkened 30%                          */
    --grey-tint:     #F5F5F5;   /* Light Grey at ~15% opacity on white         */

    /* Aliases — kept for template compatibility */
    --flag-red:      #EB2D37;   /* = FIP Red                                   */
    --maple-red:     #EB2D37;   /* = FIP Red                                   */
    --maple-deep:    #003F6E;   /* = Blue Deep (replaces non-FIP dark maroon)  */
    --forest:        #008750;   /* = FIP Green                                 */
    --balsam:        #008750;   /* = FIP Green                                 */
    --balsam-deep:   #005E38;   /* = Green Deep                                */
    --prairies:      #FAD714;   /* = FIP Yellow                                */
    --gold:          #FAD714;   /* = FIP Yellow                                */
    --gold-soft:     #FEF9E0;   /* = Yellow Tint                               */
    --great-lakes:   #E5F0F9;   /* = Blue Tint                                 */
    --lake-blue:     #005A9B;   /* = FIP Blue                                  */
    --aurora:        #E5F0F9;   /* = Blue Tint                                 */
    --aurora-deep:   #003F6E;   /* = Blue Deep                                 */
    --pacific-teal:  #E8F4EC;   /* = Green Tint                                */
    --sunset-pink:   #FCE8EB;   /* = Red Tint                                  */
    --rck-black:     #000000;   /* = FIP Black                                 */
    --snow:          #FFFFFF;   /* = FIP White                                 */
    --paper:         #F5F5F5;   /* = Grey Tint                                 */
    --paper-warm:    #FEF9E0;   /* = Yellow Tint                               */
    --ink:           #000000;   /* = FIP Black                                 */
    --ink-soft:      #4B4B4B;   /* = Dark Grey                                 */
    --rule:          #C8C8C8;   /* = Light Grey                                */
    --rule-soft:     #E5F0F9;   /* = Blue Tint                                 */

    /* Typography */
    --font-display: 'Playfair Display', 'Georgia', 'Times New Roman', serif;
    --font-serif:   'Source Serif 4', 'Source Serif Pro', 'Georgia', serif;
    --font-sans:    'Inter', -apple-system, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;

    /* Layout */
    --content-max:  1180px;
    --reading-max:  760px;
    --radius:       6px;
    --radius-lg:    12px;
    --shadow-sm:    0 1px 3px rgba(6,47,35,0.07);
    --shadow-md:    0 6px 18px rgba(6,47,35,0.10);
    --shadow-lg:    0 14px 36px rgba(6,47,35,0.14);
    --nav-h:        64px;
}

html { scroll-behavior: smooth; }
body {
    font-family: var(--font-serif);
    font-size: 1.05rem;
    line-height: 1.72;
    color: var(--ink);
    background: var(--paper);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

img { max-width: 100%; height: auto; display: block; }

/* ── Flag bar ─────────────────────────────────────── */

/* ── Full-width green frame around hero image ── */
.hero-full-wrap {
    background: #062F23;
    background: var(--forest);
    width: 100%;
}

/* ── Full-width red bar directly under every hero ── */
.hero-underbar {
    width: 100%;
    min-height: 8px;
    height: 8px;
    background: var(--flag-red);
    display: block;
    border: none;
}
/* Empty underbar (no text) — keep at 8px decorative stripe */
.hero-underbar:empty {
    min-height: 8px;
    height: 8px;
    display: block;
}
.hero-underbar-inner {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: 0 1.5rem;
    width: 100%;
}

.flag-bar {
    height: 28px;
    width: 100%;
    background: linear-gradient(to right,
        var(--flag-red) 0 33.33%,
        #fff 33.33% 66.67%,
        var(--flag-red) 66.67% 100%);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}
.flag-bar::before {
    content: '\1F341';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 16px;
    line-height: 1;
    margin-top: -0.5px;
}

/* ── Site header ──────────────────────────────────── */
.site-header {
    background: var(--forest);
    border-bottom: 3px solid var(--flag-red);
    position: sticky;
    top: 0;
    z-index: 1000;
    box-shadow: 0 2px 12px rgba(0,0,0,0.25);
}

.header-container {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: 0 1.5rem;
    height: var(--nav-h);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

.site-logo {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.5rem;
    color: var(--snow);
    text-decoration: none;
    letter-spacing: -0.01em;
    flex-shrink: 0;
}
.site-logo:hover { color: var(--prairies); }
.logo-leaf { color: var(--flag-red); font-size: 1.7rem; line-height: 1; }
.logo-tagline {
    display: block;
    font-family: var(--font-sans);
    font-size: 0.62rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    color: rgba(255,255,255,0.55);
    text-transform: uppercase;
    margin-top: -2px;
    line-height: 1;
}
@media (max-width: 480px) { .logo-tagline { display: none; } }

/* ── Primary nav ──────────────────────────────────── */
.main-nav ul {
    list-style: none;
    display: flex;
    gap: 0;
    align-items: center;
}

.main-nav > ul > li {
    position: relative;
    display: block;
}

/* Subtle vertical separator between nav items */
.main-nav > ul > li + li::before {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    top: 18%;
    height: 64%;
    width: 1px;
    background: rgba(255,255,255,0.18);
    pointer-events: none;
}

.main-nav a {
    color: rgba(255,255,255,0.88);
    text-decoration: none;
    font-family: var(--font-sans);
    font-weight: 500;
    font-size: 0.82rem;
    padding: 0.55rem 0.9rem;
    border-radius: var(--radius);
    display: block;
    text-align: center;
    line-height: 1.3;
    transition: color 0.15s, background 0.15s;
}
.main-nav a:hover,
.main-nav a.active {
    color: var(--prairies);
    background: rgba(255,255,255,0.08);
}

/* ── Explore Canada dropdown ─────────────────────────
   Hidden by default. Only shown on mouse hover (desktop) or
   when JS toggles .submenu-open (mobile / keyboard).         */
.has-dropdown { position: relative; }

.dropdown {
    display: none !important;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    min-width: 230px;
    background: var(--snow);
    border-radius: var(--radius-lg);
    border: 1px solid var(--rule);
    box-shadow: var(--shadow-lg);
    z-index: 2000;
    padding: 0.5rem 0;
    list-style: none;
    margin: 0;
}

.dropdown li a {
    color: var(--ink);
    padding: 0.55rem 1.1rem;
    font-size: 0.9rem;
    border-radius: 0;
    display: block;
    text-align: left;
    white-space: nowrap;
}
.dropdown li a:hover {
    color: var(--flag-red);
    background: var(--paper);
}

/* Hover-to-open on desktop — the ONLY way the dropdown appears on desktop */
@media (min-width: 861px) {
    .has-dropdown:hover > .dropdown,
    .has-dropdown:focus-within > .dropdown {
        display: block !important;
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
    }
    .has-dropdown:hover > .dropdown-toggle svg,
    .has-dropdown:focus-within > .dropdown-toggle svg { transform: rotate(180deg); }
}

/* Click-to-open (mobile / keyboard fallback when JS toggles submenu-open) */
.has-dropdown.submenu-open > .dropdown {
    display: block !important;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
}

/* ── Hamburger toggle (mobile) ────────────────────── */
.nav-toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 48px;          /* larger touch target for iOS */
    height: 48px;
    min-width: 48px;
    min-height: 48px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    border-radius: var(--radius);
    z-index: 1200;
    -webkit-tap-highlight-color: transparent;
    touch-action: manipulation; /* removes 300ms iOS delay */
    -webkit-touch-callout: none;
    user-select: none;
    position: relative;  /* ensure it stacks above hero images */
}
.nav-toggle:focus-visible { outline: 2px solid var(--prairies); outline-offset: 2px; }
.nav-toggle span {
    display: block;
    width: 26px;
    height: 2px;
    background: var(--snow);
    border-radius: 2px;
    transition: transform 0.25s ease, opacity 0.2s ease;
    transform-origin: center;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; transform: scaleX(0.4); }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ── Submenu chevron toggle (always visible) ──────── */
.dropdown-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    background: transparent;
    border: 0;
    color: rgba(255,255,255,0.88);
    cursor: pointer;
    font-family: var(--font-sans);
    font-weight: 500;
    font-size: 0.82rem;
    line-height: 1.3;
    text-align: center;
    padding: 0.55rem 0.9rem;
    margin: 0;
    border-radius: var(--radius);
    -webkit-tap-highlight-color: transparent;
    white-space: normal;
}
/* Text label inside the toggle button — allows <br> line breaks */
.dropdown-toggle > span {
    display: block;
    text-align: center;
    line-height: 1.3;
}
.dropdown-toggle:hover { color: var(--prairies); background: rgba(255,255,255,0.08); }
.dropdown-toggle svg { transition: transform 0.22s ease; flex-shrink: 0; display: block; }
.has-dropdown.submenu-open .dropdown-toggle svg { transform: rotate(180deg); }
.has-dropdown:hover .dropdown-toggle svg { transform: rotate(180deg); }
.has-dropdown.submenu-open .dropdown-toggle { color: var(--prairies); background: rgba(255,255,255,0.08); }
.has-dropdown:hover .dropdown-toggle { color: var(--prairies); }
.dropdown-toggle:focus-visible { outline: 2px solid var(--prairies); outline-offset: 2px; }

/* ── Backdrop behind the mobile drawer ────────────── */
.nav-backdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(6,47,35,0.55);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    z-index: 1040;
    animation: nav-fade-in 0.18s ease;
}
@keyframes nav-fade-in { from { opacity: 0; } to { opacity: 1; } }

/* Scroll-lock is handled via JS body position:fixed for iOS Safari compatibility.
   The html/body overflow:hidden approach doesn't work on iOS — JS sets body {position:fixed} instead. */

/* ── Breadcrumbs ─────────────────────────────────── */
.breadcrumbs {
    background: var(--paper-warm);
    padding: 0.6rem 1.5rem;
    font-size: 0.88rem;
    font-family: var(--font-sans);
    color: var(--ink-soft);
    border-bottom: 1px solid var(--rule);
}
.breadcrumbs-container { max-width: var(--content-max); margin: 0 auto; }
.breadcrumbs a { color: var(--lake-blue); text-decoration: none; }
.breadcrumbs a:hover { text-decoration: underline; }

/* ── Page-level jump nav — sidebar (desktop) / collapsible (mobile) ── */

/* Layout wrapper injected by JS around page-jump-nav + main */
.page-layout-with-sidebar {
    display: flex;
    align-items: flex-start;
    gap: 2rem;
    padding: 0 1.5rem;
    max-width: var(--content-max);
    margin-left: auto;
    margin-right: auto;
}
.page-layout-with-sidebar main {
    flex: 1;
    min-width: 0;
    max-width: var(--content-max);
    margin: 0;
    padding-left: 0;
    padding-right: 0;
}

/* "On this page" heading inside the sidebar */
.sidebar-nav-heading {
    display: block;
    font-family: var(--font-sans);
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    color: #6b7280;
    padding: 1rem 1.1rem 0.65rem;
    margin: 0;
    border-bottom: 1px solid #eef0f3;
}

/* Mobile toggle button — hidden on desktop */
.sidebar-mobile-toggle { display: none; }

/* ── Desktop sidebar — modern UX-focused design ── */
@media (min-width: 861px) {
    .page-jump-nav {
        position: sticky;
        top: calc(var(--nav-h) + 1rem);
        width: 196px;
        flex-shrink: 0;
        max-height: calc(100vh - var(--nav-h) - 2rem);
        overflow-y: auto;
        overflow-x: hidden;
        scrollbar-width: thin;
        scrollbar-color: #d4d8de transparent;
        background: #ffffff;
        border: none;
        border-radius: 12px;
        box-shadow: 0 1px 2px rgba(15,23,42,0.04), 0 6px 18px rgba(15,23,42,0.06);
        padding: 0;
        z-index: 800;
        color: var(--ink);
    }
    .page-jump-nav::-webkit-scrollbar { width: 6px; }
    .page-jump-nav::-webkit-scrollbar-thumb { background: #d4d8de; border-radius: 4px; }
    .page-jump-nav::-webkit-scrollbar-track { background: transparent; }
    .page-jump-nav ul {
        list-style: none;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        margin: 0;
        padding: 0.45rem 0.5rem;
        max-width: none;
        white-space: normal;
    }
    .page-jump-nav li { border: none; }
    .page-jump-nav li + li { margin-top: 1px; }
    .page-jump-nav li a {
        position: relative;
        color: #4b5563;
        text-decoration: none;
        font-family: var(--font-sans);
        font-size: 0.84rem;
        font-weight: 500;
        padding: 0.5rem 0.75rem 0.5rem 0.95rem;
        border-radius: 7px;
        display: block;
        line-height: 1.4;
        transition: color 0.18s ease, background 0.18s ease, transform 0.18s ease;
    }
    .page-jump-nav li a::before {
        content: '';
        position: absolute;
        left: 0;
        top: 50%;
        transform: translateY(-50%) scaleY(0);
        width: 3px;
        height: 60%;
        background: var(--flag-red);
        border-radius: 0 3px 3px 0;
        transition: transform 0.2s ease;
    }
    .page-jump-nav li a:hover {
        color: #062F23;
        background: #f5f4ee;
    }
    .page-jump-nav li a:hover::before { transform: translateY(-50%) scaleY(1); }
    .page-jump-nav li a.active {
        color: #062F23;
        background: #f0ede2;
        font-weight: 700;
    }
    .page-jump-nav li a.active::before { transform: translateY(-50%) scaleY(1); }
}

/* ── Mobile collapsible ── */
@media (max-width: 860px) {
    .sidebar-nav-heading { display: none; }

    .sidebar-mobile-toggle {
        display: flex;
        width: 100%;
        align-items: center;
        justify-content: space-between;
        background: var(--flag-red);
        color: var(--snow);
        border: none;
        border-bottom: 2px solid var(--maple-deep);
        padding: 0.7rem 1.25rem;
        font-family: var(--font-sans);
        font-size: 0.88rem;
        font-weight: 700;
        cursor: pointer;
        letter-spacing: 0.03em;
        gap: 0.5rem;
        -webkit-tap-highlight-color: transparent;
    }
    .sidebar-mobile-toggle svg { flex-shrink: 0; transition: transform 0.22s ease; }
    .sidebar-mobile-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }

    .page-layout-with-sidebar {
        display: block;
        padding: 0;
    }
    .page-layout-with-sidebar main {
        max-width: var(--content-max);
        margin: 0 auto;
        padding: clamp(1.5rem, 4vw, 3rem) 1.5rem;
    }

    .page-jump-nav {
        position: sticky;
        top: var(--nav-h);
        z-index: 900;
        background: var(--flag-red);
        border-bottom: 2px solid var(--maple-deep);
        overflow: visible;
        padding: 0;
    }
    .page-jump-nav ul {
        display: none;
        list-style: none;
        flex-direction: column;
        margin: 0;
        padding: 0.3rem 0;
        max-width: none;
        white-space: normal;
        background: var(--snow);
        border-left: 4px solid var(--flag-red);
        border-bottom: 2px solid var(--flag-red);
        box-shadow: var(--shadow-md);
    }
    .page-jump-nav.mobile-open ul { display: flex; }
    .page-jump-nav li { border-bottom: 1px solid rgba(230,0,19,0.12); }
    .page-jump-nav li:last-child { border-bottom: none; }
    .page-jump-nav li a {
        color: #1a1a1a;
        text-decoration: none;
        font-family: var(--font-sans);
        font-size: 0.9rem;
        font-weight: 600;
        padding: 0.65rem 1.25rem;
        border-radius: 0;
        display: block;
        transition: color 0.15s, background 0.15s;
    }
    .page-jump-nav li a:hover { color: var(--snow); background: var(--flag-red); }
}

/* ── Hero — text-only ────────────────────────────── */
.hero {
    background: linear-gradient(135deg, var(--forest) 0%, var(--lake-blue) 100%);
    color: var(--snow);
    padding: clamp(2.4rem, 6.4vw, 4.8rem) 1.5rem; /* 20% smaller */
    text-align: center;
    position: relative;
    overflow: hidden;
    filter: brightness(1.35); /* 40% brighter */
}
.hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 20% 30%, rgba(250,218,70,0.12), transparent 40%),
        radial-gradient(circle at 80% 70%, rgba(170,218,202,0.10), transparent 40%);
    pointer-events: none;
}
.hero h1 {
    position: relative;
    font-family: var(--font-display);
    font-size: clamp(2.1rem, 5vw, 3.4rem);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.01em;
    margin-bottom: 1rem;
    color: var(--snow);
}
.hero p {
    position: relative;
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    max-width: 720px;
    margin: 0 auto 2rem;
    color: rgba(255,255,255,0.92);
}
.hero-cta {
    position: relative;
    display: inline-block;
    background: var(--flag-red);
    color: var(--snow);
    padding: 0.85rem 1.9rem;
    text-decoration: none;
    font-family: var(--font-sans);
    font-weight: 600;
    font-size: 1rem;
    border-radius: var(--radius);
    transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
    box-shadow: 0 4px 14px rgba(230,0,19,0.4);
}
.hero-cta:hover {
    background: var(--maple-deep);
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(80,6,3,0.45);
}

/* ── Page hero — photographic ────────────────────── */
.page-hero {
    position: relative;
    height: clamp(134px, 20.2vw, 233px); /* 36% smaller */
    overflow: hidden;
    color: var(--snow);
    background: var(--balsam-deep);
    max-width: var(--content-max);
    margin-left: auto;
    margin-right: auto;
}
.page-hero .hero-image {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 1;
    filter: brightness(1.35); /* 40% brighter */
}
.page-hero::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg,
        rgba(6,47,35,0.15) 0%,
        rgba(6,47,35,0.50) 65%,
        rgba(6,47,35,0.82) 100%);
    z-index: 2;
}
.page-hero .hero-content {
    position: relative;
    z-index: 3;
    max-width: var(--content-max);
    margin: 0 auto;
    padding: 0 1.5rem 2.5rem;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
}
.page-hero .kicker {
    font-family: var(--font-sans);
    font-size: 0.80rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--prairies);
    margin-bottom: 0.5rem;
}
.page-hero h1 {
    font-family: var(--font-display);
    font-size: clamp(2rem, 5vw, 3.4rem);
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.01em;
    color: var(--snow);
    text-shadow: 0 2px 14px rgba(0,0,0,0.4);
    max-width: 900px;
}
.page-hero .hero-tagline {
    margin-top: 0.6rem;
    font-size: 1.1rem;
    color: rgba(255,255,255,0.90);
    max-width: 700px;
    text-shadow: 0 1px 6px rgba(0,0,0,0.4);
}

/* ── Main content ────────────────────────────────── */
main {
    max-width: var(--content-max);
    margin: 0 auto;
    padding: clamp(1.5rem, 4vw, 3rem) 1.5rem;
}
article { max-width: var(--reading-max); margin: 0 auto; }
article.wide { max-width: 100%; }

.intro-section {
    background: var(--snow);
    padding: clamp(1.5rem, 3vw, 2.5rem);
    border-radius: var(--radius-lg);
    margin-bottom: 2.5rem;
    box-shadow: var(--shadow-sm);
    border-top: 4px solid var(--flag-red);
}

/* ── Headings ────────────────────────────────────── */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-display);
    color: var(--ink);
    font-weight: 700;
    line-height: 1.22;
    letter-spacing: -0.005em;
}
article h1 { font-size: clamp(2rem, 4.5vw, 2.8rem); margin-bottom: 1rem; }
article h2 {
    font-size: clamp(1.55rem, 3vw, 2rem);
    margin: 2.6rem 0 1rem;
    padding-bottom: 0.4rem;
    border-bottom: 2px solid var(--flag-red);
    display: inline-block;
    color: var(--balsam-deep);
}
article h3 { font-size: 1.4rem; margin: 1.8rem 0 0.75rem; color: var(--lake-blue); }
article h4 {
    font-size: 1.12rem;
    margin: 1.3rem 0 0.4rem;
    color: var(--balsam);
    font-family: var(--font-sans);
}

p { margin-bottom: 1.05rem; }
article p { font-family: var(--font-serif); }
article p > strong { color: var(--ink); }

.lead {
    font-size: 1.18rem;
    line-height: 1.65;
    color: var(--ink-soft);
    border-left: 3px solid var(--prairies);
    padding-left: 1rem;
    margin-bottom: 1.6rem;
    font-style: italic;
    font-family: var(--font-serif);
}

/* ── Province / city directory grid ─────────────── */
.province-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.4rem;
    margin: 2rem 0;
}
.province-card {
    background: var(--snow);
    border-radius: var(--radius-lg);
    padding: 1.6rem 1.6rem 1.4rem;
    box-shadow: var(--shadow-sm);
    transition: transform 0.22s, box-shadow 0.22s;
    border-top: 4px solid var(--flag-red);
    display: flex;
    flex-direction: column;
}
.province-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.province-card h3 { margin: 0 0 0.4rem; color: var(--balsam-deep); font-size: 1.25rem; }
.province-card .capital { color: var(--ink-soft); font-size: 0.9rem; font-style: italic; margin-bottom: 0.7rem; }
.province-card p { font-size: 0.98rem; line-height: 1.6; margin-bottom: 0.9rem; }
.province-card a { color: var(--lake-blue); text-decoration: none; font-weight: 600; margin-top: auto; font-family: var(--font-sans); font-size: 0.92rem; }
.province-card a:hover { color: var(--flag-red); text-decoration: underline; }

/* ── City quick-facts ────────────────────────────── */
.city-quickfacts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem 1.5rem;
    background: var(--paper-warm);
    padding: 1.25rem 1.5rem;
    border-radius: var(--radius);
    border-left: 4px solid var(--prairies);
    margin: 1.5rem 0;
    font-family: var(--font-sans);
}
.city-quickfacts dt { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-soft); font-weight: 600; }
.city-quickfacts dd { font-size: 1rem; color: var(--ink); font-weight: 500; margin-top: 0.15rem; }

/* ── Photo and figure styles ─────────────────────── */
figure.photo {
    margin: 1.8rem 0;
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    background: var(--snow);
}
figure.photo img { width: 100%; height: auto; object-fit: cover; }
figure.photo figcaption {
    font-family: var(--font-sans);
    font-size: 0.88rem;
    color: var(--ink-soft);
    padding: 0.7rem 1rem 0.85rem;
    background: var(--snow);
    border-top: 1px solid var(--rule);
}
.photo-hero { margin: 0 0 2rem; border-radius: 0; box-shadow: none; }
.photo-hero img { width: 100%; height: clamp(154px, 22.4vw, 269px); object-fit: cover; border-radius: var(--radius-lg); filter: brightness(1.35); } /* 36% smaller, 40% brighter */
.photo-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 1rem;
    margin: 1.8rem 0;
}
.photo-grid figure.photo { margin: 0; }
.photo-grid figure.photo img { height: 220px; object-fit: cover; }

/* ── FAQ ─────────────────────────────────────────── */
.faq-item {
    background: var(--snow);
    border-left: 4px solid var(--flag-red);
    padding: 1.4rem 1.7rem;
    margin-bottom: 1.1rem;
    border-radius: 0 var(--radius) var(--radius) 0;
    box-shadow: var(--shadow-sm);
}
.faq-item h3 { margin-top: 0; margin-bottom: 0.6rem; font-size: 1.18rem; color: var(--balsam-deep); font-family: var(--font-display); }
.faq-item p:last-child { margin-bottom: 0; }

/* ── City section ────────────────────────────────── */
.city-section {
    background: var(--snow);
    padding: clamp(1.5rem, 3vw, 2.25rem);
    border-radius: var(--radius-lg);
    margin: 2.5rem 0;
    box-shadow: var(--shadow-sm);
    border-top: 4px solid var(--lake-blue);
    scroll-margin-top: calc(var(--nav-h) + 50px);
    overflow: hidden; /* contain floated scattered images */
}
.city-section > h2 { margin-top: 0; color: var(--maple-deep); border-color: var(--prairies); font-size: clamp(1.6rem, 3vw, 2.1rem); }
.city-section h3 { color: var(--balsam); margin-top: 1.7rem; padding-top: 0.5rem; border-top: 1px dashed var(--rule); }
.city-section h3:first-of-type { border-top: none; padding-top: 0; }

/* ── Sports Teams Section ────────────────────────── */
.sports-section {
    background: var(--snow);
    padding: clamp(1.5rem, 3vw, 2.25rem);
    border-radius: var(--radius-lg);
    margin: 2.5rem 0;
    box-shadow: var(--shadow-sm);
    border-top: 4px solid var(--flag-red);
    scroll-margin-top: calc(var(--nav-h) + 50px);
}
.sports-section > h2 {
    margin-top: 0;
    color: var(--maple-deep);
    border-color: var(--flag-red);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
}
.sports-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 1rem;
    margin: 1.5rem 0;
}
.sports-card {
    background: var(--snow);
    border-radius: var(--radius-lg);
    overflow: hidden;
    border: 1px solid var(--rule);
    transition: box-shadow 0.2s, transform 0.2s;
    display: flex;
    flex-direction: column;
}
.sports-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }

.sports-card-media {
    position: relative;
    height: 160px;
    overflow: hidden;
    background: var(--balsam-deep);
}
.sports-card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.35s ease;
}
.sports-card:hover .sports-card-media img { transform: scale(1.05); }

.sports-logo-badge {
    position: absolute;
    bottom: 0.6rem;
    left: 0.7rem;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 3px solid var(--snow);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-sans);
    font-weight: 800;
    font-size: 0.62rem;
    letter-spacing: 0.04em;
    text-align: center;
    line-height: 1.15;
    background: var(--team-bg, var(--balsam-deep));
    color: var(--team-fg, var(--snow));
    box-shadow: 0 2px 8px rgba(0,0,0,0.35);
    text-transform: uppercase;
}

.sports-card-body {
    padding: 0.85rem 1rem 1rem;
    flex: 1;
}
.sports-card .league {
    font-family: var(--font-sans);
    font-size: 0.70rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--flag-red);
    margin-bottom: 0.2rem;
}
.sports-card h4 {
    font-family: var(--font-display);
    font-size: 1rem;
    color: var(--ink);
    margin: 0 0 0.3rem;
}
.sports-card p { font-size: 0.85rem; line-height: 1.6; color: var(--ink-soft); margin: 0; font-family: var(--font-sans); }

/* ── City section photo ──────────────────────────── */
.city-hero-photo {
    width: 100%;
    height: clamp(115px, 16vw, 179px); /* 36% smaller */
    object-fit: cover;
    border-radius: var(--radius);
    margin-bottom: 1.2rem;
    display: block;
    filter: brightness(1.35); /* 40% brighter */
}

/* ── Culture Section ─────────────────────────────── */
.culture-section {
    background: linear-gradient(135deg, var(--aurora) 0%, var(--great-lakes) 100%);
    padding: clamp(1.5rem, 3vw, 2.25rem);
    border-radius: var(--radius-lg);
    margin: 2.5rem 0;
    box-shadow: var(--shadow-sm);
    border-top: 4px solid var(--aurora-deep);
    scroll-margin-top: calc(var(--nav-h) + 50px);
}
.culture-section > h2 {
    margin-top: 0;
    color: var(--balsam-deep);
    border-color: var(--aurora-deep);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
}
.culture-section h3 { color: var(--balsam-deep); }
.culture-section p { color: var(--ink); }

/* ── Reporter's pro-tip callout ─────────────────── */
.pro-tip {
    position: relative;
    background: linear-gradient(180deg, #FFFBEF 0%, #FFF6C0 100%);
    border-left: 4px solid var(--prairies);
    border-radius: 0 var(--radius) var(--radius) 0;
    padding: 1.1rem 1.3rem 1.15rem 3.15rem;
    margin: 1.4rem 0 1.6rem;
    font-family: var(--font-serif);
    color: var(--ink);
    box-shadow: var(--shadow-sm);
}
.pro-tip::before {
    content: "✎";
    position: absolute;
    left: 0.95rem;
    top: 0.85rem;
    width: 1.7rem;
    height: 1.7rem;
    line-height: 1.7rem;
    text-align: center;
    border-radius: 50%;
    background: var(--flag-red);
    color: var(--snow);
    font-size: 1rem;
    font-weight: 700;
    box-shadow: 0 2px 6px rgba(230,0,19,0.3);
}
.pro-tip-label {
    display: block;
    font-family: var(--font-sans);
    font-size: 0.72rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--maple-deep);
    font-weight: 700;
    margin-bottom: 0.35rem;
}
.pro-tip p { margin: 0; font-size: 1rem; line-height: 1.7; }
.pro-tip p + p { margin-top: 0.55rem; }

/* ── Fact box ────────────────────────────────────── */
.fact-box {
    background: var(--paper-warm);
    border-left: 4px solid var(--prairies);
    padding: 1.2rem 1.4rem;
    margin: 1.5rem 0;
    border-radius: 0 var(--radius) var(--radius) 0;
    font-family: var(--font-sans);
    font-size: 0.97rem;
}
.fact-box strong { color: var(--balsam-deep); }

/* ── Tables ──────────────────────────────────────── */
table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5rem 0;
    background: var(--snow);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    font-family: var(--font-sans);
    font-size: 0.96rem;
}
th, td { padding: 0.85rem 1rem; text-align: left; border-bottom: 1px solid var(--rule); }
th { background: var(--dark-grey); color: var(--snow); font-weight: 600; font-size: 0.9rem; letter-spacing: 0.02em; }
tr:last-child td { border-bottom: none; }
tr:nth-child(even) td { background: var(--grey-tint); }

/* ── TOC ─────────────────────────────────────────── */
.toc {
    background: var(--paper-warm);
    border: 1px solid var(--rule);
    border-radius: var(--radius);
    padding: 1.25rem 1.5rem;
    margin: 1.8rem 0;
    font-family: var(--font-sans);
    font-size: 0.95rem;
}
.toc h4 {
    margin-bottom: 0.6rem;
    color: var(--balsam-deep);
    font-family: var(--font-sans);
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}
.toc ul { list-style: none; margin: 0; columns: 2; column-gap: 1.5rem; }
.toc li { margin: 0 0 0.35rem; break-inside: avoid; }
.toc a { color: var(--lake-blue); text-decoration: none; }
.toc a:hover { color: var(--flag-red); text-decoration: underline; }

/* ── Lists ───────────────────────────────────────── */
main ul, main ol { margin: 0 0 1.2rem 1.4rem; }
main li { margin-bottom: 0.45rem; }

/* ── Inline links ────────────────────────────────── */
main a { color: var(--lake-blue); text-decoration: underline; text-underline-offset: 2px; text-decoration-thickness: 1px; }
main a:hover { color: var(--flag-red); }

/* ── Divider ─────────────────────────────────────── */
.divider-leaf {
    text-align: center;
    margin: 2.5rem 0;
    color: var(--flag-red);
    font-size: 1.4rem;
    letter-spacing: 1rem;
    user-select: none;
}

/* ── Canada D3 Map (geographic, real GeoJSON) ───── */
.canada-d3-map-section {
    margin: 2.5rem 0;
    background: var(--snow);
    border-radius: var(--radius-lg);
    padding: 1.5rem;
    box-shadow: var(--shadow-sm);
    border-top: 4px solid var(--flag-red);
}
.canada-d3-map-section h2 {
    margin-top: 0;
    border: none;
    display: block;
    color: var(--balsam-deep);
    font-size: clamp(1.4rem, 2.5vw, 1.8rem);
    margin-bottom: 0.3rem;
}
.canada-d3-map-section > p {
    color: var(--ink-soft);
    font-size: 0.95rem;
    font-family: var(--font-sans);
    margin-bottom: 1.2rem;
}
.canada-d3-map {
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    background: var(--great-lakes);
    border-radius: 8px;
    overflow: hidden;
    min-height: 300px;
    position: relative;
}
.canada-d3-map svg { width: 100%; height: auto; display: block; }
.canada-d3-map .province-path {
    stroke: #ffffff;
    stroke-width: 1px;
    cursor: pointer;
    transition: filter 0.2s ease, opacity 0.2s ease;
    outline: none;
}
.canada-d3-map .province-path:hover,
.canada-d3-map .province-path:focus {
    filter: brightness(1.15) saturate(1.1);
    opacity: 0.95;
}
.canada-d3-map .province-path:focus { stroke: var(--flag-red); stroke-width: 2px; }
.canada-d3-map .province-label {
    font-family: var(--font-sans);
    font-size: 11px;
    font-weight: 700;
    fill: #062F23;
    pointer-events: none;
    text-anchor: middle;
    text-shadow:
        1px 1px 0 #fff, -1px -1px 0 #fff,
        1px -1px 0 #fff, -1px 1px 0 #fff;
}
.canada-d3-map-loading {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ink-soft);
    font-family: var(--font-sans);
    font-size: 0.9rem;
}
@media (max-width: 600px) {
    .canada-d3-map .province-label { font-size: 9px; }
}

/* ── Canada Map ──────────────────────────────────── */
.canada-map-section {
    margin: 2.5rem 0;
    background: var(--snow);
    border-radius: var(--radius-lg);
    padding: 1.5rem;
    box-shadow: var(--shadow-sm);
    border-top: 4px solid var(--flag-red);
}
.canada-map-section h2 {
    margin-top: 0;
    border: none;
    display: block;
    color: var(--balsam-deep);
    font-size: clamp(1.4rem, 2.5vw, 1.8rem);
    margin-bottom: 0.3rem;
}
.canada-map-section p {
    color: var(--ink-soft);
    font-size: 0.95rem;
    font-family: var(--font-sans);
    margin-bottom: 1.2rem;
}
.map-wrapper {
    position: relative;
    width: 100%;
    max-width: 900px;
    margin: 0 auto;
}
.canada-svg {
    width: 100%;
    height: auto;
    display: block;
}
.canada-svg .province {
    cursor: pointer;
    transition: filter 0.18s, opacity 0.18s;
    stroke: var(--snow);
    stroke-width: 1.5;
}
.canada-svg .province:hover { filter: brightness(1.18); opacity: 0.92; }
.canada-svg .province:focus { outline: 3px solid var(--prairies); outline-offset: 2px; }

.map-tooltip {
    position: absolute;
    background: var(--forest);
    color: var(--snow);
    padding: 0.4rem 0.8rem;
    border-radius: var(--radius);
    font-family: var(--font-sans);
    font-size: 0.82rem;
    font-weight: 600;
    pointer-events: none;
    white-space: nowrap;
    box-shadow: var(--shadow-md);
    opacity: 0;
    transition: opacity 0.15s;
    z-index: 10;
}
.map-tooltip.visible { opacity: 1; }

/* ── Contact form ────────────────────────────────── */
.contact-form {
    background: var(--snow);
    padding: 1.8rem;
    border-radius: var(--radius-lg);
    border-top: 4px solid var(--flag-red);
    box-shadow: var(--shadow-sm);
    margin: 1.5rem 0;
}
.contact-form label { display: block; margin: 0.85rem 0 0.3rem; font-family: var(--font-sans); font-weight: 500; color: var(--ink); }
.contact-form input,
.contact-form textarea,
.contact-form select {
    width: 100%;
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--rule);
    border-radius: var(--radius);
    font-family: var(--font-sans);
    font-size: 1rem;
    background: var(--paper);
    color: var(--ink);
}
.contact-form button {
    margin-top: 1rem;
    background: var(--flag-red);
    color: var(--snow);
    border: 0;
    padding: 0.8rem 1.6rem;
    font-family: var(--font-sans);
    font-weight: 600;
    border-radius: var(--radius);
    cursor: pointer;
    transition: background 0.18s;
}
.contact-form button:hover { background: var(--maple-deep); }

/* ── Footer ──────────────────────────────────────── */
.site-footer {
    background: var(--maple-deep);
    color: var(--snow);
    padding: 3rem 1.5rem 1.5rem;
    margin-top: 4rem;
    border-top: 4px solid var(--flag-red);
}
.footer-container {
    max-width: var(--content-max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 2rem;
}
.footer-col h4 { color: var(--prairies); margin-bottom: 0.85rem; font-size: 1.05rem; font-family: var(--font-display); }
.footer-col ul { list-style: none; }
.footer-col li { margin-bottom: 0.5rem; }
.footer-col a { color: rgba(255,255,255,0.80); text-decoration: none; font-size: 0.95rem; font-family: var(--font-sans); }
.footer-col a:hover { color: var(--prairies); text-decoration: underline; }
.footer-bottom {
    max-width: var(--content-max);
    margin: 2rem auto 0;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(255,255,255,0.15);
    text-align: center;
    font-size: 0.88rem;
    color: rgba(255,255,255,0.60);
    font-family: var(--font-sans);
}

/* ── Site footer v2 (green — matches nav) ────────── */
.site-footer-v2 {
    background: var(--forest);          /* same green as the nav bar */
    border-top: 3px solid var(--prairies);
    padding: 3.5rem 1.25rem 0;
}
.footer-v2-inner {
    max-width: var(--content-max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 2.5rem 3rem;
    padding-bottom: 2.5rem;
}
.footer-v2-brand {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.footer-v2-logo {
    font-family: 'Playfair Display', serif;
    font-size: 1.3rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: -0.01em;
}
.footer-v2-logo .fv2-leaf { color: var(--prairies); }
.footer-v2-tagline {
    color: rgba(255,255,255,0.72);
    font-size: 0.88rem;
    line-height: 1.65;
    max-width: 280px;
}
.footer-v2-copy {
    color: rgba(255,255,255,0.45);
    font-size: 0.78rem;
    margin-top: auto;
}
.footer-v2-col h4 {
    color: var(--prairies);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    margin: 0 0 1rem;
}
.footer-v2-col ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}
.footer-v2-col ul li a {
    color: rgba(255,255,255,0.75);
    font-size: 0.88rem;
    text-decoration: none;
    transition: color 0.15s;
}
.footer-v2-col ul li a:hover { color: #fff; text-decoration: underline; }
.footer-v2-bottom {
    border-top: 1px solid rgba(255,255,255,0.18);
    text-align: center;
    padding: 1.1rem 0;
    color: rgba(255,255,255,0.45);
    font-size: 0.78rem;
    font-family: var(--font-sans);
}
@media (max-width: 900px) {
    .footer-v2-inner { grid-template-columns: 1fr 1fr; gap: 2rem; }
}
@media (max-width: 500px) {
    .footer-v2-inner { grid-template-columns: 1fr; gap: 1.75rem; }
}

/* ── Education cards (legacy) ────────────────────── */
.edu-section {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 2px solid var(--rule);
}
.edu-section > h2 { font-size: 1.75rem; color: var(--balsam-deep); margin-bottom: 0.75rem; }
.edu-intro { color: var(--ink-soft); font-size: 1.02rem; line-height: 1.75; margin-bottom: 2rem; max-width: 820px; }
.edu-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 1.5rem; margin-top: 1.5rem; }
.edu-card {
    background: var(--snow);
    border: 1px solid var(--rule);
    border-radius: 10px;
    overflow: hidden;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.edu-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.edu-card-img { height: 180px; overflow: hidden; background: var(--paper); }
.edu-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.35s ease; }
.edu-card:hover .edu-card-img img { transform: scale(1.04); }
.edu-card-body { padding: 1.1rem 1.25rem 1.3rem; }
.edu-card-type { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--prairies); margin-bottom: 0.35rem; filter: brightness(0.75); }
.edu-card-name { font-size: 1.05rem; font-weight: 700; color: var(--ink); margin: 0 0 0.4rem; line-height: 1.3; }
.edu-card-meta { font-size: 0.82rem; color: var(--ink-soft); margin-bottom: 0.75rem; }
.edu-card-desc { font-size: 0.9rem; line-height: 1.65; color: var(--ink-soft); margin: 0; }

/* ── Hall of Icons ──────────────────────────────── */
.icons-section {
    background: linear-gradient(180deg, var(--paper-warm) 0%, #fff 100%);
    border-left: 4px solid var(--prairies);
    padding: 2.25rem 1.75rem 2.5rem;
    margin: 3rem 0;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}
.icons-section > h2 {
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    color: var(--maple-deep);
    margin-bottom: 0.5rem;
}
.icons-section > p { color: var(--ink-soft); margin-bottom: 1.5rem; max-width: 820px; }
.icons-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 1.25rem;
    margin-top: 1.5rem;
}
.icon-card {
    background: var(--snow);
    border: 1px solid var(--rule);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    display: flex;
    flex-direction: column;
}
.icon-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); }
.icon-card-body { padding: 1.1rem 1.25rem 1.3rem; }
.icon-tag {
    font-size: 0.7rem;
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--maple-deep);
    background: var(--gold-soft);
    padding: 3px 9px;
    border-radius: 999px;
    display: inline-block;
    margin-bottom: 0.5rem;
}
.icon-card h3 { font-family: var(--font-display); margin: 0 0 0.4rem; color: var(--balsam-deep); font-size: 1.15rem; }
.icon-card p { font-size: 0.92rem; line-height: 1.65; color: var(--ink-soft); margin: 0; font-family: var(--font-sans); }
.icon-card .icon-meta { font-size: 0.78rem; color: var(--ink-soft); font-style: italic; margin-bottom: 0.5rem; }

/* ── Regional Cuisine ───────────────────────────── */
.cuisine-section {
    background: #fff;
    border-left: 4px solid var(--maple-red);
    padding: 2.25rem 1.75rem 2.5rem;
    margin: 3rem 0;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}
.cuisine-section > h2 {
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    color: var(--maple-deep);
    margin-bottom: 0.5rem;
}
.cuisine-section > p { color: var(--ink); max-width: 820px; }
.cuisine-section h3 { font-family: var(--font-display); color: var(--balsam-deep); margin-top: 1.5rem; }
.dish-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 1rem;
    margin-top: 1.25rem;
}
.dish-card {
    background: var(--paper-warm);
    border: 1px solid var(--rule);
    border-radius: var(--radius);
    padding: 1rem 1.15rem 1.1rem;
}
.dish-card h4 { font-family: var(--font-display); color: var(--maple-deep); margin: 0 0 0.4rem; font-size: 1.05rem; }
.dish-card p { font-size: 0.92rem; line-height: 1.65; margin: 0; color: var(--ink); }

/* ── Indigenous Territory ──────────────────────── */
.indigenous-section {
    background: #fff;
    border-left: 4px solid var(--balsam);
    padding: 2.25rem 1.75rem 2.5rem;
    margin: 3rem 0;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}
.indigenous-section > h2 {
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    color: var(--balsam-deep);
    margin-bottom: 0.5rem;
}
.indigenous-section > p { color: var(--ink); max-width: 820px; }
.indigenous-section h3 { font-family: var(--font-display); color: var(--balsam-deep); margin-top: 1.5rem; }
.land-acknowledgement {
    background: var(--pacific-teal);
    color: var(--balsam-deep);
    border-radius: var(--radius);
    padding: 1.15rem 1.35rem;
    margin: 1.25rem 0;
    font-style: italic;
    font-family: var(--font-serif);
    font-size: 0.98rem;
    line-height: 1.7;
}

/* ── Tourism Itinerary ─────────────────────────── */
.itinerary-section {
    background: linear-gradient(180deg, #fff 0%, var(--rule-soft) 100%);
    border-left: 4px solid var(--lake-blue);
    padding: 2.25rem 1.75rem 2.5rem;
    margin: 3rem 0;
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
}
.itinerary-section > h2 {
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    color: var(--balsam-deep);
    margin-bottom: 0.5rem;
}
.itinerary-section > p { color: var(--ink); max-width: 820px; }
.itinerary-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.25rem;
    margin-top: 1.5rem;
}
.day-card {
    background: var(--snow);
    border: 1px solid var(--rule);
    border-radius: var(--radius-lg);
    padding: 1.25rem 1.4rem 1.4rem;
    box-shadow: var(--shadow-sm);
    position: relative;
}
.day-card .day-label {
    display: inline-block;
    background: var(--lake-blue);
    color: var(--snow);
    font-family: var(--font-sans);
    font-weight: 700;
    font-size: 0.78rem;
    letter-spacing: 0.08em;
    padding: 4px 10px;
    border-radius: 999px;
    text-transform: uppercase;
    margin-bottom: 0.65rem;
}
.day-card h3 { font-family: var(--font-display); color: var(--maple-deep); margin: 0 0 0.5rem; font-size: 1.2rem; line-height: 1.3; }
.day-card p { font-size: 0.95rem; line-height: 1.7; color: var(--ink); margin: 0 0 0.75rem; }
.day-card p:last-child { margin-bottom: 0; }
.city-itinerary-heading {
    font-family: var(--font-display);
    color: var(--maple-deep);
    font-size: 1.5rem;
    margin: 2.5rem 0 0.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(0,0,0,0.08);
}
.itinerary-section .city-itinerary-heading + p { color: var(--ink); max-width: 820px; }

@media (max-width: 700px) {
    .city-itinerary-heading { font-size: 1.25rem; margin-top: 2rem; }
    .icons-grid, .itinerary-grid, .dish-grid { grid-template-columns: 1fr; }
    .icons-section, .cuisine-section, .indigenous-section, .itinerary-section {
        padding: 1.5rem 1.1rem 1.75rem;
    }
}

/* ── Responsive — tablet ─────────────────────────── */
@media (max-width: 900px) {
    .toc ul { columns: 1; }
}

/* ── Responsive — mobile drawer ─────────────────── */
@media (max-width: 860px) {
    .nav-toggle      { display: flex; }

    /* Off-canvas drawer */
    .main-nav {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        width: min(86vw, 340px);
        background: var(--forest);
        box-shadow: -8px 0 28px rgba(0,0,0,0.35);
        padding: calc(var(--nav-h) + 1rem) 1.25rem 2rem;
        /* iPhone notch / home-bar safe area */
        padding-bottom: max(2rem, env(safe-area-inset-bottom, 2rem));
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;         /* iOS rubber-band isolation */
        transform: translateX(110%);          /* slightly past edge so shadow never peeks */
        -webkit-transform: translateX(110%);  /* iOS Safari prefix */
        transition: transform 0.26s cubic-bezier(0.4, 0, 0.2, 1);
        -webkit-transition: -webkit-transform 0.26s cubic-bezier(0.4, 0, 0.2, 1);
        z-index: 1100;
        display: block !important;            /* never let display:none hide it — animate via transform only */
        will-change: transform;               /* GPU layer for smooth iOS animation */
        -webkit-backface-visibility: hidden;  /* prevent iOS flicker */
        backface-visibility: hidden;
        visibility: hidden;                   /* screen-reader / focus safety while off-screen */
    }
    html.nav-open .main-nav {
        transform: translateX(0);
        -webkit-transform: translateX(0);
        visibility: visible;
    }
    html.nav-open .nav-backdrop { display: block; }

    .main-nav ul {
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        width: 100%;
    }
    .main-nav > ul > li {
        border-bottom: 1px solid rgba(255,255,255,0.08);
        display: flex;
        flex-wrap: wrap;
        align-items: center;
    }
    .main-nav > ul > li > a { flex: 1; }
    .main-nav a {
        font-size: 1.05rem;
        padding: 0.95rem 0.6rem;
        border-radius: 0;
        touch-action: manipulation;   /* remove 300ms delay on iOS link taps */
        -webkit-tap-highlight-color: rgba(255,255,255,0.08);
    }

    /* Mobile dropdown: hidden until submenu-open is toggled by JS */
    .dropdown {
        display: none !important;
        visibility: hidden;
        opacity: 0;
        pointer-events: none;
        position: static;
        flex-basis: 100%;
        background: rgba(255,255,255,0.05);
        border: none;
        box-shadow: none;
        padding: 0.25rem 0 0.6rem 1rem;
        border-radius: var(--radius);
        margin: 0.1rem 0 0.4rem;
    }
    .has-dropdown.submenu-open > .dropdown {
        display: block !important;
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
    }
    .dropdown li a {
        color: rgba(255,255,255,0.78);
        font-size: 0.96rem;
        padding: 0.55rem 0.55rem;
    }
    .dropdown li a:hover { color: var(--prairies); background: transparent; }

    .header-container { position: relative; }

    .city-quickfacts { grid-template-columns: repeat(2, 1fr); }
    .sports-grid { grid-template-columns: 1fr; }
    .edu-grid { grid-template-columns: 1fr; }
    .photo-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .city-quickfacts { grid-template-columns: 1fr; }
    article h1 { font-size: 1.7rem; }
    article h2 { font-size: 1.35rem; }
    .page-hero { height: clamp(107px, 26.9vw, 152px); } /* 36% smaller */
}

/* ── Province Poem ──────────────────────────────── */
.province-poem-section {
    margin: 3rem 0 2rem;
    padding: 2.5rem 2rem 2.5rem;
    background: var(--surface, #f7f5f0);
    border-left: 4px solid var(--forest, #2e6b3e);
    border-radius: 0 6px 6px 0;
}
.province-poem-section h2 {
    font-size: 1.5rem;
    margin-bottom: 0.25rem;
    color: var(--ink, #1a1a1a);
}
.poem-subtitle {
    color: var(--muted, #666);
    font-size: 0.95rem;
    margin-bottom: 1.25rem;
}
.poem-body {
    max-width: 560px;
}
.province-poem {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.05rem;
    line-height: 1.75;
    white-space: pre-wrap;
    margin: 0;
    color: var(--ink, #1a1a1a);
}

/* ── Icon cards (Hall of Fame — no image variant) ── */
.icon-card {
    display: flex;
    flex-direction: column;
}
.icon-card .icon-content {
    padding: 1.5rem;
    flex: 1;
}
.icon-ext-link:hover {
    color: #800015 !important;
    text-decoration: underline !important;
}

/* ── Print ───────────────────────────────────────── */
@media print {
    .site-header, .site-footer, .hero-cta, .flag-bar, .breadcrumbs, .page-jump-nav { display: none; }
    body { background: white; color: black; }
    article { max-width: 100%; }
    a { color: black; text-decoration: underline; }
}

/* ── Official Tourism Promo Video Banner ─────────── */
.official-promo-banner {
  margin: 1.25rem 0 1.75rem;
}
.official-promo-link {
  display: flex;
  align-items: center;
  gap: 14px;
  background: linear-gradient(135deg, #b30000 0%, #e00 100%);
  color: #fff !important;
  text-decoration: none !important;
  padding: 14px 18px;
  border-radius: 10px;
  box-shadow: 0 3px 14px rgba(200,0,0,0.28);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
  max-width: 560px;
}
.official-promo-link:hover {
  transform: translateY(-2px);
  box-shadow: 0 7px 22px rgba(200,0,0,0.38);
  text-decoration: none !important;
  color: #fff !important;
}
.promo-play-btn {
  width: 46px; height: 46px; min-width: 46px;
  background: rgba(255,255,255,0.18);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 1.3rem;
  border: 2px solid rgba(255,255,255,0.55);
  flex-shrink: 0;
  transition: background 0.18s;
}
.official-promo-link:hover .promo-play-btn {
  background: rgba(255,255,255,0.3);
}
.promo-text-block {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
}
.promo-dept-label {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  opacity: 0.78;
  font-weight: 600;
}
.promo-video-title {
  font-size: 0.97rem;
  font-weight: 700;
  line-height: 1.25;
}
.promo-watch-cta {
  font-size: 0.78rem;
  opacity: 0.7;
  font-weight: 500;
  white-space: nowrap;
  margin-left: auto;
  padding-left: 8px;
}
@media (max-width: 500px) {
  .official-promo-link { padding: 11px 13px; gap: 10px; }
  .promo-play-btn { width: 38px; height: 38px; min-width: 38px; font-size: 1.1rem; }
  .promo-watch-cta { display: none; }
  .official-promo-link { max-width: 100%; }
}

/* ── Province Stats Bar — thin 8px red stripe with facts row below ── */
.province-stats-bar {
  background: #fcfaf6;
  color: #1a1a1a;
  width: 100%;
  position: relative;
  border-bottom: 1px solid rgba(6,47,35,0.08);
}
.province-stats-bar::before {
  content: '';
  display: block;
  width: 100%;
  height: 8px;
  background: var(--flag-red);
}
.stats-bar-inner {
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0.85rem 1.5rem;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 2.4rem;
  justify-content: center;
  align-items: center;
}
.stat-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 100px;
}
.stat-label {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #7a6a4a;
  font-weight: 700;
}
.stat-value {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  color: #1a1a1a;
}
@media (max-width: 600px) {
  .stats-bar-inner { gap: 0.4rem 1.2rem; padding: 0.7rem 1rem; }
  .stat-item { min-width: 80px; }
  .stat-value { font-size: 0.92rem; }
}

/* ── Scattered body images ── */
.scattered-img-wrap {
  margin: 2rem 0;
  clear: both;
}
.scattered-img-wrap.float-right {
  float: right;
  margin: 0.5rem 0 1.5rem 2rem;
  max-width: 42%;
}
.scattered-img-wrap.float-left {
  float: left;
  margin: 0.5rem 2rem 1.5rem 0;
  max-width: 42%;
}
.scattered-img-wrap.full-width {
  float: none;
  max-width: 100%;
  clear: both;
}
.scattered-img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  display: block;
  box-shadow: 0 4px 18px rgba(0,0,0,0.18);
  object-fit: cover;
}
.scattered-img-wrap.float-right .scattered-img,
.scattered-img-wrap.float-left  .scattered-img {
  max-height: 280px;
}
.scattered-img-wrap.full-width .scattered-img {
  max-height: 380px;
}
@media (max-width: 700px) {
  .scattered-img-wrap.float-right,
  .scattered-img-wrap.float-left {
    float: none;
    max-width: 100%;
    margin: 1.5rem 0;
  }
}

/* ── Global red borders on all tile types ── */
.province-tile,
.prov-flag-tile,
.city-tile,
.lp-feature {
  border: 2px solid #d32f2f !important;
  box-sizing: border-box;
}
.province-tile:hover,
.prov-flag-tile:hover,
.city-tile:hover,
.lp-feature:hover {
  border-color: #b71c1c !important;
  box-shadow: 0 8px 28px rgba(211,47,47,0.28) !important;
}

/* ── Red borders on content cards / tiles (task 7 & 8) ── */
.day-card {
  border: 2px solid #d32f2f !important;
}
.city-quickfacts {
  border: 2px solid #d32f2f;
  border-radius: 10px;
  padding: 1rem 1.25rem;
}
.fact-box {
  border-left: 4px solid #d32f2f !important;
  border-top: 1px solid rgba(211,47,47,0.25);
  border-right: 1px solid rgba(211,47,47,0.25);
  border-bottom: 1px solid rgba(211,47,47,0.25);
  border-radius: 0 8px 8px 0;
}

/* ═══════════════════════════════════════════════════
   AWWWARDS-LEVEL DESIGN UPGRADES  — All Canada 2026
   ═══════════════════════════════════════════════════ */

/* ── Scroll-reveal animations ── */
.reveal {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 0.65s cubic-bezier(.22,1,.36,1), transform 0.65s cubic-bezier(.22,1,.36,1);
}
.reveal.revealed {
  opacity: 1;
  transform: translateY(0);
}
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }

/* ── Magnetic card hover lift ── */
.lift-card {
  transition: transform 0.28s cubic-bezier(.34,1.56,.64,1), box-shadow 0.28s ease;
  will-change: transform;
}
.lift-card:hover {
  transform: translateY(-8px) scale(1.015);
  box-shadow: 0 20px 48px rgba(0,0,0,0.22);
}

/* ── Bold section headers with accent bar ── */
.section-headline {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4.5vw, 3.2rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.02em;
  color: #0a0e0d;
  position: relative;
  display: inline-block;
  padding-bottom: 0.55rem;
}
.section-headline::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 56px;
  height: 4px;
  background: linear-gradient(90deg, #E60013, #FF4C3B);
  border-radius: 2px;
}

/* ── Glassmorphism cards ── */
.glass-card {
  background: rgba(255,255,255,0.72);
  backdrop-filter: blur(16px) saturate(180%);
  -webkit-backdrop-filter: blur(16px) saturate(180%);
  border: 1px solid rgba(255,255,255,0.6);
  border-radius: 18px;
  box-shadow: 0 8px 32px rgba(6,47,35,0.10), inset 0 1px 0 rgba(255,255,255,0.8);
}

/* ── Gradient text ── */
.gradient-text {
  background: linear-gradient(135deg, #E60013 0%, #FF6B35 50%, #E60013 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── Animated underline links ── */
.underline-anim {
  position: relative;
  text-decoration: none;
}
.underline-anim::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0%;
  height: 2px;
  background: #E60013;
  transition: width 0.3s ease;
}
.underline-anim:hover::after { width: 100%; }

/* ── Hero text with larger first-letter drop cap feel ── */
.hero-kicker {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #FADA46;
  background: rgba(250,218,70,0.15);
  border: 1px solid rgba(250,218,70,0.4);
  padding: 0.3rem 0.85rem;
  border-radius: 99px;
  margin-bottom: 1rem;
}

/* ── Improved site header ──
   NOTE: backdrop-filter/filter/transform on .site-header must NEVER be enabled,
   because any of those properties promote the header into a containing block
   for position:fixed descendants — which would clip the mobile nav drawer
   (.main-nav) to the 64px header height and "cut off" the hamburger menu.
   Keep this rule free of those properties. */
.site-header {
  border-bottom: 1px solid rgba(255,255,255,0.08);
  transition: box-shadow 0.3s ease;
}
.site-header.scrolled {
  box-shadow: 0 4px 24px rgba(6,47,35,0.25);
}
/* When drawer is open, lift header above the drawer so the ✕ close button
   is always tappable on iPhone (drawer z-index: 1100, header was 1000) */
html.nav-open .site-header {
  z-index: 1200;
}

/* ── Better nav link hover ── */
.main-nav a {
  position: relative;
  transition: color 0.2s ease;
}
.main-nav a::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 2px;
  background: #FADA46;
  border-radius: 1px;
  transition: width 0.25s ease;
}
.main-nav a:hover::after,
.main-nav a.active::after {
  width: 70%;
}

/* ── Improved button styles ── */
.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  background: linear-gradient(135deg, #E60013 0%, #b9001f 100%);
  color: #fff;
  font-family: var(--font-sans);
  font-size: 0.92rem;
  font-weight: 700;
  padding: 0.8rem 1.6rem;
  border-radius: 99px;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: transform 0.22s cubic-bezier(.34,1.56,.64,1), box-shadow 0.22s ease;
  box-shadow: 0 4px 16px rgba(230,0,19,0.35);
}
.btn-primary:hover {
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 8px 28px rgba(230,0,19,0.45);
  color: #fff;
  text-decoration: none;
}

/* ── Number counter typography ── */
.stat-big {
  font-family: var(--font-display);
  font-size: clamp(2.4rem, 5vw, 3.8rem);
  font-weight: 700;
  color: #E60013;
  line-height: 1;
  display: block;
}
.stat-label-lg {
  font-family: var(--font-sans);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #555;
}

/* ── Full-bleed section with diagonal cut ── */
.section-diagonal {
  position: relative;
  padding: clamp(3rem, 6vw, 5rem) 1.25rem clamp(4rem, 8vw, 7rem);
}
.section-diagonal::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  right: 0;
  height: 80px;
  background: var(--paper);
  clip-path: polygon(0 100%, 100% 0%, 100% 100%);
}

/* ── Card grid with masonry-like staggering ── */
.stagger-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1.4rem;
}
.stagger-grid > *:nth-child(2) { margin-top: 1.8rem; }
.stagger-grid > *:nth-child(3) { margin-top: 0.9rem; }
@media (max-width: 600px) {
  .stagger-grid > *:nth-child(2),
  .stagger-grid > *:nth-child(3) { margin-top: 0; }
}

/* ── Horizontal scroll section ── */
.hscroll-wrap {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  padding-bottom: 1rem;
  cursor: grab;
}
.hscroll-wrap::-webkit-scrollbar { display: none; }
.hscroll-wrap:active { cursor: grabbing; }
.hscroll-track {
  display: flex;
  gap: 1.1rem;
  width: max-content;
  padding: 0.5rem 1.25rem;
}
.hscroll-track > * {
  scroll-snap-align: start;
  flex-shrink: 0;
}

/* ── Smooth scrollbar (Chrome) ── */
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: #f0f0ec; }
::-webkit-scrollbar-thumb { background: #c8c8c0; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #E60013; }

/* ── Text selection ── */
::selection { background: rgba(230,0,19,0.18); color: #1a1a1a; }

/* ── Focus styles (accessibility + style) ── */
:focus-visible {
  outline: 2px solid #E60013;
  outline-offset: 3px;
  border-radius: 3px;
}

/* ── Page progress indicator ── */
#page-progress {
  position: fixed;
  top: 0;
  left: 0;
  height: 3px;
  background: linear-gradient(90deg, #E60013, #FF6B35, #FADA46);
  z-index: 9999;
  transition: width 0.1s linear;
  pointer-events: none;
}

/* ── Improved flag-bar with gradient ── */
.flag-bar {
  background: linear-gradient(to right,
    #E60013 0 32%,
    #fff 32% 36%,
    #E60013 36% 40%,
    #fff 40% 60%,
    #E60013 60% 64%,
    #fff 64% 68%,
    #E60013 68% 100%) !important;
}

/* ── Artistic separator ── */
.art-sep {
  display: block;
  width: 48px;
  height: 3px;
  background: linear-gradient(90deg, #E60013, rgba(230,0,19,0));
  border-radius: 2px;
  margin: 1rem 0;
}

/* ── James Culleton spotlight section on media page ── */
.culleton-spotlight {
  background: linear-gradient(135deg, #0d0520 0%, #1a0a2e 40%, #2d0015 100%);
  border-radius: 18px;
  overflow: hidden;
  margin-bottom: 1.6rem;
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  min-height: 260px;
  box-shadow: 0 8px 40px rgba(0,0,0,0.4);
  border: 1px solid rgba(230,0,19,0.3);
  position: relative;
}
@media (max-width: 680px) {
  .culleton-spotlight { grid-template-columns: 1fr; }
}
.culleton-img-col {
  position: relative;
  overflow: hidden;
}
.culleton-img-col img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  opacity: 0.9;
  min-height: 220px;
}
.culleton-text-col {
  padding: 1.8rem 1.6rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  z-index: 1;
}
.culleton-text-col::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at left, rgba(230,0,19,0.12) 0%, transparent 70%);
  pointer-events: none;
}
.culleton-kicker {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--font-sans, 'Inter', sans-serif);
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #fff;
  background: linear-gradient(120deg, #E60013, #b9001f);
  padding: 0.25rem 0.7rem;
  border-radius: 99px;
  margin-bottom: 0.7rem;
  width: fit-content;
}
.culleton-name {
  font-family: 'Playfair Display', Georgia, serif;
  font-size: clamp(1.3rem, 2.5vw, 1.9rem);
  font-weight: 700;
  color: #fff;
  margin: 0 0 0.5rem;
  line-height: 1.2;
}
.culleton-bio {
  font-size: 0.88rem;
  color: rgba(255,255,255,0.82);
  line-height: 1.65;
  margin: 0 0 1rem;
}
.culleton-learn {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.3);
  color: #fff;
  font-size: 0.8rem;
  font-weight: 700;
  padding: 0.45rem 1rem;
  border-radius: 99px;
  text-decoration: none;
  transition: background 0.2s;
  width: fit-content;
  cursor: pointer;
  font-family: inherit;
}
.culleton-learn:hover { background: rgba(255,255,255,0.22); }

/* ══════════════════════════════════════════════════════
   GREEN ACCENT EXPANSION — site-wide consistency
   Uses var(--forest) = #008750 (FIP Green / nav colour)
   ══════════════════════════════════════════════════════ */

/* ── Section heading underline accent ── */
h2.section-title,
h2.media-section-title,
.page-section-title {
    position: relative;
    padding-bottom: 0.5rem;
}
h2.section-title::after,
h2.media-section-title::after,
.page-section-title::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 3rem;
    height: 3px;
    background: var(--forest);
    border-radius: 2px;
}

/* ── Media section headings — green left border ── */
.media-section-wrap {
    border-left: 4px solid var(--forest);
}

/* ── Province / city / feature cards — green top accent ── */
.province-card {
    border-top: 3px solid var(--forest);
}
.province-card:hover {
    border-top-color: var(--balsam-deep);
}

/* ── City section cards — swap to green from blue ── */
.city-section {
    border-top-color: var(--forest);
}

/* ── FAQ items — green left border ── */
.faq-item {
    border-left-color: var(--forest);
}

/* ── Pro-tip callout label ── */
.pro-tip-label {
    background: var(--forest);
}

/* ── Search input focus ring ── */
.media-search input:focus,
.ww-search:focus {
    border-color: var(--forest);
    box-shadow: 0 0 0 3px rgba(0,135,80,0.15);
}

/* ── Province pill active state ── */
.province-pill.active,
.ww-pill.active {
    background: var(--forest);
    border-color: var(--forest);
}

/* ── Quick-facts block — green accent bar ── */
.city-quickfacts {
    border-left-color: var(--forest);
}

/* ── "See more" / toggle buttons — green outline variant ── */
.movie-toggle-btn {
    border: 2px solid var(--forest);
    color: var(--forest);
    background: transparent;
    font-family: var(--font-sans);
    font-size: 0.88rem;
    font-weight: 700;
    padding: 0.55rem 1.4rem;
    border-radius: 99px;
    cursor: pointer;
    transition: background 0.18s, color 0.18s;
}
.movie-toggle-btn:hover {
    background: var(--forest);
    color: #fff;
}

/* ── Venue / museum / author cards — green hover border ── */
.museum-card:hover,
.venue-card:hover,
.ww-card:hover {
    border-color: var(--forest);
}

/* ── Sidebar nav active link ── */
.page-jump-nav a.active {
    color: var(--forest);
    font-weight: 700;
}

/* ── City hero & scattered image caption bars ── */
.scattered-img-wrap::after {
    display: none; /* clean, no pseudo element needed */
}

/* ── Who's Who avatar for Government uses deeper green ── */
.ww-card[data-cat="T&R"] .ww-avatar {
    background: linear-gradient(135deg, var(--balsam-deep), #003320);
}

/* ── Breadcrumb links ── */
.breadcrumbs a { color: var(--forest); }
.breadcrumbs a:hover { color: var(--balsam-deep); }

/* ── Culture section header accent ── */
.culture-section {
    border-top-color: var(--forest);
}

/* ── Table headers — green on dark ── */
th {
    background: var(--forest);
    color: var(--snow);
}

/* ── Province tile hover — green glow ── */
.province-tile:hover,
.prov-flag-tile:hover {
    box-shadow: 0 8px 24px rgba(0,135,80,0.22);
}

/* ── lp-feature card top accent ── */
.lp-feature {
    border-top: 3px solid var(--forest) !important;
}

/* ── Stat numbers on home page ── */
.lp-intro-stat-num {
    color: var(--forest);
}

/* ── Sports section top bar ── */
.sports-section {
    border-top-color: var(--forest);
}

/* ── Scrollbar thumb (webkit) ── */
::-webkit-scrollbar-thumb {
    background: var(--forest);
    border-radius: 4px;
}
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-track { background: var(--paper); }

/* =========================================================
   Merge safety note
   This stylesheet keeps the uploaded live styles.css as the base.
   All new hero animation rules are activated by .animated-hero-wrap
   and .animated-page-hero so existing site pages without those classes
   keep their original hero behaviour.
   ========================================================= */
/* =========================================================
   Compact Animated Hero Standard — All Canada add-on
   Requested: use 50% of the Cuisine & Cellar hero height.
   Cuisine hero was 440px, so all included hero spaces are 220px.
   Applies only to hero areas and keeps page body content untouched.
   ========================================================= */
:root { --ac-compact-hero-h: 220px; }

.page-hero.animated-page-hero,
.lp-hero.animated-page-hero,
.table-hero,
.teacher-hero {
  height: var(--ac-compact-hero-h) !important;
  min-height: var(--ac-compact-hero-h) !important;
  max-height: var(--ac-compact-hero-h) !important;
  overflow: hidden !important;
  position: relative !important;
}

.page-hero.animated-page-hero,
.lp-hero.animated-page-hero {
  isolation: isolate;
}

.page-hero.animated-page-hero .hero-slides,
.lp-hero.animated-page-hero .hero-slides,
.animated-page-hero #lp-hero-slides {
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
}

.page-hero.animated-page-hero .hero-slide img,
.lp-hero.animated-page-hero .hero-slide img,
.animated-page-hero #lp-hero-slides .hero-slide img {
  animation: acHeroKenBurns 12s ease-in-out infinite alternate !important;
  transform-origin: center center;
}

.page-hero.animated-page-hero .hero-slides::before,
.lp-hero.animated-page-hero .hero-slides::before,
.animated-page-hero #lp-hero-slides::before {
  content: '';
  position: absolute;
  inset: -35%;
  z-index: 2;
  pointer-events: none;
  background-image:
    radial-gradient(circle at 20% 30%, rgba(250,215,20,.18) 0 2px, transparent 3px),
    radial-gradient(circle at 70% 60%, rgba(255,255,255,.18) 0 1px, transparent 3px),
    radial-gradient(circle at 45% 80%, rgba(235,45,55,.14) 0 2px, transparent 4px);
  background-size: 54px 54px, 72px 72px, 96px 96px;
  animation: acHeroDrift 28s linear infinite;
  opacity: .42;
}

.page-hero.animated-page-hero .hero-slides::after,
.lp-hero.animated-page-hero .hero-slides::after,
.animated-page-hero #lp-hero-slides::after {
  content: '🍁   ✦   ✦   🍁   ✦   ✦';
  position: absolute;
  left: -10%;
  right: -10%;
  bottom: .65rem;
  z-index: 3;
  pointer-events: none;
  color: rgba(255,255,255,.55);
  font-size: clamp(1rem, 2.2vw, 1.65rem);
  letter-spacing: .85rem;
  white-space: nowrap;
  text-align: center;
  animation: acHeroFloatIcons 12s ease-in-out infinite;
  opacity: .34;
}

.page-hero.animated-page-hero .hero-content,
.lp-hero.animated-page-hero .lp-hero-text {
  z-index: 5 !important;
  padding: 1rem 1.5rem !important;
}

.page-hero.animated-page-hero .hero-content {
  justify-content: center !important;
  padding-bottom: 1rem !important;
}

.page-hero.animated-page-hero h1,
.lp-hero.animated-page-hero .lp-hero-text h1,
.table-hero h1,
.teacher-hero h1 {
  font-size: clamp(1.55rem, 3.2vw, 2.55rem) !important;
  line-height: 1.05 !important;
  margin: .25rem 0 .35rem !important;
}

.page-hero.animated-page-hero .hero-tagline,
.lp-hero.animated-page-hero .lp-hero-text p,
.table-hero p,
.teacher-hero p {
  font-size: clamp(.82rem, 1.35vw, 1rem) !important;
  line-height: 1.45 !important;
  margin-bottom: .45rem !important;
}

.page-hero.animated-page-hero .kicker,
.table-hero .hero-kicker,
.teacher-hero .hero-kicker {
  font-size: .64rem !important;
  margin-bottom: .35rem !important;
  padding: .22rem .65rem !important;
}

.table-hero,
.teacher-hero {
  display: grid !important;
  align-items: center !important;
  padding: 0 1.5rem !important;
  animation: acHeroGradientShift 14s ease-in-out infinite alternate !important;
}

.table-hero-inner,
.teacher-hero-inner {
  padding: .85rem 1.5rem !important;
  display: block !important;
  max-width: 980px !important;
}

.table-hero::before,
.teacher-hero::before {
  animation-duration: 18s !important;
}

.table-hero::after,
.teacher-hero::after {
  bottom: .55rem !important;
  font-size: clamp(1rem, 2.4vw, 1.75rem) !important;
  letter-spacing: .45rem !important;
  opacity: .22 !important;
}

.teacher-hero .hero-orbit {
  display: none !important;
}

.table-hero .hero-actions,
.teacher-hero .hero-actions {
  margin-top: .55rem !important;
}

.table-hero .btn-primary,
.table-hero .btn-ghost,
.teacher-hero .btn-primary,
.teacher-hero .btn-light {
  padding: .52rem .95rem !important;
  font-size: .78rem !important;
}

.hero-dots {
  bottom: 8px !important;
}
.hero-dot {
  width: 7px !important;
  height: 7px !important;
}

@keyframes acHeroKenBurns {
  from { transform: scale(1) translate3d(0,0,0); filter: brightness(1.18) saturate(1.04); }
  to { transform: scale(1.08) translate3d(1.2%, -1%, 0); filter: brightness(1.28) saturate(1.12); }
}

@keyframes acHeroDrift {
  from { transform: translate3d(0,0,0) rotate(0deg); }
  to { transform: translate3d(72px, 54px, 0) rotate(3deg); }
}

@keyframes acHeroFloatIcons {
  0%,100% { transform: translateY(0); opacity: .28; }
  50% { transform: translateY(-10px); opacity: .42; }
}

@keyframes acHeroGradientShift {
  0% { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}

@media (max-width: 700px) {
  :root { --ac-compact-hero-h: 170px; }
  .page-hero h1,
  .lp-hero .lp-hero-text h1,
  .table-hero h1,
  .teacher-hero h1 {
    font-size: clamp(1.25rem, 6vw, 1.8rem) !important;
  }
  .page-hero .hero-tagline,
  .lp-hero .lp-hero-text p,
  .table-hero p,
  .teacher-hero p {
    font-size: .78rem !important;
    line-height: 1.35 !important;
  }
  .table-hero .hero-actions,
  .teacher-hero .hero-actions {
    display: none !important;
  }
}

/* =========================================================
   All Canada compact animated heroes — no image placeholders
   ========================================================= */
.animated-hero-wrap { background: var(--forest, #062F23); }
.animated-page-hero {
  height: 220px !important;
  min-height: 220px !important;
  max-height: 220px !important;
  background: linear-gradient(135deg, #062F23 0%, #005E38 46%, #003F6E 100%);
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.animated-page-hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    radial-gradient(circle at 18% 12%, rgba(250,215,20,0.18), transparent 34%),
    linear-gradient(180deg, rgba(6,47,35,0.12) 0%, rgba(6,47,35,0.76) 100%);
  pointer-events: none;
}
.animated-hero-bg { position: absolute; inset: 0; z-index: 1; overflow: hidden; }
.animated-hero-content {
  position: relative;
  z-index: 3;
  height: 100%;
  max-width: var(--content-max, 1180px);
  margin: 0 auto;
  padding: 0 1.5rem 1.45rem !important;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.animated-hero-content .kicker,
.animated-page-hero .kicker {
  font-family: var(--font-sans, Inter, sans-serif);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--prairies, #FAD714);
  margin-bottom: 0.35rem;
}
.animated-hero-content h1,
.animated-page-hero h1,
.lp-hero .animated-hero-content h1 {
  color: #fff !important;
  font-family: var(--font-display, 'Playfair Display', serif) !important;
  font-size: clamp(1.55rem, 3.4vw, 2.45rem) !important;
  line-height: 1.05 !important;
  margin: 0 0 0.35rem !important;
  text-shadow: 0 2px 18px rgba(0,0,0,0.42);
}
.animated-hero-content .hero-tagline,
.animated-page-hero .hero-tagline,
.lp-hero .animated-hero-content p {
  max-width: 760px;
  color: rgba(255,255,255,0.91) !important;
  font-size: clamp(0.86rem, 1.35vw, 1.02rem) !important;
  line-height: 1.45 !important;
  margin: 0 !important;
  text-shadow: 0 1px 9px rgba(0,0,0,0.36);
}
.ah-glow { position: absolute; border-radius: 50%; filter: blur(46px); opacity: 0.56; animation: ahFloat 10s ease-in-out infinite alternate; }
.ah-glow.g1 { width: 220px; height: 220px; left: -50px; top: -70px; background: rgba(250,215,20,0.28); }
.ah-glow.g2 { width: 260px; height: 260px; right: -80px; bottom: -110px; background: rgba(235,45,55,0.22); animation-delay: -3s; }
.ah-glow.g3 { width: 200px; height: 200px; left: 50%; top: 35%; background: rgba(0,90,155,0.25); animation-delay: -6s; }
@keyframes ahFloat { from { transform: translate3d(-10px, -6px, 0) scale(0.95); } to { transform: translate3d(12px, 12px, 0) scale(1.08); } }

/* Home — aurora ribbons and drifting maple accents */
.hero-home { background: linear-gradient(130deg, #062F23 0%, #053d2e 42%, #003F6E 100%); }
.ah-ribbon { position: absolute; width: 62%; height: 90px; left: -10%; border-radius: 999px; background: linear-gradient(90deg, transparent, rgba(250,215,20,0.27), rgba(0,135,80,0.32), transparent); transform: rotate(-12deg); animation: ahRibbon 9s ease-in-out infinite alternate; }
.ah-ribbon.r1 { top: 32px; }
.ah-ribbon.r2 { top: 105px; left: 43%; animation-delay: -4s; transform: rotate(14deg); }
.ah-leaf { position: absolute; color: rgba(255,255,255,0.34); font-size: 1.5rem; animation: ahDrift 7s linear infinite; }
.ah-leaf.l1 { left: 12%; top: 28%; animation-delay: -2s; }
.ah-leaf.l2 { left: 54%; top: 14%; color: rgba(250,215,20,0.38); }
.ah-leaf.l3 { right: 12%; top: 42%; animation-delay: -4s; }
@keyframes ahRibbon { to { transform: translateX(70px) rotate(-7deg); opacity: 0.95; } }
@keyframes ahDrift { 0%{transform:translateY(0) rotate(0deg);opacity:.18} 50%{opacity:.62} 100%{transform:translateY(-95px) rotate(75deg);opacity:.12} }

/* About — editorial lines and small moving dots */
.hero-about { background: linear-gradient(135deg, #062F23, #0d4a37 56%, #003F6E); }
.ah-line { position: absolute; height: 2px; width: 34%; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.48), transparent); left: 8%; animation: ahLine 6s ease-in-out infinite alternate; }
.ah-line.line1 { top: 42px; } .ah-line.line2 { top: 92px; left: 52%; animation-delay: -2s; } .ah-line.line3 { top: 152px; left: 24%; animation-delay: -4s; }
.ah-dot { position: absolute; width: 9px; height: 9px; border-radius: 50%; background: rgba(250,215,20,0.68); animation: ahDot 8s ease-in-out infinite alternate; }
.ah-dot.d1{left:18%;top:40%}.ah-dot.d2{left:70%;top:28%;animation-delay:-3s}.ah-dot.d3{left:82%;top:70%;animation-delay:-5s}
@keyframes ahLine { to { transform: translateX(42px); opacity: .45; } }
@keyframes ahDot { to { transform: translate(35px, -18px) scale(1.45); opacity: .28; } }

/* Canada — grid and national signal pulses */
.hero-canada { background: linear-gradient(145deg, #003F6E, #062F23 54%, #005E38); }
.ah-map-grid { position:absolute; inset:-20%; background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px); background-size: 38px 38px; transform: rotate(-8deg); animation: ahGrid 12s linear infinite; }
.ah-pulse { position:absolute; width:80px; height:80px; border:2px solid rgba(250,215,20,.55); border-radius:50%; animation: ahPulse 4.2s ease-out infinite; }
.ah-pulse.p1{left:18%;top:42%}.ah-pulse.p2{left:50%;top:25%;animation-delay:-1.4s}.ah-pulse.p3{right:15%;top:56%;animation-delay:-2.8s}
@keyframes ahGrid { to { transform: translate(38px, 38px) rotate(-8deg); } }
@keyframes ahPulse { 0%{transform:scale(.25);opacity:.85} 100%{transform:scale(2.15);opacity:0} }

/* Cities — skyline bars and city lights */
.hero-cities { background: linear-gradient(140deg, #062F23 0%, #092f52 52%, #003F6E 100%); }
.ah-skyline { position:absolute; bottom:0; width:9%; background: rgba(255,255,255,.13); border-top:2px solid rgba(250,215,20,.42); animation: ahBuilding 4s ease-in-out infinite alternate; }
.ah-skyline.b1{left:10%;height:46px}.ah-skyline.b2{left:23%;height:86px;animation-delay:-1s}.ah-skyline.b3{right:26%;height:62px;animation-delay:-2s}.ah-skyline.b4{right:10%;height:108px;animation-delay:-1.6s}
.ah-light{position:absolute;width:7px;height:7px;border-radius:50%;background:#FAD714;box-shadow:0 0 18px #FAD714;animation:ahBlink 1.8s ease-in-out infinite alternate}.ah-light.tl1{left:38%;top:38%}.ah-light.tl2{right:35%;top:55%;animation-delay:-.8s}
@keyframes ahBuilding { to { transform: scaleY(1.12); opacity:.75; } } @keyframes ahBlink { to { opacity:.25; transform:scale(.7); } }

/* Travel — animated route */
.hero-travel { background: linear-gradient(135deg, #005E38, #062F23 55%, #003F6E); }
.ah-route { position:absolute; left:10%; right:10%; top:54%; height:3px; background: linear-gradient(90deg, transparent, rgba(250,215,20,.8), rgba(255,255,255,.6), transparent); border-radius:99px; animation: ahRoute 3.8s ease-in-out infinite; }
.ah-pin { position:absolute; width:18px; height:18px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); background:#EB2D37; box-shadow:0 0 18px rgba(235,45,55,.55); animation: ahPin 2.8s ease-in-out infinite alternate; }
.ah-pin.pin1{left:22%;top:46%}.ah-pin.pin2{right:24%;top:34%;animation-delay:-1.4s}.ah-compass{position:absolute;right:15%;top:18%;font-size:3.5rem;color:rgba(250,215,20,.25);animation:ahSpin 10s linear infinite}
@keyframes ahRoute { 50%{ transform: scaleX(.72); opacity:.55; } } @keyframes ahPin { to { transform: translateY(-10px) rotate(-45deg); } } @keyframes ahSpin { to{transform:rotate(360deg)} }

/* Teacher — orbiting classroom marks */
.hero-teacher { background: linear-gradient(135deg, #062F23, #0b543e 50%, #003F6E); }
.ah-orbit { position:absolute; border:1px dashed rgba(255,255,255,.25); border-radius:50%; animation:ahSpin 16s linear infinite; }
.ah-orbit.o1{width:170px;height:170px;right:16%;top:14%}.ah-orbit.o2{width:230px;height:230px;left:8%;top:-20%;animation-direction:reverse}
.ah-school{position:absolute;display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:14px;background:rgba(250,215,20,.18);border:1px solid rgba(250,215,20,.38);color:#fff;font-weight:800;animation:ahPop 3s ease-in-out infinite alternate}.ah-school.s1{left:18%;top:33%}.ah-school.s2{right:24%;top:25%;animation-delay:-1s}.ah-school.s3{right:12%;bottom:18%;animation-delay:-2s}
@keyframes ahPop { to { transform: translateY(-8px) scale(1.07); background:rgba(235,45,55,.23); } }

/* Eat & Drink — steam, waves and cellar glass */
.hero-eat { background: linear-gradient(135deg, #062F23, #4c1f1d 50%, #003F6E); }
.ah-steam { position:absolute; width:30px; height:95px; border-radius:50%; border-left:2px solid rgba(255,255,255,.35); animation:ahSteam 4.5s ease-in-out infinite; }
.ah-steam.st1{left:18%;bottom:10px}.ah-steam.st2{left:24%;bottom:6px;animation-delay:-1.3s}.ah-steam.st3{left:30%;bottom:12px;animation-delay:-2.6s}
.ah-wave{position:absolute;right:-5%;width:54%;height:80px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(250,215,20,.22),transparent);animation:ahWave 6s ease-in-out infinite alternate}.ah-wave.w1{top:48px}.ah-wave.w2{bottom:28px;animation-delay:-2s}.ah-glass{position:absolute;right:18%;top:28%;font-size:5rem;color:rgba(255,255,255,.16);animation:ahFloat 6s ease-in-out infinite alternate}
@keyframes ahSteam { 0%{transform:translateY(25px) scale(.7);opacity:0} 45%{opacity:.55} 100%{transform:translateY(-80px) scale(1.12);opacity:0} } @keyframes ahWave { to { transform: translateX(-75px); opacity:.8; } }

/* Media — spotlights and film-strip motion */
.hero-media { background: linear-gradient(135deg, #151024, #062F23 48%, #003F6E); }
.ah-spotlight { position:absolute; bottom:-30px; width:34%; height:260px; background:linear-gradient(to top, rgba(250,215,20,.2), transparent 72%); clip-path:polygon(42% 100%,58% 100%,100% 0,0 0); animation:ahSpot 5s ease-in-out infinite alternate; }
.ah-spotlight.sp1{left:8%;transform:rotate(-14deg)}.ah-spotlight.sp2{right:12%;transform:rotate(13deg);animation-delay:-2s}
.ah-film{position:absolute;width:170px;height:26px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.28) 0 10px, transparent 10px 20px);opacity:.42;animation:ahFilm 7s linear infinite}.ah-film.f1{left:4%;top:35px;transform:rotate(-8deg)}.ah-film.f2{right:2%;bottom:34px;transform:rotate(11deg);animation-direction:reverse}.ah-starburst{position:absolute;left:50%;top:18%;color:rgba(250,215,20,.42);font-size:4rem;animation:ahSpin 18s linear infinite}
@keyframes ahSpot { to { opacity:.75; transform:translateX(25px) rotate(2deg); } } @keyframes ahFilm { to { background-position: 170px 0; transform: translateX(42px) rotate(-8deg); } }

/* Keep full nav visible and tidy with the added pages */
.main-nav > ul { flex-wrap: wrap; justify-content: flex-end; }
.main-nav a { font-size: 0.76rem; padding: 0.48rem 0.62rem; }
@media (max-width: 980px) and (min-width: 861px) { .main-nav a { font-size: 0.70rem; padding: 0.42rem 0.46rem; } .site-logo { font-size: 1.25rem; } }
@media (max-width: 860px) { .animated-page-hero { height: 200px !important; min-height: 200px !important; } .animated-hero-content { padding-bottom: 1.2rem !important; } }


/* Shop Canada — gift-ribbon animated hero */
.hero-shop { background: linear-gradient(135deg, #062F23 0%, #7a1820 48%, #003F6E 100%); }
.ah-gift-ribbon { position:absolute; height:42px; width:70%; left:-12%; top:36px; border-radius:999px; background:linear-gradient(90deg, transparent, rgba(250,215,20,.26), rgba(255,255,255,.16), transparent); transform:rotate(-10deg); animation:ahShopRibbon 7s ease-in-out infinite alternate; }
.ah-gift-ribbon.r2 { top:128px; left:42%; transform:rotate(13deg); animation-delay:-3.2s; }
.ah-parcel { position:absolute; width:46px; height:38px; border-radius:10px; background:rgba(255,255,255,.12); border:1px solid rgba(250,215,20,.38); box-shadow:0 10px 30px rgba(0,0,0,.16); animation:ahParcel 4.8s ease-in-out infinite alternate; }
.ah-parcel::before { content:""; position:absolute; left:50%; top:0; bottom:0; width:3px; transform:translateX(-50%); background:rgba(250,215,20,.58); }
.ah-parcel::after { content:""; position:absolute; left:0; right:0; top:50%; height:3px; transform:translateY(-50%); background:rgba(250,215,20,.58); }
.ah-parcel.p1 { left:16%; top:38%; }
.ah-parcel.p2 { right:20%; top:24%; animation-delay:-1.6s; }
.ah-parcel.p3 { right:10%; bottom:18%; animation-delay:-3.1s; }
.ah-bag { position:absolute; right:32%; top:18%; font-size:4.8rem; color:rgba(255,255,255,.15); animation:ahFloat 6s ease-in-out infinite alternate; }
@keyframes ahShopRibbon { to { transform:translateX(70px) rotate(-5deg); opacity:.92; } }
@keyframes ahParcel { to { transform:translateY(-10px) rotate(4deg); background:rgba(250,215,20,.14); } }

/* Shop Canada page */
.shop-canada-page { background:#f7f7f5; }
.shop-section { padding: clamp(2rem,4vw,3.5rem) 1.25rem; border-top:4px solid var(--fip-red,#E60013); }
.shop-inner { max-width: var(--content-max,1180px); margin:0 auto; }
.shop-intro-panel { background:#fff; border:1px solid var(--rule,#e4e4df); border-radius:18px; padding:1.25rem 1.35rem; box-shadow:0 8px 28px rgba(0,0,0,.07); display:grid; grid-template-columns:1.35fr .65fr; gap:1rem; align-items:center; }
.shop-intro-panel h2, .shop-section h2 { font-family:var(--font-display,'Playfair Display',serif); color:var(--maple-deep,#062F23); margin:0 0 .45rem; font-size:clamp(1.35rem,2.6vw,2rem); }
.shop-intro-panel p, .shop-section-sub { color:#444; line-height:1.7; margin:0; font-size:.96rem; }
.shop-affiliate-box { background:linear-gradient(135deg,#062F23,#0d4a37); color:#fff; border-radius:14px; padding:1rem 1.1rem; }
.shop-affiliate-box strong { color:#FAD714; display:block; margin-bottom:.35rem; }
.shop-affiliate-box span { color:rgba(255,255,255,.82); font-size:.86rem; line-height:1.55; }
.shop-controls { display:flex; gap:.75rem; flex-wrap:wrap; align-items:center; margin:1.25rem 0 1rem; }
.shop-search { flex:1 1 280px; display:flex; align-items:center; gap:.5rem; background:#fff; border:2px solid #d8d8d2; border-radius:999px; padding:.62rem 1rem; }
.shop-search input { width:100%; border:0; outline:0; font:inherit; background:transparent; }
.shop-filter { border:2px solid #d8d8d2; background:#fff; border-radius:999px; padding:.62rem 1rem; font:inherit; color:#062F23; font-weight:700; }
.shop-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:1rem; margin-top:1rem; }
.shop-card { background:#fff; border-radius:16px; border:1px solid #e7e7e1; overflow:hidden; box-shadow:0 4px 18px rgba(0,0,0,.08); display:flex; flex-direction:column; transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.shop-card:hover { transform:translateY(-5px); box-shadow:0 14px 32px rgba(0,0,0,.15); border-color:#E60013; }
.shop-card-top { min-height:150px; background:linear-gradient(135deg,#062F23,#003F6E); color:#fff; display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; }
.shop-card-top::before { content:""; position:absolute; inset:-40%; background:radial-gradient(circle at 30% 30%,rgba(250,215,20,.24),transparent 34%), radial-gradient(circle at 70% 70%,rgba(235,45,55,.26),transparent 32%); animation:shopCardGlow 7s linear infinite alternate; }
.shop-card-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; transform:scale(1.01); transition:transform .35s ease, filter .35s ease; filter:saturate(1.04) contrast(1.02); }
.shop-card-top::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(6,47,35,.04) 0%,rgba(6,47,35,.18) 55%,rgba(6,47,35,.54) 100%); pointer-events:none; }
.shop-card:hover .shop-card-img { transform:scale(1.08); filter:saturate(1.12) contrast(1.05); }
.shop-card-icon { position:relative; z-index:1; font-size:3.2rem; filter:drop-shadow(0 8px 18px rgba(0,0,0,.25)); }
.shop-card.has-photo .fallback-icon { display:none; }
.shop-card-top.image-failed .fallback-icon { display:block; }
.shop-card-badge { position:absolute; top:.65rem; left:.65rem; z-index:3; background:rgba(0,0,0,.54); color:#fff; border-radius:999px; padding:.25rem .6rem; font-size:.65rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; }
.shop-card-body { padding:1rem; display:flex; flex-direction:column; gap:.45rem; flex:1; }
.shop-card-body h3 { font-family:var(--font-display,'Playfair Display',serif); color:#062F23; margin:0; line-height:1.2; font-size:1.05rem; }
.shop-card-body p { color:#555; font-size:.84rem; line-height:1.55; margin:0; flex:1; }
.shop-card-meta { font-size:.72rem; font-weight:800; color:#777; text-transform:uppercase; letter-spacing:.06em; }
.shop-card a { display:block; margin-top:.55rem; text-align:center; text-decoration:none; background:#ff9900; color:#111827; border-radius:10px; padding:.65rem .7rem; font-size:.82rem; font-weight:900; }
.shop-card a:hover { background:#E60013; color:#fff; text-decoration:none; }
.shop-row-title { margin-top:2rem; }
.shop-note { background:#fff8e1; border:1px solid #f2d184; color:#654b00; border-radius:14px; padding:1rem 1.1rem; line-height:1.6; font-size:.88rem; margin-top:1rem; }
@keyframes shopCardGlow { to { transform:rotate(10deg) scale(1.08); } }
@media(max-width:760px){ .shop-intro-panel { grid-template-columns:1fr; } .shop-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; } .shop-card-body { padding:.85rem; } .shop-card-top { min-height:118px; } .shop-card-icon { font-size:2.5rem; } }
@media(max-width:430px){ .shop-grid { grid-template-columns:1fr; } }


/* =========================================================
   Refinement: softer blended hero animations + simplified nav
   ========================================================= */
.animated-hero-wrap {
  background: linear-gradient(180deg, #062F23 0%, #08281f 100%) !important;
}
.animated-page-hero {
  background:
    radial-gradient(circle at 18% 14%, rgba(250,215,20,0.075), transparent 36%),
    radial-gradient(circle at 80% 24%, rgba(230,0,19,0.085), transparent 34%),
    linear-gradient(135deg, #062F23 0%, #083326 48%, #102f3e 100%) !important;
}
.animated-page-hero::after {
  background:
    linear-gradient(90deg, rgba(6,47,35,0.88) 0%, rgba(6,47,35,0.42) 44%, rgba(6,47,35,0.88) 100%),
    linear-gradient(180deg, rgba(6,47,35,0.10) 0%, rgba(6,47,35,0.86) 100%) !important;
}
.ah-glow {
  filter: blur(70px) !important;
  opacity: 0.34 !important;
  mix-blend-mode: screen;
}
.ah-glow.g1 { background: rgba(250,215,20,0.16) !important; }
.ah-glow.g2 { background: rgba(230,0,19,0.15) !important; }
.ah-glow.g3 { background: rgba(0,94,56,0.18) !important; }
.ah-ribbon,.ah-gift-ribbon,.ah-wave,.ah-route,.ah-film,.ah-line {
  opacity: 0.42 !important;
  filter: blur(0.2px);
}
.ah-leaf,.ah-dot,.ah-pulse,.ah-light,.ah-pin,.ah-school,.ah-parcel,.ah-bag,.ah-glass,.ah-starburst,.ah-compass {
  opacity: 0.42 !important;
}
.hero-home,.hero-about,.hero-canada,.hero-cities,.hero-travel,.hero-teacher,.hero-eat,.hero-media,.hero-shop {
  background-color: #062F23 !important;
}
.hero-home { background: linear-gradient(135deg,#062F23 0%,#073526 58%,#0f3442 100%) !important; }
.hero-about { background: linear-gradient(135deg,#062F23 0%,#0a382b 60%,#123243 100%) !important; }
.hero-canada { background: linear-gradient(135deg,#0b3142 0%,#062F23 52%,#0b3a2b 100%) !important; }
.hero-cities { background: linear-gradient(135deg,#062F23 0%,#102e3f 58%,#0a3b2c 100%) !important; }
.hero-travel { background: linear-gradient(135deg,#0b3a2b 0%,#062F23 55%,#103444 100%) !important; }
.hero-teacher { background: linear-gradient(135deg,#062F23 0%,#0b3b2d 56%,#113242 100%) !important; }
.hero-eat { background: linear-gradient(135deg,#062F23 0%,#3b221e 54%,#123243 100%) !important; }
.hero-media { background: linear-gradient(135deg,#151925 0%,#062F23 54%,#123243 100%) !important; }
.hero-shop { background: linear-gradient(135deg,#062F23 0%,#4d2421 55%,#123243 100%) !important; }
.main-nav > ul { gap: 0.25rem; }
.main-nav a { font-size: 0.82rem; padding: 0.52rem 0.72rem; }
@media (max-width: 980px) and (min-width: 861px) {
  .main-nav a { font-size: 0.76rem; padding: 0.46rem 0.52rem; }
}


/* =========================================================
   Light green hero refinement — May 17 update
   Requested: hero bar #c4e8b3, stronger visible animation,
   Explore Canada after Home, Teacher & Student at nav end.
   ========================================================= */
:root { --hero-light-green: #c4e8b3; --hero-light-green-2: #d8f3ca; --hero-ink: #062F23; }

.hero-full-wrap.animated-hero-wrap,
.animated-hero-wrap {
  background: #c4e8b3 !important;
}

.animated-page-hero,
.page-hero.animated-page-hero,
.lp-hero.animated-page-hero,
.hero-home,
.hero-about,
.hero-canada,
.hero-cities,
.hero-travel,
.hero-teacher,
.hero-eat,
.hero-media,
.hero-shop {
  background:
    radial-gradient(circle at 18% 18%, rgba(255,255,255,0.72), transparent 27%),
    radial-gradient(circle at 86% 22%, rgba(250,215,20,0.42), transparent 30%),
    radial-gradient(circle at 62% 92%, rgba(0,94,56,0.24), transparent 34%),
    linear-gradient(135deg, #d8f3ca 0%, #c4e8b3 45%, #a9d994 100%) !important;
  box-shadow: inset 0 -16px 34px rgba(6,47,35,0.12) !important;
}

.animated-page-hero::after {
  background:
    linear-gradient(90deg, rgba(196,232,179,0.34) 0%, rgba(255,255,255,0.16) 45%, rgba(196,232,179,0.38) 100%),
    linear-gradient(180deg, rgba(255,255,255,0.18) 0%, rgba(6,47,35,0.10) 100%) !important;
}

.animated-hero-content h1,
.animated-page-hero h1,
.lp-hero .animated-hero-content h1,
.page-hero.animated-page-hero h1 {
  color: #062F23 !important;
  text-shadow: 0 2px 0 rgba(255,255,255,0.55), 0 12px 28px rgba(6,47,35,0.16) !important;
}

.animated-hero-content .hero-tagline,
.animated-page-hero .hero-tagline,
.lp-hero .animated-hero-content p,
.page-hero.animated-page-hero .hero-tagline {
  color: rgba(6,47,35,0.88) !important;
  text-shadow: 0 1px 0 rgba(255,255,255,0.48) !important;
  font-weight: 600 !important;
}

.animated-hero-content .kicker,
.animated-page-hero .kicker,
.page-hero.animated-page-hero .kicker {
  color: #7a0011 !important;
  background: rgba(255,255,255,0.46) !important;
  border: 1px solid rgba(122,0,17,0.18) !important;
  border-radius: 999px !important;
  width: max-content;
  max-width: 100%;
  padding: .25rem .75rem !important;
  text-shadow: none !important;
}

.ah-glow {
  filter: blur(42px) !important;
  opacity: 0.76 !important;
  mix-blend-mode: multiply !important;
}
.ah-glow.g1 { background: rgba(255,255,255,0.80) !important; }
.ah-glow.g2 { background: rgba(230,0,19,0.32) !important; }
.ah-glow.g3 { background: rgba(0,94,56,0.36) !important; }

.ah-ribbon,
.ah-gift-ribbon,
.ah-wave,
.ah-route,
.ah-film,
.ah-line,
.ah-orbit,
.ah-spotlight {
  opacity: 0.82 !important;
  filter: drop-shadow(0 6px 12px rgba(6,47,35,0.18)) !important;
}

.ah-ribbon,
.ah-gift-ribbon {
  background: linear-gradient(90deg, transparent, rgba(6,47,35,0.38), rgba(230,0,19,0.28), rgba(255,255,255,0.52), transparent) !important;
}

.ah-wave {
  border-color: rgba(6,47,35,0.36) !important;
}

.ah-line,
.ah-film {
  background: linear-gradient(90deg, transparent, rgba(6,47,35,0.66), rgba(230,0,19,0.36), transparent) !important;
}

.ah-route {
  border-color: rgba(122,0,17,0.52) !important;
}

.ah-leaf,
.ah-dot,
.ah-pulse,
.ah-light,
.ah-pin,
.ah-school,
.ah-parcel,
.ah-bag,
.ah-glass,
.ah-starburst,
.ah-compass,
.ah-steam {
  opacity: 0.88 !important;
  color: rgba(6,47,35,0.72) !important;
  filter: drop-shadow(0 6px 10px rgba(6,47,35,0.20)) !important;
}

.ah-leaf.l2,
.ah-starburst,
.ah-compass,
.ah-school.s3 {
  color: rgba(230,0,19,0.78) !important;
}

.ah-parcel {
  background: rgba(255,255,255,0.55) !important;
  border-color: rgba(6,47,35,0.45) !important;
  box-shadow: 0 12px 28px rgba(6,47,35,0.16) !important;
}
.ah-parcel::before,
.ah-parcel::after { background: rgba(230,0,19,0.58) !important; }

.ah-spotlight {
  background: linear-gradient(to top, rgba(255,255,255,.46), rgba(230,0,19,.18), transparent 74%) !important;
}

.ah-pin { background: rgba(255,255,255,0.52) !important; border-color: rgba(6,47,35,0.30) !important; }
.ah-school { background: rgba(255,255,255,0.58) !important; border: 1px solid rgba(6,47,35,0.25) !important; }

.hero-underbar { background: #c4e8b3 !important; border-bottom: 3px solid rgba(6,47,35,0.25) !important; }

/* navigation order/fit after adding Explore Canada and moving Teacher to the end */
.main-nav > ul { flex-wrap: wrap !important; justify-content: flex-end !important; gap: .18rem !important; }
.main-nav a { font-size: 0.73rem !important; padding: 0.46rem 0.52rem !important; }
@media (max-width: 1040px) and (min-width: 861px) {
  .main-nav a { font-size: 0.68rem !important; padding: 0.40rem 0.42rem !important; }
  .site-logo { font-size: 1.15rem !important; }
  .logo-tagline { font-size: .58rem !important; }
}
@media (max-width: 860px) {
  .main-nav a { font-size: 1rem !important; padding: .8rem 1rem !important; }
}


/* =========================================================
   Hero animation blend upgrade — removes boxed look and adds
   denser visible motion while keeping the #c4e8b3 colour system.
   ========================================================= */
:root{
  --hero-light-green:#c4e8b3;
  --hero-mint:#dff5d5;
  --hero-moss:#6fae5a;
  --hero-forest:#062F23;
  --hero-red:#E60013;
  --hero-gold:#FAD714;
}
.hero-full-wrap.animated-hero-wrap,
.animated-hero-wrap{
  background:
    linear-gradient(180deg, var(--hero-light-green) 0%, #b7dea4 100%) !important;
  overflow:hidden !important;
  position:relative !important;
}
.hero-full-wrap.animated-hero-wrap::before,
.animated-hero-wrap::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(ellipse 90% 80% at 50% 50%, rgba(255,255,255,.18), transparent 66%),
    linear-gradient(90deg, rgba(196,232,179,1), rgba(196,232,179,.64) 14%, rgba(196,232,179,.64) 86%, rgba(196,232,179,1));
  pointer-events:none;
  z-index:0;
}
.animated-page-hero,
.page-hero.animated-page-hero,
.lp-hero.animated-page-hero{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  border-radius:0 !important;
  background:
    radial-gradient(ellipse 82% 110% at 52% 48%, rgba(223,245,213,.96) 0%, rgba(196,232,179,.90) 44%, rgba(172,216,151,.86) 72%, rgba(196,232,179,0) 100%),
    linear-gradient(135deg, #dff5d5 0%, #c4e8b3 46%, #9fd28a 100%) !important;
  box-shadow:none !important;
  overflow:hidden !important;
  isolation:isolate !important;
}
.animated-page-hero::before{
  content:"";
  position:absolute;
  inset:-2px;
  z-index:0;
  background:
    linear-gradient(90deg, rgba(196,232,179,1) 0%, rgba(196,232,179,0) 16%, rgba(196,232,179,0) 84%, rgba(196,232,179,1) 100%),
    linear-gradient(180deg, rgba(196,232,179,1) 0%, rgba(196,232,179,0) 22%, rgba(196,232,179,0) 73%, rgba(196,232,179,1) 100%);
  pointer-events:none;
}
.animated-page-hero::after{
  background:
    radial-gradient(ellipse 70% 110% at 50% 50%, rgba(255,255,255,.18) 0%, rgba(255,255,255,.06) 40%, rgba(196,232,179,.55) 80%, rgba(196,232,179,.95) 100%),
    linear-gradient(90deg, rgba(196,232,179,.94) 0%, rgba(196,232,179,.10) 18%, rgba(196,232,179,.10) 82%, rgba(196,232,179,.94) 100%) !important;
  z-index:2 !important;
}
.animated-hero-bg{
  inset:-34px -7vw !important;
  z-index:1 !important;
  opacity:1 !important;
  -webkit-mask-image:radial-gradient(ellipse 92% 120% at 50% 50%, #000 0%, #000 66%, transparent 100%);
  mask-image:radial-gradient(ellipse 92% 120% at 50% 50%, #000 0%, #000 66%, transparent 100%);
}
.animated-hero-content{
  z-index:3 !important;
}
.animated-hero-content h1,
.animated-page-hero h1,
.lp-hero .animated-hero-content h1,
.page-hero.animated-page-hero h1{
  color:var(--hero-forest) !important;
  text-shadow:0 2px 0 rgba(255,255,255,.55), 0 16px 30px rgba(6,47,35,.18) !important;
}
.animated-hero-content .hero-tagline,
.animated-page-hero .hero-tagline,
.lp-hero .animated-hero-content p,
.page-hero.animated-page-hero .hero-tagline{
  color:rgba(6,47,35,.92) !important;
  text-shadow:0 1px 0 rgba(255,255,255,.55) !important;
}
.animated-hero-content .kicker,
.animated-page-hero .kicker,
.page-hero.animated-page-hero .kicker{
  color:#7a0011 !important;
  background:rgba(255,255,255,.54) !important;
  border:1px solid rgba(6,47,35,.18) !important;
  box-shadow:0 10px 24px rgba(6,47,35,.08) !important;
}

/* stronger shared motion layers */
.ah-glow{filter:blur(34px) !important;opacity:.88 !important;mix-blend-mode:multiply !important;}
.ah-glow.g1{background:rgba(255,255,255,.78) !important;}
.ah-glow.g2{background:rgba(230,0,19,.25) !important;}
.ah-glow.g3{background:rgba(6,47,35,.30) !important;}
.ah-mist{position:absolute;height:58px;width:62%;left:-12%;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.44),rgba(6,47,35,.14),rgba(230,0,19,.12),transparent);filter:blur(8px);mix-blend-mode:multiply;animation:ahMist 12s ease-in-out infinite alternate;}
.ah-mist.m1{top:12px}.ah-mist.m2{top:82px;left:30%;animation-delay:-4s}.ah-mist.m3{bottom:8px;left:6%;animation-delay:-8s}
@keyframes ahMist{to{transform:translateX(96px) scaleX(1.14);opacity:.42}}
.ah-spark{position:absolute;width:12px;height:12px;border-radius:50%;background:rgba(6,47,35,.58);box-shadow:0 0 0 5px rgba(255,255,255,.16),0 0 22px rgba(6,47,35,.38);animation:ahSpark 5.4s ease-in-out infinite alternate;}
.ah-spark.spk1{left:9%;top:25%}.ah-spark.spk2{left:25%;top:68%;animation-delay:-1.1s}.ah-spark.spk3{left:42%;top:20%;animation-delay:-2.2s}.ah-spark.spk4{left:58%;top:76%;animation-delay:-3.3s}.ah-spark.spk5{left:73%;top:32%;animation-delay:-4.4s}.ah-spark.spk6{left:89%;top:58%;animation-delay:-.7s}.ah-spark.spk7{left:35%;top:48%;animation-delay:-3.7s}.ah-spark.spk8{left:66%;top:15%;animation-delay:-2.7s}
@keyframes ahSpark{0%{transform:translateY(0) scale(.72);opacity:.28}55%{opacity:.92}100%{transform:translate(18px,-18px) scale(1.24);opacity:.48}}
.ah-ring{position:absolute;border:2px solid rgba(6,47,35,.24);border-radius:50%;box-shadow:inset 0 0 22px rgba(255,255,255,.12);animation:ahRing 8s ease-in-out infinite alternate;}
.ah-ring.rg1{width:120px;height:120px;left:8%;top:12%}.ah-ring.rg2{width:185px;height:185px;right:16%;top:6%;animation-delay:-2.8s}.ah-ring.rg3{width:150px;height:150px;left:46%;bottom:-38px;animation-delay:-5.1s}
@keyframes ahRing{to{transform:translateY(-14px) scale(1.18);border-color:rgba(230,0,19,.24);opacity:.52}}

/* make existing page-specific animations more visible but feathered */
.ah-ribbon,.ah-gift-ribbon,.ah-wave,.ah-route,.ah-film,.ah-line,.ah-orbit,.ah-spotlight{opacity:.78 !important;filter:drop-shadow(0 8px 14px rgba(6,47,35,.16)) !important;}
.ah-ribbon,.ah-gift-ribbon{background:linear-gradient(90deg,transparent,rgba(6,47,35,.35),rgba(230,0,19,.25),rgba(255,255,255,.50),transparent) !important;filter:blur(.3px) drop-shadow(0 8px 14px rgba(6,47,35,.12)) !important;}
.ah-wave{background:linear-gradient(90deg,transparent,rgba(6,47,35,.24),rgba(255,255,255,.38),transparent) !important;border-color:rgba(6,47,35,.32) !important;}
.ah-route,.ah-line,.ah-film{background:linear-gradient(90deg,transparent,rgba(6,47,35,.62),rgba(255,255,255,.52),rgba(230,0,19,.25),transparent) !important;}
.ah-map-grid{opacity:.40 !important;background-image:linear-gradient(rgba(6,47,35,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(6,47,35,.18) 1px,transparent 1px) !important;}
.ah-pulse{border-color:rgba(230,0,19,.42) !important;box-shadow:0 0 28px rgba(230,0,19,.16) !important;}
.ah-skyline{background:rgba(6,47,35,.28) !important;border-top-color:rgba(230,0,19,.42) !important;box-shadow:inset 0 0 22px rgba(255,255,255,.12) !important;}
.ah-light{background:#7a0011 !important;box-shadow:0 0 20px rgba(122,0,17,.55),0 0 0 5px rgba(255,255,255,.22) !important;}
.ah-pin{background:rgba(255,255,255,.68) !important;border:2px solid rgba(122,0,17,.38) !important;box-shadow:0 0 22px rgba(122,0,17,.22) !important;}
.ah-compass,.ah-starburst,.ah-glass,.ah-bag,.ah-leaf{opacity:.72 !important;color:rgba(6,47,35,.52) !important;text-shadow:0 0 24px rgba(255,255,255,.34) !important;}
.ah-school,.ah-parcel{opacity:.88 !important;background:rgba(255,255,255,.52) !important;border-color:rgba(6,47,35,.28) !important;box-shadow:0 14px 30px rgba(6,47,35,.13) !important;color:var(--hero-forest) !important;}
.ah-parcel::before,.ah-parcel::after{background:rgba(230,0,19,.48) !important;}
.ah-steam{opacity:.78 !important;border-left-color:rgba(6,47,35,.34) !important;filter:drop-shadow(0 0 12px rgba(255,255,255,.28)) !important;}
.ah-spotlight{background:linear-gradient(to top,rgba(255,255,255,.42),rgba(230,0,19,.15),transparent 76%) !important;}

/* page-specific accents: same palette, different motion emphasis */
.hero-home .ah-spark:nth-of-type(odd){background:rgba(122,0,17,.58)}
.hero-about .ah-ring{border-style:dashed}.hero-about .ah-spark{border-radius:3px;transform:rotate(45deg)}
.hero-canada .ah-mist{background:linear-gradient(90deg,transparent,rgba(6,47,35,.24),rgba(255,255,255,.36),rgba(230,0,19,.13),transparent)}
.hero-cities .ah-spark{width:8px;height:18px;border-radius:3px}.hero-cities .ah-ring{border-radius:18px}
.hero-travel .ah-spark{background:rgba(122,0,17,.62)}.hero-travel .ah-ring{border-color:rgba(122,0,17,.25)}
.hero-teacher .ah-spark{box-shadow:0 0 0 6px rgba(255,255,255,.20),0 0 18px rgba(6,47,35,.24)}
.hero-eat .ah-mist{background:linear-gradient(90deg,transparent,rgba(122,0,17,.18),rgba(255,255,255,.42),rgba(6,47,35,.18),transparent)}
.hero-media .ah-ring{clip-path:polygon(0 0,100% 0,100% 32%,0 32%,0 50%,100% 50%,100% 82%,0 82%)}
.hero-shop .ah-spark{background:rgba(122,0,17,.58)}

.hero-underbar{background:linear-gradient(90deg,#c4e8b3,#dff5d5,#c4e8b3) !important;border-bottom:3px solid rgba(6,47,35,.22) !important;}
@media(max-width:860px){
  .animated-hero-bg{inset:-26px -18vw !important;}
  .ah-mist{width:92%;}
  .ah-spark{width:9px;height:9px;}
  .ah-ring.rg2{right:-3%;}
}


/* =========================================================
   Dropdown navigation update — matched to provided example
   ========================================================= */
.main-nav > ul{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:0 !important;
  flex-wrap:wrap !important;
}
.main-nav > ul > li{position:relative !important;display:block !important;}
.main-nav a,
.dropdown-toggle{
  font-family:var(--font-sans, 'Inter', sans-serif) !important;
  font-weight:500 !important;
  font-size:0.82rem !important;
  line-height:1.3 !important;
  padding:0.55rem 0.9rem !important;
  color:rgba(255,255,255,0.88) !important;
  border-radius:var(--radius, 8px) !important;
  text-align:center !important;
  white-space:normal !important;
}
.dropdown-toggle{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:5px !important;
  background:transparent !important;
  border:0 !important;
  cursor:pointer !important;
  margin:0 !important;
}
.dropdown-toggle > span{display:block !important;text-align:center !important;line-height:1.3 !important;}
.main-nav a:hover,
.main-nav a.active,
.dropdown-toggle:hover,
.has-dropdown:hover > .dropdown-toggle,
.has-dropdown.submenu-open > .dropdown-toggle{
  color:var(--prairies, #FADA46) !important;
  background:rgba(255,255,255,0.08) !important;
}
.dropdown-toggle svg{transition:transform .22s ease !important;flex-shrink:0 !important;}
.has-dropdown:hover > .dropdown-toggle svg,
.has-dropdown:focus-within > .dropdown-toggle svg,
.has-dropdown.submenu-open > .dropdown-toggle svg{transform:rotate(180deg) !important;}
.dropdown{
  display:block !important;
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
  position:absolute !important;
  top:calc(100% + 4px) !important;
  left:0 !important;
  min-width:245px !important;
  background:var(--snow, #fff) !important;
  border-radius:var(--radius-lg, 12px) !important;
  border:1px solid var(--rule, #e4e4dc) !important;
  box-shadow:var(--shadow-lg, 0 18px 40px rgba(0,0,0,.18)) !important;
  z-index:3000 !important;
  padding:.5rem 0 !important;
  margin:0 !important;
  list-style:none !important;
  transform:translateY(8px) !important;
  transition:opacity .18s ease, transform .18s ease, visibility .18s ease !important;
}
.dropdown li{display:block !important;position:relative !important;}
.dropdown li a{
  color:var(--ink, #1a1a1a) !important;
  padding:.55rem 1.1rem !important;
  font-size:.9rem !important;
  border-radius:0 !important;
  display:block !important;
  text-align:left !important;
  white-space:nowrap !important;
  background:transparent !important;
}
.dropdown li a::after{display:none !important;}
.dropdown li a:hover{
  color:var(--flag-red, #E60013) !important;
  background:var(--paper, #f7f4ea) !important;
}
@media (min-width:861px){
  .has-dropdown:hover > .dropdown,
  .has-dropdown:focus-within > .dropdown,
  .has-dropdown.submenu-open > .dropdown{
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    transform:translateY(0) !important;
  }
}
@media (max-width:980px) and (min-width:861px){
  .main-nav a,
  .dropdown-toggle{font-size:.76rem !important;padding:.46rem .52rem !important;}
  .dropdown li a{font-size:.86rem !important;padding:.55rem 1rem !important;}
}
@media (max-width:860px){
  .main-nav a,
  .dropdown-toggle{font-size:1rem !important;padding:.8rem 1rem !important;width:100% !important;justify-content:space-between !important;text-align:left !important;}
  .dropdown{
    position:static !important;
    min-width:0 !important;
    width:100% !important;
    box-shadow:none !important;
    border:0 !important;
    border-radius:0 !important;
    background:rgba(255,255,255,.06) !important;
    padding:.2rem 0 .4rem !important;
    transform:none !important;
    max-height:0 !important;
    overflow:hidden !important;
    transition:max-height .22s ease, opacity .18s ease !important;
  }
  .has-dropdown.submenu-open > .dropdown,
  .has-dropdown:focus-within > .dropdown{
    visibility:visible !important;
    opacity:1 !important;
    pointer-events:auto !important;
    max-height:360px !important;
  }
  .dropdown li a{color:rgba(255,255,255,.88) !important;font-size:.94rem !important;padding:.62rem 1.35rem !important;background:transparent !important;}
  .dropdown li a:hover{color:var(--prairies, #FADA46) !important;background:transparent !important;}
}

/* ── Shop Canada tile size adjustment — smaller product/category tiles ── */
.shop-grid {
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 0.78rem;
}
.shop-card {
  border-radius: 13px;
}
.shop-card-top {
  min-height: 118px;
}
.shop-card-badge {
  top: 0.5rem;
  left: 0.5rem;
  padding: 0.18rem 0.48rem;
  font-size: 0.58rem;
}
.shop-card-body {
  padding: 0.78rem;
  gap: 0.32rem;
}
.shop-card-body h3 {
  font-size: 0.92rem;
}
.shop-card-body p {
  font-size: 0.76rem;
  line-height: 1.45;
}
.shop-card-meta {
  font-size: 0.64rem;
}
.shop-card a {
  margin-top: 0.42rem;
  padding: 0.5rem 0.58rem;
  border-radius: 8px;
  font-size: 0.74rem;
}
@media(max-width:760px){
  .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.65rem; }
  .shop-card-top { min-height: 100px; }
  .shop-card-body { padding: 0.68rem; }
}
@media(max-width:430px){
  .shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .shop-card-body p { display: none; }
  .shop-card-top { min-height: 92px; }
}

/* =========================================================
   All Canada cachefix-5 merge-safe overrides
   Scoped additions for dropdown nav, animated heroes, and Shop Canada.
   ========================================================= */
.main-nav a,
.dropdown-toggle {
  font-size: 0.82rem;
  line-height: 1.3;
  font-family: var(--font-sans, 'Inter', Arial, sans-serif);
  font-weight: 500;
}
.main-nav > ul > li > a,
.dropdown-toggle { padding: 0.55rem 0.82rem; }
.has-dropdown { position: relative; }
.dropdown {
  display: none !important;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  min-width: 230px;
  background: var(--snow, #fff);
  border-radius: var(--radius-lg, 12px);
  border: 1px solid var(--rule, #C8C8C8);
  box-shadow: var(--shadow-lg, 0 14px 36px rgba(6,47,35,0.14));
  z-index: 2000;
  padding: 0.5rem 0;
  margin: 0;
  list-style: none;
}
.dropdown li a {
  color: var(--ink, #000);
  padding: 0.55rem 1.1rem;
  font-size: 0.9rem;
  border-radius: 0;
  display: block;
  text-align: left;
  white-space: nowrap;
}
.dropdown li a:hover { color: var(--flag-red, #EB2D37); background: var(--paper, #F5F5F5); }
@media (min-width: 861px) {
  .has-dropdown:hover > .dropdown,
  .has-dropdown:focus-within > .dropdown,
  .has-dropdown.submenu-open > .dropdown {
    display: block !important;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
  }
}
@media (max-width: 860px) {
  .main-nav > ul > li { display: flex; flex-wrap: wrap; align-items: center; }
  .main-nav > ul > li > a { flex: 1 1 auto; }
  .dropdown-toggle { width: 100%; justify-content: flex-start; font-size: 1.05rem; padding: 0.95rem 0.6rem; }
  .dropdown {
    position: static;
    flex-basis: 100%;
    width: 100%;
    background: rgba(255,255,255,0.05);
    border: 0;
    box-shadow: none;
    border-radius: 8px;
    padding: 0.25rem 0 0.6rem 1rem;
    margin: 0.1rem 0 0.4rem;
  }
  .has-dropdown.submenu-open > .dropdown {
    display: block !important;
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
  }
  .dropdown li a { color: rgba(255,255,255,0.82); font-size: 0.96rem; padding: 0.55rem 0.55rem; }
  .dropdown li a:hover { color: var(--prairies, #FAD714); background: transparent; }
}
.dropdown-toggle svg { transition: transform 0.22s ease; }
.has-dropdown:hover .dropdown-toggle svg,
.has-dropdown:focus-within .dropdown-toggle svg,
.has-dropdown.submenu-open .dropdown-toggle svg { transform: rotate(180deg); }

/* Stronger light-green animated hero blend. Only affects pages that use these classes. */
.animated-hero-wrap,
.animated-page-hero {
  background: #c4e8b3 !important;
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.animated-hero-wrap::before,
.animated-page-hero::before {
  content: '';
  position: absolute;
  inset: -35%;
  background:
    radial-gradient(circle at 14% 26%, rgba(255,255,255,.68) 0 5%, transparent 16%),
    radial-gradient(circle at 78% 18%, rgba(0,135,80,.35) 0 4%, transparent 15%),
    radial-gradient(circle at 64% 78%, rgba(235,45,55,.22) 0 4%, transparent 16%),
    repeating-linear-gradient(120deg, rgba(255,255,255,.18) 0 2px, transparent 2px 22px);
  filter: blur(1px);
  opacity: .9;
  animation: acHeroDrift 18s ease-in-out infinite alternate;
  z-index: 0;
}
.animated-hero-wrap::after,
.animated-page-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at center, rgba(196,232,179,.08) 0%, rgba(196,232,179,.35) 58%, #c4e8b3 100%);
  z-index: 1;
  pointer-events: none;
}
.animated-hero-wrap > *,
.animated-page-hero > * { position: relative; z-index: 2; }
@keyframes acHeroDrift {
  from { transform: translate3d(-3%, -2%, 0) rotate(-1deg) scale(1.02); }
  to { transform: translate3d(3%, 2%, 0) rotate(1deg) scale(1.08); }
}

/* Shop Canada compact tiles */
.shop-canada-page .shop-grid,
.shop-canada-grid,
.canada-shop-grid,
#shopCanadaGrid {
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important;
  gap: 0.9rem !important;
}
.shop-canada-page .shop-card,
.shop-canada-card,
.canada-shop-card,
.shop-tile {
  border-radius: 12px !important;
}
.shop-canada-page .shop-card img,
.shop-canada-card img,
.canada-shop-card img,
.shop-tile img,
.shop-canada-page .shop-image,
.shop-canada-img {
  height: 120px !important;
  object-fit: cover !important;
}
.shop-canada-page .shop-card-body,
.shop-canada-card-body,
.canada-shop-card-body,
.shop-tile-body {
  padding: 0.75rem !important;
}
.shop-canada-page .shop-card h3,
.shop-canada-card h3,
.canada-shop-card h3,
.shop-tile h3 {
  font-size: 0.95rem !important;
  line-height: 1.22 !important;
}
.shop-canada-page .shop-card p,
.shop-canada-card p,
.canada-shop-card p,
.shop-tile p {
  font-size: 0.78rem !important;
  line-height: 1.45 !important;
}
.shop-canada-page .shop-btn,
.shop-canada-card a,
.canada-shop-card a,
.shop-tile a {
  font-size: 0.76rem !important;
  padding: 0.48rem 0.7rem !important;
}
@media (max-width: 640px) {
  .shop-canada-page .shop-grid,
  .shop-canada-grid,
  .canada-shop-grid,
  #shopCanadaGrid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 0.65rem !important; }
  .shop-canada-page .shop-card img,
  .shop-canada-card img,
  .canada-shop-card img,
  .shop-tile img,
  .shop-canada-page .shop-image,
  .shop-canada-img { height: 96px !important; }
}


/* =========================================================
   Cachefix 6 — full-site merge support
   Forces the uploaded province/territory pages and newly-added support
   pages to use the same light-green animated hero system without relying
   on old slideshow image placeholders.
   ========================================================= */
.page-hero.animated-page-hero .hero-slides,
.page-hero.animated-page-hero .hero-dots {
  display: none !important;
}
.page-hero.animated-page-hero {
  background:
    radial-gradient(ellipse 82% 110% at 52% 48%, rgba(223,245,213,.96) 0%, rgba(196,232,179,.92) 42%, rgba(172,216,151,.86) 72%, rgba(196,232,179,0) 100%),
    linear-gradient(135deg, #dff5d5 0%, #c4e8b3 46%, #9fd28a 100%) !important;
}
.page-hero.animated-page-hero .hero-content {
  position: relative !important;
  z-index: 5 !important;
}
.page-hero.animated-page-hero .hero-content h1,
.page-hero.animated-page-hero h1 {
  color: #062F23 !important;
}
.hero-full-wrap.animated-hero-wrap {
  background: #c4e8b3 !important;
}
/* province/territory pages use the same colours but slightly different motion feel */
.hero-canada .ah-ring.rg1 { animation-duration: 7s; }
.hero-canada .ah-ring.rg2 { animation-duration: 10s; }
.hero-canada .ah-spark:nth-of-type(odd) { background: rgba(122,0,17,.62) !important; }
.hero-teacher .ah-ring { border-style: dashed; }
/* keep legal and utility pages clean while still matching the new nav */
.privacy-page .animated-hero-bg,
.terms-page .animated-hero-bg { opacity: .7; }


/* =========================================================
   All Canada — cachefix-7 rich Canadian animated hero system
   Purpose: restore visible animated hero backgrounds on every
   .animated-page-hero without relying on image slides.
   ========================================================= */
.hero-full-wrap.animated-hero-wrap,
.hero-full-wrap:has(.animated-page-hero) {
  background: linear-gradient(180deg, #dff5d4 0%, #c4e8b3 55%, #b7dfaa 100%) !important;
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate !important;
}
.hero-full-wrap.animated-hero-wrap::before,
.hero-full-wrap:has(.animated-page-hero)::before {
  content: '';
  position: absolute;
  inset: -30% -12%;
  background:
    radial-gradient(ellipse at 12% 30%, rgba(255,255,255,.72) 0 8%, transparent 26%),
    radial-gradient(ellipse at 86% 70%, rgba(255,255,255,.55) 0 7%, transparent 24%),
    radial-gradient(ellipse at 50% 120%, rgba(0,135,80,.22) 0 20%, transparent 56%);
  filter: blur(12px);
  opacity: .95;
  animation: acWrapGlow 14s ease-in-out infinite alternate;
  z-index: 0;
  pointer-events: none;
}

.animated-page-hero,
.page-hero.animated-page-hero,
.lp-hero.animated-page-hero {
  min-height: 220px !important;
  height: 220px !important;
  max-width: var(--content-max, 1180px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  border-radius: 0 0 28px 28px !important;
  background:
    linear-gradient(115deg, rgba(196,232,179,.96), rgba(230,249,222,.94) 34%, rgba(196,232,179,.98) 62%, rgba(176,222,162,.96)) !important;
  overflow: hidden !important;
  position: relative !important;
  isolation: isolate !important;
  box-shadow: inset 0 -18px 36px rgba(6,47,35,.09), 0 18px 36px rgba(6,47,35,.12) !important;
}

/* Hide legacy image slideshow layers so the animation is not covered. */
.animated-page-hero .hero-slides,
.page-hero.animated-page-hero .hero-slides,
.animated-page-hero .hero-dots,
.page-hero.animated-page-hero .hero-dots,
.animated-page-hero #lp-hero-slides,
.animated-page-hero .hero-slide,
.animated-page-hero .hero-image {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.canadian-hero-animation {
  position: absolute !important;
  inset: -18% -8% !important;
  z-index: 0 !important;
  pointer-events: none !important;
  overflow: hidden !important;
}
.canadian-hero-animation span,
.canadian-hero-animation i,
.canadian-hero-animation b,
.canadian-hero-animation em,
.canadian-hero-animation strong,
.canadian-hero-animation small {
  position: absolute;
  display: block;
  pointer-events: none;
}

/* Aurora ribbons */
.canadian-hero-animation .aurora-ribbon {
  left: -10%;
  right: -10%;
  height: 64%;
  top: 8%;
  border-radius: 50%;
  background:
    linear-gradient(100deg, transparent 0%, rgba(0,135,80,.08) 12%, rgba(0,135,80,.36) 30%, rgba(255,255,255,.45) 45%, rgba(235,45,55,.24) 62%, rgba(0,90,155,.18) 78%, transparent 100%);
  transform: rotate(-4deg) translateY(0) skewX(-10deg);
  filter: blur(2px);
  mix-blend-mode: multiply;
  opacity: .86;
  animation: acAuroraFlow 9s ease-in-out infinite alternate;
}
.canadian-hero-animation .aurora-ribbon.two {
  top: 30%;
  height: 48%;
  background: linear-gradient(92deg, transparent 0%, rgba(235,45,55,.20) 20%, rgba(255,255,255,.36) 42%, rgba(0,135,80,.30) 62%, rgba(0,90,155,.18) 82%, transparent 100%);
  transform: rotate(5deg) skewX(14deg);
  opacity: .7;
  animation-duration: 12s;
  animation-direction: alternate-reverse;
}

/* Maple leaves as text glyphs (no image assets needed) */
.canadian-hero-animation .maple {
  font-size: clamp(32px, 5vw, 72px);
  line-height: 1;
  color: rgba(235,45,55,.68);
  text-shadow: 0 6px 20px rgba(235,45,55,.18), 0 0 1px rgba(6,47,35,.22);
  filter: drop-shadow(0 8px 10px rgba(6,47,35,.08));
  animation: acLeafFloat 11s ease-in-out infinite;
  mix-blend-mode: multiply;
}
.canadian-hero-animation .maple.one { left: 7%; top: 24%; animation-delay: -1s; transform: rotate(-18deg); }
.canadian-hero-animation .maple.two { right: 8%; top: 18%; font-size: clamp(28px, 4vw, 58px); animation-delay: -5s; transform: rotate(24deg); opacity: .58; }
.canadian-hero-animation .maple.three { left: 48%; bottom: 5%; font-size: clamp(26px, 3.8vw, 54px); animation-delay: -8s; transform: rotate(8deg); opacity: .5; }

/* Compass rings / travel energy */
.canadian-hero-animation .compass-ring {
  width: 230px;
  height: 230px;
  border-radius: 50%;
  right: 8%;
  bottom: -54px;
  border: 2px solid rgba(0,90,155,.34);
  box-shadow: inset 0 0 0 18px rgba(255,255,255,.18), inset 0 0 0 36px rgba(0,135,80,.08), 0 0 26px rgba(255,255,255,.26);
  animation: acSpin 24s linear infinite;
  opacity: .74;
}
.canadian-hero-animation .compass-ring::before,
.canadian-hero-animation .compass-ring::after {
  content: '';
  position: absolute;
  inset: 42px;
  border-radius: 50%;
  border: 1px dashed rgba(6,47,35,.38);
}
.canadian-hero-animation .compass-ring::after {
  inset: 92px 20px;
  border-radius: 999px;
  border-style: solid;
  transform: rotate(45deg);
  background: rgba(255,255,255,.12);
}

/* Mountain + water silhouette */
.canadian-hero-animation .mountains {
  left: -4%;
  right: -4%;
  bottom: -3px;
  height: 46%;
  background:
    linear-gradient(135deg, transparent 0 16%, rgba(6,47,35,.18) 16% 28%, transparent 28% 34%, rgba(6,47,35,.22) 34% 48%, transparent 48% 54%, rgba(6,47,35,.16) 54% 66%, transparent 66%),
    linear-gradient(180deg, transparent 0 45%, rgba(0,90,155,.16) 46% 100%);
  clip-path: polygon(0 70%, 8% 47%, 15% 63%, 24% 34%, 34% 70%, 45% 42%, 55% 71%, 66% 38%, 78% 72%, 90% 44%, 100% 70%, 100% 100%, 0 100%);
  opacity: .85;
  animation: acMountainDrift 16s ease-in-out infinite alternate;
}
.canadian-hero-animation .water-lines {
  left: -10%;
  right: -10%;
  bottom: 5%;
  height: 42px;
  background: repeating-linear-gradient(0deg, transparent 0 9px, rgba(0,90,155,.23) 10px 12px, transparent 13px 18px);
  transform: rotate(-1deg);
  opacity: .6;
  animation: acWaterSlide 7s linear infinite;
}

/* Sparkles / snow / prairie sun flecks */
.canadian-hero-animation .sparkles {
  inset: 0;
  background-image:
    radial-gradient(circle at 10% 22%, rgba(255,255,255,.95) 0 2px, transparent 3px),
    radial-gradient(circle at 24% 68%, rgba(255,255,255,.72) 0 1.5px, transparent 3px),
    radial-gradient(circle at 42% 30%, rgba(250,215,20,.68) 0 2px, transparent 3px),
    radial-gradient(circle at 61% 64%, rgba(255,255,255,.78) 0 2px, transparent 3px),
    radial-gradient(circle at 82% 35%, rgba(255,255,255,.9) 0 1.5px, transparent 3px),
    radial-gradient(circle at 94% 72%, rgba(250,215,20,.55) 0 2px, transparent 3px);
  animation: acTwinkle 4.6s ease-in-out infinite alternate;
  opacity: .9;
}

/* Page-specific accents, same palette but different personality */
.hero-home .canadian-hero-animation .aurora-ribbon { animation-duration: 8s; }
.hero-cities .canadian-hero-animation .mountains { clip-path: polygon(0 88%, 5% 46%, 9% 82%, 15% 38%, 21% 80%, 29% 54%, 35% 86%, 42% 32%, 49% 82%, 56% 48%, 63% 85%, 70% 36%, 77% 82%, 85% 44%, 92% 80%, 100% 56%, 100% 100%, 0 100%); }
.hero-media .canadian-hero-animation .compass-ring { border-radius: 22%; transform-origin: center; }
.hero-shop .canadian-hero-animation .sparkles { opacity: 1; filter: drop-shadow(0 0 5px rgba(250,215,20,.65)); }
.hero-eat .canadian-hero-animation .water-lines { background: repeating-linear-gradient(0deg, transparent 0 7px, rgba(235,45,55,.16) 8px 10px, transparent 11px 17px); }
.hero-teacher .canadian-hero-animation .compass-ring { left: 6%; right: auto; border-color: rgba(235,45,55,.30); }

.animated-page-hero .hero-content,
.page-hero.animated-page-hero .hero-content,
.animated-page-hero .lp-hero-text,
.animated-page-hero .animated-hero-content {
  position: relative !important;
  z-index: 3 !important;
  max-width: 860px !important;
  margin: 0 auto !important;
  padding: 1.3rem 1.25rem !important;
  color: #062F23 !important;
  text-align: center !important;
  text-shadow: 0 1px 0 rgba(255,255,255,.42) !important;
}
.animated-page-hero h1,
.page-hero.animated-page-hero h1,
.animated-page-hero .lp-hero-text h1 {
  color: #062F23 !important;
  font-size: clamp(1.8rem, 4vw, 3.05rem) !important;
  line-height: 1.02 !important;
  margin-bottom: .45rem !important;
  text-shadow: 0 2px 0 rgba(255,255,255,.38), 0 12px 28px rgba(6,47,35,.14) !important;
}
.animated-page-hero .kicker,
.page-hero.animated-page-hero .kicker,
.animated-page-hero .hero-eyebrow,
.page-hero.animated-page-hero .hero-eyebrow {
  color: #006b43 !important;
  background: rgba(255,255,255,.38) !important;
  border: 1px solid rgba(0,135,80,.20) !important;
  border-radius: 999px !important;
  padding: .24rem .72rem !important;
  display: inline-block !important;
  letter-spacing: .12em !important;
}
.animated-page-hero .hero-tagline,
.page-hero.animated-page-hero .hero-tagline,
.animated-page-hero .lp-hero-text p {
  color: rgba(6,47,35,.88) !important;
  font-size: clamp(.94rem, 1.8vw, 1.13rem) !important;
  line-height: 1.42 !important;
  max-width: 760px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

@keyframes acWrapGlow { from { transform: translateX(-2%) scale(1); } to { transform: translateX(2%) scale(1.05); } }
@keyframes acAuroraFlow { from { transform: translate3d(-4%, -4%, 0) rotate(-5deg) skewX(-12deg) scale(1.02); filter: blur(2px) hue-rotate(0deg); } to { transform: translate3d(4%, 5%, 0) rotate(5deg) skewX(12deg) scale(1.10); filter: blur(3px) hue-rotate(8deg); } }
@keyframes acLeafFloat { 0%,100% { translate: 0 0; rotate: 0deg; } 35% { translate: 18px -18px; rotate: 8deg; } 70% { translate: -14px 12px; rotate: -10deg; } }
@keyframes acSpin { to { transform: rotate(360deg); } }
@keyframes acMountainDrift { from { transform: translateX(-1.8%) scaleX(1.03); } to { transform: translateX(1.8%) scaleX(1.08); } }
@keyframes acWaterSlide { from { background-position: 0 0; } to { background-position: 80px 0; } }
@keyframes acTwinkle { from { opacity: .45; transform: scale(.98); } to { opacity: 1; transform: scale(1.03); } }

@media (prefers-reduced-motion: reduce) {
  .canadian-hero-animation *,
  .hero-full-wrap.animated-hero-wrap::before,
  .hero-full-wrap:has(.animated-page-hero)::before {
    animation: none !important;
  }
}
@media (max-width: 760px) {
  .animated-page-hero,
  .page-hero.animated-page-hero { min-height: 210px !important; height: 210px !important; border-radius: 0 0 18px 18px !important; }
  .canadian-hero-animation .compass-ring { width: 150px; height: 150px; right: -20px; bottom: -40px; }
  .canadian-hero-animation .maple.three { display: none; }
}


/* cachefix-7: make non-standard hero blocks use the same rich animation */
.map-hero.animated-page-hero, .tt-hero-band.animated-page-hero {
  min-height: 220px !important; height: 220px !important; padding: 0 !important; border-bottom: 0 !important;
}
.map-hero.animated-page-hero .prov-hero-slides, .map-hero.animated-page-hero .prov-hero-dots, .map-hero.animated-page-hero .prov-hero-overlay {
  display:none !important; opacity:0 !important; visibility:hidden !important;
}
.map-hero.animated-page-hero .map-hero-content, .tt-hero-band.animated-page-hero .tt-hero-inner {
  position: relative !important; z-index: 3 !important; padding: 1.3rem 1.25rem !important; color:#062F23 !important; text-align:center !important;
}
.map-hero.animated-page-hero .map-hero-content h1, .tt-hero-band.animated-page-hero .tt-hero-h1 {
  color:#062F23 !important; text-shadow:0 2px 0 rgba(255,255,255,.38),0 12px 28px rgba(6,47,35,.14) !important; font-size:clamp(1.8rem,4vw,3.05rem) !important;
}
.map-hero.animated-page-hero .map-hero-content p, .tt-hero-band.animated-page-hero .tt-hero-sub {
  color:rgba(6,47,35,.88) !important; opacity:1 !important; text-shadow:none !important; line-height:1.42 !important; max-width:760px !important; margin-left:auto !important; margin-right:auto !important;
}
.map-hero.animated-page-hero .kicker, .tt-hero-band.animated-page-hero .tt-hero-kicker {
  color:#006b43 !important; background:rgba(255,255,255,.38) !important; border:1px solid rgba(0,135,80,.20) !important; border-radius:999px !important; padding:.24rem .72rem !important; display:inline-block !important; letter-spacing:.12em !important;
}


/* =========================================================
   Cachefix 8 — AdSense compliance, SEO, AI-search and speed polish
   ========================================================= */
.main-nav > ul > li > a,
.main-nav .dropdown-toggle {
  font-size: clamp(0.72rem, 0.78vw, 0.88rem) !important;
  line-height: 1.12 !important;
  letter-spacing: .015em !important;
}
.header-container, .header-inner { gap: .85rem !important; }
@media (min-width: 861px) {
  .main-nav > ul { gap: .12rem !important; }
  .main-nav > ul > li > a, .main-nav .dropdown-toggle { padding-left: .46rem !important; padding-right: .46rem !important; }
}
/* richer, still light-green Canadian themed animated hero */
.animated-page-hero,
.page-hero.animated-page-hero,
.lp-hero.animated-page-hero,
.map-hero.animated-page-hero,
.tt-hero-band.animated-page-hero {
  background:
    radial-gradient(circle at 18% 20%, rgba(255,255,255,.85) 0 6%, transparent 22%),
    radial-gradient(circle at 78% 26%, rgba(250,215,20,.34) 0 4%, transparent 18%),
    linear-gradient(115deg, #e8f9df 0%, #c4e8b3 40%, #a9dc94 72%, #dff5d5 100%) !important;
}
.canadian-hero-animation .aurora-ribbon { opacity: .98 !important; filter: blur(1px) saturate(1.24) !important; mix-blend-mode: multiply !important; }
.canadian-hero-animation .maple { opacity: .82 !important; color: rgba(213,43,30,.74) !important; }
.canadian-hero-animation .sparkles { opacity: 1 !important; filter: drop-shadow(0 0 4px rgba(255,255,255,.7)); }
.canadian-hero-animation .compass-ring { opacity: .9 !important; }
.canadian-hero-animation .mountains { opacity: .96 !important; }
/* prevent old slides from becoming LCP or covering animation */
.animated-page-hero img.hero-image,
.page-hero.animated-page-hero img.hero-image,
.lp-hero.animated-page-hero img.hero-image { display: none !important; }
/* SEO-friendly utility content */
.ads-compliance-note,
.editorial-trust-panel {
  max-width: 980px;
  margin: 1.5rem auto;
  padding: 1.1rem 1.25rem;
  border: 1px solid rgba(6,47,35,.14);
  background: #f8fff4;
  border-radius: 14px;
  color: #234;
}
.editorial-trust-panel h2 { margin-top: 0; color: #062F23; }
/* reduce initial rendering cost of long pages while preserving SEO content */
main section, article section, .city-section, .rp-section, .tt-section {
  content-visibility: auto;
  contain-intrinsic-size: 1px 900px;
}
img { max-width: 100%; height: auto; }
img[loading="lazy"] { content-visibility: auto; }
/* accessible focus states for Lighthouse */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 3px solid #005A9B !important;
  outline-offset: 3px !important;
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}


/* =========================================================
   Cachefix 10 — header/logo/nav alignment repair
   Keeps the leaf + All Canada logo, stacks the tagline below it,
   and keeps desktop nav links evenly inside the green bar.
   ========================================================= */
:root { --nav-h: 82px; }
.site-header{
  overflow: visible !important;
}
.header-container,
.header-inner{
  min-height: 82px !important;
  height: auto !important;
  padding-top: .35rem !important;
  padding-bottom: .35rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: clamp(.45rem, 1.1vw, 1rem) !important;
}
.site-logo{
  display: inline-flex !important;
  align-items: center !important;
  gap: .48rem !important;
  min-width: 190px !important;
  max-width: 245px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  flex: 0 0 auto !important;
}
.site-logo .logo-leaf{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: clamp(1.45rem, 2.2vw, 1.85rem) !important;
  line-height: 1 !important;
  margin: 0 !important;
}
.logo-copy{
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: .15rem !important;
  min-width: 0 !important;
}
.logo-main{
  display: block !important;
  font-family: var(--font-display, Georgia, serif) !important;
  font-weight: 700 !important;
  font-size: clamp(1.18rem, 2vw, 1.55rem) !important;
  color: var(--snow, #fff) !important;
  letter-spacing: -.01em !important;
}
.logo-tagline{
  display: block !important;
  font-family: var(--font-sans, Inter, sans-serif) !important;
  font-size: clamp(.52rem, .72vw, .68rem) !important;
  font-weight: 700 !important;
  letter-spacing: .045em !important;
  line-height: 1.05 !important;
  color: rgba(255,255,255,.72) !important;
  text-transform: none !important;
  margin: 0 !important;
  white-space: nowrap !important;
}
.main-nav{
  flex: 1 1 auto !important;
  min-width: 0 !important;
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;
  overflow: visible !important;
}
.main-nav > ul{
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: nowrap !important;
  gap: .08rem !important;
  width: auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
.main-nav > ul > li{
  flex: 0 1 auto !important;
  align-self: center !important;
}
.main-nav > ul > li::before{
  top: 20% !important;
  height: 60% !important;
}
.main-nav > ul > li > a,
.main-nav .dropdown-toggle{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 44px !important;
  box-sizing: border-box !important;
  padding: .42rem clamp(.34rem, .62vw, .62rem) !important;
  font-size: clamp(.58rem, .70vw, .78rem) !important;
  line-height: 1.12 !important;
  letter-spacing: .005em !important;
  text-align: center !important;
  white-space: normal !important;
  margin: 0 !important;
}
.main-nav .dropdown-toggle{ gap: .24rem !important; }
.main-nav .dropdown-toggle > span,
.main-nav > ul > li > a{
  text-wrap: balance;
}
.dropdown{
  top: calc(100% + 6px) !important;
}
@media (max-width: 1200px) and (min-width: 861px){
  .site-logo{ min-width: 176px !important; max-width: 210px !important; gap: .36rem !important; }
  .main-nav > ul > li > a,
  .main-nav .dropdown-toggle{ font-size: .60rem !important; padding-left: .28rem !important; padding-right: .28rem !important; }
  .logo-main{ font-size: 1.25rem !important; }
  .logo-tagline{ font-size: .50rem !important; letter-spacing: .02em !important; }
}
@media (max-width: 980px) and (min-width: 861px){
  .header-container,.header-inner{ padding-left: .7rem !important; padding-right: .7rem !important; }
  .site-logo{ min-width: 158px !important; max-width: 180px !important; }
  .main-nav > ul > li > a,
  .main-nav .dropdown-toggle{ font-size: .55rem !important; padding-left: .22rem !important; padding-right: .22rem !important; min-height: 40px !important; }
}
@media (max-width: 860px){
  :root { --nav-h: 72px; }
  .header-container,
  .header-inner{ min-height: 72px !important; padding-top: .45rem !important; padding-bottom: .45rem !important; }
  .site-logo{ min-width: 0 !important; max-width: calc(100vw - 96px) !important; }
  .logo-main{ font-size: 1.35rem !important; }
  .logo-tagline{ display:block !important; font-size:.58rem !important; white-space:normal !important; max-width: 220px !important; }
  .main-nav{
    display: block !important;
    align-items: initial !important;
    justify-content: initial !important;
  }
  .main-nav > ul{
    display: block !important;
    flex-wrap: initial !important;
  }
  .main-nav > ul > li > a,
  .main-nav .dropdown-toggle{
    display:flex !important;
    justify-content:space-between !important;
    width:100% !important;
    min-height: 0 !important;
    font-size: 1rem !important;
    padding: .8rem 1rem !important;
    text-align: left !important;
  }
}
@media (max-width: 420px){
  .logo-main{ font-size: 1.18rem !important; }
  .logo-tagline{ font-size: .52rem !important; max-width: 190px !important; }
}


/* =========================================================
   Cachefix 11 — Canadian bank-note colour system + randomized
   hero animations. Design note: the five themes are based on
   Canadian bank-note colour families: $5 blue, $10 purple,
   $20 green, $50 red and $100 brown.
   Palette reference: canadian-money-colours.json
   ========================================================= */
:root{
  --money-5-blue:#0072CE;
  --money-10-purple:#6F2C91;
  --money-20-green:#00843D;
  --money-50-red:#C8102E;
  --money-100-brown:#6B4A2B;
  --money-soft-blue:#DDF2FF;
  --money-soft-purple:#F1E4FF;
  --money-soft-green:#E8F8E2;
  --money-soft-red:#FFE4E7;
  --money-soft-brown:#F7E9D0;
  --money-accent-blue:#8FD0FF;
  --money-accent-purple:#CDA8F0;
  --money-accent-green:#C4E8B3;
  --money-accent-red:#FFB3BA;
  --money-accent-brown:#D6B27C;
  --site-money-accent:var(--money-20-green);
  --site-money-accent-soft:var(--money-soft-green);
  --site-money-accent-light:var(--money-accent-green);
}
body{
  background:
    radial-gradient(circle at top left, rgba(196,232,179,.22), transparent 32rem),
    linear-gradient(180deg, #fbfff8 0%, #ffffff 36%, #fbfbf6 100%);
}
a{ text-underline-offset: .16em; }
a:hover{ color: var(--site-money-accent, #00843D); }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid color-mix(in srgb, var(--site-money-accent, #00843D) 72%, white 28%) !important;
  outline-offset:3px !important;
}
.section-title::after,
.page-section h2::after,
main h2::after{
  background: linear-gradient(90deg, var(--money-5-blue), var(--money-10-purple), var(--money-20-green), var(--money-50-red), var(--money-100-brown));
}
.card:hover,.feature-card:hover,.tile:hover,.province-card:hover,.resource-card:hover,.ww-tile:hover,.shop-card:hover{
  box-shadow: 0 16px 42px color-mix(in srgb, var(--site-money-accent, #00843D) 20%, transparent 80%), 0 6px 20px rgba(0,0,0,.12) !important;
  border-color: color-mix(in srgb, var(--site-money-accent, #00843D) 34%, #ffffff 66%) !important;
}
.cta-button,.btn,.button,.shop-btn,.rp-cta-btn,.primary-btn{
  background: linear-gradient(135deg, var(--money-20-green), color-mix(in srgb, var(--money-20-green) 70%, var(--money-5-blue) 30%)) !important;
  border-color: color-mix(in srgb, var(--money-20-green) 84%, black 16%) !important;
}
.cta-button:hover,.btn:hover,.button:hover,.shop-btn:hover,.rp-cta-btn:hover,.primary-btn:hover{
  filter: saturate(1.12) brightness(1.03);
}
.money-hero,
.animated-page-hero.money-hero,
.page-hero.money-hero,
.map-hero.money-hero,
.tt-hero-band.money-hero{
  --bill-primary:var(--money-20-green);
  --bill-secondary:var(--money-accent-green);
  --bill-deep:#062F23;
  --bill-soft:var(--money-soft-green);
  --bill-glow:rgba(196,232,179,.72);
  min-height: 220px !important;
  background:
    radial-gradient(circle at 12% 22%, color-mix(in srgb, var(--bill-secondary) 55%, white 45%) 0 0.35rem, transparent 0.7rem),
    radial-gradient(circle at 88% 18%, color-mix(in srgb, var(--bill-primary) 42%, white 58%) 0 0.42rem, transparent 0.85rem),
    linear-gradient(135deg, color-mix(in srgb, var(--bill-soft) 82%, white 18%) 0%, color-mix(in srgb, var(--bill-secondary) 62%, white 38%) 44%, color-mix(in srgb, var(--bill-primary) 34%, white 66%) 100%) !important;
  isolation:isolate;
  position:relative;
  overflow:hidden !important;
  color:#0b1f18 !important;
  border-bottom:1px solid rgba(6,47,35,.15);
}
.hero-full-wrap:has(.money-hero),
.animated-hero-wrap:has(.money-hero){
  background: linear-gradient(180deg, rgba(255,255,255,.86), color-mix(in srgb, var(--bill-soft, #E8F8E2) 70%, white 30%)) !important;
}
.money-hero.money-theme-5{--bill-primary:#0072CE;--bill-secondary:#8FD0FF;--bill-deep:#073B6B;--bill-soft:#DDF2FF;--bill-glow:rgba(143,208,255,.75);}
.money-hero.money-theme-10{--bill-primary:#6F2C91;--bill-secondary:#CDA8F0;--bill-deep:#3D155F;--bill-soft:#F1E4FF;--bill-glow:rgba(205,168,240,.72);}
.money-hero.money-theme-20{--bill-primary:#00843D;--bill-secondary:#C4E8B3;--bill-deep:#062F23;--bill-soft:#E8F8E2;--bill-glow:rgba(196,232,179,.76);}
.money-hero.money-theme-50{--bill-primary:#C8102E;--bill-secondary:#FFB3BA;--bill-deep:#641018;--bill-soft:#FFE4E7;--bill-glow:rgba(255,179,186,.70);}
.money-hero.money-theme-100{--bill-primary:#6B4A2B;--bill-secondary:#D6B27C;--bill-deep:#3E2A18;--bill-soft:#F7E9D0;--bill-glow:rgba(214,178,124,.70);}
.money-hero .hero-slides,
.money-hero .hero-dots,
.money-hero #lp-hero-slides{display:none !important;}
.money-hero .hero-content,
.money-hero .map-hero-content,
.money-hero .tt-hero-inner,
.money-hero .lp-hero-text{
  position:relative !important;
  z-index:5 !important;
  color:#0b1f18 !important;
  text-shadow:0 1px 0 rgba(255,255,255,.55) !important;
}
.money-hero h1,
.money-hero .tt-hero-h1,
.money-hero .map-hero-content h1{
  color: color-mix(in srgb, var(--bill-deep) 86%, #000 14%) !important;
  text-shadow:0 1px 0 rgba(255,255,255,.65), 0 12px 30px color-mix(in srgb, var(--bill-primary) 18%, transparent 82%) !important;
}
.money-hero p,
.money-hero .hero-tagline,
.money-hero .tt-hero-sub,
.money-hero .map-hero-content p{
  color: color-mix(in srgb, var(--bill-deep) 78%, #111 22%) !important;
  opacity: .95 !important;
}
.money-hero .kicker,
.money-hero .hero-eyebrow,
.money-hero .tt-hero-kicker,
.money-hero .map-hero-content .kicker{
  color: var(--bill-deep) !important;
  background: rgba(255,255,255,.42);
  border: 1px solid color-mix(in srgb, var(--bill-primary) 24%, white 76%);
  border-radius:999px;
  padding:.32rem .75rem;
  display:inline-block;
  box-shadow:0 8px 24px rgba(255,255,255,.25);
}
.canadian-money-animation{
  position:absolute;
  inset:-15% -8%;
  z-index:1;
  pointer-events:none;
  overflow:hidden;
  opacity:1;
}
.canadian-money-animation span{position:absolute;display:block;}
.bill-aurora{
  width:78%;height:35%;left:-12%;top:3%;
  background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--bill-primary) 36%, transparent 64%), color-mix(in srgb, var(--bill-secondary) 58%, transparent 42%), transparent);
  filter: blur(14px) saturate(1.5);
  border-radius:50%;
  transform:rotate(-7deg);
  animation: billAurora 9s ease-in-out infinite alternate;
  mix-blend-mode:multiply;
}
.bill-aurora.two{left:30%;top:31%;width:88%;height:38%;animation-duration:12s;animation-delay:-4s;transform:rotate(9deg);opacity:.85;}
.bill-maple{font-size:clamp(1.8rem,5vw,4.3rem);color:var(--bill-primary);text-shadow:0 0 22px var(--bill-glow);filter:saturate(1.25);opacity:.64;animation: billLeaf 10s ease-in-out infinite;}
.bill-maple.one{left:8%;top:55%;animation-delay:-1s;}
.bill-maple.two{right:10%;top:18%;font-size:clamp(2.2rem,6vw,5.2rem);animation-duration:13s;animation-delay:-5s;}
.bill-maple.three{left:55%;bottom:4%;font-size:clamp(1.5rem,4vw,3.5rem);animation-duration:11s;animation-delay:-7s;}
.bill-security-window{right:12%;top:11%;width:clamp(76px,15vw,180px);height:clamp(116px,21vw,255px);border-radius:999px;background:linear-gradient(145deg,rgba(255,255,255,.12),rgba(255,255,255,.54),rgba(255,255,255,.08));border:2px solid color-mix(in srgb,var(--bill-primary) 42%,white 58%);box-shadow: inset 0 0 28px rgba(255,255,255,.5), 0 0 45px var(--bill-glow);animation: billWindow 8s ease-in-out infinite alternate;}
.bill-security-window::before{content:'';position:absolute;inset:13%;border-radius:999px;border:1px dashed color-mix(in srgb,var(--bill-deep) 38%,transparent 62%);}
.bill-rosette{left:10%;top:12%;width:clamp(84px,17vw,215px);height:clamp(84px,17vw,215px);border-radius:50%;background:repeating-conic-gradient(from 0deg, color-mix(in srgb,var(--bill-primary) 38%,transparent 62%) 0 8deg, transparent 8deg 16deg);filter:blur(.15px);opacity:.42;animation: billSpin 28s linear infinite;}
.bill-rosette.two{left:auto;right:28%;top:50%;width:clamp(60px,12vw,150px);height:clamp(60px,12vw,150px);animation-duration:36s;animation-direction:reverse;opacity:.34;}
.bill-mountain{left:0;right:0;bottom:-1px;height:42%;background:linear-gradient(135deg, transparent 0 18%, color-mix(in srgb,var(--bill-deep) 18%,transparent 82%) 18.5% 26%, transparent 26.5% 36%, color-mix(in srgb,var(--bill-deep) 22%,transparent 78%) 36.5% 47%, transparent 47.5% 58%, color-mix(in srgb,var(--bill-deep) 16%,transparent 84%) 58.5% 68%, transparent 68.5% 100%);opacity:.62;animation: billMountains 14s ease-in-out infinite alternate;}
.bill-lines{left:-10%;right:-10%;bottom:8%;height:28%;background:repeating-linear-gradient(178deg, color-mix(in srgb,var(--bill-primary) 22%,transparent 78%) 0 2px, transparent 2px 16px);mask-image:linear-gradient(90deg,transparent,black 18%,black 82%,transparent);animation: billLines 8s linear infinite;opacity:.55;}
.bill-sparkles{inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.78) 0 1px,transparent 2px),radial-gradient(circle,color-mix(in srgb,var(--bill-primary) 62%,white 38%) 0 1.2px,transparent 2.4px);background-size:58px 58px,91px 91px;background-position:0 0,22px 31px;animation: billSparkles 12s linear infinite;opacity:.6;}
.money-hero::before{content:'';position:absolute;inset:-35% -15%;z-index:0;background:radial-gradient(circle at 18% 28%,rgba(255,255,255,.72),transparent 14rem),radial-gradient(circle at 78% 12%,var(--bill-glow),transparent 16rem),radial-gradient(circle at 50% 90%,color-mix(in srgb,var(--bill-primary) 24%,transparent 76%),transparent 18rem);filter:blur(2px);animation: billBreath 10s ease-in-out infinite alternate;}
.money-hero::after{content:'';position:absolute;inset:auto 0 0 0;height:70px;z-index:2;background:linear-gradient(180deg,transparent,rgba(255,255,255,.55));pointer-events:none;}
@keyframes billAurora{0%{transform:translateX(-5%) translateY(0) rotate(-7deg) scale(1)}100%{transform:translateX(18%) translateY(12%) rotate(5deg) scale(1.08)}}
@keyframes billLeaf{0%,100%{transform:translate3d(0,0,0) rotate(-8deg);opacity:.52}50%{transform:translate3d(24px,-24px,0) rotate(14deg);opacity:.82}}
@keyframes billWindow{0%{transform:translateY(-6px) scale(.98);opacity:.68}100%{transform:translateY(8px) scale(1.03);opacity:.95}}
@keyframes billSpin{to{transform:rotate(360deg)}}
@keyframes billMountains{0%{transform:translateX(-2%) scale(1.02)}100%{transform:translateX(2%) scale(1.06)}}
@keyframes billLines{to{background-position:120px 0}}
@keyframes billSparkles{to{background-position:58px 58px,113px 122px}}
@keyframes billBreath{0%{transform:scale(1);opacity:.74}100%{transform:scale(1.04);opacity:1}}
@media (prefers-reduced-motion: reduce){
  .canadian-money-animation span,.money-hero::before{animation:none !important;}
}
@media (max-width: 700px){
  .money-hero,.animated-page-hero.money-hero,.page-hero.money-hero,.map-hero.money-hero,.tt-hero-band.money-hero{min-height:190px !important;}
  .bill-security-window{right:2%;opacity:.55;}
  .bill-rosette{left:-8%;}
  .bill-maple.two{right:1%;}
}


/* =========================================================
   Cachefix 12 — seamless Canadian money hero backgrounds,
   mobile performance safety, Who's Who photo refinement,
   and sports/media section polish.
   ========================================================= */
.money-hero-wrap.money-theme-5{--bill-primary:#0072CE;--bill-secondary:#8FD0FF;--bill-deep:#073B6B;--bill-soft:#DDF2FF;--bill-glow:rgba(143,208,255,.75);}
.money-hero-wrap.money-theme-10{--bill-primary:#6F2C91;--bill-secondary:#CDA8F0;--bill-deep:#3D155F;--bill-soft:#F1E4FF;--bill-glow:rgba(205,168,240,.72);}
.money-hero-wrap.money-theme-20{--bill-primary:#00843D;--bill-secondary:#C4E8B3;--bill-deep:#062F23;--bill-soft:#E8F8E2;--bill-glow:rgba(196,232,179,.76);}
.money-hero-wrap.money-theme-50{--bill-primary:#C8102E;--bill-secondary:#FFB3BA;--bill-deep:#641018;--bill-soft:#FFE4E7;--bill-glow:rgba(255,179,186,.70);}
.money-hero-wrap.money-theme-100{--bill-primary:#6B4A2B;--bill-secondary:#D6B27C;--bill-deep:#3E2A18;--bill-soft:#F7E9D0;--bill-glow:rgba(214,178,124,.70);}
.money-hero,
.animated-page-hero.money-hero,
.page-hero.money-hero,
.map-hero.money-hero,
.tt-hero-band.money-hero{
  background:
    radial-gradient(circle at 12% 22%, color-mix(in srgb, var(--bill-secondary) 55%, white 45%) 0 .35rem, transparent .7rem),
    radial-gradient(circle at 88% 18%, color-mix(in srgb, var(--bill-primary) 42%, white 58%) 0 .42rem, transparent .85rem),
    linear-gradient(135deg,
      color-mix(in srgb, var(--bill-soft) 82%, white 18%) 0%,
      color-mix(in srgb, var(--bill-secondary) 62%, white 38%) 44%,
      color-mix(in srgb, var(--bill-primary) 34%, white 66%) 100%) !important;
}
.hero-full-wrap.money-hero-wrap,
.animated-hero-wrap.money-hero-wrap,
.money-hero-wrap{
  background:
    linear-gradient(135deg,
      color-mix(in srgb, var(--bill-soft, #E8F8E2) 82%, white 18%) 0%,
      color-mix(in srgb, var(--bill-secondary, #C4E8B3) 62%, white 38%) 44%,
      color-mix(in srgb, var(--bill-primary, #00843D) 34%, white 66%) 100%) !important;
  box-shadow: inset 0 -18px 30px color-mix(in srgb, var(--bill-primary, #00843D) 10%, transparent 90%);
}
.money-hero::after{
  background:linear-gradient(180deg, transparent 0%, color-mix(in srgb, var(--bill-soft, #E8F8E2) 72%, white 28%) 100%) !important;
}

/* Smaller, cleaner Who's Who portraits — closer to media tiles */
.ww-cat-row{gap:.9rem !important;}
.ww-tile{border-radius:16px !important;overflow:hidden !important;}
.ww-tile-photo{
  aspect-ratio: 1 / 1 !important;
  min-height: 0 !important;
  height: clamp(118px, 14vw, 168px) !important;
  margin: .75rem .75rem 0 !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  box-shadow: 0 8px 22px rgba(0,0,0,.14);
}
.ww-tile-photo img{
  object-fit: cover !important;
  object-position: center 24% !important;
  transform: scale(1.01);
}
.ww-tile:hover .ww-tile-photo img{
  transform: scale(1.10) rotate(.4deg) !important;
  filter: saturate(1.08) contrast(1.05);
}
.ww-tile-cat-badge{bottom:8px !important;right:8px !important;}
.ww-card-photo-wrap{border-radius:14px !important;width:58px !important;height:58px !important;}

.media-section-wrap{content-visibility:auto;contain-intrinsic-size: 900px;}
.media-tiles-grid{grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)) !important;}
.media-tile{min-height: 210px;}
.sports-league-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem;margin-top:1.25rem;}
.sports-league-card{background:#fff;border:1px solid rgba(6,47,35,.12);border-radius:18px;padding:1rem;box-shadow:0 6px 22px rgba(0,0,0,.07);transition:transform .18s ease,box-shadow .18s ease;}
.sports-league-card:hover{transform:translateY(-4px);box-shadow:0 14px 34px rgba(0,0,0,.13);}
.sports-league-card h3{font-family:var(--font-display,'Playfair Display',serif);font-size:1.05rem;margin:0 0 .45rem;color:#062F23;}
.sports-league-card p{font-size:.88rem;line-height:1.55;margin:.25rem 0;color:#333;}
.sports-league-card ul{margin:.6rem 0 0;padding-left:1.1rem;font-size:.84rem;line-height:1.55;}
.sports-league-badge{display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:var(--site-money-accent-soft,#E8F8E2);color:#062F23;border-radius:999px;padding:.18rem .55rem;margin-bottom:.45rem;}

@media (max-width: 760px){
  .money-hero,.animated-page-hero.money-hero,.page-hero.money-hero,.map-hero.money-hero,.tt-hero-band.money-hero{min-height:156px !important;height:156px !important;}
  .canadian-money-animation{opacity:.58;contain:layout paint;}
  .bill-rosette,.bill-rosette.two,.bill-lines,.bill-sparkles{display:none !important;}
  .bill-aurora{filter:blur(7px) saturate(1.15) !important;animation-duration:18s !important;}
  .bill-aurora.two{display:none !important;}
  .bill-maple{animation:none !important;opacity:.38 !important;}
  .bill-security-window{opacity:.28 !important;transform:scale(.72);}
  .money-hero::before{animation:none !important;filter:blur(1px);}
  .media-tile{min-height:185px;}
  .media-tiles-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:.75rem !important;}
  .ww-tile-photo{height:118px !important;margin:.55rem .55rem 0 !important;border-radius:14px !important;}
}


/* =========================================================
   Cachefix 13 — seamless money hero edges, money-colour site
   backgrounds, Plan Your Visit styling, and Eat & Drink UX.
   ========================================================= */
html{background:var(--money-soft-green,#E8F8E2);} 
body{
  background:
    radial-gradient(circle at 8% 7%, rgba(0,114,206,.10), transparent 24rem),
    radial-gradient(circle at 92% 12%, rgba(111,44,145,.10), transparent 23rem),
    radial-gradient(circle at 15% 48%, rgba(0,132,61,.11), transparent 28rem),
    radial-gradient(circle at 88% 68%, rgba(200,16,46,.08), transparent 27rem),
    radial-gradient(circle at 50% 100%, rgba(107,74,43,.10), transparent 28rem),
    linear-gradient(180deg,#fbfff8 0%,#ffffff 38%,#f8fbf2 100%) !important;
}
main, article, .content-section, .city-section, .culture-section, .page-section, .feature-section{
  background-color: color-mix(in srgb, #ffffff 86%, var(--site-money-accent-soft,#E8F8E2) 14%);
}
.city-section:nth-of-type(even), .culture-section:nth-of-type(even), .page-section:nth-of-type(even){
  background:
    radial-gradient(circle at 100% 0%, color-mix(in srgb, var(--site-money-accent-light,#C4E8B3) 18%, transparent 82%), transparent 18rem),
    color-mix(in srgb, #ffffff 82%, var(--site-money-accent-soft,#E8F8E2) 18%);
}

/* Hero background must use the same bill colour as the animation, with no hard side borders. */
.hero-full-wrap.money-hero-wrap,
.animated-hero-wrap.money-hero-wrap,
.money-hero-wrap{
  background:
    radial-gradient(ellipse 130% 100% at 50% 50%, color-mix(in srgb,var(--bill-secondary,#C4E8B3) 58%,white 42%) 0%, color-mix(in srgb,var(--bill-soft,#E8F8E2) 72%,white 28%) 52%, color-mix(in srgb,var(--bill-primary,#00843D) 26%,white 74%) 100%) !important;
  box-shadow:none !important;
  border-left:0 !important;
  border-right:0 !important;
  overflow:hidden !important;
}
.money-hero,
.animated-page-hero.money-hero,
.page-hero.money-hero,
.map-hero.money-hero,
.tt-hero-band.money-hero{
  background:
    radial-gradient(circle at 15% 25%, color-mix(in srgb,var(--bill-secondary) 58%,white 42%) 0 .5rem, transparent .95rem),
    radial-gradient(circle at 88% 22%, color-mix(in srgb,var(--bill-primary) 42%,white 58%) 0 .45rem, transparent .9rem),
    radial-gradient(ellipse 110% 118% at 50% 50%, color-mix(in srgb,var(--bill-soft) 74%,white 26%) 0%, color-mix(in srgb,var(--bill-secondary) 58%,white 42%) 52%, color-mix(in srgb,var(--bill-primary) 28%,white 72%) 100%) !important;
  border-left:0 !important;
  border-right:0 !important;
  border-bottom:0 !important;
  box-shadow:none !important;
}
.canadian-money-animation{
  inset:-22% -20% !important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 12%,#000 88%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 12%,#000 88%,transparent 100%);
}
.money-hero::after{
  inset:0 !important;
  height:auto !important;
  background:
    linear-gradient(90deg, color-mix(in srgb,var(--bill-secondary) 38%,transparent 62%) 0%, transparent 14%, transparent 86%, color-mix(in srgb,var(--bill-secondary) 38%,transparent 62%) 100%),
    linear-gradient(180deg, color-mix(in srgb,var(--bill-soft) 54%,transparent 46%) 0%, transparent 22%, transparent 72%, color-mix(in srgb,var(--bill-soft) 66%,transparent 34%) 100%) !important;
  pointer-events:none !important;
  z-index:2 !important;
}
.hero-underbar{background:transparent !important;border:0 !important;height:0 !important;min-height:0 !important;padding:0 !important;}

/* Plan Your Visit page — align typography and interface with bank-note colours. */
.travel-money-page .pyv-panel,
.travel-money-page .pyv-card,
.travel-money-page .pyv-builder,
.travel-money-page .tip-card,
.travel-money-page .resource-card{
  border-radius:20px !important;
  border:1px solid color-mix(in srgb,var(--money-20-green) 18%,white 82%) !important;
  box-shadow:0 12px 34px rgba(0,132,61,.10) !important;
}
.travel-money-page h1,
.travel-money-page h2,
.travel-money-page h3{letter-spacing:-.02em;}
.travel-money-page h2{color:#073B6B !important;}
.travel-money-page .pyv-go,
.travel-money-page .hero-cta,
.travel-money-page .cta-button{
  background:linear-gradient(135deg,var(--money-5-blue),var(--money-20-green)) !important;
  color:#fff !important;
  border:0 !important;
  box-shadow:0 14px 30px rgba(0,114,206,.18) !important;
}
.travel-money-page .pyv-go:hover,
.travel-money-page .hero-cta:hover,
.travel-money-page .cta-button:hover{transform:translateY(-2px);filter:saturate(1.12) brightness(1.04);}
.travel-money-page input,
.travel-money-page select,
.travel-money-page textarea{
  border-color:color-mix(in srgb,var(--money-10-purple) 22%,white 78%) !important;
  background:#fff !important;
}
.travel-money-page .mini-label,
.travel-money-page .eyebrow,
.travel-money-page .kicker{color:var(--money-50-red) !important;}

/* Eat & Drink page — smaller tiles, more photos, printable recipe UI. */
.eat-drink-money-page .hero-tagline{max-width:760px;}
.eat-drink-money-page .region-grid,
.eat-drink-money-page .province-table-grid,
.eat-drink-money-page .pairing-grid,
.eat-drink-money-page .restaurant-grid{
  grid-template-columns:repeat(auto-fill,minmax(210px,1fr)) !important;
  gap:.85rem !important;
}
.eat-drink-money-page .region-card,
.eat-drink-money-page .province-flavour-card,
.eat-drink-money-page .pairing-card,
.eat-drink-money-page .restaurant-card{
  border-radius:16px !important;
  padding:.92rem !important;
  border-top:0 !important;
  border-color:color-mix(in srgb,var(--money-20-green) 20%,white 80%) !important;
  box-shadow:0 8px 24px rgba(0,0,0,.07) !important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
  overflow:hidden !important;
}
.eat-drink-money-page .region-card:hover,
.eat-drink-money-page .province-flavour-card:hover,
.eat-drink-money-page .pairing-card:hover,
.eat-drink-money-page .restaurant-card:hover{
  transform:translateY(-4px);
  box-shadow:0 16px 38px rgba(0,132,61,.14) !important;
  border-color:color-mix(in srgb,var(--money-20-green) 38%,white 62%) !important;
}
.eat-drink-money-page .region-card::before,
.eat-drink-money-page .province-flavour-card::before,
.eat-drink-money-page .pairing-card::before{
  content:"";
  display:block;
  height:92px;
  margin:-.92rem -.92rem .78rem;
  background-size:cover;
  background-position:center;
  background-image:linear-gradient(135deg,rgba(0,132,61,.32),rgba(0,114,206,.22)),url('images/Canada/Hero/whale-tail.png');
}
.eat-drink-money-page .region-card:nth-child(1)::before{background-image:linear-gradient(135deg,rgba(0,114,206,.24),rgba(255,255,255,.10)),url('images/Nova-Scotia/1.png');}
.eat-drink-money-page .region-card:nth-child(2)::before{background-image:linear-gradient(135deg,rgba(111,44,145,.25),rgba(255,255,255,.10)),url('images/Quebec/1.png');}
.eat-drink-money-page .region-card:nth-child(3)::before{background-image:linear-gradient(135deg,rgba(0,132,61,.22),rgba(255,255,255,.10)),url('images/Ontario/toronto.png');}
.eat-drink-money-page .region-card:nth-child(4)::before{background-image:linear-gradient(135deg,rgba(107,74,43,.25),rgba(255,255,255,.10)),url('images/Saskatchewan/wheat.png');}
.eat-drink-money-page .region-card:nth-child(5)::before{background-image:linear-gradient(135deg,rgba(0,114,206,.22),rgba(255,255,255,.10)),url('images/BC/Mountain1.png');}
.eat-drink-money-page .region-card:nth-child(6)::before{background-image:linear-gradient(135deg,rgba(0,114,206,.22),rgba(255,255,255,.10)),url('images/Yukon/1.png');}
.eat-drink-money-page .province-flavour-card:nth-child(5n+1)::before{background-image:linear-gradient(135deg,rgba(0,114,206,.25),rgba(255,255,255,.10)),url('images/BC/1.png');}
.eat-drink-money-page .province-flavour-card:nth-child(5n+2)::before{background-image:linear-gradient(135deg,rgba(0,132,61,.22),rgba(255,255,255,.10)),url('images/Alberta/1.png');}
.eat-drink-money-page .province-flavour-card:nth-child(5n+3)::before{background-image:linear-gradient(135deg,rgba(111,44,145,.20),rgba(255,255,255,.10)),url('images/Manitoba/Forks.png');}
.eat-drink-money-page .province-flavour-card:nth-child(5n+4)::before{background-image:linear-gradient(135deg,rgba(200,16,46,.19),rgba(255,255,255,.10)),url('images/Newfoundland/1.png');}
.eat-drink-money-page .province-flavour-card:nth-child(5n+5)::before{background-image:linear-gradient(135deg,rgba(107,74,43,.20),rgba(255,255,255,.10)),url('images/Nunavut/1.png');}
.eat-drink-money-page .restaurant-rank{font-size:.72rem !important;padding:.42rem .78rem !important;}
.eat-drink-money-page .restaurant-body{padding:.78rem .86rem !important;}
.eat-drink-money-page .restaurant-body h3{font-size:1rem !important;margin:.05rem 0 .22rem !important;}
.eat-drink-money-page .restaurant-body p{font-size:.82rem !important;line-height:1.48 !important;}
.eat-drink-money-page .restaurant-card a.card-link{font-size:.8rem !important;margin:0 .86rem .82rem !important;}
.food-recipes-section{background:linear-gradient(135deg,#fff,var(--money-soft-green)) !important;}
.recipe-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.85rem;margin-top:1.2rem;}
.recipe-card{background:#fff;border:1px solid color-mix(in srgb,var(--money-20-green) 18%,white 82%);border-radius:18px;overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.07);transition:transform .18s ease,box-shadow .18s ease;}
.recipe-card:hover{transform:translateY(-4px);box-shadow:0 16px 38px rgba(0,132,61,.14);}
.recipe-photo{height:96px;background-size:cover;background-position:center;background-image:linear-gradient(135deg,rgba(0,132,61,.22),rgba(0,114,206,.18)),url('images/Canada/Hero/1.png');}
.recipe-card:nth-child(5n+1) .recipe-photo{background-image:linear-gradient(135deg,rgba(0,114,206,.22),rgba(255,255,255,.10)),url('images/Nova-Scotia/2.png');}
.recipe-card:nth-child(5n+2) .recipe-photo{background-image:linear-gradient(135deg,rgba(111,44,145,.20),rgba(255,255,255,.10)),url('images/Quebec/2.png');}
.recipe-card:nth-child(5n+3) .recipe-photo{background-image:linear-gradient(135deg,rgba(0,132,61,.20),rgba(255,255,255,.10)),url('images/Ontario/water.png');}
.recipe-card:nth-child(5n+4) .recipe-photo{background-image:linear-gradient(135deg,rgba(107,74,43,.20),rgba(255,255,255,.10)),url('images/Manitoba/Nature.png');}
.recipe-card:nth-child(5n+5) .recipe-photo{background-image:linear-gradient(135deg,rgba(200,16,46,.16),rgba(255,255,255,.10)),url('images/PEI/1.png');}
.recipe-body{padding:.88rem;}
.recipe-body h3{font-size:1rem;margin:.18rem 0 .45rem;color:#062F23;}
.recipe-body p{font-size:.82rem;line-height:1.5;margin:.42rem 0;color:#333;}
.recipe-print-btn{margin-top:.55rem;border:0;border-radius:999px;padding:.48rem .78rem;font-weight:800;font-size:.78rem;cursor:pointer;color:#fff;background:linear-gradient(135deg,var(--money-5-blue),var(--money-20-green));box-shadow:0 10px 22px rgba(0,114,206,.14);}
.recipe-print-btn:hover{filter:saturate(1.12) brightness(1.04);transform:translateY(-1px);}
@media(max-width:760px){
  .eat-drink-money-page .region-grid,.eat-drink-money-page .province-table-grid,.eat-drink-money-page .pairing-grid,.eat-drink-money-page .restaurant-grid,.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:.68rem !important;}
  .eat-drink-money-page .region-card,.eat-drink-money-page .province-flavour-card,.eat-drink-money-page .pairing-card,.eat-drink-money-page .restaurant-card,.recipe-card{border-radius:14px !important;}
  .eat-drink-money-page .region-card::before,.eat-drink-money-page .province-flavour-card::before,.eat-drink-money-page .pairing-card::before,.recipe-photo{height:72px;}
  .recipe-body,.eat-drink-money-page .region-card,.eat-drink-money-page .province-flavour-card,.eat-drink-money-page .pairing-card{padding:.72rem !important;}
}
@media(max-width:480px){
  .eat-drink-money-page .region-grid,.eat-drink-money-page .province-table-grid,.eat-drink-money-page .pairing-grid,.eat-drink-money-page .restaurant-grid,.recipe-grid{grid-template-columns:1fr !important;}
}


/* =========================================================
   Cachefix 14 — Canada page UX cleanup + equal nav spacing
   ========================================================= */
:root{ --nav-h: 84px; }
.site-header{overflow:visible !important;}
.header-container,
.header-inner{
  min-height:84px !important;
  display:grid !important;
  grid-template-columns:minmax(205px,250px) minmax(0,1fr) !important;
  align-items:center !important;
  gap:clamp(.45rem,1vw,.9rem) !important;
}
.site-logo{
  width:100% !important;
  min-width:0 !important;
  max-width:250px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
}
.logo-copy{display:flex !important;flex-direction:column !important;line-height:1 !important;}
.logo-main{font-size:clamp(1.22rem,1.65vw,1.55rem) !important;line-height:1 !important;}
.logo-tagline{font-size:clamp(.54rem,.68vw,.66rem) !important;line-height:1.15 !important;white-space:normal !important;max-width:185px !important;color:rgba(255,255,255,.78) !important;}
.main-nav{width:100% !important;min-width:0 !important;display:flex !important;align-items:center !important;}
.main-nav > ul{
  width:100% !important;
  display:flex !important;
  flex-wrap:nowrap !important;
  justify-content:stretch !important;
  align-items:stretch !important;
  gap:.16rem !important;
}
.main-nav > ul > li{
  flex:1 1 0 !important;
  min-width:0 !important;
  display:flex !important;
  align-items:stretch !important;
  justify-content:center !important;
}
.main-nav > ul > li.has-dropdown{position:relative !important;}
.main-nav > ul > li > a,
.main-nav .dropdown-toggle{
  width:100% !important;
  min-width:0 !important;
  min-height:48px !important;
  padding:.38rem .34rem !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  line-height:1.08 !important;
  font-size:clamp(.56rem,.66vw,.72rem) !important;
  font-weight:800 !important;
  letter-spacing:.01em !important;
  white-space:normal !important;
  border-radius:11px !important;
}
.main-nav .dropdown-toggle{gap:.18rem !important;}
.main-nav .dropdown-toggle svg{flex:0 0 auto !important;width:10px !important;}
.main-nav > ul > li + li::before{display:none !important;}
.main-nav .dropdown{min-width:230px !important;width:max-content !important;max-width:280px !important;}
.main-nav .dropdown li{display:block !important;width:100% !important;}
.main-nav .dropdown a{font-size:.84rem !important;text-align:left !important;justify-content:flex-start !important;min-height:0 !important;width:100% !important;padding:.72rem .88rem !important;}
@media (max-width:1100px) and (min-width:861px){
  .header-container,.header-inner{grid-template-columns:minmax(178px,205px) minmax(0,1fr) !important;padding-left:.75rem !important;padding-right:.75rem !important;}
  .site-logo{max-width:205px !important;gap:.34rem !important;}
  .logo-main{font-size:1.22rem !important;}
  .logo-tagline{font-size:.50rem !important;max-width:150px !important;}
  .main-nav > ul{gap:.08rem !important;}
  .main-nav > ul > li > a,.main-nav .dropdown-toggle{font-size:.54rem !important;padding-left:.22rem !important;padding-right:.22rem !important;}
}
@media (max-width:860px){
  :root{--nav-h:72px;}
  .header-container,.header-inner{display:flex !important;min-height:72px !important;}
  .site-logo{max-width:calc(100vw - 98px) !important;}
  .logo-tagline{max-width:220px !important;}
  .main-nav{display:block !important;width:auto !important;}
  .main-nav > ul{display:block !important;width:100% !important;}
  .main-nav > ul > li{display:block !important;width:100% !important;}
  .main-nav > ul > li > a,.main-nav .dropdown-toggle{font-size:1rem !important;justify-content:space-between !important;text-align:left !important;min-height:0 !important;padding:.8rem 1rem !important;border-radius:0 !important;}
}

/* Canada page: more engaging layout, less cluttered jump menu, no core content removed. */
.canada-refresh-page .page-jump-nav.canada-page-jump ul{gap:.38rem !important;justify-content:center !important;}
.canada-refresh-page .page-jump-nav.canada-page-jump a{border-radius:999px !important;background:rgba(255,255,255,.88) !important;border:1px solid color-mix(in srgb,var(--site-money-accent,#00843D) 20%,white 80%) !important;color:#073B2C !important;box-shadow:0 6px 16px rgba(0,0,0,.05) !important;}
.canada-refresh-page .page-jump-nav.canada-page-jump a:hover,
.canada-refresh-page .page-jump-nav.canada-page-jump a.active{background:linear-gradient(135deg,var(--money-20-green,#00843D),var(--money-5-blue,#0072CE)) !important;color:#fff !important;}
.canada-main-refresh{background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(248,255,246,.96)) !important;}
.canada-article-refresh{max-width:1180px;margin:0 auto;padding:0 1rem;}
.canada-refresh-page section[id]{border-radius:24px;margin:1.15rem auto;padding:clamp(1.2rem,2.4vw,2.1rem);box-shadow:0 8px 28px rgba(0,0,0,.055);border:1px solid color-mix(in srgb,var(--site-money-accent-light,#C4E8B3) 32%,white 68%);}
.canada-refresh-page section[id]:nth-of-type(odd){background:linear-gradient(135deg,#fff 0%,color-mix(in srgb,var(--site-money-accent-soft,#E8F8E2) 44%,white 56%) 100%) !important;}
.canada-refresh-page section[id]:nth-of-type(even){background:linear-gradient(135deg,color-mix(in srgb,var(--money-soft-blue,#E6F1FB) 45%,white 55%) 0%,#fff 100%) !important;}
.canada-refresh-page h1,.canada-refresh-page h2{letter-spacing:-.025em;}
.canada-refresh-page h2{display:flex;align-items:center;gap:.55rem;color:#062F23 !important;}
.canada-refresh-page h2::before{content:"";width:.65rem;height:.65rem;border-radius:999px;background:linear-gradient(135deg,var(--money-5-blue,#0072CE),var(--money-20-green,#00843D));box-shadow:0 0 0 .32rem color-mix(in srgb,var(--site-money-accent-soft,#E8F8E2) 75%,transparent 25%);flex:0 0 auto;}
.canada-experience-panel{display:grid;grid-template-columns:minmax(240px,.85fr) 1.6fr;gap:1rem;align-items:stretch;margin:1rem 0 1.3rem;padding:1rem;border-radius:22px;background:linear-gradient(135deg,rgba(0,114,206,.10),rgba(0,132,61,.11),rgba(111,44,145,.08));border:1px solid rgba(0,132,61,.14);box-shadow:0 12px 32px rgba(0,0,0,.06);}
.canada-experience-copy{padding:.9rem 1rem;border-radius:18px;background:rgba(255,255,255,.82);}
.canada-experience-kicker{display:inline-block;font-family:var(--font-sans);font-weight:900;letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;color:var(--money-50-red,#C8102E);margin-bottom:.45rem;}
.canada-experience-copy p{font-size:.98rem;line-height:1.65;color:#25352d;}
.canada-experience-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.7rem;}
.canada-action-card{display:flex;flex-direction:column;gap:.24rem;text-decoration:none;color:#062F23;background:#fff;border:1px solid rgba(0,132,61,.14);border-radius:18px;padding:.88rem;box-shadow:0 8px 20px rgba(0,0,0,.06);transition:transform .18s ease,box-shadow .18s ease,background .18s ease;}
.canada-action-card span{font-family:var(--font-sans);font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;font-weight:900;color:var(--money-10-purple,#6F2C91);}
.canada-action-card strong{font-family:var(--font-display);font-size:1rem;line-height:1.15;}
.canada-action-card em{font-style:normal;font-size:.78rem;line-height:1.35;color:#4b4b4b;}
.canada-action-card:hover{transform:translateY(-4px);box-shadow:0 16px 34px rgba(0,132,61,.16);background:linear-gradient(135deg,#fff,color-mix(in srgb,var(--site-money-accent-soft,#E8F8E2) 62%,white 38%));}
.canada-refresh-page .country-infobox{border-radius:22px !important;box-shadow:0 14px 38px rgba(0,0,0,.10) !important;border:1px solid color-mix(in srgb,var(--money-20-green,#00843D) 28%,white 72%) !important;overflow:hidden !important;}
.canada-refresh-page .fact-box{border-radius:18px !important;border-left:0 !important;background:linear-gradient(135deg,var(--money-soft-purple,#F0E7F6),#fff) !important;box-shadow:0 8px 22px rgba(0,0,0,.06) !important;}
@media(max-width:960px){.canada-experience-panel{grid-template-columns:1fr;}.canada-experience-actions{grid-template-columns:repeat(2,minmax(0,1fr));}.canada-refresh-page section[id]{padding:1rem;border-radius:18px;}}
@media(max-width:520px){.canada-experience-actions{grid-template-columns:1fr;}.canada-article-refresh{padding:0 .65rem;}}


/* cachefix-15: stable dropdown, balanced nav, homepage pitch, richer students/teachers page */
@media (min-width:861px){
  .main-nav > ul > li.has-dropdown::after{
    content:""; position:absolute; left:0; right:0; top:100%; height:18px; display:block; z-index:1999;
  }
  .main-nav .dropdown{
    top:100% !important; margin-top:0 !important; transform:translateY(0) !important;
    transition:opacity .18s ease, visibility .18s ease !important;
  }
  .main-nav > ul > li.has-dropdown:hover > .dropdown,
  .main-nav > ul > li.has-dropdown:focus-within > .dropdown,
  .main-nav > ul > li.has-dropdown.submenu-open > .dropdown{
    display:block !important; visibility:visible !important; opacity:1 !important; pointer-events:auto !important;
  }
}
.main-nav > ul{align-items:stretch !important;}
.main-nav > ul > li{flex:1 1 0 !important;}
.main-nav > ul > li > a,
.main-nav .dropdown-toggle{height:100% !important; min-height:50px !important;}
.main-nav .dropdown a{height:auto !important; min-height:0 !important;}
@media (min-width:861px){
  .main-nav > ul > li > a,.main-nav .dropdown-toggle{font-size:clamp(.55rem,.68vw,.74rem) !important;}
}
.lp-intro-prose{
  background:linear-gradient(135deg,var(--money-20-green,#00843D) 0%, color-mix(in srgb,var(--money-20-green,#00843D) 68%, #062F23 32%) 55%, var(--money-5-blue,#0072CE) 100%) !important;
  padding:clamp(1.1rem,2vw,1.7rem) 1.25rem !important;
}
.lp-intro-prose::before{
  background:radial-gradient(circle at 12% 10%, rgba(255,255,255,.22), transparent 22rem), radial-gradient(circle at 88% 20%, rgba(250,215,70,.20), transparent 24rem) !important;
}
.lp-intro-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;width:100%;max-width:1040px;margin-top:.35rem;}
.lp-intro-feature{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);border-radius:16px;padding:.8rem .9rem;color:#fff;font-family:var(--font-sans);text-align:left;box-shadow:0 12px 26px rgba(0,0,0,.10);}
.lp-intro-feature strong{display:block;font-size:.9rem;margin-bottom:.2rem;color:#fff;}
.lp-intro-feature span{font-size:.78rem;line-height:1.45;color:rgba(255,255,255,.82);}
.students-teachers-upgrade{background:linear-gradient(135deg,color-mix(in srgb,var(--money-soft-green,#E3F3E6) 64%, white 36%),#fff);border:1px solid color-mix(in srgb,var(--site-money-accent,#00843D) 25%, white 75%);border-radius:22px;padding:clamp(1.2rem,2.5vw,2rem);margin:1rem 0;box-shadow:0 10px 26px rgba(0,0,0,.06);}
.students-teachers-upgrade h2{margin-top:0;color:var(--money-20-green,#00843D);}
.st-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;margin-top:1rem;}
.st-card{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:16px;padding:1rem;box-shadow:0 4px 14px rgba(0,0,0,.05);}
.st-card h3{margin:.05rem 0 .35rem;color:var(--money-10-purple,#6F2DA8);font-size:1.02rem;}
.st-card p,.st-card li{font-size:.92rem;line-height:1.58;}
.st-card ul{margin:.45rem 0 0;padding-left:1.1rem;}
.st-pill-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;}
.st-pill{border-radius:999px;background:var(--money-soft-blue,#E6F1FB);border:1px solid rgba(0,0,0,.08);padding:.42rem .7rem;font-family:var(--font-sans);font-weight:800;font-size:.82rem;color:#073B2C;}


/* ==========================================================
   Cachefix 16 — media/Who’s Who/teacher UX refinements
   ========================================================== */
/* Media page: reduce tile height by about 25% and keep all tile families consistent. */
.media-page .yt-tile,
.media-page .movie-card,
.media-page .musician-tile,
.media-page .artist-tile,
body:has(#sports-teams) .yt-tile,
body:has(#sports-teams) .movie-card,
body:has(#sports-teams) .musician-tile,
body:has(#sports-teams) .artist-tile {
  aspect-ratio: 16 / 7.5 !important;
}
.media-page .movies-grid,
.media-page .musicians-list,
.media-page .artists-grid,
.media-page .yt-tiles,
body:has(#sports-teams) .movies-grid,
body:has(#sports-teams) .musicians-list,
body:has(#sports-teams) .artists-grid,
body:has(#sports-teams) .yt-tiles {
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)) !important;
  gap: .55rem !important;
}
.media-page .movie-card-overlay,
.media-page .musician-tile-body,
.media-page .artist-tile-inner,
.media-page .yt-tile-overlay,
body:has(#sports-teams) .movie-card-overlay,
body:has(#sports-teams) .musician-tile-body,
body:has(#sports-teams) .artist-tile-inner,
body:has(#sports-teams) .yt-tile-overlay { padding: .48rem .62rem .55rem !important; }
.media-page .movie-title,
.media-page .musician-tile-name,
.media-page .artist-tile-name,
.media-page .yt-tile-name,
body:has(#sports-teams) .movie-title,
body:has(#sports-teams) .musician-tile-name,
body:has(#sports-teams) .artist-tile-name,
body:has(#sports-teams) .yt-tile-name { font-size: .8rem !important; line-height: 1.12 !important; }
.media-page .movie-year,
.media-page .movie-meta,
.media-page .musician-tile-meta,
.media-page .artist-tile-meta,
.media-page .artist-tile-loc,
.media-page .yt-tile-channel,
body:has(#sports-teams) .movie-year,
body:has(#sports-teams) .movie-meta,
body:has(#sports-teams) .musician-tile-meta,
body:has(#sports-teams) .artist-tile-meta,
body:has(#sports-teams) .artist-tile-loc,
body:has(#sports-teams) .yt-tile-channel { font-size: .58rem !important; }
.media-page .museum-grid,
.media-page .ballet-grid,
.media-page .theatre-grid,
.media-page .comedy-grid,
body:has(#sports-teams) .museum-grid,
body:has(#sports-teams) .ballet-grid,
body:has(#sports-teams) .theatre-grid,
body:has(#sports-teams) .comedy-grid { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important; gap: .75rem !important; }
.media-page .museum-card,
.media-page .venue-card,
body:has(#sports-teams) .museum-card,
body:has(#sports-teams) .venue-card { padding: .82rem .9rem !important; gap: .28rem !important; border-radius: 10px !important; }
.media-page .museum-card-name,
.media-page .venue-card-name,
body:has(#sports-teams) .museum-card-name,
body:has(#sports-teams) .venue-card-name { font-size: .9rem !important; }
.media-page .museum-card-desc,
.media-page .venue-card-desc,
body:has(#sports-teams) .museum-card-desc,
body:has(#sports-teams) .venue-card-desc { font-size: .76rem !important; line-height: 1.45 !important; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
/* Make sports tiles match the compact media tile language. */
.sports-league-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)) !important; gap: .55rem !important; }
.sports-league-card { position: relative; min-height: 132px; padding: .72rem .76rem !important; border-radius: 10px !important; overflow: hidden; background: linear-gradient(140deg, var(--money-blue-deep,#12345a), var(--money-green-deep,#00543d)) !important; color: #fff !important; box-shadow: 0 3px 12px rgba(0,0,0,.18) !important; }
.sports-league-card::before { content:''; position:absolute; inset:0; background: radial-gradient(circle at 85% 0%, rgba(255,255,255,.22), transparent 45%), linear-gradient(180deg, transparent 15%, rgba(0,0,0,.25)); pointer-events:none; }
.sports-league-card:hover { transform: translateY(-4px) scale(1.02) !important; box-shadow: 0 12px 28px rgba(0,0,0,.32) !important; }
.sports-league-card > * { position: relative; z-index: 1; }
.sports-league-card h3 { color:#fff !important; font-size: .82rem !important; line-height:1.12 !important; margin: .15rem 0 .25rem !important; }
.sports-league-card p { color: rgba(255,255,255,.9) !important; font-size:.66rem !important; line-height:1.35 !important; margin:.15rem 0 !important; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.sports-league-card ul { color: rgba(255,255,255,.86) !important; font-size:.62rem !important; line-height:1.3 !important; margin:.35rem 0 0 !important; padding-left:.85rem !important; max-height: 3.9em; overflow:hidden; }
.sports-league-badge { background: rgba(255,255,255,.9) !important; color: var(--money-blue-deep,#12345a) !important; font-size:.55rem !important; padding:.12rem .42rem !important; }
/* Who’s Who: reduce tiles by about 20%, make photos rounded and interactive. */
.ww-cat-row, .ww-ind-row { grid-template-columns: repeat(auto-fill, minmax(128px, 1fr)) !important; gap: .58rem !important; }
.ww-grid { grid-template-columns: repeat(auto-fill, minmax(224px, 1fr)) !important; gap: .9rem !important; }
.ww-tile { border-radius: 10px !important; box-shadow: 0 2px 7px rgba(0,0,0,.08) !important; }
.ww-tile-photo { aspect-ratio: 4 / 4.2 !important; min-height: 150px !important; margin: .5rem .5rem 0 !important; border-radius: 10px !important; overflow: hidden !important; }
.ww-tile-photo img { object-fit: cover !important; object-position: center 22% !important; transition: transform .28s ease, filter .28s ease !important; }
.ww-tile:hover .ww-tile-photo img { transform: scale(1.08) !important; filter: brightness(1.05) contrast(1.02) !important; }
.ww-tile-content { padding: .52rem .58rem .62rem !important; }
.ww-tile-name { font-size: .78rem !important; }
.ww-tile-sub { font-size: .6rem !important; }
.ww-tile-bio { font-size: .64rem !important; line-height:1.42 !important; -webkit-line-clamp: 2 !important; }
.ww-tile-wiki { font-size: .61rem !important; margin-top:.32rem !important; }
.ww-tile-cat-badge { font-size:.5rem !important; padding:1px 6px !important; }
/* Students & Teachers: clickable cards and embedded Canada map */
.teacher-student-page .tool-card,
.teacher-student-page .activity-card,
.teacher-student-page .st-card,
.teacher-student-page .section-card { cursor: pointer; }
.teacher-student-page a.tool-card,
.teacher-student-page a.activity-card,
.teacher-student-page a.st-card,
.teacher-student-page a.section-card { color: inherit; text-decoration: none; display: block; }
.teacher-student-page a.tool-card:focus-visible,
.teacher-student-page a.activity-card:focus-visible,
.teacher-student-page a.st-card:focus-visible,
.teacher-student-page a.section-card:focus-visible { outline: 3px solid var(--site-money-accent,#7b2e83); outline-offset: 3px; }
.education-map-panel { background: linear-gradient(135deg, rgba(43,99,161,.12), rgba(32,127,86,.12)); border: 1px solid rgba(6,47,35,.14); border-radius: 20px; padding: clamp(1rem, 3vw, 1.5rem); margin: 1.25rem 0; }
.education-map-panel .canada-d3-map-loading { min-height: 260px; display:flex; align-items:center; justify-content:center; text-align:center; color: var(--ink-soft,#555); background:#fff; border-radius:14px; border:1px dashed rgba(6,47,35,.24); }
.education-map-panel svg { width: 100%; max-height: 520px; display:block; }
.education-map-panel .province-path { stroke: rgba(6,47,35,.55); stroke-width: 1; transition: transform .15s ease, filter .15s ease, opacity .15s ease; cursor:pointer; }
.education-map-panel .province-path:hover { filter: brightness(1.1) saturate(1.1); opacity:.92; }
.education-map-panel .province-label { font-family: var(--font-sans, Inter, sans-serif); font-size: 10px; fill:#062F23; pointer-events:none; font-weight:700; }
@media (max-width:720px){
  .media-page .yt-tile,.media-page .movie-card,.media-page .musician-tile,.media-page .artist-tile,body:has(#sports-teams) .yt-tile,body:has(#sports-teams) .movie-card,body:has(#sports-teams) .musician-tile,body:has(#sports-teams) .artist-tile { aspect-ratio: 16 / 9 !important; }
  .ww-cat-row,.ww-ind-row{grid-template-columns:repeat(2,1fr)!important;}
}


/* =========================================================
   Cachefix 17 — Treaty Territories scroll repair.
   Keeps the page scrollable even if a prior mobile drawer/body-lock
   style is cached or left behind, and stops the treaty jump strip from
   trapping the viewport on small screens.
   ========================================================= */
html:not(.nav-open),
html:not(.nav-open) body {
  overflow-y: auto !important;
  height: auto !important;
  max-height: none !important;
}
html:not(.nav-open) body:not([style*="position: fixed"]) {
  position: static !important;
}
body.treaty-territories-page {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  height: auto !important;
  min-height: 100vh !important;
  max-height: none !important;
  position: static !important;
  touch-action: pan-y !important;
  -webkit-overflow-scrolling: touch;
}
body.treaty-territories-page main,
body.treaty-territories-page article,
body.treaty-territories-page section,
body.treaty-territories-page .tt-section,
body.treaty-territories-page .tt-section-inner {
  overflow: visible !important;
  height: auto !important;
  max-height: none !important;
  content-visibility: visible !important;
  contain: none !important;
}
body.treaty-territories-page .tt-jump {
  position: relative !important;
  top: auto !important;
  z-index: 25 !important;
  max-height: none !important;
  overflow-x: auto !important;
  overflow-y: visible !important;
}
@media (max-width: 760px) {
  body.treaty-territories-page .tt-jump {
    position: relative !important;
    white-space: normal !important;
  }
  body.treaty-territories-page .tt-jump ul {
    display: flex !important;
    flex-wrap: wrap !important;
  }
  body.treaty-territories-page .tt-jump li a {
    padding: .58rem .72rem !important;
    font-size: .68rem !important;
  }
}


/* =========================================================
   Cachefix 18 — topic-specific Canadian bank-note hero system
   ========================================================= */
:root{
  --hero-money-blue:#0072CE;
  --hero-money-purple:#6F2C91;
  --hero-money-green:#00843D;
  --hero-money-red:#C8102E;
  --hero-money-brown:#6B4A2B;
}
.money-hero,
.animated-page-hero.money-hero,
.page-hero.money-hero,
.map-hero.money-hero,
.tt-hero-band.money-hero,
.lp-hero.money-hero{
  border-left:0 !important;
  border-right:0 !important;
  box-shadow:none !important;
  background-color:var(--bill-soft,#E8F8E2) !important;
  background:
    radial-gradient(circle at 16% 18%, color-mix(in srgb,var(--bill-secondary) 68%, white 32%) 0 .45rem, transparent 1.05rem),
    radial-gradient(circle at 86% 22%, color-mix(in srgb,var(--bill-primary) 44%, white 56%) 0 .5rem, transparent 1.05rem),
    linear-gradient(135deg,
      color-mix(in srgb,var(--bill-soft,#E8F8E2) 92%, white 8%) 0%,
      color-mix(in srgb,var(--bill-secondary,#C4E8B3) 73%, white 27%) 47%,
      color-mix(in srgb,var(--bill-primary,#00843D) 45%, white 55%) 100%) !important;
}
.hero-full-wrap.money-hero-wrap,
.animated-hero-wrap.money-hero-wrap,
.money-hero-wrap{
  background-color:var(--bill-soft,#E8F8E2) !important;
  background:
    linear-gradient(135deg,
      color-mix(in srgb,var(--bill-soft,#E8F8E2) 92%, white 8%) 0%,
      color-mix(in srgb,var(--bill-secondary,#C4E8B3) 73%, white 27%) 47%,
      color-mix(in srgb,var(--bill-primary,#00843D) 45%, white 55%) 100%) !important;
  border:0 !important;
  box-shadow:none !important;
}
.money-hero::after{
  inset:0 !important;
  height:auto !important;
  background:
    linear-gradient(90deg,
      color-mix(in srgb,var(--bill-soft,#E8F8E2) 95%, transparent 5%) 0%,
      color-mix(in srgb,var(--bill-soft,#E8F8E2) 48%, transparent 52%) 8%,
      transparent 20%, transparent 80%,
      color-mix(in srgb,var(--bill-soft,#E8F8E2) 48%, transparent 52%) 92%,
      color-mix(in srgb,var(--bill-soft,#E8F8E2) 95%, transparent 5%) 100%),
    linear-gradient(180deg,
      color-mix(in srgb,var(--bill-soft,#E8F8E2) 84%, transparent 16%) 0%,
      transparent 23%, transparent 72%,
      color-mix(in srgb,var(--bill-soft,#E8F8E2) 88%, transparent 12%) 100%) !important;
  z-index:2 !important;
}
.canadian-money-animation{
  inset:-30% -30% !important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 18%,#000 82%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0%,#000 18%,#000 82%,transparent 100%);
}
.canadian-money-animation::before,
.canadian-money-animation::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
}
.canadian-money-animation::before{
  background:radial-gradient(circle at var(--topic-x,52%) var(--topic-y,44%), var(--bill-glow) 0 0.25rem, transparent 14rem);
  opacity:.55;
  animation:topicGlow 8s ease-in-out infinite alternate;
}
.canadian-money-animation::after{
  content:var(--topic-symbol,"🍁");
  left:auto; right:8%; top:14%; width:auto; height:auto; inset:auto 8% auto auto;
  font-size:clamp(3rem,8vw,7.5rem);
  line-height:1;
  opacity:.18;
  color:var(--bill-primary);
  text-shadow:0 0 36px var(--bill-glow);
  transform:rotate(-8deg);
  animation:topicSymbol 10s ease-in-out infinite alternate;
}
@keyframes topicGlow{to{transform:translate3d(34px,-18px,0) scale(1.08);opacity:.75}}
@keyframes topicSymbol{to{transform:translate3d(-22px,18px,0) rotate(7deg) scale(1.05);opacity:.28}}

/* Topic-specific animation personalities used by nav pages. */
.hero-topic-home{--topic-symbol:"🍁";--topic-x:46%;--topic-y:38%;}
.hero-topic-home .bill-aurora{height:42%;filter:blur(12px) saturate(1.8);}
.hero-topic-home .bill-maple{animation-duration:8s;}

.hero-topic-canada{--topic-symbol:"⌖";--topic-x:50%;--topic-y:50%;}
.hero-topic-canada .bill-rosette{opacity:.56;animation-duration:18s;}
.hero-topic-canada .bill-lines{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--bill-primary) 26%,transparent 74%) 0 2px,transparent 2px 22px);}

.hero-topic-provinces{--topic-symbol:"▣";--topic-x:34%;--topic-y:44%;}
.hero-topic-provinces .bill-lines{height:46%;background-image:linear-gradient(90deg,color-mix(in srgb,var(--bill-primary) 22%,transparent 78%) 1px,transparent 1px),linear-gradient(color-mix(in srgb,var(--bill-primary) 22%,transparent 78%) 1px,transparent 1px);background-size:46px 46px;}
.hero-topic-provinces .bill-maple.three{left:42%;}

.hero-topic-cities{--topic-symbol:"▥";--topic-x:58%;--topic-y:52%;}
.hero-topic-cities .bill-mountain{height:52%;background:linear-gradient(90deg,transparent 0 7%,color-mix(in srgb,var(--bill-deep) 18%,transparent 82%) 7% 12%,transparent 12% 18%,color-mix(in srgb,var(--bill-deep) 24%,transparent 76%) 18% 25%,transparent 25% 36%,color-mix(in srgb,var(--bill-deep) 18%,transparent 82%) 36% 42%,transparent 42% 52%,color-mix(in srgb,var(--bill-deep) 22%,transparent 78%) 52% 58%,transparent 58% 100%);}
.hero-topic-cities .bill-sparkles{background-size:30px 30px,52px 52px;}

.hero-topic-regions{--topic-symbol:"◒";--topic-x:44%;--topic-y:64%;}
.hero-topic-regions .bill-mountain{height:58%;opacity:.75;}
.hero-topic-regions .bill-aurora.two{top:42%;}

.hero-topic-treaty{--topic-symbol:"✦";--topic-x:30%;--topic-y:35%;}
.hero-topic-treaty .bill-rosette{background:repeating-conic-gradient(from 15deg,color-mix(in srgb,var(--bill-primary) 44%,transparent 56%) 0 5deg,transparent 5deg 16deg);}
.hero-topic-treaty .bill-lines{transform:rotate(-4deg);}

.hero-topic-travel{--topic-symbol:"⌁";--topic-x:64%;--topic-y:38%;}
.hero-topic-travel .bill-lines{height:12%;bottom:38%;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--bill-primary) 60%,transparent 40%),color-mix(in srgb,var(--bill-secondary) 80%,transparent 20%),transparent);border-radius:999px;animation-duration:4s;}
.hero-topic-travel .bill-maple.one{left:20%;top:40%;}
.hero-topic-travel .bill-maple.two{right:26%;top:40%;}

.hero-topic-whoswho{--topic-symbol:"★";--topic-x:50%;--topic-y:28%;}
.hero-topic-whoswho .bill-rosette{border-radius:30%;opacity:.46;}
.hero-topic-whoswho .bill-security-window{border-radius:26px;right:10%;}

.hero-topic-eat{--topic-symbol:"✦";--topic-x:22%;--topic-y:70%;}
.hero-topic-eat .bill-aurora{height:26%;top:48%;border-radius:999px;}
.hero-topic-eat .bill-sparkles{opacity:.34;}
.hero-topic-eat .bill-maple.one{top:28%;}

.hero-topic-media{--topic-symbol:"▶";--topic-x:42%;--topic-y:42%;}
.hero-topic-media .bill-lines{background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--bill-deep) 22%,transparent 78%) 0 12px,transparent 12px 24px);height:18%;top:26%;bottom:auto;}
.hero-topic-media .bill-rosette.two{right:10%;top:12%;}

.hero-topic-shop{--topic-symbol:"◆";--topic-x:58%;--topic-y:36%;}
.hero-topic-shop .bill-security-window{border-radius:18px;}
.hero-topic-shop .bill-lines{height:18%;bottom:28%;transform:rotate(-6deg);}

.hero-topic-teacher{--topic-symbol:"✎";--topic-x:34%;--topic-y:34%;}
.hero-topic-teacher .bill-lines{background-image:linear-gradient(0deg,color-mix(in srgb,var(--bill-primary) 30%,transparent 70%) 1px,transparent 1px);background-size:100% 22px;height:42%;}
.hero-topic-teacher .bill-rosette{animation-duration:22s;}

/* Who's Who category dropdown filter */
.ww-filter-row{display:flex;gap:.75rem;align-items:center;justify-content:center;flex-wrap:wrap;max-width:760px;margin:.85rem auto 1.1rem;}
.ww-category-select{min-width:250px;border:2px solid color-mix(in srgb,var(--money-10-purple,#6F2C91) 30%,white 70%);border-radius:999px;background:#fff;padding:.7rem 1rem;font-family:var(--font-sans,Inter,sans-serif);font-weight:800;color:#0a1628;box-shadow:0 8px 24px rgba(111,44,145,.10);}
.ww-filter-hint{font-size:.82rem;color:#555;font-weight:700;}
.ww-clear-filter{border:0;border-radius:999px;background:linear-gradient(135deg,var(--money-10-purple,#6F2C91),var(--money-5-blue,#0072CE));color:#fff;padding:.68rem 1rem;font-weight:900;cursor:pointer;}
.ww-clear-filter:hover{filter:brightness(1.06);transform:translateY(-1px);}
@media(max-width:680px){.ww-category-select{width:100%;}.ww-filter-row{padding:0 1rem;}.canadian-money-animation::after{right:2%;font-size:4rem;}}


/* =========================================================
   Cachefix 19 — larger, easier-to-read nav text
   ========================================================= */
@media (min-width: 861px) {
  .main-nav > ul {
    gap: .16rem !important;
    align-items: stretch !important;
  }
  .main-nav > ul > li > a,
  .main-nav .dropdown-toggle {
    font-size: clamp(.84rem, .92vw, .98rem) !important;
    line-height: 1.16 !important;
    letter-spacing: .01em !important;
    padding: .58rem .58rem !important;
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
  }
  .dropdown-toggle > span {
    line-height: 1.16 !important;
  }
}
@media (min-width: 861px) and (max-width: 1120px) {
  .main-nav > ul > li > a,
  .main-nav .dropdown-toggle {
    font-size: .80rem !important;
    padding-left: .42rem !important;
    padding-right: .42rem !important;
  }
}
@media (min-width: 1121px) and (max-width: 1280px) {
  .main-nav > ul > li > a,
  .main-nav .dropdown-toggle {
    font-size: .86rem !important;
    padding-left: .50rem !important;
    padding-right: .50rem !important;
  }
}
@media (max-width: 860px) {
  .main-nav a,
  .main-nav .dropdown-toggle {
    font-size: 1.08rem !important;
    line-height: 1.22 !important;
  }
}


/* =========================================================
   Cachefix 20 — balanced readable nav + Plan Your Visit polish
   ========================================================= */
@media (min-width: 861px) {
  .site-header .header-container,
  .site-header .header-inner {
    display: flex !important;
    align-items: center !important;
    gap: clamp(.6rem, 1vw, 1rem) !important;
  }
  .site-header .main-nav {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
  .site-header .main-nav > ul {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: stretch !important;
    align-items: center !important;
    gap: .18rem !important;
    width: 100% !important;
    margin: 0 !important;
  }
  .site-header .main-nav > ul > li {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    display: flex !important;
    align-items: stretch !important;
    justify-content: center !important;
  }
  .site-header .main-nav > ul > li > a,
  .site-header .main-nav .dropdown-toggle {
    width: 100% !important;
    min-height: 46px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    white-space: normal !important;
    line-height: 1.12 !important;
    font-size: clamp(.76rem, .70vw, .84rem) !important;
    padding: .54rem .34rem !important;
    letter-spacing: .01em !important;
    border-radius: 12px !important;
  }
  .site-header .main-nav .dropdown-toggle span { text-align: center !important; }
}
@media (min-width: 861px) and (max-width: 1050px) {
  .site-header .main-nav > ul > li > a,
  .site-header .main-nav .dropdown-toggle {
    font-size: .72rem !important;
    padding-left: .24rem !important;
    padding-right: .24rem !important;
  }
  .site-logo .logo-tagline { font-size: .62rem !important; }
}

/* Travel page — money-colour UX/UI upgrade */
.travel-page .hero-content,
body:has(#plan-your-visit) .hero-content { max-width: 880px !important; }
.pyv-section {
  background:
    radial-gradient(circle at 8% 8%, rgba(255,255,255,.16), transparent 28%),
    radial-gradient(circle at 90% 18%, rgba(87,45,111,.32), transparent 30%),
    linear-gradient(135deg, var(--bill-blue, #1e5a9e) 0%, var(--bill-purple, #6d4c8d) 52%, var(--bill-green, #5d8b55) 100%) !important;
  border: 0 !important;
  border-radius: 28px !important;
  margin: clamp(1rem, 2vw, 1.6rem) auto clamp(2rem, 4vw, 3rem) !important;
  max-width: min(1180px, calc(100% - 2rem)) !important;
  box-shadow: 0 24px 70px rgba(6,47,35,.20) !important;
}
.pyv-section::before {
  content:"";
  position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(255,255,255,.11) 1px, transparent 1px),
    linear-gradient(0deg, rgba(255,255,255,.09) 1px, transparent 1px);
  background-size: 44px 44px;
  mask-image: radial-gradient(circle at center, #000 0 58%, transparent 92%);
  opacity:.36; pointer-events:none;
}
.pyv-inner { max-width: 980px !important; }
.pyv-eyebrow {
  background: rgba(255,255,255,.18) !important;
  border-color: rgba(255,255,255,.35) !important;
  color: #fff8df !important;
}
.pyv-title {
  -webkit-text-fill-color: initial !important;
  background: none !important;
  color: #fff !important;
  text-shadow: 0 6px 20px rgba(0,0,0,.25) !important;
}
.pyv-sub { color: rgba(255,255,255,.88) !important; }
.pyv-search-wrap {
  background: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(255,255,255,.85) !important;
  box-shadow: 0 18px 50px rgba(0,0,0,.22) !important;
}
.pyv-search-icon { color: var(--bill-purple, #6d4c8d) !important; }
.pyv-search-wrap input { color: #123126 !important; }
.pyv-search-wrap input::placeholder { color: rgba(18,49,38,.55) !important; }
.pyv-go {
  background: linear-gradient(135deg, var(--bill-red, #b33a3a), var(--bill-brown, #8b5a2b)) !important;
  box-shadow: 0 8px 22px rgba(100,34,34,.32) !important;
}
.pyv-pills { margin-top: 1.1rem !important; gap: .55rem !important; }
.pyv-chip {
  background: rgba(255,255,255,.86) !important;
  color: #15372b !important;
  border: 1px solid rgba(255,255,255,.72) !important;
  border-radius: 999px !important;
  box-shadow: 0 8px 20px rgba(0,0,0,.12) !important;
}
.pyv-chip:hover { transform: translateY(-2px); background:#fff !important; }
.pyv-result {
  background: rgba(8,31,23,.94) !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  border-radius: 24px !important;
  box-shadow: 0 20px 60px rgba(0,0,0,.26) !important;
}
.pyv-day {
  background: rgba(255,255,255,.08) !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  border-radius: 18px !important;
}
.pyv-file-note {
  margin-top: .9rem;
  padding: .75rem 1rem;
  border-radius: 14px;
  background: rgba(255,255,255,.10);
  color: rgba(255,255,255,.82);
  font-size: .9rem;
  line-height: 1.55;
}
.travel-quick-grid,
.plan-visit-feature-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:1rem;
  max-width:1120px;
  margin:1.5rem auto 2rem;
}
.travel-feature-card {
  background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(245,248,239,.96));
  border:1px solid rgba(29,78,59,.14);
  border-radius:18px;
  padding:1rem;
  box-shadow:0 12px 30px rgba(6,47,35,.10);
}
.travel-feature-card strong { color:#163d30; display:block; margin-bottom:.25rem; }
.travel-feature-card p { margin:0; color:#4b5b52; font-size:.9rem; line-height:1.55; }
@media (max-width: 680px) {
  .pyv-section { border-radius: 18px !important; max-width: calc(100% - 1rem) !important; padding-left:.75rem !important; padding-right:.75rem !important; }
  .pyv-search-wrap { border-radius: 24px !important; flex-wrap: wrap !important; padding: .85rem !important; }
  .pyv-search-icon { display:none !important; }
  .pyv-search-wrap input { flex-basis: 100% !important; padding:.65rem .4rem !important; }
  .pyv-go { width:100% !important; justify-content:center !important; }
}


/* =========================================================
   Cachefix 21 — Who's Who moving portrait hero collage
   ========================================================= */
.page-hero.hero-whoswho.money-hero,
.page-hero.hero-people.money-hero{
  min-height:260px !important;
  height:260px !important;
  background:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.72) 0 5rem, transparent 16rem),
    radial-gradient(circle at 85% 28%, var(--bill-glow, rgba(205,168,240,.72)) 0 7rem, transparent 19rem),
    linear-gradient(135deg,
      color-mix(in srgb, var(--bill-deep, #3D155F) 8%, var(--bill-soft, #F1E4FF) 92%) 0%,
      color-mix(in srgb, var(--bill-secondary, #CDA8F0) 70%, white 30%) 42%,
      color-mix(in srgb, var(--bill-primary, #6F2C91) 44%, white 56%) 100%) !important;
}
.page-hero.hero-whoswho .canadian-money-animation{opacity:.58;mix-blend-mode:multiply;}
.ww-hero-collage{
  position:absolute;
  inset:-22px -80px;
  z-index:2;
  overflow:hidden;
  pointer-events:none;
  transform:rotate(-3deg) scale(1.04);
  opacity:.92;
  mask-image:linear-gradient(90deg, transparent 0%, black 10%, black 90%, transparent 100%);
  -webkit-mask-image:linear-gradient(90deg, transparent 0%, black 10%, black 90%, transparent 100%);
}
.ww-photo-track{position:absolute;left:-8%;display:flex;gap:14px;width:max-content;will-change:transform;}
.ww-photo-track img{
  width:86px;height:86px;object-fit:cover;border-radius:20px;border:2px solid rgba(255,255,255,.76);
  box-shadow:0 10px 26px rgba(30,11,48,.24), inset 0 0 0 1px rgba(255,255,255,.28);
  filter:saturate(1.08) contrast(1.02);background:rgba(255,255,255,.42);
}
.ww-track-one{top:16px;animation:wwHeroDriftLeft 34s linear infinite;}
.ww-track-two{top:112px;animation:wwHeroDriftRight 38s linear infinite;transform:translateX(-42%);}
.ww-track-three{top:205px;animation:wwHeroDriftLeft 42s linear infinite;opacity:.74;}
.ww-track-two img{width:76px;height:76px;border-radius:18px;}
.ww-track-three img{width:64px;height:64px;border-radius:16px;}
.ww-hero-vignette{
  position:absolute;inset:-6px;z-index:3;
  background:
    linear-gradient(90deg,color-mix(in srgb, var(--bill-soft, #F1E4FF) 98%, transparent 2%) 0%,transparent 15%,transparent 85%,color-mix(in srgb, var(--bill-soft, #F1E4FF) 98%, transparent 2%) 100%),
    radial-gradient(ellipse at 50% 52%, transparent 0 38%, rgba(255,255,255,.50) 78%, rgba(255,255,255,.70) 100%);
}
.page-hero.hero-whoswho .hero-content{
  max-width:780px !important;
  background:linear-gradient(135deg, rgba(255,255,255,.78), rgba(255,255,255,.46)) !important;
  border:1px solid rgba(255,255,255,.72) !important;
  border-radius:24px !important;
  box-shadow:0 18px 42px rgba(61,21,95,.16), inset 0 1px 0 rgba(255,255,255,.7) !important;
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
}
.page-hero.hero-whoswho h1{color:color-mix(in srgb, var(--bill-deep, #3D155F) 90%, #000 10%) !important;}
.page-hero.hero-whoswho .kicker{background:color-mix(in srgb, var(--bill-primary, #6F2C91) 12%, white 88%) !important;border-color:color-mix(in srgb, var(--bill-primary, #6F2C91) 38%, white 62%) !important;}
@keyframes wwHeroDriftLeft{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes wwHeroDriftRight{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@media (max-width:760px){
  .page-hero.hero-whoswho.money-hero{min-height:240px !important;height:240px !important;}
  .ww-hero-collage{inset:-16px -44px;transform:rotate(-4deg) scale(1.08);opacity:.74;}
  .ww-photo-track{gap:10px;}
  .ww-photo-track img{width:66px;height:66px;border-radius:16px;}
  .ww-track-two{top:88px;}.ww-track-two img{width:58px;height:58px;}
  .ww-track-three{top:156px;}.ww-track-three img{width:50px;height:50px;}
  .page-hero.hero-whoswho .hero-content{padding:1rem !important;border-radius:18px !important;}
}
@media (prefers-reduced-motion:reduce){.ww-photo-track{animation:none !important;}}


/* =========================================================
   Cachefix 22 — fixed bill-colour hero backgrounds, transparent Who's Who overlay,
   food imagery, and shared red top bar
   ========================================================= */
:root{
  --canada-top-red:#C8102E;
  --money-5-blue:#0072CE;
  --money-10-purple:#6F2C91;
  --money-20-green:#00843D;
  --money-50-red:#C8102E;
  --money-100-brown:#6B4A2B;
}
.flag-bar{background:var(--canada-top-red,#C8102E) !important;}
.flag-bar::before{background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent) !important;}
.hero-underbar{background:var(--canada-top-red,#C8102E) !important;border-bottom-color:rgba(100,16,24,.28) !important;}

/* Fixed page themes requested by page type */
.hero-full-wrap.money-theme-10,.money-hero-wrap.money-theme-10,.page-hero.money-theme-10{--bill-primary:#6F2C91;--bill-secondary:#CDA8F0;--bill-deep:#3D155F;--bill-soft:#F1E4FF;--bill-glow:rgba(205,168,240,.72);}
.hero-full-wrap.money-theme-50,.money-hero-wrap.money-theme-50,.page-hero.money-theme-50{--bill-primary:#C8102E;--bill-secondary:#FFB3BA;--bill-deep:#641018;--bill-soft:#FFE4E7;--bill-glow:rgba(255,179,186,.70);}
.hero-full-wrap.money-theme-100,.money-hero-wrap.money-theme-100,.page-hero.money-theme-100{--bill-primary:#6B4A2B;--bill-secondary:#D6B27C;--bill-deep:#3E2A18;--bill-soft:#F7E9D0;--bill-glow:rgba(214,178,124,.70);}
.hero-full-wrap.money-theme-5,.money-hero-wrap.money-theme-5,.page-hero.money-theme-5{--bill-primary:#0072CE;--bill-secondary:#8FD0FF;--bill-deep:#073B6B;--bill-soft:#DDF2FF;--bill-glow:rgba(143,208,255,.75);}
.hero-full-wrap.money-hero-wrap,.animated-hero-wrap.money-hero-wrap,.hero-full-wrap.animated-hero-wrap{
  background-color:var(--bill-soft,#E8F8E2) !important;
  background-image:
    radial-gradient(circle at 15% 18%, color-mix(in srgb,var(--bill-secondary,#C4E8B3) 52%,white 48%) 0 10rem, transparent 25rem),
    radial-gradient(circle at 82% 24%, color-mix(in srgb,var(--bill-glow,rgba(196,232,179,.76)) 70%,transparent 30%) 0 9rem, transparent 24rem),
    linear-gradient(135deg,
      color-mix(in srgb,var(--bill-soft,#E8F8E2) 96%,white 4%) 0%,
      color-mix(in srgb,var(--bill-secondary,#C4E8B3) 72%,white 28%) 48%,
      color-mix(in srgb,var(--bill-primary,#00843D) 42%,white 58%) 100%) !important;
}
.money-hero,.page-hero.money-hero,.animated-page-hero.money-hero,.table-hero.money-hero,.teacher-hero.money-hero,.map-hero.money-hero,.tt-hero-band.money-hero{
  background-color:var(--bill-soft,#E8F8E2) !important;
  background-image:
    radial-gradient(circle at 18% 22%, color-mix(in srgb,var(--bill-secondary,#C4E8B3) 58%,white 42%) 0 8rem, transparent 22rem),
    radial-gradient(circle at 86% 25%, color-mix(in srgb,var(--bill-glow,rgba(196,232,179,.76)) 78%,transparent 22%) 0 8rem, transparent 23rem),
    linear-gradient(135deg,
      color-mix(in srgb,var(--bill-soft,#E8F8E2) 96%,white 4%) 0%,
      color-mix(in srgb,var(--bill-secondary,#C4E8B3) 70%,white 30%) 48%,
      color-mix(in srgb,var(--bill-primary,#00843D) 42%,white 58%) 100%) !important;
}
.money-hero::after{background:linear-gradient(90deg, var(--bill-soft,#E8F8E2) 0%, transparent 9%, transparent 91%, var(--bill-soft,#E8F8E2) 100%) !important;}
.canadian-money-animation{mask-image:linear-gradient(90deg,transparent 0%,black 7%,black 93%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0%,black 7%,black 93%,transparent 100%);}

/* Who's Who: transparent overlay so the portrait animation is visible */
.page-hero.hero-whoswho.money-hero,.page-hero.hero-people.money-hero{
  --bill-primary:#6F2C91;--bill-secondary:#CDA8F0;--bill-deep:#3D155F;--bill-soft:#F1E4FF;--bill-glow:rgba(205,168,240,.72);
  background-color:#F1E4FF !important;
}
.page-hero.hero-whoswho .ww-hero-vignette{background:linear-gradient(90deg,rgba(241,228,255,.82) 0%,rgba(241,228,255,.10) 13%,rgba(241,228,255,.04) 87%,rgba(241,228,255,.82) 100%) !important;}
.page-hero.hero-whoswho .hero-content{
  background:rgba(255,255,255,.08) !important;
  border-color:rgba(255,255,255,.20) !important;
  box-shadow:none !important;
  backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
}
.page-hero.hero-whoswho h1,.page-hero.hero-whoswho .hero-tagline{ text-shadow:0 2px 12px rgba(255,255,255,.65), 0 10px 28px rgba(61,21,95,.18) !important;}

/* Requested fixed hero bill themes */
body:has(a[href="travel-tips.html"]) .hero-travel.money-hero, .hero-travel.money-hero,
body.travel-money-page .money-hero{--bill-primary:#C8102E;--bill-secondary:#FFB3BA;--bill-deep:#641018;--bill-soft:#FFE4E7;--bill-glow:rgba(255,179,186,.70);}
.hero-shop.money-hero{--bill-primary:#C8102E;--bill-secondary:#FFB3BA;--bill-deep:#641018;--bill-soft:#FFE4E7;--bill-glow:rgba(255,179,186,.70);}
.hero-eat.money-hero{--bill-primary:#6B4A2B;--bill-secondary:#D6B27C;--bill-deep:#3E2A18;--bill-soft:#F7E9D0;--bill-glow:rgba(214,178,124,.70);}
.hero-teacher.money-hero,.teacher-hero.money-hero{--bill-primary:#0072CE;--bill-secondary:#8FD0FF;--bill-deep:#073B6B;--bill-soft:#DDF2FF;--bill-glow:rgba(143,208,255,.75);}

/* Eat & Drink image-rich UX */
.food-photo-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem;margin:1rem auto 1.5rem;max-width:1180px;padding:0 1rem;}
.food-photo-card{position:relative;display:block;min-height:150px;border-radius:20px;overflow:hidden;box-shadow:0 14px 36px rgba(62,42,24,.14);border:1px solid rgba(107,74,43,.18);text-decoration:none;color:#fff;background:#6B4A2B;}
.food-photo-card img{width:100%;height:100%;min-height:150px;object-fit:cover;display:block;transition:transform .35s ease,filter .35s ease;filter:saturate(1.08) contrast(1.02);}
.food-photo-card:hover img{transform:scale(1.06);filter:saturate(1.2) contrast(1.06);}
.food-photo-card span{position:absolute;left:.8rem;right:.8rem;bottom:.75rem;z-index:2;font-family:var(--font-sans,Inter,sans-serif);font-weight:900;font-size:.86rem;letter-spacing:.02em;text-shadow:0 2px 12px rgba(0,0,0,.55);}
.food-photo-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 36%,rgba(0,0,0,.62) 100%);}
.eat-drink-money-page .region-card,.eat-drink-money-page .province-flavour-card,.eat-drink-money-page .pairing-card{position:relative;overflow:hidden;}
.eat-drink-money-page .region-card::before,.eat-drink-money-page .province-flavour-card::before,.eat-drink-money-page .pairing-card::before{display:block !important;height:96px;margin:-.72rem -.72rem .75rem;background-size:cover;background-position:center;border-radius:14px 14px 0 0;}
.eat-drink-money-page .region-card:nth-child(1)::before{background-image:linear-gradient(135deg,rgba(107,74,43,.12),rgba(255,255,255,.06)),url('images/Food/atlantic-seafood.svg') !important;}
.eat-drink-money-page .region-card:nth-child(2)::before{background-image:linear-gradient(135deg,rgba(107,74,43,.12),rgba(255,255,255,.06)),url('images/Food/quebec-maple.svg') !important;}
.eat-drink-money-page .region-card:nth-child(3)::before{background-image:linear-gradient(135deg,rgba(107,74,43,.12),rgba(255,255,255,.06)),url('images/Food/ontario-market.svg') !important;}
.eat-drink-money-page .region-card:nth-child(4)::before{background-image:linear-gradient(135deg,rgba(107,74,43,.12),rgba(255,255,255,.06)),url('images/Food/prairie-table.svg') !important;}
.eat-drink-money-page .region-card:nth-child(5)::before{background-image:linear-gradient(135deg,rgba(107,74,43,.12),rgba(255,255,255,.06)),url('images/Food/pacific-salmon.svg') !important;}
.eat-drink-money-page .region-card:nth-child(6)::before{background-image:linear-gradient(135deg,rgba(107,74,43,.12),rgba(255,255,255,.06)),url('images/Food/northern-char.svg') !important;}
.eat-drink-money-page .province-flavour-card:nth-child(6n+1)::before{background-image:url('images/Food/pacific-salmon.svg') !important;}
.eat-drink-money-page .province-flavour-card:nth-child(6n+2)::before{background-image:url('images/Food/prairie-table.svg') !important;}
.eat-drink-money-page .province-flavour-card:nth-child(6n+3)::before{background-image:url('images/Food/ontario-market.svg') !important;}
.eat-drink-money-page .province-flavour-card:nth-child(6n+4)::before{background-image:url('images/Food/quebec-maple.svg') !important;}
.eat-drink-money-page .province-flavour-card:nth-child(6n+5)::before{background-image:url('images/Food/atlantic-seafood.svg') !important;}
.eat-drink-money-page .province-flavour-card:nth-child(6n+6)::before{background-image:url('images/Food/northern-char.svg') !important;}
@media(max-width:820px){.food-photo-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.food-photo-card,.food-photo-card img{min-height:120px}}
@media(max-width:520px){.food-photo-strip{grid-template-columns:1fr}.food-photo-card,.food-photo-card img{min-height:145px}}


/* =========================================================
   Cachefix 24 — forced Who's Who portrait hero visibility
   ========================================================= */
body.whoswho-page .hero-full-wrap.hero-topic-whoswho,
body.whoswho-page .hero-full-wrap.money-theme-10,
body.whoswho-page .page-hero.hero-whoswho{
  background:#F1E4FF !important;
  overflow:hidden !important;
}
body.whoswho-page .page-hero.hero-whoswho{
  position:relative !important;
  min-height:270px !important;
  height:270px !important;
}
body.whoswho-page .page-hero.hero-whoswho .ww-hero-collage{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  position:absolute !important;
  inset:-28px -90px !important;
  z-index:4 !important;
  overflow:hidden !important;
  pointer-events:none !important;
  transform:rotate(-3deg) scale(1.04) !important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 7%,#000 93%,transparent 100%) !important;
  mask-image:linear-gradient(90deg,transparent 0%,#000 7%,#000 93%,transparent 100%) !important;
}
body.whoswho-page .page-hero.hero-whoswho .ww-photo-track{
  position:absolute !important;
  left:-8% !important;
  display:flex !important;
  gap:14px !important;
  width:max-content !important;
  min-width:max-content !important;
  will-change:transform !important;
}
body.whoswho-page .page-hero.hero-whoswho .ww-photo-track img{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:88px !important;
  height:88px !important;
  object-fit:cover !important;
  border-radius:20px !important;
  border:2px solid rgba(255,255,255,.86) !important;
  box-shadow:0 12px 28px rgba(61,21,95,.26) !important;
  background:rgba(255,255,255,.62) !important;
}
body.whoswho-page .page-hero.hero-whoswho .ww-track-one{top:14px !important;animation:wwHeroDriftLeft 34s linear infinite !important;}
body.whoswho-page .page-hero.hero-whoswho .ww-track-two{top:112px !important;animation:wwHeroDriftRight 38s linear infinite !important;}
body.whoswho-page .page-hero.hero-whoswho .ww-track-three{top:204px !important;animation:wwHeroDriftLeft 42s linear infinite !important;opacity:.82 !important;}
body.whoswho-page .page-hero.hero-whoswho .ww-track-two img{width:78px !important;height:78px !important;border-radius:18px !important;}
body.whoswho-page .page-hero.hero-whoswho .ww-track-three img{width:66px !important;height:66px !important;border-radius:16px !important;}
body.whoswho-page .page-hero.hero-whoswho .ww-hero-vignette{
  display:block !important;
  position:absolute !important;
  inset:0 !important;
  z-index:5 !important;
  pointer-events:none !important;
  background:linear-gradient(90deg,#F1E4FF 0%,rgba(241,228,255,.28) 8%,rgba(241,228,255,0) 22%,rgba(241,228,255,0) 78%,rgba(241,228,255,.28) 92%,#F1E4FF 100%) !important;
}
body.whoswho-page .page-hero.hero-whoswho .hero-content{
  position:relative !important;
  z-index:8 !important;
  background:rgba(255,255,255,.06) !important;
  border-color:rgba(255,255,255,.18) !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
body.whoswho-page .page-hero.hero-whoswho .canadian-money-animation,
body.whoswho-page .page-hero.hero-whoswho .animated-hero-bg{
  z-index:1 !important;
}
@media(max-width:760px){
  body.whoswho-page .page-hero.hero-whoswho{min-height:245px !important;height:245px !important;}
  body.whoswho-page .page-hero.hero-whoswho .ww-hero-collage{inset:-18px -44px !important;transform:rotate(-4deg) scale(1.08) !important;}
  body.whoswho-page .page-hero.hero-whoswho .ww-photo-track{gap:10px !important;}
  body.whoswho-page .page-hero.hero-whoswho .ww-photo-track img{width:66px !important;height:66px !important;border-radius:16px !important;}
  body.whoswho-page .page-hero.hero-whoswho .ww-track-two{top:88px !important;}
  body.whoswho-page .page-hero.hero-whoswho .ww-track-two img{width:58px !important;height:58px !important;}
  body.whoswho-page .page-hero.hero-whoswho .ww-track-three{top:156px !important;}
  body.whoswho-page .page-hero.hero-whoswho .ww-track-three img{width:50px !important;height:50px !important;}
}


/* === Cachefix 26: visibility, hero, itinerary readability fixes === */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
body.whoswho-page .hero-full-wrap.hero-topic-whoswho,
body.whoswho-page .page-hero.hero-whoswho{background:#F1E4FF!important;overflow:hidden!important;}
body.whoswho-page .page-hero.hero-whoswho .ww-hero-collage{display:block!important;visibility:visible!important;opacity:1!important;z-index:3!important;}
body.whoswho-page .page-hero.hero-whoswho .ww-photo-track{display:flex!important;visibility:visible!important;opacity:1!important;}
body.whoswho-page .page-hero.hero-whoswho .ww-photo-track img{display:block!important;visibility:visible!important;opacity:1!important;}
body.whoswho-page .page-hero.hero-whoswho .hero-content{z-index:8!important;background:linear-gradient(135deg,rgba(42,18,82,.58),rgba(88,42,132,.36))!important;border:1px solid rgba(255,255,255,.38)!important;box-shadow:0 18px 45px rgba(35,8,65,.30)!important;backdrop-filter:blur(4px)!important;-webkit-backdrop-filter:blur(4px)!important;color:#fff!important;}
body.whoswho-page .page-hero.hero-whoswho .hero-content h1,
body.whoswho-page .page-hero.hero-whoswho .hero-content .kicker,
body.whoswho-page .page-hero.hero-whoswho .hero-content .hero-tagline{color:#fff!important;text-shadow:0 3px 14px rgba(0,0,0,.62),0 1px 3px rgba(0,0,0,.8)!important;}
body.whoswho-page .page-hero.hero-whoswho .hero-content .kicker{color:#fff1b8!important;}

/* Plan Your Visit itinerary result: $20 bill light green readability */
.travel-page .pyv-result,
body:has(#plan-your-visit) .pyv-result{background:linear-gradient(135deg,#dff3cf,#c4e8b3 70%,#b6dda0)!important;color:#18311f!important;border:1px solid rgba(31,90,51,.22)!important;border-radius:24px!important;padding:1.25rem!important;box-shadow:0 18px 42px rgba(26,76,42,.16)!important;}
.travel-page .pyv-r-head,
body:has(#plan-your-visit) .pyv-r-head,
.travel-page .pyv-day,
body:has(#plan-your-visit) .pyv-day{background:rgba(255,255,255,.72)!important;border-color:rgba(32,92,52,.22)!important;color:#18311f!important;box-shadow:0 8px 22px rgba(26,76,42,.10)!important;}
.travel-page .pyv-r-name,
body:has(#plan-your-visit) .pyv-r-name,
.travel-page .pyv-day-title,
body:has(#plan-your-visit) .pyv-day-title{color:#18311f!important;text-shadow:none!important;}
.travel-page .pyv-r-region,
body:has(#plan-your-visit) .pyv-r-region,
.travel-page .pyv-day-label,
body:has(#plan-your-visit) .pyv-day-label{color:#32794a!important;}
.travel-page .pyv-r-prov,
body:has(#plan-your-visit) .pyv-r-prov,
.travel-page .pyv-day-text,
body:has(#plan-your-visit) .pyv-day-text,
.travel-page .pyv-day-cost-sub,
body:has(#plan-your-visit) .pyv-day-cost-sub{color:#284a31!important;}
.travel-page .pyv-day-cost,
body:has(#plan-your-visit) .pyv-day-cost{background:#eaf8df!important;color:#1f6338!important;border-color:#8abf78!important;}
.travel-page .pyv-r-btn,
body:has(#plan-your-visit) .pyv-r-btn{background:#fff!important;color:#1f6338!important;border-color:rgba(31,99,56,.25)!important;}
.travel-page .pyv-r-btn.pyv-r-print,
body:has(#plan-your-visit) .pyv-r-btn.pyv-r-print{background:linear-gradient(135deg,#2d8b4f,#1f6338)!important;color:#fff!important;border-color:#1f6338!important;}
.travel-page .pyv-file-note,
.travel-page .pyv-saved-itinerary,
body:has(#plan-your-visit) .pyv-file-note,
body:has(#plan-your-visit) .pyv-saved-itinerary{color:#18311f!important;background:rgba(255,255,255,.68)!important;border-radius:16px!important;padding:1rem!important;}


/* Cachefix 27 — Eat & Drink image-first compact UI */
body.eat-drink-money-page .table-hero:after{content:""!important;display:none!important}
body.eat-drink-money-page .region-grid,body.eat-drink-money-page .province-table-grid,body.eat-drink-money-page .recipe-grid,body.eat-drink-money-page .pairing-board,body.eat-drink-money-page .top-grid,body.eat-drink-money-page .restaurant-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))!important;gap:.7rem!important}
body.eat-drink-money-page .food-card-img{width:100%;height:96px;object-fit:cover;display:block}
body.eat-drink-money-page .food-collapsed{display:none!important}


/* Cachefix 28: Media page intro/write-up should align with the full tile grid width */
.media-section-inner > .media-section-sub,
.media-section-sub {
  max-width: 100% !important;
  width: 100%;
}
.media-section-inner > .media-section-title + .media-section-sub {
  max-width: var(--content-max, 1180px) !important;
}
@media (min-width: 900px) {
  .media-section-sub {
    font-size: 1rem;
    line-height: 1.72;
  }
}

/* Cachefix 35: $5-blue itinerary builder readability */
@keyframes pyvBlueBuild {
  from { opacity:0; transform:translateY(16px) scale(.985); filter:blur(5px); }
  to { opacity:1; transform:translateY(0) scale(1); filter:blur(0); }
}
@keyframes pyvBluePulse {
  0%,100% { box-shadow:0 12px 32px rgba(30,84,160,.14); }
  50% { box-shadow:0 18px 46px rgba(30,84,160,.26); }
}
.pyv-result{max-width:980px!important;}
.pyv-saved-itinerary{display:grid;gap:.9rem;margin-top:1rem;color:#12345f!important;}
.pyv-r-head{background:linear-gradient(135deg,#1f5fa8 0%,#2f7ed8 55%,#bfe1ff 100%)!important;border-color:rgba(255,255,255,.46)!important;color:#fff!important;box-shadow:0 18px 42px rgba(31,95,168,.24)!important;}
.pyv-r-region,.pyv-r-prov,.pyv-r-name{color:#fff!important;text-shadow:0 1px 8px rgba(0,0,0,.26)!important;}
.pyv-status-build{color:#103963!important;background:linear-gradient(135deg,#eaf6ff,#d6ecff)!important;border:1px solid rgba(31,95,168,.22)!important;border-radius:16px!important;box-shadow:0 8px 20px rgba(31,95,168,.10)!important;}
.pyv-xml-summary{display:grid;grid-template-columns:minmax(180px,300px) 1fr;gap:1rem;align-items:stretch;background:linear-gradient(135deg,#eaf6ff 0%,#d8efff 60%,#f7fbff 100%)!important;border:1px solid rgba(31,95,168,.22)!important;border-radius:24px;padding:1rem;box-shadow:0 16px 38px rgba(31,95,168,.14);animation:pyvBlueBuild .45s ease both, pyvBluePulse 2.4s ease-in-out infinite;}
.pyv-xml-summary img{width:100%;height:100%;min-height:190px;max-height:260px;object-fit:cover;border-radius:18px;box-shadow:0 10px 24px rgba(31,95,168,.18);background:#d8ecff;}
.pyv-xml-summary h3{margin:.2rem 0 .45rem;color:#0d3159;font-family:'Playfair Display',Georgia,serif;font-size:clamp(1.35rem,2.8vw,2rem);}
.pyv-xml-summary p{color:#244566;line-height:1.65;margin:.35rem 0;}
.pyv-budget-total{display:inline-flex;align-items:center;gap:.45rem;background:#fff;border:1px solid rgba(31,95,168,.25);border-radius:999px;padding:.52rem .85rem;color:#0d3159;font-weight:900;margin-top:.5rem;box-shadow:0 5px 14px rgba(31,95,168,.12);}
.pyv-day{overflow:hidden;background:linear-gradient(135deg,#f8fcff 0%,#eaf6ff 58%,#d7ecff 100%)!important;border:1px solid rgba(31,95,168,.24)!important;border-left:6px solid #1f5fa8!important;border-radius:20px!important;box-shadow:0 12px 30px rgba(31,95,168,.12)!important;animation:pyvBlueBuild .42s ease both;}
.pyv-day-inner{display:grid;grid-template-columns:156px 1fr;gap:.9rem;align-items:start;}
.pyv-day-img{width:156px;height:116px;object-fit:cover;border-radius:15px;background:#d8ecff;box-shadow:0 8px 18px rgba(31,95,168,.16);}
.pyv-day-copy p{margin:.5rem 0 0;color:#1d3f62!important;line-height:1.66;}
.pyv-day-meta{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-bottom:.3rem;}
.pyv-day-num{display:inline-flex!important;align-items:center;justify-content:center;width:auto!important;height:auto!important;min-width:0!important;padding:.32rem .66rem!important;border-radius:999px!important;background:#1f5fa8!important;color:#fff!important;font-size:.76rem!important;font-weight:900!important;letter-spacing:.08em!important;text-transform:uppercase!important;box-shadow:0 5px 12px rgba(31,95,168,.18)!important;white-space:nowrap!important;}
.pyv-day-title{display:block!important;color:#0d3159!important;font-family:'Playfair Display',Georgia,serif!important;font-size:1.18rem!important;font-weight:800!important;line-height:1.22!important;}
.pyv-day-copy strong{color:#0d3159!important;font-family:'Playfair Display',Georgia,serif;font-size:1.18rem;line-height:1.22;}
.pyv-day-cost{display:inline-block;margin-top:.68rem;background:#ffffff!important;border:1px solid rgba(31,95,168,.22)!important;border-left:5px solid #1f5fa8!important;border-radius:13px;padding:.55rem .75rem;color:#123b64!important;font-size:.9rem;line-height:1.45;box-shadow:0 4px 12px rgba(31,95,168,.08);}
.pyv-day-cost span{color:#1f5fa8!important;font-weight:900;}
.pyv-print-bottom{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:.35rem;background:linear-gradient(135deg,#d6ecff,#f8fcff);border:1px solid rgba(31,95,168,.22);border-radius:18px;padding:1rem;box-shadow:0 10px 24px rgba(31,95,168,.10);}
.pyv-print-bottom strong{color:#0d3159;}
.pyv-print-bottom span{color:#244566;}
.pyv-print-bottom button{border:0;border-radius:999px;background:#1f5fa8;color:#fff;font-weight:900;padding:.72rem 1.15rem;cursor:pointer;box-shadow:0 8px 18px rgba(31,95,168,.2);}
.pyv-print-bottom button:hover{transform:translateY(-1px);background:#164c89;}
@media(max-width:700px){.pyv-xml-summary,.pyv-day-inner{grid-template-columns:1fr}.pyv-day-img{width:100%;height:180px}.pyv-xml-summary img{max-height:220px}.pyv-day-num{font-size:.7rem!important}.pyv-print-bottom{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){.pyv-day,.pyv-xml-summary{animation:none!important}}


/* Cachefix 36: slower itinerary reveal + richer Eat & Drink image presentation */
.pyv-status-build::after{content:"";display:inline-block;width:1.2em;text-align:left;animation:pyvDots 1.4s steps(4,end) infinite;}
@keyframes pyvDots{0%{content:""}25%{content:"."}50%{content:".."}75%,100%{content:"..."}}
.pyv-day{animation-duration:.85s!important;}
.food-photo-strip{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;gap:.65rem!important;}
.food-photo-card{min-height:132px!important;}
.food-photo-card img{height:140px!important;}
.food-photo-card span{font-size:.68rem!important;}
.region-card,.province-flavour-card,.recipe-card,.pairing-card,.dish-chip,.restaurant-card{background:#fffaf1!important;}
.region-card .food-card-img,.province-flavour-card .food-card-img,.recipe-card .food-card-img,.pairing-card .food-card-img,.dish-chip .food-card-img,.restaurant-card .food-card-img{height:104px!important;}
@media(max-width:760px){.food-photo-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}.food-photo-card img{height:118px!important}.region-card .food-card-img,.province-flavour-card .food-card-img,.recipe-card .food-card-img,.pairing-card .food-card-img,.dish-chip .food-card-img,.restaurant-card .food-card-img{height:92px!important}}


/* whoswho-hero-cachefix38-external */
body.whoswho-page .hero-full-wrap.hero-topic-whoswho,body.whoswho-page .page-hero.hero-whoswho{background:#F1E4FF!important;overflow:hidden!important;}
body.whoswho-page .page-hero.hero-whoswho .ww-hero-collage{display:block!important;visibility:visible!important;opacity:1!important;}
body.whoswho-page .page-hero.hero-whoswho .ww-photo-track{display:flex!important;visibility:visible!important;opacity:1!important;}
body.whoswho-page .page-hero.hero-whoswho .ww-photo-track img{display:block!important;visibility:visible!important;opacity:1!important;}


/* =========================================================
   Cachefix 39 — Travel page $50 hero blend + smaller $5 Plan Your Visit UI
   ========================================================= */
:root{
  --money-5-blue:#0072CE;
  --money-5-soft:#DDF2FF;
  --money-5-mid:#8FD0FF;
  --money-50-red:#C8102E;
  --money-50-soft:#FFE4E7;
  --money-50-deep:#641018;
}
body.travel-money-page .hero-full-wrap.money-theme-50,
body.travel-money-page .animated-hero-wrap.money-theme-50,
body.travel-money-page .hero-full-wrap.hero-topic-travel{
  --bill-primary:#C8102E !important;
  --bill-secondary:#FFB3BA !important;
  --bill-deep:#641018 !important;
  --bill-soft:#C8102E !important;
  background-color:#C8102E !important;
  background-image:
    radial-gradient(circle at 14% 22%, rgba(255,179,186,.42) 0 9rem, transparent 24rem),
    radial-gradient(circle at 82% 26%, rgba(255,228,231,.30) 0 8rem, transparent 22rem),
    linear-gradient(135deg,#C8102E 0%,#B30E29 48%,#641018 100%) !important;
}
body.travel-money-page .page-hero.money-theme-50,
body.travel-money-page .animated-page-hero.money-theme-50,
body.travel-money-page .hero-travel{
  --bill-primary:#C8102E !important;
  --bill-secondary:#FFB3BA !important;
  --bill-deep:#641018 !important;
  --bill-soft:#C8102E !important;
  background-color:#C8102E !important;
  background-image:
    radial-gradient(circle at 16% 22%, rgba(255,179,186,.46) 0 8rem, transparent 22rem),
    radial-gradient(circle at 86% 25%, rgba(255,228,231,.32) 0 8rem, transparent 23rem),
    linear-gradient(135deg,#C8102E 0%,#B30E29 50%,#641018 100%) !important;
  color:#fff !important;
}
body.travel-money-page .page-hero.money-theme-50 h1,
body.travel-money-page .page-hero.money-theme-50 .kicker,
body.travel-money-page .page-hero.money-theme-50 .hero-tagline,
body.travel-money-page .hero-travel h1,
body.travel-money-page .hero-travel .kicker,
body.travel-money-page .hero-travel .hero-tagline{
  color:#fff !important;
  text-shadow:0 3px 14px rgba(0,0,0,.38) !important;
}
body.travel-money-page .hero-travel::before,
body.travel-money-page .hero-travel::after{
  background-color:transparent !important;
}
body.travel-money-page .hero-underbar{background:#C8102E !important;}

/* The planner panel uses the $5 bill blue system and takes less vertical space. */
body.travel-money-page .pyv-section{
  padding:clamp(2rem,4vw,3.15rem) 1.1rem !important;
  background:
    radial-gradient(circle at 18% 0%, rgba(143,208,255,.55) 0 11rem, transparent 26rem),
    radial-gradient(circle at 90% 18%, rgba(0,114,206,.18) 0 10rem, transparent 24rem),
    linear-gradient(135deg,#DDF2FF 0%,#BEE4FF 48%,#8FD0FF 100%) !important;
  border-bottom:3px solid #0072CE !important;
  color:#073B6B !important;
}
body.travel-money-page .pyv-glow-1{background:rgba(0,114,206,.18) !important;opacity:.45 !important;}
body.travel-money-page .pyv-glow-2{background:rgba(143,208,255,.28) !important;opacity:.42 !important;}
body.travel-money-page .pyv-glow-3{background:rgba(255,255,255,.34) !important;opacity:.38 !important;}
body.travel-money-page .pyv-eyebrow{
  color:#073B6B !important;
  background:rgba(255,255,255,.58) !important;
  border-color:rgba(0,114,206,.28) !important;
  margin-bottom:.65rem !important;
  font-size:.7rem !important;
  padding:.34rem .8rem !important;
}
body.travel-money-page .pyv-title{
  font-size:clamp(1.55rem,3.2vw,2.45rem) !important;
  color:#073B6B !important;
  text-shadow:0 1px 0 rgba(255,255,255,.75) !important;
  margin-bottom:.5rem !important;
  line-height:1.08 !important;
  -webkit-text-fill-color:#073B6B !important;
}
body.travel-money-page .pyv-sub{
  color:#164C7B !important;
  max-width:760px !important;
  font-size:clamp(.95rem,1.35vw,1.04rem) !important;
  line-height:1.55 !important;
  margin-bottom:1.25rem !important;
}
body.travel-money-page .pyv-search-wrap{
  max-width:720px !important;
  padding:.32rem .32rem .32rem 3rem !important;
  background:rgba(255,255,255,.92) !important;
  border:1px solid rgba(0,114,206,.24) !important;
  box-shadow:0 14px 32px rgba(7,59,107,.16) !important;
}
body.travel-money-page .pyv-search-wrap input{padding:.72rem .2rem !important;color:#073B6B !important;font-size:1rem !important;}
body.travel-money-page .pyv-search-icon{color:#0072CE !important;}
body.travel-money-page .pyv-go{
  background:linear-gradient(135deg,#0072CE,#073B6B) !important;
  box-shadow:0 8px 20px rgba(0,114,206,.25) !important;
  padding:.68rem 1.15rem !important;
  font-size:.88rem !important;
}
body.travel-money-page .pyv-pills{margin-top:.95rem !important;}
body.travel-money-page .pyv-chip{
  background:rgba(255,255,255,.76) !important;
  color:#073B6B !important;
  border-color:rgba(0,114,206,.22) !important;
  padding:.38rem .8rem !important;
  font-size:.82rem !important;
}
body.travel-money-page .pyv-chip:hover{background:#fff !important;border-color:#0072CE !important;color:#0072CE !important;}
body.travel-money-page .pyv-suggest{background:rgba(255,255,255,.98) !important;border-color:rgba(0,114,206,.25) !important;}
body.travel-money-page .pyv-suggest li{color:#073B6B !important;}
body.travel-money-page .pyv-suggest li:hover,
body.travel-money-page .pyv-suggest li.pyv-hl{background:rgba(0,114,206,.10) !important;color:#0072CE !important;}


/* =========================================================
   Cachefix 40 — Travel Tips unified $5 blue hero + airplane
   ========================================================= */
body.travel-money-page .hero-full-wrap.money-theme-5,
body.travel-money-page .animated-hero-wrap.money-theme-5,
body.travel-money-page .hero-full-wrap.hero-topic-travel{
  --bill-primary:#0072CE !important;
  --bill-secondary:#8FD0FF !important;
  --bill-deep:#073B6B !important;
  --bill-soft:#DDF2FF !important;
  --bill-glow:rgba(143,208,255,.78) !important;
  background-color:#0072CE !important;
  background-image:linear-gradient(135deg,#0072CE 0%,#0061B4 52%,#073B6B 100%) !important;
}
body.travel-money-page .page-hero.money-theme-5,
body.travel-money-page .animated-page-hero.money-theme-5,
body.travel-money-page .hero-travel{
  --bill-primary:#0072CE !important;
  --bill-secondary:#8FD0FF !important;
  --bill-deep:#073B6B !important;
  --bill-soft:#DDF2FF !important;
  --bill-glow:rgba(143,208,255,.78) !important;
  background-color:#0072CE !important;
  background-image:linear-gradient(135deg,#0072CE 0%,#0061B4 52%,#073B6B 100%) !important;
  color:#fff !important;
}
body.travel-money-page .hero-travel .aurora-ribbon,
body.travel-money-page .hero-travel .aurora-ribbon.two,
body.travel-money-page .hero-travel .bill-lines{
  background:linear-gradient(90deg,transparent,rgba(143,208,255,.88),rgba(221,242,255,.78),transparent) !important;
}
body.travel-money-page .hero-travel .maple,
body.travel-money-page .hero-travel .ah-compass{color:rgba(221,242,255,.92) !important;text-shadow:0 0 24px rgba(143,208,255,.65) !important;}
body.travel-money-page .hero-travel .compass-ring,
body.travel-money-page .hero-travel .ah-ring{border-color:rgba(221,242,255,.38) !important;}
body.travel-money-page .hero-travel .ah-pin{background:#DDF2FF !important;box-shadow:0 0 0 7px rgba(143,208,255,.18),0 0 24px rgba(221,242,255,.55) !important;}
body.travel-money-page .hero-underbar{background:#0072CE !important;}
body.travel-money-page .ah-plane{position:absolute;left:-10%;top:33%;z-index:3;font-size:clamp(2rem,5vw,4.2rem);line-height:1;color:rgba(255,255,255,.92);filter:drop-shadow(0 10px 22px rgba(7,59,107,.45));animation:travelPlaneDrift 18s linear infinite;transform:rotate(8deg);}
@keyframes travelPlaneDrift{0%{transform:translate3d(-8vw,3vh,0) rotate(8deg);opacity:0}10%{opacity:.95}50%{transform:translate3d(58vw,-4vh,0) rotate(4deg);opacity:.9}90%{opacity:.95}100%{transform:translate3d(112vw,-10vh,0) rotate(1deg);opacity:0}}
@media (prefers-reduced-motion: reduce){body.travel-money-page .ah-plane{animation:none;left:72%;opacity:.28;}}


/* Cachefix 43 — Eat & Drink local food image rebuild */
body.eat-drink-money-page .table-hero.local-food-hero{background:linear-gradient(135deg,#6b431f 0%,#8a5a2d 52%,#3f2916 100%)!important;min-height:300px!important;padding:2.6rem 1.25rem 2.2rem!important}
body.eat-drink-money-page .table-hero.local-food-hero:before{background-image:radial-gradient(circle at 20% 30%,rgba(255,246,217,.4) 0 2px,transparent 3px),radial-gradient(circle at 70% 20%,rgba(255,255,255,.22) 0 1px,transparent 3px)!important;background-size:42px 42px,88px 88px!important;opacity:.35!important}
.local-food-page{--food-brown:#6b431f;--food-gold:#d8a64a;--food-cream:#fff7e6;--food-red:#b33a25;--food-blue:#1f5d9c;--food-green:#5c8f46}
.local-food-page .food-wrap{max-width:1200px;margin:0 auto;padding:0 1rem}
.local-food-page .quick-links{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0 1.5rem}.local-food-page .quick-links a{background:#fff;border:1px solid rgba(107,67,31,.22);border-radius:999px;padding:.48rem .75rem;text-decoration:none;color:var(--food-brown);font:800 .78rem/1 var(--font-sans);box-shadow:0 4px 14px rgba(63,41,22,.06)}.local-food-page .quick-links a:hover{background:var(--food-cream);color:var(--food-red)}
.local-food-page .food-section{margin:1.5rem 0;padding:1.15rem;border-radius:22px;background:linear-gradient(180deg,rgba(255,247,230,.8),rgba(255,255,255,.95));border:1px solid rgba(107,67,31,.14);box-shadow:0 10px 28px rgba(63,41,22,.06)}
.local-food-page .food-section h2{margin:.1rem 0 .35rem;color:var(--food-brown);font-size:clamp(1.45rem,3vw,2.15rem)}.local-food-page .food-section>p{max-width:920px;margin:.25rem 0 1rem;color:#4f4238}
.local-food-page .food-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:.68rem}.local-food-page .food-card{background:#fff;border:1px solid rgba(107,67,31,.16);border-radius:16px;overflow:hidden;box-shadow:0 6px 18px rgba(60,37,18,.09);transition:transform .18s ease, box-shadow .18s ease;cursor:pointer}.local-food-page .food-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(60,37,18,.17)}.local-food-page .food-card img{width:100%;height:98px;object-fit:cover;display:block;background:#eddcc3}.local-food-page .food-card .body{padding:.62rem}.local-food-page .food-card h3{font-size:.9rem;line-height:1.15;margin:0 0 .25rem;color:var(--food-brown)}.local-food-page .food-card p{font-size:.74rem;line-height:1.35;margin:0;color:#57483e}.local-food-page .food-card .tag{display:inline-block;margin-bottom:.35rem;background:#f4ead8;color:#6b431f;border-radius:999px;padding:.16rem .4rem;font:800 .56rem/1 var(--font-sans);text-transform:uppercase;letter-spacing:.04em}
.local-food-page .see-more{margin:.85rem auto 0;display:block;border:0;border-radius:999px;background:var(--food-brown);color:#fff;font:900 .78rem/1 var(--font-sans);padding:.62rem 1rem;cursor:pointer}.local-food-page .see-more:hover{background:#8a5a2d}.local-food-page .food-card.is-hidden{display:none}
.local-food-page .wide-gallery{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}.local-food-page .wide-gallery .food-card img{height:86px}.local-food-page .wide-gallery .food-card h3{font-size:.82rem}
.local-food-page .region-card img{height:108px}.local-food-page .recipe-card img{height:104px}.local-food-page .restaurant-card img{height:95px}.local-food-page .hero-food-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.65rem;margin:1rem auto 1.2rem}.local-food-page .hero-food-strip figure{margin:0;position:relative;overflow:hidden;border-radius:18px;min-height:130px;box-shadow:0 12px 28px rgba(0,0,0,.18)}.local-food-page .hero-food-strip img{width:100%;height:140px;object-fit:cover;display:block;filter:saturate(1.07)}.local-food-page .hero-food-strip figcaption{position:absolute;left:.55rem;right:.55rem;bottom:.55rem;background:rgba(63,41,22,.78);color:#fff;border-radius:999px;padding:.38rem .55rem;font:900 .68rem/1.1 var(--font-sans);text-align:center}
.local-food-page .filter-panel{display:grid;grid-template-columns:1fr 220px auto;gap:.55rem;align-items:center;margin:.8rem 0;background:#fff7e6;border:1px solid rgba(107,67,31,.18);border-radius:16px;padding:.75rem}.local-food-page input,.local-food-page select{border:1px solid rgba(107,67,31,.24);border-radius:10px;padding:.7rem;font:600 .86rem var(--font-sans)}.local-food-page .filter-panel button,.local-food-page .recipe-print-btn{border:0;border-radius:999px;background:#1f5d9c;color:#fff;padding:.72rem .9rem;font:900 .78rem var(--font-sans);cursor:pointer}.local-food-page .recipe-print-btn{margin:.6rem .62rem .65rem;background:#6b431f}.local-food-page .modal{position:fixed;inset:0;background:rgba(22,16,12,.58);display:none;align-items:center;justify-content:center;z-index:9999;padding:1rem}.local-food-page .modal.open{display:flex}.local-food-page .modal-panel{max-width:680px;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 25px 80px rgba(0,0,0,.3)}.local-food-page .modal-panel img{width:100%;height:260px;object-fit:cover}.local-food-page .modal-body{padding:1.2rem}.local-food-page .modal-body h3{margin:.2rem 0;color:var(--food-brown)}.local-food-page .modal-close{float:right;border:0;background:#f4ead8;border-radius:999px;padding:.4rem .7rem;cursor:pointer;font-weight:900}
@media(max-width:720px){.local-food-page .filter-panel{grid-template-columns:1fr}.local-food-page .food-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.local-food-page .food-card img{height:86px}.local-food-page .table-hero h1{font-size:2.15rem!important}}
