/*
Theme Name: SDB Child
Author: Web Inzicht — (digital) communications & design
Author URI: https://webinzicht.nl/
Description: Custom child theme for the SDB website. This theme contains the website-specific design, layout and functionality and requires WP WIZ Theme 2026 (wpwebinzicht22) as its parent theme. Both themes are required for the website to function correctly. Please do not remove either theme.
Template: wpwebinzicht22
Version: 0.1.0
Text Domain: sdb-child
*/

/* -------------------------------------------------------------------*/
/* -- Local Fonts           ----------------------------------------- */
/* -------------------------------------------------------------------*/
/* Local type: only the supplied regular and bold weights. */
@font-face {
    font-family: 'Nunito Sans';
    src: url('assets/fonts/NunitoSans-400-static.woff2') format('woff2');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'Nunito Sans';
    src: url('assets/fonts/NunitoSans-700-static.woff2') format('woff2');
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: 'Noto Sans Arabic';
    src: url('assets/fonts/NotoSansArabic-Regular.woff2') format('woff2');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'Noto Sans Arabic';
    src: url('assets/fonts/NotoSansArabic-Bold.woff2') format('woff2');
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}


/* -------------------------------------------------------------------*/
/* -- Variables ----------------------------------------------------- */
/* -------------------------------------------------------------------*/

/* The reference is a 2000px artboard. Fluid measures preserve its proportions
   while content, rather than fixed screenshot heights, determines section size. */
:root {

    --sdb-blue:             #003366;
    --sdb-deep-blue:        #012851;
    --sdb-cyan:             #5bcae8;
    --sdb-gray:             #edf1f4;        /* HT GRAY */
    --sdb-green:            #85b08e;
    --sdb-orange:           #f29114;
    
    --sdb-text:             #305b8e;
    --sdb-pale-text:        #bdcfe0;
    --sdb-menu-text:        #ffffff;       /* #a8bfd3; */

    
    --sdb-rule:             1px solid var(--sdb-cyan);
    --sdb-inset:            clamp(1.5rem, 3.5vw, 4.375rem);
    --sdb-utility-height:   clamp(1.75rem, 3vw, 3.75rem);
    --sdb-header-height:    clamp(5rem, 7.2vw, 9rem);
    --sdb-section-start:    clamp(3.5rem, 6.6vw, 8.25rem);
    --sdb-section-end:      clamp(3.5rem, 6.2vw, 7.75rem);
    --sdb-heading-gap:      .85em;
    --sdb-paragraph-gap:    1.2em;
    --sdb-list-cta-gap:     clamp(2rem, 3.3vw, 4.125rem);

    /* redefining parent template */

    --global-font-primary:      'Nunito Sans', Arial, sans-serif;
    --global-font-secondary:    'Nunito Sans', Arial, sans-serif;
    
    --global-font-size-basic:   clamp(1rem, 1.2vw, 1.5rem);

    --global-color-body:        #fff;
    --global-color-pagediv:     #fff;
    --global-color-alltext:     var(--sdb-text);
    --global-color-h1:          var(--sdb-cyan);
    --global-color-h2h3:        var(--sdb-blue);
    --global-color-link:        var(--sdb-blue);
    --global-color-linkhov:     var(--sdb-text);
    --global-color-button:      var(--sdb-cyan);
    --global-color-buttxt:      var(--sdb-blue);
    --global-color-buthov:      var(--sdb-gray);
    --global-color-orange:      var(--sdb-orange);
    --global-color-cyan:        var(--sdb-cyan);

    --global-content-max:       100rem;
    --global-page-margin:       10%;
    --global-width-pagediv:     100%;
    --global-padding:           0;

}


/* -------------------------------------------------------------------*/
/* -- BASICS -------------------------------------------------------- */
/* -------------------------------------------------------------------*/

::selection {
    background-color:   var(--sdb-cyan);
    color:              var(--sdb-deep-blue);
}

