/* Personal editorial redesign. Only the homepage loads this stylesheet. */
.hero { position: relative; max-width: 1440px; min-height: 730px; padding: 42px 4.5% 34px; display: block; overflow: hidden; }
.hero-copy { position: relative; z-index: 2; width: 58%; }
.hero h1 { font-size: clamp(58px, 6.5vw, 94px); letter-spacing: -3px; line-height: .99; }
.hero h1 em { white-space: nowrap; font-size: .86em; }
.hero .lead { max-width: 440px; margin-top: 23px; font-size: 18px; line-height: 1.5; }
.hero-actions { margin-top: 24px; }
/* Fixed source crop: remove only 400px of empty ceiling from the 1025×1534
   source. Never use cover: it cuts the subject at wide/short breakpoints. */
.hero-portrait { position: absolute; top: 20px; right: 0; width: min(55%,640px); aspect-ratio: 1025 / 1134; margin: 0; overflow: hidden; }
.hero-portrait img { position: absolute; bottom: 0; left: 0; width: 100%; height: auto; max-width: none; display: block; mask-image: linear-gradient(to right,transparent,#000 25%); }
.hero-duration { display: flex; gap: 25px; align-items: center; margin-top: 30px; }
.hero-duration p { margin: 0; }
.hero-duration p:first-child { display: flex; flex-direction: column; }
.hero-duration strong { font: 700 clamp(100px,11vw,154px)/.8 var(--sans); letter-spacing: -8px; }
.hero-duration span { font: 700 42px/.98 var(--sans); letter-spacing: -2px; }
.hero-duration p:last-child { border-left: 1px solid var(--line); padding-left: 25px; color: var(--blue); font: 600 clamp(24px,3vw,39px)/1.08 var(--serif); letter-spacing: -1px; }
.time-banner { display: grid; grid-template-columns: 1.1fr 1fr; gap: 50px; align-items: center; padding: 42px max(5%,calc((100vw - 1280px)/2)); background: var(--aqua); }
.time-banner h2 { font-size: clamp(32px,3.5vw,50px); line-height: 1.05; letter-spacing: -1.5px; }
.time-banner > p { margin: 0; padding-left: 35px; border-left: 1px solid #9fc9d9; color: var(--ink-soft); line-height: 1.7; }
.offer { max-width: 1320px; padding: 50px 40px 35px; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; border: 0; }
.offer-heading { display: block; margin-bottom: 28px; text-align: center; }
.offer-heading .eyebrow { max-width: none; margin-inline: auto; }
.offer-heading h2 { max-width: none; font-size: 36px; line-height: 1.1; letter-spacing: -1px; }
.offer-heading h2 br { display: none; }
.offer-heading > p:last-child { max-width: none; margin-top: 12px; }
.offer article, .offer article:nth-of-type(2), .offer article:nth-of-type(3) { background: none; padding: 18px 30px; min-height: 0; border-right: 1px solid var(--line); text-align: center; }
.offer article:first-of-type { padding-left: 30px; }
.offer article > p { margin-inline: auto; }
.offer article:last-of-type { border-right: 0; }
.offer article:hover { transform: none; }
.offer h3 { margin-top: 16px; font-size: 30px; }
.offer .number { color: var(--blue); }
.offer-icon { display: block; width: 62px; height: 62px; margin-inline: auto; padding: 13px; border-radius: 50%; background: var(--aqua); }
.offer .offer-pair { grid-column: 1/-1; max-width: none; margin: 24px 0 0; color: var(--ink-soft); text-align: center; }
.location { position: relative; max-width: none; min-height: 510px; padding: 60px max(5%,calc((100vw - 1280px)/2)); display: flex; align-items: center; isolation: isolate; background: #123643; overflow: hidden; }
.location .pool-photo { position: absolute; inset: 0; z-index: -2; margin: 0; min-height: 0; }
.location .pool-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 58%; min-height: 0; }
.location-card { padding: 30px; background: rgba(9,38,51,.85); max-width: 580px; color: white; }
.location h2 { font-size: clamp(40px,4.6vw,66px); line-height: 1.02; }
.location h2 em, .location .eyebrow { color: #9de6ff; }
.location-card > p { color: #fff; }
.location .button { background: var(--brand); color: var(--ink); }
.pool-details { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; margin: 24px 0; padding: 20px 0; border-top: 1px solid #66838e; border-bottom: 1px solid #66838e; }
.pool-details h3 { font: 700 17px/1.4 var(--sans); color: #fff; }
.pool-details p { margin: 8px 0 0; color: #fff; font-size: 15px; line-height: 1.6; }
.intro { padding-top: 75px; padding-bottom: 45px; }
.reasons { padding-bottom: 60px; }
.about { padding-top: 65px; padding-bottom: 65px; }
.about-photo img { display: block; }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }
.location :focus-visible { outline-color: white; }
@media (min-width: 761px) and (max-width: 1000px) {
 .hero { min-height: 670px; }.hero h1 {font-size: 64px}.hero .lead {max-width: 360px}.hero-duration p:last-child{font-size:25px}.hero-portrait{top:55px}
}
@media (max-width: 760px) {
 .hero { padding: 32px 20px 0; min-height: 0; overflow: hidden; }
 .hero-copy { width: 100%; padding: 0; }
 .hero .eyebrow { font-size: 10px; letter-spacing: 1.2px; }
 .hero h1 { font-size: clamp(45px,10vw,70px); letter-spacing: -1.8px; }
 .hero h1 em { font-size: .85em; white-space: normal; }
 .hero .lead { font-size: 16px; margin-top: 20px; max-width: 510px; }
 .hero-duration { margin-top: 26px; gap: 20px; }
 .hero-duration strong { font-size: 110px; letter-spacing: -6px; }
 .hero-duration span { font-size: 32px; }
 .hero-duration p:last-child { font-size: clamp(22px,5.6vw,30px); padding-left: 20px; }
 .hero-portrait { position: relative; inset: auto; width: calc(100% + 40px); max-width: 640px; height: auto; aspect-ratio: 1025/1134; margin: 22px -20px 0; }
 .hero-portrait img { height: auto; mask-image: none; }
 .time-banner { display: block; padding: 32px 20px; }
 .time-banner h2 { font-size: 33px; letter-spacing: -1px; }
 .time-banner > p { padding: 0; border: 0; margin-top: 22px; }
 .offer { display: block; padding: 38px 20px; }
 .offer-heading h2 { font-size: 31px; }
 .offer article, .offer article:first-of-type, .offer article:last-of-type { padding: 22px 0; border: 0; border-bottom: 1px solid var(--line); margin: 0; }
 .offer h3 { margin-top: 10px; }
 .location { padding: 240px 20px 30px; min-height: 610px; display: block; }
 .location-card { padding: 23px; max-width: none; }
 .pool-details { grid-template-columns: 1fr; gap: 18px; }
 .location h2 { font-size: clamp(35px,8vw,48px); letter-spacing: -1.2px; }
 .location .pool-photo { margin: 0; }
 .intro,.about { padding: 48px 20px; }
 .reasons {padding-bottom:40px}
 .mobile-cta { bottom: max(10px,env(safe-area-inset-bottom)); }
}
