/* Shared travel-guide presentation. Existing tab and map behaviour stays in index.html. */
:root { --visit-ink:#183c35; --visit-paper:#f7f7f2; --visit-muted:#64746d; --visit-line:#dde4dc; }
body.bg-slate-50 { background:var(--visit-paper); }
body > header { background:rgba(250,251,246,.95); border-color:var(--visit-line); }
body > main { padding-top:26px; }
header nav { gap:0; }
header nav button { font-size:12px; white-space:nowrap; }
button, a, input, select { touch-action:manipulation; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible { outline:3px solid #dca954; outline-offset:4px; }
#tab-explore { --tw-space-y-reverse:0; }
.visit-hero { position:relative; min-height:545px; border-radius:26px; overflow:hidden; background:#244e43; color:white; display:flex; align-items:center; }
.visit-hero-image,.visit-hero-shade { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.visit-hero-shade { background:linear-gradient(90deg,rgba(10,35,29,.88),rgba(13,38,30,.49) 57%,rgba(9,32,24,.08)),linear-gradient(0deg,rgba(9,32,24,.3),transparent 45%); }
.visit-hero-content { position:relative; padding:58px; width:min(780px,100%); }
.visit-eyebrow { display:flex; align-items:center; gap:10px; font-size:10px; letter-spacing:2.3px; font-weight:700; color:#e6eddb; }
.visit-eyebrow > span { width:7px; height:7px; border-radius:50%; background:#e1bc76; }
.visit-hero h1 { font-family:Georgia,serif; font-weight:400; font-size:clamp(44px,5.6vw,76px); line-height:1.06; letter-spacing:-2.5px; margin:24px 0 20px; }
.visit-hero h1 em { color:#ecd6a2; font-weight:400; }
.visit-hero-content > p { color:#e1e9e1; font-size:14px; line-height:1.85; }
.visit-search { margin-top:28px; display:flex; align-items:center; gap:14px; padding:7px 7px 7px 20px; border-radius:13px; background:white; color:#355448; max-width:535px; box-shadow:0 12px 35px #102d3026; }
.visit-search input { width:100%; min-width:0; background:transparent; padding:12px 0; color:#183c35; font-size:13px; outline-offset:0; }
.visit-search input::placeholder { color:#73827a; }
.visit-search button { display:flex; align-items:center; gap:16px; background:#235a48; color:white; border-radius:9px; padding:15px 21px; font-size:12px; font-weight:700; }
.visit-search button:hover { background:#163e31; }
.visit-hero-actions { display:flex; gap:24px; margin-top:21px; }
.visit-hero-actions button { font-size:12px; color:#edf2e9; display:flex; gap:10px; align-items:center; padding:6px 0; }
.visit-hero-actions button:hover { color:#ecd6a2; }
.visit-photo-caption { position:absolute; bottom:30px; right:32px; display:flex; align-items:center; gap:12px; font-size:13px; }
.visit-photo-caption > i { width:35px; height:35px; border:1px solid #ffffff70; border-radius:50%; display:grid; place-items:center; }
.visit-photo-caption small { display:block; font-size:10px; color:#e5ebe0; margin-top:3px; }
.visit-section-intro { display:flex; justify-content:space-between; gap:20px; align-items:end; padding-top:15px; }
.visit-kicker { display:block; font-size:10px; font-weight:700; letter-spacing:2px; color:#668172; margin-bottom:10px; }
.visit-section-intro h2,.visit-culture h2 { font-family:Georgia,serif; font-weight:400; font-size:34px; line-height:1.2; letter-spacing:-.7px; color:var(--visit-ink); }
.visit-section-intro p { color:var(--visit-muted); font-size:12px; line-height:1.8; }
.visit-shortcuts { gap:16px; margin-top:20px !important; }
.visit-shortcuts > button { display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-start; position:relative; padding:24px; border-radius:17px; border:1px solid var(--visit-line); box-shadow:none; min-height:175px; transition:transform .2s,box-shadow .2s,border-color .2s; }
.visit-shortcuts > button:hover { transform:translateY(-4px); border-color:#8ba58d; box-shadow:0 12px 24px #183c350a; }
.visit-shortcuts > button > span { background:#edf2e8; color:#41644b; width:42px; height:42px; border-radius:12px; font-size:17px; }
.visit-shortcuts > button:nth-child(2) > span { background:#fbf0dd; color:#a27634; }
.visit-shortcuts > button:nth-child(3) > span { background:#eaf0f4; color:#53718b; }
.visit-shortcuts > button:nth-child(4) > span { background:#f1ece6; color:#8b7356; }
.visit-shortcuts b { max-width:185px; font-size:14px; line-height:1.5; }
.visit-shortcuts small { font-size:11px; line-height:1.65; max-width:180px; }
.visit-card-arrow { position:absolute; right:23px; top:30px; font-size:12px; color:#7c8d80; }
#destinations-heading,#places-grid { scroll-margin-top:110px; }
#category-pills { margin-top:22px; padding-bottom:9px; }
#category-pills button { border-radius:100px; box-shadow:none; padding:11px 18px; }
#category-pills .active { background:#285542; }
#places-grid > .group { border-radius:18px; box-shadow:0 3px 9px #183c3504; }
#places-grid > .group:hover { box-shadow:0 15px 35px #183c3512; }
#places-grid .relative.h-48 { height:225px; }
#places-grid h3 { font-size:19px; letter-spacing:-.4px; }
.visit-culture { display:grid; grid-template-columns:1fr 1fr; background:#edf0e5; border:1px solid #e0e5d7; border-radius:22px; overflow:hidden; margin-top:54px !important; }
.visit-culture-photo { position:relative; min-height:340px; }
.visit-culture-photo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.visit-culture-photo:after { content:''; position:absolute; inset:50% 0 0; background:linear-gradient(transparent,#10291eaa); }
.visit-culture-photo > span { position:absolute; bottom:25px; left:28px; font-family:Georgia,serif; font-style:italic; font-size:25px; color:white; z-index:1; }
.visit-culture-content { padding:44px; align-self:center; }
.visit-culture-content p { color:#627466; font-size:13px; line-height:1.9; margin:18px 0 24px; }
.visit-culture-content button { display:flex; align-items:center; gap:25px; background:#285542; color:white; padding:13px 18px; border-radius:9px; font-size:12px; font-weight:600; }
.visit-culture-content .visit-culture-secondary { color:#285542; background:transparent; margin-top:7px; padding-left:0; }
.dark body { background:#101b19; }
.dark body > header { background:rgba(16,27,25,.96); border-color:#2b3e37; }
.dark .visit-section-intro h2,.dark .visit-culture h2 { color:#ecf0e6; }
.dark .visit-section-intro p,.dark .visit-kicker { color:#a7b9ad; }
.dark .visit-shortcuts > button { background:#172621; border-color:#324139; }
.dark .visit-shortcuts small { color:#afbeb3; }
.dark .visit-culture { background:#1e3028; border-color:#324139; }
.dark .visit-culture-content p { color:#b7c7bc; }
.dark .visit-culture-content .visit-culture-secondary { color:#d4e4d8; }
@media (min-width:768px) and (max-width:1100px) { header nav button { padding-left:7px !important; padding-right:7px !important; font-size:10px; } header nav button i { display:none; } }
@media (max-width:767px) {
 body > main { padding-top:16px; }
 .visit-hero { min-height:520px; border-radius:20px; align-items:start; }
 .visit-hero-content { padding:35px 25px 80px; }
 .visit-hero-image { object-position:65% center; }
 .visit-hero-shade { background:linear-gradient(90deg,#102b23db,#102b2355),linear-gradient(0deg,#102b2355,transparent); }
 .visit-hero h1 { font-size:55px; letter-spacing:-2px; }
 .visit-eyebrow { font-size:8px; letter-spacing:1.5px; }
 .visit-hero-content > p { font-size:12px; }
 .visit-search { gap:9px; padding-left:12px; }
 .visit-search input { font-size:11px; }
 .visit-search button { padding:15px; }
 .visit-search button span { display:none; }
 .visit-photo-caption { bottom:22px; right:24px; font-size:11px; }
 .visit-photo-caption small { display:none; }
 .visit-section-intro { align-items:start; flex-direction:column; gap:10px; }
 .visit-section-intro h2 { font-size:29px; }
 .visit-section-intro p br { display:none; }
 .visit-shortcuts { gap:10px; }
 .visit-shortcuts > button { padding:17px; min-height:183px; }
 .visit-shortcuts b { font-size:12px; }
 .visit-shortcuts small { font-size:10px; }
 .visit-card-arrow { right:16px; top:22px; }
 .visit-culture { grid-template-columns:1fr; }
 .visit-culture-photo { min-height:250px; }
 .visit-culture-content { padding:28px; }
 .visit-culture h2 { font-size:30px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto !important; } *,*::before,*::after { transition:none !important; animation:none !important; } }
/* Day-by-day planner */
#tab-planner .planner-intro { background:#234b3d; padding:42px; box-shadow:none; }
.planner-intro h2 { font-family:Georgia,serif; font-weight:400; max-width:620px; font-size:42px; letter-spacing:-1px; }
.planner-intro p:last-child { max-width:570px; color:#dbe7dc; }
#planner-packages { gap:16px; }
#planner-packages > button { border-radius:18px; box-shadow:none; border-color:#dce4dc; }
#planner-packages > button[aria-pressed="true"] { border-color:#426a50; box-shadow:0 0 0 3px #426a5015; }
#planner-packages img { height:155px; }
#planner-packages h3 { font-size:17px; }
#itinerary-timeline { gap:26px; }
.journey-day { border:1px solid #dce4dc; border-radius:22px; overflow:hidden; background:#fff; }
.journey-day-heading { display:flex; align-items:center; gap:20px; padding:26px 30px; border-bottom:1px solid #e6eae3; }
.journey-day-number { display:flex; flex-direction:column; align-items:center; justify-content:center; width:64px; height:76px; flex-shrink:0; border-radius:14px; background:#edf2e9; color:#30583f; font-family:Georgia,serif; font-size:32px; line-height:1.2; }
.journey-day-number small { font:700 9px Inter,sans-serif; letter-spacing:2px; margin-bottom:5px; }
.journey-day-heading .visit-kicker { margin-bottom:6px; font-size:9px; }
.journey-day-heading h4 { font-family:Georgia,serif; font-size:27px; line-height:1.2; color:#183c35; }
.journey-stop-count { display:block; margin-top:8px; font-size:11px; color:#7a887b; }
.journey-day-body { display:grid; grid-template-columns:minmax(0,1fr) 320px; }
.journey-day-main { padding:26px 30px; }
.journey-description { font-size:13px; line-height:1.85; color:#69766d; margin-bottom:24px; }
.journey-stop-list { list-style:none; padding:0; margin:0; }
.journey-stop-list li { position:relative; display:flex; align-items:center; gap:15px; min-height:80px; padding:12px 0; }
.journey-stop-list li:not(:last-child)::before { content:''; position:absolute; left:15px; top:48px; bottom:-24px; width:1px; background:#d7e2d6; }
.journey-stop-number { position:relative; z-index:1; flex-shrink:0; width:31px; height:31px; display:grid; place-items:center; border-radius:50%; border:1px solid #d9e4d8; background:#f7f9f3; color:#41634a; font-size:11px; font-weight:700; }
.journey-stop-list li > div { flex:1; min-width:0; }
.journey-stop-name { font-size:13px; font-weight:600; color:#294c3a; line-height:1.6; }
.journey-stop-name:hover { text-decoration:underline; }
.journey-stop-caption { display:block; margin-top:4px; font-size:10px; color:#839084; }
.journey-stop-nav { display:flex; align-items:center; gap:7px; padding:10px; border-radius:9px; font-size:10px; color:#53715c; background:#f4f7f0; flex-shrink:0; }
.journey-stop-nav:hover { background:#e4eddf; }
.journey-route-panel { padding:28px 24px; background:#f5f7f0; border-left:1px solid #e6eae3; }
.journey-route-panel h5 { font-family:Georgia,serif; font-size:25px; color:#294c3a; }
.journey-route-panel > p { font-size:12px; line-height:1.8; color:#72806f; margin:10px 0 22px; }
.journey-route-actions { display:grid; gap:12px; }
.journey-route-link { display:grid; grid-template-columns:30px minmax(0,1fr) 12px; gap:10px; padding:17px 13px; border-radius:13px; border:1px solid #d8e2d1; background:white; color:#32543d; transition:box-shadow .2s,transform .2s; }
.journey-route-link:first-child { background:#2e5942; color:white; border-color:#2e5942; }
.journey-route-link:hover { box-shadow:0 6px 16px #183c3515; transform:translateY(-2px); }
.journey-route-icon { height:30px; display:grid; place-items:center; border-radius:8px; background:#81947a20; }
.journey-route-link strong { display:block; font-size:12px; margin:4px 0 9px; }
.journey-route-link small { display:block; font-size:10px; line-height:1.8; opacity:.85; overflow-wrap:anywhere; }
.journey-route-link em { display:block; margin-top:10px; font-size:9px; font-style:normal; opacity:.75; }
.journey-route-link > i { font-size:10px; margin-top:7px; }
.journey-route-panel > small { display:block; margin-top:18px; color:#7a8676; font-size:9px; line-height:1.8; }
.journey-route-panel > small i { margin-right:5px; }
.journey-footnote { font-size:11px; line-height:1.9; color:#72806f; }
.dark .journey-day { background:#172621; border-color:#34463a; }
.dark .journey-day-heading { border-color:#34463a; }
.dark .journey-day-heading h4,.dark .journey-stop-name,.dark .journey-route-panel h5 { color:#e2eadd; }
.dark .journey-description,.dark .journey-stop-caption,.dark .journey-stop-count,.dark .journey-route-panel > p,.dark .journey-route-panel > small { color:#adbcaa; }
.dark .journey-route-panel { background:#1e3028; border-color:#34463a; }
.dark .journey-route-link:not(:first-child) { background:#263e31; border-color:#47614a; color:#e2eadd; }
@media(max-width:900px) { .journey-day-body { grid-template-columns:1fr; } .journey-route-panel { border-left:0; border-top:1px solid #e6eae3; } .journey-route-actions { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:540px) { #tab-planner .planner-intro { padding:28px; } .planner-intro h2 { font-size:33px; } #planner-packages { grid-template-columns:1fr; } #planner-packages > button { display:grid; grid-template-columns:95px 1fr; } #planner-packages img { height:100%; min-height:130px; } #planner-packages > button > div { padding:15px; } #planner-packages h3 { font-size:14px; } .journey-day-heading { padding:22px 18px; gap:14px; } .journey-day-heading h4 { font-size:23px; } .journey-day-main { padding:18px; } .journey-stop-nav span { display:none; } .journey-stop-list li { gap:10px; } .journey-route-panel { padding:24px 18px; } .journey-route-actions { grid-template-columns:1fr; } }
/* Culture editorial: warm terracotta, cream and forest green. */
.culture-hero { display:grid; grid-template-columns:1.05fr 1fr; overflow:hidden; border-radius:24px; background:#3e302c; color:#fff6ea; }
.culture-hero-copy { padding:48px 40px; }
.culture-hero .visit-kicker { color:#e2b892; }
.culture-hero h2 { font:400 clamp(36px,4vw,56px)/1.12 Georgia,serif; letter-spacing:-1.6px; }
.culture-hero h2 em { color:#e9b88c; }
.culture-hero-copy > p { font-size:13px; line-height:1.9; color:#dfd1c8; margin-top:21px; max-width:420px; }
.culture-hero-copy > p:first-of-type { color:#f7e7d7; font-size:11px; letter-spacing:.4px; font-weight:600; }
.culture-hero figure { position:relative; min-height:380px; }
.culture-hero figure img { width:100%; height:100%; position:absolute; object-fit:cover; object-position:center; }
.culture-hero figure:after { content:''; position:absolute; inset:60% 0 0; background:linear-gradient(transparent,#201913bb); }
.culture-hero figcaption { position:absolute; bottom:25px; left:25px; z-index:1; font:italic 19px Georgia,serif; }
.culture-jump { display:flex; flex-wrap:wrap; gap:8px; margin-top:28px; }
.culture-jump a { padding:9px 12px; border:1px solid #ffffff38; border-radius:100px; font-size:10px; }
.culture-jump a:hover { background:#fff1d820; }
.culture-story { display:grid; grid-template-columns:1fr 1.1fr; gap:48px; padding:35px 12px; }
.culture-story h3 { font:400 32px/1.3 Georgia,serif; color:#25483b; }
.culture-story p { font-size:13px; line-height:1.9; color:#6b796e; margin-bottom:14px; }
.culture-story button,.culture-text-link { display:inline-flex; align-items:center; gap:15px; font-size:12px; color:#40674b; font-weight:600; padding:8px 0; }
#culture-story,#culture-arts,#culture-festivals,#culture-food { scroll-margin-top:100px; }
.culture-feature-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.culture-feature,.culture-food-card { overflow:hidden; border-radius:18px; border:1px solid #e0e4d9; background:white; }
.culture-feature > img { width:100%; height:220px; object-fit:cover; }
.culture-feature > div,.culture-food-card > div:last-child { padding:24px; }
.culture-feature h3,.culture-food-card h3,.culture-regional-grid h3 { font:400 25px/1.25 Georgia,serif; color:#294b3b; }
.culture-feature p,.culture-food-card p { margin-top:12px; color:#6d7a70; font-size:12px; line-height:1.9; }
.culture-notes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding:28px; border-radius:17px; background:#edece3; }
.culture-notes i { color:#9c754e; font-size:21px; }
.culture-notes h4 { font-size:14px; font-weight:600; margin:12px 0 8px; color:#354c3b; }
.culture-notes p { font-size:12px; line-height:1.8; color:#768070; }
.culture-festival-feature { display:grid; grid-template-columns:1.1fr 1fr; border-radius:20px; overflow:hidden; background:#efe6d8; }
.culture-festival-feature > img { width:100%; height:300px; object-fit:cover; }
.culture-festival-feature > div { padding:36px; align-self:center; }
.culture-festival-feature h3 { font:400 36px Georgia,serif; color:#674732; }
.culture-festival-feature p { font-size:13px; line-height:1.9; color:#796653; margin:17px 0; }
.culture-festival-feature button { display:flex; gap:18px; align-items:center; padding:12px 17px; border-radius:9px; background:#75533c; color:white; font-size:11px; font-weight:600; }
.culture-regional-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:15px; }
.culture-regional-grid article { position:relative; padding:25px 21px; background:white; border:1px solid #e2e3d8; border-radius:16px; }
.culture-festival-index { display:block; font:italic 29px Georgia,serif; color:#b29b78; margin-bottom:26px; }
.culture-regional-grid .visit-kicker { font-size:8px; letter-spacing:1.3px; }
.culture-regional-grid small { display:block; color:#9d7853; font-size:10px; line-height:1.6; margin-top:9px; }
.culture-regional-grid p { font-size:12px; line-height:1.8; color:#72806f; margin-top:15px; }
.culture-regional-grid a { display:inline-block; font-size:9px; color:#466b4d; margin-top:20px; line-height:1.7; text-decoration:underline; text-underline-offset:3px; }
.culture-small-note { font-size:11px; color:#7a8577; line-height:1.8; }
.culture-food-intro { display:flex; justify-content:space-between; align-items:center; gap:25px; }
.culture-food-intro p { font-size:12px; line-height:1.9; max-width:650px; color:#6d7a70; }
.culture-food-intro span { flex-shrink:0; color:#967858; font-size:10px; }
.culture-food-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.culture-food-image { aspect-ratio:1; background-image:url('assets/culture/manipur-food-illustrations.png'); background-size:300% 200%; background-repeat:no-repeat; background-color:#f4ecd9; }
.culture-food-card small { display:block; color:#a07851; font-size:10px; border-top:1px solid #ecebe1; padding-top:14px; margin-top:18px; }
.culture-source-note { border-top:1px solid #dce2d6; padding:26px 0 10px; }
.culture-source-note p { font-size:12px; color:#788573; margin-bottom:12px; }
.culture-source-note a { display:inline-block; font-size:10px; color:#527356; text-decoration:underline; text-underline-offset:3px; margin-right:20px; margin-bottom:10px; }
.dark .culture-feature,.dark .culture-food-card,.dark .culture-regional-grid article { background:#192a22; border-color:#354938; }
.dark .culture-story h3,.dark .culture-feature h3,.dark .culture-food-card h3,.dark .culture-regional-grid h3,.dark .culture-notes h4 { color:#e1e8d7; }
.dark .culture-story p,.dark .culture-feature p,.dark .culture-food-card p,.dark .culture-notes p,.dark .culture-regional-grid p,.dark .culture-food-intro p { color:#b1bea9; }
.dark .culture-notes { background:#26352a; }
.dark .culture-festival-feature { background:#3e3529; }
.dark .culture-festival-feature h3 { color:#f1d9bb; }
.dark .culture-festival-feature p { color:#d1baa0; }
.dark .culture-source-note a,.dark .culture-text-link,.dark .culture-story button,.dark .culture-regional-grid a { color:#b5cfa9; }
@media(max-width:1000px) { .culture-hero-copy { padding:32px; } .culture-regional-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .culture-feature-grid { gap:12px; } .culture-feature > div { padding:18px; } }
@media(max-width:767px) { .culture-hero,.culture-story,.culture-festival-feature { grid-template-columns:1fr; } .culture-hero figure { min-height:260px; } .culture-hero-copy { padding:30px 25px; } .culture-hero h2 { font-size:43px; } .culture-story { gap:20px; padding:20px 4px; } .culture-feature-grid,.culture-notes { grid-template-columns:1fr; } .culture-feature > img { height:230px; } .culture-notes { gap:25px; } .culture-notes article + article { border-top:1px solid #cbd2c5; padding-top:20px; } .culture-festival-feature > div { padding:25px; } .culture-festival-feature > img { height:240px; } .culture-food-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } .culture-food-card > div:last-child { padding:18px; } .culture-food-card h3 { font-size:22px; } .culture-food-intro { flex-direction:column; align-items:flex-start; gap:12px; } }
@media(max-width:430px) { .culture-regional-grid,.culture-food-grid { grid-template-columns:1fr; } .culture-food-image { max-height:340px; } }
/* Navigation and conversation */
body > header nav { padding:5px; background:#eef2e9; border:1px solid #e2e8dc; border-radius:15px; }
body > header nav button { border-radius:10px; }
#sidebar-drawer { width:370px; max-width:92vw; background:#fafbf6; border-right:1px solid #dce3d7; box-shadow:20px 0 70px #152c3126; }
.menu-brand { display:flex; align-items:center; gap:12px; padding:27px 23px; background:#edf2e8; border-bottom:1px solid #dee6d7; flex-shrink:0; }
.menu-brand > img { width:40px; height:45px; object-fit:contain; }
.menu-brand > div { flex:1; }
.menu-brand span { font-size:7px; font-weight:700; letter-spacing:1.5px; color:#6a8469; }
.menu-brand h2 { font:400 23px Georgia,serif; color:#244535; margin-top:4px; }
.menu-brand > button { width:32px; height:32px; border-radius:50%; background:#fff9; color:#5b725a; }
.menu-scroll { overflow-y:auto; overscroll-behavior:contain; flex:1; min-height:0; padding:15px; }
.menu-group + .menu-group { margin-top:22px; }
.menu-group h3 { font-size:9px; font-weight:700; letter-spacing:1.6px; text-transform:uppercase; color:#8b9681; padding:9px 12px; }
#sidebar-drawer .menu-group button { display:flex; align-items:center; gap:13px; width:100%; text-align:left; padding:11px 12px; border-radius:12px; margin:3px 0; color:#3c5544; }
#sidebar-drawer .menu-group button:hover { background:#edf2e6; }
#sidebar-drawer .menu-group button[aria-current="page"] { background:#e3ecd9; color:#244c34; }
.menu-group button > i:first-child { display:grid; place-items:center; width:35px; height:35px; flex-shrink:0; border-radius:10px; background:#edf1e7; color:#658061; font-size:15px; }
.menu-group button[aria-current="page"] > i:first-child { background:#365c41; color:white; }
.menu-group button > span { flex:1; }
.menu-group b { display:block; font-size:12px; font-weight:600; }
.menu-group small { display:block; margin-top:3px; font-size:10px; line-height:1.5; color:#819078; font-weight:400; }
.menu-group .menu-chevron { font-size:9px; color:#9eae92; }
.menu-footer { display:flex; gap:12px; align-items:center; padding:19px 25px; border-top:1px solid #e0e6da; color:#62825f; flex-shrink:0; }
.menu-footer > span { font:italic 16px Georgia,serif; color:#46643f; }
.menu-footer small { display:block; font:9px Inter,sans-serif; color:#8a9780; margin-top:5px; }
#assistant-bubble { width:auto; height:54px; padding:0 20px; gap:11px; border-radius:100px; background:#2c533d; box-shadow:0 8px 24px #19382535; }
.chat-launcher-label { font-size:12px; font-weight:600; }
#travel-assistant { width:min(470px,calc(100vw - 24px)); height:min(730px,calc(100svh - 32px)); background:#fffef9; border:1px solid #dfe6d7; border-radius:23px; box-shadow:0 24px 100px #142e3340; }
.chat-header { display:flex; align-items:center; gap:12px; flex-shrink:0; padding:23px 20px; background:#284c39; color:#f3f6ec; }
.chat-avatar { display:grid; place-items:center; width:44px; height:44px; border-radius:14px; border:1px solid #dcebc04a; background:#ffffff0d; color:#d9dfaf; font-size:21px; }
.chat-header > div { flex:1; min-width:0; }
.chat-eyebrow { font-size:7px; letter-spacing:1.5px; color:#c3d0ad; }
.chat-header h2 { font:400 20px Georgia,serif; margin-top:4px; }
.chat-header p { font-size:10px; color:#b8cbb4; margin-top:5px; }
.chat-header button { width:30px; height:34px; border-radius:8px; color:#dce6d0; font-size:14px; }
.chat-header button:hover { background:#ffffff18; }
#assistant-messages { background:#f4f6ee; overscroll-behavior:contain; min-height:0; padding:22px; scrollbar-width:thin; scrollbar-color:#ccd7c0 transparent; }
.chat-welcome { padding:26px 12px; text-align:center; }
.chat-welcome-icon { display:grid; place-items:center; margin:0 auto 24px; width:64px; height:64px; border:1px solid #dce5ce; border-radius:22px; background:#e8eedd; font-size:28px; color:#6d835b; transform:rotate(-6deg); }
.chat-welcome .visit-kicker { font-size:8px; color:#8a9a76; }
.chat-welcome h3 { font:400 39px/1.16 Georgia,serif; letter-spacing:-1px; color:#314f38; margin:15px 0; }
.chat-welcome p { font-size:12px; line-height:1.85; color:#748068; max-width:290px; margin:auto; }
.chat-welcome-note { display:block; margin-top:25px; font-size:9px; color:#8a957e; }
#assistant-messages [data-speaker] { font-size:13px; line-height:1.85; padding:15px 17px; overflow-wrap:anywhere; box-shadow:0 2px 4px #26372504; }
#assistant-messages [data-speaker="visitor"] { background:#34583e; color:#fff; border-radius:18px 18px 4px 18px; }
#assistant-messages [data-speaker="assistant"] { background:#fffefa; border-color:#e0e6d7; color:#52644b; border-radius:4px 18px 18px 18px; }
.chat-suggestions { padding-top:14px; background:#fffef9; gap:7px; }
#travel-assistant .chat-suggestions button { display:flex; align-items:center; gap:7px; font-size:10px; font-weight:500; padding:9px 12px; background:#f2f4eb; color:#637557; border:1px solid #e6e9dc; }
#travel-assistant .chat-suggestions button:hover { background:#e6ecdb; }
#travel-assistant form { border-color:#e8ebdf; background:#fffef9; padding:14px 18px 18px; }
#assistant-input { background:#f1f3ea; border:1px solid #e4e8d9; border-radius:15px; font-size:12px; line-height:1.7; padding:13px; color:#334d35; max-height:150px; }
#assistant-send { background:#365b40; border-radius:14px; width:45px; height:45px; }
.dark body > header nav,.dark .menu-brand,.dark .menu-footer { background:#213329; border-color:#344836; }
.dark #sidebar-drawer,.dark #travel-assistant { background:#16261c; border-color:#344836; }
.dark .menu-brand h2,.dark .menu-group b,.dark .menu-footer > span { color:#e0ead6; }
.dark #sidebar-drawer .menu-group button:hover,.dark #sidebar-drawer .menu-group button[aria-current="page"] { background:#304732; }
.dark .menu-group button > i:first-child { background:#253b29; color:#c1d2ae; }
.dark .menu-group small,.dark .menu-group h3 { color:#a0b192; }
.dark #assistant-messages { background:#15231a; }
.dark .chat-welcome h3 { color:#e2ebd6; }
.dark .chat-welcome p,.dark .chat-welcome-note { color:#a7b99a; }
.dark #assistant-messages [data-speaker="assistant"] { background:#263b2b; color:#d5e0c9; border-color:#3a4e32; }
.dark #travel-assistant form,.dark .chat-suggestions { background:#1a2d20; border-color:#35452d; }
.dark #assistant-input,.dark #travel-assistant .chat-suggestions button { background:#2c402b; color:#d2dec4; border-color:#415537; }
@media(max-width:540px) { #assistant-bubble { height:50px; padding:0 16px; right:16px; bottom:18px; } #travel-assistant { bottom:10px; height:calc(100svh - 20px); } .chat-header { gap:8px; padding:18px 14px; } .chat-header h2 { font-size:18px; } .chat-eyebrow { font-size:6px; } #assistant-messages { padding:16px; } .menu-brand { padding:22px 18px; } }
.directory-filter-panel { padding:24px; border:1px solid #dfe5d8; background:#fffef9; border-radius:19px; }
.directory-filter-intro p { font-size:12px; color:#76816d; }
.directory-controls { display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:18px; margin-top:21px; align-items:end; }
.directory-controls label { display:flex; flex-direction:column; gap:8px; color:#496342; font-size:11px; font-weight:600; }
.directory-controls input,.directory-controls select { width:100%; min-width:0; border:1px solid #dce4d4; border-radius:10px; background:#f7f9f2; padding:12px; color:#3c5639; font-size:12px; font-weight:400; }
.directory-controls input[id$="-category-search"] { padding:9px 12px; }
.directory-controls select:disabled { opacity:.5; }
.directory-active { display:flex; flex-wrap:wrap; gap:8px; margin-top:15px; }
.directory-active:empty { display:none; }
.directory-active button { font-size:10px; color:#49633e; background:#e9f0e0; padding:8px 12px; border-radius:100px; }
.directory-active .directory-clear { background:transparent; text-decoration:underline; }
.directory-place { border:1px solid #e1e6d8; border-radius:18px; overflow:hidden; background:white; display:flex; flex-direction:column; }
.directory-place-image { height:210px; position:relative; background:#eff2e7; }
.directory-place-image img { width:100%; height:100%; object-fit:cover; }
.directory-place-image > span { position:absolute; left:15px; bottom:15px; max-width:calc(100% - 30px); background:#fffffff0; color:#3e5738; border-radius:100px; padding:7px 12px; font-size:10px; }
.directory-place-copy { padding:22px; flex:1; display:flex; flex-direction:column; }
.directory-place-copy .visit-kicker { font-size:8px; letter-spacing:1px; }
.directory-place h3 { font:400 23px/1.3 Georgia,serif; color:#324f36; }
.directory-address { font-size:11px; line-height:1.8; color:#7d8874; margin-top:12px; }
.directory-description { font-size:12px; color:#718069; line-height:1.8; margin:12px 0 20px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.directory-place-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:17px; border-top:1px solid #edf0e5; margin-top:auto; }
.directory-place-actions > span { font-size:11px; color:#a17e39; }
.directory-place-actions button { display:flex; gap:12px; align-items:center; font-size:11px; background:#eef3e6; color:#40613b; padding:10px 12px; border-radius:9px; }
#directory-pagination { display:flex; align-items:center; justify-content:center; gap:20px; margin-top:26px; font-size:12px; color:#6a7e5e; }
#directory-pagination button,.directory-empty button { padding:11px 18px; border:1px solid #d8e2ce; border-radius:10px; background:#fffef8; }
#directory-pagination button:disabled { opacity:.35; cursor:not-allowed; }
.directory-empty { grid-column:1/-1; text-align:center; padding:45px; border:1px dashed #cfdbc4; border-radius:20px; color:#778970; }
.directory-empty h3 { font:26px Georgia,serif; margin:15px 0; }.directory-empty p { font-size:12px; margin-bottom:22px; }.directory-empty button { font-size:11px; }
.dark .directory-filter-panel,.dark .directory-place { background:#1b2d20; border-color:#344a2d; }.dark .directory-controls input,.dark .directory-controls select { background:#263a29; border-color:#425339; color:#d4e2c7; }.dark .directory-place h3,.dark .directory-controls label { color:#dce9d1; }.dark .directory-description,.dark .directory-address { color:#a8b99a; }
@media(max-width:767px) { .directory-controls { grid-template-columns:1fr; gap:15px; }.directory-filter-panel { padding:20px; } }
/* Compact directory controls: one desktop row, two mobile rows. */
.directory-filter-panel { padding:12px 14px; border-radius:13px; }
.directory-controls { margin-top:0; gap:12px; grid-template-columns:1.3fr 1fr 1fr; align-items:end; }
.directory-controls label { gap:5px; font-size:10px; }
.directory-controls input,.directory-controls select { height:37px; padding:8px 10px; font-size:11px; border-radius:8px; }
.directory-category-field { position:relative; min-width:0; }
.directory-category-field > label { padding-right:32px; }
.directory-category-lookup { position:absolute; right:0; bottom:0; z-index:5; }
.directory-category-lookup summary { display:grid; place-items:center; list-style:none; cursor:pointer; width:28px; height:37px; color:#718167; font-size:11px; border-radius:7px; }
.directory-category-lookup summary::-webkit-details-marker { display:none; }
.directory-category-lookup summary:hover { background:#e9efdf; }
.directory-category-lookup input { position:absolute; right:0; top:42px; width:220px; box-shadow:0 6px 20px #22351d22; background:#fffef9; }
.directory-active { margin-top:8px; gap:6px; }.directory-active button { padding:5px 9px; font-size:10px; }
#directory-filters { margin-top:15px; }
#destinations-heading { padding-top:0; }
#destinations-heading h2 { font-size:27px; }
#destinations-heading .visit-kicker,#destinations-heading > p { display:none; }
#directory-filters + div { margin-top:18px; }
.directory-empty { padding:22px; border-radius:13px; }.directory-empty > i { display:none; }.directory-empty h3 { font-size:20px; margin:0 0 8px; }.directory-empty p { margin-bottom:12px; }.directory-empty button { padding:7px 12px; }
.directory-place-image { height:170px; }.directory-place-copy { padding:16px; }.directory-place h3 { font-size:20px; }.directory-description { margin:9px 0 12px; }.directory-place-actions { padding-top:12px; }
@media(max-width:767px) { .directory-controls { grid-template-columns:1fr 1fr; gap:10px; }.directory-controls > label:first-child { grid-column:1/-1; }.directory-filter-panel { padding:12px; } }
/* Place details */
.directory-category-field > label { padding-right:0; }
#place-modal > div { max-width:900px; border-radius:22px; background:#fffef9; }
.place-detail-hero { height:320px; }
.place-detail-hero h3 { font:400 36px/1.15 Georgia,serif; letter-spacing:-.7px; max-width:85%; }
.place-detail-hero .bg-emerald-500 { background:#ffffff25; border:1px solid #ffffff50; backdrop-filter:blur(10px); }
.place-detail-content { padding:28px 34px; }
.place-detail-content > section:first-of-type { background:#f3f5eb; border-radius:16px; padding:22px; }
.place-detail-content > section:first-of-type > p:last-child { font-size:13px; line-height:1.9; max-height:210px; overflow:auto; scrollbar-width:thin; }
.place-detail-content > section,.place-detail-content details { border-color:#e0e5d5; }
.place-detail-content > div:last-child { position:sticky; bottom:-28px; background:#fffef9; padding:18px 0; border-color:#e0e5d5; }
.place-directions { display:inline-flex; gap:10px; align-items:center; justify-content:center; padding:13px 22px; border-radius:11px; background:#315a43; color:white; font-size:12px; font-weight:600; }
.place-directions[aria-disabled="true"] { opacity:.45; pointer-events:none; }
/* Nearby places: map and scrollable results */
#tab-nearby .nearby-intro { background:#e9f0e8; border:1px solid #d6e2d4; border-radius:19px; padding:28px; }
.nearby-intro h2 { font:400 32px/1.2 Georgia,serif; color:#2c4f3a; letter-spacing:-.7px; }
.nearby-intro h2 > i { display:none; }
.nearby-intro p { font-size:12px; line-height:1.8; margin-top:10px; }
#nearby-locate-button { background:#315d45; box-shadow:none; border-radius:10px; }
.nearby-intro button:last-child { box-shadow:none; }
#tab-nearby .nearby-location-controls { padding:15px; border-radius:14px; margin-top:16px; box-shadow:none; }
.nearby-location-controls > div { gap:12px; }
#nearby-directory-filters { margin-top:14px; }
.nearby-explorer { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(290px,1fr); gap:20px; align-items:start; margin-top:20px !important; }
#nearby-map-shell { border-radius:18px; box-shadow:none; }
#nearby-map { height:560px; }
.nearby-explorer > div:last-child { background:#fffef9; border:1px solid #dfe6d8; padding:18px; border-radius:18px; }
.nearby-explorer h3 { font:400 23px Georgia,serif; color:#365337; }
#nearby-results-grid { display:grid; grid-template-columns:1fr; gap:10px; max-height:500px; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
#nearby-results-grid > button { padding:12px; border-radius:12px; box-shadow:none; border-color:#e4eadc; }
#nearby-results-grid img { width:60px; height:60px; border-radius:10px; }
#nearby-results-grid h4 { white-space:normal; font-size:12px; line-height:1.5; }
#nearby-results-grid .uppercase { font-size:8px; }
#tab-nearby > .sm\:hidden { display:none; }
/* Feedback: calm blue with warm paper */
#tab-grievances .grievance-hero { background:#294957; box-shadow:none; border-radius:21px; padding:36px; }
#tab-grievances .grievance-hero h2 { font:400 43px/1.15 Georgia,serif; letter-spacing:-1px; }
#tab-grievances .grievance-hero p:first-child { color:#b6d3d8; font-size:9px; }
#tab-grievances .grievance-hero p:last-child { color:#d8e7e7; font-size:13px; line-height:1.9; max-width:590px; }
#tab-grievances aside { background:#eaf0ef; border-color:#d5e1de; border-radius:18px; }
#tab-grievances aside > span { background:#597e85; border-radius:14px; }
#tab-grievances aside h3 { font:400 27px Georgia,serif; color:#325562; }
#tab-grievances aside p { font-size:12px; line-height:1.9; color:#6b8083; }
#grievance-form { background:#fffef9; border-color:#e0e4da; border-radius:18px; box-shadow:none; }
.grievance-form-heading { margin-bottom:26px; }
.grievance-form-heading .visit-kicker { color:#829b9b; font-size:9px; }
.grievance-form-heading h3 { font:400 28px Georgia,serif; color:#335361; }
.grievance-form-heading p { font-size:11px; line-height:1.8; margin-top:8px; color:#839193; }
#grievance-form input,#grievance-form textarea { border-color:#dce4df; background:#f6f8f3; font-size:12px; border-radius:10px; }
#grievance-form input:focus,#grievance-form textarea:focus { --tw-ring-color:#739ca1; border-color:#739ca1; }
#grievance-submit { background:#375f6b; box-shadow:none; border-radius:10px; }
#grievance-submit:hover { background:#274a56; }
.dark #place-modal > div,.dark .place-detail-content > div:last-child,.dark .nearby-explorer > div:last-child { background:#1a2b23; }
.dark .place-detail-content > section:first-of-type { background:#26392e; }
.dark #tab-nearby .nearby-intro { background:#233c30; border-color:#3d5848; }
.dark .nearby-intro h2,.dark .nearby-explorer h3 { color:#dfebdc; }
.dark #tab-grievances aside { background:#23383e; border-color:#3b555a; }
.dark #tab-grievances aside h3,.dark .grievance-form-heading h3 { color:#dce9e9; }
.dark #tab-grievances aside p { color:#b4c8c9; }
.dark #grievance-form { background:#1d3034; border-color:#3b555a; }
.dark #grievance-form input,.dark #grievance-form textarea { background:#283e43; border-color:#456169; color:#e0e8e5; }
@media(max-width:900px) { .nearby-explorer { grid-template-columns:1fr; } #nearby-map { height:380px; } #nearby-results-grid { max-height:440px; } }
@media(max-width:540px) { .place-detail-hero { height:250px; }.place-detail-hero h3 { font-size:28px; }.place-detail-content { padding:20px; }.place-detail-content > div:last-child { bottom:-20px; } #tab-nearby .nearby-intro { padding:22px; }.nearby-intro h2 { font-size:28px; } #tab-grievances .grievance-hero { padding:26px; } #tab-grievances .grievance-hero h2 { font-size:35px; } }
/* Emergency services: calm navy, clear coral call actions. */
#tab-emergency .emergency-hero { background:linear-gradient(115deg,#233e50,#365e6a); border:1px solid #446975; box-shadow:none; border-radius:22px; }
#emergency-title { font-family:Georgia,serif; font-weight:400; letter-spacing:-.7px; }
#tab-emergency .emergency-hero > p { color:#d8e9ed; }
#tab-emergency .emergency-hero a[href="tel:112"] { background:#fff1e8; color:#9b3e30; border:1px solid #ffd7c5; box-shadow:0 5px 18px #132c3620; }
#tab-emergency .emergency-hero a[href="tel:112"]:hover { background:#ffdfcd; }
#tab-emergency .emergency-hero a[href^="https"] { color:#d4e9ed; }
#emergency-services-grid > article { border-color:#dce5e5; background:#fffefa; box-shadow:none; border-radius:18px; }
#emergency-services-grid > article > span:first-child { color:#3f7180; background:#e9f1f1; width:48px; height:48px; display:grid; place-items:center; border-radius:13px; font-size:21px; }
#emergency-services-grid > article > p:first-of-type { color:#527887; letter-spacing:1px; font-size:10px; }
#emergency-services-grid a[href^="tel:"] { background:#ad4c3c; color:white; border-radius:10px; }
#emergency-services-grid a[href^="tel:"]:hover { background:#8e3b2e; }
#nav-emergency:not(.bg-emerald-50) { color:#9b493c; }
#nav-emergency i { color:#ad4c3c; }
.dark #emergency-services-grid > article { background:#1d3037; border-color:#3b525b; }
.dark #emergency-services-grid > article > span:first-child { background:#2e4851; color:#bcdde2; }
.dark #emergency-services-grid > article > p:first-of-type { color:#a7cdd7; }

/* A real button covers each card while retaining native keyboard access. */
.culture-feature { position:relative; }
.culture-detail-trigger { display:inline-block; margin-top:20px; color:#466b4d; font-size:12px; font-weight:700; text-align:left; }
.culture-detail-trigger::after { content:''; position:absolute; inset:0; border-radius:16px; cursor:pointer; }
.culture-detail-trigger:hover::after { box-shadow:inset 0 0 0 2px #73986b; }
.culture-detail-trigger:focus-visible { outline:none; }
.culture-detail-trigger:focus-visible::after { outline:3px solid #44784f; outline-offset:4px; }
.dark .culture-detail-trigger { color:#b5cfa9; }
.culture-detail-dialog { position:fixed; inset:0; margin:auto; padding:0; border:0; border-radius:24px; width:min(680px,calc(100% - 32px)); max-height:90svh; overflow:auto; background:#fffdf7; color:#294b3b; box-shadow:0 24px 80px #0005; }
.culture-detail-dialog::backdrop { background:#10231cbb; backdrop-filter:blur(4px); }
.culture-detail-close { position:sticky; top:12px; z-index:1; display:block; margin:12px 16px 12px auto; padding:9px 16px; border-radius:30px; background:#e8eedf; color:#294b3b; font-weight:700; }
.culture-detail-image { width:100%; max-height:280px; object-fit:cover; }
.culture-detail-body { padding:28px; }
.culture-detail-body h2 { font:400 36px/1.2 Georgia,serif; margin:12px 0 20px; }
.culture-detail-body h3 { font-weight:700; margin-top:24px; }
.culture-detail-body p { font-size:14px; line-height:1.8; margin-bottom:14px; }
.culture-detail-body .visit-kicker { font-size:10px; }
.culture-detail-note { background:#edf0e3; padding:16px; border-radius:12px; margin-top:24px; }
.culture-detail-body a { text-decoration:underline; text-underline-offset:3px; font-size:13px; }
.dark .culture-detail-dialog { background:#192a22; color:#e1e8d7; }
.dark .culture-detail-note,.dark .culture-detail-close { background:#304537; color:#e1e8d7; }
