/* ============================================================
   DIFRIHO 2026 — Fase C+D / Home v4.4
   Se carga después de foundation + shell.
   ============================================================ */

.df-home-page {
    background: #fff;
}

.df-home-page main {
    overflow: hidden;
}

.df-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 13px;
    color: var(--df-blue-deep);
    font-size: 12px;
    font-weight: 800;
    line-height: 1.3;
    letter-spacing: .105em;
    text-transform: uppercase;
}

.df-eyebrow::before {
    content: '';
    width: 24px;
    height: 2px;
    border-radius: 99px;
    background: var(--df-orange);
}

.df-eyebrow--light {
    color: #dbeaf2;
}

.df-section-heading {
    max-width: 720px;
    margin-bottom: 34px;
}

.df-section-heading--center {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.df-section-heading--center .df-eyebrow {
    justify-content: center;
}

.df-section-heading h2,
.df-home-tech-copy h2,
.df-home-news-content h2,
.df-home-contact-box h2 {
    margin: 0 0 13px;
    color: var(--df-ink);
    font-size: clamp(28px, 3vw, 39px);
    font-weight: 800;
    line-height: 1.12;
    letter-spacing: -.025em;
}

.df-section-heading p,
.df-home-news-content p,
.df-home-contact-box p {
    margin: 0;
    color: var(--df-muted);
    font-size: 16px;
    line-height: 1.7;
}

.df-home-section {
    position: relative;
    padding: 84px 0;
}

/* ------------------------------------------------------------
   Hero
   ------------------------------------------------------------ */
.df-home-hero {
    position: relative;
    padding: 70px 0 72px;
    background:
        radial-gradient(circle at 7% 12%, rgba(57,146,197,.10), transparent 30%),
        linear-gradient(180deg, #f9fcfe 0%, #fff 86%);
}

.df-home-hero::after {
    content: '';
    position: absolute;
    right: -130px;
    top: -160px;
    width: 430px;
    height: 430px;
    border: 72px solid rgba(240,148,10,.055);
    border-radius: 50%;
    pointer-events: none;
}

.df-home-hero-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(470px, 1.05fr);
    gap: 62px;
    align-items: center;
}

.df-home-hero-copy {
    padding: 18px 0;
}

.df-home-hero-copy h1 {
    max-width: 650px;
    margin: 0 0 22px;
    color: #183746;
    font-size: clamp(42px, 5.1vw, 66px);
    font-weight: 850;
    line-height: 1.01;
    letter-spacing: -.045em;
}

.df-home-hero-lead {
    max-width: 610px;
    margin: 0 0 30px;
    color: #60737f;
    font-size: 18px;
    line-height: 1.68;
}

.df-home-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 28px;
}

.df-home-hero-actions .df-button {
    min-height: 48px;
    padding: 12px 20px;
}

.df-home-primary-cta {
    box-shadow: 0 10px 24px rgba(57,146,197,.22);
}

.df-home-hero-points {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 22px;
    margin: 0;
    padding: 0;
}

.df-home-hero-points li {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #5b6e79;
    font-size: 13px;
    font-weight: 700;
}

.df-home-hero-points i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #e7f3f9;
    color: var(--df-blue-deep);
    font-size: 10px;
}

.df-home-hero-visual {
    position: relative;
    min-height: 460px;
    border: 1px solid #dbe7ed;
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 30px 65px rgba(36,77,99,.15);
    overflow: visible;
}

.df-home-hero-visual > img {
    display: block;
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border-radius: 23px;
    object-fit: cover;
    object-position: center;
}

.df-home-hero-visual::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 23px;
    background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(18,54,73,.08));
    pointer-events: none;
}

.df-home-hero-accent {
    position: absolute;
    z-index: -1;
    right: -18px;
    bottom: -18px;
    width: 48%;
    height: 48%;
    border-radius: 22px;
    background: var(--df-orange);
    opacity: .95;
}

.df-home-hero-float {
    position: absolute;
    z-index: 3;
    left: -34px;
    bottom: 28px;
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 245px;
    padding: 14px 17px;
    border: 1px solid rgba(208,222,230,.95);
    border-radius: 14px;
    background: rgba(255,255,255,.97);
    box-shadow: 0 14px 35px rgba(24,55,70,.16);
}

