/*
 * TLC responsive and touch compatibility layer.
 * Loaded after the primary site-polish stylesheet so existing desktop art
 * direction remains intact while tablet/phone behavior stays predictable.
 */
:root {
    --tlc-safe-top: env(safe-area-inset-top, 0px);
    --tlc-safe-right: env(safe-area-inset-right, 0px);
    --tlc-safe-bottom: env(safe-area-inset-bottom, 0px);
    --tlc-safe-left: env(safe-area-inset-left, 0px);
    --tlc-touch-target: 44px;
    --tlc-mobile-gutter: clamp(12px, 4vw, 24px);
    --tlc-viewport-height: 100dvh;
}

/* Homepage hero controls mounted into Flatsome's native masthead slots. */
body.home.tlc-home-header-controls-mounted .tlc-hex-hero__topbar {
    display: none !important;
}

body.home #masthead.tlc-home-header-controls .header-inner {
    width: calc(100% - 40px) !important;
    max-width: 1380px !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

body.home #masthead.tlc-home-header-controls .hide-for-medium.flex-left,
body.home #masthead.tlc-home-header-controls .hide-for-medium.flex-right {
    display: flex;
    width: auto;
    height: 100%;
    max-width: 440px;
    flex: 1 1 0;
    align-items: center;
}

body.home #masthead.tlc-home-header-controls .hide-for-medium.flex-left {
    justify-content: flex-start;
}

body.home #masthead.tlc-home-header-controls .hide-for-medium.flex-right {
    justify-content: flex-end;
}

body.home #masthead.tlc-home-header-controls #logo {
    flex: 0 0 clamp(220px, 29vw, 390px);
}

body.home #masthead .tlc-theme-player--header {
    grid-template-columns: 32px minmax(78px, 112px) minmax(66px, 1fr);
    order: -1;
    width: min(100%, 360px);
    min-height: 44px;
    margin: 0 auto 0 0;
    padding: 5px 8px;
    gap: 7px;
    border-color: rgba(95, 210, 255, 0.35);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.32), 0 0 18px rgba(41, 166, 220, 0.08);
}

body.home #masthead .tlc-theme-player--header .tlc-theme-player__play {
    width: 32px;
    height: 32px;
}

body.home #masthead .tlc-theme-player--header .tlc-theme-player__meta > span {
    font-size: 7px;
}

body.home #masthead .tlc-theme-player--header .tlc-theme-player__meta strong {
    margin-top: 3px;
    font-size: 10px;
}

body.home #masthead .tlc-theme-player--header .tlc-theme-player__time,
body.home #masthead .tlc-theme-player--header .tlc-theme-player__mute {
    display: none !important;
}

body.home #masthead .tlc-hex-hero__actions--header {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: min(100%, 340px) !important;
    margin: 0 !important;
    gap: 8px;
}

body.home #masthead .tlc-hex-hero__actions--header .tlc-hex-button {
    width: 100% !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 0 12px !important;
    font-size: 10px !important;
    letter-spacing: 0.045em;
    white-space: nowrap;
}

body.home #masthead .tlc-hex-hero__actions--header .tlc-hex-button:not(.tlc-hex-button--ghost) {
    color: #f3fbff !important;
    background: linear-gradient(125deg, #071a2d 0%, #0a3150 54%, #0b5770 100%) !important;
    border-color: rgba(91, 214, 255, 0.5) !important;
    box-shadow: 0 8px 24px rgba(0, 32, 58, 0.48), 0 0 18px rgba(52, 190, 235, 0.14) !important;
}

body.home #masthead .tlc-hex-hero__actions--header .tlc-hex-button:not(.tlc-hex-button--ghost):hover,
body.home #masthead .tlc-hex-hero__actions--header .tlc-hex-button:not(.tlc-hex-button--ghost):focus-visible {
    background: linear-gradient(125deg, #0a223b 0%, #0d4168 54%, #0d6f8d 100%) !important;
    border-color: rgba(130, 229, 255, 0.76) !important;
    box-shadow: 0 10px 28px rgba(0, 40, 72, 0.56), 0 0 24px rgba(52, 190, 235, 0.24) !important;
}

