/* ==========================================================================
   TOP Garden Aparthotel – theme styles
   Colours and type follow the hotel's brand (logo gold, deep garden green,
   Montserrat). Change the tokens below to restyle the whole site.
   ========================================================================== */

:root {
	--tg-green: #1a4335;
	--tg-green-dark: #10291f;
	--tg-olive: #6c7a30;
	--tg-gold: #c9a97a;
	--tg-khaki: #938767;
	--tg-ink: #141416;
	--tg-text: #3b3d40;
	--tg-muted: #6f7277;
	--tg-line: #e4e1da;
	--tg-soft: #f6f3ee;
	--tg-white: #fff;

	--tg-font: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
	--tg-wrap: 1240px;
	--tg-narrow: 860px;
	--tg-gutter: clamp(16px, 4vw, 40px);
	--tg-section: clamp(56px, 8vw, 110px);
	--tg-radius: 2px;
	--tg-header-h: 132px;
	--tg-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--tg-font);
	font-size: 16px;
	font-weight: 400;
	line-height: 1.75;
	color: var(--tg-text);
	background: var(--tg-white);
	-webkit-font-smoothing: antialiased;
	overflow-x: hidden;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--tg-green); text-underline-offset: 3px; }
a:hover { color: var(--tg-olive); }
h1, h2, h3, h4 { color: var(--tg-ink); font-weight: 500; line-height: 1.25; margin: 0 0 .6em; }
p { margin: 0 0 1em; }
button { font: inherit; cursor: pointer; }
:focus-visible { outline: 2px solid var(--tg-gold); outline-offset: 3px; }
.tg-icon { width: 1.25em; height: 1.25em; flex: none; stroke-width: 1.5; }
.screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; overflow: hidden;
	clip: rect(1px, 1px, 1px, 1px); white-space: nowrap;
}
.skip-link:focus {
	clip: auto; width: auto; height: auto; z-index: 1000; top: 8px; left: 8px;
	padding: 10px 16px; background: var(--tg-white); color: var(--tg-green);
}

.tg-wrap { width: 100%; max-width: calc(var(--tg-wrap) + 2 * var(--tg-gutter)); margin: 0 auto; padding: 0 var(--tg-gutter); }
.tg-wrap--narrow { max-width: calc(var(--tg-narrow) + 2 * var(--tg-gutter)); }
.tg-section { padding: var(--tg-section) 0; }
.tg-section + .tg-section { padding-top: 0; }
.tg-section--bordered { padding-top: var(--tg-section) !important; }
.tg-section--bordered .tg-wrap { border-top: 1px solid var(--tg-line); padding-top: var(--tg-section); }
.tg-section--bordered .tg-wrap { padding-top: calc(var(--tg-section) * .7); }

/* Rich text */
.tg-prose { font-size: 15px; }
.tg-prose > :last-child { margin-bottom: 0; }
.tg-prose h2, .tg-prose h3 { font-size: 18px; margin-top: 1.6em; }
.tg-prose ul, .tg-prose ol { padding-left: 1.2em; }
.tg-prose li { margin-bottom: .4em; }
.tg-prose strong { color: var(--tg-ink); font-weight: 600; }
.tg-prose table { width: 100%; border-collapse: collapse; }
.tg-prose td, .tg-prose th { border-bottom: 1px solid var(--tg-line); padding: 8px 6px; text-align: left; }

/* ---------- Buttons & links ---------- */
.tg-btn, .wp-block-button__link, .tg-content .wpcf7-submit {
	display: inline-flex; align-items: center; justify-content: center; gap: .6em;
	min-height: 50px; padding: 0 28px;
	border: 1px solid var(--tg-green); border-radius: var(--tg-radius);
	background: var(--tg-green); color: var(--tg-white);
	font: 500 13px/1.2 var(--tg-font); letter-spacing: .12em; text-transform: uppercase; text-decoration: none;
	transition: background .25s var(--tg-ease), color .25s var(--tg-ease), border-color .25s var(--tg-ease);
}
.tg-btn:hover, .wp-block-button__link:hover, .tg-content .wpcf7-submit:hover { background: var(--tg-green-dark); border-color: var(--tg-green-dark); color: var(--tg-white); }
.tg-btn--outline, .is-style-outline .wp-block-button__link { background: transparent; color: var(--tg-green); }
.tg-btn--outline:hover, .is-style-outline .wp-block-button__link:hover { background: var(--tg-green); color: var(--tg-white); }
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.tg-link {
	display: inline-flex; align-items: center; gap: .5em; padding: 0; border: 0; background: none;
	color: var(--tg-green); font: 500 12px/1.4 var(--tg-font); letter-spacing: .14em; text-transform: uppercase; text-decoration: none;
}
.tg-link:hover { color: var(--tg-olive); }
.tg-link .tg-icon { width: 1.3em; height: 1.3em; }

/* ---------- Section heading ---------- */
.tg-head { margin-bottom: clamp(28px, 4vw, 48px); }
.tg-head__title { font-size: clamp(26px, 3.2vw, 40px); font-weight: 300; letter-spacing: .01em; margin: 0; }
.tg-head__subtitle {
	position: relative; display: inline-block; margin: 10px 0 0; padding-left: 58px;
	color: var(--tg-khaki); font-size: 13px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase;
}
.tg-head__subtitle::before { content: ""; position: absolute; left: 0; top: 50%; width: 44px; height: 1px; background: var(--tg-gold); }
.tg-head--center { text-align: center; }
.tg-head--center .tg-head__subtitle { padding: 0 58px; }
.tg-head--center .tg-head__subtitle::after { content: ""; position: absolute; right: 0; top: 50%; width: 44px; height: 1px; background: var(--tg-gold); }

