/* ==========================================================================
   IV Drip Ao Nang — component styles (tokens live in theme.json)
   ========================================================================== */

:root {
	--ivdrip-radius-s: var(--wp--custom--radius--small, 10px);
	--ivdrip-radius-m: var(--wp--custom--radius--medium, 18px);
	--ivdrip-radius-l: var(--wp--custom--radius--large, 28px);
	--ivdrip-shadow: var(--wp--preset--shadow--card);
	--ivdrip-shadow-lift: var(--wp--preset--shadow--lift);
	--ivdrip-wa: #128c4a;
	--ivdrip-wa-hover: #0b6e39;
	--ivdrip-ease: cubic-bezier(.2, .7, .2, 1);
	--ivdrip-topbar-h: 40px;
}

html { scroll-behavior: smooth; scroll-padding-top: 96px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--wp--preset--color--accent); color: #fff; }
:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent);
	outline-offset: 3px;
}

/* Sections stack flush; each section owns its own spacing. */
.wp-site-blocks > * + *,
.ivdrip-main > * + *,
:is(.home, .page-template-page-landing) .ivdrip-main > .wp-block-post-content > * + * { margin-block-start: 0; }
.ivdrip-main { margin-block-start: 0; }
.ivdrip-page > .wp-block-post-content,
.ivdrip-page > .wp-block-post-featured-image,
.ivdrip-page > .wp-block-query { margin-block: var(--wp--preset--spacing--60); }

.ivdrip-section { padding-block: var(--wp--preset--spacing--70); }
.ivdrip-section__head { margin-block-end: var(--wp--preset--spacing--50); gap: var(--wp--preset--spacing--40); }
.ivdrip-section__intro > * { margin-block: 0; }
.ivdrip-section__intro > * + * { margin-block-start: 1rem; }
.ivdrip-section__intro.is-centered { margin-block-end: var(--wp--preset--spacing--60); }
.ivdrip-section__intro h2 { text-wrap: balance; }

/* Typography helpers ------------------------------------------------------ */
.is-style-eyebrow {
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--wp--preset--color--primary);
	display: flex;
	align-items: center;
	gap: .6rem;
}
.is-style-eyebrow::before {
	content: "";
	width: 1.6rem;
	height: 2px;
	border-radius: 2px;
	background: var(--wp--preset--color--accent);
}
.is-style-eyebrow.has-text-align-center { display: flex; justify-content: center; }
.ivdrip-safety .is-style-eyebrow,
.ivdrip-footer .is-style-eyebrow { color: #9fe3dc; }
.ivdrip-lead { font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--muted); line-height: 1.55; }
.ivdrip-small { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }
h1 em, h2 em { font-style: italic; font-weight: 500; color: var(--wp--preset--color--primary); }
h1, h2 { text-wrap: balance; }
p { text-wrap: pretty; }

.ivdrip-arrow-link a {
	font-weight: 700;
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: .5rem;
	color: var(--wp--preset--color--primary);
}
.ivdrip-arrow-link a::after { content: "→"; transition: transform .25s var(--ivdrip-ease); }
.ivdrip-arrow-link a:hover::after { transform: translateX(4px); }
.ivdrip-arrow-link.is-back a::after { content: none; }
.ivdrip-arrow-link.is-back a::before { content: "←"; }
.ivdrip-arrow-link.is-back::before { display: none; }

/* Buttons ----------------------------------------------------------------- */
.wp-element-button,
.wp-block-button__link {
	transition: background-color .2s, color .2s, box-shadow .2s, transform .2s var(--ivdrip-ease), border-color .2s;
	line-height: 1.2;
}
.wp-block-button:not(.is-style-ghost) .wp-block-button__link:hover { transform: translateY(-1px); box-shadow: 0 10px 22px -10px rgba(200, 70, 42, .55); }

.wp-block-button.is-style-whatsapp .wp-block-button__link {
	background: var(--ivdrip-wa);
	color: #fff;
	display: inline-flex;
	align-items: center;
	gap: .55rem;
}
.wp-block-button.is-style-whatsapp .wp-block-button__link::before {
	content: "";
	width: 1.15em;
	height: 1.15em;
	background: currentColor;
	-webkit-mask: url("../icons/chat.svg") center / contain no-repeat;
	mask: url("../icons/chat.svg") center / contain no-repeat;
}
.wp-block-button.is-style-whatsapp .wp-block-button__link:hover { background: var(--ivdrip-wa-hover); box-shadow: 0 10px 22px -10px rgba(18, 140, 74, .6); }

