/* Wine route (GeoDirectory category) pages. Scoped to body.rt-v2. */
body.rt-v2 {
	--rt-burgundy: #4B0924;
	--rt-deep: #2E0516;
	--rt-gold: #D7B374;
	--rt-gold-ink: #9A7230;
	--rt-cream: #FBF7EE;
	--rt-parch: #F4ECDC;
	--rt-ink: #241D1D;
	--rt-muted: #6B5B55;
	--rt-serif: var(--cvs-serif, "Cormorant Garamond", Georgia, serif);
	--rt-sans: var(--cvs-sans, Lato, "Helvetica Neue", Arial, sans-serif);
	--rt-ease: cubic-bezier(.2, .7, .2, 1);
	background: var(--rt-cream);
}

/* ---------- hero ---------- */
body.rt-v2 .elementor-element-40179c4 {
	position: relative;
	min-height: 78vh;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
}
body.rt-v2 .elementor-element-40179c4 > .elementor-background-overlay { opacity: 1 !important; background: linear-gradient(180deg, rgba(46, 5, 22, .25) 0%, rgba(46, 5, 22, .15) 40%, rgba(46, 5, 22, .85) 100%) !important; }
body.rt-v2 .elementor-element-40179c4::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background: radial-gradient(640px 460px at 88% 6%, rgba(215, 179, 116, .22), transparent 62%);
}
body.rt-v2 .elementor-element-40179c4 > .elementor-container { position: relative; z-index: 2; width: 100%; max-width: 1180px; padding: 0 40px 72px; }
body.rt-v2 .elementor-element-31e42ef8 { animation: rt-rise .9s var(--rt-ease) both; }
body.rt-v2 .elementor-element-31e42ef8 .elementor-widget-wrap { max-width: 760px; }
/* let the fact card position against the hero container, not the text column */
body.rt-v2 .elementor-element-31e42ef8,
body.rt-v2 .elementor-element-31e42ef8 > .elementor-widget-wrap,
body.rt-v2 .elementor-element-3fd28e6a,
body.rt-v2 .elementor-element-3fd28e6a > .elementor-widget-container { position: static !important; }
body.rt-v2 .elementor-element-135d1161 .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 12px;
	font: italic 600 16px/1.2 var(--rt-serif) !important; letter-spacing: .1em !important; text-transform: none !important;
	color: var(--rt-gold) !important;
}
body.rt-v2 .elementor-element-135d1161 .elementor-heading-title::before { content: ""; width: 34px; height: 1px; background: currentColor; opacity: .8; }
body.rt-v2 .elementor-element-9ff7092 .elementor-heading-title {
	font-family: var(--rt-serif) !important;
	font-size: clamp(3rem, 6.2vw, 5.6rem) !important;
	line-height: .98 !important; letter-spacing: -.03em !important; font-weight: 400 !important;
	color: #FBF7EE !important;
}
body.rt-v2 .elementor-element-3fd28e6a { font-size: 18px; color: rgba(251, 247, 238, .85); }