.df-home-float-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    width: 42px;
    height: 42px;
    border-radius: 11px;
    background: #eef7fb;
    color: var(--df-blue-deep);
    font-size: 18px;
}

.df-home-hero-float strong,
.df-home-hero-float small {
    display: block;
}

.df-home-hero-float strong {
    color: #273d49;
    font-size: 13.5px;
    line-height: 1.35;
}

.df-home-hero-float small {
    margin-top: 2px;
    color: #7b8a93;
    font-size: 11.5px;
}

/* ------------------------------------------------------------
   Accesos rápidos
   ------------------------------------------------------------ */
.df-home-quick {
    padding-top: 72px;
}

.df-home-quick-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}

.df-home-quick-card {
    position: relative;
    display: grid;
    grid-template-columns: 56px 1fr auto;
    gap: 17px;
    align-items: center;
    min-height: 154px;
    padding: 25px 23px;
    border: 1px solid #dee8ed;
    border-radius: 16px;
    background: #fff;
    color: inherit;
    box-shadow: 0 8px 28px rgba(35,72,91,.07);
    transition: transform var(--df-transition), border-color var(--df-transition), box-shadow var(--df-transition);
}

.df-home-quick-card:hover,
.df-home-quick-card:focus {
    color: inherit;
    transform: translateY(-4px);
    border-color: #bcd8e7;
    box-shadow: 0 16px 36px rgba(35,72,91,.12);
}

.df-home-quick-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 15px;
    background: linear-gradient(145deg, #eaf5fa, #f7fbfd);
    color: var(--df-blue-deep);
    font-size: 22px;
}

.df-home-quick-content strong,
.df-home-quick-content small {
    display: block;
}

.df-home-quick-content strong {
    margin-bottom: 5px;
    color: #263f4d;
    font-size: 17px;
    font-weight: 800;
}

.df-home-quick-content small {
    color: #72838d;
    font-size: 13px;
    line-height: 1.5;
}

.df-home-card-arrow {
    color: var(--df-orange);
    font-size: 24px;
    font-weight: 400;
    transition: transform var(--df-transition);
}

.df-home-quick-card:hover .df-home-card-arrow,
.df-home-quick-card:focus .df-home-card-arrow {
    transform: translateX(4px);
}

/* ------------------------------------------------------------
   Soluciones
   ------------------------------------------------------------ */
.df-home-solutions {
    background: #f6f9fb;
}

.df-home-solutions-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
}

.df-home-solution-card {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #dae5ea;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 9px 28px rgba(35,72,91,.075);
    transition: transform var(--df-transition), box-shadow var(--df-transition);
}

.df-home-solution-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 40px rgba(35,72,91,.12);
}

.df-home-solution-media {
    height: 205px;
    overflow: hidden;
    background: #f3f6f8;
}

.df-home-solution-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.df-home-solution-card:hover .df-home-solution-media img {
    transform: scale(1.018);
}

.df-home-solution-body {
    padding: 25px 25px 27px;
}

.df-home-solution-kicker {
    display: block;
    margin-bottom: 8px;
    color: var(--df-blue-deep);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.df-home-solution-body h3 {
    margin: 0 0 10px;
    color: #253d49;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.22;
}

.df-home-solution-body p {
    min-height: 62px;
    margin: 0 0 18px;
    color: #6f818b;
    font-size: 14px;
    line-height: 1.55;
}

.df-home-solution-body a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--df-blue-deep);
    font-size: 13.5px;
    font-weight: 800;
}

.df-home-solution-body a span {
    color: var(--df-orange);
    transition: transform var(--df-transition);
}

.df-home-solution-body a:hover span,
.df-home-solution-body a:focus span {
    transform: translateX(4px);
}

/* ------------------------------------------------------------
   Información técnica
   ------------------------------------------------------------ */
.df-home-tech {
    padding-top: 92px;
}

