/* Do You Rome · Homepage global CSS bundle — generated from existing files, order preserved */

/* ===== menu.css ===== */
/* ==========================================================================
   Do You Rome · Main menu
   ========================================================================== */

/* Child menu items - desktop + mobile/off-canvas */
.dyr-main-menu .sub-menu .menu-item > a,
.dyr-main-menu .elementor-nav-menu--dropdown .sub-menu .menu-item > a {
	font-family: var(--e-global-typography-text-font-family), "Plus Jakarta Sans", sans-serif;
	font-weight: 400 !important;
	font-style: normal;
	display: flex;
	align-items: center;
	gap: 8px;
}

/* Small star icon before child items */
.dyr-main-menu .sub-menu .menu-item > a::before,
.dyr-main-menu .elementor-nav-menu--dropdown .sub-menu .menu-item > a::before {
	content: "";
	width: 24px;
	height: 24px;
	flex: 0 0 24px;
	display: inline-block;
	background-image: url("/wp-content/themes/hello-elementor-do-you-rome/assets/icons/essentials/dyr-icon-star.svg");
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
}


/* ===== newsletter-form.css ===== */
/* ==========================================================================
   Do You Rome · Footer newsletter form
   Form ID: 2
   ========================================================================== */

form[data-form_id="2"] {
	width: 100%;
}

form[data-form_id="2"] .ff_form_fields_container {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 72px;
	grid-template-areas:
		"email submit"
		"consent consent";
	column-gap: 12px;
	row-gap: 14px;
	align-items: start;
}

form[data-form_id="2"] .dyr-newsletter-email {
	grid-area: email;
	margin: 0 !important;
}

form[data-form_id="2"] .dyr-newsletter-email input[type="email"] {
	width: 100%;
	min-height: 52px;
	padding: 0 16px;
	border-radius: 12px;
}

form[data-form_id="2"] .ff_submit_btn_wrapper {
	grid-area: submit;
	position: static !important;
	margin: 0 !important;
}

form[data-form_id="2"] .ff_submit_btn_wrapper .ff-btn-submit {
	padding: 0;
	border-radius: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
}

form[data-form_id="2"] .dyr-newsletter-consent {
	grid-area: consent;
	margin: 0 !important;
}

form[data-form_id="2"] .dyr-newsletter-consent .ff-el-form-check {
	display: flex;
	align-items: flex-start;
	gap: 10px;
}

form[data-form_id="2"] .dyr-newsletter-consent .ff-el-form-check input[type="checkbox"] {
	padding-right: 5px;
	margin: 14px 0 0;
	flex: 0 0 auto;
}

form[data-form_id="2"] .dyr-newsletter-consent .ff-el-form-check label {
	font-size: 12px;
	line-height: 1.45;
}

@media (max-width: 767px) {
	form[data-form_id="2"] {
		max-width: 100%;
	}

	form[data-form_id="2"] .ff_form_fields_container {
		grid-template-columns: minmax(0, 1fr) 60px;
		column-gap: 10px;
		row-gap: 12px;
	}

	form[data-form_id="2"] .dyr-newsletter-email input[type="email"] {
		min-height: 50px;
		padding: 0 14px;
	}

	form[data-form_id="2"] .ff_submit_btn_wrapper .ff-btn-submit {
		width: 60px;
		height: 50px;
		min-width: 60px;
	}

	form[data-form_id="2"] .dyr-newsletter-consent .ff-el-form-check label {
		font-size: 10px;
		line-height: 1.45;
	}
}


/* ===== language-switcher.css ===== */
/* ==========================================================================
   Do You Rome · WPML language switcher
   ========================================================================== */

.dyr-lang-switcher {
	--dyr-lang-bg: var(--e-global-color-7027bdb);
	--dyr-lang-bg-hover: var(--e-global-color-e04fe05);
	--dyr-lang-text: var(--e-global-color-secondary);
	--dyr-lang-border: var(--e-global-color-4320f39);
	--dyr-lang-radius: 8px;
	--dyr-lang-height: 40px;
	--dyr-lang-padding-x: 8px;
	--dyr-lang-padding-right: 28px;
	--dyr-lang-gap: 12px;
	--dyr-lang-min-width: 76px;
	--dyr-lang-flag-width: 22px;
	--dyr-lang-chevron-size: 10px;
	--dyr-lang-menu-offset: 6px;
	--dyr-lang-shadow: 0 8px 24px rgba(31, 31, 31, 0.08);
	--dyr-lang-font-family: var(--e-global-typography-text-font-family), sans-serif;
	--dyr-lang-font-size: var(--e-global-typography-8c72725-font-size);
	--dyr-lang-line-height: var(--e-global-typography-8c72725-line-height);
	--dyr-lang-font-weight: 500;
}