/* ---------- Header ---------- */
.tg-header {
	position: fixed; inset: 0 0 auto; z-index: 50;
	color: var(--tg-white);
	transition: background .3s var(--tg-ease), box-shadow .3s var(--tg-ease), color .3s;
}
.tg-header::before { /* soft shade for legibility over photos */
	content: ""; position: absolute; inset: 0 0 -40px; z-index: -1; pointer-events: none;
	background: linear-gradient(to bottom, rgba(0, 0, 0, .45), rgba(0, 0, 0, 0));
	transition: opacity .3s;
}
.tg-header__top {
	display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 20px;
	max-width: calc(var(--tg-wrap) + 2 * var(--tg-gutter)); margin: 0 auto; padding: 14px var(--tg-gutter) 0;
}
.tg-header__side { display: flex; align-items: center; gap: 22px; }
.tg-header__side--right { justify-content: flex-end; }
.tg-logo { display: block; line-height: 0; }
.tg-logo__full { width: 118px; height: auto; transition: width .3s var(--tg-ease); }
.tg-logo__mark { display: none; width: 46px; height: 46px; }
.tg-header .tg-socials { display: flex; gap: 14px; }
.tg-header .tg-socials__label { display: none; }
.tg-header a, .tg-header .tg-langs span { color: inherit; }
.tg-header__book { min-height: 44px; padding: 0 20px; background: var(--tg-gold); border-color: var(--tg-gold); color: var(--tg-ink); }
.tg-header__book:hover { background: var(--tg-white); border-color: var(--tg-white); color: var(--tg-ink); }

.tg-langs { display: flex; gap: 12px; margin: 0; padding: 0; list-style: none; font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.tg-langs a { text-decoration: none; opacity: .75; }
.tg-langs a:hover { opacity: 1; }
.tg-langs .is-active { border-bottom: 1px solid var(--tg-gold); }

.tg-nav { max-width: calc(var(--tg-wrap) + 2 * var(--tg-gutter)); margin: 0 auto; padding: 0 var(--tg-gutter); }
.tg-nav__list { display: flex; justify-content: center; flex-wrap: wrap; gap: 4px 30px; margin: 0; padding: 10px 0 14px; list-style: none; }
.tg-nav__list > li { position: relative; display: flex; align-items: center; }
.tg-nav__list a { display: block; padding: 6px 0; color: inherit; font-size: 12px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; text-decoration: none; }
.tg-nav__list > li > a { position: relative; }
.tg-nav__list > li > a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 0; height: 1px; background: var(--tg-gold); transition: right .3s var(--tg-ease); }
.tg-nav__list > li:hover > a::after, .tg-nav__list > .current-menu-item > a::after, .tg-nav__list > .current-menu-ancestor > a::after { right: 0; }
.tg-nav__toggle { display: none; border: 0; background: none; color: inherit; padding: 4px; }
.tg-nav__list .sub-menu {
	position: absolute; top: 100%; left: 50%; min-width: 220px; margin: 0; padding: 12px 0; list-style: none;
	background: var(--tg-white); box-shadow: 0 16px 40px rgba(0, 0, 0, .12);
	opacity: 0; visibility: hidden; transform: translate(-50%, 8px); transition: all .25s var(--tg-ease);
}
.tg-nav__list li:hover > .sub-menu, .tg-nav__list li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.tg-nav__list .sub-menu a { padding: 8px 22px; color: var(--tg-ink); letter-spacing: .1em; }
.tg-nav__list .sub-menu a:hover { color: var(--tg-green); background: var(--tg-soft); }
.tg-nav__mobile-extra { display: none; }

.tg-burger { display: none; align-items: center; gap: 10px; border: 0; background: none; color: inherit; padding: 6px 0; font-size: 12px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.tg-burger__icon { display: grid; gap: 5px; width: 24px; }
.tg-burger__icon span { display: block; height: 1.5px; background: currentColor; transition: transform .3s, opacity .3s; }

/* Logged-in editors: keep the header below the WordPress admin bar */
.admin-bar .tg-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .tg-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .tg-header { top: 0; } }

/* Solid header: after scrolling, and on pages without a banner */
.tg-header.is-solid, .no-hero .tg-header { background: var(--tg-white); color: var(--tg-ink); box-shadow: 0 1px 0 var(--tg-line); }
.tg-header.is-solid::before, .no-hero .tg-header::before { opacity: 0; }
.tg-header.is-solid .tg-header__top, .no-hero .tg-header .tg-header__top { padding-top: 8px; }
.tg-header.is-solid .tg-logo__full, .no-hero .tg-header .tg-logo__full { display: none; }
.tg-header.is-solid .tg-logo__mark, .no-hero .tg-header .tg-logo__mark { display: block; }
.tg-header.is-solid .tg-header__book, .no-hero .tg-header .tg-header__book { background: var(--tg-green); border-color: var(--tg-green); color: var(--tg-white); }
.tg-header.is-solid .tg-nav__list, .no-hero .tg-header .tg-nav__list { padding: 4px 0 10px; }
.no-hero .tg-main { padding-top: var(--tg-header-h); }

/* ---------- Hero banner ---------- */
.tg-hero { position: relative; display: flex; flex-direction: column; justify-content: flex-end; color: var(--tg-white); background: var(--tg-green-dark); overflow: hidden; }
.tg-hero--full { min-height: 100vh; min-height: 100svh; }
.tg-hero--medium { min-height: clamp(460px, 62vh, 640px); }
.tg-hero__media, .tg-hero__media .swiper-wrapper, .tg-hero__slide { position: absolute; inset: 0; }
.tg-hero__media .swiper-wrapper { display: block; }
.tg-hero__media .swiper-wrapper { position: absolute; }
.tg-hero__media.swiper .swiper-wrapper { display: flex; }
.tg-hero__slide { width: 100%; height: 100%; }
.tg-hero__media.swiper .tg-hero__slide { position: relative; }
.tg-hero__img { width: 100%; height: 100%; object-fit: cover; }
.tg-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, .5), rgba(0, 0, 0, .05) 55%, rgba(0, 0, 0, .2)); pointer-events: none; z-index: 1; }
.tg-hero--full .js-hero-slider .tg-hero__img { animation: tg-kenburns 14s ease-out both; }
@keyframes tg-kenburns { from { transform: scale(1.08); } to { transform: scale(1); } }
.tg-hero__titles { position: relative; z-index: 2; text-align: center; padding: calc(var(--tg-header-h) + 20px) var(--tg-gutter) 40px; margin-top: auto; }
.tg-hero__title { color: var(--tg-white); font-size: clamp(32px, 5vw, 60px); font-weight: 300; letter-spacing: .04em; margin: 0; }
.tg-hero__subtitle { margin: 12px 0 0; font-size: 14px; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; color: var(--tg-gold); }
.tg-hero__scroll {
	position: absolute; z-index: 2; right: var(--tg-gutter); bottom: 32px;
	display: flex; flex-direction: column; align-items: center; gap: 4px;
	color: var(--tg-white); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; text-decoration: none;
}
.tg-hero__scroll .tg-icon { animation: tg-bounce 2s infinite; }
@keyframes tg-bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(5px); } }

