/* Hero v7 replacement. Header, categories and footer retain the v6 shell.
   Bootstrap owns slide state; its grid tracks reserve the tallest campaign. */
.gd-home .gd7-hero { --gd7-blue:#3448ff; --gd7-ink:#0b152b; position:relative; isolation:isolate; background:#fbfcff; color:var(--gd7-ink); overflow:hidden; overflow:clip; }
.gd-home .gd7-hero::before { content:""; position:absolute; inset:0; z-index:-1; background:url('../hero-v7/hero-color-fields.svg') center/100% 100% no-repeat; pointer-events:none; }
.gd7-hero #heroCarousel { max-width:1440px; margin-inline:auto; }
.gd7-hero #heroCarousel .carousel-inner { overflow:visible; }
.gd7-hero .gd7-inner { position:relative; height:100%; min-height:760px; padding:48px 6.25% 156px; }
.gd7-hero .gd7-copy { position:relative; z-index:2; width:46%; padding-top:12px; min-width:0; }
.gd-home .gd7-hero .gd7-title { font-size:clamp(40px,4.4vw,66px); line-height:1.08; letter-spacing:-.045em; font-weight:800; color:var(--gd7-ink); margin:0 0 26px; text-wrap:balance; overflow-wrap:break-word; }
.gd7-hero .gd7-accent { color:#4467df; background:linear-gradient(100deg,#ed3fa4 0%,#ff7964 24%,#ef9b13 43%,#8170cd 63%,#2297cf 85%); background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.gd-home .gd7-hero .gd7-description { font-size:18px; line-height:1.65; color:#52617b; max-width:515px; margin:0 0 28px; overflow-wrap:anywhere; }
.gd7-hero .gd7-actions { display:flex; flex-wrap:wrap; gap:16px; align-items:center; }
.gd-home .gd7-hero .gd7-cta { display:inline-flex; align-items:center; justify-content:center; gap:18px; min-height:56px; padding:16px 28px; border-radius:18px; background:var(--gd7-blue); color:white; font-weight:700; font-size:17px; text-decoration:none; box-shadow:0 12px 28px #3448ff22; }
.gd-home .gd7-hero .gd7-cta:hover { background:#2438d8; color:white; }
.gd7-hero .gd7-art { position:absolute; inset:18px 2% 30px 44%; pointer-events:none; }
.gd7-hero .gd7-photo { position:absolute; inset:0; background:#e4eff7; -webkit-mask:url('../hero-v7/hero-universal-mask.svg') center/100% 100% no-repeat; mask:url('../hero-v7/hero-universal-mask.svg') center/100% 100% no-repeat; }
/* Shared full-frame layout, with a matching mask/contour for each silhouette. */
.gd7-hero .gd7-art--arch .gd7-photo { -webkit-mask-image:url('../hero-v7/hero-mask-arch.svg'); mask-image:url('../hero-v7/hero-mask-arch.svg'); }
.gd7-hero .gd7-art--diagonal .gd7-photo { -webkit-mask-image:url('../hero-v7/hero-mask-diagonal.svg'); mask-image:url('../hero-v7/hero-mask-diagonal.svg'); }
.gd7-hero .gd7-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:var(--gd7-focus,64% 45%); }
.gd7-hero .gd7-contour { position:absolute; inset:0; width:100%; height:100%; }
.gd7-hero .gd7-controls { position:absolute; z-index:3; inset:18px auto 30px 50%; width:100vw; transform:translateX(-50%); pointer-events:none; }
.gd7-hero .gd7-control { display:grid; place-items:center; cursor:pointer; font:inherit; position:absolute; top:50%; transform:translateY(-50%); pointer-events:auto; box-shadow:0 4px 18px #0b152b18; width:46px; height:46px; padding:0; border:1px solid #dce3f0; border-radius:14px; background:white; color:var(--gd7-ink); font-size:23px; }
.gd7-hero .gd7-control[data-slide="prev"] { left:16px; }
.gd7-hero .gd7-control[data-slide="next"] { right:16px; }
.gd7-hero .gd7-control:hover { background:#edf1ff; }
.gd-home .gd7-hero :is(a,button):focus-visible { outline:3px solid #174bc7; outline-offset:4px; }
@media(min-width:1441px) { .gd7-hero .gd7-inner { padding-inline:90px; } }
@media(min-width:768px) and (max-width:1023px) {
    .gd7-hero .gd7-inner { min-height:660px; padding:40px 72px 140px; }
    .gd7-hero .gd7-copy { width:47%; padding-top:8px; }
    .gd-home .gd7-hero .gd7-title { font-size:42px; }
    .gd-home .gd7-hero .gd7-description { font-size:16px; }
    .gd7-hero .gd7-art { inset:28px 2% 45px 43%; }
    .gd7-hero .gd7-controls { inset:28px auto 45px 50%; }
}
@media(max-width:767px) {
    .gd7-hero .gd7-inner { padding:20px 20px 0; min-height:0; display:flex; flex-direction:column; }
    .gd7-hero .gd7-copy { width:100%; padding-top:0; }
    .gd-home .gd7-hero .gd7-title { font-size:clamp(30px,8.5vw,40px); line-height:1.12; letter-spacing:-.035em; margin-bottom:18px; }
    .gd-home .gd7-hero .gd7-description { font-size:16px; line-height:1.6; margin-bottom:22px; }
    .gd-home .gd7-hero .gd7-cta { min-height:52px; padding:14px 24px; font-size:16px; }
    .gd7-hero .gd7-art { position:relative; inset:auto; width:calc(100% + 24px); margin:22px -12px 0; aspect-ratio:1.25; margin-top:auto; padding-top:22px; box-sizing:content-box; }
    .gd7-hero .gd7-photo, .gd7-hero .gd7-contour { top:22px; height:calc(100% - 22px); }
    .gd7-hero .gd7-photo img { object-position:var(--gd7-focus-mobile,60% 45%); }
    .gd7-hero .gd7-controls { inset:auto 8px 0; width:auto; transform:none; height:calc((100vw - 16px) / 1.25); }
    .gd7-hero .gd7-control[data-slide="prev"] { left:4px; }
    .gd7-hero .gd7-control[data-slide="next"] { right:4px; }
    .gd-home .gd7-hero::before { background-size:auto 440px; background-position:65% 65%; }
}
@media(prefers-reduced-motion:reduce) { .gd7-hero * { animation:none!important; transition:none!important; } }

/* One live statistics card, shared by all slides, at the lower left. */
.gd7-hero .gd7-composition { display:flow-root; position:relative; max-width:1440px; margin-inline:auto; }
.gd-home .gd7-hero .gd7-stats { position:absolute; z-index:4; left:6.25%; bottom:56px; width:min(720px,56%); display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); padding:14px 10px; margin:0; border:1px solid #e8edf5; border-radius:22px; background:#fff; color:#0b152b; box-shadow:0 12px 40px #18375b0a; }
.gd7-hero .gd7-stat { display:flex; align-items:center; gap:8px; min-width:0; padding:8px 10px; }
.gd7-hero .gd7-stat + .gd7-stat { border-left:1px solid #e8edf5; }
.gd7-hero .gd7-stat > div { min-width:0; }
.gd7-hero .gd7-stat-icon { display:grid; place-items:center; width:34px; height:34px; flex:0 0 34px; border-radius:50%; color:#3448ff; background:#edf0ff; font-size:20px; }
.gd7-hero .gd7-stat:nth-child(2) .gd7-stat-icon { color:#269747; background:#eaf7e7; }
.gd7-hero .gd7-stat:nth-child(3) .gd7-stat-icon { color:#c4830e; background:#fff3db; }
.gd7-hero .gd7-stat:nth-child(4) .gd7-stat-icon { color:#d63291; background:#fdeafa; }
.gd7-hero .gd7-stat strong { display:block; font-size:clamp(18px,1.6vw,22px); font-weight:800; line-height:1.25; letter-spacing:-.025em; overflow-wrap:anywhere; }
.gd7-hero .gd7-stat span { display:block; margin-top:4px; color:#52617b; font-size:12px; line-height:1.4; overflow-wrap:anywhere; }
@media(min-width:1200px) { .gd7-hero .gd7-has-stats .gd7-inner { padding-bottom:224px; } }
@media(min-width:1441px) { .gd-home .gd7-hero .gd7-stats { left:90px; } }
@media(max-width:1199px) {
    .gd-home .gd7-hero .gd7-stats { position:relative; inset:auto; width:calc(100% - 144px); margin:8px 72px 40px; }
}
@media(max-width:1023px) {
    .gd-home .gd7-hero .gd7-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .gd7-hero .gd7-stat:nth-child(odd) { border-left:0; }
    .gd7-hero .gd7-stat:nth-child(n+3) { border-top:1px solid #e8edf5; padding-top:12px; margin-top:6px; }
}
@media(max-width:767px) {
    .gd-home .gd7-hero .gd7-stats { width:calc(100% - 40px); margin:20px 20px 28px; padding:10px 6px; border-radius:20px; }
    .gd7-hero .gd7-stat { padding:6px; gap:7px; }
    .gd7-hero .gd7-stat-icon { width:28px; height:28px; flex-basis:28px; font-size:18px; }
    .gd7-hero .gd7-stat strong { font-size:18px; }
    .gd7-hero .gd7-stat span { font-size:12px; }
}

/* Original programme partner marks below statistics; no certification logos. */
.gd7-hero .gd7-proof { position:absolute; z-index:4; left:6.25%; bottom:28px; width:min(720px,56%); }
.gd-home .gd7-hero .gd7-proof .gd7-stats { position:relative; inset:auto; width:100%; margin:0; }
.gd7-hero .gd7-trust { display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.5fr); align-items:center; gap:20px; margin-top:20px; }
.gd7-hero .gd7-trust-caption { display:flex; align-items:center; gap:10px; min-width:0; }
.gd7-hero .gd7-trust-shield { width:30px; height:34px; flex:0 0 30px; }
.gd7-hero .gd7-trust strong { display:block; color:#0b152b; font-size:13px; font-weight:700; line-height:1.4; }
.gd-home .gd7-hero .gd7-trust p { color:#52617b; font-size:11px; line-height:1.5; margin:3px 0 0; }
.gd7-hero .gd7-trust-logos { display:grid; grid-template-columns:1.4fr 1fr .65fr 1.1fr; gap:14px; align-items:center; min-width:0; }
.gd7-hero .gd7-trust-logos img { display:block; width:100%; height:38px; object-fit:contain; filter:grayscale(1); }
@media(min-width:1441px) { .gd7-hero .gd7-proof { left:90px; } }
@media(max-width:1199px) { .gd7-hero .gd7-proof { position:relative; inset:auto; width:calc(100% - 144px); margin:8px 72px 40px; } }
@media(max-width:767px) {
    .gd7-hero .gd7-proof { width:calc(100% - 40px); margin:20px 20px 28px; }
    .gd7-hero .gd7-trust { grid-template-columns:minmax(0,1fr); gap:16px; margin-top:20px; }
    .gd7-hero .gd7-trust-logos { gap:14px; }
}
/* Keep the complete proof block within the narrower left-column footprint. */
@media(min-width:1200px) {
    .gd7-hero .gd7-proof { width:min(560px,44%); bottom:74px; }
    .gd-home .gd7-hero .gd7-proof .gd7-stats { padding:12px 8px; border-radius:18px; }
    .gd7-hero .gd7-stat { gap:6px; padding:6px 7px; }
    .gd7-hero .gd7-stat-icon { width:26px; height:26px; flex-basis:26px; font-size:17px; }
    .gd7-hero .gd7-stat strong { font-size:17px; }
    .gd7-hero .gd7-stat span { font-size:10px; margin-top:3px; }
    .gd7-hero .gd7-trust { gap:16px; margin-top:16px; }
    .gd7-hero .gd7-trust-caption { gap:8px; }
    .gd7-hero .gd7-trust-shield { width:24px; height:28px; flex-basis:24px; }
    .gd7-hero .gd7-trust strong { font-size:11px; }
    .gd-home .gd7-hero .gd7-trust p { font-size:10px; }
    .gd7-hero .gd7-trust-logos { gap:10px; }
    .gd7-hero .gd7-trust-logos img { height:30px; }
}
