/* Travel Concierge identity and responsive production polish. */
html { max-width: 100%; overflow-x: clip; scroll-padding-top: 88px; }
body, #root { width: 100%; min-width: 0; max-width: 100%; overflow-x: clip; }
img, svg, video, canvas { max-width: 100%; }
*, *::before, *::after { min-width: 0; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
.tc-contact-icon { display: inline-grid; flex: 0 0 32px; width: 32px; height: 32px; margin-right: 10px; place-items: center; border: 1px solid rgba(201,162,39,.68); border-radius: 50%; color: #e9c86a; transition: color .25s ease, background-color .25s ease, border-color .25s ease, transform .25s ease; }
.tc-contact-icon svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; }
.tc-email-link:hover .tc-contact-icon, .tc-email-link:focus-visible .tc-contact-icon { background: #c9a227; border-color: #c9a227; color: #0a1220; transform: translateY(-1px); }
.tc-email-link { gap: 0.1rem; overflow-wrap: anywhere; }
.tc-footer-languages,
footer [role="group"] { display: none !important; }
.tc-social-link { gap: 10px; }
.tc-social-icon { display: inline-grid; flex: 0 0 28px; width: 28px; height: 28px; place-items: center; border: 1px solid rgba(244,239,230,.22); border-radius: 50%; color: #8a94a6; transition: color .25s ease, background-color .25s ease, border-color .25s ease, transform .25s ease; }
.tc-social-icon svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }
.tc-social-link:hover .tc-social-icon, .tc-social-link:focus-visible .tc-social-icon { background: #c9a227; border-color: #c9a227; color: #0a1220; transform: translateY(-1px); }
section:not(#board), footer { contain: layout; }
.tc-header-row { min-width: 0; }
.tc-brand { display: block; flex: 0 0 62px; width: 62px; line-height: 0; }
.tc-brand img { display: block; width: 62px; height: 62px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 1px rgba(233,200,106,.22), 0 8px 28px rgba(0,0,0,.28); transition: transform .3s ease, box-shadow .3s ease; }
.tc-brand:hover img, .tc-brand:focus-visible img { transform: translateY(-1px) scale(1.025); box-shadow: 0 0 0 1px rgba(233,200,106,.46), 0 10px 32px rgba(0,0,0,.4); }
.tc-brand:focus-visible { outline: 1px solid #e9c86a; outline-offset: 5px; border-radius: 50%; }
.tc-intro-logo { width: min(300px, 70vw) !important; height: auto !important; max-height: none !important; border-radius: 50%; box-shadow: 0 0 70px rgba(201,162,39,.18); }
.tc-languages { flex: 0 0 auto; scrollbar-width: none; }
.tc-languages::-webkit-scrollbar { display: none; }
.tc-languages button { position: relative; display: grid; width: 34px; height: 30px; min-width: 34px; place-items: center; padding: 0 !important; font-size: 0 !important; overflow: hidden; }
.tc-languages button::before { display: block; font-size: 18px; line-height: 1; filter: saturate(.9); }
.tc-languages button[data-flag="de"]::before { content: "🇩🇪"; }
.tc-languages button[data-flag="en"]::before { content: "🇬🇧"; }
.tc-languages button[data-flag="fr"]::before { content: "🇫🇷"; }
.tc-languages button[data-flag="es"]::before { content: "🇪🇸"; }
.tc-languages button[data-flag="it"]::before { content: "🇮🇹"; }
.tc-languages button[data-flag="ru"]::before { content: "🇷🇺"; }
.tc-languages button[aria-pressed="true"] { box-shadow: inset 0 0 0 1px rgba(233,200,106,.55), 0 0 14px rgba(201,162,39,.16); }
.tc-menu-toggle { display: none; width: 44px; height: 44px; flex: 0 0 44px; border: 1px solid rgba(244,239,230,.18); padding: 12px; }
.tc-menu-toggle span { display: block; width: 18px; height: 1px; margin: 4px auto; background: #f4efe6; transition: transform .25s, opacity .25s; }
@media (max-width: 767px) {
  html { scroll-padding-top: 108px; }
  .tc-header-row { position: relative; display: grid !important; grid-template-columns: minmax(0, 1fr) 44px 44px; gap: 8px !important; padding: 9px 14px 8px !important; min-height: 104px; align-items: center; }
  .tc-brand { grid-column: 1; grid-row: 1; width: 54px; min-width: 54px; max-width: 54px; }
  .tc-brand img { width: 54px; height: 54px; }
  .tc-header-actions { display: contents !important; }
  .tc-whatsapp { grid-column: 2; grid-row: 1; width: 44px !important; height: 44px !important; }
  .tc-menu-toggle { display: block; grid-column: 3; grid-row: 1; }
  .tc-languages { grid-column: 1 / -1; grid-row: 2; display: grid !important; grid-template-columns: repeat(6, 34px); justify-content: center; width: 100%; max-width: none !important; gap: clamp(7px, 4vw, 20px) !important; padding: 3px 8px !important; overflow: visible !important; border-color: rgba(244,239,230,.13) !important; }
  .tc-nav { display: flex !important; position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; align-items: stretch !important; gap: 0 !important; padding: 8px 14px 16px; background: rgba(10,18,32,.98); border-bottom: 1px solid rgba(244,239,230,.1); backdrop-filter: blur(16px); opacity: 0; visibility: hidden; transform: translateY(-8px); pointer-events: none; transition: .25s ease; }
  header.tc-menu-open .tc-nav { opacity: 1; visibility: visible; transform: none; pointer-events: auto; }
  .tc-nav a { display: flex; align-items: center; min-height: 48px; border-bottom: 1px solid rgba(244,239,230,.08); font-size: 12px !important; }
  .tc-nav a:last-child { border-bottom: 0; }
  header.tc-menu-open .tc-menu-toggle span:nth-child(1) { transform: translateY(5px) rotate(45deg); }
  header.tc-menu-open .tc-menu-toggle span:nth-child(2) { opacity: 0; }
  header.tc-menu-open .tc-menu-toggle span:nth-child(3) { transform: translateY(-5px) rotate(-45deg); }
  #board { padding-top: 104px; }
  #board > div:first-child { height: clamp(228px, 34svh, 340px) !important; min-height: 228px !important; }
  #board > div:nth-child(2) > div { min-width: 0; width: 100%; }
  .globezoom { right: 10px !important; bottom: 10px !important; }
  .globezoom button { width: 40px; height: 40px; }
  section { max-width: 100%; overflow: clip; }
  section > div, article, aside { min-width: 0; }
  [role="dialog"] { width: calc(100vw - 16px) !important; max-width: calc(100vw - 16px) !important; max-height: calc(100svh - 16px); overflow-y: auto; }
  .panelscroll { max-height: 100svh; overflow-y: auto; overscroll-behavior: contain; }
  input, select, textarea { max-width: 100%; font-size: 16px !important; }
  button, a { touch-action: manipulation; }
  .smallcaps { letter-spacing: .13em; }
  footer a { overflow-wrap: anywhere; }
  footer > div:first-child { gap: 2.5rem !important; padding: 3.5rem 1.25rem !important; }
  footer > div:first-child > div:last-child { column-gap: 1.25rem !important; row-gap: 2rem !important; }
  footer > div:last-child > div { padding: 1.25rem !important; }
  .tc-email-link { align-items: center; line-height: 1.35; }
  .tc-contact-icon { flex-basis: 30px; width: 30px; height: 30px; margin-right: 8px; }
}
@media (max-width: 430px) {
  .tc-header-row { padding-inline: 10px !important; gap: 6px !important; }
  .tc-brand { width: 52px; min-width: 52px; max-width: 52px; }
  .tc-brand img { width: 52px; height: 52px; }
  .tc-languages { gap: clamp(4px, 3.2vw, 14px) !important; }
  #board > div:first-child { min-height: 228px !important; }
  h1, h2, h3 { overflow-wrap: anywhere; }
}
@media (max-width: 360px) {
  .tc-header-row { grid-template-columns: minmax(0, 1fr) 40px 40px; }
  .tc-brand { width: 48px; min-width: 48px; max-width: 48px; }
  .tc-brand img { width: 48px; height: 48px; }
  .tc-whatsapp, .tc-menu-toggle { width: 40px !important; height: 40px !important; flex-basis: 40px; }
  .tc-languages { grid-template-columns: repeat(6, 32px); gap: 3px !important; }
  .tc-languages button { width: 32px; min-width: 32px; }
}
@media (prefers-reduced-motion: reduce) { .tc-nav, .tc-menu-toggle span, .tc-brand img { transition: none; } }