/* ---------- Booking bar ---------- */
.tg-bar {
	position: relative; z-index: 3; display: flex; align-items: stretch; align-self: center;
	width: min(920px, calc(100% - 2 * var(--tg-gutter))); margin: 0 auto 90px;
	background: var(--tg-white); color: var(--tg-ink); box-shadow: 0 20px 50px rgba(0, 0, 0, .2);
}
.tg-hero--medium .tg-bar { margin-bottom: 60px; }
.tg-bar__box { position: relative; flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 2px; padding: 14px 24px; border-right: 1px solid var(--tg-line); cursor: pointer; }
.tg-bar__label { font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--tg-muted); }
.tg-bar__value { display: flex; align-items: center; gap: 10px; }
.tg-bar__day { font-size: 34px; font-weight: 300; line-height: 1; color: var(--tg-green); }
.tg-bar__my { display: flex; flex-direction: column; font-size: 12px; line-height: 1.3; text-transform: uppercase; letter-spacing: .08em; }
.tg-bar__year { color: var(--tg-muted); }
.tg-bar__input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; border: 0; }
.tg-bar__input::-webkit-calendar-picker-indicator { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.tg-bar__box--guests { cursor: default; }
.tg-bar__steppers { display: flex; flex-direction: column; gap: 2px; }
.tg-bar__steppers button { display: grid; place-items: center; width: 24px; height: 20px; padding: 0; border: 1px solid var(--tg-line); background: var(--tg-white); color: var(--tg-green); }
.tg-bar__steppers button:hover { border-color: var(--tg-green); }
.tg-bar__steppers .tg-icon { width: 14px; height: 14px; }
.tg-bar__submit { flex: 0 0 auto; min-height: auto; padding: 0 34px; border-radius: 0; }

/* ---------- Intro ---------- */
.tg-intro { text-align: center; font-size: clamp(17px, 1.8vw, 21px); font-weight: 300; line-height: 1.75; color: var(--tg-ink); }

/* ---------- Content + photo ---------- */
.tg-split { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: clamp(32px, 6vw, 90px); }
.tg-split--wide { grid-template-columns: 1.3fr 1fr; }
.tg-split--reverse .tg-split__media { order: 2; }
.tg-split__media { position: relative; }
.tg-split__media::before { content: ""; position: absolute; inset: 24px -24px -24px 24px; border: 1px solid var(--tg-gold); z-index: -1; }
.tg-split--reverse .tg-split__media::before { inset: 24px 24px -24px -24px; }
.tg-split--wide .tg-split__media::before { display: none; }
.tg-split__img { width: 100%; height: auto; aspect-ratio: 56 / 57; object-fit: cover; }
.tg-split--wide .tg-split__img { aspect-ratio: auto; }

/* ---------- Galleries ---------- */
.tg-gallery-slider__bar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }
.tg-gallery-slider .swiper { padding: 0 var(--tg-gutter); }
.tg-gallery-slider .swiper-slide { width: min(80vw, 820px); }
.tg-gallery-slider__item, .tg-masonry__item { position: relative; display: block; overflow: hidden; }
.tg-gallery-slider__item img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform .6s var(--tg-ease); }
.tg-gallery-slider__item:hover img, .tg-masonry__item:hover img { transform: scale(1.04); }
.tg-zoom { position: absolute; right: 16px; bottom: 16px; display: grid; place-items: center; width: 44px; height: 44px; background: rgba(255, 255, 255, .9); color: var(--tg-green); opacity: 0; transition: opacity .3s; }
a:hover > .tg-zoom, a:focus-visible > .tg-zoom { opacity: 1; }
.tg-masonry { columns: 3 300px; column-gap: 16px; }
.tg-masonry__item { margin-bottom: 16px; break-inside: avoid; }
.tg-masonry__item img { width: 100%; transition: transform .6s var(--tg-ease); }

.tg-arrows { display: flex; gap: 8px; }
.tg-arrow { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 1px solid var(--tg-line); background: var(--tg-white); color: var(--tg-green); transition: all .25s; }
.tg-arrow:hover { background: var(--tg-green); border-color: var(--tg-green); color: var(--tg-white); }
.tg-arrow.swiper-button-disabled { opacity: .35; pointer-events: none; }

/* ---------- Apartment cards ---------- */
.tg-section-top { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 16px 32px; margin-bottom: clamp(28px, 4vw, 48px); }
.tg-section-top .tg-head { margin: 0; margin-right: auto; }
.tg-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); gap: 32px; }
.tg-card { display: flex; flex-direction: column; height: 100%; background: var(--tg-white); border: 1px solid var(--tg-line); color: inherit; text-decoration: none; transition: box-shadow .3s var(--tg-ease), transform .3s var(--tg-ease); }
a.tg-card:hover { box-shadow: 0 20px 44px rgba(0, 0, 0, .1); transform: translateY(-3px); color: inherit; }
.tg-card__media { overflow: hidden; aspect-ratio: 715 / 565; background: var(--tg-soft); }
.tg-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--tg-ease); }
a.tg-card:hover .tg-card__media img { transform: scale(1.05); }
.tg-card__body { display: flex; flex-direction: column; flex: 1; padding: 26px 26px 28px; }
.tg-card__price { margin: 0 0 6px; color: var(--tg-muted); font-size: 12px; text-transform: uppercase; letter-spacing: .1em; }
.tg-card__price strong { color: var(--tg-green); font-size: 22px; font-weight: 500; letter-spacing: 0; }
.tg-card__title { font-size: 22px; font-weight: 400; margin: 0 0 10px; }
.tg-card__text { font-size: 14px; color: var(--tg-muted); margin-bottom: 16px; }
.tg-card__facts { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: auto 0 22px; padding: 0; list-style: none; font-size: 13px; }
.tg-card__facts li { display: flex; align-items: center; gap: 8px; }
.tg-card__facts .tg-icon { color: var(--tg-khaki); }
.tg-card__btn { align-self: flex-start; }
.js-card-slider .swiper-slide { width: min(85vw, 390px); height: auto; }