body { line-height: 1.25; }

:lang(ar) { font-family: 'Noto Sans Arabic', sans-serif; }

img { max-width: 100%; height: auto; }

h1, h2, h3 {
    font-weight: 700;
    line-height: 1.2;
}

h1 {
    border: 0;
    padding: 0;
    margin: 0;
}

p { margin: 0 0 var(--sdb-paragraph-gap); }

a { text-underline-offset: .2em; }

a:focus-visible, button:focus-visible {
    outline: 3px solid var(--sdb-orange);
    outline-offset: 5px;
}


/* -------------------------------------------------------------------*/
/* -- ACCESABILITY -------------------------------------------------- */
/* -------------------------------------------------------------------*/


.skip-link { background: #fff; color: var(--sdb-blue); }


/* -------------------------------------------------------------------*/
/* -- BASIC BLOCKS -------------------------------------------------- */
/* -------------------------------------------------------------------*/


.sdb-container {
    width: calc(100% - 2 * var(--global-page-margin));
    max-width: var(--global-content-max);
    margin-inline: auto;
}

/* Keep inherited ordinary pages usable without imposing homepage structure. */
.site-main:not(.sdb-home) {
    width: calc(100% - 2 * var(--global-page-margin));
    max-width: var(--global-content-max);
    margin-inline: auto;
    padding-block: 3rem;
}

/* Header: both menu lists stay inside the navigation controlled by WIZ22 JS. */
.sdb-header {
    --sdb-ht-width: clamp(6.25rem, 10vw, 12.5rem);
    --sdb-ht-inline-offset: clamp(-1.75rem, -1.4vw, -.875rem);
    --sdb-wordmark-width: clamp(9rem, 13.4vw, 16.75rem);
    position: relative;
    z-index: 2;
    color: var(--sdb-menu-text);
    background: linear-gradient(to bottom, var(--sdb-deep-blue) 0 var(--sdb-utility-height), var(--sdb-blue) var(--sdb-utility-height) 100%);
    border-block-end: clamp(3px, .4vw, 8px) solid var(--sdb-cyan);
}

.sdb-header-grid {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: end;
    min-height: calc(var(--sdb-utility-height) + var(--sdb-header-height));
    gap: clamp(1rem, 3vw, 3.75rem);
}

.sdb-brand {
    display: flex;
    align-items: center;
    height: var(--sdb-header-height);
    text-decoration: none;
}

.sdb-brand-ht {
    /* Transparent margins are part of the original crest asset. */
    width: var(--sdb-ht-width);
    max-width: none;
    margin-inline-start: var(--sdb-ht-inline-offset);
    margin-inline-end: clamp(-.5rem, -.4vw, -.25rem);
    transform: translateY(20%);
}


/* -------------------------------------------------------------------*/
/* -- Header & Menu ------------------------------------------------- */
/* -------------------------------------------------------------------*/

.sdb-brand-samawat { width: var(--sdb-wordmark-width); }

.sdb-header .navblock { padding: 0; min-width: 0; }
.sdb-header .primary-navigation { width: 100%; }

.sdb-header ul.menu-wrapper,
.sdb-footer ul.menu-wrapper {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35em 0;
    list-style: none;
    margin: 0;
    padding: 0;
}

.sdb-header ul.menu-wrapper { justify-content: flex-end; }
.sdb-header .navblock ul.menu-wrapper li { margin: 0; }

.sdb-header .menu-wrapper li + li::before,
.sdb-footer .menu-wrapper li + li::before {
    content: '|';
    margin-inline: .65em;
    color: var(--sdb-cyan);
}

.sdb-header a, .sdb-footer a { color: inherit; text-decoration: none; }
.sdb-header nav a:hover, .sdb-footer a:hover { text-decoration: underline; }

#secondary-menu-list {
    min-height: var(--sdb-utility-height);
    font-size: clamp(.625rem, .8vw, 1rem);
    text-transform: uppercase;
}

