:root { --teal: #0d9488; --teal-dark: #0f766e; --mint: #ccfbf1; }
body { font-family: 'Noto Sans Georgian', 'Noto Sans', system-ui, sans-serif; background: #f8fffe; color: #134e4a; }
.navbar { background: linear-gradient(90deg, #0f766e, #0d9488); }
.navbar-brand, .nav-link { color: #fff !important; }
.nav-link:hover { opacity: .9; }
.btn-teal { background: var(--teal); color: #fff; border: none; }
.btn-teal:hover { background: var(--teal-dark); color: #fff; }
.hero { background: linear-gradient(135deg, #0f766e 0%, #14b8a6 60%, #5eead4 100%); color: #fff; border-radius: 1.25rem; padding: 3rem 2rem; }
.card-place { border: none; border-radius: 1rem; overflow: hidden; box-shadow: 0 8px 24px rgba(13,148,136,.12); transition: transform .2s; height: 100%; }
.card-place:hover { transform: translateY(-4px); }
.card-place img { height: 180px; object-fit: cover; width: 100%; }
.badge-cat { background: var(--mint); color: var(--teal-dark); }
footer { background: #134e4a; color: #ccfbf1; }
footer a { color: #99f6e4; text-decoration: none; }
#map, #route-map { height: 70vh; min-height: 420px; border-radius: 1rem; }
img.lazy { background: #e2e8f0; }
/* Language switcher: fixed width for all locales (fits ქართული + ≥12px spare) */
.lang-switch {
  position: relative;
  display: inline-block;
  /* Measured: ქართული text ~71px + flag 24 + gaps + caret + pad ≈ 142px; +12–18 spare → 10rem (160px) */
  width: 10rem;
  max-width: 100%;
  vertical-align: middle;
}
.lang-switch .btn {
  width: 100%;
  box-sizing: border-box;
  border-color: rgba(255,255,255,.55);
  color: #fff;
  background: transparent;
  gap: .45rem;
  padding-left: .65rem;
  padding-right: .55rem;
  justify-content: flex-start;
  text-align: left;
}
.lang-switch .btn.dropdown-toggle::after {
  margin-left: auto; /* pin caret to the right edge */
}
/* Bootstrap paints outline-light solid white when open — force dark readable text */
.lang-switch .btn:hover,
.lang-switch .btn:focus,
.lang-switch .btn:focus-visible,
.lang-switch .btn:active,
.lang-switch .btn.show,
.lang-switch.show > .btn,
.lang-switch .btn[aria-expanded="true"] {
  color: #0f766e !important;
  background: #fff !important;
  border-color: #fff !important;
  box-shadow: none;
}
.lang-switch .dropdown-menu {
  min-width: 0;
  width: 100%;
  left: 0 !important;
  right: auto !important;
  inset-inline-start: 0 !important;
  inset-inline-end: auto !important;
  transform: none !important;
  margin-top: .3rem;
  background: #fff;
  border: 1px solid rgba(15,118,110,.15);
  box-shadow: 0 10px 28px rgba(15,118,110,.18);
  z-index: 1050;
  padding: .35rem;
  box-sizing: border-box;
}
.lang-switch .dropdown-item {
  color: #134e4a !important;
  opacity: 1 !important;
  font-weight: 500;
  border-radius: .4rem;
  padding: .4rem .65rem;
  white-space: nowrap;
  overflow: hidden;
  gap: .45rem;
}
.lang-switch .dropdown-item:hover,
.lang-switch .dropdown-item:focus {
  background: #ccfbf1 !important;
  color: #0f766e !important;
}
.lang-switch .dropdown-item.active {
  background: #0d9488 !important;
  color: #fff !important;
}
/* Crisp flag icons: integer 24×18 (4:3) */
.lang-flag {
  width: 24px;
  height: 18px;
  object-fit: fill;
  border-radius: 2px;
  border: 0;
  outline: 1px solid rgba(15,23,42,.28);
  outline-offset: -1px;
  box-shadow: none;
  filter: none;
  flex: 0 0 24px;
  display: block;
  background: #fff;
}
.lang-switch .btn .lang-flag {
  outline-color: rgba(15,23,42,.22);
}
.lang-switch .btn:not(:hover):not(:focus):not(:active):not(.show):not([aria-expanded="true"]) .lang-flag {
  outline-color: rgba(255,255,255,.55);
}
.lang-switch .dropdown-item.active .lang-flag {
  outline-color: rgba(255,255,255,.65);
}

@media (max-width: 991.98px) {
  .lang-switch {
    align-self: flex-start;
    width: 10rem;
  }
  .lang-switch .dropdown-menu {
    position: static !important;
    float: none;
    width: 100%;
    transform: none !important;
    margin-top: .35rem;
  }
}

.sidebar{min-height:100vh;background:#0f766e;color:#fff}
.sidebar a{color:#ccfbf1;text-decoration:none;display:block;padding:.55rem 1rem;border-radius:.5rem}
.sidebar a:hover,.sidebar a.active{background:rgba(255,255,255,.12);color:#fff}

/* ===== Social: likes, sharing, comments ===== */
.social-bar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.25rem;margin:1.5rem 0;padding:.85rem 1rem;background:#fff;border:1px solid rgba(15,118,110,.15);border-radius:1rem;box-shadow:0 6px 18px rgba(13,148,136,.08);color:#134e4a}
.social-like{display:inline-flex;align-items:center;gap:.45rem;border:1px solid #99f6e4;background:#f0fdfa;color:#134e4a;border-radius:999px;padding:.4rem .95rem;font-weight:600;line-height:1.2;cursor:pointer;transition:background .15s,border-color .15s,color .15s}
.social-like .heart{fill:none;stroke:#0f766e;stroke-width:2;transition:fill .15s,stroke .15s}
.social-like:hover{background:#ccfbf1;border-color:#5eead4}
.social-like.is-liked{background:#ffe4e6;border-color:#fda4af;color:#9f1239}
.social-like.is-liked .heart{fill:#e11d48;stroke:#e11d48}
.social-like:disabled{opacity:.7;cursor:wait}
.social-like.pop .heart{animation:socialPop .35s ease}
@keyframes socialPop{50%{transform:scale(1.3)}}
.social-like-count{min-width:1.2em;text-align:center;background:rgba(15,118,110,.1);border-radius:999px;padding:0 .45rem;font-size:.9em}
.social-like.is-liked .social-like-count{background:rgba(225,29,72,.12)}
.social-share{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;position:relative}
.social-share-title{font-weight:600;color:#134e4a;margin-right:.15rem}
.share-btn{display:inline-flex;align-items:center;justify-content:center;width:2.3rem;height:2.3rem;border-radius:50%;border:none;color:#fff !important;text-decoration:none;cursor:pointer;transition:transform .15s,filter .15s}
.share-btn:hover,.share-btn:focus-visible{transform:translateY(-2px);filter:brightness(1.08);color:#fff !important}
.share-facebook{background:#1877f2}
.share-whatsapp{background:#25d366}
.share-telegram{background:#26a5e4}
.share-viber{background:#7360f2}
.share-x{background:#111}
.share-instagram{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285aeb 90%)}
.share-copy,.share-native{background:#0d9488}
.social-toast{position:absolute;left:0;top:calc(100% + .4rem);background:#134e4a;color:#fff;font-size:.85rem;padding:.3rem .7rem;border-radius:.5rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s;z-index:5}
.social-toast.show{opacity:1}
.comments-block{color:#134e4a}
.comments-block .comments-count{display:inline-block;font-size:.8em;background:#ccfbf1;color:#0f766e;border-radius:999px;padding:.05rem .6rem;vertical-align:middle}
.comment-form-card{background:#fff;border:1px solid rgba(15,118,110,.15);border-radius:1rem;padding:1rem 1.1rem;box-shadow:0 6px 18px rgba(13,148,136,.06)}
.comment-form-card .form-control:focus{border-color:#14b8a6;box-shadow:0 0 0 .2rem rgba(20,184,166,.2)}
.hp-field{position:absolute !important;left:-10000px !important;width:1px;height:1px;overflow:hidden}
.comment-item{display:flex;gap:.8rem;padding:.9rem 0;border-bottom:1px solid rgba(15,118,110,.12)}
.comment-item:last-child{border-bottom:none}
.comment-avatar{flex:0 0 2.4rem;height:2.4rem;border-radius:50%;background:#ccfbf1;color:#0f766e;font-weight:700;display:flex;align-items:center;justify-content:center;overflow:hidden}
/* visitor avatars */
.ti-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;object-fit:cover;flex-shrink:0;overflow:hidden;vertical-align:middle}
.ti-avatar-sm{width:1.75rem;height:1.75rem;font-size:.75rem}
.ti-avatar-md{width:2.4rem;height:2.4rem;font-size:.95rem}
.ti-avatar-lg{width:6rem;height:6rem;font-size:2rem}
.ti-avatar-xl{width:7.5rem;height:7.5rem;font-size:2.5rem}
.ti-avatar-letter{background:var(--ti-avatar-bg,#0d9488);color:#fff;font-weight:700;line-height:1;user-select:none}
.ti-avatar.comment-avatar{flex:0 0 2.4rem}
.site-nav .ti-avatar-sm{box-shadow:0 0 0 1px rgba(255,255,255,.35)}

.comment-main{min-width:0;flex:1}
.comment-meta{font-size:.92rem;color:#134e4a}
.comment-meta time{color:#5f7f7c;font-size:.85rem;margin-left:.4rem}
.comment-body{white-space:pre-line;word-wrap:break-word;overflow-wrap:anywhere;margin-top:.2rem}
/* admin */
.admin-filter .nav-link{color:#134e4a !important}
.admin-filter .nav-link.active{background:#0d9488;color:#fff !important}
/* tabs on light backgrounds must not inherit the white navbar link colour */
.nav-tabs .nav-link{color:#134e4a !important}
.nav-tabs .nav-link.active{color:#0f766e !important;font-weight:600}
.comment-status{font-weight:600}
.comment-status-pending{background:#fef3c7;color:#92400e}
.comment-status-approved{background:#ccfbf1;color:#0f766e}
.comment-status-rejected{background:#fee2e2;color:#991b1b}

/* ---- Rich text article body (TinyMCE content) ---- */
.article-body { color: #1f2937; font-size: 1.05rem; line-height: 1.75; overflow-wrap: anywhere; }
.article-body > :first-child { margin-top: 0; }
.article-body p { margin: 0 0 1rem; }
.article-body h2, .article-body h3, .article-body h4 { color: var(--teal-dark); font-weight: 700; line-height: 1.3; margin: 1.75rem 0 .75rem; }
.article-body h2 { font-size: 1.6rem; padding-bottom: .35rem; border-bottom: 2px solid var(--mint); }
.article-body h3 { font-size: 1.3rem; }
.article-body h4 { font-size: 1.1rem; }
.article-body a { color: var(--teal); text-decoration: underline; text-underline-offset: 2px; }
.article-body a:hover { color: var(--teal-dark); }
.article-body ul, .article-body ol { margin: 0 0 1rem; padding-left: 1.6rem; }
.article-body li { margin-bottom: .35rem; }
.article-body ul li::marker { color: var(--teal); }
.article-body blockquote { margin: 1.25rem 0; padding: .75rem 1.25rem; border-left: 4px solid var(--teal); background: #f0fdfa; color: #134e4a; border-radius: 0 .5rem .5rem 0; font-style: italic; }
.article-body blockquote p:last-child { margin-bottom: 0; }
.article-body img { max-width: 100%; height: auto; border-radius: .5rem; }
.article-body figure { margin: 1.25rem 0; max-width: 100%; }
.article-body figure.image { display: table; }
.article-body figcaption { font-size: .9rem; color: #6b7280; text-align: center; margin-top: .4rem; }
.article-body hr { border: 0; border-top: 2px solid var(--mint); margin: 2rem 0; opacity: 1; }
.article-body table { width: 100%; border-collapse: collapse; margin: 1rem 0 1.5rem; display: block; overflow-x: auto; }
.article-body th, .article-body td { border: 1px solid #cbd5e1; padding: .5rem .75rem; vertical-align: top; }
.article-body th, .article-body thead td { background: var(--mint); color: var(--teal-dark); font-weight: 600; }
.article-body tr:nth-child(even) td { background: #f8fafc; }
.article-body pre { background: #f1f5f9; padding: .75rem 1rem; border-radius: .5rem; overflow-x: auto; }
/* admin: editor frame spacing */
.tox-tinymce { border-radius: .375rem !important; }

/* ---- Wider content layout (v3) ---- */
.container-wide { max-width: 1440px; }
.article-body { max-width: 100%; }
.article-body [style*="justify"] { hyphens: auto; -webkit-hyphens: auto; word-spacing: normal; }
.place-sidebar { position: sticky; top: 1rem; }
@media (max-width: 991.98px) { .place-sidebar { position: static; } }

/* Word-like text wrap around images */
.article-body::after { content: ""; display: table; clear: both; }
.article-body .img-left { float: left; margin: .25rem 1.25rem .75rem 0; max-width: 50%; }
.article-body .img-right { float: right; margin: .25rem 0 .75rem 1.25rem; max-width: 50%; }
.article-body .img-center { display: block; float: none; margin: 1rem auto; }
.article-body figure.img-center { display: table; }
.article-body .img-full, .article-body figure.img-full img { display: block; float: none; width: 100% !important; height: auto !important; margin: 1rem 0; }
.article-body figure.img-left img, .article-body figure.img-right img { max-width: 100%; }
.article-body h2, .article-body h3, .article-body hr, .article-body table { clear: both; }
@media (max-width: 575.98px) {
  .article-body .img-left, .article-body .img-right, .article-body img[style*="float"] { float: none !important; display: block; max-width: 100% !important; width: 100% !important; height: auto !important; margin: 1rem 0 !important; }
}

/* ===== Header = home hero (ქუდი) ===== */
.site-hero{position:relative;overflow:hidden;padding:0;margin:0;width:100%;border-radius:0}
body{margin:0}
.site-hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.site-hero.has-banner::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,118,110,.55),rgba(0,0,0,.35) 50%,rgba(15,118,110,.55))}
.site-hero-inner{position:relative;z-index:1;display:flex;align-items:center;gap:2rem;padding:3rem 2rem;min-height:300px}
.site-hero-text{flex:1;text-align:center}
.site-hero.has-banner .site-hero-text{text-shadow:0 2px 8px rgba(0,0,0,.6)}
.site-hero:not(.has-logo):not(.has-coat) .site-hero-text{text-align:left}
.site-hero-logo,.site-hero-coat{flex:0 0 auto;width:255px;display:flex;justify-content:center}
.site-hero-logo img,.site-hero-coat img{max-width:100%;max-height:285px;object-fit:contain;filter:drop-shadow(0 3px 8px rgba(0,0,0,.45))}
@media (max-width:767.98px){
 .site-hero-inner{flex-wrap:wrap;justify-content:space-between;gap:1rem;padding:1.25rem 1rem;min-height:0}
 .site-hero-logo,.site-hero-coat{width:96px;order:0}
 .site-hero-logo img,.site-hero-coat img{max-height:108px}
 .site-hero-text{order:1;flex-basis:100%;text-align:center!important}
 .site-hero-text h1{font-size:1.9rem}
 .site-hero-text .lead{font-size:1rem}
}
.site-nav{padding-top:.35rem;padding-bottom:.35rem}
/* geolocation */
.geo-dot{width:18px;height:18px;border-radius:50%;background:#1a73e8;border:3px solid #fff;box-shadow:0 0 0 2px rgba(26,115,232,.35),0 1px 4px rgba(0,0,0,.4)}
.leaflet-control.geo-ctl a{width:44px;height:44px;line-height:44px;font-size:22px;text-align:center;display:block;background:#fff;text-decoration:none}
.geo-ctl.active a{background:#e8f0fe}
@media (max-width: 991.98px){ .geo-btn{padding:.85rem 1rem;font-size:1.1rem;font-weight:600} .leaflet-control.geo-ctl a{width:52px;height:52px;line-height:52px;font-size:26px} }
/* route place checklist */
.route-pick{cursor:pointer;min-height:48px}
.route-pick-box{flex:0 0 22px;height:22px;border:2px solid #0d9488;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;font-weight:700;color:#fff}
.route-pick.active{background:#e6f6f4;color:inherit;border-color:rgba(0,0,0,.125)}
.route-pick.active .route-pick-box{background:#0d9488}
.route-pick.active .route-pick-box::after{content:"✓";font-size:14px}
@media (max-width: 991.98px){ #route-map{height:55vh;min-height:320px} }
/* route selects */
.route-select optgroup{font-weight:700}
@media (max-width: 991.98px){ .route-select{min-height:52px;font-size:1.05rem} .route-calc{padding:.85rem 1rem;font-size:1.1rem;font-weight:600} }
/* route accordion dropdown */
.rdd{position:relative}
.rdd-btn{min-height:48px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rdd-panel{position:absolute;z-index:1050;left:0;right:0;top:calc(100% + 4px);background:#fff;border:1px solid rgba(0,0,0,.15);border-radius:.75rem;box-shadow:0 8px 24px rgba(0,0,0,.15);max-height:60vh;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.25rem 0}
.rdd-head,.rdd-item{display:flex;align-items:center;gap:.5rem;width:100%;border:0;background:none;text-align:left;padding:.7rem 1rem;min-height:48px;font-size:1rem}
.rdd-head{font-weight:700;border-top:1px solid #eee}
.rdd-arrow{width:1rem;color:#0d9488}
.rdd-item{padding-left:2.25rem}
.rdd-item.rdd-top{padding-left:1rem;font-weight:600;color:#1a73e8}
.rdd-head:hover,.rdd-item:hover,.rdd-head:focus-visible,.rdd-item:focus-visible{background:#f1f5f9;outline:none}
.rdd-item.active{background:#e6f6f4;font-weight:600}
@media (max-width: 991.98px){ .rdd-btn{min-height:52px;font-size:1.05rem} .rdd-head,.rdd-item{min-height:52px} }
/* custom place map icons */
.place-map-icon{object-fit:contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35));transition:width .15s,height .15s,margin .15s}
/* place name labels under map markers */
.leaflet-tooltip.map-label{background:transparent;border:0;border-radius:8px;box-shadow:none;padding:2px 8px;font-size:var(--map-label-fs,12px);font-weight:600;color:#0f172a;white-space:normal;width:max-content;max-width:160px;text-align:center;line-height:1.25;overflow-wrap:break-word;text-shadow:0 0 3px #fff,0 0 3px #fff,0 0 2px #fff,0 0 1px #fff;pointer-events:none}
.ti-sat .leaflet-tooltip.map-label{color:#fff;text-shadow:0 0 3px #000,0 0 3px #000,0 0 2px #000,0 0 1px #000}
.leaflet-tooltip.map-label::before{display:none}
.map-labels-hidden .leaflet-tooltip.map-label{display:none}

/* preset avatar picker — solid / professional */
.ti-avatar-presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(3.4rem,1fr));gap:.5rem;max-width:100%}
.ti-avatar-preset-form{margin:0;display:block}
.ti-avatar-preset{position:relative;display:block;width:100%;margin:0;padding:0;cursor:pointer;border-radius:50%;line-height:0;border:0;background:transparent}
.ti-avatar-preset img{width:100%;aspect-ratio:1;border-radius:50%;border:1.5px solid rgba(15,23,42,.12);box-shadow:none;transition:border-color .15s,box-shadow .15s;background:#0f172a;display:block}
.ti-avatar-preset:hover img,.ti-avatar-preset:focus-visible img{border-color:#64748b}
.ti-avatar-preset.is-selected img{border-color:#0f766e;box-shadow:0 0 0 2px #fff,0 0 0 3.5px #0f766e}
.ti-avatar-preset:focus-visible{outline:none}
@media (max-width:575.98px){.ti-avatar-presets{grid-template-columns:repeat(auto-fill,minmax(2.9rem,1fr));gap:.4rem}}
.ti-avatar-preset-group-label{font-size:.72rem;font-weight:600;color:#475569;margin-bottom:.4rem;letter-spacing:.06em;text-transform:uppercase}

/* profile avatar editor / modal sheet */
.ti-avatar-trigger{list-style:none;cursor:pointer;display:inline-block;position:relative;border-radius:50%;line-height:0}
.ti-avatar-trigger::-webkit-details-marker{display:none}
.ti-avatar-trigger::marker{content:''}
.ti-avatar-trigger:focus-visible{outline:3px solid #0d9488;outline-offset:3px}
.ti-avatar-trigger-face{display:block;border-radius:50%;line-height:0}
.ti-avatar-badge{position:absolute;right:.15rem;bottom:.15rem;width:2rem;height:2rem;border-radius:50%;background:#0f766e;color:#fff;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 0 0 2px #fff;pointer-events:none}
.ti-avatar-picker:not([open]) .ti-avatar-sheet{display:none}
.ti-avatar-picker[open] .ti-avatar-sheet{display:block}
.ti-avatar-sheet{position:fixed;inset:0;z-index:1055}
.ti-avatar-sheet-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.45)}
.ti-avatar-sheet-panel{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,28rem);max-height:min(92vh,40rem);overflow:auto;-webkit-overflow-scrolling:touch;background:#fff;border-radius:1rem 1rem 0 0;padding:1rem 1.1rem 1.25rem;box-shadow:0 -8px 32px rgba(15,23,42,.2);z-index:1}
@media (min-width:576px){
  .ti-avatar-sheet-panel{top:50%;bottom:auto;transform:translate(-50%,-50%);border-radius:1rem;max-height:min(85vh,40rem);box-shadow:0 16px 48px rgba(15,23,42,.25)}
}
.ti-avatar-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.35rem}
.ti-avatar-sheet-close{appearance:none;border:0;background:#f1f5f9;color:#0f172a;width:2.25rem;height:2.25rem;border-radius:50%;font-size:1.5rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.ti-avatar-sheet-close:hover,.ti-avatar-sheet-close:focus-visible{background:#e2e8f0;outline:none}
.ti-avatar-sheet-body{max-height:min(48vh,22rem);overflow:auto;padding-right:.15rem;margin-bottom:.85rem}
.ti-avatar-status{min-height:1.25rem;font-size:.85rem;color:#0f766e;margin-bottom:.5rem}
.ti-avatar-status.is-error{color:#b91c1c}
.ti-avatar-editor.is-loading .ti-avatar-sheet-panel{opacity:.72;pointer-events:none}
.ti-avatar-editor.is-loading .ti-avatar-status:not(.is-error)::after{content:'';}
body.ti-avatar-modal-open{overflow:hidden}
.js .ti-avatar-upload-fallback{display:none}
.ti-avatar-sheet-actions .btn-link{text-decoration:none}
.ti-avatar-sheet-actions .btn-link:hover{text-decoration:underline}
