/**
 * Interprete Core Engine - Modular Atomic Master Stylesheet
 * Architecture: Atomic Components Decoupled
 * Version: 6.3.0
 */

/* === MODULE: 00-typography-normalize.css === */
/* ==========================================================================
   GLOBAL TYPOGRAPHY & DESIGN SYSTEM NORMALIZER (MODULE 00)
   Standards: 'Raleway' font-family, font-weights and line-heights.
   Zero Color Overrides (Preserves all Elementor and template native colors).
   ========================================================================== */

/* Universal Font-Family Enforcer */
html, body,
h1, h2, h3, h4, h5, h6,
p, span, a, li, input, select, textarea, button,
.elementor, .elementor-widget, .elementor-heading-title,
.elementor-text-editor, .elementor-button {
    font-family: 'Raleway', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}

/* Master Heading Weights & Line-Heights (No Color Forcing) */
h1,
.elementor-heading-title.elementor-size-xl,
.elementor-heading-title.elementor-size-xxl {
    font-family: 'Raleway', sans-serif !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    letter-spacing: -0.5px !important;
}

h2,
.elementor-heading-title.elementor-size-large,
.elementor-widget-heading h2.elementor-heading-title {
    font-family: 'Raleway', sans-serif !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
}

h3,
.elementor-heading-title.elementor-size-medium,
.elementor-widget-heading h3.elementor-heading-title,
.elementor-loop-item h3 {
    font-family: 'Raleway', sans-serif !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
}

h4, h5, h6 {
    font-family: 'Raleway', sans-serif !important;
    font-weight: 600 !important;
}

/* Paragraphs & Editorial Text (No Color Forcing) */
p,
.elementor-text-editor,
.elementor-widget-text-editor p {
    font-family: 'Raleway', sans-serif !important;
    line-height: 1.65 !important;
}

/* Standardized Pill Button System */
a.elementor-button,
button.elementor-button,
.elementor-button,
.button,
.btn {
    font-family: 'Raleway', sans-serif !important;
    border-radius: 50px !important;
    font-weight: 700 !important;
    letter-spacing: 0.2px !important;
    text-transform: none !important;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background-color 0.25s ease !important;
}

/* Input Fields & Textareas */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
select,
textarea {
    font-family: 'Raleway', sans-serif !important;
    border-radius: 12px !important;
    font-size: 0.95rem !important;
    border: 1.5px solid #cbd5e1 !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

input:focus,
select:focus,
textarea:focus {
    border-color: #00c2cb !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(0, 194, 203, 0.15) !important;
}

/* === MODULE: 01-terms-modal.css === */
/* ==========================================================================
   TERMS & CONDITIONS MODAL DIALOG
   ========================================================================== */
/* Terms Modal */
.ice-terms-btn {
    background: transparent;
    border: 1.5px solid #00c2cb;
    color: #014b7a;
    padding: 7px 18px;
    border-radius: 50px;
    font-size: 0.84rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.25s ease;
}
.ice-terms-btn:hover {
    background: #00c2cb;
    color: #ffffff;
    box-shadow: 0 4px 15px rgba(0, 194, 203, 0.35);
}
.ice-modal-dialog {
    border: none;
    border-radius: 20px;
    padding: 24px;
    max-width: 600px;
    width: 90%;
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 20px 60px rgba(1, 75, 122, 0.25);
    backdrop-filter: blur(10px);
}
.ice-modal-dialog::backdrop {
    background: rgba(1, 75, 122, 0.4);
    backdrop-filter: blur(4px);
}
.ice-modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid #e2e8f0;
    padding-bottom: 12px;
    margin-bottom: 16px;
}
.ice-modal-header h3 {
    margin: 0;
    color: #014b7a;
    font-size: 1.25rem;
}
.ice-close-btn {
    background: none;
    border: none;
    font-size: 1.6rem;
    line-height: 1;
    color: #64748b;
    cursor: pointer;
}
.ice-close-btn:hover {
    color: #014b7a;
}
.ice-modal-body {
    color: #334155;
    font-size: 0.95rem;
    line-height: 1.6;
    max-height: 60vh;
    overflow-y: auto;
}

/* ==========================================================================
   STICKY BUY BAR & FLOATING CTA
   ========================================================================== */

/* === MODULE: 02-floating-bar.css === */
/* ==========================================================================
   STICKY BUY BAR & FLOATING CTA (MODULE 02)
   ========================================================================== */
/* Floating Sticky Buy Bar */
.ice-floating-bar-wrap {
    position: fixed;
    bottom: 22px;
    left: 50%;
    transform: translateX(-50%) translateY(140%);
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
    z-index: 9999;
    width: 92%;
    max-width: 980px;
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(16px);
    border: 1.5px solid rgba(0, 194, 203, 0.35);
    border-radius: 60px;
    box-shadow: 0 16px 45px rgba(1, 75, 122, 0.22);
    padding: 10px 24px;
    box-sizing: border-box;
    opacity: 0;
    pointer-events: none;
}
.ice-floating-bar-wrap.ice-active {
    transform: translateX(-50%) translateY(0);
    opacity: 1;
    pointer-events: auto;
}
.ice-floating-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    font-family: 'Raleway', sans-serif;
}
.ice-floating-info {
    display: flex;
    align-items: center;
    gap: 14px;
    overflow: hidden;
}
.ice-floating-title {
    font-weight: 700;
    color: #014b7a;
    font-size: 1.02rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 360px;
}
.ice-floating-badge {
    background: #e0f6f8;
    color: #014b7a;
    font-weight: 800;
    font-size: 0.82rem;
    padding: 4px 12px;
    border-radius: 30px;
    white-space: nowrap;
    border: 1px solid rgba(0, 194, 203, 0.3);
}
.ice-floating-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}
.ice-floating-price {
    font-size: 1.15rem;
    font-weight: 800;
    color: #00c2cb;
    margin-right: 4px;
}
.ice-floating-btn-single {
    background: #ffffff;
    color: #014b7a !important;
    border: 1.5px solid #00c2cb;
    padding: 9px 20px;
    border-radius: 50px;
    font-weight: 700;
    font-size: 0.88rem;
    text-decoration: none;
    transition: all 0.2s ease;
}
.ice-floating-btn-single:hover {
    background: #e0f6f8;
    border-color: #014b7a;
}
.ice-floating-btn-double {
    background: #014b7a;
    color: #ffffff !important;
    padding: 9px 22px;
    border-radius: 50px;
    font-weight: 700;
    font-size: 0.88rem;
    text-decoration: none;
    box-shadow: 0 4px 14px rgba(1, 75, 122, 0.25);
    transition: all 0.2s ease;
}
.ice-floating-btn-double:hover {
    background: #00c2cb;
    box-shadow: 0 4px 14px rgba(0, 194, 203, 0.4);
}

@media (max-width: 820px) {
    .ice-floating-title {
        display: none;
    }
    .ice-floating-bar-wrap {
        padding: 8px 16px;
        bottom: 12px;
    }
    .ice-floating-btn-single, .ice-floating-btn-double {
        padding: 7px 14px;
        font-size: 0.82rem;
    }
}

/* ==========================================================================
   HEADER NAVIGATION & DROPDOWN STACKING FIX
   ========================================================================== */
header,
.elementor-location-header {
    position: relative !important;
    z-index: 9999 !important;
}

.elementor-location-header > .elementor-element,
.elementor-nav-menu--dropdown,
.elementor-nav-menu ul.sub-menu {
    z-index: 99999 !important;
}

.elementor-nav-menu ul.sub-menu {
    background: #ffffff !important;
    border-radius: 16px !important;
    box-shadow: 0 16px 45px rgba(1, 75, 122, 0.2) !important;
    border: 1.5px solid rgba(0, 194, 203, 0.25) !important;
    padding: 10px 0 !important;
    min-width: 320px !important;
    max-width: 420px !important;
    overflow: hidden !important;
}

.elementor-nav-menu ul.sub-menu li a {
    font-family: 'Raleway', sans-serif !important;
    font-size: 13.5px !important;
    font-weight: 600 !important;
    color: #014b7a !important;
    padding: 10px 22px !important;
    transition: all 0.2s ease !important;
    display: block !important;
    line-height: 1.4 !important;
    white-space: normal !important;
}

.elementor-nav-menu ul.sub-menu li a:hover,
.elementor-nav-menu ul.sub-menu li a:focus {
    background: #e6f9fa !important;
    color: #00c2cb !important;
    padding-left: 26px !important;
}

/* ==========================================================================
   MOBILE DROPDOWN - HIDE THE ACTIVE-ITEM DOT
   The site draws a 10px navy (#004e79) dot under the current menu item, defined
   in inline custom CSS:
       .mi-menu .elementor-item::after { content:""; left:50%; bottom:-6px;
           width:10px; height:10px; border-radius:50%; ... }
       .mi-menu .elementor-item.elementor-item-active::after { opacity:1 }
   In the horizontal desktop bar it underlines the active item, but in the
   vertical mobile dropdown it floats in the middle of the row (owner sent a
   screenshot of it next to "Interpreting"). Hidden inside the dropdown only; the
   active item keeps its teal colour as the cue.
   ========================================================================== */
@media (max-width: 1024px) {
    .elementor-nav-menu--dropdown .elementor-item::after,
    .mi-menu .elementor-nav-menu--dropdown .elementor-item::after {
        content: none !important;
        display: none !important;
    }
}

/* ==========================================================================
   MOBILE DROPDOWN - "SLIDING CARDS" LOOK (v9.5.0)
   The stock dropdown was a flat 156px list: navy 13.5px text, no rhythm, no
   feedback, and the two sub-menus (Interpreter Training / Spain Retreat) just
   expanded into a long nested list.
   New look, same Elementor markup:
     - a full-width sheet anchored under the header with a soft navy->teal wash
       and rounded bottom corners, taller rows and hairline separators;
     - a teal accent bar that grows in on the left of the active/hovered row;
     - the rows fade+slide in with a small stagger;
     - the sub-menus collapse into an accordion whose chevron rotates 180deg
       (.elementor-active is toggled on the parent <a> by Elementor's own JS).
   ========================================================================== */