#secondary-menu-list li + li::before { margin-inline: .35em; }

#primary-menu-list {
    min-height: var(--sdb-header-height);
    font-size: clamp(.875rem, 1.2vw, 1.5rem);
    letter-spacing: .06em;
    text-transform: uppercase;
}

.sdb-header .mobileswitch { border: 0; background: transparent; padding: .5rem; }
.sdb-header .mobileswitch[hidden] { display: none; }

/* WIZ22 mobile states: .show stays set through the 500ms close cleanup;
   .appear drives the shorter visual transition. Keep both buttons in their
   existing flex position: the parent shows only one at a time. */
@media (max-width: 1023px) {
    /* Retain the layout width when WIZ22 fixes the body to lock scrolling. */
    html { scrollbar-gutter: stable; }

    @supports (scrollbar-gutter: stable) {
        body:has(.sdb-header #site-navigation.show) {
            /* The root gutter already compensates for the scrollbar. WIZ22
               otherwise adds this same space again as inline paddingRight. */
            padding-right: 0 !important;
        }
    }

    .sdb-header {
        z-index: 1000;
        --sdb-menu-admin-offset: 0px;
    }

    body.admin-bar .sdb-header {
        --sdb-menu-admin-offset: var(--wp-admin--admin-bar--height, 32px);
    }

    /* A fixed body no longer receives WordPress's html top-margin offset. */
    body.admin-bar .sdb-header:has(#site-navigation.show) {
        padding-block-start: var(--sdb-menu-admin-offset);
    }

    .sdb-header .navblock {
        align-self: start;
        /* Wordmark SVG ratio: 444.39 x 84.42. Subtract the existing button's
           .5rem padding so the visible icon, not its hit area, aligns. */
        margin-block-start: calc(var(--sdb-utility-height) + (var(--sdb-header-height) - var(--sdb-wordmark-width) * 84.42 / 444.39) / 2 - .5rem);
    }

    .sdb-header #site-navigation {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 1;
        width: 100vw;
        height: 100vh;
        height: 100dvh;
        overflow-y: auto;
        overscroll-behavior: contain;
        /* Crest bottom = header centre + half its square box + 20% drop. */
        padding-block-start: calc(var(--sdb-menu-admin-offset) + var(--sdb-utility-height) + var(--sdb-header-height) / 2 + var(--sdb-ht-width) * .7 + var(--sdb-inset));
        padding-block-end: max(var(--sdb-inset), env(safe-area-inset-bottom));
        padding-inline: var(--sdb-inset);
        /* The supplied 500px crest has a 73px visible-art inset at the left. */
        padding-inline-start: calc(max(var(--global-page-margin), (100% - var(--global-content-max)) / 2) + var(--sdb-ht-inline-offset) + var(--sdb-ht-width) * 73 / 500);
        background: var(--sdb-deep-blue);
        color: var(--sdb-menu-text);
        visibility: hidden;
        opacity: 0;
        pointer-events: none;
        transition: opacity 250ms ease;
    }

    .sdb-header #site-navigation.show {
        visibility: visible;
        pointer-events: auto;
    }

    .sdb-header #site-navigation.show.appear {
        opacity: 1;
    }

    /* Keep the original composition in normal header flow above the panel.
       Relative positioning supplies stacking only: no offsets or resizing. */
    .sdb-header-grid > .sdb-brand {
        position: relative;
        z-index: 2;
    }

    /* Relative positioning changes only stacking, never the button coordinates. */
    .sdb-header .mobileswitch {
        position: relative;
        z-index: 2;
    }

    .sdb-header #site-navigation ul.menu-wrapper {
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
        flex-wrap: nowrap;
        min-height: 0;
        gap: .75rem;
        transform: translateY(-1rem);
        transition: transform 250ms ease;
    }

    .sdb-header #site-navigation.show.appear ul.menu-wrapper {
        transform: translateY(0);
    }

    .sdb-header #site-navigation .menu-wrapper li + li::before {
        content: none;
    }

    .sdb-header #site-navigation #secondary-menu-list {
        flex-direction: row;
        align-items: center;
        gap: 1rem;
        white-space: nowrap;
        margin-block-end: var(--sdb-inset);
        font-size: .875rem;
    }

    .sdb-header #primary-menu-list {
        font-size: clamp(1.125rem, 2.4vw, 1.5rem);
    }

    .sdb-header #site-navigation a {
        display: inline-block;
        padding-block: .5rem;
    }
}

