/* ══════════════════════════════════════════
   GAS Site Header — Frontend
   Tokens: gas-design-tokens.css
   ══════════════════════════════════════════ */

.gas-site-header {
    /* ── Header global ── */
    --_header-bg: rgba(255, 255, 255, 0.97);
    --_header-border: var(--gas-border-color);
    --_header-text: var(--gas-text-color);
    --_header-muted: var(--gas-text-color-muted);
    --_header-hover-bg: var(--gas-neutral-100);
    --_header-shadow: var(--gas-shadow-s);
    --_logo-w: var(--gas-site-logo-width, 220px);
    --_logo-h: var(--gas-site-logo-height, 72px);

    /* ── Nav links (surchargeables via inline style) ── */
    --_nav-color: var(--_header-text);
    --_nav-hover-color: var(--gas-primary);
    --_nav-hover-bg: var(--_header-hover-bg);
    --_nav-active-color: var(--gas-primary);
    --_nav-active-bg: var(--gas-primary-ultra-light);

    /* ── Member mega ── */
    --_member-color: var(--_header-text);
    --_member-hover-color: var(--gas-primary);
    --_member-hover-bg: var(--_header-hover-bg);
    --_member-active-color: var(--gas-primary);
    --_member-active-bg: var(--gas-primary-ultra-light);

    /* ── CTA primary ── */
    --_cta-primary-bg: var(--gas-button-primary-bg);
    --_cta-primary-color: var(--gas-button-primary-color);
    --_cta-primary-hover-bg: var(--gas-button-primary-bg-hover);

    /* ── CTA secondary ── */
    --_cta-secondary-bg: transparent;
    --_cta-secondary-color: var(--gas-primary);
    --_cta-secondary-hover-bg: var(--gas-primary-ultra-light);

    position: sticky;
    top: 0;
    width: 100%;
    z-index: 100;
    color: var(--_header-text);
    font-family: var(--gas-font-family);
}

.gas-site-header--static {
    position: relative;
}

/* ── Admin bar offset ── */

body.admin-bar .gas-site-header:not(.gas-site-header--static) {
    top: var(--wp-admin--admin-bar--height, 32px);
}

@media screen and (max-width: 782px) {
    body.admin-bar .gas-site-header:not(.gas-site-header--static) {
        top: var(--wp-admin--admin-bar--height, 46px);
    }
}

.gas-site-header a {
    text-decoration: none;
    transition: color var(--gas-transition-fast);
}

/* ── Announcement bar ── */

.gas-site-header__announcement {
    width: 100%;
    padding: var(--gas-space-s) var(--gas-space-m);
    font-size: var(--gas-text-xs);
    line-height: var(--gas-leading-tight);
}

.gas-site-header__announcement--info    { background: var(--gas-info);    color: var(--gas-white); }
.gas-site-header__announcement--warning { background: var(--gas-warning); color: var(--gas-neutral-900); }
.gas-site-header__announcement--success { background: var(--gas-success); color: var(--gas-white); }
.gas-site-header__announcement--primary { background: var(--gas-primary); color: var(--gas-white); }
.gas-site-header__announcement--accent  { background: var(--gas-accent);  color: var(--gas-white); }

.gas-site-header__announcement--highlight {
    background: linear-gradient(90deg, var(--gas-primary), var(--gas-secondary));
    color: var(--gas-white);
}

.gas-site-header__announcement + .gas-site-header__announcement {
    border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.gas-site-header__announcement--full-width {
    width: 100vw;
    position: relative;
    left: 50%;
    margin-left: -50vw;
}

.gas-site-header__announcement-inner {
    display: block;
    max-width: var(--gas-site-max-width);
    margin: 0 auto;
    color: inherit;
    text-align: center;
    font-weight: var(--gas-weight-semi);
}

a.gas-site-header__announcement-inner:hover { opacity: 0.85; }

/* ── Row-based layout ── */

.gas-site-header__row {
    display: grid;
    align-items: center;
    gap: 0 var(--gas-space-l);
    padding: var(--gas-space-xs) var(--gas-space-l);
    background: var(--_header-bg);
    position: relative;
    z-index: var(--_row-z, 20);
    max-width: 1440px;
    margin: 0 auto;
}

/* The main row (with branding) gets the visual weight */
.gas-site-header__row--has-branding {
    padding: var(--_header-padding-top, var(--gas-space-xs)) var(--gas-space-l) var(--_header-padding-bottom, var(--gas-space-xs));
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--_header-border);
    box-shadow: var(--_header-shadow);
}

/* Non-branding rows: subtle separator */
.gas-site-header__row:not(.gas-site-header__row--has-branding) {
    border-bottom: 1px solid var(--_header-border);
    padding-top: 2px;
    padding-bottom: 2px;
}

