/* Dierendag-campagne "Honden steunen honden" (pages/dierendag.php) */

/* ---- navbar op lichte achtergrond (zelfde aanpak als de Efteling Challenge) ---- */
.navbar-custom-link { color: #2b2118; }
.navicon-svg { fill: #2b2118; }
.navbar-custom-toggler-icon,
.navbar-custom-toggler-icon::before,
.navbar-custom-toggler-icon::after { background: #2b2118; }
.navbar-custom-toggler { border-color: rgba(43, 33, 24, 0.35); }
.page-specific-spacer > *:first-of-type { padding-top: 85px !important; }

.dd-page {
    --dd-cream: #fff6e8;
    --dd-paper: #fffdf9;
    --dd-ink: #2b2118;
    --dd-muted: #6f6152;
    --dd-coral: #ee6347;
    --dd-coral-deep: #cf4b31;
    --dd-coral-soft: #fde3dc;
    --dd-sun: #f8c445;
    --dd-sun-soft: #fff1c9;
    --dd-leaf: #2f8a5b;
    --dd-leaf-soft: #dff3e7;
    --dd-line: #f1e1c9;
    --dd-radius: 22px;
    --dd-shadow: 0 1px 2px rgba(80, 48, 20, .06), 0 10px 30px -12px rgba(80, 48, 20, .22);

    font-family: NG, sans-serif;
    color: var(--dd-ink);
    background: var(--dd-cream);
    font-size: 1.02rem;
    line-height: 1.6;
    overflow-x: clip;
}

.dd-page h1, .dd-page h2, .dd-page h3, .dd-page legend {
    font-family: ADM, sans-serif;
    font-weight: 400;
    color: var(--dd-ink);
    letter-spacing: .02em;
}

.dd-wrap { max-width: 1240px; margin: 0 auto; padding: 0 16px; }

/* ---- hero ---- */
.dd-hero {
    position: relative;
    padding: 34px 0 40px;
    text-align: center;
    background:
        radial-gradient(700px 360px at 12% 0%, rgba(248, 196, 69, .45), transparent 70%),
        radial-gradient(700px 380px at 92% 10%, rgba(238, 99, 71, .22), transparent 70%),
        var(--dd-cream);
}

.dd-hero-paws {
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: .5;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cg fill='%23ee6347' fill-opacity='.10'%3E%3Cg transform='translate(30 40) rotate(-18)'%3E%3Cellipse cx='0' cy='10' rx='11' ry='9'/%3E%3Ccircle cx='-11' cy='-5' r='4.5'/%3E%3Ccircle cx='-4' cy='-11' r='4.5'/%3E%3Ccircle cx='5' cy='-11' r='4.5'/%3E%3Ccircle cx='12' cy='-5' r='4.5'/%3E%3C/g%3E%3Cg transform='translate(130 120) rotate(22)'%3E%3Cellipse cx='0' cy='10' rx='11' ry='9'/%3E%3Ccircle cx='-11' cy='-5' r='4.5'/%3E%3Ccircle cx='-4' cy='-11' r='4.5'/%3E%3Ccircle cx='5' cy='-11' r='4.5'/%3E%3Ccircle cx='12' cy='-5' r='4.5'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

.dd-hero .dd-wrap { position: relative; max-width: 860px; }

.dd-kicker {
    display: inline-block;
    margin: 0 0 14px;
    padding: 6px 16px;
    border-radius: 999px;
    background: var(--dd-paper);
    box-shadow: var(--dd-shadow);
    color: var(--dd-coral-deep);
    font-family: ADM, sans-serif;
    font-weight: 400;
    font-size: .95rem;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.dd-title {
    font-size: clamp(2.3rem, 7vw, 4.4rem);
    font-weight: 400;
    text-transform: uppercase;
    line-height: 1.02;
    margin: 0 0 16px;
    isolation: isolate;
}

.dd-title span {
    color: var(--dd-coral);
    position: relative;
    white-space: nowrap;
}

.dd-title span::after {
    content: "";
    position: absolute;
    left: 2%;
    right: 2%;
    bottom: .02em;
    height: .22em;
    border-radius: 99px;
    background: var(--dd-sun);
    z-index: -1;
}

.dd-lead { max-width: 640px; margin: 0 auto 22px; font-size: 1.12rem; color: var(--dd-muted); }

.dd-steps {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    list-style: none;
    padding: 0;
    margin: 0 0 24px;
}

.dd-steps li {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 14px 7px 7px;
    border-radius: 999px;
    background: var(--dd-paper);
    border: 1px solid var(--dd-line);
    font-weight: 700;
    font-size: .95rem;
}

.dd-steps li span {
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--dd-sun);
    font-family: ADM, sans-serif; font-weight: 400;
}

.dd-stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    max-width: 620px;
    margin: 0 auto;
}

.dd-stats > div {
    background: var(--dd-paper);
    border-radius: 18px;
    padding: 12px 8px;
    box-shadow: var(--dd-shadow);
}

.dd-stats dt { font-size: .8rem; font-weight: 700; color: var(--dd-muted); text-transform: uppercase; letter-spacing: .04em; }
.dd-stats dd { margin: 2px 0 0; font-family: ADM, sans-serif; font-weight: 400; font-size: clamp(1.3rem, 4vw, 1.8rem); color: var(--dd-coral-deep); }

/* ---- galerij ---- */
.dd-gallery { padding-top: 10px; padding-bottom: 60px; }

.dd-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 330px), 1fr));
    gap: 22px;
    align-items: start;
}

