/* ==========================================================================
   Arancha Blocks · estilos (web pública + editor)
   ========================================================================== */

.ac-section, .ac-hero, .ac-section-heading {
	--ac-ink: var(--wp--preset--color--ink, #063831);
	--ac-primary: var(--wp--preset--color--primary, #008878);
	--ac-aqua: var(--wp--preset--color--aqua, #01bba6);
	--ac-mint: var(--wp--preset--color--mint, #e6f5f2);
	--ac-sand: var(--wp--preset--color--sand, #faebd7);
	--ac-coral: var(--wp--preset--color--coral, #f29e8e);
	--ac-cream: var(--wp--preset--color--cream, #fdfaf5);
	--ac-ease: cubic-bezier(.22, 1, .36, 1);
	--ac-shadow: 0 22px 50px -24px rgba(6, 56, 49, .38);
	--ac-font-display: var(--wp--preset--font-family--display, "DynaPuff", sans-serif);
	--ac-font-hand: var(--wp--preset--font-family--hand, "Gloria Hallelujah", cursive);
	--ac-gutter: clamp(1rem, 4vw, 2.5rem);
}

/* Estructura ------------------------------------------------------------- */
.ac-section {
	position: relative;
	padding-block: clamp(4rem, 9vw, 7.5rem);
	background: var(--ac-sec-bg, #fff);
	isolation: isolate;
}
.ac-section.has-wave-top, .ac-section.has-wave-bottom { z-index: 3; }
.ac-container { width: 100%; max-width: 1240px; margin-inline: auto; padding-inline: var(--ac-gutter); box-sizing: border-box; position: relative; z-index: 2; }
.ac-container--narrow { max-width: 860px; }

.ac-bg-white { --ac-sec-bg: #fff; }
.ac-bg-mint { --ac-sec-bg: var(--ac-mint); }
.ac-bg-sand { --ac-sec-bg: var(--ac-sand); }
.ac-bg-cream { --ac-sec-bg: var(--ac-cream); }
.ac-bg-primary { --ac-sec-bg: var(--ac-primary); }
.ac-bg-ink { --ac-sec-bg: var(--ac-ink); }
.ac-dark { color: rgba(255, 255, 255, .88); }
.ac-dark .ac-title, .ac-dark h2, .ac-dark h3 { color: #fff; }
.ac-bg-primary .ac-kicker { color: var(--ac-sand); }

.ac-wave { position: absolute; left: 0; width: 100%; height: clamp(40px, 6vw, 90px); fill: var(--ac-sec-bg); pointer-events: none; z-index: 1; }
.ac-wave--bottom { top: calc(100% - 1px); }
.ac-wave--top { bottom: calc(100% - 1px); }

/* Tipografía común ------------------------------------------------------------ */
.ac-kicker { font-family: var(--ac-font-hand); color: var(--ac-aqua); font-size: clamp(1.05rem, 1.6vw, 1.25rem); line-height: 1.35; margin: 0 0 .6rem; }
.ac-title { font-family: var(--ac-font-display); font-weight: 500; color: var(--ac-ink); font-size: clamp(1.9rem, 3.6vw, 2.9rem); line-height: 1.15; margin: 0 0 1.3rem; letter-spacing: -.01em; text-wrap: balance; }
.ac-title mark, .ac-hero__title mark, .ac-page-hero__title mark, .ac-doodle-quote__text mark {
	background: none; color: var(--ac-aqua); position: relative; white-space: nowrap;
}
.ac-title mark::after, .ac-page-hero__title mark::after {
	content: ""; position: absolute; left: -2%; right: -2%; bottom: .02em; height: .3em; z-index: -1; border-radius: 99px;
	background: var(--ac-sand); transform: scaleX(0); transform-origin: left; transition: transform 1.1s .5s var(--ac-ease);
}
.is-visible mark::after, .is-visible.ac-title mark::after, .is-ready .ac-page-hero__title mark::after, html:not(.ac-js) mark::after { transform: scaleX(1); }
.ac-lead { font-size: 1.1rem; }
.ac-lead p { margin: 0 0 1rem; }

.ac-section-heading { max-width: 760px; margin: 0 auto clamp(2rem, 4vw, 3.2rem); }
.ac-section-heading.ac-align-center { text-align: center; }
.ac-section-heading.ac-align-left { margin-left: 0; }
.entry-content > .ac-section-heading { margin-block-start: var(--wp--preset--spacing--60); }

/* Botones ------------------------------------------------------------------ */
.ac-buttons { display: flex; flex-wrap: wrap; gap: .9rem; margin-top: 2rem; }
.ac-buttons.ac-align-center, .ac-align-center .ac-buttons { justify-content: center; }
.ac-btn {
	--bg: var(--ac-primary); --fg: #fff;
	position: relative; display: inline-flex; align-items: center; gap: .6em; overflow: hidden; isolation: isolate;
	padding: .95em 1.9em; border-radius: 999px; border: 2px solid var(--bg);
	background: var(--bg); color: var(--fg) !important; text-decoration: none !important;
	font-family: var(--ac-font-display); font-weight: 500; font-size: 1rem; line-height: 1.1; cursor: pointer;
	box-shadow: 0 14px 28px -14px color-mix(in srgb, var(--bg) 80%, transparent);
	transition: transform .45s var(--ac-ease), box-shadow .45s var(--ac-ease), color .35s, border-color .35s;
}
.ac-btn::before {
	content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; background: var(--ac-ink);
	transform: translateX(-101%); transition: transform .55s var(--ac-ease);
}
.ac-btn:hover { transform: translateY(-3px); border-color: var(--ac-ink); }
.ac-btn:hover::before { transform: none; }
.ac-btn:focus-visible { outline: 3px solid var(--ac-aqua); outline-offset: 3px; }
.ac-btn__arrow { width: 1.1em; height: 1.1em; transition: transform .45s var(--ac-ease); }
.ac-btn:hover .ac-btn__arrow { transform: translateX(4px); }
.ac-btn--ghost { --bg: transparent; --fg: var(--ac-primary); border-color: currentColor; box-shadow: none; color: var(--ac-primary) !important; }
.ac-btn--ghost::before { background: var(--ac-primary); }
.ac-btn--ghost:hover { color: #fff !important; border-color: var(--ac-primary); }
.ac-btn--wa { --bg: #25a656; }
.ac-btn--ghost.ac-btn--wa { --bg: transparent; }
.ac-dark .ac-btn { --bg: #fff; --fg: var(--ac-ink); }
.ac-dark .ac-btn::before { background: var(--ac-aqua); }
.ac-dark .ac-btn:hover { color: #fff !important; border-color: var(--ac-aqua); }
.ac-dark .ac-btn--ghost { --bg: transparent; color: #fff !important; border-color: rgba(255, 255, 255, .7); }
.ac-dark .ac-btn--ghost::before { background: #fff; }
.ac-dark .ac-btn--ghost:hover { color: var(--ac-ink) !important; border-color: #fff; }
.ac-btn[disabled] { opacity: .6; pointer-events: none; }

/* Formas decorativas ---------------------------------------------------------- */
.ac-shapes { position: absolute; inset: 0; pointer-events: none; z-index: 1; overflow: hidden; }
.ac-shape { position: absolute; width: clamp(20px, 2.4vw, 36px); display: block; }
.ac-shape svg { width: 100%; height: auto; display: block; animation: ac-float 8s ease-in-out infinite; animation-delay: calc(var(--i) * -1.4s); }
.ac-shape--zigzag svg { animation-name: ac-float-rot; }
.ac-c-coral { color: var(--ac-coral); }
.ac-c-aqua { color: var(--ac-aqua); }
.ac-c-primary { color: var(--ac-primary); }
.ac-c-sand { color: var(--ac-sand); }
@keyframes ac-float { 0%, 100% { transform: translate(0, 0) rotate(0); } 50% { transform: translate(6px, -16px) rotate(14deg); } }
@keyframes ac-float-rot { 0%, 100% { transform: rotate(-12deg) translateY(0); } 50% { transform: rotate(16deg) translateY(-12px); } }

/* Dibujos a mano alzada ------------------------------------------------------- */
.ac-doodle { display: block; overflow: visible; }
.ac-doodle path { fill: none; stroke: currentColor; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; }
.ac-doodle--spiral path { stroke-width: 4; }
.ac-js .ac-doodle path { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 2.6s cubic-bezier(.65, 0, .35, 1) .2s; }
.ac-js .ac-doodle.is-drawn path { stroke-dashoffset: 0; }

/* Hero ------------------------------------------------------------------------ */
.ac-hero {
	position: relative; display: flex; align-items: center; overflow: hidden; isolation: isolate;
	background: var(--ac-ink); color: #fff; margin-block: 0 !important;
}
.ac-hero--full { min-height: clamp(560px, calc(100svh - 70px), 980px); }
.ac-hero--large { min-height: min(88svh, 860px); }
.ac-hero--medium { min-height: 62svh; }
.ac-hero__media { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.ac-hero__img { position: absolute; inset: -10% 0; will-change: transform; }
.ac-hero__img img { width: 100%; height: 100%; object-fit: cover; animation: ac-kenburns 18s ease-out both; border-radius: 0; }
@keyframes ac-kenburns { from { transform: scale(1.14); } to { transform: scale(1.02); } }
.ac-hero__overlay {
	position: absolute; inset: 0; z-index: -1;
	background:
		linear-gradient(90deg, rgba(6, 56, 49, calc(.96 * var(--ac-overlay))) 0%, rgba(6, 56, 49, calc(.82 * var(--ac-overlay))) 34%, rgba(6, 56, 49, calc(.25 * var(--ac-overlay))) 62%, rgba(6, 56, 49, 0) 80%),
		linear-gradient(0deg, rgba(6, 56, 49, .45), transparent 35%);
}
.ac-hero__inner { width: 100%; max-width: 1240px; margin-inline: auto; padding: clamp(5rem, 10vw, 7rem) var(--ac-gutter) clamp(7rem, 12vw, 9rem); box-sizing: border-box; position: relative; z-index: 2; }
.ac-hero__content { max-width: 640px; }
.ac-hero__kicker { font-size: clamp(1.1rem, 1.8vw, 1.4rem); color: var(--ac-aqua); }
.ac-hero__title { font-family: var(--ac-font-display); font-weight: 500; color: #fff; font-size: clamp(2.3rem, 5.2vw, 4.3rem); line-height: 1.08; margin: 0 0 1.4rem; letter-spacing: -.015em; }
.ac-hero__title mark { color: var(--ac-aqua); }
.ac-hero__text { font-size: clamp(1.05rem, 1.4vw, 1.2rem); max-width: 34em; color: rgba(255, 255, 255, .88); }
.ac-hero__text p { margin: 0 0 1rem; }
.ac-hero__signature { font-family: var(--ac-font-hand); color: var(--ac-sand); margin-top: 1.8rem; font-size: 1.15rem; }
.ac-hero .ac-btn { --bg: var(--ac-aqua); }
.ac-hero .ac-btn::before { background: #fff; }
.ac-hero .ac-btn:hover { color: var(--ac-ink) !important; border-color: #fff; }
.ac-hero .ac-btn--ghost { --bg: transparent; color: #fff !important; border-color: rgba(255, 255, 255, .75); }
.ac-hero .ac-btn--ghost::before { background: #fff; }
.ac-hero__wave { position: absolute; left: 0; bottom: -1px; width: 100%; height: clamp(50px, 8vw, 120px); fill: #fff; z-index: 3; }
.ac-hero__scroll { position: absolute; left: 50%; bottom: clamp(60px, 9vw, 120px); z-index: 4; width: 26px; height: 42px; border: 2px solid rgba(255, 255, 255, .7); border-radius: 20px; transform: translateX(-50%); }
.ac-hero__scroll span { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 4px; background: #fff; animation: ac-scroll 1.8s ease-in-out infinite; }
@keyframes ac-scroll { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }
.ac-hero .ac-shapes { z-index: 1; }
.ac-hero .ac-shape { opacity: .85; }

/* Entrada animada del hero (sólo con JS) */
.ac-w { display: inline-block; overflow: hidden; vertical-align: top; padding: .04em .02em .12em; margin: -.04em -.02em -.12em; }
.ac-w > span { display: inline-block; }
.ac-js .ac-w > span { transform: translateY(110%) rotate(4deg); transition: transform 1.1s var(--ac-ease); transition-delay: calc(var(--w) * .055s + .15s); }
.ac-js .is-ready .ac-w > span { transform: none; }
.ac-js .ac-hero__kicker, .ac-js .ac-hero__text, .ac-js .ac-hero__buttons, .ac-js .ac-hero__signature, .ac-js .ac-hero__scroll {
	opacity: 0; transform: translateY(24px); transition: opacity 1s var(--ac-ease), transform 1s var(--ac-ease);
}
.ac-js .ac-hero__scroll { transform: translate(-50%, 24px); }
.ac-js .is-ready .ac-hero__kicker { opacity: 1; transform: none; transition-delay: .05s; }
.ac-js .is-ready .ac-hero__text { opacity: 1; transform: none; transition-delay: .6s; }
.ac-js .is-ready .ac-hero__buttons { opacity: 1; transform: none; transition-delay: .8s; }
.ac-js .is-ready .ac-hero__signature { opacity: 1; transform: none; transition-delay: 1s; }
.ac-js .is-ready .ac-hero__scroll { opacity: 1; transform: translate(-50%, 0); transition-delay: 1.4s; }

@media (max-width: 781px) {
	.ac-hero__overlay { background: linear-gradient(0deg, rgba(6, 56, 49, calc(.96 * var(--ac-overlay))) 15%, rgba(6, 56, 49, calc(.7 * var(--ac-overlay))) 60%, rgba(6, 56, 49, .25) 100%); }
	.ac-hero { align-items: flex-end; }
	.ac-hero__scroll { display: none; }
}

/* Cabecera de página ------------------------------------------------------------ */
.ac-page-hero { padding-block: clamp(3.5rem, 8vw, 6.5rem) clamp(3.5rem, 7vw, 5.5rem); overflow: visible; margin-block: 0 !important; }
.ac-page-hero .ac-shapes { overflow: hidden; }
.ac-page-hero__grid { display: grid; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.ac-page-hero.has-image .ac-page-hero__grid { grid-template-columns: 1.15fr .85fr; }
.ac-page-hero:not(.has-image) .ac-page-hero__grid { text-align: center; max-width: 900px; }
.ac-page-hero:not(.has-image) .ac-buttons { justify-content: center; }
.ac-page-hero__title { font-family: var(--ac-font-display); font-weight: 500; color: var(--ac-ink); font-size: clamp(2.2rem, 4.8vw, 3.8rem); line-height: 1.1; margin: 0 0 1.2rem; text-wrap: balance; }
.ac-page-hero__text { font-size: 1.12rem; max-width: 40em; }
.ac-page-hero:not(.has-image) .ac-page-hero__text { margin-inline: auto; }
.ac-page-hero__media { position: relative; }
.ac-page-hero__media figure { margin: 0; aspect-ratio: 1; overflow: hidden; box-shadow: var(--ac-shadow); }
.ac-page-hero__media img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.ac-page-hero__media .ac-doodle { position: absolute; width: 34%; right: -6%; top: -8%; }
@media (max-width: 781px) {
	.ac-page-hero.has-image .ac-page-hero__grid { grid-template-columns: 1fr; }
	.ac-page-hero__media { max-width: 360px; margin-inline: auto; }
}

/* Formas de imagen ------------------------------------------------------------ */
.ac-shape-blob { border-radius: 62% 38% 52% 48% / 46% 56% 44% 54%; animation: ac-morph 14s ease-in-out infinite; }
.ac-shape-circle { border-radius: 50%; }
.ac-shape-arch { border-radius: 999px 999px 28px 28px; }
.ac-shape-rounded { border-radius: 32px; }
@keyframes ac-morph {
	0%, 100% { border-radius: 62% 38% 52% 48% / 46% 56% 44% 54%; }
	33% { border-radius: 45% 55% 38% 62% / 55% 42% 58% 45%; }
	66% { border-radius: 55% 45% 60% 40% / 40% 60% 40% 60%; }
}

/* Imagen + contenido ------------------------------------------------------------ */
.ac-split__grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(2.5rem, 7vw, 6rem); align-items: center; }
.ac-split.is-image-right .ac-split__media { order: 2; }
.ac-split__media { position: relative; padding: 4% 6% 6% 4%; }
.ac-split__figure { position: relative; margin: 0; aspect-ratio: 4 / 5; overflow: hidden; box-shadow: var(--ac-shadow); z-index: 1; }
.ac-split__figure.ac-shape-circle { aspect-ratio: 1; }
.ac-split__figure img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform 1.2s var(--ac-ease); }
.ac-split__media:hover .ac-split__figure img { transform: scale(1.04); }
.ac-split__blob-bg { position: absolute; inset: 12% 0 0 12%; background: var(--ac-mint); z-index: 0; }
.ac-bg-mint .ac-split__blob-bg { background: #fff; }
.ac-bg-sand .ac-split__blob-bg, .ac-bg-cream .ac-split__blob-bg { background: var(--ac-coral); opacity: .35; }
.ac-dark .ac-split__blob-bg { background: var(--ac-aqua); opacity: .35; }
.ac-split.is-image-right .ac-split__blob-bg { inset: 12% 12% 0 0; }
.ac-split__doodle { position: absolute; z-index: 2; width: 58%; top: -6%; right: -14%; transform: rotate(8deg); }
.ac-split__doodle.ac-doodle--spiral { width: 30%; right: -4%; top: -4%; }
.ac-split.is-image-right .ac-split__doodle { right: auto; left: -14%; transform: rotate(-8deg) scaleX(-1); }
.ac-badge {
	position: absolute; z-index: 3; left: -2%; bottom: 10%; background: #fff; border-radius: 22px; padding: 1rem 1.3rem;
	box-shadow: var(--ac-shadow); display: flex; align-items: center; gap: .8rem; max-width: 240px;
	animation: ac-bob 6s ease-in-out infinite;
}
.ac-split.is-image-right .ac-badge { left: auto; right: -2%; }
.ac-badge strong { font-family: var(--ac-font-display); font-size: 2.6rem; line-height: 1; color: var(--ac-primary); font-weight: 600; white-space: nowrap; }
.ac-badge small { font-size: .9rem; line-height: 1.3; color: var(--ac-ink); }
@keyframes ac-bob { 0%, 100% { translate: 0 0; } 50% { translate: 0 -10px; } }
.ac-prose > * + * { margin-block-start: 1rem; }
.ac-prose > :first-child { margin-top: 0; }
.ac-prose .wp-block-buttons { margin-top: 2rem; }
.ac-dark .ac-prose a:not(.wp-element-button) { color: var(--ac-sand); }
@media (max-width: 781px) {
	.ac-split__grid { grid-template-columns: 1fr; }
	.ac-split.is-image-right .ac-split__media { order: 0; }
	.ac-split__media { max-width: 420px; margin-inline: auto; width: 100%; }
}

/* Carrusel de servicios --------------------------------------------------------- */
.ac-carousel { position: relative; z-index: 2; }
.ac-carousel__track {
	display: flex; gap: clamp(16px, 2.2vw, 30px); overflow-x: auto; overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory; scrollbar-width: none; padding: 30px calc(50% - clamp(130px, 14vw, 180px)) 50px;
	cursor: grab; outline: none;
}
.ac-carousel__track::-webkit-scrollbar { display: none; }
.ac-carousel__track.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.ac-carousel__track.is-dragging * { pointer-events: none; }
.ac-service {
	flex: 0 0 clamp(260px, 28vw, 360px); scroll-snap-align: center; display: flex; flex-direction: column;
	background: #fff; border-radius: 30px; overflow: hidden; text-decoration: none !important; color: inherit !important;
	box-shadow: 0 20px 40px -26px rgba(6, 56, 49, .45);
	transform: scale(.88); opacity: .55; filter: saturate(.6);
	transition: transform .8s var(--ac-ease), opacity .8s var(--ac-ease), filter .8s, box-shadow .8s;
	user-select: none;
}
.ac-service.is-active { transform: scale(1) translateY(-12px); opacity: 1; filter: none; box-shadow: 0 34px 60px -28px rgba(6, 56, 49, .5); }
.ac-bg-white .ac-service { background: var(--ac-cream); }
.ac-service__media { background: var(--ac-mint); aspect-ratio: 373 / 230; display: grid; place-items: center; overflow: hidden; }
.ac-service__media img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform 1s var(--ac-ease); -webkit-user-drag: none; }
.ac-service:hover .ac-service__media img { transform: scale(1.07) rotate(-1deg); }
.ac-service__body { padding: 1.4rem 1.6rem 1.8rem; display: flex; flex-direction: column; gap: .7rem; flex: 1; }
.ac-service__title { align-self: flex-start; margin: -2.9rem 0 .2rem; position: relative; background: var(--ac-primary); color: #fff !important; font-family: var(--ac-font-display); font-weight: 500; font-size: 1.12rem; padding: .5em 1.1em; border-radius: 999px; box-shadow: 0 10px 20px -10px rgba(0, 136, 120, .8); }
.ac-service.is-active .ac-service__title { background: var(--ac-ink); }
.ac-service__text { margin: 0; font-size: .97rem; line-height: 1.6; }
.ac-service__more { margin-top: auto; display: inline-flex; align-items: center; gap: .4em; color: var(--ac-primary); font-family: var(--ac-font-display); font-size: .95rem; }
.ac-service__more svg { width: 1.1em; height: 1.1em; transition: transform .4s var(--ac-ease); }
.ac-service:hover .ac-service__more svg { transform: translateX(5px); }
.ac-carousel__nav { display: flex; align-items: center; justify-content: center; gap: 1.2rem; margin-top: .5rem; }
.ac-carousel__dots { display: flex; gap: 8px; }
.ac-carousel__dots button { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 9px; background: color-mix(in srgb, var(--ac-primary) 25%, transparent); cursor: pointer; transition: width .5s var(--ac-ease), background-color .4s; }
.ac-carousel__dots button.is-active { width: 34px; background: var(--ac-coral); }
.ac-carousel__arrow { width: 46px; height: 46px; border-radius: 50%; border: 2px solid color-mix(in srgb, var(--ac-primary) 30%, transparent); background: transparent; color: var(--ac-primary); display: grid; place-items: center; cursor: pointer; transition: all .35s var(--ac-ease); }
.ac-carousel__arrow svg { width: 20px; height: 20px; }
.ac-carousel__arrow:hover { background: var(--ac-primary); border-color: var(--ac-primary); color: #fff; transform: scale(1.06); }
.ac-dark .ac-carousel__arrow { color: #fff; border-color: rgba(255, 255, 255, .4); }

/* Frase con dibujo ------------------------------------------------------------- */
.ac-doodle-quote__inner { text-align: center; max-width: 980px; }
.ac-doodle-quote__heart { width: min(560px, 90%); margin: 0 auto 1rem; }
.ac-doodle-quote__text { margin: 0; padding: 0; border: 0; background: none; }
.ac-doodle-quote__text::before { display: none; }
.ac-doodle-quote__text p { font-family: var(--ac-font-hand); color: var(--ac-ink); font-size: clamp(1.4rem, 3vw, 2.3rem); line-height: 1.45; margin: 0; text-transform: uppercase; letter-spacing: .02em; text-wrap: balance; }
.ac-dark .ac-doodle-quote__text p { color: #fff; }
.ac-doodle-quote__text cite { display: block; margin-top: 1.2rem; font-style: normal; font-family: var(--ac-font-display); color: var(--ac-primary); }
.ac-doodle-quote .ac-buttons { justify-content: center; }

/* Tarjetas ---------------------------------------------------------------------- */
.ac-cards__grid { display: grid; grid-template-columns: repeat(var(--cols, 2), minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 2.5rem); max-width: 1080px; margin-inline: auto; }
.ac-card {
	--rx: 0deg; --ry: 0deg; --mx: 50%; --my: 50%;
	position: relative; background: #fff; border-radius: 32px; overflow: hidden; box-shadow: var(--ac-shadow);
	display: flex; flex-direction: column; transform: perspective(1000px) rotateX(var(--rx)) rotateY(var(--ry));
	transition: transform .5s var(--ac-ease), box-shadow .5s var(--ac-ease);
}
.ac-js .ac-card[data-reveal] { transition: opacity 1s var(--ac-ease), transform .5s var(--ac-ease); }
.ac-card::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(circle at var(--mx) var(--my), rgba(255, 255, 255, .35), transparent 45%); opacity: 0; transition: opacity .4s; }
.ac-card:hover::after { opacity: 1; }
.ac-card:hover { box-shadow: 0 40px 70px -30px rgba(6, 56, 49, .5); }
.ac-card__media { position: relative; aspect-ratio: 3 / 2; overflow: hidden; background: var(--ac-mint); }
.ac-card__media img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform 1.2s var(--ac-ease); }
.ac-card:hover .ac-card__media img { transform: scale(1.06); }
.ac-card__tag { position: absolute; left: 1.2rem; top: 1.2rem; background: #fff; color: var(--ac-primary); font-family: var(--ac-font-display); font-size: .85rem; padding: .35em .9em; border-radius: 999px; }
.ac-card__body { padding: clamp(1.4rem, 3vw, 2.2rem); display: flex; flex-direction: column; gap: .4rem; flex: 1; }
.ac-card__body > .ac-btn { align-self: flex-start; margin-top: auto; }
.ac-card__title { font-family: var(--ac-font-display); color: var(--ac-primary); font-size: 1.6rem; font-weight: 500; margin: 0 0 .3rem; }
.ac-card__body p { margin: 0 0 .6rem; }
.ac-checklist { list-style: none; padding: 0 !important; margin: .2rem 0 1.4rem !important; }
.ac-checklist li { position: relative; padding-left: 2rem !important; margin-bottom: .55rem; }
@media (max-width: 781px) { .ac-cards__grid { grid-template-columns: 1fr; } }

/* Rejilla de ayuda ---------------------------------------------------------------- */
.ac-help__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.ac-help__item {
	display: flex; gap: 1rem; align-items: flex-start; background: #fff; border-radius: 22px; padding: 1.3rem 1.4rem;
	border: 2px solid transparent; box-shadow: 0 14px 30px -24px rgba(6, 56, 49, .5);
	transition: border-color .4s, transform .5s var(--ac-ease), box-shadow .5s, opacity 1s var(--ac-ease);
}
.ac-bg-white .ac-help__item { background: var(--ac-cream); }
.ac-help__item:hover { border-color: var(--ac-aqua); transform: translateY(-4px); box-shadow: 0 24px 40px -26px rgba(6, 56, 49, .55); }
.ac-help__icon { flex: 0 0 38px; height: 38px; border-radius: 50%; background: var(--ac-mint); color: var(--ac-primary); display: grid; place-items: center; transition: background-color .4s, color .4s, transform .6s var(--ac-ease); }
.ac-bg-mint .ac-help__icon { background: var(--ac-mint); }
.ac-help__item:hover .ac-help__icon { background: var(--ac-primary); color: #fff; transform: rotate(-12deg) scale(1.08); }
.ac-help__icon svg { width: 20px; height: 20px; }
.ac-help__item h3 { font-family: var(--ac-font-display); font-weight: 500; font-size: 1.05rem; color: var(--ac-ink); margin: .35rem 0 .35rem; line-height: 1.3; }
.ac-help__item p { font-size: .92rem; line-height: 1.55; margin: 0; }
.ac-help__item.is-extra { display: none; }
.ac-help-grid.is-expanded .ac-help__item.is-extra { display: flex; }
.ac-help__more em { font-style: normal; opacity: .6; font-size: .85em; }
@media (max-width: 1024px) { .ac-help__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .ac-help__grid { grid-template-columns: 1fr; } }

/* Opiniones --------------------------------------------------------------------- */
.ac-testimonials__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.ac-quotes { position: relative; display: grid; background: #fff; border-radius: 30px; padding: clamp(2rem, 4vw, 3rem); box-shadow: var(--ac-shadow); }
.ac-quotes__mark { position: absolute; top: -22px; left: 32px; width: 58px; fill: var(--ac-coral); }
.ac-quote { grid-area: 1 / 1; margin: 0; opacity: 0; transform: translateY(14px); transition: opacity .8s var(--ac-ease), transform .8s var(--ac-ease); pointer-events: none; }
.ac-quote.is-active { opacity: 1; transform: none; pointer-events: auto; }
.ac-quote blockquote { margin: 0; padding: 0; border: 0; background: none; font-style: italic; font-size: 1.08rem; }
.ac-quote blockquote::before { display: none; }
.ac-quote figcaption { margin-top: 1.2rem; display: flex; flex-direction: column; }
.ac-quote figcaption strong { font-family: var(--ac-font-display); color: var(--ac-ink); }
.ac-quote figcaption span { font-family: var(--ac-font-hand); color: var(--ac-coral); font-size: .95rem; }
.ac-quotes__nav { grid-area: 2 / 1; display: flex; gap: .6rem; justify-content: flex-end; margin-top: 1.2rem; }
@media (max-width: 781px) { .ac-testimonials__grid { grid-template-columns: 1fr; } }

/* FAQ ------------------------------------------------------------------------------ */
.ac-faq__list { display: grid; gap: .9rem; }
.ac-faq__item { background: #fff; border-radius: 22px; box-shadow: 0 14px 30px -24px rgba(6, 56, 49, .5); overflow: hidden; }
.ac-bg-white .ac-faq__item { background: var(--ac-cream); }
.ac-faq__item h3 { margin: 0; font-size: inherit; }
.ac-faq__item button { all: unset; box-sizing: border-box; width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1.3rem 1.6rem; cursor: pointer; font-family: var(--ac-font-display); font-size: 1.1rem; color: var(--ac-ink); transition: color .3s; }
.ac-faq__item button:hover, .ac-faq__item.is-open button { color: var(--ac-primary); }
.ac-faq__item button:focus-visible { outline: 3px solid var(--ac-aqua); outline-offset: -3px; border-radius: 22px; }
.ac-faq__icon { position: relative; flex: 0 0 32px; height: 32px; border-radius: 50%; background: var(--ac-mint); transition: background-color .3s, transform .5s var(--ac-ease); }
.ac-faq__icon::before, .ac-faq__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; margin: -1px 0 0 -6px; background: var(--ac-primary); border-radius: 2px; transition: transform .4s var(--ac-ease), background-color .3s; }
.ac-faq__icon::after { transform: rotate(90deg); }
.ac-faq__item.is-open .ac-faq__icon { background: var(--ac-primary); transform: rotate(180deg); }
.ac-faq__item.is-open .ac-faq__icon::before, .ac-faq__item.is-open .ac-faq__icon::after { background: #fff; }
.ac-faq__item.is-open .ac-faq__icon::after { transform: rotate(0); }
.ac-faq__panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s var(--ac-ease); }
.ac-faq__panel > div { overflow: hidden; padding: 0 1.6rem; }
.ac-faq__item.is-open .ac-faq__panel { grid-template-rows: 1fr; }
.ac-faq__panel p:last-child { margin-bottom: 1.4rem; }

/* CTA ------------------------------------------------------------------------------ */
.ac-cta__inner { text-align: center; max-width: 820px; }
.ac-cta .ac-buttons { justify-content: center; }
.ac-cta__spiral { position: absolute; width: clamp(140px, 18vw, 260px); right: 0; top: 50%; transform: translateY(-50%); color: rgba(255, 255, 255, .12); z-index: -1; }
.ac-cta:not(.ac-dark) .ac-cta__spiral { color: color-mix(in srgb, var(--ac-aqua) 25%, transparent); }
.ac-cta .ac-lead { font-size: 1.15rem; }

/* Formulario ------------------------------------------------------------------------- */
.ac-contact__grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(2rem, 6vw, 5rem); align-items: start; }
.ac-contact__channels { list-style: none !important; padding: 0 !important; margin: 1.8rem 0 0 !important; display: grid; gap: .8rem; }
.ac-contact__channels li { padding: 0 !important; margin: 0 !important; }
.ac-contact__channels li::before { display: none !important; }
.ac-contact__channels a { display: inline-flex; align-items: center; gap: .8rem; color: var(--ac-ink); text-decoration: none; font-weight: 500; transition: color .3s, transform .4s var(--ac-ease); }
.ac-contact__channels a:hover { color: var(--ac-primary); transform: translateX(4px); }
.ac-dark .ac-contact__channels a { color: #fff; }
.ac-contact__ico { width: 44px; height: 44px; border-radius: 50%; background: var(--ac-mint) center / 22px no-repeat; flex: 0 0 44px; }
.ac-contact__ico--wa { background-color: #25a656; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M12 2a10 10 0 00-8.6 15.1L2 22l5-1.3A10 10 0 1012 2zm0 18.2a8.2 8.2 0 01-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1112 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8-.2-.1-.4-.1-.6.1l-.8 1c-.1.2-.3.2-.5.1a6.7 6.7 0 01-3.3-2.9c-.3-.4.2-.4.7-1.3.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5c-.2 0-.4.1-.6.3-.2.2-.8.8-.8 2s.8 2.3.9 2.5c.1.2 1.6 2.5 4 3.5 1.5.6 2 .7 2.8.6.5-.1 1.5-.6 1.7-1.2.2-.6.2-1.1.2-1.2-.1-.1-.2-.2-.5-.3z'/%3E%3C/svg%3E"); }
.ac-contact__ico--tel { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23008878' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.9v3a2 2 0 01-2.2 2 19.8 19.8 0 01-8.6-3.1 19.5 19.5 0 01-6-6A19.8 19.8 0 012.1 4.2 2 2 0 014.1 2h3a2 2 0 012 1.7c.1 1 .4 1.9.7 2.8a2 2 0 01-.5 2.1L8 9.9a16 16 0 006 6l1.3-1.3a2 2 0 012.1-.4c.9.3 1.8.6 2.8.7a2 2 0 011.7 2z'/%3E%3C/svg%3E"); }
.ac-contact__ico--mail { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23008878' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='4' width='20' height='16' rx='3'/%3E%3Cpath d='M22 7l-10 6L2 7'/%3E%3C/svg%3E"); }
.ac-contact__figure { margin: 2.4rem 0 0; aspect-ratio: 4 / 4.4; overflow: hidden; max-width: 380px; box-shadow: var(--ac-shadow); }
.ac-contact__figure img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }

.ac-form { position: relative; background: #fff; border-radius: 32px; padding: clamp(1.6rem, 4vw, 2.8rem); box-shadow: var(--ac-shadow); display: grid; gap: 1rem; color: var(--ac-ink); }
.ac-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.ac-field { display: grid; gap: .35rem; font-size: .88rem; font-weight: 500; color: var(--ac-ink); }
.ac-field input, .ac-field select, .ac-field textarea {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 1rem; font-weight: 400; color: var(--ac-ink);
	background: var(--ac-mint); border: 2px solid transparent; border-radius: 16px; padding: .85em 1em;
	transition: border-color .3s, background-color .3s, box-shadow .3s; appearance: none; -webkit-appearance: none;
}
.ac-field select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23008878' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1em center; background-size: 18px; padding-right: 2.6em; }
.ac-field textarea { resize: vertical; min-height: 120px; }
.ac-field input:focus, .ac-field select:focus, .ac-field textarea:focus { outline: none; background: #fff; border-color: var(--ac-aqua); box-shadow: 0 0 0 5px color-mix(in srgb, var(--ac-aqua) 18%, transparent); }
.ac-field.has-error input, .ac-field.has-error textarea { border-color: #d9534f; background: #fff5f4; }
.ac-check { display: flex; gap: .7rem; align-items: flex-start; font-size: .9rem; cursor: pointer; }
.ac-check input { width: 20px; height: 20px; margin-top: .1em; accent-color: var(--ac-primary); flex: 0 0 20px; }
.ac-check.has-error span { color: #c0392b; }
.ac-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.ac-form__submit { justify-self: start; }
.ac-form.is-sending .ac-form__submit span::after { content: ""; display: inline-block; width: .9em; height: .9em; margin-left: .6em; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; vertical-align: -.1em; animation: ac-spin .7s linear infinite; }
@keyframes ac-spin { to { transform: rotate(360deg); } }
.ac-form__status { margin: 0; font-weight: 500; min-height: 1.4em; }
.ac-form__status.is-error { color: #c0392b; }
.ac-form__status.is-success { color: var(--ac-primary); background: var(--ac-mint); padding: 1rem 1.2rem; border-radius: 16px; }
.ac-form__legal { font-size: .75rem; line-height: 1.5; color: #6b7c78; margin: 0; }
@media (max-width: 900px) { .ac-contact__grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .ac-form__row { grid-template-columns: 1fr; } }

/* Consultas y mapas ------------------------------------------------------------------ */
.ac-locations__grid { display: grid; grid-template-columns: repeat(var(--cols, 2), minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 2.5rem); max-width: 1080px; margin-inline: auto; }
.ac-location { background: #fff; border-radius: 30px; overflow: hidden; box-shadow: var(--ac-shadow); }
.ac-bg-white .ac-location { background: var(--ac-cream); }
.ac-location__map { position: relative; aspect-ratio: 16 / 10; background: var(--ac-mint); overflow: hidden; }
.ac-location__map img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; transition: transform 1s var(--ac-ease), filter .6s; }
.ac-location:hover .ac-location__map img { transform: scale(1.05); }
.ac-location__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ac-location__load { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); display: inline-flex; gap: .5em; align-items: center; padding: .8em 1.4em; border: 0; border-radius: 999px; background: #fff; color: var(--ac-primary); font-family: var(--ac-font-display); font-size: 1rem; cursor: pointer; box-shadow: var(--ac-shadow); transition: transform .4s var(--ac-ease), background-color .3s, color .3s; }
.ac-location__load svg { width: 20px; height: 20px; }
.ac-location__load:hover { transform: translate(-50%, -50%) scale(1.06); background: var(--ac-primary); color: #fff; }
.ac-location__map.is-loaded .ac-location__load, .ac-location__map.is-loaded img { display: none; }
.ac-location__body { padding: 1.6rem 1.8rem 2rem; }
.ac-location__body h3 { font-family: var(--ac-font-display); color: var(--ac-primary); font-size: 1.4rem; font-weight: 500; margin: 0 0 .6rem; }
.ac-location__body p { margin: 0 0 1.2rem; }
@media (max-width: 781px) { .ac-locations__grid { grid-template-columns: 1fr; } }

/* Editor --------------------------------------------------------------------------- */
.ac-ed-preview { pointer-events: none; }
.ac-ed-preview .ac-hero__img img { animation: none; }
.ac-ed-noimg { display: grid; place-items: center; height: 100%; min-height: 260px; background: var(--ac-mint); color: var(--ac-primary); font-size: 14px; text-align: center; padding: 1rem; }
.ac-ed-label { font-size: 11px; font-weight: 500; text-transform: uppercase; margin: 0 0 8px; }
.ac-ed-repeater .components-panel__body { border-left: 3px solid #01bba6; margin-bottom: 4px; }
.ac-ed-preview .ac-service { transform: none; opacity: 1; filter: none; }
