:root{
 --cream:#f6efe2;
 --cream-2:#efe2cc;
 --ivory:#fffaf1;
 --black:#16120d;
 --gold:#b9924a;
 --gold-2:#d7b56d;
 --muted:#5a4d3e;
 --line:rgba(22,18,13,.14);
 --glass:rgba(255,250,241,.78);
 --shadow:0 24px 70px rgba(22,18,13,.16);
 --radius:18px;
 }

 *{box-sizing:border-box;margin:0;padding:0}
 html{scroll-behavior:smooth}
 body{
 margin:0;
 font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
 color:var(--black);
 background:
 linear-gradient(rgba(246,239,226,.9),rgba(246,239,226,.92)),
 url('../../images/tourism/terme-tettuccio.jpg') top center/1500px auto fixed no-repeat,
 radial-gradient(circle at top left, rgba(215,181,109,.18), transparent 34%),
 linear-gradient(180deg,var(--cream),#fff7eb 48%,var(--cream));
 overflow-x:hidden;
 -webkit-font-smoothing:antialiased;
 -moz-osx-font-smoothing:grayscale;
 }

 a{color:inherit;text-decoration:none}
 img{max-width:100%;display:block}
 button{font-family:inherit}

.skip-link{
 position:absolute;
 top:-100%;
 left:50%;
 transform:translateX(-50%);
 z-index:9999;
 padding:10px 20px;
 background:var(--black);
 color:var(--ivory);
 border-radius:0 0 12px 12px;
 font-weight:800;
 font-size:14px;
 transition:top.2s ease;
 }
.skip-link:focus{top:0}

.topbar{
 position:fixed;
 inset:0 0 auto 0;
 z-index:50;
 padding:14px 34px;
 display:flex;
 align-items:center;
 justify-content:space-between;
 gap:22px;
 background:rgba(255,250,241,.88);
 backdrop-filter:blur(18px);
 border-bottom:1px solid var(--line);
 }

.brand{
 display:flex;
 align-items:center;
 gap:12px;
 min-width:max-content;
 }

.crest{
 width:42px;
 height:42px;
 border-radius:50%;
 display:grid;
 place-items:center;
 color:var(--ivory);
 background:linear-gradient(135deg,var(--black),#443317);
 box-shadow:0 10px 28px rgba(0,0,0,.16);
 font-family:'Playfair Display',Georgia,serif;
 letter-spacing:.04em;
 }

.brand strong{
 display:block;
 font-family:'Playfair Display',Georgia,'Times New Roman',serif;
 font-size:18px;
 letter-spacing:.04em;
 text-transform:uppercase;
 }

.brand span{
 display:block;
 font-size:12px;
 color:var(--muted);
 margin-top:2px;
 }

.desktop-nav{
 display:flex;
 gap:20px;
 align-items:center;
 color:#3d3324;
 font-size:14px;
 }

.desktop-nav a{opacity:.88;transition:color.2s ease;white-space:nowrap;font-weight:500}
.desktop-nav a:hover{color:var(--gold)}



.menu-toggle{
 display:none;
 width:44px;
 height:44px;
 border-radius:12px;
 background:transparent;
 border:1px solid var(--line);
 cursor:pointer;
 flex-direction:column;
 align-items:center;
 justify-content:center;
 gap:5px;
 padding:0;
 transition:.2s ease;
 }
.menu-toggle:hover{background:rgba(22,18,13,.04)}
.menu-toggle span{
 display:block;
 width:20px;
 height:2px;
 background:var(--black);
 border-radius:2px;
 transition:.25s ease;
 }
.menu-toggle.is-active span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle.is-active span:nth-child(2){opacity:0}
.menu-toggle.is-active span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.mobile-nav{
 display:none;
 position:fixed;
 inset:72px 0 0 0;
 z-index:45;
 background:rgba(255,250,241,.97);
 backdrop-filter:blur(20px);
 -webkit-backdrop-filter:blur(20px);
 flex-direction:column;
 align-items:center;
 justify-content:center;
 gap:8px;
 padding:40px 28px;
 opacity:0;
 transform:translateY(-12px);
 transition:opacity.25s ease,transform.25s ease;
 pointer-events:none;
 }
.mobile-nav.is-open{
 display:flex;
 opacity:1;
 transform:translateY(0);
 pointer-events:auto;
 }
.mobile-nav a{
 font-family:'Playfair Display',Georgia,serif;
 font-size:clamp(24px,5vw,36px);
 font-weight:500;
 padding:12px 24px;
 color:var(--black);
 opacity:.88;
 }
.mobile-nav a:hover{color:var(--gold)}
.mobile-nav.mobile-nav-actions{
 display:flex;
 gap:12px;
 margin-top:24px;
 flex-wrap:wrap;
 justify-content:center;
 }


.lang-switch{
 display:inline-flex;
 align-items:center;
 gap:4px;
 padding:4px;
 border-radius:999px;
 background:rgba(255,255,255,.64);
 border:1px solid var(--line);
 }

.lang-switch button{
 border:0;
 min-width:36px;
 min-height:32px;
 border-radius:999px;
 background:transparent;
 color:var(--muted);
 font-weight:900;
 cursor:pointer;
 letter-spacing:.06em;
 }

.lang-switch button.is-active{
 background:var(--black);
 color:var(--ivory);
 }

.nav-actions{display:flex;align-items:center;gap:10px}

.btn{
 display:inline-flex;
 align-items:center;
 justify-content:center;
 gap:8px;
 min-height:44px;
 padding:12px 20px;
 border-radius:999px;
 font-weight:700;
 border:1px solid transparent;
 transition:.22s ease;
 cursor:pointer;
 white-space:nowrap;
 font-family:inherit;
 font-size:14px;
 }
.btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

.btn-dark{
 color:var(--ivory);
 background:var(--black);
 box-shadow:0 12px 30px rgba(22,18,13,.18);
 }

.btn-dark:hover{transform:translateY(-2px);background:#000}

.btn-gold{
 color:var(--black);
 background:linear-gradient(135deg,var(--gold-2),var(--gold));
 box-shadow:0 14px 34px rgba(185,146,74,.26);
 }

.btn-light{
 background:rgba(255,255,255,.68);
 border-color:var(--line);
 color:var(--black);
 }

.btn-light:hover{background:white;transform:translateY(-2px)}

.hero{
 min-height:100vh;
 padding:130px 56px 54px;
 display:grid;
 grid-template-columns:1.05fr.95fr;
 align-items:center;
 gap:46px;
 position:relative;
 }

.hero:before{
 content:"";
 position:absolute;
 right:-160px;
 top:110px;
 width:560px;
 height:560px;
 border-radius:50%;
 background:radial-gradient(circle,rgba(185,146,74,.18),transparent 62%);
 pointer-events:none;
 }

.eyebrow{
 display:inline-flex;
 align-items:center;
 gap:10px;
 color:var(--gold);
 font-weight:800;
 letter-spacing:.18em;
 font-size:12px;
 text-transform:uppercase;
 margin-bottom:18px;
 }

.eyebrow:before{
 content:"";
 width:42px;
 height:1px;
 background:var(--gold);
 }

 h1,h2,h3{font-family:'Playfair Display',Georgia,'Times New Roman',serif;font-weight:500;line-height:.98;margin:0}

 h1{
 font-size:clamp(54px,8.4vw,120px);
 letter-spacing:-.06em;
 max-width:850px;
 }

.hero-title.script{
 display:block;
 color:var(--gold);
 font-style:italic;
 letter-spacing:-.04em;
 }

.lead{
 max-width:620px;
 color:#4b4133;
 font-size:19px;
 line-height:1.72;
 margin:24px 0 0;
 }

.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}





.weather-card{
 margin-top:18px;
 max-width:830px;
 padding:18px 20px;
 border-radius:24px;
 background:rgba(22,18,13,.9);
 color:var(--ivory);
 box-shadow:0 18px 48px rgba(22,18,13,.18);
 display:flex;
 justify-content:space-between;
 align-items:center;
 gap:18px;
 border:1px solid rgba(255,250,241,.14);
 }

.weather-card small{
 display:block;
 color:var(--gold-2);
 letter-spacing:.12em;
 text-transform:uppercase;
 font-size:11px;
 font-weight:800;
 margin-bottom:6px;
 }

.weather-main{
 font-family:'Playfair Display',Georgia,'Times New Roman',serif;
 font-size:25px;
 color:var(--ivory);
 }

.weather-meta{
 color:#efe2cc;
 font-size:14px;
 line-height:1.5;
 text-align:right;
 }

.weather-card.is-loading.weather-main{opacity:.68}

.hero-media{
 position:relative;
 min-height:650px;
 }

.photo-stack{
 position:absolute;
 inset:0;
 }

.photo-main{
 position:absolute;
 right:0;
 top:0;
 width:min(520px,88%);
 height:690px;
 object-fit:cover;
 border-radius:34px;
 box-shadow:var(--shadow);
 border:10px solid rgba(255,250,241,.7);
 }

.photo-small{
 position:absolute;
 left:0;
 bottom:26px;
 width:310px;
 height:390px;
 object-fit:cover;
 border-radius:28px;
 box-shadow:0 30px 80px rgba(22,18,13,.24);
 border:9px solid var(--ivory);
 }

.floating-note{
 position:absolute;
 right:28px;
 bottom:42px;
 width:260px;
 padding:22px;
 border-radius:22px;
 background:rgba(22,18,13,.9);
 color:var(--ivory);
 box-shadow:0 22px 60px rgba(0,0,0,.24);
 }

.floating-note strong{display:block;font-size:24px;font-family:Georgia,serif;color:var(--gold-2)}
.floating-note span{display:block;margin-top:8px;color:#efe2cc;line-height:1.45;font-size:14px}

 section{padding:88px 56px}

.section-head{
 display:flex;
 justify-content:space-between;
 align-items:end;
 gap:32px;
 margin-bottom:36px;
 }

.section-head h2{font-size:clamp(38px,5vw,74px);letter-spacing:-.05em;max-width:800px}
.section-head p{max-width:480px;color:var(--muted);line-height:1.75;margin:0}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}

.card{
 background:rgba(255,250,241,.8);
 border:1px solid var(--line);
 border-radius:var(--radius);
 overflow:hidden;
 box-shadow:0 18px 46px rgba(22,18,13,.08);
 transition:transform.25s ease,box-shadow.25s ease;
 }
.card:hover{transform:translateY(-4px);box-shadow:0 24px 56px rgba(22,18,13,.14)}

.card-body{padding:26px}
.card h3{font-size:28px;line-height:1.08;margin-bottom:12px;letter-spacing:-.02em}
.card p{color:var(--muted);line-height:1.68;margin:0}
.card img{width:100%;height:290px;object-fit:cover;transition:transform.4s ease}
.card:hover img{transform:scale(1.03)}

.feature{
 padding:30px;
 border-radius:var(--radius);
 border:1px solid var(--line);
 background:linear-gradient(180deg,rgba(255,250,241,.88),rgba(239,226,204,.5));
 transition:transform.25s ease,box-shadow.25s ease;
 }
.feature:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(22,18,13,.1)}

.feature.icon{
 width:48px;
 height:48px;
 border-radius:14px;
 display:grid;
 place-items:center;
 margin-bottom:20px;
 background:var(--black);
 color:var(--gold-2);
 font-size:20px;
 font-weight:800;
 }

.feature h3{font-size:25px;margin-bottom:10px}
.feature p{color:var(--muted);line-height:1.64;margin:0}

.dark-band{
 margin:60px 56px;
 padding:58px;
 border-radius:32px;
 color:var(--ivory);
 background:
 linear-gradient(135deg,rgba(22,18,13,.96),rgba(56,43,24,.94)),
 url('../../images/hotel/hotel-exterior-wide.webp') center/cover;
 box-shadow:var(--shadow);
 display:grid;
 grid-template-columns:1fr 1fr;
 gap:34px;
 align-items:center;
 }

.dark-band h2{font-size:clamp(38px,4.8vw,70px);letter-spacing:-.05em}
.dark-band p{color:#efe2cc;line-height:1.75;font-size:17px}

.offer-list{display:grid;gap:14px}
.offer-item{
 padding:20px;
 border:1px solid rgba(255,250,241,.16);
 border-radius:18px;
 background:rgba(255,250,241,.08);
 display:flex;
 justify-content:space-between;
 gap:16px;
 }
.offer-item b{color:var(--gold-2)}
.offer-item span{color:#efe2cc;font-size:14px}

.tourism{
 display:grid;
 grid-template-columns:.9fr 1.1fr;
 gap:30px;
 align-items:start;
 }

.tourism-gallery{
 display:grid;
 grid-template-columns:repeat(7,1fr);
 gap:12px;
 margin:-10px 0 32px;
 }

.tourism-thumb{
 position:relative;
 min-height:150px;
 border-radius:18px;
 overflow:hidden;
 border:1px solid rgba(255,255,255,.68);
 box-shadow:0 16px 38px rgba(22,18,13,.1);
 background:var(--cream-2);
 }

.tourism-thumb img{
 width:100%;
 height:100%;
 min-height:150px;
 object-fit:cover;
 transition:transform.34s ease;
 }

.tourism-thumb:hover img{transform:scale(1.045)}

.tourism-thumb span{
 position:absolute;
 left:10px;
 right:10px;
 bottom:10px;
 padding:8px 10px;
 border-radius:999px;
 background:rgba(22,18,13,.78);
 color:var(--ivory);
 font-size:12px;
 font-weight:800;
 text-align:center;
 backdrop-filter:blur(10px);
 }

.tourism-map{
 min-height:650px;
 border-radius:30px;
 background:
 linear-gradient(180deg,rgba(22,18,13,.1),rgba(22,18,13,.34)),
 url('../../images/tourism/montecatini-alto.jpg') center/cover;
 box-shadow:var(--shadow);
 position:sticky;
 top:110px;
 overflow:hidden;
 }

.map-label{
 position:absolute;
 left:26px;
 right:26px;
 bottom:26px;
 padding:24px;
 border-radius:22px;
 background:rgba(255,250,241,.86);
 backdrop-filter:blur(16px);
 }

.map-label strong{font-family:Georgia,serif;font-size:28px;color:var(--black)}
.map-label p{color:var(--muted);line-height:1.55;margin:8px 0 0}

.places{display:grid;gap:16px}
.place{
 padding:22px;
 border-radius:20px;
 background:rgba(255,250,241,.82);
 border:1px solid var(--line);
 display:grid;
 grid-template-columns:minmax(220px,260px) 1fr;
 gap:18px;
 }

.place img{width:100%;height:190px;object-fit:cover;border-radius:16px}

.place-number{
 width:42px;height:42px;border-radius:50%;display:grid;place-items:center;
 color:var(--ivory);background:var(--black);font-weight:800;
 }

.place h3{font-size:25px;margin-bottom:8px}
.place p{color:var(--muted);line-height:1.65;margin:0}
.distance{margin-top:10px;color:#5b4e3f;font-weight:700}
.place-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.place-actions.btn{min-height:38px;padding:9px 14px;font-size:13px}
.route-list{
 display:flex;
 gap:8px;
 flex-wrap:wrap;
 margin-top:12px;
 }
.route-pill{
 display:inline-flex;
 align-items:center;
 min-height:32px;
 padding:7px 10px;
 border-radius:999px;
 background:rgba(185,146,74,.12);
 color:#5b4e3f;
 font-size:13px;
 font-weight:800;
 border:1px solid rgba(185,146,74,.2);
 }

.reviews{
 display:grid;
 grid-template-columns:repeat(3,1fr);
 gap:20px;
 }

.review{
 padding:30px;
 border-radius:22px;
 background:var(--ivory);
 border:1px solid var(--line);
 box-shadow:0 18px 42px rgba(22,18,13,.08);
 }

.stars{color:var(--gold);letter-spacing:.12em;margin-bottom:18px}
.review p{line-height:1.7;color:#4b4133;margin:0 0 18px}
.review b{font-family:Georgia,serif;font-size:20px}

.contact-wrap{
 display:grid;
 grid-template-columns:.9fr 1.1fr;
 gap:28px;
 align-items:stretch;
 }

.contact-card{
 padding:38px;
 border-radius:28px;
 background:var(--black);
 color:var(--ivory);
 box-shadow:var(--shadow);
 }

.contact-card h2{font-size:54px;letter-spacing:-.05em;margin-bottom:20px}
.contact-row{padding:18px 0;border-bottom:1px solid rgba(255,250,241,.14)}
.contact-row small{display:block;color:var(--gold-2);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px}
.contact-row b{font-size:18px}

.direct-contact-panel{
 padding:38px;
 border-radius:28px;
 background:rgba(255,250,241,.86);
 border:1px solid var(--line);
 box-shadow:0 18px 46px rgba(22,18,13,.08);
 display:flex;
 flex-direction:column;
 justify-content:center;
 gap:22px;
}
.direct-contact-panel h3{font-size:36px;letter-spacing:-.03em;}
.direct-contact-panel p{color:var(--muted);line-height:1.72;margin:0;}
.direct-contact-options{display:grid;gap:14px;}
.direct-contact-option{
 padding:20px;
 border-radius:18px;
 background:rgba(255,255,255,.72);
 border:1px solid var(--line);
 transition:transform .22s ease,background .22s ease;
}
.direct-contact-option:hover{transform:translateY(-2px);background:white;}
.direct-contact-option small{display:block;color:var(--gold);letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:900;margin-bottom:8px;}
.direct-contact-option b{font-size:18px;}
.direct-contact-note{font-size:14px;color:#6b5d4a;}

.quick-actions{
 position:fixed;
 right:18px;
 bottom:18px;
 z-index:60;
 display:grid;
 gap:10px;
 }

.quick-actions a{
 width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
 background:var(--black);color:var(--ivory);box-shadow:0 14px 32px rgba(22,18,13,.25);
 font-size:15px;
 font-weight:800;
 border:1px solid rgba(255,255,255,.12);
 }
.quick-actions a:first-child{background:#1f7a4d}

 footer{
 padding:38px 56px;
 background:var(--black);
 color:#efe2cc;
 display:flex;
 justify-content:space-between;
 gap:20px;
 flex-wrap:wrap;
 }
 footer b{color:var(--ivory)}

 @media(max-width:1100px){
.desktop-nav{display:none}
.menu-toggle{display:flex}
.hero{grid-template-columns:1fr;padding:120px 28px 42px}
.hero-media{min-height:560px}
.photo-main{height:560px;width:82%}
.photo-small{width:260px;height:330px}
.weather-card{align-items:flex-start}
 section{padding:70px 28px}
.dark-band{margin:40px 28px;padding:40px;grid-template-columns:1fr}
.tourism,.contact-wrap{grid-template-columns:1fr}
.tourism-gallery{grid-template-columns:repeat(4,1fr)}
.tourism-map{position:relative;top:0;min-height:440px}
.grid-3,.reviews{grid-template-columns:1fr}
.grid-4{grid-template-columns:repeat(2,1fr)}
 }

 @media(max-width:640px){
.topbar{padding:12px 16px}
.brand strong{font-size:14px}
.brand span{font-size:11px}
.crest{width:36px;height:36px}
.nav-actions.btn-light{display:none}
.lang-switch{gap:2px;padding:3px}
.lang-switch button{min-width:32px;min-height:30px;font-size:12px}
.nav-actions.btn-dark{padding:10px 13px;font-size:13px;min-height:40px}
.hero{padding:104px 18px 34px;gap:24px}
 h1{font-size:56px}
.lead{font-size:16px}
.hero-actions{display:grid;grid-template-columns:1fr;gap:10px}
.weather-card{display:block}
.weather-meta{text-align:left;margin-top:8px}
.hero-media{min-height:420px}
.photo-main{width:100%;height:420px;border-radius:24px;border-width:6px}
.photo-small,.floating-note{display:none}
 section{padding:58px 18px}
.section-head{display:block}
.section-head p{margin-top:16px}
.grid-4{grid-template-columns:1fr}
.tourism-gallery{grid-template-columns:repeat(2,1fr);gap:10px}
.tourism-thumb,.tourism-thumb img{min-height:132px}
.dark-band{margin:24px 18px;padding:30px;border-radius:24px}
.offer-item{display:block}
.card img{height:230px}
.place{grid-template-columns:1fr}
.place img{width:100%;height:210px}
.contact-card{padding:26px;border-radius:24px}
.contact-card h2{font-size:42px}
 footer{padding:30px 18px;padding-bottom:100px}
 }

 @media(prefers-reduced-motion:reduce){
 *,*::before,*::after{
 animation-duration:0.01ms !important;
 animation-iteration-count:1 !important;
 transition-duration:.1ms !important;
 scroll-behavior:auto !important;
 }
 }

 

.room-grid{
 display:grid;
 grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
 gap:24px;
 align-items:start;
 }
.room-card{height:100%;}
.room-gallery{
 display:grid;
 grid-template-columns:repeat(3,1fr);
 gap:8px;
 padding:10px;
 background:rgba(255,250,241,.72);
 }
.room-gallery img{
 width:100%;
 height:118px;
 object-fit:cover;
 border-radius:14px;
 border:1px solid rgba(22,18,13,.08);
 }
.room-gallery.room-main{
 grid-column:1/-1;
 height:300px;
 border-radius:18px;
 }
 @media(max-width:1100px){.room-grid{grid-template-columns:1fr}.room-gallery.room-main{height:360px}}
 @media(max-width:640px){.room-gallery{grid-template-columns:repeat(2,1fr)}.room-gallery.room-main{height:260px}.room-gallery img{height:108px}}


/* v27 compact gallery cards */
.gallery-card{
  cursor:pointer;
  position:relative;
  isolation:isolate;
}
.gallery-card > img{
  width:100%;
  height:430px;
  object-fit:cover;
}
.structure-card{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  align-items:stretch;
}
.structure-card > img{height:520px;}
.structure-card .card-body{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:42px;
}
.compact-room-grid .room-card > img{
  height:340px;
}
.gallery-kicker{
  color:var(--gold);
  font-size:12px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
  margin-bottom:12px;
}
.gallery-cta{
  display:inline-flex;
  width:max-content;
  margin-top:18px;
  padding:10px 14px;
  border-radius:999px;
  background:var(--black);
  color:var(--ivory);
  font-size:13px;
  font-weight:800;
}
.gallery-card:hover .gallery-cta{background:#000;}
.gallery-modal{
  position:fixed;
  inset:0;
  z-index:120;
  display:none;
  align-items:center;
  justify-content:center;
  padding:26px;
  background:rgba(22,18,13,.72);
  backdrop-filter:blur(14px);
}
.gallery-modal.is-open{display:flex;}
.gallery-dialog{
  width:min(1120px,100%);
  max-height:92vh;
  overflow:hidden;
  border-radius:30px;
  background:var(--ivory);
  box-shadow:0 40px 120px rgba(0,0,0,.32);
  border:1px solid rgba(255,255,255,.5);
}
.gallery-modal-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:18px;
  padding:20px 24px;
  border-bottom:1px solid var(--line);
}
.gallery-modal-head h3{font-size:34px;}
.gallery-close{
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid var(--line);
  background:white;
  cursor:pointer;
  font-size:24px;
  line-height:1;
}
.gallery-stage{
  position:relative;
  background:#120f0b;
}
.gallery-stage img{
  width:100%;
  height:min(62vh,680px);
  object-fit:contain;
  background:#120f0b;
}
.gallery-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.42);
  background:rgba(255,250,241,.88);
  cursor:pointer;
  font-size:26px;
  font-weight:800;
}
.gallery-prev{left:18px;}
.gallery-next{right:18px;}
.gallery-caption{
  padding:12px 24px;
  color:var(--muted);
  font-weight:800;
  background:var(--ivory);
}
.gallery-thumbs{
  display:flex;
  gap:10px;
  padding:14px 20px 20px;
  overflow-x:auto;
  background:var(--ivory);
}
.gallery-thumbs button{
  flex:0 0 110px;
  border:2px solid transparent;
  border-radius:14px;
  padding:0;
  overflow:hidden;
  background:transparent;
  cursor:pointer;
}
.gallery-thumbs button.is-active{border-color:var(--gold);}
.gallery-thumbs img{width:110px;height:74px;object-fit:cover;}
@media(max-width:1100px){
  .structure-card{grid-template-columns:1fr;}
  .structure-card > img{height:430px;}
  .compact-room-grid{grid-template-columns:1fr;}
}
@media(max-width:640px){
  .gallery-card > img,.structure-card > img,.compact-room-grid .room-card > img{height:260px;}
  .structure-card .card-body{padding:26px;}
  .gallery-modal{padding:12px;}
  .gallery-dialog{border-radius:22px;}
  .gallery-modal-head h3{font-size:26px;}
  .gallery-stage img{height:54vh;}
  .gallery-nav{width:40px;height:40px;font-size:22px;}
  .gallery-thumbs button{flex-basis:86px;}
  .gallery-thumbs img{width:86px;height:60px;}
}
