/* ==========================================================================
   V30 - merge: v28-3 team cards + phone footer chips, plus the premium desktop footer
   and card hover effects. Loaded last. Phones (up to 700px) keep the v28-3 footer chips.
   ========================================================================== */

/* ---------- Team cards: hover polish on top of the v28-3 cards ---------- */
.dmc-member { position: relative; overflow: hidden; transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease; }
.dmc-member::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; opacity: 0; transition: opacity .3s ease;
    background: linear-gradient(90deg, var(--teal), var(--aqua, #5fd6d6)); }
.dmc-member:hover { box-shadow: 0 18px 44px rgba(10, 26, 43, .14); border-color: rgba(16, 160, 160, .35); }
.dmc-member:hover::before { opacity: 1; }
.dmc-member__photo { transition: transform .35s ease, box-shadow .35s ease; }
.dmc-member:hover .dmc-member__photo { transform: scale(1.06); box-shadow: 0 12px 28px rgba(10, 26, 43, .24); }

/* ---------- Footer: back-to-top button (all sizes) ---------- */
.dmc-ft__top { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%;
    color: #fff; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .16); transition: transform .25s ease, background .25s ease; }
.dmc-ft__top:hover { background: var(--teal); transform: translateY(-3px); color: #fff; }

/* ---------- Team: cards in one row always the same height ---------- */
.dmc-team > .dmc-member, .dmc-team--center > .dmc-member { height: auto; align-self: stretch; }
.dmc-member .dmc-member__bio { flex: 0 0 auto; }
.dmc-member__li { margin-top: auto; }

/* ---------- Footer: dotted texture + pill contact rows (all sizes) ---------- */
.dmc-ft { padding-top: 4.6rem; }
.dmc-ft::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .5;
    background-image: radial-gradient(rgba(255, 255, 255, .05) 1px, transparent 1px); background-size: 26px 26px;
    -webkit-mask-image: linear-gradient(180deg, transparent, #000 30%, #000 70%, transparent); mask-image: linear-gradient(180deg, transparent, #000 30%, #000 70%, transparent); }
.dmc-ft__contact a { padding: .3rem .95rem .3rem .3rem; border-radius: 14px; border: 1px solid rgba(255, 255, 255, .07);
    background: rgba(255, 255, 255, .03); width: max-content; max-width: 100%; }
.dmc-ft__contact { grid-template-columns: minmax(0, 1fr); }
.dmc-ft__contact li { min-width: 0; }
.dmc-ft__contact a:hover { border-color: rgba(95, 214, 214, .45); background: rgba(95, 214, 214, .08); }
.dmc-ft__markets a { border: 1px solid rgba(255, 255, 255, .12); background: rgba(255, 255, 255, .04); }

/* ---------- Footer: tablet and desktop layout (701px and up) ---------- */
@media (min-width: 701px) {
    .dmc-ft__main { display: block; padding: 4rem 0 3rem; }
    .dmc-ft__brand { margin-bottom: 3rem; padding-bottom: 2.6rem; border-bottom: 1px solid rgba(255, 255, 255, .09); }
    .dmc-ft__tag { max-width: 360px; margin-bottom: 0; }
    .dmc-ft__contact { margin-top: 1.6rem; gap: .8rem; }
    .dmc-ft__contact span { overflow-wrap: normal; white-space: nowrap; }

    .dmc-ft__cols { grid-template-columns: repeat(4, max-content); justify-content: space-between; gap: 2.4rem 2rem; }
    .dmc-ft__col { padding-left: 1.1rem; border-left: 1px solid rgba(255, 255, 255, .08); }
    .dmc-ft__title { font-size: 1rem; letter-spacing: .01em; margin-bottom: 1.2rem; white-space: nowrap; }
    .dmc-ft__col li a { font-size: .91rem; padding: .32rem 0; white-space: nowrap; }

    .dmc-ft__markets { padding: 1.5rem 0; border-top: 1px solid rgba(255, 255, 255, .09); border-bottom: 1px solid rgba(255, 255, 255, .09); }
    .dmc-ft__markets-label { white-space: nowrap; }

    .dmc-ft__bar { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.2rem 1.6rem; align-items: center; padding-top: 1.8rem; text-align: center; }
    .dmc-ft__copy { grid-column: 1 / -1; line-height: 1.6; }
    .dmc-ft__legal { grid-column: 1; grid-row: 2; justify-content: center; flex-wrap: nowrap; }
    .dmc-ft__top { grid-column: 2; grid-row: 2; }
}
@media (min-width: 701px) and (max-width: 1060px) {
    .dmc-ft__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; }
}
@media (min-width: 701px) and (max-width: 860px) {
    /* legal links as a tidy 3 x 2 block, no dot separators */
    .dmc-ft__legal { display: grid; grid-template-columns: repeat(3, max-content); justify-content: center; gap: .5rem 1.8rem; }
    .dmc-ft__legal a { padding: .2rem 0; }
    .dmc-ft__legal a + a::before { display: none; }
}
@media (min-width: 901px) {
    /* logo + tag on the left, contact pills 2 x 2 on the right */
    .dmc-ft__brand { display: grid; grid-template-columns: minmax(0, 1fr) max-content; column-gap: 3rem; align-items: center; }
    .dmc-ft__brand .footer-logo { grid-column: 1; grid-row: 1; justify-self: start; }
    .dmc-ft__brand .dmc-ft__tag { grid-column: 1; grid-row: 2; }
    .dmc-ft__brand .dmc-ft__contact { grid-column: 2; grid-row: 1 / span 2; margin-top: 0; grid-template-columns: repeat(2, max-content); gap: .8rem 1rem; }
}

/* ---------- Footer (desktop): the legal links row is exactly as wide as the copyright line above it ---------- */
@media (min-width: 861px) {
    .dmc-ft__bar { position: relative; display: grid; grid-template-columns: max-content; justify-content: center; justify-items: stretch; row-gap: 1.1rem; }
    .dmc-ft__copy { grid-column: 1; white-space: nowrap; text-wrap: nowrap; }
    .dmc-ft__legal { grid-column: 1; grid-row: 2; justify-content: space-between; gap: 0; }
    .dmc-ft__legal a { padding-left: 0; padding-right: 0; }
    .dmc-ft__legal a + a::before { display: none; }
    .dmc-ft__top { position: absolute; right: 0; bottom: 0; grid-column: auto; grid-row: auto; }
}

/* ---------- Footer: phones keep the v28-3 chip lists; bar items centered ---------- */
@media (max-width: 700px) {
    .dmc-ft__bar { gap: 1.1rem; }
    .dmc-ft__markets { justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
    .dmc-member, .dmc-member *, .dmc-ft__top { transition: none !important; }
}

/* v31: answer-first box (SEO/AEO) - centred, always readable */
.dmc-section--tight { padding-top: 1.5rem; padding-bottom: 0; }
.dmc-quick-answer { text-align: center; max-width: 820px; margin-left: auto; margin-right: auto; }
.dmc-quick-answer .dmc-h3 { font-size: clamp(1.15rem, 2.4vw, 1.5rem); margin: 0 0 .5rem; }
.dmc-quick-answer p { margin-left: auto; margin-right: auto; }