/* ── Row layout variants (grid-template-columns) ── */
.gas-site-header__row--1-1       { grid-template-columns: 1fr; }
.gas-site-header__row--1-2--1-2  { grid-template-columns: 1fr 1fr; }
.gas-site-header__row--1-3--2-3  { grid-template-columns: 1fr 2fr; }
.gas-site-header__row--2-3--1-3  { grid-template-columns: 2fr 1fr; }
.gas-site-header__row--1-4--3-4  { grid-template-columns: 1fr 3fr; }
.gas-site-header__row--3-4--1-4  { grid-template-columns: 3fr 1fr; }

.gas-site-header--compact .gas-site-header__row--has-branding,
.gas-site-header--menu-only .gas-site-header__row--has-branding {
    padding-top: 2px;
    padding-bottom: 2px;
}

/* ── Column ── */

.gas-site-header__col {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--gas-space-xs) var(--gas-space-m);
    min-width: 0;
}

/* Second+ columns: align content to the right */
.gas-site-header__col:not(:first-child) {
    justify-content: flex-end;
}

/* ── Branding ── */

.gas-site-header__branding {
    flex-shrink: 0;
    min-width: 0;
}

.gas-site-header__brand-link {
    display: flex;
    align-items: center;
    gap: var(--gas-space-m);
    min-width: 0;
    color: inherit;
}

/* Branding layout: inline (logo + name + slogan all in a row) */
.gas-site-header__branding--inline .gas-site-header__brand-link {
    flex-direction: row;
    align-items: center;
}

.gas-site-header__branding--inline .gas-site-header__brand-copy {
    flex-direction: row;
    gap: var(--gas-space-s);
    align-items: baseline;
}

/* Branding layout: logo-left-stacked (logo left, name + slogan stacked right) — default */
.gas-site-header__branding--logo-left-stacked .gas-site-header__brand-link {
    flex-direction: row;
    align-items: center;
    gap: var(--gas-space-s);
}

/* Branding layout: stacked (everything vertical) */
.gas-site-header__branding--stacked .gas-site-header__brand-link {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--gas-space-xs);
}

/* Branding layout: logo-top (logo above, texts below in a row) */
.gas-site-header__branding--logo-top .gas-site-header__brand-link {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--gas-space-xs);
}

.gas-site-header__branding--logo-top .gas-site-header__brand-copy {
    flex-direction: row;
    gap: var(--gas-space-s);
    align-items: baseline;
}

/* Branding text vertical alignment */
.gas-site-header__branding--valign-top .gas-site-header__brand-link {
    align-items: flex-start;
}

.gas-site-header__branding--valign-bottom .gas-site-header__brand-link {
    align-items: flex-end;
}

.gas-site-header__brand-link:hover .gas-site-header__site-name {
    color: var(--gas-primary);
}

.gas-site-header__logo img {
    display: block;
    width: auto;
    max-width: var(--_logo-w);
    height: auto;
    max-height: var(--_logo-h);
    object-fit: contain;
}