@media (max-width: 849px) {
    body.home #masthead.tlc-home-header-controls .header-inner {
        width: 100% !important;
        max-width: none !important;
        padding-right: 10px !important;
        padding-left: 10px !important;
    }

    body.home #masthead.tlc-home-header-controls #logo {
        position: absolute !important;
        /* The positioned parent includes 10px inline padding. Offset that
           padding so the logo is centered on the viewport, not its content box. */
        left: calc(50% - 10px);
        z-index: 3;
        width: min(28vw, 142px) !important;
        transform: translateX(-50%);
    }

    body.home #masthead.tlc-home-header-controls .show-for-medium.flex-left,
    body.home #masthead.tlc-home-header-controls .show-for-medium.flex-right {
        position: absolute;
        top: 0;
        z-index: 4;
        display: flex !important;
        height: 82px;
        align-items: center;
    }

    body.home #masthead.tlc-home-header-controls .show-for-medium.flex-left {
        left: max(10px, var(--tlc-safe-left));
        gap: clamp(10px, 2.8vw, 16px);
        justify-content: flex-start;
    }

    body.home #masthead.tlc-home-header-controls .show-for-medium.flex-right {
        right: 10px;
        justify-content: flex-end;
    }

    body.home #masthead .tlc-theme-player--header {
        display: flex !important;
        order: 1;
        width: 42px !important;
        height: 42px !important;
        min-height: 42px !important;
        margin: 0 !important;
        padding: 4px !important;
        flex: 0 0 42px;
        border-radius: 50%;
    }

    body.home #masthead.tlc-home-header-controls .show-for-medium.flex-left > .mobile-nav {
        order: 0;
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        margin: 0 !important;
        padding: 0 !important;
        flex: 0 0 auto;
    }

    body.home #masthead .tlc-theme-player--header .tlc-theme-player__play {
        width: 32px;
        height: 32px;
        min-width: 32px !important;
        min-height: 32px !important;
        flex: 0 0 32px;
    }

    body.home #masthead .tlc-theme-player--header .tlc-theme-player__meta,
    body.home #masthead .tlc-theme-player--header .tlc-theme-player__progress,
    body.home #masthead .tlc-theme-player--header .tlc-theme-player__time,
    body.home #masthead .tlc-theme-player--header .tlc-theme-player__mute {
        display: none !important;
    }

    body.home #masthead .tlc-hex-hero__actions--header {
        display: flex !important;
        width: auto !important;
        gap: 5px;
    }

    body.home #masthead .tlc-hex-hero__actions--header .tlc-hex-button {
        display: grid !important;
        width: 48px !important;
        min-width: 48px;
        height: 48px !important;
        min-height: 48px !important;
        padding: 0 !important;
        place-content: center !important;
        place-items: center !important;
        line-height: 0 !important;
        text-align: center !important;
        font-size: 0 !important;
        border-radius: 18px !important;
    }

    body.home #masthead .tlc-hex-hero__actions--header .tlc-hex-button::before {
        position: static !important;
        z-index: 4;
        display: block;
        width: 24px;
        height: 24px;
        margin: auto !important;
        pointer-events: none;
        content: "";
        background-repeat: no-repeat;
        background-position: center;
        background-size: contain;
        transform: none !important;
    }

    body.home #masthead .tlc-hex-hero__actions--header .tlc-hex-button--ghost::before {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f4fbff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15a4 4 0 0 1-4 4H8l-5 3V7a4 4 0 0 1 4-4h10a4 4 0 0 1 4 4z'/%3E%3Cpath d='M8 10h8M8 14h5'/%3E%3C/svg%3E");
    }

    body.home #masthead .tlc-hex-hero__actions--header .tlc-hex-button:not(.tlc-hex-button--ghost)::before {
        background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23f4fbff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m4 7 8 6 8-6'/%3E%3C/svg%3E");
    }
}

@media (max-width: 420px) {
    body.home #masthead.tlc-home-header-controls #logo {
        width: min(24vw, 104px) !important;
    }

    body.home #masthead .tlc-hex-hero__actions--header .tlc-hex-button {
        width: 46px !important;
        min-width: 46px;
        height: 46px !important;
        min-height: 46px !important;
    }
}

@supports not (height: 100dvh) {
    :root {
        --tlc-viewport-height: calc(var(--tlc-vh, 1vh) * 100);
    }
}

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    scroll-behavior: smooth;
    scroll-padding-top: clamp(78px, 9vw, 126px);
}

/* The navigation background is already 94% opaque. Removing its live blur
   avoids repainting the page behind it on every scroll frame without changing
   the approved dark visual treatment. */
#wide-nav.header-bottom {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
}

/* Defer painting substantial offscreen cards while keeping their measured
   layout size stable on the long effects, gallery and news grids. */
@supports (content-visibility: auto) {
    .tlc-gallery-card,
    .tlc-blog-grid > article,
    body.blog #main article,
    body.archive #main article {
        content-visibility: auto;
        contain-intrinsic-size: auto 520px;
    }
}

.tlc-page-gallery-anchor {
    scroll-margin-top: clamp(78px, 9vw, 126px);
}

body {
    overscroll-behavior-x: none;
    -webkit-font-smoothing: antialiased;
}

img,
picture,
video,
canvas,
svg,
iframe {
    max-width: 100%;
}

img,
video {
    height: auto;
}

/* Remove Flatsome's overlaid calendar badge from every post-card context. */
#main .post-item .badge.post-date,
#main .box-blog-post .badge.post-date,
.page .badge.post-date,
.blog .badge.post-date,
.archive .badge.post-date {
    display: none !important;
    visibility: hidden !important;
}

/* Shared related-services navigation for effect and production subpages. */
.tlc-report-related-services {
    position: relative;
    isolation: isolate;
    width: min(calc(100% - 40px), 1180px);
    margin: clamp(42px, 6vw, 78px) auto !important;
    padding: clamp(28px, 4vw, 48px) !important;
    overflow: hidden;
    text-align: center;
    background:
        radial-gradient(circle at 50% 0%, rgba(62, 191, 238, 0.12), transparent 46%),
        linear-gradient(145deg, rgba(9, 19, 31, 0.97), rgba(4, 9, 16, 0.98));
    border: 1px solid rgba(91, 214, 255, 0.34);
    border-radius: 24px;
    box-shadow: 0 22px 54px rgba(0, 0, 0, 0.44), inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 0 30px rgba(39, 173, 224, 0.08);
}