@media (max-width: 1024px) {
    /* the toggle button */
    .elementor-menu-toggle {
        border-radius: 12px !important;
        transition: background .25s ease, transform .25s ease !important;
    }
    .elementor-menu-toggle.elementor-active {
        background: rgba(0, 194, 203, .12) !important;
    }
    .elementor-menu-toggle svg {
        width: 22px !important;
        height: 22px !important;
        transition: transform .3s ease !important;
    }
    .elementor-menu-toggle.elementor-active svg {
        transform: rotate(90deg) !important;
    }

    @keyframes iceMenuIn {
        from { opacity: 0; transform: translateY(-10px); }
        to   { opacity: 1; transform: translateY(0); }
    }
    @keyframes iceMenuItemIn {
        from { opacity: 0; transform: translateX(-8px); }
        to   { opacity: 1; transform: translateX(0); }
    }

    /* THE SHELL
       The site's own header-footer.css runs the dropdown through a shell:
           .elementor-nav-menu--toggle .elementor-menu-toggle[.elementor-active]
               + .elementor-nav-menu__container { max-height/scaleY ... }
       That is an ADJACENT selector on the widget root, so it only reaches the
       panel while the root has no other element in front of it. Our rules broke
       that chain, the shell stayed at max-height:0/scaleY(0) and the panel never
       appeared.

       So: the shell keeps its own layout (nothing touches position/top/width on
       the root or its ancestors) and the panel is lifted OUT of it the CSS way:
       position:fixed on the <nav> takes it out of the shell's coordinate space,
       and `max-height:none` on the <nav> every time it is shown (never on the
       closed state) frees it from `--menu-height`. display, opacity, visibility
       and scaleY are left entirely to Elementor. */
    /* applied in BOTH states: the position and radius only. The visual shell
       (gradient, shadow) and the height live in state-scoped rules so the
       settled closed state cannot leave a white bar under the header. */
    .elementor-nav-menu--toggle .elementor-menu-toggle + .elementor-nav-menu__container,
    .elementor-nav-menu--toggle .elementor-menu-toggle[aria-expanded="true"] + .elementor-nav-menu__container,
    .elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
        position: fixed !important;
        /* the header floats as a 65px bar from y50, so the sheet starts under
           it (50 + 65 = 115) instead of cutting the logo */
        top: 115px !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        height: auto !important;
        /* NOTE: max-height is deliberately NOT set here. An earlier version
           carried `max-height: none !important` to stop the stock height leaking
           during the open/close animation, but `none` also killed the panel's own
           scrolling: the sheet grew to its full 636px content height while only
           ~541px fit below the header, so the last items could not be reached and
           scrollTop stayed at 0. The height is owned by --menu-height in the open
           state (see below) and by the collapsed rule in the closed state. */
        min-height: 0 !important;
        transform: none !important;
        box-sizing: border-box !important;
        z-index: 99999 !important;
    }
    /* the animation keeps the sheet look; once the menu is settled closed the
       panel is collapsed completely so no empty white bar can remain */
    .elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active) + .elementor-nav-menu__container {
        height: 0 !important;
        min-height: 0 !important;
        max-height: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        overflow: hidden !important;
        transition: none !important;
        animation: none !important;
    }
    /* open state: padding, scroll and look */
    .elementor-nav-menu--toggle .elementor-menu-toggle[aria-expanded="true"] + .elementor-nav-menu__container,
    .elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
        padding: 10px 0 14px !important;
        border: 0 !important;
        border-radius: 0 0 22px 22px !important;
        background: linear-gradient(180deg, #ffffff 0%, #f3fbfc 100%) !important;
        box-shadow: 0 22px 50px rgba(1, 75, 122, .18) !important;
        /* ONE scroll only. The panel stops just above the bottom of the viewport
           (top:115px + 14px breathing room) and scrolls inside itself, instead of
           growing past the screen where the last items became unreachable.
           Both the explicit max-height AND the variable are set: the explicit one
           guarantees the cap even if a stylesheet order change makes Elementor's
           `max-height: var(--menu-height)` win again. */
        max-height: calc(100dvh - 132px) !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior: contain !important;
        /* the page scrollbar sits on top of a fixed panel otherwise (the sheet is
           465px wide inside a 480px viewport) */
        max-width: calc(100vw - 16px) !important;
    }
    /* Keep the sheet look while the panel is closing. The theme animates
       max-height/scaleY, so for ~0.3s after the tap the panel is still painted
       but the classes are gone and every rule above stopped matching - the stock
       Elementor dropdown flashed behind the menu.
       IMPORTANT: this must NOT be a stateless rule. The closed panel still
       occupies its box for the length of the animation, so a permanent shell
       left a white empty bar under the header. The shell is applied to every
       state EXCEPT the settled closed one, and the settled closed state is
       collapsed to nothing. */
    .elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active) + .elementor-nav-menu__container,
    .elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active) + .elementor-nav-menu__container * {
        display: none !important;
        height: 0 !important;
        min-height: 0 !important;
        max-height: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        border: 0 !important;
        box-shadow: none !important;
        background: transparent !important;
        overflow: hidden !important;
    }
    /* the shell look during the opening/closing animation (never after it
       settles: the settled closed state is collapsed above) */
    .elementor-nav-menu--toggle .elementor-menu-toggle + .elementor-nav-menu__container {
        border: 0 !important;
        box-sizing: border-box !important;
        border-radius: 0 0 22px 22px !important;
        background: linear-gradient(180deg, #ffffff 0%, #f3fbfc 100%) !important;
        box-shadow: 0 22px 50px rgba(1, 75, 122, .18) !important;
        z-index: 99999 !important;
    }
    .elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active) + .elementor-nav-menu__container {
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    /* The site's toggle JS writes the panel height into the inline custom
       property `--menu-height` (0 when open, 1000vmax when closed), which
       Elementor then consumes as `max-height: var(--menu-height)` inside its own
       declaration block. Overriding a declaration that uses that variable is a
       dead end: an empty max-height loses, and an inline JS value wins over
       `!important`. So the variable itself is overridden: the open state gets the
       real viewport height and the CLOSED state gets a hard 0, which is exactly
       what Elementor's own closed rule wants (max-height 0 + scaleY 0). */
    .elementor-nav-menu--toggle .elementor-menu-toggle.elementor-active + .elementor-nav-menu__container {
        --menu-height: calc(100dvh - 132px) !important;
    }
    .elementor-nav-menu--toggle .elementor-menu-toggle:not(.elementor-active) + .elementor-nav-menu__container {
        --menu-height: 0px !important;
    }

    /* the inner <ul> must not fight the nav box */
    nav.elementor-nav-menu--dropdown.elementor-nav-menu__container > ul {
        background: transparent !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        min-width: 0 !important;
        max-width: none !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* the rows */
    .elementor-nav-menu--dropdown > ul > li > a,
    .elementor-nav-menu--dropdown .elementor-sub-item {
        position: relative !important;
        display: flex !important;
        align-items: center !important;
        min-height: 50px !important;
        padding: 13px 22px 13px 30px !important;
        font-family: 'Raleway', sans-serif !important;
        font-size: 15.5px !important;
        font-weight: 600 !important;
        letter-spacing: .1px !important;
        color: #014b7a !important;
        background: transparent !important;
        border-radius: 12px !important;
        transition: background .22s ease, color .22s ease, padding-left .22s ease !important;
    }
    .elementor-nav-menu--dropdown > ul > li > a::before {
        content: "" !important;
        position: absolute !important;
        left: 18px !important;
        top: 50% !important;
        width: 3px !important;
        height: 0 !important;
        border-radius: 3px !important;
        background: #00c2cb !important;
        transform: translateY(-50%) !important;
        transition: height .25s cubic-bezier(.16, 1, .3, 1) !important;
    }
    .elementor-nav-menu--dropdown > ul > li > a:hover,
    .elementor-nav-menu--dropdown > ul > li > a:focus {
        background: rgba(0, 194, 203, .09) !important;
        padding-left: 34px !important;
    }
    .elementor-nav-menu--dropdown > ul > li > a:hover::before,
    .elementor-nav-menu--dropdown > ul > li > a:focus::before {
        height: 22px !important;
    }
    .elementor-nav-menu--dropdown > ul > li > a.elementor-item-active {
        color: #00a7b0 !important;
        background: rgba(0, 194, 203, .1) !important;
    }
    .elementor-nav-menu--dropdown > ul > li > a.elementor-item-active::before {
        height: 22px !important;
    }
    /* the rows */
    .elementor-nav-menu--dropdown > ul > li {
        border-bottom: 1px solid rgba(1, 75, 122, .07) !important;
    }
    .elementor-nav-menu--dropdown > ul > li:last-child {
        border-bottom: 0 !important;
    }

    /* chevron */
    .elementor-nav-menu--dropdown .sub-arrow {
        margin-left: auto !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex: 0 0 26px !important;
        width: 26px !important;
        height: 26px !important;
        padding: 0 !important;
        line-height: 0 !important;
        border-radius: 50% !important;
        background: rgba(1, 75, 122, .06) !important;
        color: #014b7a !important;
        transition: transform .3s ease, background .25s ease !important;
    }
    /* Centring by layout: the arrow is taken out of the flow and pinned to the
       exact centre of the capsule, so the font/line-height of the parent anchor
       can never push it off (it kept landing a few px high). */
    .elementor-nav-menu--dropdown .sub-arrow svg {
        position: absolute !important;
        top: 50% !important;
        left: 50% !important;
        width: 11px !important;
        height: 11px !important;
        max-width: 11px !important;
        max-height: 11px !important;
        margin: 0 !important;
        padding: 0 !important;
        display: block !important;
        transform: translate(-50%, -50%) rotate(0deg) !important;
        transform-origin: center center !important;
    }
    .elementor-nav-menu--dropdown .sub-arrow {
        position: relative !important;
    }
    /* the toggle chevron. Two things are needed:
       1. the flip must be a REAL 180deg about the icon's own centre. The site
          flips it at rest through `--direction-multiplier` on the <svg>, so the
          resting state is reset to 0 first;
       2. the 180deg rotate is applied to the <path> (not the <svg>), because the
          <svg> already carries the translate(-50%,-50%) used for centring and
          `transform-origin: center` resolves against the SVG viewBox, which made
          the rotation look like nothing happened. Moving the path keeps the
          centring untouched. */
    .elementor-nav-menu--dropdown .sub-arrow svg path {
        transform: rotate(0deg) !important;
        transform-origin: 160px 256px !important;   /* centre of the 320x512 caret */
        transition: transform .3s ease !important;
    }
    .elementor-nav-menu--dropdown a.elementor-active .sub-arrow path {
        transform: rotate(180deg) !important;
    }
    .elementor-nav-menu--dropdown a.elementor-active .sub-arrow {
        background: rgba(0, 194, 203, .18) !important;
    }

    /* the sub-menu look only - how it opens (display/opacity/aria) is untouched.
       Nested scroll is what made the menu feel locked on touch: the panel and the
       sub-menu each had their own scroller. Now the sub-menu has NO scroll of its
       own (it just grows inside the panel) and the page is compacted instead so
       everything still fits: 2 columns, tighter rows and tighter top-level rows. */
    .elementor-nav-menu--dropdown ul.sub-menu {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        column-gap: 4px !important;
        margin: 0 0 8px !important;
        padding: 4px 8px 6px 10px !important;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        left: auto !important;
        right: auto !important;
        max-height: none !important;
        height: auto !important;
        overflow: visible !important;
        background: rgba(0, 194, 203, .05) !important;
        border: 0 !important;
        border-left: 3px solid rgba(0, 194, 203, .45) !important;
        border-radius: 0 14px 14px 0 !important;
        box-shadow: none !important;
    }
    .elementor-nav-menu--dropdown ul.sub-menu > li {
        border-bottom: 0 !important;
        animation: none !important;
    }
    .elementor-nav-menu--dropdown .sub-menu .elementor-sub-item {
        min-height: 34px !important;
        height: 100% !important;
        padding: 6px 10px !important;
        font-size: 12px !important;
        font-weight: 500 !important;
        line-height: 1.22 !important;
        color: #3f5f72 !important;
        border-radius: 9px !important;
    }
    .elementor-nav-menu--dropdown .sub-menu .elementor-sub-item:hover,
    .elementor-nav-menu--dropdown .sub-menu .elementor-sub-item:focus {
        color: #00a7b0 !important;
        background: rgba(0, 194, 203, .12) !important;
    }
    .elementor-nav-menu--dropdown .sub-menu .elementor-sub-item::before {
        content: none !important;
    }
    /* top-level rows: a bit tighter so the open sub-menus still fit without the
       panel needing its own scrollbar on a phone */
    .elementor-nav-menu--dropdown > ul > li > a {
        min-height: 44px !important;
        padding: 10px 20px 10px 28px !important;
    }
}

/* === MODULE: 03-cart-drawer.css === */
/* ==========================================================================
   SLIDE-OVER MINI-CART DRAWER & FLOATING TRIGGER
   ========================================================================== */
/* ==========================================================================
   SLIDE-OVER MINI-CART DRAWER & FLOATING TRIGGER
   ========================================================================== */
/* ==========================================================================
   SLIDE-OVER MINI-CART DRAWER & FLOATING TRIGGER
   ========================================================================== */
.ice-cart-overlay {
    position: fixed;
    inset: 0;
    background: rgba(1, 75, 122, 0.45);
    backdrop-filter: blur(5px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    z-index: 999998;
}
.ice-cart-overlay.ice-open {
    opacity: 1;
    pointer-events: auto;
}
.ice-cart-drawer {
    position: fixed;
    top: 0;
    right: -460px;
    width: 420px;
    max-width: 92vw;
    height: 100vh;
    background: #ffffff;
    z-index: 999999;
    box-shadow: -10px 0 50px rgba(1, 75, 122, 0.25);
    transition: right 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    display: flex;
    flex-direction: column;
    font-family: 'Raleway', sans-serif;
    box-sizing: border-box;
}
.ice-cart-drawer.ice-open {
    right: 0;
}
.ice-cart-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 22px 24px;
    border-bottom: 1px solid #f1f5f9;
    background: #fafcff;
}
.ice-cart-header-title {
    display: flex;
    align-items: center;
    gap: 10px;
}
.ice-cart-header-title h3 {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 800;
    color: #014b7a;
}
button.ice-cart-close,
.ice-cart-drawer button.ice-cart-close {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    cursor: pointer !important;
    color: #64748b !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 50% !important;
    transition: all 0.2s ease !important;
    line-height: 1 !important;
}
button.ice-cart-close svg,
.ice-cart-drawer button.ice-cart-close svg {
    stroke: #64748b !important;
    width: 20px !important;
    height: 20px !important;
    transition: stroke 0.2s ease !important;
}
button.ice-cart-close:hover,
.ice-cart-drawer button.ice-cart-close:hover {
    background: #f1f5f9 !important;
    background-color: #f1f5f9 !important;
    color: #014b7a !important;
}
button.ice-cart-close:hover svg,
.ice-cart-drawer button.ice-cart-close:hover svg {
    stroke: #014b7a !important;
}
.ice-cart-body {
    flex: 1;
    overflow-y: auto;
    padding: 22px;
}
.ice-cart-items-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.ice-cart-item {
    background: #f8fafc;
    border: 1.5px solid #e2e8f0;
    border-radius: 16px;
    padding: 16px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    transition: border-color 0.2s ease;
}
.ice-cart-item:hover {
    border-color: rgba(0, 194, 203, 0.5);
}
.ice-cart-item-info {
    flex: 1;
}
.ice-cart-item-title {
    margin: 0 0 6px 0;
    font-size: 0.95rem;
    font-weight: 700;
    color: #014b7a;
    line-height: 1.35;
}
.ice-cart-item-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 0.88rem;
}
.ice-cart-item-qty {
    color: #64748b;
    font-weight: 600;
}
.ice-cart-item-price {
    color: #00c2cb;
    font-weight: 800;
    font-size: 1rem;
}
button.ice-cart-item-remove,
.ice-cart-drawer button.ice-cart-item-remove {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    color: #cbd5e1 !important;
    font-size: 24px !important;
    cursor: pointer !important;
    padding: 4px 8px !important;
    border-radius: 8px !important;
    transition: all 0.2s ease !important;
    line-height: 1 !important;
    width: auto !important;
    height: auto !important;
    min-width: unset !important;
    min-height: unset !important;
}
button.ice-cart-item-remove:hover,
.ice-cart-drawer button.ice-cart-item-remove:hover {
    color: #e11d48 !important;
    background: #ffe4e6 !important;
    background-color: #ffe4e6 !important;
}
.ice-cart-empty-wrap {
    text-align: center;
    padding: 40px 10px;
    color: #64748b;
}
.ice-cart-empty-icon {
    color: #00c2cb;
    margin-bottom: 12px;
}
.ice-cart-empty-title {
    font-size: 1.1rem;
    font-weight: 800;
    color: #014b7a;
    margin: 0 0 6px 0;
}
.ice-cart-empty-sub {
    font-size: 0.88rem;
    margin: 0 0 20px 0;
    color: #94a3b8;
}
.ice-cart-empty-btn {
    display: inline-block;
    background: #00c2cb;
    color: #ffffff !important;
    padding: 10px 22px;
    border-radius: 50px;
    font-weight: 700;
    font-size: 0.88rem;
    text-decoration: none;
}
.ice-cart-footer {
    padding: 22px 24px;
    border-top: 1px solid #f1f5f9;
    background: #fafcff;
}
.ice-cart-subtotal-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}
.ice-cart-subtotal-label {
    font-size: 0.95rem;
    font-weight: 700;
    color: #64748b;
}
.ice-cart-subtotal-val {
    font-size: 1.35rem;
    font-weight: 800;
    color: #014b7a;
}
.ice-cart-legal-notice {
    font-size: 0.78rem;
    color: #94a3b8;
    line-height: 1.4;
    margin-bottom: 14px;
}
.ice-cart-legal-notice a {
    color: #00c2cb;
    text-decoration: underline;
}
.ice-cart-btn-checkout {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    box-sizing: border-box;
    background: linear-gradient(135deg, #00c2cb, #014b7a);
    color: #ffffff !important;
    padding: 14px 20px;
    border-radius: 50px;
    font-weight: 800;
    font-size: 1rem;
    text-decoration: none;
    box-shadow: 0 8px 25px rgba(0, 194, 203, 0.35);
    transition: all 0.25s ease;
}
.ice-cart-btn-checkout:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 30px rgba(0, 194, 203, 0.5);
}
.ice-cart-badges {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    font-size: 0.76rem;
    font-weight: 600;
    color: #94a3b8;
    margin-top: 12px;
}
.ice-cart-trigger {
    position: fixed;
    bottom: 28px;
    right: 28px;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: linear-gradient(135deg, #00c2cb, #014b7a);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 25px rgba(0, 194, 203, 0.45);
    cursor: pointer;
    z-index: 999990;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.ice-cart-trigger:hover {
    transform: scale(1.08);
    box-shadow: 0 12px 32px rgba(0, 194, 203, 0.6);
}
.ice-cart-badge-count {
    position: absolute;
    top: -3px;
    right: -3px;
    background: #e11d48;
    color: #ffffff;
    font-size: 11px;
    font-weight: 800;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #ffffff;
    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}

/* === MODULE: 04-participant-form.css === */
/* ==========================================================================
   PARTICIPANT INFORMATION FORM ENGINE
   ========================================================================== */
/* ==========================================================================
   PARTICIPANT INFORMATION FORM ENGINE
   ========================================================================== */
/* ==========================================================================
   PARTICIPANT INFORMATION FORM ENGINE (ELITE STANDARD)
   ========================================================================== */
.ice-participant-form-wrapper {
    max-width: 920px;
    margin: 0 auto;
    font-family: 'Raleway', sans-serif;
    color: #334155;
    padding: 10px 0 40px 0;
}
section.form-participant-contact {
    border-left: 3px solid #00c2cb !important;
    position: relative;
    margin-left: 20px;
    padding-left: 0;
}
.ice-step-card {
    position: relative;
    margin-bottom: 42px;
}
.title-step {
    display: flex !important;
    align-items: flex-start !important;
    gap: 16px !important;
    position: relative !important;
    left: -20px !important;
    margin-bottom: 20px !important;
}
.title-step p:first-child,
.title-step span:first-child {
    display: none !important;
}
.step-2 .title-step,
.step-3 .title-step {
    align-items: flex-start !important;
}
.step-2 .title-step .ice-number-step,
.step-3 .title-step .ice-number-step,
.step-2 .title-step p.number-step,
.step-3 .title-step p.number-step,
.ice-number-step,
.title-step p.number-step,
p.number-step {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    border-radius: 50% !important;
    background: #014b7a !important;
    color: #ffffff !important;
    border: 3.5px solid #00c2cb !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-weight: 800 !important;
    font-size: 1.15rem !important;
    box-shadow: 0 4px 12px rgba(0, 194, 203, 0.35) !important;
    flex-shrink: 0 !important;
    line-height: 1 !important;
    position: relative !important;
    margin: -3px 0 0 0 !important;
    z-index: 2 !important;
}
.title-step h3,
.title-step div h3 {
    margin: 0 !important;
    color: #014b7a !important;
    font-size: 1.55rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    font-family: 'Raleway', sans-serif !important;
    letter-spacing: -0.3px;
}
.title-step h4,
.title-step div h4 {
    margin: 4px 0 0 0 !important;
    color: #00c2cb !important;
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    font-family: 'Raleway', sans-serif !important;
}
.step-title-wrap {
    display: flex;
    flex-direction: column;
}
.step-title-wrap h3 {
    margin: 0 !important;
    color: #014b7a !important;
    font-size: 1.6rem !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
}
.step-title-wrap h4 {
    margin: 4px 0 0 0 !important;
    color: #00c2cb !important;
    font-size: 1.2rem !important;
    font-weight: 700 !important;
    font-family: 'Raleway', sans-serif !important;
}
.padding-form-participant {
    padding: 0 0 10px 32px !important;
}
.form-participant-contact .grupo-form--item br,
.grupo-form--item br {
    display: none !important;
}
.form-participant-contact .grupo-form--item p,
.grupo-form--item p {
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
}
.grupo-form-grup-2 {
    display: flex !important;
    gap: 20px !important;
    margin-bottom: 18px !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
}
.grupo-form-grup-2 .grupo-form--item {
    flex: 1 1 calc(50% - 10px) !important;
    min-width: 260px !important;
}
.grupo-form--item label {
    display: none !important;
}
.form-participant-contact input[type="text"],
.form-participant-contact input[type="email"],
.form-participant-contact input[type="tel"],
.form-participant-contact input[type="date"],
.style-input input[type="text"],
.style-input input[type="tel"],
.style-input input[type="email"],
.style-input input[type="date"],
.style-date input[type="date"],
input#Arrival-Date,
input#Departure-Date,
input#date-form {
    width: 100% !important;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    line-height: normal !important;
    background: #f8fafc !important;
    border: 1.5px solid #e2e8f0 !important;
    border-radius: 30px !important;
    padding: 10px 22px !important;
    font-size: 0.95rem !important;
    color: #334155 !important;
    font-family: 'Raleway', sans-serif !important;
    outline: none !important;
    box-sizing: border-box !important;
    margin: 0 0 12px 0 !important;
    transition: all 0.25s ease !important;
}
.form-participant-contact input[type="date"]::-webkit-calendar-picker-indicator {
    cursor: pointer;
    padding: 4px;
    filter: invert(30%) sepia(80%) saturate(1000%) hue-rotate(150deg);
}
.style-input input:focus,
.style-date input:focus,
.form-participant-contact input:focus {
    border-color: #00c2cb !important;
    background: #ffffff !important;
    box-shadow: 0 0 0 4px rgba(0, 194, 203, 0.15) !important;
}
.style-file input[type="file"] {
    font-size: 0.9rem;
    color: #64748b;
    padding: 8px 0;
}
.file-upload-row {
    align-items: center;
}
.file-upload-note {
    color: #64748b !important;
    font-size: 0.88rem !important;
    font-weight: 600 !important;
    margin: 0 !important;
    font-family: 'Raleway', sans-serif !important;
}
.dietary-wrap {
    margin-top: 18px;
    padding: 16px 20px;
    background: #f8fafc;
    border-radius: 16px;
    border: 1px solid #f1f5f9;
}
.dietary-wrap h5 {
    color: #014b7a !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    margin: 0 0 10px 0 !important;
    font-family: 'Raleway', sans-serif !important;
}
.dietary-radios .wpcf7-list-item {
    display: inline-flex !important;
    align-items: center !important;
    margin-right: 20px !important;
    font-weight: 600 !important;
    color: #475569 !important;
    cursor: pointer;
}
.dietary-radios input[type="radio"] {
    accent-color: #00c2cb;
    margin-right: 6px;
    cursor: pointer;
}
.step-5 {
    border-left: 3px solid #00c2cb !important;
    margin-left: 20px;
    padding-left: 0;
}
.step-terms-title h3 {
    color: #014b7a !important;
    font-size: 1.35rem !important;
    font-weight: 800 !important;
    margin: 0 0 12px 0 !important;
    font-family: 'Raleway', sans-serif !important;
}
.width-terms-form {
    font-size: 0.95rem;
    line-height: 1.6;
    color: #475569;
}
.width-terms-form a {
    color: #00c2cb !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
}
.step-6 {
    border-left: 3px solid transparent !important;
    margin-left: 20px;
    padding-left: 0;
}
.signature-row {
    display: flex !important;
    gap: 30px !important;
    align-items: flex-end !important;
    flex-wrap: wrap !important;
    margin-bottom: 25px !important;
}
.style-Signature {
    flex: 1 1 340px !important;
}
.dscf7_signature_inner {
    position: relative !important;
    display: inline-block !important;
    max-width: 100% !important;
}
canvas#digital_signature-pad_signature-139,
.dscf7_signature canvas {
    background-image: url('https://interpretertranslation.com/wp-content/uploads/2024/02/AEG-Rewards-canvas-background.jpg') !important;
    background-repeat: no-repeat !important;
    background-position: center bottom !important;
    background-size: 100% auto !important;
    border-bottom: 2px solid #014b7a !important;
    width: 340px !important;
    max-width: 100% !important;
    height: 125px !important;
    border-radius: 6px 6px 0 0 !important;
    box-sizing: border-box !important;
}
.dscf7_signature_inner .clearButton {
    position: absolute !important;
    top: 6px !important;
    right: 6px !important;
    background: #f1f5f9 !important;
    color: #64748b !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 6px !important;
    width: 26px !important;
    height: 26px !important;
    cursor: pointer !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    padding: 0 !important;
    min-width: unset !important;
    min-height: unset !important;
}
.style-Signature h5,
.style-date h5 {
    color: #014b7a !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    margin: 8px 0 0 0 !important;
    font-family: 'Raleway', sans-serif !important;
}
.style-date {
    flex: 1 1 240px !important;
}
.padding-form-participant-send {
    padding: 10px 0 0 32px !important;
}
input[type="submit"].wpcf7-submit,
.wpcf7 input[type="submit"],
.form-box-contact input[type="submit"],
#grupo-submit input[type="submit"],
input.wpcf7-form-control.wpcf7-submit,
#grupo-submit input.wpcf7-submit,
.wpcf7-submit {
    background: linear-gradient(135deg, #00c2cb 0%, #014b7a 100%) !important;
    background-color: #00c2cb !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 50px !important;
    padding: 16px 46px !important;
    font-size: 1.05rem !important;
    font-weight: 800 !important;
    cursor: pointer !important;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    box-shadow: 0 10px 25px rgba(0, 194, 203, 0.35) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    outline: none !important;
    display: inline-block !important;
    width: auto !important;
}
input[type="submit"].wpcf7-submit:hover,
.wpcf7 input[type="submit"]:hover,
.form-box-contact input[type="submit"]:hover,
#grupo-submit input[type="submit"]:hover,
input.wpcf7-form-control.wpcf7-submit:hover,
#grupo-submit input.wpcf7-submit:hover,
.wpcf7-submit:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 14px 30px rgba(1, 75, 122, 0.45) !important;
    filter: brightness(1.08) !important;
    border: none !important;
}

@media (max-width: 767px) {
    section.form-participant-contact,
    .step-5,
    .step-6 {
        margin-left: 14px !important;
    }
    .title-step {
        left: -14px !important;
    }
    .ice-number-step {
        width: 32px !important;
        height: 32px !important;
        font-size: 0.95rem !important;
    }
    .padding-form-participant,
    .padding-form-participant-send {
        padding-left: 20px !important;
    }
    .grupo-form-grup-2 .grupo-form--item {
        flex: 1 1 100% !important;
        min-width: 100% !important;
    }
}

/* ==========================================================================
   CONTACT US FORM & GLOBAL ELEMENTOR SUBMIT BUTTONS
   ========================================================================== */
.elementor-form .elementor-button[type="submit"],
.elementor-field-type-submit .elementor-button,
.elementor-field-type-submit button,
.wpcf7-form input[type="submit"] {
    background: linear-gradient(135deg, #014b7a 0%, #008299 100%) !important;
    background-color: #014b7a !important;
    color: #ffffff !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.5px !important;
    padding: 14px 38px !important;
    border-radius: 50px !important;
    border: none !important;
    box-shadow: 0 4px 15px rgba(1, 75, 122, 0.28) !important;
    transition: all 0.28s cubic-bezier(0.4, 0, 0.2, 1) !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    margin-top: 14px !important;
}

.elementor-form .elementor-button[type="submit"]:hover,
.elementor-field-type-submit .elementor-button:hover,
.elementor-field-type-submit button:hover,
.wpcf7-form input[type="submit"]:hover {
    background: linear-gradient(135deg, #00c2cb 0%, #014b7a 100%) !important;
    background-color: #00c2cb !important;
    color: #ffffff !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(0, 194, 203, 0.45) !important;
}

.elementor-form .elementor-field-group .elementor-field-textual {
    font-family: 'Raleway', sans-serif !important;
    border: 1.5px solid #cbd5e1 !important;
    border-radius: 12px !important;
    padding: 12px 18px !important;
    font-size: 0.95rem !important;
    color: #1e293b !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

.elementor-form .elementor-field-group .elementor-field-textual:focus {
    border-color: #00c2cb !important;
    box-shadow: 0 0 0 3px rgba(0, 194, 203, 0.15) !important;
    outline: none !important;
}

.elementor-field-type-acceptance label {
    font-family: 'Raleway', sans-serif !important;
    font-size: 0.92rem !important;
    color: #475569 !important;
    font-weight: 500 !important;
    cursor: pointer !important;
}

/* === MODULE: 05-woocommerce.css === */
/* ==========================================================================
   WOOCOMMERCE CART, CHECKOUT & PRODUCT GRID STYLES (MODULE 05)
   ========================================================================== */

/* Hide default redundant theme/block title */
.woocommerce-checkout h1.entry-title,
.woocommerce-cart h1.entry-title,
.woocommerce-shop h1.page-title,
.post-type-archive-product h1.page-title,
.woocommerce-products-header__title,
.woocommerce-products-header,
.wp-block-woocommerce-checkout > h1,
.wp-block-woocommerce-cart > h1,
.entry-header:has(+ .entry-content .wc-block-checkout),
.entry-header:has(+ .entry-content .woocommerce-checkout),
.entry-title {
    display: none !important;
}

/* Global WooCommerce Notices (Styled Alert Toasts) */
.woocommerce-notices-wrapper:empty {
    display: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.woocommerce-notices-wrapper:not(:empty) {
    max-width: 1140px !important;
    margin: 125px auto 20px auto !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
    position: relative !important;
    z-index: 99 !important;
}

/* Global WooCommerce notices — editorial/brand style.
   Deliberately NOT the generic "pastel fill + fat left border + soft shadow"
   alert look: white surface, hairline border, a single 4px brand accent rule
   and a plain underlined action link. */
.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
    display: block !important;
    position: relative !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
    border: 1px solid #e8eef5 !important;
    border-left: 4px solid #014b7a !important;
    border-radius: 12px !important;
    padding: 16px 22px !important;
    margin: 0 0 18px 0 !important;
    color: #334155 !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 0.94rem !important;
    font-weight: 600 !important;
    line-height: 1.55 !important;
    list-style: none !important;
    box-shadow: none !important;
    min-height: 0 !important;
    gap: 0 !important;
}

/* Drop WooCommerce's font-icon bullets */
.woocommerce-error::before,
.woocommerce-message::before,
.woocommerce-info::before {
    display: none !important;
    content: none !important;
}

.woocommerce-message { border-left-color: #014b7a !important; }
.woocommerce-info    { border-left-color: #00c2cb !important; }
.woocommerce-error   { border-left-color: #b42318 !important; }

/* Action links (e.g. "Undo?"): quiet navy link, not a red call-out */
.woocommerce-error a,
.woocommerce-message a,
.woocommerce-info a {
    float: none !important;
    display: inline !important;
    color: #014b7a !important;
    font-weight: 700 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
}

.woocommerce-error a:hover,
.woocommerce-message a:hover,
.woocommerce-info a:hover {
    color: #00c2cb !important;
    text-decoration: none !important;
}

/* Errors are rendered as a <ul> */
.woocommerce-error li {
    margin: 0 0 6px 0 !important;
    padding: 0 !important;
}

.woocommerce-error li:last-child {
    margin-bottom: 0 !important;
}

/* NOTE: .woocommerce-cart / .woocommerce-checkout are classes WordPress puts on
   <body>. Styling them as a page container constrained the whole page
   (max-width 1200 + margins) which clipped the full-bleed header/footer.
   They are neutralised further down in the CART & CHECKOUT SHELL FIX block. */
.wp-block-woocommerce-checkout,
.wp-block-woocommerce-cart,
.wc-block-cart,
.wc-block-checkout,
.woocommerce-cart,
.woocommerce-checkout {
    max-width: 1200px !important;
    margin: 45px auto 80px auto !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
    font-family: 'Raleway', sans-serif !important;
}

/* 2-Column Grid Architecture with 32px Gap */
.wc-block-components-sidebar-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 390px !important;
    gap: 32px !important;
    align-items: start !important;
    width: 100% !important;
}

/* Hide empty helper div child */
.wc-block-components-sidebar-layout > div:not(.wc-block-components-main):not(.wc-block-components-sidebar):not(.wc-block-checkout__main):not(.wc-block-checkout__sidebar):not(.wc-block-cart__main):not(.wc-block-cart__sidebar) {
    display: none !important;
}

/* Cart & Checkout Cards */
.wc-block-components-sidebar-layout .wc-block-components-main,
.wc-block-cart__main,
.wc-block-checkout__main,
.woocommerce-cart-form {
    grid-column: 1 !important;
    width: 100% !important;
    background: #ffffff !important;
    border: 1.5px solid #e2e8f0 !important;
    border-radius: 24px !important;
    padding: 36px 32px !important;
    box-shadow: 0 10px 35px rgba(1, 75, 122, 0.05) !important;
    box-sizing: border-box !important;
}

.wc-block-components-sidebar-layout .wc-block-components-sidebar,
.wc-block-cart__sidebar,
.wc-block-checkout__sidebar,
.cart-collaterals .cart_totals {
    grid-column: 2 !important;
    width: 100% !important;
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%) !important;
    border: 1.5px solid #e2e8f0 !important;
    border-radius: 24px !important;
    padding: 30px 24px !important;
    box-shadow: 0 12px 40px rgba(1, 75, 122, 0.07) !important;
    box-sizing: border-box !important;
}

/* Headings inside Cart/Checkout */
.wc-block-components-title,
.wc-block-cart h2,
.wc-block-checkout h2,
.wc-block-cart h3,
.wc-block-checkout h3,
.cart_totals h2 {
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-weight: 800 !important;
    font-size: 1.25rem !important;
    letter-spacing: -0.2px !important;
    margin-bottom: 18px !important;
    text-transform: capitalize !important;
}

/* Form Inputs & Selects */
.wc-block-components-text-input input,
.wc-block-components-combobox input,
.wc-block-components-country-input input,
.wc-block-checkout input[type="text"],
.wc-block-checkout input[type="email"],
.wc-block-checkout input[type="tel"],
.wc-block-checkout select,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout select {
    border-radius: 12px !important;
    border: 1.5px solid #cbd5e1 !important;
    background: #ffffff !important;
    padding: 14px 18px !important;
    font-size: 0.95rem !important;
    color: #1e293b !important;
    font-family: 'Raleway', sans-serif !important;
    box-shadow: 0 1px 2px rgba(0,0,0,0.03) !important;
    transition: all 0.2s ease !important;
}

.wc-block-components-text-input input:focus,
.wc-block-components-combobox input:focus,
.wc-block-checkout input:focus,
.wc-block-checkout select:focus,
.woocommerce-checkout input:focus,
.woocommerce-checkout select:focus {
    border-color: #00c2cb !important;
    background: #ffffff !important;
    box-shadow: 0 0 0 4px rgba(0, 194, 203, 0.18) !important;
    outline: none !important;
}

/* Order Summary Clean 2-Part Item Layout */
.wc-block-components-order-summary-item {
    display: flex !important;
    align-items: flex-start !important;
    gap: 14px !important;
    padding: 16px 0 !important;
    border-bottom: 1px dashed #cbd5e1 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.wc-block-components-order-summary-item__image {
    flex: 0 0 48px !important;
    width: 48px !important;
    height: 48px !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    background: #f1f5f9 !important;
}

.wc-block-components-order-summary-item__image img {
    border-radius: 12px !important;
    object-fit: cover !important;
}

.wc-block-components-order-summary-item__description {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    padding-right: 8px !important;
}

.wc-block-components-order-summary-item__description .wc-block-cart-item__prices {
    display: none !important;
}

.wc-block-components-product-name,
.wc-block-components-order-summary-item__title,
.wc-block-components-order-summary-item h3,
.wc-block-components-order-summary-item h4,
.wc-block-components-order-summary-item a,
.product-name a {
    color: #014b7a !important;
    font-size: 0.92rem !important;
    font-weight: 700 !important;
    font-family: 'Raleway', sans-serif !important;
    line-height: 1.35 !important;
    text-decoration: none !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
    margin-bottom: 4px !important;
    display: block !important;
    transition: color 0.2s ease !important;
}
.wc-block-components-product-name:hover,
.product-name a:hover {
    color: #00c2cb !important;
}

.wc-block-components-order-summary-item__description p,
.wc-block-components-product-metadata p {
    margin: 0 !important;
    font-size: 0.78rem !important;
    color: #64748b !important;
    line-height: 1.4 !important;
    word-break: break-word !important;
    overflow-wrap: break-word !important;
}

.wc-block-components-order-summary-item__total-price {
    flex: 0 0 auto !important;
    text-align: right !important;
    white-space: nowrap !important;
}

.wc-block-components-order-summary-item__total-price .wc-block-components-product-price__value {
    color: #014b7a !important;
    font-weight: 800 !important;
    font-size: 1.02rem !important;
    font-family: 'Raleway', sans-serif !important;
}

/* Coupon Form & Apply Button */
.wc-block-components-totals-coupon__form {
    display: flex !important;
    gap: 10px !important;
    align-items: center !important;
    margin-top: 10px !important;
}

.wc-block-components-totals-coupon__input input {
    border-radius: 12px !important;
    border: 1.5px solid #cbd5e1 !important;
    background: #ffffff !important;
    padding: 12px 16px !important;
    font-size: 0.92rem !important;
}

button.wc-block-components-totals-coupon__button,
.wc-block-components-totals-coupon button[type="submit"] {
    background: #014b7a !important;
    background-color: #014b7a !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 12px !important;
    padding: 12px 24px !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 4px 12px rgba(1, 75, 122, 0.2) !important;
    text-transform: capitalize !important;
    height: auto !important;
    min-height: unset !important;
}

button.wc-block-components-totals-coupon__button:hover,
.wc-block-components-totals-coupon button[type="submit"]:hover {
    background: #00c2cb !important;
    background-color: #00c2cb !important;
    color: #ffffff !important;
    box-shadow: 0 6px 16px rgba(0, 194, 203, 0.3) !important;
    border: none !important;
}

button.wc-block-components-totals-coupon__button:disabled,
.wc-block-components-totals-coupon button[type="submit"]:disabled {
    background: #cbd5e1 !important;
    background-color: #cbd5e1 !important;
    color: #ffffff !important;
    border: none !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
    opacity: 0.7 !important;
}

/* Order Totals & Pricing */
.wc-block-components-totals-item__value,
.order-total .amount {
    font-weight: 800 !important;
    color: #014b7a !important;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.order-total strong .amount {
    font-size: 1.75rem !important;
    color: #014b7a !important;
    font-weight: 900 !important;
}

/* Primary CTA Buttons (Proceed to Checkout / Place Order) */
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button,
.wc-block-checkout__actions button,
.wc-proceed-to-checkout a.checkout-button,
#place_order {
    background: linear-gradient(135deg, #00c2cb 0%, #014b7a 100%) !important;
    background-color: #00c2cb !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 50px !important;
    padding: 18px 36px !important;
    font-size: 1.12rem !important;
    font-weight: 800 !important;
    cursor: pointer !important;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    box-shadow: 0 10px 25px rgba(0, 194, 203, 0.35) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    width: 100% !important;
    display: block !important;
    text-align: center !important;
    text-decoration: none !important;
    margin-top: 20px !important;
}

.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover,
.wc-block-checkout__actions button:hover,
.wc-proceed-to-checkout a.checkout-button:hover,
#place_order:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 15px 35px rgba(1, 75, 122, 0.45) !important;
    filter: brightness(1.08) !important;
    color: #ffffff !important;
}

/* WooCommerce Catalog & Products Grid ("New in store" / Shop) */
ul.products li.product,
.wc-block-grid__product {
    text-align: center !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 20px !important;
    padding: 20px 16px !important;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
    box-shadow: 0 4px 15px rgba(0,0,0,0.03) !important;
    list-style: none !important;
}
ul.products li.product:hover,
.wc-block-grid__product:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 12px 30px rgba(1, 75, 122, 0.12) !important;
    border-color: rgba(0, 194, 203, 0.3) !important;
}
/* ==========================================================================
   SHOP ARCHIVE & COURSE CATALOG SUITE
   ========================================================================== */
.ice-shop-hero-banner {
    background: linear-gradient(135deg, #014b7a 0%, #00c2cb 100%);
    padding: 140px 24px 60px 24px;
    text-align: center;
    color: #ffffff;
    margin-bottom: 45px;
    position: relative;
    overflow: hidden;
}
.ice-shop-hero-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 75% 30%, rgba(255,255,255,0.15) 0%, transparent 60%);
    pointer-events: none;
}
.ice-shop-hero-inner {
    max-width: 900px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}
.ice-shop-hero-title {
    font-family: 'Raleway', sans-serif !important;
    font-size: 2.8rem !important;
    font-weight: 800 !important;
    color: #ffffff !important;
    margin: 0 0 10px 0 !important;
    line-height: 1.2 !important;
    letter-spacing: -0.5px;
}
.ice-shop-hero-subtitle {
    font-family: 'Raleway', sans-serif !important;
    font-size: 1.15rem !important;
    color: #e6f9fa !important;
    max-width: 680px !important;
    margin: 0 auto !important;
    line-height: 1.55 !important;
    font-weight: 500 !important;
}

/* Shop Layout Container */
.post-type-archive-product .site-main,
.post-type-archive-product .woocommerce,
.woocommerce-shop .woocommerce,
.tax-product_cat .woocommerce {
    max-width: 1240px !important;
    margin: 0 auto 80px auto !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
    font-family: 'Raleway', sans-serif !important;
}

.woocommerce-breadcrumb {
    display: none !important;
}

.woocommerce-result-count {
    font-family: 'Raleway', sans-serif !important;
    font-size: 0.95rem !important;
    color: #64748b !important;
    font-weight: 600 !important;
    margin: 10px 0 !important;
}

.woocommerce-ordering {
    margin-bottom: 25px !important;
}
.woocommerce-ordering select {
    border-radius: 30px !important;
    padding: 9px 20px !important;
    border: 1.5px solid #cbd5e1 !important;
    font-family: 'Raleway', sans-serif !important;
    font-weight: 600 !important;
    color: #014b7a !important;
    background: #ffffff !important;
    outline: none !important;
    cursor: pointer !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.04) !important;
    transition: border-color 0.2s ease !important;
}
.woocommerce-ordering select:focus {
    border-color: #00c2cb !important;
}

/* 3-Column / 4-Column Responsive Grid */
ul.products {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
    gap: 28px !important;
    margin: 30px 0 60px 0 !important;
    padding: 0 !important;
    list-style: none !important;
    width: 100% !important;
}
ul.products::before,
ul.products::after {
    display: none !important;
}

/* Product Card Styling */
ul.products li.product {
    background: #ffffff !important;
    border-radius: 22px !important;
    padding: 28px 22px 24px 22px !important;
    box-shadow: 0 6px 22px -4px rgba(1, 75, 122, 0.12), 0 3px 8px -2px rgba(0, 194, 203, 0.06) !important;
    border: 1.5px solid rgba(0, 194, 203, 0.22) !important;
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease, border-color 0.3s ease !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    text-align: center !important;
    margin: 0 !important;
    width: 100% !important;
    float: none !important;
    box-sizing: border-box !important;
    position: relative !important;
}
ul.products li.product:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 16px 38px -6px rgba(1, 75, 122, 0.2), 0 6px 14px -2px rgba(0, 194, 203, 0.14) !important;
    border-color: #00c2cb !important;
}