/* hero buttons */
body.rt-v2 .elementor-element-40179c4 .elementor-button {
	border-radius: 999px !important; padding: 16px 28px !important;
	font-family: var(--rt-sans) !important; font-weight: 700 !important; letter-spacing: .14em !important; text-transform: uppercase;
	transition: transform .25s var(--rt-ease), box-shadow .25s, background .25s, border-color .25s !important;
}
body.rt-v2 .elementor-element-93a9831 .elementor-button {
	background: linear-gradient(135deg, #E6C88E, #D7B374 55%, #C79B52) !important; color: #2E0516 !important; border: 0 !important;
	box-shadow: 0 10px 26px -12px rgba(215, 179, 116, .85);
}
body.rt-v2 .elementor-element-4dc8dbf .elementor-button {
	background: rgba(251, 247, 238, .08) !important; color: #FBF7EE !important;
	border: 1px solid rgba(251, 247, 238, .4) !important;
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
body.rt-v2 .elementor-element-40179c4 .elementor-button:hover { transform: translateY(-2px); }

/* the fact card */
.rt-fact {
	position: absolute; right: 40px; bottom: 72px; width: min(380px, 38vw);
	padding: 22px 24px 20px;
	background: linear-gradient(145deg, rgba(74, 12, 38, .72), rgba(46, 5, 22, .62));
	-webkit-backdrop-filter: blur(18px) saturate(1.2); backdrop-filter: blur(18px) saturate(1.2);
	border: 1px solid rgba(215, 179, 116, .45);
	border-radius: 24px;
	box-shadow: 0 30px 60px -34px rgba(0, 0, 0, .8);
	color: #FBF7EE;
	animation: rt-rise 1s .2s var(--rt-ease) both;
}
.rt-fact__eyebrow { margin: 0 0 8px; font: 700 11px/1 var(--rt-sans, Lato, sans-serif); letter-spacing: .2em; text-transform: uppercase; color: var(--rt-gold, #D7B374); }
.rt-fact__text { margin: 0 0 18px; min-height: 4.2em; font: 500 22px/1.28 var(--rt-serif, Georgia, serif); color: #FBF7EE; transition: opacity .22s, transform .22s; }
.rt-fact__text.is-out { opacity: 0; transform: translateY(6px); }
.rt-fact__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; }
.rt-fact .rt-fact__next {
	background: none; border: 0; padding: 4px 0; cursor: pointer;
	font: 700 11px/1 var(--rt-sans, Lato, sans-serif); letter-spacing: .14em; text-transform: uppercase;
	color: rgba(251, 247, 238, .85); transition: color .2s;
}
.rt-fact .rt-fact__next:hover { color: #D7B374; }
.rt-fact .rt-fact__next span { display: inline-block; transition: transform .5s var(--rt-ease); }
.rt-fact .rt-fact__next:hover span { transform: rotate(180deg); }
.rt-fact .rt-fact__course {
	display: inline-flex; gap: 8px; align-items: center;
	padding: 11px 18px; border-radius: 999px;
	background: linear-gradient(135deg, #E6C88E, #D7B374 55%, #C79B52);
	color: #2E0516 !important; text-decoration: none !important;
	font: 700 11px/1 var(--rt-sans, Lato, sans-serif); letter-spacing: .12em; text-transform: uppercase;
	transition: transform .25s var(--rt-ease), box-shadow .25s;
}
.rt-fact .rt-fact__course:hover { transform: translateY(-2px); box-shadow: 0 12px 24px -12px rgba(215, 179, 116, .9); }
@keyframes rt-rise { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }

/* ---------- about this route ---------- */
body.rt-v2 .elementor-element-22441d76 { background: linear-gradient(180deg, #FBF7EE 0%, #F8F2E6 100%); padding: 96px 0 72px; }
body.rt-v2 .elementor-element-22441d76 > .elementor-container { max-width: 1100px; padding: 0 40px; }
body.rt-v2 .elementor-element-ec93777 .elementor-heading-title {
	display: inline-flex; align-items: center; gap: 12px;
	font: italic 600 16px/1.2 var(--rt-serif) !important; letter-spacing: .08em !important; color: var(--rt-gold-ink) !important;
}
body.rt-v2 .elementor-element-ec93777 .elementor-heading-title::before { content: ""; width: 34px; height: 1px; background: currentColor; opacity: .7; }
body.rt-v2 .elementor-element-79be783 .elementor-widget-container {
	display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); column-gap: 56px; align-items: start;
}
body.rt-v2 .elementor-element-79be783 .elementor-widget-container > * { grid-column: 1; }
body.rt-v2 .elementor-element-79be783 .elementor-widget-container > p:first-child {
	display: inline-block; width: fit-content; margin: 0 0 14px;
	padding: 7px 14px; border-radius: 999px;
	background: rgba(215, 179, 116, .24); color: var(--rt-burgundy);
	font: 700 11px/1 var(--rt-sans); letter-spacing: .14em; text-transform: uppercase;
}
body.rt-v2 .elementor-element-79be783 h2 {
	margin: 0 0 18px; font: 400 clamp(2.2rem, 4.4vw, 3.6rem)/1.04 var(--rt-serif) !important;
	letter-spacing: -.02em; color: var(--rt-deep);
}
body.rt-v2 .elementor-element-79be783 p { font: 400 17px/1.75 var(--rt-sans); color: var(--rt-muted); margin: 0 0 16px; }
body.rt-v2 .elementor-element-79be783 h2 + p { font: 400 clamp(1.25rem, 2vw, 1.6rem)/1.5 var(--rt-serif); color: var(--rt-ink); }
body.rt-v2 .elementor-element-79be783 h3 {
	grid-column: 2; grid-row: 1 / span 1; margin: 0; padding: 28px 30px 6px;
	background: #fff; border: 1px solid rgba(75, 9, 36, .08); border-bottom: 0; border-radius: 26px 26px 0 0;
	font: 500 1.7rem/1.1 var(--rt-serif) !important; color: var(--rt-burgundy);
}
body.rt-v2 .elementor-element-79be783 ul {
	grid-column: 2; grid-row: 2 / span 3; margin: 0 0 16px; padding: 4px 30px 28px; list-style: none;
	background: #fff; border: 1px solid rgba(75, 9, 36, .08); border-top: 0; border-radius: 0 0 26px 26px;
	box-shadow: 0 30px 60px -44px rgba(75, 9, 36, .55);
}
body.rt-v2 .elementor-element-79be783 li { position: relative; padding: 11px 0 11px 30px; font: 400 15.5px/1.55 var(--rt-sans); color: var(--rt-ink); border-bottom: 1px solid rgba(75, 9, 36, .08); }
body.rt-v2 .elementor-element-79be783 li:last-child { border-bottom: 0; }
body.rt-v2 .elementor-element-79be783 li::before { content: "\2726"; position: absolute; left: 2px; top: 11px; color: var(--rt-gold-ink); font-size: 14px; }

/* ---------- search ---------- */
body.rt-v2 .elementor-element-9d186f3 { background: var(--rt-parch); padding: 64px 0; }
body.rt-v2 .elementor-element-9d186f3 > .elementor-container { max-width: 1100px; padding: 0 40px; }
body.rt-v2 .elementor-element-4bc4ef57 .elementor-heading-title { font: 400 clamp(2rem, 3.4vw, 2.8rem)/1.1 var(--rt-serif) !important; color: var(--rt-deep) !important; letter-spacing: -.01em; }
body.rt-v2 .elementor-element-d80f0a8 { color: var(--rt-muted); }
body.rt-v2 .elementor-element-b335c1e .geodir-search,
body.rt-v2 .elementor-element-b335c1e form { border-radius: 22px; }
body.rt-v2 .elementor-element-b335c1e .form-control,
body.rt-v2 .elementor-element-b335c1e .form-select { border-radius: 999px !important; border: 1px solid rgba(75, 9, 36, .18) !important; padding-left: 20px; background-color: #fff; min-height: 52px; }
body.rt-v2 .elementor-element-b335c1e .btn,
body.rt-v2 .elementor-element-b335c1e button[type="submit"] {
	border-radius: 999px !important; border: 0 !important; min-height: 52px; padding: 0 28px;
	background: linear-gradient(145deg, #5E0F2E, #3A0A1E) !important; color: #FBF7EE !important;
	font: 700 12px/1 var(--rt-sans); letter-spacing: .14em; text-transform: uppercase;
}

/* ---------- results + map ---------- */
body.rt-v2 .elementor-element-1bdc466c { background: var(--rt-cream); padding: 72px 0 96px; }
/* the map spans the full width above the farms, which sit three to a row */
body.rt-v2 .elementor-element-1bdc466c > .elementor-container { max-width: 1280px; padding: 0 40px; flex-wrap: wrap; align-items: flex-start; gap: 0; }
body.rt-v2 .elementor-element-2230d00a { order: 1; width: 100% !important; margin-bottom: 56px; }
body.rt-v2 .elementor-element-3ede7fad { order: 2; width: 100% !important; }
body.rt-v2 .elementor-element-2230d00a .geodir-map-wrap,
body.rt-v2 .elementor-element-2230d00a .geodir_map_container,
body.rt-v2 .elementor-element-2230d00a .geodir-map-canvas { min-height: 460px; }
body.rt-v2 .elementor-element-29690bf7 .row {
	display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin: 0 !important;
}
body.rt-v2 .elementor-element-29690bf7 .row > .col { width: auto !important; max-width: none !important; flex: none !important; padding: 0 !important; margin: 0 !important; }
body.rt-v2 .elementor-element-24ee4af { display: none !important; }
@media (max-width: 1024px) { body.rt-v2 .elementor-element-29690bf7 .row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
@media (max-width: 600px) { body.rt-v2 .elementor-element-29690bf7 .row { grid-template-columns: 1fr; } }
body.rt-v2 .elementor-element-46c36548 .elementor-heading-title,
body.rt-v2 .elementor-element-63c87ebb .elementor-heading-title { font: 400 clamp(1.9rem, 3vw, 2.5rem)/1.1 var(--rt-serif) !important; color: var(--rt-deep) !important; letter-spacing: -.01em; }
body.rt-v2 .elementor-element-2230d00a > .elementor-widget-wrap {
	padding: 26px !important; background: #fff; border: 1px solid rgba(75, 9, 36, .08); border-radius: 28px;
	box-shadow: 0 30px 60px -44px rgba(75, 9, 36, .55);
}
body.rt-v2 .elementor-element-a798782 .geodir-map-wrap,
body.rt-v2 .elementor-element-a798782 .geodir-map-canvas,
body.rt-v2 .elementor-element-a798782 .geodir_map_container { border-radius: 20px; overflow: hidden; }

/* sort bar */
body.rt-v2 .elementor-element-6ed28ae7 .geodir-loop-actions-container,
body.rt-v2 .elementor-element-6ed28ae7 .geodir-loop-actions { border: 0 !important; background: transparent !important; padding: 0 !important; }
body.rt-v2 .elementor-element-6ed28ae7 .btn { border-radius: 999px !important; border: 1px solid rgba(75, 9, 36, .2) !important; background: #fff !important; color: var(--rt-burgundy) !important; font: 700 11px/1 var(--rt-sans); letter-spacing: .12em; text-transform: uppercase; padding: 10px 16px; }

/* pagination */
body.rt-v2 .elementor-element-3538fe87 .page-link { border-radius: 999px !important; margin: 0 3px; border: 1px solid rgba(75, 9, 36, .15); color: var(--rt-burgundy); }
body.rt-v2 .elementor-element-3538fe87 .active .page-link { background: var(--rt-burgundy) !important; border-color: var(--rt-burgundy) !important; color: #fff !important; }

/* ---------- get ready (under the "more about" heading) ---------- */
body.rt-v2 .elementor-element-1bdac70c { background: linear-gradient(180deg, #F4ECDC 0%, #FBF7EE 100%); padding: 88px 0 24px; }
body.rt-v2 .elementor-element-1bdac70c > .elementor-container { max-width: 1100px; padding: 0 40px; }
body.rt-v2 .elementor-element-911aef3 .elementor-heading-title { font: 400 clamp(2rem, 3.6vw, 3rem)/1.08 var(--rt-serif) !important; color: var(--rt-deep) !important; letter-spacing: -.015em; margin-bottom: 30px; }
.rt-prepare { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 24px; align-items: stretch; }
.rt-prepare__course {
	display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
	border-radius: 30px; overflow: hidden; text-decoration: none !important; color: #FBF7EE !important;
	background: linear-gradient(150deg, #5E0F2E 0%, #2E0516 100%);
	box-shadow: 0 34px 60px -36px rgba(46, 5, 22, .9);
	transition: transform .4s var(--rt-ease, ease), box-shadow .4s;
}
.rt-prepare__course:hover { transform: translateY(-5px); box-shadow: 0 44px 66px -34px rgba(46, 5, 22, 1); }
.rt-prepare__img { min-height: 260px; background: #3A0A1E center / cover no-repeat; transition: transform .8s var(--rt-ease, ease); }
.rt-prepare__course:hover .rt-prepare__img { transform: scale(1.05); }
.rt-prepare__body { display: flex; flex-direction: column; justify-content: center; gap: 10px; padding: 30px 30px 30px 28px; background: linear-gradient(150deg, #5E0F2E 0%, #2E0516 100%); }
.rt-prepare__eyebrow { font: 700 10.5px/1 var(--rt-sans, Lato, sans-serif); letter-spacing: .18em; text-transform: uppercase; color: #D7B374; }
.rt-prepare__title { font: 500 clamp(1.7rem, 2.6vw, 2.2rem)/1.08 var(--rt-serif, Georgia, serif); color: #FBF7EE; letter-spacing: -.01em; }
.rt-prepare__text { font: 400 15px/1.6 var(--rt-sans, Lato, sans-serif); color: rgba(251, 247, 238, .8); }
.rt-prepare__cta { margin-top: 8px; width: fit-content; padding: 12px 20px; border-radius: 999px; background: linear-gradient(135deg, #E6C88E, #D7B374 55%, #C79B52); color: #2E0516; font: 700 11px/1 var(--rt-sans, Lato, sans-serif); letter-spacing: .12em; text-transform: uppercase; }
.rt-prepare__facts { padding: 28px 30px; background: #fff; border: 1px solid rgba(75, 9, 36, .08); border-radius: 30px; box-shadow: 0 30px 60px -44px rgba(75, 9, 36, .55); }
.rt-prepare__facts-title { margin: 0 0 8px; font: 500 1.6rem/1.1 var(--rt-serif, Georgia, serif); color: var(--rt-burgundy, #4B0924); }
.rt-prepare__facts ul { margin: 0; padding: 0; list-style: none; }
.rt-prepare__facts li { position: relative; padding: 11px 0 11px 28px; border-bottom: 1px solid rgba(75, 9, 36, .08); font: 400 15px/1.5 var(--rt-sans, Lato, sans-serif); color: var(--rt-ink, #241D1D); }
.rt-prepare__facts li:last-child { border-bottom: 0; }
.rt-prepare__facts li::before { content: "\2726"; position: absolute; left: 2px; top: 11px; color: #9A7230; font-size: 13px; }

/* ---------- visiting advice ---------- */
body.rt-v2 .elementor-element-62ac0411 { background: #FBF7EE; padding: 24px 0 88px; }
body.rt-v2 .elementor-element-62ac0411 > .elementor-container { max-width: 1100px; padding: 0 40px; gap: 20px; }
body.rt-v2 .elementor-element-62ac0411 .elementor-column > .elementor-widget-wrap { padding: 0 !important; height: 100%; }
body.rt-v2 .elementor-element-62ac0411 .elementor-widget-icon-box { height: 100%; }
body.rt-v2 .elementor-element-62ac0411 .elementor-widget-container {
	height: 100%; padding: 30px 28px; background: #fff; border: 1px solid rgba(75, 9, 36, .08); border-radius: 26px;
	box-shadow: 0 24px 46px -34px rgba(75, 9, 36, .5);
	transition: transform .35s var(--rt-ease), box-shadow .35s;
}
body.rt-v2 .elementor-element-62ac0411 .elementor-widget-container:hover { transform: translateY(-5px); box-shadow: 0 34px 54px -32px rgba(75, 9, 36, .6); }
body.rt-v2 .elementor-element-62ac0411 .elementor-icon-box-icon .elementor-icon {
	width: 60px; height: 60px; display: inline-flex; align-items: center; justify-content: center;
	border-radius: 50%; background: linear-gradient(145deg, #5E0F2E, #3A0A1E); color: #D7B374 !important; fill: #D7B374 !important;
	box-shadow: 0 0 0 5px rgba(215, 179, 116, .25);
}
body.rt-v2 .elementor-element-62ac0411 .elementor-icon-box-title { font: 500 1.6rem/1.1 var(--rt-serif) !important; color: var(--rt-deep) !important; margin-top: 8px; }
body.rt-v2 .elementor-element-62ac0411 .elementor-icon-box-description { font: 400 15px/1.65 var(--rt-sans); color: var(--rt-muted); }

/* ---------- closing invitation ---------- */
body.rt-v2 .elementor-element-1b6dc775 { position: relative; overflow: hidden; padding: 110px 0 !important; background: radial-gradient(circle at 50% 120%, rgba(215, 179, 116, .24), transparent 60%), linear-gradient(180deg, #3A0A1E 0%, #2E0516 100%) !important; }
body.rt-v2 .elementor-element-1b6dc775::before {
	content: ""; position: absolute; width: 620px; height: 620px; left: 50%; top: -260px; transform: translateX(-50%);
	background: radial-gradient(circle, rgba(215, 179, 116, .26), transparent 65%); pointer-events: none;
	animation: rt-glow 7s ease-in-out infinite alternate;
}
@keyframes rt-glow { from { opacity: .55; transform: translateX(-50%) scale(.92); } to { opacity: 1; transform: translateX(-50%) scale(1.08); } }
body.rt-v2 .elementor-element-1b6dc775 > .elementor-container { position: relative; max-width: 780px; text-align: center; }
body.rt-v2 .elementor-element-11a5384c .elementor-heading-title { font: 400 clamp(2.4rem, 5vw, 4.2rem)/1.02 var(--rt-serif) !important; letter-spacing: -.02em; color: #FBF7EE !important; }
body.rt-v2 .elementor-element-7ccad2da { color: rgba(251, 247, 238, .78); font-size: 18px; }
body.rt-v2 .elementor-element-1b5cf3c2 .elementor-button {
	border-radius: 999px !important; padding: 17px 32px !important; border: 0 !important;
	background: linear-gradient(135deg, #E6C88E, #D7B374 55%, #C79B52) !important; color: #2E0516 !important;
	font: 700 12px/1 var(--rt-sans) !important; letter-spacing: .14em; text-transform: uppercase;
	box-shadow: 0 12px 28px -12px rgba(215, 179, 116, .9); transition: transform .25s var(--rt-ease);
}
body.rt-v2 .elementor-element-1b5cf3c2 .elementor-button:hover { transform: translateY(-2px); }

/* ---------- smaller screens ---------- */
@media (max-width: 1024px) {
	.rt-fact { position: relative; right: auto; bottom: auto; width: 100%; margin-top: 28px; }
	body.rt-v2 .elementor-element-40179c4 { min-height: 0; }
	body.rt-v2 .elementor-element-40179c4 > .elementor-container { padding-bottom: 56px; padding-top: 80px; flex-direction: column; }
	body.rt-v2 .elementor-element-79be783 .elementor-widget-container { grid-template-columns: 1fr; }
	body.rt-v2 .elementor-element-79be783 h3,
	body.rt-v2 .elementor-element-79be783 ul { grid-column: 1; grid-row: auto; }
	body.rt-v2 .elementor-element-3ede7fad,
	body.rt-v2 .elementor-element-2230d00a { width: 100% !important; position: static; }
	body.rt-v2 .elementor-element-1bdc466c > .elementor-container { flex-direction: column; }
	.rt-prepare { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
	body.rt-v2 .elementor-element-40179c4 > .elementor-container { padding: 72px 20px 40px; }
	body.rt-v2 .elementor-element-22441d76 > .elementor-container,
	body.rt-v2 .elementor-element-9d186f3 > .elementor-container,
	body.rt-v2 .elementor-element-1bdc466c > .elementor-container,
	body.rt-v2 .elementor-element-1bdac70c > .elementor-container,
	body.rt-v2 .elementor-element-62ac0411 > .elementor-container { padding-left: 20px; padding-right: 20px; }
	.rt-prepare__course { grid-template-columns: 1fr; }
	.rt-prepare__img { min-height: 180px; }
	.rt-fact__text { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
	body.rt-v2 *, body.rt-v2 *::before, body.rt-v2 *::after, .rt-fact, .rt-fact * { animation: none !important; transition: none !important; }
}