.tlc-report-related-services::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    content: "";
    opacity: 0.32;
    background-image:
        linear-gradient(rgba(91, 214, 255, 0.05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(91, 214, 255, 0.05) 1px, transparent 1px);
    background-size: 42px 42px;
    -webkit-mask-image: linear-gradient(to bottom, #000, transparent 84%);
    mask-image: linear-gradient(to bottom, #000, transparent 84%);
}

.tlc-report-related-services h2 {
    width: 100% !important;
    margin: 0 auto clamp(24px, 3vw, 34px) !important;
    color: #f5fbff !important;
    font-size: clamp(32px, 4vw, 52px) !important;
    font-weight: 700 !important;
    line-height: 1.06 !important;
    letter-spacing: -0.025em;
    text-align: center !important;
}

.tlc-report-related-services h2::before {
    display: block;
    margin-bottom: 10px;
    color: #58d8ff;
    font-family: Inter, system-ui, sans-serif;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    content: "Continue Exploring";
}

.tlc-report-related-services ul {
    display: flex !important;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    flex-wrap: wrap;
    gap: 12px;
    align-items: stretch;
    justify-content: center;
    list-style: none !important;
}

.tlc-report-related-services li {
    display: flex;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.tlc-report-related-services a {
    display: inline-flex !important;
    min-width: 176px;
    min-height: 48px;
    padding: 11px 20px !important;
    align-items: center;
    justify-content: center;
    color: #dff7ff !important;
    font-size: 15px;
    font-weight: 750;
    line-height: 1.25;
    text-align: center;
    background: linear-gradient(135deg, rgba(16, 37, 55, 0.96), rgba(8, 21, 34, 0.98));
    border: 1px solid rgba(91, 214, 255, 0.32);
    border-radius: 999px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 8px 20px rgba(0, 0, 0, 0.24);
    transition: transform 180ms ease, color 180ms ease, border-color 180ms ease, background 180ms ease, box-shadow 180ms ease;
}

.tlc-report-related-services a:hover,
.tlc-report-related-services a:focus-visible {
    color: #fff !important;
    background: linear-gradient(135deg, rgba(18, 61, 88, 0.98), rgba(9, 34, 52, 0.98));
    border-color: rgba(125, 229, 255, 0.76);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.12), 0 10px 26px rgba(0, 0, 0, 0.32), 0 0 20px rgba(53, 194, 241, 0.18);
    transform: translateY(-2px);
}

.tlc-report-related-services a:focus-visible {
    outline: 3px solid rgba(91, 214, 255, 0.72);
    outline-offset: 3px;
}

@media (max-width: 640px) {
    .tlc-report-related-services {
        width: calc(100% - 24px);
        margin: 32px auto !important;
        padding: 26px 16px !important;
        border-radius: 18px;
    }

    .tlc-report-related-services h2 {
        font-size: clamp(28px, 9vw, 38px) !important;
    }

    .tlc-report-related-services ul {
        display: grid !important;
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .tlc-report-related-services li,
    .tlc-report-related-services a {
        width: 100%;
    }
}

main,
#main,
#content,
.section,
.section-content,
.row,
.col,
.col-inner {
    min-width: 0;
}

h1,
h2,
h3,
h4,
h5,
h6,
p,
li,
a,
button,
label,
legend {
    overflow-wrap: anywhere;
}

a,
button,
input,
select,
textarea,
summary,
[role="button"],
[role="tab"] {
    touch-action: manipulation;
}

input,
select,
textarea,
button {
    max-width: 100%;
}

/* Center post-sharing glyphs inside their existing pill controls. */
.share-icons a.button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    vertical-align: middle;
}

.share-icons a.button > i {
    margin: 0 !important;
    line-height: 1 !important;
    transform: translateY(1.5px);
}

.video-fit,
.video-button-wrapper,
.wp-video,
.tlc-cinematic-video,
.tlc-hex-modal__video {
    width: 100%;
    max-width: 100%;
}

.video-fit iframe,
.video-fit video,
.tlc-cinematic-video iframe,
.tlc-cinematic-video video,
.tlc-hex-modal__video iframe {
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 16 / 9;
    height: auto !important;
    min-height: 0 !important;
}

/* Portrait embeds stay impactful without becoming taller than the viewport. */
body:not(.home) #main .tlc-portrait-media-frame {
    position: relative !important;
    width: min(92vw, 560px, calc(80vh * var(--tlc-portrait-width-factor, 0.5625))) !important;
    max-width: 100% !important;
    height: auto !important;
    aspect-ratio: var(--tlc-portrait-aspect, 9 / 16);
    margin: clamp(22px, 3vw, 38px) auto !important;
    padding: 0 !important;
    overflow: hidden;
    background: #000;
}

body:not(.home) #main .tlc-portrait-media-frame > iframe {
    position: absolute !important;
    inset: 0 !important;
    display: block;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
}

body:not(.home) #main video.tlc-portrait-video {
    display: block;
    width: auto !important;
    max-width: min(92vw, 560px) !important;
    max-height: 80vh !important;
    margin: clamp(22px, 3vw, 38px) auto !important;
    object-fit: contain;
}

/* Native swipe rails: touch users can pan without moving the whole page. */
.tlc-swipe-strip,
.tlc-hex-grid,
.tlc-gallery-showcase__primary,
.tlc-gallery-showcase__child-group > div {
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-inline: contain;
}

.tlc-swipe-strip {
    scrollbar-width: thin;
    scroll-snap-type: x proximity;
    touch-action: pan-x;
}

.tlc-swipe-strip > * {
    scroll-snap-align: start;
}

/* Keep the restored contact popup close control anchored to its frame. */
#pum-13946 #popmake-13946 {
    position: relative !important;
}

#pum-13946 #popmake-13946 > .pum-close,
#pum-13946 #popmake-13946 > .popmake-close {
    position: absolute !important;
    top: 16px !important;
    right: 16px !important;
    bottom: auto !important;
    left: auto !important;
    z-index: 50 !important;
    margin: 0 !important;
    transform: none !important;
}

