/* Garage Trastevere: complete site styles, loaded together in the document head. */
@font-face { font-family:'Plus Jakarta Sans'; font-style:normal; font-weight:200 800; font-display:swap; src:url('../fonts/local/plusjakartasans-latin.woff2') format('woff2'); }
@font-face { font-family:'Outfit'; font-style:normal; font-weight:100 900; font-display:swap; src:url('../fonts/local/outfit-latin.woff2') format('woff2'); }
:root { --ink:#202520; --dark:#191f1c; --muted:#686e67; --paper:#f8f9f6; --white:#fff; --accent:#de7957; --accent-dark:#a7432b; --line:#dce0d8; --font:'Plus Jakarta Sans',Arial,sans-serif; --display:'Outfit',Arial,sans-serif; --serif:var(--display); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:var(--anchor-offset, 87px); }
body { margin:0; background:var(--paper); color:var(--ink); font:400 1rem/1.7 var(--font); -webkit-font-smoothing:antialiased; }
body.modal-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button, input, textarea { font:inherit; }
button, a, input, textarea, summary { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; }
img { display:block; max-width:100%; height:auto; }
figure, p, h1, h2, h3 { margin:0; }
button { color:inherit; }
a, button { touch-action:manipulation; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
::selection { background:#efad90; color:var(--dark); }
.container { width:min(1320px,calc(100% - 112px)); margin-inline:auto; }
.section { padding-block:110px; }
.eyebrow { font-size:.75rem; font-weight:700; letter-spacing:.18em; line-height:1.5; text-transform:uppercase; }
h1, h2, h3 { font-family:var(--display); font-weight:600; letter-spacing:-.055em; line-height:1.08; }
h2 { font-size:clamp(2.45rem,4vw,3.7rem); }
h2 em, h1 em { font-family:var(--serif); font-weight:400; letter-spacing:-.065em; }
h3 { font-size:1.5rem; }
p { color:var(--muted); }
.eyebrow+h2 { margin-top:23px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:32px; min-height:56px; padding:15px 24px; border:1px solid transparent; background:var(--accent); color:var(--dark); font-size:.875rem; font-weight:700; line-height:1.5; transition:background .2s,transform .2s; }
.button:hover { background:#ef9571; transform:translateY(-2px); }
.button>span, .text-button>span { font-size:1.5rem; font-weight:400; line-height:1; }
.button-small { min-height:46px; padding:11px 17px; gap:23px; font-size:.8125rem; }
.button-dark { background:var(--ink); color:white; }
.button-dark:hover { background:#354238; }
.button-white { background:var(--white); color:var(--ink); }
.button-white:hover { background:var(--paper); }
.text-button { display:inline-flex; gap:22px; align-items:center; color:white; font-size:.875rem; font-weight:600; padding-block:13px; border-bottom:1px solid #ffffff70; transition:gap .2s; }
.text-button:hover { gap:32px; }
.text-dark { color:var(--ink); border-color:var(--ink); }
.skip-link { position:fixed; left:20px; top:10px; max-width:calc(100% - 40px); transform:translateY(calc(-100% - 20px)); z-index:10000; padding:10px 25px; background:white; color:var(--ink); overflow-wrap: normal; }
.skip-link:focus { transform:translateY(0); }
.topline { background:#101612; color:#c6ccc5; font-size:.75rem; }
.topline>.container { display:flex; justify-content:space-between; align-items:center; min-height:37px; }
.topline a:hover { color:white; }
.topline a span { margin-left:8px; }
.topline-divider { opacity:.4; margin-inline:16px; }
.site-header { position:sticky; top:0; background:var(--dark); color:#fff; z-index:50; border-bottom:1px solid #ffffff13; }
.header-inner { display:flex; align-items:center; justify-content:space-between; gap:36px; min-height:96px; }
.brand { flex-shrink:0; }
.brand img { width:175px; height:auto; }
.desktop-nav { display:flex; gap:32px; align-items:center; margin-left:auto; }
.desktop-nav a { font-size:.875rem; color:#dadfd8; padding:12px 0; position:relative; }
.desktop-nav a:hover, .desktop-nav a[aria-current] { color:var(--accent); }
.desktop-nav a[aria-current]:after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--accent); }
.header-actions { display:flex; align-items:center; gap:26px; }
.languages { display:flex; gap:12px; }
.languages a { font-size:.75rem; color:#b3bab3; }
.languages a:hover, .languages a[aria-current] { color:white; }
.languages a[aria-current] { text-decoration:underline; text-underline-offset:6px; }
.menu-toggle { display:none; background:transparent; border:0; width:44px; height:44px; padding:8px; }
.menu-toggle span { display:block; height:1px; background:white; margin:8px 0; transition:transform .2s; }
.mobile-nav[hidden] { display:none; }
.mobile-nav { padding:16px 28px 32px; background:var(--dark); display:grid; gap:12px; max-height:calc(100dvh - 80px); overflow:auto; }
.mobile-nav>a:not(.button) { font:500 1.5rem var(--display); padding-block:10px; }
.hero { position:relative; min-height:670px; background:#262e27; color:#fff; overflow:hidden; }
.hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 52%; }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(15,24,17,.92) 0%,rgba(16,24,18,.74) 34%,rgba(16,24,18,.2) 72%,rgba(16,24,18,.15) 100%),linear-gradient(0deg,rgba(11,19,13,.4),transparent 50%); }
.hero-inner { position:relative; padding-block:66px 28px; }
.hero-eyebrow { color:#e1e6dd; display:flex; align-items:center; gap:13px; }
.hero-eyebrow>span { height:1px; width:34px; background:var(--accent); }
.hero h1 { font-size:clamp(4.8rem,7.65vw,7rem); font-weight:500; line-height:.99; letter-spacing:-.06em; margin-block:34px 24px; max-width:950px; }
.hero h1 em { color:#efa986; }
.hero-lead { color:#dde1d8; max-width:410px; font-size:1rem; line-height:1.7; }
.hero-actions { display:flex; align-items:center; gap:30px; margin-top:30px; }
.hero-bottom { display:flex; justify-content:space-between; margin-top:61px; padding-top:22px; border-top:1px solid #ffffff36; color:#d2d8cf; font-size:.75rem; letter-spacing:.03em; }
.hero-scroll { display:inline-flex; gap:18px; align-items:center; min-width:0; max-width:100%; min-height:44px; padding-block:8px; font-size:.875rem; line-height:1.5; }
.hero-scroll > span:first-child { min-width:0; text-decoration:underline; text-decoration-color:#ffffff60; text-underline-offset:.25em; text-decoration-thickness:1px; }
.hero-scroll > span[aria-hidden] { flex-shrink:0; }
.hero-scroll:is(:hover, :focus-visible) { color:#ffd8b8; }
.hero-scroll:is(:hover, :focus-visible) > span:first-child { text-decoration-color:currentColor; }
.facts { background:white; border-bottom:1px solid var(--line); }
.facts-inner { display:grid; grid-template-columns:1fr 1fr 1fr 1.3fr; min-height:134px; align-items:center; }
.facts-inner>div { display:flex; align-items:center; gap:20px; padding-right:28px; }
.facts-inner>div+div { border-left:1px solid var(--line); padding-left:34px; }
.facts strong { font:500 2.8rem var(--display); letter-spacing:-.08em; }
.facts strong span { font-size:1.45rem; }
.facts p { font-size:.8125rem; line-height:1.5; max-width:105px; }
.facts a { display:flex; align-items:center; justify-content:flex-end; gap:15px; font-size:.875rem; font-weight:600; }
.facts a>span { font-size:1.5rem; margin-left:5px; }
.facts a:hover { color:var(--accent-dark); }
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; }
.about-photos { position:relative; padding:0 65px 120px 0; }
.about-primary img { width:100%; aspect-ratio:1/1.12; object-fit:cover; object-position:47% center; }
.about-primary figcaption { font-size:.6875rem; margin-top:12px; letter-spacing:.03em; color:var(--muted); }
.about-secondary { position:absolute; bottom:0; right:0; width:61%; border:9px solid var(--paper); }
.about-secondary img { width:100%; aspect-ratio:1.23; object-fit:cover; }
.photo-label { position:absolute; top:34px; left:-22px; background:var(--accent); padding:15px 21px; display:flex; align-items:center; gap:15px; }
.parking-symbol { font:600 2rem/1 var(--display); border:1px solid currentColor; padding:5px 9px; }
.photo-label>span:last-child { font-size:.625rem; line-height:1.7; letter-spacing:.16em; }
.about-copy>p:not(.eyebrow) { margin-top:27px; font-size:.9375rem; line-height:1.85; }
.about-copy .eyebrow { color:var(--accent-dark); }
.service-line { display:flex; gap:24px; margin-block:27px 19px; padding-top:24px; border-top:1px solid var(--line); }
.service-line h3 { font-size:1.125rem; letter-spacing:-.03em; margin:2px 0 10px; }
.service-line p { font-size:.875rem; line-height:1.7; }
.service-number { font:500 1.7rem var(--display); color:var(--accent-dark); white-space:nowrap; }
.rates-section { background:var(--dark); color:white; }
.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:60px; margin-bottom:52px; }
.section-heading>p { max-width:345px; color:#b9c1b8; font-size:.9375rem; }
.rates-section .eyebrow { color:#d89a7e; }
.rates-section h2 em { color:#e9a17f; }
.rate-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid #ffffff35; }
.rate-card { display:block; padding:28px 34px 26px; transition:background .2s; }
.rate-card+.rate-card { border-left:1px solid #ffffff35; }
.rate-card:hover { background:#2c3830; }
.rate-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:30px; }
.rate-card h3 { font-size:2rem; margin-bottom:12px; }
.rate-card>p { font-size:.875rem; color:#b9c1b8; min-height:48px; }
.rate-price { margin:34px 0 26px; display:flex; align-items:baseline; gap:5px; flex-wrap:wrap; }
.rate-price>span:first-child { flex-basis:100%; font-size:.75rem; color:#b9c1b8; margin-bottom:7px; }
.rate-price strong { font:500 3.6rem/1 var(--display); letter-spacing:-.075em; }
.rate-price strong span { font-size:1.5rem; letter-spacing:-.05em; }
.rate-price>span:last-child { font-size:.75rem; color:#b9c1b8; }
.rate-link { display:flex; align-items:center; justify-content:space-between; border-top:1px solid #ffffff35; padding-top:17px; font-size:.8125rem; }
.rate-link>span { font-size:1.4rem; }
.rates-note { font-size:.8125rem; margin-top:22px; color:#bac3b9; }
.payment-notice { display:flex; gap:23px; align-items:flex-start; padding:25px 28px; border:1px solid #d6d9cf; border-left:3px solid var(--accent); margin-top:42px; background:#f0f2eb; }
.notice-icon { display:grid; place-items:center; flex-shrink:0; width:25px; height:25px; border:1px solid #8c9987; border-radius:50%; font:italic 1rem var(--serif); margin-top:2px; }
.payment-notice h2 { font-family:var(--font); font-size:.9375rem; letter-spacing:0; line-height:1.5; margin-bottom:5px; }
.payment-notice p { font-size:.8125rem; line-height:1.75; color:#545e51; }
.reviews-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px; margin-top:45px; }
.review { display:flex; flex-direction:column; border-top:1px solid var(--line); padding-top:25px; }
.quote-mark { font:4.5rem/.9 var(--serif); color:var(--accent-dark); height:49px; }
.review blockquote { margin:12px 0 28px; font-size:1rem; line-height:1.8; }
.review figcaption { display:flex; align-items:center; gap:12px; margin-top:auto; color:var(--muted); font-size:.75rem; }
.customer-avatar { display:grid; place-items:center; width:32px; height:32px; background:#e5e9df; border-radius:50%; color:#66725f; font-size:.75rem; }
.location-section { background:#e9ede5; }
.location-grid { display:grid; grid-template-columns:1fr 1.08fr; gap:70px; align-items:center; }
.location-copy .eyebrow { color:#5d6957; }
.address-large { font:500 1.45rem/1.4 var(--display); letter-spacing:-.04em; margin-top:32px; }
.address-large>span { display:block; font:400 .875rem var(--font); letter-spacing:0; color:var(--muted); margin-top:8px; }
.location-points { list-style:none; padding:0; margin:25px 0 30px; }
.location-points li { font-size:.875rem; margin:9px 0; padding-left:19px; position:relative; }
.location-points li:before { content:'·'; position:absolute; left:1px; color:var(--accent-dark); font-size:1.6rem; line-height:1; }
.location-details { --details-padding:clamp(18px,2.3vw,26px); margin-top:25px; min-width:0; border:1px solid #dcd3c4; border-radius:12px; background:#fffdf8; box-shadow:0 8px 24px #42371c08; font-size:1rem; overflow-wrap: normal; }
.location-details summary { display:flex; align-items:center; justify-content:space-between; gap:16px; cursor:pointer; padding:18px var(--details-padding); border-radius:11px; color:#243c2c; font-weight:650; line-height:1.6; list-style:none; transition:background .2s ease; }
.location-details summary::-webkit-details-marker { display:none; }
.location-details summary:hover { background:#f7f1e7; }
.location-details[open] summary { border-bottom:1px solid #e8dfd1; border-radius:11px 11px 0 0; }
.location-details-toggle { position:relative; flex:0 0 30px; width:30px; height:30px; border:1px solid #dfcfb9; border-radius:50%; background:#f4ecdf; color:#8c4a32; }
.location-details-toggle::before, .location-details-toggle::after { content:""; position:absolute; width:12px; height:2px; left:50%; top:50%; background:currentColor; border-radius:1px; transform:translate(-50%,-50%); }
.location-details-toggle::after { transform:translate(-50%,-50%) rotate(90deg); transition:transform .2s ease; }
.location-details[open] .location-details-toggle::after { transform:translate(-50%,-50%) rotate(0); }
.location-details-content { padding:var(--details-padding); }
.location-details p { margin:0; }
.location-details-intro { line-height:1.8; }
.location-details-intro strong { color:#243c2c; font-weight:650; }
.location-scenarios { list-style:none; margin:20px 0 0; padding:0; }
.location-scenarios li { display:grid; grid-template-columns:34px minmax(0,1fr); align-items:start; gap:14px; padding-block:15px; border-top:1px solid #e9e0d3; }
.location-scenarios p { min-width:0; color:#344b39; line-height:1.75; }
.location-scenario-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:8px; background:#f2e9da; color:#935038; }
.location-scenario-icon svg { display:block; width:20px; height:20px; }
.location-details .location-details-closing { display:flex; align-items:flex-start; gap:12px; margin:10px calc(var(--details-padding) * -1) calc(var(--details-padding) * -1); padding:18px var(--details-padding); border-radius:0 0 11px 11px; background:#243c2c; color:#fff8ed; font-weight:550; line-height:1.7; }
.location-details-closing svg { flex:0 0 22px; width:22px; height:22px; margin-top:3px; color:#edb18e; }
.location-details-closing span { min-width:0; }
@media (max-width:380px) {
  .location-details { --details-padding:16px; }
  .location-scenarios li { grid-template-columns:28px minmax(0,1fr); gap:10px; }
  .location-scenario-icon { width:28px; height:28px; border-radius:6px; }
  .location-scenario-icon svg { width:18px; height:18px; }
}
.map-panel { position:relative; align-self:stretch; min-height:530px; background:#d8dfd2; overflow:hidden; }
.map-panel iframe { width:100%; height:100%; position:absolute; inset:0; min-height:530px; }
.map-address { position:absolute; bottom:24px; left:24px; right:24px; padding:20px; background:white; display:flex; align-items:center; gap:15px; box-shadow:0 8px 35px #1b28151c; }
.map-address .parking-symbol { background:var(--ink); color:white; font-size:1.6rem; padding:10px 12px; }
.map-address>span:nth-child(2) { font-size:.8125rem; color:var(--muted); }
.map-address strong { display:block; color:var(--ink); font-weight:600; font-size:.9375rem; }
.closing { background:#b45337; color:#fff; padding-block:73px; }
.closing-inner { display:flex; align-items:center; justify-content:space-between; gap:70px; }
.closing h2 { font-size:clamp(2.5rem,4.3vw,4rem); }
.closing-inner>div { max-width:340px; }
.closing p { color:#ffe0d4; font-size:.9375rem; margin-bottom:24px; }
.site-footer { background:var(--dark); color:#e8ede4; padding-top:76px; overflow:hidden; }
.footer-grid { display:grid; grid-template-columns:1.4fr 1fr .65fr; gap:100px; }
.footer-brand>a { display:inline-block; margin-bottom:27px; }
.footer-brand img { width:205px; }
.footer-brand p { font-size:.8125rem; line-height:1.8; color:#a9b3a5; max-width:360px; }
.site-footer h2 { font-family:var(--font); font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; margin:5px 0 24px; line-height:1.5; }
.footer-contact { display:flex; flex-direction:column; align-items:flex-start; gap:5px; font-size:.875rem; }
.footer-contact h2 { margin-bottom:14px; }
.footer-contact p { font-size:.875rem; color:#a9b3a5; margin-bottom:14px; }
.footer-contact a { overflow-wrap:normal; }
.footer-contact a:hover, .footer-bottom a:hover { color:var(--accent); }
.whatsapp-link { display:flex; gap:8px; align-items:center; margin-block:5px; }
.footer-partners>a { display:inline-block; flex:0 0 auto; max-width:100%; padding:0; border:0; background:transparent; line-height:0; }
.footer-partners img { width:auto; max-width:100%; height:auto; }
.footer-hours { margin-top:34px; display:flex; flex-direction:column; }
.footer-hours strong { font:400 4.5rem/1 var(--display); letter-spacing:-.08em; }
.footer-hours strong span { font-size:2rem; }
.footer-hours>span { font-size:.75rem; color:#a9b3a5; margin-top:8px; }
.footer-bottom { padding-top:25px; margin-top:50px; border-top:1px solid #ffffff24; font-size:.6875rem; color:#abb6a5; line-height:2; }
.footer-bottom img { display:inline-block; vertical-align:middle; }
.footer-wordmark { font:600 clamp(3rem,11.9vw,11rem)/1.2 var(--display); letter-spacing:-.055em; color:#ffffff0e; margin:30px -7px -12px; text-align:center; white-space:nowrap; }
@media(min-width:1600px) {
  .hero { min-height:750px; }
  .hero-inner { padding-top:90px; }
  .hero h1 { font-size:7.5rem; }
  .hero-bottom { margin-top:80px; }
}
@media(max-width:1200px) {
  .container { width:calc(100% - 72px); }
  .header-inner { gap:25px; }
  .desktop-nav { gap:24px; }
  .header-actions { gap:20px; }
  .brand img { width:150px; }
  .header-book { gap:12px; padding-inline:13px; }
  .about-grid { gap:60px; }
  .footer-grid { gap:55px; }
  .facts-inner>div { gap:15px; padding-right:18px; }
  .facts-inner>div+div { padding-left:24px; }
  .facts a { font-size:.8125rem; gap:9px; }
  .facts strong { font-size:2.5rem; }
  .location-grid { gap:45px; }
  .rate-card { padding-inline:25px; }
}
@media(max-width:1000px) {
  .desktop-nav { gap:20px; }
  .header-book { display:none; }
  .hero { min-height:650px; }
  .hero h1 { font-size:6rem; }
  .facts-inner { grid-template-columns:repeat(3,1fr); min-height:122px; }
  .facts-inner>a { display:none; }
  .facts-inner>div { justify-content:center; }
  .about-grid { gap:45px; }
  .about-photos { padding-right:30px; padding-bottom:100px; }
  .about-secondary { width:75%; }
  .about-primary img { aspect-ratio:1/1.4; }
  .about-copy>p:not(.eyebrow) { font-size:.875rem; }
  .service-line { gap:15px; }
  .section { padding-block:80px; }
  .section-heading { gap:40px; }
  .section-heading>p { max-width:285px; }
  .rate-card h3 { font-size:1.7rem; }
  .rate-price strong { font-size:3rem; }
  .rate-grid { grid-template-columns:repeat(3,1fr); }
  .rate-card { padding-inline:22px; }
  .reviews-grid { gap:28px; }
  .location-grid { gap:35px; }
  .closing-inner { gap:45px; }
  .footer-grid { gap:45px; grid-template-columns:1.2fr 1fr; }
  .footer-partners { grid-column:1/-1; display:flex; align-items:center; gap:30px; }
  .footer-partners h2 { margin:0; }
  .footer-hours { margin:0 0 0 auto; flex-direction:row; align-items:center; gap:25px; }
  .footer-hours strong { font-size:3rem; }
  .footer-hours>span { margin:0; }
  .hero h1 { max-width:800px; }
}
@media(max-width:760px) {
  .container { width:calc(100% - 40px); }
  .topline>.container { justify-content:center; min-height:30px; }
  .topline>.container>a { display:none; }
  .topline { font-size:.6875rem; }
  .topline-divider { margin-inline:8px; }
  .header-inner { min-height:78px; gap:18px; }
  .brand img { width:138px; }
  .desktop-nav { display:none; }
  .header-actions { gap:20px; }
  .menu-toggle { display:block; }
  .languages { gap:11px; }
  .languages a { font-size:.75rem; }
  .hero { min-height:640px; }
  .hero-inner { padding-block:44px 24px; }
  .hero-image { object-position:65% center; }
  .hero-shade { background:linear-gradient(90deg,#0f1814d9,#1421194d),linear-gradient(0deg,#0f1715b0,transparent 70%); }
  .hero-eyebrow { font-size:.625rem; letter-spacing:.13em; gap:9px; }
  .hero-eyebrow>span { width:23px; }
  .hero h1 { font-size:clamp(3.7rem,12vw,5.7rem); margin-block:34px 24px; line-height:1.02; }
  .hero-lead { font-size:.9375rem; max-width:350px; }
  .hero-actions { gap:23px; flex-wrap:wrap; margin-top:27px; }
  .hero-actions .button { padding-inline:18px; gap:22px; }
  .hero-actions .text-button { font-size:.8125rem; gap:16px; }
  .hero-bottom { margin-top:59px; font-size:.6875rem; }
  .hero-bottom>span:last-child { display:none; }
  .facts-inner { min-height:110px; }
  .facts-inner>div { flex-direction:column; gap:4px; padding:0 9px; }
  .facts-inner>div+div { padding-left:9px; }
  .facts strong { font-size:2rem; line-height:1.2; }
  .facts strong span { font-size:1rem; }
  .facts p { font-size:.6875rem; text-align:center; }
  .section { padding-block:65px; }
  h2 { font-size:clamp(2.4rem,7.7vw,3.4rem); }
  .about-grid { grid-template-columns:1fr; gap:45px; }
  .about-photos { margin-left:12px; padding-right:50px; padding-bottom:60px; }
  .about-primary img { aspect-ratio:1.28; object-position:center 60%; }
  .about-secondary { width:49%; border-width:6px; }
  .about-secondary img { aspect-ratio:1.2; }
  .photo-label { top:25px; left:-12px; padding:12px 15px; }
  .photo-label .parking-symbol { font-size:1.5rem; }
  .about-copy>p:not(.eyebrow) { font-size:1rem; }
  .service-line p { font-size:.9375rem; }
  .service-line { margin-top:24px; }
  .section-heading { display:block; margin-bottom:35px; }
  .section-heading>p { max-width:100%; margin-top:25px; font-size:.9375rem; }
  .rate-grid { grid-template-columns:1fr; }
  .rate-card { padding:23px; }
  .rate-card+.rate-card { border-left:0; border-top:1px solid #ffffff35; }
  .rate-top { margin-bottom:10px; }
  .rate-card h3 { font-size:2rem; }
  .rate-card>p { min-height:0; }
  .rate-price { margin-block:22px; }
  .rate-price strong { font-size:3.2rem; }
  .payment-notice { margin-top:30px; gap:15px; padding:20px; }
  .payment-notice p { font-size:.8125rem; }
  .reviews-grid { grid-template-columns:1fr; gap:30px; margin-top:30px; }
  .review blockquote { margin:5px 0 20px; font-size:1rem; }
  .review { padding-top:20px; }
  .quote-mark { height:40px; font-size:4rem; }
  .location-grid { grid-template-columns:1fr; gap:40px; }
  .map-panel, .map-panel iframe { min-height:390px; }
  .map-address { inset:auto 15px 15px; padding:16px; }
  .location-details { font-size:.875rem; }
  .closing { padding-block:55px; }
  .closing-inner { display:block; }
  .closing-inner>div { margin-top:26px; max-width:100%; }
  .closing h2 { font-size:2.7rem; }
  .site-footer { padding-top:55px; }
  .footer-grid { grid-template-columns:1fr; gap:34px; }
  .footer-brand p { max-width:100%; font-size:.875rem; }
  .footer-brand img { width:175px; }
  .footer-contact { font-size:.9375rem; gap:8px; }
  .footer-contact p { font-size:.9375rem; }
  .footer-partners { flex-wrap:wrap; gap:20px; }
  .footer-partners h2 { flex-basis:100%; }
  .footer-hours { gap:15px; }
  .footer-hours>span { max-width:95px; }
  .footer-bottom { font-size:.75rem; margin-top:35px; }
  .footer-wordmark { font-size:11.65vw; margin-block:25px -5px; }
  .eyebrow { font-size:.6875rem; }
  .eyebrow+h2 { margin-top:18px; }
}
@media(max-width:380px) {
  .container { width:calc(100% - 32px); }
  .header-actions { gap:10px; }
  .languages { gap:8px; }
  .hero-actions { gap:13px; }
  .hero-actions .button { font-size:.8125rem; gap:13px; }
  .hero-actions .text-button { gap:8px; font-size:.75rem; }
  .hero h1 { font-size:3.65rem; }
  .hero-lead { max-width:305px; }
  .hero { min-height:635px; }
}
.subhero { position:relative; overflow:hidden; background:var(--dark); color:white; padding-block:65px 57px; }
.subhero>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 52%; opacity:.27; }
.subhero:after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,#172018b3,transparent); }
.subhero>.container { position:relative; z-index:1; }
.subhero .eyebrow { color:#edb097; }
.subhero h1 { font-size:clamp(3.1rem,5.5vw,5.2rem); max-width:1000px; margin-block:25px; }
.subhero h1 em { color:#e9a17f; }
.subhero-caption { font-size:.875rem; color:#d3dbce; }
.garage-intro { display:grid; grid-template-columns:1fr 1fr; gap:90px; align-items:start; }
.garage-intro h2 { font-size:2.75rem; }
.prose { margin-block:25px 30px; }
.prose p { margin-bottom:18px; font-size:.9375rem; }
.prose u { font-weight:700; text-decoration:none; display:inline-block; color:var(--ink); font-size:.8125rem; letter-spacing:.05em; margin-top:9px; }
.garage-feature { position:relative; padding-top:10px; }
.garage-feature>img { width:100%; aspect-ratio:1.5; object-fit:cover; }
.garage-feature>img:last-child { margin-top:60px; max-width:83%; margin-left:auto; }
.garage-feature-label { position:absolute; top:40%; left:-30px; background:var(--accent); padding:28px 36px; z-index:2; }
.garage-feature-label strong { font:500 3.5rem/1 var(--display); letter-spacing:-.07em; }
.garage-feature-label p { color:var(--ink); font-size:.8125rem; margin-top:10px; }
.gallery-section { background:#e9ede5; }
.gallery-section .section-heading>p { color:var(--muted); }
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.gallery-item { position:relative; display:block; overflow:hidden; background:#d9dfd3; }
.gallery-item img { width:100%; aspect-ratio:1.32; object-fit:cover; transition:transform .5s; }
.gallery-item:hover img { transform:scale(1.04); }
.gallery-item>span { position:absolute; left:0; bottom:0; right:0; padding:20px; display:flex; align-items:center; justify-content:space-between; background:linear-gradient(transparent,#101a12b0); color:white; font-size:.75rem; letter-spacing:.1em; }
.gallery-item>span>span:last-child { font-size:1.6rem; }
.lightbox { position:fixed; inset:0; width:100%; max-width:none; height:100dvh; max-height:none; margin:0; padding:70px 80px 30px; border:0; background:#101613f5; color:white; overflow:hidden; }
.lightbox[open] { display:flex; align-items:center; justify-content:center; gap:25px; }
.lightbox::backdrop { background:#101613; }
.lightbox figure { display:flex; flex-direction:column; align-items:center; max-width:1100px; max-height:100%; min-width:0; overflow:auto; cursor:grab; user-select:none; -webkit-user-select:none; touch-action:pan-y pinch-zoom; }
.lightbox figure.is-dragging { cursor:grabbing; }
.lightbox figure img { width:auto; max-width:100%; max-height:calc(100dvh - 150px); flex-shrink:0; object-fit:contain; }
.lightbox figcaption { flex-shrink:0; font-size:.875rem; color:#d4dacd; text-align:center; margin-top:15px; overflow-wrap: normal; }
.lightbox button { display:grid; place-items:center; width:48px; height:48px; padding:0; line-height:1; flex-shrink:0; border:1px solid #ffffff55; background:#1b241d; color:white; font-size:1.5rem; border-radius:50%; }
.lightbox button:hover { background:var(--accent); color:var(--dark); }
.lightbox-close { position:absolute; right:30px; top:20px; }
.lightbox-close svg { display:block; width:24px; height:24px; pointer-events:none; }
.tariff-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-bottom:1px solid var(--line); gap:30px; margin-bottom:55px; }
.tariff-tabs a { display:flex; gap:20px; align-items:center; padding:0 0 21px; font-size:1.125rem; font-family:var(--display); letter-spacing:-.03em; border-bottom:3px solid transparent; }
.tariff-tabs a>span { font:.75rem var(--font); letter-spacing:.1em; color:var(--muted); }
.tariff-tabs a:hover { color:var(--accent-dark); }
.tariff-tabs a[aria-current] { border-color:var(--accent-dark); color:var(--accent-dark); }
.tariff-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:75px; align-items:start; }
.tariff-layout h2 { font-size:2.5rem; }
.tariff-intro { font-size:.9375rem; margin-block:22px; }
.hourly-notice { padding:17px 20px; border-left:3px solid var(--accent); background:#f0e9df; color:#713b2a; font-size:.875rem; line-height:1.65; margin-block:25px; }
.tariff-table-wrap { margin-top:34px; }
.tariff-table { width:100%; border-collapse:collapse; table-layout:auto; }
.tariff-table caption { text-align:left; font-size:.8125rem; letter-spacing:.08em; font-weight:700; text-transform:uppercase; padding-bottom:17px; color:var(--ink); }
.tariff-table th, .tariff-table td { padding:23px 18px; text-align:left; border-bottom:1px solid var(--line); }
.tariff-table thead th { padding-block:15px; background:#e9ede5; font-size:.8125rem; color:#52604b; font-weight:500; line-height:1.5; }
.tariff-table tbody th { font-size:.9375rem; font-weight:500; line-height:1.6; }
.tariff-table td { font:600 1.25rem var(--display); letter-spacing:-.045em; white-space:nowrap; }
.vehicle-note { display:block; font-size:.75rem; font-weight:400; color:var(--muted); margin-top:5px; }
.tariff-aside { background:#e9ede5; padding:32px; position:sticky; top:120px; }
.tariff-aside>.parking-symbol { display:inline-block; background:var(--ink); color:white; font-size:1.4rem; margin-bottom:25px; }
.tariff-aside h3 { font-size:2rem; line-height:1.2; margin-bottom:17px; }
.tariff-aside>p { font-size:.875rem; }
.tariff-hours { display:flex; align-items:center; gap:22px; margin-block:28px; padding-block:22px; border-block:1px solid #c8d0c1; }
.tariff-hours strong { font:500 3rem/1 var(--display); letter-spacing:-.08em; }
.tariff-hours strong span { font-size:1.5rem; }
.tariff-hours>span { font-size:.75rem; line-height:1.5; max-width:85px; }
.tariff-aside .button { width:100%; font-size:.8125rem; padding-inline:18px; gap:12px; }
.aside-phone { display:block; font-size:.75rem; color:var(--muted); margin-top:25px; }
.aside-phone strong { display:block; color:var(--ink); font-weight:500; font-size:1.0625rem; margin-top:4px; }
.contact-grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr); gap:95px; align-items:start; }
.contact-phone { display:block; font-size:1.3rem; letter-spacing:-.03em; line-height:1.8; }
.contact-email { font-size:.9375rem; overflow-wrap:normal; }
.booking-panel { padding:40px; background:white; border:1px solid var(--line); }
.booking-panel h2 { font-size:2.5rem; }
.booking-panel .eyebrow { color:var(--accent-dark); }
.form-intro { font-size:.875rem; margin-block:20px 30px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:23px 20px; }
.field { min-width:0; }
.field-wide { grid-column:1/-1; }
.field label { display:block; font-size:.875rem; line-height:1.5; margin-bottom:9px; color:#404a3b; }
.field input, .field textarea { width:100%; border:1px solid #c8d0c1; border-radius:0; outline:0; padding:13px 14px; background:#f8f9f6; font-size:1rem; color:var(--ink); transition:border-color .2s,box-shadow .2s; }
.field input { height:51px; }
.field textarea { display:block; resize:vertical; min-height:150px; }
.field input:focus, .field textarea:focus { border-color:var(--accent-dark); box-shadow:0 0 0 3px #de795720; background:white; }
.privacy-consent { font-size:.8125rem; line-height:1.8; margin-block:23px; color:var(--muted); }
.privacy-consent input { width:19px; height:19px; margin:0 7px 0 0; vertical-align:middle; accent-color:var(--accent-dark); }
.privacy-consent label { cursor:pointer; }
.privacy-consent a { color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.booking-form>.button { min-width:210px; }
.booking-form>.button:disabled { opacity:.6; cursor:wait; transform:none; }
.form-status { padding:16px 20px; margin-bottom:22px; background:#f4e6df; color:#7e3828; font-size:.875rem; border-left:3px solid var(--accent); }
.form-status[data-state="success"] { background:#e9f0df; color:#385229; border-color:#657d52; }
.form-status[hidden] { display:none; }
.request-note { font-size:.75rem; line-height:1.6; margin-top:16px; }
@media(max-width:1100px) {
  .garage-intro { gap:55px; }
  .tariff-layout { gap:40px; grid-template-columns:minmax(0,1fr) 255px; }
  .tariff-aside { padding:25px; }
  .contact-grid { gap:45px; }
  .booking-panel { padding:30px; }
  .gallery-grid { gap:15px; }
  .tariff-table th, .tariff-table td { padding-inline:12px; }
}
@media(max-width:900px) {
  .contact-grid { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:35px; }
  .form-grid { grid-template-columns:1fr; }
  .field-wide { grid-column:auto; }
  .booking-panel { padding:25px; }
  .booking-panel h2 { font-size:2rem; }
  .tariff-layout { grid-template-columns:minmax(0,1fr); }
  .tariff-aside { position:static; display:grid; grid-template-columns:1fr 1fr; gap:15px 35px; align-items:center; }
  .tariff-aside>.parking-symbol { display:none; }
  .tariff-aside h3 { margin:0; }
  .tariff-aside>p { margin:0; }
  .tariff-hours { margin:0; border:0; padding:0; }
  .aside-phone { margin:0; }
  .tariff-aside .button { max-width:280px; }
  .garage-feature-label { padding:22px; left:-20px; }
  .garage-feature-label strong { font-size:2.7rem; }
  .garage-intro h2 { font-size:2.3rem; }
}
@media(max-width:760px) {
  .subhero { padding-block:45px 40px; }
  .subhero h1 { font-size:clamp(2.65rem,9vw,4rem); line-height:1.1; margin-block:24px; }
  .subhero-caption { font-size:.8125rem; }
  .garage-intro { grid-template-columns:1fr; gap:35px; }
  .garage-intro h2 { font-size:2.5rem; }
  .prose p { font-size:1rem; }
  .garage-feature-label { top:39%; left:0; padding:22px 28px; }
  .garage-feature>img:last-child { margin-top:40px; }
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .gallery-item img { aspect-ratio:1; }
  .gallery-item>span { padding:12px; font-size:.6875rem; }
  .lightbox { padding:65px 15px 95px; }
  .lightbox figure img { max-height:calc(100dvh - 210px); }
  .lightbox .lightbox-prev, .lightbox .lightbox-next { position:absolute; bottom:25px; }
  .lightbox-prev { left:calc(50% - 62px); }
  .lightbox-next { right:calc(50% - 62px); }
  .lightbox-close { right:15px; top:15px; }
  .lightbox figcaption { font-size:.8125rem; }
  .tariff-tabs { gap:15px; margin-bottom:40px; }
  .tariff-tabs a { font-size:1rem; gap:8px; padding-bottom:15px; }
  .tariff-tabs a>span { font-size:.6875rem; }
  .tariff-layout h2 { font-size:2.25rem; }
  .tariff-intro { font-size:.9375rem; }
  .tariff-table td { font-size:1.125rem; }
  .tariff-table tbody th { font-size:.875rem; }
  .tariff-table thead th { font-size:.75rem; }
  .tariff-table th, .tariff-table td { padding:18px 10px; }
  .vehicle-note { font-size:.75rem; }
  .tariff-aside { padding:25px; gap:20px; }
  .tariff-aside h3 { font-size:1.7rem; }
  .tariff-aside .button { font-size:.75rem; padding-inline:12px; gap:8px; }
  .tariff-aside>p { font-size:.8125rem; }
  .tariff-hours { gap:15px; }
  .tariff-hours strong { font-size:2.5rem; }
  .contact-grid { grid-template-columns:1fr; gap:35px; }
  .booking-panel { padding:27px 20px; }
  .booking-panel h2 { font-size:2.2rem; }
  .form-grid { gap:21px; }
  .field label { font-size:.8755rem; }
  .request-note { font-size:.8125rem; }
  .tariff-section .payment-notice { margin-top:40px; }
  .hourly-notice { font-size:.875rem; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(4.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-4.5px) rotate(-45deg); }
}
@media(max-width:760px) {
  .tariff-tabs a { flex-direction:column; align-items:flex-start; gap:7px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *:before, *:after { animation:none!important; transition:none!important; }
}
/* Keep words whole in every language; wrap at normal word boundaries. */
html { -webkit-hyphens: none; -ms-hyphens: none; hyphens: none; word-break: normal; overflow-wrap: normal; }
:root { --ink: #202721; --dark: #18221c; --paper: #fafaf7; --accent: #e7a07c; --accent-dark: #98432c; --muted: #5c655c; --line: #dce1d6; --page-gutter: clamp(20px, 4vw, 76px); }
body { line-height: 1.75; }
.container { width: min(1360px, calc(100% - var(--page-gutter) * 2)); }
.section { padding-block: clamp(72px, 8vw, 124px); }
h1, h2, h3 { text-wrap: balance; }
h2 { font-size: clamp(2.35rem, 4.15vw, 4.1rem); line-height: 1.13; letter-spacing: -.055em; }
h1 em, h2 em { letter-spacing: -.05em; }
.eyebrow { font-size: .75rem; letter-spacing: .16em; }
.about-grid > *, .location-grid > *, .footer-grid > *, .contact-grid > *, .garage-intro > *, .tariff-layout > * { min-width: 0; }
.button { min-height: 56px; border-radius: 7px; padding-inline: 25px; font-size: .875rem; gap: 26px; }
.button > span { display: inline-block; transition: transform .22s ease; }
.button:hover { background: #f0b08e; transform: translateY(-2px); box-shadow: 0 8px 22px #101a1210; }
.button:hover > span { transform: translate(2px, -2px); }
.button:hover > .arrow-right { transform: translateX(2px); }
.button-dark { background: var(--dark); color: white; }
.button-dark:hover { background: #334636; }
.button-white { background: white; }
.button-white:hover { background: #fff1e7; }
.text-button { font-size: .9375rem; min-height: 48px; gap: 24px; }
.text-button:hover { gap: 24px; color: var(--accent); }
.text-dark:hover { color: var(--accent-dark); }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #c66643; outline-offset: 5px; }
/* Quiet, compact navigation with the original, unmodified logo. */
.topline { background: #0d160f; }
.topline > .container { min-height: 36px; gap: 20px; }
.site-header { background: #131d17f5; backdrop-filter: blur(16px); border-bottom-color: #ffffff18; }
.header-inner { min-height: 96px; gap: 28px; }
.brand { display: block; padding: 7px 10px; border-radius: 8px; background: #000; }
.brand img { width: 164px; }
.desktop-nav { flex-wrap: wrap; gap: 0 clamp(22px, 2.8vw, 40px); }
.desktop-nav a { font-size: .9375rem; }
.header-actions { min-width: 0; gap: 23px; }
.languages { flex-wrap: wrap; justify-content: center; gap: 0 2px; }
.languages a { display: grid; place-items: center; min-width: 32px; min-height: 40px; font-size: .75rem; border-radius: 4px; }
.languages a:hover { background: #ffffff0e; }
.languages a[aria-current] { text-underline-offset: 7px; }
.header-book { padding: 12px 18px; min-height: 48px; font-size: .8125rem; gap: 20px; }
.menu-toggle { flex-shrink: 0; border: 1px solid #ffffff30; border-radius: 7px; }
.menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(4.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-4.5px) rotate(-45deg); }
.mobile-nav { position: absolute; inset: 100% 0 auto; padding: 24px var(--page-gutter) 30px; border-bottom: 1px solid #ffffff30; box-shadow: 0 24px 35px #07110925; max-height: calc(100dvh - 118px); }
.mobile-nav > a:not(.button) { padding-block: 13px; border-bottom: 1px solid #ffffff18; font-size: 1.35rem; }
.mobile-nav > a[aria-current] { color: var(--accent); }
.mobile-nav .button { margin-top: 12px; }
/* Photographic opening: the avenue and the actual garage entrance. */
.hero { min-height: 710px; }
.hero-image { object-position: 50% 56%; }
.hero-shade { background: linear-gradient(90deg, #0e1b12eb 0%, #142219b0 42%, #14221922 80%),
              linear-gradient(0deg, #101d16ba, transparent 60%); }
.hero-inner { padding-block: 78px 28px; }
.hero h1 { font-size: clamp(4.4rem, 7.8vw, 7.6rem); line-height: 1.015; letter-spacing: -.065em; max-width: 72%; margin-block: 34px 28px; }
.hero h1 em { color: #efab87; }
.hero-lead { max-width: 455px; font-size: 1.0625rem; line-height: 1.75; color: #e2e8df; }
.hero-actions { gap: 30px; margin-top: 32px; }
.hero-bottom { margin-top: 68px; padding-top: 22px; font-size: .75rem; }
.hero-address-card { position: absolute; z-index: 2; top: 83px; right: max(var(--page-gutter), calc((100vw - 1360px) / 2)); width: clamp(244px, 22vw, 305px); border: 1px solid #ffffff60; border-radius: 16px; overflow: hidden; background: #fffdf8; color: var(--ink); box-shadow: 0 18px 60px #05100938; transition: transform .3s ease; }
.hero-address-card:hover { transform: translateY(-5px); }
.hero-card-photo { display: block; position: relative; }
.hero-card-photo img { width: 100%; height: 193px; object-fit: cover; object-position: center 43%; }
.hero-card-photo:after { content: ''; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, #14201995); }
.hero-card-number { position: absolute; bottom: 9px; left: 20px; z-index: 1; color: white; font: 500 3.2rem/1 var(--display); letter-spacing: -.07em; }
.hero-card-caption { padding: 19px 20px; display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.hero-card-caption > span:first-child { min-width: 0; }
.hero-card-caption > span > span { display: block; color: var(--muted); font-size: .75rem; margin-bottom: 3px; }
.hero-card-caption strong { display: block; font-size: .875rem; font-weight: 600; }
.card-arrow { display: grid; place-items: center; width: 33px; height: 33px; flex-shrink: 0; border: 1px solid var(--line); border-radius: 50%; font-size: 1.3rem; }
.facts { border-bottom: 1px solid var(--line); }
.facts-inner { min-height: 132px; grid-template-columns: 1fr 1fr 1fr 1.25fr; }
.facts-inner > div { gap: 20px; }
.facts strong { font-size: 2.85rem; letter-spacing: -.065em; }
.facts p { max-width: 112px; font-size: .875rem; }
.facts a { font-size: .875rem; gap: 13px; }
/* The arched photograph echoes the real entrance, without changing the asset. */
.about-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(50px, 7vw, 105px); }
.about-photos { padding: 0 68px 105px 0; }
.about-primary img { aspect-ratio: .86; object-position: 48% 45%; border-radius: 260px 260px 14px 14px; }
.about-primary figcaption { font-size: .75rem; margin-top: 16px; }
.about-secondary { border: 9px solid var(--paper); border-radius: 18px; width: 60%; box-shadow: 0 18px 40px #24352315; }
.about-secondary img { border-radius: 10px; aspect-ratio: 1.25; }
.photo-label { top: 40%; left: -15px; border-radius: 7px; padding: 17px 20px; background: var(--accent); }
.photo-label > span:last-child { font-size: .75rem; letter-spacing: .11em; }
.about-copy > p:not(.eyebrow) { font-size: 1rem; line-height: 1.85; margin-top: 28px; }
.service-line { margin-block: 26px; padding-top: 25px; gap: 23px; }
.service-line h3 { font-size: 1.125rem; }
.service-line p { font-size: .9375rem; }
.service-number { font-size: 1.7rem; }
/* Three clear parking choices, with an editorial emphasis on the day in Rome. */
.rates-section { background: #18251c; }
.section-heading { gap: 55px; margin-bottom: 45px; }
.section-heading > p { max-width: 350px; font-size: 1rem; }
.rate-grid { border: 0; gap: 20px; }
.rate-card { border: 1px solid #ffffff2b; border-radius: 14px; padding: 28px 30px; background: #ffffff04; transition: transform .25s ease, background .25s ease; }
.rate-card + .rate-card { border: 1px solid #ffffff2b; }
.rate-card:hover { transform: translateY(-5px); background: #ffffff0b; }
.rate-top { margin-bottom: 27px; }
.rate-card h3 { font-size: clamp(1.8rem, 2.5vw, 2.4rem); }
.rate-card > p { min-height: 56px; font-size: .9375rem; }
.rate-price { gap: 7px; margin-block: 30px; }
.rate-price > span:first-child { font-size: .875rem; margin-bottom: 8px; }
.rate-price strong { font-size: clamp(3.3rem, 4.5vw, 4.6rem); letter-spacing: -.065em; }
.rate-price strong span { font-size: 1.55rem; letter-spacing: -.025em; }
.rate-price > span:last-child { font-size: .8125rem; }
.rate-link { padding-top: 19px; font-size: .9375rem; }
.rate-card:nth-child(2) { background: #e6a17c; border-color: #e6a17c; color: #232c22; }
.rate-card:nth-child(2):hover { background: #efb591; }
.rate-card:nth-child(2) p, .rate-card:nth-child(2) .eyebrow, .rate-card:nth-child(2) .rate-price > span { color: #424633; }
.rate-card:nth-child(2) .rate-link { border-color: #202c2240; }
.rates-note { font-size: .875rem; margin-top: 27px; }
.payment-notice { margin-top: 38px; border-radius: 10px; padding: 24px 28px; background: #f0f1e9; }
.payment-notice p { font-size: .875rem; }
.payment-notice h2 { font-size: 1rem; }
.notice-icon { width: 27px; height: 27px; }
/* Reviews and address remain easy to read at every column width. */
.reviews-grid { gap: 22px; margin-top: 42px; }
.review { background: white; border: 1px solid var(--line); border-radius: 13px; padding: 28px; }
.review blockquote { font-size: 1rem; line-height: 1.85; margin: 12px 0 32px; }
.review figcaption { font-size: .8125rem; line-height: 1.5; }
.customer-avatar { flex-shrink: 0; width: 34px; height: 34px; }
.quote-mark { color: var(--accent-dark); }
.location-section { background: #e9eee3; }
.location-grid { gap: clamp(38px, 6vw, 86px); grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); }
.address-large { font-size: 1.6rem; margin-top: 32px; }
.address-large > span { font-size: 1rem; }
.location-points li { font-size: .9375rem; margin-block: 12px; }
.location-details { font-size: .9375rem; line-height: 1.8; }
.location-details summary { min-height: 52px; }
.map-panel { min-height: 555px; border-radius: 20px; border: 1px solid #d2dcca; /* The original avenue photo stays visible while the external map loads. */
  background: linear-gradient(0deg, #18221c66, #18221c08), url('../images/slider-slide-3.jpg') center / cover, #d8dfd2; }
.map-panel iframe { min-height: 555px; }
.map-address { border-radius: 12px; box-shadow: 0 10px 30px #1b281526; }
.map-address .parking-symbol { border-radius: 6px; }
.map-address > span:nth-child(2) { font-size: .875rem; }
.map-address strong { font-size: 1rem; }
.closing { background: #a74c32; padding-block: 78px; }
.closing-inner { gap: 70px; }
.closing h2 { font-size: clamp(2.5rem, 4.3vw, 4.1rem); }
.closing p { font-size: 1rem; color: #ffece0; }
.closing-inner > div { flex-shrink: 0; max-width: 335px; }
.footer-grid { gap: clamp(40px, 6vw, 90px); grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, .7fr); }
.footer-brand p { font-size: .875rem; color: #b9c4b4; }
.footer-brand > a { background: black; border-radius: 8px; padding: 9px 12px; }
.footer-brand img { width: 190px; }
.footer-contact { gap: 8px; font-size: .9375rem; }
.footer-contact p { font-size: .9375rem; }
.site-footer h2 { font-size: .8125rem; letter-spacing: .13em; }
.footer-hours { padding-top: 22px; border-top: 1px solid #ffffff20; }
.footer-hours > span { font-size: .875rem; }
.footer-bottom { font-size: .8125rem; line-height: 1.9; overflow-wrap: normal; padding-top: 24px; }
.footer-wordmark { font-size: clamp(3rem, 11.5vw, 10.5rem); letter-spacing: -.05em; margin-top: 45px; color: #ffffff0d; }
.footer-legal { display: flex; align-items: flex-start; gap: clamp(24px, 3vw, 48px); margin-top: 28px; padding-block: 26px max(30px, env(safe-area-inset-bottom)); border-top: 1px solid #ffffff24; }
.cookie-notice { flex: 1; min-width: 0; margin: 0; color: #bdc8b8; font-size: .8125rem; line-height: 1.85; overflow-wrap: normal; }
/* Keep this link in the document flow so it cannot cover the cookie notice. */
.back-to-top { position: static; display: inline-flex; align-items: center; flex-shrink: 0; gap: 12px; min-height: 48px; color: #f3f6ee; font-size: .8125rem; font-weight: 600; white-space: nowrap; }
.back-to-top > span { display: grid; place-items: center; width: max(44px, 1.5em); height: max(44px, 1.5em); border: 1px solid #ffffff50; border-radius: 50%; font-size: 1.3rem; line-height: 1; transition: background .2s ease, color .2s ease; }
.back-to-top:hover { color: var(--accent); }
.back-to-top:hover > span { background: var(--accent); border-color: var(--accent); color: var(--dark); }
/* Distinct interior pages: more photography and compact, legible controls. */
.subhero { padding-block: 66px 60px; min-height: 360px; background: var(--dark); }
.subhero > img { left: 48%; width: 52%; opacity: .75; object-position: 50% 48%; }
.subhero:after { background: linear-gradient(90deg, var(--dark) 35%, #18221ce0 48%, #18221c05 85%); }
.subhero h1 { max-width: 76%; font-size: clamp(3rem, 5.2vw, 5rem); line-height: 1.12; }
.subhero-caption { font-size: .9375rem; }
.garage-intro { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(50px, 6vw, 85px); }
.garage-intro h2 { font-size: clamp(2.35rem, 3.6vw, 3.4rem); }
.prose p { font-size: 1rem; line-height: 1.85; }
.prose u { font-size: .875rem; }
.garage-feature > img { border-radius: 16px; aspect-ratio: 1.35; }
.garage-feature > img:last-child { margin-top: 45px; }
.garage-feature-label { top: 42%; left: -22px; border-radius: 10px; padding: 27px 30px; }
.garage-feature-label p { font-size: .875rem; }
.gallery-section { background: #e9eee3; }
.gallery-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px; }
.gallery-item { grid-column: span 4; border-radius: 13px; }
.gallery-item:nth-child(-n+2) { grid-column: span 6; }
.gallery-item:nth-last-child(-n+4) { grid-column: span 3; }
.gallery-item img { width: 100%; height: 100%; aspect-ratio: 1.25; object-fit: cover; }
.gallery-item:nth-child(-n+2) img { aspect-ratio: 1.5; }
.gallery-item:nth-last-child(-n+4) img { aspect-ratio: .9; }
.gallery-item > span { padding: 20px; font-size: .875rem; }
.gallery-item > span > span:last-child { display: grid; place-items: center; flex-shrink: 0; width: max(35px, 1.5em); height: max(35px, 1.5em); border: 1px solid #ffffff70; border-radius: 50%; font-size: 1.25rem; line-height: 1; letter-spacing: 0; }
.lightbox { background: #0a120df5; }
.lightbox figure img { border-radius: 8px; }
.lightbox figcaption { font-size: .9375rem; line-height: 1.6; }
.lightbox button { width: 48px; height: 48px; }
.tariff-tabs { gap: 10px; border: 1px solid var(--line); background: #edf0e8; padding: 7px; border-radius: 11px; margin-bottom: 50px; }
.tariff-tabs a { padding: 15px 22px; min-height: 60px; border: 0; border-radius: 7px; font-size: 1.05rem; gap: 18px; }
.tariff-tabs a[aria-current] { background: var(--dark); color: white; box-shadow: 0 3px 10px #15271314; }
.tariff-tabs a[aria-current] > span { color: #e4a17e; }
.tariff-tabs a:not([aria-current]):hover { background: #e1e7d9; color: var(--ink); }
.tariff-tabs a > span { font-size: .8125rem; }
.tariff-layout { grid-template-columns: minmax(0, 1fr) 300px; gap: clamp(40px, 5vw, 75px); }
.tariff-layout h2 { font-size: clamp(2.15rem, 3.3vw, 3.1rem); }
.tariff-intro { font-size: 1rem; }
.hourly-notice { border-radius: 7px; font-size: .9375rem; background: #f3e9df; }
.tariff-table-wrap { border-radius: 12px; overflow: hidden; background: white; border: 1px solid var(--line); }
.tariff-table caption { padding: 20px 22px; font-size: .875rem; background: white; }
.tariff-table th, .tariff-table td { padding: 22px; }
.tariff-table thead th { background: #e9eee2; font-size: .875rem; }
.tariff-table tbody th { font-size: 1rem; }
.tariff-table td { font-size: 1.5rem; font-weight: 600; }
.tariff-table tr:last-child > * { border-bottom: 0; }
.tariff-table tbody tr:hover { background: #f4f6f0; }
.vehicle-note { font-size: .875rem; line-height: 1.6; margin-top: 7px; }
.tariff-aside { background: #e9eee3; border: 1px solid #d5decc; border-radius: 14px; padding: 29px; }
.tariff-aside .parking-symbol { border-radius: 7px; }
.tariff-aside > p { font-size: .9375rem; }
.tariff-aside .button { min-height: 55px; padding-inline: 16px; font-size: .875rem; gap: 10px; }
.tariff-hours > span { font-size: .875rem; }
.aside-phone { font-size: .875rem; }
.aside-phone strong { font-size: 1.125rem; }
.contact-grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.3fr); gap: clamp(45px, 6vw, 85px); }
.contact-email { font-size: 1rem; }
.contact-phone { font-size: 1.5rem; }
.booking-panel { padding: clamp(28px, 3.3vw, 48px); border-radius: 18px; box-shadow: 0 18px 55px #1c34220a; }
.booking-panel h2 { font-size: clamp(2rem, 3vw, 2.8rem); }
.form-intro { font-size: 1rem; }
.form-grid { gap: 25px 20px; }
.field { display: flex; flex-direction: column; }
.field label { font-size: .875rem; flex: 1; }
.field input, .field textarea { border-radius: 7px; background: #f8f9f5; border-color: #cbd3c5; padding: 14px; }
.field input { height: 54px; }
.privacy-consent { font-size: .875rem; line-height: 1.85; }
.privacy-consent input { width: 21px; height: 21px; }
.request-note { font-size: .875rem; }
.booking-form > .button { min-width: 215px; }
@media (min-width: 1800px) {
  .hero { min-height: 760px; }
  .hero-inner { padding-top: 88px; }
  .hero-address-card { top: 105px; }
  .hero h1 { font-size: 7.8rem; }
}
@media (max-width: 1150px) {
  .header-book { display: none; }
  .hero-address-card { display: none; }
  .hero h1 { max-width: 95%; font-size: clamp(4.6rem, 8.5vw, 6.4rem); }
  .hero { min-height: 650px; }
  .hero-inner { padding-top: 58px; }
  .facts-inner { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .facts-inner > a { display: none; }
  .facts-inner > div { justify-content: center; }
  .about-grid { gap: 48px; }
  .about-photos { padding-right: 34px; padding-bottom: 80px; }
  .about-secondary { width: 68%; }
  .rate-card { padding: 24px; }
  .rate-price strong { font-size: 3.5rem; }
  .rate-price > span:last-child { flex-basis: 100%; margin-top: 2px; }
  .footer-grid { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 45px; }
  .footer-partners { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 25px; }
  .footer-partners h2 { margin: 0; }
  .footer-hours { margin: 0 0 0 auto; flex-direction: row; align-items: center; gap: 20px; padding: 0; border: 0; }
  .footer-hours strong { font-size: 3.8rem; }
  .footer-hours > span { margin: 0; }
  .tariff-layout { grid-template-columns: minmax(0, 1fr) 260px; gap: 35px; }
  .tariff-aside { padding: 23px; }
  .tariff-table th, .tariff-table td { padding: 18px; }
}
@media (max-width: 900px) {
  .header-inner { min-height: 82px; }
  .desktop-nav { display: none; }
  .menu-toggle { display: block; }
  .header-actions { margin-left: auto; gap: 20px; }
  .brand img { width: 145px; }
  .hero h1 { max-width: 100%; }
  .facts-inner > div { padding: 0 15px; }
  .facts-inner > div + div { padding-left: 15px; }
  .facts p { font-size: .8125rem; }
  .facts strong { font-size: 2.5rem; }
  .about-grid { grid-template-columns: 1fr; gap: 50px; }
  .about-photos { max-width: 650px; width: 100%; margin-inline: auto; padding-right: 95px; padding-bottom: 75px; }
  .about-primary img { aspect-ratio: 1.1; border-radius: 260px 260px 14px 14px; }
  .about-secondary { width: 49%; }
  .photo-label { left: 0; }
  .about-copy { max-width: 700px; }
  .about-copy h2 { max-width: 600px; }
  .section-heading { gap: 32px; }
  .section-heading > p { max-width: 275px; }
  .reviews-grid { gap: 16px; }
  .review { padding: 22px; }
  .location-grid { grid-template-columns: 1fr; gap: 42px; }
  .location-copy { max-width: 680px; }
  .map-panel, .map-panel iframe { min-height: 420px; }
  .closing-inner { gap: 40px; }
  .closing-inner > div { max-width: 290px; }
  .garage-intro { grid-template-columns: 1fr; gap: 45px; }
  .garage-feature { width: 100%; max-width: 660px; margin-inline: auto; }
  .gallery-grid { gap: 14px; }
  .gallery-item:nth-last-child(-n+4) { grid-column: span 6; }
  .gallery-item:nth-last-child(-n+4) img { aspect-ratio: 1.1; }
  .tariff-layout { grid-template-columns: 1fr; gap: 36px; }
  .tariff-aside { position: static; display: grid; grid-template-columns: 1fr 1fr; gap: 20px 32px; align-items: center; padding: 28px; }
  .tariff-aside > .parking-symbol { display: none; }
  .tariff-aside h3 { margin: 0; }
  .tariff-aside > p { margin: 0; }
  .tariff-hours { border: 0; margin: 0; padding: 0; }
  .aside-phone { margin: 0; }
  .contact-grid { grid-template-columns: 1fr; gap: 40px; }
  .booking-panel { padding: 36px; }
  .form-grid { grid-template-columns: 1fr 1fr; }
  .field-wide { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  :root { --page-gutter: 22px; }
  html { scroll-padding-top: var(--anchor-offset, 77px); }
  h2 { font-size: clamp(2.15rem, 7.5vw, 3.2rem); }
  .section { padding-block: 65px; }
  .eyebrow { font-size: .75rem; letter-spacing: .11em; }
  .topline > .container { justify-content: center; min-height: 32px; }
  .topline > .container > a { display: none; }
  .topline { font-size: .75rem; }
  .topline-divider { margin-inline: 7px; }
  .header-inner { min-height: 78px; gap: 12px; }
  .brand { padding: 6px; }
  .brand img { width: 132px; }
  .header-actions { gap: 10px; }
  .languages a { min-width: 28px; min-height: 40px; }
  .menu-toggle { width: 42px; height: 42px; padding: 8px; }
  .hero { min-height: 0; }
  .hero-inner { padding-block: 42px 24px; }
  .hero-image { object-position: 59% center; }
  .hero-shade { background: linear-gradient(90deg, #0e1b12d6, #14221966), linear-gradient(0deg, #0e1b12cf, transparent 75%); }
  .hero-eyebrow { font-size: .6875rem; letter-spacing: .12em; gap: 10px; }
  .hero-eyebrow > span { flex-shrink: 0; width: 20px; }
  .hero h1 { font-size: clamp(2.8rem, 10.5vw, 4.2rem); max-width: 100%; margin-block: 31px 24px; line-height: 1.08; letter-spacing: -.06em; }
  .hero-lead { font-size: 1rem; max-width: 440px; line-height: 1.8; }
  .hero-actions { margin-top: 28px; gap: 16px 25px; flex-wrap: wrap; }
  .hero-actions .button { padding: 14px 20px; font-size: .875rem; gap: 24px; }
  .hero-actions .text-button { font-size: .875rem; gap: 15px; }
  .hero-bottom { margin-top: 35px; padding-top: 20px; font-size: .75rem; }
  .hero-bottom > span:last-child { display: none; }
  .facts-inner { min-height: 120px; }
  .facts-inner > div { flex-direction: column; padding: 0 9px; gap: 5px; }
  .facts-inner > div + div { padding-left: 9px; }
  .facts strong { font-size: 2.2rem; }
  .facts strong span { font-size: 1.2rem; }
  .facts p { font-size: .75rem; text-align: center; }
  .about-grid { gap: 38px; }
  .about-photos { margin: 0; padding: 0 50px 65px 4px; }
  .about-primary img { aspect-ratio: .92; }
  .about-primary figcaption { font-size: .75rem; line-height: 1.6; max-width: 70%; }
  .about-secondary { width: 53%; border-width: 6px; border-radius: 13px; }
  .about-secondary img { border-radius: 7px; }
  .photo-label { top: 45%; left: 0; padding: 13px; gap: 10px; }
  .photo-label > span:last-child { font-size: .6875rem; }
  .photo-label .parking-symbol { font-size: 1.45rem; }
  .about-copy > p:not(.eyebrow), .service-line p { font-size: 1rem; }
  .service-line { gap: 17px; }
  .service-number { font-size: 1.45rem; }
  .section-heading { display: block; margin-bottom: 30px; }
  .section-heading > p { max-width: none; margin-top: 24px; font-size: 1rem; }
  .rate-grid { grid-template-columns: 1fr; gap: 16px; }
  .rate-card { padding: 25px; }
  .rate-top { margin-bottom: 15px; }
  .rate-card h3 { font-size: 2.05rem; }
  .rate-card > p { min-height: 0; font-size: 1rem; }
  .rate-price { margin-block: 24px; }
  .rate-price strong { font-size: 3.65rem; }
  .rate-price > span:last-child { flex-basis: auto; }
  .rate-link { font-size: .9375rem; }
  .payment-notice { padding: 21px 18px; gap: 14px; }
  .payment-notice p { font-size: .875rem; }
  .reviews-grid { grid-template-columns: 1fr; gap: 17px; margin-top: 30px; }
  .review { padding: 25px; }
  .review blockquote { margin-bottom: 26px; }
  .review figcaption { font-size: .875rem; }
  .map-panel, .map-panel iframe { min-height: 360px; border-radius: 14px; }
  .map-address { left: 13px; right: 13px; bottom: 13px; padding: 15px; gap: 12px; }
  .map-address > span:nth-child(2) { font-size: .8125rem; }
  .map-address strong { font-size: .9375rem; }
  .map-address .parking-symbol { font-size: 1.35rem; padding: 8px 10px; }
  .closing { padding-block: 58px; }
  .closing-inner { display: block; }
  .closing h2 { font-size: clamp(2.2rem, 7.5vw, 3rem); }
  .closing-inner > div { max-width: 100%; margin-top: 26px; }
  .closing .button { width: 100%; }
  .site-footer { padding-top: 55px; }
  .footer-grid { grid-template-columns: 1fr; gap: 36px; }
  .footer-brand p { max-width: 100%; font-size: .9375rem; }
  .footer-brand img { width: 165px; }
  .footer-contact { gap: 10px; font-size: 1rem; }
  .footer-contact p { font-size: 1rem; }
  .footer-partners { gap: 20px; }
  .footer-partners h2 { flex-basis: 100%; }
  .footer-hours { gap: 12px; }
  .footer-hours strong { font-size: 3rem; }
  .footer-hours > span { max-width: 100px; font-size: .8125rem; }
  .footer-bottom { font-size: .8125rem; margin-top: 36px; }
  .footer-wordmark { font-size: 11vw; margin-block: 30px 0; }
  .footer-legal { flex-direction: column; gap: 18px; padding-block: 24px max(28px, env(safe-area-inset-bottom)); }
  .back-to-top { align-self: flex-end; }
  .subhero { min-height: 0; padding-block: 44px 38px; }
  .subhero > img { left: 0; width: 100%; opacity: .35; object-position: center; }
  .subhero:after { background: linear-gradient(90deg, #18221cc0, #18221c15); }
  .subhero h1 { max-width: 100%; font-size: clamp(2.4rem, 8.5vw, 3.6rem); line-height: 1.12; }
  .subhero-caption { font-size: .875rem; }
  .garage-intro h2 { font-size: 2.2rem; }
  .garage-feature-label { left: 0; padding: 20px 24px; }
  .garage-feature-label strong { font-size: 2.6rem; }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
  .gallery-item, .gallery-item:nth-child(-n+2), .gallery-item:nth-last-child(-n+4) { grid-column: span 1; border-radius: 9px; }
  .gallery-item:first-child { grid-column: 1 / -1; }
  .gallery-item img, .gallery-item:nth-child(-n+2) img, .gallery-item:nth-last-child(-n+4) img { aspect-ratio: 1; }
  .gallery-item:first-child img { aspect-ratio: 1.3; }
  .gallery-item:last-child { grid-column: 1 / -1; }
  .gallery-item:last-child img { aspect-ratio: 1.6; }
  .gallery-item > span { padding: 12px; font-size: .75rem; }
  .gallery-item > span > span:last-child { width: max(28px, 1.5em); height: max(28px, 1.5em); font-size: 1.1rem; }
  .lightbox { padding: 72px 14px 104px; }
  .lightbox figure img { max-height: calc(100dvh - 240px); }
  .lightbox figcaption { font-size: .875rem; }
  .tariff-tabs { gap: 5px; padding: 5px; margin-bottom: 35px; }
  .tariff-tabs a { flex-direction: column; align-items: flex-start; padding: 11px 12px; gap: 5px; font-size: .9375rem; }
  .tariff-tabs a > span { font-size: .75rem; }
  .tariff-layout h2 { font-size: 2.1rem; }
  .tariff-table caption { padding: 18px; font-size: .8125rem; }
  .tariff-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .tariff-table tbody, .tariff-table tbody tr { display: block; }
  .tariff-table tbody tr { padding: 18px; border-top: 1px solid var(--line); }
  .tariff-table tbody th { display: block; padding: 0 0 13px; border: 0; font-size: 1rem; }
  .tariff-table tbody td { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 7px 0; border: 0; font-size: 1.4rem; }
  .tariff-table tbody td:before { content: attr(data-label); font: 400 .875rem/1.5 var(--font); letter-spacing: 0; color: var(--muted); white-space: normal; }
  .vehicle-note { font-size: .8125rem; }
  .tariff-aside { padding: 25px; gap: 20px; }
  .tariff-aside > p { font-size: .875rem; }
  .tariff-aside h3 { font-size: 1.6rem; }
  .tariff-aside .button, .tariff-aside .aside-phone { grid-column: 1 / -1; max-width: none; }
  .tariff-hours strong { font-size: 2.5rem; }
  .tariff-hours > span { font-size: .8125rem; }
  .contact-phone { font-size: 1.35rem; }
  .booking-panel { padding: 27px 20px; border-radius: 12px; }
  .booking-panel h2 { font-size: 2.05rem; }
  .form-grid { grid-template-columns: 1fr; gap: 22px; }
  .field-wide { grid-column: auto; }
  .booking-form > .button { width: 100%; min-width: 0; }
  .privacy-consent { font-size: .875rem; }
}
@media (max-width: 370px) {
  :root { --page-gutter: 16px; }
  .brand img { width: 113px; }
  .languages a { min-width: 26px; }
  .header-actions { gap: 6px; }
  .menu-toggle { width: 40px; }
  .topline { font-size: .6875rem; }
  .hero h1 { font-size: 2.78rem; }
  .hero-eyebrow { font-size: .625rem; letter-spacing: .1em; }
  .hero-eyebrow > span { width: 13px; }
  .hero-actions { gap: 12px; }
  .hero-actions .button, .hero-actions .text-button { width: 100%; justify-content: space-between; }
  .hero h1 em { white-space: nowrap; }
  .facts strong { font-size: 1.95rem; }
  .facts p { font-size: .6875rem; }
  .tariff-tabs a { padding-inline: 8px; font-size: .875rem; }
  .tariff-aside { grid-template-columns: 1fr; }
  .footer-hours { margin-left: 0; }
  .map-address { gap: 9px; }
}
@media (max-width: 310px) {
  .header-inner { gap: 6px; }
  .brand img { width: 94px; }
  .languages a { min-width: 24px; }
  .tariff-tabs { grid-template-columns: 1fr; }
  .tariff-tabs a { flex-direction: row; align-items: center; min-height: 48px; gap: 16px; padding: 11px 14px; }
}
@media (max-height: 500px) and (max-width: 1000px) {
  html { scroll-padding-top: 0; }
  .site-header { position: relative; }
  .hero-inner { padding-top: 35px; }
  .hero { min-height: 0; }
  .hero h1 { font-size: clamp(2.8rem, 7vw, 4.5rem); }
  .hero-bottom { margin-top: 32px; }
}
/* Keep photos useful on short landscape screens, with controls at the sides. */
@media (orientation: landscape) and (max-height: 500px) {
  .lightbox { padding: 18px 76px 26px; }
  .lightbox figure { width: 100%; }
  .lightbox figure img { max-height: calc(100dvh - 96px); }
  .lightbox figcaption { margin-top: 10px; font-size: .8125rem; line-height: 1.5; }
  .lightbox .lightbox-prev, .lightbox .lightbox-next { position: absolute; top: calc(50% - 24px); bottom: auto; }
  .lightbox .lightbox-prev { left: 14px; right: auto; }
  .lightbox .lightbox-next { right: 14px; left: auto; }
  .lightbox .lightbox-close { top: 10px; right: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *:before, *:after { animation: none !important; transition: none !important; }
}
:root { --page-gutter: clamp(22px, 4.5vw, 80px); }
body { -webkit-font-smoothing: antialiased; }
.header-inner { min-height: 86px; }
.brand img { width: 150px; }
.desktop-nav a { padding-block: 12px; }
.desktop-nav a[aria-current] { color: var(--accent); }
.languages a { min-height: 44px; }
/* Reserve the top bar, header and bottom safe area inside the viewport. */
.mobile-nav { max-height: max(0px, calc(var(--mobile-menu-space, calc(100dvh - 122px)) - max(16px, env(safe-area-inset-bottom)))); scroll-padding-block: 12px; }
.button { font-weight: 650; border-radius: 9px; }
.hero { min-height: 0; background: #132219; overflow: hidden; }
.hero-image { opacity: .14; object-position: center; }
.hero-shade { background: linear-gradient(110deg, #132219fa 12%, #132219ad 70%, #13221966); }
.hero-inner { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(40px, 6vw, 94px); align-items: center; padding-block: clamp(45px, 5vw, 78px); }
.hero-copy { min-width: 0; position: relative; }
.hero h1 { max-width: 100%; font-size: clamp(3.6rem, 6.6vw, 6.3rem); margin-block: 26px; }
.hero h1 em { color: #f0ac87; }
.hero-lead { max-width: 480px; }
.hero-actions { flex-wrap: wrap; gap: 16px 26px; }
.hero-bottom { margin-top: 36px; gap: 15px; flex-wrap: wrap; color: #ced9c7; }
.hero-address-card { display: block; position: relative; top: auto; right: auto; width: 100%; border: 1px solid #ffffff36; border-radius: 18px; box-shadow: 0 25px 65px #0003; }
.hero-card-photo img { height: clamp(290px, 29vw, 410px); object-position: center; }
.hero-card-number { font-size: 4.8rem; bottom: 15px; left: 26px; }
.hero-card-caption { padding: 22px 26px; }
.hero-card-caption strong { font-size: 1rem; }
.hero .container:last-child { position: relative; z-index: 2; }
.stay-shortcuts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-block: 1px solid #ffffff29; margin-bottom: 32px; }
.stay-shortcuts a { display: flex; align-items: center; gap: 18px; min-width: 0; padding: 25px 22px; color: #f5f7ef; transition: background .2s; }
.stay-shortcuts a + a { border-left: 1px solid #ffffff29; }
.stay-shortcuts a:hover { background: #ffffff09; }
.shortcut-icon { font-size: .75rem; color: #efae8b; align-self: flex-start; margin-top: 4px; }
.stay-shortcuts a > span:nth-child(2) { flex: 1; min-width: 0; }
.stay-shortcuts strong { display: block; font: 550 1.25rem/1.4 var(--display); letter-spacing: -.025em; }
.stay-shortcuts small { display: block; margin-top: 5px; color: #b9c9b6; font-size: .8125rem; line-height: 1.6; }
.stay-shortcuts a > span:last-child { color: #efae8b; font-size: 1.4rem; }
.facts-inner { min-height: 112px; }
.about-primary img { border-radius: 18px; }
.about-photos { padding-right: 60px; }
.about-secondary { bottom: 18px; }
.photo-label { left: 18px; top: 24px; }
.rate-card { padding: clamp(24px, 2.6vw, 40px); border-radius: 18px; }
.rate-card:nth-child(2) { background: #ecad87; }
.review { border-radius: 0; background: transparent; border: 0; border-top: 1px solid #bac7b1; padding: 25px 12px 0 0; }
.subhero { min-height: 300px; padding-block: 55px; }
.subhero h1 { font-size: clamp(2.7rem, 4.7vw, 4.5rem); margin-block: 20px; }
.subhero > img { opacity: .66; }
.subhero-link { display: inline-flex; gap: 28px; align-items: center; min-height: 48px; color: var(--accent); border-bottom: 1px solid #ffffff50; margin-top: 16px; font-size: .875rem; }
.tariff-tabs { margin-bottom: 40px; }
.vehicle-tools { margin-top: 25px; }
.vehicle-tools[hidden], .tariff-table tr[hidden], .tariff-table-wrap[hidden] { display: none; }
.vehicle-tools > p:first-child { font-weight: 600; font-size: .875rem; margin-bottom: 10px; }
.vehicle-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.vehicle-filters button { min-height: 44px; padding: 9px 16px; border: 1px solid #cbd4c4; background: white; border-radius: 7px; color: var(--ink); font: 500 .875rem var(--font); cursor: pointer; }
.vehicle-filters button[aria-pressed="true"] { color: white; background: var(--dark); border-color: var(--dark); }
.vehicle-filters button:hover:not([aria-pressed="true"]) { background: #e8eddf; }
.filter-status { font-size: .75rem; color: var(--muted); min-height: 1.8em; margin-top: 8px; }
.vehicle-tools + .tariff-table-wrap { margin-top: 18px; }
.tariff-aside { top: 106px; }
.booking-panel { border: 1px solid #dce1d6; padding: clamp(22px, 3vw, 46px); }
.form-step { display: flex; align-items: center; gap: 12px; padding-top: 14px; border-top: 1px solid var(--line); }
.form-step:first-child { margin-top: 4px; }
.form-step > span { display: grid; place-items: center; width: 32px; height: 32px; flex-shrink: 0; background: #eaf0e2; color: #405239; font-size: .75rem; border-radius: 5px; }
.form-step h3 { font: 650 1rem/1.5 var(--font); letter-spacing: -.01em; }
.form-grid { gap: 22px 20px; }
.field input, .field textarea { font-family: var(--font); width: 100%; min-width: 0; max-width: 100%; font-size: 1rem; }
.field input:focus, .field textarea:focus { outline: 2px solid #647d53; outline-offset: 2px; border-color: #647d53; background: #fff; }
.field input[aria-invalid="true"] { border-color: #a23d26; }
.field-help { font-size: .8125rem; color: var(--muted); margin-block: 18px; }
.form-grid .field-help { margin: 0; }
.stay-summary { margin-top: 22px; padding: 16px 18px; background: #eaf0e2; border-left: 3px solid #698255; font-size: .875rem; }
.stay-summary[hidden] { display: none; }
.form-status { overflow-wrap: normal; }
.form-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.privacy-consent { margin-block: 22px; }
.map-panel { display: flex; align-items: center; min-height: 440px; isolation: isolate; background-image: linear-gradient(90deg, #122319d9, #12231977), url('../images/optimized/slider-slide-3-1200.webp'); }
.arrival-card { position: relative; z-index: 1; padding: clamp(28px, 4vw, 55px); padding-bottom: 140px; color: white; max-width: 570px; }
.arrival-card > .eyebrow { color: #efb290; }
.arrival-card h3 { font: 500 clamp(2rem, 3vw, 2.8rem)/1.15 var(--display); letter-spacing: -.05em; margin-block: 20px; }
.arrival-card p { font-size: 1rem; margin-bottom: 26px; }
.arrival-card .button { gap: 20px; padding-inline: 20px; }
.arrival-card small { display: block; font-size: .75rem; line-height: 1.6; margin-top: 15px; color: #e0e7dc; }
.map-address { z-index: 2; }
.faq-section { background: #f4f4ed; }
.faq-layout { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: clamp(40px, 7vw, 100px); align-items: start; }
.faq-layout h2 { font-size: clamp(2.3rem, 3.6vw, 3.6rem); margin-block: 20px; }
.faq-layout > div > p:not(.eyebrow) { max-width: 390px; color: var(--muted); }
.faq-layout .text-button { margin-top: 22px; }
.faq-item { border-top: 1px solid #cbd5c2; }
.faq-item:last-child { border-bottom: 1px solid #cbd5c2; }
.faq-item summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 24px; padding: 24px 8px 24px 2px; font-size: 1.0625rem; font-weight: 600; line-height: 1.65; cursor: pointer; }
.faq-item summary::-webkit-details-marker { display: none; }
/* Reserve room for the icon throughout its rotation, including open answers. */
.faq-item summary > span { display: grid; place-items: center; width: 24px; height: 24px; line-height: 1; color: var(--accent-dark); flex-shrink: 0; font-size: 1.4rem; transition: transform .2s; }
.faq-item[open] summary > span { transform: rotate(45deg); }
.faq-item p { padding: 0 36px 25px 2px; color: var(--muted); font-size: .9375rem; }
.closing { background: #94442f; }
.footer-wordmark { color: #ffffff12; }
@media (min-width: 1800px) {
  .hero-inner { padding-block: 80px; }
}
@media (max-width: 1000px) {
  .hero-inner { gap: 32px; grid-template-columns: 1.1fr .9fr; }
  .hero h1 { font-size: clamp(3.4rem, 6.6vw, 4.5rem); }
  .hero-card-photo img { height: 300px; }
  .hero-card-caption { padding: 20px; }
  .hero-bottom > span:last-child { display: none; }
  .stay-shortcuts a { gap: 12px; padding: 20px 14px; }
  .stay-shortcuts strong { font-size: 1.125rem; }
  .faq-layout { grid-template-columns: 1fr; gap: 30px; }
  .faq-layout > div > p:not(.eyebrow) { max-width: 650px; }
}
@media (max-width: 760px) {
  .hero-inner { grid-template-columns: 1fr; padding-block: 40px 30px; gap: 30px; }
  .hero h1 { font-size: clamp(3.3rem, 10.8vw, 5rem); }
  .hero-copy { max-width: 600px; }
  .hero-card-photo img { height: clamp(200px, 47vw, 350px); object-position: center 49%; }
  .hero-address-card { max-width: 610px; }
  .hero-card-caption { padding: 18px 22px; }
  .hero-card-number { font-size: 3.5rem; }
  .hero-bottom { display: none; }
  .stay-shortcuts { margin-bottom: 25px; }
  .stay-shortcuts a { display: block; padding: 20px 12px; }
  .shortcut-icon { display: block; margin-bottom: 8px; }
  .stay-shortcuts a > span:last-child { display: none; }
  .stay-shortcuts small { font-size: .75rem; }
  .about-photos { padding-right: 45px; }
  .subhero { min-height: 0; padding-block: 38px; }
  .subhero h1 { font-size: clamp(2.35rem, 8.5vw, 3.6rem); }
  .arrival-card { padding-bottom: 130px; }
  .map-panel { min-height: 460px; }
  .faq-item summary { font-size: 1rem; gap: 18px; }
  .faq-item p { padding-right: 8px; }
}
@media (max-width: 640px) {
  .header-inner { min-height: 76px; }
  .mobile-nav { max-height: max(0px, calc(var(--mobile-menu-space, calc(100dvh - 108px)) - max(16px, env(safe-area-inset-bottom)))); }
  .brand img { width: 124px; }
  .hero h1 { font-size: clamp(2.8rem, 10.8vw, 4.3rem); }
  .hero-lead { font-size: 1rem; }
  .stay-shortcuts { grid-template-columns: 1fr; }
  .stay-shortcuts a { display: flex; padding: 17px 4px; gap: 16px; }
  .stay-shortcuts a + a { border-left: 0; border-top: 1px solid #ffffff29; }
  .shortcut-icon { margin: 4px 0 0; }
  .stay-shortcuts a > span:last-child { display: block; }
  .stay-shortcuts small { margin-top: 2px; }
  .facts-inner { min-height: 108px; }
  .booking-panel { padding: 25px 20px; }
  .form-grid { grid-template-columns: minmax(0, 1fr); }
  .form-step { grid-column: 1 / -1; }
  .field input[type="datetime-local"] { padding-inline: 10px; }
  .arrival-card .button { font-size: .875rem; }
}
@media (max-width: 380px) {
  .brand img { width: 108px; }
  .hero-card-caption { padding: 18px; }
  .hero-card-caption strong { font-size: .875rem; }
  .hero-card-caption .card-arrow { display: none; }
  .booking-panel { padding: 23px 14px; }
  .arrival-card { padding: 25px 20px 135px; }
  .arrival-card .button { width: 100%; gap: 10px; padding-inline: 13px; font-size: .8125rem; }
  .vehicle-filters { gap: 6px; }
  .vehicle-filters button { padding-inline: 12px; font-size: .8125rem; }
}
@media (max-width: 310px) {
  .brand img { width: 94px; }
}
/* Contemporary typography: generous body text, a geometric display face,
   and one shared scale across all three languages and every page template. */
:root { --text-body: 1.125rem; --text-detail: 1rem; --text-small: .9375rem; --muted: #536052; --paper: #f9faf6; }
body { font-size: var(--text-body); line-height: 1.8; }
h1, h2, h3 { font-weight: 550; letter-spacing: -.035em; }
h1 em, h2 em { font-family: var(--display); font-style: normal; font-weight: inherit; letter-spacing: inherit; }
h2 { font-size: clamp(2.3rem, 4.1vw, 3.8rem); line-height: 1.12; }
.hero h1 { font-weight: 550; line-height: 1.04; letter-spacing: -.04em; }
.subhero h1 { font-weight: 550; letter-spacing: -.035em; }
.eyebrow { font-size: .875rem; letter-spacing: .1em; line-height: 1.65; }
.hero-eyebrow { font-size: .8125rem; letter-spacing: .09em; }
.topline { font-size: .8125rem; }
.desktop-nav a { font-size: 1rem; }
.languages a { font-size: .875rem; font-weight: 550; }
.header-book { font-size: .9375rem; }
.button, .text-button, .hero-actions .button, .hero-actions .text-button, .arrival-card .button, .tariff-aside .button { font-size: 1rem; line-height: 1.55; }
.button { border-radius: 12px; min-height: 58px; font-weight: 650; }
.hero-lead { max-width: 540px; font-size: clamp(1.125rem, 1.4vw, 1.25rem); line-height: 1.8; }
.hero-bottom { font-size: .875rem; letter-spacing: 0; }
.hero-card-caption > span > span { font-size: var(--text-small); }
.hero-card-caption strong { font-size: 1.125rem; line-height: 1.6; }
.card-arrow { width: 40px; height: 40px; border-radius: 10px; }
.hero-card-number, .facts strong, .rate-price strong, .tariff-hours strong { letter-spacing: -.045em; font-weight: 550; }
.stay-shortcuts strong { font-size: 1.375rem; font-weight: 500; }
.stay-shortcuts small { font-size: var(--text-small); color: #c8d5c2; }
.shortcut-icon { font-size: .875rem; }
.facts p, .facts a { font-size: var(--text-small); }
.facts p { max-width: 150px; }
.facts-inner { padding-block: 26px; gap: 14px; }
.facts-inner > div { gap: 16px; }
.about-copy > p:not(.eyebrow), .prose p, .tariff-intro, .form-intro, .section-heading > p, .service-line p, .review blockquote, .arrival-card p, .closing p { font-size: var(--text-body); line-height: 1.85; }
.about-primary figcaption, .photo-label > span:last-child { font-size: .875rem; letter-spacing: .02em; }
.about-primary figcaption { max-width: 100%; }
.service-line h3 { font-size: 1.375rem; margin-bottom: 14px; }
.service-line p { overflow-wrap: normal; }
.section-heading > p { max-width: 410px; }
.rate-card > p, .rate-link { font-size: 1.0625rem; }
.rate-price > span:first-child, .rate-price > span:last-child { font-size: var(--text-detail); }
.rate-price strong { font-size: clamp(3.5rem, 4.5vw, 4.6rem); }
.rates-note, .payment-notice p, .review figcaption, .location-details, .location-points li, .map-address > span:nth-child(2), .subhero-caption, .prose u, .garage-feature-label p, .tariff-aside > p, .aside-phone, .vehicle-note, .hourly-notice, .field-help, .privacy-consent, .request-note, .stay-summary, .form-status { font-size: var(--text-detail); line-height: 1.8; }
.payment-notice h2 { font-size: 1.25rem; letter-spacing: -.02em; margin-bottom: 6px; }
.address-large { font-size: clamp(1.5rem, 2.2vw, 2rem); font-family: var(--display); line-height: 1.4; }
.address-large > span, .map-address strong { font-size: 1.125rem; }
.arrival-card small, .tariff-hours > span, .footer-hours > span { font-size: var(--text-small); }
.faq-item summary { font-size: 1.125rem; line-height: 1.65; }
.faq-item p { font-size: var(--text-body); line-height: 1.85; }
.footer-brand p, .footer-contact, .footer-contact p { font-size: var(--text-detail); line-height: 1.85; }
/* Three readable paragraphs, with a quiet emphasis on the closing promise. */
.footer-description { display: grid; gap: 18px; max-width: 52ch; }
.footer-brand .footer-description p { max-width: none; margin: 0; color: #bdcbbb; font-size: 1rem; line-height: 1.75; text-align: start; text-wrap: pretty; overflow-wrap: normal; }
.footer-brand .footer-description p:first-child { color: #dce5d7; }
.footer-description p + p { border-top: 1px solid #ffffff24; padding-top: 18px; }
.footer-brand .footer-description p:last-child { border-top: 0; border-left: 2px solid #edb18e; padding: 2px 0 2px 16px; color: #f5eee3; font-weight: 500; }

.site-footer h2 { font-size: .9375rem; font-weight: 600; letter-spacing: .08em; }
.footer-bottom, .cookie-notice, .back-to-top { font-size: var(--text-small); line-height: 1.85; }
/* Keep business details, privacy information and credits in distinct groups. */
.footer-bottom { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr) minmax(0, .9fr); align-items: start; gap: 24px clamp(24px, 3vw, 44px); line-height: 1.7; overflow-wrap: normal; }
.footer-bottom > * { min-width: 0; }
.footer-bottom p { color: inherit; }
.footer-business, .footer-privacy { display: grid; gap: 6px; }
.footer-bottom .footer-bottom-title { color: #e8ede4; font-weight: 600; }
.footer-pec { width: fit-content; max-width: 100%; overflow-wrap: normal; }
.footer-privacy { max-width: 48ch; }
.footer-privacy:is(:hover, :focus-visible) .footer-bottom-title { color: inherit; }
.footer-credit { text-align: right; }
.footer-credit-intro { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 0 .25em; margin-bottom: 6px; }
.footer-credit a { display: inline-block; max-width: 100%; color: #e8ede4; font-weight: 600; }
.footer-credit img { display: block; flex: none; width: .8em; height: auto; }
@media (max-width: 1100px) {
  .footer-bottom { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-credit { grid-column: 1 / -1; padding-top: 20px; border-top: 1px solid #ffffff18; text-align: left; }
  .footer-credit-intro { justify-content: flex-start; }
}
@media (max-width: 700px) {
  .footer-bottom { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .footer-privacy { max-width: none; padding-top: 20px; border-top: 1px solid #ffffff18; }
}
.subhero-link, .gallery-item > span, .lightbox figcaption { font-size: 1rem; letter-spacing: 0; }
.tariff-tabs a { font-size: 1.25rem; font-weight: 500; letter-spacing: -.015em; }
.tariff-tabs a > span { font-size: .875rem; }
.tariff-table caption { font-size: 1rem; letter-spacing: .04em; }
.tariff-table thead th { font-size: 1rem; }
.tariff-table tbody th { font-size: 1.125rem; font-weight: 600; }
.tariff-table td { font-size: 1.65rem; letter-spacing: -.025em; font-variant-numeric: tabular-nums; }
.vehicle-tools > p:first-child, .vehicle-filters button { font-size: 1rem; }
.filter-status { font-size: .9375rem; }
.contact-email, .field label { font-size: 1rem; }
.field label { font-weight: 600; }
.form-step h3 { font-size: 1.125rem; font-weight: 650; }
.form-step > span { width: 36px; height: 36px; font-size: .875rem; border-radius: 9px; }
.field input, .field textarea { font-size: 1rem; line-height: 1.6; border-radius: 10px; }
.field input { height: 58px; }
/* Clear, distinct sections: light tariff cards, readable review panels,
   structured contact details and an arrival card with no text overlays. */
.hero-address-card { border-radius: 24px; }
.hero-card-caption { padding-block: 25px; }
.stay-shortcuts { border: 1px solid #ffffff2b; border-radius: 16px; overflow: hidden; background: #ffffff04; }
.about-photos { --photo-drop: 60px; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; padding: 0; }
.about-primary { display: contents; }
.about-primary img { grid-column: 1 / 5; grid-row: 1; border-radius: 22px; aspect-ratio: .86; }
.about-secondary { position: relative; inset: auto; grid-column: 3 / 6; grid-row: 1; align-self: end; width: 100%; transform: translateY(var(--photo-drop)); }
.about-secondary img { aspect-ratio: 1.25; }
.about-primary figcaption { grid-column: 1 / -1; grid-row: 2; margin-top: var(--photo-drop); }
.service-line { background: #edf1e7; border: 1px solid #dce4d4; border-radius: 16px; padding: clamp(20px, 2.3vw, 30px); }
.service-number { font-size: 1.7rem; line-height: 1.4; }
.rate-grid { gap: 22px; align-items: stretch; }
.rate-card { display: flex; flex-direction: column; background: #f8f9f3; color: var(--ink); border: 1px solid #ffffff80; border-radius: 20px; padding: clamp(26px, 2.6vw, 40px); }
.rate-card + .rate-card { border-color: #ffffff80; }
.rate-card:hover { background: white; box-shadow: 0 16px 35px #07100b24; }
.rate-card > p, .rate-card .rate-price > span { color: #53604e; }
.rate-card .eyebrow { color: #80432f; }
.rate-card h3 { font-size: clamp(2rem, 2.5vw, 2.5rem); }
.rate-card .rate-link { border-color: #26322233; }
.rate-price { flex-wrap: wrap; }
.rate-link { margin-top: auto; }
.rate-card:nth-child(2) { background: #edb293; border-color: #edb293; }
.rate-card:nth-child(2):hover { background: #f4c2a5; }
.payment-notice { background: #edf1e7; border: 1px solid #dce4d4; border-left: 4px solid #729160; border-radius: 14px; }
.reviews-grid { align-items: stretch; }
.review { display: flex; flex-direction: column; padding: clamp(23px, 2.5vw, 36px); border: 1px solid #dce4d4; border-radius: 18px; background: white; }
.review blockquote { margin-top: 8px; margin-bottom: 32px; }
.review figcaption { margin-top: auto; }
.quote-mark { font-family: var(--display); font-size: 4.8rem; line-height: 1; height: 52px; }
.location-section { background: #eaf0e3; }
.location-points { margin-block: 24px 30px; }
.map-panel { flex-direction: column; align-items: stretch; justify-content: space-between; border-radius: 24px; }
.arrival-card { padding: clamp(28px, 4vw, 50px); max-width: 100%; }
.arrival-card h3 { font-weight: 550; letter-spacing: -.025em; }
.arrival-card p { color: #eef4e9; }
.arrival-card .button { flex-wrap: nowrap; }
.map-address { position: relative; inset: auto; margin: 0 clamp(16px, 2vw, 26px) clamp(16px, 2vw, 26px); padding: 20px; border-radius: 14px; }
.map-address > span:nth-child(2) { flex: 1; min-width: 0; }
.faq-section { background: var(--paper); }
.faq-list { border: 1px solid #d4decd; border-radius: 18px; padding-inline: clamp(20px, 2.5vw, 34px); background: white; }
.faq-item:first-child { border-top: 0; }
.faq-item:last-child { border-bottom: 0; }
.faq-item summary { padding-block: 26px; }
.faq-item p { padding-bottom: 28px; }
.gallery-item { border-radius: 18px; }
.tariff-tabs { padding: 8px; border-radius: 16px; }
.tariff-tabs a { border-radius: 10px; min-height: 68px; }
.tariff-table-wrap { border-radius: 18px; }
.tariff-table caption { padding-block: 24px; }
.tariff-table thead th { background: #eaf0e3; }
.tariff-aside { border-radius: 20px; }
.booking-panel { border-radius: 22px; box-shadow: 0 18px 55px #1c342209; }
.form-step { padding-top: 22px; }
.form-step:first-child { border-top: 0; padding-top: 0; }
.closing { background: #89442f; }
@media (max-width: 1150px) {
  .facts-inner > div { padding-inline: 16px; }
  .facts-inner > div + div { padding-left: 16px; }
  .rate-price > span:last-child { flex-basis: 100%; }
}
@media (max-width: 1000px) {
  .stay-shortcuts a { padding-inline: 18px; }
  .rate-card { padding: 26px; }
  .reviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .review:last-child { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .hero h1 { font-size: clamp(2.65rem, 10.2vw, 4.8rem); }
  .hero-address-card { border-radius: 18px; }
  .hero-card-caption { padding: 22px; }
  .stay-shortcuts strong { font-size: 1.25rem; }
  .facts-inner { gap: 0; }
  .facts-inner > div { padding-inline: 12px; }
  .gallery-item > span { padding: 12px; font-size: .9375rem; }
  .gallery-item > span > span:last-child { flex-shrink: 0; }
}
@media (max-width: 640px) {
  :root { --text-body: 1.0625rem; --text-detail: 1rem; }
  .section { padding-block: 66px; }
  .hero h1 { margin-block: 25px; }
  .hero-eyebrow { font-size: .8125rem; letter-spacing: .06em; }
  .hero-eyebrow > span { display: none; }
  .hero-lead { font-size: 1.125rem; }
  .hero-actions .button, .hero-actions .text-button { gap: 20px; }
  .stay-shortcuts a { padding: 20px 18px; }
  .facts p { font-size: .875rem; }
  .facts strong { font-size: 2.25rem; }
  .facts-inner > div { padding-inline: 8px; }
  .facts-inner > div + div { padding-left: 8px; }
  .service-line { display: block; padding: 24px; }
  .about-photos { --photo-drop: 36px; gap: 14px; }
  .service-number { display: block; margin-bottom: 15px; }
  .rate-card { padding: 27px; }
  .reviews-grid { grid-template-columns: 1fr; }
  .rate-price strong { font-size: 3.8rem; }
  .rate-price > span:last-child { flex-basis: auto; }
  .payment-notice { gap: 14px; }
  .arrival-card { padding: 30px 24px; }
  .map-address { padding: 18px; gap: 12px; }
  .faq-list { padding-inline: 22px; border-radius: 16px; }
  .faq-item summary { gap: 16px; }
  .tariff-tabs a { font-size: 1.125rem; padding-inline: 12px; }
  .tariff-table tbody tr { padding: 22px; }
  .tariff-table tbody td { font-size: 1.5rem; gap: 16px; }
  .tariff-table tbody td:before { font-size: 1rem; }
  .tariff-table caption { font-size: .9375rem; }
  .booking-panel { padding: 27px 22px; }
  .footer-wordmark { letter-spacing: -.04em; }
}
@media (max-width: 380px) {
  .topline { font-size: .75rem; }
  .hero-card-caption { padding: 20px; }
  .hero-card-caption strong { font-size: 1.0625rem; }
  .hero h1 em { white-space: normal; }
  .rate-card, .review { padding: 22px; }
  .arrival-card { padding: 28px 20px; }
  .arrival-card .button { gap: 10px; padding-inline: 14px; font-size: .9375rem; }
  .map-address { margin: 0 14px 14px; padding: 15px; gap: 10px; }
  .map-address .parking-symbol { display: none; }
  .faq-list { padding-inline: 18px; }
  .tariff-tabs { grid-template-columns: 1fr; }
  .tariff-tabs a { flex-direction: row; align-items: center; min-height: 54px; gap: 16px; }
  .tariff-table tbody tr { padding: 18px; }
  .tariff-table tbody td { gap: 12px; }
  .booking-panel { padding: 24px 14px; }
}
/* Roman stone, terracotta and deep green: a bright, photographic opening
   and distinct surfaces for choosing a stay, reading and getting in touch. */
:root { --stone: #f3ede3; --stone-line: #dfd8ca; --terracotta: #9b4930; --paper: #fbfaf7; }
.hero { background: var(--stone); color: var(--ink); }
.hero-image { opacity: .07; }
.hero-shade { background: linear-gradient(95deg, #f3ede3fa 8%, #f3ede3bd 54%, #f3ede333); }
.hero-inner { grid-template-columns: 1.06fr 1fr; gap: clamp(40px, 5.5vw, 84px); padding-block: clamp(44px, 4.5vw, 70px) 48px; }
.hero h1 { font-size: clamp(3.5rem, 6.6vw, 6.3rem); margin-block: 28px; }
.hero h1 em { color: var(--terracotta); }
.hero-eyebrow { color: #54634d; }
.hero-eyebrow > span { background: var(--terracotta); }
.hero-lead { color: #4e5d48; max-width: 530px; }
.hero-actions .button { background: var(--dark); color: white; box-shadow: 0 6px 18px #18221c14; }
.hero-actions .button:hover { background: #354b36; }
.hero-actions .text-button { color: var(--ink); border-color: #55634f80; }
.hero-actions .text-button:hover { color: var(--terracotta); }
.hero-bottom { color: #63705b; border-color: #c5caba; margin-top: 32px; }
.hero-address-card { border: 1px solid #203121; border-radius: 22px; background: #203121; color: white; box-shadow: 0 24px 60px #25321e20; }
.hero-card-photo img { height: clamp(340px, 35vw, 500px); object-position: 64% center; }
.hero-card-photo:after { inset: 45% 0 0; background: linear-gradient(transparent, #152116b8); }
.hero-card-number { left: 26px; bottom: 18px; font-size: clamp(5rem, 8vw, 7.6rem); line-height: .9; letter-spacing: -.06em; }
.hero-card-caption { padding: 24px 26px; }
.hero-card-caption > span > span { color: #c2d0bb; }
.hero-card-caption strong { color: white; }
.hero-card-caption .card-arrow { width: 44px; height: 44px; border: 0; background: #efb18d; color: #203121; border-radius: 10px; }
.stay-shortcuts { background: #fffdf9; border-color: var(--stone-line); margin-bottom: 36px; box-shadow: 0 12px 32px #44371f07; }
.stay-shortcuts a { color: var(--ink); padding: 26px; }
.stay-shortcuts a + a { border-color: var(--stone-line); }
.stay-shortcuts a:hover { background: #eaf0e2; }
.stay-shortcuts small { color: #59664f; }
.shortcut-icon, .stay-shortcuts a > span:last-child { color: var(--terracotta); }
.facts { background: #fffdf9; border-color: var(--stone-line); }
.facts strong { color: var(--terracotta); }
.facts-inner { padding-block: 30px; }
.about-copy h2 em, .reviews-section h2 em, .location-copy h2 em { color: #64784e; }
.about-primary img, .garage-feature > img { box-shadow: 0 18px 40px #28331a0b; }
.photo-label { background: #f1c4a7; border: 1px solid #f8e2d0; box-shadow: 0 8px 22px #25321e12; }
.service-line { background: transparent; border: 0; border-left: 3px solid #c48564; border-radius: 0; padding: 4px 0 4px 25px; gap: 24px; }
.rates-section { background: #1c2c20; }
.rates-section .section-heading { padding-bottom: 34px; border-bottom: 1px solid #ffffff27; margin-bottom: 34px; }
.rates-section h2 em { color: #efb18d; }
.rate-card { border-radius: 16px; background: #fbfaf4; border-color: #e5e8d9; box-shadow: 0 6px 18px #09100b0b; }
.rate-card + .rate-card { border-color: #e5e8d9; }
.rate-card:nth-child(2) { background: #efb18d; border-color: #efb18d; }
.rate-top { margin-bottom: 28px; }
.rate-top .eyebrow { font-family: var(--display); font-size: 1.25rem; font-weight: 500; letter-spacing: -.02em; }
.rate-price { margin-block: 34px; }
.rate-link { font-weight: 600; }
.payment-notice { background: #f2f4e9; border-color: #dbe1ce; border-left-color: #71895d; }
.review { border: 1px solid #e2dfd4; border-top: 3px solid #c28564; border-radius: 14px; background: white; box-shadow: 0 8px 24px #28331a04; }
.review:first-child { background: #f4eee4; }
.customer-avatar { background: #e5e9dc; color: #50633f; }
.location-section { background: #efede3; }
.address-large { padding: 20px 24px; background: #fffdf7; border-left: 3px solid #b87150; border-radius: 0 12px 12px 0; }
.address-large > span { margin-top: 8px; color: #5f6a53; }
.map-panel { border-radius: 22px; border: 1px solid #8d9a7d; box-shadow: 0 18px 42px #27321d14; }
.map-address { background: #fffdf7; }
.faq-section { background: #fbfaf7; }
.faq-list { border-radius: 16px; border-color: #dedfd3; box-shadow: 0 10px 34px #28331a05; }
.faq-item summary { transition: color .2s; }
.faq-item summary:hover, .faq-item[open] summary { color: var(--terracotta); }
.subhero { background: var(--stone); color: var(--ink); min-height: 360px; padding-block: 62px; border-bottom: 1px solid var(--stone-line); }
.subhero > img { inset: 22px 0 22px 48%; width: 52%; height: calc(100% - 44px); opacity: 1; border-radius: 22px 0 0 22px; }
.subhero:after { background: linear-gradient(90deg, #f3ede3 30%, #f3ede3ed 44%, #f3ede398 56%, #f3ede300 82%); }
.subhero h1 { max-width: 72%; }
.subhero h1 em { color: var(--terracotta); }
.subhero .eyebrow { color: #7e4f38; }
.subhero-caption { color: #56634d; }
.subhero-link { color: var(--terracotta); border-bottom-color: #a8816470; font-weight: 600; }
.gallery-section { background: #efede3; }
.gallery-item { border-radius: 16px; box-shadow: 0 8px 24px #29321d12; }
.gallery-item > span { background: linear-gradient(transparent, #172219db); font-weight: 600; }
.gallery-item > span > span:last-child { background: #fffdf6; color: #203121; border: 0; border-radius: 8px; }
.tariff-tabs { background: #efece3; border-color: #dedacf; }
.tariff-tabs a:not([aria-current]):hover { background: #e2e8d8; }
.tariff-table-wrap { border-color: #dbdfd0; box-shadow: 0 8px 28px #29321d06; }
.tariff-table caption { background: #253825; color: #fffdf4; }
.tariff-table thead th { background: #efede3; color: #4e5d43; font-weight: 600; }
.tariff-table tbody tr:nth-child(even) { background: #f7f8f1; }
.tariff-table tbody tr:hover { background: #edf2e3; }
.tariff-table tbody td { color: #8e432d; }
.tariff-aside { background: #223323; color: #fffdf4; border: 1px solid #223323; box-shadow: 0 12px 30px #22332312; }
.tariff-aside > p, .tariff-aside .aside-phone { color: #c7d4c0; }
.tariff-aside .aside-phone strong { color: #fffdf4; }
.tariff-aside > .parking-symbol { background: #efb18d; color: #223323; border-color: #efb18d; }
.tariff-hours { border-color: #ffffff30; }
.tariff-aside .button { background: #efb18d; color: #223323; }
.tariff-aside .button:hover { background: #f5c5a7; }
.contact-section { background: #f2f3eb; }
.contact-phone { font-family: var(--display); font-weight: 500; }
.booking-panel { border-radius: 18px; border-top: 4px solid #b97955; box-shadow: 0 18px 55px #2531190b; }
.field input, .field textarea { background: #fafbf6; }
.form-step > span { background: #f0e5d5; color: #8e4f32; }
.closing { background: #8c462f; border-top: 1px solid #b97555; }
.closing h2 em { color: #f9d2b1; }
.closing .button { box-shadow: 0 8px 24px #47231615; }
.site-footer { background: #142419; }
.site-footer a:hover { color: #efb18d; }
.footer-wordmark { color: #ffffff17; }
.footer-contact a:not(.whatsapp-link):hover { text-decoration: underline; text-underline-offset: 5px; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .hero-card-photo img { transition: transform .65s ease; }
  .hero-address-card:hover .hero-card-photo img { transform: scale(1.025); }
  .hero-card-photo { overflow: hidden; }
}
@media (max-width: 1150px) {
  .hero-inner { gap: 38px; }
  .hero h1 { font-size: clamp(3.25rem, 6.6vw, 5rem); }
  .hero-card-photo img { height: 380px; }
}
@media (max-width: 1000px) {
  .hero-inner { gap: 30px; }
  .hero-card-caption { padding: 22px; }
  .hero-card-photo img { height: 350px; }
  .stay-shortcuts a { padding: 22px 18px; }
}
@media (max-width: 760px) {
  .hero-inner { grid-template-columns: 1fr; gap: 34px; padding-block: 40px 30px; }
  .hero h1 { font-size: clamp(2.65rem, 10.2vw, 4.8rem); }
  .hero-copy { max-width: 640px; }
  .hero-lead { max-width: 550px; }
  .hero-card-photo img { height: clamp(230px, 58vw, 370px); object-position: center 48%; }
  .hero-address-card { max-width: none; border-radius: 18px; }
  .hero-card-number { font-size: clamp(5rem, 15vw, 6rem); }
  .hero-card-caption { padding: 22px; }
  .stay-shortcuts { margin-bottom: 30px; }
  .stay-shortcuts a { padding: 20px 16px; }
  .subhero { min-height: 0; padding-block: 42px; }
  .subhero > img { inset: 0; width: 100%; height: 100%; opacity: .16; border-radius: 0; }
  .subhero:after { background: linear-gradient(90deg, #f3ede3e8, #f3ede36b); }
  .subhero h1 { max-width: 100%; }
}
@media (max-width: 640px) {
  .hero-inner { gap: 28px; }
  .hero h1 { margin-block: 25px; }
  .hero-card-caption { gap: 16px; }
  .hero-card-number { left: 22px; bottom: 18px; }
  .stay-shortcuts a + a { border-color: var(--stone-line); }
  .stay-shortcuts a { padding: 20px; }
  .facts-inner { padding-block: 26px; }
  .service-line { padding: 2px 0 2px 21px; }
  .rates-section .section-heading { padding-bottom: 26px; margin-bottom: 26px; }
  .rate-top { margin-bottom: 20px; }
  .rate-price { margin-block: 26px; }
  .address-large { padding: 20px; }
  .tariff-table-wrap { border-radius: 14px; }
  .booking-panel { border-radius: 14px; }
}
@media (max-width: 380px) {
  .hero-card-caption { padding: 20px; }
  .hero-card-number { font-size: 4.6rem; left: 20px; }
  .address-large { padding: 18px; }
  .stay-shortcuts a { padding: 19px 16px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}
/* Reserve room for the caption before fitting the photo, including enlarged text. */
.lightbox figure { display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: 15px; width: 100%; height: 100%; }
.lightbox figure img { width: 100%; height: 100%; min-height: 0; max-height: 100%; object-fit: contain; }
.lightbox figcaption { margin-top: 0; max-width: 100%; }
@media (orientation: landscape) and (max-height: 500px) {
  .lightbox figure { gap: 10px; }
}
/* Contact page: a photographic introduction, direct contact channels and
   a clear separation between practical information and the booking form. */
.contact-hero { background: var(--stone); padding-block: clamp(32px, 4vw, 60px) 40px; border-bottom: 1px solid var(--stone-line); }
.contact-hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 60px); align-items: center; }
.contact-hero-copy { min-width: 0; padding-block: 10px; }
.contact-hero .eyebrow { color: #75442f; }
.contact-hero h1 { font-size: min(clamp(3rem, 5.25vw, 5rem), 19cqi); line-height: 1.07; margin-block: 25px; letter-spacing: -.045em; }
.contact-hero h1 em { color: var(--terracotta); }
.contact-hero .subhero-caption { color: #465340; font-size: 1.0625rem; }
.contact-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 24px; margin-top: 28px; }
.contact-hero-actions .button { gap: 24px; }
.contact-hero-photo { min-width: 0; border-radius: 22px; overflow: hidden; background: #26392b; box-shadow: 0 18px 40px #3c382214; }
.contact-hero-photo > img { width: 100%; height: clamp(240px, 24vw, 350px); object-fit: cover; object-position: 53% 50%; }
.contact-hero-photo figcaption { padding: 20px 26px; color: #fffaf3; }
.contact-hero-photo figcaption > span { display: block; font-size: .875rem; letter-spacing: .09em; text-transform: uppercase; color: #e9bc9a; margin-bottom: 5px; }
.contact-hero-photo figcaption > strong { font: 500 clamp(1.25rem, 1.65vw, 1.5rem)/1.5 var(--display); }
.contact-methods { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 36px; }
.contact-method { min-width: 0; padding: clamp(22px, 2.2vw, 32px); background: #fffdfa; border: 1px solid #ddd6c8; border-radius: 16px; }
.contact-method-chat { background: #e5ebdc; border-color: #cdd7c2; }
.contact-method-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 17px; }
.contact-method-heading svg, .contact-method-heading img { width: 25px; height: 25px; flex-shrink: 0; }
.contact-method-heading svg { color: #7d452f; }
.contact-method-heading h2 { font: 650 1rem/1.5 var(--font); letter-spacing: 0; }
.contact-method .contact-phone { display: table; max-width: 100%; min-height: 44px; padding-block: 2px; font: 500 clamp(1.375rem, 1.7vw, 1.65rem)/1.65 var(--display); letter-spacing: -.015em; overflow-wrap: normal; }
.contact-method .contact-phone + .contact-phone { margin-top: 2px; }
.contact-method .whatsapp-link { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0; min-height: 48px; font-size: 1.0625rem; font-weight: 600; line-height: 1.65; }
.contact-method .whatsapp-link > span { flex-shrink: 0; font-size: 1.5rem; }
.contact-method .contact-email { display: inline-block; max-width: 100%; min-height: 48px; padding-block: 7px; font-size: 1.0625rem; font-weight: 600; line-height: 1.65; overflow-wrap: normal; }
.contact-page, .contact-page .footer-contact a, .contact-page .cookie-notice { overflow-wrap: normal; }
.contact-page .contact-section { background: #f8f7f1; padding-block: clamp(44px, 5vw, 80px); }
.contact-page .contact-grid { grid-template-columns: minmax(0, .78fr) minmax(0, 1.3fr); gap: clamp(24px, 3.5vw, 52px); }
.contact-details { display: grid; gap: 22px; }
/* Keep both practical notices immediately before the request form and its anchor. */
.booking-request { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; min-width: 0; }
/* Add breathing room below the measured header for native fragment navigation.
   Keep the destination focusable without outlining the entire request column. */
.booking-request#richiesta { scroll-margin-top: clamp(20px, 4vh, 40px); }
.booking-request#richiesta:focus { outline: none; }
.booking-notices { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; min-width: 0; }
.booking-request > *, .booking-notices > * { min-width: 0; }
@media screen and (min-width: 801px) {
  .contact-details.is-sticky { position: sticky; top: var(--contact-sticky-top, 111px); }
}
.contact-place { padding: clamp(26px, 3vw, 42px); background: #223729; color: #fffaf3; border-radius: 20px; }
.contact-place > .eyebrow { color: #efc4a4; font-size: .8125rem; }
.contact-place > h2 { font-size: clamp(2.25rem, 3.15vw, 3.3rem); margin-block: 20px 30px; }
.contact-place > h2 em { color: #efc4a4; }
.contact-address { border-top: 1px solid #6a7968; padding-top: 25px; }
.contact-address h3 { font: 650 1rem/1.5 var(--font); margin-bottom: 14px; }
.contact-address p { color: #f0f1e8; font-size: 1rem; line-height: 1.9; }
.contact-address p + p { margin-top: 14px; color: #d1dccb; font-size: .9375rem; }
.contact-address .text-button { margin-top: 14px; border-color: #9aac91; color: #fffaf3; }
.contact-availability { display: flex; align-items: center; gap: 22px; border-top: 1px solid #6a7968; margin-top: 25px; padding-top: 25px; }
.contact-availability > strong { font: 500 clamp(3.5rem, 5vw, 5rem)/1 var(--display); color: #efc4a4; letter-spacing: -.06em; flex-shrink: 0; }
.contact-availability > strong > span { font-size: .45em; margin-left: 3px; }
.contact-availability h3 { font: 600 1rem/1.6 var(--font); letter-spacing: 0; }
.contact-availability p { color: #d1dccb; font-size: .9375rem; line-height: 1.7; }
.contact-hourly, .contact-payment { padding: 25px 28px; border: 1px solid #ddd6c8; border-radius: 16px; background: #eee9dd; }
.contact-hourly h2, .contact-payment h2 { font: 650 1.125rem/1.5 var(--font); letter-spacing: -.02em; margin-bottom: 10px; }
.contact-hourly .hourly-notice { margin: 0; padding: 0; border: 0; background: transparent; color: #4f5849; font-size: 1rem; }
.contact-payment { background: transparent; border-left: 3px solid #a05a3d; }
.contact-payment p { font-size: 1rem; line-height: 1.85; color: #4f5849; }
.contact-page .booking-panel { padding: clamp(26px, 3.4vw, 48px); border: 1px solid #dadfd2; border-radius: 20px; box-shadow: 0 16px 45px #22372908; }
.booking-heading { padding-bottom: 28px; margin-bottom: 28px; border-bottom: 1px solid #dce1d6; }
.booking-heading > .eyebrow { color: #80442e; }
.contact-page .booking-panel h2 { font-size: clamp(2rem, 3.2vw, 3rem); line-height: 1.16; margin-block: 18px; }
.booking-heading .form-intro { margin: 0; color: #505c4a; }
.contact-page .form-grid { gap: 24px 20px; }
.contact-page .form-step { padding-top: 26px; margin-top: 4px; gap: 13px; }
.contact-page .form-step:first-child { padding-top: 0; margin-top: 0; border-top: 0; }
.contact-page .form-step > span { width: 2.25rem; height: 2.25rem; background: #223729; color: #fffaf3; border-radius: 8px; }
.contact-page .field input, .contact-page .field textarea { background: #fafaf6; border-color: #bac5b3; }
/* Let enlarged date and time values wrap without clipping the active segment. */
.contact-page .field input[type="datetime-local"] { height: auto; min-height: 58px; }
.contact-page .field input[type="datetime-local"]::-webkit-datetime-edit-fields-wrapper { white-space: normal; }
.contact-page .field input[type="datetime-local"]::-webkit-datetime-edit-day-field,
.contact-page .field input[type="datetime-local"]::-webkit-datetime-edit-month-field,
.contact-page .field input[type="datetime-local"]::-webkit-datetime-edit-year-field,
.contact-page .field input[type="datetime-local"]::-webkit-datetime-edit-hour-field,
.contact-page .field input[type="datetime-local"]::-webkit-datetime-edit-minute-field,
.contact-page .field input[type="datetime-local"]::-webkit-datetime-edit-ampm-field { white-space: nowrap; }
.contact-page .field input:hover, .contact-page .field textarea:hover { border-color: #67785c; }
.contact-page .field input:focus, .contact-page .field textarea:focus { background: white; border-color: #49643c; outline-color: #49643c; box-shadow: none; }
.contact-page .field input[aria-invalid="true"] { border-color: #a23d26; }
.contact-page .privacy-consent { background: #f2f4ed; padding: 19px 20px; border-radius: 10px; margin-block: 28px; }
.contact-page .privacy-consent a { display: inline-block; margin-top: 6px; }
.contact-page .booking-form > .button { width: 100%; background: #223729; color: #fffaf3; padding-inline: 25px; }
.contact-page .request-note { font-size: .9375rem; margin-top: 18px; }
.contact-page .location-section { border-top: 1px solid #ddd6c8; }
/* Interactive text keeps a dark foreground on light surfaces and a warm,
   light foreground on dark surfaces. Keyboard focus uses the same contrast. */
:root { --link-hover-light: #80351f; --link-hover-dark: #ffd4b9; }
main .text-dark:is(:hover, :focus-visible), .hero-actions .text-button:is(:hover, :focus-visible), .subhero-link:is(:hover, :focus-visible), .privacy-consent a:is(:hover, :focus-visible), .contact-method a:is(:hover, :focus-visible), .facts a:is(:hover, :focus-visible) { color: var(--link-hover-light); border-bottom-color: currentColor; }
.contact-method a:is(:hover, :focus-visible), .privacy-consent a:is(:hover, :focus-visible) { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 5px; }
.contact-address .text-button:is(:hover, :focus-visible), .desktop-nav a:is(:hover, :focus-visible), .mobile-nav > a:not(.button):is(:hover, :focus-visible), .site-footer a:is(:hover, :focus-visible), .tariff-aside .aside-phone:is(:hover, :focus-visible) { color: var(--link-hover-dark); }
.site-footer a:is(:hover, :focus-visible) { text-decoration: underline; text-underline-offset: 5px; }
.site-footer .back-to-top:is(:hover, :focus-visible) { text-decoration: none; }
.contact-place a:focus-visible, .site-footer a:focus-visible, .site-header a:focus-visible { outline-color: #ffd4b9; }
.button:is(:hover, :focus-visible) { color: var(--dark); background: #f0b08e; }
.button-dark:is(:hover, :focus-visible), .hero-actions .button:is(:hover, :focus-visible), .contact-page .booking-form > .button:is(:hover, :focus-visible) { color: white; background: #354b36; }
.button-white:is(:hover, :focus-visible) { color: #202721; background: #fff1e7; }
.tariff-aside .button:is(:hover, :focus-visible) { color: #223323; background: #f5c5a7; }
.map-address:is(:hover, :focus-visible) { color: var(--link-hover-light); background: #fff1e7; }
@media (max-width: 1050px) {
  .contact-hero h1 { font-size: min(clamp(2.75rem, 5.4vw, 3.65rem), 19cqi); }
  .contact-hero-actions { align-items: flex-start; flex-direction: column; gap: 8px; }
  .contact-methods { gap: 12px; }
  .contact-method { padding: 22px; }
  .contact-page .contact-grid { grid-template-columns: minmax(0, .78fr) minmax(0, 1.2fr); }
  .contact-page .booking-panel { padding: 30px; }
  .contact-page .form-grid { grid-template-columns: minmax(0, 1fr); }
  .contact-availability { flex-wrap: wrap; gap: 14px; }
}
@media (max-width: 800px) {
  .contact-hero-grid { grid-template-columns: 1fr; gap: 28px; }
  .contact-hero-copy { padding: 0; }
  .contact-hero h1 { font-size: min(clamp(2.8rem, 7.6vw, 4.5rem), 19cqi); }
  .contact-hero-actions { flex-direction: row; align-items: center; gap: 12px 24px; }
  .contact-hero-photo > img { height: clamp(220px, 42vw, 320px); }
  .contact-methods { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 24px; }
  .contact-method-email { grid-column: 1 / -1; }
  .contact-page .contact-grid { grid-template-columns: 1fr; gap: 28px; }
  .contact-details { grid-template-columns: minmax(0, 1fr); }
  .contact-availability { flex-wrap: nowrap; }
  .contact-page .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .contact-hero { padding-block: 32px; }
  .contact-hero h1 { font-size: min(clamp(2.35rem, 8.6vw, 3.4rem), 19cqi); margin-block: 22px; }
  .contact-hero .subhero-caption { font-size: 1rem; }
  .contact-hero-actions { gap: 10px 18px; margin-top: 22px; }
  .contact-hero-photo { border-radius: 16px; }
  .contact-hero-photo figcaption { padding: 18px 22px; }
  .contact-methods { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .contact-method { padding: 22px; }
  .contact-method-heading { margin-bottom: 10px; }
  .contact-method .contact-phone { font-size: 1.5rem; }
  .contact-details { grid-template-columns: 1fr; }
  .contact-place { grid-row: auto; padding: 28px; }
  .contact-place > h2 { font-size: 2.7rem; }
  .contact-page .booking-panel { padding: 28px 22px; border-radius: 16px; }
  .contact-page .form-grid { grid-template-columns: minmax(0, 1fr); }
  .contact-page .booking-panel h2 { font-size: clamp(2rem, 7.5vw, 2.6rem); }
  .booking-heading { padding-bottom: 24px; margin-bottom: 24px; }
  .contact-page .privacy-consent { padding: 18px 16px; }
}
@media (max-width: 380px) {
  .contact-hero-actions > a { width: 100%; justify-content: space-between; }
  .contact-hero-actions .button { padding-inline: 18px; gap: 12px; }
  .contact-hero-photo > img { height: 200px; }
  .contact-hero-photo figcaption { padding: 18px; }
  .contact-method { padding: 20px; }
  .contact-method .contact-phone { font-size: 1.35rem; }
  .contact-method .contact-email { font-size: 1rem; }
  .contact-place, .contact-hourly, .contact-payment { padding: 24px 20px; }
  .contact-place > h2 { font-size: 2.25rem; }
  .contact-availability { flex-wrap: wrap; }
  .contact-page .booking-panel { padding: 26px 14px; }
}
@media print {
  .site-header, .topline, .closing, .back-to-top, .vehicle-tools { display: none !important; }
  .tariff-table-wrap[hidden] { display: block !important; }
  .tariff-table tr[hidden] { display: table-row !important; }
  .tariff-layout { display: block; }
  .tariff-aside { display: none; }
  .tariff-table caption { background: white !important; color: #202721 !important; border-bottom: 1px solid #dce1d6; }
  .tariff-table tbody td { color: #202721; }
}

/* A warm Roman palette, clear typography and photographs with room to breathe.
   Screen-only refinements preserve the dedicated print layout. */
@media screen {
  :root { --paper: #faf8f3; --stone: #f0ebe1; --stone-line: #ddd6c8; --terracotta: #934b34; --accent: #edb18e; }
  body { background: var(--paper); }
  h1, h2, h3 { letter-spacing: -.045em; }
  h1 em, h2 em { font-style: normal; letter-spacing: -.045em; }
  .section { padding-block: clamp(68px, 7.2vw, 112px); }
  .eyebrow { letter-spacing: .115em; }
  .button { border-radius: 8px; box-shadow: none; }
  .button > span { flex-shrink: 0; }
  .topline { background: #102017; color: #cbd1c5; }
  .site-header { background: #17271f; border-bottom: 1px solid #ffffff1c; }
  .desktop-nav a[aria-current]:after { height: 1px; bottom: 5px; }
  .languages a { border-radius: 5px; }
  .header-book { background: #edb18e; color: #17271f; }
  .mobile-nav { background: #17271f; }

  /* The entrance is the visual anchor; all text is visible on first paint. */
  .hero { background: #17271f; color: #fbf6ec; }
  .hero-image { opacity: .12; object-position: center; }
  .hero-shade { background: linear-gradient(100deg, #17271ff5 4%, #17271fe8 42%, #17271f52 100%); }
  .hero-inner { grid-template-columns: minmax(0, 1.06fr) minmax(0, 1fr); gap: clamp(36px, 5.5vw, 84px); padding-block: clamp(42px, 4.8vw, 76px) 44px; }
  .hero h1 { font-size: clamp(3.5rem, 6.5vw, 6.1rem); line-height: 1.02; font-weight: 550; margin-block: 30px; }
  .hero h1 em { color: #efb58f; font-weight: 450; }
  .hero-eyebrow { color: #d0d8c8; font-size: .9375rem; }
  .hero-eyebrow > span { background: #efb58f; }
  .hero-lead { color: #d9dfd3; max-width: 535px; line-height: 1.8; }
  .hero-actions { margin-top: 32px; gap: 18px 28px; }
  .hero-actions .button { background: #efb58f; color: #15271d; border-color: #efb58f; box-shadow: none; }
  .hero-actions .button:is(:hover, :focus-visible) { background: #f9cfb2; color: #15271d; }
  .hero-actions .text-button { color: #faf5e9; border-color: #ffffff6b; }
  .hero-actions .text-button:is(:hover, :focus-visible) { color: #ffd8b8; border-color: currentColor; }
  .hero-bottom { color: #bdcaba; border-color: #ffffff24; margin-top: 36px; }
  .hero-address-card { border: 1px solid #ffffff40; border-radius: 14px; background: #f7f2e8; box-shadow: 0 22px 60px #08150e35; overflow: hidden; }
  .hero-card-photo img { height: clamp(340px, 33vw, 480px); object-position: 64% center; }
  .hero-card-number { font-size: clamp(5rem, 7vw, 7rem); font-weight: 450; left: 26px; bottom: 24px; }
  .hero-card-caption { padding: 22px 26px; color: #203427; }
  .hero-card-caption > span > span { color: #58634e; }
  .hero-card-caption strong { color: #203427; }
  .hero-card-caption .card-arrow { background: #213b2b; color: #fffaf0; border-radius: 7px; }
  .stay-shortcuts { border: 1px solid #ffffff30; border-radius: 10px; background: #ffffff05; box-shadow: none; margin-bottom: 38px; overflow: hidden; }
  .stay-shortcuts a { padding: 24px 26px; color: #fcf7ed; }
  .stay-shortcuts a + a { border-color: #ffffff30; }
  .stay-shortcuts a:is(:hover, :focus-visible) { background: #ffffff0e; color: #fcf7ed; }
  .stay-shortcuts strong { font-size: 1.35rem; font-weight: 500; }
  .stay-shortcuts small { color: #c8d2bf; }
  .stay-shortcuts .shortcut-icon, .stay-shortcuts a > span:last-child { color: #efb58f; }

  .facts { background: #f2eee4; }
  .facts-inner { padding-block: 26px; }
  .facts strong { color: #935038; font-weight: 450; }
  .facts p { color: #58634e; }
  .about-section { background: #faf8f3; }
  .about-primary img { border-radius: 12px; box-shadow: none; }
  .about-secondary { border-width: 7px; border-radius: 10px; overflow: hidden; box-shadow: 0 12px 30px #202f1d15; }
  .photo-label { border: 0; background: #223c2b; color: #fcf7eb; box-shadow: none; border-radius: 5px; }
  .service-line { border-left-color: #bd7c56; }
  .about-copy h2 em, .reviews-section h2 em, .location-copy h2 em { color: #935038; }
  .prose u { display: inline-block; text-decoration: none; font-weight: 650; color: #935038; letter-spacing: .055em; margin-bottom: 7px; }
  .garage-feature > img { border-radius: 12px; box-shadow: none; }
  .garage-feature-label { border-radius: 8px; background: #203a29; color: #fff8eb; }
  .garage-feature-label p { color: #e2e9d8; }

  /* Rate choices read like clear, compact cards with aligned price details. */
  .rates-section { background: #203427; }
  .rates-section .section-heading { border-color: #ffffff2d; }
  .rates-section h2 em { color: #edb591; }
  .rate-grid { gap: 24px; }
  .rate-card { border-radius: 10px; border: 1px solid #ece8dd; background: #fcfaf5; padding: clamp(24px, 2.6vw, 38px); box-shadow: none; }
  .rate-card:nth-child(2) { background: #eed1b8; border-color: #eed1b8; }
  .rate-card h3 { font-size: clamp(1.65rem, 2.5vw, 2.25rem); font-weight: 550; }
  .rate-top { margin-bottom: 24px; }
  .rate-top .eyebrow { color: #87513b; font-size: 1rem; }
  .rate-price { margin-block: 28px; gap: 6px; }
  .rate-price strong { font-weight: 500; letter-spacing: -.06em; }
  .rate-link { padding-top: 22px; border-color: #384b3126; }
  .payment-notice { background: #f1ecdf; border-color: #e0d5c2; border-left-color: #aa704e; border-radius: 0 9px 9px 0; }
  .reviews-section { background: #f6f2e9; }
  .review, .review:first-child { background: #fffdf8; border: 1px solid #e2dbcd; border-radius: 10px; box-shadow: none; }
  .review { border-top: 3px solid #b98360; }
  .review blockquote { line-height: 1.85; }
  .review figcaption { padding-top: 20px; border-top: 1px solid #e4dfd3; }
  .customer-avatar { border-radius: 7px; background: #ece9dc; color: #35503b; }

  /* Photography and heading occupy distinct, high-contrast areas. */
  .subhero { background: #203427; color: #fff8ed; border-bottom: 0; padding-block: clamp(48px, 5.8vw, 86px); min-height: 370px; }
  .subhero > img { inset: 0 0 0 48%; width: 52%; height: 100%; border-radius: 0; opacity: .82; }
  .subhero:after { background: linear-gradient(90deg, #203427 24%, #203427fa 39%, #203427b0 57%, #2034271a 100%); }
  .subhero h1 { max-width: 75%; font-size: clamp(2.7rem, 4.6vw, 4.5rem); font-weight: 550; line-height: 1.1; }
  .subhero h1 em { color: #edb591; }
  .subhero .eyebrow { color: #d8c7ad; }
  .subhero .subhero-caption { color: #d5dfcc; }
  .subhero .subhero-link { color: #f3c19d; border-color: #f3c19d85; }
  .subhero .subhero-link:is(:hover, :focus-visible) { color: #fff1df; }
  .gallery-section { background: #f1ece1; }
  .gallery-grid { gap: 24px; }
  .gallery-item { border-radius: 10px; background: #fffdf8; box-shadow: none; border: 1px solid #ded7c9; }
  .gallery-item img { height: auto; }
  .gallery-item:hover img { transform: none; }
  .gallery-item > span { position: static; background: #fffdf8; color: #34442f; padding: 14px 18px; border-top: 1px solid #e5decf; letter-spacing: .035em; }
  .gallery-item > span > span:last-child { background: #eae6d9; color: #30492f; border-radius: 6px; }
  .lightbox { background: #101c16f7; }
  .lightbox button { border-radius: 8px; }
  .lightbox button:is(:hover, :focus-visible) { background: #edb18e; color: #15271d; }
  .tariff-tabs { display: flex; flex-wrap: wrap; padding: 6px; gap: 6px; border-radius: 10px; background: #ece8de; border-color: #ddd5c7; }
  .tariff-tabs a { flex: 1 1 0; min-width: min(100%, 12rem); min-height: 84px; flex-direction: row; flex-wrap: wrap; align-items: center; align-content: center; gap: 14px; padding: 18px; border-radius: 6px; }
  .tariff-tabs .tariff-tab-icon { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; border: 1px solid #ded5c5; border-radius: 9px; background: #fffaf1; color: #68794f; }
  .tariff-tab-icon svg { display: block; width: 24px; height: 24px; }
  .tariff-tabs .tariff-tab-label { flex: 1 1 10ch; min-width: 0; font-size: 1.125rem; font-weight: 550; line-height: 1.4; overflow-wrap: normal; }
  .tariff-tabs a[aria-current] { background: #233d2c; box-shadow: none; }
  .tariff-tabs a[aria-current] .tariff-tab-icon { background: #ffffff0b; border-color: #ffffff30; color: #edb18e; }
  @media (max-width: 1000px) {
    .tariff-tabs a { gap: 12px; padding: 16px; }
    .tariff-tabs .tariff-tab-icon { flex-basis: 38px; width: 38px; height: 38px; }
    .tariff-tabs .tariff-tab-label { font-size: 1.0625rem; }
  }
  @media (max-width: 700px) {
    .tariff-tabs a { flex-basis: 100%; min-height: 70px; gap: 14px; padding: 14px 16px; }
    .tariff-tabs .tariff-tab-label { font-size: 1.125rem; }
  }
  .vehicle-filters button { border-radius: 6px; background: #fffdf8; }
  .vehicle-filters button[aria-pressed="true"] { background: #233d2c; }
  .tariff-table-wrap { border-radius: 10px; border-color: #dcd6c9; box-shadow: none; }
  .tariff-table caption { background: #294530; }
  .tariff-table thead th { background: #eee9de; }
  .tariff-table tbody tr:nth-child(even) { background: #f6f3eb; }
  .tariff-table tbody tr:hover { background: #eaf0e2; }
  .tariff-table tbody td { color: #86452f; }
  .tariff-aside { border-radius: 10px; background: #203a29; border-color: #203a29; box-shadow: none; }
  .tariff-aside .button { border-radius: 7px; }

  .contact-hero { background: #203427; border-bottom: 0; padding-block: clamp(38px, 4.8vw, 70px) 44px; }
  .contact-hero h1 { color: #fff8ed; font-weight: 550; }
  .contact-hero h1 em { color: #edb591; }
  .contact-hero .eyebrow { color: #d8c7ad; }
  .contact-hero .subhero-caption { color: #d5dfcc; }
  .contact-hero-actions .button { background: #edb18e; color: #15271d; }
  .contact-hero-actions .button:is(:hover, :focus-visible) { background: #f9cfb2; color: #15271d; }
  .contact-hero-actions .text-button { color: #fff8ed; border-color: #ffffff6b; }
  .contact-hero-actions .text-button:is(:hover, :focus-visible) { color: #ffd8b8; }
  .contact-hero-photo { border: 1px solid #ffffff30; border-radius: 12px; background: #f4eee2; box-shadow: none; }
  .contact-hero-photo figcaption { color: #203a29; padding: 20px 24px; }
  .contact-hero-photo figcaption > span { color: #87513b; }
  .contact-method { background: #fcfaf4; border: 1px solid #e6dece; border-top: 3px solid #c18b65; border-radius: 10px; }
  .contact-method .contact-method-heading h2 { color: #203a29; }
  .contact-section { background: #f7f4ec; }
  .contact-place, .contact-availability, .contact-hourly { border-radius: 10px; box-shadow: none; }
  .booking-panel { border-radius: 12px; border-color: #e1d8c8; border-top-color: #ad7550; box-shadow: 0 12px 32px #302b1810; }
  .field input, .field textarea { border-radius: 7px; background: #fcfaf5; border-color: #d8d3c6; }
  .field input:focus, .field textarea:focus { outline-color: #667c55; background: #fff; }
  .form-step { gap: 14px; padding-top: 18px; }
  .form-step > span { background: #eee5d6; color: #885139; border-radius: 5px; }
  .location-section { background: #eee9dd; }
  .map-panel { border-radius: 12px; box-shadow: none; }
  .address-large { border-radius: 0 8px 8px 0; background: #fffcf5; }
  .map-address { border-radius: 8px; box-shadow: none; }
  .faq-section { background: #faf8f3; }
  .faq-list { border-radius: 10px; border-color: #ddd7ca; box-shadow: none; background: #fffdf8; }
  .faq-item summary { font-weight: 550; }
  .faq-item[open] summary { color: #8c4a32; }
  .closing { padding-block: clamp(56px, 6vw, 90px); background: #8e4a33; border-color: #ae7453; }
  .closing h2 { font-weight: 500; }
  .closing h2 em { color: #ffdfbf; }
  .site-footer { background: #14271c; }
  .footer-grid { padding-bottom: 38px; }
  .footer-bottom { border-top-color: #ffffff24; }
  .footer-wordmark { color: #ffffff0b; -webkit-text-stroke: 1px #ffffff2b; }
  .back-to-top > span { border-radius: 7px; }

  @media (hover: hover) and (prefers-reduced-motion: no-preference) {
    .rate-card, .gallery-item { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
    .rate-card:hover { transform: translateY(-4px); box-shadow: 0 16px 28px #0b190d26; border-color: #d7b28e; }
    .gallery-item:hover { transform: translateY(-3px); box-shadow: 0 14px 24px #29311e12; }
  }
  @media (max-width: 1150px) {
    .hero-inner { gap: 36px; }
    .hero h1 { font-size: clamp(3.15rem, 6.5vw, 4.9rem); }
    .hero-card-photo img { height: 380px; }
    .hero-card-caption { padding: 20px 22px; }
    .stay-shortcuts a { padding: 22px 20px; }
    .rate-grid { gap: 18px; }
  }
  @media (max-width: 900px) {
    .subhero h1 { max-width: 88%; }
    .hero-inner { gap: 28px; }
    .hero-card-caption { padding: 19px; }
    .gallery-grid { gap: 16px; }
  }
  @media (max-width: 760px) {
    .hero-inner { grid-template-columns: 1fr; gap: 32px; padding-block: 38px 28px; }
    .hero h1 { font-size: clamp(2.65rem, 10vw, 4.7rem); margin-block: 25px; }
    .hero-card-photo img { height: clamp(230px, 57vw, 370px); object-position: center 48%; }
    .hero-card-caption { padding: 20px 22px; }
    .hero-card-number { font-size: clamp(4.5rem, 14vw, 6rem); }
    .stay-shortcuts strong { font-size: 1.2rem; }
    .subhero { min-height: 0; padding-block: 44px; }
    .subhero > img { inset: 0; width: 100%; height: 100%; opacity: .25; }
    .subhero:after { background: linear-gradient(90deg, #203427f0, #203427b8); }
    .subhero h1 { max-width: 100%; font-size: clamp(2.3rem, 7.8vw, 3.8rem); }
  }
  @media (max-width: 640px) {
    .hero-inner { gap: 28px; }
    .hero-eyebrow { font-size: .875rem; }
    .hero-actions { gap: 14px; }
    .hero-actions .button { min-height: 56px; }
    .hero-card-photo img { height: clamp(220px, 60vw, 340px); }
    .hero-card-number { left: 22px; bottom: 20px; }
    .hero-card-caption { gap: 16px; padding: 20px; }
    .stay-shortcuts { margin-bottom: 28px; }
    .stay-shortcuts a { padding: 20px; }
    .stay-shortcuts a + a { border-color: #ffffff30; }
    .facts-inner { padding-block: 22px; }
    .rate-grid { gap: 16px; }
    .rate-card { padding: 26px; }
    .rate-card h3 { font-size: 1.8rem; }
    .rate-top { margin-bottom: 20px; }
    .rate-price { margin-block: 24px; }
    .gallery-grid { gap: 12px; }
    .gallery-item { border-radius: 8px; }
    .gallery-item > span { padding: 12px; font-size: .9375rem; gap: 8px; }
    .gallery-item > span > span:last-child { width: max(28px, 1.5em); height: max(28px, 1.5em); }
    .contact-hero { padding-block: 32px; }
    .contact-hero-photo figcaption { padding: 20px; }
    .contact-method { padding: 22px; }
    .form-step { gap: 12px; }
    .footer-grid { padding-bottom: 28px; }
  }
  @media (max-width: 380px) {
    .hero-inner { padding-top: 32px; }
    .hero-card-caption { padding: 18px; }
    .hero-card-number { left: 18px; }
    .stay-shortcuts a { padding: 18px 16px; }
    .rate-card { padding: 22px; }
    .gallery-item > span { padding: 10px 8px; }
    .contact-method { padding: 20px; }
    .contact-hero-photo figcaption { padding: 18px; }
  }
}

/* Keep gallery captions and arrows together on narrow screens and with enlarged text. */
.gallery-grid { container-type: inline-size; }
@container (width < 36rem) {
  .gallery-grid > .gallery-item { grid-column: 1 / -1; }
}

/* Allow flexible containers to reflow when text is enlarged. */
.container, .service-line p, .footer-contact a, .cookie-notice { overflow-wrap: normal; }
.container > *, .about-copy, .rate-card, .review, .faq-layout > *, .payment-notice > div, .service-line > div, .facts-inner > div > p { min-width: 0; }
.service-line, .payment-notice { flex-wrap: wrap; }
.service-line > div { flex: 1 1 15rem; }
.payment-notice > div { flex: 1 1 16rem; }
.photo-label { max-width: calc(100% - 36px); }
.photo-label > span:last-child { min-width: 0; }
.rates-section, .rate-top, .rate-price { container-type: inline-size; }
/* Descriptive service labels replace the decorative arrows. */
.rate-top { gap: 14px; align-items: center; flex-wrap: wrap; }
.rate-top > .rate-icon { display: grid; place-items: center; flex: 0 0 2.75rem; width: 2.75rem; height: 2.75rem; border: 1px solid #87513b30; border-radius: 11px; background: #eadcc747; color: #87513b; }
.rate-icon svg { width: 1.5rem; height: 1.5rem; }
.rate-top > .rate-topic { display: flex; align-items: center; justify-content: flex-end; flex: 1 1 10rem; width: auto; height: auto; min-width: 0; min-height: calc(3em + 18px); padding: 8px 12px; border: 1px solid #344b3030; border-radius: 7px; background: #e8ede252; color: #344b30; font-size: .8125rem; font-weight: 600; line-height: 1.5; text-align: right; text-wrap: pretty; overflow-wrap: normal; }
.rate-card:nth-child(2) .rate-topic { background: #fffaf333; }
/* Stack cards when enlarged text leaves too little room for three columns. */
@container (width < 48rem) {
  .rate-grid { grid-template-columns: minmax(0, 1fr); }
}
/* Size-contained cards use their natural flex layout: subgrid collapses text rows.
   Descriptions grow with wrapping text and align prices in adjacent cards. */
.rate-card > p { flex: 1 0 auto; line-height: 1.4; text-wrap: pretty; }
@container (width < 14rem) {
  .rate-top > .rate-topic { padding-inline: 8px; }
}
.quote-mark { height: auto; }
/* Fit the complete price, including cents, when readers increase text spacing. */
@container (width < 14rem) {
  .rate-price strong { font-size: min(3.8rem, 27cqi); white-space: nowrap; }
  .rate-price strong span { font-size: .4em; }
}
@media (max-width: 640px) {
  .tariff-table tbody td { flex-wrap: wrap; }
}

/* A compact WhatsApp shortcut, above page content and clear of device safe areas. */
:root { --whatsapp-size: 56px; --whatsapp-inset: clamp(12px, 1.5vw, 24px); }
.whatsapp-float { position: fixed; right: max(var(--whatsapp-inset), env(safe-area-inset-right, 0px)); bottom: max(var(--whatsapp-inset), env(safe-area-inset-bottom, 0px)); transform: none; z-index: 60; display: grid; place-items: center; width: var(--whatsapp-size); height: var(--whatsapp-size); padding: 7px; border: 1px solid #b3d7bb; border-radius: 50%; background: #fff; box-shadow: 0 4px 18px #102c2430; }
/* Browser chrome already moves fixed elements; compensate only for pinch zoom. */
.whatsapp-float.is-zoomed { right: calc(var(--whatsapp-viewport-right, 0px) + max(var(--whatsapp-inset), env(safe-area-inset-right, 0px)) / var(--whatsapp-viewport-scale, 1)); bottom: calc(var(--whatsapp-viewport-bottom, 0px) + max(var(--whatsapp-inset), env(safe-area-inset-bottom, 0px)) / var(--whatsapp-viewport-scale, 1)); transform: scale(calc(1 / var(--whatsapp-viewport-scale, 1))); transform-origin: bottom right; }
.whatsapp-float[hidden] { display: none; }
.whatsapp-float img { width: 40px; height: 40px; border-radius: 50%; }
.whatsapp-float:is(:hover, :focus-visible) { background: #eaffef; box-shadow: 0 5px 22px #102c244d; }
.whatsapp-float:focus-visible { outline: 3px solid #176338; outline-offset: 4px; box-shadow: 0 0 0 4px #fff, 0 0 0 7px #176338; }
@media print { .whatsapp-float { display: none; } }

/* Descriptive symbols replace decorative numbering in every language. */
.section-kicker { display: flex; align-items: center; gap: .65em; }
.section-kicker > svg { flex: 0 0 1.5em; width: 1.5em; height: 1.5em; }
.section-kicker > span { min-width: 0; }
.home-page .stay-shortcuts .shortcut-icon { display: grid; place-items: center; flex-shrink: 0; width: 1.5rem; height: 1.5rem; margin: 0; border: 1px solid #efb58f55; border-radius: 6px; background: #ffffff05; }
.shortcut-icon > svg { display: block; width: 72%; height: 72%; }
.form-step-icon > svg { display: block; width: 1.3rem; height: 1.3rem; }
.form-step h3 { min-width: 0; }
.gallery-item > .gallery-caption { gap: 12px; letter-spacing: 0; }
.gallery-caption > .gallery-label { flex: 1; min-width: 0; font-size: .9375rem; line-height: 1.5; overflow-wrap: normal; }
@media (max-width: 760px) {
  .home-page .stay-shortcuts .shortcut-icon { width: 1.125rem; height: 1.125rem; border: 0; border-radius: 0; background: none; }
  .shortcut-icon > svg { width: 100%; height: 100%; }
}
@media (min-width: 480px) and (max-height: 500px) {
  .home-page .stay-shortcuts a { grid-template-columns: 1rem minmax(0, 1fr) 14px; }
  .home-page .stay-shortcuts .shortcut-icon { width: 1rem; height: 1rem; border: 0; background: none; }
}

/* The garage story: readable paragraphs, clear headings and distinct questions. */
.garage-story { container-type: inline-size; max-width: 66ch; margin-block: 30px 32px; text-align: start; }
.garage-story p { margin: 0; font-size: 1.0625rem; line-height: 1.8; color: #53604f; text-wrap: pretty; overflow-wrap: normal; }
.garage-story-intro { display: grid; gap: 20px; }
.garage-story-intro > p:first-child { color: #344833; }
.garage-story strong { font-weight: 650; color: #243d2c; }
.garage-story h3 { margin: 0; font: 650 .875rem/1.6 var(--font); letter-spacing: .055em; color: #895039; overflow-wrap: normal; }
.garage-story-services { margin-top: 30px; padding: clamp(18px, 2.2vw, 28px); border: 1px solid #dfd7c8; border-radius: 12px; background: #f0ebe1; }
.garage-story-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-bottom: 18px; }
.garage-story-heading h3 { flex: 1 1 13rem; min-width: 0; }
.garage-story-emblem { display: grid; place-items: center; flex-shrink: 0; width: 2.25rem; height: 2.25rem; border: 1px solid #d6c7b3; border-radius: 9px; background: #faf6ee; color: #895039; }
.garage-story-emblem svg { display: block; width: 1.3rem; height: 1.3rem; }
.garage-story .garage-story-promise { margin-top: 18px; padding-top: 18px; border-top: 1px solid #dbd3c4; color: #344833; font-weight: 550; }
.garage-story-scenarios { margin-top: 32px; }
.garage-story-scenarios ul { display: grid; margin: 12px 0 22px; padding: 0; list-style: none; }
.garage-story-scenarios li { display: flex; align-items: flex-start; gap: 14px; padding-block: 16px; border-bottom: 1px solid #e2dacd; }
.garage-story-scenarios li:last-child { border-bottom: 0; }
.garage-story-scenarios li > p { flex: 1; min-width: 0; }
.garage-story-icon { display: grid; place-items: center; flex-shrink: 0; width: 2rem; height: 2rem; border-radius: 8px; background: #eee5d6; color: #895039; }
.garage-story-icon svg { display: block; width: 1.2rem; height: 1.2rem; }
.garage-story .garage-story-closing { padding: 4px 0 4px 18px; border-left: 3px solid #b57452; color: #243d2c; font-weight: 600; }
@container (width < 16rem) {
  .garage-story-scenarios li { display: block; }
  .garage-story-icon { margin-bottom: 10px; }
}

/* Mark the address as an external link at every screen size. */
.map-address > .map-external-icon { display: grid; place-items: center; flex: 0 0 36px; width: 36px; height: 36px; margin-left: auto; border: 1px solid #cbd4c4; border-radius: 8px; color: #344b30; background: #edf1e7; }
.map-external-icon > svg { display: block; width: 20px; height: 20px; }
.map-address:is(:hover, :focus-visible) > .map-external-icon { color: #fff8ee; background: #344b30; border-color: #344b30; }
/* Load the embedded map in this card only when the visitor opens it. */
.map-panel [hidden] { display: none; }
/* Both views share one grid cell, reserving the larger view's natural height.
   Keep the inactive view invisible and unfocusable without collapsing it. */
.map-panel.map-ready { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: 1fr auto; overflow: clip; }
.map-ready > .arrival-card, .map-ready > .map-view { grid-area: 1 / 1; }
.map-ready > .arrival-card[hidden] { display: block; visibility: hidden; }
.map-ready > .map-view[hidden] { display: flex; visibility: hidden; }
.map-ready > .map-address { grid-area: 2 / 1; margin-top: clamp(16px, 2vw, 26px); }
.map-panel.is-map-open { background: #172a20; }
.map-load > svg { display: block; flex-shrink: 0; width: 1.35rem; height: 1.35rem; }
.map-view { display: flex; flex-direction: column; width: 100%; min-width: 0; }
/* Keep the close control below the header while scrolling through the map.
   The panel clips its rounded corners without creating a scroll container. */
.map-toolbar { position: sticky; top: var(--anchor-offset, 87px); z-index: 2; display: flex; flex-shrink: 0; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 16px clamp(14px, 2vw, 24px); background: #172a20; }
.map-toolbar > p { margin: 0; color: #fff8ee; font-size: 1rem; font-weight: 600; line-height: 1.5; }
.map-close { display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; max-width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid #ffffff50; border-radius: 7px; color: #fff8ee; background: transparent; font-size: .875rem; line-height: 1.4; text-align: start; }
.map-close > span { min-width: 0; overflow-wrap: normal; }
.map-close > svg { display: block; flex-shrink: 0; width: 20px; height: 20px; }
.map-close:is(:hover, :focus-visible) { color: #172a20; background: #f4c4a4; border-color: #f4c4a4; }
.map-close:focus-visible { outline: 3px solid #ffd4b9; outline-offset: 3px; }
.map-frame { position: relative; flex: 1 0 auto; width: 100%; height: clamp(240px, 55svh, 460px); min-width: 0; background: #e6e8e0; }
.map-panel .map-frame iframe { display: block; position: absolute; width: 100%; height: 100%; min-height: 0; border: 0; border-radius: 0; }
.map-noscript { margin-bottom: clamp(16px, 2vw, 26px); }

/* A compact navigation panel that leaves the page free to scroll. */
.mobile-nav { --mobile-menu-padding: clamp(10px, 2vw, 16px); inset: calc(100% + 8px) 0 auto; width: min(440px, calc(100% - var(--page-gutter) * 2)); margin: 0 var(--page-gutter) 0 auto; padding: var(--mobile-menu-padding); gap: 6px; border: 1px solid #90a68f55; border-radius: 18px; background: #1c3025; box-shadow: 0 18px 45px #07150f45; max-height: max(0px, calc(var(--mobile-menu-space, calc(100dvh - 122px)) - max(12px, env(safe-area-inset-bottom)))); scroll-padding-block: var(--mobile-menu-padding); scrollbar-width: thin; scrollbar-color: #839b80 #1c3025; container-type: inline-size; }
.mobile-nav > a:not(.button) { display: grid; grid-template-columns: 36px minmax(0, 1fr) 20px; align-items: center; gap: 10px; min-width: 0; min-height: 58px; padding: 10px; border: 1px solid transparent; border-radius: 11px; color: #f5f4eb; font: 550 1.125rem/1.45 var(--font); transition: background .18s, border-color .18s; }
.mobile-nav-icon { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid #bdd0b92b; border-radius: 9px; color: #c9d5c2; background: #ffffff04; }
.mobile-nav-icon svg { display: block; width: 21px; height: 21px; }
.mobile-nav-label { min-width: 0; overflow-wrap: normal; }
.mobile-nav-arrow { font: 400 20px/1 var(--font); color: #a8bba5; }
.mobile-nav > a[aria-current]:not(.button) { color: #f4c4a4; background: #efb18d16; border-color: #efb18d45; }
.mobile-nav > a[aria-current] .mobile-nav-icon { color: #f4c4a4; border-color: #efb18d55; background: #efb18d12; }
.mobile-nav > a[aria-current] .mobile-nav-arrow { color: #f4c4a4; }
.mobile-nav > a:not(.button):is(:hover, :focus-visible) { color: #fff6e9; background: #ffffff0b; border-color: #bdd0b94a; }
.mobile-nav > a:focus-visible { outline: 2px solid #ffd4b9; outline-offset: -2px; }
.mobile-nav > .button { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; margin-top: 8px; padding: 14px 16px; gap: 12px; min-height: 54px; border-radius: 11px; font-size: 1rem; line-height: 1.5; text-align: start; }
.mobile-nav > .button > .mobile-nav-cta-label { min-width: 0; font: inherit; line-height: inherit; overflow-wrap: normal; transform: none; }
@container (width < 10rem) {
  .mobile-nav > a:not(.button) { grid-template-columns: minmax(0, 1fr) 20px; }
  .mobile-nav-icon { display: none; }
  .mobile-nav > .button > span[aria-hidden] { font-size: 20px; }
}
.menu-toggle[aria-expanded="true"] { color: #f4c4a4; background: #efb18d16; border-color: #efb18d70; }
.menu-toggle[aria-expanded="true"] span { background: currentColor; }
@media (max-height: 500px) {
  .mobile-nav { --mobile-menu-padding: 8px; gap: 4px; border-radius: 12px; }
  .mobile-nav > a:not(.button) { min-height: 48px; padding: 7px 10px; font-size: 1rem; }
  .mobile-nav > .button { margin-top: 4px; padding: 10px 12px; min-height: 48px; }
}
/* Use the space beside WhatsApp on short landscape screens. */
@media (min-width: 480px) and (max-width: 900px) and (max-height: 360px) {
  .has-whatsapp-float .mobile-nav { --mobile-menu-side-space: max(var(--page-gutter), calc(var(--whatsapp-size) + max(var(--whatsapp-inset), env(safe-area-inset-right, 0px)) + 12px)); width: min(440px, calc(100% - var(--page-gutter) - var(--mobile-menu-side-space))); margin-right: var(--mobile-menu-side-space); }
  .mobile-nav > .button { font-size: .9375rem; line-height: 1.35; padding-block: 8px; }
}

/* A crisp customer symbol for the testimonial signatures. */
.review figcaption { flex-wrap: wrap; gap: 10px 12px; }
.review-customer { flex: 1 1 10rem; min-width: 0; }
.review .customer-avatar { flex: 0 0 42px; width: 42px; height: 42px; border: 1px solid #637f69; border-radius: 50%; background: #203c2e; color: #f5d6bd; box-shadow: inset 0 0 0 4px #fffdf80a; }
.review .customer-avatar svg { display: block; width: 24px; height: 24px; }

/* Keep words whole: wrap at spaces, with no automatic or discretionary hyphens. */
*, *::before, *::after { -webkit-hyphens: none; -ms-hyphens: none; hyphens: none; word-break: normal; }

/* Give whole words room before adjusting typography in the smallest containers. */
.home-page .hero-inner, .home-page .hero-copy, .site-footer > .container, .tariff-section > .container { container-type: inline-size; }
.contact-details, .contact-place, .booking-panel, .footer-grid, .footer-bottom { min-width: 0; }
.contact-details { grid-template-columns: minmax(0, 1fr); }
.contact-availability, .form-step { flex-wrap: wrap; }
.contact-availability > div, .form-step h3 { flex: 1 1 10rem; min-width: 0; }
.faq-item summary { display: grid; grid-template-columns: minmax(0, 1fr) 24px; }
.faq-item summary > span { font-size: 24px; }
@container (width < 20rem) {
  .footer-partners { flex-wrap: wrap; }
  .footer-hours { width: 100%; flex: 0 0 100%; margin-left: 0; }
}
@container (width < 40rem) {
  .footer-grid, .footer-bottom { grid-template-columns: minmax(0, 1fr); }
}
@container (width < 35rem) {
  .tariff-aside { grid-template-columns: minmax(0, 1fr); }
}

.contact-method, .contact-place, .contact-hourly, .contact-payment, .booking-panel,
.footer-grid > *, .footer-bottom > *, .review, .garage-story-services, .gallery-caption,
.location-copy, .arrival-card, .closing-inner > div, .tariff-layout > div, .tariff-aside,
.garage-intro > div, .section-heading, .faq-layout > div, .contact-hero-copy, .subhero > .container,
.about-copy, .service-line, .payment-notice > div, .reviews-section > .container, .rate-card, .footer-legal, .field, .map-address {
  container-type: inline-size;
}
.garage-story-intro { grid-template-columns: minmax(0, 1fr); }
.booking-form, .privacy-consent { min-width: 0; }
.contact-method .contact-phone { font-size: min(clamp(1.375rem, 1.7vw, 1.65rem), 13cqi); }
.contact-method .contact-email { font-size: min(1.0625rem, 9cqi); }
.contact-place > h2 { font-size: min(clamp(2.25rem, 3.15vw, 3.3rem), 21cqi); }
.contact-place .contact-address p { font-size: min(1rem, 12cqi); }
.contact-place > .eyebrow { font-size: min(.8125rem, 9cqi); }
.contact-hourly h2, .contact-payment h2 { font-size: min(1.125rem, 12cqi); }
.contact-hourly .hourly-notice, .hourly-notice { font-size: min(1rem, 11cqi); }
.contact-payment p { font-size: min(1rem, 12cqi); }
.contact-page .booking-panel h2 { font-size: min(clamp(2rem, 3.2vw, 3rem), 22cqi); }
.booking-panel .eyebrow { font-size: min(.875rem, 10cqi); }
.booking-panel .field label { font-size: min(1rem, 10cqi); }
.booking-panel .privacy-consent { font-size: min(1rem, 8cqi); }
.booking-panel .request-note { font-size: min(.9375rem, 9cqi); }
.form-step h3 { font-size: min(1.125rem, 12cqi); }
.review blockquote { font-size: min(var(--text-body), 12cqi); }
.rate-top > .rate-topic { font-size: min(.8125rem, 10cqi); }
.garage-story p { font-size: min(1.0625rem, 10cqi); }
.garage-story-services p { font-size: min(1.0625rem, 9cqi); }
.garage-story h3 { font-size: min(.875rem, 8cqi); }
.gallery-caption > .gallery-label { font-size: min(.9375rem, 7cqi); }
.location-points li { font-size: min(1rem, 9cqi); }
.address-large { font-size: min(1.5rem, 12cqi); }
.map-address strong { font-size: min(1.125rem, 11cqi); }
.map-address > span:nth-child(2) { font-size: min(1rem, 10cqi); }
.closing p { font-size: min(var(--text-body), 8.5cqi); }
.footer-brand .footer-description p { font-size: min(1rem, 9cqi); }
.footer-contact a, .footer-contact p, .contact-page .footer-contact a { font-size: min(1rem, 9cqi); }
.site-footer .footer-grid h2 { font-size: min(.9375rem, 9cqi); }
.site-footer .cookie-notice, .footer-bottom-title { font-size: min(.9375rem, 9cqi); }
.tariff-aside > p, .tariff-aside .aside-phone { font-size: min(1rem, 12cqi); }
.tariff-intro { font-size: min(var(--text-body), 12cqi); }
.tariff-aside h3 { font-size: min(1.6rem, 21cqi); }
.tariff-aside .aside-phone strong { font-size: min(1.125rem, 11cqi); }
.footer-hours { flex-wrap: wrap; }
.footer-hours > span { flex: 0 1 auto; min-width: 0; max-width: 100%; }
.tariff-hours { flex-wrap: wrap; }
.tariff-hours > span { min-width: 0; max-width: 100%; }
.footer-wordmark { font-size: min(clamp(3rem, 11.9vw, 11rem), 17cqi); }
.closing-inner > div { width: 335px; max-width: 100%; flex: 0 1 335px; }
.closing-inner h2 { min-width: 0; }
.about-copy > p:not(.eyebrow) { font-size: min(var(--text-body), 10cqi); }
.service-line p { font-size: min(var(--text-body), 9cqi); }
.payment-notice p { font-size: min(1rem, 12cqi); }
.payment-notice h2 { font-size: min(1.25rem, 12cqi); }
.facts-inner > div { flex-wrap: wrap; }
.facts-inner > div > p { flex: 1 1 10rem; }
.faq-item summary { font-size: min(1.125rem, 11cqi); }
.faq-item p { font-size: min(var(--text-body), 9cqi); }
.location-details, .lightbox figure { container-type: inline-size; }
.location-details p { font-size: min(1rem, 8cqi); }
.lightbox figcaption { font-size: min(1rem, 9cqi); }
.button, .text-button { max-width: 100%; }
.button > span[aria-hidden], .text-button > span[aria-hidden] { font-size: min(1.5rem, 24px); }
.location-copy > .button, .closing .button { font-size: min(1rem, 10cqi); gap: 12px; }
.tariff-aside .button { font-size: min(1rem, 10cqi); }
.contact-address .text-button { font-size: min(1rem, 10cqi); gap: 12px; }
.facts, .facts-inner { container-type: inline-size; }
@container (width < 22rem) {
  .facts-inner { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .facts-inner > div { flex-direction: column; align-items: center; }
  .facts-inner > div + div { border-left: 0; padding-left: 8px; }
  .facts-inner > div > p { flex: initial; }
}
@media (max-width: 760px) {
  .contact-hero h1 { font-size: min(clamp(2.35rem, 8.6vw, 3.4rem), 20cqi); }
  .subhero h1 { font-size: min(clamp(2.3rem, 7.8vw, 3.8rem), 21cqi); }
  .garage-intro h2 { font-size: min(2.2rem, 22cqi); }
  .section-heading h2, .location-copy h2, .reviews-section h2 { font-size: min(2.3rem, 19cqi); }
  .faq-layout h2 { font-size: min(clamp(2.3rem, 3.6vw, 3.6rem), 22cqi); }
  .closing h2 { font-size: min(clamp(2.2rem, 7.5vw, 3rem), calc((100vw - var(--page-gutter) * 2) * .22)); }
  .tariff-layout h2 { font-size: min(2.1rem, 16cqi); }
  .arrival-card h3 { font-size: min(2rem, 18cqi); }
  .rate-card h3 { font-size: min(1.8rem, 20cqi); }
  .section-kicker, .subhero .eyebrow, .section .eyebrow { font-size: min(.875rem, 5vw); }
  .photo-label > span:last-child { font-size: min(.875rem, 5vw); }
  .tariff-table { table-layout: fixed; }
  .tariff-table-wrap { container-type: inline-size; }
  .tariff-table caption { font-size: min(.9375rem, 7cqi); }
  .tariff-table thead th { font-size: min(1rem, 3.5cqi); }
  .tariff-table tbody th { font-size: min(1.125rem, 8cqi); }
}
@media (min-width: 641px) and (max-width: 760px) {
  .tariff-table tbody th { font-size: min(1.125rem, 4cqi); }
}

/* Reflow prices according to the table's space and the reader's text size. */
.tariff-table-wrap { container-type: inline-size; }
@container (width < 40rem) {
  .tariff-table { table-layout: fixed; }
  .tariff-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .tariff-table tbody, .tariff-table tbody tr { display: block; }
  .tariff-table tbody tr { padding: 18px; border-top: 1px solid var(--line); }
  .tariff-table tbody th { display: block; padding: 0 0 13px; border: 0; font-size: min(1.125rem, 8cqi); }
  .tariff-table tbody td { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px; padding: 7px 0; border: 0; font-size: 1.5rem; }
  .tariff-table tbody td::before { content: attr(data-label); font: 400 min(1rem, 8cqi)/1.5 var(--font); letter-spacing: 0; color: var(--muted); white-space: normal; }
  .tariff-table caption { font-size: min(.9375rem, 7cqi); }
}

/* The opening includes the hero AND the facts strip in one viewport budget.
   Minimum content sizes still win when text is enlarged or the screen is very short. */
@media screen {
  .home-opening { display: flex; flex-direction: column; min-height: calc(100vh - var(--home-header-height, 123px)); min-height: calc(100svh - var(--home-header-height, 123px)); }
  .home-page .hero { display: flex; flex: 1 0 auto; min-height: 0; overflow: visible; }
  .home-page .hero-inner { display: grid; min-height: 0; grid-template-columns: minmax(0, 1.06fr) minmax(0, 1fr); grid-template-rows: 1fr auto; align-items: center; gap: clamp(12px, 2.2svh, 28px) clamp(24px, 4vw, 64px); padding-block: clamp(12px, 2.4svh, 32px); }
  .home-page .hero-copy { max-width: none; }
  .home-page .hero h1 { font-size: clamp(2.25rem, min(6.1vw, 7.5svh), 6.1rem); margin-block: clamp(10px, 1.8svh, 24px); }
  .home-page .hero-eyebrow { font-size: .8125rem; line-height: 1.5; gap: 10px; }
  .home-page .hero-eyebrow > span { flex-shrink: 0; width: 20px; }
  .home-page .hero-lead { font-size: clamp(1rem, 1.9svh, 1.25rem); line-height: 1.55; }
  .home-page .hero-actions { margin-top: clamp(12px, 1.8svh, 24px); gap: 10px 16px; }
  .home-page .hero-actions a { min-height: 44px; padding-block: 10px; }
  .home-page .hero-bottom { display: flex; align-items: center; margin-top: clamp(8px, 1.6svh, 20px); padding-top: 4px; }
  .home-page .hero-address-card { display: flex; flex-direction: column; align-self: stretch; min-height: 0; }
  .home-page .hero-card-photo { flex: 1; min-height: 130px; container-type: inline-size; }
  .home-page .hero-card-photo img { position: absolute; inset: 0; height: 100%; width: 100%; }
  .home-page .hero-card-number { font-size: clamp(3rem, 8svh, 6rem); left: 20px; bottom: 16px; }
  .home-page .hero-card-caption { padding: 14px 18px; gap: 12px; }
  .home-page .hero-card-caption > span > span { font-size: .875rem; }
  .home-page .hero-card-caption strong { font-size: 1rem; line-height: 1.5; }
  .home-page .hero-card-caption .card-arrow { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; flex-shrink: 0; line-height: 1; }
  .home-page .hero-card-caption .card-arrow svg { display: block; width: 1.1em; height: 1.1em; }
  .home-page .stay-shortcuts { grid-column: 1 / -1; grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); margin: 0; overflow: visible; }
  .home-page .stay-shortcuts a { padding: 12px 16px; gap: 12px; }
  .home-page .stay-shortcuts strong { font-size: 1.125rem; line-height: 1.3; }
  .home-page .stay-shortcuts small { font-size: .8125rem; line-height: 1.4; }
  .home-page .facts { position: relative; flex: 0 0 auto; }
  .home-page .facts-inner { padding-right: max(0px, calc(var(--whatsapp-size) + var(--whatsapp-inset) + 12px - var(--page-gutter))); min-height: 0; padding-block: clamp(12px, 1.8svh, 24px); gap: 0; }
  .home-page .facts-inner > div { flex-wrap: wrap; flex-direction: row; justify-content: center; gap: 12px; padding-inline: 16px; }
  .home-page .facts-inner > div > p { flex: 0 1 auto; max-width: 150px; font-size: .875rem; line-height: 1.45; }
  .home-page .facts strong { flex-shrink: 0; font-size: clamp(2rem, 4.5svh, 3rem); line-height: 1.1; }
  .home-page .facts strong span { font-size: .5em; }
  .home-page .facts-inner > a { padding-left: 18px; font-size: .875rem; }
}
@media screen and (min-width: 761px) and (max-width: 1100px) {
  .home-page .hero h1 { font-size: clamp(2rem, min(5.4vw, 6.6svh), 3.8rem); }
  .home-page .hero-eyebrow { font-size: .75rem; gap: 8px; }
  .home-page .hero-actions { flex-wrap: wrap; gap: 10px; }
  .home-page .hero-actions a { flex: 1 1 9rem; min-width: 0; padding-inline: 10px; gap: 8px; font-size: .875rem; }
  .home-page .hero-actions a > span { font-size: 1.25rem; }
}
@media screen and (max-width: 760px) {
  .home-page .hero-inner { grid-template-columns: minmax(0, 1fr); grid-template-rows: 1fr auto auto; gap: clamp(8px, 1.4svh, 16px); padding-block: clamp(10px, 1.6svh, 20px); }
  .home-page .hero-eyebrow { font-size: .625rem; gap: 8px; }
  .home-page .hero-eyebrow > span { width: 16px; }
  .home-page .hero h1 { font-size: clamp(1.75rem, min(8vw, 4.8svh), 2.625rem); margin-block: 10px; }
  .home-page .hero-lead { font-size: clamp(.875rem, 1.85svh, 1.0625rem); line-height: 1.45; }
  .home-page .hero-actions { flex-wrap: wrap; gap: 8px; margin-top: 10px; }
  .home-page .hero-actions a { flex: 1 1 8rem; min-width: 0; width: auto; min-height: 44px; padding: 8px; gap: 8px; font-size: .875rem; line-height: 1.35; }
  .home-page .hero-actions a > span { font-size: 1.25rem; }
  .home-page .hero-bottom { margin-top: 6px; padding-top: 0; }
  .home-page .hero-scroll { font-size: .8125rem; }
  .home-page .hero-address-card { display: grid; grid-template-columns: 80px minmax(0, 1fr); align-self: auto; }
  .home-page .hero-card-photo { min-height: 68px; }
  .home-page .hero-card-number { font-size: min(2rem, 50cqi); left: 8px; bottom: 6px; }
  .home-page .hero-card-caption { padding: 10px 12px; gap: 8px; }
  .home-page .hero-card-caption > span > span { font-size: .75rem; }
  .home-page .hero-card-caption strong { font-size: .875rem; line-height: 1.4; }
  .home-page .hero-card-caption .card-arrow { width: 1.75rem; height: 1.75rem; }
  .home-page .stay-shortcuts { grid-template-columns: repeat(auto-fit, minmax(min(100%, 6.5rem), 1fr)); }
  .home-page .stay-shortcuts a { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto 1fr; align-items: start; gap: 4px; padding: 8px; }
  .home-page .stay-shortcuts a + a { border-top: 0; border-left: 1px solid #ffffff30; }
  .home-page .stay-shortcuts .shortcut-icon { grid-column: 1; grid-row: 1; margin: 0; }
  .home-page .stay-shortcuts a > span:nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
  .home-page .stay-shortcuts a > span:last-child { grid-column: 2; grid-row: 1; font-size: 1rem; line-height: 1; }
  .home-page .stay-shortcuts strong { font-size: .875rem; }
  .home-page .stay-shortcuts small { font-size: .75rem; line-height: 1.35; margin-top: 4px; }
  .home-page .facts-inner { grid-template-columns: repeat(auto-fit, minmax(min(100%, 4.25rem), 1fr)); padding-block: 10px; }
  .home-page .facts-inner > div { flex-direction: column; gap: 4px; padding-inline: 2px; }
  .home-page .facts-inner > div + div { border-left: 1px solid var(--line); }
  .home-page .facts-inner > div > p { flex: initial; font-size: .75rem; text-align: center; }
  .home-page .facts strong { font-size: 1.875rem; }
}
@media screen and (max-height: 700px) {
  .home-page .topline > .container { min-height: 24px; }
  .home-page .topline { font-size: .6875rem; line-height: 1.4; }
  .home-page .header-inner { min-height: 56px; }
  .home-page .brand img { width: 100px; }
  .home-page .languages a { min-height: 40px; }
  .home-page .header-book { min-height: 44px; padding-block: 8px; font-size: .8125rem; }
  .home-page .desktop-nav a { font-size: .875rem; padding-block: 10px; }
}
/* Two columns keep a rotated phone usable without squeezing its text. */
@media screen and (min-width: 600px) and (max-height: 500px) {
  .home-page .hero-inner { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); grid-template-rows: auto auto; gap: 10px 20px; padding-block: 12px; }
  .home-page .hero-copy { grid-column: 1; grid-row: 1 / 3; }
  .home-page .hero-eyebrow { font-size: .625rem; }
  .home-page .hero h1 { font-size: 1.875rem; margin-block: 8px; }
  .home-page .hero-lead { font-size: .875rem; line-height: 1.45; }
  .home-page .hero-actions { margin-top: 10px; }
  .home-page .hero-actions a { font-size: .8125rem; padding: 8px; gap: 6px; }
  .home-page .hero-bottom { margin-top: 6px; padding-top: 0; }
  .home-page .hero-address-card { grid-column: 2; grid-row: 1; display: grid; grid-template-columns: 64px minmax(0, 1fr); }
  .home-page .hero-card-photo { min-height: 64px; }
  .home-page .hero-card-number { font-size: 1.75rem; left: 6px; bottom: 6px; }
  .home-page .hero-card-caption { padding: 8px; gap: 8px; }
  .home-page .hero-card-caption > span > span { font-size: .75rem; }
  .home-page .hero-card-caption strong { font-size: .875rem; }
  .home-page .hero-card-caption .card-arrow { width: 1.5rem; height: 1.5rem; }
  .home-page .stay-shortcuts { grid-column: 2; grid-row: 2; grid-template-columns: minmax(0, 1fr); }
  .home-page .stay-shortcuts a { display: grid; grid-template-columns: 20px minmax(0, 1fr) 16px; grid-template-rows: auto; align-items: center; gap: 8px; padding: 8px 10px; }
  .home-page .stay-shortcuts a + a { border-left: 0; border-top: 1px solid #ffffff30; }
  .home-page .stay-shortcuts .shortcut-icon { grid-column: 1; grid-row: 1; }
  .home-page .stay-shortcuts a > span:nth-child(2) { grid-column: 2; grid-row: 1; }
  .home-page .stay-shortcuts a > span:last-child { grid-column: 3; grid-row: 1; }
  .home-page .stay-shortcuts strong { font-size: .875rem; }
  .home-page .stay-shortcuts small { font-size: .75rem; margin-top: 2px; }
}
/* Reflow very narrow windows and enlarged text instead of clipping whole words. */
@media screen and (max-width: 359px) {
  .home-page .hero-address-card { grid-template-columns: 64px minmax(0, 1fr); }
  .home-page .hero-card-caption { flex-wrap: wrap; }
  .home-page .stay-shortcuts { grid-template-columns: minmax(0, 1fr); }
  .home-page .stay-shortcuts a { grid-template-columns: 20px minmax(0, 1fr) 16px; grid-template-rows: auto; align-items: center; gap: 8px; }
  .home-page .stay-shortcuts a + a { border-left: 0; border-top: 1px solid #ffffff30; }
  .home-page .stay-shortcuts a > span:nth-child(2) { grid-column: 2; grid-row: 1; }
  .home-page .stay-shortcuts a > span:last-child { grid-column: 3; grid-row: 1; }
}

@media screen and (max-width: 760px) and (max-height: 700px) {
  .home-page .hero-inner { gap: 6px; padding-block: 8px; }
  .home-page .hero h1 { margin-block: 8px; }
  .home-page .hero-bottom { margin-top: 2px; }
  .home-page .stay-shortcuts a { padding: 6px; }
  .home-page .facts-inner { padding-block: 8px; }
  .home-page .facts strong { font-size: 1.75rem; }
}
@media screen and (max-width: 319px) {
  .home-page .facts-inner { grid-template-columns: minmax(0, 1fr); }
  .home-page .facts-inner > div { flex-direction: row; justify-content: flex-start; gap: 10px; padding-block: 8px; }
  .home-page .facts-inner > div + div { border-left: 0; border-top: 1px solid var(--line); }
  .home-page .facts-inner > div > p { flex: 1 1 5rem; text-align: left; }
}
/* Leave room for the fixed shortcut when the introduction needs to scroll. */
@media screen and (max-width: 359px), screen and (max-width: 760px) and (max-height: 600px), screen and (min-width: 761px) and (max-height: 500px) {
  .has-whatsapp-float .home-page .hero-inner { padding-inline-end: max(0px, calc(var(--whatsapp-size) + max(var(--whatsapp-inset), env(safe-area-inset-right, 0px)) + 12px - var(--page-gutter))); }
}
/* Keep the fixed shortcut clear of the cards in shallow tablet and desktop windows. */
@media screen and (min-width: 761px) and (min-height: 501px) and (max-height: 600px) {
  .has-whatsapp-float .home-page .stay-shortcuts {
    margin-inline-end: max(0px, calc(var(--whatsapp-size) + max(var(--whatsapp-inset), env(safe-area-inset-right, 0px)) + 12px - var(--page-gutter)));
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 11rem), 1fr));
  }
}

/* Reflow the home address and long links when enlarged text needs more room. */
.home-page .hero-address-card { container-type: inline-size; }
@container (width < 12rem) {
  .home-page .hero-address-card > .hero-card-photo, .home-page .hero-address-card > .hero-card-caption { grid-column: 1 / -1; }
}
@media screen and (max-width: 359px) {
  .home-page .hero-actions a, .home-page .stay-shortcuts a { overflow-wrap: anywhere; }
}

/* Keep shortcut icons inside their grid column at enlarged text sizes. */
.home-page .stay-shortcuts .shortcut-icon, .home-page .stay-shortcuts .shortcut-icon svg { max-width: 100%; }

/* Keep enlarged text and icons inside the narrowest page columns. */
@media screen and (max-width: 319px) {
  .home-page .hero h1 { font-size: min(clamp(1.75rem, min(8vw, 4.8svh), 2.625rem), 29cqi); }
  .home-page .hero-lead { font-size: min(clamp(.875rem, 1.85svh, 1.0625rem), 16cqi); }
  .rate-card > p { font-size: min(1.0625rem, 17cqi); }
  .rates-note { font-size: min(var(--text-detail), 9.5vw); }
  .booking-heading .form-intro { font-size: min(var(--text-body), 16cqi); }
  .contact-page .booking-form > .button { font-size: min(1rem, 14cqi); gap: 12px; padding-inline: 16px; }
  .arrival-card .map-load { font-size: min(.9375rem, 11cqi); gap: 8px; padding-inline: 10px; }
  .map-load > svg { max-width: 24px; max-height: 24px; }
}