.wp-block-button.is-style-ghost .wp-block-button__link {
	background: transparent;
	color: inherit;
	box-shadow: inset 0 0 0 1.5px currentColor;
}
.wp-block-button.is-style-ghost .wp-block-button__link:hover { background: var(--wp--preset--color--primary-dark); color: #fff; box-shadow: inset 0 0 0 1.5px var(--wp--preset--color--primary-dark); }
.ivdrip-safety .wp-block-button.is-style-ghost .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--primary-dark); box-shadow: inset 0 0 0 1.5px #fff; }

/* Checklist list style ---------------------------------------------------- */
.wp-block-list.is-style-checks { list-style: none; padding-left: 0; }
.wp-block-list.is-style-checks li { position: relative; padding-left: 1.75rem; }
.wp-block-list.is-style-checks li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .2em;
	width: 1.2rem;
	height: 1.2rem;
	border-radius: 50%;
	background: var(--wp--preset--color--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 70% no-repeat;
}

/* Card group style -------------------------------------------------------- */
.wp-block-group.is-style-card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--ivdrip-radius-m);
	padding: var(--wp--preset--spacing--40);
	box-shadow: var(--ivdrip-shadow);
}
.wp-block-group.is-style-card > * { margin-block: 0; }
.wp-block-group.is-style-card > * + * { margin-block-start: .75rem; }

/* Cards built on constrained groups: keep content left-aligned. */
:is(.ivdrip-step, .ivdrip-feature, .ivdrip-option, .is-style-card) > * { margin-inline: 0 !important; }

/* Icon images ------------------------------------------------------------- */
.wp-block-image.ivdrip-icon-img {
	margin: 0;
	flex: 0 0 auto;
	width: 52px;
	height: 52px;
	display: grid;
	place-items: center;
	border-radius: 14px;
	background: var(--wp--preset--color--mist);
}
.wp-block-image.ivdrip-icon-img img { width: 28px; height: 28px; }
.wp-block-image.ivdrip-icon-img.is-light { background: rgba(255, 255, 255, .1); }
.wp-block-image.ivdrip-icon-img.is-light img { filter: brightness(0) invert(1); }

/* Header ------------------------------------------------------------------ */
.ivdrip-site-header {
	position: sticky;
	top: calc(-1 * var(--ivdrip-topbar-h));
	z-index: 50;
}
.admin-bar .ivdrip-site-header { top: calc(32px - var(--ivdrip-topbar-h)); }
@media (max-width: 782px) { .admin-bar .ivdrip-site-header { top: calc(46px - var(--ivdrip-topbar-h)); } }
@media (max-width: 600px) { .admin-bar .ivdrip-site-header { top: calc(-1 * var(--ivdrip-topbar-h)); } }