.dyr-lang-switcher .wpml-ls,
.dyr-lang-switcher .wpml-ls-legacy-dropdown,
.dyr-lang-switcher .wpml-ls-legacy-dropdown-click {
	width: auto;
	max-width: none;
	margin: 0;
	font-family: var(--dyr-lang-font-family);
	font-size: var(--dyr-lang-font-size);
	line-height: var(--dyr-lang-line-height);
}

.dyr-lang-switcher .wpml-ls-legacy-dropdown,
.dyr-lang-switcher .wpml-ls-legacy-dropdown-click {
	position: relative;
	display: inline-block;
	vertical-align: top;
}

.dyr-lang-switcher .wpml-ls-legacy-dropdown a.wpml-ls-item-toggle,
.dyr-lang-switcher .wpml-ls-legacy-dropdown-click a.wpml-ls-item-toggle {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--dyr-lang-gap);
	min-width: var(--dyr-lang-min-width);
	height: var(--dyr-lang-height);
	padding: 8px var(--dyr-lang-padding-right) 8px var(--dyr-lang-padding-x);
	box-sizing: border-box;
	border: 1px solid var(--dyr-lang-border);
	border-radius: var(--dyr-lang-radius);
	background: var(--dyr-lang-bg);
	box-shadow: none;
	color: var(--dyr-lang-text);
	text-decoration: none;
	font-family: inherit;
	font-size: inherit;
	line-height: 1;
	font-weight: var(--dyr-lang-font-weight);
	white-space: nowrap;
	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease,
		box-shadow 0.2s ease;
}

.dyr-lang-switcher .wpml-ls-legacy-dropdown a.wpml-ls-item-toggle:hover,
.dyr-lang-switcher .wpml-ls-legacy-dropdown-click a.wpml-ls-item-toggle:hover,
.dyr-lang-switcher .wpml-ls-legacy-dropdown a.wpml-ls-item-toggle:focus,
.dyr-lang-switcher .wpml-ls-legacy-dropdown-click a.wpml-ls-item-toggle:focus {
	background: var(--dyr-lang-bg-hover);
	color: var(--dyr-lang-text);
	outline: none;
}

.dyr-lang-switcher .wpml-ls-legacy-dropdown a.wpml-ls-item-toggle::after,
.dyr-lang-switcher .wpml-ls-legacy-dropdown-click a.wpml-ls-item-toggle::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 11px;
	width: var(--dyr-lang-chevron-size);
	height: var(--dyr-lang-chevron-size);
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	border-top: 0;
	border-left: 0;
	background: transparent;
	transform: translateY(-60%) rotate(45deg);
	pointer-events: none;
}

.dyr-lang-switcher .wpml-ls-flag,
.dyr-lang-switcher img.wpml-ls-flag {
	width: var(--dyr-lang-flag-width);
	height: auto;
	margin: 0;
	vertical-align: middle;
	flex: 0 0 auto;
}

.dyr-lang-switcher .wpml-ls-item-toggle > span,
.dyr-lang-switcher .wpml-ls-item-toggle > img {
	flex: 0 0 auto;
}

.dyr-lang-switcher .wpml-ls-sub-menu {
	margin-top: var(--dyr-lang-menu-offset);
	padding: 4px;
	border: 1px solid var(--dyr-lang-border);
	border-radius: var(--dyr-lang-radius);
	background: var(--dyr-lang-bg);
	box-shadow: var(--dyr-lang-shadow);
	overflow: hidden;
}

.dyr-lang-switcher .wpml-ls-sub-menu a {
	display: flex;
	align-items: center;
	gap: 10px;
	min-height: 36px;
	padding: 8px 10px;
	border-radius: calc(var(--dyr-lang-radius) - 4px);
	background: transparent;
	color: var(--dyr-lang-text);
	text-decoration: none;
	font-family: inherit;
	font-size: inherit;
	line-height: 1.2;
	font-weight: var(--dyr-lang-font-weight);
	transition:
		background-color 0.2s ease,
		color 0.2s ease;
}

