/* SITE POLISH: the last layer on the index and every guide page. Loaded after glass.css.
   One rule set for type, lines and alignment so that no page drifts from the others.
   Type:   labels 11 (500), small text 13, body 14-16 (300), titles from the design tokens; Montserrat everywhere.
   Lines:  dividers use the hairline (--border-lt); cards use --border; small pills and buttons use --border-md.
   Edges:  quotes, closing call-to-action and related links sit on the same gutter and the same 920 px column as the text above them. */

/* Type: form controls inherit the page font (the language buttons fell back to Arial) */
button, input, select, textarea { font-family: inherit; }
body strong, body b { font-weight: var(--w-med, 500) !important; }

/* Type: stray sizes snapped onto the scale */
body .pl-lunch span, body .mc-badge, body .ev-month, body .drawer-group > span { font-size: var(--fs-micro, 0.6875rem); font-weight: var(--w-med, 500); }
body .card p { font-size: var(--fs-caption, 0.8125rem); }
body .cab p, body p#cab { font-size: 1rem; }
body table th, body table td { font-size: var(--fs-body-tight, 0.875rem); }
body .rt, body .mc-name, body .ln, body .li .ln { font-size: 1.1875rem !important; }
body p.body-text { font-size: var(--fs-body, 0.9375rem) !important; }
body [style*="font-size:.78rem"] { font-size: var(--fs-caption, 0.8125rem) !important; }
body .foot-meta p, body .foot-meta a { font-size: var(--fs-caption, 0.8125rem); font-weight: var(--w-book, 400); }

/* Type: small light text is hard to read, so below 13 px it is regular weight, kickers medium */
body .tag, body .cl, body time, body .mc-day, body .pl-hint, body .pl-live, body .book-terms-note, body .book-widget-note,
body .ev-expected, body .tm-far-m { font-weight: var(--w-book, 400); }
body .lv-route-k, body .lv-stay-k, body .lv-next-k { font-weight: var(--w-med, 500); }

/* Lines: one hairline for dividers, one border for cards, one outline for small pills */
body .faq-item, body table th, body table td { border-color: var(--border-lt, rgba(37,31,28,.08)); }
body [style*="rgba(184,153,112,.18)"] { border-color: var(--border, rgba(37,31,28,.14)) !important; }
body .tn { border-color: var(--border-md, rgba(37,31,28,.22)); }

/* Edges: pull quote and closing call-to-action keep the page gutter */
body .pq { padding: 0 var(--gutter, 20px); }
body .pq blockquote { margin-bottom: 8px; }
body .pq cite { display: block; }
body .cta { padding: var(--section-sm, 64px) var(--gutter, 20px); }
body .cta p { margin: 14px auto 28px; }
body .cta .btn2 { margin-top: 0; }

/* Edges: the stacked section cards share one column (a wide child must not stretch the grid) */
body [style*="max-width:760px"][style*="display:grid"] { grid-template-columns: minmax(0, 1fr); }

/* Edges: related links, cards and extra rows in one 920 px grid */
body .siw:has(> .rel) { max-width: var(--container-w, 920px); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
body .siw:has(> .rel) > :not(a.ri) { grid-column: 1 / -1; }
body .siw:has(> .rel) > .rel { max-width: none; width: 100%; }
@media (max-width: 768px) { body .siw:has(> .rel) { grid-template-columns: 1fr; } }

/* Edges: three cards stay in one row inside the 760 px column; four or more wrap as before */
@media (min-width: 769px) {
  body .cg { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
  body .cg:has(> :nth-child(4)) { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
}

/* Type: the byline under the title and the Ask La Valette panel follow the same scale (no 10, 12, 13.3 or 600) */
body [style*="font-size:var(--fs-micro)"], body .pl-wx span { font-weight: var(--w-book, 400); }
body .ask-kicker { font-size: var(--fs-micro, 0.6875rem); }
body .ask-subtitle, body .ask-wa-intro, body .ask-suggest span { font-size: var(--fs-caption, 0.8125rem); font-weight: var(--w-book, 400); }
body .ask-wa-btn span, body .ask-wa-intro strong { font-size: var(--fs-caption, 0.8125rem); font-weight: var(--w-med, 500); }
body .ask-fab-title { font-size: var(--fs-caption, 0.8125rem); font-weight: var(--w-med, 500); }
body .ask-fab-sub { font-size: var(--fs-micro, 0.6875rem); }

/* Edges: buttons never grow past their card (a long e-mail address wrapped instead), date tags stay inside the date column */
body .btn, body .btn2 { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
body .evl-tag, body .ev-schedule { box-sizing: border-box; padding-left: 8px; padding-right: 8px; letter-spacing: .08em; text-align: center; white-space: nowrap; }
/* the "Today" tag is a word in six languages (Vandaag, Aujourd'hui, Heute ...) and does not fit the date column: on that row it sits above the title instead */
body .ev-card-new:has(.ev-schedule.is-today), body .evl-item:has(.evl-tag.is-today) { grid-template-columns: 1fr; gap: 8px; }
body .ev-card-new:has(.ev-schedule.is-today) .ev-date-new, body .evl-item:has(.evl-tag.is-today) .evl-when { align-items: flex-start; text-align: left; }

/* Edges: a heading and text that sit directly in a section start on the same left edge as the kicker above them (the heading used to hug the page edge) */
body .sec > h2.sh, body .sec > p.body-text { margin-left: max(0px, calc((100% - var(--container-w, 920px)) / 2)); margin-right: auto; }

/* ── Recurring components: one skin, one inset, one line colour ──────────────────────────────────────────────
   Two generations of guide pages exist (tan cards with a 32 px inset, and white cards with a 24 px inset); the shared parts are folded onto one. */

/* section card: tan tint, one border, 40 x 32 inset (the day-trip guides and the restaurant card used white, 24 px and 28 px) */
body div[style*="padding:var(--s4) var(--s3);border:1px solid var(--border-lt)"],
body div[style*="padding:28px 24px;border:1px solid rgba(184,153,112"] {
  padding: 40px 32px !important; border: 1px solid var(--border) !important; background: rgba(184,153,112,.04) !important; border-radius: 0 !important;
}

/* table: one rule under the header (sage), hairlines between the rows */
body table thead th { border-bottom: 1px solid var(--sage, rgb(139,142,112)) !important; }
body table tbody th, body table td { border-bottom: 1px solid var(--border-lt, rgba(37,31,28,.08)) !important; }

/* primary button: one shape on every page (four older pages had a gold outline and wider tracking) */
body a.btn[style*="letter-spacing:.28em"], body a.btn[style*="letter-spacing: .28em"] { letter-spacing: .2em !important; padding: 14px 32px !important; border-color: var(--sage-dk, #5F6249) !important; }

/* closing call-to-action: heading, text and buttons share one centred 540 px column */
body .cta > *, body .cta h2, body .cta p { margin-left: auto; margin-right: auto; }
body .cta h2, body .cta p { max-width: 540px; }

/* running text: one line height and weight */
body p.body-text { line-height: 1.7; }