@media (max-width: 782px) {
    body.admin-bar .sdb-header {
        --sdb-menu-admin-offset: var(--wp-admin--admin-bar--height, 46px);
    }
}

@media (max-width: 1023px) and (prefers-reduced-motion: reduce) {
    .sdb-header #site-navigation,
    .sdb-header #site-navigation ul.menu-wrapper {
        transition: none;
        transform: none;
    }
}



/* -------------------------------------------------------------------*/
/* -- Content Child Theme        ------------------------------------ */
/* -------------------------------------------------------------------*/


/* Shared homepage type and buttons. */
.sdb-home h1, .sdb-home h2 {
    font-size: clamp(1.75rem, 2.4vw, 3rem);
    letter-spacing: .08em;
    text-transform: uppercase;
}

.sdb-home .sdb-eyebrow,
body.page:not(.home) .thearticle.page .sdb-eyebrow {
    margin-block-end: 1.1em;
    color: var(--sdb-cyan);
    font-size: clamp(1rem, 1.5vw, 1.875rem);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.sdb-actions { display: flex; flex-wrap: wrap; gap: clamp(.75rem, 1vw, 1.25rem); }

.sdb-button,
body.page:not(.home) .thearticle.page .wp-block-button__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    padding: .95em 1.65em;
    border: var(--sdb-rule);
    background: var(--sdb-blue);
    color: #fff;
    font-size: clamp(.875rem, 1.2vw, 1.5rem);
    line-height: 1.1;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    border-radius: 0;
    font-family: inherit;
}

.sdb-button-cyan { 
    background: var(--sdb-cyan); 
    border-color: var(--sdb-text); 
}
.sdb-button-white { 
    background: #fff; 
    color: var(--sdb-text); 
}
.sdb-button:hover,
body.page:not(.home) .thearticle.page .wp-block-button__link:hover {
    background: var(--sdb-cyan); 
    color: #fff; 
    border-color: var(--sdb-text);
}

.sdb-button-white:hover,
.sdb-button-cyan:hover {
    background: var(--sdb-deep-blue); 
    color: #fff; 
    }



/* ------------------------*/
/* -- Content HOME      -- */
/* ------------------------*/

/* ------------------HOME - HERO ------------ */

/* The globe is the supplied SVG used as a mask; its source artwork is black. */
.sdb-hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    padding-block: clamp(6rem, 12vw, 15rem) clamp(3rem, 5.5vw, 6.875rem);
    border-block-end: clamp(3px, .4vw, 8px) solid var(--sdb-cyan);
}

.sdb-hero::before {
    content: '';
    position: absolute;
    z-index: -1;
    inset: 0;
    background: #00ade0;
    -webkit-mask: url('assets/images/background_halftone_globe_mathematical_reconstruction_noBG.svg') left top / 108% auto no-repeat;
    mask: url('assets/images/background_halftone_globe_mathematical_reconstruction_noBG.svg') left top / 108% auto no-repeat;
}

.sdb-hero-panel {
    width: 83%;
    padding: clamp(2rem, 4.5vw, 5.625rem) var(--sdb-inset) clamp(2rem, 3.8vw, 4.75rem);
    border: 1px solid #b7e7f3;
    background: rgb(255 255 255 / 89%);
}