.dyr-lang-switcher .wpml-ls-sub-menu a:hover,
.dyr-lang-switcher .wpml-ls-sub-menu a:focus {
	background: var(--dyr-lang-bg-hover);
	color: var(--dyr-lang-text);
	outline: none;
}

.dyr-lang-switcher .wpml-ls-current-language > a,
.dyr-lang-switcher .wpml-ls-current-language a {
	font-weight: 600;
}

@media (max-width: 1024px) {
	.dyr-lang-switcher {
		--dyr-lang-min-width: 72px;
		--dyr-lang-gap: 10px;
		--dyr-lang-flag-width: 20px;
	}
}


/* ===== zoom-card.css ===== */
/* ==========================================================================
   Do You Rome · Zoom card
   ========================================================================== */

.dyr-zoom-card {
	overflow: hidden;
	transform: translateZ(0);
}

.dyr-zoom-card .dyr-zoom-card__media,
.dyr-zoom-card .dyr-zoom-card__media .elementor-widget-container,
.dyr-zoom-card .dyr-zoom-card__media .elementor-image {
	height: 100%;
}

.dyr-zoom-card .dyr-zoom-card__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: scale3d(1, 1, 1);
	transform-origin: center center;
	transition: transform 900ms cubic-bezier(0.22, 1, 0.36, 1);
	will-change: transform;
	backface-visibility: hidden;
	-webkit-backface-visibility: hidden;
}

@media (hover: hover) and (pointer: fine) {
	.dyr-zoom-card:hover .dyr-zoom-card__media img,
	.dyr-zoom-card:focus-within .dyr-zoom-card__media img {
		transform: scale3d(1.06, 1.06, 1);
	}
}

@media (prefers-reduced-motion: reduce) {
	.dyr-zoom-card .dyr-zoom-card__media img {
		transition: none;
	}
}


/* ===== weather-topbar.css ===== */
/*
 * Weather topbar
 * Scoped aggressively because Elementor widget styles can otherwise override
 * the shortcode output, especially inside responsive header templates.
 */
html body .dyr-weather-topbar {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.55em;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	font-family: inherit;
	font-size: 15px !important;
	font-weight: 400 !important;
	line-height: 1.35 !important;
	text-align: center;
	font-variant-numeric: tabular-nums;
	color: #fff !important;
}

/* Beat Elementor global/link/widget colours without touching anything outside this component. */
html body .dyr-weather-topbar,
html body .dyr-weather-topbar span,
html body .dyr-weather-topbar strong,
html body .dyr-weather-topbar a {
	color: #fff !important;
}

html body .dyr-weather-topbar__message {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.45em;
	min-width: 0;
}

html body .dyr-weather-topbar__summary {
	display: inline-flex;
	align-items: center;
	gap: 0.28em;
	white-space: nowrap;
	flex: 0 0 auto;
}

html body .dyr-weather-topbar__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1 !important;
}

html body .dyr-weather-topbar__place {
	font-weight: 700 !important;
}

html body .dyr-weather-topbar__place,
html body .dyr-weather-topbar__temperature {
	white-space: nowrap;
}

html body .dyr-weather-topbar__separator {
	opacity: 0.72;
}

html body .dyr-weather-topbar__advice {
	min-width: 0;
	font-weight: 400 !important;
}

html body .dyr-weather-topbar__advice--mobile {
	display: none;
}

html body .dyr-weather-topbar__source {
	flex: 0 0 auto;
	margin-left: 0.25em;
	font-size: 9px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	white-space: nowrap;
	opacity: 0.5;
	text-decoration: none !important;
}

html body .dyr-weather-topbar__source:hover,
html body .dyr-weather-topbar__source:focus-visible {
	opacity: 0.9;
	text-decoration: underline !important;
	text-underline-offset: 2px;
}

html body .dyr-weather-topbar--fallback {
	gap: 0.4em;
}

/* Keep the topbar height stable while the uncached weather request runs,
 * but never expose a visible "loading weather" message. */
html body .dyr-weather-topbar--loading {
	min-height: 20px;
	opacity: 1;
}

html body .dyr-weather-topbar--loading .dyr-weather-topbar__message {
	visibility: hidden;
}

html body .dyr-weather-topbar--loading .dyr-weather-topbar__place {
	margin-right: 0.15em;
}