/* Thumbnail / Badge Icon */
ul.products li.product img,
ul.products li.product a img {
    width: 92px !important;
    height: 92px !important;
    object-fit: contain !important;
    margin: 0 auto 16px auto !important;
    display: block !important;
    border-radius: 50% !important;
    background: #f0fbfc !important;
    padding: 14px !important;
    box-shadow: 0 4px 14px rgba(0, 194, 203, 0.18) !important;
    border: 1.5px solid rgba(0, 194, 203, 0.25) !important;
    transition: transform 0.3s ease !important;
}
ul.products li.product:hover img {
    transform: scale(1.06);
}

/* Card Title */
ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2 {
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 1.12rem !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    margin: 8px 0 6px 0 !important;
    min-height: 46px !important;
    text-decoration: none !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

.ice-shop-card-instructor {
    color: #64748b !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    margin-bottom: 12px !important;
    display: block !important;
}

/* Price */
ul.products li.product .price {
    color: #00c2cb !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 1.25rem !important;
    font-weight: 800 !important;
    margin: 0 0 18px 0 !important;
    display: block !important;
}
ul.products li.product .price del {
    color: #94a3b8 !important;
    font-size: 0.95rem !important;
    font-weight: 500 !important;
    margin-right: 6px !important;
}
ul.products li.product .price ins {
    text-decoration: none !important;
}

/* Pill Button */
ul.products li.product .button,
ul.products li.product a.button {
    background: #014b7a !important;
    background-color: #014b7a !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 50px !important;
    padding: 11px 22px !important;
    font-weight: 700 !important;
    font-size: 0.88rem !important;
    text-decoration: none !important;
    display: block !important;
    width: 100% !important;
    text-align: center !important;
    box-shadow: 0 4px 14px rgba(1, 75, 122, 0.2) !important;
    transition: all 0.25s ease !important;
    margin-top: auto !important;
    font-family: 'Raleway', sans-serif !important;
    box-sizing: border-box !important;
}
ul.products li.product .button:hover,
ul.products li.product a.button:hover {
    background: #00c2cb !important;
    background-color: #00c2cb !important;
    color: #ffffff !important;
    box-shadow: 0 6px 18px rgba(0, 194, 203, 0.35) !important;
    transform: translateY(-2px) !important;
}

/* ==========================================================================
   CART & CHECKOUT SHELL FIX
   1) <body> was being styled as a 1200px page container -> clipped footer.
   2) The 2-column grid was written for the Cart BLOCK, but this site uses the
      classic shortcode cart, so the totals fell underneath the table.
   3) Both pages need a top offset to clear the 104px fixed header.
   ========================================================================== */

/* 1. Never constrain <body> on cart/checkout */
body.woocommerce-cart,
body.woocommerce-checkout {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* 2. Real page container: full-bleed body, centred inner column */
body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce {
    max-width: 1200px !important;
    width: 100% !important;
    margin: 175px auto 80px auto !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
    font-family: 'Raleway', sans-serif !important;
}

/* Notices sit inside the container now: no second top offset */
body.woocommerce-cart .woocommerce-notices-wrapper,
body.woocommerce-checkout .woocommerce-notices-wrapper {
    max-width: none !important;
    margin: 0 0 20px 0 !important;
    padding: 0 !important;
}

/* Hello Elementor's reset.css gives EVERY <td>/<th> a 1px box border, which
   draws ugly boxes around each cart cell. Kill them here; the rules further
   down re-add only the single hairline each table actually needs. */
body.woocommerce-cart .woocommerce-cart-form__contents td,
body.woocommerce-cart .woocommerce-cart-form__contents th,
body.woocommerce-cart .cart_totals table.shop_table td,
body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-checkout #order_review table.shop_table td,
body.woocommerce-checkout #order_review table.shop_table th,
body.woocommerce-checkout .woocommerce table.shop_table td,
body.woocommerce-checkout .woocommerce table.shop_table th {
    border: 0 !important;
    background-clip: padding-box !important;
}

/* 3. Classic cart: items on the left, cart totals on the right */
@media (min-width: 1100px) {
    body.woocommerce-cart .woocommerce {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 380px !important;
        gap: 32px !important;
        align-items: start !important;
    }

    body.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
    body.woocommerce-cart .woocommerce > .wc-empty-cart-message,
    body.woocommerce-cart .woocommerce > .return-to-shop {
        grid-column: 1 / -1 !important;
    }

    body.woocommerce-cart .woocommerce > form.woocommerce-cart-form {
        grid-column: 1 !important;
        margin: 0 !important;
        padding: 36px 28px !important;
        float: none !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    body.woocommerce-cart .woocommerce > .cart-collaterals {
        grid-column: 2 !important;
        margin: 0 !important;
        padding: 0 !important;
        float: none !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
}

body.woocommerce-cart .cart-collaterals .cart_totals {
    float: none !important;
    width: 100% !important;
    grid-column: auto !important;
    box-sizing: border-box !important;
}

@media (max-width: 1099px) {
    body.woocommerce-cart .woocommerce > .cart-collaterals {
        margin-top: 24px !important;
    }

    body.woocommerce-checkout .woocommerce > form.checkout > .woocommerce-checkout-review-order {
        margin-top: 24px !important;
    }
}

/* 3b. Classic checkout: billing form on the left, order review on the right.
   form.checkout is the grid container. Placement must be EXPLICIT: the form has
   three children (#customer_details, #order_review_heading, #order_review) and
   auto-placement would drop the review into a second row on the right. */
@media (min-width: 1100px) {
    body.woocommerce-checkout .woocommerce > form.checkout.woocommerce-checkout {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) 400px !important;
        gap: 0 32px !important;
        align-items: start !important;
        width: 100% !important;
    }

    body.woocommerce-checkout .woocommerce > form.checkout > #customer_details {
        grid-column: 1 !important;
        grid-row: 1 / span 2 !important;
        margin: 0 !important;
        float: none !important;
        width: 100% !important;
    }

    body.woocommerce-checkout .woocommerce > form.checkout > #order_review_heading {
        grid-column: 2 !important;
        grid-row: 1 !important;
        margin: 0 0 14px 0 !important;
        padding: 0 24px !important;
    }

    body.woocommerce-checkout .woocommerce > form.checkout > #order_review {
        grid-column: 2 !important;
        grid-row: 2 !important;
        margin: 0 !important;
        float: none !important;
        width: 100% !important;
        background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%) !important;
        border: 1.5px solid #e2e8f0 !important;
        border-radius: 24px !important;
        padding: 30px 24px !important;
        box-shadow: 0 12px 40px rgba(1, 75, 122, 0.07) !important;
        box-sizing: border-box !important;
    }

    /* #customer_details IS the .col2-set; .col-1 (billing) and .col-2
       (additional information) are its DIRECT children. Stack them so
       "Additional information" sits BELOW billing instead of beside it. */
    body.woocommerce-checkout .woocommerce > form.checkout > #customer_details > .col-1,
    body.woocommerce-checkout .woocommerce > form.checkout > #customer_details > .col-2 {
        float: none !important;
        width: 100% !important;
        margin: 0 !important;
    }
}