/* ---------- Differentiators ---------- */
.tg-features { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 40px 32px; margin: 0; padding: 0; list-style: none; text-align: center; }
.tg-feature__icon { display: inline-grid; place-items: center; width: 72px; height: 72px; margin-bottom: 18px; border: 1px solid var(--tg-gold); border-radius: 50%; color: var(--tg-green); }
.tg-feature__icon .tg-icon { width: 30px; height: 30px; stroke-width: 1.25; }
.tg-feature__title { font-size: 15px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; line-height: 1.5; margin-bottom: 10px; }
.tg-feature__text { font-size: 14px; color: var(--tg-muted); margin: 0; }

/* ---------- Map ---------- */
.tg-section--map { padding-bottom: 0; }
.tg-map { height: clamp(360px, 50vw, 520px); background: var(--tg-soft); filter: saturate(.85); }
.tg-map__link { text-align: center; margin: 18px auto 0; padding-bottom: 24px; }
.leaflet-container { font-family: var(--tg-font); }

/* ---------- Attractions ---------- */
.tg-attractions__intro { max-width: var(--tg-narrow); margin: 0 auto clamp(40px, 5vw, 64px); text-align: center; }
.tg-attractions { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 520px), 1fr)); gap: 32px 48px; margin: 0; padding: 0; list-style: none; }
.tg-attraction { display: grid; grid-template-columns: 170px 1fr; gap: 24px; align-items: start; }
.tg-attraction__media img { width: 170px; height: 170px; object-fit: cover; }
.tg-attraction__title { font-size: 19px; margin-bottom: 4px; }
.tg-attraction__distance { display: flex; align-items: center; gap: 6px; margin: 0 0 8px; color: var(--tg-khaki); font-size: 13px; font-weight: 500; }
.tg-attraction__text { font-size: 14px; }
.tg-attraction__text p { margin-bottom: .6em; }