.gas-site-header__brand-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.gas-site-header__site-name {
    font-size: clamp(1.4rem, 1.2rem + 0.5vw, 1.8rem);
    font-weight: var(--gas-weight-bold);
    line-height: var(--gas-leading-tight);
    transition: color var(--gas-transition-fast);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gas-site-header__site-description {
    color: var(--_header-muted);
    font-size: var(--gas-text-xs);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ── Element alignment within columns ── */

/* Primary nav pushes rest right (default = left) */
.gas-site-header__col > .gas-site-header__primary-nav {
    margin-right: auto;
}

/* Nav align: center — nav centered, rest pushed right */
.gas-site-header--nav-center .gas-site-header__col > .gas-site-header__primary-nav {
    margin-right: auto;
    margin-left: auto;
}

/* Nav align: right — nav pushed to the right */
.gas-site-header--nav-right .gas-site-header__col > .gas-site-header__primary-nav {
    margin-right: 0;
    margin-left: auto;
}

/* Member mega inline with nav, not full column */
.gas-site-header__col > .gas-site-header__member-mega {
    flex-shrink: 0;
}

/* Element separator bars (configurable left/right) */
.gas-site-header__element-wrap {
    display: contents;
}

.gas-site-header__element-wrap--sep-left,
.gas-site-header__element-wrap--sep-right {
    display: flex;
    align-items: center;
}

.gas-site-header__element-wrap--sep-left {
    border-left: 1px solid var(--_header-border);
    padding-left: var(--gas-space-s);
}

.gas-site-header__element-wrap--sep-right {
    border-right: 1px solid var(--_header-border);
    padding-right: var(--gas-space-s);
}

/* ── Admin collapse toggle ── */

.gas-site-header__collapse-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 1px solid var(--_header-border);
    border-radius: var(--gas-radius-s);
    background: var(--gas-neutral-50);
    cursor: pointer;
    flex-shrink: 0;
    transition: background var(--gas-transition-fast), border-color var(--gas-transition-fast);
}

.gas-site-header__collapse-toggle:hover {
    background: var(--gas-primary-ultra-light);
    border-color: var(--gas-primary-light);
}

.gas-site-header__collapse-icon {
    display: block;
    width: 12px;
    height: 2px;
    background: var(--_header-text);
    position: relative;
    transition: background var(--gas-transition-fast);
}

/* Chevron-up icon: two lines forming ^ */
.gas-site-header__collapse-icon::before,
.gas-site-header__collapse-icon::after {
    content: '';
    position: absolute;
    width: 7px;
    height: 2px;
    background: inherit;
    top: 0;
}

.gas-site-header__collapse-icon::before {
    left: 0;
    transform: rotate(-35deg);
    transform-origin: left center;
}

.gas-site-header__collapse-icon::after {
    right: 0;
    transform: rotate(35deg);
    transform-origin: right center;
}

/* Collapsed state: rotate chevron down */
.gas-site-header.is-header-collapsed .gas-site-header__collapse-icon::before {
    transform: rotate(35deg);
}

.gas-site-header.is-header-collapsed .gas-site-header__collapse-icon::after {
    transform: rotate(-35deg);
}

/* ── Collapsed header state ── */

.gas-site-header.is-header-collapsed .gas-site-header__row:not(.gas-site-header__row--has-branding) {
    display: none;
}

.gas-site-header.is-header-collapsed .gas-site-header__row--has-branding .gas-site-header__col:not(:first-child) {
    display: none;
}

.gas-site-header.is-header-collapsed .gas-site-header__row--has-branding .gas-site-header__col:first-child > *:not(.gas-site-header__collapse-toggle) {
    display: none;
}

.gas-site-header.is-header-collapsed .gas-site-header__toggle {
    display: none;
}

.gas-site-header.is-header-collapsed .gas-site-header__row--has-branding {
    padding: 2px var(--gas-space-l);
    gap: 0;
    grid-template-columns: auto;
}

/* ── Hamburger toggle ── */

.gas-site-header__toggle {
    display: none;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 5px;
    width: 44px;
    height: 44px;
    border: 1px solid var(--_header-border);
    border-radius: var(--gas-radius-m);
    background: var(--gas-white);
    cursor: pointer;
    transition: background var(--gas-transition-fast);
    padding: 0;
    flex-shrink: 0;
    margin-left: auto;
}

.gas-site-header__toggle:hover {
    background: var(--_header-hover-bg);
}

.gas-site-header__toggle span:not(.screen-reader-text) {
    display: block;
    width: 18px;
    height: 2px;
    background: var(--_header-text);
    border-radius: var(--gas-radius-full);
    transition: transform 0.25s ease, opacity 0.25s ease;
    transform-origin: center;
}

.gas-site-header.is-drawer-open .gas-site-header__toggle span:not(.screen-reader-text):nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.gas-site-header.is-drawer-open .gas-site-header__toggle span:not(.screen-reader-text):nth-child(2) {
    opacity: 0;
    transform: scaleX(0);
}

.gas-site-header.is-drawer-open .gas-site-header__toggle span:not(.screen-reader-text):nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* ── Shared nav elements ── */

.gas-site-header__primary-nav,
.gas-site-header__action-nav,
.gas-site-header__member-mega {
    position: relative;
}

.gas-site-menu,
.gas-site-action-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.gas-site-menu--primary {
    display: flex;
    align-items: center;
    gap: 2px;
    flex-wrap: wrap;
}

.gas-site-menu__item {
    position: relative;
}

/* ── Nav links / triggers ── */

.gas-site-menu__link,
.gas-site-menu__trigger,
.gas-site-action-list__item a {
    display: inline-flex;
    align-items: center;
    gap: var(--gas-space-xs);
    min-height: 34px;
    padding: 2px var(--gas-space-s);
    border: 0;
    border-radius: var(--gas-radius-s);
    background: transparent;
    color: var(--_nav-color);
    font-size: var(--_nav-font-size, var(--gas-text-xs));
    font-weight: var(--gas-weight-semi);
    cursor: pointer;
    white-space: nowrap;
    transition: background var(--gas-transition-fast), color var(--gas-transition-fast);
}

.gas-site-header__member-trigger {
    display: inline-flex;
    align-items: center;
    gap: var(--gas-space-xs);
    min-height: 34px;
    padding: 2px var(--gas-space-s);
    border: 0;
    border-radius: var(--gas-radius-s);
    background: transparent;
    color: var(--_member-color);
    font-size: var(--_member-font-size, var(--gas-text-xs));
    font-weight: var(--gas-weight-semi);
    cursor: pointer;
    white-space: nowrap;
    transition: background var(--gas-transition-fast), color var(--gas-transition-fast);
}

.gas-site-menu__item-head {
    display: inline-flex;
    align-items: center;
    gap: 1px;
}

.gas-site-menu__trigger--icon {
    min-width: 32px;
    padding-left: var(--gas-space-xs);
    padding-right: var(--gas-space-xs);
    justify-content: center;
}

.gas-site-menu__link--label { cursor: default; }

.gas-site-menu__link:hover,
.gas-site-menu__trigger:hover,
.gas-site-action-list__item a:hover {
    background: var(--_nav-hover-bg);
    color: var(--_nav-hover-color);
}

.gas-site-header__member-trigger:hover {
    background: var(--_member-hover-bg);
    color: var(--_member-hover-color);
}

.gas-site-menu__item.is-current > .gas-site-menu__link,
.gas-site-menu__item.is-current > .gas-site-menu__item-head > .gas-site-menu__link,
.gas-site-menu__item.is-current-ancestor > .gas-site-menu__item-head > .gas-site-menu__link,
.gas-site-menu__item.is-current-ancestor > .gas-site-menu__link--parent,
.gas-site-action-list__item.is-current a {
    background: var(--_nav-active-bg);
    color: var(--_nav-active-color);
}

.gas-site-menu__item.is-highlight > .gas-site-menu__link,
.gas-site-menu__item.is-highlight > .gas-site-menu__item-head > .gas-site-menu__link,
.gas-site-menu__item.is-highlight > .gas-site-menu__link--parent {
    background: var(--gas-menu-highlight-bg, var(--gas-primary-ultra-light));
    color: var(--gas-menu-highlight-text, var(--gas-primary));
    box-shadow: inset 0 0 0 1px var(--gas-menu-highlight-border, transparent);
    font-weight: var(--gas-weight-bold);
}

.gas-site-menu__emoji {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

.gas-site-menu__label-text {
    display: inline-block;
}

/* ── Action lists ── */

.gas-site-action-list {
    display: flex;
    align-items: center;
    gap: 2px;
    flex-wrap: wrap;
}

.gas-site-header__action-nav--application .gas-site-action-list__item a {
    font-size: var(--_app-font-size, var(--gas-text-xs));
    background: var(--gas-neutral-100);
}

.gas-site-header__action-nav--application .gas-site-action-list__item a:hover {
    background: var(--gas-primary-ultra-light);
}

.gas-site-header__action-nav--account .gas-site-action-list {
    justify-content: flex-end;
    gap: 0;
}

.gas-site-header__action-nav--account .gas-site-action-list__item a {
    font-size: var(--_account-font-size, var(--gas-text-xs));
}

.gas-site-action-list__item.is-emphasis a {
    background: var(--gas-primary-ultra-light);
    font-weight: var(--gas-weight-bold);
}

.gas-site-header--action-emphasis-soft-primary .gas-site-action-list__item.is-emphasis a {
    background: var(--gas-primary-ultra-light);
    color: var(--gas-primary);
    font-weight: var(--gas-weight-bold);
}

.gas-site-header--action-emphasis-outline-primary .gas-site-action-list__item.is-emphasis a {
    background: transparent;
    color: var(--gas-primary);
    border: 1px solid var(--gas-primary-light);
    font-weight: var(--gas-weight-bold);
}

.gas-site-header--action-emphasis-solid-primary .gas-site-action-list__item.is-emphasis a {
    background: var(--gas-primary);
    color: var(--gas-white);
    font-weight: var(--gas-weight-bold);
}

.gas-site-header--action-emphasis-neutral-pill .gas-site-action-list__item.is-emphasis a {
    background: var(--gas-neutral-100);
    color: var(--gas-neutral-800);
    border: 1px solid var(--gas-neutral-300);
    font-weight: var(--gas-weight-semi);
}

.gas-site-header--action-emphasis-accent-pill .gas-site-action-list__item.is-emphasis a {
    background: var(--gas-accent-ultra-light);
    color: var(--gas-accent-dark);
    border: 1px solid var(--gas-accent-light);
    font-weight: var(--gas-weight-bold);
}

.gas-site-header--action-emphasis-underline .gas-site-action-list__item.is-emphasis a {
    background: transparent;
    color: var(--gas-primary);
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 0.18em;
    font-weight: var(--gas-weight-bold);
}

/* ── CTA group ── */

.gas-site-header__cta-group {
    display: flex;
    align-items: center;
    gap: var(--gas-space-s);
    flex-wrap: wrap;
    flex-shrink: 0;
}

.gas-site-header__cta-group .gas-button--primary {
    background: var(--_cta-primary-bg);
    color: var(--_cta-primary-color);
    border-color: var(--_cta-primary-bg);
}

.gas-site-header__cta-group .gas-button--primary:hover {
    background: var(--_cta-primary-hover-bg);
    border-color: var(--_cta-primary-hover-bg);
}

.gas-site-header__cta-group .gas-button--primary-outline {
    background: var(--_cta-secondary-bg);
    color: var(--_cta-secondary-color);
    border-color: var(--_cta-secondary-color);
}

.gas-site-header__cta-group .gas-button--primary-outline:hover {
    background: var(--_cta-secondary-hover-bg);
}

/* ── Dropdowns ── */

.gas-site-menu__dropdown,
.gas-site-header__mega-panel {
    position: absolute;
    top: calc(100% + var(--gas-space-xs));
    right: 0;
    min-width: 240px;
    padding: var(--gas-space-s);
    background: var(--gas-white);
    border: 1px solid var(--_header-border);
    border-radius: var(--gas-radius-l);
    box-shadow: var(--gas-shadow-m);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(6px);
    transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s ease;
    z-index: 40;
}

.gas-site-menu__item.is-open > .gas-site-menu__dropdown,
.gas-site-header__member-mega.is-open > .gas-site-header__mega-panel {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.gas-site-menu--sub {
    display: grid;
    gap: 2px;
}

.gas-site-menu--sub .gas-site-menu__dropdown {
    left: calc(100% + var(--gas-space-s));
    right: auto;
    top: 0;
}

.gas-site-menu--sub .gas-site-menu__link,
.gas-site-menu--sub .gas-site-menu__trigger {
    width: 100%;
    justify-content: space-between;
}

/* ── Mega menu ── */

.gas-site-header__mega-panel {
    width: min(480px, calc(100vw - 2rem));
    padding: var(--gas-space-l);
    right: auto;
    left: 50%;
    transform: translateX(-50%) translateY(6px);
}

.gas-site-header__member-mega.is-open > .gas-site-header__mega-panel {
    transform: translateX(-50%) translateY(0);
}

.gas-site-header__mega-columns {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--gas-space-m);
    max-height: 60vh;
    overflow-y: auto;
}

.gas-site-header__mega-title {
    margin: 0 0 var(--gas-space-xs);
    font-size: var(--gas-text-s);
    font-weight: var(--gas-weight-bold);
    color: var(--_member-color);
}

.gas-site-header__mega-title a { color: inherit; }
.gas-site-header__mega-title a:hover { color: var(--_member-hover-color); }

.gas-site-header__mega-description {
    margin: 0 0 var(--gas-space-s);
    color: var(--_header-muted);
    font-size: var(--gas-text-xs);
}

.gas-site-header__mega-links,
.gas-site-header__mega-sub-links {
    list-style: none;
    margin: 0;
    padding: 0;
}

.gas-site-header__mega-links { display: grid; gap: var(--gas-space-xs); }

.gas-site-header__mega-link-item > a,
.gas-site-header__mega-sub-links a {
    display: block;
    padding: var(--gas-space-xs) var(--gas-space-s);
    border-radius: var(--gas-radius-s);
    color: var(--_member-color);
    font-size: var(--_member-font-size, var(--gas-text-xs));
    transition: background var(--gas-transition-fast), color var(--gas-transition-fast);
}

.gas-site-header__mega-link-item > a:hover,
.gas-site-header__mega-sub-links a:hover {
    background: var(--_member-hover-bg);
    color: var(--_member-hover-color);
}

.gas-site-header__mega-link-item > a.is-current {
    background: var(--_member-active-bg);
    color: var(--_member-active-color);
}

.gas-site-header__mega-link-item > a.is-highlight,
.gas-site-header__mega-sub-links a.is-highlight {
    background: var(--gas-menu-highlight-bg, var(--gas-primary-ultra-light));
    color: var(--gas-menu-highlight-text, var(--gas-primary));
    box-shadow: inset 0 0 0 1px var(--gas-menu-highlight-border, transparent);
    font-weight: var(--gas-weight-bold);
}

.gas-site-header__mega-sub-links {
    display: grid;
    gap: 2px;
    margin-top: var(--gas-space-xs);
    padding-left: var(--gas-space-s);
}

/* ── School promo ── */

.gas-site-header__school-promo {
    position: relative;
    z-index: 10;
}

.gas-site-header__school-promo-inner {
    display: flex;
    align-items: center;
    gap: var(--gas-space-m);
    padding: var(--gas-space-s) var(--gas-space-l);
    background: var(--gas-neutral-50);
    border-bottom: 1px solid var(--_header-border);
    max-width: 1440px;
    margin: 0 auto;
}

.gas-site-header__school-promo--card .gas-site-header__school-promo-inner {
    margin: var(--gas-space-s) var(--gas-space-l) 0;
    padding: var(--gas-space-m);
    border: 1px solid var(--_header-border);
    border-radius: var(--gas-radius-l);
    box-shadow: var(--gas-shadow-xs);
    background: var(--gas-white);
}

.gas-site-header__school-logo img {
    display: block;
    width: 42px;
    height: 42px;
    object-fit: cover;
    border-radius: var(--gas-radius-m);
}

.gas-site-header__school-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1;
}

.gas-site-header__school-label,
.gas-site-header__school-meta,
.gas-site-header__school-description {
    margin: 0;
    font-size: var(--gas-text-xs);
}

.gas-site-header__school-label,
.gas-site-header__school-meta {
    color: var(--_header-muted);
}

.gas-site-header__school-title {
    color: var(--_header-text);
    font-weight: var(--gas-weight-bold);
    font-size: var(--gas-text-s);
}

.gas-site-header__school-title:hover { color: var(--gas-primary); }

.gas-site-header__school-cta {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: var(--gas-space-xs) var(--gas-space-m);
    border-radius: var(--gas-radius-s);
    background: var(--gas-primary);
    color: var(--gas-white);
    font-size: var(--gas-text-xs);
    font-weight: var(--gas-weight-bold);
    transition: background var(--gas-transition-fast);
    flex-shrink: 0;
}

.gas-site-header__school-cta:hover {
    background: var(--gas-primary-dark);
    color: var(--gas-white);
}

.gas-site-header__school-promo--inline .gas-site-header__school-promo-inner {
    padding-top: var(--gas-space-xs);
    padding-bottom: var(--gas-space-xs);
}

.gas-site-header__school-promo--inline .gas-site-header__school-logo,
.gas-site-header__school-promo--inline .gas-site-header__school-meta,
.gas-site-header__school-promo--inline .gas-site-header__school-description,
.gas-site-header__school-promo--inline .gas-site-header__school-cta {
    display: none;
}

/* CTA texte inline apres le titre (layouts inline + pill) */
.gas-site-header__school-cta-inline {
    font-weight: var(--gas-weight-regular);
    opacity: 0.7;
    font-size: 0.9em;
}

/* ── Drawer + Overlay (hidden by default) ── */

.gas-site-header__drawer,
.gas-site-header__overlay {
    display: none;
}

/* ── Drawer close button ── */

.gas-site-header__drawer-close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    margin-left: auto;
    border: 1px solid var(--_header-border);
    border-radius: var(--gas-radius-m);
    background: var(--gas-white);
    color: var(--_header-text);
    font-size: 1.4rem;
    font-weight: var(--gas-weight-bold);
    line-height: 1;
    cursor: pointer;
    transition: background var(--gas-transition-fast);
    flex-shrink: 0;
    padding: 0;
}