.ivdrip-topbar { font-size: .82rem; height: var(--ivdrip-topbar-h); display: flex; align-items: center; }
.ivdrip-topbar > .wp-block-group { width: 100%; gap: 1rem; flex-wrap: nowrap !important; }
.ivdrip-topbar p { margin: 0; opacity: .88; white-space: nowrap; }
.ivdrip-topbar__hours::before { content: "●"; color: #4ade80; margin-right: .5rem; font-size: .7em; vertical-align: .15em; }
.ivdrip-topbar .wp-block-button__link,
.ivdrip-footer__links .wp-block-button__link,
.ivdrip-contact__link .wp-block-button__link {
	padding: 0;
	box-shadow: none !important;
	background: none !important;
	font-weight: 700;
	font-size: inherit;
	border-radius: 0;
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: .2em;
}
.ivdrip-topbar .wp-block-button__link:hover,
.ivdrip-footer__links .wp-block-button__link:hover,
.ivdrip-contact__link .wp-block-button__link:hover { color: inherit !important; text-decoration-color: currentColor; }
@media (max-width: 720px) { .ivdrip-topbar__area { display: none; } }

.ivdrip-header {
	padding-block: .85rem;
	border-bottom: 1px solid transparent;
	background: rgba(255, 255, 255, .92) !important;
	-webkit-backdrop-filter: saturate(160%) blur(12px);
	backdrop-filter: saturate(160%) blur(12px);
	transition: box-shadow .3s, border-color .3s, padding .3s;
}
.is-scrolled .ivdrip-header { box-shadow: 0 8px 24px -16px rgba(10, 52, 56, .35); border-bottom-color: var(--wp--preset--color--line); padding-block: .6rem; }
.ivdrip-header__inner { gap: 1.5rem; }
.ivdrip-header__nav { gap: 1.75rem; }
.ivdrip-brand { gap: .65rem; }
.ivdrip-brand .wp-block-site-title { margin: 0; line-height: 1; }
.ivdrip-brand:not(:has(.wp-block-site-logo img)) .wp-block-site-title a::before,
.ivdrip-footer__brand a::before {
	content: "";
	display: inline-block;
	width: 1.9rem;
	height: 1.9rem;
	margin-right: .55rem;
	vertical-align: -.45rem;
	border-radius: 50% 50% 50% 8px;
	transform: rotate(-45deg);
	background: linear-gradient(135deg, var(--wp--preset--color--accent), var(--wp--preset--color--primary));
	box-shadow: inset 0 0 0 5px rgba(255, 255, 255, .25);
}
.ivdrip-header .wp-block-navigation a { color: var(--wp--preset--color--contrast); }
.ivdrip-header .wp-block-navigation a:hover { color: var(--wp--preset--color--primary); }
.ivdrip-header__cta .wp-block-button__link { padding: .7rem 1.3rem; font-size: .95rem; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 2rem 1.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item { font-size: 1.5rem; font-family: var(--wp--preset--font-family--heading); }
@media (max-width: 599px) {
	.ivdrip-header__cta { display: none; }
}

/* Hero -------------------------------------------------------------------- */
.ivdrip-hero {
	position: relative;
	overflow: hidden;
	padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--70);
	background:
		radial-gradient(60rem 30rem at 95% -10%, rgba(43, 179, 168, .18), transparent 60%),
		radial-gradient(40rem 26rem at -10% 110%, rgba(200, 70, 42, .10), transparent 60%),
		var(--wp--preset--color--sand) !important;
}
.ivdrip-hero__cols { gap: var(--wp--preset--spacing--60) !important; }
.ivdrip-hero__copy > * { margin-block: 0; }
.ivdrip-hero__copy > * + * { margin-block-start: 1.4rem; }
.ivdrip-hero h1 { font-size: clamp(2.6rem, 5.6vw, 4.6rem); line-height: 1.02; letter-spacing: -.025em; }
.ivdrip-hero h1 em { display: block; color: var(--wp--preset--color--primary); }
.ivdrip-hero .ivdrip-lead { max-width: 34rem; }
.ivdrip-hero__ctas { gap: .75rem; padding-top: .4rem; }
.ivdrip-hero__ctas .wp-block-button__link { padding: 1rem 1.75rem; font-size: 1.05rem; }
.ivdrip-hero__checks { display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; font-weight: 600; font-size: .95rem; color: var(--wp--preset--color--primary-dark); }
.ivdrip-hero__checks li { margin: 0; }

.ivdrip-hero__media { position: relative; }
.ivdrip-hero__media::before {
	content: "";
	position: absolute;
	inset: 8% -6% -6% 10%;
	border-radius: 48% 52% 40% 60% / 55% 45% 55% 45%;
	background: var(--wp--preset--gradient--lagoon);
	opacity: .14;
	z-index: 0;
}
.ivdrip-hero__img { position: relative; z-index: 1; margin: 0; }
.ivdrip-hero__img img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	object-position: 62% center;
	border-radius: 220px 220px var(--ivdrip-radius-l) var(--ivdrip-radius-l);
	box-shadow: var(--ivdrip-shadow-lift);
}
.ivdrip-float {
	position: absolute;
	z-index: 2;
	gap: .75rem;
	padding: .8rem 1.1rem .8rem .8rem;
	background: rgba(255, 255, 255, .96);
	border-radius: 16px;
	box-shadow: var(--ivdrip-shadow-lift);
	font-size: .88rem;
	line-height: 1.35;
	animation: ivdrip-bob 6s ease-in-out infinite;
}
.ivdrip-float p { margin: 0; color: var(--wp--preset--color--muted); }
.ivdrip-float strong { color: var(--wp--preset--color--primary-dark); font-size: .95rem; }
.ivdrip-float .ivdrip-icon-img { width: 44px; height: 44px; border-radius: 12px; }
.ivdrip-float .ivdrip-icon-img img { width: 24px; height: 24px; }
.ivdrip-float--a { left: -6%; bottom: 14%; }
.ivdrip-float--b { right: -4%; top: 12%; animation-delay: -3s; }
@keyframes ivdrip-bob { 50% { transform: translateY(-8px); } }
@media (prefers-reduced-motion: reduce) { .ivdrip-float { animation: none; } }

@media (max-width: 781px) {
	.ivdrip-hero { padding-block-start: var(--wp--preset--spacing--50); }
	.ivdrip-hero__media { margin-top: 1rem; }
	.ivdrip-hero__img img { aspect-ratio: 5 / 4; border-radius: 120px 120px var(--ivdrip-radius-l) var(--ivdrip-radius-l); }
	.ivdrip-float--a { left: .75rem; bottom: -1.25rem; }
	.ivdrip-float--b { right: .75rem; top: auto; bottom: 30%; }
}

/* Trust bar --------------------------------------------------------------- */
.ivdrip-trust {
	padding-block: var(--wp--preset--spacing--40);
	border-bottom: 1px solid var(--wp--preset--color--line);
	background: var(--wp--preset--color--base);
}
.ivdrip-trust__item { gap: .9rem; }
.ivdrip-trust__item p { margin: 0; font-size: .9rem; line-height: 1.4; color: var(--wp--preset--color--muted); }
.ivdrip-trust__item strong { color: var(--wp--preset--color--primary-dark); font-size: 1rem; }