#pum-13946 .pum-title {
    padding-right: 72px !important;
}

/* Fixed utilities stay clear of notches, home indicators, and each other. */
.cky-btn-revisit-wrapper {
    left: max(15px, var(--tlc-safe-left)) !important;
    bottom: max(15px, var(--tlc-safe-bottom)) !important;
}

#cya11y-container {
    --tlc-a11y-right: max(20px, var(--tlc-safe-right));
    --tlc-a11y-bottom: max(15px, var(--tlc-safe-bottom));
}

#LeadboosterContainer {
    right: max(20px, var(--tlc-safe-right)) !important;
    bottom: calc(88px + var(--tlc-safe-bottom)) !important;
}

.gt_switcher_wrapper {
    bottom: calc(20px + var(--tlc-safe-bottom)) !important;
    max-width: calc(100vw - 150px) !important;
}

#footer .absolute-footer {
    padding-bottom: calc(104px + var(--tlc-safe-bottom)) !important;
}

/* Touch and keyboard targets without inflating ordinary inline text links. */
@media (pointer: coarse), (max-width: 849px) {
    button,
    input[type="button"],
    input[type="submit"],
    input[type="reset"],
    .button,
    [role="button"],
    [role="tab"],
    .nav-sidebar a,
    .nav-sidebar .toggle,
    .tlc-gallery-showcase__controls button,
    .tlc-rec-button,
    .tlc-rec-option,
    .pum-close,
    .mfp-close {
        min-height: var(--tlc-touch-target) !important;
    }

    .header-button a,
    #header .mobile-nav a,
    #top-link,
    .social-icons a,
    .tlc-theme-player button {
        min-width: var(--tlc-touch-target) !important;
        min-height: var(--tlc-touch-target) !important;
    }

    input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
    select,
    textarea {
        min-height: 44px;
        font-size: 16px !important;
    }

    .tlc-hex-tile,
    .tlc-hex-core,
    .box,
    .page-box,
    .tlc-gallery-card,
    .tlc-rec-option {
        -webkit-tap-highlight-color: rgba(70, 199, 255, 0.18);
    }

    .tlc-touch-active,
    .tlc-hex-tile:active,
    .tlc-hex-core:active,
    .box:active,
    .page-box:active,
    .tlc-gallery-card:active {
        border-color: rgba(139, 226, 255, 0.78) !important;
        filter: brightness(1.06);
    }
}

/* Keep the primary CTA in the dedicated far-right desktop nav position. */
@media (min-width: 850px) {
    #wide-nav .flex-row.container {
        width: calc(100% - clamp(28px, 4vw, 64px)) !important;
        max-width: none !important;
    }

    #wide-nav .flex-row.container > .flex-left {
        flex: 0 0 auto !important;
    }

    #wide-nav .flex-row.container > .flex-center {
        flex: 1 1 auto !important;
        min-width: 0;
    }

    #wide-nav .flex-row.container > .flex-right {
        flex: 0 0 0 !important;
        width: 0 !important;
        min-width: 0;
    }

    #wide-nav .nav-center {
        width: 100%;
        max-width: none;
    }

    #wide-nav .nav-center > .tlc-recommender-menu-item {
        margin-left: auto !important;
    }
}

/* Keep TLC's toll-free number immediately left of the event-planner CTA. */
#wide-nav .nav-center > .tlc-call-menu-item {
    margin-right: 0 !important;
    margin-left: auto !important;
}

#wide-nav .nav-center > .tlc-call-menu-item + .tlc-recommender-menu-item {
    margin-left: 7px !important;
}

/* Use a calm, single-color state when the event planner is the active page. */
#wide-nav .nav-center > .tlc-recommender-menu-item.current-menu-item > .nav-top-link,
#wide-nav .nav-center > .tlc-recommender-menu-item.current_page_item > .nav-top-link {
    background: #0b3d2e !important;
    border-color: rgba(88, 210, 152, 0.42) !important;
    box-shadow: 0 6px 20px rgba(11, 61, 46, 0.38) !important;
}

#wide-nav .nav-center > .tlc-recommender-menu-item.current-menu-item > .nav-top-link > span,
#wide-nav .nav-center > .tlc-recommender-menu-item.current_page_item > .nav-top-link > span {
    color: #fff !important;
    background: transparent !important;
    box-shadow: none !important;
}

#wide-nav .nav-center > .tlc-recommender-menu-item.current-menu-item > .nav-top-link:hover,
#wide-nav .nav-center > .tlc-recommender-menu-item.current-menu-item > .nav-top-link:focus-visible,
#wide-nav .nav-center > .tlc-recommender-menu-item.current_page_item > .nav-top-link:hover,
#wide-nav .nav-center > .tlc-recommender-menu-item.current_page_item > .nav-top-link:focus-visible {
    background: #0b3d2e !important;
    box-shadow: 0 8px 24px rgba(11, 61, 46, 0.46), 0 0 18px rgba(88, 210, 152, 0.12) !important;
}

#wide-nav .tlc-call-menu-item > .nav-top-link {
    padding-right: 4px !important;
    padding-left: 4px !important;
}

#wide-nav .tlc-call-menu-item > .nav-top-link > span {
    display: inline-flex;
    min-height: 32px;
    padding: 0 9px;
    align-items: center;
    color: #cdefff;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.035em;
    white-space: nowrap;
    background: linear-gradient(125deg, rgba(7, 26, 45, 0.96), rgba(10, 61, 91, 0.92));
    border: 1px solid rgba(91, 214, 255, 0.36);
    border-radius: 999px;
    box-shadow: 0 0 18px rgba(52, 190, 235, 0.1);
    transform-origin: center;
    transition: color 170ms ease, border-color 170ms ease, box-shadow 170ms ease, transform 170ms ease;
}

