/* SAROMM — 1.7.0: client review round. Backgrounds, hovers, scroll effects, opening.
 * Desktop runs on the 1728 canvas (CSS zoom), so pixel values here are canvas pixels. */

/* ---------- Backgrounds from the design ---------- */
.elementor-element-hmeco001 {
	background-image: url(../bg/home-numbers-lines.svg), url(../bg/home-numbers.jpg) !important;
	background-size: 100% auto, cover !important; background-position: top center, center !important; background-repeat: no-repeat !important;
}
.elementor-element-hmintro1 { background: #fff url(../bg/home-text-lines.png) top center / 100% 100% no-repeat !important; }
.elementor-element-s306 { background: url(../bg/about-2-lines.svg) center / 100% 100% no-repeat !important; }
.elementor-element-s322 { background: url(../bg/about-band.jpg) center / cover no-repeat !important; }
.elementor-element-fwblue01 { background: url(../bg/vineyards-3.jpg) center / cover no-repeat !important; }
.elementor-element-fwb4001 { background: url(../bg/vineyards-4-lines.svg) center / 100% 100% no-repeat !important; }
.elementor-element-s416 { background: url(../bg/vision-redefine-lines.svg) center / 100% 100% no-repeat !important; }
.elementor-element-s441 { background: url(../bg/vision-change-lines.svg) center / cover no-repeat fixed !important; }
@media (max-width: 1024px) {
	.elementor-element-s306, .elementor-element-fwb4001, .elementor-element-s416, .elementor-element-hmintro1 { background-size: cover !important; }
	.elementor-element-hmeco001 { background-size: cover, cover !important; }
}

/* ---------- Home hero: full screen on every device ---------- */
.elementor-element-hmhero01 { height: calc(100vh / var(--saromm-zoom, 1)) !important; min-height: 0 !important; }
@supports (height: 100svh) { @media (max-width: 1024px) { .elementor-element-hmhero01 { height: calc(100svh / var(--saromm-zoom, 1)) !important; } } }

/* ---------- Home cards ---------- */
.saromm-arc-card:focus, .saromm-arc-card:focus-visible { outline: none !important; }
.saromm-arc-card .saromm-arc-fill { transition-duration: .9s !important; transition-timing-function: cubic-bezier(.65,0,.35,1) !important; }
.saromm-card-btn { display: none; }
@media (hover: none), (max-width: 1024px) {
	.saromm-card-btn {
		display: flex; position: absolute; z-index: 2; width: 32px; height: 32px; padding: 0 !important; margin: 0;
		align-items: center; justify-content: center; border-radius: 50% !important; background: transparent !important;
		border: 1px solid #fff !important; color: #fff !important; cursor: pointer; transition: border-color .3s, color .3s, transform .3s;
	}
	.saromm-card-btn svg { width: 14px; height: 14px; transition: transform .3s; }
	.saromm-arc-card.is-open .saromm-card-btn { border-color: var(--e-global-color-accent, #E85619) !important; color: var(--e-global-color-accent, #E85619) !important; }
	.saromm-arc-card.is-open .saromm-card-btn svg { transform: rotate(180deg); }
}

/* ---------- Buttons: the design's hover — orange at 80%, white text and arrow ---------- */
.elementor-widget-button .elementor-button, .elementor-field-type-submit button { transition: background-color .35s ease, color .35s ease, border-color .35s ease !important; }
@media (hover: hover) {
	html body .elementor-widget-button:not(.elementor-element-arloop01) .elementor-button:hover,
	html body .elementor-field-type-submit button:hover {
		background-color: rgba(232, 86, 25, .8) !important; border-color: rgba(232, 86, 25, .8) !important; color: #fff !important;
	}
	html body :is(.elementor-element-ctform01, .elementor-element-ftform01) .elementor-field-type-submit button:hover {
		background-color: rgba(232, 86, 25, .8) !important; border-color: rgba(232, 86, 25, .8) !important; color: #fff !important;
	}
	html body .elementor-element-arloop01 .elementor-button:hover { background: transparent !important; color: var(--e-global-color-accent, #E85619) !important; }
}
/* The design's hover does not move the arrow. */
html body .elementor-widget-button .elementor-button:is(:hover, :focus-visible) .elementor-button-icon { transform: none !important; }
html body .elementor-widget-button .elementor-button:focus-visible { background-color: rgba(232, 86, 25, .8) !important; border-color: rgba(232, 86, 25, .8) !important; color: #fff !important; }

/* ---------- Burger menu: hovered item and its rule turn orange ---------- */
[data-elementor-id="115"] .elementor-element-pmnav001 > .elementor-widget-heading { transition: border-color .3s ease; }
[data-elementor-id="115"] .elementor-element-pmnav001 > .elementor-widget-heading .elementor-heading-title,
[data-elementor-id="115"] .elementor-element-pmnav001 > .elementor-widget-heading a { transition: color .3s ease; }
@media (hover: hover) {
	[data-elementor-id="115"] .elementor-element-pmnav001 > .elementor-widget-heading:hover { border-color: var(--e-global-color-accent, #E85619) !important; }
	[data-elementor-id="115"] .elementor-element-pmnav001 > .elementor-widget-heading:hover :is(.elementor-heading-title, a) { color: var(--e-global-color-accent, #E85619) !important; }
}

/* ---------- Footer links: darker on hover ---------- */
footer.elementor :is(.elementor-element-fc011, .elementor-element-fc015) :is(.elementor-heading-title, a) { transition: color .3s ease; }
@media (hover: hover) { footer.elementor :is(.elementor-element-fc011, .elementor-element-fc015) .elementor-widget-heading:hover :is(.elementor-heading-title, a) { color: #01223A !important; } }

/* ---------- News cards: the image darkens on hover ---------- */
.e-loop-item img { transition: filter .4s cubic-bezier(.4,0,.2,1); }
@media (hover: hover) { .e-loop-item:hover img { filter: brightness(.8); } }

/* ---------- Article: breadcrumbs and share links as designed ---------- */
.saromm-crumbs { display: flex; align-items: center; gap: 16px; font-size: 16px; line-height: 20px; font-weight: 300; min-width: 0; }
.saromm-crumbs__back { display: inline-flex; align-items: center; gap: 8px; color: #99A7B0 !important; text-decoration: none !important; transition: color .2s linear; flex: 0 0 auto; }
.saromm-crumbs__back svg { width: 16px; height: 16px; }
.saromm-crumbs__sep { color: #99A7B0; flex: 0 0 auto; display: flex; align-items: center; margin: 0 2px 0 3px; }
.saromm-crumbs__sep svg { display: block; }
.saromm-crumbs__current { color: #01223A; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }
@media (hover: hover) { .saromm-crumbs__back:hover { color: #01223A !important; } }
.elementor-element-sgshare1 a.saromm-share { color: #01223A !important; transition: color .3s ease; }
@media (hover: hover) { .elementor-element-sgshare1 a.saromm-share:hover { color: var(--e-global-color-accent, #E85619) !important; } }

/* ---------- Contact: details navy with an orange hover; the photo follows the form's height ---------- */
.elementor-element-c705 :is(.elementor-element-w703, .elementor-element-w704) a { color: #01223A !important; text-decoration: none !important; transition: color .3s ease; }
@media (hover: hover) { .elementor-element-c705 :is(.elementor-element-w703, .elementor-element-w704) a:hover { color: var(--e-global-color-accent, #E85619) !important; } }
@media (min-width: 1025px) {
	.elementor-element-cttop001 > .e-con-inner, .elementor-element-cttop001 { align-items: stretch !important; }
	.elementor-element-c706 { height: auto !important; align-self: flex-start !important; }
}

/* ---------- Our Vision: section titles are links ---------- */
.saromm-jump { cursor: pointer; }
.saromm-jump .elementor-heading-title { transition: color .3s ease; }
@media (hover: hover) { .saromm-jump:hover .elementor-heading-title { color: var(--e-global-color-accent, #E85619) !important; } }

/* ---------- Mobile header: logo centred ---------- */
@media (max-width: 767px) {
	[data-elementor-type="header"] .elementor-element-hdrow001 { position: relative; }
	[data-elementor-type="header"] .elementor-element-hdlogo01 { position: absolute !important; left: 50% !important; transform: translateX(-50%); margin: 0 !important; }
}

/* ---------- Mobile footer: the six links first, 3 + 3, right column flush right ---------- */
@media (max-width: 767px) {
	footer.elementor .elementor-element-fc011 { order: -2; width: auto !important; flex: 1 1 auto !important; max-width: calc(100% - 90px) !important; }
	footer.elementor .elementor-element-fc015 { order: -1; margin-left: auto !important; width: 90px !important; max-width: 90px !important; }
	footer.elementor .elementor-element-fc015 .elementor-heading-title { text-align: left; }
}

/* ---------- Language dropdown ---------- */
#saromm-lang { position: relative; cursor: pointer; }
.saromm-langs {
	position: absolute; top: calc(100% + 12px); right: 0; z-index: 10000; margin: 0; padding: 8px; list-style: none;
	min-width: 120px; background: #fff; box-shadow: 0 8px 24px rgba(1, 34, 58, .12);
	opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .3s ease-out, transform .3s ease-out, visibility 0s .3s;
}
#saromm-lang.is-open .saromm-langs { opacity: 1; visibility: visible; transform: none; transition: opacity .3s ease-out, transform .3s ease-out; }
.saromm-langs a { display: flex; align-items: center; gap: 12px; padding: 8px 12px; color: #01223A !important; font-size: 16px; line-height: 20px; font-weight: 300; text-decoration: none !important; white-space: nowrap; }
.saromm-langs img { width: 16px; height: 16px; border-radius: 50%; object-fit: cover; }
.saromm-langs .is-active a, .saromm-langs a:hover, .saromm-langs a:focus-visible { background: #F5F5F5; }
.saromm-langs .is-active a::after { content: ""; width: 12px; height: 7px; margin-left: auto; border-left: 1.5px solid #01223A; border-bottom: 1.5px solid #01223A; transform: rotate(-45deg) translateY(-2px); }

/* ---------- Odometer ---------- */
.saromm-counters .elementor-heading-title.saromm-odo-on { white-space: nowrap; }
.saromm-odo { display: inline-block; overflow: hidden; vertical-align: top; }
.saromm-odo__col > span { display: block; text-align: center; }

/* ---------- Curtains: a section stays put while the next one slides over it ---------- */
.saromm-curtain { position: sticky !important; z-index: 0; }
.saromm-curtain ~ .e-con, .saromm-curtain ~ .elementor-element { position: relative; z-index: 1; }
.saromm-curtain ~ .e-con { background-color: #fff; }
.elementor-element-hmeco001 { background-color: #fff; }

/* ---------- Footer reveal: the footer waits underneath; the page slides up off it ---------- */
@media (min-width: 1px) {
	body > footer.elementor { position: sticky; bottom: 0; z-index: 0; }
	body > main#content, body > div.elementor:not(.elementor-location-header):not(.elementor-location-footer):not(.elementor-location-popup):not([data-elementor-type="popup"]) { position: relative; z-index: 1; background-color: #fff; display: flow-root; }
}

/* ---------- Opening ---------- */
html.saromm-intro body::before { content: ""; position: fixed; inset: 0; z-index: 100000; background: #fff; }
.saromm-intro-layer { position: fixed; inset: 0; z-index: 100001; pointer-events: none; }
.saromm-intro-layer svg { display: block; width: 100%; height: 100%; }

@media (prefers-reduced-motion: reduce) {
	.saromm-curtain { position: relative !important; }
	body > footer.elementor { position: static; }
	.elementor-element-s441 { background-attachment: scroll !important; }
	.e-loop-item img, .saromm-langs { transition: none !important; }
}

/* ---------- Burger drawer, as the prototype draws it on desktop: 24px items in 112px rows ---------- */
@media (min-width: 1025px) {
	[data-elementor-id="115"] .elementor-element-pmnav001 > .elementor-widget-heading { padding: 40px 0 39px !important; }
	[data-elementor-id="115"] .elementor-element-pmnav001 > .elementor-widget-heading .elementor-heading-title { font-size: 24px !important; line-height: 32px !important; font-weight: 400 !important; }
}
#elementor-popup-modal-115 { background-color: rgba(0, 0, 0, .45) !important; }


/* ---------- Home numbers band: tablet and mobile as their frames draw it (1.8.0) ----------
 * Numbers 68px in #344E61, labels 16/20 navy, each stat centred on the frame's own position.
 * Desktop already matches its frame; only the number colour changes there. */
.elementor-element-hmeco001 :is(.elementor-element-w104 .elementor-heading-title,.elementor-element-w107 .elementor-heading-title,.elementor-element-w110 .elementor-heading-title,.elementor-element-w113 .elementor-heading-title,.elementor-element-w116 .elementor-heading-title,.elementor-element-w119 .elementor-heading-title) { color: #344E61 !important; }
.elementor-element-hmeco001 :is(.elementor-element-w104 .elementor-heading-title,.elementor-element-w107 .elementor-heading-title,.elementor-element-w110 .elementor-heading-title,.elementor-element-w113 .elementor-heading-title,.elementor-element-w116 .elementor-heading-title,.elementor-element-w119 .elementor-heading-title, .elementor-element-w105 .elementor-heading-title,.elementor-element-w108 .elementor-heading-title,.elementor-element-w111 .elementor-heading-title,.elementor-element-w114 .elementor-heading-title,.elementor-element-w117 .elementor-heading-title,.elementor-element-w120 .elementor-heading-title) { text-align: center !important; }
@media (max-width: 1024px) {
	.elementor-element-hmeco001 :is(.elementor-element-w104 .elementor-heading-title,.elementor-element-w107 .elementor-heading-title,.elementor-element-w110 .elementor-heading-title,.elementor-element-w113 .elementor-heading-title,.elementor-element-w116 .elementor-heading-title,.elementor-element-w119 .elementor-heading-title) { font-size: 68px !important; line-height: 68px !important; }
	.elementor-element-hmeco001 :is(.elementor-element-w105 .elementor-heading-title,.elementor-element-w108 .elementor-heading-title,.elementor-element-w111 .elementor-heading-title,.elementor-element-w114 .elementor-heading-title,.elementor-element-w117 .elementor-heading-title,.elementor-element-w120 .elementor-heading-title) { font-size: 16px !important; line-height: 20px !important; }
	.elementor .elementor-element.elementor-element-c103 { gap: 7.5px !important; }
	.elementor-element-c103 > .elementor-widget-text-editor, .elementor-element-c103 > .elementor-widget-heading { width: 100% !important; max-width: none !important; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-element-c103 .elementor-widget-text-editor, .elementor-element-c103 .elementor-widget-text-editor * { font-size: 16px !important; line-height: 20px !important; }
	.elementor .elementor-element.elementor-element-c103 { left: 25px !important; top: 120.5px !important; width: 385px !important; }
	.elementor .elementor-element.elementor-element-c106 { left: 550.0px !important; top: 94px !important; width: 260px !important; align-items: center !important; gap: 6px !important; }
	.elementor .elementor-element.elementor-element-c109 { left: 277.5px !important; top: 250px !important; width: 260px !important; align-items: center !important; gap: 6px !important; }
	.elementor .elementor-element.elementor-element-c112 { left: 529.5px !important; top: 285px !important; width: 200px !important; align-items: center !important; gap: 6px !important; }
	.elementor .elementor-element.elementor-element-c118 { left: 847.0px !important; top: 343px !important; width: 176px !important; align-items: center !important; gap: 6px !important; }
	.elementor .elementor-element.elementor-element-c115 { left: 0.0px !important; top: 344px !important; width: 196px !important; align-items: center !important; gap: 6px !important; }
	.elementor .elementor-element.elementor-element-c121 { left: 405.0px !important; top: 451px !important; width: 280px !important; align-items: center !important; gap: 6px !important; }
}
@media (max-width: 767px) {
	.elementor-element-c103 .elementor-widget-text-editor, .elementor-element-c103 .elementor-widget-text-editor * { font-size: 16px !important; line-height: 21px !important; }
	.elementor .elementor-element.elementor-element-hmeco001 { height: 1114px !important; min-height: 1114px !important; }
	.elementor .elementor-element.elementor-element-c103 { left: 17px !important; top: 81.5px !important; width: 325px !important; }
	.elementor .elementor-element.elementor-element-c106 { left: 118.5px !important; top: 249px !important; width: 256px !important; align-items: center !important; gap: 6px !important; }
	.elementor .elementor-element.elementor-element-c109 { left: 1.5px !important; top: 398px !important; width: 200px !important; align-items: center !important; gap: 6px !important; }
	.elementor .elementor-element.elementor-element-c112 { left: 197.0px !important; top: 492px !important; width: 176px !important; align-items: center !important; gap: 6px !important; }
	.elementor .elementor-element.elementor-element-c115 { left: 0.5px !important; top: 593px !important; width: 256px !important; align-items: center !important; gap: 6px !important; }
	.elementor .elementor-element.elementor-element-c121 { left: 168.0px !important; top: 769px !important; width: 150px !important; align-items: center !important; gap: 6px !important; }
	.elementor .elementor-element.elementor-element-c118 { left: 1.0px !important; top: 924px !important; width: 180px !important; align-items: center !important; gap: 6px !important; }
}

/* ---------- Home cards on tablet and mobile, as their frames draw them (1.8.0) ---------- */
@media (min-width: 768px) and (max-width: 1024px) {
	.elementor .elementor-element.saromm-arc-card { padding-left: 40px !important; padding-bottom: 38px !important; }
}
@media (max-width: 767px) {
	.elementor .elementor-element.saromm-arc-card { padding-left: 24px !important; padding-bottom: 34px !important; }
	.saromm-arc-card > .elementor-widget-heading .elementor-heading-title { font-size: 16px !important; line-height: 20px !important; }
}
@media (hover: none), (max-width: 1024px) {
	.saromm-card-btn { width: 40px !important; height: 40px !important; border-color: rgba(255, 255, 255, .7) !important; }
	.saromm-card-btn svg { width: 16px !important; height: 16px !important; }
}
/* ---------- Home hero: SCROLL DOWN as drawn — lighter, tighter; lower on mobile (1.8.0) ---------- */
.elementor-element-hmhero01 .elementor-element-w001 .elementor-heading-title { font-weight: 500 !important; letter-spacing: .5px !important; }
@media (max-width: 767px) {
	.elementor-element-hmhero01 .elementor-element-w001 { position: relative; top: 18px; }
	.elementor-element-hmhero01 .elementor-element-w002 { position: relative; top: 23px; }
	.elementor-element-hmhero01 .elementor-element-w002 img { height: 25px !important; width: auto !important; }
}
/* ---------- Home, mobile: text block and "Our promise" spacing as the frame draws it (1.8.0) ---------- */
@media (max-width: 767px) {
	.elementor .elementor-element.elementor-element-hmintro1 { height: 410px !important; min-height: 410px !important; }
	.elementor .elementor-element.elementor-element-c124 { margin-top: 49px !important; }
	.elementor .elementor-element.elementor-element-w123 { margin-top: -18px !important; }
	.elementor .elementor-element.elementor-element-w128 { margin-top: 31px !important; }
	.elementor-element-w128 img { height: 286px !important; width: 205px !important; object-fit: cover !important; }
}
/* ---------- News cards on mobile: title, text and date sit 16px in from the photo's edge (1.8.0) ---------- */
@media (max-width: 767px) {
	.e-loop-item .elementor-widget:not(.elementor-widget-theme-post-featured-image):not(.elementor-widget-image) { padding-left: 16px !important; padding-right: 16px !important; box-sizing: border-box; }
}

/* ---------- Language switcher, from the Figma layers (1.8.4) ----------
 * Row: [globe 16] 8 [EN] 6 [chevron 18], centred. Desktop and tablet: EN 18/23 Outfit 300, row 23 tall.
 * Mobile: EN 16/20, row 20 tall. Icons are Figma's paths at a 1px line. White over the hero, black on white. */
#saromm-lang { color: #000; display: flex !important; flex-direction: row !important; align-items: center !important; gap: 0 !important; height: 23px; }
[data-elementor-type="header"].elementor-112 #saromm-lang { color: #fff; }
html.saromm-stuck [data-elementor-type="header"] #saromm-lang { color: #000; }
#saromm-lang > :not(.saromm-langs) { display: flex !important; align-items: center !important; margin: 0 !important; padding: 0 !important; width: auto !important; min-width: 0 !important; flex: none !important; }
#saromm-lang .saromm-lang-ico { display: block; flex: none; }
#saromm-lang .saromm-lang-globe { width: 16px; height: 16px; }
#saromm-lang .saromm-lang-chev { width: 18px; height: 18px; }
#saromm-lang .elementor-element-hdcode01 { margin: 0 6px 0 8px !important; }
#saromm-lang .elementor-element-hdcode01 .elementor-heading-title { min-width: 24px; font-family: 'Outfit', sans-serif !important; font-size: 18px !important; line-height: 23px !important; font-weight: 300 !important; letter-spacing: 0 !important; text-align: center !important; color: inherit !important; white-space: nowrap; }
@media (max-width: 767px) {
	#saromm-lang { height: 20px; }
	#saromm-lang .elementor-element-hdcode01 .elementor-heading-title { font-size: 16px !important; line-height: 20px !important; min-width: 21px; transform: translateY(-0.5px); }
}
/* ---------- Final QA, desktop (1.8.7) ---------- */
@media (min-width: 1025px) {
	/* Home text block: the second paragraph wraps at 370px, as drawn */
	.elementor .elementor-element.elementor-element-w123 { max-width: 380px !important; margin-left: auto !important; margin-right: auto !important; }
	.elementor .elementor-element.elementor-element-c124 { transform: translateY(11px); }
	/* Our Vineyards: 45px of white above the photo, which is 658 tall */
	.elementor .elementor-element.elementor-element-fwboy001 { height: 704px !important; min-height: 704px !important; }
	.elementor .elementor-element.elementor-element-c619 { margin-top: 45px !important; height: 658px !important; min-height: 658px !important; }
	/* Our Vineyards closing block: heading 6px up, logo 6px closer, section 3px shorter */
	.elementor .elementor-element.elementor-element-c622 { margin-top: -6px !important; }
	.elementor .elementor-element.elementor-element-w621 { margin-top: -6px !important; }
	.elementor .elementor-element.elementor-element-fwfin001 { height: 274px !important; min-height: 274px !important; }
}
/* ---------- Final QA, tablet (1.8.7) ---------- */
@media (min-width: 768px) and (max-width: 1024px) {
	/* Home declaration: wider paragraph, tighter gaps, as drawn */
	.elementor .elementor-element.elementor-element-w005, .elementor-element-w005 * { max-width: none !important; }
	.elementor .elementor-element.elementor-element-w005 { width: 500px !important; margin-top: -17px !important; }
	.elementor .elementor-element.elementor-element-w006 { margin-top: -8px !important; }
	.elementor-element-hmdecl01 :is(.elementor-element-w005, .elementor-element-w006) { transform: translateY(28px); }
	.elementor-element-hmdecl01 .elementor-element-w004 { position: relative; top: 28px; }
	/* Home "Our promise": paragraph 5px closer to the title, button 8px further from it */
	.elementor .elementor-element.elementor-element-w129 { margin-top: 5px !important; }
	.elementor .elementor-element.elementor-element-w130 { margin-top: 8px !important; }
	/* About, full-cycle block: the paragraphs wrap as drawn */
	.elementor .elementor-element.elementor-element-c326 .elementor-element-w324 { max-width: 448px !important; }
	.elementor .elementor-element.elementor-element-c326 .elementor-element-w325 { max-width: 470px !important; }
}

/* ---------- Article breadcrumb spacing, desktop and tablet (1.8.7) ---------- */
@media (min-width: 1025px) { .saromm-crumbs { padding-top: 2px; padding-bottom: 13px; } }
@media (min-width: 768px) and (max-width: 1024px) { .saromm-crumbs { padding-top: 2px; padding-bottom: 14px; } }
@media (max-width: 767px) { .saromm-crumbs { padding-top: 3px; padding-bottom: 12px; } }
/* ---------- Final QA, mobile (1.8.7): the last section before the footer, as drawn ---------- */
@media (max-width: 767px) {
	.elementor .elementor-element.elementor-element-hmnews10 { height: 733px !important; min-height: 733px !important; }
}
/* The breadcrumb stays on one line at every width; the title truncates with "…" (1.8.7) */
.saromm-crumbs { display: flex !important; flex-wrap: nowrap !important; align-items: center !important; }
.saromm-crumbs__back, .saromm-crumbs__sep { flex: 0 0 auto !important; }
.saromm-crumbs__current { display: block !important; flex: 1 1 auto !important; min-width: 0 !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
/* Article date: 16px light, as drawn (it was 12px medium) (1.8.7) */
.elementor-element-sgd001 .elementor-heading-title { font-size: 16px !important; line-height: 20px !important; font-weight: 300 !important; white-space: pre !important; }
/* Article body: tablet column and mobile photo-to-text gap, as drawn (1.8.7) */
@media (min-width: 768px) and (max-width: 1024px) { .elementor-element-sgc001 :is(p, h2, h3, h4, ul, ol) { max-width: 960px !important; } }
@media (max-width: 767px) { .elementor .elementor-element.elementor-element-sgc001 { margin-top: -16px !important; } }
@media (min-width: 768px) and (max-width: 1024px) { .elementor-element-sgc001 figure.size-full:not(.aligncenter) img { width: 100% !important; height: 539px !important; object-fit: cover !important; } }
/* Our Vineyards, "In 20 years": paragraph in #344E61 (all widths); mobile heading width and the text/photo split, as drawn (1.8.7) */
.elementor-element-w617, .elementor-element-w617 p { color: #344E61 !important; }
@media (max-width: 767px) {
	.elementor .elementor-element.elementor-element-fwboy001, .elementor .elementor-element.elementor-element-c619 { height: 461px !important; min-height: 461px !important; }
}
/* Our Vision on mobile: REDEFINE and CHANGE text as drawn (1.8.7) */
@media (max-width: 767px) {
	.elementor-element-s416 .elementor-element-w413 { position: relative; top: 15px; }
	.elementor-element-s416 .elementor-element-w414 { position: relative; top: 7px; }
	.elementor .elementor-element.elementor-element-w428 { max-width: 292px !important; margin-left: auto !important; margin-right: auto !important; position: relative; top: -9px; }
}
@media (max-width: 767px) { .elementor .elementor-element.elementor-element-ctmap001 { padding-bottom: 8px !important; } }

/* Mobile image for articles: the <picture> wrapper must not change the layout (1.8.8) */
.saromm-pic { display: contents; }

/* ---------- Our Vineyards, "Two vineyards, two kinds of beauty": two columns under the heading (1.8.10) ---------- */
.saromm-lead { margin-bottom: 0; }
.saromm-two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 48px; margin-top: 32px; text-align: left; }
.saromm-two-col h3 { font-family: inherit; font-size: 18px; line-height: 24px; font-weight: 600; color: #01223A; text-transform: uppercase; margin: 0 0 12px; }
.saromm-two-col p { margin: 0; }
@media (max-width: 767px) { .saromm-two-col { grid-template-columns: 1fr; gap: 24px; margin-top: 24px; } }
.elementor .elementor-element.elementor-element-fwb4001 { height: auto !important; min-height: 0 !important; }
.elementor .elementor-element.elementor-element-fwb4001 { padding-bottom: 96px !important; }
@media (max-width: 1024px) { .elementor .elementor-element.elementor-element-fwb4001 { padding-bottom: 72px !important; } }
@media (max-width: 767px) { .elementor .elementor-element.elementor-element-fwb4001 { padding-bottom: 56px !important; } .saromm-two-col h3 { font-size: 16px; line-height: 20px; margin-bottom: 8px; } }

/* ---------- Book reader: a PDF opens on the page, not in a new tab (1.8.11) ---------- */
html.saromm-book-open, html.saromm-book-open body { overflow: hidden !important; }
.saromm-book { position: fixed; inset: 0; z-index: 100000; display: none; flex-direction: column; background: rgba(1, 34, 58, .94); font-family: 'Outfit', sans-serif; }
.saromm-book.is-open { display: flex; }
.saromm-book__bar { flex: 0 0 auto; height: 56px; display: flex; align-items: center; justify-content: space-between; padding: 0 16px 0 24px; color: #fff; font-size: 14px; letter-spacing: .5px; }
.saromm-book__close { width: 40px; height: 40px; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .7); border-radius: 50%; background: transparent; color: #fff; cursor: pointer; padding: 0; }
.saromm-book__close:hover, .saromm-book__close:focus-visible { background: rgba(232, 86, 25, .8); border-color: transparent; outline: none; }
.saromm-book__pages { flex: 1 1 auto; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding: 8px 16px 48px; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.saromm-book__page { position: relative; width: min(900px, 100%); background: rgba(255, 255, 255, .06); box-shadow: 0 8px 32px rgba(0, 0, 0, .35); flex: 0 0 auto; }
.saromm-book__page:empty::after { content: "Loading page…"; position: absolute; inset: 0; display: grid; place-items: center; color: rgba(255, 255, 255, .6); font-size: 14px; letter-spacing: .5px; }
.saromm-book__page canvas { background: #fff; }
.saromm-book__page canvas { display: block; width: 100%; height: 100%; }
.saromm-book__status { color: #fff; margin: auto; font-size: 16px; text-align: center; }
@media (max-width: 767px) { .saromm-book__bar { padding: 0 12px 0 16px; } .saromm-book__pages { padding: 4px 8px 32px; gap: 8px; } }

/* ---------- Home cards: the white line is its own layer above the photo, so photos can change (1.8.11) ---------- */
.elementor-element-hmcard01 :is(.elementor-element-c011, .elementor-element-c013, .elementor-element-c015, .elementor-element-c017)::before {
	content: "" !important; position: absolute; inset: 0; z-index: 0; pointer-events: none; background: center / cover no-repeat; opacity: 1;
}
.elementor-element-hmcard01 .elementor-element-c011::before { background-image: url(../lines/vineyard.png); }
.elementor-element-hmcard01 .elementor-element-c013::before { background-image: url(../lines/winery.png); }
.elementor-element-hmcard01 .elementor-element-c015::before { background-image: url(../lines/research.png); }
.elementor-element-hmcard01 .elementor-element-c017::before { background-image: url(../lines/hotel.png); }
@media (max-width: 767px) {
	.elementor-element-hmcard01 .elementor-element-c011::before { background-image: url(../lines/vineyard-m.png); }
	.elementor-element-hmcard01 .elementor-element-c013::before { background-image: url(../lines/winery-m.png); }
	.elementor-element-hmcard01 .elementor-element-c015::before { background-image: url(../lines/research-m.png); }
	.elementor-element-hmcard01 .elementor-element-c017::before { background-image: url(../lines/hotel-m.png); }
}

/* ---------- Home hero scroll video (1.9.0) ---------- */
.saromm-scrub-space { pointer-events: none; }
.elementor-element-hmhero01 > .saromm-scrub-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; pointer-events: none; }
html.saromm-scrubbing .elementor-element-hmhero01 > .elementor-background-video-container { display: none !important; }

/* ---------- Home numbers band, client's final figures (1.9.2) ----------
 * Figures with units ("1400 m", "19 ha") stay on one line and centre on their spot. */
.elementor-element-hmeco001 :is(.elementor-element-w104, .elementor-element-w107, .elementor-element-w110, .elementor-element-w113, .elementor-element-w116, .elementor-element-w119) .elementor-heading-title { white-space: nowrap !important; }
.elementor .elementor-element-hmeco001 :is(.elementor-element-c106, .elementor-element-c109, .elementor-element-c112, .elementor-element-c115, .elementor-element-c118, .elementor-element-c121) { align-items: center !important; }
@media (max-width: 767px) {
	/* Phones: a wider zig-zag so figures with units fit (1.9.2) */
	.elementor .elementor-element.elementor-element-hmeco001 { height: 1130px !important; min-height: 1130px !important; }
	.elementor .elementor-element.elementor-element-c106 { left: 130px !important; top: 200px !important; width: 240px !important; }
	.elementor .elementor-element.elementor-element-c109 { left: 5px !important; top: 350px !important; width: 240px !important; }
	.elementor .elementor-element.elementor-element-c112 { left: 130px !important; top: 500px !important; width: 240px !important; }
	.elementor .elementor-element.elementor-element-c115 { left: 5px !important; top: 650px !important; width: 240px !important; }
	.elementor .elementor-element.elementor-element-c121 { left: 130px !important; top: 800px !important; width: 240px !important; }
	.elementor .elementor-element.elementor-element-c118 { left: 5px !important; top: 950px !important; width: 240px !important; }
}
