:root {
    --navy: #080866;
    --navy-deep: #00004f;
    --blue: #171777;
    --button-blue: #0080d0;
    --teal: #21cdc0;
    --cyan: #209fcc;
    --ink: #101d38;
    --text: #3d4a65;
    --muted: #69758c;
    --line: #dce4ec;
    --ice: #f2f6f7;
    --white: #fff;
    --font-display: "Instrument Sans", "Arial", sans-serif;
    --font-body: "Manrope", "Arial", sans-serif;
    --shell: min(1320px, calc(100vw - 64px));
    --color-primary: var(--blue);
    --color-primary-dark: var(--navy-deep);
    --color-secondary: var(--teal);
    --color-accent: var(--cyan);
    --color-dark: var(--ink);
    --color-gray: var(--muted);
    --color-gray-light: var(--line);
    --color-light: var(--ice);
    --color-light-pure: var(--white);
    --font-heading: var(--font-display);
}

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

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--white);
    color: var(--ink);
    font-family: var(--font-body);
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
    text-decoration: none;
}

button, select {
    font: inherit;
}

img, svg {
    display: block;
    max-width: 100%;
}

.shell {
    width: var(--shell);
    margin: 0 auto;
}

.skip-link {
    position: fixed;
    top: 12px;
    inset-inline-start: 12px;
    transform: translateY(-180%);
    padding: 12px 18px;
    background: var(--teal);
    z-index: 30;
}

.skip-link:focus {
    transform: translateY(0);
}

.utility {
    height: 45px;
    background: var(--navy);
    color: rgba(255,255,255,.82);
    font-size: .76rem;
}

.utility__inner,
.utility__links {
    display: flex;
    align-items: center;
}

.utility__inner {
    height: 100%;
    justify-content: space-between;
}

.utility__label {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: .09em;
}

.utility__links {
    height: 100%;
    gap: 28px;
}

.utility__links a:hover {
    color: var(--teal);
}

.language {
    height: 100%;
    padding: 0 21px;
    color: var(--white);
    border: 0;
    border-inline-start: 1px solid rgba(255,255,255,.18);
    background: transparent;
    cursor: pointer;
    font-size: .9rem;
}

.language-picker {
    position: relative;
    display: flex;
    align-items: center;
    height: 100%;
    min-width: 124px;
    padding-inline: 19px 33px;
    border-inline-start: 1px solid rgba(255,255,255,.18);
}

.language-picker::after {
    content: "";
    position: absolute;
    inset-inline-end: 16px;
    top: 50%;
    width: 7px;
    height: 7px;
    border-inline-end: 1px solid var(--teal);
    border-bottom: 1px solid var(--teal);
    transform: translateY(-65%) rotate(45deg);
    pointer-events: none;
}

.language-picker select {
    appearance: none;
    position: absolute;
    inset: 0;
    width: 100%;
    min-width: 0;
    height: 100%;
    padding-inline: 19px 33px;
    color: var(--white);
    border: 0;
    background: transparent;
    cursor: pointer;
    font-family: var(--font-body);
    font-size: .82rem;
    font-weight: 600;
}

.language-picker select:focus-visible {
    outline: 2px solid var(--teal);
    outline-offset: 4px;
}

.masthead {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(255,255,255,.96);
    backdrop-filter: saturate(180%) blur(8px);
    border-bottom: 1px solid var(--line);
}