#wide-nav .tlc-call-menu-item > .nav-top-link:hover > span,
#wide-nav .tlc-call-menu-item > .nav-top-link:focus-visible > span {
    color: #fff;
    border-color: rgba(130, 229, 255, 0.72);
    box-shadow: 0 0 22px rgba(52, 190, 235, 0.2);
    transform: scale(1.1);
}

#main-menu .tlc-call-menu-item > a > span {
    color: #60d8ff;
    font-weight: 800;
}

@media (min-width: 1200px) {
    #wide-nav .nav-center {
        position: relative;
    }

    #wide-nav .nav-center > .tlc-call-menu-item {
        position: absolute !important;
        top: 0;
        right: 216px;
        z-index: 2;
    }

    #wide-nav .nav-center > .tlc-call-menu-item + .tlc-recommender-menu-item {
        margin-left: auto !important;
    }
}

/* Contact form: trade oversized row padding for useful form breathing room. */
body.page-id-29 #row-1306613697,
body.page-id-29 #row-228364671,
body.page-id-29 #main > #content > .section > .section-content > .row {
    width: calc(100% - 40px) !important;
    max-width: 1240px !important;
    margin-right: auto !important;
    margin-left: auto !important;
    padding: 20px !important;
}

body.page-id-29 #row-1306613697 .wpforms-container.wpforms-container-full.wpforms-form-abandonment.wpforms-container-save-resume.wpforms-render-modern,
body.page-id-29 #row-228364671 .wpforms-container.wpforms-container-full.wpforms-form-abandonment.wpforms-container-save-resume.wpforms-render-modern,
body.page-id-29 .wpforms-container.wpforms-container-full.wpforms-form-abandonment.wpforms-container-save-resume.wpforms-render-modern {
    padding: clamp(18px, 3vw, 32px) !important;
}

/* Keep international phone values clear of the country-flag control. */
.wpforms-container .iti {
    display: block !important;
    width: 100% !important;
}

.wpforms-container .iti input.iti__tel-input,
.wpforms-container input.wpforms-smart-phone-field.iti__tel-input {
    width: 100% !important;
    max-width: none !important;
    padding-left: 72px !important;
}

/* WPForms date dropdowns need enough room for MM, DD and YYYY plus the arrow. */
.wpforms-container.wpforms-render-modern .wpforms-field-date-dropdown-wrap {
    display: flex !important;
    gap: 10px !important;
    flex-wrap: nowrap !important;
}

.wpforms-container.wpforms-render-modern .wpforms-field-date-dropdown-wrap select[aria-label="Month"],
.wpforms-container.wpforms-render-modern .wpforms-field-date-dropdown-wrap select[aria-label="Day"] {
    width: 72px !important;
    min-width: 72px !important;
    flex: 0 0 72px !important;
    padding: 12px 28px 12px 12px !important;
    color: #eaf2ff !important;
    text-indent: 0 !important;
    text-overflow: clip !important;
}

.wpforms-container.wpforms-render-modern .wpforms-field-date-dropdown-wrap select[aria-label="Year"] {
    width: 96px !important;
    min-width: 96px !important;
    flex: 0 0 96px !important;
    padding: 12px 28px 12px 12px !important;
    color: #eaf2ff !important;
    text-indent: 0 !important;
    text-overflow: clip !important;
}

@media (min-width: 1101px) {
    body.page-id-29 #wpforms-10563-field_7-container > .wpforms-field-layout-columns > .wpforms-layout-column:first-child {
        width: 38% !important;
    }

    body.page-id-29 #wpforms-10563-field_7-container > .wpforms-field-layout-columns > .wpforms-layout-column:last-child {
        width: 62% !important;
    }

    body.page-id-29 .wpforms-container.wpforms-render-modern .wpforms-field-date-dropdown-wrap {
        gap: 6px !important;
    }

    body.page-id-29 .wpforms-container.wpforms-render-modern .wpforms-field-date-dropdown-wrap select {
        margin: 0 !important;
    }

    body.page-id-29 .wpforms-container.wpforms-render-modern .wpforms-field-date-dropdown-wrap select[aria-label="Month"],
    body.page-id-29 .wpforms-container.wpforms-render-modern .wpforms-field-date-dropdown-wrap select[aria-label="Day"] {
        width: 60px !important;
        min-width: 60px !important;
        flex-basis: 60px !important;
        padding-right: 18px !important;
        padding-left: 8px !important;
    }

    body.page-id-29 .wpforms-container.wpforms-render-modern .wpforms-field-date-dropdown-wrap select[aria-label="Year"] {
        width: 84px !important;
        min-width: 84px !important;
        flex-basis: 84px !important;
        padding-right: 18px !important;
        padding-left: 8px !important;
    }
}

@media (min-width: 850px) and (max-width: 1100px) {
    body.page-id-29 #wpforms-10563-field_7-container > .wpforms-field-layout-columns {
        flex-wrap: wrap !important;
    }

    body.page-id-29 #wpforms-10563-field_7-container > .wpforms-field-layout-columns > .wpforms-layout-column {
        width: 100% !important;
    }

    body.page-id-29 #wpforms-10563-field_7-container > .wpforms-field-layout-columns > .wpforms-layout-column + .wpforms-layout-column {
        margin-top: 14px !important;
    }
}

