/* Firenze 2.9: one quiet, consistent system across every template. */
:root {
  --radius: .8rem;
  --radius-small: .45rem;
}
:root[data-color-pref='light'] { color-scheme: light; }
:root[data-color-pref='dark'] { color-scheme: dark; }
body { -webkit-font-smoothing: antialiased; }
:is(h1, h2, h3) { text-wrap: balance; }
:is(p, li) { overflow-wrap: anywhere; }
:is(a, button, input, select, summary):focus-visible {
  outline: 2px solid var(--element);
  outline-offset: 4px;
}
#sm-main { scroll-margin-top: 5rem; }
#sm-main:target::before { content: none; }
.sm-skip-link {
  position: fixed; top: .75rem; left: 1rem; z-index: 100;
  padding: .65rem 1rem; border-radius: var(--radius-small);
  color: var(--element); background: var(--surface); transform: translateY(-200%);
}
.sm-skip-link:focus { transform: none; }
.sm-navbar { padding-block: .5rem; }
.sm-navbar-container { border-bottom: 1px solid var(--border-color); }
.sm-navbar-right { gap: .35rem; }
.sm-circle-icon-button { width: 44px; height: 44px; flex: 0 0 44px; }
.sm-circle-icon-button svg { width: 22px; height: 22px; }
.sm-circle-icon-button::after { inset: 0; }
.sm-circle-close-button { min-width: 36px; min-height: 36px; }
.sm-site-title { max-width: 55vw; text-overflow: ellipsis; }
.sm-card { border-radius: var(--radius); }
.sm-card img, .sm-header-image img { border-radius: var(--radius); }
.sm-card h2 { line-height: 1.22; letter-spacing: -.025em; }
.sm-card-meta { line-height: 1.6; }
.sm-post-content { line-height: 1.8; }
.sm-header-excerpt { opacity: 1; font-weight: 400; }
.sm-post-content :is(h2, h3, h4) { scroll-margin-top: 5rem; letter-spacing: -.02em; }
.sm-post-content :is(p, li) a { color: var(--element); text-decoration-thickness: 1px; text-underline-offset: .2em; }
.sm-post-content :is(input, select, textarea) { max-width: 100%; font-size: max(1rem, 16px); }
.sm-post-content :is(pre, .kg-bookmark-container, blockquote) { border-radius: var(--radius-small); }
.sm-post-content blockquote { border-left-color: var(--primary); }
.sm-table-wrapper { border: 1px solid var(--border-color); border-radius: var(--radius-small); }
.sm-footer-container { margin-top: 3rem; border-top: 1px solid var(--border-color); }
.sm-footer-description { max-width: 42ch; line-height: 1.7; }
.fdh-stay-cta { grid-column: content; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: clamp(1.25rem, 3vw, 2.5rem); margin-block: 2rem; border: 1px solid var(--border-color-accent); border-radius: var(--radius); background: var(--surface-light); }
.fdh-stay-cta h2 { margin: 0 0 .5rem; font-size: var(--h4); }
.fdh-stay-cta p { margin: 0; max-width: 45ch; font-size: var(--small); color: var(--element-light); }
.fdh-stay-cta .sm-button { flex: none; min-height: 48px; display: inline-flex; align-items: center; text-transform: none; }
@media (max-width: 599px) { .fdh-stay-cta { align-items: stretch; flex-direction: column; } .fdh-stay-cta .sm-button { justify-content: center; } }
.sm-footer-navigation a { display: inline-block; padding-block: .35rem; }
.sm-nav-menu-container { height: 100dvh; padding-bottom: max(2rem, env(safe-area-inset-bottom)); }
.sm-navbar-saves { max-height: 100dvh; max-width: 100vw; overflow-y: auto; }
.sm-overflow-articles { min-width: 0; }
.sm-saves-title { overflow-wrap: anywhere; }
body.sm-panel-open { position: fixed; left: 0; right: 0; overflow: hidden; }
.sm-nav-menu-navigation-container { max-width: 100%; }
.sm-booking-icon { width: 1.1em; height: 1.1em; vertical-align: -.15em; margin-right: .35em; color: var(--element-dark); }
.fdh-highlights h3 { display: flex; align-items: center; gap: .4rem; }
.fdh-highlights h3 svg { width: 1.25rem; height: 1.25rem; flex: none; color: var(--primary); }
@media (min-width: 768px) and (max-width: 1100px) {
  .sm-navbar-left { gap: .65rem; }
  .sm-navbar .sm-navigation { gap: .65rem; }
  .sm-navbar .sm-site-title { max-width: 24vw; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
