/*
 * WDF Institutional Programs – frontend
 * v2.2.0
 */

/* Program cards: identities are always fully visible and centered. */
.wdf-project-card-identity,
.wdf-program-project-image {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    margin: 0 auto !important;
    object-fit: contain !important;
    object-position: 50% 50% !important;
}

.wdf-program-project-visual {
    background-position: 50% 50% !important;
    background-repeat: no-repeat !important;
    background-size: contain !important;
    background-color: rgb(4, 33, 65) !important;
}

.wdf-program-project-link {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    text-decoration: none !important;
}

/* Full-width project template. It deliberately breaks out of theme content wrappers. */
html:has(body.wdf-project-custom-fullwidth),
body.wdf-project-custom-fullwidth {
    overflow-x: clip;
}

body.wdf-project-custom-fullwidth #wdf-project-fullwidth {
    box-sizing: border-box !important;
    position: relative !important;
    left: 50% !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 0 0 -50vw !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #f4f7fb;
}

body.wdf-project-custom-fullwidth #wdf-project-fullwidth > * {
    max-width: none;
}

/* IIPC page */
.iipc-page {
    --iipc-navy: #0d2f5f;
    --iipc-navy-2: #123d76;
    --iipc-gold: #cfa64b;
    --iipc-gold-2: #e1bf6b;
    --iipc-ink: #142033;
    --iipc-muted: #5d6b82;
    --iipc-line: #dbe5f2;
    --iipc-bg: #f4f7fb;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 0 clamp(54px, 7vw, 96px);
    color: var(--iipc-ink);
    background: var(--iipc-bg);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.68;
}

