/* CARIBASOL V2-mix — favourites + preference consent (giro 7, D-096). Shared by index.html, properties.html, property.html.
   Motion: transform / opacity only; prefers-reduced-motion → no animation. */

/* D-102 (giro 8): filled heart in the logo blue #0D53A1 (was #c2412d) */
/* ---- heart toggle (cards: absolute over the photograph; detail: inside .gal__actions) ---- */
.fav{position:absolute;right:calc(9px * var(--ui));top:calc(9px * var(--ui));z-index:3;width:calc(33px * var(--ui));height:calc(33px * var(--ui));border-radius:50%;border:0;background:#fff;box-shadow:0 2px 8px rgba(8, 30, 62,.12);display:flex;align-items:center;justify-content:center;cursor:pointer;color:#0E2240;padding:0}
.fav:focus-visible,.lc__fav:focus-visible{outline:2px solid #0D53A1;outline-offset:2px}
.fav svg,.lc__fav svg{display:block;overflow:visible}
.fav path,.fav-btn path{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;transition:fill .2s ease,stroke .2s ease}
:is(.fav,.fav-btn,.lc__fav)[aria-pressed=true] path{fill:#0D53A1;stroke:#0D53A1}
@media (hover:hover) and (pointer:fine){.fav:hover path,.lc__fav:hover path{stroke:#0D53A1}}
.fav-btn{position:relative}
.fav-btn svg{width:calc(14px * var(--ui));height:calc(14px * var(--ui))}
/* save animation: the heart swells once, a thin ring opens and fades (transform + opacity) */
:is(.fav,.fav-btn,.lc__fav)::after{content:'';position:absolute;left:50%;top:50%;width:calc(23px * var(--ui));height:calc(23px * var(--ui));margin:calc(-11px * var(--ui)) 0 0 calc(-11px * var(--ui));border-radius:50%;border:1.5px solid #0D53A1;opacity:0;transform:scale(.5);pointer-events:none}
.fav-pop svg{animation:fav-swell .42s cubic-bezier(.23,1,.32,1)}
.fav-pop::after{animation:fav-ring .5s cubic-bezier(.23,1,.32,1)}
@keyframes fav-swell{0%{transform:scale(1)}40%{transform:scale(1.28)}100%{transform:scale(1)}}
@keyframes fav-ring{0%{opacity:.55;transform:scale(.5)}100%{opacity:0;transform:scale(1.55)}}

/* ---- header counter (visible only with ≥ 1 favourite) ---- */
.favc{display:inline-flex;align-items:center;gap:calc(5px * var(--ui));height:calc(30px * var(--ui));padding:0 calc(5px * var(--ui));border-radius:calc(749px * var(--ui));color:inherit;text-decoration:none;font-size:max(12px, calc(12px * var(--ui)));font-weight:600;font-variant-numeric:tabular-nums;line-height:1}
.favc[hidden]{display:none!important}
.favc svg{width:calc(13px * var(--ui));height:calc(13px * var(--ui));display:block}
.favc svg{box-sizing:content-box;padding:calc(4px * var(--ui));border-radius:50%;background:#FFFFFF;box-shadow:0 1px 3px rgba(14, 34, 64,.18)}
.favc path{fill:#0D53A1}   /* D-102: blue heart on a light disc (legible over the dark Hero and on the light pill) */
.favc:hover{color:inherit;opacity:.8}
.favc:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.favc-pop svg{animation:fav-swell .42s cubic-bezier(.23,1,.32,1)}

/* ---- footer "Cookie settings" (looks like the legal links) ---- */
.cookie-settings{border:0;background:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer}
.cookie-settings:hover{text-decoration:underline}
.cookie-settings:focus-visible{outline:2px solid currentColor;outline-offset:2px;border-radius:2px}

/* ---- dialogs: in-context request + cookie settings (equal-weight actions) ---- */
.pc{width:min(calc(330px * var(--ui)),calc(100vw - calc(24px * var(--ui))));max-width:none;box-sizing:border-box;border:0;border-radius:calc(18px * var(--ui));padding:0;background:#FFFFFF;color:#0E2240;font-family:Inter, 'Inter Fallback',system-ui,sans-serif;box-shadow:0 24px 56px rgba(14, 34, 64,.14),0 4px 12px rgba(14, 34, 64,.06)}
.pc::backdrop{background:rgba(6, 30, 60,.42)}
.pc[open]{animation:pc-in .24s cubic-bezier(.23,1,.32,1)}
@keyframes pc-in{from{opacity:0;transform:translate3d(0,10px,0) scale(.98)}to{opacity:1;transform:none}}
.pc__in{display:flex;flex-direction:column;gap:calc(11px * var(--ui));padding:calc(21px * var(--ui)) calc(21px * var(--ui)) calc(18px * var(--ui));margin:0}
.pc__h{margin:0;font-family:var(--f-title,inherit);font-size:max(var(--fs-body-min), calc(16px * var(--ui)));line-height:1.25;font-weight:600;letter-spacing:-.005em}
.pc__p{margin:0;font-size:max(var(--fs-body-min), calc(16px * var(--ui)));line-height:1.55;color:#4A5B73}
.pc__row{display:flex;align-items:center;justify-content:space-between;gap:calc(12px * var(--ui));padding:calc(9px * var(--ui)) 0;border-top:1px solid rgba(14, 34, 64,.09);font-size:max(var(--fs-body-min), calc(16px * var(--ui)))}
.pc__row strong{font-weight:600}
.pc__always{font-size:max(var(--fs-body-min), calc(16px * var(--ui)));font-weight:600;color:#4A5B73}
.pc__warn{color:#9a3412}
.pc__warn[hidden]{display:none}
.pc__actions{display:flex;gap:calc(9px * var(--ui));margin-top:calc(5px * var(--ui))}
.pc-btn{flex:1 1 0;min-height:calc(36px * var(--ui));padding:0 calc(12px * var(--ui));border:1px solid #0D53A1;border-radius:calc(749px * var(--ui));background:#fff;color:#0D53A1;font:inherit;font-size:max(var(--fs-body-min), calc(16px * var(--ui)));font-weight:600;cursor:pointer;transition:background-color .15s ease}
.pc-btn:hover{background:#E8F1FB}
.pc-btn:focus-visible{outline:2px solid #0D53A1;outline-offset:2px}

.pc__sw{appearance:none;-webkit-appearance:none;flex:none;position:relative;width:calc(35px * var(--ui));height:calc(21px * var(--ui));margin:0;border-radius:calc(749px * var(--ui));background:#B8C6D8;cursor:pointer;transition:background-color .2s ease}
.pc__sw::after{content:'';position:absolute;left:2px;top:2px;width:calc(17px * var(--ui));height:calc(17px * var(--ui));border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(14, 34, 64,.3);transition:transform .2s cubic-bezier(.23,1,.32,1)}
.pc__sw:checked{background:#0D53A1}
.pc__sw:checked::after{transform:translate3d(18px,0,0)}
.pc__sw:focus-visible{outline:2px solid #0D53A1;outline-offset:2px}
.pc-live{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

@media (prefers-reduced-motion:reduce){
  .fav-pop svg,.fav-pop::after,.favc-pop svg,.pc[open]{animation:none}
  .pc__sw,.pc__sw::after,.fav path,.fav-btn path{transition:none}
}

/* results / similar cards: the heart is a sibling of the card link (no button inside <a>) */
.cardw{position:relative;min-width:0}

/* phones with the counter shown: the header row must stay within the screen (brand 213 px + counter + menu at 360).
   Gaps as on the Home (6 px); below 480 px "EN" leaves the header — the language list stays in the mobile menu. */
@media (max-width:1023.98px){
  .hdr:has(.favc:not([hidden])) .right{gap:calc(5px * var(--ui))}
  .favc{padding:0 calc(3px * var(--ui));gap:calc(3px * var(--ui))}
}
@media (max-width:479.98px){
  .hdr:has(.favc:not([hidden]))  .right>.lang{display:none}
}
