/*
Theme Name: AIGUPP Theme
Theme URI: https://www.aigupp.it/
Author: AIGUPP
Description: Tema istituzionale proprietario per AIGUPP – Associazione Italiana Guide Professionali di Pesca. Progettato per AIGUPP Core.
Version: 0.3.25
Requires at least: 6.5
Tested up to: 6.8
Requires PHP: 8.1
Text Domain: aigupp-theme
*/

:root {
    --aigupp-ink: #121614;
    --aigupp-ink-soft: #343b37;
    --aigupp-muted: #67716b;
    --aigupp-green: #267f3c;
    --aigupp-green-dark: #18572a;
    --aigupp-red: #c93636;
    --aigupp-surface: #f4f6f4;
    --aigupp-surface-2: #eef2ef;
    --aigupp-white: #ffffff;
    --aigupp-border: #dce2dd;
    --aigupp-shadow: 0 18px 45px rgba(17, 29, 21, .08);
    --aigupp-radius: 20px;
    --aigupp-radius-sm: 12px;
    --aigupp-width: 1240px;
    --aigupp-font: Inter, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    background: var(--aigupp-white);
    color: var(--aigupp-ink);
    font-family: var(--aigupp-font);
    font-size: 17px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
body.aigupp-menu-open { overflow: hidden; }
img { max-width: 100%; height: auto; }
a { color: var(--aigupp-ink); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--aigupp-green-dark); }
button, input, select, textarea { font: inherit; }
::selection { background: #dfeee3; color: var(--aigupp-ink); }

.aigupp-container {
    width: min(calc(100% - 40px), var(--aigupp-width));
    margin-inline: auto;
}
.aigupp-narrow {
    width: min(calc(100% - 40px), 900px);
    margin-inline: auto;
}
.aigupp-section {
    padding: clamp(66px, 8vw, 112px) 0;
}
.aigupp-section--soft { background: var(--aigupp-surface); }
.aigupp-section--dark { background: var(--aigupp-ink); color: #fff; }
.aigupp-section-head {
    display: flex;
    justify-content: space-between;
    gap: 32px;
    align-items: flex-end;
    margin-bottom: 38px;
}
.aigupp-section-head > div { max-width: 790px; }
.aigupp-eyebrow {
    margin: 0 0 12px;
    color: var(--aigupp-green-dark);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.aigupp-section--dark .aigupp-eyebrow { color: #9dd3aa; }
.aigupp-title-xl,
.aigupp-section-title,
.entry-title,
.aigupp-page-title {
    letter-spacing: -.035em;
    line-height: 1.05;
}
.aigupp-section-title {
    margin: 0;
    font-size: clamp(2rem, 4vw, 3.55rem);
    font-weight: 720;
}
.aigupp-section-intro {
    margin: 16px 0 0;
    color: var(--aigupp-muted);
    font-size: clamp(1rem, 1.3vw, 1.2rem);
    max-width: 780px;
}
.aigupp-section--dark .aigupp-section-intro { color: #cbd2cd; }

/* Institutional strip */
.aigupp-institutional-bar {
    background: var(--aigupp-ink);
    color: #e8ece9;
    font-size: 13px;
    letter-spacing: .015em;
}
.aigupp-institutional-bar .aigupp-container {
    min-height: 34px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}
.aigupp-mini-links { display: flex; gap: 18px; align-items: center; }
.aigupp-mini-links a { color: #fff; text-decoration: none; opacity: .88; }
.aigupp-mini-links a:hover { opacity: 1; }

/* Header */
.aigupp-site-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(255,255,255,.96);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(18,22,20,.08);
}
.admin-bar .aigupp-site-header { top: 32px; }
.aigupp-header-main {
    min-height: 90px;
    display: grid;
    grid-template-columns: minmax(150px, 215px) 1fr auto;
    gap: 34px;
    align-items: center;
}
.custom-logo-link,
.aigupp-brand-fallback { display: inline-flex; align-items: center; text-decoration: none; }
.custom-logo,
.aigupp-brand-fallback img {
    display: block;
    width: auto;
    max-width: 205px;
    max-height: 76px;
    object-fit: contain;
}
.aigupp-primary-nav { justify-self: center; }
.aigupp-menu,
.aigupp-primary-nav > ul {
    display: flex;
    align-items: center;
    gap: clamp(14px, 2vw, 27px);
    margin: 0;
    padding: 0;
    list-style: none;
}
.aigupp-primary-nav a {
    position: relative;
    display: block;
    padding: 31px 0 27px;
    color: var(--aigupp-ink);
    font-size: 15px;
    font-weight: 650;
    text-decoration: none;
}
.aigupp-primary-nav a::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 20px;
    left: 0;
    height: 2px;
    background: var(--aigupp-green);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .2s ease;
}
.aigupp-primary-nav a:hover::after,
.aigupp-primary-nav .current-menu-item > a::after { transform: scaleX(1); }
.aigupp-header-actions { display: flex; align-items: center; gap: 10px; }
.aigupp-button,
.aigupp-button:visited {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 12px 19px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: var(--aigupp-ink);
    color: #fff;
    font-size: 14px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.aigupp-button:hover { color: #fff; background: var(--aigupp-green-dark); transform: translateY(-1px); box-shadow: 0 8px 22px rgba(18,22,20,.14); }
.aigupp-button--light { background: #fff; color: var(--aigupp-ink); border-color: var(--aigupp-border); }
.aigupp-button--light:hover { color: var(--aigupp-ink); background: var(--aigupp-surface); }
.aigupp-button--green { background: var(--aigupp-green-dark); }
.aigupp-button--ghost { background: transparent; border-color: rgba(255,255,255,.26); color: #fff; }
.aigupp-button--ghost:hover { background: rgba(255,255,255,.1); }
.aigupp-nav-toggle {
    display: none;
    width: 46px;
    height: 46px;
    border: 1px solid var(--aigupp-border);
    border-radius: 50%;
    background: #fff;
    color: var(--aigupp-ink);
    cursor: pointer;
}
.aigupp-nav-toggle span,
.aigupp-nav-toggle::before,
.aigupp-nav-toggle::after {
    content: "";
    display: block;
    width: 19px;
    height: 2px;
    margin: 4px auto;
    background: currentColor;
}

/* Tricolour signature */
.aigupp-tricolore {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    width: 118px;
    height: 4px;
    overflow: hidden;
    border-radius: 99px;
}
.aigupp-tricolore span:nth-child(1) { background: var(--aigupp-green); }
.aigupp-tricolore span:nth-child(2) { background: #f4f4f0; }
.aigupp-tricolore span:nth-child(3) { background: var(--aigupp-red); }

/* Hero */
.aigupp-hero {
    position: relative;
    overflow: hidden;
    background: #edf2ee;
    isolation: isolate;
}
.aigupp-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -3;
    background:
        radial-gradient(circle at 82% 20%, rgba(38,127,60,.16), transparent 32%),
        linear-gradient(120deg, #f8faf8 0%, #edf2ee 52%, #e4ebe6 100%);
}
.aigupp-hero.has-image::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(90deg, rgba(13,18,15,.9) 0%, rgba(13,18,15,.68) 44%, rgba(13,18,15,.12) 78%);
}
.aigupp-hero-media {
    position: absolute;
    inset: 0;
    z-index: -2;
}
.aigupp-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.aigupp-hero-inner {
    min-height: clamp(590px, 72vh, 790px);
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(300px, .62fr);
    gap: clamp(42px, 7vw, 90px);
    align-items: center;
    padding: clamp(72px, 8vw, 116px) 0;
}
.aigupp-hero.has-image .aigupp-hero-copy { color: #fff; }
.aigupp-hero.has-image .aigupp-eyebrow { color: #b8e0c1; }
.aigupp-title-xl {
    max-width: 900px;
    margin: 0;
    font-size: clamp(3rem, 6.4vw, 6.1rem);
    font-weight: 710;
}
.aigupp-hero-text {
    max-width: 760px;
    margin: 24px 0 0;
    color: var(--aigupp-ink-soft);
    font-size: clamp(1.12rem, 1.7vw, 1.42rem);
    line-height: 1.55;
}
.aigupp-hero.has-image .aigupp-hero-text { color: #e8ede9; }
.aigupp-hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.aigupp-hero-panel {
    align-self: end;
    padding: 26px;
    border: 1px solid rgba(18,22,20,.09);
    border-radius: var(--aigupp-radius);
    background: rgba(255,255,255,.86);
    box-shadow: var(--aigupp-shadow);
    backdrop-filter: blur(12px);
}
.aigupp-hero.has-image .aigupp-hero-panel { background: rgba(255,255,255,.93); }
.aigupp-hero-panel-logo { display: block; width: min(100%, 330px); margin: 0 auto 24px; }
.aigupp-hero-panel p { margin: 0; color: var(--aigupp-muted); font-size: 14px; }
.aigupp-hero-stats { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 18px; }
.aigupp-stat {
    padding: 14px 12px;
    border-radius: var(--aigupp-radius-sm);
    background: var(--aigupp-surface);
}
.aigupp-stat strong { display: block; color: var(--aigupp-ink); font-size: 1.55rem; line-height: 1.1; }
.aigupp-stat span { display: block; margin-top: 4px; color: var(--aigupp-muted); font-size: 12px; }

/* Search */
.aigupp-search-shell {
    position: relative;
    margin-top: -50px;
    z-index: 5;
}
.aigupp-home-search {
    padding: clamp(22px, 3.3vw, 38px);
    border: 1px solid var(--aigupp-border);
    border-radius: 24px;
    background: #fff;
    box-shadow: var(--aigupp-shadow);
}
.aigupp-home-search-head { display: flex; justify-content: space-between; gap: 30px; align-items: end; margin-bottom: 22px; }
.aigupp-home-search-head h2 { margin: 0; font-size: clamp(1.6rem, 2.6vw, 2.5rem); letter-spacing: -.025em; }
.aigupp-home-search-head p { margin: 5px 0 0; color: var(--aigupp-muted); }
.aigupp-home-search-grid {
    display: grid;
    grid-template-columns: 1.4fr repeat(3, 1fr) auto;
    gap: 12px;
    align-items: end;
}
.aigupp-home-search-field { display: grid; gap: 6px; min-width: 0; }
.aigupp-home-search-field span { font-size: 13px; font-weight: 750; }
.aigupp-home-search-field input,
.aigupp-home-search-field select {
    width: 100%;
    min-height: 50px;
    padding: 10px 13px;
    border: 1px solid #ccd5ce;
    border-radius: 10px;
    background: #fff;
    color: var(--aigupp-ink);
    outline: none;
}
.aigupp-home-search-field input:focus,
.aigupp-home-search-field select:focus { border-color: var(--aigupp-green); box-shadow: 0 0 0 3px rgba(38,127,60,.1); }

/* Why become an AIGUPP guide */
.aigupp-why {
    padding: clamp(62px, 7vw, 94px) 0 clamp(90px, 9vw, 124px);
    background: var(--aigupp-surface);
}
.aigupp-why-layout {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    gap: clamp(36px, 7vw, 90px);
    align-items: center;
}
.aigupp-why-copy .aigupp-section-intro { max-width: 620px; }
.aigupp-why-copy .aigupp-button { margin-top: 26px; }
.aigupp-why-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.aigupp-why-list li {
    min-height: 92px;
    padding: 20px;
    border: 1px solid var(--aigupp-border);
    border-radius: var(--aigupp-radius-sm);
    background: #fff;
}
.aigupp-why-list strong {
    display: block;
    margin-bottom: 4px;
    font-size: 1rem;
}
.aigupp-why-list span {
    display: block;
    color: var(--aigupp-muted);
    font-size: 14px;
    line-height: 1.45;
}

/* Pillars */
.aigupp-pillar-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.aigupp-pillar {
    min-height: 280px;
    padding: clamp(25px, 3vw, 36px);
    border: 1px solid var(--aigupp-border);
    border-radius: var(--aigupp-radius);
    background: #fff;
}
.aigupp-pillar-number {
    display: inline-flex;
    width: 38px;
    height: 38px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--aigupp-surface);
    color: var(--aigupp-green-dark);
    font-size: 13px;
    font-weight: 850;
}
.aigupp-pillar h3 { margin: 54px 0 12px; font-size: 1.55rem; letter-spacing: -.025em; }
.aigupp-pillar p { margin: 0; color: var(--aigupp-muted); }

/* Course block */
.aigupp-course-card {
    display: grid;
    grid-template-columns: minmax(0,1.15fr) minmax(310px,.75fr);
    gap: 24px;
    overflow: hidden;
    border-radius: 28px;
    background: #fff;
    color: var(--aigupp-ink);
}
.aigupp-course-main { padding: clamp(32px, 5vw, 62px); }
.aigupp-course-label { display: inline-flex; padding: 6px 10px; border-radius: 999px; background: #e4f1e7; color: var(--aigupp-green-dark); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.aigupp-course-main h3 { margin: 18px 0 12px; font-size: clamp(2rem, 4vw, 3.6rem); letter-spacing: -.04em; line-height: 1.08; }
.aigupp-course-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; color: var(--aigupp-muted); font-size: 14px; }
.aigupp-course-next { margin-top: 30px; padding-top: 24px; border-top: 1px solid var(--aigupp-border); }
.aigupp-course-next small { display: block; color: var(--aigupp-muted); text-transform: uppercase; font-size: 11px; font-weight: 800; letter-spacing: .09em; }
.aigupp-course-next strong { display: block; margin-top: 5px; font-size: 1.1rem; }
.aigupp-course-aside {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 30px;
    padding: clamp(30px, 4vw, 48px);
    background: var(--aigupp-green-dark);
    color: #fff;
}
.aigupp-course-aside p { margin: 0; color: #dcecdf; }
.aigupp-course-aside strong { display: block; font-size: clamp(3.4rem, 6vw, 5.4rem); line-height: .95; letter-spacing: -.06em; }
.aigupp-course-aside span { color: #cfe5d4; }

/* Guide cards */
.aigupp-home-guides { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.aigupp-home-guide {
    overflow: hidden;
    border: 1px solid var(--aigupp-border);
    border-radius: var(--aigupp-radius);
    background: #fff;
    transition: transform .2s ease, box-shadow .2s ease;
}
.aigupp-home-guide:hover { transform: translateY(-3px); box-shadow: var(--aigupp-shadow); }
.aigupp-home-guide-media { display: block; aspect-ratio: 1.22 / 1; overflow: hidden; background: var(--aigupp-surface-2); text-decoration: none; }
.aigupp-home-guide-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.aigupp-home-guide:hover .aigupp-home-guide-media img { transform: scale(1.025); }
.aigupp-home-guide-placeholder { height: 100%; display: grid; place-items: center; color: var(--aigupp-muted); font-weight: 800; }
.aigupp-home-guide-body { padding: 20px 20px 24px; }
.aigupp-home-guide h3 { margin: 0; font-size: 1.38rem; letter-spacing: -.025em; }
.aigupp-home-guide h3 a { text-decoration: none; }
.aigupp-guide-meta-line { margin: 7px 0 0; color: var(--aigupp-muted); font-size: 14px; }
.aigupp-guide-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 15px; }
.aigupp-guide-chips span { padding: 5px 8px; border: 1px solid var(--aigupp-border); border-radius: 999px; font-size: 12px; }

/* News */
.aigupp-news-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.aigupp-news-card { border-top: 1px solid var(--aigupp-border); padding-top: 18px; }
.aigupp-news-card time { color: var(--aigupp-muted); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.aigupp-news-card h3 { margin: 12px 0 10px; font-size: 1.35rem; line-height: 1.25; }
.aigupp-news-card h3 a { text-decoration: none; }
.aigupp-news-card p { margin: 0; color: var(--aigupp-muted); font-size: 15px; }

/* Generic content */
.aigupp-main { min-height: 55vh; }
.aigupp-page-hero {
    padding: clamp(64px, 8vw, 100px) 0 46px;
    background: linear-gradient(180deg, var(--aigupp-surface), #fff);
    border-bottom: 1px solid var(--aigupp-border);
}
.aigupp-page-title { margin: 0; font-size: clamp(2.5rem, 5vw, 5.1rem); font-weight: 710; max-width: 980px; }
.aigupp-page-subtitle { max-width: 780px; color: var(--aigupp-muted); font-size: 1.15rem; }
.aigupp-content { padding: 52px 0 92px; }
.aigupp-content .entry-content { max-width: 920px; font-size: 1.05rem; }
.aigupp-content .entry-content > *:first-child { margin-top: 0; }
.aigupp-content .entry-content h2,
.aigupp-content .entry-content h3 { line-height: 1.18; letter-spacing: -.025em; }
.aigupp-content .entry-content h2 { margin-top: 2em; font-size: 2rem; }
.aigupp-content .entry-content h3 { margin-top: 1.7em; font-size: 1.45rem; }
.aigupp-content .entry-content a { color: var(--aigupp-green-dark); }
.aigupp-content .entry-content blockquote { margin: 2em 0; padding: 8px 0 8px 24px; border-left: 4px solid var(--aigupp-green); color: var(--aigupp-ink-soft); font-size: 1.2rem; }
.aigupp-content .entry-content img { border-radius: 14px; }

/* AIGUPP Core public refinements */
.aigupp-core-active .aigupp-directory,
.aigupp-core-active .aigupp-single-profile,
.aigupp-core-active .aigupp-guide-portal,
.aigupp-core-active .aigupp-app-form-wrap { font-family: var(--aigupp-font); }
.aigupp-core-active .aigupp-directory,
.aigupp-core-active .aigupp-single-profile { --aigupp-border: #dce2dd !important; --aigupp-muted: #67716b !important; --aigupp-bg: #f4f6f4 !important; --aigupp-radius: 18px !important; }
.aigupp-core-active .aigupp-primary-button { background: var(--aigupp-ink) !important; border-color: var(--aigupp-ink) !important; }
.aigupp-core-active .aigupp-primary-button:hover { background: var(--aigupp-green-dark) !important; border-color: var(--aigupp-green-dark) !important; }
.aigupp-core-active .aigupp-guide-card { box-shadow: none !important; transition: transform .2s ease, box-shadow .2s ease; }
.aigupp-core-active .aigupp-guide-card:hover { transform: translateY(-3px); box-shadow: var(--aigupp-shadow) !important; }
.aigupp-core-active .aigupp-guide-card h2 a { text-decoration: none; }
.aigupp-core-active .aigupp-filter-panel { background: #fff !important; box-shadow: 0 10px 30px rgba(17,29,21,.05); }
.aigupp-core-active .aigupp-single-profile { padding-bottom: 50px; }
.aigupp-core-active .aigupp-profile-hero { padding: 22px; border: 1px solid var(--aigupp-border); border-radius: 24px; background: #fff; }
.aigupp-core-active .aigupp-profile-groups { gap: 14px !important; }
.aigupp-core-active .aigupp-profile-group { background: var(--aigupp-surface) !important; }
.aigupp-core-active .aigupp-guide-portal { margin-top: 0 !important; padding-top: 46px !important; }
.aigupp-core-active .aigupp-portal-nav .active { background: var(--aigupp-ink) !important; }

/* Footer */
.aigupp-site-footer { background: #0f1411; color: #e5eae6; }
.aigupp-footer-tricolore { height: 4px; display: grid; grid-template-columns: 1fr 1fr 1fr; }
.aigupp-footer-tricolore span:nth-child(1) { background: var(--aigupp-green); }
.aigupp-footer-tricolore span:nth-child(2) { background: #fff; }
.aigupp-footer-tricolore span:nth-child(3) { background: var(--aigupp-red); }
.aigupp-footer-main {
    display: grid;
    grid-template-columns: minmax(260px,1.35fr) repeat(3,minmax(150px,.65fr));
    gap: 40px;
    padding: 62px 0 48px;
}
.aigupp-footer-brand img { display: block; width: 235px; max-width: 100%; padding: 10px; background: #fff; border-radius: 12px; }
.aigupp-footer-brand p { max-width: 430px; color: #aeb9b1; font-size: 14px; }
.aigupp-footer-col h2 { margin: 0 0 16px; color: #fff; font-size: 13px; text-transform: uppercase; letter-spacing: .09em; }
.aigupp-footer-col ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 9px; }
.aigupp-footer-col a { color: #d4dbd6; text-decoration: none; font-size: 14px; }
.aigupp-footer-col a:hover { color: #fff; }
.aigupp-footer-contact { color: #aeb9b1; font-size: 14px; }
.aigupp-footer-contact a { color: #fff; }
.aigupp-footer-bottom {
    display: block;
    padding: 20px 0 26px;
    border-top: 1px solid rgba(255,255,255,.12);
    color: #8f9b93;
    font-size: 12px;
    line-height: 1.7;
}
.aigupp-footer-bottom a { color: #cbd3cd; text-decoration: none; }
.aigupp-footer-bottom a:hover { color: #fff; text-decoration: underline; }

/* 404 */
.aigupp-404 { text-align: center; padding: 110px 0; }
.aigupp-404 strong { display: block; font-size: clamp(5rem, 15vw, 11rem); line-height: .9; letter-spacing: -.08em; color: var(--aigupp-surface-2); }
.aigupp-404 h1 { margin: 22px 0 10px; }

/* Accessibility */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { top: 7px; left: 7px; z-index: 100000; display: block; width: auto; height: auto; padding: 12px 16px; clip: auto !important; background: #fff; color: #111; box-shadow: 0 0 0 3px var(--aigupp-green); }

@media (max-width: 1100px) {
    .aigupp-header-main { grid-template-columns: minmax(145px,190px) 1fr auto; gap: 20px; }
    .aigupp-header-actions .aigupp-button:first-child { display: none; }
    .aigupp-home-search-grid { grid-template-columns: 1.3fr repeat(2,1fr); }
    .aigupp-home-search-grid > .aigupp-button { grid-column: 1/-1; justify-self: start; }
}

@media (max-width: 980px) {
    .aigupp-site-header {
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }
    .admin-bar .aigupp-site-header { top: 46px; }
    .aigupp-institutional-bar .aigupp-container { min-height: 32px; }
    .aigupp-mini-links { display: none; }
    .aigupp-header-main { min-height: 78px; grid-template-columns: 1fr auto auto; }
    .custom-logo, .aigupp-brand-fallback img { max-height: 64px; max-width: 180px; }
    .aigupp-nav-toggle { display: block; order: 3; }
    .aigupp-primary-nav {
        display: none;
        position: fixed;
        inset: var(--aigupp-mobile-menu-top, 112px) 0 0 0;
        z-index: 99999;
        background: #fff;
        padding: 24px 20px 50px;
        overflow: auto;
        overscroll-behavior: contain;
        justify-self: stretch;
        border-top: 1px solid var(--aigupp-border);
        box-shadow: 0 18px 40px rgba(18,22,20,.16);
    }
    .aigupp-mobile-nav-layer {
        display: none;
        position: fixed;
        z-index: 2147483000;
        background: #fff;
        overflow-x: hidden;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
        touch-action: pan-y;
        padding-bottom: env(safe-area-inset-bottom, 0);
    }
    .aigupp-mobile-nav-layer.is-open { display: block; }
    .aigupp-mobile-nav-layer > .aigupp-primary-nav {
        display: block;
        position: static;
        inset: auto;
        width: 100%;
        min-height: 100%;
        overflow: visible;
        box-shadow: none;
    }
    .aigupp-primary-nav.is-open { display: block; }
    .aigupp-menu, .aigupp-primary-nav > ul { display: grid; gap: 0; }
    .aigupp-primary-nav a {
        box-sizing: border-box;
        width: calc(100% - 8px);
        padding: 15px 4px;
        border-bottom: 1px solid var(--aigupp-border);
        font-size: 18px;
        transform: translateX(0);
        transform-origin: left center;
        transition: transform .18s ease, background-color .18s ease;
    }
    .aigupp-primary-nav a:hover,
    .aigupp-primary-nav a:focus-visible,
    .aigupp-primary-nav a:active {
        transform: translateX(8px);
        background: var(--aigupp-surface);
    }
    .aigupp-primary-nav a::after { display: none; }
    .aigupp-header-actions { justify-self: end; }
    .aigupp-header-actions .aigupp-button { min-height: 42px; padding: 10px 14px; }
    .aigupp-hero-inner { grid-template-columns: 1fr; min-height: auto; }
    .aigupp-why-layout { grid-template-columns: 1fr; }
    .aigupp-hero-panel { max-width: 560px; }
    .aigupp-pillar-grid, .aigupp-home-guides, .aigupp-news-grid { grid-template-columns: 1fr 1fr; }
    .aigupp-pillar-grid .aigupp-pillar:last-child { grid-column: 1/-1; }
    .aigupp-course-card { grid-template-columns: 1fr; }
    .aigupp-course-aside { min-height: 250px; }
    .aigupp-footer-main { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 700px) {
    body { font-size: 16px; }
    .aigupp-container, .aigupp-narrow { width: min(calc(100% - 28px), var(--aigupp-width)); }
    .aigupp-institutional-bar { font-size: 11px; }
    .aigupp-header-main { gap: 9px; }
    .custom-logo, .aigupp-brand-fallback img { max-width: 144px; max-height: 58px; }
    .aigupp-header-actions { display: none; }
    .aigupp-hero-inner { padding: 65px 0 90px; gap: 34px; }
    .aigupp-title-xl { font-size: clamp(2.7rem, 13vw, 4.2rem); }
    .aigupp-hero-panel { padding: 18px; }
    .aigupp-search-shell { margin-top: -36px; }
    .aigupp-home-search { border-radius: 18px; }
    .aigupp-home-search-head, .aigupp-section-head { display: block; }
    .aigupp-section-head > .aigupp-button { margin-top: 20px; }
    .aigupp-home-search-grid { grid-template-columns: 1fr; }
    .aigupp-why-list { grid-template-columns: 1fr; }
    .aigupp-home-search-grid > .aigupp-button { grid-column: auto; width: 100%; }
    .aigupp-pillar-grid, .aigupp-home-guides, .aigupp-news-grid { grid-template-columns: 1fr; }
    .aigupp-pillar-grid .aigupp-pillar:last-child { grid-column: auto; }
    .aigupp-pillar { min-height: auto; }
    .aigupp-pillar h3 { margin-top: 34px; }
    .aigupp-course-main, .aigupp-course-aside { padding: 28px 22px; }
    .aigupp-footer-main { grid-template-columns: 1fr; padding-top: 46px; }
    .aigupp-core-active .aigupp-profile-hero { padding: 14px; }
}

/* ===== AIGUPP Theme 0.2 institutional system ===== */
.aigupp-primary-nav .menu-item-has-children { position: relative; }
.aigupp-primary-nav .sub-menu {
    position: absolute;
    top: calc(100% - 8px);
    left: 50%;
    z-index: 120;
    min-width: 260px;
    margin: 0;
    padding: 12px;
    list-style: none;
    background: #fff;
    border: 1px solid var(--aigupp-border);
    border-radius: 16px;
    box-shadow: var(--aigupp-shadow);
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 8px);
    transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
}
.aigupp-primary-nav .menu-item-has-children:hover > .sub-menu,
.aigupp-primary-nav .menu-item-has-children:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.aigupp-primary-nav .sub-menu a { padding: 10px 12px; border-radius: 9px; font-weight: 600; }
.aigupp-primary-nav .sub-menu a::after { display:none; }
.aigupp-primary-nav .sub-menu a:hover { background: var(--aigupp-surface); }

.aigupp-breadcrumbs { display:flex; flex-wrap:wrap; gap:8px; align-items:center; margin:0 0 28px; font-size:13px; color:var(--aigupp-muted); }
.aigupp-breadcrumbs a { color:var(--aigupp-muted); text-decoration:none; }
.aigupp-breadcrumbs a:hover { color:var(--aigupp-green-dark); }
.aigupp-breadcrumb-sep { opacity:.55; }

.aigupp-page-hero { position:relative; overflow:hidden; background:linear-gradient(115deg,#f6f8f6 0%,#edf3ef 100%); border-bottom:1px solid var(--aigupp-border); }
.aigupp-page-hero-inner { position:relative; z-index:2; padding-top:clamp(54px,7vw,92px); padding-bottom:clamp(56px,8vw,104px); }
.aigupp-page-hero.has-media::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(246,248,246,.98) 0%,rgba(246,248,246,.92) 48%,rgba(246,248,246,.25) 100%); }
.aigupp-page-hero-media { position:absolute; inset:0 0 0 47%; }
.aigupp-page-hero-media img { width:100%; height:100%; object-fit:cover; }
.aigupp-page-title { max-width:900px; margin:18px 0 0; font-size:clamp(2.7rem,6vw,5.6rem); font-weight:760; }
.aigupp-page-subtitle { max-width:800px; margin:22px 0 0; color:var(--aigupp-muted); font-size:clamp(1.05rem,1.7vw,1.34rem); }

.aigupp-content-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:72px; align-items:start; }
.aigupp-content-main { min-width:0; }
.aigupp-page-sidebar { position:sticky; top:136px; display:grid; gap:18px; }
.aigupp-sidebar-card,.aigupp-sidebar-cta { border:1px solid var(--aigupp-border); border-radius:18px; background:#fff; padding:24px; }
.aigupp-sidebar-card h2 { margin:2px 0 18px; font-size:1.35rem; }
.aigupp-sidebar-kicker { margin:0; color:var(--aigupp-green-dark); font-size:.72rem; font-weight:800; letter-spacing:.12em; }
.aigupp-sidebar-card ul { list-style:none; margin:0; padding:0; }
.aigupp-sidebar-card li + li { border-top:1px solid #edf0ed; }
.aigupp-sidebar-card a { display:block; padding:10px 0; text-decoration:none; font-size:.94rem; }
.aigupp-sidebar-card .is-current a { color:var(--aigupp-green-dark); font-weight:750; }
.aigupp-sidebar-cta { background:var(--aigupp-ink); color:#fff; }
.aigupp-sidebar-cta strong { display:block; font-size:1.08rem; }
.aigupp-sidebar-cta p { color:#cbd2cd; font-size:.92rem; }
.aigupp-sidebar-cta a { color:#fff; font-weight:750; text-decoration:none; }

.entry-content { max-width:820px; font-size:1.04rem; }
.entry-content > *:first-child { margin-top:0; }
.entry-content h2 { margin:2.3em 0 .65em; font-size:clamp(1.7rem,3vw,2.5rem); letter-spacing:-.025em; line-height:1.12; }
.entry-content h3 { margin:1.8em 0 .55em; font-size:1.38rem; }
.entry-content p,.entry-content li { color:#303732; }
.entry-content a { color:var(--aigupp-green-dark); }
.entry-content img { border-radius:16px; }
.entry-content table { width:100%; border-collapse:collapse; margin:28px 0; font-size:.95rem; }
.entry-content th,.entry-content td { padding:12px 14px; border:1px solid var(--aigupp-border); text-align:left; vertical-align:top; }
.entry-content th { background:var(--aigupp-surface); }
.entry-content blockquote { margin:30px 0; padding:24px 28px; border-left:4px solid var(--aigupp-green); background:var(--aigupp-surface); font-size:1.1rem; }

.aigupp-section--compact { padding:54px 0; }
.aigupp-training-hero { background:linear-gradient(135deg,#f8faf8 0%,#e5f0e8 100%); }
.aigupp-course-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.aigupp-course-card { padding:30px; border:1px solid var(--aigupp-border); border-radius:20px; background:#fff; box-shadow:0 10px 28px rgba(17,29,21,.05); }
.aigupp-course-card-head { display:flex; justify-content:space-between; align-items:center; gap:12px; color:var(--aigupp-muted); font-size:.82rem; }
.aigupp-course-status { display:inline-flex; align-items:center; padding:5px 9px; border-radius:999px; background:#eef1ef; color:var(--aigupp-ink-soft); font-weight:750; }
.aigupp-course-status--active { background:#e2f1e6; color:var(--aigupp-green-dark); }
.aigupp-course-status--planned { background:#eef2f8; color:#40536f; }
.aigupp-course-status--completed { background:#f1f1f1; color:#666; }
.aigupp-course-card h3 { margin:20px 0 8px; font-size:1.7rem; letter-spacing:-.025em; }
.aigupp-course-card p { color:var(--aigupp-muted); }
.aigupp-course-dates { font-weight:700; color:var(--aigupp-ink)!important; }
.aigupp-course-dates span { padding:0 7px; color:var(--aigupp-green); }
.aigupp-text-link { font-weight:750; color:var(--aigupp-green-dark); text-decoration:none; }
.aigupp-empty-state { border:1px dashed var(--aigupp-border); border-radius:18px; padding:40px; text-align:center; background:#fff; }
.aigupp-process-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.aigupp-process-grid > div { min-height:220px; padding:25px; border-top:3px solid var(--aigupp-green); background:var(--aigupp-surface); border-radius:0 0 16px 16px; }
.aigupp-process-grid > .wp-block-group > p:first-child { margin:0; }
.aigupp-process-grid strong { display:block; color:var(--aigupp-green); font-size:.8rem; letter-spacing:.12em; }
.aigupp-process-grid h3 { margin:35px 0 8px; font-size:1.25rem; }
.aigupp-process-grid p { margin:0; color:var(--aigupp-muted); font-size:.95rem; }

/* Public upcoming-lessons calendar */
.aigupp-upcoming-calendar { max-width:980px; margin-inline:auto; }
.aigupp-upcoming-calendar-head { display:flex; align-items:flex-end; justify-content:space-between; gap:28px; margin-bottom:25px; }
.aigupp-upcoming-calendar-head h2 { margin:0; font-size:clamp(2rem,4vw,3.15rem); line-height:1.05; letter-spacing:-.04em; }
.aigupp-upcoming-calendar-head > p { flex:0 0 auto; margin:0; padding:8px 13px; border-radius:999px; background:var(--aigupp-surface); color:var(--aigupp-muted); font-size:.82rem; font-weight:750; }
.aigupp-upcoming-event-list { display:grid; gap:11px; margin:0; padding:0; list-style:none; }
.aigupp-upcoming-event-list li { display:grid; grid-template-columns:72px minmax(0,1fr) auto 44px; gap:20px; align-items:center; min-height:100px; padding:14px 18px 14px 14px; border:1px solid var(--aigupp-border); border-radius:17px; background:#fff; transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease; }
.aigupp-upcoming-event-list li:hover { transform:translateY(-2px); border-color:#b9c9bd; box-shadow:0 12px 30px rgba(17,29,21,.07); }
.aigupp-upcoming-event-date { display:grid; min-height:70px; place-content:center; border-radius:13px; background:var(--aigupp-ink); color:#fff; text-align:center; line-height:1; }
.aigupp-upcoming-event-date span { font-size:1.7rem; font-weight:800; }
.aigupp-upcoming-event-date strong { margin-top:5px; font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; }
.aigupp-upcoming-event-main h3 { margin:0; font-size:clamp(1.05rem,2vw,1.32rem); line-height:1.25; }
.aigupp-upcoming-event-main h3 a { color:var(--aigupp-ink); text-decoration:none; }
.aigupp-upcoming-event-time { font-size:1.18rem; font-weight:800; font-variant-numeric:tabular-nums; }
.aigupp-upcoming-event-arrow { display:grid; width:42px; height:42px; place-items:center; border-radius:50%; background:var(--aigupp-surface); color:var(--aigupp-ink)!important; font-size:1.15rem; font-weight:800; text-decoration:none; }
.aigupp-upcoming-calendar-empty { padding:34px; border:1px dashed var(--aigupp-border); border-radius:18px; background:var(--aigupp-surface); text-align:center; }
.aigupp-upcoming-calendar-empty h3 { margin:0 0 7px; }
.aigupp-upcoming-calendar-empty p { margin:0; color:var(--aigupp-muted); }
.aigupp-upcoming-calendar-note { margin:19px 0 0; color:var(--aigupp-muted)!important; font-size:.86rem; line-height:1.55; }

/* Protected training-event detail */
.aigupp-training-event-content { width:min(calc(100% - 40px),960px); padding-block:clamp(52px,7vw,90px); }
.aigupp-training-event-access,.aigupp-training-event-card { padding:clamp(27px,5vw,54px); border:1px solid var(--aigupp-border); border-radius:24px; background:#fff; box-shadow:var(--aigupp-shadow); }
.aigupp-training-event-access h1,.aigupp-training-event-card h1 { max-width:820px; margin:5px 0 18px; font-size:clamp(2.1rem,5vw,4.2rem); line-height:1.04; letter-spacing:-.045em; }
.aigupp-training-event-access > p:not(.aigupp-eyebrow) { max-width:750px; color:var(--aigupp-muted); font-size:1.08rem; }
.aigupp-training-event-actions { display:flex; flex-wrap:wrap; gap:11px; margin-top:27px; }
.aigupp-training-event-datetime { display:flex; align-items:center; gap:17px; margin:25px 0 34px; padding:17px 20px; border-radius:15px; background:var(--aigupp-surface); }
.aigupp-training-event-datetime time { font-weight:750; }
.aigupp-training-event-datetime strong { margin-left:auto; font-size:1.35rem; font-variant-numeric:tabular-nums; }
.aigupp-training-event-description { max-width:780px; font-size:1.04rem; }
.aigupp-training-event-join,.aigupp-training-event-notice { margin-top:35px; padding:24px; border-radius:17px; }
.aigupp-training-event-join { background:#eaf4ec; }
.aigupp-training-event-notice { background:var(--aigupp-surface); }
.aigupp-training-event-join h2 { margin:0 0 5px; font-size:1.35rem; }
.aigupp-training-event-join p,.aigupp-training-event-notice p { margin:0 0 16px; color:var(--aigupp-muted); }
.aigupp-training-event-admin { margin:34px 0 0; padding-top:20px; border-top:1px solid var(--aigupp-border); }

.aigupp-article-hero .aigupp-narrow { padding-top:clamp(56px,7vw,92px); padding-bottom:clamp(54px,7vw,86px); }
.aigupp-article-featured { margin:0 0 42px; }
.aigupp-article-featured img { width:100%; border-radius:20px; }
.aigupp-article-footer { margin-top:55px; padding-top:28px; border-top:1px solid var(--aigupp-border); }

/* AIGUPP Core public content integration */
.aigupp-guide-content { padding-top:42px; }
.aigupp-core-public-content { max-width:none; }
.aigupp-core-public-content .aigupp-single-profile { max-width:none; }
.aigupp-core-public-content .aigupp-profile-hero { border-radius:22px; overflow:hidden; background:var(--aigupp-surface); border:1px solid var(--aigupp-border); }
.aigupp-core-public-content .aigupp-profile-photo img { width:100%; height:100%; object-fit:cover; }
.aigupp-core-public-content .aigupp-primary-button,
.aigupp-core-public-content .aigupp-secondary-button { border-radius:999px!important; }
.aigupp-core-public-content .aigupp-profile-section,
.aigupp-core-public-content .aigupp-profile-group { border-color:var(--aigupp-border)!important; border-radius:18px!important; }

.aigupp-site-footer { margin-top:0; }
.aigupp-footer-main { grid-template-columns:minmax(260px,1.45fr) repeat(3,minmax(150px,1fr)); }

@media (max-width: 1050px) {
    .aigupp-content-layout { grid-template-columns:minmax(0,1fr); gap:42px; }
    .aigupp-page-sidebar { position:static; grid-template-columns:1fr 1fr; }
    .aigupp-process-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .aigupp-footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 820px) {
    .aigupp-page-title { font-size:clamp(2.45rem,12vw,4.2rem); }
    .aigupp-page-hero-media { inset:0; opacity:.18; }
    .aigupp-page-hero.has-media::after { background:rgba(246,248,246,.85); }
    .aigupp-course-grid { grid-template-columns:1fr; }
    .aigupp-primary-nav .sub-menu { position:static; min-width:0; border:0; box-shadow:none; opacity:1; visibility:visible; transform:none; padding:4px 0 5px 16px; background:transparent; }
    .aigupp-primary-nav .sub-menu a { padding:7px 0; color:var(--aigupp-muted); }
}
@media (max-width: 640px) {
    .aigupp-page-sidebar { grid-template-columns:1fr; }
    .aigupp-process-grid { grid-template-columns:1fr; }
    .aigupp-footer-main { grid-template-columns:1fr; }
    .aigupp-course-card { padding:23px; }
    .aigupp-upcoming-calendar-head { align-items:flex-start; flex-direction:column; gap:13px; }
    .aigupp-upcoming-event-list li { grid-template-columns:60px minmax(0,1fr) auto; gap:13px; padding:12px; }
    .aigupp-upcoming-event-date { min-height:62px; }
    .aigupp-upcoming-event-date span { font-size:1.45rem; }
    .aigupp-upcoming-event-arrow { display:none; }
    .aigupp-upcoming-event-time { font-size:1rem; }
    .aigupp-training-event-datetime { align-items:flex-start; flex-direction:column; }
    .aigupp-training-event-datetime strong { margin-left:0; }
}

/* 0.3.9 — mobile menu touch motion and submenu containment */
@media (max-width: 980px) {
    .aigupp-primary-nav .sub-menu {
        position: static;
        min-width: 0;
        border: 0;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
        padding: 4px 0 5px 16px;
        background: transparent;
    }
    .aigupp-primary-nav .sub-menu a {
        padding: 7px 0;
        color: var(--aigupp-muted);
    }
}

/* 0.3.17 — Editable Course 2026/2 training plan */
.aigupp-training-editor-content > .wp-block-group { margin-block: 0; }
.aigupp-training-editor-content .aigupp-container { max-width: var(--aigupp-width); }
.aigupp-training-plan-hero {
    background:
        radial-gradient(circle at 82% 28%, rgba(38,127,60,.15), transparent 26%),
        linear-gradient(135deg, #f8faf8 0%, #e8f1eb 100%);
}
.aigupp-training-plan-hero .aigupp-page-subtitle { max-width: 760px; }
.aigupp-training-overview-grid {
    display: grid;
    grid-template-columns: minmax(0,.82fr) minmax(0,1.18fr);
    gap: clamp(42px,7vw,100px);
    align-items: start;
}
.aigupp-training-overview-grid .aigupp-section-title { margin-bottom: 0; }
.aigupp-training-copy { font-size: clamp(1.08rem,1.5vw,1.3rem); }
.aigupp-training-copy p { margin: 0; color: var(--aigupp-ink-soft); }
.aigupp-training-copy p + p { margin-top: 1.2em; }
.aigupp-training-facts {
    display: grid;
    grid-template-columns: repeat(5,minmax(0,1fr));
    gap: 1px;
    margin-top: clamp(50px,7vw,86px);
    overflow: hidden;
    border: 1px solid var(--aigupp-border);
    border-radius: var(--aigupp-radius);
    background: var(--aigupp-border);
}
.aigupp-training-facts article,
.aigupp-training-facts > .wp-block-group { min-height: 150px; padding: 26px 22px; background: #fff; }
.aigupp-training-facts strong,
.aigupp-training-facts h3 { display: block; margin: 0; font-size: clamp(1.7rem,2.8vw,2.55rem); line-height: 1; letter-spacing: -.04em; }
.aigupp-training-facts span,
.aigupp-training-facts p { display: block; margin: 38px 0 0; color: var(--aigupp-muted); font-size: .85rem; }
.aigupp-track-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 18px;
}
.aigupp-track-grid article,
.aigupp-track-grid > .wp-block-group {
    min-height: 240px;
    padding: 26px;
    border: 1px solid var(--aigupp-border);
    border-radius: 18px;
    background: #fff;
}
.aigupp-track-grid article > span,
.aigupp-track-grid > .wp-block-group > p:first-child { margin: 0; color: var(--aigupp-green-dark); font-size: .76rem; font-weight: 800; letter-spacing: .12em; }
.aigupp-track-grid h3 { margin: 42px 0 10px; font-size: 1.4rem; }
.aigupp-track-grid p { margin: 0; color: var(--aigupp-muted); font-size: .94rem; }
.aigupp-track-grid .aigupp-track-card--boat { background: var(--aigupp-ink); color: #fff; }
.aigupp-track-grid .aigupp-track-card--boat > span { color: #9dd3aa; }
.aigupp-track-grid .aigupp-track-card--boat > p:first-child { color: #9dd3aa; }
.aigupp-track-grid .aigupp-track-card--boat p { color: #cbd2cd; }
.aigupp-track-example {
    max-width: 980px;
    margin: 34px 0 0;
    padding: 20px 22px;
    border-left: 4px solid var(--aigupp-green);
    background: #fff;
    color: var(--aigupp-ink-soft);
}
.aigupp-study-plan-section { scroll-margin-top: 30px; }
.aigupp-study-plan-section .aigupp-section-head { align-items: flex-start; }
.aigupp-study-legend { display: flex; flex-wrap: wrap; gap: 12px 20px; justify-content: flex-end; padding-top: 4px; }
.aigupp-study-legend > span { display: inline-flex; gap: 8px; align-items: center; color: var(--aigupp-muted); font-size: .82rem; white-space: nowrap; }
.aigupp-study-status {
    display: inline-flex;
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: .74rem;
    font-style: normal;
    font-weight: 800;
}
.aigupp-study-status--required { background: #dff0e4; color: var(--aigupp-green-dark); }
.aigupp-study-status--optional { background: #f1eee4; color: #766323; }
.aigupp-study-status--none { background: #f0f2f0; color: #939a96; }
.aigupp-study-filters { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 22px; }
.aigupp-study-filter {
    min-height: 42px;
    padding: 8px 16px;
    border: 1px solid var(--aigupp-border);
    border-radius: 999px;
    background: #fff;
    color: var(--aigupp-ink-soft);
    cursor: pointer;
    font-size: .88rem;
    font-weight: 700;
}
.aigupp-study-filter:hover,
.aigupp-study-filter:focus-visible { border-color: var(--aigupp-green); outline: none; color: var(--aigupp-green-dark); }
.aigupp-study-filter.is-active { border-color: var(--aigupp-ink); background: var(--aigupp-ink); color: #fff; }
.aigupp-study-controls { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 18px 28px; align-items: center; margin: 28px 0 22px; }
.aigupp-study-controls .aigupp-study-legend,
.aigupp-study-controls .aigupp-study-filters { margin: 0; }
.aigupp-study-table-wrap {
    max-width: 100%;
    overflow: auto;
    border: 1px solid var(--aigupp-border);
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 12px 34px rgba(17,29,21,.05);
}
.aigupp-study-table-wrap:focus-visible { outline: 3px solid rgba(38,127,60,.24); outline-offset: 3px; }
.aigupp-study-table { width: 100%; min-width: 1050px; border-collapse: separate; border-spacing: 0; font-size: .83rem; line-height: 1.35; }
.aigupp-study-table th,
.aigupp-study-table td { padding: 13px 12px; border-bottom: 1px solid #e7ebe8; text-align: left; vertical-align: middle; }
.aigupp-study-table thead th {
    position: sticky;
    top: 0;
    z-index: 3;
    background: var(--aigupp-ink);
    color: #fff;
    font-size: .72rem;
    letter-spacing: .035em;
    text-transform: uppercase;
}
.aigupp-study-table thead th:first-child { left: 0; z-index: 5; }
.aigupp-study-table tbody th,
.aigupp-study-table tbody td:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    width: 35%;
    min-width: 320px;
    background: #fff;
    font-size: .88rem;
    font-weight: 700;
}
.aigupp-study-table tbody tr:nth-child(even) td,
.aigupp-study-table tbody tr:nth-child(even) th,
.aigupp-study-table tbody tr:nth-child(even) td:first-child { background: #f8faf8; }
.aigupp-study-table tbody tr.is-in-person td,
.aigupp-study-table tbody tr.is-in-person th,
.aigupp-study-table tbody tr.is-in-person td:first-child { background: #edf5ef; }
.aigupp-study-table tbody tr:hover td,
.aigupp-study-table tbody tr:hover th,
.aigupp-study-table tbody tr:hover td:first-child { background: #e7f1e9; }
.aigupp-study-table td[data-track],
.aigupp-study-table th[data-track],
.aigupp-study-table th:nth-child(n+5),
.aigupp-study-table td:nth-child(n+5) { text-align: center; }
.aigupp-study-table [hidden] { display: none; }
.aigupp-module-number { display: inline-block; min-width: 28px; margin-right: 9px; color: var(--aigupp-green-dark); font-size: .68rem; letter-spacing: .06em; }
.aigupp-mode { display: inline-flex; padding: 4px 8px; border-radius: 999px; background: #eef1ef; color: var(--aigupp-ink-soft); font-size: .71rem; font-weight: 750; }
.aigupp-mode--presence { background: #dceee1; color: var(--aigupp-green-dark); }
.aigupp-study-table tfoot th,
.aigupp-study-table tfoot td { padding: 18px 12px; border: 0; background: var(--aigupp-ink); color: #fff; }
.aigupp-study-note { max-width: 960px; margin: 20px 0 0; color: var(--aigupp-muted); font-size: .88rem; }
.aigupp-method-grid,
.aigupp-outcomes-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; }
.aigupp-method-grid article,
.aigupp-method-grid > .wp-block-group { min-height: 275px; padding: 26px; border-top: 3px solid var(--aigupp-green); border-radius: 0 0 16px 16px; background: #fff; }
.aigupp-method-grid strong,
.aigupp-method-grid > .wp-block-group > p:first-child { margin: 0; color: var(--aigupp-green); font-size: .76rem; font-weight: 800; letter-spacing: .12em; }
.aigupp-method-grid h3 { margin: 48px 0 10px; font-size: 1.25rem; }
.aigupp-method-grid p,
.aigupp-outcomes-grid p { margin: 0; color: var(--aigupp-muted); font-size: .92rem; }
.aigupp-outcomes-grid { margin-top: 54px; }
.aigupp-outcomes-grid article,
.aigupp-outcomes-grid > .wp-block-group { padding: 26px 0 0; border-top: 1px solid var(--aigupp-border); }
.aigupp-outcomes-grid h3 { margin: 0 0 10px; font-size: 1.17rem; }
.aigupp-training-cta-grid { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 60px; align-items: end; }
.aigupp-training-cta .aigupp-section-title { max-width: 850px; margin-bottom: 22px; color: #fff; }
.aigupp-training-cta p:not(.aigupp-eyebrow) { max-width: 850px; margin: 0; color: #cbd2cd; }
.aigupp-training-cta-actions { display: grid; gap: 12px; min-width: 250px; }
.aigupp-training-cta-actions .wp-block-button { width: 100%; }
.aigupp-training-cta-actions .wp-block-button__link {
    display: inline-flex;
    width: 100%;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    padding: 12px 20px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: .9rem;
    font-weight: 750;
    text-decoration: none;
}
.aigupp-training-cta-actions .aigupp-cta-primary .wp-block-button__link { background: var(--aigupp-green-dark); color: #fff; }
.aigupp-training-cta-actions .aigupp-cta-secondary .wp-block-button__link { border-color: rgba(255,255,255,.26); background: transparent; color: #fff; }
.aigupp-training-cta-actions .wp-block-button__link:hover { background: var(--aigupp-green); color: #fff; }

@media (max-width: 1050px) {
    .aigupp-training-facts { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .aigupp-track-grid,
    .aigupp-method-grid,
    .aigupp-outcomes-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .aigupp-training-cta-grid { grid-template-columns: 1fr; align-items: start; }
    .aigupp-training-cta-actions { display: flex; flex-wrap: wrap; min-width: 0; }
}
@media (max-width: 760px) {
    .aigupp-training-overview-grid { grid-template-columns: 1fr; gap: 28px; }
    .aigupp-training-facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .aigupp-training-facts article,
    .aigupp-training-facts > .wp-block-group { min-height: 132px; padding: 22px 18px; }
    .aigupp-training-facts span,
    .aigupp-training-facts p { margin-top: 26px; }
    .aigupp-study-plan-section .aigupp-section-head { display: block; }
    .aigupp-study-legend { justify-content: flex-start; margin-top: 24px; }
    .aigupp-study-table { min-width: 760px; }
    .aigupp-study-table tbody th,
    .aigupp-study-table tbody td:first-child { min-width: 255px; }
}
@media (max-width: 600px) {
    .aigupp-track-grid,
    .aigupp-method-grid,
    .aigupp-outcomes-grid { grid-template-columns: 1fr; }
    .aigupp-track-grid article,
    .aigupp-track-grid > .wp-block-group,
    .aigupp-method-grid article,
    .aigupp-method-grid > .wp-block-group { min-height: 0; }
    .aigupp-track-grid h3,
    .aigupp-method-grid h3 { margin-top: 28px; }
    .aigupp-training-facts { grid-template-columns: 1fr 1fr; }
    .aigupp-training-facts article:last-child,
    .aigupp-training-facts > .wp-block-group:last-child { grid-column: 1/-1; }
    .aigupp-study-filters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 5px; }
    .aigupp-study-filter { flex: 0 0 auto; }
    .aigupp-training-cta-actions { display: grid; }
    .aigupp-training-cta-actions .wp-block-button { width: 100%; }
}


/* 0.3.0 — first-level landing pages */
.aigupp-lead { font-size: clamp(1.15rem, 1.7vw, 1.45rem); line-height: 1.65; color: var(--aigupp-ink-soft); max-width: 900px; }
.aigupp-landing-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-block: 28px 40px; }
.aigupp-landing-card { border: 1px solid var(--aigupp-border); border-radius: var(--aigupp-radius-sm); padding: 24px; background: var(--aigupp-white); }
.aigupp-landing-card h2, .aigupp-landing-card h3 { margin-top: 0; }
.aigupp-association-intro { max-width: 980px; margin-bottom: 38px; }
.aigupp-association-intro h2 { margin-bottom: 14px; font-size: clamp(1.8rem, 3vw, 2.7rem); letter-spacing: -.035em; }
.aigupp-association-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin: 28px 0 46px; }
.aigupp-association-card {
    position: relative;
    display: flex;
    min-height: 245px;
    flex-direction: column;
    padding: clamp(24px, 3vw, 34px);
    overflow: hidden;
    border: 1px solid var(--aigupp-border);
    border-radius: 22px;
    background: #fff;
    color: var(--aigupp-ink);
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.aigupp-association-card::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: linear-gradient(90deg, var(--aigupp-green) 0 48%, #fff 48% 52%, #cc3438 52% 100%); }
.aigupp-association-card:hover { transform: translateY(-4px); border-color: #b9c9bd; box-shadow: var(--aigupp-shadow); color: var(--aigupp-ink); }
.aigupp-association-card:focus-visible { outline: 3px solid rgba(38, 127, 60, .28); outline-offset: 4px; }
.aigupp-association-card.is-featured { grid-column: span 2; min-height: 220px; background: var(--aigupp-surface); }
.aigupp-association-card .aigupp-card-number { color: var(--aigupp-green-dark); font-size: 12px; font-weight: 850; letter-spacing: .1em; }
.aigupp-association-card h3 { margin: auto 0 12px; font-size: clamp(1.4rem, 2.2vw, 2rem); letter-spacing: -.03em; }
.aigupp-association-card p { margin: 0 0 22px; color: var(--aigupp-muted); line-height: 1.6; }
.aigupp-association-card .aigupp-card-cta { margin-top: auto; color: var(--aigupp-green-dark); font-weight: 800; }

/* Normative resources index */
.aigupp-normative-content { max-width: 1180px; }
.aigupp-normative-content .entry-content > .aigupp-lead,
.aigupp-normative-content .entry-content > h2,
.aigupp-normative-content .entry-content > p { max-width: 900px; }
.aigupp-normative-content .aigupp-lead { font-size: clamp(1.15rem, 2vw, 1.4rem); line-height: 1.55; color: var(--aigupp-ink-soft); }
.aigupp-normative-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: clamp(42px, 6vw, 72px); }
.aigupp-normative-card {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 390px;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--aigupp-border);
    border-radius: var(--aigupp-radius);
    background: #fff;
    color: var(--aigupp-ink);
    text-decoration: none;
    box-shadow: 0 10px 34px rgba(17, 29, 21, .06);
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.aigupp-normative-card:not(.has-image)::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: linear-gradient(90deg, var(--aigupp-green) 0 48%, #fff 48% 52%, #cc3438 52% 100%); }
.aigupp-normative-card:hover { transform: translateY(-4px); border-color: #bdcbbf; box-shadow: var(--aigupp-shadow); color: var(--aigupp-ink); }
.aigupp-normative-card:focus-visible { outline: 3px solid rgba(38, 127, 60, .28); outline-offset: 4px; }
.aigupp-normative-card-media { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: var(--aigupp-surface-2); }
.aigupp-normative-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.aigupp-normative-card:hover .aigupp-normative-card-media img { transform: scale(1.025); }
.aigupp-normative-card-body { display: flex; min-height: 100%; flex: 1; flex-direction: column; padding: clamp(24px, 3vw, 30px); }
.aigupp-normative-card-number { margin-bottom: 28px; color: var(--aigupp-green-dark); font-size: .76rem; font-weight: 850; letter-spacing: .11em; }
.aigupp-normative-card-title { font-size: clamp(1.35rem, 2vw, 1.75rem); line-height: 1.12; letter-spacing: -.03em; }
.aigupp-normative-card-preview { margin: 16px 0 24px; color: var(--aigupp-muted); font-size: .94rem; line-height: 1.55; }
.aigupp-normative-card-cta { margin-top: auto; padding-top: 20px; border-top: 1px solid var(--aigupp-border); color: var(--aigupp-green-dark); font-size: .9rem; font-weight: 800; }

/* Territorial sections */
.aigupp-territorial-content { max-width: 1180px; }
.aigupp-territorial-content > article > .entry-content > .aigupp-lead,
.aigupp-territorial-content > article > .entry-content > h2,
.aigupp-territorial-content > article > .entry-content > h3,
.aigupp-territorial-content > article > .entry-content > p,
.aigupp-territorial-content > article > .entry-content > ul { max-width: 900px; }
.aigupp-territorial-content .aigupp-lead { font-size: clamp(1.15rem, 2vw, 1.4rem); line-height: 1.55; color: var(--aigupp-ink-soft); }
.aigupp-territorial-directory { margin-top: clamp(52px, 7vw, 86px); }
.aigupp-territorial-group + .aigupp-territorial-group { margin-top: clamp(68px, 8vw, 104px); }
.aigupp-territorial-group > h2 { margin: 0 0 30px; font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1.05; letter-spacing: -.04em; }
.aigupp-territorial-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.aigupp-territorial-grid--national { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.aigupp-territorial-card { overflow: hidden; min-width: 0; border: 1px solid var(--aigupp-border); border-radius: var(--aigupp-radius); background: #fff; box-shadow: 0 10px 34px rgba(17, 29, 21, .06); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.aigupp-territorial-card:hover { transform: translateY(-4px); border-color: #bdcbbf; box-shadow: var(--aigupp-shadow); }
.aigupp-territorial-photo { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--aigupp-surface-2); text-decoration: none; }
.aigupp-territorial-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.aigupp-territorial-card:hover .aigupp-territorial-photo img { transform: scale(1.025); }
.aigupp-territorial-placeholder { display: grid; width: 100%; height: 100%; place-items: center; color: var(--aigupp-green-dark); font-size: 4rem; font-weight: 800; background: linear-gradient(145deg, #eef5ef, #dce9df); }
.aigupp-territorial-card-body { display: flex; min-height: 420px; flex-direction: column; padding: 24px; }
.aigupp-territorial-region { margin: 0 0 8px; color: var(--aigupp-green-dark); font-size: .76rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.aigupp-territorial-card h3 { margin: 0; font-size: clamp(1.35rem, 2vw, 1.75rem); line-height: 1.12; letter-spacing: -.03em; }
.aigupp-territorial-card h3 a { text-decoration: none; }
.aigupp-territorial-role { margin: 8px 0 0; color: var(--aigupp-ink-soft); font-weight: 750; }
.aigupp-territorial-code { margin: 4px 0 0; color: var(--aigupp-muted); font-size: .86rem; }
.aigupp-territorial-summary { margin: 18px 0 0; color: var(--aigupp-muted); font-size: .94rem; line-height: 1.55; }
.aigupp-territorial-area { margin: 16px 0 0; color: var(--aigupp-ink-soft); font-size: .9rem; line-height: 1.5; }
.aigupp-territorial-techniques { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 18px; }
.aigupp-territorial-techniques span { padding: 5px 9px; border-radius: 999px; background: var(--aigupp-surface); color: var(--aigupp-ink-soft); font-size: .76rem; font-weight: 700; }
.aigupp-territorial-contacts { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin-top: auto; padding-top: 24px; border-top: 1px solid var(--aigupp-border); font-size: .86rem; font-weight: 750; }
.aigupp-territorial-contacts a { color: var(--aigupp-green-dark); text-decoration: none; }
.aigupp-territorial-contacts a:hover { text-decoration: underline; }
.aigupp-territorial-contacts .aigupp-territorial-profile { margin-right: auto; color: var(--aigupp-ink); }
.aigupp-territorial-contact-note { margin-top: 54px; padding: clamp(25px, 4vw, 42px); border-radius: var(--aigupp-radius); background: var(--aigupp-ink); color: #fff; }
.aigupp-territorial-contact-note h2 { margin: 0 0 10px; font-size: clamp(1.5rem, 3vw, 2.2rem); }
.aigupp-territorial-contact-note p { max-width: 780px; margin: 0; color: #d8ded9; }

@media (max-width: 1020px) {
    .aigupp-normative-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .aigupp-territorial-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.aigupp-consumer-legal,
.aigupp-consumer-access { margin: 34px 0; padding: clamp(24px, 4vw, 38px); border-radius: 22px; background: var(--aigupp-surface); }
.aigupp-consumer-legal h2,
.aigupp-consumer-access h2 { margin-top: 0; }
.aigupp-consumer-functions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin: 24px 0 40px; }
.aigupp-consumer-functions section { padding: 24px; border: 1px solid var(--aigupp-border); border-radius: 16px; background: #fff; }
.aigupp-consumer-functions h3 { margin: 0 0 9px; font-size: 1.2rem; }
.aigupp-consumer-functions p { margin: 0; color: var(--aigupp-muted); }
.aigupp-consumer-source { padding-top: 18px; border-top: 1px solid var(--aigupp-border); color: var(--aigupp-muted); font-size: .92rem; }
.aigupp-news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-block: 30px; }
.aigupp-news-card { border: 1px solid var(--aigupp-border); border-radius: var(--aigupp-radius-sm); padding: 22px; background: var(--aigupp-white); }
.aigupp-news-card h3 { margin: 6px 0 12px; font-size: 1.25rem; }
@media (max-width: 900px) { .aigupp-news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 680px) {
    .aigupp-landing-grid, .aigupp-news-grid, .aigupp-association-grid, .aigupp-consumer-functions, .aigupp-normative-grid, .aigupp-territorial-grid, .aigupp-territorial-grid--national { grid-template-columns: 1fr; }
    .aigupp-association-card.is-featured { grid-column: auto; }
    .aigupp-association-card { min-height: 220px; }
    .aigupp-normative-card { min-height: 0; }
    .aigupp-territorial-card-body { min-height: 0; }
    .aigupp-territorial-contacts { margin-top: 24px; }
}

/* 0.3.10 — disable horizontal touch/focus motion in mobile navigation */
@media (max-width: 980px) {
    .aigupp-primary-nav li,
    .aigupp-primary-nav li:hover,
    .aigupp-primary-nav li:focus,
    .aigupp-primary-nav li:focus-within,
    .aigupp-primary-nav li:active,
    .aigupp-primary-nav a,
    .aigupp-primary-nav a:hover,
    .aigupp-primary-nav a:focus,
    .aigupp-primary-nav a:focus-visible,
    .aigupp-primary-nav a:active,
    .aigupp-primary-nav .sub-menu,
    .aigupp-primary-nav .sub-menu li,
    .aigupp-primary-nav .sub-menu a,
    .aigupp-primary-nav .sub-menu a:hover,
    .aigupp-primary-nav .sub-menu a:focus,
    .aigupp-primary-nav .sub-menu a:focus-visible,
    .aigupp-primary-nav .sub-menu a:active {
        -webkit-transform: none !important;
        transform: none !important;
        translate: none !important;
        left: auto;
        margin-left: 0;
    }

    .aigupp-primary-nav a,
    .aigupp-primary-nav .sub-menu a {
        width: 100%;
        transition-property: background-color, color, box-shadow !important;
    }

    .aigupp-primary-nav a:hover,
    .aigupp-primary-nav a:focus-visible,
    .aigupp-primary-nav a:active {
        background: var(--aigupp-surface);
    }
}


/* 0.3.11 — robust vertical scrolling for the full-screen mobile navigation */
@media (max-width: 980px) {
    .aigupp-mobile-nav-layer {
        overflow-x: hidden !important;
        overflow-y: scroll !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior-y: contain;
        touch-action: pan-y !important;
        height: auto;
        max-height: none;
        padding-bottom: max(24px, env(safe-area-inset-bottom, 0px));
    }
    .aigupp-mobile-nav-layer > .aigupp-primary-nav {
        min-height: 0 !important;
        height: auto !important;
        overflow: visible !important;
        padding-bottom: 72px;
    }
}


/* 0.3.12 — iOS touch-scroll fallback for the full-screen mobile navigation */
@media (max-width: 980px) {
    .aigupp-mobile-nav-layer,
    .aigupp-mobile-nav-layer.is-open {
        display: block;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
        touch-action: pan-y !important;
        pointer-events: auto;
        scrollbar-gutter: stable;
    }

    .aigupp-mobile-nav-layer:not(.is-open) {
        display: none;
    }

    .aigupp-mobile-nav-layer > .aigupp-primary-nav {
        display: block !important;
        position: relative !important;
        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        padding-bottom: calc(96px + env(safe-area-inset-bottom, 0px));
    }
}

/* 0.3.14 — Safari iOS: fully static compact header, isolated mobile overlay */
@media (max-width: 980px) {
    /*
     * A positioned header can remain in a Safari compositing layer even after
     * sticky positioning has been disabled. Keep the compact/closed header
     * completely static so changes to Safari's visual viewport cannot move it
     * independently from the document. The fixed layer exists only while the
     * full-screen navigation is actually open.
     */
    .aigupp-site-header,
    .admin-bar .aigupp-site-header {
        position: static !important;
        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        z-index: auto !important;
        transform: none !important;
        translate: none !important;
        will-change: auto !important;
        transition: none !important;
        contain: none !important;
    }
}
