/* Shop op kleur (Kleurpagina.dc.html): overzicht + familiepagina.
   Hero-tint komt als CSS-variabele --hero mee vanaf de view. */

/* ===== Overzicht (8 families) ===== */
.cf-index-head { padding: 48px 56px 8px; }
.cf-index-head .kicker { font-size: 13px; font-weight: 700; color: var(--sage); letter-spacing: .12em; text-transform: uppercase; margin-bottom: 12px; }
.cf-index-head h1 { font-family: Lora, serif; font-weight: 500; font-size: 44px; margin: 0 0 10px; }
.cf-index-head p { font-size: 16px; line-height: 1.65; color: var(--text-2); max-width: 64ch; margin: 0; }
.cf-index-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.cf-index-tile { display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end; min-height: 200px; padding: 20px 22px; color: #fff; transition: opacity .2s; }
.cf-index-tile:hover { opacity: .92; color: #fff; }
.cf-index-tile .name { font-family: Lora, serif; font-size: 20px; font-weight: 600; margin-bottom: 4px; }
.cf-index-tile .count { font-size: 13px; font-weight: 700; opacity: .85; }
.cf-index-tile.light { color: var(--navy); }
.cf-index-tile.light:hover { color: var(--navy); }

/* ===== Familiepagina: hero ===== */
.cf-hero { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.cf-hero .copy { padding: 56px; display: flex; flex-direction: column; justify-content: center; }
.cf-hero .kicker { font-size: 13px; font-weight: 700; color: var(--sage); letter-spacing: .12em; text-transform: uppercase; margin-bottom: 12px; }
.cf-hero h1 { font-family: Lora, serif; font-weight: 500; font-size: 44px; line-height: 1.1; margin: 0 0 16px; }
.cf-hero .intro { font-size: 16px; line-height: 1.65; color: var(--text-2); margin: 0 0 28px; max-width: 48ch; }
/* v3: familie-wisselaar (chips met kleurstip) in de hero. */
.cf-families { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.cf-family-chip { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--border-input); background: #fff; color: var(--navy); font: 700 13px 'Nunito Sans', sans-serif; padding: 7px 14px 7px 8px; border-radius: 999px; min-height: 38px; transition: border-color .2s, background .2s; }
.cf-family-chip:hover { border-color: var(--navy); color: var(--navy); }
.cf-family-chip.active { border: 2px solid var(--navy); background: var(--creme-light); padding: 6px 13px 6px 7px; }
.cf-family-chip .dot { width: 20px; height: 20px; border-radius: 50%; border: 1px solid rgba(73,87,110,.15); flex: none; }
.cf-range-label { font-size: 12px; font-weight: 800; letter-spacing: .12em; color: var(--sage); margin-bottom: 12px; text-transform: uppercase; }
.cf-range { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.cf-range a { width: 44px; height: 44px; border-radius: 4px; border: 1px solid rgba(73,87,110,.15); display: block; }
.cf-range a.active { box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--navy); }
.cf-range-note { font-size: 13px; font-weight: 700; color: var(--sage); margin-top: 10px; }
.cf-hero-visual { background: var(--hero); min-height: 380px; display: flex; align-items: center; justify-content: center; padding: 40px; transition: background .4s; }
.cf-hero-visual img { max-width: 280px; max-height: 340px; width: auto; height: auto; box-shadow: 0 24px 48px rgba(0,0,0,.28); }

/* ===== Grid ===== */
.cf-grid-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 8px; flex-wrap: wrap; gap: 8px; }
.cf-grid-head h2 { font-family: Lora, serif; font-weight: 500; font-size: 28px; margin: 0; }
.cf-grid-count { font-size: 13.5px; color: var(--sage); }
.cf-grid-count strong { color: var(--navy); }
.cf-grid-note { font-size: 13.5px; color: var(--sage); margin-bottom: 26px; }
.cf-card .img { position: relative; }
.cf-palette { position: absolute; right: 10px; bottom: 10px; display: flex; gap: 3px; }
.cf-palette span { width: 14px; height: 14px; border-radius: 50%; border: 1px solid rgba(255,255,255,.7); display: block; }
.cf-match { position: absolute; left: 10px; bottom: 10px; font-size: 11px; font-weight: 800; background: rgba(255,255,255,.92); color: var(--navy); padding: 2px 8px; border-radius: 4px; }
.cf-empty { border: 1px solid var(--border); padding: 40px; text-align: center; color: var(--text-2); font-size: 15px; }

/* ===== Stylingtips + combinaties ===== */
.cf-tips { background: var(--creme-light); padding: 56px; }
.cf-tips .kicker { font-size: 13px; font-weight: 700; color: var(--sage); letter-spacing: .12em; text-transform: uppercase; margin-bottom: 10px; }
.cf-tips h2 { font-family: Lora, serif; font-weight: 500; font-size: 30px; margin: 0 0 32px; max-width: 24ch; }
.cf-tips-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; }
.cf-tip-bar { width: 40px; height: 4px; background: var(--hero); margin-bottom: 16px; }
.cf-tip-title { font-family: Lora, serif; font-size: 19px; font-weight: 600; margin-bottom: 8px; }
.cf-tip p { font-size: 14.5px; line-height: 1.65; color: var(--text-2); margin: 0; }
.cf-combos { border-top: 1px solid #e5ddca; margin-top: 40px; padding-top: 28px; display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.cf-combos .lead { font-size: 14px; font-weight: 700; }
.cf-combo { display: inline-flex; align-items: center; gap: 8px; background: #fff; font-weight: 700; font-size: 13px; padding: 8px 16px 8px 8px; border-radius: 999px; color: var(--navy); min-height: 44px; }
.cf-combo .dot { width: 24px; height: 24px; border-radius: 50%; border: 1px solid rgba(73,87,110,.12); }

/* ===== Kamers-crosslink ===== */
.cf-rooms-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.cf-room-card { display: block; background: var(--creme-light); padding: 22px 24px; }
.cf-room-card .t { font-family: Lora, serif; font-size: 18px; font-weight: 600; margin-bottom: 4px; }
.cf-room-card .s { font-size: 13px; color: var(--sage); }

/* ===== Mobiel ===== */
@media (max-width: 900px) {
    .cf-index-head { padding: 32px 18px 4px; }
    .cf-index-head h1 { font-size: 30px; }
    .cf-index-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
    .cf-index-tile { min-height: 130px; padding: 14px 16px; }
    .cf-index-tile .name { font-size: 16px; }

    .cf-hero { grid-template-columns: 1fr; }
    /* Per design krijgt de mobiele hero zelf de familietint. */
    .cf-hero .copy { background: var(--hero); padding: 36px 24px; transition: background .4s; }
    .cf-hero.dark-hero .copy { color: #fff; }
    .cf-hero.dark-hero .copy .kicker { color: rgba(255,255,255,.85); }
    .cf-hero.dark-hero .copy h1 { color: #fff; }
    .cf-hero.dark-hero .copy .intro { color: rgba(255,255,255,.9); }
    .cf-hero.dark-hero .copy .cf-range-label,
    .cf-hero.dark-hero .copy .cf-range-note { color: rgba(255,255,255,.85); }
    .cf-hero h1 { font-size: 30px; }
    .cf-range { gap: 8px; }
    .cf-range a.active { box-shadow: 0 0 0 2px rgba(255,255,255,.9), 0 0 0 4px var(--navy); }
    /* De hero staat zelf in een tint uit de range; zonder duidelijkere rand valt dat swatch weg. */
    .cf-hero .cf-range a { border: 1px solid rgba(73,87,110,.4); }
    .cf-hero.dark-hero .cf-range a { border-color: rgba(255,255,255,.65); }
    .cf-hero-visual { display: none; }

    .cf-grid-head h2 { font-size: 22px; }
    .cf-tips { padding: 36px 18px; }
    .cf-tips h2 { font-size: 21px; }
    .cf-tips-grid { grid-template-columns: 1fr; gap: 24px; }
    .cf-rooms-grid { grid-template-columns: 1fr 1fr; gap: 12px; }
}

/* Kleurencatalogus (110+ benoemde kleuren) + zoek */
.cf-cat-head { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; margin-bottom: 8px; }
.cf-cat-head h2 { font-family: Lora, serif; font-weight: 500; font-size: 30px; margin: 0; }
.cf-search { display: flex; align-items: center; gap: 10px; border: 1px solid var(--border-input); background: #fff; padding: 10px 16px; min-width: 320px; color: var(--sage); }
.cf-search input { border: none; outline: none; font: 600 14.5px 'Nunito Sans', sans-serif; color: var(--navy); flex: 1; min-width: 0; }
.cf-search button { background: none; border: none; color: var(--sage); cursor: pointer; font-size: 14px; padding: 4px; }
.cf-cat-family { margin-top: 26px; }
.cf-cat-family h3 { font-family: Lora, serif; font-weight: 600; font-size: 18px; margin: 0 0 12px; }
.cf-cat-family h3 a { color: var(--navy); }
.cf-chip-row { display: flex; flex-wrap: wrap; gap: 10px; }
.cf-chip { display: inline-flex; align-items: center; gap: 8px; border: 1px solid var(--border-input); background: #fff; padding: 8px 14px 8px 9px; font: 700 13.5px 'Nunito Sans', sans-serif; color: var(--navy); min-height: 44px; }
.cf-chip:hover { border-color: var(--navy); color: var(--navy); }
.cf-chip .swatch { width: 26px; height: 26px; border-radius: 50%; border: 1px solid rgba(73,87,110,.15); flex-shrink: 0; }
.cf-chip .n { color: var(--sage); font-weight: 600; font-size: 12.5px; }
.cf-chip.muted { opacity: .45; cursor: default; }
.cf-cat-empty { margin-top: 28px; color: var(--text-2); font-size: 14.5px; }
[x-cloak] { display: none !important; }

/* Pagina van één benoemde kleur */
.cf-tint-hero { padding: 56px; color: #fff; }
.cf-tint-hero.light { color: var(--navy); }
.cf-tint-hero .kicker { font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; opacity: .85; margin-bottom: 10px; }
.cf-tint-hero h1 { font-family: Lora, serif; font-weight: 500; font-size: 44px; margin: 0 0 8px; }
.cf-tint-hero p { margin: 0; font-size: 15px; opacity: .9; max-width: 60ch; }
.cf-tint-neighbors { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 22px; }
.cf-tint-neighbors .lead { font-weight: 800; font-size: 13.5px; }
.cf-tint-hero .cf-combo { background: rgba(255,255,255,.92); color: var(--navy); }
.cf-tint-hero.light .cf-combo { background: #fff; }

@media (max-width: 900px) {
    .cf-search { min-width: 0; width: 100%; }
    .cf-tint-hero { padding: 32px 18px; }
    .cf-tint-hero h1 { font-size: 30px; }
}

/* Kleurencatalogus als grote kleurtegels (zoals de familie-tegels) */
.cf-swatch-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 14px; }
.cf-swatch-tile { display: flex; flex-direction: column; justify-content: flex-end; aspect-ratio: 1; padding: 14px 16px; color: #fff; transition: transform .15s; }
.cf-swatch-tile:hover { transform: translateY(-3px); color: #fff; }
.cf-swatch-tile.light { color: var(--navy); }
.cf-swatch-tile.light:hover { color: var(--navy); }
.cf-swatch-tile .name { font-family: Lora, serif; font-weight: 600; font-size: 16.5px; }
.cf-swatch-tile .count { font-size: 12px; font-weight: 700; opacity: .85; margin-top: 2px; }
.cf-swatch-tile.muted { opacity: .4; cursor: default; }
.cf-swatch-tile.muted:hover { transform: none; }

@media (max-width: 900px) {
    .cf-swatch-grid { grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 10px; }
    .cf-swatch-tile { padding: 10px 12px; }
    .cf-swatch-tile .name { font-size: 13.5px; }
}

/* Kleurindex (19-09-2026): kaarten met een werk op de tint in plaats van vlakke blokken,
   benoemde kleuren als chips per familie in plaats van een tegelraster. */
.cf-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.cf-card { display: flex; flex-direction: column; color: var(--navy); }
.cf-card .field { display: flex; align-items: center; justify-content: center; height: 220px; padding: 20px; border-radius: 8px 8px 0 0; }
.cf-card .field img { max-width: 72%; max-height: 180px; width: auto; height: auto; box-shadow: 0 18px 36px rgba(0,0,0,.24); transition: transform .2s; }
.cf-card:hover .field img { transform: translateY(-4px); }
.cf-card .strip { display: flex; height: 7px; overflow: hidden; }
.cf-card .strip i { flex: 1; display: block; }
.cf-card .meta { padding: 12px 4px 0; display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.cf-card .name { font-family: Lora, serif; font-size: 19px; font-weight: 600; }
.cf-card .count { font-size: 12.5px; font-weight: 700; color: var(--sage); white-space: nowrap; }
.cf-card:hover .name { color: var(--rose); }
.cf-cat-family .cf-chip .swatch { width: 22px; height: 22px; }
@media (max-width: 900px) {
    .cf-cards { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    .cf-card .field { height: 150px; padding: 14px; }
    .cf-card .field img { max-height: 120px; }
    .cf-card .name { font-size: 16px; }
}
