/* Shared refinements for the public Il Borgo pages. */
:root { --borgo-ink: #17191b; --borgo-gold: #72777b; --borgo-cream: #f5f5f5; }
html { scroll-padding-top: 100px; }
body { overflow-wrap: break-word; overflow-x: clip; }
img { max-width: 100%; height: auto; }
main p { line-height: 1.85; }
a:focus-visible, button:focus-visible { outline: 3px solid #b68b47; outline-offset: 4px; }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 10000; padding: 12px 20px; background: #fff; color: #17191b; }
.skip-link:focus { top: 12px; }
.navbar.navbar-theme { background-color: transparent !important; transition: background-color .25s ease; }
.navbar.navbar-theme.is-scrolled { background-color: rgba(23, 25, 27, .82) !important; }
.navbar, .navbar * { text-shadow: none !important; box-shadow: none !important; }
.navbar-brand #logo { width: 108px; height: auto; max-height: 72px; object-fit: contain; }
.navbar.navbar-theme .navbar-nav > .nav-item > .nav-link { font-size: .73rem; letter-spacing: .045em; padding: 1.1rem .65rem; }
.navbar .nav-link[aria-current="page"] { color: #e9ecef; }
.navbar.navbar-theme .navbar-nav > .nav-item > .nav-book { border: 1px solid #fff; padding: .65rem .85rem; margin-left: .6rem; }
.navbar .dropdown-menu { border-radius: 3px; padding: .65rem 0; max-height: 65vh; overflow-y: auto; }
.navbar .dropdown-item { white-space: normal; padding: .6rem 1.25rem; }
.navbar-toggler { margin: 12px 0; }
.hoverdir-item img { width: 100%; aspect-ratio: 4 / 3; height: auto; object-fit: cover; }
.googlemap img { width: 100% !important; height: auto !important; }
.header-text h1 { font-size: clamp(2.25rem, 5vw, 5rem) !important; line-height: 1.15; }
.header-text { padding-top: 90px; }
.borgo-section { padding: clamp(48px, 7vw, 96px) 0; }
.borgo-section.soft { background: var(--borgo-cream); }
.borgo-eyebrow { text-transform: uppercase; letter-spacing: .2em; font-size: .72rem; font-weight: 700; color: #676b6f; margin-bottom: 14px; }
.borgo-heading { font-size: clamp(1.9rem, 3.5vw, 3.2rem); line-height: 1.2; color: var(--borgo-ink); font-weight: 400; }
.borgo-copy { max-width: 740px; margin: 0 auto 32px; text-align: center; }
.borgo-copy p { color: #4f545a; }
.borgo-button { display: inline-block; padding: 14px 26px; background: var(--borgo-ink); color: #fff; border: 1px solid var(--borgo-ink); border-radius: 3px; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; }
.borgo-button:hover { background: #343a40; color: #fff; text-decoration: none; }
.borgo-button.secondary { background: transparent; color: var(--borgo-ink); }
.borgo-actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 26px; }
.borgo-hero { position: relative; min-height: 100vh; min-height: 100svh; display: flex; align-items: center; padding: 150px 0 80px; background: linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.56)), url('../img/headers/header-agriturismo-ariccia-borgo.jpg') center / cover; color: #fff; text-align: center; }
.borgo-hero .borgo-eyebrow { color: #e9ecef; }
.borgo-hero h1 { color: #fff; font-size: clamp(2.8rem, 6vw, 5.5rem); font-weight: 300; }
.borgo-hero p:last-child { max-width: 600px; margin: 20px auto 0; color: #e9ecef; }
.borgo-gallery { width: 100vw; max-width: none; margin-left: calc(50% - 50vw); }
.gallery-track { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; touch-action: pan-y; }
.is-ready .gallery-track { display: block; overflow: hidden; scroll-snap-type: none; }
.gallery-rail { display: flex; width: max-content; gap: 16px; will-change: transform; }
.gallery-slide { flex: 0 0 clamp(220px, 28vw, 460px); width: clamp(220px, 28vw, 460px); min-width: 0; margin: 0; scroll-snap-align: start; }
.gallery-slide img { display: block; width: 100%; height: clamp(300px, 34vw, 480px); object-fit: cover; user-select: none; -webkit-user-drag: none; }
.borgo-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin-top: 42px; }
.borgo-card { background: #fff; border: 1px solid #dee2e6; border-radius: 4px; overflow: hidden; }
.borgo-card img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.borgo-card-content { padding: 28px; }
.borgo-card h3 { color: var(--borgo-ink); font-weight: 400; }
.borgo-card p { color: #4f545a; }
.borgo-card a { color: #17191b; text-decoration: underline; text-underline-offset: 5px; }
.borgo-booking { text-align: center; background: var(--borgo-cream); }
.borgo-booking p { max-width: 630px; margin: 20px auto; }
.contact-panel { padding: 26px; border: 1px solid #dee2e6; background: var(--borgo-cream); border-radius: 4px; }
.contact-panel p { margin-bottom: 24px; }
.borgo-footer { background: var(--borgo-ink); color: #b6babf; padding-top: 64px; }
.borgo-footer h2 { font-size: 1rem; letter-spacing: .06em; color: #fff; margin-bottom: 20px; }
.borgo-footer p { line-height: 1.8; }
.borgo-footer a { color: #b6babf; }
.borgo-footer a:hover { color: #fff; }
.footer-grid { display: grid; grid-template-columns: 1fr 1fr 1.2fr; gap: 42px; padding-bottom: 48px; }
.footer-links { list-style: none; padding: 0; margin: 0; }
.footer-links li { margin-bottom: 10px; }
.footer-social { display: flex; flex-wrap: wrap; gap: 16px; margin-top: 22px; }
.footer-map { display: flex; flex-direction: column; }
.footer-map iframe { display: block; width: 100%; height: 230px; border: 0; margin-top: auto; border-radius: 3px; }
.footer-bottom { background: #000; padding: 20px 0; font-size: .72rem; }
.footer-bottom .container { display: flex; gap: 16px; justify-content: space-between; flex-wrap: wrap; }
.footer-bottom p { margin: 0; }
.navbar .navbar-collapse.show, .navbar .navbar-collapse.collapsing { background: rgba(23, 25, 27, .9); }
@media (max-width: 991.98px) { .footer-grid { grid-template-columns: 1fr 1fr; } .footer-map { grid-column: 1 / -1; } }
@media (max-width: 1199.98px) {
  .navbar-collapse { max-height: calc(100dvh - 90px); overflow-y: auto; padding-bottom: 20px; }
  .navbar.navbar-theme .navbar-nav > .nav-item > .nav-link { padding: .8rem .5rem; }
  .navbar.navbar-theme .navbar-nav > .nav-item > .nav-book { display: inline-block; margin: 12px 0 0; }
  .navbar .dropdown-menu { max-height: none; }
}
@media (max-width: 575.98px) {
  .borgo-cards { grid-template-columns: 1fr; }
  .borgo-hero { padding: 140px 0 55px; }
  .gallery-slide { flex-basis: 66vw; width: 66vw; }
  .gallery-slide img { height: 340px; max-height: 65vh; }
  .footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .borgo-button { width: 100%; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