.dd-card {
    background: var(--dd-paper);
    border-radius: var(--dd-radius);
    box-shadow: var(--dd-shadow);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.dd-card[hidden] { display: none; }

.dd-photo { position: relative; aspect-ratio: 4 / 3; background: var(--dd-sun-soft); }
.dd-photo { overflow: hidden; }
.dd-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; display: block; }

.dd-reached-badge {
    position: absolute;
    top: 14px;
    left: 14px;
    padding: 6px 14px;
    border-radius: 999px;
    background: var(--dd-leaf);
    color: #fff;
    font-family: ADM, sans-serif;
    font-weight: 400;
    box-shadow: 0 6px 16px -6px rgba(0, 0, 0, .4);
    transform: scale(0) rotate(-8deg);
    transition: transform .45s cubic-bezier(.34, 1.56, .64, 1);
}

.dd-card.is-reached .dd-reached-badge { transform: scale(1) rotate(-4deg); }

.dd-body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 12px; }
.dd-name { font-size: 1.75rem; font-weight: 400; text-transform: uppercase; margin: 0; line-height: 1.1; }
.dd-meta { margin: -8px 0 0; color: var(--dd-muted); font-weight: 700; font-size: .92rem; }

.dd-bio p {
    margin: 0;
    font-weight: 400;
    color: #4b3d30;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.dd-bio.is-open p { -webkit-line-clamp: unset; display: block; }
.dd-bio-more, .dd-link {
    border: 0;
    background: none;
    padding: 0;
    color: var(--dd-coral-deep);
    font-weight: 800;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* ---- donatiemeter ---- */
.dd-meter { display: flex; align-items: center; gap: 14px; background: var(--dd-cream); border-radius: 16px; padding: 10px 14px; }
.dd-meter-text { flex: 1; min-width: 0; font-size: .95rem; }
.dd-meter-text strong { font-family: ADM, sans-serif; font-weight: 400; font-size: 1.35rem; color: var(--dd-ink); }

/* Hartje: outline + rood vlak dat van onder naar boven vol loopt (dd_heart_svg in dierendag_lib.php). */
.dd-heart-wrap { position: relative; flex: none; width: 84px; }
.dd-heart { display: block; width: 100%; height: auto; overflow: visible; }
.dd-heart-bg { fill: #fde3dc; }
.dd-heart-fill { fill: #e0322b; transition: transform 1.4s cubic-bezier(.22, 1, .36, 1); }
.dd-heart-line { fill: none; stroke: #a51d17; stroke-width: 5; stroke-linejoin: round; }
.dd-heart-wrap .dd-pct {
    position: absolute;
    left: 0;
    right: 0;
    top: 40%;
    transform: translateY(-50%);
    text-align: center;
    font-family: ADM, sans-serif;
    font-weight: 400;
    font-size: 1.05rem;
    color: var(--dd-ink);
    text-shadow: 0 0 3px #fff, 0 0 6px #fff;
    pointer-events: none;
}

.dd-card.is-reached .dd-heart,
.dd-m-head.is-reached .dd-heart { animation: dd-beat 1.6s ease-in-out infinite; transform-origin: 50% 55%; }
@keyframes dd-beat { 0%, 60%, 100% { transform: scale(1); } 15% { transform: scale(1.1); } 30% { transform: scale(.97); } 45% { transform: scale(1.06); } }

.dd-over { margin: 4px 0 0; font-weight: 800; color: #c0271f; font-size: .9rem; }
.dd-over:empty { display: none; }

@keyframes dd-shimmer { to { background-position: -200% 0; } }

/* ---- supporters ---- */
.dd-sup-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 8px; }
.dd-sup-head h3 { font-size: 1.08rem; margin: 0; font-weight: 400; }
.dd-count { flex: none; font-weight: 800; font-size: .88rem; background: var(--dd-coral-soft); color: var(--dd-coral-deep); padding: 3px 10px; border-radius: 99px; }

/* Supporters als kleine polaroids (zoals .ra-polaroid op /nl/remote-adoption), om en om iets schuin. */
.dd-sup-list {
    list-style: none;
    margin: 0 -6px;
    padding: 10px 8px 16px;
    display: flex;
    gap: 14px;
    overflow-x: auto;
    scroll-snap-type: x proximity;
    scrollbar-width: thin;
    scrollbar-color: #e5c9a3 transparent;
}

.dd-sup {
    --dd-ring: #fde3dc;
    flex: 0 0 128px;
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 2px;
    background: #fff;
    border-radius: 4px;
    padding: 12px 10px 14px;
    box-shadow: 0 10px 22px -12px rgba(0, 0, 0, .4), 0 1px 3px rgba(0, 0, 0, .08);
    transform: rotate(-2deg);
    transition: transform .25s ease;
}

.dd-sup:nth-child(even) { transform: rotate(1.8deg); }
.dd-sup:hover { transform: rotate(0) translateY(-3px); }

.dd-sup--paw { --dd-ring: #fff1c9; }
.dd-sup--love { --dd-ring: #ffe2a6; }
.dd-sup--snacks, .dd-sup--walk, .dd-sup--basket { --dd-ring: #dcefe2; }
.dd-sup--ball, .dd-sup--zoomies { --dd-ring: #e2f0d0; }
.dd-sup--toy, .dd-sup--lick { --dd-ring: #fbdcea; }
.dd-sup--cake, .dd-sup--fan { --dd-ring: #ffe2a6; }
.dd-sup--tail { --dd-ring: #fff1c9; }

.dd-sup-photo { position: relative; display: block; margin-bottom: 6px; }
.dd-sup .dd-avatar { width: 84px; height: 84px; border: 3px solid #fff; box-shadow: 0 0 0 4px var(--dd-ring), 0 4px 10px rgba(80, 48, 20, .18); font-size: 1.9rem; }

.dd-sup-badge {
    position: absolute;
    right: -6px;
    bottom: -4px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: #fff;
    display: grid;
    place-items: center;
    font-size: 16px;
    line-height: 1;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .18);
}

.dd-sup-name {
    font-family: ADM, sans-serif;
    font-weight: 400;
    font-size: 1.05rem;
    line-height: 1.15;
    color: var(--dd-ink);
    max-width: 100%;
    overflow-wrap: anywhere;
}

.dd-sup-act { font-size: .8rem; line-height: 1.25; font-weight: 700; color: var(--dd-muted); }

/* Laatste tegel: zelf meedoen. */
.dd-sup-add { background: transparent; box-shadow: none; border: 2px dashed #e5c9a3; transform: none !important; padding: 0; }
.dd-sup-add button {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    width: 100%;
    height: 100%;
    padding: 12px 10px 14px;
    border: 0;
    background: none;
    cursor: pointer;
    color: inherit;
}
.dd-sup-add:hover { border-color: var(--dd-coral); background: #fff8f5; }
.dd-sup-plus {
    width: 84px;
    height: 84px;
    margin: 3px 0 9px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--dd-coral-soft);
    color: var(--dd-coral-deep);
    font-family: ADM, sans-serif;
    font-size: 2.6rem;
    line-height: 1;
}

.dd-sup.is-new { animation: dd-pop .7s cubic-bezier(.34, 1.56, .64, 1); }
@keyframes dd-pop { from { transform: scale(.6) rotate(-8deg); opacity: 0; } }

.dd-avatar {
    flex: none;
    width: 52px;
    height: 52px;
    object-fit: cover;
    border: 3px solid #fff;
    box-shadow: 0 2px 8px rgba(80, 48, 20, .2);
    background: var(--dd-sun-soft);
}

.dd-avatar.is-round { border-radius: 50%; }
.dd-avatar.is-square { border-radius: 12px; }
.dd-avatar.is-empty {
    display: inline-grid;
    place-items: center;
    font-family: ADM, sans-serif;
    font-weight: 400;
    font-size: 1.3rem;
    color: var(--dd-coral-deep);
}


.dd-empty { text-align: center; font-weight: 700; color: var(--dd-muted); padding: 30px 0; }

/* ---- uitleg ---- */
.dd-faq { padding-top: 10px; padding-bottom: 34px; }
.dd-faq > h2 { text-align: center; font-size: 2rem; margin: 0 0 18px; text-transform: uppercase; }
.dd-faq-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; }
.dd-faq-grid > div { background: var(--dd-paper); border-radius: var(--dd-radius); padding: 18px 20px; border: 1px solid var(--dd-line); }
.dd-faq-grid h3 { font-size: 1.15rem; margin: 0 0 6px; }
.dd-faq-grid p { margin: 0; color: var(--dd-muted); }
.dd-faq-grid a { color: var(--dd-coral-deep); font-weight: 700; }

/* ---- modal ---- */
.dd-modal { position: fixed; inset: 0; z-index: 2147483600; display: flex; align-items: flex-start; justify-content: center; padding: 24px 16px; overflow-y: auto; }
.dd-modal[hidden] { display: none; }
.dd-modal-backdrop { position: fixed; inset: 0; background: rgba(43, 33, 24, .6); backdrop-filter: blur(3px); }

.dd-modal-box {
    position: relative;
    width: 100%;
    max-width: 560px;
    margin: auto;
    background: var(--dd-paper);
    border-radius: 26px;
    box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .45);
    padding: 22px 22px 24px;
    animation: dd-rise .35s cubic-bezier(.22, 1, .36, 1);
}

@keyframes dd-rise { from { transform: translateY(24px); opacity: 0; } }

.dd-modal-close {
    position: absolute;
    top: 10px;
    right: 12px;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: var(--dd-cream);
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
    color: var(--dd-ink);
}

.dd-m-head { display: flex; gap: 14px; align-items: center; padding: 0 40px 16px 0; border-bottom: 2px dashed var(--dd-line); margin-bottom: 16px; }
.dd-m-photo { width: 92px; height: 92px; flex: none; border-radius: 50%; object-fit: cover; border: 4px solid var(--dd-sun); }
.dd-m-head > div { flex: 1; min-width: 0; }
.dd-m-kicker { margin: 0; font-size: .82rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--dd-coral-deep); }
.dd-m-name { margin: 0; font-size: 1.8rem; font-weight: 400; text-transform: uppercase; line-height: 1.1; }
.dd-m-goal { margin: 2px 0 8px; font-size: .92rem; color: var(--dd-muted); font-weight: 600; }
.dd-m-progress { display: flex; align-items: center; gap: 10px; margin-top: 4px; }
.dd-m-progress .dd-m-goal { margin: 0; }
.dd-heart-sm { width: 46px; }

.dd-view fieldset { border: 0; padding: 0; margin: 0 0 18px; min-width: 0; }
.dd-view legend { font-size: 1.25rem; font-weight: 400; margin-bottom: 10px; }

.dd-field { display: block; margin-bottom: 14px; }
.dd-field > span:first-child { display: block; font-weight: 800; font-size: .95rem; margin-bottom: 5px; }
.dd-field em { font-weight: 600; color: var(--dd-muted); font-style: normal; }

.dd-field input[type=text], .dd-field input[type=email], .dd-field select {
    width: 100%;
    border: 2px solid var(--dd-line);
    background: #fff;
    border-radius: 14px;
    padding: 11px 14px;
    font: inherit;
    font-weight: 600;
    color: var(--dd-ink);
}

.dd-field input:focus, .dd-field select:focus { outline: none; border-color: var(--dd-coral); box-shadow: 0 0 0 4px var(--dd-coral-soft); }
.dd-field.has-error input, .dd-field.has-error select { border-color: #c0392b; }

.dd-err { display: block; color: #b42d1f; font-weight: 700; font-size: .88rem; margin-top: 4px; }
.dd-err:empty { display: none; }

.dd-drop {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    border: 2px dashed #e5c9a3;
    border-radius: 18px;
    padding: 20px;
    background: var(--dd-cream);
    cursor: pointer;
    text-align: center;
    transition: border-color .2s, background .2s;
}

.dd-drop:hover, .dd-drop.is-over { border-color: var(--dd-coral); background: var(--dd-coral-soft); }
.dd-drop input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.dd-drop-icon { font-size: 2rem; }
.dd-drop[hidden] { display: none; }

.dd-crop-stage { position: relative; width: min(100%, 300px); margin: 0 auto; aspect-ratio: 1; border-radius: 18px; overflow: hidden; background: #2b2118; touch-action: none; }
.dd-crop-stage canvas { width: 100%; height: 100%; display: block; cursor: grab; }
.dd-crop-stage canvas:active { cursor: grabbing; }

.dd-crop-tools { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 16px; margin-top: 10px; }
.dd-zoom { display: flex; align-items: center; gap: 8px; font-weight: 800; margin: 0; }
.dd-zoom input { width: 140px; accent-color: var(--dd-coral); }
.dd-shape { display: flex; gap: 6px; }
.dd-hint { text-align: center; font-size: .85rem; color: var(--dd-muted); margin: 8px 0 0; }

.dd-preview { background: var(--dd-sun-soft); border-radius: 18px; padding: 12px; }
.dd-preview-label { margin: 0 0 8px; font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: #8a6a1c; }
.dd-preview-row { display: flex; align-items: center; gap: 16px; }
.dd-preview-row .dd-sup { flex: 0 0 128px; }
.dd-preview-text { margin: 0; font-weight: 700; line-height: 1.4; }

.dd-amounts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-bottom: 12px; }
.dd-cta { margin-top: 4px; }
.dd-euro-input { position: relative; display: block; }
.dd-euro-input i { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); font-style: normal; font-weight: 800; color: var(--dd-muted); }
.dd-euro-input input[type=text] { padding-left: 32px; }

.dd-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.dd-submit[disabled] { opacity: .65; cursor: wait; }
.dd-secure { text-align: center; font-size: .85rem; color: var(--dd-muted); margin: 12px 0 0; font-weight: 700; }
.dd-err-general { text-align: center; }

.dd-center { text-align: center; }
.dd-center h3 { font-size: 1.6rem; margin: 6px 0; }

.dd-spinner { font-size: 3rem; display: inline-block; animation: dd-bounce 1s ease-in-out infinite; }
.dd-spinner.is-still { animation: none; }
@keyframes dd-bounce { 50% { transform: translateY(-12px) rotate(-10deg); } }

.dd-success-title { font-size: 2.1rem !important; text-transform: uppercase; color: var(--dd-coral-deep) !important; }
.dd-success-text { font-weight: 700; font-size: 1.08rem; }
.dd-sharecard { margin: 12px auto 14px; max-width: 360px; }
.dd-sharecard img { width: 100%; border-radius: 18px; box-shadow: var(--dd-shadow); display: block; aspect-ratio: 1; background: var(--dd-cream); }
.dd-share-buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 8px; }
.dd-confetti { position: fixed; inset: 0; pointer-events: none; z-index: 2147483640; }

body.dd-modal-open { overflow: hidden; }

@media (max-width: 575.98px) {
    .dd-modal { padding: 0; }
    .dd-modal-box { border-radius: 0; min-height: 100%; padding: 18px 16px 28px; }
    .dd-m-photo { width: 72px; height: 72px; }
    .dd-m-name { font-size: 1.5rem; }
    .dd-stats dt { font-size: .68rem; }
}

@media (prefers-reduced-motion: reduce) {
    .dd-heart-fill, .dd-card, .dd-reached-badge { transition: none; }
    .dd-heart { animation: none !important; }
    .dd-spinner, .dd-sup.is-new, .dd-modal-box { animation: none; }
}
