/* TGA R27.9 — reliable entitlements + full private concierge page */
.private-concierge-page { background: var(--ivory); }
.private-concierge-page > .hero { min-height: clamp(600px, 86vh, 900px); }
.private-concierge-page .hero__media { object-position: 64% 53%; animation: none !important; }
.private-concierge-page .hero__overlay {
  background: linear-gradient(180deg, rgba(24,15,9,.44), rgba(24,15,9,.24) 44%, rgba(24,15,9,.76)), radial-gradient(circle at 50% 34%, rgba(255,255,255,.08), transparent 45%);
}
.private-concierge-page .hero__content { max-width: 820px; }
.private-concierge-page .hero h1 {
  max-width: 780px; font-family: var(--serif); font-size: clamp(48px,7.2vw,86px); font-weight: 600; line-height: .98; letter-spacing: -.035em; text-wrap: balance; hyphens: none; word-break: normal; overflow-wrap: normal;
}
.private-concierge-page .hero-subtitle { max-width: 610px; }
.private-concierge-content { width: min(100%,820px); min-height: min(720px,88vh); margin: 0 auto; padding: 64px 24px 76px; }
.private-concierge-panel { display: grid; gap: 24px; }
.private-concierge-intro { display: grid; gap: 8px; margin: 0 4px; }
.private-concierge-intro h2 { margin: 0; color: var(--brown); font-family: var(--serif); font-size: clamp(34px,5vw,48px); font-weight: 600; line-height: 1; letter-spacing: -.025em; }
.private-concierge-intro p { max-width: 610px; margin: 0; color: var(--brown-soft); font-family: var(--sans); font-size: 15px; line-height: 1.55; }
.private-concierge-form { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 12px; padding: 12px 12px 12px 20px; background: rgba(255,253,249,.98); border: 1px solid rgba(63,44,32,.10); border-radius: 32px; box-shadow: 0 18px 44px rgba(61,40,24,.11), inset 0 1px rgba(255,255,255,.95); }
.private-concierge-form:focus-within { border-color: rgba(216,144,79,.54); box-shadow: 0 20px 48px rgba(61,40,24,.14), 0 0 0 4px rgba(216,144,79,.10), inset 0 1px rgba(255,255,255,.95); }
.private-concierge-form textarea { width: 100%; min-height: 58px; max-height: 160px; padding: 17px 0 13px; overflow-y: auto; color: var(--brown); background: transparent; border: 0; outline: 0; resize: none; font-family: var(--sans); font-size: 16px; line-height: 1.45; }
.private-concierge-form textarea::placeholder { color: rgba(113,93,78,.74); }
.private-concierge-submit { appearance: none; display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 3px; padding: 0; color: #fffaf5; cursor: pointer; background: linear-gradient(145deg,var(--caramel),var(--caramel-dark)); border: 0; border-radius: 50%; box-shadow: 0 10px 22px rgba(184,110,50,.28), inset 0 1px rgba(255,255,255,.28); transition: transform .16s ease, box-shadow .16s ease; }
.private-concierge-submit:hover { transform: translateY(-1px); box-shadow: 0 12px 26px rgba(184,110,50,.34), inset 0 1px rgba(255,255,255,.32); }
.private-concierge-submit:active { transform: scale(.96); }
.private-concierge-submit:disabled { cursor: default; opacity: .42; transform: none; }
.private-concierge-submit svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.private-concierge-suggestions { display: flex; flex-wrap: wrap; gap: 9px; padding: 0 3px; }
.private-concierge-chip { appearance: none; min-height: 40px; padding: 9px 15px; color: var(--brown-soft); cursor: pointer; background: rgba(255,253,249,.88); border: 1px solid rgba(63,44,32,.10); border-radius: 999px; box-shadow: 0 7px 18px rgba(61,40,24,.06), inset 0 1px rgba(255,255,255,.85); font-family: var(--sans); font-size: 12.5px; font-weight: 600; line-height: 1.2; transition: border-color .16s ease, transform .16s ease, background .16s ease; }
.private-concierge-chip:hover,.private-concierge-chip:focus-visible { color: var(--brown); background: var(--paper); border-color: rgba(216,144,79,.42); outline: 0; transform: translateY(-1px); }
.private-concierge-chip:disabled { opacity: .5; cursor: default; transform: none; }
.private-concierge-status { padding: 20px 22px; color: var(--brown-soft); background: rgba(255,253,249,.92); border: 1px solid rgba(63,44,32,.09); border-radius: 20px; font-family: var(--sans); font-size: 14px; line-height: 1.5; box-shadow: 0 12px 30px rgba(61,40,24,.07); }
.private-concierge-status--loading::before { content: ""; display: inline-block; width: 9px; height: 9px; margin-right: 10px; background: var(--caramel); border-radius: 50%; animation: private-concierge-pulse 1s ease-in-out infinite; }
.private-concierge-status--error { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.private-concierge-status--error p { margin: 0; }
.private-concierge-status--error button { flex: none; min-height: 42px; padding: 9px 16px; color: #fff; background: var(--brown); border: 0; border-radius: 999px; cursor: pointer; font-weight: 600; }
.private-concierge-answer { display: grid; gap: 16px; margin-top: 6px; padding: 24px; background: linear-gradient(145deg,rgba(255,255,255,.98),rgba(250,247,242,.98)); border: 1px solid rgba(63,44,32,.09); border-radius: 24px; box-shadow: 0 16px 38px rgba(61,40,24,.08), inset 0 1px rgba(255,255,255,.96); animation: private-concierge-answer-in .24s cubic-bezier(.22,.61,.36,1) both; }
.private-concierge-answer__eyebrow { margin: 0; color: var(--caramel-dark); font-family: var(--sans); font-size: 10.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.private-concierge-answer > h3 { margin: -5px 0 0; color: var(--brown); font-family: var(--serif); font-size: clamp(28px,4vw,36px); font-weight: 600; line-height: 1.05; letter-spacing: -.02em; }
.private-concierge-answer__text,.private-concierge-no-result { margin: -6px 0 0; color: var(--brown-soft); font-family: var(--sans); font-size: 14px; line-height: 1.55; }
.private-concierge-results { display: grid; gap: 10px; }
.private-concierge-result { display: grid; gap: 10px 18px; align-items: center; padding: 16px 17px; background: rgba(255,253,249,.92); border: 1px solid rgba(63,44,32,.08); border-radius: 18px; }
.private-concierge-result__copy { min-width: 0; }
.private-concierge-result strong { display: block; color: var(--brown); font-family: var(--sans); font-size: 15px; font-weight: 600; line-height: 1.25; }
.private-concierge-result small { display: block; margin-top: 3px; color: var(--brown-soft); font-family: var(--sans); font-size: 11.5px; line-height: 1.35; text-transform: capitalize; }
.private-concierge-result p { margin: 0; color: var(--brown-soft); font-family: var(--sans); font-size: 13px; line-height: 1.45; }
.private-concierge-result__hours { font-size: 12px !important; }
.private-concierge-result__actions { display: flex; flex-wrap: wrap; gap: 9px; }
.private-concierge-result a,.private-concierge-global-route { display: inline-flex; align-items: center; min-height: 38px; padding: 8px 13px; color: var(--caramel-dark); background: rgba(216,144,79,.08); border: 1px solid rgba(216,144,79,.2); border-radius: 999px; font-family: var(--sans); font-size: 12px; font-weight: 600; text-decoration: none; }
.private-concierge-result a:hover,.private-concierge-result a:focus-visible,.private-concierge-global-route:hover,.private-concierge-global-route:focus-visible { background: rgba(216,144,79,.15); outline: 2px solid rgba(216,144,79,.25); outline-offset: 2px; }
.home-page .action-card__icon .private-concierge-home-icon,.private-concierge-shortcut .private-concierge-home-icon { width: 31px; height: 31px; fill: none; stroke: currentColor; stroke-width: 1.55; stroke-linecap: round; stroke-linejoin: round; }
.private-concierge-shortcut { position: fixed; z-index: 70; right: max(22px,env(safe-area-inset-right)); bottom: max(24px,calc(env(safe-area-inset-bottom) + 18px)); display: inline-flex; align-items: center; gap: 9px; min-height: 48px; padding: 8px 16px 8px 11px; color: var(--brown); background: rgba(255,253,249,.93); border: 1px solid rgba(63,44,32,.12); border-radius: 999px; box-shadow: 0 15px 38px rgba(42,27,18,.18), inset 0 1px rgba(255,255,255,.95); backdrop-filter: blur(14px) saturate(125%); -webkit-backdrop-filter: blur(14px) saturate(125%); font-family: var(--sans); font-size: 12.5px; font-weight: 600; text-decoration: none; }
.private-concierge-shortcut:hover,.private-concierge-shortcut:focus-visible { transform: translateY(-1px); outline: 3px solid rgba(216,144,79,.22); outline-offset: 2px; }
@keyframes private-concierge-answer-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes private-concierge-pulse { 0%,100% { opacity: .38; transform: scale(.82); } 50% { opacity: 1; transform: scale(1); } }
@media (max-width:650px) {
  .private-concierge-page > .hero { min-height: 100dvh; }
  .private-concierge-page .hero__media { object-position: 67% 50%; }
  .private-concierge-page .hero h1 { max-width: 355px; font-size: clamp(45px,13.5vw,61px); line-height: .96; }
  .private-concierge-page .hero-subtitle { max-width: 330px; }
  .private-concierge-content { min-height: 100dvh; padding: 40px 17px max(72px,calc(env(safe-area-inset-bottom) + 58px)); }
  .private-concierge-panel { gap: 19px; }
  .private-concierge-intro { margin: 0 3px; }
  .private-concierge-intro h2 { font-size: 34px; }
  .private-concierge-intro p { font-size: 13.5px; }
  .private-concierge-form { gap: 8px; padding: 9px 9px 9px 17px; border-radius: 28px; }
  .private-concierge-form textarea { min-height: 56px; padding: 16px 0 12px; font-size: 16px; }
  .private-concierge-submit { width: 48px; height: 48px; margin-bottom: 4px; }
  .private-concierge-suggestions { flex-wrap: nowrap; gap: 8px; margin: 0 -17px; padding: 0 17px 4px; overflow-x: auto; scrollbar-width: none; }
  .private-concierge-suggestions::-webkit-scrollbar { display: none; }
  .private-concierge-chip { flex: none; min-height: 38px; padding: 8px 13px; font-size: 12px; }
  .private-concierge-answer { gap: 14px; padding: 20px 17px; border-radius: 22px; }
  .private-concierge-result { gap: 10px 12px; padding: 15px; }
  .private-concierge-status--error { align-items: flex-start; flex-direction: column; }
  .private-concierge-shortcut { width: 52px; height: 52px; min-height: 52px; padding: 0; justify-content: center; right: max(14px,env(safe-area-inset-right)); bottom: max(16px,calc(env(safe-area-inset-bottom) + 14px)); }
  .private-concierge-shortcut span { position: absolute; width: 1px; height: 1px; clip: rect(0,0,0,0); overflow: hidden; white-space: nowrap; }
  .private-concierge-shortcut .private-concierge-home-icon { width: 28px; height: 28px; }
}
@media (prefers-reduced-motion:reduce) {
  .private-concierge-answer,.private-concierge-chip,.private-concierge-submit,.private-concierge-shortcut,.private-concierge-status--loading::before { animation: none; transition: none; }
}

/* TGA R28.3 — enrichissement éditorial ciblé de la conciergerie privée */
.private-concierge-answer {
  gap: 18px;
  padding: 28px 4px 8px;
  background: transparent;
  border: 0;
  border-top: 1px solid rgba(63,44,32,.12);
  border-radius: 0;
  box-shadow: none;
}
.private-concierge-answer__text {
  max-width: 720px;
  margin-top: -4px;
  color: var(--brown);
  font-family: var(--serif);
  font-size: clamp(20px,3vw,25px);
  line-height: 1.38;
  letter-spacing: -.012em;
}
.private-concierge-weather {
  margin: 0;
  padding: 12px 15px;
  color: var(--brown-soft);
  background: rgba(216,144,79,.055);
  border-top: 1px solid rgba(216,144,79,.18);
  border-bottom: 1px solid rgba(216,144,79,.18);
  font-family: var(--sans);
  font-size: 13px;
  line-height: 1.5;
}
.private-concierge-context,
.private-concierge-origin {
  margin: 0;
  color: var(--brown-soft);
  font-family: var(--sans);
  font-size: 11.5px;
  line-height: 1.45;
}
.private-concierge-context b { color: var(--brown); }
.private-concierge-origin { margin-top: -10px; font-size: 10.8px; }
.private-concierge-results { gap: 22px; }
.private-concierge-result-group { display: grid; gap: 10px; }
.private-concierge-result-group > h4 {
  margin: 0 2px;
  color: var(--caramel-dark);
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.private-concierge-result {
  align-items: start;
  gap: 11px 18px;
  padding: 19px;
}
.private-concierge-result--primary {
  border-color: rgba(216,144,79,.30);
  box-shadow: 0 16px 34px rgba(61,40,24,.09), inset 3px 0 0 rgba(216,144,79,.52);
}
.private-concierge-result__primary {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px 16px;
  padding-bottom: 9px;
  border-bottom: 1px solid rgba(63,44,32,.08);
}
.private-concierge-result__primary span {
  color: var(--caramel-dark);
  font-family: var(--sans);
  font-size: 9.8px;
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.private-concierge-result__primary small {
  color: var(--brown-soft);
  font-family: var(--sans);
  font-size: 10.5px;
  line-height: 1.35;
  text-transform: none;
}
.private-concierge-result__copy { display: grid; gap: 4px; }
.private-concierge-result__category {
  margin: 0 !important;
  color: var(--caramel-dark) !important;
  font-size: 10px !important;
  font-weight: 600;
  letter-spacing: .09em;
  text-transform: uppercase !important;
}
.private-concierge-result strong {
  font-family: var(--serif);
  font-size: clamp(23px,3.3vw,29px);
  line-height: 1.04;
  letter-spacing: -.018em;
}
.private-concierge-result__description {
  color: var(--brown-soft) !important;
  font-size: 13.5px !important;
  line-height: 1.5 !important;
}
.private-concierge-result__practical {
  color: var(--brown) !important;
  font-family: var(--sans) !important;
  font-size: 11.8px !important;
  font-weight: 600;
  line-height: 1.45 !important;
}
.private-concierge-result__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}
.private-concierge-result__badges span {
  display: inline-flex;
  align-items: center;
  min-height: 27px;
  padding: 5px 10px;
  color: var(--brown-soft);
  background: rgba(216,144,79,.055);
  border: 1px solid rgba(63,44,32,.11);
  border-radius: 999px;
  font-family: var(--sans);
  font-size: 10.5px;
  font-weight: 600;
  line-height: 1;
  white-space: nowrap;
}
.private-concierge-result__reason {
  display: grid;
  gap: 4px;
  padding-top: 10px;
  border-top: 1px solid rgba(63,44,32,.08);
}
.private-concierge-result__reason b {
  color: var(--brown);
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
}
.private-concierge-result__reason p {
  color: var(--brown-soft);
  font-size: 12.5px;
  line-height: 1.48;
}
@media (max-width:650px) {
  .private-concierge-answer { gap: 15px; padding: 24px 1px 4px; }
  .private-concierge-answer__text { font-size: clamp(19px,5.6vw,23px); line-height: 1.4; }
  .private-concierge-weather { padding: 11px 13px; font-size: 12.2px; }
  .private-concierge-context { font-size: 11px; }
  .private-concierge-origin { margin-top: -8px; font-size: 10.4px; }
  .private-concierge-results { gap: 19px; }
  .private-concierge-result { padding: 17px 15px; }
  .private-concierge-result__primary { align-items: flex-start; flex-direction: column; }
  .private-concierge-result__primary small { max-width: 280px; }
  .private-concierge-result__practical { max-width: 290px; }
  .private-concierge-result__badges { flex-wrap: nowrap; overflow: hidden; }
  .private-concierge-result__actions a { min-height: 42px; }
}


/* TGA R28.3.8 — conversation compacte, résultats distincts et navigation catalogue */
.private-concierge-panel{gap:20px}
.private-concierge-thread{display:grid;gap:14px;scroll-margin-top:24px}
.private-concierge-message{max-width:92%;font-family:var(--sans);font-size:14px;line-height:1.45}
.private-concierge-message p{margin:0}
.private-concierge-message--user{justify-self:end;padding:11px 15px;color:#fff;background:var(--brown);border-radius:18px 18px 5px 18px}
.private-concierge-message--assistant{justify-self:start;width:min(100%,720px);padding:16px 17px;background:rgba(255,253,249,.94);border:1px solid rgba(63,44,32,.09);border-radius:5px 20px 20px 20px;box-shadow:0 10px 26px rgba(61,40,24,.06)}
.private-concierge-message--error{justify-self:start;padding:12px 15px;color:#8a2f2f;background:#fff7f5;border:1px solid rgba(138,47,47,.16);border-radius:5px 18px 18px 18px}
.private-concierge-message__text{color:var(--brown);font-family:var(--serif);font-size:clamp(18px,2.8vw,22px);line-height:1.3;letter-spacing:-.01em}
.private-concierge-message--loading{color:var(--brown-soft)}
.private-concierge-message--loading:before{content:"";display:inline-block;width:8px;height:8px;margin-right:9px;background:var(--caramel);border-radius:50%;animation:private-concierge-pulse 1s ease-in-out infinite}
.private-concierge-quick-replies,.private-concierge-refinements{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.private-concierge-quick-replies button,.private-concierge-refinements button,.private-concierge-retry{appearance:none;min-height:36px;padding:7px 11px;color:var(--brown-soft);background:rgba(216,144,79,.065);border:1px solid rgba(216,144,79,.22);border-radius:999px;cursor:pointer;font:600 11px/1.2 var(--sans)}
.private-concierge-results{display:grid;gap:9px;margin-top:15px}
.private-concierge-result{gap:8px;padding:14px 15px;border-radius:16px;box-shadow:none}
.private-concierge-result--primary{border-color:rgba(216,144,79,.30);box-shadow:inset 3px 0 0 rgba(216,144,79,.52)}
.private-concierge-result__primary-label{margin:0!important;color:var(--caramel-dark)!important;font-size:9.5px!important;font-weight:700!important;letter-spacing:.11em;text-transform:uppercase!important}
.private-concierge-result strong{font-size:clamp(20px,3vw,25px)}
.private-concierge-result__practical{font-size:11.5px!important}
.private-concierge-result__badges{gap:6px}
.private-concierge-result__badges span{min-height:25px;padding:4px 9px;font-size:10px}
.private-concierge-result__actions{gap:7px}
.private-concierge-result__actions a{min-height:35px;padding:7px 11px;font-size:11px}
.private-concierge-refinements{padding-top:12px;border-top:1px solid rgba(63,44,32,.08)}
.private-concierge-browse-all{display:flex;align-items:center;justify-content:center;min-height:44px;margin-top:12px;padding:10px 16px;color:#fff;background:var(--brown);border-radius:999px;font:600 12px/1.2 var(--sans);text-decoration:none}
.private-concierge-form{position:sticky;bottom:max(10px,env(safe-area-inset-bottom));z-index:5;margin-top:2px}
.private-concierge-answer,.private-concierge-weather,.private-concierge-context,.private-concierge-origin,.private-concierge-result__description,.private-concierge-result__reason{display:none!important}
@media(max-width:650px){
  .private-concierge-message{max-width:96%}
  .private-concierge-message--assistant{padding:14px 13px}
  .private-concierge-message__text{font-size:18px}
  .private-concierge-quick-replies,.private-concierge-refinements{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .private-concierge-quick-replies::-webkit-scrollbar,.private-concierge-refinements::-webkit-scrollbar{display:none}
  .private-concierge-quick-replies button,.private-concierge-refinements button{flex:none}
  .private-concierge-form{bottom:max(8px,env(safe-area-inset-bottom))}
}