.gas-site-header__drawer-close:hover {
    background: var(--_header-hover-bg);
}

/* ══════════════════════════════════════════
   Submenu styles: Hover
   ══════════════════════════════════════════ */

.gas-site-header--submenu-hover .gas-site-menu__item--has-children > .gas-site-menu__dropdown {
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}

.gas-site-header--submenu-hover .gas-site-menu__item--has-children:hover > .gas-site-menu__dropdown,
.gas-site-header--submenu-hover .gas-site-menu__item--has-children:focus-within > .gas-site-menu__dropdown {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.gas-site-header--submenu-hover .gas-site-menu__link--parent {
    gap: var(--gas-space-xs);
}

/* ══════════════════════════════════════════
   Submenu styles: Underline (click-on-link)
   ══════════════════════════════════════════ */

.gas-site-header--submenu-underline .gas-site-menu__link--parent {
    border: 0;
    background: transparent;
    font-family: inherit;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    padding-bottom: var(--gas-space-xs);
    transition: border-color var(--gas-transition-fast), color var(--gas-transition-fast);
    gap: var(--gas-space-xs);
    cursor: pointer;
}

.gas-site-header--submenu-underline .gas-site-menu__link--parent:hover {
    color: var(--gas-primary);
}

.gas-site-header--submenu-underline .gas-site-menu__item.is-open > .gas-site-menu__link--parent {
    border-bottom-color: var(--gas-primary);
    color: var(--gas-primary);
}

/* ── Chevron indicator ── */

.gas-site-menu__chevron {
    font-size: 0.8em;
    line-height: 1;
    transition: transform var(--gas-transition-fast);
}

.gas-site-menu__item.is-open > .gas-site-menu__link--parent .gas-site-menu__chevron,
.gas-site-menu__item--has-children:hover > .gas-site-menu__link--parent .gas-site-menu__chevron {
    transform: rotate(180deg);
}

/* ══════════════════════════════════════════
   Mega menu: Content card
   ══════════════════════════════════════════ */

.gas-site-header__mega-panel--with-content {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: var(--gas-space-l);
    width: min(580px, calc(100vw - 2rem));
}

.gas-site-header__mega-content {
    min-width: 0;
}

.gas-site-header__mega-content-card {
    display: flex;
    flex-direction: column;
    gap: var(--gas-space-xs);
    color: var(--_header-text);
    border: 1px solid var(--_header-border);
    border-radius: var(--gas-radius-m);
    overflow: hidden;
    transition: box-shadow var(--gas-transition-fast), border-color var(--gas-transition-fast);
}

.gas-site-header__mega-content-card:hover {
    border-color: var(--gas-primary-light);
    box-shadow: var(--gas-shadow-s);
}

.gas-site-header__mega-content-img {
    display: block;
    width: 100%;
    height: 100px;
    object-fit: cover;
}

.gas-site-header__mega-content-body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: var(--gas-space-s);
}