/* ---------- Reviews ---------- */
.tg-reviews { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 28px; margin: 0; padding: 0; list-style: none; }
.tg-review figure { height: 100%; margin: 0; padding: 36px 32px; background: var(--tg-soft); display: flex; flex-direction: column; }
.tg-review blockquote { margin: 0; }
.tg-review__title { position: relative; font-size: 18px; font-weight: 500; color: var(--tg-ink); padding-top: 34px; }
.tg-review__title::before { content: "\201C"; position: absolute; top: -14px; left: 0; font-size: 64px; line-height: 1; color: var(--tg-gold); font-family: Georgia, serif; }
.tg-review__text { font-size: 14px; }
.tg-review__text.is-clamped { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.tg-review__more { margin: 6px 0 14px; align-self: flex-start; }
.tg-review figcaption { margin-top: auto; padding-top: 16px; border-top: 1px solid var(--tg-line); font-size: 13px; }
.tg-review figcaption span { color: var(--tg-muted); }

/* ---------- FAQ ---------- */
.tg-faq { border-top: 1px solid var(--tg-line); }
.tg-faq__item { border-bottom: 1px solid var(--tg-line); }
.tg-faq__item summary { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 22px 0; list-style: none; cursor: pointer; color: var(--tg-ink); font-size: 17px; font-weight: 500; }
.tg-faq__item summary::-webkit-details-marker { display: none; }
.tg-faq__item summary .tg-icon { color: var(--tg-khaki); transition: transform .3s; }
.tg-faq__item[open] summary .tg-icon { transform: rotate(180deg); }
.tg-faq__answer { padding: 0 0 24px; }

/* ---------- Contact ---------- */
.tg-contact { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(32px, 6vw, 80px); align-items: start; }
.tg-contact__data h3 { font-size: 15px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; margin-top: 1.8em; }
.tg-contact__data h3:first-child { margin-top: 0; }
.tg-contact__form { padding: clamp(28px, 4vw, 48px); background: var(--tg-soft); }
.tg-contact__form-title { font-size: 24px; font-weight: 300; margin-bottom: 20px; }
.tg-socials__title { font-size: 15px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; margin-top: 2em; }
.tg-socials { display: flex; flex-wrap: wrap; gap: 10px 22px; margin: 0; padding: 0; list-style: none; }
.tg-socials a { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; font-size: 13px; }

/* Contact Form 7 */
.tg-form { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
.tg-form__field--wide, .tg-form__consent, .tg-form__note, .tg-form__submit { grid-column: 1 / -1; }
.tg-form label { display: block; font-size: 12px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; color: var(--tg-ink); }
.tg-form input[type="text"], .tg-form input[type="email"], .tg-form input[type="tel"], .tg-form textarea {
	width: 100%; margin-top: 6px; padding: 13px 14px; border: 1px solid var(--tg-line); border-radius: var(--tg-radius);
	background: var(--tg-white); font: 400 15px/1.5 var(--tg-font); color: var(--tg-ink);
}
.tg-form input:focus, .tg-form textarea:focus { outline: none; border-color: var(--tg-green); }
.tg-form textarea { height: 150px; resize: vertical; }
.tg-form__consent { font-size: 12px; line-height: 1.6; }
.tg-form__consent input { margin-right: 6px; }
.tg-form__note { font-size: 12px; color: var(--tg-muted); }
.wpcf7-not-valid-tip { font-size: 12px; color: #b3261e; }
.wpcf7-response-output { margin: 16px 0 0 !important; padding: 12px 14px !important; font-size: 14px; }
.wpcf7-spinner { vertical-align: middle; }

/* ---------- Apartment detail ---------- */
.tg-apartment__bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding-bottom: 28px; margin-bottom: 28px; border-bottom: 1px solid var(--tg-line); }
.tg-apartment__price { margin: 0; color: var(--tg-muted); font-size: 13px; text-transform: uppercase; letter-spacing: .1em; }
.tg-apartment__price strong { color: var(--tg-green); font-size: 28px; font-weight: 400; letter-spacing: 0; }
.tg-apartment__spec { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 32px; margin: 0 0 32px; padding: 0; list-style: none; font-size: 14px; }
.tg-apartment__spec li { display: flex; align-items: center; gap: 8px; }
.tg-apartment__spec .tg-icon { color: var(--tg-khaki); }
.tg-apartment__spec-intro { font-weight: 600; color: var(--tg-ink); }
.tg-apartment__h { font-size: 22px; font-weight: 300; margin: 56px 0 24px; }
.tg-amenities { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px 24px; margin: 0; padding: 0; list-style: none; font-size: 14px; }
.tg-amenities li { display: flex; align-items: center; gap: 12px; }
.tg-amenities .tg-icon { color: var(--tg-green); width: 22px; height: 22px; }
.tg-policies { font-size: 14px; }
.tg-policies__times { display: flex; flex-wrap: wrap; gap: 8px 40px; margin-bottom: 12px; }
.tg-policies__times p { display: flex; align-items: center; gap: 8px; }
.tg-policies__row { padding: 18px 0; border-top: 1px solid var(--tg-line); }
.tg-policies__row h3 { font-size: 14px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; margin-bottom: 6px; }
.tg-policies__row p { margin: 0; }
.tg-apartment__cta { margin-top: 40px; text-align: center; }

/* ---------- Page title (pages without a banner), 404 ---------- */
.tg-page-title { padding-bottom: 20px; }
.tg-404 { text-align: center; min-height: 50vh; }
.tg-404__code { font-size: 90px; font-weight: 200; color: var(--tg-gold); line-height: 1; margin-bottom: 10px; }

/* ---------- Footer ---------- */
.tg-newsletter { background: var(--tg-soft); padding: 48px 0; }
.tg-newsletter__inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px 40px; }
.tg-newsletter__text { max-width: 460px; margin: 0; color: var(--tg-ink); font-size: 18px; font-weight: 300; }
.tg-newsletter__form { flex: 1 1 360px; max-width: 520px; }
.tg-footer__main { padding: 64px 0 48px; background: var(--tg-green); color: rgba(255, 255, 255, .82); font-size: 14px; }
.tg-footer a { color: var(--tg-white); text-decoration: none; }
.tg-footer a:hover { color: var(--tg-gold); }
.tg-footer__grid { display: grid; grid-template-columns: auto 1.2fr 1fr auto; gap: 40px; align-items: start; }
.tg-footer__brand img { width: 110px; }
.tg-footer__contact { font-style: normal; line-height: 1.9; }
.tg-footer__contact strong { color: var(--tg-white); font-weight: 500; }
.tg-footer__menu { margin: 0; padding: 0; list-style: none; columns: 2; column-gap: 32px; }
.tg-footer__menu li { margin-bottom: 8px; break-inside: avoid; }
.tg-footer__menu a { font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.tg-footer .tg-socials { flex-direction: column; }
.tg-footer__bottom { background: var(--tg-green-dark); color: rgba(255, 255, 255, .6); font-size: 12px; }
.tg-footer__bottom-inner { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px; padding-top: 16px; padding-bottom: 16px; }
.tg-footer__bottom p { margin: 0; }
.tg-mobile-book { display: none; }

/* ---------- Dialog (booking fallback) ---------- */
.tg-dialog { max-width: 480px; width: calc(100% - 32px); padding: 44px 36px 36px; border: 0; text-align: center; box-shadow: 0 30px 80px rgba(0, 0, 0, .3); }
.tg-dialog::backdrop { background: rgba(16, 41, 31, .6); }
.tg-dialog h2 { font-size: 22px; font-weight: 400; }
.tg-dialog__close { position: absolute; top: 12px; right: 12px; border: 0; background: none; color: var(--tg-muted); padding: 6px; }
.tg-dialog__contacts { display: grid; gap: 10px; margin: 24px 0 0; }
.tg-dialog__contacts .tg-btn { text-transform: none; letter-spacing: .02em; font-size: 15px; }

/* ---------- Swiper tweaks ---------- */
.swiper { overflow: hidden; }
.js-card-slider { overflow: visible; }
.tg-section--slider { overflow: hidden; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.tg-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 960px) {
	:root { --tg-header-h: 72px; }
	.tg-header__top { grid-template-columns: auto 1fr; padding: 10px var(--tg-gutter); }
	.tg-header__side--left, .tg-header__langs { display: none; }
	.tg-logo { order: -1; }
	.tg-logo__full { width: 76px; }
	.tg-header.is-solid .tg-logo__mark, .no-hero .tg-header .tg-logo__mark { width: 40px; height: 40px; }
	.tg-header__book { display: none; }
	.tg-burger { display: inline-flex; }
	.tg-nav {
		position: fixed; inset: 0 0 0 auto; width: min(360px, 88vw); height: 100vh; height: 100dvh; padding: 90px 28px 40px;
		background: var(--tg-white); color: var(--tg-ink); overflow-y: auto;
		transform: translateX(100%); transition: transform .35s var(--tg-ease); box-shadow: -20px 0 50px rgba(0, 0, 0, .15);
	}
	.menu-open .tg-nav { transform: none; }
	.menu-open .tg-burger { position: relative; z-index: 60; color: var(--tg-ink); }
	.menu-open .tg-burger__icon span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
	.menu-open .tg-burger__icon span:nth-child(2) { opacity: 0; }
	.menu-open .tg-burger__icon span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
	.tg-nav__list { display: block; padding: 0; }
	.tg-nav__list > li { display: flex; flex-wrap: wrap; justify-content: space-between; border-bottom: 1px solid var(--tg-line); }
	.tg-nav__list a { padding: 14px 0; font-size: 13px; }
	.tg-nav__list > li > a::after { display: none; }
	.tg-nav__toggle { display: block; color: var(--tg-green); }
	.tg-nav__list .sub-menu { position: static; flex-basis: 100%; min-width: 0; padding: 0 0 10px 12px; box-shadow: none; opacity: 1; visibility: visible; transform: none; display: none; }
	.tg-nav__list li.is-open > .sub-menu { display: block; }
	.tg-nav__list li.is-open > .tg-nav__toggle .tg-icon { transform: rotate(180deg); }
	.tg-nav__list .sub-menu a { padding: 8px 0; }
	.tg-nav__mobile-extra { display: grid; gap: 24px; margin-top: 32px; }
	.tg-nav__mobile-extra .tg-socials { flex-direction: column; }
	.tg-nav__mobile-extra .tg-socials__label { display: inline; }
	.menu-open::after { content: ""; position: fixed; inset: 0; z-index: 40; background: rgba(0, 0, 0, .4); }

	.tg-bar { flex-wrap: wrap; margin-bottom: 70px; }
	.tg-bar__box { flex: 1 1 33%; padding: 12px 16px; }
	.tg-bar__box--guests { border-right: 0; }
	.tg-bar__submit { flex: 1 1 100%; min-height: 52px; }

	.tg-split, .tg-split--wide, .tg-contact { grid-template-columns: 1fr; }
	.tg-split--reverse .tg-split__media { order: 0; }
	.tg-split__media::before { inset: 16px -12px -16px 12px; }
	.tg-split--reverse .tg-split__media::before { inset: 16px -12px -16px 12px; }
	.tg-split__media { margin-right: 12px; }

	.tg-mobile-book { display: block; position: fixed; inset: auto 0 0; z-index: 45; transform: translateY(100%); transition: transform .3s var(--tg-ease); }
	.tg-mobile-book.is-visible { transform: none; }
	.tg-mobile-book__btn { width: 100%; min-height: 56px; border-radius: 0; background: var(--tg-gold); border-color: var(--tg-gold); color: var(--tg-ink); }
	body { padding-bottom: 56px; }
}

@media (max-width: 640px) {
	body { font-size: 15px; }
	.tg-hero--full { min-height: 88svh; }
	.tg-hero__scroll { display: none; }
	.tg-bar__day { font-size: 26px; }
	.tg-bar__box { flex-basis: 50%; }
	.tg-bar__box--guests { flex-basis: 100%; flex-direction: row; justify-content: space-between; align-items: center; border-top: 1px solid var(--tg-line); }
	.tg-bar__box--checkout, .tg-bar__box:nth-child(2) { border-right: 0; }
	.tg-attraction { grid-template-columns: 110px 1fr; gap: 16px; }
	.tg-attraction__media img { width: 110px; height: 110px; }
	.tg-form { grid-template-columns: 1fr; }
	.tg-footer__grid { grid-template-columns: 1fr; text-align: left; }
	.tg-footer__menu { columns: 1; }
	.tg-head--center .tg-head__subtitle { padding: 0; }
	.tg-head--center .tg-head__subtitle::before, .tg-head--center .tg-head__subtitle::after { display: none; }
	.tg-gallery-slider .swiper-slide { width: 88vw; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

@media print {
	.tg-header, .tg-bar, .tg-footer__main, .tg-mobile-book, .tg-newsletter { display: none; }
	.tg-hero { min-height: 0; }
}

/* Consent checkbox text: normal case, readable */
.tg-form__consent label, .tg-form__consent .wpcf7-list-item-label { font-size: 12px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--tg-text); }
.tg-form__consent .wpcf7-list-item { margin: 0; }

/* ---------- Site announcement ---------- */
.tg-notice { position: fixed; z-index: 44; bottom: 24px; width: min(360px, calc(100% - 32px)); padding: 22px 44px 20px 22px; background: var(--tg-white); border-top: 3px solid var(--tg-gold); box-shadow: 0 16px 44px rgba(0, 0, 0, .18); font-size: 14px; }
.tg-notice--left { left: 24px; }
.tg-notice--right { right: 24px; }
.tg-notice[hidden] { display: none; }
.tg-notice__text p { margin: 0 0 .6em; }
.tg-notice__close { position: absolute; top: 8px; right: 8px; padding: 6px; border: 0; background: none; color: var(--tg-muted); }
@media (max-width: 960px) { .tg-notice { bottom: 72px; left: 16px; right: 16px; width: auto; } }

/* ==========================================================================
   Visual alignment with the previous website (measured from the live site):
   uppercase section titles, light subtitles with a gold rule, mixed-case
   buttons with gold text, one-apartment-per-slide slider, centred footer.
   ========================================================================== */
:root { --tg-gold: #cfae78; --tg-text: #333; --tg-muted: #555; --tg-ink: #000; }
body { font-size: 16px; }
.tg-prose { font-size: 16px; line-height: 2.06; }

/* Navigation */
.tg-nav__list { gap: 4px 34px; }
.tg-nav__list a { font-size: 15px; font-weight: 500; letter-spacing: .03em; text-transform: none; }
.tg-nav__list .sub-menu a { font-size: 14px; letter-spacing: .02em; }
.tg-logo__full { width: 133px; }

/* Buttons: green with gold text, mixed case */
.tg-btn, .wp-block-button__link, .tg-content .wpcf7-submit {
	min-height: 50px; padding: 0 26px; color: var(--tg-gold); font-size: 14px; font-weight: 400; letter-spacing: .05em; text-transform: none;
}
.tg-btn:hover, .wp-block-button__link:hover, .tg-content .wpcf7-submit:hover { color: var(--tg-white); }
.tg-btn--outline, .is-style-outline .wp-block-button__link { padding: 0 53px; min-height: 56px; background: var(--tg-white); border-color: var(--tg-gold); color: var(--tg-ink); }
.tg-btn--outline:hover, .is-style-outline .wp-block-button__link:hover { background: var(--tg-gold); border-color: var(--tg-gold); color: var(--tg-ink); }
.tg-header__book, .tg-header.is-solid .tg-header__book, .no-hero .tg-header .tg-header__book { background: var(--tg-green); border-color: var(--tg-green); color: var(--tg-gold); min-height: 50px; padding: 0 44px; }
.tg-header__book:hover { background: var(--tg-green-dark); border-color: var(--tg-green-dark); color: var(--tg-white); }
.tg-link { font-size: 14px; font-weight: 500; letter-spacing: .05em; text-transform: none; color: var(--tg-ink); }
.tg-link--more { text-decoration: underline; text-underline-offset: 6px; }

/* Section headings */
.tg-head { position: relative; }
.tg-head__title { font-size: clamp(26px, 2.6vw, 36px); font-weight: 500; line-height: 1.4; letter-spacing: .06em; text-transform: uppercase; color: var(--tg-text); }
.tg-head__subtitle { margin-top: 4px; padding-left: 56px; font-size: 20px; font-weight: 300; line-height: 1.5; letter-spacing: 0; text-transform: none; color: var(--tg-muted); }
.tg-head__subtitle::before { left: 0; width: 40px; background: var(--tg-gold); }
.tg-head--center .tg-head__subtitle { padding: 0 56px; }
.tg-head--center .tg-head__subtitle::after { width: 40px; }
.tg-head::before { /* faint logo watermark behind the title */
	content: ""; position: absolute; z-index: -1; top: -50px; left: -50px; width: 110px; height: 110px;
	background: url("../img/logo-scroll.svg") no-repeat center / contain; opacity: .18;
}
.tg-head--center::before { left: calc(50% - 150px); }
.tg-section { position: relative; z-index: 0; }

/* Intro: large centred text with a gold vertical line below */
.tg-section--intro { padding: 100px 0 0; }
.tg-intro { font-size: clamp(19px, 1.9vw, 25px); font-weight: 400; line-height: 1.88; letter-spacing: .03em; color: var(--tg-text); }
.tg-section--intro::after { content: ""; display: block; width: 1px; height: 75px; margin: 60px auto 0; background: var(--tg-gold); }

/* Text + photo: no frame, photo flush */
.tg-split__media::before { display: none; }
.tg-split__img { aspect-ratio: auto; }
.tg-split { gap: clamp(32px, 8vw, 110px); }

/* Differentiators: left aligned, plain icon with a short gold bar */
.tg-features { text-align: left; gap: 40px 60px; }
.tg-feature__icon { display: block; width: auto; height: auto; margin: 0 0 22px 12px; border: 0; border-radius: 0; }
.tg-feature__icon .tg-icon { width: 46px; height: 46px; stroke-width: 1.1; color: var(--tg-green); }
.tg-feature__icon::after { content: ""; display: block; width: 52px; height: 3px; margin: 26px 0 0 -12px; background: var(--tg-gold); }
.tg-feature__title { font-size: 17px; font-weight: 500; letter-spacing: .05em; text-transform: none; line-height: 1.33; margin-bottom: 18px; color: var(--tg-ink); }
.tg-feature__text { font-size: 15px; line-height: 1.73; color: var(--tg-text); }

/* Apartment cards */
.tg-card { border: 0; }
a.tg-card:hover { box-shadow: none; transform: none; }
.tg-card__title { font-size: 24px; font-weight: 600; letter-spacing: .05em; color: var(--tg-gold); }
.tg-card__text { font-size: 16px; line-height: 2.06; color: var(--tg-text); }
.tg-card__facts { font-size: 14px; }
.tg-card__facts .tg-icon { color: var(--tg-gold); }
.tg-card__price { font-size: 16px; text-transform: none; letter-spacing: 0; color: var(--tg-muted); }
.tg-card__price strong { font-size: 26px; font-weight: 600; color: var(--tg-ink); }
.tg-card__btn { min-height: 56px; padding: 0 26px; background: var(--tg-green); border-color: var(--tg-green); color: var(--tg-gold); }
.tg-cards .tg-card__body { padding: 26px 0 0; }

/* Slider: one apartment per slide - text left, big photo right */
.js-card-slider .swiper-slide { width: 100%; }
.js-card-slider .tg-card { display: grid; grid-template-columns: 1fr minmax(0, 715px); gap: clamp(24px, 6vw, 110px); align-items: center; }
.js-card-slider .tg-card__media { order: 2; aspect-ratio: 715 / 450; }
.js-card-slider .tg-card__body { order: 1; padding: 0; }
.js-card-slider .tg-card__facts { margin: 24px 0 40px; }
.tg-section--slider { overflow: hidden; }

/* Slider arrows: joined squares */
.tg-arrows { gap: 0; }
.tg-arrow { width: 46px; height: 46px; border-color: var(--tg-ink); color: var(--tg-ink); }
.tg-arrow + .tg-arrow { border-left: 0; }
.tg-arrow:hover { background: var(--tg-ink); border-color: var(--tg-ink); }

/* Booking bar */
.tg-bar__box { align-items: center; text-align: center; padding: 16px 24px 18px; }
.tg-bar__label { font-size: 12px; font-weight: 400; letter-spacing: .1em; color: var(--tg-ink); }
.tg-bar__day { font-size: 44px; font-weight: 400; color: var(--tg-ink); }
.tg-bar__my { text-align: left; font-size: 12px; font-weight: 500; color: var(--tg-gold); }
.tg-bar__year { color: var(--tg-gold); }
.tg-bar__steppers button { border: 0; color: var(--tg-gold); background: none; }
.tg-bar__submit { padding: 0 36px; font-size: 16px; letter-spacing: .04em; color: var(--tg-gold); }

/* Footer: centred, like the previous site */
.tg-footer__main { padding: 60px 0 0; text-align: center; background: var(--tg-green); }
.tg-footer__grid { display: block; }
.tg-footer__brand img { width: 104px; margin: 0 auto 36px; }
.tg-footer__contact { color: rgba(255, 255, 255, .4); font-size: 16px; line-height: 2; }
.tg-footer__contact strong { display: none; }
.tg-footer__contact a { color: rgba(255, 255, 255, .4); }
.tg-footer__nav { margin-top: 48px; padding: 30px 0; border-top: 1px solid rgba(255, 255, 255, .12); border-bottom: 1px solid rgba(255, 255, 255, .12); }
.tg-footer__menu { display: flex; flex-wrap: wrap; justify-content: center; columns: auto; gap: 8px 0; }
.tg-footer__menu li { margin: 0; }
.tg-footer__menu li + li::before { content: "–"; margin: 0 18px; color: var(--tg-white); }
.tg-footer__menu a { font-size: 14px; font-weight: 500; letter-spacing: .1em; }
.tg-footer__social { display: none; }
.tg-footer__bottom { background: var(--tg-green); color: rgba(255, 255, 255, .4); font-size: 14px; }
.tg-footer__bottom-inner { align-items: center; padding-top: 26px; padding-bottom: 26px; }
.tg-footer__bottom .tg-socials { flex-direction: row; gap: 22px; }
.tg-footer__bottom .tg-socials__label { display: none; }
.tg-footer__bottom .tg-socials a { color: rgba(255, 255, 255, .35); }

@media (max-width: 960px) {
	.js-card-slider .tg-card { grid-template-columns: 1fr; }
	.js-card-slider .tg-card__media { order: 0; }
	.tg-footer__menu { flex-direction: column; }
	.tg-footer__menu li + li::before { display: none; }
	.tg-footer__bottom-inner { flex-direction: column; text-align: center; }
	.tg-head::before { left: -10px; }
}
.tg-footer__item + .tg-footer__item { margin-left: 28px; }
.js-card-slider { overflow: hidden; }
/* Header button appears once the header turns solid (as on the previous site) */
@media (min-width: 961px) {
	.has-hero .tg-header:not(.is-solid) .tg-header__book { visibility: hidden; }
}
.tg-feature__icon { display: flex; flex-direction: column; align-items: flex-start; }
.tg-feature__icon .tg-icon { margin: 0; }

.tg-footer__bottom-inner { display: grid; grid-template-columns: 1fr auto 1fr; gap: 16px; }
.tg-footer__bottom .tg-socials { justify-content: center; }
.tg-footer__privacy { justify-self: end; color: rgba(255, 255, 255, .4) !important; }
.tg-footer__note { grid-column: 1 / -1; }
@media (max-width: 960px) { .tg-footer__bottom-inner { grid-template-columns: 1fr; justify-items: center; } .tg-footer__privacy { justify-self: center; } }

/* Apartment detail page (matched to the previous site) */
.tg-apartment .tg-wrap--narrow { max-width: calc(1160px + 2 * var(--tg-gutter)); }
.tg-apartment__spec { justify-content: center; gap: 16px 28px; margin-bottom: 56px; font-size: 14px; }
.tg-apartment__spec-intro { font-size: 20px; font-weight: 400; color: var(--tg-text); }
.tg-apartment__spec li:not(.tg-apartment__spec-intro) { padding: 16px 22px; border: 1px solid var(--tg-gold); }
.tg-apartment__spec .tg-icon { color: var(--tg-green); width: 22px; height: 22px; }
.tg-apartment__desc { max-width: 820px; margin: 0 auto; }
.tg-apartment__h { font-size: clamp(22px, 2.2vw, 30px); font-weight: 600; letter-spacing: .03em; text-transform: uppercase; color: #343434; margin: 64px auto 36px; max-width: 820px; }
.tg-amenities { max-width: 820px; margin: 0 auto; grid-template-columns: repeat(4, 1fr); gap: 40px 28px; font-size: 16px; line-height: 1.5; }
.tg-amenities .tg-icon { width: 30px; height: 30px; stroke-width: 1.2; }
.tg-amenities li { gap: 18px; }
.tg-policies { max-width: 820px; margin: 0 auto; font-size: 16px; }
.tg-policies__row h3 { font-size: 14px; font-weight: 600; letter-spacing: .02em; text-transform: none; }
.tg-apartment__bar { border-bottom: 0; justify-content: center; gap: 24px 40px; }
@media (max-width: 960px) { .tg-amenities { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .tg-amenities { grid-template-columns: 1fr; } }
.tg-apartment__price, .tg-card__price { text-transform: none; letter-spacing: 0; font-size: 16px; }

/* ---------- Accessibility corrections (WCAG AA) ----------
   The brand gold (#cfae78) only reaches 2.1:1 on white, so text uses a darker
   gold; the light gold stays for lines, icons and text on the green background. */
:root { --tg-gold-text: #a87f3c; --tg-gold-text-strong: #8f692d; }
.tg-card__title { color: var(--tg-gold-text); }
.tg-apartment__price strong, .tg-card__price strong { color: var(--tg-green); }
.tg-footer__contact, .tg-footer__contact a, .tg-footer__bottom { color: rgba(255, 255, 255, .72); }
.tg-footer__privacy { color: rgba(255, 255, 255, .72) !important; }
.tg-footer__bottom .tg-socials a { color: rgba(255, 255, 255, .72); }
.tg-bar__steppers button { width: 28px; height: 28px; }
.tg-bar__steppers { gap: 4px; }
.tg-head__subtitle { color: #55635d; }

/* ---------- Attractions: photo tiles with the text over the image (as before) ---------- */
.tg-attractions { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.tg-attraction { position: relative; display: block; overflow: hidden; aspect-ratio: 375 / 370; background: var(--tg-green-dark); }
.tg-attraction__media { position: absolute; inset: 0; }
.tg-attraction__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--tg-ease); }
.tg-attraction:hover .tg-attraction__media img { transform: scale(1.04); }
.tg-attraction::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, .78) 0%, rgba(0, 0, 0, .35) 42%, rgba(0, 0, 0, 0) 72%); }
.tg-attraction__body { position: absolute; inset: auto 0 0; z-index: 1; padding: 19px 22px 22px; color: var(--tg-white); }
.tg-attraction__title { color: var(--tg-white); font-size: 20px; font-weight: 500; line-height: 1.35; margin: 0 0 6px; }
.tg-attraction__distance { display: flex; align-items: center; gap: 6px; margin: 0; color: var(--tg-white); font-size: 14px; }
.tg-attraction__distance .tg-icon { width: 16px; height: 16px; color: var(--tg-gold); }
.tg-attraction__more { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows .4s var(--tg-ease), opacity .3s; }
.tg-attraction__more > * { min-height: 0; }
.tg-attraction:hover .tg-attraction__more, .tg-attraction:focus-within .tg-attraction__more { grid-template-rows: 1fr; opacity: 1; }
.tg-attraction__text { font-size: 15px; line-height: 1.6; padding-top: 12px; }
.tg-attraction__text p { margin: 0 0 .5em; }
.tg-attraction__link { display: inline-block; color: var(--tg-white); font-size: 13px; text-decoration: underline; text-underline-offset: 4px; }
.tg-attraction__link:hover { color: var(--tg-gold); }
@media (hover: none) { /* touch devices: no hover, so show everything */
	.tg-attraction__more { grid-template-rows: 1fr; opacity: 1; }
}

/* ---------- Reviews: square tiles alternating with the portal logo ---------- */
.tg-reviews { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 48px; }
.tg-review figure { height: 100%; aspect-ratio: 1; padding: 30px; background: var(--tg-white); border: 1px solid var(--tg-line); }
.tg-review__title { color: var(--tg-green); font-size: 20px; font-weight: 400; padding-top: 0; }
.tg-review__title::before { display: none; }
.tg-review__text { font-size: 15px; line-height: 1.73; }
.tg-review figcaption { border-top: 0; font-size: 15px; }
.tg-review figcaption strong { font-weight: 400; }
.tg-review figcaption span { color: var(--tg-green); }
.tg-review--logo { display: grid; place-items: center; aspect-ratio: 1; padding: 40px; background: var(--tg-soft); }
.tg-review--logo img { max-width: 62%; height: auto; }
@media (max-width: 640px) { .tg-review--logo { display: none; } }

/* ---------- Contact form: no panel, taller inputs (as before) ---------- */
.tg-contact__form { padding: 0; background: none; }
.tg-contact__form-title { font-size: 26px; }
.tg-form input[type="text"], .tg-form input[type="email"], .tg-form input[type="tel"] { min-height: 55px; border-color: #e5e5e5; }
.tg-form textarea { border-color: #e5e5e5; }
