/* Twelve Months — small helpers that Elementor Free can't express. Values from Figma (1440 frame). */

/* Base resets so Elementor spacing equals Figma spacing */
.elementor-widget-text-editor p { margin: 0; }
.elementor-widget-heading .elementor-heading-title a { color: inherit; }
.tm-uc .elementor-heading-title { text-transform: uppercase; }
.tm-site-header, .tm-site-footer { display: block; }

/* Header */
.tm-rate .elementor-heading-title { white-space: nowrap; }
.tm-rate .tm-strong { font-weight: 700; color: #DAD1C7; }
.tm-booknow .elementor-button {
	border: 1px solid #B7C1B1;
	box-shadow: 0 3px 15px rgba(0, 0, 0, .78);
}
.tm-booknow .elementor-button-text { color: rgba(255, 255, 255, .77); }
.tm-nav-item .elementor-heading-title a { display: block; }
.tm-burger {
	display: flex; flex-direction: column; justify-content: center; gap: 6px;
	width: 32px; height: 32px; padding: 4px; background: none; border: 0; cursor: pointer;
}
.tm-burger span { display: block; height: 2px; background: #A4988B; border-radius: 1px; transition: transform .2s, opacity .2s; }
.tm-burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.tm-burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.tm-burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
@media (max-width: 767px) {
	.tm-nav { display: none !important; }
	.tm-nav.is-open { display: flex !important; }
	.tm-nav-item .elementor-heading-title a { padding: 14px 0; border-bottom: 1px solid #EDE5DD; }
}

/* Underlined text links (READ MORE / DISCOVER / EXPLORE) */
.tm-ulink .elementor-heading-title { display: inline-block; border-bottom: 2px solid #16332F; padding-bottom: 4.2px; }
.tm-ulink--fac .elementor-heading-title { padding-bottom: 5.75px; }
.tm-ulink--blog .elementor-heading-title { padding-bottom: 3.75px; }

/* Hero */
.tm-play-wrap { transform: translateX(-50%); z-index: 2; }
.tm-play { display: block; width: 89.62px; height: 91px; transition: transform .2s; }
.tm-play:hover { transform: scale(1.05); }
.tm-play img { display: block; width: 100%; height: 100%; transform: rotate(180deg); }
.tm-booking {
	position: relative; width: 605px; height: 34px; margin: 0; background: #fff; border-radius: 11px;
	font-family: Montserrat, sans-serif; font-size: 12px; line-height: 1.22; color: #A4A4A4;
}
.tm-booking label, .tm-booking img, .tm-booking .tm-booking__ph { position: absolute; display: block; margin: 0; }
.tm-booking label { inset: 0; pointer-events: none; }
.tm-booking .tm-booking__ph { top: 9.7px; transform: translateX(-50%); white-space: nowrap; }
.tm-booking__dates img:first-child { left: 18.25px; top: 5px; width: 26px; height: 23px; }
.tm-booking__dates .tm-booking__ph:nth-of-type(1) { left: 82.25px; }
.tm-booking__arrow { left: 127px; top: 3px; width: 13px; height: 29px; transform: rotate(90deg); }
.tm-booking__dates .tm-booking__ph:nth-of-type(2) { left: 192px; }
.tm-booking__guests img { left: 255.75px; top: 6px; width: 22px; height: 20px; }
.tm-booking__guests .tm-booking__ph { left: 341.75px; }
.tm-booking__btn {
	position: absolute; left: 417px; top: 3px; width: 171px; height: 28px; padding: 0; border: 0; border-radius: 41px;
	background: #A4988B; color: #fff; font: 700 11px/1.22 Montserrat, sans-serif; text-transform: uppercase; cursor: pointer;
}
.tm-booking__btn img { left: 137px; top: 4px; width: 21px; height: 21px; }
.tm-booking__btn { text-indent: -18px; }
.tm-booking__btn img { text-indent: 0; }
@media (max-width: 767px) {
	.tm-booking { width: 100%; max-width: 360px; height: auto; padding: 12px; border-radius: 14px; display: grid; gap: 10px; }
	.tm-booking label, .tm-booking .tm-booking__ph, .tm-booking img { position: static; transform: none; }
	.tm-booking .tm-booking__arrow { transform: rotate(90deg); width: 13px; height: 29px; }
	.tm-booking label { display: flex; align-items: center; gap: 10px; height: 34px; padding: 0 8px; border-bottom: 1px solid #EDE5DD; pointer-events: auto; }
	.tm-booking__btn { position: static; width: 100%; height: 40px; text-indent: 0; display: flex; align-items: center; justify-content: center; gap: 8px; }
	.tm-booking__btn img { position: static; }
}

/* Villas / facilities / blog: keep rows aligned like Figma */
@media (min-width: 768px) {
	.tm-villa-desc { min-height: 129.5px; }
	.tm-fac-desc { min-height: 87.75px; }
	.tm-blog-desc { min-height: 118.75px; }
}
.tm-fac-arrow .elementor-icon { cursor: pointer; }
@media (max-width: 1024px) {
	.tm-fac-arrow { display: none; }
}
@media (max-width: 767px) {
	.tm-fac-track { overflow-x: auto !important; scroll-snap-type: x mandatory; justify-content: flex-start !important; scrollbar-width: none; }
	.tm-fac-card { flex: 0 0 280px !important; width: 280px !important; scroll-snap-align: start; }
}

/* Gallery strip: horizontal scroll without a visible bar */
.tm-gallery-strip { overflow-x: auto; scrollbar-width: none; cursor: grab; }
.tm-gallery-strip::-webkit-scrollbar { display: none; }
.tm-gallery-strip > .elementor-widget-image { flex: 0 0 auto; }

/* Footer */
.tm-fmenu p { line-height: 2.02; text-shadow: 0 4px 4px rgba(0, 0, 0, .25); }
.tm-fmenu a, .tm-contact a { color: inherit; text-decoration: none; }
.tm-fmenu a:hover, .tm-contact a:hover { text-decoration: underline; }
.tm-contact { position: relative; height: 195px; margin: 0; padding: 0; list-style: none;
	font: 400 20px/1.385 Montserrat, sans-serif; color: #000; }
.tm-contact li { position: absolute; left: 58px; margin: 0; white-space: nowrap; }
.tm-contact__email { top: 0; }
.tm-contact__phone { top: 53.7px; }
.tm-contact__addr { top: 107.4px; line-height: 1.46; }
.tm-contact__ico { position: absolute; display: block; }
.tm-contact__ico img { display: block; }
.tm-contact__email .tm-contact__ico { left: -53.6px; top: 4.8px; }
.tm-contact__email .tm-contact__ico img { width: 24.68px; height: 20.29px; }
.tm-contact__phone .tm-contact__ico { left: -51.4px; top: -3.8px; }
.tm-contact__phone .tm-contact__ico img { width: 30.17px; height: 31.42px; }
.tm-contact__addr .tm-contact__ico { left: -54.7px; top: 6.1px; }
.tm-contact__addr .tm-contact__ico img { width: 27.16px; height: 28.28px; }
.tm-social { display: flex; align-items: flex-start; }
.tm-social a { position: relative; display: block; }
.tm-social img { display: block; }
.tm-social__ig { margin-top: 5.4px; } .tm-social__ig img { width: 33.55px; height: 40.31px; }
.tm-social__fb { margin: 4.7px 0 0 14.8px; } .tm-social__fb img { width: 34.66px; height: 41.53px; }
.tm-social__tt { margin: 9.1px 0 0 18.6px; } .tm-social__tt img { width: 33.47px; height: 36.88px; }
.tm-social__line { margin-left: 22.7px; } .tm-social__line img { width: 41.78px; height: 50.08px; }
.tm-social__line span { position: absolute; left: 50%; top: 24.3px; transform: translate(-50%, -50%);
	font: 500 9px/1 Inter, Arial, sans-serif; letter-spacing: .27px; color: #F3EEE8; }
.tm-review img { display: block; width: 33.55px; height: 32.98px; margin: 8.4px 0 0 .2px; }
.tm-copy a { color: #fff; text-decoration: underline; }
@media (max-width: 1024px) {
	.tm-contact { height: auto; display: grid; gap: 16px; justify-content: center; }
	.tm-contact li { position: relative; left: 0; top: auto !important; padding-left: 44px; white-space: normal; }
	.tm-contact__ico { left: 0 !important; top: 2px !important; }
}
@media (max-width: 767px) {
	.tm-contact li { font-size: 16px; }
	.tm-fmenu p { text-align: center; }
	.tm-social { justify-content: center; }
	.tm-review { display: flex; justify-content: center; }
}

