/* kolkatachicks.com - the blog list (blog.html) and the blog posts (blog/*.html), 2026-09-13.
   One reading template for every post: a dark band with the title, then a comfortable
   reading column with a sticky "On this page" + booking box on the right (under 1024 px
   the contents box goes on top and the booking box after the text), then related guides.
   All classes start with kcb- (nothing else on the site uses it). Colours = theme-rose tokens. */

/* ---------- the dark band at the top ---------- */
.kcb-hero { position: relative; overflow: hidden; isolation: isolate; background: var(--kc-slate, #1f2233); color: var(--kc-slate-txt, #f3f1fa); }
.kcb-hero::after { content: ""; position: absolute; right: -140px; top: -180px; width: 460px; height: 460px; border-radius: 50%; z-index: -1;
  background: radial-gradient(circle, rgba(255, 45, 149, .26) 0%, rgba(255, 45, 149, 0) 68%); }
.kcb-in { max-width: 1240px; margin: 0 auto; padding: 0 20px; }
.kcb-hin { padding-top: 32px; padding-bottom: 34px; }
.kcb-crumb { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; font-size: 12.5px; font-weight: 700; letter-spacing: .03em; color: var(--kc-slate-txt-2, #b8b5ca); }
.kcb-crumb a { color: var(--kc-slate-txt-2, #b8b5ca) !important; text-decoration: none !important; }
.kcb-crumb a:hover { color: #fff !important; }
.kcb-crumb span[aria-current] { color: var(--kc-rose, #ff2d95); }
body h1.kcb-h1 { max-width: 30ch; margin: 0 0 14px; font-family: var(--kc-display, "Unbounded", Arial, sans-serif); font-weight: 700;
  font-size: clamp(25px, 3.3vw, 42px); line-height: 1.14; letter-spacing: -.02em; color: #fff !important; text-align: left; text-wrap: balance; }
body h1.kcb-h1 em { font-style: normal; color: var(--kc-rose, #ff2d95); }
.kcb-lede { max-width: 62ch; margin: 0 0 20px; font-size: 16.5px; line-height: 1.6; color: var(--kc-slate-txt, #f3f1fa) !important; }
.kcb-meta { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.kcb-meta li { padding: 7px 12px; border-radius: 999px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .12);
  font-size: 12.5px; font-weight: 700; letter-spacing: .02em; color: var(--kc-slate-txt, #f3f1fa); }
.kcb-facts { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.kcb-facts li { min-width: 120px; padding: 10px 14px; border-radius: 10px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .12);
  font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--kc-slate-txt-2, #b8b5ca); line-height: 1.3; }
.kcb-facts b { display: block; margin-bottom: 3px; font-family: var(--kc-display, Arial, sans-serif); font-size: 21px; letter-spacing: -.01em;
  text-transform: none; color: #fff; font-variant-numeric: tabular-nums; }
/* blog.html only: the picture next to the title (2026-09-11). Under 900 px it goes below the text. */
.kcb-hin-pic { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 460px); gap: 40px; align-items: center; }
.kcb-htxt { min-width: 0; }
.kcb-hpic { min-width: 0; margin: 0; border-radius: 16px; overflow: hidden; aspect-ratio: 3 / 2; background: var(--kc-slate-2, #171927);
  box-shadow: 0 18px 40px rgba(0, 0, 0, .35); border: 1px solid rgba(255, 255, 255, .10); }
.kcb-hpic img { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 900px) { .kcb-hin-pic { grid-template-columns: minmax(0, 1fr); gap: 22px; } .kcb-hpic { border-radius: 12px; } }

/* ---------- page frame ---------- */
.kcb-page { max-width: 1240px; margin: 0 auto; padding: 32px 20px 0; }
.kcb-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 44px; align-items: start; }
.kcb-side { position: sticky; top: 24px; display: flex; flex-direction: column; gap: 16px; }

/* ---------- the reading column ---------- */
.kcb-body { min-width: 0; max-width: 760px; color: var(--kc-txt, #1d1b2a); }
.kcb-body p, .kcb-body li { font-size: 17px !important; line-height: 1.75 !important; color: var(--kc-txt, #1d1b2a) !important; }
.kcb-body p { margin: 0 0 16px !important; }
.kcb-body p.kcb-lead { font-size: 19px !important; line-height: 1.65 !important; color: var(--kc-txt, #1d1b2a) !important; font-weight: 600; }
.kcb-body strong, .kcb-body b { font-weight: 800; }
body .kcb-body h2 { margin: 42px 0 12px !important; font: 700 clamp(21px, 2.3vw, 27px)/1.25 var(--kc-display, Arial, sans-serif) !important; letter-spacing: -.01em;
  color: var(--kc-txt, #1d1b2a) !important; text-align: left !important; text-transform: none; scroll-margin-top: 110px; }
body .kcb-body h2::before { content: ""; display: block; width: 44px; height: 4px; margin: 0 0 12px; border-radius: 2px; background: var(--kc-rose, #ff2d95); }
body .kcb-body h3 { margin: 32px 0 10px !important; font: 700 19px/1.3 var(--kc-display, Arial, sans-serif) !important; color: var(--kc-txt, #1d1b2a) !important;
  text-align: left !important; scroll-margin-top: 110px; }
body .kcb-body h4 { margin: 22px 0 8px !important; font: 800 17.5px/1.35 var(--kc-body, Arial, sans-serif) !important; color: var(--kc-txt, #1d1b2a) !important;
  text-align: left !important; scroll-margin-top: 110px; }
body .kcb-body h2 span, body .kcb-body h3 span, body .kcb-body .main-heading span { display: inline; margin: 0; font: inherit !important; color: inherit !important; letter-spacing: inherit; }
.kcb-body :is(p, td, th, h2, h3, h4) a, .kcb-body li > a, .kcb-body li > strong > a, .kcb-body p strong > a {
  color: var(--kc-rose-deep, #d9127a) !important; font-weight: 700; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.kcb-body :is(p, td, li) a:hover { color: var(--kc-rose, #ff2d95) !important; }
.kcb-body ul:not(.kc-grid), .kcb-body ol { margin: 0 0 18px; padding-left: 22px; }
.kcb-body ul:not(.kc-grid) > li { list-style: disc; margin: 0 0 6px; }
.kcb-body ol > li { list-style: decimal; margin: 0 0 6px; }
.kcb-body li::marker { color: var(--kc-rose, #ff2d95); }
.kcb-body br { line-height: 0; }

/* old wrappers inside the text: they must not add width, gutters or dark colours */
.kcb-body .container { max-width: none !important; width: auto !important; margin: 0 !important; padding: 0 !important; }
.kcb-body .container .kc-grid-wrap { margin-left: 0 !important; margin-right: 0 !important; }
.kcb-body .row { margin: 0 !important; }
.kcb-body .col-12 { padding: 0 !important; }
.kcb-body .content-sec-all h1, .kcb-body .content-sec-all h2, .kcb-body .content-sec-all h3 { color: var(--kc-txt, #1d1b2a) !important; }

/* pictures, videos, tables */
.kcb-cover { margin: 0 0 26px; border-radius: 16px; overflow: hidden; background: var(--kc-slate-2, #171927); aspect-ratio: 16 / 9; box-shadow: 0 14px 34px rgba(31, 34, 51, .16); }
.kcb-cover picture { display: block; width: 100%; height: 100%; }
.kcb-cover img { display: block; width: 100% !important; height: 100% !important; object-fit: cover; }
.kcb-body .img-profile-n { margin: 22px 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0; }
.kcb-body .img-profile-n img, .kcb-body .blog-img img, .kcb-body > img, .kcb-body p img, .kcb-body figure img {
  display: block; width: 100% !important; height: auto !important; border: 0 !important; border-radius: 14px; }
.kcb-body .blog-img { margin: 0 0 12px !important; text-align: left; }
.kcb-body .embed-youtube { margin: 22px 0; }
.kcb-body iframe { display: block; width: 100% !important; height: auto !important; aspect-ratio: 16 / 9; border: 0 !important; border-radius: 14px; background: #000; }
.kcb-grid > *, .kcb-body .container { min-width: 0; }
/* contain: inline-size = the wide table never widens the page on a phone; it scrolls inside its own box */
.kcb-tbl { width: 100%; max-width: 100%; contain: inline-size; margin: 18px 0 28px; overflow-x: auto; border: 1px solid var(--kc-line, #dcd9e6); border-radius: 12px; background: var(--kc-panel, #fff); }
.kcb-tbl table { width: 100% !important; min-width: 420px; margin: 0 !important; border-collapse: collapse; box-shadow: none !important; font-size: 15px; font-variant-numeric: tabular-nums; }
.kcb-tbl th, .kcb-tbl td { padding: 12px 16px !important; text-align: left; border-bottom: 1px solid var(--kc-line, #dcd9e6); }
.kcb-tbl thead tr { background: var(--kc-slate, #1f2233) !important; color: #fff !important; }
.kcb-tbl thead th { font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: #fff !important; }
.kcb-tbl tbody tr, .kcb-tbl tbody tr:nth-of-type(odd), .kcb-tbl tbody tr:nth-of-type(even) { background: var(--kc-panel, #fff) !important; color: var(--kc-txt, #1d1b2a) !important; }
.kcb-tbl tbody tr:nth-of-type(even) { background: #f7f6fa !important; }
.kcb-tbl tbody tr:hover { background: #fff0f7 !important; color: var(--kc-txt, #1d1b2a) !important; }
.kcb-tbl tbody tr:last-of-type { border-bottom: 0 !important; }
.kcb-tbl tbody tr:last-of-type td { border-bottom: 0; }

/* a list of places (hotels, areas) shown as cards */
.kcb-body .blog-loc ul { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 16px; margin: 18px 0 28px; padding: 0 !important; list-style: none; }
.kcb-body .blog-loc ul > li { list-style: none; width: auto !important; margin: 0 !important; padding: 14px 16px 6px !important; border-radius: 14px;
  background: var(--kc-panel, #fff); border: 1px solid var(--kc-line, #dcd9e6); }
.kcb-body .blog-loc ul > li h4 { margin: 12px 0 6px !important; }
.kcb-body .blog-loc ul > li .blog-img img { aspect-ratio: 3 / 2; object-fit: cover; border-radius: 10px; }
.kcb-body .blog-loc ul > li p { font-size: 15.5px !important; line-height: 1.65 !important; }

/* questions written as <ul><ol><h4>..</h4><p>..</p></ol></ul> */
.kcb-body ul:has(> ol) { padding: 0 !important; list-style: none; }
.kcb-body ul > ol { margin: 0 0 12px !important; padding: 16px 18px 4px !important; list-style: none; border-radius: 12px; background: var(--kc-panel, #fff);
  border: 1px solid var(--kc-line, #dcd9e6); border-left: 4px solid var(--kc-rose, #ff2d95); }
.kcb-body ul > ol h4 { margin: 0 0 6px !important; }

/* ---------- side: contents + booking ---------- */
.kcb-toc { display: block; width: 100%; box-sizing: border-box; padding: 2px 18px; border-radius: 14px; background: var(--kc-panel, #fff); border: 1px solid var(--kc-line, #dcd9e6); }
.kcb-toc summary { display: flex; justify-content: space-between; align-items: center; padding: 14px 0; cursor: pointer; list-style: none;
  font: 800 12px/1 var(--kc-body, Arial, sans-serif); letter-spacing: .12em; text-transform: uppercase; color: var(--kc-rose-deep, #d9127a); }
.kcb-toc summary::-webkit-details-marker { display: none; }
.kcb-toc summary::after { content: "+"; font: 700 20px/1 var(--kc-display, Arial, sans-serif); color: var(--kc-rose, #ff2d95); }
.kcb-toc[open] summary::after { content: "\2212"; }
.kcb-toc summary:focus-visible { outline: 2px solid var(--kc-rose, #ff2d95); outline-offset: 2px; }
.kcb-toc ol { counter-reset: t; list-style: none; margin: 0 0 14px; padding: 0; max-height: min(58vh, 520px); overflow: auto; }
.kcb-toc li { counter-increment: t; margin: 0; }
.kcb-toc a { display: grid; grid-template-columns: 28px 1fr; gap: 4px; padding: 8px 0; border-top: 1px solid var(--kc-line, #dcd9e6);
  font-size: 14px; line-height: 1.4; font-weight: 700; color: var(--kc-txt, #1d1b2a) !important; text-decoration: none !important; }
.kcb-toc a::before { content: counter(t, decimal-leading-zero); font: 700 11px/1.9 var(--kc-display, Arial, sans-serif); color: var(--kc-rose-deep, #d9127a); }
.kcb-toc li.kcb-sub a { padding-left: 12px; font-weight: 600; }
.kcb-toc a:hover, .kcb-toc a.on { color: var(--kc-rose-deep, #d9127a) !important; }
.kcb-toc a.on { background: linear-gradient(90deg, rgba(255, 45, 149, .08), rgba(255, 45, 149, 0)); }

.kcb-cta { position: relative; overflow: hidden; isolation: isolate; padding: 20px; border-radius: 16px; background: var(--kc-slate, #1f2233); color: #fff; }
.kcb-cta::after { content: ""; position: absolute; right: -80px; bottom: -90px; width: 220px; height: 220px; border-radius: 50%; z-index: -1;
  background: radial-gradient(circle, rgba(255, 45, 149, .35) 0%, rgba(255, 45, 149, 0) 70%); }
.kcb-cta-h { display: block; margin: 0 0 8px; font: 700 18px/1.25 var(--kc-display, Arial, sans-serif); letter-spacing: -.01em; color: #fff; }
.kcb-cta p { margin: 0 0 14px !important; font-size: 14.5px !important; line-height: 1.55 !important; color: var(--kc-slate-txt-2, #b8b5ca) !important; }
.kcb-btn { display: flex; align-items: center; justify-content: center; gap: 9px; padding: 12px 14px; border-radius: 10px; font-weight: 800; font-size: 15px;
  text-decoration: none !important; transition: background .2s ease, border-color .2s ease; }
.kcb-btn svg { width: 18px; height: 18px; fill: currentColor; flex: none; }
.kcb-wa { background: var(--kc-rose, #ff2d95); color: #fff !important; box-shadow: 0 8px 22px rgba(255, 45, 149, .32); }
.kcb-wa:hover { background: var(--kc-rose-deep, #d9127a); }
.kcb-call { margin-top: 8px; border: 1px solid rgba(255, 255, 255, .3); color: #fff !important; }
.kcb-call:hover { border-color: #fff; background: rgba(255, 255, 255, .06); }
.kcb-btn:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.kcb-cta small { display: block; margin-top: 12px; font-size: 12.5px; line-height: 1.55; color: var(--kc-slate-txt-2, #b8b5ca); }
.kcb-cta small a { color: #ffc2e2 !important; font-weight: 700; }

/* ---------- guide cards (blog list + "more guides") ---------- */
.kcb-rel { max-width: 1240px; margin: 52px auto 0; padding: 34px 20px 0; border-top: 1px solid var(--kc-line, #dcd9e6); }
body .kcb-h2 { margin: 0 0 6px; font: 700 clamp(20px, 2.2vw, 27px)/1.2 var(--kc-display, Arial, sans-serif); letter-spacing: -.01em; color: var(--kc-txt, #1d1b2a); text-align: left; }
.kcb-sub { margin: 0 0 18px !important; font-size: 14.5px; color: var(--kc-txt-2, #5a5670) !important; }
.kcb-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 262px), 1fr)); gap: 18px; }
.kcb-card { display: flex; flex-direction: column; overflow: hidden; border-radius: 16px; background: var(--kc-panel, #fff); border: 1px solid var(--kc-line, #dcd9e6);
  transition: transform .2s ease, box-shadow .2s ease; }
.kcb-card:hover { transform: translateY(-3px); box-shadow: 0 16px 34px rgba(31, 34, 51, .14); }
.kcb-card[hidden], .kcb-feat[hidden] { display: none !important; }
.kcb-shot { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--kc-slate-2, #171927); }
.kcb-shot img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.kcb-card:hover .kcb-shot img, .kcb-feat:hover .kcb-shot img { transform: scale(1.04); }
.kcb-tag { position: absolute; left: 12px; top: 12px; z-index: 1; padding: 5px 10px; border-radius: 999px; background: rgba(23, 25, 39, .84); color: #fff;
  font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.kcb-tag.kcb-ext { left: auto; right: 12px; background: rgba(255, 255, 255, .92); color: var(--kc-slate, #1f2233); }
.kcb-cbody { display: flex; flex-direction: column; flex: 1; padding: 14px 16px 16px; }
body .kcb-cbody h2, body .kcb-cbody h3 { margin: 0 0 8px !important; font: 700 17px/1.3 var(--kc-display, Arial, sans-serif) !important; letter-spacing: -.01em; text-align: left; }
body .kcb-cbody h2::before, body .kcb-cbody h3::before { display: none; }
.kcb-cbody h2 a, .kcb-cbody h3 a { color: var(--kc-txt, #1d1b2a) !important; text-decoration: none !important; }
.kcb-cbody h2 a:hover, .kcb-cbody h3 a:hover { color: var(--kc-rose-deep, #d9127a) !important; }
.kcb-cbody p { margin: 0 0 14px !important; font-size: 14px !important; line-height: 1.55 !important; color: var(--kc-txt-2, #5a5670) !important; }
.kcb-cbody p a { color: var(--kc-rose-deep, #d9127a) !important; font-weight: 700; }
.kcb-cfoot { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: auto; padding-top: 12px; border-top: 1px solid var(--kc-line, #dcd9e6);
  font-size: 12.5px; font-weight: 700; color: var(--kc-txt-2, #5a5670); }
.kcb-read { display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; background: var(--kc-slate, #1f2233);
  color: #fff !important; font-weight: 800; font-size: 13px; text-decoration: none !important; transition: background .2s ease; }
.kcb-read:hover { background: var(--kc-rose, #ff2d95); }
.kcb-read:focus-visible, .kcb-chip:focus-visible { outline: 3px solid var(--kc-rose, #ff2d95); outline-offset: 2px; }

/* blog list: topic chips + one big featured guide */
.kcb-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; }
.kcb-chip { display: inline-flex; align-items: center; gap: 7px; padding: 9px 15px; border-radius: 999px; cursor: pointer; font: 700 14px/1 var(--kc-body, Arial, sans-serif);
  background: var(--kc-panel, #fff); border: 1px solid var(--kc-line, #dcd9e6); color: var(--kc-txt, #1d1b2a); transition: border-color .2s ease, color .2s ease; }
.kcb-chip small { font-size: 12px; font-weight: 800; color: var(--kc-txt-2, #5a5670); }
.kcb-chip:hover { border-color: var(--kc-rose, #ff2d95); color: var(--kc-rose-deep, #d9127a); }
.kcb-chip.on { background: var(--kc-slate, #1f2233); border-color: var(--kc-slate, #1f2233); color: #fff; }
.kcb-chip.on small { color: #ffc2e2; }
.kcb-feat { display: grid; grid-template-columns: 1.15fr 1fr; overflow: hidden; margin: 0 0 22px; border-radius: 18px; background: var(--kc-panel, #fff);
  border: 1px solid var(--kc-line, #dcd9e6); box-shadow: 0 14px 34px rgba(31, 34, 51, .10); }
.kcb-feat .kcb-shot { aspect-ratio: auto; min-height: 330px; }
.kcb-feat .kcb-cbody { justify-content: center; padding: 28px 30px; }
body .kcb-feat .kcb-cbody h2 { font-size: clamp(21px, 2.3vw, 28px) !important; line-height: 1.2 !important; margin-bottom: 12px !important; }
.kcb-feat .kcb-cbody p { font-size: 15.5px !important; }
.kcb-kicker { display: inline-block; margin: 0 0 10px; font-size: 11.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--kc-rose-deep, #d9127a); }

@media (max-width: 1023px) {
  .kcb-grid { display: flex; flex-direction: column; gap: 22px; }
  .kcb-side { display: contents; }
  .kcb-toc { order: -1; }
  .kcb-body { max-width: none; order: 0; }
  .kcb-cta { order: 2; }
}
@media (max-width: 760px) {
  .kcb-hin { padding-top: 24px; padding-bottom: 26px; }
  .kcb-in, .kcb-page, .kcb-rel { padding-left: 16px; padding-right: 16px; }
  .kcb-page { padding-top: 22px; }
  .kcb-facts li { min-width: 0; flex: 1 1 calc(50% - 10px); }
  .kcb-body p, .kcb-body li { font-size: 16.5px !important; }
  .kcb-body p.kcb-lead { font-size: 17.5px !important; }
  .kcb-cover { border-radius: 12px; margin-bottom: 20px; }
  .kcb-feat { grid-template-columns: 1fr; }
  .kcb-feat .kcb-shot { min-height: 0; aspect-ratio: 16 / 10; }
  .kcb-feat .kcb-cbody { padding: 18px 16px 18px; }
  .kcb-rel { margin-top: 40px; padding-top: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  .kcb-card, .kcb-shot img { transition: none; }
  .kcb-card:hover { transform: none; }
}

/* 2026-09-13: area cards with h3, the "where + Google Maps" line, inside pictures and the map */
.kcb-body .blog-loc ul > li h3 { margin: 12px 0 6px !important; }
.kcb-body .blog-loc ul > li .kcb-fig { margin: 0 0 4px; }
.kcb-body .blog-loc ul > li .kcb-fig img { aspect-ratio: 3 / 2; object-fit: cover; border-radius: 10px; }
.kcb-body p.kcb-where { font-size: 14px !important; font-weight: 700; color: var(--kc-txt-2, #5b5870) !important; }
.kcb-body .kcb-fig { margin: 18px 0 22px; }
.kcb-body .kcb-fig figcaption { margin-top: 6px; font-size: 12.5px; color: var(--kc-txt-2, #5b5870); }
.kcb-body .kcb-map img { border: 1px solid var(--kc-line, #dcd9e6) !important; }