/* Treatment cards --------------------------------------------------------- */
.ivdrip-menu .wp-block-post { display: flex; }
.ivdrip-card {
	position: relative;
	width: 100%;
	gap: .9rem;
	padding: var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: var(--ivdrip-radius-m);
	box-shadow: var(--ivdrip-shadow);
	transition: transform .35s var(--ivdrip-ease), box-shadow .35s var(--ivdrip-ease), border-color .35s;
}
.ivdrip-card > * { margin: 0 !important; }
.ivdrip-card:hover { transform: translateY(-4px); box-shadow: var(--ivdrip-shadow-lift); border-color: rgba(43, 179, 168, .5); }
.has-badge .ivdrip-card { border-color: var(--wp--preset--color--accent); box-shadow: 0 0 0 1px var(--wp--preset--color--accent), var(--ivdrip-shadow); }
.ivdrip-card__top { width: 100%; }
.ivdrip-card__icon {
	width: 56px;
	height: 56px;
	margin: 0;
	border-radius: 16px;
	background: var(--wp--preset--color--mist);
	position: relative;
	flex: 0 0 auto;
}
.ivdrip-card__icon::before {
	content: "";
	position: absolute;
	inset: 14px;
	background: var(--wp--preset--color--primary);
	-webkit-mask: var(--ivdrip-icon, url("../icons/droplet.svg")) center / contain no-repeat;
	mask: var(--ivdrip-icon, url("../icons/droplet.svg")) center / contain no-repeat;
}
.ivdrip-icon--droplet { --ivdrip-icon: url("../icons/droplet.svg"); }
.ivdrip-icon--sun { --ivdrip-icon: url("../icons/sun.svg"); }
.ivdrip-icon--bolt { --ivdrip-icon: url("../icons/bolt.svg"); }
.ivdrip-icon--shield { --ivdrip-icon: url("../icons/shield.svg"); }
.ivdrip-icon--sparkle { --ivdrip-icon: url("../icons/sparkle.svg"); }
.ivdrip-icon--helix { --ivdrip-icon: url("../icons/helix.svg"); }
.ivdrip-icon--moon { --ivdrip-icon: url("../icons/moon.svg"); }
.ivdrip-icon--plane { --ivdrip-icon: url("../icons/plane.svg"); }
.ivdrip-card__badge {
	margin: 0;
	padding: .35rem .75rem;
	border-radius: 999px;
	background: var(--wp--preset--color--cta-light);
	color: var(--wp--preset--color--cta);
	font-size: .75rem;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	white-space: nowrap;
}
.ivdrip-card__badge:empty { display: none; }
.ivdrip-card__title { font-family: var(--wp--preset--font-family--heading); font-size: 1.5rem; font-weight: 600; margin-top: .4rem !important; }
.ivdrip-card__title a { text-decoration: none; color: var(--wp--preset--color--primary-dark); }
.ivdrip-card__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } /* whole card clickable */
.ivdrip-card__excerpt { color: var(--wp--preset--color--muted); font-size: .97rem; flex: 1 1 auto; }
.ivdrip-card__excerpt p { margin: 0; }
.ivdrip-card__excerpt .wp-block-post-excerpt__more-text { display: none; }
.ivdrip-card__foot { width: 100%; padding-top: 1rem; border-top: 1px dashed var(--wp--preset--color--line); margin-top: auto !important; }
.ivdrip-card__meta { gap: 0; }
.ivdrip-card__meta p { margin: 0; }
.ivdrip-card__price { font-family: var(--wp--preset--font-family--heading); font-size: 1.6rem; font-weight: 600; color: var(--wp--preset--color--primary-dark); line-height: 1.1; }
.ivdrip-card__duration { font-size: .85rem; color: var(--wp--preset--color--muted); }
.ivdrip-card__duration:not(:empty)::before { content: "⏱ "; }
.ivdrip-card .wp-block-buttons { position: relative; z-index: 2; }
.ivdrip-card .is-style-ghost .wp-block-button__link { padding: .6rem 1.25rem; font-size: .92rem; color: var(--wp--preset--color--primary-dark); }
.ivdrip-card:hover .is-style-ghost .wp-block-button__link { background: var(--wp--preset--color--cta); color: #fff; box-shadow: inset 0 0 0 1.5px var(--wp--preset--color--cta); }

/* How it works ------------------------------------------------------------ */
.ivdrip-step {
	position: relative;
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40) var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--base);
	border-radius: var(--ivdrip-radius-m);
	box-shadow: var(--ivdrip-shadow);
}
.ivdrip-step > * { margin-block: 0 !important; }
.ivdrip-step > * + * { margin-block-start: .85rem !important; }
.ivdrip-step__num {
	position: absolute;
	top: 1rem;
	right: 1.4rem;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 3.4rem;
	font-weight: 700;
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 1.5px var(--wp--preset--color--accent);
	opacity: .6;
}
.ivdrip-step h3 { font-size: 1.25rem; margin-top: 1.4rem !important; }
.ivdrip-step p:last-child { color: var(--wp--preset--color--muted); }

