/* Theia components. Colours, fonts and spacing come from theme.json presets. */

:root {
	--theia-radius: var(--wp--custom--radius, 2.25rem);
	--theia-radius-md: var(--wp--custom--radius-md, .85rem);
	--theia-shadow: var(--wp--custom--shadow, 0 8px 22px rgba(11, 36, 71, .06));
	--theia-shadow-lg: var(--wp--custom--shadow-lg, 0 18px 42px rgba(11, 36, 71, .1));
	--theia-border: rgba(15, 78, 170, .13);
	--theia-wa-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.5 14.4c-.3-.1-1.8-.9-2-1s-.5-.1-.7.1-.8 1-.9 1.2-.3.2-.6.1a8.2 8.2 0 0 1-4-3.5c-.3-.5.3-.5.9-1.6.1-.2 0-.4 0-.5l-.9-2.2c-.2-.6-.5-.5-.7-.5h-.6a1.2 1.2 0 0 0-.8.4 3.6 3.6 0 0 0-1.1 2.6 6.2 6.2 0 0 0 1.3 3.3 14.3 14.3 0 0 0 5.5 4.8c2 .9 2.9 1 3.9.8.6-.1 1.8-.8 2.1-1.5s.3-1.3.2-1.5-.3-.2-.6-.3zM12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2z'/%3E%3C/svg%3E");
}

body { -webkit-font-smoothing: antialiased; }
h1, h2, h3, h4 { font-variant-numeric: lining-nums; } /* Cormorant defaults to old-style digits */
img { height: auto; }

/* ---------- Header ---------- */
.theia-topbar { font-size: .8rem; letter-spacing: .01em; }
.theia-topbar a { color: inherit; text-decoration: none; }
.theia-topbar p { margin: 0; }
.theia-header { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, .96); backdrop-filter: blur(8px); box-shadow: 0 1px 0 var(--theia-border); }
.admin-bar .theia-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .theia-header { top: 0; } }

.theia-logo { display: inline-flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--wp--preset--color--brand); }
.theia-logo img { width: 54px; height: auto; }
.theia-logo__name { display: flex; flex-direction: column; line-height: 1; font-family: var(--wp--preset--font-family--body); }
.theia-logo__name strong { font-size: 1.45rem; font-weight: 800; letter-spacing: .07em; }
.theia-logo__name span { font-size: .6rem; font-weight: 600; letter-spacing: .16em; margin-top: .25rem; }
.theia-footer .theia-logo { color: #fff; }

.theia-header .wp-block-navigation { color: var(--wp--preset--color--navy); }
.theia-header .wp-block-navigation__submenu-container {
	border: 1px solid var(--theia-border) !important; border-radius: var(--theia-radius-md);
	box-shadow: var(--theia-shadow-lg); padding: .5rem 0; min-width: 250px !important;
}
.theia-header .wp-block-navigation__submenu-container a { padding: .45rem 1.1rem !important; }
.theia-header .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--brand-strong); }

