/* ============================================================
   DIFRIHO 2026 — Páginas interiores v4.4
   Diseño responsive común para Descargas, Información técnica,
   Contacto, Delegaciones, Condiciones, Legal y estados.
   ============================================================ */
.df-public-page { background:#fff; }
.df-page-main { min-height:55vh; background:#fff; overflow:hidden; }
.df-page-hero { position:relative; padding:58px 0 60px; border-bottom:1px solid #e8eef2; background:radial-gradient(circle at 86% 10%,rgba(57,146,197,.10),transparent 27%),linear-gradient(180deg,#f8fbfd 0%,#fff 100%); }
.df-page-hero::after { content:''; position:absolute; right:-85px; top:-125px; width:270px; height:270px; border:45px solid rgba(240,148,10,.055); border-radius:50%; pointer-events:none; }
.df-page-breadcrumb { position:relative; z-index:1; display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0 0 22px; color:#82919a; font-size:12px; font-weight:650; }
.df-page-breadcrumb a { color:#607b8a; }
.df-page-breadcrumb a:hover { color:var(--df-blue-deep); }
.df-page-breadcrumb span[aria-hidden] { color:#b3c0c7; }
.df-page-hero-copy { position:relative; z-index:1; max-width:780px; }
.df-page-eyebrow,.df-card-kicker { display:block; margin-bottom:10px; color:var(--df-blue-deep); font-size:11px; font-weight:850; line-height:1.25; letter-spacing:.095em; text-transform:uppercase; }
.df-page-eyebrow::before { content:''; display:inline-block; vertical-align:middle; width:23px; height:2px; margin-right:8px; border-radius:99px; background:var(--df-orange); }
.df-page-hero h1 { margin:0 0 13px; color:#183746; font-size:clamp(34px,4.3vw,52px); font-weight:850; line-height:1.06; letter-spacing:-.035em; }
.df-page-hero p { max-width:720px; margin:0; color:#657985; font-size:17px; line-height:1.7; }
.df-page-section { padding:68px 0 82px; }
.df-page-note { display:flex; align-items:flex-start; gap:10px; max-width:820px; margin:22px auto 0; padding:13px 15px; border-radius:10px; background:#f4f9fc; color:#627885; font-size:13px; line-height:1.55; }
.df-page-note i { margin-top:3px; color:var(--df-blue-deep); }

/* Descargas */
.df-download-card { display:grid; grid-template-columns:84px minmax(0,1fr) auto; gap:26px; align-items:center; max-width:930px; margin:0 auto; padding:28px 30px; border:1px solid #dce7ec; border-radius:18px; background:#fff; box-shadow:0 12px 38px rgba(35,72,91,.09); }
.df-download-icon { display:flex; align-items:center; justify-content:center; width:84px; height:84px; border:1px solid #d9e7ee; border-radius:16px; background:linear-gradient(145deg,#edf7fb,#fff); color:var(--df-blue-deep); font-size:32px; }
.df-download-copy h2 { margin:0 0 7px; color:#263f4d; font-size:25px; font-weight:820; }
.df-download-copy p { max-width:580px; margin:0; color:#6e808a; font-size:14.5px; line-height:1.62; }
.df-download-button { min-width:190px; white-space:nowrap; }

/* Información técnica */
.df-tech-section { background:#f8fafb; }
.df-tech-search-card { margin-bottom:38px; padding:27px; border:1px solid #dbe7ed; border-radius:17px; background:#fff; box-shadow:0 8px 28px rgba(35,72,91,.065); }
.technical-search-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:25px; margin-bottom:22px; }
.technical-search-heading h2 { margin:0 0 6px; color:#263f4d; font-size:22px; font-weight:820; }
.technical-search-heading h2 i { margin-right:7px; color:var(--df-blue-deep); font-size:18px; }
.technical-search-heading p { margin:0; color:#71828c; font-size:13.5px; }
.technical-search-count { flex:0 0 auto; display:inline-flex; align-items:center; justify-content:center; min-height:34px; padding:7px 12px; border-radius:999px; background:#edf6fa; color:#2b749e; font-size:12px; font-weight:800; white-space:nowrap; }
.technical-search-controls { display:grid; grid-template-columns:minmax(240px,2fr) minmax(150px,.85fr) minmax(150px,.85fr) auto; gap:13px; align-items:end; }
.technical-search-field { min-width:0; }
.technical-search-field label { display:block; margin:0 0 6px; color:#536976; font-size:11.5px; font-weight:800; }
.technical-search-field input,.technical-search-field select { width:100%; height:44px; margin:0; padding:9px 12px; border:1px solid #cad9e1; border-radius:9px; background:#fff; color:#344b58; font-size:13.5px; }
.technical-search-input-wrap { position:relative; }
.technical-search-input-wrap > i { position:absolute; left:13px; top:50%; z-index:1; transform:translateY(-50%); color:#7e929e; }
.technical-search-input-wrap input { padding-left:37px; }
.technical-search-clear { height:44px; min-width:94px; padding:0 15px; border:1px solid var(--df-orange); border-radius:9px; background:var(--df-orange); color:#fff; font-size:12.5px; font-weight:800; cursor:pointer; }
.technical-search-clear:hover,.technical-search-clear:focus { background:var(--df-orange-dark); border-color:var(--df-orange-dark); }
.df-tech-results-head { display:flex; align-items:flex-end; justify-content:space-between; gap:28px; margin:0 0 15px; }
.df-tech-results-head h2 { margin:0; color:#263f4d; font-size:22px; font-weight:820; }
.df-tech-results-head p { margin:0 0 1px; color:#7a8b94; font-size:12.5px; }
.df-tech-table-wrap { border-radius:15px; box-shadow:0 8px 26px rgba(35,72,91,.065); }
.technical-info-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.technical-info-columns th { padding:15px 18px; background:#2d7da9; color:#fff; border:0; font-size:11.5px; font-weight:800; letter-spacing:.035em; text-transform:uppercase; }
.technical-info-columns th:nth-child(1) { width:22%; }
.technical-info-columns th:nth-child(2) { width:40%; }
.technical-info-columns th:nth-child(3) { width:24%; }
.technical-info-columns th:nth-child(4) { width:14%; text-align:center; }
.technical-info-row td { padding:15px 18px; border-top:1px solid #e8eef1; background:#fff; color:#435966; font-size:13.5px; vertical-align:middle; }
.technical-info-row:hover td { background:#f8fbfc; }
.technical-info-brand { text-align:center; }
.technical-brand-logo { display:block; max-width:112px; max-height:52px; margin:0 auto; object-fit:contain; }
.technical-info-machine { font-weight:750; color:#2c4350 !important; }
.technical-type-badge { display:inline-flex; padding:6px 10px; border-radius:999px; background:#edf6fa; color:#2e779e; font-size:11.5px; font-weight:800; }
.technical-info-view { text-align:center; }
.technical-view-link { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border:1px solid #cfe0e8; border-radius:9px; background:#fff; color:var(--df-blue-deep); }
.technical-view-link:hover,.technical-view-link:focus { border-color:var(--df-blue); background:#edf7fb; color:var(--df-blue-deep); transform:translateY(-1px); }
.technical-info-empty,.technical-info-no-results td { padding:30px !important; text-align:center; color:#758791; background:#fff; }

/* Contacto */
.df-contact-grid { display:grid; grid-template-columns:minmax(0,1.18fr) minmax(340px,.82fr); gap:30px; align-items:stretch; }
.df-contact-map-card { overflow:hidden; border:1px solid #dce7ec; border-radius:18px; background:#fff; box-shadow:0 10px 32px rgba(35,72,91,.08); }
.df-contact-map-head { padding:27px 29px 22px; }
.df-contact-map-head h2 { margin:0 0 7px; color:#263f4d; font-size:25px; font-weight:820; }
.df-contact-map-head p { margin:0; color:#71828c; font-size:14px; }
.df-contact-map-wrap { position:relative; min-height:390px; background:#edf3f6; }
.df-contact-map { position:absolute; inset:0; width:100%; height:100%; border:0; }
.df-contact-channels { display:grid; grid-template-rows:repeat(3,1fr); gap:14px; }
.df-contact-channel { display:grid; grid-template-columns:50px minmax(0,1fr) auto; gap:15px; align-items:center; min-height:128px; padding:20px; border:1px solid #dce7ec; border-radius:15px; background:#fff; color:inherit; box-shadow:0 7px 24px rgba(35,72,91,.055); }
.df-contact-channel:hover,.df-contact-channel:focus { color:inherit; border-color:#bed9e7; box-shadow:0 14px 32px rgba(35,72,91,.10); transform:translateY(-2px); }
.df-contact-channel-icon { display:flex; align-items:center; justify-content:center; width:50px; height:50px; border-radius:13px; background:#edf7fb; color:var(--df-blue-deep); font-size:20px; }
.df-contact-channel small,.df-contact-channel strong,.df-contact-channel em { display:block; min-width:0; }
.df-contact-channel small { margin-bottom:4px; color:#7a8b95; font-size:10px; font-weight:850; letter-spacing:.06em; }
.df-contact-channel strong { overflow-wrap:anywhere; color:#2b4756; font-size:14.5px; font-weight:800; }
.df-contact-channel em { margin-top:5px; color:#778993; font-size:11.5px; font-style:normal; line-height:1.4; }
.df-contact-channel > i { color:var(--df-orange); font-size:14px; }

/* Delegaciones */
.df-delegations-card { overflow:hidden; border:1px solid #dce7ec; border-radius:18px; background:#fff; box-shadow:0 12px 38px rgba(35,72,91,.08); }
.df-delegations-card-head { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:25px 28px; border-bottom:1px solid #e8eef1; }
.df-delegations-card-head h2 { margin:0; color:#263f4d; font-size:24px; font-weight:820; }
.df-delegations-map-wrap { padding:18px; background:#f6f9fa; text-align:center; }
.df-delegations-map-image { display:block; width:100%; max-width:1120px; height:auto; margin:0 auto; border-radius:11px; background:#fff; }
.df-empty-state { padding:62px 20px; text-align:center; }
.df-empty-state > i { display:flex; align-items:center; justify-content:center; width:60px; height:60px; margin:0 auto 18px; border-radius:50%; background:#edf7fb; color:var(--df-blue-deep); font-size:24px; }
.df-empty-state h2 { margin-bottom:8px; font-size:22px; }
.df-empty-state p { max-width:520px; margin:0 auto 20px; }

/* Condiciones */
.df-document-card { overflow:hidden; border:1px solid #dce7ec; border-radius:18px; background:#fff; box-shadow:0 12px 38px rgba(35,72,91,.08); }
.df-document-card-head { padding:26px 29px; border-bottom:1px solid #e7edef; }
.df-document-card-head h2 { margin:0 0 6px; color:#263f4d; font-size:24px; font-weight:820; }
.df-document-card-head p { margin:0; font-size:13.5px; }
.df-document-image-wrap { padding:20px; background:#f8fafb; }
.df-document-image-wrap img { display:block; width:100%; height:auto; margin:0 auto; border-radius:10px; }

/* Legal */
.df-legal-section { background:#f8fafb; }
.df-legal-card { max-width:940px; margin:0 auto; padding:42px 48px; border:1px solid #dce7ec; border-radius:18px; background:#fff; box-shadow:0 10px 34px rgba(35,72,91,.07); }
.df-legal-card > h2:first-child { display:none; }
.df-legal-card hr { display:none; }
.df-legal-card h5 { margin:34px 0 12px; padding-top:4px; color:#264a5d; font-size:16px; font-weight:850; line-height:1.35; }
.df-legal-card p,.df-legal-card li { color:#596d79; font-size:14.5px; line-height:1.78; }
.df-legal-card p { margin-bottom:16px; }
.df-legal-card ul { padding-left:22px; }
.df-legal-card li { margin-bottom:7px; }
.df-legal-card a { overflow-wrap:anywhere; color:var(--df-blue-deep) !important; text-decoration:underline; text-decoration-color:#bfd6e2; text-underline-offset:3px; }
.df-legal-card figure { max-width:100%; margin:24px 0; overflow-x:auto; }
.df-legal-card table { width:100%; min-width:680px; border-collapse:collapse; }
.df-legal-card th,.df-legal-card td { padding:12px 13px; border:1px solid #dce5ea; text-align:left; vertical-align:top; color:#586c78; font-size:12.5px; line-height:1.5; }
.df-legal-card th { background:#edf5f9; color:#345263; font-weight:800; }

/* Estados de contacto */
.df-status-section { display:flex; align-items:center; min-height:calc(100vh - var(--df-header-height) - 250px); padding:70px 0; background:linear-gradient(180deg,#f7fafc,#fff); }
.df-status-card { max-width:620px; margin:0 auto; padding:46px 42px; border:1px solid #dce7ec; border-radius:20px; background:#fff; text-align:center; box-shadow:0 18px 48px rgba(35,72,91,.10); }
.df-status-icon { display:flex; align-items:center; justify-content:center; width:72px; height:72px; margin:0 auto 20px; border-radius:50%; font-size:27px; }
.df-status-card--success .df-status-icon { background:#eaf6ef; color:#2d8759; }
.df-status-card--error .df-status-icon { background:#fff0ef; color:#b83a3a; }
.df-status-card h1 { margin:0 0 12px; color:#263f4d; font-size:clamp(28px,4vw,38px); font-weight:850; }
.df-status-card p { max-width:500px; margin:0 auto; }
.df-status-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:10px; margin-top:26px; }

/* ---------------- RESPONSIVE GLOBAL ---------------- */
@media (max-width:1199px) {
    .df-page-section { padding:62px 0 74px; }
    .df-contact-grid { grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr); gap:24px; }
    .technical-search-controls { grid-template-columns:minmax(220px,1.6fr) repeat(2,minmax(135px,.8fr)) auto; }
}
@media (max-width:991px) {
    .df-page-hero { padding:50px 0 52px; }
    .df-page-section { padding:54px 0 66px; }
    .df-download-card { grid-template-columns:72px 1fr; }
    .df-download-icon { width:72px; height:72px; }
    .df-download-button { grid-column:1 / -1; width:100%; }
    .technical-search-controls { grid-template-columns:1fr 1fr; }
    .technical-search-field-main { grid-column:1 / -1; }
    .technical-search-action { display:flex; align-items:flex-end; }
    .technical-search-clear { width:100%; }
    .df-contact-grid { grid-template-columns:1fr; }
    .df-contact-map-wrap { min-height:360px; }
    .df-contact-channels { grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:none; }
    .df-contact-channel { grid-template-columns:44px minmax(0,1fr); min-height:155px; align-content:start; }
    .df-contact-channel > i { display:none; }
    .df-contact-channel-icon { width:44px; height:44px; }
    .df-contact-channel > span:nth-child(2) { grid-column:1 / -1; }
    .df-legal-card { padding:38px 38px; }
}
@media (max-width:767px) {
    .df-page-hero { padding:42px 0 44px; }
    .df-page-breadcrumb { margin-bottom:17px; }
    .df-page-hero h1 { font-size:clamp(31px,8vw,42px); }
    .df-page-hero p { font-size:15.5px; }
    .df-page-section { padding:46px 0 56px; }
    .df-download-card { grid-template-columns:62px 1fr; gap:18px; padding:22px; border-radius:15px; }
    .df-download-icon { width:62px; height:62px; font-size:25px; }
    .df-download-copy h2 { font-size:21px; }
    .df-tech-search-card { padding:22px; }
    .technical-search-heading { flex-direction:column; gap:12px; }
    .technical-search-controls { grid-template-columns:1fr; }
    .technical-search-field-main { grid-column:auto; }
    .df-tech-results-head { align-items:flex-start; flex-direction:column; gap:5px; }
    .technical-info-table,.technical-info-table tbody { display:block; width:100%; }
    .technical-info-table thead { display:none; }
    .technical-info-row { display:grid; grid-template-columns:1fr 1fr; gap:0; margin:12px; overflow:hidden; border:1px solid #dce7ec; border-radius:12px; background:#fff; box-shadow:0 5px 18px rgba(35,72,91,.05); }
    .technical-info-row td { display:grid; grid-template-columns:86px minmax(0,1fr); align-items:center; min-height:58px; padding:11px 13px; border:0; border-bottom:1px solid #edf1f3; text-align:left !important; }
    .technical-info-row td::before { content:attr(data-label); color:#82929b; font-size:10px; font-weight:850; letter-spacing:.045em; text-transform:uppercase; }
    .technical-info-row .technical-info-brand,.technical-info-row .technical-info-machine { grid-column:span 1; }
    .technical-info-row .technical-info-type,.technical-info-row .technical-info-view { border-bottom:0; }
    .technical-brand-logo { max-width:90px; max-height:43px; margin:0; }
    .technical-info-view .technical-view-link { margin-left:0; }
    .technical-info-empty,.technical-info-no-results { display:block; margin:12px; }
    .technical-info-empty,.technical-info-no-results td { display:block; }
    .df-contact-channels { grid-template-columns:1fr; }
    .df-contact-channel { grid-template-columns:50px minmax(0,1fr) auto; min-height:118px; align-content:center; }
    .df-contact-channel > span:nth-child(2) { grid-column:auto; }
    .df-contact-channel > i { display:block; }
    .df-delegations-card-head { align-items:flex-start; flex-direction:column; }
    .df-delegations-card-head .df-button { width:100%; }
    .df-delegations-map-wrap { padding:10px; overflow-x:auto; }
    .df-legal-card { padding:30px 26px; border-radius:14px; }
    .df-status-card { padding:38px 28px; }
}
@media (max-width:575px) {
    .df-page-hero { padding:36px 0 39px; }
    .df-page-hero h1 { font-size:clamp(29px,9.5vw,38px); }
    .df-page-hero p { font-size:14.5px; }
    .df-page-section { padding:39px 0 48px; }
    .df-download-card { grid-template-columns:1fr; text-align:center; }
    .df-download-icon { margin:0 auto; }
    .df-download-copy p { margin-left:auto; margin-right:auto; }
    .df-page-note { font-size:12px; }
    .df-tech-search-card { padding:18px; margin-bottom:28px; }
    .technical-info-row { grid-template-columns:1fr; margin:10px; }
    .technical-info-row .technical-info-brand,.technical-info-row .technical-info-machine,.technical-info-row .technical-info-type,.technical-info-row .technical-info-view { grid-column:auto; border-bottom:1px solid #edf1f3; }
    .technical-info-row .technical-info-view { border-bottom:0; }
    .technical-info-row td { grid-template-columns:78px minmax(0,1fr); }
    .df-contact-map-head { padding:23px 21px 18px; }
    .df-contact-map-wrap { min-height:300px; }
    .df-contact-channel { grid-template-columns:46px minmax(0,1fr); padding:18px; }
    .df-contact-channel > i { display:none; }
    .df-contact-channel strong { font-size:13.5px; }
    .df-delegations-card-head,.df-document-card-head { padding:22px 20px; }
    .df-document-image-wrap { padding:10px; }
    .df-legal-card { padding:26px 20px; }
    .df-legal-card h5 { margin-top:29px; font-size:15px; }
    .df-legal-card p,.df-legal-card li { font-size:13.5px; line-height:1.72; }
    .df-status-section { padding:48px 0; }
    .df-status-card { padding:32px 20px; }
    .df-status-actions { flex-direction:column; }
    .df-status-actions .df-button { width:100%; }
}
@media (max-width:380px) {
    .df-page-hero h1 { font-size:28px; }
    .df-page-breadcrumb { font-size:11px; }
    .technical-info-row td { grid-template-columns:68px minmax(0,1fr); padding:10px; }
    .df-contact-map-wrap { min-height:260px; }
    .df-contact-channel { grid-template-columns:1fr; text-align:center; }
    .df-contact-channel-icon { margin:0 auto; }
}
@media (prefers-reduced-motion:reduce) { .df-contact-channel,.technical-view-link { transition:none; } }


/* ============================================================
   Difriho Pages v4.5 - download alignment + cookie policy
   ============================================================ */
.df-downloads-page .df-download-card { margin-left:0; margin-right:0; }
.df-downloads-page .df-page-note { margin-left:0; margin-right:0; }
.df-cookie-policy-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:20px 0 26px; }
.df-cookie-policy-item { padding:18px; border:1px solid #dce7ec; border-radius:13px; background:#f8fbfc; }
.df-cookie-policy-item strong { display:block; margin-bottom:6px; color:#294757; font-size:15px; }
.df-cookie-policy-item p { margin:0 !important; font-size:13.5px !important; line-height:1.58 !important; }
.df-cookie-policy-item code { padding:2px 5px; border-radius:5px; background:#e8f2f7; color:#275978; }
@media (max-width:767.98px) { .df-cookie-policy-grid { grid-template-columns:1fr; } }