.df-home-tech-panel {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
    gap: 60px;
    align-items: center;
    padding: 52px 56px;
    overflow: hidden;
    border-radius: 22px;
    background:
        radial-gradient(circle at 0 0, rgba(77,167,216,.25), transparent 30%),
        linear-gradient(135deg, #1f526f 0%, #173b50 100%);
    box-shadow: 0 22px 52px rgba(21,55,74,.18);
}

.df-home-tech-panel::after {
    content: '';
    position: absolute;
    right: -90px;
    bottom: -125px;
    width: 310px;
    height: 310px;
    border: 54px solid rgba(240,148,10,.11);
    border-radius: 50%;
}

.df-home-tech-copy,
.df-home-brand-panel {
    position: relative;
    z-index: 1;
}

.df-home-tech-copy h2 {
    color: #fff;
}

.df-home-tech-copy p {
    max-width: 650px;
    margin: 0 0 25px;
    color: #c9dbe5;
    font-size: 15.5px;
    line-height: 1.7;
}

.df-button-light {
    background: #fff;
    border-color: #fff;
    color: #214f69;
}

.df-button-light:hover,
.df-button-light:focus {
    background: #f1f7fa;
    border-color: #f1f7fa;
    color: #173b50;
}

.df-home-brand-panel {
    padding: 24px;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 17px;
    background: rgba(255,255,255,.09);
    backdrop-filter: blur(3px);
}

.df-home-brand-label {
    display: block;
    margin-bottom: 14px;
    color: #dceaf1;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.df-home-brand-logos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-bottom: 14px;
}

.df-home-brand-logo {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 92px;
    padding: 14px;
    border-radius: 11px;
    background: rgba(255,255,255,.96);
}

.df-home-brand-logo img {
    display: block;
    max-width: 100%;
    max-height: 60px;
    object-fit: contain;
}

.df-home-brand-logo--cuppone img {
    max-height: 68px;
}

.df-home-brand-panel p {
    margin: 0;
    color: #cbdce5;
    font-size: 12.5px;
    line-height: 1.55;
}

/* ------------------------------------------------------------
   Novedades
   ------------------------------------------------------------ */
.df-home-news {
    padding-top: 88px;
    padding-bottom: 74px;
}

.df-home-news-card {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(330px, .9fr);
    align-items: stretch;
    min-height: 365px;
    overflow: hidden;
    border: 1px solid #dbe5ea;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 16px 45px rgba(35,72,91,.10);
}

.df-home-news-media {
    min-height: 365px;
    background: #edf2f5;
}

.df-home-news-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.df-home-news-content {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 46px 48px;
}

.df-home-news-content .df-button {
    align-self: flex-start;
    margin-top: 25px;
}

/* ------------------------------------------------------------
   CTA contacto
   ------------------------------------------------------------ */
.df-home-contact-cta {
    padding-top: 36px;
    padding-bottom: 28px;
}

.df-home-contact-box {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 45px;
    padding: 38px 42px;
    border: 1px solid #dce7ec;
    border-radius: 18px;
    background: linear-gradient(135deg, #f8fbfd, #f2f7f9);
}

.df-home-contact-box h2 {
    font-size: clamp(25px, 2.8vw, 34px);
}

.df-home-contact-box p {
    max-width: 650px;
    font-size: 14.5px;
}

.df-home-contact-actions {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: wrap;
    gap: 10px;
}

/* ------------------------------------------------------------
   Responsive
   ------------------------------------------------------------ */
@media (max-width: 1199px) {
    .df-home-hero-grid {
        grid-template-columns: minmax(0, 1fr) minmax(390px, .92fr);
        gap: 42px;
    }

    .df-home-hero-copy h1 {
        font-size: clamp(40px, 5vw, 56px);
    }

    .df-home-hero-visual {
        min-height: 400px;
    }

    .df-home-hero-float {
        left: -20px;
    }

    .df-home-tech-panel {
        gap: 38px;
        padding: 46px 42px;
    }
}

@media (max-width: 991px) {
    .df-home-section {
        padding: 70px 0;
    }

    .df-home-hero {
        padding: 56px 0 62px;
    }

    .df-home-hero-grid {
        grid-template-columns: 1fr;
        gap: 38px;
    }

    .df-home-hero-copy {
        max-width: 760px;
        padding-bottom: 0;
    }

    .df-home-hero-visual {
        min-height: 430px;
        margin-left: 22px;
    }

    .df-home-quick-grid,
    .df-home-solutions-grid {
        grid-template-columns: 1fr 1fr;
    }

    .df-home-quick-card:last-child,
    .df-home-solution-card:last-child {
        grid-column: 1 / -1;
    }

    .df-home-tech-panel {
        grid-template-columns: 1fr;
    }

    .df-home-brand-panel {
        max-width: 520px;
    }

    .df-home-news-card {
        grid-template-columns: 1fr;
    }

    .df-home-news-media {
        min-height: 300px;
        max-height: 390px;
    }

    .df-home-contact-box {
        align-items: flex-start;
        flex-direction: column;
        gap: 24px;
    }
}

@media (max-width: 767px) {
    .df-home-section {
        padding: 58px 0;
    }

    .df-home-hero {
        padding: 45px 0 52px;
    }

    .df-home-hero-copy h1 {
        font-size: clamp(37px, 11vw, 50px);
    }

    .df-home-hero-lead {
        font-size: 16px;
    }

    .df-home-hero-points {
        align-items: flex-start;
        flex-direction: column;
    }

    .df-home-hero-visual {
        min-height: 330px;
        margin: 0 10px 0 20px;
        border-radius: 18px;
    }

    .df-home-hero-visual > img,
    .df-home-hero-visual::after {
        border-radius: 17px;
    }

    .df-home-hero-float {
        left: -18px;
        bottom: 18px;
        min-width: 220px;
    }

    .df-home-hero-accent {
        right: -10px;
        bottom: -10px;
    }

    .df-home-quick-grid,
    .df-home-solutions-grid {
        grid-template-columns: 1fr;
    }

    .df-home-quick-card:last-child,
    .df-home-solution-card:last-child {
        grid-column: auto;
    }

    .df-home-solution-body p {
        min-height: 0;
    }

    .df-home-tech {
        padding-top: 68px;
    }

    .df-home-tech-panel {
        padding: 37px 27px;
        border-radius: 18px;
    }

    .df-home-brand-logos {
        grid-template-columns: 1fr;
    }

    .df-home-news {
        padding-top: 62px;
    }

    .df-home-news-content {
        padding: 34px 27px;
    }

    .df-home-contact-box {
        padding: 30px 27px;
    }
}

@media (max-width: 575px) {
    .df-home-hero-actions,
    .df-home-contact-actions {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
    }

    .df-home-hero-actions .df-button,
    .df-home-contact-actions .df-button {
        width: 100%;
        justify-content: center;
    }

    .df-home-hero-visual {
        min-height: 275px;
        margin-left: 10px;
    }

    .df-home-hero-float {
        left: 12px;
        right: 12px;
        bottom: 12px;
        min-width: 0;
    }

    .df-home-quick-card {
        grid-template-columns: 50px 1fr auto;
        gap: 13px;
        min-height: 138px;
        padding: 21px 18px;
    }

    .df-home-quick-icon {
        width: 50px;
        height: 50px;
    }

    .df-home-solution-media {
        height: 175px;
    }

    .df-home-news-media {
        min-height: 230px;
    }
}


/* ============================================================
   v4.4 — Hero corporativo + mosaico + responsive reforzado
   ============================================================ */
.df-home-hero-mosaic { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(150px,.75fr); gap:10px; padding:10px; overflow:visible; background:#fff; }
.df-home-hero-mosaic::after { display:none; }
.df-home-mosaic-main,.df-home-mosaic-side > div { position:relative; overflow:hidden; border-radius:15px; background:#f2f6f8; }
.df-home-mosaic-main { min-height:438px; }
.df-home-mosaic-side { display:grid; grid-template-rows:1fr 1fr; gap:10px; min-width:0; }
.df-home-mosaic-side > div { min-height:0; }
.df-home-mosaic-main img,.df-home-mosaic-side img { display:block; width:100%; height:100%; object-fit:cover; }
.df-home-mosaic-main img { object-position:center; }
.df-home-mosaic-side img { object-position:center; }
.df-home-mosaic-main::after,.df-home-mosaic-side > div::after { content:''; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(14,39,53,.62)); pointer-events:none; }
.df-home-mosaic-main > span,.df-home-mosaic-side > div > span { position:absolute; z-index:2; left:16px; bottom:13px; color:#fff; font-size:12px; font-weight:800; letter-spacing:.035em; text-transform:uppercase; text-shadow:0 2px 6px rgba(0,0,0,.22); }
.df-home-hero-mosaic .df-home-hero-float { left:-28px; bottom:24px; }
.df-home-hero-copy h1 { font-size:clamp(40px,4.8vw,62px); }

@media (max-width:1199px) {
    .df-home-hero-mosaic { grid-template-columns:minmax(0,1.4fr) minmax(135px,.7fr); }
    .df-home-mosaic-main { min-height:378px; }
}
@media (max-width:991px) {
    .df-home-hero-mosaic { margin-left:0; min-height:0; grid-template-columns:minmax(0,1.5fr) minmax(180px,.8fr); }
    .df-home-mosaic-main { min-height:390px; }
    .df-home-hero-mosaic .df-home-hero-float { left:18px; }
}
@media (max-width:767px) {
    .df-home-hero { padding-top:42px; }
    .df-home-hero-copy h1 { font-size:clamp(34px,9.5vw,46px); line-height:1.05; }
    .df-home-hero-mosaic { grid-template-columns:1fr; padding:8px; margin:0; border-radius:18px; }
    .df-home-mosaic-main { min-height:285px; }
    .df-home-mosaic-side { grid-template-columns:1fr 1fr; grid-template-rows:none; min-height:150px; }
    .df-home-mosaic-side > div { min-height:150px; }
    .df-home-hero-mosaic .df-home-hero-float { left:16px; right:16px; bottom:16px; }
    .df-home-hero-accent { display:none; }
}
@media (max-width:575px) {
    .df-home-hero-copy h1 { font-size:clamp(32px,10.5vw,42px); }
    .df-home-mosaic-main { min-height:235px; }
    .df-home-mosaic-side { min-height:120px; }
    .df-home-mosaic-side > div { min-height:120px; }
    .df-home-mosaic-main > span,.df-home-mosaic-side > div > span { left:11px; bottom:9px; font-size:10px; }
    .df-home-hero-mosaic .df-home-hero-float { position:relative; left:auto; right:auto; bottom:auto; margin:0; grid-column:1 / -1; min-width:0; box-shadow:none; border-color:#e0e9ee; }
}
@media (max-width:380px) {
    .df-home-mosaic-side { grid-template-columns:1fr; }
    .df-home-mosaic-side > div { min-height:115px; }
}


/* ============================================================
   Difriho Home v4.5 - family scroller + expanded brands
   ============================================================ */
.df-home-family-showcase {
    min-width:0;
    padding:18px;
    border:1px solid rgba(57,146,197,.16);
    border-radius:22px;
    background:rgba(255,255,255,.92);
    box-shadow:0 18px 48px rgba(30,66,85,.10);
    overflow:hidden;
}
.df-home-family-head { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:14px; }
.df-home-family-head > div:first-child { display:flex; flex-direction:column; gap:3px; min-width:0; }
.df-home-family-label { color:var(--df-orange); font-size:10px; font-weight:850; letter-spacing:.13em; }
.df-home-family-head strong { color:#254455; font-size:16px; font-weight:820; line-height:1.25; }
.df-home-family-controls { display:flex; gap:7px; flex:0 0 auto; }
.df-home-family-arrow { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border:1px solid #d9e7ee; border-radius:50%; background:#fff; color:var(--df-blue-deep); font-size:20px; cursor:pointer; transition:.18s ease; }
.df-home-family-arrow:hover, .df-home-family-arrow:focus-visible { border-color:rgba(57,146,197,.55); background:#eef7fb; transform:translateY(-1px); }
.df-home-family-track { display:flex; gap:12px; width:100%; padding:2px 2px 9px; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:rgba(57,146,197,.35) transparent; -webkit-overflow-scrolling:touch; }
.df-home-family-track::-webkit-scrollbar { height:5px; }
.df-home-family-track::-webkit-scrollbar-thumb { border-radius:10px; background:rgba(57,146,197,.32); }
.df-home-family-card { position:relative; flex:0 0 min(72%,260px); min-width:0; height:258px; overflow:hidden; border-radius:16px; scroll-snap-align:start; background:#dfe9ee; box-shadow:inset 0 0 0 1px rgba(29,64,83,.05); color:#fff; text-decoration:none; }
.df-home-family-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,30,42,.02) 30%,rgba(8,30,42,.78) 100%); }
.df-home-family-card img { width:100%; height:100%; object-fit:cover; transition:transform .32s ease; }
.df-home-family-card > span { position:absolute; z-index:2; left:17px; right:17px; bottom:16px; display:flex; flex-direction:column; gap:4px; }
.df-home-family-card small { color:#ffd08a; font-size:9px; font-weight:850; letter-spacing:.14em; }
.df-home-family-card strong { color:#fff; font-size:16px; line-height:1.22; font-weight:820; }
.df-home-family-card:hover, .df-home-family-card:focus { color:#fff; text-decoration:none; }
.df-home-family-card:hover img, .df-home-family-card:focus-visible img { transform:scale(1.035); }
.df-home-family-hint { display:flex; align-items:center; justify-content:center; gap:7px; margin-top:7px; color:#84949d; font-size:11px; }

.df-home-brand-logos--extended { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.df-home-brand-logos--extended .df-home-brand-logo { width:auto; min-width:0; height:68px; padding:9px 11px; border:1px solid rgba(255,255,255,.16); border-radius:11px; background:#fff; }
.df-home-brand-logos--extended .df-home-brand-logo img { width:100%; height:100%; max-width:115px; max-height:48px; object-fit:contain; }
.df-home-brand-panel { min-width:0; }

@media (min-width:1200px) {
    .df-home-family-card { flex-basis:245px; }
}
@media (max-width:1199.98px) {
    .df-home-family-card { flex-basis:235px; height:242px; }
    .df-home-brand-logos--extended { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:991.98px) {
    .df-home-family-showcase { margin-top:8px; }
    .df-home-family-card { flex-basis:270px; height:235px; }
    .df-home-brand-logos--extended { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media (max-width:767.98px) {
    .df-home-family-showcase { padding:15px; border-radius:18px; }
    .df-home-family-card { flex-basis:72vw; max-width:280px; height:220px; }
    .df-home-family-hint { justify-content:flex-start; }
    .df-home-brand-logos--extended { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:575.98px) {
    .df-home-family-head strong { font-size:15px; }
    .df-home-family-card { flex-basis:78vw; max-width:260px; height:208px; }
    .df-home-family-controls { display:none; }
    .df-home-brand-logos--extended { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .df-home-brand-logos--extended .df-home-brand-logo { height:64px; }
}
@media (max-width:380px) {
    .df-home-family-showcase { padding:12px; }
    .df-home-family-card { flex-basis:82vw; height:195px; }
    .df-home-brand-logos--extended { gap:7px; }
}


/* ============================================================
   Difriho Home v4.5.3 - larger family showcase + cleaner copy
   ============================================================ */
.df-home-hero-grid {
    grid-template-columns: minmax(0,.86fr) minmax(540px,1.14fr);
    gap: 48px;
}
.df-home-family-showcase {
    min-height: 510px;
    padding: 22px;
    border-radius: 24px;
}
.df-home-family-head { margin-bottom: 17px; }
.df-home-family-head strong { font-size: 18px; }
.df-home-family-track { gap: 16px; padding: 3px 3px 12px; }
.df-home-family-card {
    flex-basis: 292px;
    height: 308px;
    border-radius: 19px;
    box-shadow: 0 9px 24px rgba(22,58,78,.10), inset 0 0 0 1px rgba(29,64,83,.05);
    transition: transform .26s ease, box-shadow .26s ease;
}
.df-home-family-card::after { background: linear-gradient(180deg,rgba(8,30,42,.01) 30%,rgba(8,30,42,.86) 100%); }
.df-home-family-card > span { left: 19px; right: 19px; bottom: 18px; gap: 5px; }
.df-home-family-card strong { font-size: 17px; }
.df-home-family-card:hover,
.df-home-family-card:focus-visible { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(22,58,78,.18); }
.df-home-family-card:hover img,
.df-home-family-card:focus-visible img { transform: scale(1.045); }
.df-home-family-cta {
    display: inline-flex;
    width: max-content;
    align-items: center;
    gap: 7px;
    margin-top: 8px;
    padding: 7px 10px;
    border: 1px solid rgba(255,255,255,.34);
    border-radius: 999px;
    background: rgba(255,255,255,.13);
    color: #fff;
    font-size: 10px;
    font-style: normal;
    font-weight: 800;
    line-height: 1;
    letter-spacing: .035em;
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}
.df-home-family-cta i { font-size: 9px; transition: transform .2s ease; }
.df-home-family-card:hover .df-home-family-cta i,
.df-home-family-card:focus-visible .df-home-family-cta i { transform: translateX(3px); }

/* Copy has intentionally been simplified: tighten headings when they are the last text element. */
.df-section-heading h2:last-child { margin-bottom: 0; }
.df-home-solution-body h3 + a { margin-top: 16px; }
.df-home-tech-copy h2 + .df-button,
.df-home-news-content h2 + .df-button { margin-top: 22px; }
.df-home-brand-logos--extended { margin-top: 12px; }

@media (min-width:1200px) {
    .df-home-family-card { flex-basis: 300px; height: 316px; }
}
@media (max-width:1199.98px) {
    .df-home-hero-grid { grid-template-columns:minmax(0,.9fr) minmax(500px,1.1fr); gap:38px; }
    .df-home-family-showcase { min-height:480px; padding:20px; }
    .df-home-family-card { flex-basis:272px; height:288px; }
}
@media (max-width:991.98px) {
    .df-home-hero-grid { grid-template-columns:1fr; gap:30px; }
    .df-home-family-showcase { min-height:0; }
    .df-home-family-card { flex-basis:300px; height:278px; }
}
@media (max-width:767.98px) {
    .df-home-family-showcase { padding:17px; }
    .df-home-family-card { flex-basis:76vw; max-width:310px; height:250px; }
}
@media (max-width:575.98px) {
    .df-home-family-head strong { font-size:16px; }
    .df-home-family-card { flex-basis:82vw; max-width:292px; height:238px; }
    .df-home-family-card strong { font-size:16px; }
}
@media (max-width:380px) {
    .df-home-family-card { flex-basis:84vw; height:224px; }
}

/* ============================================================
   Difriho Home v4.5.4 — catálogo principal más protagonista
   ============================================================ */
.df-home-section {
    padding: 62px 0;
}

.df-home-quick {
    padding-top: 48px;
}

.df-home-hero {
    padding: 44px 0 54px;
    background:
        radial-gradient(circle at 8% 10%, rgba(57,146,197,.11), transparent 28%),
        linear-gradient(180deg, #f8fbfd 0%, #ffffff 88%);
}

.df-home-hero::after {
    top: -120px;
    right: -118px;
    width: 360px;
    height: 360px;
    border-width: 60px;
    opacity: .7;
}

.df-home-catalog-shell {
    position: relative;
    display: grid;
    gap: 24px;
    padding: 28px;
    border: 1px solid rgba(57,146,197,.14);
    border-radius: 28px;
    background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, #f5f9fc 100%);
    box-shadow: 0 26px 56px rgba(27, 66, 88, .10);
}

.df-home-catalog-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 22px 28px;
}

.df-home-catalog-copy {
    min-width: 0;
}

.df-home-catalog-copy h1 {
    max-width: 720px;
    margin: 0;
    color: #173847;
    font-size: clamp(36px, 4.4vw, 58px);
    font-weight: 850;
    line-height: 1.02;
    letter-spacing: -.045em;
}

.df-home-catalog-shell .df-home-hero-actions {
    margin: 0;
    justify-content: flex-end;
}

.df-home-catalog-shell .df-button {
    min-height: 50px;
    padding: 12px 20px;
}

.df-home-catalog-shell .df-home-family-showcase {
    min-height: 0;
    padding: 28px;
    border: 1px solid rgba(57,146,197,.14);
    border-radius: 24px;
    background: #fff;
    box-shadow: 0 18px 42px rgba(27, 66, 88, .08);
}

.df-home-family-head {
    margin-bottom: 18px;
}

.df-home-family-head strong {
    font-size: 21px;
}

.df-home-family-track {
    gap: 18px;
    padding: 3px 3px 14px;
}

.df-home-family-card {
    flex-basis: 332px;
    height: 352px;
}

.df-home-family-card small {
    font-size: 9.5px;
}

.df-home-family-card strong {
    font-size: 18px;
}

.df-home-family-card > span {
    left: 20px;
    right: 20px;
    bottom: 20px;
}

.df-home-family-card img {
    object-position: center center;
}

.df-home-family-hint {
    margin-top: 10px;
}

.df-home-tech-panel {
    gap: 30px;
}

.df-home-brand-logos--extended .df-home-brand-logo {
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    border: 1px solid rgba(57,146,197,.12);
    box-shadow: 0 8px 18px rgba(16, 47, 63, .07);
}

.df-home-brand-logos--extended .df-home-brand-logo:hover,
.df-home-brand-logos--extended .df-home-brand-logo:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(16, 47, 63, .12);
    border-color: rgba(57,146,197,.30);
}

.df-home-news-card,
.df-home-contact-box,
.df-home-tech-panel {
    box-shadow: 0 18px 42px rgba(17, 47, 63, .09);
}

@media (max-width: 1199.98px) {
    .df-home-catalog-copy h1 {
        max-width: 620px;
        font-size: clamp(34px, 4vw, 52px);
    }

    .df-home-family-card {
        flex-basis: 300px;
        height: 320px;
    }
}

@media (max-width: 991.98px) {
    .df-home-section {
        padding: 56px 0;
    }

    .df-home-catalog-shell {
        padding: 24px;
        border-radius: 24px;
    }

    .df-home-catalog-head {
        flex-direction: column;
        align-items: flex-start;
    }

    .df-home-catalog-shell .df-home-hero-actions {
        justify-content: flex-start;
    }

    .df-home-catalog-shell .df-home-family-showcase {
        padding: 22px;
    }

    .df-home-family-card {
        flex-basis: 314px;
        height: 304px;
    }
}

@media (max-width: 767.98px) {
    .df-home-hero {
        padding: 34px 0 42px;
    }

    .df-home-catalog-shell {
        gap: 18px;
        padding: 18px;
        border-radius: 20px;
    }

    .df-home-catalog-copy h1 {
        font-size: clamp(30px, 8vw, 40px);
    }

    .df-home-catalog-shell .df-home-family-showcase {
        padding: 17px;
        border-radius: 19px;
    }

    .df-home-family-head strong {
        font-size: 18px;
    }

    .df-home-family-card {
        flex-basis: 78vw;
        max-width: 320px;
        height: 260px;
    }

    .df-home-family-card strong {
        font-size: 16px;
    }
}

@media (max-width: 575.98px) {
    .df-home-section {
        padding: 48px 0;
    }

    .df-home-catalog-shell .df-home-hero-actions {
        width: 100%;
    }

    .df-home-catalog-shell .df-home-hero-actions .df-button {
        width: 100%;
        justify-content: center;
    }

    .df-home-family-card {
        flex-basis: 84vw;
        max-width: 300px;
        height: 240px;
    }
}


/* ============================================================
   Difriho Home v4.5.5 — ajuste de jerarquía y espaciado
   ============================================================ */
.df-home-catalog-copy h1 {
    max-width: 620px;
    font-size: clamp(30px, 3.2vw, 44px);
    line-height: 1.04;
    letter-spacing: -.035em;
}

.df-home-hero {
    padding-top: 42px;
    padding-bottom: 42px;
}

.df-home-quick {
    padding-top: 32px;
}

@media (max-width: 991.98px) {
    .df-home-catalog-copy h1 {
        max-width: 560px;
        font-size: clamp(29px, 5vw, 40px);
    }

    .df-home-hero {
        padding-top: 36px;
        padding-bottom: 36px;
    }

    .df-home-quick {
        padding-top: 28px;
    }
}

@media (max-width: 575.98px) {
    .df-home-catalog-copy h1 {
        font-size: clamp(27px, 8vw, 34px);
    }

    .df-home-hero {
        padding-top: 30px;
        padding-bottom: 32px;
    }

    .df-home-quick {
        padding-top: 24px;
    }
}
