:root {
	--ellida-cream: #f4efeb;
	--ellida-navy: #2f4157;
	--ellida-pale: #c7d9e5;
	--ellida-pale-2: #b9d3e2;
	--ellida-deep: #577c8e;
	--ellida-card: #294159;
	--ellida-white: #fff;
	--ellida-shadow: 0 18px 48px rgba(47, 65, 87, .10);
	--ellida-ease: cubic-bezier(.22, 1, .36, 1);
	--ellida-header-h: 122px;
}

html { scroll-behavior: smooth; }
body.ellida-landing-page { margin: 0; background: var(--ellida-cream); }
body.ellida-modal-open { overflow: hidden; }

.ellida-landing,
.ellida-landing * { box-sizing: border-box; }
.ellida-landing {
	width: 100vw;
	max-width: none;
	margin-left: calc(50% - 50vw);
	overflow: clip;
	background: var(--ellida-cream);
	color: var(--ellida-navy);
	font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
	font-size: 17px;
	line-height: 1.48;
	-webkit-font-smoothing: antialiased;
}
.ellida-landing img { display: block; max-width: 100%; }
.ellida-landing a { color: inherit; text-decoration: none; }
.ellida-landing button,
.ellida-landing input,
.ellida-landing textarea { font: inherit; }
.ellida-landing button { color: inherit; }
.ellida-landing h1,
.ellida-landing h2,
.ellida-landing h3,
.ellida-landing p { margin-top: 0; }
.ellida-shell { width: min(calc(100% - 72px), 1080px); margin-inline: auto; }
#ellida-main { padding-top: var(--ellida-header-h); }
.ellida-section { position: relative; padding: clamp(86px, 8vw, 150px) 0; }
.ellida-kicker { margin: 0 0 14px; font-size: clamp(12px, .95vw, 17px); font-weight: 400; letter-spacing: .03em; text-transform: uppercase; }
.ellida-kicker--light { color: var(--ellida-cream); }
.ellida-script { height: auto; }
.ellida-skip-link { position: fixed; left: 12px; top: -100px; z-index: 999999; padding: 10px 16px; border-radius: 8px; background: #fff; color: #000; }
.ellida-skip-link:focus { top: 12px; }
.screen-reader-text { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }

.ellida-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 12px 25px;
	border: 0;
	border-radius: 18px;
	font-weight: 600;
	line-height: 1;
	transition: transform .38s var(--ellida-ease), background-color .38s ease, color .38s ease, box-shadow .38s ease;
}
.ellida-btn:hover,
.ellida-btn:focus-visible { transform: translateY(-2px); box-shadow: 0 12px 25px rgba(47, 65, 87, .16); outline: none; }
.ellida-btn--dark { background: var(--ellida-navy); color: #fff !important; }
.ellida-btn--dark:hover,
.ellida-btn--dark:focus-visible { background: #22354d; }
.ellida-btn--pale { background: var(--ellida-pale); color: var(--ellida-navy) !important; }
.ellida-btn--pale:hover,
.ellida-btn--pale:focus-visible { background: #b7d0df; }

/* Header */
.ellida-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	z-index: 1000;
	height: var(--ellida-header-h);
	background: rgba(244, 239, 235, .98);
	transition: box-shadow .4s ease, backdrop-filter .4s ease, background-color .4s ease;
}
.ellida-header.is-scrolled { box-shadow: 0 9px 25px rgba(47, 65, 87, .08); background: rgba(244, 239, 235, .90); backdrop-filter: blur(14px); }
.ellida-header__inner { height: 100%; display: grid; grid-template-columns: 170px minmax(0, 1fr) auto; align-items: center; gap: 24px; }
.ellida-logo { display: block; width: 150px; }
.ellida-logo img { width: 100%; height: auto; }
.ellida-nav { display: grid; grid-template-columns: repeat(4, 1fr); align-items: center; min-height: 56px; padding: 0 14px; border-radius: 36px; background: var(--ellida-navy); color: #fff; }
.ellida-nav a { position: relative; display: grid; place-items: center; height: 100%; font-size: clamp(15px, 1.1vw, 18px); font-weight: 400; }
.ellida-nav a::after { content: ""; position: absolute; left: 28%; right: 28%; bottom: 15px; height: 1px; background: #fff; transform: scaleX(0); transition: transform .35s var(--ellida-ease); }
.ellida-nav a:hover::after,
.ellida-nav a:focus-visible::after { transform: scaleX(1); }
.ellida-booking { display: inline-flex; justify-content: center; align-items: center; min-height: 56px; padding: 0 24px; border-radius: 36px; background: var(--ellida-pale); font-size: clamp(15px, 1.05vw, 18px); font-weight: 700; white-space: nowrap; transition: transform .38s var(--ellida-ease), background-color .38s ease; }
.ellida-booking:hover,
.ellida-booking:focus-visible { transform: translateY(-2px); background: #b9d1e0; outline: none; }
.ellida-menu-toggle { display: none; }

/* Hero / chi sono scroll story */
.ellida-story { position: relative; height: 168vh; min-height: 1100px; background: #f6f7f8; }
.ellida-story__sticky { position: sticky; top: var(--ellida-header-h); height: calc(100vh - var(--ellida-header-h)); min-height: 640px; overflow: hidden; isolation: isolate; }
.ellida-story__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; object-position: left top; z-index: -3; background: #f6f7f8; }
.ellida-story__wash { position: absolute; inset: 0; z-index: -2; background: linear-gradient(90deg, rgba(255,255,255,0) 0 34%, rgba(248,249,250,.10) 45%, rgba(248,249,250,.42) 66%, rgba(248,249,250,.54) 100%); }
.ellida-story__content,
.ellida-story__about { position: absolute; left: 54.5%; width: min(34%, 480px); top: 47%; transform: translateY(-50%); }
.ellida-story__hero { opacity: 1; transition: opacity .9s var(--ellida-ease), transform .9s var(--ellida-ease); }
.ellida-story__hero h1 { margin-bottom: 30px; font-size: clamp(54px, 4.8vw, 70px); line-height: 1.01; letter-spacing: -.035em; font-weight: 700; }
.ellida-story__hero p { max-width: 460px; margin-bottom: 28px; font-size: clamp(18px, 1.22vw, 21px); line-height: 1.42; }
.ellida-story__about { padding: 34px 36px; border-radius: 42px; background: var(--ellida-pale); opacity: 0; transform: translateY(calc(-50% + 30px)); pointer-events: none; transition: opacity .9s var(--ellida-ease) .08s, transform .9s var(--ellida-ease) .08s; }
.ellida-story__about-title { width: min(100%, 520px); margin-bottom: 28px; }
.ellida-story__about p { margin-bottom: 22px; font-size: clamp(18px, 1.3vw, 21px); line-height: 1.42; }
.ellida-story.is-about .ellida-story__hero { opacity: 0; transform: translateY(calc(-50% - 28px)); pointer-events: none; }
.ellida-story.is-about .ellida-story__about { opacity: 1; transform: translateY(-50%); pointer-events: auto; }

/* Intro */
.ellida-intro { background: var(--ellida-cream); text-align: center; }
.ellida-intro__inner { max-width: 1040px; }
.ellida-intro__title { width: min(100%, 760px); margin: 0 auto 30px; }
.ellida-intro p:not(.ellida-kicker) { max-width: 920px; margin: 0 auto 30px; font-size: clamp(17px, 1.25vw, 23px); line-height: 1.45; }
.ellida-intro .ellida-btn { margin-top: 12px; }

/* Approach */
.ellida-approach { background: var(--ellida-cream); }
.ellida-approach__grid { display: grid; grid-template-columns: minmax(430px, .92fr) minmax(620px, 1.28fr); align-items: center; gap: clamp(45px, 6vw, 110px); }
.ellida-approach__copy h2 { margin-bottom: 28px; font-size: clamp(48px, 4.1vw, 62px); line-height: 1.06; letter-spacing: -.035em; }
.ellida-approach__copy p { max-width: 670px; margin-bottom: 25px; font-size: clamp(17px, 1.1vw, 19px); line-height: 1.48; }
.ellida-tags { display: flex; flex-wrap: wrap; gap: 12px; margin: 34px 0 25px; }
.ellida-tags span { padding: 8px 18px; border: 1px solid rgba(47, 65, 87, .43); border-radius: 20px; font-size: clamp(12px, .9vw, 16px); }
.ellida-approach__visual { position: relative; min-height: 620px; }
.ellida-approach__visual > img { position: absolute; inset: 3% 0 0; width: 100%; height: 94%; object-fit: contain; opacity: .88; clip-path: inset(0 100% 0 0); }
.ellida-line-drawing.is-drawing > img { animation: ellida-line-reveal 2.6s var(--ellida-ease) forwards; }
@keyframes ellida-line-reveal { to { clip-path: inset(0 0 0 0); } }
.ellida-approach-card { position: absolute; width: min(34%, 320px); text-align: center; z-index: 2; cursor: default; }
.ellida-approach-card h3 { margin: 0 0 8px; padding: 8px 20px; border-radius: 999px; background: var(--ellida-pale); font-size: clamp(20px, 1.8vw, 34px); font-weight: 600; line-height: 1; transition: background-color .55s var(--ellida-ease), color .55s ease, transform .55s var(--ellida-ease); }
.ellida-approach-card p { margin: 0; font-size: clamp(13px, .9vw, 16px); line-height: 1.38; transition: color .55s ease; }
.ellida-approach-card:hover h3,
.ellida-approach-card:focus-visible h3 { background: var(--ellida-deep); color: #fff; transform: translateY(-3px); }
.ellida-approach-card:focus-visible { outline: none; }
.ellida-approach-card--one { top: 16%; right: 8%; }
.ellida-approach-card--two { top: 47%; left: 28%; }
.ellida-approach-card--three { bottom: 7%; right: 18%; }

/* Services */
.ellida-services { background: var(--ellida-pale); }
.ellida-services__heading { max-width: 870px; margin-bottom: 38px; }
.ellida-services__heading h2 { margin-bottom: 26px; font-size: clamp(52px, 4.4vw, 66px); line-height: 1.04; letter-spacing: -.04em; }
.ellida-services__heading h2 em { color: var(--ellida-deep); font-style: normal; font-weight: inherit; }
.ellida-services__heading p { max-width: 520px; font-size: clamp(18px, 1.1vw, 19px); line-height: 1.42; }
.ellida-services__expanded-title { display: none; }
.ellida-services.is-expanded .ellida-services__compact-title { display: none; }
.ellida-services.is-expanded .ellida-services__expanded-title { display: block; }
.ellida-services-grid { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: stretch; min-height: 460px; transition: min-height .65s var(--ellida-ease); }
.ellida-service-card { position: relative; display: flex; flex-direction: column; align-items: flex-start; min-height: 208px; padding: 24px 20px 20px; border: 0; border-radius: 32px; background: rgba(199, 217, 229, .68); box-shadow: inset 0 0 34px rgba(255,255,255,.58), var(--ellida-shadow); text-align: left; cursor: pointer; overflow: hidden; transition: background-color .45s ease, box-shadow .45s ease, opacity .45s ease; }
.ellida-service-card:hover,
.ellida-service-card:focus-visible,
.ellida-service-card.is-active { background: rgba(185, 211, 226, .97); box-shadow: inset 0 0 34px rgba(255,255,255,.64), 0 20px 45px rgba(47,65,87,.16); outline: none; }
.ellida-service-card__icon { display: block; width: 54px; height: 54px; margin: 0 auto 12px; color: var(--ellida-deep); align-self: center; }
.ellida-service-card__icon svg,
.ellida-service-detail__icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.ellida-service-card strong { margin: 0 0 12px; font-size: clamp(18px, 1.1vw, 21px); line-height: 1.08; text-transform: lowercase; }
.ellida-service-card > span:not(.ellida-service-card__icon) { font-size: clamp(13px, .9vw, 15px); line-height: 1.4; }
.ellida-service-card small { margin-top: auto; align-self: center; padding: 7px 13px; border-radius: 16px; background: var(--ellida-deep); color: #fff; font-size: 11px; font-weight: 600; }
.ellida-service-detail { display: none; position: relative; flex-direction: column; justify-content: flex-start; min-height: 520px; padding: 36px 42px 40px; border-radius: 38px; background: rgba(185, 211, 226, .84); box-shadow: inset 0 0 42px rgba(255,255,255,.48), var(--ellida-shadow); opacity: 0; transform: translateY(16px); }
.ellida-service-detail__close { position: absolute; right: 24px; top: 20px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: transparent; font-size: 34px; line-height: 1; cursor: pointer; }
.ellida-service-detail__close:hover,
.ellida-service-detail__close:focus-visible { background: rgba(255,255,255,.55); outline: none; }
.ellida-service-detail__icon { width: 58px; height: 58px; margin: 0 auto 12px; color: var(--ellida-deep); }
.ellida-service-detail h3 { margin-bottom: 22px; font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif; font-size: clamp(34px, 2.8vw, 52px); font-weight: 700; line-height: 1.05; text-align: center; text-transform: none; }
.ellida-service-detail p { margin-bottom: 20px; font-size: clamp(17px, 1.05vw, 19px); line-height: 1.45; }
.ellida-service-detail > strong { font-size: clamp(18px, 1.1vw, 22px); }
.ellida-service-detail ul { margin: 0 0 28px; padding-left: 0; list-style: none; font-size: clamp(16px, 1.0vw, 18px); }
.ellida-service-detail ul li::before { content: ""; display: inline-block; width: 7px; height: 7px; margin: 0 12px 2px 0; border-radius: 50%; background: var(--ellida-deep); }
.ellida-service-detail .ellida-btn { align-self: flex-start; }
.ellida-services-grid[data-expanded="true"] { grid-template-columns: 170px repeat(3, minmax(0, 1fr)) 170px; grid-template-rows: repeat(3, minmax(150px, auto)); gap: 18px 22px; min-height: 600px; }
.ellida-services-grid[data-expanded="true"] .ellida-service-detail { display: flex; grid-column: 2 / 5; grid-row: 1 / 4; opacity: 1; transform: none; animation: ellida-detail-in .68s var(--ellida-ease) both; }
@keyframes ellida-detail-in { from { opacity: 0; transform: translateY(18px); } }
.ellida-services-grid[data-expanded="true"] .ellida-service-card { min-height: 190px; padding: 25px; }
.ellida-services-grid[data-expanded="true"] .ellida-service-card--left-1 { grid-column: 1; grid-row: 1; }
.ellida-services-grid[data-expanded="true"] .ellida-service-card--left-2 { grid-column: 1; grid-row: 2; }
.ellida-services-grid[data-expanded="true"] .ellida-service-card--left-3 { grid-column: 1; grid-row: 3; }
.ellida-services-grid[data-expanded="true"] .ellida-service-card--right-1 { grid-column: 5; grid-row: 1; }
.ellida-services-grid[data-expanded="true"] .ellida-service-card--right-2 { grid-column: 5; grid-row: 2; }
.ellida-services-grid[data-expanded="true"] .ellida-service-card--right-3 { grid-column: 5; grid-row: 3; }

/* Help */
.ellida-help { background: var(--ellida-deep); color: var(--ellida-cream); }
.ellida-help__grid { display: grid; grid-template-columns: minmax(440px, .95fr) minmax(480px, .85fr); gap: clamp(70px, 10vw, 180px); align-items: center; }
.ellida-help__title { width: min(100%, 670px); margin-bottom: 48px; }
.ellida-help__copy p { max-width: 670px; margin-bottom: 30px; font-size: clamp(17px, 1.25vw, 23px); line-height: 1.42; }
.ellida-help__copy .ellida-btn { margin-top: 22px; }
.ellida-help__list { display: grid; gap: 0; }
.ellida-help__list button { display: flex; align-items: center; justify-content: space-between; gap: 24px; width: 100%; padding: 24px 2px 18px; border: 0; border-bottom: 1px solid rgba(244,239,235,.68); background: transparent; color: var(--ellida-cream); text-align: left; cursor: pointer; font-size: clamp(17px, 1.25vw, 23px); transition: color .35s ease, padding-left .35s var(--ellida-ease); }
.ellida-help__list button:hover,
.ellida-help__list button:focus-visible { color: #fff; padding-left: 12px; outline: none; }
.ellida-help__list button span:last-child { font-size: 25px; transition: transform .35s var(--ellida-ease); }
.ellida-help__list button:hover span:last-child,
.ellida-help__list button:focus-visible span:last-child { transform: rotate(90deg); }

/* Process */
.ellida-process { background: var(--ellida-cream); }
.ellida-process__heading h2 { margin-bottom: 48px; font-size: clamp(48px, 4vw, 62px); line-height: 1.06; letter-spacing: -.035em; }
.ellida-process-map { position: relative; min-height: 600px; }
.ellida-process-map__thread { position: absolute; inset: 0; overflow: hidden; }
.ellida-process-map__thread img { width: 100%; height: 100%; object-fit: contain; object-position: center top; clip-path: inset(0 100% 0 0); opacity: .98; }
.ellida-process-map.is-drawing .ellida-process-map__thread img { animation: ellida-thread-draw 3.4s var(--ellida-ease) forwards; }
@keyframes ellida-thread-draw { 0% { clip-path: inset(0 100% 0 0); } 8% { clip-path: inset(0 95% 0 0); } 22% { clip-path: inset(0 72% 0 0); } 44% { clip-path: inset(0 48% 0 0); } 68% { clip-path: inset(0 24% 0 0); } 100% { clip-path: inset(0 0 0 0); } }
.ellida-process-step,
.ellida-process-center { position: absolute; z-index: 2; text-align: center; }
.ellida-process-step { width: 18%; }
.ellida-process-step h3 { display: inline-flex; align-items: center; justify-content: center; min-width: 160px; margin: 0 0 13px; padding: 10px 16px; border-radius: 999px; background: var(--ellida-deep); color: #fff; font-size: clamp(16px, 1.1vw, 21px); line-height: 1; }
.ellida-process-step p { margin: 0; font-size: clamp(13px, .92vw, 16px); line-height: 1.4; }
.ellida-process-step--one { left: 5%; top: 18%; }
.ellida-process-step--two { left: 29%; top: 21%; }
.ellida-process-step--three { left: 53%; top: 21%; }
.ellida-process-step--four { right: 3%; top: 21%; }
.ellida-process-center { left: 50%; top: 63%; width: min(31%, 370px); transform: translateX(-50%); padding: 24px 28px; border-radius: 34px; background: var(--ellida-deep); color: #fff; }
.ellida-process-center h3 { margin-bottom: 7px; font-size: clamp(20px, 1.7vw, 32px); }
.ellida-process-center p { margin: 0; font-size: clamp(13px, .95vw, 17px); }
.ellida-process-map.is-drawing .ellida-process-step,
.ellida-process-map.is-drawing .ellida-process-center { animation: ellida-map-card-in .8s var(--ellida-ease) both; }
.ellida-process-map.is-drawing .ellida-process-step--one { animation-delay: .55s; }
.ellida-process-map.is-drawing .ellida-process-step--two { animation-delay: 1.15s; }
.ellida-process-map.is-drawing .ellida-process-step--three { animation-delay: 1.8s; }
.ellida-process-map.is-drawing .ellida-process-step--four { animation-delay: 2.35s; }
.ellida-process-map.is-drawing .ellida-process-center { animation-delay: 2.75s; }
@keyframes ellida-map-card-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
.ellida-process-map.is-drawing .ellida-process-center { animation-name: ellida-map-center-in; }
@keyframes ellida-map-center-in { from { opacity: 0; transform: translate(-50%, 14px); } to { opacity: 1; transform: translate(-50%, 0); } }

/* Contact */
.ellida-contact { background: var(--ellida-cream); padding-bottom: 80px; }
.ellida-contact__grid { display: grid; grid-template-columns: .92fr 1.08fr; gap: clamp(40px, 7vw, 82px); align-items: start; }
.ellida-contact__title { width: min(100%, 540px); margin-bottom: 28px; }
.ellida-contact__copy { padding-top: 34px; }
.ellida-contact__copy p { max-width: 520px; font-size: clamp(17px, 1.08vw, 18px); line-height: 1.48; }
.ellida-contact-form { padding: clamp(30px, 3.5vw, 58px); border-radius: 28px; background: var(--ellida-pale); }
.ellida-contact-form h2 { margin-bottom: 28px; font-size: clamp(27px, 2.15vw, 42px); line-height: 1.1; }
.ellida-contact-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.ellida-contact-form label { display: block; margin-bottom: 22px; }
.ellida-contact-form label > span { display: block; margin-bottom: 8px; font-size: 12px; }
.ellida-contact-form input[type="text"],
.ellida-contact-form input[type="email"],
.ellida-contact-form textarea { width: 100%; border: 0; border-radius: 18px; background: var(--ellida-cream); color: var(--ellida-navy); outline: 2px solid transparent; outline-offset: 2px; transition: outline-color .3s ease; }
.ellida-contact-form input[type="text"],
.ellida-contact-form input[type="email"] { min-height: 48px; padding: 0 17px; }
.ellida-contact-form textarea { min-height: 190px; padding: 17px; resize: vertical; }
.ellida-contact-form input:focus,
.ellida-contact-form textarea:focus { outline-color: var(--ellida-deep); }
.ellida-contact-form__privacy { display: flex !important; align-items: flex-start; gap: 9px; font-size: 11px; }
.ellida-contact-form__privacy input { margin-top: 2px; }
.ellida-contact-form__privacy span { margin: 0 !important; }
.ellida-contact-form .ellida-btn { display: flex; margin: 0 auto; min-width: 116px; }
.ellida-honeypot { position: absolute !important; left: -9999px !important; opacity: 0 !important; pointer-events: none !important; }
.ellida-form-status { min-height: 24px; margin: 0 0 10px; text-align: center; font-size: 13px; }
.ellida-quote { padding-top: clamp(75px, 8vw, 140px); text-align: center; }
.ellida-quote img { width: min(100%, 940px); margin: 0 auto; }

/* Footer */
.ellida-footer { padding: 34px 0 38px; background: var(--ellida-deep); color: #fff; border-radius: 0; }
.ellida-footer__grid { display: grid; grid-template-columns: 180px repeat(3, 1fr); gap: 40px; align-items: start; }
.ellida-footer__logo { width: 135px; filter: brightness(0) invert(1); opacity: 1; }
.ellida-footer__grid > div { display: flex; flex-direction: column; gap: 6px; font-size: 12px; }
.ellida-footer__grid strong { font-size: 14px; font-weight: 500; }

/* Dialog */
.ellida-help-dialog { width: min(760px, calc(100% - 38px)); max-height: min(80vh, 760px); padding: 0; border: 0; border-radius: 35px; background: var(--ellida-card); color: #fff; box-shadow: 0 28px 90px rgba(0,0,0,.35); overflow: visible; opacity: 0; transform: translateY(22px) scale(.985); transition: opacity .4s var(--ellida-ease), transform .4s var(--ellida-ease), overlay .4s allow-discrete, display .4s allow-discrete; }
.ellida-help-dialog[open] { opacity: 1; transform: none; }
@starting-style { .ellida-help-dialog[open] { opacity: 0; transform: translateY(22px) scale(.985); } }
.ellida-help-dialog::backdrop { background: rgba(26, 39, 55, .62); backdrop-filter: blur(3px); opacity: 0; transition: opacity .4s ease, overlay .4s allow-discrete, display .4s allow-discrete; }
.ellida-help-dialog[open]::backdrop { opacity: 1; }
@starting-style { .ellida-help-dialog[open]::backdrop { opacity: 0; } }
.ellida-help-dialog__body { padding: clamp(38px, 6vw, 78px); }
.ellida-help-dialog h2 { margin-bottom: 28px; font-size: clamp(32px, 4vw, 56px); line-height: 1.06; }
.ellida-help-dialog p { margin-bottom: 25px; font-size: clamp(16px, 1.5vw, 21px); }
.ellida-help-dialog__close { position: absolute; z-index: 2; right: 18px; top: 16px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255,255,255,.10); color: #fff; font-size: 30px; cursor: pointer; }
.ellida-help-dialog__close:hover,
.ellida-help-dialog__close:focus-visible { background: rgba(255,255,255,.20); outline: none; }

/* Editorial reveals */
[data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .85s var(--ellida-ease), transform .85s var(--ellida-ease); }
[data-reveal].is-visible { opacity: 1; transform: none; }

/* Laptop */
@media (max-width: 1350px) {
	:root { --ellida-header-h: 110px; }
	.ellida-shell { width: min(calc(100% - 56px), 1080px); }
	.ellida-header__inner { grid-template-columns: 150px minmax(0, 1fr) auto; gap: 18px; }
	.ellida-logo { width: 140px; }
	.ellida-nav { min-height: 52px; }
	.ellida-booking { min-height: 58px; padding-inline: 24px; }
	.ellida-story__content,
	.ellida-story__about { left: 52%; width: 43%; }
	.ellida-approach__grid { grid-template-columns: .9fr 1.1fr; }
	.ellida-services-grid[data-expanded="true"] { grid-template-columns: 185px repeat(3, minmax(0, 1fr)) 185px; gap: 25px; }
}

/* Tablet */
@media (max-width: 1024px) {
	:root { --ellida-header-h: 94px; }
	.ellida-shell { width: min(calc(100% - 44px), 920px); }
	.ellida-header__inner { grid-template-columns: 150px 1fr auto; gap: 18px; }
	.ellida-logo { width: 140px; }
	.ellida-nav { min-height: 52px; padding: 0 8px; }
	.ellida-nav a { font-size: 14px; }
	.ellida-booking { min-height: 52px; padding: 0 17px; font-size: 14px; }
	.ellida-story { height: auto; min-height: 0; }
	.ellida-story__sticky { position: relative; top: 0; height: auto; min-height: 0; padding-top: 18px; }
	.ellida-story__content,
	.ellida-story__about { position: relative; left: auto; width: 100%; top: auto; transform: none; }
	.ellida-story__hero h1 { font-size: clamp(34px, 7vw, 46px); margin-bottom: 18px; }
	.ellida-story__hero p { font-size: 15px; }
	.ellida-story__about { padding: 26px; border-radius: 30px; margin-top: 18px; }
	.ellida-story__about p { font-size: 16px; margin-bottom: 18px; }
	.ellida-approach__grid { grid-template-columns: 1fr; }
	.ellida-approach__copy { max-width: 760px; }
	.ellida-approach__visual { min-height: 520px; }
	.ellida-services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ellida-services-grid[data-expanded="true"] { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; min-height: 0; }
	.ellida-services-grid[data-expanded="true"] .ellida-service-card { grid-column: auto !important; grid-row: auto !important; min-height: 220px; }
	.ellida-services-grid[data-expanded="true"] .ellida-service-detail { grid-column: 1 / -1; grid-row: auto; min-height: 560px; order: 20; }
	.ellida-help__grid { grid-template-columns: 1fr; }
	.ellida-help__copy { max-width: 760px; }
	.ellida-process-map { min-height: 520px; }
	.ellida-process-step { width: 46%; }
	.ellida-process-center { width: min(82%, 360px); }
	.ellida-contact__grid { grid-template-columns: 1fr; gap: 45px; }
	.ellida-footer__grid { grid-template-columns: 160px repeat(3, 1fr); gap: 20px; }
}

/* Mobile */
@media (max-width: 767px) {
	:root { --ellida-header-h: 82px; }
	.ellida-shell { width: min(calc(100% - 34px), 620px); }
	.ellida-section { padding: 72px 0; }
	.ellida-header { height: var(--ellida-header-h); }
	#ellida-main { padding-top: var(--ellida-header-h); }
	.ellida-header__inner { grid-template-columns: 1fr auto; }
	.ellida-logo { width: 128px; }
	.ellida-booking { display: none; }
	.ellida-menu-toggle { display: grid; place-content: center; gap: 4px; width: 48px; height: 48px; padding: 0; border: 0; border-radius: 50%; background: var(--ellida-navy); cursor: pointer; }
	.ellida-menu-toggle span:not(.screen-reader-text) { width: 21px; height: 2px; background: #fff; transition: transform .35s var(--ellida-ease), opacity .35s ease; }
	.ellida-menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
	.ellida-menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
	.ellida-menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
	.ellida-nav { position: fixed; top: 74px; left: 17px; right: 17px; display: grid; grid-template-columns: 1fr; height: auto; min-height: 0; padding: 18px; border-radius: 28px; box-shadow: var(--ellida-shadow); opacity: 0; transform: translateY(-12px); pointer-events: none; transition: opacity .35s var(--ellida-ease), transform .35s var(--ellida-ease); }
	.ellida-nav.is-open { opacity: 1; transform: none; pointer-events: auto; }
	.ellida-nav a { height: 48px; font-size: 17px; }
	.ellida-nav a::after { bottom: 5px; }
	.ellida-story { height: auto; min-height: 0; }
	.ellida-story__sticky { position: relative; top: 0; height: auto; min-height: 0; overflow: visible; display: flex; flex-direction: column; background: #f6f7f8; }
	.ellida-story__photo { position: relative; width: 100%; height: 455px; object-fit: cover; object-position: 38% center; z-index: 0; }
	.ellida-story__wash { display: none; }
	.ellida-story__content,
	.ellida-story__about { position: relative; left: auto; top: auto; width: auto; transform: none !important; }
	.ellida-story__hero { order: 2; padding: 45px 22px 60px; background: var(--ellida-cream); opacity: 1 !important; pointer-events: auto !important; }
	.ellida-story__hero h1 { font-size: clamp(40px, 12vw, 58px); }
	.ellida-story__hero p { font-size: 16px; }
	.ellida-story__about { order: 3; margin: 0 17px 45px; padding: 34px 25px; border-radius: 38px; opacity: 1 !important; pointer-events: auto !important; }
	.ellida-story__about-title { margin-bottom: 22px; }
	.ellida-story__about p { font-size: 16px; }
	.ellida-intro__title { width: 100%; }
	.ellida-approach__copy h2 { font-size: 43px; }
	.ellida-approach__visual { min-height: 0; display: grid; gap: 22px; padding-top: 30px; }
	.ellida-approach__visual > img { position: absolute; inset: 0; opacity: .28; }
	.ellida-approach-card { position: relative; inset: auto !important; width: 100%; padding: 14px; }
	.ellida-approach-card h3 { max-width: 310px; margin-inline: auto; }
	.ellida-services__heading h2 { font-size: 43px; }
	.ellida-services-grid,
	.ellida-services-grid[data-expanded="true"] { grid-template-columns: 1fr; gap: 22px; min-height: 0; }
	.ellida-service-card,
	.ellida-services-grid[data-expanded="true"] .ellida-service-card { min-height: 220px; }
	.ellida-services-grid[data-expanded="true"] .ellida-service-detail { grid-column: 1; min-height: 0; padding: 44px 26px; order: 20; }
	.ellida-service-detail h3 { font-size: 36px; }
	.ellida-service-detail p { font-size: 16px; }
	.ellida-service-detail .ellida-btn { align-self: stretch; }
	.ellida-help__title { width: 100%; }
	.ellida-help__copy p { font-size: 16px; }
	.ellida-process__heading h2 { font-size: 40px; }
	.ellida-process-map { min-height: 0; display: grid; gap: 20px; padding-left: 18px; }
	.ellida-process-map__thread { left: 0; right: auto; width: 4px; top: 0; bottom: 0; background: var(--ellida-pale); border-radius: 4px; }
	.ellida-process-map__thread img { display: none; }
	.ellida-process-step,
	.ellida-process-center { position: relative; inset: auto !important; width: 100%; transform: none !important; text-align: left; padding: 10px 0 10px 18px; }
	.ellida-process-step h3 { justify-content: flex-start; min-width: 0; }
	.ellida-process-center { padding: 25px; text-align: center; }
	.ellida-process-map.is-drawing .ellida-process-center { animation-name: ellida-map-card-in; }
	.ellida-contact__grid { grid-template-columns: 1fr; }
	.ellida-contact__copy { max-width: 500px; }
	.ellida-contact-form { padding: 28px 20px; }
	.ellida-contact-form__row { grid-template-columns: 1fr; gap: 0; }
	.ellida-footer__grid { grid-template-columns: 1fr 1fr; gap: 30px 20px; }
	.ellida-footer__logo { width: 130px; }
}

@media (max-width: 430px) {
	.ellida-shell { width: calc(100% - 28px); }
	.ellida-story__photo { height: 390px; object-position: 38% center; }
	.ellida-story__hero { padding-inline: 18px; }
	.ellida-approach__copy h2,
	.ellida-services__heading h2,
	.ellida-process__heading h2 { font-size: 36px; }
	.ellida-footer__grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.ellida-landing *,
	.ellida-landing *::before,
	.ellida-landing *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .001ms !important; }
	[data-reveal] { opacity: 1; transform: none; }
	.ellida-approach__visual > img,
	.ellida-process-map__thread img { clip-path: inset(0 0 0 0); }
}

/* ========================================================================== 
   1080 WEB ARTBOARD — v2.1.0
   Proportions calibrated for a 1080px desktop reference. Background sections
   remain full width; all editorial content is constrained to 1080px.
   ========================================================================== */
:root {
	--ellida-max: 1080px;
	--ellida-header-h: 86px;
	--ellida-shadow: 0 12px 30px rgba(47, 65, 87, .09);
}

.ellida-shell {
	width: min(calc(100% - 48px), var(--ellida-max));
}
.ellida-section {
	padding: 72px 0;
}
.ellida-kicker {
	margin-bottom: 9px;
	font-size: 10px;
	letter-spacing: .04em;
}
.ellida-btn {
	min-height: 40px;
	padding: 10px 20px;
	border-radius: 15px;
	font-size: 12px;
}

/* Compact header */
.ellida-header {
	height: var(--ellida-header-h);
}
.ellida-header__inner {
	grid-template-columns: 138px minmax(420px, 560px) auto;
	justify-content: space-between;
	gap: 22px;
}
.ellida-logo {
	width: 118px;
}
.ellida-nav {
	min-height: 48px;
	padding: 0 13px;
	border-radius: 26px;
}
.ellida-nav a {
	font-size: 13px;
}
.ellida-nav a::after {
	bottom: 10px;
}
.ellida-booking {
	min-height: 48px;
	padding: 0 21px;
	border-radius: 26px;
	font-size: 12px;
}

/* Hero + scroll transition: shallower and visually higher */
.ellida-story {
	height: 1040px;
	min-height: 1040px;
}
.ellida-story__sticky {
	height: min(620px, calc(100svh - var(--ellida-header-h)));
	min-height: 500px;
}
.ellida-story__photo {
	object-position: 50% 62%;
}
.ellida-story__content,
.ellida-story__about {
	left: 54%;
	top: 46%;
	width: min(39%, 420px);
}
.ellida-story__hero h1 {
	margin-bottom: 20px;
	font-size: clamp(36px, 4.35vw, 49px);
	line-height: 1.02;
}
.ellida-story__hero p {
	max-width: 410px;
	margin-bottom: 22px;
	font-size: 13.5px;
	line-height: 1.42;
}
.ellida-story__about {
	padding: 28px 34px;
	border-radius: 38px;
}
.ellida-story__about-title {
	width: min(100%, 330px);
	margin-bottom: 18px;
}
.ellida-story__about p {
	margin-bottom: 17px;
	font-size: 14px;
	line-height: 1.42;
}

/* Intro */
.ellida-intro__inner {
	max-width: 720px;
}
.ellida-intro__title {
	width: min(100%, 440px);
	margin-bottom: 18px;
}
.ellida-intro p:not(.ellida-kicker) {
	max-width: 660px;
	margin-bottom: 18px;
	font-size: 13.5px;
	line-height: 1.5;
}
.ellida-intro .ellida-btn {
	margin-top: 5px;
}

/* Approach — Risorsa 1 */
.ellida-approach__grid {
	grid-template-columns: .92fr 1.08fr;
	gap: 48px;
}
.ellida-approach__copy h2 {
	margin-bottom: 19px;
	font-size: clamp(31px, 3.45vw, 38px);
	line-height: 1.05;
}
.ellida-approach__copy p {
	max-width: 470px;
	margin-bottom: 17px;
	font-size: 13px;
	line-height: 1.48;
}
.ellida-tags {
	gap: 8px;
	margin: 23px 0 18px;
}
.ellida-tags span {
	padding: 6px 12px;
	font-size: 10px;
}
.ellida-approach__visual {
	min-height: 430px;
}
.ellida-approach__visual > img {
	inset: 0;
	height: 100%;
}
.ellida-approach-card {
	width: min(35%, 180px);
}
.ellida-approach-card h3 {
	margin-bottom: 5px;
	padding: 6px 13px;
	font-size: 18px;
}
.ellida-approach-card p {
	font-size: 10px;
	line-height: 1.35;
}
.ellida-approach-card--one { top: 15%; right: 7%; }
.ellida-approach-card--two { top: 47%; left: 28%; }
.ellida-approach-card--three { bottom: 8%; right: 17%; }

/* Services */
.ellida-services__heading {
	max-width: 650px;
	margin-bottom: 42px;
}
.ellida-services__heading h2 {
	margin-bottom: 22px;
	font-size: clamp(32px, 3.6vw, 40px);
	line-height: 1.04;
}
.ellida-services__heading p {
	max-width: 430px;
	font-size: 13.5px;
	line-height: 1.45;
}
.ellida-services-grid {
	gap: 18px;
	min-height: 390px;
}
.ellida-service-card {
	min-height: 178px;
	padding: 20px;
	border-radius: 24px;
}
.ellida-service-card__icon {
	width: 38px;
	height: 38px;
	margin-bottom: 8px;
}
.ellida-service-card strong {
	font-size: 14px;
	line-height: 1.08;
}
.ellida-service-card > span:not(.ellida-service-card__icon) {
	margin-top: 9px;
	font-size: 10px;
	line-height: 1.35;
}
.ellida-service-card small {
	padding: 5px 10px;
	font-size: 8px;
}
.ellida-service-detail {
	min-height: 520px;
	padding: 42px;
	border-radius: 32px;
}
.ellida-service-detail__icon {
	width: 56px;
	height: 56px;
	margin-bottom: 13px;
}
.ellida-service-detail h3 {
	margin-bottom: 22px;
	font-size: 30px;
}
.ellida-service-detail p,
.ellida-service-detail ul {
	font-size: 13px;
	line-height: 1.43;
}
.ellida-services-grid[data-expanded="true"] {
	grid-template-columns: 155px repeat(3, minmax(0, 1fr)) 155px;
	grid-template-rows: repeat(3, minmax(150px, auto));
	gap: 18px 22px;
	min-height: 560px;
}
.ellida-services-grid[data-expanded="true"] .ellida-service-card {
	min-height: 150px;
	padding: 15px;
}
.ellida-services-grid[data-expanded="true"] .ellida-service-card__icon {
	width: 32px;
	height: 32px;
}
.ellida-services-grid[data-expanded="true"] .ellida-service-card strong {
	font-size: 12px;
}
.ellida-services-grid[data-expanded="true"] .ellida-service-card > span:not(.ellida-service-card__icon) {
	font-size: 8.5px;
}

/* Help */
.ellida-help__grid {
	grid-template-columns: 1fr .92fr;
	gap: 62px;
}
.ellida-help__title {
	width: min(100%, 430px);
	margin-bottom: 28px;
}
.ellida-help__copy p {
	max-width: 475px;
	margin-bottom: 17px;
	font-size: 13px;
	line-height: 1.48;
}
.ellida-help__copy .ellida-btn {
	margin-top: 10px;
}
.ellida-help__list button {
	padding: 17px 2px 13px;
	font-size: 13px;
}
.ellida-help__list button span:last-child {
	font-size: 19px;
}

/* Come funziona — Risorsa 6, drawn from the tangle */
.ellida-process__heading h2 {
	margin-bottom: 34px;
	font-size: clamp(31px, 3.45vw, 38px);
	line-height: 1.06;
}
.ellida-process-map {
	min-height: 510px;
}
.ellida-process-map__thread {
	inset: -1% 0 0;
	overflow: visible;
}
.ellida-process-map__thread img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: fill;
	clip-path: inset(0 100% 0 0);
}
.ellida-process-map__tangle {
	position: absolute;
	left: -1.5%;
	top: 6%;
	z-index: 2;
	width: 15%;
	height: auto;
	overflow: visible;
	fill: none;
	stroke: #577c8e;
	stroke-width: 2.7;
	stroke-linecap: round;
	stroke-linejoin: round;
	opacity: 0;
}
.ellida-process-map__tangle path {
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
}
.ellida-process-map.is-drawing .ellida-process-map__tangle {
	opacity: 1;
}
.ellida-process-map.is-drawing .ellida-process-map__tangle path {
	animation: ellida-tangle-draw 1.05s var(--ellida-ease) forwards;
}
.ellida-process-map.is-drawing .ellida-process-map__thread img {
	animation: ellida-thread-draw-1080 3.25s var(--ellida-ease) .65s forwards;
}
@keyframes ellida-tangle-draw { to { stroke-dashoffset: 0; } }
@keyframes ellida-thread-draw-1080 { to { clip-path: inset(0 0 0 0); } }
.ellida-process-step {
	width: 18.5%;
}
.ellida-process-step h3 {
	min-width: 110px;
	margin-bottom: 8px;
	padding: 6px 10px;
	font-size: 13px;
}
.ellida-process-step p {
	font-size: 9.5px;
	line-height: 1.4;
}
.ellida-process-step--one { left: 3.5%; top: 14%; }
.ellida-process-step--two { left: 28.5%; top: 17%; }
.ellida-process-step--three { left: 53.5%; top: 17%; }
.ellida-process-step--four { right: 2%; top: 17%; }
.ellida-process-center {
	top: 56%;
	width: min(28%, 280px);
	padding: 18px 24px;
	border-radius: 25px;
}
.ellida-process-center h3 {
	font-size: 18px;
}
.ellida-process-center p {
	font-size: 10.5px;
}

/* Contact + footer */
.ellida-contact {
	padding-bottom: 58px;
}
.ellida-contact__grid {
	grid-template-columns: .78fr 1.22fr;
	gap: 58px;
}
.ellida-contact__title {
	width: min(100%, 350px);
	margin-bottom: 20px;
}
.ellida-contact__copy p {
	max-width: 340px;
	font-size: 12.5px;
}
.ellida-contact-form {
	padding: 28px;
	border-radius: 22px;
}
.ellida-contact-form h2 {
	margin-bottom: 20px;
	font-size: 23px;
}
.ellida-contact-form__row {
	gap: 18px;
}
.ellida-contact-form label {
	margin-bottom: 15px;
}
.ellida-contact-form input[type="text"],
.ellida-contact-form input[type="email"] {
	min-height: 40px;
}
.ellida-contact-form textarea {
	min-height: 135px;
}
.ellida-quote {
	max-width: 670px;
	padding-top: 48px;
}
.ellida-footer {
	padding: 34px 0;
}
.ellida-footer__grid {
	grid-template-columns: 170px repeat(3, 1fr);
	gap: 30px;
}
.ellida-footer__logo {
	width: 125px;
}
.ellida-footer__grid > div {
	font-size: 10px;
}
.ellida-footer__grid strong {
	font-size: 12px;
}

/* 1080-laptop bridge */
@media (max-width: 1100px) and (min-width: 768px) {
	:root { --ellida-header-h: 78px; }
	.ellida-shell { width: min(calc(100% - 36px), 1044px); }
	.ellida-header__inner { grid-template-columns: 112px minmax(360px, 1fr) auto; gap: 14px; }
	.ellida-logo { width: 100px; }
	.ellida-nav { min-height: 44px; }
	.ellida-nav a { font-size: 12px; }
	.ellida-booking { min-height: 44px; padding-inline: 15px; font-size: 11px; }
	.ellida-story { height: 960px; min-height: 960px; }
	.ellida-story__sticky { height: min(575px, calc(100svh - var(--ellida-header-h))); min-height: 480px; }
	.ellida-story__content, .ellida-story__about { left: 52%; width: 44%; }
	.ellida-services-grid[data-expanded="true"] { grid-template-columns: 135px repeat(3,minmax(0,1fr)) 135px; gap: 15px; }
}

/* Tablet */
@media (max-width: 900px) {
	.ellida-section { padding: 62px 0; }
	.ellida-story { height: 900px; min-height: 900px; }
	.ellida-story__content, .ellida-story__about { left: 50%; width: 47%; }
	.ellida-approach__grid { grid-template-columns: 1fr; gap: 28px; }
	.ellida-approach__visual { min-height: 430px; }
	.ellida-services-grid[data-expanded="true"] { grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: auto; min-height: 0; }
	.ellida-services-grid[data-expanded="true"] .ellida-service-detail { grid-column: 1 / -1; min-height: 480px; order: 20; }
	.ellida-help__grid { gap: 42px; }
	.ellida-process-map { min-height: 470px; }
	.ellida-contact__grid { gap: 36px; }
}

/* Mobile overrides keep the composition responsive, not merely scaled */
@media (max-width: 767px) {
	:root { --ellida-header-h: 72px; }
	.ellida-shell { width: min(calc(100% - 30px), 620px); }
	.ellida-section { padding: 56px 0; }
	.ellida-logo { width: 108px; }
	.ellida-story { height: auto; min-height: 0; }
	.ellida-story__photo { height: 400px; object-position: 40% 61%; }
	.ellida-story__hero { padding: 34px 18px 48px; }
	.ellida-story__hero h1 { margin-bottom: 16px; font-size: 37px; }
	.ellida-story__hero p { font-size: 14px; }
	.ellida-story__about { margin: 0 15px 38px; padding: 28px 22px; border-radius: 31px; }
	.ellida-story__about p { font-size: 14px; }
	.ellida-intro__title { width: min(100%, 390px); }
	.ellida-approach__copy h2,
	.ellida-services__heading h2,
	.ellida-process__heading h2 { font-size: 33px; }
	.ellida-approach__copy p,
	.ellida-services__heading p,
	.ellida-help__copy p { font-size: 14px; }
	.ellida-approach__visual { min-height: 0; }
	.ellida-approach-card h3 { font-size: 18px; }
	.ellida-approach-card p { font-size: 11px; }
	.ellida-service-card,
	.ellida-services-grid[data-expanded="true"] .ellida-service-card { min-height: 178px; }
	.ellida-services-grid[data-expanded="true"] .ellida-service-detail { min-height: 0; padding: 34px 22px; }
	.ellida-help__grid { grid-template-columns: 1fr; }
	.ellida-process-map { min-height: 0; padding-left: 18px; }
	.ellida-process-map__thread img,
	.ellida-process-map__tangle { display: none; }
	.ellida-process-step p { font-size: 12px; }
	.ellida-process-step h3 { font-size: 14px; }
	.ellida-contact__grid { grid-template-columns: 1fr; }
	.ellida-contact__title { width: min(100%, 330px); }
	.ellida-contact__copy p { max-width: 470px; font-size: 14px; }
	.ellida-footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 430px) {
	.ellida-story__photo { height: 350px; }
	.ellida-approach__copy h2,
	.ellida-services__heading h2,
	.ellida-process__heading h2 { font-size: 30px; }
	.ellida-footer__grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
	.ellida-process-map__tangle path { stroke-dashoffset: 0; }
	.ellida-process-map__tangle { opacity: 1; }
}


/* v2.2.0 refinements */
.ellida-story__wash { background: linear-gradient(90deg, rgba(255,255,255,0) 0 32%, rgba(248,249,250,.08) 45%, rgba(248,249,250,.34) 66%, rgba(248,249,250,.56) 100%); }
.ellida-story__about-title { width: min(100%, 360px); margin-bottom: 22px; }
.ellida-process-map__thread .ellida-process-map__tangle { position: absolute; left: 0; top: 0; width: 104px; height: auto; opacity: 0; }
.ellida-process-map.is-drawing .ellida-process-map__thread .ellida-process-map__tangle { opacity: 1; transition: opacity .2s ease; }
.ellida-service-detail .ellida-btn { margin-top: auto; }
.ellida-service-detail ul li { margin-bottom: 6px; }
@media (max-width: 1350px) {
  .ellida-services-grid[data-expanded="true"] { grid-template-columns: 150px repeat(3, minmax(0, 1fr)) 150px; }
}
@media (max-width: 1024px) {
  .ellida-story__photo { position: relative; width: 100%; height: auto; max-height: none; }
  .ellida-story__content { margin-top: 18px; }
  .ellida-story__about-title { width: min(100%, 320px); }
  .ellida-process-map__thread { inset: 0; }
  .ellida-process-step--one { left: 2%; top: 12%; }
  .ellida-process-step--two { left: 52%; top: 12%; }
  .ellida-process-step--three { left: 2%; top: 38%; }
  .ellida-process-step--four { right: 2%; top: 38%; width: 46%; }
  .ellida-process-center { top: 72%; }
  .ellida-contact__copy { padding-top: 0; }
}
@media (max-width: 767px) {
  .ellida-story__sticky { display: flex; flex-direction: column; gap: 18px; }
  .ellida-story__wash { display:none; }
  .ellida-story__content, .ellida-story__about { position: relative; inset: auto; }
  .ellida-story__photo { width: 100%; height: auto; }
  .ellida-story__hero { order: 2; }
  .ellida-story__about { order: 3; opacity: 1; pointer-events: auto; transform: none; }
  .ellida-story.is-about .ellida-story__hero { opacity: 1; transform: none; pointer-events: auto; }
  .ellida-help__copy p, .ellida-help__list button { font-size: 15px; }
  .ellida-process-map { min-height: 760px; }
  .ellida-process-step { width: 100%; position: relative; left: auto !important; right: auto !important; top: auto !important; margin-bottom: 18px; }
  .ellida-process-center { position: relative; left: auto; top: auto; transform: none; width: 100%; max-width: 360px; margin: 26px auto 0; }
  .ellida-process-map__thread { opacity: .25; }
  .ellida-services__heading h2 { font-size: 42px; }
  .ellida-footer { text-align: left; }
  .ellida-footer__logo { width: 120px; }
}

/* ==========================================================
   Ellida 2.3.0 — correzioni definitive richieste
   ========================================================== */
:root {
  --ellida-header-h: 96px;
  --ellida-header-gap: 14px;
}

/* Header completamente visibile, leggermente staccato dal bordo. */
.ellida-header {
  position: fixed !important;
  top: var(--ellida-header-gap) !important;
  left: 50% !important;
  right: auto !important;
  width: min(1080px, calc(100% - 32px)) !important;
  height: var(--ellida-header-h) !important;
  transform: translateX(-50%) !important;
  border-radius: 18px;
  background: rgba(244, 239, 235, .985) !important;
  box-shadow: 0 12px 34px rgba(47, 65, 87, .08);
  overflow: visible;
}
.ellida-header.is-scrolled {
  background: rgba(244, 239, 235, .985) !important;
  backdrop-filter: blur(12px);
  box-shadow: 0 15px 38px rgba(47, 65, 87, .13);
}
.ellida-header__inner {
  grid-template-columns: 142px minmax(0, 1fr) auto !important;
  gap: 22px !important;
  padding-inline: 18px;
}
.ellida-logo { width: 132px !important; }
.ellida-nav { min-height: 52px !important; }
.ellida-nav a { font-size: 15px !important; }
.ellida-booking {
  min-height: 52px !important;
  padding-inline: 22px !important;
  font-size: 15px !important;
}
#ellida-main {
  padding-top: calc(var(--ellida-header-h) + (var(--ellida-header-gap) * 2)) !important;
}
body.admin-bar .ellida-header { top: calc(32px + var(--ellida-header-gap)) !important; }
body.admin-bar #ellida-main { padding-top: calc(var(--ellida-header-h) + 32px + (var(--ellida-header-gap) * 2)) !important; }

/* Hero: usa la fotografia completa, senza crop di tavolo, foglio o mani. */
.ellida-story {
  height: 162vh !important;
  min-height: 1080px !important;
  background: #f6f7f8;
}
.ellida-story__sticky {
  top: calc(var(--ellida-header-h) + (var(--ellida-header-gap) * 2)) !important;
  width: min(1080px, 100%) !important;
  height: min(720px, calc(100vh - var(--ellida-header-h) - 42px)) !important;
  min-height: 560px !important;
  margin-inline: auto;
  background: #f6f7f8;
}
.ellida-story__photo {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center center !important;
  background: #f6f7f8;
}
.ellida-story__content,
.ellida-story__about {
  left: 54.5% !important;
  width: min(40%, 430px) !important;
  top: 48% !important;
}
.ellida-story__hero h1 { font-size: clamp(44px, 5.1vw, 62px) !important; }
.ellida-story__hero p { font-size: 17px !important; }

/* Il titolo servizi resta sempre invariato. */
.ellida-services__expanded-title { display: none !important; }
.ellida-services__compact-title,
.ellida-services.is-expanded .ellida-services__compact-title {
  display: block !important;
}
.ellida-services__heading {
  max-width: 760px !important;
  margin-bottom: 34px !important;
}
.ellida-services__heading h2 {
  margin-bottom: 22px !important;
  font-size: clamp(43px, 5vw, 56px) !important;
  line-height: 1.06 !important;
}
.ellida-services__heading p { font-size: 17px !important; }
.ellida-services { padding-block: 58px !important; }

/* Servizi: pannello centrale più stretto e sezione leggibile in un'unica schermata desktop. */
.ellida-services-grid[data-expanded="true"] {
  grid-template-columns: 158px minmax(0, 1fr) minmax(0, 1fr) 158px !important;
  grid-template-rows: repeat(3, minmax(148px, auto)) !important;
  gap: 16px 20px !important;
  min-height: 548px !important;
}
.ellida-services-grid[data-expanded="true"] .ellida-service-detail {
  grid-column: 2 / 4 !important;
  grid-row: 1 / 4 !important;
  min-height: 548px !important;
  padding: 30px 38px 34px !important;
}
.ellida-services-grid[data-expanded="true"] .ellida-service-card--left-1 { grid-column: 1 !important; grid-row: 1 !important; }
.ellida-services-grid[data-expanded="true"] .ellida-service-card--left-2 { grid-column: 1 !important; grid-row: 2 !important; }
.ellida-services-grid[data-expanded="true"] .ellida-service-card--left-3 { grid-column: 1 !important; grid-row: 3 !important; }
.ellida-services-grid[data-expanded="true"] .ellida-service-card--right-1 { grid-column: 4 !important; grid-row: 1 !important; }
.ellida-services-grid[data-expanded="true"] .ellida-service-card--right-2 { grid-column: 4 !important; grid-row: 2 !important; }
.ellida-services-grid[data-expanded="true"] .ellida-service-card--right-3 { grid-column: 4 !important; grid-row: 3 !important; }
.ellida-services-grid[data-expanded="true"] .ellida-service-card {
  min-height: 148px !important;
  padding: 17px 15px !important;
}
.ellida-service-detail__icon {
  width: 54px !important;
  height: 54px !important;
  margin: 0 auto 10px !important;
}
.ellida-service-detail h3 {
  margin-bottom: 20px !important;
  font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif !important;
  font-size: clamp(34px, 4vw, 48px) !important;
  font-weight: 700 !important;
  text-align: center !important;
}
.ellida-service-detail p { font-size: 16px !important; line-height: 1.45 !important; }
.ellida-service-detail ul { font-size: 16px !important; }

/* Il mio approccio: linee unite visivamente ai tre riquadri. */
.ellida-approach__visual { min-height: 590px !important; }
.ellida-approach__visual > img {
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: fill !important;
}
.ellida-approach-card { width: min(35%, 300px) !important; }
.ellida-approach-card--one { left: 58.5% !important; right: auto !important; top: 13% !important; }
.ellida-approach-card--two { left: 29.5% !important; top: 46% !important; }
.ellida-approach-card--three { left: 47.5% !important; right: auto !important; bottom: 8% !important; }
.ellida-approach-card h3 { position: relative; z-index: 2; }
.ellida-approach-card h3::before,
.ellida-approach-card h3::after {
  content: "";
  position: absolute;
  top: 50%;
  z-index: -1;
  width: 34px;
  height: 4px;
  background: #c7d9e5;
  transform: translateY(-50%);
}
.ellida-approach-card h3::before { left: -30px; }
.ellida-approach-card h3::after { right: -30px; }

/* Come funziona: testi più leggibili e animazione ripetibile. */
.ellida-process {
  overflow: visible;
  padding-bottom: 190px !important;
}
.ellida-process__heading h2 { font-size: clamp(45px, 5vw, 60px) !important; }
.ellida-process-map { min-height: 610px !important; }
.ellida-process-map__tangle { display: none !important; }
.ellida-process-map__thread img {
  object-fit: contain !important;
  object-position: center top !important;
  animation: none;
  clip-path: inset(0 100% 0 0);
}
.ellida-process-map.is-drawing .ellida-process-map__thread img {
  animation: ellida-thread-draw-repeat 3.05s cubic-bezier(.2,.78,.28,1) forwards !important;
}
@keyframes ellida-thread-draw-repeat {
  0% { clip-path: inset(0 100% 0 0); opacity: .75; }
  10% { clip-path: inset(0 94% 0 0); opacity: 1; }
  32% { clip-path: inset(0 67% 0 0); }
  58% { clip-path: inset(0 38% 0 0); }
  82% { clip-path: inset(0 13% 0 0); }
  100% { clip-path: inset(0 0 0 0); opacity: 1; }
}
.ellida-process-step h3 {
  min-width: 160px !important;
  font-size: 18px !important;
}
.ellida-process-step p { font-size: 15px !important; line-height: 1.42 !important; }
.ellida-process-center h3 { font-size: 25px !important; }
.ellida-process-center p { font-size: 15px !important; }
.ellida-process-contact-connector {
  position: absolute;
  z-index: 1;
  left: 50%;
  bottom: -126px;
  width: min(360px, 34vw);
  height: 250px;
  pointer-events: none;
}
.ellida-process-contact-connector svg { width: 100%; height: 100%; overflow: visible; }
.ellida-process-contact-connector path {
  fill: none;
  stroke: var(--ellida-deep);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  opacity: .82;
}
.ellida-process.is-thread-animating .ellida-process-contact-connector path {
  animation: ellida-connector-draw 1.15s cubic-bezier(.2,.78,.28,1) 2.45s forwards;
}
@keyframes ellida-connector-draw { to { stroke-dashoffset: 0; } }

/* Contatti: titolo manoscritto e box azzurro partono dalla stessa linea superiore. */
.ellida-contact {
  position: relative;
  padding-top: 128px !important;
}
.ellida-contact__grid {
  align-items: start !important;
}
.ellida-contact__copy {
  padding-top: 0 !important;
  align-self: start;
}
.ellida-contact__title {
  margin-top: 0 !important;
}
.ellida-contact-form {
  position: relative;
  z-index: 2;
  margin-top: 0 !important;
}

/* Footer: stesso identico logo usato nell'header, senza inversione cromatica. */
.ellida-footer__logo {
  width: 132px !important;
  filter: none !important;
  opacity: 1 !important;
}

@media (max-width: 1024px) {
  :root { --ellida-header-h: 84px; --ellida-header-gap: 10px; }
  .ellida-header__inner { grid-template-columns: 122px minmax(0,1fr) auto !important; gap: 13px !important; padding-inline: 13px; }
  .ellida-logo { width: 112px !important; }
  .ellida-nav { min-height: 46px !important; }
  .ellida-nav a { font-size: 13px !important; }
  .ellida-booking { min-height: 46px !important; font-size: 12px !important; padding-inline: 14px !important; }
  .ellida-story { height: 148vh !important; min-height: 940px !important; }
  .ellida-story__sticky { height: min(640px, calc(100vh - var(--ellida-header-h) - 34px)) !important; min-height: 500px !important; }
  .ellida-story__content, .ellida-story__about { position: absolute !important; left: 52% !important; top: 49% !important; width: 44% !important; transform: translateY(-50%) !important; }
  .ellida-story__photo { position: absolute !important; height: 100% !important; object-fit: contain !important; }
  .ellida-services-grid[data-expanded="true"] {
    grid-template-columns: repeat(2, minmax(0,1fr)) !important;
    grid-template-rows: auto !important;
    min-height: 0 !important;
  }
  .ellida-services-grid[data-expanded="true"] .ellida-service-card {
    grid-column: auto !important;
    grid-row: auto !important;
    min-height: 190px !important;
  }
  .ellida-services-grid[data-expanded="true"] .ellida-service-detail {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
    min-height: 500px !important;
    order: 20;
  }
  .ellida-approach-card--one { left: 58% !important; }
  .ellida-approach-card--two { left: 28% !important; }
  .ellida-approach-card--three { left: 47% !important; }
  .ellida-process-contact-connector { left: 48%; width: 38vw; }
}

@media (max-width: 782px) {
  body.admin-bar .ellida-header { top: calc(46px + var(--ellida-header-gap)) !important; }
  body.admin-bar #ellida-main { padding-top: calc(var(--ellida-header-h) + 46px + (var(--ellida-header-gap) * 2)) !important; }
}

@media (max-width: 767px) {
  :root { --ellida-header-h: 70px; --ellida-header-gap: 8px; }
  .ellida-header { width: calc(100% - 18px) !important; border-radius: 15px; }
  .ellida-header__inner { grid-template-columns: 1fr auto !important; }
  .ellida-logo { width: 105px !important; }
  .ellida-nav { top: calc(var(--ellida-header-h) + var(--ellida-header-gap) + 8px) !important; }
  .ellida-story { height: auto !important; min-height: 0 !important; padding-bottom: 42px; }
  .ellida-story__sticky {
    position: relative !important;
    top: 0 !important;
    display: flex !important;
    flex-direction: column;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
  }
  .ellida-story__photo {
    position: relative !important;
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    order: 1;
  }
  .ellida-story__content,
  .ellida-story__about {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    width: calc(100% - 32px) !important;
    margin-inline: auto;
    transform: none !important;
  }
  .ellida-story__hero { order: 2; padding-top: 28px; }
  .ellida-story__about { order: 3; opacity: 1 !important; pointer-events: auto !important; margin-top: 24px; }
  .ellida-story.is-about .ellida-story__hero { opacity: 1 !important; transform: none !important; }
  .ellida-approach__visual { min-height: 520px !important; }
  .ellida-approach-card { width: 42% !important; }
  .ellida-approach-card--one { left: 54% !important; top: 13% !important; }
  .ellida-approach-card--two { left: 25% !important; top: 46% !important; }
  .ellida-approach-card--three { left: 44% !important; bottom: 8% !important; }
  .ellida-process { padding-bottom: 70px !important; }
  .ellida-process-map { min-height: 0 !important; }
  .ellida-process-map__thread,
  .ellida-process-contact-connector { display: none !important; }
  .ellida-process-step,
  .ellida-process-center {
    position: relative !important;
    inset: auto !important;
    width: 100% !important;
    transform: none !important;
    margin: 0 0 20px !important;
  }
  .ellida-process-step h3 { font-size: 17px !important; }
  .ellida-process-step p { font-size: 15px !important; }
  .ellida-contact { padding-top: 66px !important; }
  .ellida-contact__grid { grid-template-columns: 1fr !important; gap: 34px !important; }
  .ellida-footer__logo { width: 118px !important; }
}

@media (prefers-reduced-motion: reduce) {
  .ellida-process-map__thread img,
  .ellida-process-contact-connector path {
    animation: none !important;
    clip-path: inset(0 0 0 0) !important;
    stroke-dashoffset: 0 !important;
  }
}


/*
   Ellida 2.4.0 — affinamenti finali richiesti
   - header più compatto allo scroll
   - hero full width e crop superiore leggero
   - linee/animazioni più armoniche
   - logo footer ad alta risoluzione
   - popup "come posso aiutarti" più contenuti
   - titoli sezione uniformati a "Il mio approccio"
*/

/* Header: resta identico all'ingresso, ma si compatta in modo elegante allo scroll. */
.ellida-header,
.ellida-header__inner,
.ellida-logo,
.ellida-nav,
.ellida-booking {
  transition: height .34s var(--ellida-ease), min-height .34s var(--ellida-ease), width .34s var(--ellida-ease), padding .34s var(--ellida-ease), gap .34s var(--ellida-ease), font-size .34s var(--ellida-ease), background-color .34s ease, box-shadow .34s ease, transform .34s var(--ellida-ease);
}
.ellida-header.is-scrolled {
  height: 94px !important;
}
.ellida-header.is-scrolled .ellida-header__inner {
  grid-template-columns: 150px minmax(0,1fr) auto !important;
  gap: 18px !important;
}
.ellida-header.is-scrolled .ellida-logo { width: 128px !important; }
.ellida-header.is-scrolled .ellida-nav { min-height: 48px !important; }
.ellida-header.is-scrolled .ellida-booking {
  min-height: 48px !important;
  padding-inline: 20px !important;
  font-size: 15px !important;
}

/* Hero: immagine piena larghezza, taglio leggero sopra per farla stare come hero di pagina. */
.ellida-story {
  height: 156vh !important;
  min-height: 1080px !important;
  background: #f4f5f7 !important;
}
.ellida-story__sticky {
  top: var(--ellida-header-h) !important;
  height: calc(100vh - var(--ellida-header-h) - 10px) !important;
  min-height: 690px !important;
}
.ellida-story__photo {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: 28% 60% !important;
  background: #f6f7f8 !important;
}
.ellida-story__wash {
  background: linear-gradient(90deg, rgba(246,247,248,.10) 0 34%, rgba(246,247,248,.34) 48%, rgba(246,247,248,.62) 64%, rgba(246,247,248,.88) 100%) !important;
}
.ellida-story__content,
.ellida-story__about {
  left: 56.5% !important;
  width: min(35%, 500px) !important;
  top: 51% !important;
}

/* Titoli sezione: uniformi ai settaggi della sezione "Il mio approccio". */
.ellida-services__heading h2,
.ellida-process__heading h2 {
  font-size: clamp(48px, 4.1vw, 62px) !important;
  line-height: 1.06 !important;
  letter-spacing: -.035em !important;
}

/* Come posso aiutarti: popup più piccoli e meno invasivi. */
.ellida-help-dialog {
  width: min(660px, calc(100% - 56px)) !important;
  max-height: min(74vh, 620px) !important;
  border-radius: 32px !important;
}
.ellida-help-dialog__body {
  padding: clamp(34px, 4.6vw, 56px) !important;
}
.ellida-help-dialog h2 {
  max-width: 540px;
  margin-bottom: 22px !important;
  font-size: clamp(30px, 3.4vw, 50px) !important;
}
.ellida-help-dialog p,
.ellida-help-dialog strong {
  font-size: clamp(15px, 1.15vw, 19px) !important;
}

/* Logo footer: stessa sorgente del logo dell'header, ad alta risoluzione, senza sgranature. */
.ellida-footer__logo {
  width: 152px !important;
  image-rendering: auto;
}

/* Il mio approccio: linee più armoniche e riquadri più vicini al tracciato. */
.ellida-approach__visual {
  min-height: 640px !important;
}
.ellida-approach__visual > img {
  object-fit: contain !important;
  object-position: center center !important;
  opacity: .98 !important;
}
.ellida-approach-card {
  width: min(32%, 290px) !important;
}
.ellida-approach-card h3 {
  margin-bottom: 6px !important;
  font-size: clamp(22px, 1.9vw, 32px) !important;
}
.ellida-approach-card p {
  max-width: 275px;
  margin-inline: auto;
  font-size: 15px !important;
  line-height: 1.38 !important;
}
.ellida-approach-card--one { left: 63% !important; top: 17% !important; }
.ellida-approach-card--two { left: 22.5% !important; top: 43.5% !important; }
.ellida-approach-card--three { left: 46.5% !important; bottom: 11% !important; }
.ellida-approach-card h3::before,
.ellida-approach-card h3::after {
  width: 38px !important;
  height: 3px !important;
  opacity: .95;
}

/* Come funziona: unica linea più fluida, card centrale che compare all'arrivo del filo e connettore al modulo in continuità. */
.ellida-process {
  padding-bottom: 220px !important;
}
.ellida-process-map {
  min-height: 660px !important;
}
.ellida-process-map__thread {
  inset: 0 0 12px 0 !important;
}
.ellida-process-map__thread img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: center top !important;
  opacity: 1 !important;
  clip-path: inset(0 100% 0 0) !important;
}
.ellida-process-map.is-drawing .ellida-process-map__thread img {
  animation: ellida-thread-draw-v24 3.15s cubic-bezier(.2,.78,.28,1) forwards !important;
}
@keyframes ellida-thread-draw-v24 {
  0% { clip-path: inset(0 100% 0 0); opacity: .45; }
  8% { clip-path: inset(0 96% 0 0); opacity: .9; }
  24% { clip-path: inset(0 82% 0 0); opacity: 1; }
  46% { clip-path: inset(0 59% 0 0); }
  68% { clip-path: inset(0 34% 0 0); }
  86% { clip-path: inset(0 14% 0 0); }
  100% { clip-path: inset(0 0 0 0); opacity: 1; }
}
.ellida-process-step {
  width: 19.5% !important;
}
.ellida-process-step h3 {
  min-width: 168px !important;
  font-size: 19px !important;
  background: var(--ellida-pale) !important;
  color: var(--ellida-navy) !important;
  font-weight: 700 !important;
}
.ellida-process-step p {
  font-size: 16px !important;
  line-height: 1.42 !important;
}
.ellida-process-step--one { left: 4% !important; top: 18% !important; }
.ellida-process-step--two { left: 28% !important; top: 21% !important; }
.ellida-process-step--three { left: 51.5% !important; top: 21% !important; }
.ellida-process-step--four { right: 2% !important; top: 21% !important; }
.ellida-process-center {
  top: 63.5% !important;
  width: min(31.5%, 370px) !important;
  opacity: 0;
  transform: translateX(-50%) translateY(14px) !important;
}
.ellida-process-center h3 { font-size: 24px !important; }
.ellida-process-center p { font-size: 15px !important; }
.ellida-process-map.is-drawing .ellida-process-step--one { animation-delay: .45s !important; }
.ellida-process-map.is-drawing .ellida-process-step--two { animation-delay: 1.05s !important; }
.ellida-process-map.is-drawing .ellida-process-step--three { animation-delay: 1.55s !important; }
.ellida-process-map.is-drawing .ellida-process-step--four { animation-delay: 2.05s !important; }
.ellida-process-map.is-drawing .ellida-process-center { animation-delay: 2.55s !important; }
.ellida-process.is-thread-finished .ellida-process-center,
.ellida-process-map.is-drawing .ellida-process-center {
  animation-name: ellida-map-center-in-v24 !important;
  animation-duration: .56s !important;
  animation-fill-mode: forwards !important;
  animation-timing-function: var(--ellida-ease) !important;
}
@keyframes ellida-map-center-in-v24 {
  from { opacity: 0; transform: translate(-50%, 14px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}
.ellida-process-contact-connector {
  left: 49.5% !important;
  bottom: -136px !important;
  width: min(410px, 38vw) !important;
  height: 270px !important;
}
.ellida-process-contact-connector path {
  stroke-width: 3.3 !important;
  opacity: .88 !important;
}
.ellida-process.is-thread-animating .ellida-process-contact-connector path {
  animation: ellida-connector-draw-v24 1.05s cubic-bezier(.2,.78,.28,1) 2.85s forwards !important;
}
@keyframes ellida-connector-draw-v24 { to { stroke-dashoffset: 0; } }

/* Responsive refinements */
@media (max-width: 1350px) {
  .ellida-story__content,
  .ellida-story__about { left: 54.5% !important; width: 38% !important; }
  .ellida-process-contact-connector { width: min(370px, 36vw) !important; }
}

@media (max-width: 1024px) {
  .ellida-header.is-scrolled { height: 80px !important; }
  .ellida-header.is-scrolled .ellida-logo { width: 112px !important; }
  .ellida-header.is-scrolled .ellida-nav,
  .ellida-header.is-scrolled .ellida-booking { min-height: 42px !important; }
  .ellida-story {
    height: 136vh !important;
    min-height: 920px !important;
  }
  .ellida-story__sticky {
    height: min(620px, calc(100vh - var(--ellida-header-h) - 10px)) !important;
  }
  .ellida-story__content,
  .ellida-story__about {
    left: 50.5% !important;
    width: 42% !important;
  }
  .ellida-story__photo { object-position: 26% 58% !important; }
  .ellida-approach-card { width: 36% !important; }
  .ellida-approach-card--one { left: 59% !important; }
  .ellida-approach-card--two { left: 23% !important; }
  .ellida-approach-card--three { left: 45% !important; }
  .ellida-process-map { min-height: 600px !important; }
  .ellida-process-step { width: 21.5% !important; }
  .ellida-process-step h3 { min-width: 140px !important; font-size: 17px !important; }
  .ellida-process-step p { font-size: 14px !important; }
  .ellida-process-center { width: min(39%, 330px) !important; }
  .ellida-process-contact-connector { left: 49% !important; width: 34vw !important; }
  .ellida-help-dialog { width: min(620px, calc(100% - 40px)) !important; }
}

@media (max-width: 767px) {
  .ellida-header.is-scrolled {
    height: 68px !important;
  }
  .ellida-story {
    height: auto !important;
    min-height: 0 !important;
  }
  .ellida-story__photo {
    object-fit: cover !important;
    object-position: center 50% !important;
    aspect-ratio: 4 / 5;
  }
  .ellida-help-dialog {
    width: calc(100% - 22px) !important;
    max-height: 82vh !important;
  }
  .ellida-services__heading h2,
  .ellida-process__heading h2 {
    font-size: clamp(34px, 8.5vw, 42px) !important;
  }
}