/* ---------- Buttons ---------- */
.wp-block-button.is-style-whatsapp .wp-block-button__link { display: inline-flex; align-items: center; gap: .55rem; background: #1da851; color: #fff; }
.wp-block-button.is-style-whatsapp .wp-block-button__link:hover { background: #128c4a; }
.wp-block-button.is-style-whatsapp .wp-block-button__link::before {
	content: ""; width: 1.15em; height: 1.15em; background: currentColor; flex: none;
	-webkit-mask: var(--theia-wa-icon) center / contain no-repeat; mask: var(--theia-wa-icon) center / contain no-repeat;
}
.wp-block-button.is-style-light .wp-block-button__link { background: transparent; color: #fff; box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .55); }
.wp-block-button.is-style-light .wp-block-button__link:hover { background: rgba(255, 255, 255, .1); }
.wp-block-button.is-style-outline .wp-block-button__link { border-width: 1.5px; color: var(--wp--preset--color--navy); }

/* ---------- Type helpers ---------- */
.theia-eyebrow {
	text-transform: uppercase; letter-spacing: .22em; font-size: .78rem !important; font-weight: 600;
	color: var(--wp--preset--color--brand-strong); font-family: var(--wp--preset--font-family--body);
}
.theia-hero .theia-eyebrow, .has-deep-background-color .theia-eyebrow, .has-navy-background-color .theia-eyebrow { color: #8cc4ff; }
.has-muted-color { color: var(--wp--preset--color--muted) !important; }

/* ---------- Surfaces & cards ---------- */
.wp-block-group.is-style-card {
	background: #fff; border: 1px solid var(--theia-border); border-radius: var(--theia-radius);
	box-shadow: var(--theia-shadow); padding: clamp(1.4rem, 3vw, 2.4rem);
}
.wp-block-group.is-style-card h3 { margin-top: .4rem; }
.theia-card-link { position: relative; height: 100%; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.theia-card-link:hover { transform: translateY(-4px); border-color: rgba(15, 111, 220, .35); box-shadow: var(--theia-shadow-lg); }
.theia-card-link h3 a { text-decoration: none; color: inherit; }
.theia-card-link h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } /* whole card clickable */
.theia-more { margin-top: auto !important; font-weight: 700; font-size: .95rem; color: var(--wp--preset--color--navy); }
.theia-more::after { content: "›"; margin-left: .6rem; font-size: 1.2em; }

/* Card header row: icon tile on the left, small label on the right */
.theia-card-top {
	display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: 0 0 .5rem !important; min-height: 3.4rem;
	text-transform: uppercase; letter-spacing: .2em; font-size: .72rem !important; font-weight: 600; color: var(--wp--preset--color--brand-strong);
}
.theia-card-top::before {
	content: ""; flex: none; width: 3.4rem; height: 3.4rem; border-radius: 1rem;
	border: 1px solid var(--theia-border); box-shadow: 0 6px 14px rgba(11, 36, 71, .06);
	background: var(--theia-icon) center / 1.6rem no-repeat, linear-gradient(160deg, #ffffff 0%, #dcebff 100%);
}
.theia-ico-eye { --theia-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b2447' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E"); }
.theia-ico-bolt { --theia-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b2447' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 3 14h9l-1 8 10-12h-9l1-8z'/%3E%3C/svg%3E"); }
.theia-ico-spark { --theia-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b2447' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 2.5c.6 4.8 2.7 6.9 7.5 7.5-4.8.6-6.9 2.7-7.5 7.5-.6-4.8-2.7-6.9-7.5-7.5 4.8-.6 6.9-2.7 7.5-7.5z'/%3E%3C/svg%3E"); }
.theia-ico-target { --theia-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b2447' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Ccircle cx='12' cy='12' r='1.5' fill='%230b2447'/%3E%3C/svg%3E"); }
.theia-ico-drop { --theia-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b2447' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 3s6.5 7 6.5 11.5a6.5 6.5 0 0 1-13 0C5.5 10 12 3 12 3z'/%3E%3C/svg%3E"); }
.theia-ico-shield { --theia-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b2447' stroke-width='2' stroke-linejoin='round'%3E%3Cpath d='M12 21.5s8-3.8 8-10V5l-8-3-8 3v6.5c0 6.2 8 10 8 10z'/%3E%3C/svg%3E"); }
.theia-ico-glasses { --theia-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b2447' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='6.5' cy='14' r='3.5'/%3E%3Ccircle cx='17.5' cy='14' r='3.5'/%3E%3Cpath d='M10 14c1.2-1 2.8-1 4 0M3 14 4.5 7M21 14l-1.5-7'/%3E%3C/svg%3E"); }
.theia-ico-child { --theia-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b2447' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8.5 14.5c1.9 2 5.1 2 7 0'/%3E%3Ccircle cx='9' cy='10' r='.8' fill='%230b2447'/%3E%3Ccircle cx='15' cy='10' r='.8' fill='%230b2447'/%3E%3C/svg%3E"); }
.theia-ico-lid { --theia-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b2447' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 13c4-5.5 14-5.5 18 0'/%3E%3Cpath d='M5 15.5l-1.5 2M9 17l-.7 2.4M15 17l.7 2.4M19 15.5l1.5 2'/%3E%3C/svg%3E"); }
.theia-ico-clip { --theia-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b2447' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='4' width='14' height='17' rx='2'/%3E%3Cpath d='M9 4V2.5h6V4M9 11h6M9 15h4'/%3E%3C/svg%3E"); }
.theia-ico-alert { --theia-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b2447' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 2 20h20L12 3z'/%3E%3Cpath d='M12 10v4M12 17h.01'/%3E%3C/svg%3E"); }
.theia-ico-lens { --theia-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230b2447' stroke-width='2'%3E%3Cellipse cx='12' cy='12' rx='9' ry='5'/%3E%3Cpath d='M3 12h18' stroke-dasharray='2 2'/%3E%3C/svg%3E"); }

/* ---------- Hero ---------- */
.theia-hero { position: relative; overflow: hidden; }
.theia-hero::after { /* soft light rings, decorative */
	content: ""; position: absolute; right: -14vw; top: -22vw; width: 60vw; height: 60vw; border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .08); box-shadow: 0 0 0 7vw rgba(255, 255, 255, .025), 0 0 0 14vw rgba(255, 255, 255, .02); pointer-events: none;
}
.theia-hero > * { position: relative; z-index: 1; }
.theia-hero h1, .theia-hero h2 { color: #fff; }
.theia-hero__photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: top; border-radius: var(--theia-radius); box-shadow: 0 30px 70px rgba(0, 0, 0, .35); }

/* ---------- Stats band (dark, like the reference) ---------- */
.theia-stats-band { border-radius: var(--theia-radius); overflow: hidden; background: linear-gradient(110deg, #061832 0%, #0b2d5b 60%, #0f4c9a 100%); box-shadow: var(--theia-shadow-lg); }
.theia-stats-band .wp-block-column { padding: 1.4rem 1rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .35rem; text-align: center; }
.theia-stats-band .wp-block-column + .wp-block-column { border-left: 1px solid rgba(255, 255, 255, .12); }
.theia-stats-band p { margin: 0 !important; color: #c9dcf3; font-size: .92rem; }
.theia-stats-band .theia-stat__num { font-weight: 700; font-size: clamp(1.6rem, 2.6vw, 2.3rem) !important; color: #fff; line-height: 1; }
.theia-stat__num { font-weight: 700; font-size: clamp(1.6rem, 3vw, 2.3rem) !important; color: var(--wp--preset--color--navy); line-height: 1.1; }
.theia-stars { color: var(--wp--preset--color--star); letter-spacing: .08em; }

/* Cap card grids on wide screens; they stay fluid below that. */
@media (min-width: 960px) {
	.wp-block-group.theia-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
	.wp-block-group.theia-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}

/* ---------- Lists ---------- */
.wp-block-list.is-style-checks { list-style: none; padding-left: 0; }
.wp-block-list.is-style-checks li { position: relative; padding-left: 1.9rem; margin-bottom: .55rem; }
.wp-block-list.is-style-checks li::before {
	content: ""; position: absolute; left: 0; top: .3em; width: 1.15rem; height: 1.15rem; border-radius: 50%;
	background: var(--wp--preset--color--brand-strong) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 70% no-repeat;
}
.theia-hero .wp-block-list.is-style-checks li::before { background-color: var(--wp--preset--color--clinical); }

/* ---------- Steps ---------- */
.theia-steps { counter-reset: step; }
.theia-step { counter-increment: step; }
.theia-step::before {
	content: "0" counter(step); display: block; margin-bottom: .2rem;
	font-family: var(--wp--preset--font-family--heading); font-weight: 600; font-size: 2.6rem; line-height: 1; color: var(--wp--preset--color--brand-strong);
}

/* ---------- FAQ (details block) ---------- */
.wp-block-details { border-bottom: 1px solid var(--theia-border) !important; }
.wp-block-details summary { cursor: pointer; list-style: none; font-weight: 600; color: var(--wp--preset--color--navy); padding-right: 2rem; position: relative; font-size: 1.05rem; }
.wp-block-details summary::-webkit-details-marker { display: none; }
.wp-block-details summary::after { content: "+"; position: absolute; right: .25rem; top: -.15rem; font-size: 1.5rem; color: var(--wp--preset--color--brand-strong); transition: transform .2s; }
.wp-block-details[open] summary::after { transform: rotate(45deg); }
.wp-block-details > :not(summary) { color: var(--wp--preset--color--muted); }

/* ---------- Media ---------- */
.theia-rounded img, img.theia-rounded { border-radius: var(--theia-radius); }
.theia-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: top; }
.theia-gallery .wp-block-image { margin: 0; }
.theia-gallery img { width: 100%; height: 100%; object-fit: cover; border-radius: 1.5rem; }
@media (min-width: 782px) {
	.wp-block-group.theia-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; grid-auto-rows: 15rem; }
	.theia-gallery > .wp-block-image:first-child { grid-row: span 2; }
}
@media (max-width: 781px) { .theia-gallery img { aspect-ratio: 4 / 3; } }
.theia-map iframe { width: 100%; min-height: 360px; border: 0; border-radius: var(--theia-radius); display: block; }

/* ---------- Footer ---------- */
.theia-footer a { color: #c9dcf3; text-decoration: none; }
.theia-footer a:hover { color: #fff; text-decoration: underline; }
.theia-footer h2, .theia-footer h3 { color: #fff; }
.theia-footer .wp-block-list { list-style: none; padding-left: 0; }
.theia-footer .wp-block-list li { margin-bottom: .4rem; }

/* Mobile sticky booking bar */
.theia-mobile-cta { display: none; }
@media (max-width: 781px) {
	.theia-mobile-cta {
		display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; gap: .5rem;
		padding: .6rem .75rem calc(.6rem + env(safe-area-inset-bottom, 0px)); background: #fff; box-shadow: 0 -6px 20px rgba(11, 36, 71, .12);
	}
	.theia-mobile-cta a { flex: 1; text-align: center; border-radius: 999px; padding: .8rem; font-weight: 700; text-decoration: none; }
	.theia-mobile-cta .wa { background: #1da851; color: #fff; }
	.theia-mobile-cta .dir { background: var(--wp--preset--color--mist); color: var(--wp--preset--color--navy); }
	body { padding-bottom: 76px; }
	.theia-hide-mobile { display: none !important; }
	.wp-block-columns.theia-stats-band { flex-wrap: wrap !important; gap: 0 !important; }
	.wp-block-columns.theia-stats-band > .wp-block-column { flex-basis: 33.333% !important; padding: 1.1rem .4rem; }
	.theia-stats-band .theia-stat__num { font-size: 1.35rem !important; }
	.theia-stats-band p { font-size: .78rem; }
	.theia-stats-band .wp-block-column + .wp-block-column { border-left: 0; }
	.theia-hero__photo { max-width: 420px; margin-inline: auto; }
}