@media (min-width: 850px) and (max-width: 1180px) {
    #wide-nav .nav-top-link,
    #wide-nav .header-search > a {
        padding-right: 8px !important;
        padding-left: 8px !important;
        font-size: 11px !important;
        letter-spacing: 0.025em;
    }

    #wide-nav .nav-center > .tlc-recommender-menu-item > .nav-top-link {
        padding-right: 14px !important;
        padding-left: 14px !important;
    }
}

/* Tablet: retain visual hierarchy while avoiding squeezed multi-column copy. */
@media (max-width: 1024px) {
    body:not(.home) #main .page-title .page-title-inner,
    body:not(.home) #main .tlc-inline-page-title,
    body:not(.home) #main .tlc-project-cta,
    body:not(.home) #main #content > .section > .section-content {
        max-width: calc(100% - (var(--tlc-mobile-gutter) * 2));
        margin-right: auto;
        margin-left: auto;
    }

    body:not(.home) #main .page-title .page-title-inner {
        width: 100%;
        padding-inline: var(--tlc-mobile-gutter);
    }

    .tlc-gallery-showcase {
        width: calc(100% - (var(--tlc-mobile-gutter) * 2)) !important;
    }

    .page-id-27 .tlc-gallery-showcase__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .wpforms-container .wpforms-field-row {
        max-width: 100% !important;
    }

    .pum-container,
    .mfp-content,
    .cky-modal,
    .cky-preference-center {
        max-width: calc(100vw - 32px) !important;
        max-height: calc(var(--tlc-viewport-height) - 32px) !important;
    }
}

@media (max-width: 849px) {
    #header .header-main,
    #header .header-inner {
        min-height: 82px;
    }

    #header #logo img {
        width: auto !important;
        max-width: min(34vw, 160px) !important;
        max-height: 70px !important;
        object-fit: contain;
    }

    #main-menu.mobile-sidebar {
        width: min(88vw, 390px) !important;
        max-width: 390px !important;
        padding-bottom: calc(28px + var(--tlc-safe-bottom));
        overscroll-behavior: contain;
    }

    #main-menu .nav-sidebar a,
    #main-menu .nav-sidebar .toggle {
        display: flex;
        align-items: center;
    }

    #main-menu .nav-sidebar > li > a {
        padding-block: 12px !important;
        line-height: 1.25;
    }

    body:not(.home) #main .page-title,
    body:not(.home) #main .featured-title {
        min-height: clamp(150px, 27vw, 230px) !important;
    }

    body:not(.home) #main .page-title .entry-title,
    body:not(.home) #main .featured-title .entry-title,
    body:not(.home) #main .tlc-inline-page-title h1 {
        max-width: 100%;
        font-size: clamp(2.35rem, 8.5vw, 4.2rem) !important;
        line-height: 0.98 !important;
        text-wrap: balance;
    }

    body:not(.home) #main .section-title-main,
    body:not(.home) #main h2 {
        font-size: clamp(1.75rem, 6.2vw, 3rem);
        line-height: 1.08;
        text-wrap: balance;
    }

    body:not(.home) #main #content > .section {
        padding-inline: 0 !important;
    }

    body:not(.home) #main #content > .section > .section-content,
    body:not(.home) #main #content > .row,
    body:not(.home) #main .container-width,
    body:not(.home) #main .full-width .ubermenu-nav,
    body:not(.home) #main .container {
        width: 100% !important;
        max-width: 100% !important;
    }

    .page-id-27 .tlc-gallery-showcase {
        margin-top: 18px;
        padding: 22px var(--tlc-mobile-gutter) 30px;
    }

    .page-id-27 .tlc-gallery-showcase__child-group {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .page-id-27 .tlc-gallery-showcase__child-group > span {
        padding-top: 0;
    }

    .page-id-27 .tlc-gallery-showcase__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .blog .row.large-columns-3 > .col,
    .archive .row.large-columns-3 > .col {
        flex-basis: 50% !important;
        max-width: 50% !important;
    }

    .wpforms-container .wpforms-field-row,
    .wpforms-container .wpforms-field-row-block,
    .wpforms-container .wpforms-one-half,
    .wpforms-container .wpforms-one-third,
    .wpforms-container .wpforms-two-thirds {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
    }

    .wpforms-container .wpforms-field-row-block + .wpforms-field-row-block,
    .wpforms-container .wpforms-one-half + .wpforms-one-half {
        margin-top: 14px !important;
    }

    .pum-overlay,
    .mfp-wrap {
        padding: max(12px, var(--tlc-safe-top)) max(12px, var(--tlc-safe-right)) max(12px, var(--tlc-safe-bottom)) max(12px, var(--tlc-safe-left)) !important;
    }

    .pum-container,
    .mfp-content {
        width: calc(100vw - 24px) !important;
        max-width: calc(100vw - 24px) !important;
        max-height: calc(var(--tlc-viewport-height) - 24px) !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
    }

    .cky-consent-container,
    .cky-consent-container .cky-consent-bar {
        width: 100% !important;
        max-width: 100% !important;
    }

    .cky-consent-container .cky-notice-btn-wrapper {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 8px !important;
    }

    .cky-consent-container .cky-btn {
        width: 100% !important;
        margin: 0 !important;
        white-space: normal !important;
    }
}