.iipc-page * { box-sizing: border-box; }
.iipc-page img { max-width: 100%; }
.iipc-page h1,
.iipc-page h2,
.iipc-page h3 {
    font-family: Georgia, "Times New Roman", serif;
    color: #0f274a;
    line-height: 1.12;
    margin: 0 0 14px;
}
.iipc-page p { margin: 0 0 16px; }
.iipc-page a { color: #0d4fa5; text-decoration: none; }
.iipc-page a:hover { text-decoration: underline; }

.iipc-shell {
    width: min(100%, 1660px);
    margin: 0 auto;
    padding-left: clamp(18px, 4vw, 72px);
    padding-right: clamp(18px, 4vw, 72px);
}

.iipc-hero {
    width: 100%;
    background:
        radial-gradient(circle at 86% 18%, rgba(220,236,255,.95), rgba(220,236,255,0) 36%),
        linear-gradient(135deg, #fbfcff 0%, #edf3fa 100%);
    border-bottom: 1px solid #d6e2ef;
}

.iipc-hero-inner {
    min-height: 560px;
    padding-top: clamp(46px, 6vw, 92px);
    padding-bottom: clamp(46px, 6vw, 92px);
    display: grid;
    grid-template-columns: minmax(260px, .72fr) minmax(0, 1.55fr);
    align-items: center;
    gap: clamp(36px, 6vw, 98px);
}

.iipc-logo-box {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 320px;
}
.iipc-logo-box img {
    display: block;
    width: min(100%, 410px);
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 16px 24px rgba(14,38,75,.10));
}

.iipc-kicker {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 8px 14px;
    margin-bottom: 18px;
    background: #e4eefb;
    color: #174d94;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.iipc-hero-copy h1 {
    max-width: 1050px;
    font-size: clamp(40px, 5.2vw, 78px);
    letter-spacing: -.035em;
    margin-bottom: 18px;
}
.iipc-subtitle {
    max-width: 1060px;
    font-size: clamp(18px, 1.5vw, 24px);
    color: #35516f;
    margin-bottom: 24px !important;
}
.iipc-intro {
    max-width: 1120px;
    color: #344a64;
    font-size: 17px;
}

.iipc-meta {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
}
.iipc-meta li {
    min-width: 0;
    padding: 14px 15px;
    background: rgba(255,255,255,.84);
    border: 1px solid #d8e3f0;
    border-radius: 14px;
    box-shadow: 0 6px 18px rgba(16,35,67,.04);
}
.iipc-meta strong {
    display: block;
    margin-bottom: 4px;
    color: #60728b;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.iipc-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}
.iipc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 12px 17px;
    border-radius: 12px;
    border: 1px solid transparent;
    font-weight: 800;
    line-height: 1.2;
}
.iipc-btn:hover { text-decoration: none !important; }
.iipc-btn-primary { background: var(--iipc-navy); color: #fff !important; }
.iipc-btn-primary:hover { background: #092347; }
.iipc-btn-secondary { background: #fff; color: var(--iipc-navy) !important; border-color: #cad8ea; }
.iipc-btn-secondary:hover { background: #f8fbff; }

.iipc-section { margin-top: clamp(30px, 4.5vw, 62px); }
.iipc-section-title {
    max-width: 1120px;
    margin-bottom: 26px;
}
.iipc-section-title h2 { font-size: clamp(32px, 3.5vw, 52px); }
.iipc-section-title p { color: #536981; font-size: 17px; }

.iipc-grid-2 {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(360px, .75fr);
    gap: clamp(22px, 3vw, 40px);
    align-items: stretch;
}

.iipc-panel {
    background: #fff;
    border: 1px solid var(--iipc-line);
    border-radius: 26px;
    padding: clamp(24px, 3vw, 42px);
    box-shadow: 0 13px 34px rgba(12,31,60,.055);
}
.iipc-panel h2 { font-size: clamp(30px, 3vw, 46px); }
.iipc-lead { color: #304a68; font-size: 19px; }

.iipc-highlight {
    border-radius: 26px;
    padding: clamp(25px, 3vw, 42px);
    color: #fff;
    background: linear-gradient(155deg, #10346d 0%, #081f43 100%);
    box-shadow: 0 20px 42px rgba(5,28,60,.18);
}
.iipc-highlight h2,
.iipc-highlight h3 { color: #fff; }
.iipc-highlight h2 { font-size: clamp(30px, 3vw, 44px); }
.iipc-stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
    margin-top: 22px;
}
.iipc-stat {
    padding: 18px;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 18px;
    background: rgba(255,255,255,.07);
}
.iipc-stat strong {
    display: block;
    margin-bottom: 7px;
    color: #ffdc92;
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

.iipc-feature-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.iipc-feature-card,
.iipc-gallery-item {
    position: relative;
    min-width: 0;
    margin: 0;
    overflow: hidden;
    border: 1px solid #dbe5f0;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(12,31,60,.055);
}
.iipc-feature-card { height: clamp(270px, 26vw, 390px); }
.iipc-feature-card img,
.iipc-gallery-item img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}
.iipc-feature-card figcaption,
.iipc-gallery-item figcaption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 32px 14px 13px;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
    background: linear-gradient(transparent, rgba(4,20,43,.86));
}

.iipc-courses {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
.iipc-course-card {
    min-width: 0;
    padding: 24px;
    border: 1px solid #dbe5f0;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 9px 24px rgba(12,31,60,.045);
}
.iipc-course-card h3 { font-size: 24px; }
.iipc-course-card p { margin: 0; color: #4d6078; }

.iipc-band {
    padding: clamp(28px, 3.8vw, 54px);
    border: 1px solid #efddb1;
    border-radius: 26px;
    background: linear-gradient(135deg, #fffaf0 0%, #fff4d8 100%);
}
.iipc-band h2 { font-size: clamp(30px, 3vw, 46px); }
.iipc-band p { max-width: 1400px; margin-bottom: 0; font-size: 17px; color: #4d5360; }

.iipc-gallery-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    grid-auto-flow: dense;
    gap: 14px;
}
.iipc-gallery-item { height: 250px; }
.iipc-gallery-item.iipc-wide { grid-column: span 2; }
.iipc-gallery-item.iipc-tall { grid-row: span 2; height: 514px; }
.iipc-gallery-item.iipc-wide.iipc-tall { grid-column: span 2; }

.iipc-contact-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}
.iipc-contact-card {
    padding: clamp(24px, 3vw, 38px);
    border: 1px solid #dbe5f0;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(12,31,60,.05);
}
.iipc-contact-card h2 { font-size: clamp(28px, 2.6vw, 40px); }
.iipc-contact-card ul { margin: 0; padding-left: 20px; }
.iipc-contact-card li { margin-bottom: 8px; }
.iipc-note { color: #687991; font-size: 14px; }

@media (max-width: 1280px) {
    .iipc-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .iipc-feature-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .iipc-courses { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .iipc-gallery-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (max-width: 980px) {
    .iipc-hero-inner { grid-template-columns: 1fr; min-height: 0; text-align: center; }
    .iipc-logo-box { min-height: 0; }
    .iipc-logo-box img { width: min(72vw, 360px); }
    .iipc-hero-copy h1,
    .iipc-subtitle,
    .iipc-intro { margin-left: auto; margin-right: auto; }
    .iipc-actions { justify-content: center; }
    .iipc-meta { text-align: left; }
    .iipc-grid-2 { grid-template-columns: 1fr; }
    .iipc-gallery-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .iipc-contact-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
    .iipc-page { font-size: 15px; }
    .iipc-shell { padding-left: 14px; padding-right: 14px; }
    .iipc-hero-inner { padding-top: 34px; padding-bottom: 40px; gap: 24px; }
    .iipc-hero-copy h1 { font-size: clamp(36px, 11vw, 52px); }
    .iipc-subtitle { font-size: 17px; }
    .iipc-meta,
    .iipc-stats,
    .iipc-feature-grid,
    .iipc-courses,
    .iipc-gallery-grid { grid-template-columns: 1fr; }
    .iipc-meta li { text-align: left; }
    .iipc-btn { width: 100%; }
    .iipc-feature-card,
    .iipc-gallery-item,
    .iipc-gallery-item.iipc-tall { height: 285px; grid-column: auto; grid-row: auto; }
    .iipc-gallery-item.iipc-wide,
    .iipc-gallery-item.iipc-wide.iipc-tall { grid-column: auto; }
    .iipc-panel,
    .iipc-highlight,
    .iipc-band,
    .iipc-contact-card { border-radius: 20px; }
}

/* ============================================================
 * 2.5.0 FINAL — unified institutional project language + layout
 * ============================================================ */
body.wdf-project-custom-fullwidth {
    top: 0 !important;
}
body.wdf-project-custom-fullwidth .goog-te-banner-frame,
body.wdf-project-custom-fullwidth .goog-te-gadget,
body.wdf-project-custom-fullwidth .goog-logo-link,
body.wdf-project-custom-fullwidth .skiptranslate:not(#wdf-project-fullwidth):not(.wdf-program-content) {
    display: none !important;
}
body.wdf-project-custom-fullwidth #wdf-project-google-translate {
    position: fixed !important;
    left: -10000px !important;
    top: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
body.wdf-project-custom-fullwidth .wdf-program-content {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
    background: #fff;
}

/* Shared visual rhythm across the three institutional programmes. */
body.wdf-project-custom-fullwidth .wdf-program-content {
    --wdf-program-navy: #071b3a;
    --wdf-program-blue: #0d376d;
    --wdf-program-gold: #caa24a;
    --wdf-program-gold-soft: #ead9ad;
    --wdf-program-ice: #f4f7fb;
    --wdf-program-ink: #1d2938;
    --wdf-program-muted: #5e6c80;
    --wdf-program-line: #dce5ef;
}

/* IIPC harmonized with the science/academy visual system without altering content. */
body.wdf-project-key-professional-cynology .iipc-page {
    padding-bottom: 0;
    background: #fff;
}
body.wdf-project-key-professional-cynology .iipc-shell {
    width: min(1240px, calc(100% - 42px));
    padding-left: 0;
    padding-right: 0;
}
body.wdf-project-key-professional-cynology .iipc-hero {
    color: #fff;
    background: radial-gradient(circle at 87% 12%, rgba(202,162,74,.24), transparent 25%), linear-gradient(135deg,#06162e,#0b3165 63%,#071b3a);
    border-bottom: 7px solid #caa24a;
}
body.wdf-project-key-professional-cynology .iipc-hero-copy h1,
body.wdf-project-key-professional-cynology .iipc-hero-copy h2,
body.wdf-project-key-professional-cynology .iipc-hero-copy h3 {
    color: #fff;
}
body.wdf-project-key-professional-cynology .iipc-subtitle,
body.wdf-project-key-professional-cynology .iipc-intro {
    color: #dbe5f2;
}
body.wdf-project-key-professional-cynology .iipc-kicker {
    background: rgba(202,162,74,.14);
    color: #ead9ad;
}
body.wdf-project-key-professional-cynology .iipc-meta li {
    background: rgba(255,255,255,.07);
    border-color: rgba(255,255,255,.15);
    box-shadow: none;
    color: #e8eef7;
}
body.wdf-project-key-professional-cynology .iipc-meta strong {
    color: #ead9ad;
}
body.wdf-project-key-professional-cynology .iipc-logo-box {
    min-height: 380px;
    padding: 26px;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: 34px;
    background: rgba(255,255,255,.06);
    box-shadow: 0 28px 70px rgba(0,0,0,.22);
}
body.wdf-project-key-professional-cynology .iipc-logo-box img {
    filter: drop-shadow(0 18px 28px rgba(0,0,0,.28));
}
body.wdf-project-key-professional-cynology .iipc-section {
    margin-top: 0;
    padding: clamp(72px,8vw,112px) 0;
}
body.wdf-project-key-professional-cynology .iipc-panel,
body.wdf-project-key-professional-cynology .iipc-highlight,
body.wdf-project-key-professional-cynology .iipc-band,
body.wdf-project-key-professional-cynology .iipc-contact-card {
    border-radius: 20px;
}
@media (max-width: 700px) {
    body.wdf-project-key-professional-cynology .iipc-shell {
        width: min(100% - 26px,1240px);
    }
    body.wdf-project-key-professional-cynology .iipc-logo-box {
        min-height: 0;
    }
}

/* Academy harmonized with IGRD/IIPC while retaining its complete 2.4.0 content. */
body.wdf-project-key-canine-sport-work-utility #wdf-projects-academy .wdf-wrap {
    width: min(1240px, calc(100% - 42px));
}
body.wdf-project-key-canine-sport-work-utility #wdf-projects-academy .wdf-hero {
    border-bottom: 7px solid #caa24a;
}
body.wdf-project-key-canine-sport-work-utility #wdf-projects-academy .wdf-section {
    padding: clamp(72px,8vw,112px) 0;
}
body.wdf-project-key-canine-sport-work-utility #wdf-projects-academy .wdf-strip {
    margin-top: -38px;
}
body.wdf-project-key-canine-sport-work-utility #wdf-projects-academy .wdf-strip-grid {
    border-radius: 18px;
    box-shadow: 0 18px 50px rgba(7,27,58,.13);
}
body.wdf-project-key-canine-sport-work-utility #wdf-projects-academy .wdf-hero-card {
    border-radius: 34px;
    box-shadow: 0 28px 70px rgba(0,0,0,.22);
}
body.wdf-project-key-canine-sport-work-utility #wdf-projects-academy .wdf-card,
body.wdf-project-key-canine-sport-work-utility #wdf-projects-academy .wdf-panel,
body.wdf-project-key-canine-sport-work-utility #wdf-projects-academy .wdf-image-frame,
body.wdf-project-key-canine-sport-work-utility #wdf-projects-academy .wdf-gallery figure {
    border-radius: 20px;
}
@media (max-width: 700px) {
    body.wdf-project-key-canine-sport-work-utility #wdf-projects-academy .wdf-wrap {
        width: min(100% - 26px,1240px);
    }
    body.wdf-project-key-canine-sport-work-utility #wdf-projects-academy .wdf-section {
        padding: 68px 0;
    }
}

/* 2.5.0 final polish: keep IIPC hero actions legible on the unified dark hero. */
body.wdf-project-key-professional-cynology .iipc-hero .iipc-btn-primary{
  background:#caa24a !important;
  border-color:#caa24a !important;
  color:#071b3a !important;
}
body.wdf-project-key-professional-cynology .iipc-hero .iipc-btn-primary:hover{
  background:#dfbc6c !important;
  border-color:#dfbc6c !important;
  color:#071b3a !important;
}
body.wdf-project-key-professional-cynology .iipc-hero .iipc-btn-secondary{
  background:rgba(255,255,255,.06) !important;
  border-color:rgba(255,255,255,.42) !important;
  color:#fff !important;
}
body.wdf-project-key-professional-cynology .iipc-hero .iipc-btn-secondary:hover{
  background:rgba(255,255,255,.13) !important;
  border-color:rgba(255,255,255,.62) !important;
  color:#fff !important;
}
