:root{--ocean:#0c4a6e;--lagoon:#00a4c4;--coral:#ef806f;--sand:#f4e6d7;--leaf:#78b77a;--ink:#173c4b;--pearl:#fcfbf7;--gold:#b98942}
body{background:var(--pearl);color:var(--ink)}
header{background:#fff;border-bottom-color:#cce3e8}
header .brand{color:var(--ocean)}
.button{background:var(--ocean)}
.eyebrow,.status{color:var(--ocean)}
.audience-hero{background:linear-gradient(135deg,#dff3f6,#f4e6d7)}
.audience-hero.community{background:linear-gradient(135deg,#e1f1e5,#dff3f6)}
.water-feature,footer{background:var(--ocean)}
.soft-band{background:#e6f3f1}
.panel{background:#e6f3f1}
.family{border-top:2px solid #d9e9e9;padding-top:35px}
.family-title{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.family-title h2{margin:0}
.family-marker{width:34px;height:34px;flex:none}
.service{border-radius:9px;border:1px solid #dce9e8;box-shadow:0 7px 20px #0c4a6e0b}
.service .detail-marker{width:28px;height:28px;margin-bottom:12px}
.service h3{color:var(--ocean)}
.service a{color:var(--ocean)}
.service.addon{background:#eff5f3}
.family-nav a{border-color:#b9d5d6}
.family-nav a:hover,.family-nav a:focus-visible{background:#daf1ed}
.family-marker::before,.detail-marker::before{content:"";display:block;width:100%;height:100%;background:currentColor;-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat}
.family-massages,.family-ori-tahiti{color:#c85f50}.family-rituals{color:#94652c}.family-yoga{color:#347a62}.family-movement{color:#087991}.family-swimming{color:var(--ocean)}
.family .service{color:var(--ink)}
.family .detail-marker{color:var(--ocean)}
.family-rituals .detail-marker{color:#94652c}.family-massages .detail-marker{color:#c85f50}.family-yoga .detail-marker{color:#347a62}.family-movement .detail-marker{color:#087991}.family-ori-tahiti .detail-marker{color:#c85f50}
@media(max-width:650px){.family-title{align-items:center}.family-marker{width:30px;height:30px}}
.water-feature img{object-fit:contain;object-position:center center;background:var(--ocean)}
.audience-section .service{position:relative;overflow:hidden}
.audience-section .service:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--lagoon)}
.audience-section .service:nth-child(2):before{background:var(--coral)}
.audience-section .service:nth-child(3):before{background:var(--leaf)}
.audience-hero img{border-radius:8px}
nav a:focus-visible,nav button:focus-visible,.button:focus-visible,.family-nav a:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
.event-card{display:grid;grid-template-columns:42% 1fr;background:#fff;box-shadow:0 14px 36px #0c4a6e14;border:1px solid #d7e6e7;border-radius:10px;overflow:hidden;margin:25px 0 40px}.event-photo{min-height:390px;position:relative;background:#d8eae8}.event-photo img{height:100%;width:100%;object-fit:cover;object-position:center}.event-photo .family-marker{position:absolute;bottom:20px;left:20px;width:65px;height:65px;border-radius:50%;padding:12px;background:#fff;color:#347a62}.event-copy{padding:clamp(26px,4vw,56px)}.event-copy h2{font:400 clamp(2rem,4vw,3.2rem)/1.1 Georgia;margin:15px 0;color:var(--ocean)}.event-copy p{line-height:1.6}.event-activities{font-weight:bold;color:var(--ocean)}.event-copy dl{display:flex;gap:36px;margin:25px 0}.event-copy dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;font-weight:bold}.event-copy dd{margin:4px 0 0}.event-copy .status-note{border-top:1px solid #d5e7e6;padding-top:16px;margin-top:20px}@media(max-width:760px){.event-card{grid-template-columns:1fr}.event-photo{height:260px;min-height:0}.event-copy dl{gap:20px}}
.language-link{display:inline-flex;align-items:center;justify-content:center;border:1px solid #9db7b5;border-radius:20px;min-width:40px;min-height:38px;padding:7px 9px;text-decoration:none;font-size:.85rem;color:var(--ocean)}
.language-link:focus-visible{outline:3px solid var(--coral);outline-offset:3px}
.breadcrumbs{font-size:.85rem;color:#526b72;margin:-24px 0 40px}.breadcrumbs a{text-decoration:underline;text-underline-offset:3px}
main>.family-marker{width:38px;height:38px;margin-top:28px;color:var(--ocean)}
main>.family-marker.family-massages,main>.family-marker.family-ori-tahiti{color:#c85f50}main>.family-marker.family-yoga{color:#347a62}main>.family-marker.family-rituals{color:#94652c}main>.family-marker.family-movement{color:#087991}
main>.family-marker::before{content:"";display:block;width:100%;height:100%;background:currentColor;-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat}
main>.lead{font-size:1.16rem;line-height:1.65;max-width:760px;margin-bottom:34px}
main>.grid .service{color:var(--ink)}
.family-related{border-top:1px solid #dce9e8;margin:58px 0 24px;padding-top:28px}.family-related h2{font:400 2rem Georgia;color:var(--ocean)}
.booking-note{line-height:1.6;max-width:740px}
@media(max-width:650px){nav .language-link{display:inline-flex!important;flex:none}.breadcrumbs{margin-top:0}.family-related h2{font-size:1.7rem}}
@media(max-width:650px){.family-related .family-nav{display:flex;overflow-x:auto;scroll-snap-type:x proximity}.family-related .family-nav a{scroll-snap-align:start;flex:none}}

/* Compact editorial marks aligned with the explanatory copy on all family pages. */
.family-intro{display:flex;align-items:flex-start;gap:16px;margin:18px 0 32px;max-width:850px}
.family-intro>.family-marker{display:block;box-sizing:border-box;width:34px;height:34px;min-width:34px;max-width:34px;max-height:34px;margin:8px 0 0;padding:0;flex:0 0 34px}
.family-intro h1{margin:0 0 12px}
.family-intro .lead{margin:0;font-size:1.16rem;line-height:1.65;max-width:760px}
.service-heading{display:flex;align-items:flex-start;gap:11px;margin-bottom:12px}
.service-heading .detail-marker{display:block;box-sizing:border-box;width:25px;height:25px;min-width:25px;max-width:25px;max-height:25px;flex:0 0 25px;margin:2px 0 0;padding:0}
.service-heading h3{margin:0;min-width:0}
@media(max-width:650px){.family-intro{gap:12px}.family-intro>.family-marker{width:30px;height:30px;min-width:30px;max-width:30px;max-height:30px;flex-basis:30px}}

.audience-section{max-width:1240px;padding:82px 4vw 92px}
.audience-section>.grid{gap:24px;align-items:stretch}
.audience-section .service{padding:34px;min-height:305px;display:flex;flex-direction:column}
.audience-section .service p{font-size:1.07rem;line-height:1.65}
.audience-section .service a{margin-top:auto;padding-top:12px}
.audience-section .service-heading{gap:14px;align-items:center}
.audience-section .detail-marker{display:block;width:32px;height:32px;min-width:32px;max-width:32px;max-height:32px;flex:0 0 32px;margin:0}
.audience-section .detail-marker::before{content:"";display:block;width:100%;height:100%;background:currentColor;-webkit-mask:var(--icon) center/contain no-repeat;mask:var(--icon) center/contain no-repeat}
.water-feature img{object-fit:cover;object-position:center 53%;background:var(--ocean)}
@media(max-width:800px){.audience-section{padding:64px 5vw}.audience-section>.grid{grid-template-columns:1fr}.audience-section .service{min-height:0}.water-feature img{object-position:center 48%}}
.family-title .family-marker{width:30px;height:30px;min-width:30px;max-width:30px;max-height:30px;flex:0 0 30px;padding:0;margin:0}
.family .service-heading .detail-marker{width:24px;height:24px;min-width:24px;max-width:24px;max-height:24px;flex:0 0 24px;padding:0;margin:2px 0 0}
.water-feature{position:relative;grid-template-columns:minmax(0,49%) minmax(0,51%)}
.water-feature img{height:440px;width:100%;object-fit:cover;object-position:center center}
.water-feature .copy{padding:38px 38px 38px 26px}
.water-image-note{position:absolute;left:12px;bottom:12px;color:#fff;background:#0c4a6ed9;padding:5px 8px;font-size:.75rem}
.services .family-swimming{position:relative}
.services .family-swimming .illustrative-note{position:absolute;top:10px;left:10px;background:#0c4a6ed9;color:#fff;padding:5px 8px;font-size:.75rem}
@media(max-width:800px){.water-feature{grid-template-columns:1fr}.water-feature img{height:320px}.water-feature .copy{padding:30px 26px}.water-image-note{top:284px;bottom:auto}}
.water-feature .water-visual{position:relative;min-width:0;height:440px}
.water-feature .water-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center center}
.water-feature .water-visual .water-image-note{top:auto;bottom:12px;left:12px}
@media(max-width:800px){.water-feature .water-visual{height:320px}}