/* Phone: one clear content column, swipeable filters, and safe fixed controls. */
@media (max-width: 640px) {
    :root {
        --tlc-mobile-gutter: 12px;
    }

    body.home .tlc-hex-hero {
        display: flex;
        flex-direction: column;
        min-height: var(--tlc-viewport-height);
        padding: 14px var(--tlc-mobile-gutter) 54px;
    }

    /* Put the message and decision path before secondary entertainment UI. */
    body.home .tlc-hex-hero__topbar {
        display: contents;
    }

    body.home .tlc-hex-hero__intro {
        order: 1;
        width: 100%;
        margin: 10px auto 0;
    }

    body.home .tlc-hex-hero__intro > p:first-child {
        margin-bottom: 10px;
        font-size: 10px;
        letter-spacing: 0.22em;
    }

    body.home .tlc-hex-hero h1 {
        max-width: 360px;
        font-size: clamp(35px, 11vw, 48px);
        line-height: 1;
    }

    body.home .tlc-hex-hero__rule {
        width: 108px;
        margin: 15px auto;
    }

    body.home .tlc-hex-hero__lede {
        max-width: 390px;
        font-size: 15px;
        line-height: 1.48;
    }

    body.home .tlc-hex-hero__actions {
        display: grid;
        grid-template-columns: 1fr;
        order: 2;
        width: min(100%, 360px);
        margin: 20px auto 0;
        gap: 10px;
    }

    body.home .tlc-hex-hero__actions .tlc-hex-button {
        width: 100%;
        min-height: 48px;
        margin: 0;
    }

    body.home .tlc-hex-hero__actions .tlc-hex-button:not(.tlc-hex-button--ghost) {
        order: 1;
    }

    body.home .tlc-hex-hero__actions .tlc-hex-button--ghost {
        order: 2;
    }

    body.home .tlc-hex-grid {
        order: 3;
        margin-top: 40px;
    }

    body.home .tlc-theme-player {
        order: 4;
        width: min(100%, 390px);
        margin: 26px auto 0;
    }

    body.home .tlc-hex-scroll-cue {
        order: 5;
    }

    .tlc-hex-grid {
        grid-auto-columns: min(86vw, 350px) !important;
    }

    /* The header menu remains available; the duplicate search control waits
       until the visitor leaves the priority view. */
    body.home.tlc-mobile-first-screen #header .mobile-nav .header-search {
        display: none !important;
    }

    /* Keep consent available, but prevent secondary fixed utilities from
       obscuring the headline and primary CTA on the opening mobile screen. */
    body.home.tlc-mobile-first-screen .gt_switcher_wrapper,
    body.home.tlc-mobile-first-screen #cya11y-container,
    body.home.tlc-mobile-first-screen #LeadboosterContainer,
    body.home.tlc-mobile-first-screen .cky-btn-revisit-wrapper,
    body.home:has(.cky-consent-container:not(.cky-hide)) .gt_switcher_wrapper,
    body.home:has(.cky-consent-container:not(.cky-hide)) #cya11y-container,
    body.home:has(.cky-consent-container:not(.cky-hide)) #LeadboosterContainer {
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }

    body.home .cky-consent-container {
        right: 8px !important;
        bottom: max(8px, var(--tlc-safe-bottom)) !important;
        left: 8px !important;
        width: auto !important;
        max-width: none !important;
    }

    body.home .cky-consent-container .cky-consent-bar {
        width: 100% !important;
        max-width: none !important;
        padding: 12px !important;
        border: 1px solid rgba(255, 255, 255, 0.24) !important;
        border-top: 3px solid var(--tlc-widget-red, #c5232c) !important;
        border-radius: 14px !important;
    }

    body.home .cky-consent-container .cky-notice .cky-title {
        margin: 0 0 4px !important;
        font-size: 16px !important;
        line-height: 1.2 !important;
    }

    body.home .cky-consent-container .cky-notice-des {
        margin: 0 !important;
        font-size: 12px !important;
        line-height: 1.35 !important;
    }

    body.home .cky-consent-container .cky-notice-btn-wrapper {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 6px !important;
        margin-top: 9px !important;
    }

    body.home .cky-consent-container .cky-btn {
        width: 100% !important;
        min-height: 40px !important;
        margin: 0 !important;
        padding: 7px 4px !important;
        font-size: 11px !important;
        line-height: 1.15 !important;
        white-space: normal !important;
    }

    .page-id-27 .tlc-gallery-showcase__primary,
    .page-id-27 .tlc-gallery-showcase__child-group > div {
        justify-content: flex-start;
        flex-wrap: nowrap;
        width: 100%;
        padding: 2px 2px 10px;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-padding-inline: 2px;
        scroll-snap-type: x proximity;
        touch-action: pan-x;
    }

    .page-id-27 .tlc-gallery-showcase__primary button,
    .page-id-27 .tlc-gallery-showcase__child-group button {
        flex: 0 0 auto;
        scroll-snap-align: start;
    }

    .page-id-27 .tlc-gallery-showcase__grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .page-id-27 .tlc-gallery-card {
        min-height: 230px;
        aspect-ratio: 4 / 3;
    }

    .blog .row.large-columns-3 > .col,
    .archive .row.large-columns-3 > .col,
    .blog .post-item,
    .archive .post-item {
        flex-basis: 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    body:not(.home) #main .post-item .col-inner {
        min-height: 0 !important;
    }

    #LeadboosterContainer {
        right: max(8px, var(--tlc-safe-right)) !important;
        bottom: calc(88px + var(--tlc-safe-bottom)) !important;
        max-width: calc(100vw - 16px) !important;
    }

    .gt_switcher_wrapper {
        max-width: 150px !important;
    }

    .gt_switcher_wrapper .gt_switcher {
        width: min(150px, calc(100vw - 160px)) !important;
        min-width: 132px;
    }

    #footer .absolute-footer {
        padding-right: var(--tlc-mobile-gutter) !important;
        padding-bottom: calc(112px + var(--tlc-safe-bottom)) !important;
        padding-left: var(--tlc-mobile-gutter) !important;
    }

    #footer .absolute-footer .footer-primary,
    #footer .absolute-footer .footer-secondary,
    #footer .absolute-footer .copyright-footer {
        float: none !important;
        width: 100%;
        text-align: center !important;
    }

    .tlc-project-cta__actions,
    .tlc-hex-home-cta__actions {
        display: grid !important;
        grid-template-columns: 1fr;
    }

    .tlc-project-cta__actions .button,
    .tlc-hex-home-cta__actions .button {
        width: 100%;
        margin: 0 !important;
    }

    /* Keep homepage modal close controls anchored inside their panels.
       Global mobile button rules otherwise convert them to relative elements. */
    [data-tlc-search-modal] .tlc-hex-modal__close,
    [data-tlc-intro-modal] .tlc-hex-modal__close {
        position: absolute !important;
        top: 12px !important;
        right: 12px !important;
        bottom: auto !important;
        left: auto !important;
        display: grid !important;
        width: 44px !important;
        min-width: 44px !important;
        max-width: 44px !important;
        height: 44px !important;
        min-height: 44px !important;
        max-height: 44px !important;
        margin: 0 !important;
        padding: 0 !important;
        place-items: center !important;
        line-height: 1 !important;
        transform: none !important;
    }

    body:not(.home) .cky-consent-container .cky-notice-btn-wrapper {
        grid-template-columns: 1fr !important;
    }

    /* Modal panels can inherit decorative pseudo-elements wider than their
       content box. Keep vertical scrolling while preventing a stray mobile
       horizontal scrollbar from appearing in the Effect Finder. */
    .tlc-hex-modal__panel,
    [data-tlc-search-modal] .tlc-hex-modal__panel,
    [data-tlc-intro-modal] .tlc-hex-modal__panel {
        max-width: calc(100vw - 20px) !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
    }

    .tlc-hex-effect-results,
    .tlc-hex-effect-result {
        min-width: 0;
        max-width: 100%;
    }

    /* Make compact category/title links reliably tappable without changing
       the card artwork or the established desktop layout. */
    body:not(.home) #main .box-text h3 a,
    body:not(.home) #main .box-text .box-text-inner > a {
        display: inline-flex !important;
        min-height: 44px !important;
        padding-block: 8px !important;
        align-items: center;
        justify-content: center;
    }

    body.page-id-29 #main a[href^="tel:"] {
        display: inline-flex;
        min-height: 44px;
        padding-block: 8px;
        align-items: center;
    }

    /* The contact page has padding at the section, row, column, WPForms
       container and form levels. Collapse the redundant mobile layers so
       fields use the available screen width instead of a narrow center strip. */
    body.page-id-29 #main .section-content {
        padding-right: 12px !important;
        padding-left: 12px !important;
    }

    body.page-id-29 #main .section-content > .row,
    body.page-id-29 #main .section-content > .row > .col,
    body.page-id-29 #main .section-content > .row > .col > .col-inner {
        width: 100% !important;
        max-width: 100% !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    body.page-id-29 .wpforms-container.wpforms-render-modern {
        width: 100% !important;
        max-width: 100% !important;
        padding: 12px !important;
    }

    body.page-id-29 .wpforms-container.wpforms-render-modern form.wpforms-form {
        width: 100% !important;
        max-width: 100% !important;
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    body.page-id-29 .wpforms-container.wpforms-render-modern .wpforms-field-date-dropdown-wrap {
        width: 100% !important;
        max-width: 100% !important;
    }

    .cky-btn-revisit {
        min-width: 44px !important;
        min-height: 44px !important;
    }

    #footer .social-icons a {
        display: inline-flex !important;
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        min-height: 44px !important;
        align-items: center;
        justify-content: center;
    }

    #footer .footer-secondary > a,
    #footer .copyright-footer a {
        display: inline-flex;
        min-height: 44px;
        padding: 10px 4px;
        align-items: center;
    }
}