.gas-site-header__mega-content-date {
    font-size: 1rem;
    color: var(--gas-primary);
    font-weight: var(--gas-weight-semi);
}

.gas-site-header__mega-content-title {
    font-size: var(--gas-text-xs);
    font-weight: var(--gas-weight-bold);
    line-height: var(--gas-leading-tight);
}

.gas-site-header__mega-content-meta {
    font-size: 1rem;
    color: var(--_header-muted);
}

.gas-site-header__mega-content-price {
    font-size: var(--gas-text-xs);
    font-weight: var(--gas-weight-bold);
    color: var(--gas-primary);
    margin-top: var(--gas-space-xs);
}

/* Note: The old "centered" layout is replaced by the row-based builder.
   Users achieve centered layouts by placing branding alone in a 1/1 row
   and nav in a separate 1/1 row below it. No special layout mode needed. */

/* ══════════════════════════════════════════
   RESPONSIVE — Tablet / Mobile (< 1100px)
   ══════════════════════════════════════════ */

@media (max-width: 1100px) {

    /* Hide all rows except the one with branding */
    .gas-site-header__row:not(.gas-site-header__row--has-branding) {
        display: none;
    }

    /* In the branding row: single column on mobile */
    .gas-site-header__row--has-branding {
        grid-template-columns: 1fr;
    }

    /* Hide non-first columns on mobile */
    .gas-site-header__row--has-branding .gas-site-header__col:not(:first-child) {
        display: none;
    }

    /* First column: only show branding, collapse toggle, and hamburger */
    .gas-site-header__row--has-branding .gas-site-header__col:first-child > *:not(.gas-site-header__branding):not(.gas-site-header__toggle):not(.gas-site-header__collapse-toggle) {
        display: none;
    }

    /* Mobile logo width override */
    .gas-site-header__logo img {
        max-width: var(--_logo-w-mobile, var(--_logo-w));
    }

    /* Hamburger visible on mobile */
    .gas-site-header__toggle {
        display: inline-flex;
        margin-left: auto;
    }

    .gas-site-header__element-wrap--sep-left,
    .gas-site-header__element-wrap--sep-right {
        border-left: 0;
        border-right: 0;
        padding-left: 0;
        padding-right: 0;
    }

    /* ── Drawer ── */

    .gas-site-header__drawer {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        width: min(380px, 85vw);
        max-height: 100dvh;
        overflow-y: auto;
        overscroll-behavior: contain;
        background: var(--gas-white);
        border-left: 1px solid var(--_header-border);
        box-shadow: var(--gas-shadow-l);
        z-index: 200;
        transform: translateX(100%);
        transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .gas-site-header.is-drawer-open .gas-site-header__drawer {
        display: block;
        transform: translateX(0);
    }

    .gas-site-header__drawer.is-visible {
        display: block;
    }

    .gas-site-header__drawer-inner {
        display: grid;
        gap: var(--gas-space-l);
        padding: var(--gas-space-l);
    }

    /* Drawer head (logo + close) */
    .gas-site-header__drawer-head {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: var(--gas-space-m);
        padding-bottom: var(--gas-space-s);
        border-bottom: 1px solid var(--_header-border);
    }

    .gas-site-header__drawer-head .gas-site-header__branding {
        flex: 1;
        min-width: 0;
    }

    .gas-site-header__drawer-head .gas-site-header__logo img {
        max-height: 40px;
    }

    /* Sections */
    .gas-site-header__drawer-section {
        display: grid;
        gap: var(--gas-space-s);
    }

    .gas-site-header__drawer-title {
        margin: 0;
        padding: 0 2px;
        font-size: 1rem;
        color: var(--_header-muted);
        text-transform: uppercase;
        letter-spacing: 0.08em;
        font-weight: var(--gas-weight-bold);
    }

    .gas-site-header__drawer-links,
    .gas-site-header__drawer-menu {
        list-style: none;
        margin: 0;
        padding: 0;
        display: grid;
        gap: var(--gas-space-xs);
    }

    /* Links in drawer */
    .gas-site-header__drawer-links a,
    .gas-site-header__drawer-menu a,
    .gas-site-header__drawer-toggle {
        display: flex;
        justify-content: space-between;
        align-items: center;
        min-height: 46px;
        padding: var(--gas-space-s) var(--gas-space-m);
        border: 1px solid var(--_header-border);
        border-radius: var(--gas-radius-m);
        background: var(--gas-white);
        color: var(--_header-text);
        font-size: var(--gas-text-xs);
        font-weight: var(--gas-weight-semi);
        transition: background var(--gas-transition-fast);
    }

    .gas-site-header__drawer-links a:hover,
    .gas-site-header__drawer-menu a:hover {
        background: var(--_header-hover-bg);
    }

    .gas-site-header__drawer-links .is-current a,
    .gas-site-header__drawer-menu .is-current > a,
    .gas-site-header__drawer-menu .is-current > .gas-site-header__drawer-row > a {
        background: var(--_nav-active-bg);
        color: var(--_nav-active-color);
        border-color: var(--_nav-active-color);
    }

    .gas-site-header__drawer-menu .is-current-ancestor > .gas-site-header__drawer-row > a,
    .gas-site-header__drawer-menu .is-current-ancestor > .gas-site-header__drawer-row > .gas-site-header__drawer-label {
        color: var(--_nav-active-color);
        font-weight: var(--gas-weight-bold);
    }

    .gas-site-header__drawer-links .is-highlight a,
    .gas-site-header__drawer-menu .is-highlight > a,
    .gas-site-header__drawer-menu .is-highlight > .gas-site-header__drawer-row > a,
    .gas-site-header__drawer-menu .is-highlight > .gas-site-header__drawer-label,
    .gas-site-header__drawer-menu .is-highlight > .gas-site-header__drawer-row > .gas-site-header__drawer-label {
        background: var(--gas-menu-highlight-bg, var(--gas-primary-ultra-light));
        color: var(--gas-menu-highlight-text, var(--gas-primary));
        border-color: var(--gas-menu-highlight-border, var(--gas-primary-light));
        font-weight: var(--gas-weight-bold);
    }


    .gas-site-header__drawer-toggle {
        cursor: pointer;
        border: 1px solid var(--_header-border);
    }

    .gas-site-header__drawer-row {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: var(--gas-space-xs);
    }

    .gas-site-header__drawer-row > a,
    .gas-site-header__drawer-label {
        min-width: 0;
        display: flex;
        align-items: center;
        min-height: 46px;
        padding: var(--gas-space-s) var(--gas-space-m);
        border: 1px solid var(--_header-border);
        border-radius: var(--gas-radius-m);
        background: var(--gas-white);
        color: var(--_header-text);
        font-size: var(--gas-text-xs);
        font-weight: var(--gas-weight-semi);
    }

    .gas-site-header__drawer-toggle {
        width: 46px;
        justify-content: center;
    }

    .gas-site-header__drawer-submenu {
        margin-top: var(--gas-space-xs);
        padding-left: var(--gas-space-m);
    }

    /* ── Overlay ── */

    .gas-site-header.is-drawer-open .gas-site-header__overlay {
        display: block;
    }

    .gas-site-header__overlay {
        position: fixed;
        inset: 0;
        background: var(--gas-bg-overlay);
        z-index: 190;
    }

    /* School promo in mobile */
    .gas-site-header__school-promo-inner {
        padding-left: var(--gas-space-m);
        padding-right: var(--gas-space-m);
    }

    .gas-site-header__school-cta { margin-left: 0; }

    /* CTA in drawer */
    .gas-site-header__drawer .gas-site-header__cta-group {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: var(--gas-space-s);
    }

    .gas-site-header__drawer .gas-site-header__cta-group .gas-button {
        justify-content: center;
        text-align: center;
    }
}

/* ══════════════════════════════════════════
   RESPONSIVE — Small mobile (< 600px)
   ══════════════════════════════════════════ */

@media (max-width: 600px) {
    .gas-site-header__row--has-branding {
        padding: var(--gas-space-xs) var(--gas-space-m);
        gap: var(--gas-space-s);
        min-height: 52px;
    }

    .gas-site-header__brand-link {
        gap: var(--gas-space-s);
    }

    .gas-site-header__logo img {
        max-height: 42px;
    }

    .gas-site-header__site-name {
        font-size: var(--gas-text-s);
    }

    .gas-site-header__site-description {
        display: none;
    }

    .gas-site-header__school-promo-inner {
        flex-wrap: wrap;
        gap: var(--gas-space-s);
    }

    .gas-site-header__school-cta {
        width: 100%;
        justify-content: center;
    }

    .gas-site-header__drawer {
        width: 100vw;
    }

    .gas-site-header__drawer .gas-site-header__cta-group {
        grid-template-columns: 1fr;
    }
}