@media (max-width: 767px) {
	html body .dyr-weather-topbar {
		box-sizing: border-box;
		padding: 7px 38px 7px 10px;
		font-size: 12.5px !important;
		line-height: 1.22 !important;
	}

	html body .dyr-weather-topbar__message {
		flex-wrap: wrap;
		column-gap: 0.35em;
		row-gap: 0.08em;
		width: 100%;
	}

	html body .dyr-weather-topbar__advice--desktop {
		display: none;
	}

	html body .dyr-weather-topbar__advice--mobile {
		display: inline;
	}

	/* Attribution remains visible but no longer creates a third text row. */
	html body .dyr-weather-topbar__source {
		position: absolute;
		right: 6px;
		bottom: 3px;
		margin: 0;
		font-size: 7px !important;
		opacity: 0.42;
	}
}

@media (max-width: 390px) {
	html body .dyr-weather-topbar {
		padding-inline: 8px 34px;
		font-size: 12px !important;
	}

	html body .dyr-weather-topbar__separator {
		display: none;
	}

	html body .dyr-weather-topbar__advice--mobile {
		flex-basis: 100%;
	}
}


/* ===== mobile-navigation.css ===== */
/* Do You Rome mobile navigation: editorial drill-down */
.dyr-mobile-nav{display:none}