/* Hotel visits ------------------------------------------------------------ */
.ivdrip-visits .wp-block-columns { gap: var(--wp--preset--spacing--60); }
.ivdrip-visits__img { margin: 0; }
.ivdrip-visits__img img {
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--ivdrip-radius-l) var(--ivdrip-radius-l) var(--ivdrip-radius-l) 200px;
	box-shadow: var(--ivdrip-shadow-lift);
}
@media (max-width: 781px) { .ivdrip-visits__img img { aspect-ratio: 16 / 10; border-radius: var(--ivdrip-radius-l); } }
.ivdrip-options { margin-top: var(--wp--preset--spacing--40) !important; }
.ivdrip-option h3 { font-size: 1.12rem; margin-top: 1rem !important; }
.ivdrip-option p { margin: .4rem 0 0 !important; }

/* Safety (dark) ----------------------------------------------------------- */
.ivdrip-safety { position: relative; overflow: hidden; }
.ivdrip-safety::after {
	content: "";
	position: absolute;
	right: -10rem;
	top: -10rem;
	width: 34rem;
	height: 34rem;
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .1);
	box-shadow: 0 0 0 4rem rgba(255, 255, 255, .03), 0 0 0 8rem rgba(255, 255, 255, .02);
	pointer-events: none;
}
.ivdrip-safety .wp-block-columns { gap: var(--wp--preset--spacing--60); position: relative; z-index: 1; }
.ivdrip-safety p { color: rgba(255, 255, 255, .82); }
.ivdrip-feature {
	padding: var(--wp--preset--spacing--40);
	border-radius: var(--ivdrip-radius-m);
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .12);
	transition: background .3s;
}
.ivdrip-feature:hover { background: rgba(255, 255, 255, .1); }
.ivdrip-feature > * { margin-block: 0 !important; }
.ivdrip-feature h3 { margin-top: 1.1rem !important; font-size: 1.1rem; }
.ivdrip-feature p { margin-top: .5rem !important; font-size: .95rem; }

/* Testimonials ------------------------------------------------------------ */
.wp-block-quote.ivdrip-quote {
	margin: 0;
	padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40) var(--wp--preset--spacing--40);
	background: var(--wp--preset--color--base);
	border-radius: var(--ivdrip-radius-m);
	box-shadow: var(--ivdrip-shadow);
	position: relative;
	display: flex;
	flex-direction: column;
}
.wp-block-quote.ivdrip-quote::before {
	content: "★★★★★";
	color: #e3a008;
	letter-spacing: .15em;
	font-size: .95rem;
	margin-bottom: .9rem;
}
.wp-block-quote.ivdrip-quote p { font-family: var(--wp--preset--font-family--heading); font-size: 1.15rem; line-height: 1.5; color: var(--wp--preset--color--primary-dark); margin: 0; flex: 1; }
.wp-block-quote.ivdrip-quote cite { display: block; margin-top: 1.25rem; font-style: normal; font-size: .85rem; color: var(--wp--preset--color--muted); }
.wp-block-quote.ivdrip-quote cite strong { color: var(--wp--preset--color--contrast); font-size: .95rem; }