.masthead__inner {
    height: 102px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.brand img {
    width: 256px;
    height: auto;
}

.primary-nav {
    display: flex;
    align-items: center;
    gap: 34px;
    color: var(--navy-deep);
    font-size: .9rem;
    font-weight: 600;
}

.primary-nav > a:not(.primary-nav__contact) {
    position: relative;
    padding: 15px 0;
}

.primary-nav > a:not(.primary-nav__contact)::after {
    content: "";
    position: absolute;
    inset-inline-end: 0;
    bottom: 6px;
    inset-inline-start: 0;
    height: 2px;
    background: var(--teal);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .2s;
}

.primary-nav > a:hover::after,
.primary-nav .is-current::after {
    transform: scaleX(1);
}

.primary-nav__contact {
    padding: 14px 25px;
    background: var(--teal);
    color: var(--navy-deep);
    border-radius: 999px;
}

.menu-button {
    display: none;
}

.hero {
    position: relative;
    overflow: hidden;
    padding: 68px 0 0;
    background: linear-gradient(180deg, #fff 0, #fff 40%, var(--ice) 40%, var(--ice) 100%);
}

.hero__grid-lines {
    position: absolute;
    width: 680px;
    height: 500px;
    top: -60px;
    inset-inline-end: -160px;
    opacity: .55;
    background-image:
        linear-gradient(rgba(40,59,106,.065) 1px, transparent 1px),
        linear-gradient(90deg, rgba(40,59,106,.065) 1px, transparent 1px);
    background-size: 46px 46px;
    transform: rotate(-10deg);
    pointer-events: none;
}

.hero__layout {
    position: relative;
    display: grid;
    grid-template-columns: minmax(500px, 1fr) 405px;
    align-items: end;
    gap: 82px;
    padding-bottom: 75px;
}

.eyebrow {
    margin: 0 0 20px;
    color: var(--blue);
    font-size: .73rem;
    font-weight: 800;
    letter-spacing: .17em;
    text-transform: uppercase;
}

.eyebrow::before {
    content: "";
    display: inline-block;
    width: 29px;
    height: 2px;
    margin-inline-end: 13px;
    background: var(--teal);
    vertical-align: middle;
}

h1, h2, h3 {
    margin: 0;
    font-family: var(--font-display);
    letter-spacing: -.055em;
}

.hero h1 {
    font-size: clamp(4.5rem, 6.15vw, 5.8rem);
    font-weight: 650;
    line-height: .94;
    color: var(--navy-deep);
}

.hero h1 span {
    color: var(--blue);
}

.hero__lede {
    width: min(580px, 100%);
    margin: 30px 0 0;
    color: var(--text);
    font-size: 1.06rem;
    line-height: 1.75;
}

.access-panel {
    position: relative;
    padding: 29px 29px 27px;
    background: var(--navy-deep);
    color: var(--white);
}

.access-panel::before {
    content: "";
    position: absolute;
    top: 0;
    inset-inline-start: 0;
    width: 104px;
    height: 3px;
    background: var(--teal);
}

.access-panel__heading {
    display: flex;
    align-items: center;
    gap: 11px;
    margin: 0 0 30px;
    color: var(--teal);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.pulse {
    width: 8px;
    height: 8px;
    border-radius: 100%;
    background: var(--teal);
    box-shadow: 0 0 0 7px rgba(33,205,192,.12);
}

.access-panel label {
    display: block;
    margin: 0 0 13px;
    color: rgba(255,255,255,.7);
    font-size: .84rem;
}

.procedure select {
    width: 100%;
    height: 58px;
    padding-block: 0;
    padding-inline: 18px 44px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: 0;
    color: var(--white);
    background: #293d70;
    font-size: .87rem;
}

.procedure .action {
    height: 57px;
    margin-top: 12px;
    padding-block: 0;
    padding-inline: 20px 19px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--navy-deep);
    background: var(--teal);
    font-size: .9rem;
    font-weight: 750;
    transition: background .2s;
}

.procedure .action:hover {
    background: #55e2d6;
}

.procedure svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
}

.access-panel__status {
    display: grid;
    gap: 4px;
    margin-top: 29px;
    padding-top: 22px;
    border-top: 1px solid rgba(255,255,255,.15);
    font-size: .78rem;
}

.access-panel__status strong {
    color: var(--white);
}

.access-panel__status span {
    color: rgba(255,255,255,.58);
}

.territory-board {
    position: relative;
    display: grid;
    grid-template-columns: 290px 1fr 165px;
    min-height: 392px;
    background: var(--navy-deep);
    color: var(--white);
}

.territory-board__intro {
    padding: 45px 26px 38px 39px;
    border-inline-end: 1px solid rgba(255,255,255,.12);
}

.meta {
    display: inline-block;
    color: var(--teal);
    font-size: .69rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.territory-board__intro h2 {
    margin-top: 29px;
    font-size: 2.1rem;
    line-height: 1.1;
}

.territory-board__intro h2 span {
    color: var(--teal);
}

.territory-board__intro p {
    margin: 21px 0 27px;
    color: rgba(255,255,255,.68);
    font-size: .86rem;
    line-height: 1.65;
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 15px;
    color: var(--teal);
    font-size: .83rem;
    font-weight: 700;
}

.text-link span {
    width: 27px;
    height: 27px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(33,205,192,.42);
    border-radius: 100%;
}

.map-graphic {
    position: relative;
    min-height: 392px;
    overflow: hidden;
    background: radial-gradient(circle at 48% 54%, #2d447c 0, var(--navy-deep) 73%);
}

.map-graphic svg {
    width: 100%;
    height: 100%;
    padding: 25px 10px;
}

.coast {
    fill: none;
    stroke: var(--cyan);
    stroke-width: 2;
    stroke-dasharray: 5 8;
}

.land {
    fill: rgba(56,81,162,.34);
    stroke: rgba(33,205,192,.66);
    stroke-width: 2;
}

.district {
    fill: rgba(33,205,192,.04);
    stroke: rgba(176,224,230,.17);
    stroke-width: 1;
}

.route {
    fill: none;
    stroke: rgba(33,205,192,.38);
    stroke-width: 1.5;
    stroke-dasharray: 3 6;
}

.marker {
    fill: var(--teal);
    stroke: rgba(33,205,192,.23);
    stroke-width: 13;
}

.marker--secondary {
    fill: var(--white);
    stroke: rgba(255,255,255,.18);
}

.place {
    position: absolute;
    display: grid;
    gap: 3px;
    font-size: .76rem;
}

.place strong {
    font-size: .81rem;
}

.place small,
.coordinates {
    color: rgba(255,255,255,.54);
}

.place--tanger {
    top: 117px;
    left: 26%;
}

.place--fahs {
    top: 176px;
    right: 21%;
}

.coordinates {
    position: absolute;
    right: 22px;
    bottom: 23px;
    font-size: .65rem;
    line-height: 1.65;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.territory-board__facts {
    margin: 0;
    display: grid;
    grid-template-rows: repeat(3, 1fr);
    border-inline-start: 1px solid rgba(255,255,255,.12);
}

.territory-board__facts div {
    padding: 29px 23px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-bottom: 1px solid rgba(255,255,255,.12);
}

.territory-board__facts div:last-child {
    border: 0;
}

.territory-board__facts dt {
    color: var(--teal);
    font-size: 1rem;
    font-weight: 800;
    letter-spacing: .08em;
}

.territory-board__facts dd {
    margin: 8px 0 0;
    color: rgba(255,255,255,.61);
    font-size: .73rem;
    line-height: 1.45;
}

.section {
    padding: 104px 0;
}

.section-heading h2 {
    font-size: clamp(2.45rem, 4vw, 3.2rem);
    color: var(--navy-deep);
    line-height: 1.12;
}

.section-heading > p:last-of-type {
    max-width: 510px;
    margin: 22px 0 0;
    color: var(--text);
    line-height: 1.7;
}

.service-flow .section-heading {
    display: grid;
    grid-template-columns: 1.05fr .78fr;
    column-gap: 100px;
    align-items: end;
}

.service-flow .section-heading .eyebrow {
    grid-column: 1 / -1;
}

.service-flow .section-heading > p:last-of-type {
    margin: 0 0 6px;
}

.service-list {
    margin-top: 58px;
    border-top: 1px solid var(--line);
}

.service-list a {
    display: grid;
    grid-template-columns: 72px 240px 1fr 106px;
    align-items: center;
    min-height: 91px;
    border-bottom: 1px solid var(--line);
    transition: background .2s, padding .2s;
}

.service-list a:hover {
    padding: 0 23px;
    background: var(--ice);
}

.service-list__index {
    color: var(--teal);
    font-size: .77rem;
    font-weight: 800;
    letter-spacing: .1em;
}

.service-list strong {
    color: var(--navy-deep);
    font-family: var(--font-display);
    font-size: 1.45rem;
    letter-spacing: -.035em;
}

.service-list a > span:not(.service-list__index) {
    color: var(--text);
    font-size: .91rem;
}

.service-list b {
    justify-self: end;
    color: var(--blue);
    font-size: .83rem;
}

.publications {
    background: var(--ice);
}

.publications__layout {
    display: grid;
    grid-template-columns: 355px 1fr;
    gap: 96px;
}

.outline-action {
    display: inline-flex;
    margin-top: 40px;
    padding: 15px 22px;
    border: 1px solid var(--navy);
    color: var(--navy);
    font-size: .84rem;
    font-weight: 700;
    transition: color .2s, background .2s;
}

.outline-action:hover {
    background: var(--navy);
    color: var(--white);
}

.document-register {
    border-top: 1px solid #cedae2;
}

.document-register a {
    position: relative;
    display: grid;
    grid-template-columns: 145px 1fr 84px;
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 24px;
    min-height: 120px;
    border-bottom: 1px solid #cedae2;
}

.document-register__type {
    grid-row: 1 / 3;
    color: var(--blue);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.document-register strong {
    grid-column: 2;
    align-self: end;
    margin-bottom: 7px;
    color: var(--navy-deep);
    font-size: 1.04rem;
}

.document-register small {
    grid-column: 2;
    align-self: start;
    color: var(--muted);
}

.download {
    grid-column: 3;
    grid-row: 1 / 3;
    justify-self: end;
    padding-bottom: 3px;
    color: var(--navy);
    border-bottom: 1px solid var(--teal);
    font-size: .82rem;
    font-weight: 700;
}

.briefing__bar {
    display: flex;
    justify-content: space-between;
    align-items: end;
    margin-bottom: 53px;
}

.briefing__bar h2 {
    font-size: clamp(2.25rem, 3.5vw, 3rem);
    color: var(--navy-deep);
}

.briefing__grid {
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: 80px;
}

.lead-story {
    position: relative;
    padding: 49px 54px 53px 52px;
    background: var(--navy-deep);
    color: var(--white);
}

.lead-story::after {
    content: "";
    position: absolute;
    top: 34px;
    inset-inline-end: 38px;
    width: 92px;
    height: 92px;
    border: 1px solid rgba(33,205,192,.28);
    border-radius: 50%;
}

.lead-story .meta {
    margin: 0 0 63px;
}

.lead-story h3 {
    max-width: 570px;
    margin-bottom: 22px;
    font-size: clamp(2rem, 3vw, 2.55rem);
    line-height: 1.16;
}

.lead-story > p:not(.meta) {
    max-width: 540px;
    color: rgba(255,255,255,.66);
    line-height: 1.7;
}

.lead-story a {
    display: inline-flex;
    margin-top: 32px;
    color: var(--teal);
    font-size: .86rem;
    font-weight: 700;
}

.notices {
    border-top: 1px solid var(--line);
}

.notices a {
    display: grid;
    gap: 11px;
    padding: 30px 3px;
    border-bottom: 1px solid var(--line);
}

.notices span {
    color: var(--muted);
    font-size: .7rem;
    font-weight: 750;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.notices strong {
    color: var(--navy-deep);
    font-family: var(--font-display);
    font-size: 1.43rem;
    letter-spacing: -.035em;
    transition: color .2s;
}

.notices a:hover strong {
    color: var(--blue);
}

.agency {
    padding-top: 30px;
}

.agency__layout {
    display: grid;
    grid-template-columns: 1.18fr .82fr;
    gap: 104px;
    padding: 86px 0;
    border-top: 1px solid var(--line);
}

.agency__quote {
    margin: 0;
    color: var(--navy-deep);
    font-family: var(--font-display);
    font-size: clamp(2.35rem, 3.35vw, 3.05rem);
    line-height: 1.2;
    letter-spacing: -.055em;
}

.agency__body > p:not(.eyebrow) {
    margin: 0;
    color: var(--text);
    line-height: 1.8;
}

.footer {
    padding: 61px 0 23px;
    background: var(--navy-deep);
    color: rgba(255,255,255,.68);
    font-size: .88rem;
}

.footer__grid {
    display: grid;
    grid-template-columns: 1.5fr 1.08fr .88fr .8fr;
    gap: 64px;
    padding-bottom: 53px;
}

.footer__identity img {
    width: 262px;
    padding: 10px;
    background: var(--white);
}

.footer__identity p {
    margin-top: 25px;
}

.footer__social {
    display: flex;
    gap: 20px;
    margin-top: 27px;
}

.footer__social a {
    color: var(--teal);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.footer__heading {
    margin: 0 0 20px;
    color: var(--teal);
    font-size: .71rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.footer address {
    margin: 0 0 16px;
    font-style: normal;
    line-height: 1.8;
}

.footer a {
    display: block;
    margin-bottom: 13px;
    transition: color .18s;
}

.footer a:hover {
    color: var(--teal);
}

.footer__bottom {
    display: flex;
    justify-content: space-between;
    padding-top: 22px;
    border-top: 1px solid rgba(255,255,255,.15);
    color: rgba(255,255,255,.47);
    font-size: .78rem;
}

@media (max-width: 1080px) {
    :root {
        --shell: min(100% - 44px, 760px);
    }

    .utility__label {
        display: none;
    }

    .utility__inner {
        justify-content: flex-end;
    }

    .masthead__inner {
        height: 82px;
    }

    .brand img {
        width: 226px;
    }

    .menu-button {
        display: grid;
        gap: 8px;
        width: 52px;
        padding: 15px 10px;
        border: 0;
        background: transparent;
    }

    .menu-button span {
        width: 30px;
        height: 2px;
        background: var(--navy);
        transition: transform .2s;
    }

    .menu-button.is-open span:first-child {
        transform: translateY(5px) rotate(45deg);
    }

    .menu-button.is-open span:last-child {
        transform: translateY(-5px) rotate(-45deg);
    }

    .primary-nav {
        position: absolute;
        top: 82px;
        inset-inline-end: 0;
        inset-inline-start: 0;
        display: none;
        padding: 25px var(--shell) 29px;
        background: var(--white);
        border-bottom: 1px solid var(--line);
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .primary-nav.is-open {
        display: flex;
    }

    .primary-nav a {
        padding: 10px 0;
    }

    .primary-nav__contact {
        margin-top: 8px;
        text-align: center;
    }

    .hero {
        padding-top: 54px;
    }

    .hero__layout,
    .territory-board,
    .publications__layout,
    .briefing__grid,
    .agency__layout {
        display: grid;
        grid-template-columns: 1fr;
    }

    .hero__layout {
        gap: 45px;
        padding-bottom: 52px;
    }

    .hero h1 {
        font-size: clamp(3.35rem, 13vw, 4.65rem);
    }

    .access-panel {
        max-width: 480px;
    }

    .territory-board__intro {
        border-inline-end: 0;
        border-bottom: 1px solid rgba(255,255,255,.12);
    }

    .map-graphic {
        min-height: 333px;
    }

    .territory-board__facts {
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: unset;
        border-top: 1px solid rgba(255,255,255,.12);
        border-inline-start: 0;
    }

    .territory-board__facts div {
        border-inline-end: 1px solid rgba(255,255,255,.12);
        border-bottom: 0;
    }

    .section {
        padding: 80px 0;
    }

    .service-flow .section-heading {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .service-flow .section-heading > p:last-of-type {
        margin: 0;
    }

    .service-list a {
        grid-template-columns: 56px 200px 1fr 80px;
    }

    .publications__layout,
    .briefing__grid,
    .agency__layout {
        gap: 49px;
    }

    .footer__grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 650px) {
    :root {
        --shell: calc(100% - 32px);
    }

    .utility__links {
        gap: 15px;
        font-size: .66rem;
    }

    .utility__links a:first-child {
        display: none;
    }

    .language {
        padding-block: 0;
        padding-inline: 17px 9px;
    }

    .language-picker {
        min-width: 104px;
        padding-inline: 12px 29px;
    }

    .language-picker select {
        padding-inline: 12px 29px;
        font-size: .69rem;
    }

    .language-picker::after {
        inset-inline-end: 12px;
    }

    .masthead__inner {
        height: 73px;
    }

    .brand img {
        width: 192px;
    }

    .primary-nav {
        top: 73px;
        padding-inline-end: 16px;
        padding-inline-start: 16px;
    }

    .hero {
        padding-top: 45px;
    }

    .hero__lede {
        font-size: .96rem;
    }

    .access-panel {
        padding: 25px 20px;
    }

    .territory-board__intro {
        padding: 39px 27px;
    }

    .map-graphic {
        min-height: 272px;
    }

    .place {
        font-size: .62rem;
    }

    .place strong {
        font-size: .69rem;
    }

    .coordinates {
        display: none;
    }

    .territory-board__facts {
        grid-template-columns: 1fr;
    }

    .territory-board__facts div {
        padding: 21px 26px;
        border-inline-end: 0;
        border-bottom: 1px solid rgba(255,255,255,.12);
    }

    .section-heading h2,
    .briefing__bar h2 {
        font-size: 2.12rem;
    }

    .service-list {
        margin-top: 39px;
    }

    .service-list a {
        grid-template-columns: 42px 1fr 68px;
        grid-template-rows: auto auto;
        padding: 22px 0;
        min-height: unset;
    }

    .service-list strong {
        font-size: 1.2rem;
    }

    .service-list a > span:not(.service-list__index) {
        grid-column: 2 / 4;
        padding-top: 8px;
        font-size: .8rem;
    }

    .service-list b {
        grid-column: 3;
        grid-row: 1;
    }

    .document-register a {
        grid-template-columns: 1fr 60px;
        row-gap: 12px;
        padding: 23px 0;
    }

    .document-register__type {
        grid-column: 1 / -1;
        grid-row: auto;
    }

    .document-register strong {
        grid-column: 1;
    }

    .document-register small {
        grid-column: 1;
    }

    .download {
        grid-column: 2;
        grid-row: 2 / 4;
    }

    .briefing__bar {
        display: grid;
        gap: 28px;
        margin-bottom: 38px;
    }

    .lead-story {
        padding: 38px 27px;
    }

    .lead-story .meta {
        margin-bottom: 55px;
    }

    .agency__layout {
        padding: 59px 0;
    }

    .footer__grid {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .footer__bottom {
        display: grid;
        gap: 10px;
    }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation: none !important;
        transition: none !important;
    }

}

/* Source-content homepage revamp */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

.engagement {
    color: var(--white);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.engagement:hover {
    color: var(--teal);
}

.utility__featured {
    display: flex;
    align-items: center;
    gap: 25px;
}

.utility__featured > a:last-child {
    color: var(--teal);
    font-size: .75rem;
    font-weight: 650;
}

.primary-nav {
    gap: 14px;
    font-size: .78rem;
}

.primary-nav__contact {
    padding: 14px 20px;
}

.solid-action {
    display: inline-flex;
    align-items: center;
    min-height: 53px;
    padding: 0 26px;
    background:
        linear-gradient(to top, var(--navy-deep), var(--navy-deep)) bottom / 100% 0 no-repeat,
        var(--button-blue);
    color: var(--white);
    font-size: .86rem;
    font-weight: 750;
    transition: background-size .32s cubic-bezier(.22, 1, .36, 1), border-color .32s cubic-bezier(.22, 1, .36, 1), color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.solid-action:hover {
    background-size: 100% 100%, auto;
    color: var(--white);
}

.home-slider {
    position: relative;
    height: clamp(555px, 48vw, 660px);
    background: var(--navy-deep);
    color: var(--white);
}

.home-slider__track,
.hero-slide {
    position: absolute;
    inset: 0;
}

.hero-slide {
    opacity: 0;
    visibility: hidden;
    transition: opacity .55s ease, visibility .55s ease;
}

.hero-slide.is-active {
    opacity: 1;
    visibility: visible;
}

.hero-slide img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.hero-slide__shade {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg, rgba(22,36,70,.93) 0%, rgba(22,36,70,.7) 44%, rgba(22,36,70,.17) 100%),
        linear-gradient(0deg, rgba(21,34,63,.34), transparent 44%);
}

.hero-slide__inner {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
    padding-bottom: 22px;
}

.hero-slide__content {
    width: min(594px, 57vw);
}

.hero-slide .eyebrow {
    color: var(--teal);
}

.hero-slide h1,
.hero-slide h2 {
    max-width: 590px;
    margin-bottom: 26px;
    color: var(--white);
    font-size: clamp(3.2rem, 4.8vw, 4.65rem);
    line-height: .99;
}

.hero-slide__content > p:not(.eyebrow) {
    max-width: 544px;
    margin: 0 0 38px;
    color: rgba(255,255,255,.78);
    font-size: 1rem;
    line-height: 1.75;
}

.slider-ui {
    position: absolute;
    inset-inline-end: 0;
    bottom: 38px;
    inset-inline-start: 0;
    display: flex;
    align-items: center;
    gap: 25px;
    pointer-events: none;
}

.slider-counter {
    display: flex;
    gap: 8px;
    align-items: baseline;
    color: rgba(255,255,255,.55);
    font-size: .76rem;
    letter-spacing: .15em;
}

.slider-counter strong {
    color: var(--teal);
    font-size: 1.05rem;
}

.slider-dots {
    display: flex;
    gap: 9px;
}

.slider-dots button {
    width: 37px;
    height: 3px;
    padding: 0;
    border: 0;
    background: rgba(255,255,255,.35);
    cursor: pointer;
    pointer-events: auto;
}

.slider-dots button.is-active {
    background: var(--teal);
}

.slider-buttons {
    display: flex;
    gap: 8px;
    margin-inline-start: auto;
}

.slider-buttons button {
    width: 53px;
    height: 53px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(255,255,255,.4);
    color: var(--white);
    background: transparent;
    cursor: pointer;
    pointer-events: auto;
    transition: border-color .2s, background .2s;
}

.slider-buttons button:hover {
    border-color: var(--teal);
    background: var(--teal);
    color: var(--navy-deep);
}

.slider-buttons svg,
.quick-access .action svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
}

.slider-buttons .icon-play {
    display: none;
}

.slider-buttons .is-paused .icon-play {
    display: block;
}

.slider-buttons .is-paused .icon-pause {
    display: none;
}

.quick-access {
    position: relative;
    z-index: 3;
    margin-top: -1px;
    background: var(--navy-deep);
    color: var(--white);
}

.quick-access__inner {
    display: grid;
    grid-template-columns: minmax(280px, 390px) 1fr;
    gap: 54px;
    align-items: center;
    min-height: 144px;
}

.quick-access .meta {
    margin: 0 0 12px;
}

.quick-access h2 {
    color: var(--white);
    font-size: 1.56rem;
}

.quick-access__form {
    display: grid;
    grid-template-columns: 1fr 212px;
    gap: 10px;
}

.quick-access select {
    width: 100%;
    height: 59px;
    padding-block: 0;
    padding-inline: 20px 47px;
    border: 1px solid rgba(255,255,255,.2);
    color: var(--white);
    background: #2c4277;
    font-size: .88rem;
}

.quick-access .action {
    height: 59px;
    padding: 0 20px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--teal);
    color: var(--navy-deep);
    font-size: .84rem;
    font-weight: 750;
}

.line-heading {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: end;
    margin-bottom: 52px;
}

.line-heading .eyebrow {
    grid-column: 1 / -1;
}

.line-heading > p:last-child {
    margin: 0;
    justify-self: end;
}

.flash {
    padding-top: 89px;
    padding-bottom: 88px;
    background:
        radial-gradient(circle at 8% 16%, rgba(33,205,192,.09), transparent 26%),
        linear-gradient(180deg, #fff 0%, #f7fafc 100%);
}

.flash-register {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px;
    border-top: 0;
}

.flash-register a {
    min-height: 238px;
    position: relative;
    overflow: hidden;
    padding-block: 30px 27px;
    padding-inline: 28px;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(220,228,236,.92);
    background:
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(255,255,255,.9)),
        var(--white);
    box-shadow: 0 18px 44px rgba(16,29,56,.07);
    isolation: isolate;
}

.flash-register a::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    content: "";
    background:
        linear-gradient(135deg, rgba(33,205,192,.16), transparent 33%),
        radial-gradient(circle at 88% 12%, rgba(56,81,162,.13), transparent 26%);
    opacity: .75;
}

.flash-register a::after {
    position: absolute;
    inset-inline-start: 28px;
    top: 0;
    width: 52px;
    height: 3px;
    content: "";
    background: var(--teal);
}

.flash-register a:not(:first-child) {
    padding-inline-start: 28px;
}

.flash-register a:last-child {
    border-inline-end: 1px solid rgba(220,228,236,.92);
}

.flash-register__index {
    margin-bottom: 35px;
    color: var(--teal);
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .15em;
}

.flash-register strong {
    color: var(--navy-deep);
    font-size: 1.04rem;
    line-height: 1.55;
}

.flash-register small {
    margin-top: auto;
    color: var(--muted);
    font-size: .72rem;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.flash-register b {
    align-self: flex-end;
    margin-top: -18px;
    color: var(--blue);
    font-size: .78rem;
}

.tutelle {
    background: var(--ice);
}

.tutelle__layout {
    display: grid;
    grid-template-columns: 390px 1fr;
    gap: 84px;
    align-items: start;
}

.minister {
    margin: 0;
    background: var(--white);
}

.minister img {
    width: 100%;
    height: 370px;
    object-fit: cover;
    object-position: center top;
}

.minister__video {
    display: block;
    padding: 16px 27px;
    background: var(--navy);
    color: var(--teal);
    font-size: .8rem;
    font-weight: 700;
}

.minister figcaption {
    display: grid;
    gap: 11px;
    padding: 26px 27px 29px;
}

.minister figcaption strong {
    color: var(--navy-deep);
    font-size: 1.03rem;
}

.minister figcaption span {
    color: var(--muted);
    font-size: .78rem;
    line-height: 1.65;
}

.tutelle__content h2 {
    max-width: 720px;
    margin-bottom: 25px;
    color: var(--navy-deep);
    font-size: clamp(2.35rem, 3.4vw, 3.15rem);
    line-height: 1.15;
}

.tutelle__content > p:not(.eyebrow) {
    max-width: 760px;
    color: var(--text);
    line-height: 1.78;
}

.proximity {
    max-width: 710px;
    margin: 35px 0 0;
    padding: 24px 27px;
    border-inline-start: 3px solid var(--teal);
    background: var(--white);
}

.proximity strong {
    color: var(--navy-deep);
    font-size: 1.03rem;
}

.proximity p {
    margin: 10px 0 0;
    color: var(--text);
    font-size: .9rem;
    line-height: 1.7;
}

.strategy__heading {
    display: grid;
    grid-template-columns: 1fr 420px;
    gap: 70px;
    align-items: end;
    margin-bottom: 55px;
}

.strategy__heading > p {
    margin: 0;
    color: var(--text);
    line-height: 1.7;
}

.strategy-list {
    margin: 0 0 48px;
    padding: 0;
    counter-reset: strategy;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    column-gap: 55px;
    border-top: 1px solid var(--line);
    list-style: none;
}

.strategy-list li {
    min-height: 77px;
    display: grid;
    grid-template-columns: 54px 1fr;
    align-items: center;
    border-bottom: 1px solid var(--line);
    color: var(--navy-deep);
    font-size: .9rem;
    line-height: 1.5;
}

.strategy-list li::before {
    counter-increment: strategy;
    content: counter(strategy, decimal-leading-zero);
    color: var(--teal);
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .12em;
}

.agency-news {
    padding: 83px 0;
    background: var(--ice);
    color: var(--navy-deep);
}

.agency-news__layout {
    display: grid;
    grid-template-columns: .95fr 1fr;
    align-items: center;
    gap: 95px;
}

.agency-news h2 {
    color: var(--navy-deep);
}

.agency-news .eyebrow {
    color: var(--blue);
}

.agency-news__copy p {
    margin: 0 0 18px;
    color: var(--text);
    line-height: 1.7;
}

.agency-news__copy .solid-action {
    margin-top: 18px;
}

.agency-news .news-desk {
    grid-column: 1 / -1;
    margin-top: 12px;
}

.agency-news .news-card {
    background: rgba(255,255,255,.92);
}

.featured-services {
    padding-bottom: 87px;
    background: var(--navy-deep);
    color: var(--white);
}

.section-heading.centered {
    max-width: 690px;
    margin: 0 auto 54px;
    text-align: center;
}

.section-heading.centered .eyebrow::before {
    display: none;
}

.section-heading.centered > p:last-child {
    margin-inline: auto;
}

.section-heading.light h2 {
    color: var(--white);
}

.section-heading.light > p:last-child {
    color: rgba(255,255,255,.68);
}

.featured-services .eyebrow {
    color: var(--teal);
}

.service-tabs {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    border-bottom: 1px solid rgba(255,255,255,.17);
}

.service-tab {
    position: relative;
    min-height: 67px;
    border: 0;
    color: rgba(255,255,255,.56);
    background: transparent;
    cursor: pointer;
    font-weight: 650;
}

.service-tab.is-active {
    color: var(--teal);
}

.service-tab.is-active::after {
    content: "";
    position: absolute;
    inset-inline-end: 0;
    bottom: -1px;
    inset-inline-start: 0;
    height: 3px;
    background: var(--teal);
}

.service-panels {
    min-height: 210px;
}

.service-panel {
    display: grid;
    grid-template-columns: 235px 1fr 193px;
    gap: 46px;
    align-items: center;
    min-height: 210px;
}

.service-panel[hidden] {
    display: none;
}

.service-panel h3 {
    color: var(--white);
    font-size: 2.1rem;
}

.service-panel p {
    color: rgba(255,255,255,.7);
    line-height: 1.72;
}

.tutorial {
    display: grid;
    grid-template-columns: 1fr 398px;
    align-items: center;
    gap: 63px;
    margin-top: 44px;
    padding: 44px;
    background: #293f73;
}

.tutorial h3 {
    margin: 17px 0;
    color: var(--white);
    font-size: 1.8rem;
}

.tutorial p:not(.meta) {
    color: rgba(255,255,255,.7);
    line-height: 1.7;
}

.tutorial img {
    width: 100%;
    height: 245px;
    object-fit: cover;
}

.outline-action--light {
    border-color: rgba(255,255,255,.4);
    color: var(--white);
}

.outline-action--light:hover {
    background: var(--teal);
    border-color: var(--teal);
    color: var(--navy-deep);
}

.service-directory {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.service-directory a {
    min-height: 235px;
    position: relative;
    padding: 32px 28px 28px;
    display: flex;
    flex-direction: column;
    background: var(--white);
    border: 1px solid rgba(220,228,236,.95);
    box-shadow: 0 14px 36px rgba(16,29,56,.045);
    transition: background .2s, border-color .2s, box-shadow .2s, transform .2s;
    overflow: hidden;
}

.service-directory a::before {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    top: 0;
    width: 100%;
    height: 4px;
    background: var(--service-color, var(--teal));
    opacity: .72;
}

.service-directory a:hover {
    background: #fbfdfe;
    border-color: rgba(33,205,192,.34);
    box-shadow: 0 22px 52px rgba(16,29,56,.075);
}

.service-directory span {
    margin-bottom: 22px;
    color: var(--muted);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.service-directory strong {
    color: var(--navy-deep);
    font-family: var(--font-display);
    font-size: 1.16rem;
    letter-spacing: -.035em;
}

.service-directory p {
    margin: 13px 0;
    color: var(--text);
    font-size: .81rem;
    line-height: 1.62;
}

.service-directory b {
    margin-top: auto;
    color: var(--navy);
    font-size: .8rem;
    letter-spacing: .02em;
}

.maps {
    background: var(--ice);
}

.maps .outline-action {
    display: flex;
    width: max-content;
    margin-inline: auto;
}

.map-frame {
    position: relative;
    height: 470px;
    border: 1px solid var(--line);
    background: var(--white);
    overflow: hidden;
}

.map-frame iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.map-cover {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: grid;
    place-content: center;
    gap: 13px;
    width: 100%;
    border: 0;
    color: var(--white);
    background:
        linear-gradient(90deg, rgba(33,51,96,.89), rgba(40,59,106,.76)),
        repeating-linear-gradient(0deg, transparent, transparent 52px, rgba(33,205,192,.06) 53px);
    cursor: pointer;
}

.map-cover strong {
    font-family: var(--font-display);
    font-size: 2rem;
    letter-spacing: -.045em;
}

.map-cover span {
    position: relative;
    display: inline-flex;
    gap: 9px;
    align-items: center;
    justify-content: center;
    justify-self: center;
    padding: 10px 15px;
    border: 1px solid rgba(33,205,192,.36);
    color: var(--white);
    background: rgba(33,205,192,.12);
    box-shadow: 0 12px 30px rgba(33,205,192,.14);
    font-size: .88rem;
    font-weight: 800;
    letter-spacing: .035em;
    overflow: hidden;
    isolation: isolate;
    animation: mapPromptPulse 2.6s ease-in-out infinite;
}

.map-cover span::before {
    content: "";
    position: absolute;
    inset-block: 0;
    inset-inline-start: -42%;
    z-index: -1;
    width: 38%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,.24), transparent);
    transform: skewX(-18deg);
    animation: mapPromptShine 3.8s ease-in-out infinite;
}

.map-cover span::after {
    content: "→";
    color: var(--teal);
    font-size: 1rem;
    line-height: 1;
    animation: mapPromptArrow 1.35s ease-in-out infinite;
}

.map-frame.is-active .map-cover {
    display: none;
}

@keyframes mapPromptPulse {
    0%, 100% {
        transform: translateY(0);
        border-color: rgba(33,205,192,.34);
        box-shadow: 0 12px 30px rgba(33,205,192,.14);
    }

    50% {
        transform: translateY(-2px);
        border-color: rgba(33,205,192,.72);
        box-shadow: 0 18px 42px rgba(33,205,192,.24);
    }
}

@keyframes mapPromptShine {
    0%, 42% {
        inset-inline-start: -42%;
    }

    76%, 100% {
        inset-inline-start: 112%;
    }
}

@keyframes mapPromptArrow {
    0%, 100% {
        transform: translateX(0);
    }

    50% {
        transform: translateX(4px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .map-cover span,
    .map-cover span::before,
    .map-cover span::after {
        animation: none;
    }
}

.map-secondary {
    margin-top: 96px !important;
}

@media (max-width: 1080px) {
    .utility__featured {
        display: none;
    }

    .home-slider {
        height: 550px;
    }

    .hero-slide__content {
        width: min(590px, 88%);
    }

    .quick-access__inner,
    .tutelle__layout,
    .strategy__heading,
    .agency-news__layout,
    .tutorial {
        grid-template-columns: 1fr;
    }

    .quick-access__inner {
        gap: 24px;
        padding: 33px 0;
    }

    .flash-register,
    .service-directory {
        grid-template-columns: repeat(2, 1fr);
    }

    .flash-register a:nth-child(2) {
        border-inline-end: 0;
    }

    .flash-register a {
        border-bottom: 1px solid var(--line);
    }

    .tutelle__layout {
        gap: 47px;
    }

    .minister {
        max-width: 390px;
    }

    .strategy-list {
        grid-template-columns: 1fr;
    }

    .service-panel {
        grid-template-columns: 180px 1fr;
    }

    .service-panel .solid-action {
        grid-column: 2;
    }

    .tutorial img {
        max-width: 470px;
    }
}

@media (max-width: 650px) {
    .utility__inner {
        justify-content: flex-end;
    }

    .hero-slide__inner {
        align-items: end;
        padding-bottom: 116px;
    }

    .hero-slide__content {
        width: 100%;
    }

    .hero-slide h1,
    .hero-slide h2 {
        font-size: clamp(2.55rem, 12vw, 3.2rem);
    }

    .hero-slide__content > p:not(.eyebrow) {
        font-size: .9rem;
        line-height: 1.6;
    }

    .slider-ui {
        bottom: 33px;
        gap: 16px;
    }

    .slider-dots {
        display: none;
    }

    .slider-buttons button {
        width: 42px;
        height: 42px;
    }

    .quick-access__form,
    .line-heading,
    .flash-register,
    .service-directory {
        grid-template-columns: 1fr;
    }

    .service-tabs {
        grid-template-columns: repeat(2, 1fr);
    }

    .flash-register a,
    .flash-register a:not(:first-child) {
        min-height: 176px;
        padding: 24px 0;
        border-inline-end: 0;
    }

    .strategy-list li {
        grid-template-columns: 44px 1fr;
    }

    .service-panel {
        display: block;
        min-height: unset;
        padding: 37px 0;
    }

    .service-panel p {
        margin: 17px 0 27px;
    }

    .tutorial {
        padding: 28px 21px;
    }

    .service-directory a {
        min-height: 214px;
    }

    .map-frame {
        height: 355px;
    }

    .map-cover {
        padding: 25px;
    }

    .map-cover strong {
        font-size: 1.48rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero-slide,
    .solid-action,
    .slider-buttons button,
    .service-directory a {
        transition: none;
    }
}

/* Interior page: E-Services */
.page-hero {
    position: relative;
    overflow: hidden;
    padding: 49px 0 75px;
    background: var(--ice);
    border-bottom: 1px solid var(--line);
}

.page-hero__grid {
    position: absolute;
    top: -75px;
    inset-inline-end: -75px;
    width: 565px;
    height: 400px;
    opacity: .65;
    transform: rotate(-8deg);
    background-image:
        linear-gradient(rgba(40,59,106,.055) 1px, transparent 1px),
        linear-gradient(90deg, rgba(40,59,106,.055) 1px, transparent 1px);
    background-size: 44px 44px;
}

.breadcrumbs {
    position: relative;
    display: flex;
    gap: 13px;
    align-items: center;
    margin-bottom: 65px;
    color: var(--muted);
    font-size: .76rem;
    font-weight: 650;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.breadcrumbs a {
    color: var(--blue);
}

.page-hero__layout {
    position: relative;
    display: grid;
    grid-template-columns: .84fr 1fr;
    gap: 91px;
    align-items: end;
}

.page-hero h1 {
    color: var(--navy-deep);
    font-size: clamp(4rem, 6vw, 5rem);
    line-height: .96;
}

.page-hero__intro {
    max-width: 650px;
    margin: 0 0 9px;
    color: var(--text);
    font-size: 1.02rem;
    line-height: 1.82;
}

.services-page .page-hero--services {
    overflow: hidden;
}

.services-hero-copy {
    display: grid;
    gap: 22px;
}

.services-hero-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.services-hero-stats span {
    min-width: 132px;
    padding: 13px 15px;
    border: 1px solid rgba(255,255,255,.18);
    color: var(--white);
    background: rgba(255,255,255,.075);
    backdrop-filter: blur(8px);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.services-hero-stats strong {
    display: block;
    margin-bottom: 4px;
    color: var(--teal);
    font-family: var(--font-display);
    font-size: 1.8rem;
    line-height: 1;
    letter-spacing: -.04em;
}

.eservices-layout {
    display: grid;
    grid-template-columns: 300px 1fr;
    gap: 48px;
    align-items: start;
}

.service-sidebar {
    position: sticky;
    top: 104px;
    padding: 26px 22px;
    border: 1px solid rgba(15,35,70,.1);
    background: var(--white);
    box-shadow: 0 18px 42px rgba(16,29,56,.06);
}

.service-sidebar > .meta,
.direct-register > .meta,
.tutorial-panel > .meta {
    margin: 0 0 25px;
}

.service-sidebar nav {
    max-height: calc(100vh - 250px);
    overflow: auto;
    border-top: 1px solid rgba(220,228,236,.9);
}

.service-sidebar nav a {
    display: grid;
    grid-template-columns: 38px 1fr;
    align-items: center;
    min-height: 52px;
    border-bottom: 1px solid rgba(220,228,236,.9);
    color: var(--navy-deep);
    font-size: .82rem;
    font-weight: 650;
    text-decoration: none;
}

.service-sidebar nav span {
    color: var(--teal);
    font-size: .68rem;
    letter-spacing: .13em;
}

.service-sidebar nav a:hover,
.service-sidebar nav a.is-current {
    color: var(--blue);
}

.help-panel {
    margin-top: 25px;
    padding: 27px 23px;
    color: var(--white);
    background: var(--navy-deep);
}

.help-panel .meta {
    margin: 0 0 14px;
}

.help-panel p:not(.meta) {
    margin: 0 0 25px;
    color: rgba(255,255,255,.69);
    font-size: .84rem;
    line-height: 1.65;
}

.help-panel .solid-action {
    width: 100%;
    justify-content: center;
}

.service-records__heading {
    display: grid;
    gap: 12px;
    margin-bottom: 26px;
}

.service-records__heading h2 {
    margin-bottom: 0;
    color: var(--navy-deep);
    font-size: clamp(2.45rem, 3.8vw, 3.1rem);
}

.service-records__heading > p:last-child {
    max-width: 760px;
    margin: 0;
    color: var(--muted);
    line-height: 1.7;
}

.service-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin: 0 0 26px;
    padding-bottom: 24px;
    border-bottom: 1px solid rgba(220,228,236,.9);
}

.service-filter button {
    padding: 10px 13px;
    border: 1px solid rgba(15,35,70,.12);
    color: var(--navy-deep);
    background: var(--white);
    cursor: pointer;
    font: inherit;
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.service-filter button.is-active,
.service-filter button:hover {
    color: var(--white);
    background:
        linear-gradient(to top, var(--navy-deep), var(--navy-deep)) bottom / 100% 0 no-repeat,
        var(--button-blue);
    border-color: var(--button-blue);
}

.service-filter button:hover {
    background-size: 100% 100%, auto;
    border-color: var(--navy-deep);
}

.service-result-count {
    margin: -6px 0 20px;
    color: var(--muted);
    font-size: .84rem;
    font-weight: 700;
}

.service-result-count strong {
    color: var(--blue);
}

.service-record {
    position: relative;
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    gap: 22px;
    align-items: start;
    min-height: 245px;
    margin-bottom: 18px;
    padding: 27px;
    border: 1px solid rgba(15,35,70,.1);
    background:
        linear-gradient(135deg, rgba(255,255,255,.98), rgba(247,251,252,.96)),
        radial-gradient(circle at 100% 0%, rgba(33,205,192,.16), transparent 24%);
    box-shadow: 0 18px 46px rgba(15,35,70,.065);
    scroll-margin-top: 28px;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.service-record:hover {
    border-color: rgba(33,205,192,.36);
    box-shadow: 0 24px 58px rgba(15,35,70,.1);
    transform: translateY(-2px);
}

.service-record__number {
    display: inline-grid;
    place-items: center;
    width: 46px;
    height: 46px;
    color: var(--white);
    background: var(--navy-deep);
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: -.02em;
}

.service-record__type {
    margin: 0 0 12px;
    color: var(--blue);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.service-record h3 {
    margin: 0 0 13px;
    color: var(--navy-deep);
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    line-height: 1.18;
}

.service-record__body > p:not(.service-record__type) {
    max-width: 760px;
    margin: 0;
    color: var(--text);
    font-size: .88rem;
    line-height: 1.69;
}

.record-action {
    grid-column: 2;
    justify-self: start;
    align-self: end;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-top: 6px;
    padding: 13px 16px;
    color: var(--white);
    background: var(--blue);
    border: 1px solid var(--blue);
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: .06em;
    line-height: 1.45;
    text-align: start;
    text-decoration: none;
    text-transform: uppercase;
}

.record-action::after {
    content: "→";
}

.record-action:hover {
    color: var(--white);
    background: var(--navy-deep);
    border-color: var(--navy-deep);
}

.service-record[hidden] {
    display: none !important;
}

.service-support {
    padding-top: 30px;
}

.support-layout {
    display: grid;
    grid-template-columns: 1fr 400px;
    gap: 54px;
}

.tutorial-panel {
    padding: 49px 54px 52px;
    background: var(--navy-deep);
    color: var(--white);
}

.tutorial-panel h2 {
    margin-bottom: 17px;
    color: var(--white);
    font-size: 2.36rem;
}

.tutorial-panel > p:not(.meta) {
    max-width: 545px;
    margin: 0 0 34px;
    color: rgba(255,255,255,.7);
    line-height: 1.78;
}

.direct-register {
    padding: 40px 38px;
    background: var(--ice);
}

.direct-register a {
    display: block;
    padding: 17px 0;
    border-bottom: 1px solid var(--line);
    color: var(--navy-deep);
    font-size: .89rem;
    font-weight: 650;
}

.direct-register a:hover {
    color: var(--blue);
}

@media (max-width: 1080px) {
    .page-hero__layout,
    .eservices-layout,
    .support-layout {
        grid-template-columns: 1fr;
    }

    .page-hero__layout {
        gap: 30px;
    }

    .breadcrumbs {
        margin-bottom: 50px;
    }

    .service-sidebar {
        position: relative;
        top: auto;
        padding: 24px;
    }

    .service-sidebar nav {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }

    .service-sidebar nav a {
        padding-inline-start: 10px;
    }

    .help-panel {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
    }

    .help-panel p:not(.meta) {
        margin: 0;
    }

    .help-panel .solid-action {
        width: max-content;
        white-space: nowrap;
    }
}

@media (max-width: 650px) {
    .page-hero {
        padding: 35px 0 53px;
    }

    .breadcrumbs {
        margin-bottom: 38px;
    }

    .page-hero h1 {
        font-size: 3.2rem;
    }

    .page-hero__intro {
        font-size: .92rem;
    }

    .eservices-content {
        padding-top: 48px;
    }

    .eservices-layout {
        display: flex;
        flex-direction: column;
        gap: 38px;
    }

    .service-sidebar {
        display: contents;
    }

    .service-sidebar > .meta {
        order: 0;
        margin-bottom: -17px;
    }

    .service-sidebar nav {
        order: 1;
        grid-template-columns: repeat(2, 1fr);
    }

    .service-sidebar nav a {
        grid-template-columns: 31px 1fr;
        font-size: .78rem;
    }

    .help-panel {
        order: 3;
        display: block;
        margin-top: 0;
    }

    .help-panel p:not(.meta) {
        margin-bottom: 22px;
    }

    .service-record {
        grid-template-columns: 1fr;
        gap: 15px;
        padding: 23px;
    }

    .service-records {
        order: 2;
    }

    .service-record__number {
        padding: 0;
    }

    .record-action {
        grid-column: 1 / -1;
        justify-self: start;
        text-align: start;
    }

    .tutorial-panel,
    .direct-register {
        padding: 33px 25px;
    }

    .tutorial-panel h2 {
        font-size: 1.9rem;
    }
}

/* Interior pages: published plans and PA Tanger Medina */
.utility__links .is-current {
    color: var(--teal);
}

.document-hero h1 {
    max-width: 620px;
    font-size: clamp(2.9rem, 4.65vw, 4.1rem);
    line-height: 1.04;
}

.document-hero h1 span,
.medina-hero h1 span {
    color: var(--blue);
}

.documents-layout {
    display: grid;
    grid-template-columns: 260px 1fr;
    gap: 72px;
    align-items: start;
}

.document-sidebar {
    position: sticky;
    top: 28px;
}

.document-sidebar > .meta {
    margin: 0 0 23px;
}

.document-sidebar nav {
    border-top: 1px solid var(--line);
}

.document-sidebar nav a {
    display: block;
    padding: 17px 0;
    border-bottom: 1px solid var(--line);
    color: var(--navy-deep);
    font-size: .83rem;
    font-weight: 650;
    line-height: 1.4;
}

.document-sidebar nav a:hover,
.document-sidebar nav a.is-current {
    color: var(--blue);
}

.document-sidebar nav a.is-current {
    padding-inline-start: 13px;
    border-inline-start: 3px solid var(--teal);
    background: rgba(33,205,192,.07);
}

.document-content > section[hidden] {
    display: none !important;
}

.compact-heading {
    margin-bottom: 39px;
}

.compact-heading h2 {
    max-width: 795px;
    font-size: clamp(2.2rem, 3.55vw, 2.85rem);
}

.plan-record {
    padding: 31px 0 36px;
    border-top: 1px solid var(--line);
    scroll-margin-top: 28px;
}

.plan-record__title {
    display: grid;
    grid-template-columns: 86px 1fr;
    align-items: baseline;
    gap: 17px;
    margin-bottom: 18px;
}

.plan-record__title span {
    color: var(--teal);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .15em;
}

.plan-record__title h3 {
    color: var(--navy-deep);
    font-size: 1.65rem;
}

.plan-record > p {
    margin: 0 0 25px;
    margin-inline-start: 103px;
    color: var(--text);
    font-size: .89rem;
    line-height: 1.76;
}

.file-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-inline-start: 103px;
}

.file-actions a {
    padding: 12px 16px;
    border: 1px solid var(--line);
    color: var(--navy);
    font-size: .77rem;
    font-weight: 700;
}

.file-actions .file-primary {
    border-color: var(--teal);
    background: var(--teal);
    color: var(--navy-deep);
}

.file-actions a:hover {
    border-color: var(--blue);
}

.registry-section {
    margin-top: 82px;
}

.document-table,
.status-table {
    border-top: 1px solid var(--line);
}

.document-table > div,
.status-table > div {
    display: grid;
    grid-template-columns: 1fr 158px;
    align-items: center;
    gap: 28px;
    min-height: 63px;
    padding: 16px 0;
    border-bottom: 1px solid var(--line);
}

.document-table__head,
.status-table__head {
    min-height: 49px !important;
    color: var(--blue);
    font-size: .67rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.document-table p {
    margin: 0;
    color: var(--navy-deep);
    font-size: .87rem;
    line-height: 1.55;
}

.document-table a {
    justify-self: end;
    color: var(--blue);
    border-bottom: 1px solid var(--teal);
    font-size: .79rem;
    font-weight: 700;
}

.territory-heading {
    margin: 45px 0 19px;
    color: var(--navy-deep);
    font-size: 1.35rem;
}

.status-table > div {
    grid-template-columns: 1fr 245px;
}

.status-table > div:not(.status-table__head) span {
    color: var(--navy-deep);
    font-size: .86rem;
}

.status-table strong {
    color: var(--blue);
    font-size: .78rem;
}

.official-note {
    margin: 42px 0 0;
    padding: 22px 26px;
    border-inline-start: 3px solid var(--teal);
    background: var(--ice);
    color: var(--text);
    font-size: .84rem;
    font-style: italic;
    line-height: 1.7;
}

.medina-hero h1 {
    font-size: clamp(4rem, 6vw, 5.1rem);
}

.medina-layout {
    display: grid;
    grid-template-columns: 1fr 340px;
    gap: 70px;
    align-items: start;
}

.notice-card {
    padding: 50px 57px 55px;
    border: 1px solid var(--line);
}

.notice-card h2 {
    margin: 21px 0 35px;
    color: var(--navy-deep);
    font-size: clamp(2.5rem, 3.8vw, 3.25rem);
    line-height: 1.12;
}

.closed-status {
    display: grid;
    grid-template-columns: 100px 1fr;
    gap: 8px 23px;
    align-items: center;
    margin-bottom: 35px;
    padding: 28px 29px;
    border-inline-start: 3px solid var(--teal);
    background: var(--ice);
}

.closed-status span {
    grid-row: 1 / 3;
    color: var(--blue);
    font-size: .67rem;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.closed-status strong {
    color: var(--navy-deep);
    font-family: var(--font-display);
    font-size: 1.55rem;
}

.closed-status small {
    color: var(--muted);
}

.notice-card > p:not(.meta) {
    margin: 0 0 23px;
    color: var(--text);
    line-height: 1.8;
}

.notice-card > .solid-action {
    margin-top: 18px;
}

.medina-sidebar .help-panel {
    margin-top: 26px;
}

@media (max-width: 1080px) {
    .documents-layout,
    .medina-layout {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .document-sidebar {
        position: relative;
        top: auto;
    }

    .document-sidebar nav {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
    }

    .document-sidebar nav a {
        padding-inline-end: 13px;
    }

    .document-sidebar .help-panel {
        display: none;
    }

    .medina-sidebar {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 20px;
    }

    .medina-sidebar .help-panel {
        margin: 0;
    }
}

@media (max-width: 650px) {
    .document-hero h1 {
        font-size: 2.55rem;
    }

    .documents {
        padding-top: 56px;
    }

    .documents-layout {
        gap: 39px;
    }

    .document-sidebar nav {
        grid-template-columns: repeat(2, 1fr);
    }

    .plan-record__title {
        display: block;
    }

    .plan-record__title span {
        display: block;
        margin-bottom: 14px;
    }

    .plan-record__title h3 {
        font-size: 1.43rem;
    }

    .plan-record > p,
    .file-actions {
        margin-inline-start: 0;
    }

    .file-actions a {
        width: 100%;
    }

    .registry-section {
        margin-top: 62px;
    }

    .document-table > div,
    .status-table > div {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 18px 0;
    }

    .document-table__head,
    .status-table__head {
        display: none !important;
    }

    .document-table a {
        justify-self: start;
    }

    .medina-hero h1 {
        font-size: 3.2rem;
    }

    .medina-content {
        padding-top: 55px;
    }

    .notice-card {
        padding: 33px 25px 37px;
    }

    .notice-card h2 {
        font-size: 2rem;
    }

    .closed-status {
        grid-template-columns: 1fr;
        padding: 22px;
    }

    .closed-status span {
        grid-row: auto;
    }

    .notice-card .solid-action {
        text-align: center;
    }

    .medina-sidebar {
        grid-template-columns: 1fr;
    }
}

/* Standalone inner pages carried from the official content register. */
.inside-page .primary-nav .is-current {
    color: var(--blue);
}

.inside-page .primary-nav__contact.is-current {
    color: var(--white);
    background: var(--navy-deep);
}

.inside-page .subpage-header {
    position: relative;
    overflow: hidden;
    padding: 68px 0 72px;
    color: var(--white);
    background: var(--navy-deep);
}

.inside-page .subpage-header::before {
    position: absolute;
    inset: 0;
    content: "";
    background:
        radial-gradient(circle at 81% 23%, rgba(33,205,192,.21), transparent 24%),
        linear-gradient(110deg, transparent 54%, rgba(255,255,255,.055) 54%, transparent 55%),
        linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
    background-size: auto, auto, 72px 72px;
}

.inside-page .container {
    position: relative;
    width: var(--shell);
    margin: 0 auto;
}

.inside-page .subpage-header .breadcrumbs {
    display: flex;
    gap: 11px;
    align-items: center;
    margin: 0 0 27px;
    padding: 0;
    list-style: none;
    color: rgba(255,255,255,.67);
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.inside-page .subpage-header .breadcrumbs li + li::before {
    margin-inline-end: 11px;
    color: var(--teal);
    content: "/";
}

.inside-page .subpage-header .breadcrumbs a {
    color: var(--white);
}

.inside-page .subpage-title {
    max-width: 920px;
    margin: 0;
    font-family: var(--font-display);
    font-size: clamp(2.8rem, 5.2vw, 4.45rem);
    line-height: 1.04;
    letter-spacing: -.065em;
}

.inside-page .page-content-wrap {
    padding: 66px 0 96px;
}

.inside-page .layout-with-sidebar {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 304px;
    gap: clamp(40px, 6vw, 78px);
    align-items: start;
}

.inside-page .rich-text {
    min-width: 0;
    color: var(--text);
    font-size: .98rem;
    line-height: 1.85;
}

.inside-page .rich-text h2 {
    margin: 0 0 23px !important;
    color: var(--navy-deep) !important;
    font-family: var(--font-display) !important;
    font-size: clamp(2rem, 3.2vw, 2.48rem) !important;
    font-weight: 700 !important;
    line-height: 1.18;
    letter-spacing: -.045em;
}

.inside-page .rich-text h2:not(:first-child) {
    margin-top: 58px !important;
    padding-top: 37px;
    border-top: 1px solid var(--line);
}

.inside-page .rich-text h3 {
    margin: 39px 0 13px !important;
    color: var(--navy-deep);
    font-family: var(--font-display);
    font-size: 1.4rem;
    line-height: 1.3;
}

.inside-page .rich-text h4 {
    color: var(--navy-deep) !important;
    font-family: var(--font-display);
}

.inside-page .rich-text p {
    margin: 0 0 19px;
}

.inside-page .rich-text a:not(.btn) {
    color: var(--blue);
    text-decoration: underline;
    text-decoration-color: rgba(56,81,162,.28);
    text-underline-offset: 3px;
}

.inside-page .rich-text ul,
.inside-page .rich-text ol {
    display: grid !important;
    gap: 10px !important;
    margin: 20px 0 29px !important;
    padding-inline-start: 22px !important;
}

.inside-page .rich-text [hidden] {
    display: none !important;
}

.inside-page .rich-text li::marker {
    color: var(--teal);
}

.inside-page .section-header {
    margin-bottom: 27px !important;
}

.inside-page .section-badge {
    display: inline-block;
    margin-bottom: 15px;
    color: var(--blue);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.inside-page .section-title {
    margin-bottom: 13px !important;
}

.inside-page .section-subtitle {
    color: var(--muted);
    font-size: 1.04rem;
}

.inside-page .welcome-quote {
    margin: 35px 0 !important;
    padding: 28px 30px !important;
    border: 0 !important;
    border-inline-start: 3px solid var(--teal) !important;
    color: var(--navy-deep);
    background: var(--ice);
    font-family: var(--font-display);
    font-size: 1.18rem !important;
    font-style: normal !important;
    line-height: 1.65;
}

.inside-page .btn {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    justify-content: center;
    padding: 14px 19px;
    color: var(--white) !important;
    background: var(--blue);
    border: 1px solid var(--blue);
    border-radius: 2px;
    font-size: .79rem;
    font-weight: 800;
    letter-spacing: .045em;
    text-decoration: none !important;
    text-transform: uppercase;
    transition: background .2s ease, border-color .2s ease;
}

.inside-page .btn:hover {
    background: var(--navy-deep);
    border-color: var(--navy-deep);
}

.inside-page .btn-outline {
    color: var(--navy-deep) !important;
    background: transparent;
    border-color: var(--line);
}

.inside-page .btn-outline:hover {
    color: var(--white) !important;
}

.inside-page .btn-secondary {
    color: var(--white) !important;
    background: var(--button-blue);
    border-color: var(--button-blue);
}

.primary-nav__contact,
.solid-action,
.quick-access .action,
.inside-page .btn:not(.btn-outline),
.article-link {
    color: var(--white) !important;
    border-color: var(--button-blue);
    background:
        linear-gradient(to top, var(--navy-deep), var(--navy-deep)) bottom / 100% 0 no-repeat,
        var(--button-blue);
    transition: background-size .32s cubic-bezier(.22, 1, .36, 1), border-color .32s cubic-bezier(.22, 1, .36, 1), color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.primary-nav__contact:hover,
.solid-action:hover,
.quick-access .action:hover,
.inside-page .btn:not(.btn-outline):hover,
.article-link:hover {
    color: var(--white) !important;
    border-color: var(--navy-deep);
    background-size: 100% 100%, auto;
}

.inside-page .rich-text table {
    width: 100%;
    margin: 27px 0 36px;
    border-collapse: collapse;
    border-top: 2px solid var(--navy-deep);
    font-size: .86rem;
    line-height: 1.58;
}

.inside-page .rich-text th {
    padding: 15px 13px;
    color: var(--navy-deep);
    background: var(--ice);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-align: start;
    text-transform: uppercase;
}

.inside-page .rich-text td {
    padding: 15px 13px;
    border-bottom: 1px solid var(--line);
    vertical-align: top;
}

.inside-page .rich-text td[colspan] {
    padding: 27px 17px !important;
}

.inside-page--media .news-desk {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    align-items: start;
    margin: 32px 0 34px;
}

.inside-page--media .news-featured {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.inside-page--media .news-card {
    display: grid;
    grid-template-columns: 1fr;
    min-height: 100%;
    border: 1px solid rgba(15,35,70,.1);
    background: var(--white);
    box-shadow: 0 18px 42px rgba(15,35,70,.055);
    overflow: hidden;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.inside-page--media .news-card.is-active,
.inside-page--media .news-card:hover {
    border-color: rgba(33,205,192,.44);
    box-shadow: 0 24px 58px rgba(15,35,70,.1);
    transform: translateY(-2px);
}

.inside-page--media .news-visual {
    position: relative;
    min-height: 158px;
    background:
        linear-gradient(135deg, rgba(16,29,56,.9), rgba(56,81,162,.72)),
        repeating-linear-gradient(135deg, rgba(255,255,255,.13) 0 1px, transparent 1px 16px);
    overflow: hidden;
}

.inside-page--media .news-visual::before {
    position: absolute;
    inset: 18px;
    border: 1px solid rgba(255,255,255,.22);
    content: "";
}

.inside-page--media .news-visual::after {
    position: absolute;
    width: 116px;
    height: 116px;
    inset-inline-end: -28px;
    bottom: -24px;
    border-radius: 999px;
    background: rgba(33,205,192,.35);
    content: "";
}

.inside-page--media .news-visual--partnership {
    background:
        linear-gradient(135deg, rgba(14,102,117,.9), rgba(33,205,192,.62)),
        repeating-linear-gradient(135deg, rgba(255,255,255,.15) 0 1px, transparent 1px 16px);
}

.inside-page--media .news-visual--digital {
    background:
        linear-gradient(135deg, rgba(31,45,91,.94), rgba(2,136,209,.62)),
        radial-gradient(circle at 70% 24%, rgba(255,255,255,.22), transparent 27%);
}

.inside-page--media .news-visual span {
    position: absolute;
    inset-inline-start: 22px;
    bottom: 21px;
    z-index: 1;
    color: var(--white);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.inside-page--media .news-card__body {
    padding: 20px;
}

.inside-page--media .news-meta,
.inside-page--media .article-kicker {
    display: inline-block;
    color: var(--blue);
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.inside-page--media .news-card h3 {
    margin: 10px 0 10px !important;
    font-size: 1rem;
    line-height: 1.32;
}

.inside-page--media .news-card p {
    margin-bottom: 18px;
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.65;
}

.inside-page--media .news-read {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 0;
    border: 0;
    color: var(--navy-deep);
    background: transparent;
    cursor: pointer;
    font: inherit;
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.inside-page--media .news-read::after {
    color: var(--teal);
    content: "→";
    transition: transform .2s ease;
}

.inside-page--media .news-read:hover::after,
.inside-page--media .news-card.is-active .news-read::after {
    transform: translateX(4px);
}

.inside-page--media .article-reader {
    position: fixed;
    inset-block: 0;
    inset-inline-start: 0;
    z-index: 1001;
    width: 75vw;
    max-width: 1080px;
    min-width: min(760px, 75vw);
    border: 1px solid rgba(15,35,70,.11);
    background: var(--white);
    box-shadow: 0 28px 76px rgba(15,35,70,.12);
    overflow: hidden;
    transform: translateX(-104%);
    transition: transform .34s cubic-bezier(.22, 1, .36, 1);
}

.inside-page--media .article-reader.is-open {
    transform: translateX(0);
}

.inside-page--media .article-reader-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1000;
    background: rgba(7,16,36,.5);
    backdrop-filter: blur(4px);
}

.inside-page--media .article-reader-backdrop[hidden] {
    display: none !important;
}

.inside-page--media .article-reader__chrome {
    display: flex;
    justify-content: flex-end;
    gap: 18px;
    align-items: center;
    padding: 16px 18px;
    color: var(--white);
    background:
        radial-gradient(circle at 90% 16%, rgba(33,205,192,.38), transparent 30%),
        var(--navy-deep);
}

.inside-page--media .article-reader__chrome > div {
    display: grid;
    gap: 4px;
}

.inside-page--media .article-reader__chrome span {
    color: var(--teal);
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.inside-page--media .article-reader__chrome strong {
    font-size: .83rem;
    font-weight: 800;
}

.inside-page--media .article-reader__close {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(255,255,255,.28);
    color: var(--white);
    background: rgba(255,255,255,.08);
    cursor: pointer;
    font-size: 1.55rem;
    line-height: 1;
}

.inside-page--media .article-panel {
    width: 100%;
    box-sizing: border-box;
    padding: clamp(24px, 3vw, 32px);
    max-height: calc(100vh - 74px);
    overflow: auto;
}

.inside-page--media .article-panel.is-active {
    display: block;
    max-width: none;
}

.inside-page--media .article-panel p,
.inside-page--media .article-panel ul {
    max-width: none;
}

.article-reader .article-panel {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}

.article-reader .article-panel p,
.article-reader .article-panel ul {
    max-width: none;
}

.inside-page--media .article-panel[hidden] {
    display: none !important;
}

.inside-page--media .article-panel h3 {
    margin: 11px 0 7px !important;
    font-size: clamp(1.55rem, 2.4vw, 2.05rem);
    line-height: 1.2;
}

.inside-page--media .article-date {
    color: var(--muted);
    font-size: .84rem;
    font-weight: 750;
}

.inside-page--media .article-panel h4 {
    margin: 26px 0 10px !important;
    color: var(--navy-deep);
    font-size: 1.08rem;
    line-height: 1.35;
}

.inside-page--media .article-panel ul {
    margin: 22px 0 !important;
    padding: 0 !important;
    list-style: none;
}

.inside-page--media .article-panel li {
    position: relative;
    padding: 12px 0 12px 24px;
    border-top: 1px solid rgba(220,228,236,.9);
}

.inside-page--media .article-panel li::before {
    position: absolute;
    inset-inline-start: 0;
    top: 18px;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: var(--teal);
    content: "";
}

.inside-page--media .article-link {
    display: inline-flex;
    gap: 9px;
    align-items: center;
    margin-top: 6px;
    padding: 13px 16px;
    color: var(--white) !important;
    background:
        linear-gradient(to top, var(--navy-deep), var(--navy-deep)) bottom / 100% 0 no-repeat,
        var(--button-blue);
    font-size: .78rem;
    font-weight: 850;
    letter-spacing: .07em;
    text-decoration: none !important;
    text-transform: uppercase;
    transition: background-size .32s cubic-bezier(.22, 1, .36, 1), border-color .32s cubic-bezier(.22, 1, .36, 1), transform .2s ease;
}

.inside-page--media .article-link:hover {
    background-size: 100% 100%, auto;
}

.inside-page--media .news-official {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 22px;
    align-items: center;
    margin-top: 34px;
    padding: 25px;
    border: 1px solid rgba(33,205,192,.2);
    background: linear-gradient(135deg, rgba(33,205,192,.08), rgba(255,255,255,.96));
}

.inside-page--media .news-official h3 {
    margin-top: 0 !important;
}

.inside-page--media .news-official p {
    margin-bottom: 0;
}

.inside-page--media .news-official__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
}

.inside-page--presentation .presentation-panel {
    position: relative;
    margin-top: 6px;
    padding: clamp(24px, 3.5vw, 36px);
    border: 1px solid rgba(15,35,70,.1);
    background: linear-gradient(135deg, rgba(255,255,255,.97), rgba(247,251,252,.96));
    box-shadow: 0 24px 64px rgba(15,35,70,.07);
}

.inside-page--presentation .presentation-panel::before {
    position: absolute;
    inset-block: 0;
    inset-inline-start: 0;
    width: 4px;
    content: "";
    background: linear-gradient(180deg, var(--teal), var(--blue));
}

.inside-page--presentation .director-kicker {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 26px;
}

.inside-page--presentation .director-kicker span,
.inside-page--presentation .definition-lead p:first-child::before {
    color: var(--blue);
    font-size: .7rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.inside-page--presentation .director-kicker span {
    padding: 9px 12px;
    border: 1px solid rgba(56,81,162,.16);
    background: rgba(255,255,255,.78);
}

.inside-page--presentation .director-intro {
    display: grid;
    grid-template-columns: minmax(190px, 260px) minmax(0, 1fr);
    gap: clamp(20px, 3vw, 30px);
    align-items: stretch;
    margin-bottom: 28px;
}

.inside-page--presentation .director-portrait {
    border: 1px solid rgba(15,35,70,.12);
    background: var(--white);
    box-shadow: 0 18px 44px rgba(15,35,70,.1);
}

.inside-page--presentation .director-portrait img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center top;
}

.inside-page--presentation .director-portrait div {
    padding: 16px 17px;
    border-top: 3px solid var(--teal);
}

.inside-page--presentation .director-portrait strong,
.inside-page--presentation .director-portrait span {
    display: block;
}

.inside-page--presentation .director-portrait strong {
    color: var(--navy-deep);
    font-family: var(--font-display);
    font-size: 1rem;
    line-height: 1.25;
}

.inside-page--presentation .director-portrait span {
    margin-top: 5px;
    color: var(--muted);
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.45;
}

.inside-page--presentation .director-intro-card {
    display: grid;
    align-content: center;
    padding: clamp(22px, 3vw, 32px);
    color: var(--white);
    background:
        radial-gradient(circle at 88% 12%, rgba(33,205,192,.38), transparent 30%),
        linear-gradient(135deg, var(--navy-deep), #2f477f);
}

.inside-page--presentation .director-intro-card span {
    color: var(--teal);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.inside-page--presentation .director-intro-card p {
    max-width: 58ch;
    margin: 13px 0 0;
    color: rgba(255,255,255,.82);
    font-family: var(--font-display);
    font-size: clamp(1.2rem, 2.1vw, 1.65rem);
    line-height: 1.55;
}

.inside-page--presentation .director-letter {
    columns: 1;
}

.inside-page--presentation .director-letter p:first-child::first-letter {
    float: inline-start;
    margin: 8px 12px 0 0;
    color: var(--blue);
    font-family: var(--font-display);
    font-size: 4.6rem;
    font-weight: 800;
    line-height: .8;
}

.inside-page--presentation .director-signature {
    display: grid;
    gap: 4px;
    margin: 30px 0 0 !important;
    padding: 20px 22px !important;
    border: 0 !important;
    border-inline-start: 3px solid var(--teal) !important;
    background: var(--white);
}

.inside-page--presentation .director-signature span:first-child {
    color: var(--navy-deep);
    font-family: var(--font-display);
    font-size: 1.15rem;
    font-weight: 800;
}

.inside-page--presentation .director-signature span:last-child {
    color: var(--muted);
    font-size: .9rem;
}

.inside-page--presentation .definition-lead {
    display: grid;
    gap: 14px;
    margin-bottom: 28px;
}

.inside-page--presentation .definition-lead p {
    margin: 0 !important;
    padding: 19px 20px;
    border: 1px solid rgba(220,228,236,.9);
    background: rgba(255,255,255,.82);
}

.inside-page--presentation .definition-lead p:first-child::before {
    display: block;
    margin-bottom: 8px;
    content: "Statut";
}

.inside-page--presentation .reference-list,
.inside-page--presentation .mission-pillars,
.inside-page--presentation .legal-missions,
.inside-page--presentation .compass-list,
.inside-page--presentation .federation-links {
    list-style: none !important;
    padding: 0 !important;
}

.inside-page--presentation .reference-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px !important;
}

.inside-page--presentation .reference-list li,
.inside-page--presentation .federation-links li {
    min-height: 100%;
}

.inside-page--presentation .reference-list a,
.inside-page--presentation .federation-links a {
    display: block;
    height: 100%;
    padding: 17px 18px;
    border: 1px solid rgba(15,35,70,.1);
    color: var(--navy-deep) !important;
    background: var(--white);
    font-weight: 750;
    line-height: 1.5;
    text-decoration: none !important;
}

.inside-page--presentation .reference-list a::before,
.inside-page--presentation .federation-links a::before {
    display: block;
    margin-bottom: 10px;
    color: var(--teal);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .12em;
    content: "PDF";
}

.inside-page--presentation .mission-pillars {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px !important;
    margin-bottom: 30px !important;
}

.inside-page--presentation .mission-pillars li {
    min-height: 132px;
    padding: 20px 18px;
    border: 1px solid rgba(56,81,162,.12);
    color: var(--navy-deep);
    background: var(--white);
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 800;
    line-height: 1.35;
}

.inside-page--presentation .mission-pillars li::before {
    display: block;
    width: 34px;
    height: 3px;
    margin-bottom: 18px;
    content: "";
    background: var(--teal);
}

.inside-page--presentation .legal-missions {
    counter-reset: legal-mission;
    gap: 0 !important;
}

.inside-page--presentation .legal-missions li {
    counter-increment: legal-mission;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 14px;
    padding: 16px 0;
    border-top: 1px solid rgba(220,228,236,.92);
}

.inside-page--presentation .legal-missions li::before {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    color: var(--white);
    background: var(--navy-deep);
    border-radius: 999px;
    font-size: .74rem;
    font-weight: 850;
    content: counter(legal-mission, decimal-leading-zero);
}

.inside-page--presentation .compass-list {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px !important;
}

.inside-page--presentation .compass-list li {
    padding: 15px;
    border: 1px solid rgba(33,205,192,.24);
    color: var(--navy-deep);
    background: rgba(33,205,192,.075);
    font-weight: 750;
}

.inside-page--presentation .admin-split,
.inside-page--presentation .territory-assets,
.inside-page--presentation .hr-lead {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.inside-page--presentation .admin-split > div,
.inside-page--presentation .territory-assets > div {
    padding: 21px;
    border: 1px solid rgba(15,35,70,.1);
    background: var(--white);
}

.inside-page--presentation .admin-split ul,
.inside-page--presentation .territory-assets ul {
    margin-bottom: 0 !important;
}

.inside-page--presentation .territory-stats {
    overflow: hidden;
    border-top: 0 !important;
    box-shadow: 0 16px 42px rgba(15,35,70,.06);
}

.inside-page--presentation .territory-stats td:first-child,
.inside-page--presentation .hr-table td:first-child,
.inside-page--presentation .history-table td:first-child {
    color: var(--navy-deep);
    font-weight: 800;
}

.inside-page--presentation .hr-lead {
    align-items: stretch;
    margin-bottom: 24px;
}

.inside-page--presentation .hr-stat {
    display: grid;
    place-items: center;
    padding: 22px;
    color: var(--white);
    background:
        radial-gradient(circle at 82% 16%, rgba(33,205,192,.42), transparent 32%),
        var(--navy-deep);
}

.inside-page--presentation .hr-stat strong {
    font-family: var(--font-display);
    font-size: clamp(3.1rem, 7vw, 5.4rem);
    line-height: .9;
    letter-spacing: -.07em;
}

.inside-page--presentation .hr-stat span {
    margin-top: 8px;
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.inside-page--presentation .hr-table,
.inside-page--presentation .history-table {
    border-top: 0 !important;
}

.inside-page--presentation .history-table tr td:first-child {
    width: 116px;
    color: var(--blue);
    font-family: var(--font-display);
    font-size: 1.22rem;
}

.inside-page--presentation .federation-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px !important;
}

.inside-page--presentation .orientations-panel > p {
    padding: 19px 20px;
    border: 1px solid rgba(33,205,192,.22);
    background: rgba(33,205,192,.07);
    color: var(--navy-deep);
    font-weight: 650;
}

.inside-page--presentation .orientations-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.inside-page--presentation .orientations-grid .timeline-item {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 14px;
    padding: 17px;
    border: 1px solid rgba(15,35,70,.1);
    background: var(--white);
}

.inside-page--presentation .orientations-grid .timeline-number {
    display: inline-grid;
    place-items: center;
    width: 38px;
    height: 38px;
    color: var(--blue);
    background: rgba(56,81,162,.09);
    border-radius: 999px;
    font-size: .73rem;
    font-weight: 850;
}

.inside-page--presentation .orientations-grid p {
    margin: 0;
    font-size: .88rem;
    line-height: 1.65;
}

.inside-page--presentation .values-dossier {
    position: relative;
    isolation: isolate;
    margin-top: 8px;
    padding: clamp(22px, 3.5vw, 34px);
    border: 1px solid rgba(56,81,162,.14);
    background:
        linear-gradient(135deg, rgba(255,255,255,.95), rgba(245,249,252,.98)),
        radial-gradient(circle at 100% 0%, rgba(33,205,192,.16), transparent 29%);
    box-shadow: 0 24px 70px rgba(15,35,70,.08);
}

.inside-page--presentation .values-dossier::before {
    position: absolute;
    inset-block: 0;
    inset-inline-start: 0;
    width: 5px;
    content: "";
    background: linear-gradient(180deg, var(--teal), var(--blue));
}

.inside-page--presentation .values-lead {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 190px;
    gap: clamp(20px, 4vw, 34px);
    align-items: start;
    margin-bottom: 26px;
}

.inside-page--presentation .values-lead h3 {
    margin-top: 0 !important;
    font-size: clamp(1.55rem, 2.4vw, 2.05rem);
}

.inside-page--presentation .values-lead p {
    max-width: 760px;
    color: var(--muted);
}

.inside-page--presentation .values-summary {
    display: grid;
    gap: 10px;
}

.inside-page--presentation .values-summary span {
    display: block;
    padding: 13px 14px;
    border: 1px solid rgba(15,35,70,.1);
    color: var(--navy-deep);
    background: rgba(255,255,255,.78);
    font-size: .76rem;
    font-weight: 850;
    letter-spacing: .08em;
    line-height: 1.25;
    text-transform: uppercase;
}

.inside-page--presentation .values-summary strong {
    display: block;
    margin-bottom: 3px;
    color: var(--blue);
    font-family: var(--font-display);
    font-size: 1.9rem;
    line-height: 1;
    letter-spacing: -.05em;
}

.inside-page--presentation .values-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 15px;
    margin: 0 !important;
}

.inside-page--presentation .values-grid .timeline-item {
    position: relative;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 15px;
    align-items: start;
    min-height: 100%;
    padding: 20px;
    border: 1px solid rgba(15,35,70,.1);
    background: rgba(255,255,255,.9);
    box-shadow: 0 14px 38px rgba(15,35,70,.055);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.inside-page--presentation .values-grid .timeline-item:hover {
    border-color: rgba(33,205,192,.42);
    box-shadow: 0 18px 48px rgba(15,35,70,.09);
    transform: translateY(-2px);
}

.inside-page--presentation .values-grid .timeline-number {
    display: inline-grid;
    place-items: center;
    width: 43px;
    height: 43px;
    color: var(--white);
    background: var(--navy-deep);
    border-radius: 999px;
    font-family: var(--font-display);
    font-size: .9rem;
    font-weight: 800;
    letter-spacing: -.03em;
}

.inside-page--presentation .values-grid .timeline-content h4 {
    margin: 0 0 9px !important;
    font-size: 1.02rem;
    line-height: 1.32;
}

.inside-page--presentation .values-grid .timeline-content p {
    margin: 0;
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.7;
}

.inside-page--presentation .values-source {
    margin: 24px 0 0 !important;
    padding: 16px 18px;
    border-inline-start: 3px solid var(--teal);
    color: var(--navy-deep);
    background: rgba(33,205,192,.08);
    font-size: .88rem;
    line-height: 1.65;
}

.inside-page .sidebar-widgets {
    position: sticky;
    top: 104px;
    display: grid;
    gap: 20px;
}

.inside-page .sidebar-widget {
    padding: 26px 24px;
    border: 1px solid var(--line);
    background: var(--white);
}

.inside-page .sidebar-widget:first-child {
    border-top: 3px solid var(--teal);
}

.inside-page .widget-title {
    margin: 0 0 18px;
    color: var(--navy-deep);
    font-family: var(--font-display);
    font-size: 1.16rem;
}

.inside-page .widget-links {
    display: grid;
    gap: 0;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

.inside-page .widget-links li {
    border-top: 1px solid var(--line);
}

.inside-page .widget-links li:first-child {
    border-top: 0;
}

.inside-page .widget-links a {
    display: flex;
    justify-content: space-between;
    padding: 13px 0;
    color: var(--text) !important;
    font-size: .86rem;
    font-weight: 600;
    text-decoration: none !important;
}

.inside-page .widget-links a.active {
    color: var(--blue) !important;
}

.inside-page .sidebar-widget p {
    margin: 0 0 17px;
    color: var(--muted);
    font-size: .88rem !important;
    line-height: 1.65;
}

.inside-page .sidebar-widget .btn {
    width: 100% !important;
}

.inside-page .download-item {
    padding: 13px 0;
    border-top: 1px solid var(--line);
}

.inside-page .download-item:first-of-type {
    border-top: 0;
}

.inside-page .download-title {
    color: var(--text) !important;
    font-size: .84rem;
    font-weight: 650;
    line-height: 1.48;
    text-decoration: none !important;
}

.inside-page .download-size {
    display: block;
    margin-top: 5px;
    color: var(--blue);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.inside-page .services-grid > div {
    background: var(--ice) !important;
    border-radius: 0 !important;
}

.inside-page .services-grid i {
    color: var(--teal) !important;
}

.inside-page--metier .subpage-header {
    background:
        radial-gradient(circle at 82% 16%, rgba(33,205,192,.22), transparent 26%),
        radial-gradient(circle at 14% 72%, rgba(255,184,75,.16), transparent 26%),
        linear-gradient(135deg, #101d38 0%, #243b6d 58%, #0f746f 100%);
}

.inside-page--metier .metier-content {
    display: grid;
    gap: 32px;
}

.inside-page--metier .metier-lead {
    position: relative;
    overflow: hidden;
    padding: clamp(28px, 4vw, 42px);
    border: 1px solid rgba(33,205,192,.2);
    background:
        linear-gradient(135deg, rgba(255,255,255,.96), rgba(244,249,251,.96)),
        radial-gradient(circle at 100% 0%, rgba(33,205,192,.2), transparent 34%);
    box-shadow: 0 22px 55px rgba(17,31,62,.09);
}

.inside-page--metier .metier-lead::after {
    content: "";
    position: absolute;
    inset-block: 24px;
    inset-inline-end: 0;
    width: 5px;
    background: linear-gradient(180deg, var(--teal), var(--gold));
}

.inside-page--metier .metier-lead h2 {
    max-width: 760px;
    margin: 12px 0 18px !important;
    padding-top: 0 !important;
    border-top: 0 !important;
    color: var(--navy-deep);
    font-family: var(--font-display) !important;
    font-size: clamp(2rem, 3vw, 3.15rem) !important;
    line-height: .98;
    letter-spacing: -.055em;
}

.inside-page--metier .rich-text .metier-lead h2:not(:first-child) {
    margin-top: 12px !important;
}

.inside-page--metier .metier-lead p {
    max-width: 790px;
    color: var(--text);
    font-size: 1.02rem;
    line-height: 1.85;
}

.inside-page--metier .metier-quote {
    position: relative;
    margin: 0;
    padding: 28px clamp(24px, 4vw, 42px);
    border: 0;
    border-inline-start: 4px solid var(--gold);
    background: var(--navy-deep);
    color: var(--white);
    box-shadow: 0 18px 45px rgba(17,31,62,.16);
}

.inside-page--metier .metier-quote::before {
    content: "\201C";
    position: absolute;
    inset-block-start: -12px;
    inset-inline-end: 24px;
    color: rgba(255,255,255,.12);
    font-family: Georgia, serif;
    font-size: 7rem;
    line-height: 1;
}

.inside-page--metier .metier-quote p {
    position: relative;
    max-width: 820px;
    margin: 0;
    color: var(--white);
    font-family: var(--font-display);
    font-size: clamp(1.35rem, 2.2vw, 1.85rem);
    font-style: italic;
    line-height: 1.5;
    letter-spacing: -.025em;
}

.inside-page--metier .metier-section {
    display: grid;
    gap: 20px;
}

.inside-page--metier .metier-section__head {
    display: flex;
    align-items: center;
    gap: 14px;
}

.inside-page--metier .metier-section__head span {
    display: inline-grid;
    place-items: center;
    min-width: 42px;
    height: 30px;
    padding: 0 12px;
    background: rgba(33,205,192,.12);
    color: var(--teal-dark);
    font-size: .75rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.inside-page--metier .metier-section__head h3 {
    margin: 0 !important;
    color: var(--navy-deep);
    font-family: var(--font-display);
    font-size: clamp(1.55rem, 2vw, 2.15rem);
    letter-spacing: -.04em;
}

.inside-page--metier .metier-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.inside-page--metier .metier-card-list {
    display: grid;
    gap: 16px;
}

.inside-page--metier .metier-card {
    position: relative;
    overflow: hidden;
    min-height: 100%;
    padding: 26px;
    border: 1px solid rgba(96,133,191,.22);
    background:
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,251,253,.98)),
        radial-gradient(circle at 92% 8%, rgba(33,205,192,.16), transparent 30%);
    box-shadow: 0 16px 38px rgba(17,31,62,.07);
    transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease;
}

.inside-page--metier .metier-card::before {
    content: "";
    position: absolute;
    inset-block: 0;
    inset-inline-start: 0;
    width: 4px;
    background: linear-gradient(180deg, var(--teal), var(--blue));
}

.inside-page--metier .metier-card:hover {
    transform: translateY(-4px);
    border-color: rgba(33,205,192,.45);
    box-shadow: 0 24px 55px rgba(17,31,62,.12);
}

.inside-page--metier .metier-card__icon,
.inside-page--metier .metier-callout__icon {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    width: 54px;
    height: 54px;
    margin-bottom: 18px;
    background: rgba(33,205,192,.13);
    color: var(--teal-dark);
    font-size: 1.35rem;
}

.inside-page--metier .metier-card h4,
.inside-page--metier .metier-callout h4 {
    margin: 0 0 10px;
    color: var(--navy-deep);
    font-family: var(--font-display);
    font-size: 1.16rem;
    letter-spacing: -.025em;
}

.inside-page--metier .metier-card p,
.inside-page--metier .metier-callout p,
.inside-page--metier .metier-missions p {
    margin: 0;
    color: var(--muted);
    font-size: .94rem;
    line-height: 1.72;
}

.inside-page--metier .metier-card--horizontal {
    display: flex;
    align-items: flex-start;
    gap: 20px;
}

.inside-page--metier .metier-card--horizontal .metier-card__icon {
    margin-bottom: 0;
}

.inside-page--metier .metier-process {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
    counter-reset: metier-step;
}

.inside-page--metier .metier-process li {
    counter-increment: metier-step;
    padding: 18px;
    border: 1px solid var(--line);
    background: var(--white);
    color: var(--text);
    font-size: .84rem;
    font-weight: 650;
    line-height: 1.55;
    box-shadow: 0 12px 28px rgba(17,31,62,.06);
}

.inside-page--metier .metier-process li::before {
    content: counter(metier-step, decimal-leading-zero);
    display: block;
    margin-bottom: 14px;
    color: var(--teal-dark);
    font-family: var(--font-display);
    font-size: 1.4rem;
    font-weight: 900;
    letter-spacing: -.04em;
}

.inside-page--metier .metier-missions {
    display: grid;
    gap: 14px;
}

.inside-page--metier .metier-missions article {
    padding: 20px 22px;
    border: 1px solid rgba(96,133,191,.22);
    border-inline-start: 4px solid var(--teal);
    background: var(--white);
    box-shadow: 0 14px 32px rgba(17,31,62,.06);
}

.inside-page--metier .metier-missions strong {
    display: block;
    margin-bottom: 7px;
    color: var(--navy-deep);
    font-family: var(--font-display);
    font-size: 1.04rem;
}

.inside-page--metier .metier-callout {
    display: flex;
    align-items: flex-start;
    gap: 22px;
    padding: clamp(24px, 3vw, 34px);
    background:
        linear-gradient(135deg, rgba(16,31,62,.96), rgba(19,78,121,.94)),
        radial-gradient(circle at 88% 20%, rgba(33,205,192,.24), transparent 26%);
    color: var(--white);
    box-shadow: 0 22px 50px rgba(17,31,62,.16);
}

.inside-page--metier .metier-callout__icon {
    margin: 0;
    background: rgba(255,255,255,.12);
    color: var(--white);
}

.inside-page--metier .metier-callout h4,
.inside-page--metier .metier-callout p {
    color: var(--white);
}

.inside-page--metier .metier-callout p {
    opacity: .82;
}

.inside-page--metier .metier-final-cta .btn {
    justify-self: start;
    margin-top: 4px;
}

.inside-page--metier .metier-sidebar-note {
    margin-bottom: 18px !important;
}

.inside-page--metier .legal-link-list {
    display: grid;
    gap: 10px;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none;
}

.inside-page--metier .legal-link-list a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 14px;
    border: 1px solid var(--line);
    background: var(--ice);
    color: var(--navy-deep) !important;
    font-size: .86rem;
    font-weight: 750;
    line-height: 1.45;
    text-decoration: none !important;
}

.inside-page--metier .legal-link-list i {
    color: var(--teal-dark);
}

.inside-page--mre .subpage-header {
    background:
        radial-gradient(circle at 82% 18%, rgba(255,184,75,.2), transparent 25%),
        radial-gradient(circle at 15% 72%, rgba(33,205,192,.2), transparent 28%),
        linear-gradient(135deg, #101d38 0%, #2f477f 58%, #0f746f 100%);
}

.inside-page--mre .mre-content {
    display: grid;
    gap: 30px;
}

.inside-page--mre .mre-hero-card,
.inside-page--mre .mre-section {
    position: relative;
    overflow: hidden;
    padding: clamp(26px, 4vw, 42px);
    border: 1px solid rgba(33,205,192,.2);
    background:
        linear-gradient(135deg, rgba(255,255,255,.98), rgba(247,251,252,.96)),
        radial-gradient(circle at 100% 0%, rgba(33,205,192,.16), transparent 28%);
    box-shadow: 0 22px 55px rgba(17,31,62,.08);
}

.inside-page--mre .mre-hero-card {
    display: grid;
    grid-template-columns: 1fr;
    gap: clamp(18px, 2.6vw, 28px);
    align-items: start;
}

.inside-page--mre .mre-hero-card::before,
.inside-page--mre .mre-section::before {
    content: "";
    position: absolute;
    inset-block: 0;
    inset-inline-start: 0;
    width: 5px;
    background: linear-gradient(180deg, var(--teal), var(--gold));
}

.inside-page--mre .mre-hero-card h2 {
    margin: 12px 0 18px !important;
    padding-top: 0 !important;
    border-top: 0 !important;
    color: var(--navy-deep);
    font-family: var(--font-display) !important;
    font-size: clamp(2rem, 3.2vw, 3.1rem) !important;
    line-height: 1;
    letter-spacing: -.035em;
}

.inside-page--mre .rich-text .mre-hero-card h2:not(:first-child) {
    margin-top: 12px !important;
}

.inside-page--mre .mre-hero-card p,
.inside-page--mre .mre-section p {
    max-width: 860px;
    color: var(--text);
    line-height: 1.82;
}

.inside-page--mre .mre-hero-visual,
.inside-page--mre .mre-campaign-banner,
.inside-page--mre .mre-campaign-media figure,
.inside-page--mre .mre-section-media {
    position: relative;
    overflow: hidden;
    margin: 0;
    border: 1px solid rgba(15,35,70,.1);
    background: var(--white);
    box-shadow: 0 18px 44px rgba(17,31,62,.08);
}

.inside-page--mre .mre-hero-visual {
    min-height: 0;
}

.inside-page--mre .mre-hero-visual img,
.inside-page--mre .mre-campaign-banner img,
.inside-page--mre .mre-campaign-media img,
.inside-page--mre .mre-section-media img,
.inside-page--mre .mre-sites-grid img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.inside-page--mre .mre-hero-visual img {
    aspect-ratio: 4 / 3;
    min-height: 0;
}

.inside-page--mre .mre-hero-visual figcaption,
.inside-page--mre .mre-campaign-banner figcaption,
.inside-page--mre .mre-campaign-media figcaption,
.inside-page--mre .mre-section-media figcaption {
    position: absolute;
    inset-inline: 14px;
    inset-block-end: 14px;
    padding: 10px 12px;
    color: var(--white);
    background: rgba(16,31,62,.86);
    backdrop-filter: blur(5px);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .07em;
    line-height: 1.35;
    text-transform: uppercase;
}

.inside-page--mre .mre-campaign-media {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 0;
}

.inside-page--mre .mre-campaign-media figure {
    min-height: 0;
    max-height: 170px;
}

.inside-page--mre .mre-campaign-media img {
    max-height: 170px;
}

.inside-page--mre .mre-campaign-media figure:first-child img {
    object-fit: contain;
    background: #f4f7fb;
}

.inside-page--mre .mre-campaign-banner {
    margin: 24px 0 0;
}

.inside-page--mre .mre-campaign-banner img {
    aspect-ratio: 16 / 6;
    max-height: none;
    min-height: 260px;
}

.inside-page--mre .mre-feature-list,
.inside-page--mre .mre-sites-grid,
.inside-page--mre .mre-invest-grid {
    display: grid;
    gap: 14px;
    margin-top: 22px;
}

.inside-page--mre .mre-commitments {
    display: grid !important;
    gap: 0 !important;
    max-width: 860px;
    margin: 24px 0 0 !important;
    padding: 0 !important;
    list-style: none !important;
    counter-reset: mre-commitment;
    border-block: 1px solid rgba(15,35,70,.1);
}

.inside-page--mre .mre-commitments li {
    counter-increment: mre-commitment;
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 16px;
    align-items: start;
    padding: 17px 0;
    border-top: 1px solid rgba(15,35,70,.08);
    color: var(--muted);
    font-size: .95rem;
    line-height: 1.72;
}

.inside-page--mre .mre-commitments li:first-child {
    border-top: 0;
}

.inside-page--mre .mre-commitments li::before {
    content: counter(mre-commitment, decimal-leading-zero);
    color: var(--teal-dark);
    font-family: var(--font-display);
    font-size: .82rem;
    font-weight: 900;
    letter-spacing: .08em;
}

.inside-page--mre .mre-invest-grid span {
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.68;
}

.inside-page--mre .mre-section__head {
    display: grid;
    gap: 10px;
    margin-bottom: 18px;
}

.inside-page--mre .mre-section__head span {
    justify-self: start;
    padding: 7px 10px;
    color: var(--teal-dark);
    background: rgba(33,205,192,.12);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.inside-page--mre .mre-section__head h3 {
    margin: 0 !important;
    color: var(--navy-deep);
    font-family: var(--font-display);
    font-size: clamp(1.55rem, 2.1vw, 2.15rem);
    line-height: 1.08;
    letter-spacing: -.04em;
}

.inside-page--mre .mre-section[data-mre-panel="evenements"] {
    border-inline-start: 0;
}

.inside-page--mre .mre-section[data-mre-panel="evenements"]::before {
    width: 5px;
    background: linear-gradient(180deg, var(--gold), var(--teal));
}

.inside-page--mre .mre-section[data-mre-panel="guichet"] {
    background:
        linear-gradient(135deg, rgba(255,255,255,.99), rgba(245,250,251,.97)),
        radial-gradient(circle at 88% 12%, rgba(56,81,162,.12), transparent 30%);
}

.inside-page--mre .mre-section[data-mre-panel="accueil"] {
    background:
        linear-gradient(135deg, rgba(255,255,255,.99), rgba(247,251,252,.98)),
        radial-gradient(circle at 100% 0%, rgba(255,184,75,.13), transparent 30%);
}

.inside-page--mre .mre-section[data-mre-panel="investissement"] {
    background:
        linear-gradient(135deg, rgba(255,255,255,.99), rgba(247,251,252,.98)),
        radial-gradient(circle at 92% 10%, rgba(33,205,192,.16), transparent 28%);
}

.inside-page--mre .mre-feature-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.inside-page--mre .mre-feature-list article,
.inside-page--mre .mre-sites-grid article,
.inside-page--mre .mre-invest-grid article {
    padding: 18px 20px;
    border: 1px solid var(--line);
    background: var(--white);
    color: var(--navy-deep);
    font-weight: 750;
    line-height: 1.55;
    box-shadow: 0 12px 28px rgba(17,31,62,.055);
}

.inside-page--mre .mre-feature-list article {
    position: relative;
    padding-top: 46px;
}

.inside-page--mre .mre-feature-list article::before {
    content: "";
    position: absolute;
    inset-inline-start: 20px;
    inset-block-start: 20px;
    width: 28px;
    height: 4px;
    background: var(--teal);
}

.inside-page--mre .mre-operations-summary {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 22px;
}

.inside-page--mre .mre-operations-summary article {
    display: grid;
    gap: 8px;
    padding: 20px;
    border: 1px solid rgba(33,205,192,.22);
    background: var(--white);
    box-shadow: 0 14px 34px rgba(17,31,62,.06);
}

.inside-page--mre .mre-operations-summary i {
    color: var(--teal-dark);
    font-size: 1.35rem;
}

.inside-page--mre .mre-operations-summary strong {
    color: var(--navy-deep);
    font-family: var(--font-display);
    font-size: 1.04rem;
}

.inside-page--mre .mre-operations-summary span {
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.6;
}

.inside-page--mre .mre-event-card {
    margin-top: 24px;
    padding: 24px;
    color: var(--white);
    background:
        linear-gradient(135deg, rgba(16,31,62,.96), rgba(19,78,121,.92)),
        radial-gradient(circle at 90% 12%, rgba(255,184,75,.22), transparent 28%);
}

.inside-page--mre .mre-event-card strong {
    display: block;
    margin-bottom: 8px;
    font-family: var(--font-display);
    font-size: 1.22rem;
}

.inside-page--mre .mre-event-card p {
    color: rgba(255,255,255,.82);
}

.inside-page--mre .mre-event-card dl {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 18px 0 0;
}

.inside-page--mre .mre-event-card dl div {
    padding: 14px;
    background: rgba(255,255,255,.1);
}

.inside-page--mre .mre-event-card dt {
    color: rgba(255,255,255,.66);
    font-size: .68rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.inside-page--mre .mre-event-card dd {
    margin: 4px 0 0;
    color: var(--white);
    font-weight: 800;
}

.inside-page--mre .mre-table-wrap {
    width: 100%;
    margin-top: 22px;
    overflow-x: auto;
    border: 1px solid rgba(15,35,70,.1);
    background: var(--white);
    box-shadow: 0 18px 44px rgba(17,31,62,.07);
}

.inside-page--mre .mre-table-wrap table {
    margin: 0;
    min-width: 780px;
}

.inside-page--mre .mre-table-wrap th {
    background: var(--navy-deep);
    color: var(--white);
}

.inside-page--mre .mre-table-wrap td {
    vertical-align: top;
}

.inside-page--mre .mre-contact-strip {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 22px;
}

.inside-page--mre .mre-contact-strip a {
    display: grid;
    gap: 6px;
    padding: 18px;
    border: 1px solid rgba(33,205,192,.25);
    color: var(--navy-deep) !important;
    background: rgba(33,205,192,.08);
    text-decoration: none !important;
}

.inside-page--mre .mre-contact-strip i {
    color: var(--teal-dark);
    font-size: 1.25rem;
}

.inside-page--mre .mre-contact-strip span {
    color: var(--muted);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.inside-page--mre .mre-contact-strip strong {
    font-family: var(--font-display);
    font-size: 1rem;
}

.inside-page--mre .mre-hours-card {
    display: grid;
    gap: 8px;
    margin-top: 22px;
    padding: 22px 24px;
    border: 1px solid rgba(33,205,192,.24);
    border-inline-start: 5px solid var(--teal);
    background: rgba(33,205,192,.08);
    color: var(--navy-deep);
}

.inside-page--mre .mre-hours-card strong {
    font-family: var(--font-display);
    font-size: 1.08rem;
}

.inside-page--mre .mre-hours-card span {
    color: var(--text);
    line-height: 1.55;
}

.inside-page--mre .mre-sites-grid {
    grid-template-columns: 1fr;
}

.inside-page--mre .mre-sites-grid article {
    overflow: hidden;
    display: grid;
    grid-template-rows: auto minmax(260px, auto);
    gap: 0;
    min-height: 0;
    padding: 0;
}

.inside-page--mre .mre-site-photos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-height: 260px;
}

.inside-page--mre .mre-site-photos img {
    min-width: 0;
}

.inside-page--mre .mre-sites-grid i {
    color: var(--blue);
    font-size: 1.35rem;
}

.inside-page--mre .mre-content img {
    cursor: zoom-in;
}

.inside-page--mre .mre-site-title {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 18px 22px;
    border-bottom: 1px solid var(--line);
    background:
        linear-gradient(90deg, rgba(255,255,255,.98), rgba(247,251,252,.98)),
        radial-gradient(circle at 100% 0%, rgba(33,205,192,.14), transparent 36%);
    color: var(--navy-deep);
    font-family: var(--font-display);
    font-size: 1.2rem;
    font-weight: 900;
    letter-spacing: -.025em;
}

.inside-page--mre .mre-section-media {
    margin-top: 24px;
}

.inside-page--mre .mre-section-media img {
    max-height: 430px;
}

.inside-page--mre .mre-section-media--poster {
    width: min(430px, 100%);
}

.inside-page--mre .mre-section-media--poster img {
    max-height: none;
    object-fit: contain;
    background: #0d355c;
}

.inside-page--mre .mre-section-media--wide img {
    max-height: none;
    object-fit: contain;
    background: var(--white);
}

.inside-page--mre .mre-poster-pair {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
}

.inside-page--mre .mre-poster-pair .mre-section-media--poster {
    width: 100%;
}

.inside-page--mre .mre-invest-grid article {
    position: relative;
    padding-inline-start: 54px;
}

.inside-page--mre .mre-invest-grid article::before {
    content: "";
    position: absolute;
    inset-inline-start: 22px;
    inset-block-start: 22px;
    width: 16px;
    height: 16px;
    border: 4px solid rgba(33,205,192,.28);
    background: var(--blue);
}

.inside-page--mre .mre-invest-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.inside-page--mre .mre-invest-grid article {
    display: grid;
    gap: 8px;
}

.inside-page--mre .mre-invest-grid article:last-child {
    grid-column: 1 / -1;
}

.inside-page--mre .mre-sidebar-contact {
    margin-bottom: 18px !important;
}

.inside-page .rich-text div[style*="grid-template-columns:repeat"] a,
.inside-page .rich-text div[style*="grid-template-columns: repeat"] a {
    text-decoration: none;
}

.inside-page .rich-text div[style*="grid-template-columns:repeat"] > *,
.inside-page .rich-text div[style*="grid-template-columns: repeat"] > * {
    border-radius: 0 !important;
}

.inside-page .rich-text img {
    transition: transform .25s ease;
}

.inside-page .rich-text a:hover img {
    transform: translateY(-3px);
}

.inside-page--patrimoine .subpage-header {
    background:
        radial-gradient(circle at 82% 18%, rgba(33,205,192,.22), transparent 26%),
        linear-gradient(90deg, rgba(16,29,56,.9), rgba(16,29,56,.55)),
        url("https://autdev.ias.ma/s/a/site/img/patrimoine/patrimoine_bb.jpg") center/cover;
}

.patrimoine-hero-summary {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 34px;
}

.patrimoine-hero-summary span {
    min-width: 118px;
    padding: 12px 14px;
    border: 1px solid rgba(255,255,255,.22);
    color: var(--white);
    background: rgba(255,255,255,.08);
    backdrop-filter: blur(8px);
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.patrimoine-hero-summary strong {
    display: block;
    margin-bottom: 3px;
    color: var(--teal);
    font-family: var(--font-display);
    font-size: 1.55rem;
    line-height: 1;
    letter-spacing: -.04em;
}

.inside-page--patrimoine .rich-text {
    position: relative;
}

.patrimoine-media {
    cursor: zoom-in;
    margin: 30px 0;
    border: 1px solid var(--line);
    background: var(--white);
    box-shadow: 0 18px 42px rgba(16,29,56,.06);
    overflow: hidden;
}

.patrimoine-media img {
    display: block;
    width: 100%;
    max-height: 460px;
    object-fit: cover;
}

.patrimoine-media:focus-visible {
    outline: 3px solid rgba(33,205,192,.55);
    outline-offset: 4px;
}

.inside-page--patrimoine .rich-text h2:not([hidden]) {
    position: relative;
    margin-bottom: 22px !important;
    padding: 0 0 22px;
    border-bottom: 1px solid rgba(220,228,236,.92);
}

.inside-page--patrimoine .rich-text h2:not([hidden])::after {
    content: "";
    position: absolute;
    inset-inline-start: 0;
    bottom: -1px;
    width: 88px;
    height: 3px;
    background: var(--teal);
}

.inside-page--patrimoine .rich-text h3:not([hidden]) {
    position: relative;
    display: inline-block;
    margin-top: 34px !important;
    padding: 9px 13px 9px 16px;
    border-inline-start: 3px solid var(--teal);
    background: linear-gradient(90deg, rgba(33,205,192,.1), rgba(255,255,255,0));
}

.inside-page--patrimoine .rich-text > p:not([hidden]) {
    color: var(--text);
    line-height: 1.9;
}

.inside-page--patrimoine .rich-text > ul:not(.patrimoine-facts):not([hidden]) {
    padding: 22px 24px !important;
    border: 1px solid rgba(15,35,70,.1);
    background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(247,251,252,.96));
    box-shadow: 0 16px 38px rgba(15,35,70,.055);
}

.inside-page--patrimoine .rich-text > ul:not(.patrimoine-facts):not([hidden]) li {
    padding-inline-start: 4px;
}

.inside-page--patrimoine .rich-text .patrimoine-facts {
    display: flex !important;
    flex-wrap: wrap;
    gap: 10px !important;
    margin: 0 0 31px !important;
    padding: 0 !important;
    list-style: none !important;
}

.inside-page--patrimoine .rich-text .patrimoine-facts li {
    padding: 10px 14px;
    border: 1px solid rgba(33,205,192,.26);
    color: var(--navy-deep);
    background: rgba(33,205,192,.075);
    font-size: .74rem;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.inside-page--patrimoine .rich-text .patrimoine-facts li::marker {
    content: "";
}

.patrimoine-hero-media {
    position: relative;
    margin: 34px 0 40px;
    border: 0;
    box-shadow: 0 30px 78px rgba(16,29,56,.16);
}

.patrimoine-hero-media img {
    min-height: 330px;
    max-height: 500px;
}

.patrimoine-hero-media::after {
    content: attr(data-caption);
    position: absolute;
    inset-inline-start: 24px;
    bottom: 24px;
    max-width: min(420px, calc(100% - 48px));
    padding: 13px 16px;
    color: var(--white);
    background: rgba(16,29,56,.86);
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 700;
}

.patrimoine-visual-index {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin: 0 0 36px;
}

.patrimoine-visual-index figure {
    position: relative;
    min-height: 150px;
    margin: 0;
    background: var(--navy-deep);
    overflow: hidden;
}

.patrimoine-visual-index img {
    width: 100%;
    height: 100%;
    min-height: 138px;
    object-fit: cover;
    opacity: .72;
    filter: saturate(.82);
    transition: opacity .2s ease, transform .25s ease, filter .2s ease;
}

.patrimoine-visual-index figcaption {
    position: absolute;
    inset-inline: 12px;
    bottom: 11px;
    color: var(--white);
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .08em;
    line-height: 1.35;
    text-transform: uppercase;
}

.patrimoine-visual-index figure:hover img {
    opacity: .92;
    filter: saturate(1);
    transform: scale(1.035);
}

.patrimoine-inline-media {
    position: relative;
    width: min(46%, 360px);
    margin: 8px 0 24px 32px;
    float: inline-end;
    box-shadow: 0 18px 42px rgba(16,29,56,.08);
}

.patrimoine-inline-media.is-reversed {
    margin: 8px 32px 24px 0;
    float: inline-start;
}

.patrimoine-inline-media.is-flow-break {
    clear: both;
    margin-top: 34px;
}

.patrimoine-inline-media img {
    max-height: 310px;
}

.patrimoine-inline-media::after {
    content: attr(data-caption);
    display: block;
    padding: 10px 12px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    background: var(--white);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .035em;
    line-height: 1.45;
    text-transform: uppercase;
}

.patrimoine-inline-media::before {
    content: attr(data-caption);
    position: absolute;
    inset-inline-start: 12px;
    top: 12px;
    z-index: 1;
    max-width: calc(100% - 24px);
    padding: 8px 10px;
    color: var(--navy-deep);
    background: rgba(255,255,255,.92);
    border-inline-start: 3px solid var(--teal);
    box-shadow: 0 12px 26px rgba(16,29,56,.12);
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .075em;
    line-height: 1.25;
    text-transform: uppercase;
}

.patrimoine-inline-media::after {
    content: "Cliquer pour agrandir";
    color: var(--blue);
}

.inside-page--patrimoine .download-item {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 13px;
    align-items: start;
}

.inside-page--patrimoine .download-icon {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    color: var(--white);
    background: var(--blue);
    border-radius: 999px;
}

.inside-page--patrimoine .patrimoine-help-text {
    margin: 0 0 20px;
    color: var(--muted);
    font-size: .9rem;
    line-height: 1.65;
}

.inside-page--patrimoine .sidebar-widget .btn {
    width: 100%;
}

.image-dialog[hidden] {
    display: none !important;
}

.image-dialog {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    place-items: center;
    padding: 24px;
}

.image-dialog__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(7,16,36,.78);
    backdrop-filter: blur(5px);
}

.image-dialog__panel {
    position: relative;
    z-index: 1;
    width: min(1120px, 94vw);
    max-height: 90vh;
    display: grid;
    background: var(--white);
    box-shadow: 0 35px 90px rgba(0,0,0,.34);
    overflow: hidden;
}

.image-dialog__image {
    display: block;
    width: 100%;
    max-height: 78vh;
    object-fit: contain;
    background: #071024;
}

.image-dialog__caption {
    margin: 0;
    padding: 14px 18px;
    color: var(--navy-deep);
    font-size: .84rem;
    font-weight: 800;
    letter-spacing: .055em;
    text-transform: uppercase;
}

.video-dialog__panel {
    width: min(1040px, 94vw);
    background: #071024;
}

.video-dialog__frame {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    border: 0;
    background: #071024;
}

.video-dialog__caption {
    color: var(--white);
    background: var(--navy-deep);
}

.image-dialog__close {
    position: absolute;
    top: 12px;
    inset-inline-end: 12px;
    z-index: 2;
    width: 42px;
    height: 42px;
    border: 1px solid rgba(255,255,255,.35);
    color: var(--white);
    background: rgba(16,29,56,.78);
    cursor: pointer;
    font-size: 1.45rem;
    line-height: 1;
}

.has-open-dialog {
    overflow: hidden;
}

.has-open-article {
    overflow: hidden;
}

.inside-page--patrimoine .rich-text h3 {
    clear: both;
}

.inside-page--patrimoine .rich-text h2 {
    clear: both;
}

@media (max-width: 900px) {
    .patrimoine-visual-index {
        grid-template-columns: repeat(2, 1fr);
    }

    .patrimoine-inline-media,
    .patrimoine-inline-media.is-reversed {
        width: 100%;
        margin: 28px 0;
        float: none;
    }
}

@media (max-width: 560px) {
    .patrimoine-visual-index {
        display: none;
    }

    .patrimoine-hero-media img {
        min-height: 240px;
    }
}

.inside-page .form-group {
    display: grid;
    gap: 8px;
    margin-bottom: 19px;
}

.inside-page .form-label {
    color: var(--navy-deep);
    font-size: .84rem;
    font-weight: 700;
}

.inside-page .form-control {
    width: 100%;
    padding: 15px 16px;
    color: var(--ink);
    background: var(--white) !important;
    border: 1px solid var(--line);
    border-radius: 0;
    font: inherit;
}

.inside-page textarea.form-control {
    min-height: 158px;
    resize: vertical;
}

.inside-page .form-control:focus {
    border-color: var(--blue);
    outline: 2px solid rgba(56,81,162,.13);
}

.inside-page .map-frame-wrapper {
    position: relative;
    overflow: hidden;
    border: 1px solid var(--line);
}

.inside-page .map-frame-wrapper iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.inside-page .map-overlay {
    display: none;
}

.inside-page--contact .subpage-header {
    background:
        radial-gradient(circle at 82% 18%, rgba(33,205,192,.2), transparent 25%),
        linear-gradient(135deg, var(--navy-deep) 0%, #2f477f 100%);
}

.inside-page--contact .contact-intro {
    margin-bottom: 26px;
}

.inside-page--contact .contact-intro h2 {
    margin-bottom: 12px !important;
}

.inside-page--contact .contact-intro p {
    max-width: 760px;
    color: var(--muted);
}

.inside-page--contact .contact-methods {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 0 0 28px;
}

.inside-page--contact .contact-methods a {
    display: grid;
    gap: 7px;
    padding: 19px 18px;
    border: 1px solid rgba(15,35,70,.1);
    color: var(--navy-deep) !important;
    background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(247,251,252,.96));
    box-shadow: 0 14px 34px rgba(15,35,70,.055);
    text-decoration: none !important;
}

.inside-page--contact .contact-methods a:hover {
    border-color: rgba(33,205,192,.4);
}

.inside-page--contact .contact-methods span {
    color: var(--blue);
    font-size: .68rem;
    font-weight: 850;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.inside-page--contact .contact-methods strong {
    font-family: var(--font-display);
    font-size: 1rem;
    line-height: 1.3;
}

.inside-page--contact .contact-form-card {
    position: relative;
    margin-top: 0;
    padding: clamp(24px, 3.8vw, 38px);
    border: 1px solid rgba(15,35,70,.1);
    background:
        linear-gradient(135deg, rgba(255,255,255,.98), rgba(247,251,252,.96)),
        radial-gradient(circle at 100% 0%, rgba(33,205,192,.14), transparent 24%);
    box-shadow: 0 24px 70px rgba(15,35,70,.08);
}

.inside-page--contact .contact-form-card::before {
    position: absolute;
    inset-block: 0;
    inset-inline-start: 0;
    width: 5px;
    content: "";
    background: linear-gradient(180deg, var(--teal), var(--blue));
}

.inside-page--contact .contact-form-card .btn {
    width: 100%;
}

.inside-page--contact .contact-note {
    margin-top: 18px;
    color: var(--muted);
    font-size: .95rem;
}

.inside-page--contact .contact-map-title {
    margin-top: 58px !important;
}

.inside-page--contact .contact-map-card {
    margin-top: 22px;
    border: 1px solid rgba(15,35,70,.1);
    background: var(--white);
    box-shadow: 0 24px 70px rgba(15,35,70,.08);
}

.inside-page--contact .map-frame-wrapper {
    height: 420px;
}

.inside-page--contact .contact-detail {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 14px;
    padding: 16px 0;
    border-top: 1px solid rgba(220,228,236,.9);
}

.inside-page--contact .contact-detail:first-of-type {
    border-top: 0;
    padding-top: 0;
}

.inside-page--contact .contact-detail__icon {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    color: var(--white);
    background: var(--blue);
    border-radius: 999px;
}

.inside-page--contact .contact-detail__text {
    color: var(--text);
    font-size: .86rem;
    line-height: 1.6;
}

.inside-page--contact .contact-detail__text strong {
    display: block;
    margin-bottom: 4px;
    color: var(--navy-deep);
    font-family: var(--font-display);
    font-size: .96rem;
}

.inside-page--contact .contact-detail__text a {
    color: var(--blue) !important;
    font-weight: 750;
    text-decoration: none !important;
}

@media (max-width: 980px) {
    .inside-page .layout-with-sidebar {
        grid-template-columns: 1fr;
    }

    .inside-page .sidebar-widgets {
        position: static;
        grid-template-columns: repeat(2, 1fr);
    }

    .inside-page--media .news-desk,
    .inside-page--media .news-official {
        grid-template-columns: 1fr;
    }

    .inside-page--media .news-official__actions {
        justify-content: flex-start;
    }

    .inside-page--media .news-featured {
        grid-template-columns: 1fr;
    }

    .inside-page--contact .contact-methods {
        grid-template-columns: 1fr;
    }

    .inside-page--metier .metier-card-grid,
    .inside-page--metier .metier-process {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }

    .inside-page--mre .mre-feature-list,
    .inside-page--mre .mre-operations-summary,
    .inside-page--mre .mre-poster-pair,
    .inside-page--mre .mre-invest-grid,
    .inside-page--mre .mre-contact-strip {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .inside-page--mre .mre-hero-card,
    .inside-page--mre .mre-campaign-media {
        grid-template-columns: 1fr;
    }

    .inside-page--mre .mre-hero-visual img {
        min-height: 0;
    }

    .inside-page--mre .mre-invest-grid article:last-child {
        grid-column: auto;
    }

    .inside-page--presentation .values-lead,
    .inside-page--presentation .values-grid,
    .inside-page--presentation .mission-pillars,
    .inside-page--presentation .compass-list,
    .inside-page--presentation .admin-split,
    .inside-page--presentation .territory-assets,
    .inside-page--presentation .hr-lead,
    .inside-page--presentation .orientations-grid {
        grid-template-columns: 1fr;
    }

    .inside-page--presentation .values-summary,
    .inside-page--presentation .reference-list,
    .inside-page--presentation .federation-links {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 650px) {
    .inside-page .subpage-header {
        padding: 48px 0 53px;
    }

    .inside-page .subpage-title {
        font-size: 2.35rem;
    }

    .inside-page .page-content-wrap {
        padding: 48px 0 67px;
    }

    .inside-page .services-grid,
    .inside-page .sidebar-widgets {
        grid-template-columns: 1fr !important;
    }

    .inside-page .rich-text {
        overflow-x: auto;
    }

    .inside-page .rich-text table {
        min-width: 590px;
    }

    .inside-page--media .news-visual {
        min-height: 190px;
    }

    .inside-page--media .article-reader {
        width: 100vw;
        min-width: 0;
        max-width: none;
    }

    .inside-page--media .article-reader__chrome {
        align-items: flex-start;
    }

    .inside-page--contact .map-frame-wrapper {
        height: 340px;
    }

    .inside-page--metier .metier-content {
        gap: 24px;
    }

    .inside-page--metier .metier-lead,
    .inside-page--metier .metier-card,
    .inside-page--metier .metier-callout,
    .inside-page--metier .metier-missions article {
        padding: 20px;
    }

    .inside-page--metier .metier-card-grid,
    .inside-page--metier .metier-process,
    .inside-page--metier .sidebar-widgets {
        grid-template-columns: 1fr !important;
    }

    .inside-page--metier .metier-card--horizontal,
    .inside-page--metier .metier-callout {
        display: grid;
    }

    .inside-page--metier .metier-section__head {
        align-items: flex-start;
    }

    .inside-page--mre .mre-hero-card,
    .inside-page--mre .mre-section {
        padding: 22px;
    }

    .inside-page--mre .mre-feature-list,
    .inside-page--mre .mre-operations-summary,
    .inside-page--mre .mre-poster-pair,
    .inside-page--mre .mre-sites-grid,
    .inside-page--mre .mre-invest-grid,
    .inside-page--mre .mre-campaign-media,
    .inside-page--mre .mre-contact-strip,
    .inside-page--mre .mre-event-card dl {
        grid-template-columns: 1fr;
    }

    .inside-page--mre .mre-sites-grid article:last-child {
        grid-column: auto;
    }

    .inside-page--mre .mre-sites-grid article {
        grid-template-columns: 1fr;
    }

    .inside-page--mre .mre-site-photos {
        min-height: 180px;
    }

    .inside-page--mre .mre-hero-visual img {
        min-height: 0;
    }

    .inside-page--mre .mre-campaign-media figure {
        min-height: 0;
        max-height: 150px;
    }

    .inside-page--mre .mre-commitments li {
        grid-template-columns: 1fr;
    }

    .inside-page--presentation .values-dossier {
        padding: 22px 18px;
    }

    .inside-page--presentation .presentation-panel {
        padding: 22px 18px;
    }

    .inside-page--presentation .director-letter {
        columns: auto;
    }

    .inside-page--presentation .director-intro {
        grid-template-columns: 1fr;
    }

    .inside-page--presentation .director-portrait {
        max-width: 320px;
    }

    .inside-page--presentation .values-summary,
    .inside-page--presentation .reference-list,
    .inside-page--presentation .federation-links {
        grid-template-columns: 1fr;
    }

    .inside-page--presentation .values-grid .timeline-item,
    .inside-page--presentation .legal-missions li,
    .inside-page--presentation .orientations-grid .timeline-item {
        grid-template-columns: 1fr;
        padding: 18px;
    }
}

/* Customer polish pass: refined depth, rhythm, and institutional finish. */
.utility {
    background: linear-gradient(90deg, var(--navy-deep), var(--navy));
}

.masthead {
    box-shadow: 0 16px 34px rgba(16,29,56,.055);
}

.masthead__inner {
    height: 96px;
}

.brand img {
    width: 244px;
}

.primary-nav {
    gap: 18px;
}

.primary-nav > a:not(.primary-nav__contact) {
    color: rgba(33,51,96,.86);
}

.primary-nav > a:hover,
.primary-nav .is-current {
    color: var(--navy-deep);
}

.primary-nav__contact,
.solid-action,
.quick-access .action,
.inside-page .btn {
    box-shadow: 0 14px 28px rgba(33,205,192,.18);
}

.primary-nav__contact:hover,
.solid-action:hover,
.quick-access .action:hover {
    transform: translateY(-1px);
}

.language-picker {
    min-width: 128px;
    padding-inline: 16px 37px;
    background: rgba(255,255,255,.045);
}

.language-picker select {
    padding-inline: 16px 37px;
}

.home-slider {
    height: clamp(570px, 49vw, 690px);
}

.hero-slide__shade {
    background:
        linear-gradient(90deg, rgba(17,31,62,.94) 0%, rgba(25,41,78,.76) 43%, rgba(25,41,78,.22) 72%, rgba(25,41,78,.08) 100%),
        radial-gradient(circle at 23% 42%, rgba(33,205,192,.2), transparent 24%),
        linear-gradient(0deg, rgba(16,29,56,.38), transparent 48%);
}

.hero-slide__content {
    width: min(640px, 58vw);
    padding: 34px 0;
}

.hero-slide h1,
.hero-slide h2 {
    max-width: 650px;
    margin-bottom: 28px;
    text-wrap: balance;
    text-shadow: 0 18px 46px rgba(0,0,0,.2);
}

.hero-slide__content > p:not(.eyebrow) {
    max-width: 590px;
    color: rgba(255,255,255,.84);
}

.slider-ui {
    bottom: 42px;
    padding: 14px 0;
}

.slider-dots button {
    width: 44px;
    height: 4px;
    background: rgba(255,255,255,.28);
}

.slider-buttons button {
    width: 55px;
    height: 55px;
    background: rgba(255,255,255,.07);
    backdrop-filter: blur(10px);
}

.quick-access {
    box-shadow: 0 22px 55px rgba(16,29,56,.16);
}

.quick-access__inner {
    min-height: 156px;
}

.quick-access select {
    background: rgba(255,255,255,.065);
    border-color: rgba(255,255,255,.24);
}

.section-heading h2,
.inside-page .rich-text h2,
.page-hero h1,
.inside-page .subpage-title {
    text-wrap: balance;
}

.flash-register a,
.minister,
.proximity,
.service-directory a,
.inside-page .sidebar-widget,
.notice-card,
.plan-record,
.help-panel,
.direct-register,
.tutorial-panel {
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
}

.flash-register a:hover,
.service-directory a:hover,
.inside-page .sidebar-widget:hover,
.plan-record:hover {
    background: #f8fbfc;
    box-shadow: 0 20px 45px rgba(16,29,56,.065);
    transform: translateY(-2px);
}

.flash-register a:nth-child(2),
.flash-register a:last-child {
    border-inline-end: 1px solid rgba(220,228,236,.92);
}

.minister,
.notice-card,
.help-panel,
.direct-register,
.tutorial-panel,
.inside-page .sidebar-widget {
    box-shadow: 0 18px 42px rgba(16,29,56,.06);
}

.proximity,
.inside-page .welcome-quote,
.official-note,
.closed-status {
    background: linear-gradient(135deg, #fff 0%, #f5fafb 100%);
}

.agency-news {
    background:
        linear-gradient(90deg, rgba(12,82,154,.055) 0 1px, transparent 1px),
        linear-gradient(180deg, #f7fbfc 0%, #fff 100%);
    background-size: 34px 34px, auto;
    border-block: 1px solid rgba(220,228,236,.8);
}

.featured-services {
    background:
        radial-gradient(circle at 14% 0%, rgba(33,205,192,.13), transparent 27%),
        var(--navy-deep);
}

.service-tab {
    transition: color .2s ease, background .2s ease;
}

.service-tab:hover {
    background: rgba(255,255,255,.045);
}

.page-hero,
.inside-page .subpage-header {
    background:
        radial-gradient(circle at 82% 18%, rgba(33,205,192,.19), transparent 25%),
        linear-gradient(135deg, var(--navy-deep) 0%, #263b69 100%);
}

.page-hero {
    color: var(--white);
}

.page-hero h1,
.page-hero__intro,
.page-hero .eyebrow {
    color: var(--white);
}

.page-hero__intro {
    color: rgba(255,255,255,.78);
}

.inside-page .subpage-header {
    padding: 76px 0 82px;
}

.inside-page .subpage-title {
    max-width: 1040px;
}

.inside-page .page-content-wrap {
    background:
        linear-gradient(180deg, #fff 0, #fff 68%, #f8fbfc 100%);
}

.inside-page .rich-text {
    font-size: 1rem;
}

.inside-page .rich-text p {
    max-width: 82ch;
}

.inside-page .sidebar-widget:first-child {
    border-top: 0;
    border-inline-start: 4px solid var(--teal);
}

.inside-page .widget-links a:hover {
    color: var(--blue) !important;
}

.inside-page .download-title:hover {
    color: var(--blue) !important;
}

@media (max-width: 1080px) {
    .masthead__inner {
        height: 82px;
    }

    .home-slider {
        height: 560px;
    }
}

@media (max-width: 650px) {
    .masthead__inner {
        height: 73px;
    }

    .home-slider {
        height: 585px;
    }

    .hero-slide__inner {
        padding-bottom: 118px;
    }

    .hero-slide__content {
        width: 100%;
        padding: 0;
    }

    .hero-slide h1,
    .hero-slide h2 {
        font-size: clamp(2.65rem, 12.6vw, 3.38rem);
    }

    .slider-ui {
        bottom: 31px;
    }

    .quick-access__inner {
        min-height: unset;
    }

    .inside-page .subpage-header {
        padding: 52px 0 58px;
    }

    .inside-page .sidebar-widget:hover,
    .flash-register a:hover,
    .service-directory a:hover,
    .plan-record:hover {
        transform: none;
    }
}

/* RTL readiness: server-rendered Arabic pages may reuse this stylesheet with dir="rtl". */
html[dir="rtl"],
html:lang(ar) {
    direction: rtl;
}

html[dir="rtl"] body,
html:lang(ar) body {
    font-family: "Noto Kufi Arabic", "Noto Sans Arabic", "Tahoma", "Arial", sans-serif;
}

html[dir="rtl"] h1,
html[dir="rtl"] h2,
html[dir="rtl"] h3,
html[dir="rtl"] .map-cover strong,
html[dir="rtl"] .inside-page .subpage-title,
html[dir="rtl"] .inside-page .widget-title,
html:lang(ar) h1,
html:lang(ar) h2,
html:lang(ar) h3,
html:lang(ar) .map-cover strong,
html:lang(ar) .inside-page .subpage-title,
html:lang(ar) .inside-page .widget-title {
    font-family: "Noto Kufi Arabic", "Noto Sans Arabic", "Tahoma", "Arial", sans-serif;
    letter-spacing: 0;
}

html[dir="rtl"] .eyebrow,
html[dir="rtl"] .meta,
html[dir="rtl"] .inside-page .section-badge,
html[dir="rtl"] .inside-page .subpage-header .breadcrumbs,
html[dir="rtl"] .inside-page .download-size,
html:lang(ar) .eyebrow,
html:lang(ar) .meta,
html:lang(ar) .inside-page .section-badge,
html:lang(ar) .inside-page .subpage-header .breadcrumbs,
html:lang(ar) .inside-page .download-size {
    letter-spacing: 0;
}

html[dir="rtl"] .primary-nav > a:not(.primary-nav__contact)::after,
html:lang(ar) .primary-nav > a:not(.primary-nav__contact)::after {
    transform-origin: right center;
}

html[dir="rtl"] .hero-slide__shade,
html:lang(ar) .hero-slide__shade {
    background:
        linear-gradient(270deg, rgba(17,31,62,.94) 0%, rgba(25,41,78,.76) 43%, rgba(25,41,78,.22) 72%, rgba(25,41,78,.08) 100%),
        radial-gradient(circle at 77% 42%, rgba(33,205,192,.2), transparent 24%),
        linear-gradient(0deg, rgba(16,29,56,.38), transparent 48%);
}

html[dir="rtl"] .inside-page .subpage-header::before,
html:lang(ar) .inside-page .subpage-header::before {
    background:
        radial-gradient(circle at 19% 23%, rgba(33,205,192,.21), transparent 24%),
        linear-gradient(70deg, transparent 54%, rgba(255,255,255,.055) 54%, transparent 55%),
        linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
    background-size: auto, auto, 72px 72px;
}

html[dir="rtl"] .quick-access .action svg,
html[dir="rtl"] .slider-buttons svg,
html[dir="rtl"] .inside-page .fa-chevron-right,
html:lang(ar) .quick-access .action svg,
html:lang(ar) .slider-buttons svg,
html:lang(ar) .inside-page .fa-chevron-right {
    transform: scaleX(-1);
}

html[dir="rtl"] .inside-page .section-header[style*="text-align: left"],
html:lang(ar) .inside-page .section-header[style*="text-align: left"] {
    text-align: start !important;
}

html[dir="rtl"] .inside-page .rich-text p[style*="border-left"],
html[dir="rtl"] .inside-page .rich-text div[style*="border-left"],
html:lang(ar) .inside-page .rich-text p[style*="border-left"],
html:lang(ar) .inside-page .rich-text div[style*="border-left"] {
    border-left: 0 !important;
    border-inline-start: 4px solid var(--teal) !important;
    padding-inline-start: 2rem !important;
}

html[dir="rtl"] .inside-page--metier .services-grid > div[style*="border-left"],
html:lang(ar) .inside-page--metier .services-grid > div[style*="border-left"] {
    border-left: 0 !important;
    border-inline-start: 5px solid var(--teal) !important;
}
/* ============================================================
   CMS: tabbed inside-pages (section-switcher show one tab at a
   time) — suppress the inter-section top divider/spacing on tab
   titles. It only made sense when sections were stacked.
   (Same specificity as the source :not(:first-child) rule, placed
   later so it wins; !important beats the source's margin-top.)
   ============================================================ */
.inside-page--presentation .rich-text h2:not(:first-child),
.inside-page--patrimoine .rich-text h2:not(:first-child),
.inside-page--mre .rich-text h2:not(:first-child),
.inside-page--metier .rich-text h2:not(:first-child) {
    margin-top: 0 !important;
    padding-top: 0;
    border-top: none;
}
/* ============================================================
   RTL FIX — news article-reader drawer. It is anchored
   inset-inline-start (= RIGHT in RTL) but the closed-state hide
   transform is physical translateX(-104%) (pushes LEFT), which in
   RTL slides it INTO view instead of off-screen. Push it off the
   RIGHT edge when closed; keep translateX(0) when open.
   ============================================================ */
[dir="rtl"] .inside-page--media .article-reader {
    transform: translateX(104%);
}
[dir="rtl"] .inside-page--media .article-reader.is-open {
    transform: translateX(0);
}
/* ============================================================
   FIX: native <select> options in the dark utility-bar language
   picker inherited white-on-white (invisible in the dropdown).
   Give the option list dark text on a light background.
   ============================================================ */
.language-picker select option {
    color: var(--ink);
    background: var(--white);
    font-weight: 600;
}
/* ============================================================
   ARABIC FONT — override the font CSS variables for RTL so EVERY
   font-family: var(--font-*) declaration (incl. !important ones
   like .rich-text h2) resolves to Noto Kufi Arabic. All 43
   font-family rules use these vars, so this covers the whole page.
   ============================================================ */
html[dir="rtl"],
html:lang(ar) {
    --font-display: "Noto Kufi Arabic", "Noto Sans Arabic", "Tahoma", "Arial", sans-serif;
    --font-body: "Noto Kufi Arabic", "Noto Sans Arabic", "Tahoma", "Arial", sans-serif;
    --font-heading: "Noto Kufi Arabic", "Noto Sans Arabic", "Tahoma", "Arial", sans-serif;
}
/* ============================================================
   PATRIMOINE images — the JS "magazine" layout (enhancePatrimoineSection)
   floats inline images (46% width) and injects a CLONED thumbnail index grid.
   It renders poorly in the CMS, so present all figures as clean, centered,
   full-width blocks and drop the cloned index. The click-to-enlarge lightbox
   (bound by the same JS) still works.
   ============================================================ */
.inside-page--patrimoine .patrimoine-media,
.inside-page--patrimoine .patrimoine-hero-media,
.inside-page--patrimoine .patrimoine-inline-media,
.inside-page--patrimoine .patrimoine-inline-media.is-reversed,
.inside-page--patrimoine .patrimoine-inline-media.is-flow-break {
    float: none !important;
    width: 100% !important;
    max-width: 760px;
    margin: 28px auto !important;
    clear: both;
}
.inside-page--patrimoine .patrimoine-visual-index { display: none !important; }
.inside-page--patrimoine .patrimoine-inline-media::before { display: none !important; }
.inside-page--patrimoine .patrimoine-media img,
.inside-page--patrimoine .patrimoine-hero-media img,
.inside-page--patrimoine .patrimoine-inline-media img {
    width: 100%;
    max-height: 470px !important;
    object-fit: cover;
}
/* ============================================================
   quick-access procedure <select> (homepage, dark navy band):
   reset native chrome (it was rendering as plain HTML), add a
   custom chevron, and fix the native option dropdown which
   inherited white text on the OS white background.
   ============================================================ */
.quick-access select {
    appearance: none;
    -webkit-appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
    background-repeat: no-repeat;
    background-position: right 18px center;
    background-size: 16px;
    cursor: pointer;
}
[dir="rtl"] .quick-access select {
    background-position: left 18px center;
}
.quick-access select option {
    color: var(--ink);
    background: var(--white);
    font-weight: 600;
}
/* ============================================================
   /actualites/ dynamic news grid + article-reader gallery
   (fed by /api/news/{site}/ via page-actualites-js).
   ============================================================ */
/* the mount inherits the homepage .news-featured 3-col grid; neutralize it so the
   injected .news-grid spans the full content column (no empty gap before the sidebar). */
.inside-page--media [data-news-mount].news-featured { display: block; }
.inside-page--media [data-news-mount] .news-grid { display: grid; gap: 24px; }
.inside-page--media #actualites-news .news-grid { grid-template-columns: repeat(2, 1fr); }
.inside-page--media #index-news-mount .news-grid { grid-template-columns: repeat(3, 1fr); }
.inside-page--media [data-news-mount] .news-card { display: flex; flex-direction: column; }
.inside-page--media [data-news-mount] .news-visual { height: 188px; background-size: cover; background-position: center; background-color: var(--ice); }
.inside-page--media [data-news-mount] .news-card__body { display: flex; flex-direction: column; gap: 8px; flex: 1; }
.inside-page--media [data-news-mount] .news-read { margin-top: auto; }
.inside-page--media .news-loading { padding: 40px 0; color: var(--muted); }

/* news pagination (actualites) */
.news-pager { display: flex; justify-content: center; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 36px; }
.news-pager .news-page { min-width: 42px; height: 42px; padding: 0 13px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 1px solid var(--line, #e3e8ef); background: #fff; color: var(--color-primary-dark, #14304a); border-radius: 10px; font-weight: 600; font-size: .9rem; cursor: pointer; transition: border-color .18s, color .18s, background .18s; }
.news-pager .news-page:hover:not(.is-disabled):not(.is-active) { border-color: var(--teal, #2a9d8f); color: var(--teal, #2a9d8f); }
.news-pager .news-page.is-active { background: var(--teal, #1b5e8c); border-color: var(--teal, #1b5e8c); color: #fff; cursor: default; }
.news-pager .news-page.is-disabled { opacity: .4; cursor: not-allowed; }
.news-pager .news-page--nav span { font-size: .82rem; }
.news-pager .news-ellipsis { border: none; background: none; cursor: default; color: var(--muted, #9aa3af); min-width: 18px; padding: 0; }
@media (max-width: 560px) { .news-pager .news-page--nav span { display: none; } }
@media (max-width: 980px) {
    .inside-page--media #actualites-news .news-grid,
    .inside-page--media #index-news-mount .news-grid { grid-template-columns: 1fr; }
}
.inside-page--media .article-reader .article-panel h2 { margin-bottom: 6px; }
.inside-page--media .article-reader .article-date { color: var(--teal); font-weight: 800; text-transform: uppercase; letter-spacing: .06em; font-size: .72rem; margin-bottom: 14px; }
.inside-page--media .article-reader .article-gallery {
    display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin: 22px 0;
}
/* images show small at first; on hover they grow in-place to fill the drawer width,
   but never upscale past their own natural width (width:auto + max-width only never
   enlarges beyond the intrinsic size). Real box growth pushes content below down. */
.inside-page--media .article-reader .article-gallery img {
    display: block; width: auto; height: auto; max-width: 240px;
    border-radius: 10px; cursor: zoom-in; transition: max-width .45s ease;
}
.inside-page--media .article-reader .article-gallery img:hover { max-width: 100%; }
.inside-page--media .article-reader .article-files { margin-top: 24px; border-top: 1px solid var(--line); padding-top: 16px; }
.inside-page--media .article-reader .article-file { display: inline-flex; align-items: center; gap: 8px; padding: 8px 0; color: var(--blue); font-weight: 600; }

/* ============================================================
   Legal / Veille réglementaire document browser (cms/legal)
   driven by /api/legal/{site}/ via the cms-legal-js asset.
   ============================================================ */
.legal-browser-title { margin-top: 2.5rem; }
.legal-browser { margin-top: 1.4rem; }
.legal-browser .legal-toolbar { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-bottom: 16px; }
.legal-browser .legal-search-wrap { position: relative; flex: 1 1 280px; }
.legal-browser .legal-search-wrap i { position: absolute; inset-inline-start: 14px; top: 50%; transform: translateY(-50%); color: var(--color-gray, #8a93a0); pointer-events: none; }
.legal-browser .legal-search { width: 100%; padding: 11px 14px 11px 40px; border: 1px solid var(--color-light, #e3e8ef); border-radius: 10px; font-size: .95rem; }
[dir="rtl"] .legal-browser .legal-search { padding: 11px 40px 11px 14px; }
.legal-browser .legal-theme { padding: 11px 14px; border: 1px solid var(--color-light, #e3e8ef); border-radius: 10px; background: #fff; font-size: .9rem; color: var(--color-gray, #555); max-width: 280px; }
.legal-browser .legal-cats { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.legal-browser .legal-chip { border: 1px solid var(--color-light, #e3e8ef); background: #fff; color: var(--color-primary-dark, #14304a); padding: 7px 15px; border-radius: 999px; font-size: .85rem; font-weight: 600; cursor: pointer; transition: all .2s; }
.legal-browser .legal-chip span { opacity: .55; font-weight: 500; margin-inline-start: 3px; }
.legal-browser .legal-chip:hover { border-color: var(--color-secondary, #c9a14a); }
.legal-browser .legal-chip.is-active { background: var(--color-primary, #1b5e8c); border-color: var(--color-primary, #1b5e8c); color: #fff; }
.legal-browser .legal-chip.is-active span { opacity: .85; }
.legal-browser .legal-count { color: var(--color-gray, #777); font-size: .85rem; margin: 0 0 10px; }
/* fixed-height scroll area: the list fills ~one screen and scrolls internally,
   instead of stretching the whole page down through hundreds of records. */
.legal-browser .legal-list { list-style: none; margin: 0; padding: 6px; display: flex; flex-direction: column; gap: 8px; max-height: 72vh; min-height: 300px; overflow-y: auto; overscroll-behavior: contain; scroll-behavior: smooth; border: 1px solid var(--color-light, #e8edf3); border-radius: 14px; background: var(--color-light, #f6f8fb); }
.legal-browser .legal-list:focus-visible { outline: 2px solid var(--color-primary, #1b5e8c); outline-offset: 2px; }
.legal-browser .legal-list::-webkit-scrollbar { width: 10px; }
.legal-browser .legal-list::-webkit-scrollbar-track { background: transparent; }
.legal-browser .legal-list::-webkit-scrollbar-thumb { background: #c7d0db; border-radius: 8px; border: 2px solid transparent; background-clip: padding-box; }
.legal-browser .legal-list::-webkit-scrollbar-thumb:hover { background: #aab6c4; background-clip: padding-box; }
.legal-browser .legal-doc { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1px solid var(--color-light, #e8edf3); border-radius: 12px; background: #fff; text-decoration: none; transition: border-color .2s, box-shadow .2s, transform .2s; }
.legal-browser .legal-doc:hover { border-color: var(--color-secondary, #c9a14a); box-shadow: 0 4px 18px rgba(20,48,74,.08); transform: translateY(-1px); }
.legal-browser .legal-doc__icon { flex: none; width: 42px; height: 42px; display: grid; place-items: center; border-radius: 10px; background: rgba(192,57,43,.08); color: #c0392b; font-size: 1.15rem; }
.legal-browser .legal-doc__body { flex: 1; min-width: 0; }
.legal-browser .legal-doc__title { display: block; color: var(--color-primary-dark, #14304a); font-weight: 600; font-size: .95rem; line-height: 1.45; }
.legal-browser .legal-doc__meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 6px; }
.legal-browser .legal-tag { background: var(--color-light, #eef2f7); color: var(--color-primary, #1b5e8c); font-size: .72rem; font-weight: 600; padding: 3px 9px; border-radius: 6px; }
.legal-browser .legal-date { color: var(--color-gray, #8a93a0); font-size: .78rem; }
.legal-browser .legal-doc__dl { flex: none; color: var(--color-gray, #b3bac4); transition: color .2s; }
.legal-browser .legal-doc:hover .legal-doc__dl { color: var(--color-primary, #1b5e8c); }
.legal-browser .legal-empty { list-style: none; padding: 30px; text-align: center; color: var(--color-gray, #888); }
.legal-browser .legal-more-wrap { text-align: center; margin-top: 18px; }
.legal-browser .legal-more { background: var(--color-primary, #1b5e8c); color: #fff; border: none; padding: 11px 28px; border-radius: 10px; font-weight: 600; cursor: pointer; transition: background .2s; }
.legal-browser .legal-more:hover { background: var(--color-primary-dark, #14304a); }
.legal-browser .legal-loading { color: var(--color-gray, #888); padding: 20px 0; }
.legal-browser .legal-doc { cursor: pointer; }

/* ===== PDF drawer (legal docs open here instead of a new tab) ===== */
.pdf-reader { position: fixed; inset-block: 0; inset-inline-start: 0; z-index: 1001; width: 80vw; max-width: 1150px; min-width: min(760px, 80vw); display: flex; flex-direction: column; background: #fff; box-shadow: 0 28px 76px rgba(15,35,70,.18); transform: translateX(-104%); transition: transform .34s cubic-bezier(.22, 1, .36, 1); }
.pdf-reader.is-open { transform: translateX(0); }
/* RTL: keep the inset-inline-start (= RIGHT) anchor like the news drawer;
   only flip the closed-state hide transform so it clears off the RIGHT edge.
   (Overriding the anchor to inset-inline-end left a ~17vw strip visible,
   because translateX(104%) is calibrated for a right-anchored panel.) */
[dir="rtl"] .pdf-reader { transform: translateX(104%); }
[dir="rtl"] .pdf-reader.is-open { transform: translateX(0); }
.pdf-reader-backdrop { position: fixed; inset: 0; z-index: 1000; background: rgba(7,16,36,.5); backdrop-filter: blur(4px); }
.pdf-reader-backdrop[hidden] { display: none !important; }
.pdf-reader__chrome { display: flex; align-items: center; gap: 16px; padding: 13px 18px; color: #fff; background: radial-gradient(circle at 90% 16%, rgba(33,205,192,.34), transparent 30%), var(--navy-deep, #0f2346); }
.pdf-reader__meta { display: grid; gap: 3px; flex: 1; min-width: 0; }
.pdf-reader__meta span { color: var(--teal, #21cdc0); font-size: .64rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.pdf-reader__meta strong { font-size: .9rem; font-weight: 700; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pdf-reader__actions { display: flex; align-items: center; gap: 8px; flex: none; }
.pdf-reader__btn { display: inline-grid; place-items: center; width: 42px; height: 42px; border: 1px solid rgba(255,255,255,.28); color: #fff; background: rgba(255,255,255,.08); cursor: pointer; border-radius: 9px; font-size: 1.05rem; text-decoration: none; transition: background .18s; }
.pdf-reader__btn:hover { background: rgba(255,255,255,.2); }
.pdf-reader__close { font-size: 1.5rem; line-height: 1; }
.pdf-reader__frame { flex: 1; border: 0; width: 100%; background: #525659; }
body.has-open-pdf { overflow: hidden; }
@media (max-width: 980px) { .pdf-reader { width: 100vw; min-width: 0; max-width: none; } }