/* 4. Cart table must never be clipped or force horizontal scrolling */
body.woocommerce-cart .woocommerce-cart-form__contents {
    width: 100% !important;
    table-layout: auto !important;
    border-collapse: collapse !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents th,
body.woocommerce-cart .woocommerce-cart-form__contents td {
    padding: 14px 8px !important;
    font-size: 0.88rem !important;
    line-height: 1.4 !important;
    vertical-align: middle !important;
    overflow-wrap: anywhere !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents .product-remove {
    width: 36px !important;
    padding-left: 2px !important;
    padding-right: 2px !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents .product-thumbnail {
    width: 56px !important;
    padding-left: 2px !important;
    padding-right: 6px !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents .product-thumbnail img {
    width: 48px !important;
    height: 48px !important;
    object-fit: cover !important;
    border-radius: 10px !important;
    display: block !important;
    margin: 0 auto !important;
}

/* The product name gets every remaining pixel: it must not wrap into 5 lines */
body.woocommerce-cart .woocommerce-cart-form__contents .product-name {
    width: auto !important;
    min-width: 180px !important;
    padding-right: 14px !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents .product-price {
    width: 104px !important;
    text-align: right !important;
    white-space: nowrap !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents .product-subtotal {
    width: 118px !important;
    text-align: right !important;
    white-space: nowrap !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents .product-quantity {
    width: 118px !important;
    text-align: center !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents .product-name a {
    word-break: normal !important;
    overflow-wrap: anywhere !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents input.qty {
    width: 58px !important;
    min-width: 0 !important;
    text-align: center !important;
}

/* Cart actions row (coupon + update).
   CRITICAL: `.actions` IS the <td> that carries colspan="6". Setting
   display:flex on it removes the table-cell role, the browser then ignores the
   colspan and the cell collapses to a single column (big empty gap). Keep it a
   real table cell; the cell is a BFC so inner floats are contained. */
body.woocommerce-cart form.woocommerce-cart-form .actions > td,
body.woocommerce-cart form.woocommerce-cart-form td.actions {
    display: table-cell !important;
    width: auto !important;
    padding: 20px 16px !important;
    border: 0 !important;
    vertical-align: middle !important;
}

body.woocommerce-cart form.woocommerce-cart-form .actions .coupon {
    display: inline-flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 10px !important;
    float: left !important;
    margin: 0 !important;
}

body.woocommerce-cart form.woocommerce-cart-form .actions .coupon label {
    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.woocommerce-cart form.woocommerce-cart-form .actions input[name="coupon_code"] {
    width: 200px !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    border-radius: 12px !important;
    border: 1.5px solid #cbd5e1 !important;
    padding: 11px 14px !important;
    box-sizing: border-box !important;
    min-height: 0 !important;
    height: auto !important;
    line-height: 1.4 !important;
}

body.woocommerce-cart form.woocommerce-cart-form .actions .coupon .button,
body.woocommerce-cart form.woocommerce-cart-form .actions button,
body.woocommerce-cart form.woocommerce-cart-form .actions .button,
body.woocommerce-cart form.woocommerce-cart-form .actions .update_cart {
    flex: 0 0 auto !important;
    width: auto !important;
    float: none !important;
    margin: 0 !important;
    border-radius: 12px !important;
    padding: 11px 22px !important;
    min-height: 0 !important;
    height: auto !important;
    font-weight: 700 !important;
    background: #014b7a !important;
    color: #ffffff !important;
    border: none !important;
    line-height: 1.4 !important;
    text-transform: capitalize !important;
    white-space: nowrap !important;
    cursor: pointer !important;
}

body.woocommerce-cart form.woocommerce-cart-form .actions button:disabled,
body.woocommerce-cart form.woocommerce-cart-form .actions .update_cart:disabled {
    background: #cbd5e1 !important;
    color: #ffffff !important;
    cursor: not-allowed !important;
    opacity: 1 !important;
}

/* Update cart button sits on the right edge of the actions row */
body.woocommerce-cart form.woocommerce-cart-form .actions .update_cart {
    float: right !important;
    margin: 0 !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
    color: #014b7a !important;
    border: 1.5px solid #cbd5e1 !important;
    box-shadow: none !important;
}

body.woocommerce-cart form.woocommerce-cart-form .actions .update_cart:hover:not(:disabled) {
    border-color: #014b7a !important;
    background: #f8fafc !important;
    color: #014b7a !important;
}

body.woocommerce-cart form.woocommerce-cart-form .actions .update_cart:disabled {
    background: #f1f5f9 !important;
    color: #94a3b8 !important;
    border-color: #e2e8f0 !important;
}

/* ==========================================================================
   PRO POLISH — CART TABLE & CHECKOUT FORM LOOK & FEEL
   ========================================================================== */

/* --- Cart card shell ------------------------------------------------------ */
body.woocommerce-cart .woocommerce > form.woocommerce-cart-form {
    background: #ffffff !important;
    border: 1.5px solid #e8eef5 !important;
    border-radius: 24px !important;
    box-shadow: 0 18px 50px -20px rgba(1, 75, 122, 0.22), 0 4px 14px -6px rgba(1, 75, 122, 0.10) !important;
    padding: 10px 8px 0 8px !important;
    overflow: hidden !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents {
    border: 0 !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents thead th {
    background: #f7fafd !important;
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    letter-spacing: 0.3px !important;
    text-transform: uppercase !important;
    padding: 16px 10px !important;
    border: 0 !important;
    border-bottom: 1.5px solid #e8eef5 !important;
    text-align: left !important;
    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents thead th.product-price,
body.woocommerce-cart .woocommerce-cart-form__contents thead th.product-subtotal {
    text-align: right !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents thead th.product-quantity {
    text-align: center !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents tbody tr {
    transition: background 0.18s ease !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents tbody tr:hover > td {
    background: #f8fcff !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents tbody td {
    /* Hello Elementor's reset.css paints every <td>/<th> with
       rgba(128,128,128,.07). Neutralise it: our cards must be clean white. */
    background: #ffffff !important;
    border-bottom: 1px solid #eef3f8 !important;
    padding: 18px 12px !important;
    color: #334155 !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 0.92rem !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents tbody td::before {
    background: transparent !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents .product-name a {
    color: #014b7a !important;
    font-weight: 700 !important;
    font-size: 0.98rem !important;
    line-height: 1.4 !important;
    text-decoration: none !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents .product-name a:hover {
    color: #00c2cb !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents .product-price .amount,
body.woocommerce-cart .woocommerce-cart-form__contents .product-subtotal .amount {
    color: #014b7a !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents .product-remove a.remove {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 28px !important;
    height: 28px !important;
    line-height: 1 !important;
    border-radius: 50% !important;
    background: #f1f5f9 !important;
    color: #94a3b8 !important;
    font-size: 16px !important;
    text-decoration: none !important;
    transition: all 0.18s ease !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents .product-remove a.remove:hover {
    background: #fee2e2 !important;
    color: #e11d48 !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents input.qty {
    width: 62px !important;
    height: 42px !important;
    border-radius: 12px !important;
    border: 1.5px solid #d7e0ea !important;
    background: #ffffff !important;
    color: #014b7a !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    text-align: center !important;
    padding: 0 4px !important;
    box-shadow: none !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents input.qty:focus {
    border-color: #00c2cb !important;
    box-shadow: 0 0 0 4px rgba(0, 194, 203, 0.16) !important;
    outline: none !important;
}

body.woocommerce-cart .woocommerce-cart-form__contents tfoot td.actions {
    background: #fbfdff !important;
    border-top: 1.5px solid #e8eef5 !important;
    border-bottom: 0 !important;
}

/* --- Cart totals card ----------------------------------------------------- */
body.woocommerce-cart .cart-collaterals .cart_totals {
    background: linear-gradient(180deg, #ffffff 0%, #f7fafd 100%) !important;
    border: 1.5px solid #e8eef5 !important;
    border-radius: 24px !important;
    padding: 28px 26px !important;
    box-shadow: 0 18px 50px -20px rgba(1, 75, 122, 0.22) !important;
}

body.woocommerce-cart .cart_totals h2 {
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 1.3rem !important;
    font-weight: 800 !important;
    margin: 0 0 18px 0 !important;
    padding-bottom: 14px !important;
    border-bottom: 1.5px solid #e8eef5 !important;
}

body.woocommerce-cart .cart_totals table.shop_table {
    border: 0 !important;
    margin: 0 0 8px 0 !important;
}

body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table td {
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px dashed #e2e8f0 !important;
    padding: 14px 0 !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 0.95rem !important;
    color: #334155 !important;
}

body.woocommerce-cart .cart_totals table.shop_table tr.order-total th,
body.woocommerce-cart .cart_totals table.shop_table tr.order-total td {
    border-bottom: 0 !important;
    padding-top: 18px !important;
}

body.woocommerce-cart .cart_totals .order-total .amount {
    color: #014b7a !important;
    font-size: 1.6rem !important;
    font-weight: 900 !important;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
    margin-top: 18px !important;
}

/* --- Checkout: form panel + sections -------------------------------------- */
body.woocommerce-checkout .woocommerce > form.checkout > #customer_details {
    background: #ffffff !important;
    border: 1.5px solid #e8eef5 !important;
    border-radius: 24px !important;
    padding: 30px 28px !important;
    box-shadow: 0 18px 50px -20px rgba(1, 75, 122, 0.22), 0 4px 14px -6px rgba(1, 75, 122, 0.10) !important;
    box-sizing: border-box !important;
}

body.woocommerce-checkout #customer_details > .col-2 .woocommerce-additional-fields,
body.woocommerce-checkout #customer_details .woocommerce-additional-fields {
    margin-top: 26px !important;
    padding-top: 26px !important;
    border-top: 1.5px solid #eef3f8 !important;
}

body.woocommerce-checkout #customer_details h3,
body.woocommerce-checkout #order_review_heading {
    position: relative !important;
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 1.28rem !important;
    font-weight: 800 !important;
    letter-spacing: -0.2px !important;
    margin: 0 0 20px 0 !important;
    padding: 0 0 0 16px !important;
    border: 0 !important;
}

body.woocommerce-checkout #customer_details h3::before,
body.woocommerce-checkout #order_review_heading::before {
    content: '' !important;
    position: absolute !important;
    left: 0 !important;
    top: 0.18em !important;
    width: 5px !important;
    height: 1.05em !important;
    border-radius: 4px !important;
    background: linear-gradient(180deg, #00c2cb 0%, #014b7a 100%) !important;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
    display: flow-root !important;
}

body.woocommerce-checkout .woocommerce-checkout .form-row {
    padding: 0 0 16px 0 !important;
    margin: 0 !important;
}

body.woocommerce-checkout .form-row label {
    display: block !important;
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.2px !important;
    margin: 0 0 7px 0 !important;
}

body.woocommerce-checkout .form-row label .required,
body.woocommerce-checkout .form-row label abbr.required {
    color: #e11d48 !important;
    text-decoration: none !important;
}

body.woocommerce-checkout .form-row label .optional {
    color: #94a3b8 !important;
    font-weight: 600 !important;
}

body.woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .form-row textarea,
body.woocommerce-checkout .form-row select,
body.woocommerce-checkout .select2-container .select2-selection--single {
    width: 100% !important;
    min-height: 48px !important;
    border-radius: 12px !important;
    border: 1.5px solid #d7e0ea !important;
    background: #fbfdff !important;
    color: #1e293b !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 0.95rem !important;
    padding: 12px 16px !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease !important;
}

/* Select2 keeps a 1px "accessible hidden" native <select>. Our 100% width rule
   above must NOT apply to it, otherwise it becomes a 465px box pushed outside
   the viewport and creates horizontal scroll on mobile. */
body.woocommerce-checkout .form-row select.select2-hidden-accessible {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: -1px !important;
    border: 0 !important;
    clip: rect(0 0 0 0) !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

body.woocommerce-checkout .select2-container {
    width: 100% !important;
}

body.woocommerce-checkout .select2-container .select2-selection--single {
    display: flex !important;
    align-items: center !important;
    padding: 0 16px !important;
    height: 48px !important;
    min-height: 48px !important;
    background: #fbfdff !important;
    border: 1.5px solid #d7e0ea !important;
    border-radius: 12px !important;
}

body.woocommerce-checkout .select2-container--focus .select2-selection--single,
body.woocommerce-checkout .select2-container--open .select2-selection--single {
    border-color: #00c2cb !important;
    background: #ffffff !important;
    box-shadow: 0 0 0 4px rgba(0, 194, 203, 0.16) !important;
}

body.woocommerce-checkout .form-row textarea {
    min-height: 110px !important;
    line-height: 1.55 !important;
}

body.woocommerce-checkout .form-row input.input-text:focus,
body.woocommerce-checkout .form-row textarea:focus,
body.woocommerce-checkout .form-row select:focus {
    border-color: #00c2cb !important;
    background: #ffffff !important;
    box-shadow: 0 0 0 4px rgba(0, 194, 203, 0.16) !important;
    outline: none !important;
}

body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered {
    line-height: 46px !important;
    padding-left: 0 !important;
    color: #1e293b !important;
}

body.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow {
    height: 46px !important;
}

body.woocommerce-checkout .form-row-first,
body.woocommerce-checkout .form-row-last {
    float: left !important;
    width: calc(50% - 8px) !important;
}

body.woocommerce-checkout .form-row-last {
    float: right !important;
}

body.woocommerce-checkout .form-row-wide {
    clear: both !important;
    width: 100% !important;
}

/* --- Checkout: order review card ------------------------------------------ */
body.woocommerce-checkout #order_review table.shop_table {
    border: 0 !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    background: #ffffff !important;
    margin: 0 0 18px 0 !important;
}

body.woocommerce-checkout #order_review table.shop_table th {
    background: #f7fafd !important;
    color: #014b7a !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    letter-spacing: 0.6px !important;
    text-transform: uppercase !important;
    padding: 14px 16px !important;
    border: 0 !important;
    border-bottom: 1.5px solid #e8eef5 !important;
    text-align: left !important;
}

body.woocommerce-checkout #order_review table.shop_table td {
    background: transparent !important;
    padding: 16px !important;
    border: 0 !important;
    border-bottom: 1px solid #eef3f8 !important;
    color: #334155 !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 0.92rem !important;
    vertical-align: top !important;
}

body.woocommerce-checkout #order_review table.shop_table td.product-total,
body.woocommerce-checkout #order_review table.shop_table th.product-total {
    text-align: right !important;
    white-space: nowrap !important;
}

body.woocommerce-checkout #order_review table.shop_table .order-total td,
body.woocommerce-checkout #order_review table.shop_table .order-total th {
    border-bottom: 0 !important;
    padding-top: 18px !important;
}

body.woocommerce-checkout #order_review table.shop_table .order-total .amount {
    color: #014b7a !important;
    font-size: 1.5rem !important;
    font-weight: 900 !important;
}

body.woocommerce-checkout .woocommerce-checkout-payment {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
}

body.woocommerce-checkout .woocommerce-checkout-payment ul.wc_payment_methods {
    list-style: none !important;
    margin: 0 0 18px 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

body.woocommerce-checkout .woocommerce-checkout-payment ul.wc_payment_methods li {
    list-style: none !important;
    background: #ffffff !important;
    border: 1.5px solid #e8eef5 !important;
    border-radius: 16px !important;
    padding: 16px 18px !important;
    margin: 0 0 12px 0 !important;
    transition: border-color 0.18s ease, box-shadow 0.18s ease !important;
}

body.woocommerce-checkout .woocommerce-checkout-payment ul.wc_payment_methods li:hover {
    border-color: #cfe6ef !important;
}

body.woocommerce-checkout .woocommerce-checkout-payment ul.wc_payment_methods li.woocommerce-info {
    border-left-width: 1.5px !important;
}

body.woocommerce-checkout .woocommerce-checkout-payment ul.wc_payment_methods li label {
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    cursor: pointer !important;
}

body.woocommerce-checkout .woocommerce-checkout-payment .payment_box {
    background: #f7fafd !important;
    border-radius: 12px !important;
    border: 0 !important;
    margin-top: 12px !important;
    padding: 12px 14px !important;
    color: #475569 !important;
    font-size: 0.88rem !important;
}

body.woocommerce-checkout .woocommerce-checkout-payment .payment_box::before {
    display: none !important;
}

body.woocommerce-checkout #place_order {
    margin-top: 6px !important;
}

/* ==========================================================================
   MOBILE CART (<768px) — replace WooCommerce's stacked "label: value" table
   with a clean per-item card: name on top, quantity + subtotal below, × right.
   ========================================================================== */
@media (max-width: 767px) {

    body.woocommerce-cart .woocommerce-cart-form__contents,
    body.woocommerce-cart .woocommerce-cart-form__contents tbody,
    body.woocommerce-cart .woocommerce-cart-form__contents tfoot,
    body.woocommerce-cart .woocommerce-cart-form__contents tfoot tr,
    body.woocommerce-cart .woocommerce-cart-form__contents tfoot td,
    body.woocommerce-cart .woocommerce-cart-form__contents tr,
    body.woocommerce-cart .woocommerce-cart-form__contents td {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
        border: 0 !important;
        text-align: left !important;
    }

    body.woocommerce-cart .woocommerce-cart-form__contents tbody tr.cart_item {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 12px 14px !important;
        position: relative !important;
        padding: 20px 56px 20px 18px !important;
        border-bottom: 1px solid #eef3f8 !important;
    }

    /* Kill WooCommerce's injected "Product:", "Price:", "Quantity:" labels */
    body.woocommerce-cart .woocommerce-cart-form__contents td::before {
        display: none !important;
        content: none !important;
    }

    body.woocommerce-cart .woocommerce-cart-form__contents .product-thumbnail {
        display: none !important;
    }

    body.woocommerce-cart .woocommerce-cart-form__contents .product-remove {
        position: absolute !important;
        top: 16px !important;
        right: 16px !important;
        width: auto !important;
        padding: 0 !important;
    }

    body.woocommerce-cart .woocommerce-cart-form__contents .product-name {
        flex: 1 1 100% !important;
        width: auto !important;
        padding: 0 !important;
    }

    body.woocommerce-cart .woocommerce-cart-form__contents tr.cart_item td,
    body.woocommerce-cart .woocommerce-cart-form__contents tr.cart_item .product-name,
    body.woocommerce-cart .woocommerce-cart-form__contents tr.cart_item .product-name a {
        text-align: left !important;
    }

    body.woocommerce-cart .woocommerce-cart-form__contents tr.cart_item .product-subtotal {
        text-align: right !important;
    }

    body.woocommerce-cart .woocommerce-cart-form__contents .product-price {
        display: none !important;
    }

    body.woocommerce-cart .woocommerce-cart-form__contents .product-quantity {
        flex: 0 0 auto !important;
        width: auto !important;
        display: flex !important;
        align-items: center !important;
        gap: 10px !important;
        padding: 0 !important;
        text-align: left !important;
    }

    body.woocommerce-cart .woocommerce-cart-form__contents .product-quantity::before {
        content: 'Qty' !important;
        display: inline-block !important;
        color: #64748b !important;
        font-size: 0.78rem !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.5px !important;
    }

    body.woocommerce-cart .woocommerce-cart-form__contents .product-subtotal {
        flex: 1 1 auto !important;
        width: auto !important;
        padding: 0 !important;
        text-align: right !important;
        font-size: 1.05rem !important;
    }

    /* Actions row: coupon then update, both full width */
    body.woocommerce-cart form.woocommerce-cart-form td.actions {
        display: block !important;
        padding: 18px 18px 22px 18px !important;
    }

    body.woocommerce-cart form.woocommerce-cart-form .actions .coupon {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 10px !important;
        float: none !important;
        width: 100% !important;
        margin: 0 0 12px 0 !important;
    }

    body.woocommerce-cart form.woocommerce-cart-form .actions input[name="coupon_code"] {
        flex: 1 1 160px !important;
        width: auto !important;
    }

    body.woocommerce-cart form.woocommerce-cart-form .actions .coupon .button {
        flex: 0 0 auto !important;
    }

    body.woocommerce-cart form.woocommerce-cart-form .actions .update_cart {
        float: none !important;
        display: block !important;
        width: 100% !important;
    }

    body.woocommerce-cart .cart-collaterals .cart_totals {
        padding: 24px 20px !important;
    }
}

/* ==========================================================================
   GLOBAL RESPONSIVE & OVERFLOW SHIELD
   ========================================================================== */
html, body {
    overflow-x: hidden !important;
    max-width: 100vw !important;
}

.site-main, #content, .elementor, .e-con {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

*, *::before, *::after {
    box-sizing: border-box;
}

/* === MODULE: 06-course-cards.css === */
/* ==========================================================================
   COURSES CAROUSEL, GRID & 4-COLOR PALETTE ROTATION (MODULE 06)
   ========================================================================== */

/* 1. HOMEPAGE COURSE LOOP CAROUSEL (TEMPLATE 331 ONLY) */
.home-carusel,
.home-carusel.elementor-widget-loop-carousel,
.home-carusel .elementor-widget-container,
.home-carusel .elementor-loop-container,
.home-carusel .swiper,
.home-carusel .swiper-container,
.home-carusel .swiper-wrapper,
.elementor-element-06b8b58,
.elementor-element-06b8b58 > .e-con-inner {
    overflow: visible !important;
}

.home-carusel {
    padding: 10px 0 25px 0 !important;
    position: relative !important;
}

.home-carusel .elementor-loop-container.swiper,
.home-carusel .swiper {
    overflow: visible !important;
    padding: 28px 12px 38px 12px !important;
    position: relative !important;
}

.home-carusel .swiper-slide {
    padding: 8px !important;
    box-sizing: border-box !important;
}

/* Card Container & Link */
.elementor-331,
.elementor-331 .e-con,
.home-carusel .swiper-slide .elementor-331 > .e-con {
    border-radius: 18px !important;
    border: none !important;
    min-height: 160px !important;
    padding: 24px 22px 20px 22px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    box-sizing: border-box !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1) !important;
    cursor: pointer !important;
}

.elementor-331 a {
    color: #ffffff !important;
    text-decoration: none !important;
}

.home-carusel .swiper-slide:hover .elementor-331 > .e-con {
    transform: translateY(-5px) !important;
    box-shadow: 0 14px 30px -4px rgba(1, 75, 122, 0.22), 0 6px 14px -2px rgba(0, 194, 203, 0.18) !important;
}

/* 4-Color Gradient Rotation for Course Cards (TEMPLATE 331 & TRAINING HUB ONLY) */
.home-carusel .swiper-slide:nth-child(4n+1) .elementor-331 > .e-con,
.training-courses-grid .elementor-loop-container > .e-loop-item:nth-of-type(4n+1) .elementor-element-card_root_con,
.training-courses-grid .elementor-loop-container > .e-loop-item:nth-of-type(4n+1) > .e-con,
.elementor-331.e-loop-item:nth-of-type(4n+1) .elementor-element-card_root_con,
.elementor-331.e-loop-item:nth-of-type(4n+1) > .e-con {
    background-color: #00c2cb !important; /* Card 1: Vibrant Cyan */
    box-shadow: 0 6px 20px -4px rgba(1, 75, 122, 0.14), 0 3px 8px -2px rgba(0, 194, 203, 0.08) !important;
}

.home-carusel .swiper-slide:nth-child(4n+2) .elementor-331 > .e-con,
.training-courses-grid .elementor-loop-container > .e-loop-item:nth-of-type(4n+2) .elementor-element-card_root_con,
.training-courses-grid .elementor-loop-container > .e-loop-item:nth-of-type(4n+2) > .e-con,
.elementor-331.e-loop-item:nth-of-type(4n+2) .elementor-element-card_root_con,
.elementor-331.e-loop-item:nth-of-type(4n+2) > .e-con {
    background-color: #004b93 !important; /* Card 2: Royal Blue */
    box-shadow: 0 6px 20px -4px rgba(1, 75, 122, 0.14), 0 3px 8px -2px rgba(0, 194, 203, 0.08) !important;
}

.home-carusel .swiper-slide:nth-child(4n+3) .elementor-331 > .e-con,
.training-courses-grid .elementor-loop-container > .e-loop-item:nth-of-type(4n+3) .elementor-element-card_root_con,
.training-courses-grid .elementor-loop-container > .e-loop-item:nth-of-type(4n+3) > .e-con,
.elementor-331.e-loop-item:nth-of-type(4n+3) .elementor-element-card_root_con,
.elementor-331.e-loop-item:nth-of-type(4n+3) > .e-con {
    background-color: #4a7c9f !important; /* Card 3: Steel Blue */
    box-shadow: 0 6px 20px -4px rgba(1, 75, 122, 0.14), 0 3px 8px -2px rgba(0, 194, 203, 0.08) !important;
}

.home-carusel .swiper-slide:nth-child(4n+4) .elementor-331 > .e-con,
.training-courses-grid .elementor-loop-container > .e-loop-item:nth-of-type(4n+4) .elementor-element-card_root_con,
.training-courses-grid .elementor-loop-container > .e-loop-item:nth-of-type(4n+4) > .e-con,
.elementor-331.e-loop-item:nth-of-type(4n+4) .elementor-element-card_root_con,
.elementor-331.e-loop-item:nth-of-type(4n+4) > .e-con {
    background-color: #014b7a !important; /* Card 4: Deep Navy */
    box-shadow: 0 6px 20px -4px rgba(1, 75, 122, 0.14), 0 3px 8px -2px rgba(0, 194, 203, 0.08) !important;
}

/* Ensure Services Loop Grid (Template 204) always retains clean transparent background */
.elementor-204,
.elementor-204 > .e-con,
.elementor-204 .elementor-element-8605d90,
.elementor-204.services,
.elementor-204 .e-con-inner {
    background-color: transparent !important;
    background: transparent !important;
}

.training-courses-grid .e-loop-item:hover .elementor-element-card_root_con,
.home-carusel .swiper-slide:hover .elementor-331 > .e-con {
    box-shadow: 0 14px 30px -4px rgba(1, 75, 122, 0.22), 0 6px 14px -2px rgba(0, 194, 203, 0.18) !important;
}

/* 1.1 TRAINING COURSES GRID (PAGE 89) */
.training-courses-grid .elementor-loop-container {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 24px !important;
    width: 100% !important;
}

@media (max-width: 1024px) {
    .training-courses-grid .elementor-loop-container {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 767px) {
    .training-courses-grid .elementor-loop-container {
        grid-template-columns: 1fr !important;
    }
}

/* Card Container inside Training Courses Grid */
.training-courses-grid .e-loop-item,
.training-courses-grid .elementor-331,
.training-courses-grid .elementor-331 > .e-con {
    border-radius: 20px !important;
    border: none !important;
    min-height: 160px !important;
    padding: 24px 22px 20px 22px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    box-sizing: border-box !important;
    position: relative !important;
    overflow: hidden !important;
    transition: transform 0.25s ease, box-shadow 0.25s ease !important;
    cursor: pointer !important;
}

.training-courses-grid .e-loop-item:hover .elementor-331 > .e-con {
    transform: translateY(-6px) !important;
}

/* 4-Color Rotation for Training Courses Grid */
.training-courses-grid .e-loop-item:nth-child(4n+1) .elementor-331 > .e-con {
    background-color: #00c2cb !important; /* Card 1: Vibrant Cyan */
    box-shadow: 0 8px 22px rgba(1, 75, 122, 0.12) !important;
}
.training-courses-grid .e-loop-item:nth-child(4n+2) .elementor-331 > .e-con {
    background-color: #01b3bc !important; /* Card 2: Deep Teal / Aqua */
    box-shadow: 0 8px 22px rgba(1, 75, 122, 0.12) !important;
}
.training-courses-grid .e-loop-item:nth-child(4n+3) .elementor-331 > .e-con {
    background-color: #004b93 !important; /* Card 3: Royal Blue */
    box-shadow: 0 8px 22px rgba(1, 75, 122, 0.12) !important;
}
.training-courses-grid .e-loop-item:nth-child(4n+4) .elementor-331 > .e-con {
    background-color: #4a7c9f !important; /* Card 4: Steel Blue */
    box-shadow: 0 8px 22px rgba(1, 75, 122, 0.12) !important;
}


/* Typography inside Course Cards */
.elementor-331 .elementor-heading-title,
.elementor-331 .elementor-heading-title a,
.elementor-331 h1, .elementor-331 h2, .elementor-331 h3 {
    color: #ffffff !important;
    font-family: 'Poppins', sans-serif !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    margin: 0 0 12px 0 !important;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.2) !important;
    text-decoration: none !important;
}

.elementor-331 .elementor-widget-text-editor,
.elementor-331 p {
    color: rgba(255, 255, 255, 0.92) !important;
    font-family: 'Poppins', sans-serif !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    margin: 0 !important;
}

/* 2. SWIPER NAVIGATION ARROWS (HOME CAROUSEL) */
html body .home-carusel.elementor-widget .elementor-swiper-button,
html body .home-carusel.elementor-widget .elementor-swiper-button-prev,
html body .home-carusel.elementor-widget .elementor-swiper-button-next,
html body .home-carusel.elementor-widget .swiper-button-prev,
html body .home-carusel.elementor-widget .swiper-button-next {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 38px !important;
    height: 38px !important;
    background-color: transparent !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    border-radius: 10px !important;
    border: none !important;
    box-shadow: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    cursor: pointer !important;
    /* FIX hover jump: the theme base sets transform: translateX(-100%) on the
       arrow. The old hover rule replaced the WHOLE transform with scale(), so
       the translateX got dropped and the button slid sideways on hover.
       Killing the base transform makes hover scale in place (no movement). */
    transform: none !important;
    top: -55px !important;
    left: auto !important;
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), filter 0.25s ease !important;
    z-index: 20 !important;
}

html body .home-carusel.elementor-widget .elementor-swiper-button-prev,
html body .home-carusel.elementor-widget .swiper-button-prev {
    background-image: url('https://interpretertranslation.com/wp-content/uploads/2026/08/Flecha-1.svg') !important;
    right: 92px !important;
}

html body .home-carusel.elementor-widget .elementor-swiper-button-next,
html body .home-carusel.elementor-widget .swiper-button-next {
    background-image: url('https://interpretertranslation.com/wp-content/uploads/2026/08/Flecha-2.svg') !important;
    right: 8px !important;
}

html body .home-carusel.elementor-widget .elementor-swiper-button:hover,
html body .home-carusel.elementor-widget .elementor-swiper-button-prev:hover,
html body .home-carusel.elementor-widget .elementor-swiper-button-next:hover,
html body .home-carusel.elementor-widget .swiper-button-prev:hover,
html body .home-carusel.elementor-widget .swiper-button-next:hover {
    transform: scale(1.08) !important;
    filter: drop-shadow(0 4px 10px rgba(0, 194, 203, 0.35)) !important;
}

html body .home-carusel.elementor-widget .elementor-swiper-button:active,
html body .home-carusel.elementor-widget .elementor-swiper-button-prev:active,
html body .home-carusel.elementor-widget .elementor-swiper-button-next:active,
html body .home-carusel.elementor-widget .swiper-button-prev:active,
html body .home-carusel.elementor-widget .swiper-button-next:active {
    transform: scale(0.95) !important;
}

html body .home-carusel.elementor-widget .elementor-swiper-button i,
html body .home-carusel.elementor-widget .elementor-swiper-button svg,
html body .home-carusel.elementor-widget .elementor-swiper-button:after,
html body .home-carusel.elementor-widget .swiper-button-prev:after,
html body .home-carusel.elementor-widget .swiper-button-next:after {
    display: none !important;
    content: '' !important;
}

/* Pagination dots: removed on request (looked cluttered under the cards) */
html body .home-carusel .swiper-pagination,
html body .home-carusel .elementor-swiper-pagination,
html body .home-carusel .swiper-pagination-bullets {
    display: none !important;
}

/* 4. SPAIN RETREAT PACKAGE CARDS TYPOGRAPHY & LINKS */
.elementor-element-85fe07c .elementor-element-3a873fd .elementor-heading-title,
.elementor-element-3a873fd .elementor-heading-title {
    letter-spacing: 0 !important;
    font-size: 28px !important;
    line-height: 1.25 !important;
    text-transform: none !important;
    word-break: normal !important;
    white-space: normal !important;
}

.elementor-element-85fe07c .elementor-widget-button a {
    cursor: pointer !important;
    transition: all 0.25s ease !important;
}

/* 5. DYNAMIC TRAINING COURSES 4-COLUMN GRID (media_1787677443445.png) */
.ice-courses-grid-container {
    width: 100% !important;
    max-width: 1280px !important;
    margin: 20px auto 40px auto !important;
    padding: 0 10px !important;
    box-sizing: border-box !important;
}

.ice-courses-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 24px !important;
    width: 100% !important;
}

@media (max-width: 1024px) {
    .ice-courses-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 20px !important;
    }
}

@media (max-width: 600px) {
    .ice-courses-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
}

.ice-course-grid-card {
    border-radius: 20px !important;
    min-height: 165px !important;
    padding: 24px 22px 20px 22px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    box-sizing: border-box !important;
    text-decoration: none !important;
    position: relative !important;
    overflow: hidden !important;
    box-shadow: 0 10px 26px rgba(0, 75, 147, 0.22) !important;
    transition: transform 0.25s ease, box-shadow 0.25s ease !important;
    cursor: pointer !important;
}

.ice-course-grid-card:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 16px 36px rgba(0, 194, 203, 0.45) !important;
}

.ice-course-card-title {
    color: #ffffff !important;
    font-family: 'Poppins', sans-serif !important;
    font-size: 16.5px !important;
    font-weight: 700 !important;
    line-height: 1.35 !important;
    margin: 0 !important;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.15) !important;
}

.ice-course-card-author {
    color: rgba(255, 255, 255, 0.92) !important;
    font-family: 'Poppins', sans-serif !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    margin-top: 14px !important;
    display: inline-block !important;
}

/* 6. SPAIN RETREAT INSTRUCTOR COURSES GRID (media_1787678339002.png) */
.ice-spain-courses-grid-wrap {
    width: 100% !important;
    max-width: 1280px !important;
    margin: 20px auto 40px auto !important;
    padding: 0 10px !important;
    box-sizing: border-box !important;
}

.ice-spain-courses-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 22px !important;
    width: 100% !important;
}

@media (max-width: 1024px) {
    .ice-spain-courses-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 18px !important;
    }
}

@media (max-width: 600px) {
    .ice-spain-courses-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
}

.ice-spain-course-card {
    background: #ffffff !important;
    border: 1.5px solid rgba(0, 194, 203, 0.4) !important;
    border-radius: 20px !important;
    padding: 16px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    box-shadow: 0 8px 24px rgba(0, 194, 203, 0.1) !important;
    transition: transform 0.25s ease, box-shadow 0.25s ease !important;
    box-sizing: border-box !important;
}

.ice-spain-course-card:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 14px 32px rgba(0, 194, 203, 0.25) !important;
    border-color: #00c2cb !important;
}

.ice-spain-card-thumb {
    width: 100% !important;
    height: 140px !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    margin-bottom: 14px !important;
    background: #e2e8f0 !important;
}

.ice-spain-card-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

.ice-spain-card-title {
    font-family: 'Raleway', sans-serif !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    color: #014b7a !important;
    margin: 0 0 6px 0 !important;
    line-height: 1.3 !important;
}

.ice-spain-card-hours {
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #64748b !important;
    margin-bottom: 10px !important;
}

.ice-spain-card-desc {
    font-size: 13px !important;
    line-height: 1.55 !important;
    color: #334155 !important;
    margin: 0 0 14px 0 !important;
    flex-grow: 1 !important;
}

.ice-spain-card-footer {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    border-top: 1px solid #f1f5f9 !important;
    padding-top: 10px !important;
    margin-top: auto !important;
}

.ice-spain-card-avatar {
    width: 34px !important;
    height: 34px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    border: 1.5px solid #00c2cb !important;
}

.ice-spain-card-inst-wrap {
    display: flex !important;
    flex-direction: column !important;
}

.ice-spain-card-inst-label {
    font-size: 10.5px !important;
    color: #94a3b8 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
}

.ice-spain-card-inst-name {
    font-size: 12px !important;
    font-weight: 700 !important;
    color: #014b7a !important;
}



/* ==========================================================================
   MOBILE (<=767px)
   ========================================================================== */
@media (max-width: 767px) {

    /* ---- Carousel: arrows live in the gap above the slides ---- */
    html body .home-carusel.elementor-widget {
        margin-top: 58px !important;
    }
    html body .home-carusel.elementor-widget .elementor-swiper-button-prev,
    html body .home-carusel.elementor-widget .swiper-button-prev {
        top: -50px !important;
        right: 46px !important;
        left: auto !important;
    }
    html body .home-carusel.elementor-widget .elementor-swiper-button-next,
    html body .home-carusel.elementor-widget .swiper-button-next {
        top: -50px !important;
        right: 0 !important;
        left: auto !important;
    }

    /* ---- Course card (template 331): used by the home carousel AND the
            /interpreter-training/ grid, so both stay identical ---- */
    .elementor-331 .elementor-heading-title,
    .elementor-331 .elementor-heading-title a,
    .elementor-331 h1, .elementor-331 h2, .elementor-331 h3 {
        font-size: 13.5px !important;
        line-height: 1.25 !important;
    }
    .elementor-331 .elementor-element-course_author_elem {
        font-size: 10.5px !important;
    }

    /* ---- Services loop (template 204): 2-up compact cards ---- */
    .elementor-element-cb5a520 .elementor-loop-container {
        gap: 18px !important;
    }
    .elementor-element-cb5a520 .elementor-element-8605d90 {
        padding: 8px !important;
    }
    .elementor-element-cb5a520 .elementor-element-84b7dd7 {
        gap: 12px !important;
        min-height: 0 !important;
    }
    .elementor-element-cb5a520 .elementor-element-5281bc9,
    .elementor-element-cb5a520 .elementor-element-5281bc9 img {
        width: 100% !important;
        height: auto !important;
        max-width: 100% !important;
    }
    .elementor-element-cb5a520 .elementor-element-fad64c8,
    .elementor-element-cb5a520 .elementor-element-af7475d {
        width: 100% !important;
        max-width: 100% !important;
        flex-basis: auto !important;
    }
    .elementor-element-cb5a520 .elementor-element-fad64c8 .elementor-heading-title {
        font-size: 15px !important;
        line-height: 1.25 !important;
    }
    .elementor-element-cb5a520 .elementor-element-af7475d,
    .elementor-element-cb5a520 .elementor-element-af7475d p {
        font-size: 12px !important;
        line-height: 1.45 !important;
    }
    .elementor-element-cb5a520 .elementor-element-a9da394 .elementor-button {
        font-size: 12px !important;
        padding: 8px 12px !important;
    }
}

/* ==========================================================================
   MOBILE (<=767px) - KAREN SECTION PHOTO
   The container keeps Karen behind the text as a background layer with
   background-size:cover on a 820px tall box => the 813x494 photo got zoomed
   ~1.7x ("tamano gigante"). On phones we fit it to the width (contain) and
   pin it to the top so the text column (pushed down by margin-top) sits
   right underneath it.
   ========================================================================== */
@media (max-width: 767px) {
    .elementor-67 .elementor-element.elementor-element-c3fcdfb > .elementor-motion-effects-container > .elementor-motion-effects-layer,
    .elementor-67 .elementor-element.elementor-element-c3fcdfb:not(.elementor-motion-effects-element-type-background) {
        background-size: contain !important;
        background-position: top center !important;
        background-repeat: no-repeat !important;
    }
}

/* ==========================================================================
   MOBILE (<=767px) - HOME COURSE CAROUSEL CARD HEIGHT
   The card was a flat 425x160 strip ("chata"). Elementor writes the responsive
   value into --min-height but a literal min-height:160px still wins, so we
   force the mobile height here.
   ========================================================================== */
@media (max-width: 767px) {
    /* 2 cards per view: smaller box, tighter padding, smaller type */
    html body .home-carusel .elementor-element-card_root_con {
        min-height: 165px !important;
        padding: 18px 16px 20px 16px !important;
    }
    html body .home-carusel .elementor-element-course_title_elem .elementor-heading-title {
        font-size: 14px !important;
        line-height: 1.3 !important;
    }
    html body .home-carusel .elementor-element-course_author_elem {
        font-size: 11.5px !important;
    }
}

/* ==========================================================================
   MOBILE (<=767px) - HOME SPAIN RETREAT PACKAGES
   The three pricing cards were 465px wide stacks (1694px of scrolling) and the
   Elementor mouse-track / tilt motion effects translated them by ~(-19,-16)px
   on touch devices, so they looked shifted and piled on each other. Two per
   row + desktop-only motion effects + a compact type scale.
   ========================================================================== */
@media (max-width: 767px) {

    /* 2 columns (safety net on top of grid_columns_grid_mobile) */
    .elementor-element-85fe07c,
    .elementor-element-85fe07c > .e-con-inner {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 14px !important;
    }

    /* no motion-effect transforms on touch (they misaligned the cards) */
    .elementor-element-85fe07c,
    .elementor-element-85fe07c .elementor-element-0001e4f,
    .elementor-element-85fe07c .elementor-element-4c15162,
    .elementor-element-85fe07c .elementor-element-14eb3fb,
    .elementor-element-85fe07c .elementor-element-85c42a8 {
        transform: none !important;
    }

    /* frames */
    .elementor-element-85fe07c .elementor-element-0001e4f,
    .elementor-element-85fe07c .elementor-element-14eb3fb,
    .elementor-element-85fe07c .elementor-element-85c42a8 {
        padding: 16px !important;
        border-radius: 20px !important;
        min-height: 0 !important;
    }

    /* card titles */
    .elementor-element-85fe07c .elementor-element-3a873fd .elementor-heading-title,
    .elementor-element-85fe07c .elementor-element-a0cda85 .elementor-heading-title,
    .elementor-element-85fe07c .elementor-element-f8b4e3d .elementor-heading-title {
        font-size: 17px !important;
        line-height: 1.2 !important;
    }

    /* prices */
    .elementor-element-85fe07c .elementor-element-1535932 .elementor-heading-title,
    .elementor-element-85fe07c .elementor-element-6d4187a .elementor-heading-title,
    .elementor-element-85fe07c .elementor-element-2812239 .elementor-heading-title {
        font-size: 21px !important;
        line-height: 1.15 !important;
    }

    /* "Per person" */
    .elementor-element-85fe07c .elementor-element-96886d7 .elementor-heading-title,
    .elementor-element-85fe07c .elementor-element-eee80a4 .elementor-heading-title,
    .elementor-element-85fe07c .elementor-element-6a33357 .elementor-heading-title {
        font-size: 12px !important;
    }

    /* body copy */
    .elementor-element-85fe07c .elementor-element-48a3199, .elementor-element-85fe07c .elementor-element-48a3199 p,
    .elementor-element-85fe07c .elementor-element-0f82771, .elementor-element-85fe07c .elementor-element-0f82771 p,
    .elementor-element-85fe07c .elementor-element-ff88704, .elementor-element-85fe07c .elementor-element-ff88704 p,
    .elementor-element-85fe07c .elementor-element-573ac16, .elementor-element-85fe07c .elementor-element-573ac16 p,
    .elementor-element-85fe07c .elementor-element-581f3c3, .elementor-element-85fe07c .elementor-element-581f3c3 p {
        font-size: 10.5px !important;
        line-height: 1.45 !important;
    }

    /* fine print */
    .elementor-element-85fe07c .elementor-element-a466ae2, .elementor-element-85fe07c .elementor-element-a466ae2 p,
    .elementor-element-85fe07c .elementor-element-36da7ad, .elementor-element-85fe07c .elementor-element-36da7ad p,
    .elementor-element-85fe07c .elementor-element-f438d27, .elementor-element-85fe07c .elementor-element-f438d27 p,
    .elementor-element-85fe07c .elementor-element-b3ee329, .elementor-element-85fe07c .elementor-element-b3ee329 p {
        font-size: 9.5px !important;
        line-height: 1.4 !important;
    }

    /* "Package N" badge */
    .elementor-element-85fe07c .elementor-element-6e3097e .elementor-button,
    .elementor-element-85fe07c .elementor-element-582f2ad .elementor-button,
    .elementor-element-85fe07c .elementor-element-0f2a44b .elementor-button {
        font-size: 10.5px !important;
        padding: 5px 12px !important;
    }

    /* CTA buttons */
    .elementor-element-85fe07c .elementor-element-ef72ff6 .elementor-button,
    .elementor-element-85fe07c .elementor-element-eabf3b1 .elementor-button,
    .elementor-element-85fe07c .elementor-element-048a562 .elementor-button {
        font-size: 13px !important;
        padding: 9px 12px !important;
    }

    /* icons */
    .elementor-element-85fe07c .elementor-icon i,
    .elementor-element-85fe07c .elementor-icon svg {
        font-size: 26px !important;
        width: 26px !important;
        height: 30px !important;
    }

    /* replace the hand-tuned negative/positive desktop margins */
    .elementor-element-85fe07c .elementor-element-1535932,
    .elementor-element-85fe07c .elementor-element-6d4187a,
    .elementor-element-85fe07c .elementor-element-2812239,
    .elementor-element-85fe07c .elementor-element-96886d7,
    .elementor-element-85fe07c .elementor-element-eee80a4,
    .elementor-element-85fe07c .elementor-element-6a33357,
    .elementor-element-85fe07c .elementor-element-48a3199,
    .elementor-element-85fe07c .elementor-element-0f82771,
    .elementor-element-85fe07c .elementor-element-ff88704,
    .elementor-element-85fe07c .elementor-element-573ac16,
    .elementor-element-85fe07c .elementor-element-f438d27,
    .elementor-element-85fe07c .elementor-element-581f3c3 {
        margin-bottom: 0 !important;
        margin-top: 0 !important;
    }

    /* Elementor's default 20px flex gap (applied to every one of the 7 stacked
       elements) was stretching the cards to 555px. A tight uniform rhythm
       keeps them compact and stops the "everything looks long" effect. */
    .elementor-element-85fe07c .e-con,
    .elementor-element-85fe07c > .e-con-inner {
        gap: 10px !important;
    }
    .elementor-element-85fe07c > .e-con-inner {
        gap: 14px !important;
    }
}

/* ==========================================================================
   MOBILE (<=767px) - /interpreting/ "Interpreting Settings" cards
   At 2-up the cards are ~204px wide but the images kept their natural
   204x178px, leaving no room for the title + copy inside the card, so the
   text was clipped. Cap the image and let the copy breathe.
   ========================================================================== */
@media (max-width: 767px) {
    html body .elementor-element-5d6ca2e img,
    html body .elementor-element-78a5d62 img,
    html body .elementor-element-9400407 img,
    html body .elementor-element-d0771a8 img {
        height: 130px !important;
        object-fit: cover !important;
        object-position: center !important;
    }
}

/* ==========================================================================
   HERO BANNERS - the white fade layers were painted OVER the hero copy
   The hero sections on /translation/ and /interpreting/ have two sibling
   containers with margin-top:-244px and a white linear-gradient (they blend
   the banner into the page). Because they come after the hero in the DOM and
   both are position:relative / z-index:auto, they painted ON TOP of the H1 and
   the "Want to know more" pill: the button looked washed out AND was not
   clickable (elementFromPoint hit the fade, not the button).
   Lift the hero copy above the fade at the breakpoints where the hero is
   shorter than the desktop design.
   ========================================================================== */
@media (max-width: 1024px) {
    html body .elementor-85 .elementor-element-4d92fbf,
    html body .elementor-85 .elementor-element-0bc8d07,
    html body .elementor-83 .elementor-element-f873808,
    html body .elementor-83 .elementor-element-ef6282b,
    html body .elementor-89 .elementor-element-1323b0a {
        position: relative !important;
        z-index: 5 !important;
    }
}

/* ==========================================================================
   MOBILE (<=767px) - TEMPLATE 331 LOOP ITEMS (home carousel + training grid)
   The generated CSS for the loop-item root container also lands on the
   .e-loop-item WRAPPER, so the card got the padding twice (22px + 22px). At
   197px wide that left only 109px for the copy: titles broke into 4-5 lines
   and "By Karen Borgenheimer, MFA" wrapped to 4. Kill the wrapper padding and
   keep a single, tight one on the card itself.
   ========================================================================== */
@media (max-width: 767px) {
    .elementor-331.e-loop-item {
        padding: 0 !important;
    }
    .elementor-331 .elementor-element-card_root_con {
        min-height: 150px !important;
        padding: 15px 14px 17px 14px !important;
    }
    .elementor-331 .elementor-element-course_author_elem,
    .elementor-331 .elementor-element-course_author_elem p {
        font-size: 10.5px !important;
        line-height: 1.3 !important;
    }
}

/* ==========================================================================
   MOBILE/TABLET (<=1024px) - /translation/ "OUR VALUE TO YOU" (page 85)
   The section carries min-height:745px. On desktop that blank space is what the
   -211px margin-top of the next section tucks into; at 2-up the grid is twice as
   tall and the two collide (the "Why Choose" H2 was painting over the 2nd card
   row). The pull-up is zeroed in the page data, so here the section just hugs
   its content instead of keeping 142px of empty space.
   The 4 card columns each hold an icon strip + a white card; the strips had
   different heights, so the cards started at different y. One equal strip height
   lines them up (icon size itself is set in the page data).
   ========================================================================== */
@media (max-width: 1024px) {
    .elementor-85 .elementor-element-b9996eb {
        min-height: 0 !important;
    }
    /* Icon strip: one fixed height so the 4 cards start at the same y. Elementor
       renders this widget box ~24px tall while the <img> paints 58px, so the
       icons were poking 14-16px over the card underneath. Pin the strip and the
       icon to fixed sizes. */
    .elementor-85 .elementor-element-0645107 > .e-con > .e-con:first-child {
        height: 56px !important;
        min-height: 56px !important;
        max-height: 56px !important;
        align-items: center !important;
        justify-content: center !important;
        overflow: hidden !important;
    }
    .elementor-85 .elementor-element-0645107 > .e-con > .e-con:first-child .elementor-widget-image,
    .elementor-85 .elementor-element-0645107 > .e-con > .e-con:first-child .elementor-widget-container {
        width: 48px !important;
        height: 48px !important;
        display: block !important;
        margin: 0 auto !important;
    }
    /* The image widget carries a hard -48px side offset that no normal margin
       override wins against, so the icon is centred on the card axis instead. */
    .elementor-85 .elementor-element-0645107 > .e-con > .e-con:first-child img {
        position: absolute !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        margin: 0 !important;
        width: 48px !important;
        height: 48px !important;
        max-width: 48px !important;
        max-height: 48px !important;
        object-fit: contain !important;
        display: block !important;
    }
    /* Each card column is a 2-row grid (fixed icon strip + card body) so the 4
       cards are exactly the same height and their tops and bottoms line up. */
    .elementor-85 .elementor-element-0645107 > .e-con {
        display: grid !important;
        grid-template-rows: 56px minmax(0, 1fr) !important;
        align-content: stretch !important;
        gap: 0 !important;
        /* Owner: "que los iconos queden adentro de la card" -> the white box and
           its shadow move from the inner container up to the whole column, so the
           icon sits inside the card instead of peeking above it. */
        background: #ffffff !important;
        border-radius: 20px !important;
        box-shadow: rgba(29, 187, 196, 0.55) 4px 4px 5px 0px !important;
        padding: 20px !important;
    }
    .elementor-85 .elementor-element-0645107 > .e-con > .e-con:last-child {
        align-self: stretch !important;
        justify-content: flex-start !important;
        background: transparent !important;
        box-shadow: none !important;
        border-radius: 0 !important;
        padding: 0 !important;
    }
}

/* ==========================================================================
   MOBILE (<=767px) - /spain-retreat/ (page 91)
   Owner: "es spain retreat, organiza eso, tambien que no se monte y revisar
   los laterales los padding que esten bien".

   TWO problems on the same page:

   1) "Approved / Available CEUs" - the two lists live in a 2-column grid
      (462ded1). On desktop the first one is a narrow 244px box (a hand-set
      desktop width on the widget 4d57dc7); Elementor keeps that width on
      mobile, so it stayed 244px wide, pushed to x199, while the second list
      took the full 421px. The result is the ragged/staggered list in the
      owner's screenshot ("New Mexico" long, "Florida" short and indented).
      On phones each list gets the full column and its own bullet indent, so
      both align on the same left edge (22px) and read as one block.

   2) "Program leadership" - the row (90531d0) is still
      `flex-direction: row; flex-wrap: wrap` with a 40px gap on mobile, and the
      text column carries `order: 99999`. The image ends up overlapping /
      colliding with the text block ("que no se monte"). Force a single
      column, kill the 40px gap and the order flip so image sits on top and
      the copy flows underneath.

   Every section also gets the page's 22px side gutter: three of them shipped
   with padding 0 and their content was touching the screen edges.
   ========================================================================== */
@media (max-width: 767px) {

    /* --- side gutters for the sections that shipped with padding:0 ---
       350705f is the white "$350 Deposit" card itself: it must NOT get its own
       gutter, that would shrink it twice (its container 93d3465 already has
       one). Only the root sections that touch the viewport edge are padded. */
    html body .elementor-91 .elementor-element-a114cbd,
    html body .elementor-91 .elementor-element-93d3465,
    html body .elementor-91 .elementor-element-d413b21,
    html body .elementor-91 .elementor-element-a114cbd > .e-con-inner,
    html body .elementor-91 .elementor-element-93d3465 > .e-con-inner,
    html body .elementor-91 .elementor-element-d413b21 > .e-con-inner {
        padding-left: 22px !important;
        padding-right: 22px !important;
        box-sizing: border-box !important;
    }

    /* --- CEU lists: one full-width column each, same left edge --- */
    html body .elementor-91 .elementor-element-462ded1 {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 6px !important;
    }
    html body .elementor-91 .elementor-element-462ded1 > .e-con,
    html body .elementor-91 .elementor-element-462ded1 > .e-con > .e-con-inner {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }
    /* the desktop hand-tuned 244px box on the first list */
    html body .elementor-91 .elementor-element-4d57dc7,
    html body .elementor-91 .elementor-element-b9660c6 {
        width: 100% !important;
        max-width: 100% !important;
    }
    html body .elementor-91 .elementor-element-31f66a2 ul,
    html body .elementor-91 .elementor-element-e2534ab ul {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        padding-left: 22px !important;
        box-sizing: border-box !important;
    }
    html body .elementor-91 .elementor-element-31f66a2 li,
    html body .elementor-91 .elementor-element-e2534ab li {
        text-align: left !important;
    }

    /* --- Program leadership: single column, image on top, no 40px gap --- */
    html body .elementor-91 .elementor-element-90531d0 {
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        gap: 16px !important;
        align-items: stretch !important;
    }
    html body .elementor-91 .elementor-element-90531d0 > .e-con {
        width: 100% !important;
        max-width: 100% !important;
        flex-basis: auto !important;
        order: 0 !important;
    }
    /* the copy column: don't let the 379px desk-top width leak through */
    html body .elementor-91 .elementor-element-4955fed {
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* ==========================================================================
   MOBILE (<=767px) - /packages/ (page 2409)
   Owner: "esta muy grande esto de los pack podemos mejorarlos y revisar los
   espacios, pueden bien".

   Three pricing cards (Interpreter / Training-Only / Travel Partner). Each one
   is a 30px-radius white card wrapping an inner box. On the desktop design
   that inner box has `padding: 50px 30px`, the package name is a 52px H2 and
   the copy keeps a dozen hand-tuned NEGATIVE bottom margins (-33/-25/-20/-18/
   -10px) that pull the price lines together. On a 465px viewport that adds up
   to:

     - title 52px => 135px tall for two words, the single loudest thing on the
       card;
     - 50px of dead space above the title and 30px gutters instead of the
       site-wide 22px;
     - the negative margins overlap the rows (measured: "Pricing:" bottom 2265
       vs "Single Occupancy" top 2252 => -13px, text sitting on text);
     - the CTA is inset 32px from the left and stops 30px short on the right,
       so the three buttons end at 352/328/380px - ragged, none aligned.

   Fix: a calm mobile rhythm - smaller title, 22px gutters, no negative
   margins (the gaps come from the container again) and full-width CTAs.
   ========================================================================== */
@media (max-width: 767px) {

    /* --- inner box: 22px side gutters, less dead air on top --- */
    html body .elementor-2409 .elementor-element-aa05d4e,
    html body .elementor-2409 .elementor-element-1f50d32,
    html body .elementor-2409 .elementor-element-7adf09e {
        padding: 28px 22px 30px !important;
        box-sizing: border-box !important;
        gap: 14px !important;
    }

    /* --- package name: 52px was oversized at 2 words; 30px reads as a title --- */
    html body .elementor-2409 .elementor-element-cda34e4 .elementor-heading-title,
    html body .elementor-2409 .elementor-element-5ce2586 .elementor-element-cda34e4 .elementor-heading-title,
    html body .elementor-2409 .elementor-element-5f4d23b .elementor-element-cda34e4 .elementor-heading-title {
        font-size: 30px !important;
        line-height: 1.15 !important;
    }
    /* every H2 inside the three cards (the titles share the same widget class) */
    html body .elementor-2409 .elementor-element-7cc99d6 h2.elementor-heading-title,
    html body .elementor-2409 .elementor-element-5ce2586 h2.elementor-heading-title,
    html body .elementor-2409 .elementor-element-5f4d23b h2.elementor-heading-title {
        font-size: 30px !important;
        line-height: 1.15 !important;
    }

    /* --- kill the hand-tuned negative margins: they overlapped rows on mobile.
           The container gap (14px, set above) handles the rhythm instead. --- */
    html body .elementor-2409 .elementor-element-5d74eb0,
    html body .elementor-2409 .elementor-element-0e85f5b,
    html body .elementor-2409 .elementor-element-a538576,
    html body .elementor-2409 .elementor-element-8ba4546,
    html body .elementor-2409 .elementor-element-8c45e9d,
    html body .elementor-2409 .elementor-element-2461eaa,
    html body .elementor-2409 .elementor-element-3cdb5ff,
    html body .elementor-2409 .elementor-element-32bbb1c,
    html body .elementor-2409 .elementor-element-cd3b50d,
    html body .elementor-2409 .elementor-element-5f34973,
    html body .elementor-2409 .elementor-element-d635792,
    html body .elementor-2409 .elementor-element-574c1d2,
    html body .elementor-2409 .elementor-element-c94423e {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }

    /* --- CTA: full width so the three cards line up instead of 352/328/380.
           Each card has its OWN button widget (4ea75b6 / d83c50f / 44d3fad)
           with its own desktop width baked into the page data, so all three
           must be listed - styling only the first left the row ragged. --- */
    html body .elementor-2409 .elementor-element-4ea75b6,
    html body .elementor-2409 .elementor-element-4ea75b6 .elementor-button,
    html body .elementor-2409 .elementor-element-4ea75b6 .elementor-button-content-wrapper,
    html body .elementor-2409 .elementor-element-d83c50f,
    html body .elementor-2409 .elementor-element-d83c50f .elementor-button,
    html body .elementor-2409 .elementor-element-d83c50f .elementor-button-content-wrapper,
    html body .elementor-2409 .elementor-element-44d3fad,
    html body .elementor-2409 .elementor-element-44d3fad .elementor-button,
    html body .elementor-2409 .elementor-element-44d3fad .elementor-button-content-wrapper {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        justify-content: center !important;
    }

    /* --- "About the Accommodations" section (021b7f2) shipped with padding 0,
           so its H2 and copy ran edge to edge. Same 22px house gutter. --- */
    html body .elementor-2409 .elementor-element-021b7f2,
    html body .elementor-2409 .elementor-element-021b7f2 > .e-con-inner {
        padding-left: 22px !important;
        padding-right: 22px !important;
        box-sizing: border-box !important;
    }

    /* --- body copy inside the cards: slightly tighter, no oversized price --- */
    html body .elementor-2409 .elementor-element-cd3b50d .elementor-heading-title,
    html body .elementor-2409 .elementor-element-32bbb1c .elementor-heading-title {
        font-size: 24px !important;
        line-height: 1.2 !important;
    }

    /* --- the three pricing cards themselves (section 4f11fcd) shipped with
           padding 0, so each 465px white card ran edge to edge: the rounded
           corner touched the screen while the inner copy was inset 24px, which
           is what read as a lopsided strip on the sides. Give the section the
           same 22px house gutter as the rest of the site, so the card is inset
           and its text gets 22 + 22 = 44px of breathing room. --- */
    html body .elementor-2409 .elementor-element-4f11fcd,
    html body .elementor-2409 .elementor-element-4f11fcd > .e-con-inner {
        padding-left: 22px !important;
        padding-right: 22px !important;
        box-sizing: border-box !important;
    }
    /* the inner boxes must then follow the narrower card, not keep 462px */
    html body .elementor-2409 .elementor-element-aa05d4e,
    html body .elementor-2409 .elementor-element-1f50d32,
    html body .elementor-2409 .elementor-element-7adf09e {
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* ==========================================================================
   MOBILE (<=767px) - /program-schedule/ (page 1477)
   Owner flagged this page as urgent. Measured at 465px, three problems:

   1) HERO TITLE: the H2 "Train in the heart of Spain's Legal Heritage" is
      82px / line-height 106.6px => 533px tall, so five words filled an entire
      phone screen on their own and pushed everything else below the fold.
   2) SECTION HEADINGS: the page H1 "Program Schedule" (39px) and "program
      includes" (31px) sit on sections with padding 0, so they ran edge to edge
      at x0 while the rest of the site keeps 22px.
   3) THE INCLUDES LIST was ragged: one rule was inset to x153 (a hand-set
      desktop offset), the rest sat at x0, and the bullets wrapped oddly.

   Fix: a mobile title scale, the house 22px gutter on those sections and one
   consistent bullet indent.
   ========================================================================== */
@media (max-width: 767px) {

    /* --- hero title: 82px is a desktop display size. This heading also carries
           a hand-tuned letter-spacing of -5px, calibrated for 82px type; left
           untouched at 32px it squeezes the words into each other
           ("TrainintheheartofSpain'sLegal"). Reset it to a sane -0.5px. --- */
    html body .elementor-1477 .elementor-element-54c5e29 .elementor-heading-title,
    html body .elementor-1477 .elementor-element-54c5e29 h1,
    html body .elementor-1477 .elementor-element-54c5e29 h2 {
        font-size: 32px !important;
        line-height: 1.2 !important;
        letter-spacing: -0.5px !important;
        word-spacing: normal !important;
    }

    /* --- the hero left a big empty gap below the shrunken title: the wrapper
           container keeps min-height:739px and the retreat block below keeps
           padding-top:142px, both sized for the old 82px heading. Release them
           so the hero hugs its content. --- */
    html body .elementor-1477 .elementor-element-625e1d1,
    html body .elementor-1477 .elementor-element-fad4ae2,
    html body .elementor-1477 .elementor-element-30c66c3,
    html body .elementor-1477 .elementor-element-66a1a64 {
        min-height: 0 !important;
    }
    html body .elementor-1477 .elementor-element-66a1a64 {
        padding-top: 40px !important;
    }

    /* --- the section headings that ran edge to edge --- */
    html body .elementor-1477 .elementor-element-56ab917,
    html body .elementor-1477 .elementor-element-56ab917 > .e-con-inner,
    html body .elementor-1477 .elementor-element-cba6129,
    html body .elementor-1477 .elementor-element-cba6129 > .e-con-inner {
        padding-left: 22px !important;
        padding-right: 22px !important;
        box-sizing: border-box !important;
    }

    /* --- heading sizes on phones --- */
    html body .elementor-1477 .elementor-element-617f5f4 .elementor-heading-title,
    html body .elementor-1477 h1.elementor-heading-title {
        font-size: 30px !important;
        line-height: 1.2 !important;
    }
    /* "program includes" (31px) */
    html body .elementor-1477 .elementor-element-cba6129 .elementor-heading-title {
        font-size: 24px !important;
        line-height: 1.25 !important;
    }
    /* "daily schedule" (39px) sits in the schedule section (56ab917) */
    html body .elementor-1477 .elementor-element-89c2e6b .elementor-heading-title,
    html body .elementor-1477 .elementor-element-89c2e6b h3 {
        font-size: 28px !important;
        line-height: 1.25 !important;
    }

    /* --- the includes list: one bullet indent for every item, no desktop
           hand-offset leaking in (one rule sat at x153) --- */
    html body .elementor-1477 .elementor-element-cba6129 ul,
    html body .elementor-1477 .elementor-element-cba6129 li,
    html body .elementor-1477 .elementor-element-56ab917 ul,
    html body .elementor-1477 .elementor-element-56ab917 li {
        margin-left: 0 !important;
        padding-left: 22px !important;
        box-sizing: border-box !important;
        text-align: left !important;
    }
    html body .elementor-1477 .elementor-element-cba6129 .elementor-widget-text-editor,
    html body .elementor-1477 .elementor-element-cba6129 .elementor-widget-text-editor p {
        margin-left: 0 !important;
        padding-left: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* ==========================================================================
   MOBILE (<=767px) - /instructors-courses/ (page 1973)
   Owner: "en instructora se monta". The instructor photos (170x221) sit in a
   widget that keeps a desktop offset, so on a 465px card the portrait landed
   at x147 while its caption and bio started at x40 - the photo looked pasted
   on top of the copy instead of being part of the block. The section headings
   (39px) also ran edge to edge on sections with padding 0.
   ========================================================================== */
@media (max-width: 767px) {

    /* portraits: the widget is 317px wide inside a 377px card positioned at
       x44, so centring the image inside the widget landed it on the PAGE axis
       (x147, centre 232) while the card body copy starts at x74. Make the
       widget span its card and centre the portrait on the card, so photo and
       text share the same axis and the block stops looking pasted on. */
    html body .elementor-1973 .elementor-element-dc2e6c5,
    html body .elementor-1973 .elementor-element-dc2e6c5 .elementor-widget-container {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        padding-left: 0 !important;
        text-align: center !important;
        display: block !important;
    }
    html body .elementor-1973 .elementor-element-dc2e6c5 img {
        width: 170px !important;
        max-width: 170px !important;
        height: auto !important;
        margin-left: auto !important;
        margin-right: auto !important;
        display: block !important;
        float: none !important;
    }

    /* section headings ran edge to edge: three sections shipped with padding 0 */
    html body .elementor-1973 .elementor-element-e942602,
    html body .elementor-1973 .elementor-element-e942602 > .e-con-inner,
    html body .elementor-1973 .elementor-element-1b783fc,
    html body .elementor-1973 .elementor-element-1b783fc > .e-con-inner,
    html body .elementor-1973 .elementor-element-df3f777,
    html body .elementor-1973 .elementor-element-df3f777 > .e-con-inner,
    html body .elementor-1973 .elementor-element-76a98f0,
    html body .elementor-1973 .elementor-element-76a98f0 > .e-con-inner {
        padding-left: 22px !important;
        padding-right: 22px !important;
        box-sizing: border-box !important;
    }
    html body .elementor-1973 h2.elementor-heading-title,
    html body .elementor-1973 h1.elementor-heading-title {
        font-size: 28px !important;
        line-height: 1.25 !important;
        margin-left: 0 !important;
    }
    /* the instructor names (19px) already sit at x40; keep them aligned to the
       same gutter as everything else */
    html body .elementor-1973 .elementor-element-4ca889f,
    html body .elementor-1973 .elementor-element-4ca889f .elementor-heading-title {
        margin-left: 0 !important;
    }
}

/* ==========================================================================
   MOBILE (<=767px) - /recommended-excursions/ (page 1292)
   Owner: "en recommend se pierde el texto, se corta y no se ven los padding a
   los lados".

   The excursion cards stack a small label ("included excursion", 26px) and a
   giant word ("Segovia", 106px!) in the same block; on desktop the huge word
   is the design, but at 465px it is taller than three lines of body copy and
   it overlaps the label above it (label y5601, word y5627). The section
   headings (39px "Explore Spain…", 44px "Featured Destinations") also ran edge
   to edge on sections with padding 0.
   ========================================================================== */
@media (max-width: 767px) {

    /* the 106px display word: bring it down to a title size */
    html body .elementor-1292 .elementor-heading-title {
        word-spacing: normal !important;
    }
    /* "Segovia" (and its siblings) - any heading over 50px on this page */
    html body .elementor-1292 h2.elementor-heading-title,
    html body .elementor-1292 h1.elementor-heading-title {
        font-size: 28px !important;
        line-height: 1.25 !important;
        letter-spacing: -0.5px !important;
    }

    /* the section headings ran edge to edge */
    html body .elementor-1292 > .e-con,
    html body .elementor-1292 > .e-con > .e-con-inner {
        padding-left: 22px !important;
        padding-right: 22px !important;
        box-sizing: border-box !important;
    }

    /* the label + display word must not overlap */
    html body .elementor-1292 .elementor-heading-title {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        position: static !important;
        top: auto !important;
    }
}

/* ==========================================================================
   MOBILE (<=767px) - /contact-us/ (page 93)
   Owner: "en contact el padding ahí". The last section (093b2f5) shipped with
   padding 0, so its H2 "Spaces are limited" and its paragraph ran edge to edge
   at x0 while the rest of the page keeps 20-30px.
   ========================================================================== */
@media (max-width: 767px) {
    html body .elementor-93 .elementor-element-093b2f5,
    html body .elementor-93 .elementor-element-093b2f5 > .e-con-inner {
        padding-left: 22px !important;
        padding-right: 22px !important;
        box-sizing: border-box !important;
    }
    html body .elementor-93 .elementor-element-093b2f5 .elementor-heading-title {
        font-size: 26px !important;
        line-height: 1.25 !important;
    }
}

/* === MODULE: 07-course-single.css === */
/* ==========================================================================
   SINGLE ACADEMIC COURSE TEMPLATE STYLING (MODULE 07)
   Matches Reference Design media_1787652795558.png 1:1
   ========================================================================== */

/* 1. HERO BANNER */
.ice-course-hero-wrap,
.ice-single-hero-wrap {
    background: linear-gradient(115deg, #014b7a 0%, #00c2cb 100%) !important;
    width: 100% !important;
    padding: 210px 20px 95px 20px !important;
    text-align: center !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    position: relative !important;
    overflow: hidden !important;
}

.ice-course-hero-inner {
    max-width: 1100px !important;
    margin: 0 auto !important;
    width: 100% !important;
}

.ice-course-hero-title,
.ice-single-hero-title {
    color: #ffffff !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 2.85rem !important;
    font-weight: 800 !important;
    line-height: 1.25 !important;
    letter-spacing: -0.5px !important;
    margin: 0 !important;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2) !important;
}

@media (max-width: 767px) {
    .ice-course-hero-wrap,
    .ice-single-hero-wrap {
        padding: 210px 16px 70px 16px !important;
    }
    .ice-course-hero-inner.ice-has-badge {
        flex-direction: column !important;
        text-align: center !important;
        gap: 16px !important;
    }
    .ice-course-hero-title,
    .ice-single-hero-title {
        font-size: 1.65rem !important;
        line-height: 1.25 !important;
    }
}

/* Lead Intro Section (Outside cards, breathing room) */
.ice-course-lead-intro {
    max-width: 960px !important;
    margin: 45px auto 35px auto !important;
    padding: 0 20px !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

.ice-lead-headline {
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 1.85rem !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    margin: 0 0 16px 0 !important;
}

.ice-lead-desc {
    color: #4a5568 !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 1.1rem !important;
    line-height: 1.65 !important;
    max-width: 840px !important;
    margin: 0 auto !important;
}

/* 2. DUAL CARDS ROW (Exact 1:1 Reference media_1787652795558.png) */
.ice-single-cards-container {
    display: grid !important;
    grid-template-columns: 1fr 1.35fr !important;
    gap: 28px !important;
    max-width: 1140px !important;
    margin: -48px auto 45px auto !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
    align-items: stretch !important;
    position: relative !important;
    z-index: 2 !important;
}

@media (max-width: 991px) {
    .ice-single-cards-container {
        grid-template-columns: 1fr !important;
        margin: -25px auto 35px auto !important;
        gap: 24px !important;
    }
}

/* Left Card: Secure your spot (CTA Box) */
.ice-single-card-left {
    background: #ffffff !important;
    border-radius: 24px !important;
    padding: 38px 32px !important;
    box-shadow: 0 10px 35px rgba(0, 194, 203, 0.18) !important;
    border: 2px solid rgba(0, 194, 203, 0.35) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    text-align: center !important;
    box-sizing: border-box !important;
    transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}

.ice-single-card-left:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 14px 40px rgba(0, 194, 203, 0.26) !important;
}

.ice-card-sub-desc {
    color: #4a5568 !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.5 !important;
    margin: 0 0 14px 0 !important;
}

.ice-card-callout-heading {
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 21px !important;
    font-weight: 800 !important;
    margin: 0 0 20px 0 !important;
}

.ice-card-pill-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 12px 38px !important;
    border-radius: 50px !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 16px !important;
    font-weight: 800 !important;
    color: #014b7a !important;
    border: 2px solid #00c2cb !important;
    background: #ffffff !important;
    text-decoration: none !important;
    box-shadow: 0 4px 15px rgba(0, 194, 203, 0.2) !important;
    transition: all 0.25s ease !important;
    cursor: pointer !important;
}

.ice-card-pill-btn:hover {
    background: #00c2cb !important;
    color: #ffffff !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 22px rgba(0, 194, 203, 0.38) !important;
}

.ice-btn-coming-soon {
    color: #014b7a !important;
    cursor: default !important;
    border: 2px solid #00c2cb !important;
    background: #e6f9fa !important;
    font-size: 13.5px !important;
    font-weight: 800 !important;
    letter-spacing: 0.8px !important;
    box-shadow: none !important;
    text-transform: uppercase !important;
}

.ice-btn-coming-soon:hover {
    background: #e6f9fa !important;
    color: #014b7a !important;
    transform: none !important;
    box-shadow: none !important;
}

/* Right Card: Stats & Accreditations Box */
.ice-single-card-right {
    background: #ffffff !important;
    border-radius: 24px !important;
    padding: 24px 28px !important;
    box-shadow: 0 10px 35px rgba(0, 194, 203, 0.18) !important;
    border: 2px solid rgba(0, 194, 203, 0.35) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    box-sizing: border-box !important;
    transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}

.ice-single-card-right:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 14px 40px rgba(0, 194, 203, 0.26) !important;
}

/* Top Mint Capsule (3 Stats) */
.ice-card-pills-bar {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 12px !important;
    background: linear-gradient(135deg, #e6f9fa 0%, #d5f5f8 100%) !important;
    border-radius: 18px !important;
    padding: 14px 16px !important;
    margin-bottom: 18px !important;
    border: 1.5px solid rgba(0, 194, 203, 0.3) !important;
    text-align: center !important;
}

.ice-pill-stat {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
}

.ice-stat-icon-wrap {
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    background: #ffffff !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 2px 6px rgba(0, 194, 203, 0.25) !important;
    margin-bottom: 2px !important;
}

.ice-stat-icon-wrap svg {
    width: 18px !important;
    height: 18px !important;
    stroke: #00c2cb !important;
}

.ice-stat-label {
    font-family: 'Raleway', sans-serif !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    color: #014b7a !important;
    letter-spacing: 0.5px !important;
}

.ice-stat-val {
    font-family: 'Raleway', sans-serif !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: #4a5568 !important;
    line-height: 1.3 !important;
}

/* Bottom Accreditations 2-Column Grid */
.ice-accreditations-2col-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 8px 16px !important;
    padding: 0 4px !important;
}

@media (max-width: 600px) {
    .ice-accreditations-2col-grid {
        grid-template-columns: 1fr !important;
    }
}

.ice-acc-item {
    display: flex !important;
    align-items: flex-start !important;
    gap: 8px !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 12px !important;
    color: #2d3748 !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
}

.ice-acc-tick {
    color: #00c2cb !important;
    font-weight: 800 !important;
    font-size: 14px !important;
    flex-shrink: 0 !important;
    line-height: 1.2 !important;
}

.ice-acc-text {
    flex: 1 !important;
}

/* 3. ALTERNATING CONTENT ROWS */
.ice-course-row {
    max-width: 1140px !important;
    margin: 50px auto !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
}

.ice-row-container {
    display: grid !important;
    grid-template-columns: 1fr 1.15fr !important;
    gap: 48px !important;
    align-items: center !important;
}

.ice-row-image-right .ice-row-container {
    grid-template-columns: 1.15fr 1fr !important;
}

@media (max-width: 991px) {
    .ice-row-container,
    .ice-row-image-right .ice-row-container {
        grid-template-columns: 1fr !important;
        gap: 32px !important;
    }
}

.ice-rounded-photo-frame {
    border-radius: 24px !important;
    overflow: hidden !important;
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.12) !important;
}

.ice-course-main-photo {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    border-radius: 24px !important;
    object-fit: cover !important;
    transition: transform 0.3s ease !important;
}

.ice-rounded-photo-frame:hover .ice-course-main-photo {
    transform: scale(1.02) !important;
}

.ice-body-text-wrap p,
.ice-intro-paragraph,
.ice-outro-paragraph,
.ice-body-p,
.ice-body-rich-content p {
    color: #2d3748 !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 15.5px !important;
    line-height: 1.7 !important;
    margin: 0 0 16px 0 !important;
    font-weight: 500 !important;
}

.ice-body-text-wrap p.ice-course-quote-pill,
p.ice-course-quote-pill {
    background: linear-gradient(135deg, rgba(0, 194, 203, 0.1) 0%, rgba(1, 75, 122, 0.05) 100%) !important;
    border-left: 4px solid #00c2cb !important;
    border-radius: 0 14px 14px 0 !important;
    padding: 12px 18px !important;
    margin: 14px 0 18px 0 !important;
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 14.5px !important;
    font-weight: 700 !important;
    font-style: italic !important;
    line-height: 1.5 !important;
    display: block !important;
}

.ice-body-rich-content h2 {
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 24px !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
    margin: 0 0 16px 0 !important;
}

.ice-body-rich-content h3 {
    color: #00c2cb !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    margin: 18px 0 8px 0 !important;
}

/* Quote Pill Styling */
.ice-course-quote-pill {
    background: linear-gradient(135deg, rgba(0, 194, 203, 0.08) 0%, rgba(1, 75, 122, 0.05) 100%) !important;
    border-left: 4px solid #00c2cb !important;
    border-radius: 0 14px 14px 0 !important;
    padding: 14px 20px !important;
    margin: 18px 0 22px 0 !important;
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    font-style: italic !important;
    line-height: 1.55 !important;
    box-shadow: 0 4px 15px rgba(0, 194, 203, 0.06) !important;
}

/* Full Width Row & 2-Column Cards Grid */
.ice-row-full-width .ice-row-container {
    display: block !important;
    width: 100% !important;
    max-width: 1140px !important;
}

.ice-row-full-width .ice-col-text {
    width: 100% !important;
    max-width: 100% !important;
}

.ice-row-full-width.ice-text-center {
    text-align: center !important;
}

.ice-row-full-width.ice-text-center .ice-body-rich-content {
    max-width: 860px !important;
    margin: 0 auto !important;
    text-align: center !important;
}

.ice-row-full-width.ice-text-center .ice-check-bullets-grid {
    justify-content: center !important;
    text-align: left !important;
    max-width: 650px !important;
    margin: 20px auto !important;
}

.ice-row-full-width.ice-text-left .ice-body-rich-content {
    max-width: 980px !important;
    margin: 0 auto !important;
    text-align: left !important;
}

/* 2 Columns of Pure Text (Left & Right) */
.ice-row-text-text .ice-row-container {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 48px !important;
    align-items: flex-start !important;
    max-width: 1140px !important;
    margin: 0 auto !important;
}

@media (max-width: 767px) {
    .ice-row-text-text .ice-row-container {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
    }
}

.ice-2col-cards-grid {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 24px !important;
    margin: 24px 0 !important;
}

@media (max-width: 767px) {
    .ice-2col-cards-grid {
        grid-template-columns: 1fr !important;
    }
}

.ice-card-box {
    background: #ffffff !important;
    border: 1.5px solid rgba(0, 194, 203, 0.3) !important;
    border-radius: 20px !important;
    padding: 24px 28px !important;
    box-shadow: 0 8px 24px rgba(0, 194, 203, 0.08) !important;
    box-sizing: border-box !important;
    transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}

.ice-card-box:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 12px 30px rgba(0, 194, 203, 0.16) !important;
}

.ice-card-box-title {
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    margin: 0 0 10px 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.ice-card-box p {
    color: #4a5568 !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 14.5px !important;
    line-height: 1.6 !important;
    margin: 0 !important;
}

/* 2-Column Checkmark Bullets Grid (Matching Original Site Exactly) */
.entry-content .ice-course-single-wrap ul,
.entry-content .ice-course-single-wrap ul.ice-check-bullets-grid,
.entry-content .ice-course-single-wrap .ice-body-rich-content ul,
.ice-course-single-wrap ul.ice-check-bullets-grid,
.ice-course-single-wrap .ice-body-rich-content ul,
.ice-course-single-wrap .ice-col-text ul {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 10px 24px !important;
    margin: 18px 0 22px 0 !important;
    padding: 0 !important;
    list-style: none !important;
    list-style-type: none !important;
}

@media (max-width: 600px) {
    .entry-content .ice-course-single-wrap ul,
    .entry-content .ice-course-single-wrap ul.ice-check-bullets-grid,
    .entry-content .ice-course-single-wrap .ice-body-rich-content ul,
    .ice-course-single-wrap ul.ice-check-bullets-grid,
    .ice-course-single-wrap .ice-body-rich-content ul,
    .ice-course-single-wrap .ice-col-text ul {
        grid-template-columns: 1fr !important;
    }
}

.entry-content .ice-course-single-wrap ul li,
.entry-content .ice-course-single-wrap ul.ice-check-bullets-grid li,
.entry-content .ice-course-single-wrap .ice-body-rich-content ul li,
.ice-course-single-wrap ul.ice-check-bullets-grid li,
.ice-course-single-wrap .ice-body-rich-content ul li,
.ice-course-single-wrap .ice-col-text ul li {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    list-style: none !important;
    list-style-type: none !important;
    margin: 0 !important;
    padding: 0 !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 14.5px !important;
    font-weight: 600 !important;
    color: #2d3748 !important;
    line-height: 1.4 !important;
}

.entry-content .ice-course-single-wrap ul li::before,
.ice-course-single-wrap .ice-body-rich-content ul li::before {
    display: none !important;
    content: none !important;
}

.ice-bullet-tick {
    width: 20px !important;
    height: 20px !important;
    border-radius: 50% !important;
    background: #00c2cb !important;
    color: #ffffff !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    flex-shrink: 0 !important;
    box-shadow: 0 2px 6px rgba(0, 194, 203, 0.3) !important;
}

.ice-bullet-text {
    flex: 1 !important;
}



.ice-main-heading {
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 26px !important;
    font-weight: 800 !important;
    line-height: 1.3 !important;
    margin: 0 0 22px 0 !important;
}

.ice-sub-heading {
    color: #00c2cb !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    margin: 18px 0 8px 0 !important;
}

/* 4. FEATURE CAPSULE (DEEP NAVY WITH HEADSET BADGE) */
.ice-feature-capsule-wrapper {
    max-width: 1140px !important;
    margin: 50px auto 30px auto !important;
    padding: 0 20px !important;
    text-align: center !important;
    box-sizing: border-box !important;
}

.ice-feature-capsule {
    background: #014b7a !important;
    border-radius: 60px !important;
    padding: 16px 36px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 20px !important;
    box-shadow: 0 10px 30px rgba(1, 75, 122, 0.35) !important;
    text-align: left !important;
    max-width: 860px !important;
    box-sizing: border-box !important;
}

@media (max-width: 767px) {
    .ice-feature-capsule {
        border-radius: 24px !important;
        flex-direction: column !important;
        text-align: center !important;
        padding: 24px 20px !important;
    }
}

.ice-capsule-icon-circle {
    width: 52px !important;
    height: 52px !important;
    border-radius: 50% !important;
    background: #00c2cb !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    box-shadow: 0 4px 14px rgba(0, 194, 203, 0.4) !important;
    overflow: hidden !important;
}

.ice-capsule-badge-img {
    width: 34px !important;
    height: 34px !important;
    object-fit: contain !important;
    display: block !important;
}

.ice-capsule-text {
    color: #ffffff !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 14.5px !important;
    font-weight: 600 !important;
    line-height: 1.5 !important;
}

/* 5. CONTACT CALLOUT */
.ice-contact-callout {
    text-align: center !important;
    margin: 40px auto 70px auto !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
}

.ice-contact-title {
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 28px !important;
    font-weight: 800 !important;
    margin: 0 0 6px 0 !important;
}

.ice-contact-link-wrap {
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    margin: 0 !important;
}

.ice-contact-email {
    color: #014b7a !important;
    text-decoration: underline !important;
    font-weight: 800 !important;
    transition: color 0.2s ease !important;
}

.ice-contact-email:hover {
    color: #00c2cb !important;
}

/* ==========================================================================
   VARIABLE PRODUCT SESSION DROPDOWN (COACHING & MULTI-SESSION COURSES)
   ========================================================================== */
.ice-variable-course-form {
    width: 100% !important;
    max-width: 320px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    align-items: center !important;
    margin-top: 4px !important;
}

.ice-variation-select-wrap {
    width: 100% !important;
}

.ice-session-dropdown {
    width: 100% !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #014b7a !important;
    background-color: #ffffff !important;
    border: 2px solid #00c2cb !important;
    border-radius: 50px !important;
    padding: 12px 20px !important;
    text-align: center !important;
    text-align-last: center !important;
    cursor: pointer !important;
    outline: none !important;
    box-shadow: 0 4px 14px rgba(0, 194, 203, 0.15) !important;
    transition: all 0.2s ease !important;
}

.ice-session-dropdown:focus {
    border-color: #014b7a !important;
    box-shadow: 0 0 0 3px rgba(0, 194, 203, 0.25) !important;
}

.ice-var-submit-btn {
    width: 100% !important;
    background: linear-gradient(135deg, #014b7a 0%, #008299 100%) !important;
    color: #ffffff !important;
    border: none !important;
    font-weight: 800 !important;
    letter-spacing: 0.5px !important;
    cursor: pointer !important;
}

.ice-var-submit-btn:hover {
    background: linear-gradient(135deg, #00c2cb 0%, #014b7a 100%) !important;
    color: #ffffff !important;
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 22px rgba(0, 194, 203, 0.38) !important;
}

/* 2-Column Cards Grid (Coaching & Specialized 2-Card Layouts) */
.ice-row-2col-cards {
    width: 100% !important;
    max-width: 1140px !important;
    margin: 40px auto 60px auto !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
}

.ice-2col-cards-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 32px !important;
    width: 100% !important;
}

@media (max-width: 820px) {
    .ice-2col-cards-grid {
        grid-template-columns: 1fr !important;
        gap: 28px !important;
    }
}

.ice-card-box {
    background: #ffffff !important;
    border-radius: 20px !important;
    overflow: hidden !important;
    box-shadow: 0 10px 30px rgba(1, 75, 122, 0.08) !important;
    border: 1px solid rgba(0, 194, 203, 0.25) !important;
    display: flex !important;
    flex-direction: column !important;
    transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}

.ice-card-box:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 16px 40px rgba(1, 75, 122, 0.14) !important;
}

.ice-card-header-img-wrap {
    width: 100% !important;
    height: 240px !important;
    overflow: hidden !important;
    background: #f1f5f9 !important;
}

.ice-card-header-img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

.ice-card-content-wrap {
    padding: 28px 26px !important;
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}

.ice-card-title {
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 1.35rem !important;
    font-weight: 800 !important;
    margin: 0 0 14px 0 !important;
}

.ice-card-text {
    color: #4a5568 !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 0.95rem !important;
    line-height: 1.65 !important;
}

.ice-card-text p {
    margin: 0 0 12px 0 !important;
}

.ice-card-text p:last-child {
    margin-bottom: 0 !important;
}

/* Card Intro Content (Hero Right Card for Coaching) */
.ice-card-intro-content {
    margin-top: 20px !important;
    padding-top: 18px !important;
    border-top: 1px solid rgba(0, 194, 203, 0.2) !important;
    text-align: left !important;
}

.ice-card-intro-headline {
    color: #014b7a !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 1.15rem !important;
    font-weight: 800 !important;
    line-height: 1.35 !important;
    margin: 0 0 10px 0 !important;
}

.ice-card-intro-text p {
    color: #4a5568 !important;
    font-family: 'Raleway', sans-serif !important;
    font-size: 0.92rem !important;
    line-height: 1.6 !important;
    margin: 0 !important;
}

/* === MODULE: 08-reviews-carousel.css === */
/* ==========================================================================
   REVIEWS & TESTIMONIALS (STAGGERED WAVE TRACK - media_1787677490835.png)
   ========================================================================== */

.ice-hub-reviews-section {
    width: 100% !important;
    max-width: 1280px !important;
    margin: 30px auto 40px auto !important;
    padding: 0 10px !important;
    box-sizing: border-box !important;
    position: relative !important;
    overflow: hidden !important;
}

.ice-hub-reviews-header {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 24px !important;
}

.ice-hub-reviews-title {
    font-family: 'Raleway', sans-serif !important;
    font-size: 38px !important;
    font-weight: 800 !important;
    color: #014b7a !important;
    margin: 0 !important;
}

.ice-hub-reviews-nav {
    display: flex !important;
    gap: 12px !important;
    align-items: center !important;
}

.ice-nav-btn {
    width: 38px !important;
    height: 38px !important;
    border-radius: 10px !important;
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), filter 0.25s ease !important;
    user-select: none !important;
    box-sizing: border-box !important;
}

.ice-nav-btn img,
.ice-nav-btn svg {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    display: block !important;
    pointer-events: none !important;
}

.ice-nav-btn:hover {
    transform: scale(1.08) !important;
    filter: drop-shadow(0 4px 10px rgba(0, 194, 203, 0.35)) !important;
}

.ice-nav-btn:active {
    transform: scale(0.95) !important;
}

/* SWIPER CONTINUOUS CONTAINER */
.ice-reviews-swiper {
    width: 100% !important;
    overflow: visible !important;
    padding-top: 15px !important;
    padding-bottom: 60px !important;
}

.ice-review-slide {
    height: auto !important;
    display: flex !important;
    box-sizing: border-box !important;
}

.ice-review-slide .ice-hub-review-card {
    width: 100% !important;
    flex: 1 1 100% !important;
    min-height: 250px !important;
    background: linear-gradient(180deg, #ffffff 0%, #e0fbfd 100%) !important;
    border: 1.5px solid rgba(0, 194, 203, 0.45) !important;
    border-radius: 24px !important;
    padding: 28px 24px !important;
    box-shadow: 0 12px 28px rgba(0, 194, 203, 0.14) !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    box-sizing: border-box !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}

.ice-review-slide .ice-hub-review-card:hover {
    box-shadow: 0 18px 40px rgba(0, 194, 203, 0.28) !important;
    border-color: #00c2cb !important;
}

/* Staggered Vertical Wave Layout */
.ice-card-shifted-down {
    transform: translateY(35px) !important;
}

.ice-card-shifted-down:hover {
    transform: translateY(30px) !important;
}

.ice-card-shifted-top {
    transform: translateY(0) !important;
}

.ice-card-shifted-top:hover {
    transform: translateY(-5px) !important;
}

.ice-hub-review-body p {
    font-family: 'Raleway', sans-serif !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
    color: #334155 !important;
    font-weight: 500 !important;
    margin: 0 !important;
}

.ice-hub-review-divider {
    height: 1px !important;
    background: rgba(1, 75, 122, 0.15) !important;
    margin: 18px 0 12px 0 !important;
}

.ice-hub-review-author span {
    font-family: 'Raleway', sans-serif !important;
    color: #014b7a !important;
    font-weight: 800 !important;
    font-size: 14px !important;
}

/* Hide residual Elementor Loop Item #2752 Placeholder ("Add Your Heading Text Here") */
.elementor-2752,
.elementor-element-2752,
.e-loop-item-2752,
[data-elementor-type="loop-item"].elementor-2752 {
    display: none !important;
}

/* === MODULE: 09-signature-pad.css === */
/* ==========================================================================
   DIGITAL SIGNATURE PAD & WATERMARK CANVAS (HIGH-FIDELITY)
   ========================================================================== */
.style-Signature {
    position: relative !important;
    width: 100% !important;
}

.dscf7_signature {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 480px !important;
}

.dscf7_signature_inner {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    max-width: 480px !important;
    background-color: #ffffff !important;
    border-radius: 12px !important;
}

canvas.digital_signature-pad,
.dscf7_signature canvas {
    display: block !important;
    background-color: #ffffff !important;
    background-image: url('https://interpretertranslation.com/wp-content/uploads/2026/04/signatureimg.jpg') !important;
    background-size: 200px auto !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    border: 2px dashed #94a3b8 !important;
    border-radius: 12px !important;
    box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.03) !important;
    cursor: crosshair !important;
    width: 100% !important;
    max-width: 480px !important;
    height: 130px !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

canvas.digital_signature-pad:hover,
canvas.digital_signature-pad:focus,
.dscf7_signature canvas:hover {
    border-color: #00c2cb !important;
    box-shadow: inset 0 2px 6px rgba(0, 0, 0, 0.03), 0 0 0 3px rgba(0, 194, 203, 0.15) !important;
}

.dscf7_signature_inner input.clearButton {
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 50% !important;
    background: #f1f5f9 !important;
    color: #475569 !important;
    border: 1px solid #cbd5e1 !important;
    font-size: 16px !important;
    font-weight: bold !important;
    line-height: 1 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
    z-index: 10 !important;
}

.dscf7_signature_inner input.clearButton:hover {
    background: #fee2e2 !important;
    color: #ef4444 !important;
    border-color: #fca5a5 !important;
    transform: scale(1.08) !important;
}

.style-Signature h5,
.style-date h5 {
    margin-top: 8px !important;
    font-family: 'Raleway', sans-serif !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    color: #014b7a !important;
}

/* === MODULE: 10-footer-newsletter.css === */
/* ==========================================================================
   FOOTER ACCREDITATION STRIP, PRIORITY LIST 2027 & NEWSLETTER
   ========================================================================== */
/* ==========================================================================
   AUTHENTIC AGENCY-GRADE DESIGN: FOOTER & PRIORITY LIST 2027
   ========================================================================== */

/* 1. Footer Accreditation Badges Strip */
.ice-accreditations-strip {
    display: flex !important;
    flex-direction: row !important;
    gap: 8px !important;
    align-items: center !important;
    margin-top: 10px !important;
}

.ice-accred-badge {
    background: rgba(255, 255, 255, 0.05) !important;
    border: 1px solid rgba(0, 194, 203, 0.3) !important;
    border-radius: 8px !important;
    padding: 6px 10px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.25s ease !important;
}

.ice-accred-badge:hover {
    background: rgba(0, 194, 203, 0.12) !important;
    border-color: #00c2cb !important;
    transform: translateY(-2px) !important;
}

.ice-accred-title {
    font-family: 'Poppins', sans-serif !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    color: #ffffff !important;
    letter-spacing: 0.5px !important;
    line-height: 1.2 !important;
}

.ice-accred-role {
    font-family: 'Poppins', sans-serif !important;
    font-weight: 400 !important;
    font-size: 9.5px !important;
    color: #94a3b8 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3px !important;
    line-height: 1.2 !important;
}

/* 2. Priority List Features Clean Numbered Cards */
.ice-priority-features-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
}

.ice-feat-card {
    display: flex !important;
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 16px !important;
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 14px !important;
    padding: 18px 20px !important;
    box-shadow: 0 2px 8px rgba(1, 75, 122, 0.03) !important;
    transition: all 0.25s ease !important;
}

.ice-feat-card:hover {
    border-color: rgba(0, 194, 203, 0.5) !important;
    box-shadow: 0 6px 18px rgba(1, 75, 122, 0.06) !important;
    transform: translateX(4px) !important;
}

.ice-feat-num {
    font-family: 'Poppins', sans-serif !important;
    font-weight: 800 !important;
    font-size: 15px !important;
    color: #00c2cb !important;
    background: #ecfeff !important;
    border: 1px solid rgba(0, 194, 203, 0.3) !important;
    border-radius: 8px !important;
    width: 38px !important;
    height: 38px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}

.ice-feat-content h5 {
    font-family: 'Raleway', sans-serif !important;
    font-weight: 700 !important;
    font-size: 15px !important;
    color: #014b7a !important;
    margin: 0 0 4px 0 !important;
    line-height: 1.3 !important;
}

.ice-feat-content p {
    font-family: 'Poppins', sans-serif !important;
    font-weight: 400 !important;
    font-size: 13px !important;
    color: #64748b !important;
    margin: 0 !important;
    line-height: 1.5 !important;
}

/* 3. Newsletter Inline Single-Row */
.eweb-newsletter-inline {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

.eweb-newsletter-inline > p {
    display: none !important;
}

.eweb-newsletter-inline .eweb-news-field {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

.eweb-newsletter-inline .eweb-news-field p,
.eweb-newsletter-inline .eweb-news-submit p {
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    width: 100% !important;
}

.eweb-newsletter-inline .eweb-news-field input[type="text"],
.eweb-newsletter-inline .eweb-news-field input[type="email"] {
    width: 100% !important;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    background: #ffffff !important;
    border: 1.5px solid #cbd5e1 !important;
    border-radius: 50px !important;
    padding: 0 20px !important;
    font-size: 0.92rem !important;
    color: #1e293b !important;
    font-family: 'Poppins', sans-serif !important;
    outline: none !important;
    box-sizing: border-box !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04) !important;
    transition: all 0.25s ease !important;
}

.eweb-newsletter-inline .eweb-news-field input:focus {
    border-color: #00c2cb !important;
    box-shadow: 0 0 0 4px rgba(0, 194, 203, 0.25) !important;
}

.eweb-newsletter-inline .eweb-news-submit {
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

.eweb-newsletter-inline .eweb-news-submit input[type="submit"],
.eweb-newsletter-inline .eweb-news-submit input.wpcf7-submit {
    background: linear-gradient(135deg, #00c2cb 0%, #014b7a 100%) !important;
    background-color: #00c2cb !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: 50px !important;
    height: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    padding: 0 32px !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: all 0.25s ease !important;
    box-shadow: 0 4px 14px rgba(0, 194, 203, 0.35) !important;
    text-transform: capitalize !important;
    line-height: 48px !important;
    white-space: nowrap !important;
    display: inline-block !important;
    margin: 0 !important;
}

.eweb-newsletter-inline .eweb-news-submit input[type="submit"]:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 22px rgba(0, 194, 203, 0.5) !important;
}

/* Priority List Form Layout (Stacked in 1 Column for Form Card) */
.eweb-newsletter-inline.prioritylist {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    gap: 14px !important;
}

.eweb-newsletter-inline.prioritylist .eweb-news-field {
    flex: 1 1 100% !important;
    width: 100% !important;
}

.eweb-newsletter-inline.prioritylist .eweb-news-field input {
    background: #f8fafc !important;
    border: 1.5px solid #e2e8f0 !important;
    border-radius: 12px !important;
    height: 50px !important;
    max-height: 50px !important;
}

.eweb-newsletter-inline.prioritylist .eweb-news-submit {
    width: 100% !important;
    margin-top: 4px !important;
}

.eweb-newsletter-inline.prioritylist .eweb-news-submit input[type="submit"] {
    width: 100% !important;
    height: 52px !important;
    max-height: 52px !important;
    line-height: 52px !important;
    font-size: 1.02rem !important;
    border-radius: 12px !important;
}

/* Elevated Social Icons in Footer */
.elementor-widget-social-icons .elementor-social-icon {
    background-color: #014b7a !important;
    color: #ffffff !important;
    border: 1.5px solid rgba(0, 194, 203, 0.45) !important;
    border-radius: 50% !important;
    width: 40px !important;
    height: 40px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.25s ease !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
}

.elementor-widget-social-icons .elementor-social-icon svg {
    fill: #ffffff !important;
    width: 17px !important;
    height: 17px !important;
    transition: fill 0.2s ease, transform 0.2s ease !important;
}

.elementor-widget-social-icons .elementor-social-icon:hover {
    background-color: #00c2cb !important;
    border-color: #00c2cb !important;
    transform: translateY(-3px) scale(1.06) !important;
    box-shadow: 0 6px 18px rgba(0, 194, 203, 0.5) !important;
}

.elementor-widget-social-icons .elementor-social-icon:hover svg {
    fill: #ffffff !important;
    transform: scale(1.1) !important;
}

/* Mobile responsive */
@media (max-width: 767px) {
    .eweb-newsletter-inline {
        flex-direction: column !important;
        gap: 12px !important;
    }
    /* The CF7 wrapping <p> and the submit input must both take the full width so
       the button lines up flush with the two fields above it. */
    .eweb-newsletter-inline .eweb-news-field,
    .eweb-newsletter-inline .eweb-news-submit,
    .eweb-newsletter-inline .eweb-news-submit p,
    .eweb-newsletter-inline .eweb-news-submit input[type="submit"],
    .eweb-newsletter-inline .eweb-news-submit input.wpcf7-submit {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }
}

/* === MODULE: 11-legacy-migrated.css === */
/* ==========================================================================
   MODULE 11 - LEGACY CSS MIGRATED INTO THE PLUGIN
   ==========================================================================
   These rules used to live OUTSIDE this plugin, in places that are easy to
   lose and impossible to version:

     - WordPress Customizer -> "Additional CSS"  (#wp-custom-css, stored in the
       database, printed inline on every page). Held the home glass cards
       (.mh-card), the global button tweaks and the .mi-menu "dot under the
       active item" that clashed with the mobile menu redesign.
     - hello-theme-child-master/style.css (child theme): ~30 rules for a
       ".courses-archive" template that does not exist on this site. Dead code.

   The goal is ONE source of truth: everything the site actually renders lives
   in this plugin, is versioned here, and is deployed with frontend.css.

   Styles are copied 1:1 from the Customizer so nothing changes visually.
   The only intentional edit: the .mi-menu ::after "dot" is NOT migrated - the
   mobile menu was redesigned and that dot is no longer wanted. Removing it
   here means the module 02 override is no longer fighting an inline rule.
   ========================================================================== */


/* --------------------------------------------------------------------------
   1. HOME GLASS CARDS (.mh-card) - page 67 only (4 cards)
   Copied from the Customizer verbatim: gradient wash, 26px radius, glass
   border, inner + outer glow, lift on hover and the thin teal accent bar.

   SPECIFICITY NOTE: in the Customizer this CSS was printed INLINE at the end
   of the document head, so it won the cascade purely by order - frontend.css
   loads BEFORE post-67.css, where Elementor sets
   `border-radius: var(--border-radius)` and `padding: 30px` on the same
   .e-con. Now that the rule lives in frontend.css it loses by order, so it is
   anchored with the `html body` prefix AND !important to win regardless of
   which stylesheet the page prints last.
   -------------------------------------------------------------------------- */
html body .mh-card {
    /* Degradado usando #1dbbc4 diluido */
    background: linear-gradient(148deg, #80fffc00 0%, rgba(29, 187, 196, 0.10) 45%, rgb(71 239 249 / 63%) 100%) !important;
    border-radius: 26px !important;
    padding: 45px 38px !important;
    /* Cristal */
    backdrop-filter: blur(18px) saturate(140%) !important;
    -webkit-backdrop-filter: blur(18px) saturate(140%) !important;
    /* Borde cristal */
    border: 1px solid #80FFFC !important;
    /* Glow mint basado en #1dbbc4 */
    box-shadow: 8px 10px 12px 1px rgb(66 225 234 / 15%), 8px 11px 35px rgba(0, 0, 0, 0.08), inset 10px 8px 8px rgba(255, 255, 255, 0.40) !important;
    /* luz interna */
    transition: all 0.35s ease-out !important;
}

html body .mh-card:hover {
    transform: translateY(-8px) !important;
    backdrop-filter: blur(22px) saturate(170%) !important;
    -webkit-backdrop-filter: blur(22px) saturate(170%) !important;
    box-shadow: 0 -12px 20px rgba(0, 0, 0, 0.05), 0 0 36px rgb(128 255 252 / 20%), 18px 22px 48px rgba(0, 0, 0, 0.14), inset 0 0 45px rgba(255, 255, 255, 0.45) !important;
    /* luz interior */
}

html body .mh-card:before {
    content: "" !important;
    display: block !important;
    width: 100px !important;
    height: 1px !important;
    max-width: 100px !important;
    background-color: #1dbbc4 !important;
    margin-left: 30% !important;
}

/* .mh-card-skill was in the Customizer but is used by NO page on this site
   (verified across home, interpreting, translation, interpreter-training,
   spain-retreat, instructors-courses, program-schedule, packages,
   participant-information, recommended-excursions). Dead code: not migrated.
   If a page ever ships a .mh-card-skill element, copy the block above and
   rename the selector. */


/* --------------------------------------------------------------------------
   2. GLOBAL BUTTON TWEAKS - applies to every Elementor button on the site
   Copied from the Customizer verbatim.
   -------------------------------------------------------------------------- */
.elementor-button-content-wrapper {
    align-items: center !important;
}

.elementor-button-icon svg {
    width: 2em !important;
}


/* --------------------------------------------------------------------------
   3. MAIN MENU ITEM (.mi-menu) - the box stays, the "active dot" is dropped.

   The Customizer shipped a 10px #004e79 circle under every menu item, shown
   on hover / active (::after). The mobile menu was redesigned as a sliding
   sheet and that dot is no longer wanted; module 02 had to keep hiding it with
   a scoped override. Keeping only `position: relative` here (harmless, and the
   dot pseudo-element used it as its anchor) means the ::after simply no longer
   exists - so the override in module 02 becomes redundant but not harmful.
   -------------------------------------------------------------------------- */
.mi-menu .elementor-item {
    position: relative;
}