@media (max-width:767px){
  .dyr-mobile-nav{position:fixed;inset:0;z-index:2147483630;display:block;visibility:hidden;pointer-events:none}
  .dyr-mobile-nav.is-open,.dyr-mobile-nav.is-closing{visibility:visible}
  .dyr-mobile-nav.is-open{pointer-events:auto}
  .dyr-mobile-nav.is-closing{pointer-events:none}
  .dyr-mobile-nav__overlay{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;background:rgba(31,31,31,.38);opacity:0;transition:opacity 180ms ease;cursor:default}
  .dyr-mobile-nav.is-open .dyr-mobile-nav__overlay{opacity:1}

  .dyr-mobile-nav__panel{position:absolute;top:0;right:0;display:flex;flex-direction:column;width:100vw;max-width:100vw;height:100vh;height:100dvh;margin:0;padding:24px 24px 22px;background:#F5F2EB;color:#1F1F1F;font-family:"Plus Jakarta Sans",sans-serif;box-shadow:none;overflow:hidden;transform:translate3d(100%,0,0);transition:transform 240ms cubic-bezier(.22,.61,.36,1);will-change:transform}
  .dyr-mobile-nav.is-open .dyr-mobile-nav__panel{transform:translate3d(0,0,0)}

  .dyr-mobile-nav__header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:18px;border-bottom:1px solid rgba(31,31,31,.16)}
  .dyr-mobile-nav__brand{display:inline-flex;align-items:center;max-width:128px}
  .dyr-mobile-nav__logo-image{display:block;width:100%;height:auto}
  .dyr-mobile-nav .dyr-mobile-nav__close,
  .dyr-mobile-nav .dyr-mobile-nav__drill,
  .dyr-mobile-nav .dyr-mobile-nav__back{background:transparent!important;color:#1F1F1F!important;box-shadow:none!important}
  .dyr-mobile-nav .dyr-mobile-nav__close{display:inline-grid;place-items:center;width:42px;height:42px;margin:0;padding:0;border:1px solid rgba(31,31,31,.18)!important;border-radius:8px;background:transparent!important;color:#1F1F1F!important;cursor:pointer}

  .dyr-mobile-nav__stage{position:relative;flex:1;min-height:0;overflow:hidden}
  .dyr-mobile-nav__view{position:absolute;inset:0;display:flex;flex-direction:column;padding-top:8px;overflow-y:auto;overscroll-behavior:contain;opacity:0;visibility:hidden;pointer-events:none;transform:translate3d(10%,0,0);transition:transform 200ms cubic-bezier(.22,.61,.36,1),opacity 160ms ease,visibility 0s linear 200ms}
  .dyr-mobile-nav__view.is-active{opacity:1;visibility:visible;pointer-events:auto;transform:translate3d(0,0,0);transition-delay:0s}
  .dyr-mobile-nav__view.is-leaving-left{transform:translate3d(-10%,0,0);opacity:0}

  .dyr-mobile-nav__menu{width:100%}
  .dyr-mobile-nav__list,.dyr-mobile-nav__sublist{list-style:none;margin:0;padding:0}
  .dyr-mobile-nav__item,.dyr-mobile-nav__sublist li{border-bottom:1px solid rgba(31,31,31,.16)}

  .dyr-mobile-nav .dyr-mobile-nav__drill,
  .dyr-mobile-nav .dyr-mobile-nav__direct{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;width:100%!important;min-height:68px!important;margin:0!important;padding:18px 4px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:#1F1F1F!important;font-family:"Plus Jakarta Sans",sans-serif!important;font-size:18px!important;font-style:normal!important;font-weight:600!important;line-height:1.25!important;letter-spacing:normal!important;text-transform:none!important;text-align:left!important;text-decoration:none!important;appearance:none;-webkit-appearance:none;cursor:pointer}
  .dyr-mobile-nav__sublist a{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%;min-height:56px;margin:0;padding:14px 2px;border:0;background:transparent;color:#1F1F1F;font-family:"Plus Jakarta Sans",sans-serif;font-size:16px;font-weight:500;line-height:1.35;text-align:left;text-decoration:none}
  .dyr-mobile-nav__chevron{flex:0 0 auto;color:#AA5432;font-size:18px;font-weight:400;line-height:1}

  .dyr-mobile-nav .dyr-mobile-nav__back{display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;align-self:flex-start!important;width:auto!important;min-width:0!important;margin:0 0 10px!important;padding:10px 0!important;border:0!important;border-radius:0!important;background:transparent!important;color:#1F1F1F!important;font-family:"Plus Jakarta Sans",sans-serif!important;font-size:14px!important;font-style:normal!important;font-weight:600!important;line-height:1.25!important;letter-spacing:normal!important;text-transform:none!important;text-align:left!important;box-shadow:none!important;appearance:none;-webkit-appearance:none;cursor:pointer}
  .dyr-mobile-nav__section-title{margin:0;padding:4px 0 14px;color:#1F1F1F;font-family:"Hedvig Letters Serif",serif;font-size:30px;font-weight:400;line-height:1.08}
  .dyr-mobile-nav__sublist li:last-child a{color:#AA5432;font-weight:600}

  .dyr-mobile-nav__footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:auto;padding:24px 0 2px;border-top:1px solid rgba(31,31,31,.16)}
  .dyr-mobile-nav__languages{display:flex;align-items:center;gap:14px}
  .dyr-mobile-nav__language{display:inline-flex;align-items:center;gap:7px;min-width:0;padding:6px 0;border:0;background:transparent;color:rgba(31,31,31,.62);font-family:"Plus Jakarta Sans",sans-serif;font-size:13px;font-weight:600;line-height:1;text-decoration:none}
  .dyr-mobile-nav__language img{display:block;width:20px;height:14px;object-fit:cover;border-radius:2px}
  .dyr-mobile-nav__language[aria-current="page"]{color:#AA5432}
  .dyr-mobile-nav__social{display:flex;align-items:center;gap:12px}
  .dyr-mobile-nav__social a,.dyr-mobile-nav__social-link{display:inline-grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid rgba(31,31,31,.16);border-radius:50%;background:transparent;color:#1F1F1F;text-decoration:none}
  .dyr-mobile-nav__social a:hover,.dyr-mobile-nav__social a:focus-visible{border-color:#AA5432;color:#AA5432}
  .dyr-mobile-nav__social-link.is-disabled{opacity:.45}

  .dyr-mobile-nav__close:focus-visible,.dyr-mobile-nav__drill:focus-visible,.dyr-mobile-nav__direct:focus-visible,.dyr-mobile-nav__sublist a:focus-visible,.dyr-mobile-nav__back:focus-visible,.dyr-mobile-nav__footer a:focus-visible{outline:2px solid #AA5432;outline-offset:3px}
  body.dyr-mobile-nav-open{overflow:hidden;touch-action:none}

  /* Legacy Elementor Off-Canvas kept in the Header only as rollback.
     Remove it from the mobile runtime so it cannot flash behind the custom drawer. */
  .elementor-element.elementor-element-376d81c.elementor-widget-off-canvas{display:none!important;visibility:hidden!important;pointer-events:none!important}
}

@media (prefers-reduced-motion:reduce){
  .dyr-mobile-nav__panel,.dyr-mobile-nav__overlay,.dyr-mobile-nav__view{transition-duration:.001ms!important}
}