/* FAQ --------------------------------------------------------------------- */
.ivdrip-faq .wp-block-columns { gap: var(--wp--preset--spacing--60); }
@media (min-width: 782px) { .ivdrip-faq__intro { position: sticky; top: 110px; align-self: flex-start; } }
.ivdrip-faq__intro > * { margin-block: 0; }
.ivdrip-faq__intro > * + * { margin-block-start: 1.1rem; }
.ivdrip-faq__list > .wp-block-details { margin: 0; }
.wp-block-details summary {
	list-style: none;
	cursor: pointer;
	font-weight: 700;
	font-size: 1.08rem;
	color: var(--wp--preset--color--primary-dark);
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding-block: .2rem;
}
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after {
	content: "+";
	flex: 0 0 2rem;
	height: 2rem;
	display: grid;
	place-items: center;
	border-radius: 50%;
	background: var(--wp--preset--color--mist);
	color: var(--wp--preset--color--primary);
	font-size: 1.3rem;
	font-weight: 500;
	transition: transform .3s var(--ivdrip-ease), background .3s;
}
.wp-block-details[open] summary::after { transform: rotate(45deg); background: var(--wp--preset--color--accent); color: #fff; }
.wp-block-details summary:hover { color: var(--wp--preset--color--primary); }
.wp-block-details > p { color: var(--wp--preset--color--muted); margin-top: .75rem; max-width: 60ch; }

/* Booking ----------------------------------------------------------------- */
.ivdrip-book .wp-block-columns { gap: var(--wp--preset--spacing--60); }
.ivdrip-book__info > * { margin-block: 0; }
.ivdrip-book__info > * + * { margin-block-start: 1.1rem; }
.ivdrip-contact { gap: 1.1rem; margin-top: var(--wp--preset--spacing--50) !important; }
.ivdrip-contact__row { gap: 1rem; }
.ivdrip-contact__row .ivdrip-icon-img { background: var(--wp--preset--color--base); }
.ivdrip-contact__text { gap: .1rem; }
.ivdrip-contact__text p,
.ivdrip-contact__text .wp-block-buttons { margin: 0; }
.ivdrip-contact__label { font-size: .75rem !important; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--muted); }
.ivdrip-contact__link .wp-block-button__link { color: var(--wp--preset--color--primary-dark); font-size: 1.02rem; text-align: left; }
.ivdrip-book__card { padding: var(--wp--preset--spacing--50) !important; border-radius: var(--ivdrip-radius-l) !important; }