.sdb-hero .sdb-eyebrow { color: var(--sdb-text); margin-block-end: 1em; }
.sdb-hero h1 { color: var(--sdb-cyan); margin-block-end: .5em; }
.sdb-hero-intro { font-size: clamp(1.125rem, 1.5vw, 1.875rem); }
.sdb-hero-intro > :last-child { margin-block-end: 0; }
.sdb-hero .sdb-actions { margin-block-start: clamp(2rem, 3.2vw, 4rem); }

/* ------------------HOME - Partnership ------------ */

.sdb-partnership {
	background: var(--sdb-gray);
}

.sdb-partnership-inner {
	/* padding-inline: var(--sdb-inset); */
	padding-block: var(--sdb-section-start) var(--sdb-section-end);
    
}


.sdb-partnership .sdb-section-content {
border-left: 6px solid var(--sdb-orange);
}

.sdb-partnership .sdb-eyebrow {
	margin-block: 0 .8rem;
    color: var(--sdb-cyan);
    
}

.sdb-partnership h2 {
	margin-block-end: var(--sdb-heading-gap);
	
    color: var(--sdb-blue);
}

.sdb-partnership-inner > p:not(.sdb-eyebrow, .sdb-actions) {
	max-width: 52rem;
	margin-block: 0;
}

.sdb-partnership .sdb-actions {
	margin-block: 2rem 0;
}


/* ------------------HOME - SERVICES ------------ */

/* Dark separator bands belong to the sections, not empty layout elements. */
.sdb-services, .sdb-lcl, .sdb-partnership { border-block-start: clamp(3rem, 5.2vw, 6.5rem) solid var(--sdb-blue); }

.sdb-section-content { padding-inline: var(--sdb-inset); }
.sdb-section-content h2 { margin-block-end: var(--sdb-heading-gap); }

.sdb-services {
    color: var(--sdb-pale-text);
    background: linear-gradient(rgb(0 51 102 / 48%), rgb(0 51 102 / 48%)), url('assets/images/background_nautical_map_notext_v07.png') center / cover no-repeat, var(--sdb-blue);
    background-blend-mode: normal, luminosity;
    box-shadow: inset 0 1px var(--sdb-cyan);
}

.sdb-services .sdb-section-content {
    padding-block: clamp(3.5rem, 7vw, 8.75rem) clamp(2.5rem, 4.2vw, 5.25rem);
}

