/* Ensure hidden attribute always hides regardless of other display rules */
[hidden] { display: none !important; }

/* Basic styles for CookieManager */
#cookiemanager-root { font-family: inherit, -apple-system, Segoe UI, Roboto, Arial, sans-serif; color: #333; font-size: 0.75rem; }
#cookiemanager-root a { color: #de3a20; text-decoration: none; }
.cm-btn { cursor: pointer; border-radius: 0; padding: .5rem .9rem; border: 1px solid #000; font-size: inherit; background: transparent; color: #333; text-transform: uppercase; }
.cm-btn--primary { background: #fff; color: #333; border-color: #000; }
.cm-btn--secondary { background: #fff; color: #333; border-color: #000;}
.cm-btn--ghost { background: #fff; color: #333; border-color: #000; }
.cm-btn:disabled, .cm-btn[disabled] { background: #dadada; border: none; color: #333; cursor: default; }
.cm-btn--secondary:disabled, .cm-btn--secondary[disabled] { border: 1px solid #000; }
.cm-btn--primary:disabled, .cm-btn--primary[disabled] { color: #fff;  background: rgba(222, 58, 32, .5)}

.cm-top-banner { position: fixed; top: 0; left: 0; right: 0; background: #fff; color: #333; padding: 1.25rem 3rem; z-index: 10000; display: flex; align-items: center; justify-content: center; border-bottom: 1px solid #ddd; }
.cm-top-banner__inner { display: grid; gap: .5rem; text-align: center; }
.cm-top-banner__policy { margin: 0; font-size: inherit; }
.cm-top-banner__policy a { color: #de3a20; text-decoration: none; }
.cm-top-banner__actions { display: flex; gap: .5rem; justify-content: center; margin-top: 0.6rem; }

.cm-bottom-banner { position: fixed; bottom: 0; left: 0; right: 0; background: #fff; color: #333; padding: 30px 40px 0 20px; z-index: 9999; display: flex; align-items: center; justify-content: center; border-top: 1px solid #ddd; }
.cm-bottom-banner__inner { text-align: center; max-width: 920px; margin: 20px 20px 40px 20px; }
.cm-bottom-banner__line { margin: 0; }
.cm-bottom-banner__more { margin-top: .5rem; }
.cm-bottom-banner__more-content { text-align: center; }
.cm-bottom-banner__more-content ol { display: inline-block; text-align: left; margin: .5rem 30px 0; padding-left: 1.25rem; }
.cm-bottom-banner .cm-linklike { background: none; border: none; padding: 0; color: #333; text-decoration: none; cursor: pointer; font-weight: 700; text-transform: none; }

/* ensure links stay without underline on hover/focus */
#cookiemanager-root a:hover, 
#cookiemanager-root a:focus { text-decoration: none; }
.cm-bottom-banner__close, .cm-top-banner__close { position: absolute; right: 10px; top: 10px; width: 30px; height: 30px; border: none; cursor: pointer; background: transparent; color: #fff; font-weight: bold;  z-index: 10002; }
.cm-bottom-banner__close:hover, .cm-top-banner__close:hover { color: #de3a20; }
.cm-bottom-banner__close img { width: 75%; height: auto; display: block; }


/* Theme variants (banners only) */
.cm-top-banner--dark { background: #212223; color: #fff; border-bottom-color: #333; }
.cm-bottom-banner--dark { background: #212223; color: #fff; border-top-color: #333; }
.cm-top-banner--dark .cm-top-banner__policy a,
.cm-bottom-banner--dark .cm-bottom-banner__line a { color: #de3a20; }
/* '+ info' button inside dark bottom banner should be white */
.cm-bottom-banner--dark .cm-linklike { color: #fff; }

.cm-modal[hidden] { display: none; }
.cm-modal { position: fixed; inset: 0; background: rgba(255,255,255,0.35); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); display: grid; place-items: center; z-index: 10001; }
.cm-modal__dialog { background: #fff; width: min(640px, 92vw); box-shadow: 0 12px 40px rgba(0,0,0,.2); overflow: hidden; }
.cm-modal__header { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-bottom: 1px solid #eee; }
.cm-modal__body { padding: 1rem 1.25rem; display: grid; gap: .75rem; }
.cm-modal__body, .cm-modal__intro, .cm-cookie-row__desc, .cm-cookie-row__desc p { text-align: left; }
.cm-modal__footer { padding: .75rem 1.25rem; display: flex; justify-content: flex-end; gap: .5rem; border-top: 1px solid #eee; }
.cm-modal__close { background-color: transparent; border: none; width: 30px; height: 30px; cursor: pointer; color: #000; font-weight: bold; }
.cm-modal__close:hover { color: #de3a20; }
.cm-modal__close img { width: 75%; height: auto; display: block; }

.cm-switch { display: flex; align-items: center; gap: .5rem; }
.cm-switch input { transform: scale(1.2); }

/* Configurator enhancements */
.cm-modal__intro { margin: .25rem 0 1rem; font-size: inherit; color: #333; }

.cm-cookie-row { border: 1px solid #eee; padding: .5rem .75rem; }
.cm-cookie-row + .cm-cookie-row { margin-top: .5rem; }
.cm-cookie-row__header { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .5rem; }
.cm-cookie-row__toggle { width: 28px; height: 28px; background: transparent; cursor: pointer; }
.cm-cookie-row__title { font-weight: 600; }
.cm-cookie-row__title span { cursor: pointer; }
.cm-cookie-row__actions { display: flex; gap: .5rem; }
.cm-cookie-row__desc { margin-top: .5rem; }

.cm-grid-container {
    display: grid;
    gap: 0;
    width: 100%;
    grid-template-columns: 1fr 1fr auto;
    grid-auto-columns: min-content;
    align-items: center;
}

.cm-grid-col-accio {
    display: flex;
    white-space: nowrap; 
}

/*los hijos del grid que se metan dentro del padre*/
.cm-grid-header,
.cm-grid-row {
    display: contents;
}

/* Estilo para la cabecera */
.cm-grid-header div {
    font-weight: bold;
    border-bottom: 2px solid #ccc;
    padding: .5rem .5rem .5rem 0;
}

/* Estilo para las celdas de las filas */
.cm-grid-row div {
    padding-top: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px solid #eee;
    /* padding: .5rem; */
}
.cm-grid-header div {
    font-weight: 600;
    border-bottom: 1px solid #eee;
    padding: .5rem .5rem .5rem 0;
}

.cm-grid-header .cm-grid-col-accio, .cm-grid-row .cm-grid-col-accio {
    display: flex;
    white-space: nowrap;
    padding: .5rem 0;
}

.cm-grid__row-actions {
    text-align: right;
}

/* Hover effect for actionable buttons (exclude disabled; close/linklike are not .cm-btn) */
.cm-btn:not(:disabled):not([disabled]):hover {
    background-color: #de3a20;
    color: white;
    background-position: 100% 50%;
}

/* Selected state (mirrors hover) */
.cm-btn.cm-selected {
	background-color: #de3a20; /*evita bug del linear-gradient amb el transition*/
    background-position: right bottom;
	border-color: #de3a20;
	color: #fff;
}

.cm-btn {
    background-image: linear-gradient(to right, #fff 50%, #de3a20 50%, #de3a20 100%);
    background-size: 200% 100%;
    /* background-position: left bottom; */
    background-position: 0% 50%;
    color: black;
    transition: all 0.2s ease;
}