.ivdrip-booking { --field-bg: #fbfdfc; }
.ivdrip-booking__form { display: grid; gap: 1.25rem; }
.ivdrip-booking__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.1rem; }
@media (max-width: 600px) { .ivdrip-booking__grid { grid-template-columns: 1fr; } }
.ivdrip-field { margin: 0; display: flex; flex-direction: column; gap: .4rem; }
.ivdrip-field--wide { grid-column: 1 / -1; }
.ivdrip-field[hidden] { display: none; }
.ivdrip-field label { font-size: .85rem; font-weight: 700; color: var(--wp--preset--color--primary-dark); }
.ivdrip-field label span { color: var(--wp--preset--color--cta); }
.ivdrip-booking input[type="text"],
.ivdrip-booking input[type="tel"],
.ivdrip-booking input[type="email"],
.ivdrip-booking input[type="date"],
.ivdrip-booking select,
.ivdrip-booking textarea {
	width: 100%;
	box-sizing: border-box;
	font: inherit;
	font-size: 1rem;
	color: var(--wp--preset--color--contrast);
	padding: .8rem .95rem;
	min-height: 3.1rem;
	border: 1.5px solid var(--wp--preset--color--line);
	border-radius: 12px;
	background: var(--field-bg);
	transition: border-color .2s, box-shadow .2s, background .2s;
	-webkit-appearance: none;
	appearance: none;
}
.ivdrip-booking select {
	padding-right: 2.5rem;
	background: var(--field-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E5E63' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right .8rem center / 1.1rem no-repeat;
}
.ivdrip-booking textarea { min-height: 6rem; resize: vertical; }
.ivdrip-booking :is(input, select, textarea):hover { border-color: #b9d3d0; }
.ivdrip-booking :is(input, select, textarea):focus { outline: none; border-color: var(--wp--preset--color--accent); background: #fff; box-shadow: 0 0 0 4px rgba(43, 179, 168, .18); }
.ivdrip-field.has-error :is(input, select) { border-color: var(--wp--preset--color--cta); box-shadow: 0 0 0 4px rgba(200, 70, 42, .12); }

.ivdrip-booking__choice { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.ivdrip-booking__choice legend { font-size: .85rem; font-weight: 700; color: var(--wp--preset--color--primary-dark); margin-bottom: .5rem; padding: 0; }
.ivdrip-booking__choice label { position: relative; cursor: pointer; }
.ivdrip-booking__choice input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.ivdrip-booking__choice span {
	display: block;
	text-align: center;
	padding: .85rem .75rem;
	border-radius: 12px;
	border: 1.5px solid var(--wp--preset--color--line);
	font-weight: 700;
	font-size: .95rem;
	color: var(--wp--preset--color--muted);
	transition: all .2s;
}
.ivdrip-booking__choice input:checked + span { border-color: var(--wp--preset--color--primary); background: var(--wp--preset--color--mist); color: var(--wp--preset--color--primary-dark); box-shadow: inset 0 0 0 1px var(--wp--preset--color--primary); }
.ivdrip-booking__choice input:focus-visible + span { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 2px; }

.ivdrip-booking__consent { display: flex; gap: .7rem; align-items: flex-start; font-size: .88rem; color: var(--wp--preset--color--muted); cursor: pointer; line-height: 1.5; border-radius: 8px; }
.ivdrip-booking__consent input { width: 1.2rem; height: 1.2rem; margin-top: .1rem; flex: 0 0 auto; accent-color: var(--wp--preset--color--primary); }
.ivdrip-booking__consent.has-error { color: var(--wp--preset--color--cta); outline: 1.5px solid var(--wp--preset--color--cta); outline-offset: 6px; }

.ivdrip-booking__actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.ivdrip-booking__submit { border: 0; cursor: pointer; font-size: 1.05rem !important; padding: 1rem 1.9rem !important; }
.ivdrip-booking__submit:hover { transform: translateY(-1px); }
.ivdrip-booking__submit.is-busy { opacity: .7; cursor: progress; }
.ivdrip-booking__to-wa { border: 0; background: none; cursor: pointer; font: inherit; font-weight: 700; color: var(--ivdrip-wa); text-decoration: underline; text-underline-offset: .2em; padding: .5rem; }
.ivdrip-booking__to-wa:hover { color: var(--ivdrip-wa-hover); }
.ivdrip-booking__fine { margin: 0; font-size: .82rem; color: var(--wp--preset--color--muted); }

.ivdrip-booking__notice { padding: 1.1rem 1.25rem; border-radius: 14px; margin-bottom: 1.25rem; }
.ivdrip-booking__notice p { margin: .35rem 0 .8rem; }
.ivdrip-booking__notice.is-success { background: #e7f7ef; color: #0b4d2b; border: 1px solid #a7e3c3; }
.ivdrip-booking__notice.is-error { background: var(--wp--preset--color--cta-light); color: #8a2a14; border: 1px solid #f2b7a4; }
.ivdrip-booking__wa { display: inline-block; background: var(--ivdrip-wa); color: #fff !important; text-decoration: none; padding: .6rem 1.1rem; border-radius: 999px; font-weight: 700; }
.ivdrip-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ivdrip-booking-editor form { pointer-events: none; }

/* Footer ------------------------------------------------------------------ */
.ivdrip-footer { padding-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40); font-size: .95rem; }
.ivdrip-footer p { color: rgba(255, 255, 255, .75); }
.ivdrip-footer h4 { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
.ivdrip-footer__cols { gap: var(--wp--preset--spacing--50); }
.ivdrip-footer__brand { font-size: 1.5rem; }
.ivdrip-footer__brand a { color: #fff !important; }
.ivdrip-footer__tagline { max-width: 26rem; color: rgba(255, 255, 255, .75); }
.ivdrip-footer__links { gap: .55rem; }
.ivdrip-footer__links .wp-block-button__link { font-weight: 500; color: rgba(255, 255, 255, .9); }
.ivdrip-footer__nav { gap: .55rem; }
.ivdrip-footer__nav a { color: rgba(255, 255, 255, .9); }
.ivdrip-footer .wp-block-separator { border-color: rgba(255, 255, 255, .14); opacity: 1; margin-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--30); }
.ivdrip-footer__legal p { font-size: .8rem; margin: 0; color: rgba(255, 255, 255, .55); }
@media (max-width: 781px) { .ivdrip-footer { padding-bottom: 6rem; } }

/* Inner pages ------------------------------------------------------------- */
/* Article reading typography (guides, location pages, treatment pages) */
.ivdrip-page .wp-block-post-content { font-size: 1.075rem; line-height: 1.75; }
.ivdrip-page .wp-block-post-content > * + * { margin-block-start: 1.15rem; }
.ivdrip-page .wp-block-post-content > h2 { font-size: clamp(1.55rem, 2.6vw, 2.05rem); line-height: 1.2; margin-block-start: 2.75rem; }
.ivdrip-page .wp-block-post-content > h3 { font-size: 1.2rem; margin-block-start: 2rem; }
.ivdrip-page .wp-block-post-content > :is(h2, h3) + * { margin-block-start: .75rem; }
.ivdrip-page .wp-block-post-content > p:first-child { font-size: 1.2rem; color: var(--wp--preset--color--muted); }
.ivdrip-page .wp-block-post-content :is(ul, ol) li + li { margin-top: .4rem; }
.ivdrip-page .wp-block-post-content > .wp-block-details { margin-block-start: 0; }
.ivdrip-page .wp-block-post-content > h2 + .wp-block-details { margin-block-start: 1rem; }
.ivdrip-page .wp-block-table { font-size: .95rem; }
.ivdrip-page .wp-block-table table { border-collapse: collapse; width: 100%; }
.ivdrip-page .wp-block-table :is(th, td) { border: 1px solid var(--wp--preset--color--line); padding: .65rem .85rem; text-align: left; vertical-align: top; }
.ivdrip-page .wp-block-table th { background: var(--wp--preset--color--mist); color: var(--wp--preset--color--primary-dark); }
.ivdrip-page .wp-block-post-content > .ivdrip-small:first-child { font-size: .85rem; color: var(--wp--preset--color--muted); }
.ivdrip-page .wp-block-post-content > .ivdrip-cta-card { margin-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--60) !important; }
.ivdrip-page-head { padding-block: var(--wp--preset--spacing--60); }
.ivdrip-page-head > * { margin-block: 0; }
.ivdrip-page-head > * + * { margin-block-start: 1rem; }
.ivdrip-pills { gap: .6rem; }
.ivdrip-pill { margin: 0; padding: .45rem 1rem; border-radius: 999px; background: #fff; border: 1px solid var(--wp--preset--color--line); font-weight: 700; color: var(--wp--preset--color--primary-dark); }
.ivdrip-pill:empty { display: none; }
.ivdrip-cta-card { margin-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--70) !important; background: var(--wp--preset--color--mist) !important; border: 0 !important; }
.ivdrip-404 { padding-block: var(--wp--preset--spacing--70); }
.wp-block-post-featured-image img { border-radius: var(--ivdrip-radius-m); }
.ivdrip-page > .wp-block-post-featured-image img { width: 100%; aspect-ratio: 16 / 7; max-height: 520px; object-fit: cover; }
@media (max-width: 600px) { .ivdrip-page > .wp-block-post-featured-image img { aspect-ratio: 4 / 3; } }
.ivdrip-photo-credit { font-size: .78rem !important; color: var(--wp--preset--color--muted); }
.ivdrip-photo-credit a { color: inherit; }

/* Floating WhatsApp + mobile bar ----------------------------------------- */
.ivdrip-fab {
	position: fixed;
	right: 1.4rem;
	bottom: 1.4rem;
	z-index: 60;
	width: 60px;
	height: 60px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: #25d366;
	color: #fff;
	box-shadow: 0 12px 28px -8px rgba(18, 140, 74, .65);
	transition: transform .25s var(--ivdrip-ease);
}
.ivdrip-fab:hover { transform: scale(1.07); color: #fff; }
.ivdrip-fab::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: 2px solid #25d366;
	animation: ivdrip-pulse 2.6s ease-out infinite;
}
@keyframes ivdrip-pulse { from { transform: scale(1); opacity: .7; } to { transform: scale(1.6); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .ivdrip-fab::after { animation: none; } }

.ivdrip-mobile-bar { display: none; }
@media (max-width: 781px) {
	.ivdrip-fab { display: none; }
	.ivdrip-mobile-bar {
		position: fixed;
		left: .75rem;
		right: .75rem;
		bottom: max(.75rem, env(safe-area-inset-bottom));
		z-index: 60;
		display: grid;
		grid-template-columns: 1fr 1.4fr;
		gap: .5rem;
		padding: .5rem;
		border-radius: 999px;
		background: rgba(255, 255, 255, .95);
		-webkit-backdrop-filter: blur(10px);
		backdrop-filter: blur(10px);
		box-shadow: 0 14px 34px -10px rgba(10, 52, 56, .45);
		transition: transform .35s var(--ivdrip-ease), opacity .35s;
	}
	.ivdrip-mobile-bar.is-hidden { transform: translateY(140%); opacity: 0; }
	.ivdrip-mobile-bar a { text-align: center; padding: .85rem 1rem; border-radius: 999px; font-weight: 700; text-decoration: none; font-size: .98rem; }
	.ivdrip-mobile-bar__wa { background: var(--ivdrip-wa); color: #fff; }
	.ivdrip-mobile-bar__book { background: var(--wp--preset--color--cta); color: #fff; }
}

/* Scroll reveal ----------------------------------------------------------- */
.ivdrip-js-reveal :is(.ivdrip-section__intro, .ivdrip-card, .ivdrip-step, .ivdrip-feature, .ivdrip-quote, .ivdrip-option, .ivdrip-trust__item, .ivdrip-visits__img, .wp-block-details) {
	opacity: 0;
	transform: translateY(22px);
	transition: opacity .7s var(--ivdrip-ease) var(--ivdrip-delay, 0ms), transform .7s var(--ivdrip-ease) var(--ivdrip-delay, 0ms);
}
.ivdrip-js-reveal :is(.ivdrip-section__intro, .ivdrip-card, .ivdrip-step, .ivdrip-feature, .ivdrip-quote, .ivdrip-option, .ivdrip-trust__item, .ivdrip-visits__img, .wp-block-details).is-visible {
	opacity: 1;
	transform: none;
}
.ivdrip-js-reveal .ivdrip-card.is-visible:hover { transform: translateY(-4px); }

/* Editor-only tweaks ------------------------------------------------------ */
.editor-styles-wrapper .ivdrip-card__icon::before { -webkit-mask-image: url("../icons/droplet.svg"); mask-image: url("../icons/droplet.svg"); }
.editor-styles-wrapper .ivdrip-card__badge:empty,
.editor-styles-wrapper .ivdrip-pill:empty { display: block; }