.sdb-services h2 { color: #fff; }

.sdb-service-list { 
    margin-block: clamp(1.5rem, 2.7vw, 3.375rem) clamp(2rem, 3.8vw, 4.75rem); 
    gap: 0;
}


.sdb-service-list h3 { 
  
    color: var(--sdb-cyan); 
    font-weight: 700; 
    text-transform: uppercase; 
    margin: 0;
}
.sdb-service-list p { 
    margin: 0 0 1em; 
}

.sdb-service-list h3,
.sdb-service-list p {
    /* margin: 0;
    padding: 0; */
}


.sdb-service-list p:last-child { margin-block-end: 0; }


/* ------------------HOME - LCL ------------ */

.sdb-lcl {
    background: linear-gradient(rgb(255 255 255 / 88%), rgb(255 255 255 / 88%)), url('assets/images/background_starchart_withtext_v07.png') center bottom / cover no-repeat;
    box-shadow: 0 -1px var(--sdb-cyan), inset 0 clamp(3px, .4vw, 8px) var(--sdb-cyan);
}

.sdb-lcl .sdb-section-content { padding-block: var(--sdb-section-start) var(--sdb-section-end); }
.sdb-lcl h2 { color: var(--sdb-blue); }

.sdb-lcl-benefits { padding-inline-start: .8em; margin-block: 0 var(--sdb-list-cta-gap); line-height: 1.5; }
ul.sdb-lcl-benefits  {margin-top: 1em;}
.sdb-lcl-benefits li::marker { color: var(--sdb-cyan); }



/* ------------------HOME - Anniversary ------------ */


/* Anniversary presentation: live text and the unchanged supplied crest. */
.sdb-anniversary { background: var(--sdb-gray); border-block-start: var(--sdb-rule); }
.sdb-anniversary-inner { display: flex; align-items: center; gap: clamp(.75rem, 1vw, 1.25rem); padding-block: clamp(2rem, 3.3vw, 4.125rem); }
.sdb-anniversary img { width: clamp(4.75rem, 7.2vw, 9rem); margin-inline-start: -1vw; flex-shrink: 0; }
.sdb-anniversary h2 { color: var(--sdb-blue); line-height: 1; }
.sdb-anniversary h2 span { color: var(--sdb-orange); }
.sdb-anniversary p { margin: 0; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.sdb-anniversary-message { color: var(--sdb-cyan); font-size: clamp(1.125rem, 1.9vw, 2.375rem); }
.sdb-anniversary .sdb-anniversary-company { color: var(--sdb-green); margin-block-start: .3em; }


/* ------------------------*/
/* -- Content OTHER PAGES  */
/* ------------------------*/

/* Keep the inherited page.php H1 and a single column of ordinary editor blocks.
   The centre track equals .sdb-container minus its usual .sdb-section-content
   inset. Outer tracks are gutters; section backgrounds can span all tracks. */



body.page:not(.home) .site-main {
    --sdb-page-inline-inset: var(--sdb-inset);
    width: 100%;
    max-width: none;
    padding-block: var(--sdb-section-start) var(--sdb-section-end);
}

body.page:not(.home) .site-main > .page-header {
    width: calc(100% - 2 * var(--global-page-margin));
    max-width: var(--global-content-max);
    margin-inline: auto;
    padding-inline: var(--sdb-page-inline-inset);
    margin-block-end: var(--sdb-inset);
}

body.page:not(.home) .page-title {
    color: var(--sdb-cyan);
    font-size: clamp(1rem, 1.5vw, 1.875rem);
    letter-spacing: .08em;
    text-transform: uppercase;
}

body.page:not(.home) .thearticle.page {
    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        minmax(0, calc(min(100% - 2 * var(--global-page-margin), var(--global-content-max)) - 2 * var(--sdb-page-inline-inset)))
        minmax(0, 1fr);
    /* Element margins supply the spacing; grid gaps would add to them. */
    row-gap: 0;
    line-height: 1.25;
}

body.page:not(.home) .thearticle.page > * {
    grid-column: 2;
    min-width: 0;
    margin-block: 0;
}

body.page:not(.home) .thearticle.page h2 {
    /* Keep long titles readable without inserting editorial line breaks. */
    max-inline-size: min(100%, 44ch);
    text-wrap: balance;
    color: var(--sdb-blue);
    font-size: clamp(1.75rem, 2.4vw, 3rem);
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-block: var(--sdb-section-start) var(--sdb-heading-gap);
}

body.page:not(.home) .thearticle.page > h2:first-child { margin-block-start: 0; }

body.page:not(.home) .thearticle.page p {
    margin-block: 0 var(--sdb-paragraph-gap);
}

/* The eyebrow already supplies the complete gap above its heading. */
body.page:not(.home) .thearticle.page .sdb-eyebrow + h2 {
    margin-block-start: 0;
}

/* Reusable gray section for any ordinary page: add sdb-page-section to a
   top-level Group using Flow layout, and sdb-eyebrow to its optional intro label.
   No partnership class, nested container or custom editor spacing is needed. */
body.page:not(.home) .thearticle.page > .sdb-page-section {
    /* Subpage sections use a compact rhythm rather than homepage hero spacing. */
    --sdb-heading-gap: .6em;
    --sdb-paragraph-gap: .8em;
    --sdb-list-cta-gap: 1.2em;
    grid-column: 1 / -1;
    width: auto;
    max-width: none;
    margin-block: 0;
    padding-block: var(--sdb-inset);
    padding-inline: calc(max(var(--global-page-margin), (100% - var(--global-content-max)) / 2) + var(--sdb-page-inline-inset));
    background: var(--sdb-gray);
}

/* Compatibility with existing LCL Groups that still carry sdb-partnership. */
body.page:not(.home) .thearticle.page > .sdb-page-section.sdb-partnership {
    border: 0;
}

body.page:not(.home) .thearticle.page .sdb-page-section h2 {
    margin-block-start: 1.2em;
}

body.page:not(.home) .thearticle.page .sdb-page-section .sdb-eyebrow + h2 {
    margin-block-start: 0;
}

body.page:not(.home) .thearticle.page > .sdb-page-section .sdb-eyebrow {
    margin-block: 0 .8rem;
    color: var(--sdb-cyan);
    font-size: clamp(1rem, 1.5vw, 1.875rem);
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: .08em;
    text-transform: uppercase;
}

body.page:not(.home) .thearticle.page .sdb-page-section > :first-child { margin-block-start: 0; }
body.page:not(.home) .thearticle.page .sdb-page-section > :last-child { margin-block-end: 0; }

body.page:not(.home) .thearticle.page :where(ul, ol) {
    margin-block: 1em var(--sdb-list-cta-gap);
    padding-inline-start: .8em;
    line-height: 1.5;
}

/* Grid margins do not collapse: the preceding paragraph provides this gap. */
body.page:not(.home) .thearticle.page > p + :where(ul, ol) { margin-block-start: 0; }
body.page:not(.home) .thearticle.page ol { padding-inline-start: 1.5em; }
body.page:not(.home) .thearticle.page li + li { margin-block-start: 0; }
body.page:not(.home) .thearticle.page li > :where(ul, ol) { margin-block: 0; }
body.page:not(.home) .thearticle.page li::marker { color: var(--sdb-cyan); }
body.page:not(.home) .thearticle.page ol > li::marker { font-weight: 700; }

/* Process lists: a normal numbered List block inside a page section.
   The native list-item counter preserves start/reversed/value numbering.
   Nested lists keep the ordinary list treatment. */
body.page:not(.home) .thearticle.page .sdb-page-section ol:not(li ol) {
    --sdb-number-width: clamp(3rem, 4vw, 5rem);
    list-style-type: decimal-leading-zero;
    list-style-position: outside;
    padding-inline-start: 0;
}

body.page:not(.home) .thearticle.page .sdb-page-section ol:not(li ol) > li {
    position: relative;
    padding-inline-start: calc(var(--sdb-number-width) + .65em);
    padding-block: .25em;
}

body.page:not(.home) .thearticle.page .sdb-page-section ol:not(li ol) > li + li {
    margin-block-start: .35em;
}

body.page:not(.home) .thearticle.page .sdb-page-section ol:not(li ol) > li::marker {
    content: '';
    font-size: 0;
    color: transparent;
}

body.page:not(.home) .thearticle.page .sdb-page-section ol:not(li ol) > li::before {
    content: counter(list-item, decimal-leading-zero) '.';
    position: absolute;
    inset-block: 0;
    inset-inline-start: 0;
    inline-size: var(--sdb-number-width);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    line-height: 1;
    pointer-events: none;
    color: var(--sdb-cyan);
    font-size: clamp(1.75rem, 2.4vw, 3rem);
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

body.page:not(.home) .thearticle.page .sdb-page-section li ol {
    list-style-type: decimal;
}

body.page:not(.home) .thearticle.page .wp-block-buttons {
    gap: clamp(.75rem, 1vw, 1.25rem);
    margin-block: 2rem 0;
}

body.page:not(.home) .thearticle.page :where(ul, ol) + .wp-block-buttons {
    margin-block-start: 0;
}

body.page:not(.home) .thearticle.page .sdb-page-section .wp-block-buttons {
    margin-block-start: var(--sdb-list-cta-gap);
}

body.page:not(.home) .thearticle.page .sdb-page-section :where(ul, ol) + .wp-block-buttons {
    margin-block-start: 0;
}

body.page:not(.home) .thearticle.page > p:has(+ .wp-block-buttons) {
    margin-block-end: 0;
}

/* Compact transitions into and out of gray subpage sections. */
body.page:not(.home) .thearticle.page > :not(.sdb-page-section):has(+ .sdb-page-section) {
    margin-block-end: var(--sdb-inset);
}

body.page:not(.home) .thearticle.page > .sdb-page-section + h2 {
    margin-block-start: var(--sdb-inset);
}

/* The final section already supplies its bottom padding. */
body.page:not(.home) .site-main:has(> .thearticle.page > .sdb-page-section:last-child) {
    padding-block-end: 0;
}

/* A following heading supplies the next white section's top spacing. */
body.page:not(.home) .thearticle.page > :not(.sdb-eyebrow):has(+ h2) {
    margin-block-end: 0;
}

body.page:not(.home) .thearticle.page > :last-child {
    margin-block-end: 0;
}

/* Match the narrow footer's container edges without changing vertical spacing. */
@media (max-width: 767px) {
    body.page:not(.home) .site-main:not(.sdb-home) {
        --sdb-page-inline-inset: 0px;
    }
}



/* -------------------------------------------------------------------*/
/* -- FOOTER                     ------------------------------------ */
/* -------------------------------------------------------------------*/


/* Footer: menu, editable contact widgets, associations, legal links, copyright. */
.sdb-footer {
    border-block-start: clamp(3px, .4vw, 8px) solid var(--sdb-cyan);
    background: var(--sdb-blue);
    color: var(--sdb-cyan);
    font-size: clamp(.75rem, 1vw, 1.25rem);
    text-transform: uppercase;
}

.sdb-footer-navigation { padding-block: clamp(2.5rem, 5vw, 6.25rem); border-block-end: 1px solid rgb(91 202 232 / 40%); color: var(--sdb-menu-text); letter-spacing: .06em; }
.sdb-footer-content { padding-block: clamp(2.5rem, 4.2vw, 5.25rem) clamp(1.5rem, 2.6vw, 3.25rem); }
.sdb-footer-columns { display: grid; grid-template-columns: 1.6fr 1fr; gap: 2rem; align-items: end; }

.sdb-footer-contact { font-style: normal; line-height: 1.8; }
.sdb-footer-contact a { color: var(--sdb-menu-text); }
.sdb-footer-contact strong {
     color: #fff; 
     font-weight: 700; 
     line-height: 1.15; 
     margin-block-end: 1em; 
    }

.sdb-associations p { margin-block-end: .9em; letter-spacing: .05em; }
.sdb-association-logos { display: flex; gap: clamp(.5rem, .8vw, 1rem); }
.sdb-association-logos img { width: clamp(2.75rem, 4.6vw, 5.75rem); object-fit: contain; }
.sdb-legal { margin-block-start: clamp(2rem, 4vw, 5rem); letter-spacing: .06em; }
.sdb-copyright { padding-block: 1.2em; border-block-start: 1px solid rgb(91 202 232 / 40%); background: var(--sdb-deep-blue); font-size: clamp(.625rem, .8vw, 1rem); letter-spacing: .06em; text-align: center; }

/* Narrow footer: retain the existing container and document order. */
@media (max-width: 767px) {
    .sdb-footer-columns {
        grid-template-columns: minmax(0, 1fr);
        align-items: start;
        gap: var(--sdb-inset);
    }

    .sdb-footer-navigation #footer-menu-list {
        inline-size: 100%;
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
        gap: .75em;
        text-align: start;
    }

    .sdb-footer-navigation #footer-menu-list > li + li::before {
        content: none;
    }

    .sdb-footer-navigation #footer-menu-list > li > a {
        display: block;
        padding-block: .5em;
    }
}