@media (max-width: 380px) {
    #header #logo img {
        max-width: 118px !important;
    }

    .tlc-theme-player {
        padding-inline: 9px !important;
    }

    .tlc-theme-player__time {
        font-size: 10px;
    }

    .gt_switcher_wrapper {
        max-width: 144px !important;
    }

    .gt_switcher_wrapper .gt_switcher {
        width: 144px !important;
        min-width: 0;
    }

    #cya11y-container {
        --tlc-a11y-right: max(12px, var(--tlc-safe-right));
    }
}

@media (orientation: landscape) and (max-height: 520px) {
    .pum-container,
    .mfp-content,
    .tlc-hex-modal__panel,
    .cky-modal,
    .cky-preference-center {
        max-height: calc(var(--tlc-viewport-height) - 16px) !important;
        overflow-y: auto !important;
    }

    #LeadboosterContainer,
    #cya11y-container,
    .gt_switcher_wrapper {
        transition: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    html,
    html:focus-within {
        scroll-behavior: auto !important;
    }

    .tlc-swipe-strip,
    .tlc-hex-grid,
    .tlc-gallery-showcase__primary,
    .tlc-gallery-showcase__child-group > div {
        scroll-behavior: auto !important;
        scroll-snap-type: none !important;
    }

    #wide-nav .tlc-call-menu-item > .nav-top-link > span {
        transition: none !important;
    }
}
