:root{--ink:#073d51;--green:#176d5a;--sage:#6e9f8e;--pale:#eaf3ec;--cream:#fffefa;--line:#c7ddd2}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--cream);color:var(--ink);font-family:"Nunito Sans",sans-serif;font-weight:300;font-size:17px;line-height:1.45}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font:inherit}h1,h2,h3,p{margin:0}h1,h2{font-family:Lustria,Georgia,serif;font-weight:400}h2{font-size:34px;line-height:1.2}p+p{margin-top:13px}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}.wrap{width:min(1200px,calc(100% - 72px));margin-inline:auto}.header{display:flex;align-items:center;gap:27px;min-height:112px}.brand{width:300px;flex-shrink:0;display:block;text-align:center}.brand img{width:100%;height:auto;mix-blend-mode:multiply}.brand span{display:block;font-family:Caveat,cursive;color:var(--green);font-size:19px;margin-top:1px}.header nav{display:flex;align-items:center;gap:23px;margin-left:auto;font-size:13px;font-weight:500;white-space:nowrap}.header nav a{padding:12px 0;position:relative}.header nav a[aria-current]:after{content:"";position:absolute;height:2px;background:var(--green);bottom:5px;left:0;right:0}.header nav span{margin-left:5px}.button{display:inline-flex;align-items:center;justify-content:center;gap:17px;padding:12px 28px;border:1px solid transparent;border-radius:40px;background:var(--sage);color:#fff;font-size:16px;font-weight:700;line-height:1.3;transition:background .2s,transform .2s;white-space:nowrap}.button:hover{background:#508774;transform:translateY(-2px)}.button span{font-size:23px;line-height:1}.header-contact{font-size:14px;padding:13px 22px}.button-outline{background:transparent;border-color:var(--green);color:var(--ink);min-width:170px}.button-outline:hover,.button-soft:hover{background:#d4e6dc}.button-soft{background:#dcebe1;color:var(--green)}.hero{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;min-height:515px;padding:20px 0 30px;isolation:isolate}.hero:before{content:"";position:absolute;z-index:-1;width:480px;height:490px;left:-360px;top:15px;border-radius:36% 61% 62% 39%;background:linear-gradient(110deg,#e6f0e8,#eef5ee)}h1{font-size:clamp(36px,3.8vw,53px);line-height:1.13;letter-spacing:-1.2px;margin-bottom:22px}h1 em{font-family:Caveat,cursive;font-size:1.27em;font-weight:400;color:var(--green);line-height:.9}.hero-copy{padding:15px 18px 10px 0}.hero-copy p{max-width:490px;font-size:17px}.actions{display:flex;gap:14px;margin-top:22px}.hero-visual{height:490px;position:relative;margin-left:2px}.hero-portrait{width:100%;height:100%;object-fit:cover;object-position:50% 36%;border-radius:57% 43% 35% 48% / 54% 31% 46% 40%}.hero-note{position:absolute;right:-16px;top:115px;width:165px;min-height:285px;background:#e7f0e7;border-radius:63% 42% 40% 58% / 41% 30% 62% 58%;text-align:center;padding:24px 15px 12px;transform:rotate(5deg);color:var(--green)}.hero-note p{font-family:Caveat,cursive;font-size:33px;line-height:.95}.note-rays{display:block;font-size:20px;margin-bottom:10px}.sprig{color:var(--green);width:70px;height:100px}.hero-note .sprig{height:63px;width:55px;margin:4px auto -30px;transform:rotate(20deg)}.hero-leaf{position:absolute;bottom:8px;left:-33px;transform:rotate(-18deg)}.offers{padding:22px 24px 24px;background:linear-gradient(120deg,#edf5ee,#e9f2eb);border-radius:23px;margin-top:12px;scroll-margin-top:20px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.section-heading p{font-family:Caveat,cursive;color:var(--green);font-size:25px}.offer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;max-width:920px;margin:auto}.offer-card{display:block;position:relative;border-radius:23px;transition:transform .2s,box-shadow .2s}.offer-card img{width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:23px}.offer-card:hover{transform:translateY(-4px);box-shadow:0 8px 20px #1b634c16}.offer-card>span{position:absolute;right:18px;top:14px;font-size:22px;color:var(--green);opacity:0;transition:opacity .2s}.offer-card:hover>span,.offer-card:focus-visible>span{opacity:1}.about{display:grid;grid-template-columns:1.05fr 1.1fr .95fr;align-items:center;gap:27px;margin-top:28px}.about-photo{height:320px;position:relative}.about-photo>img{height:100%;width:100%;object-fit:cover;object-position:35% 50%;border-radius:58% 43% 59% 40% / 45% 42% 61% 56%}.about-photo>.sprig{position:absolute;right:-8px;bottom:-4px;transform:rotate(17deg)}.about-copy h2{margin-bottom:18px}.about-copy p{font-size:16px;margin-bottom:18px}.qualities{align-self:stretch;background:linear-gradient(140deg,#eaf3ec,#edf4ed);border-radius:48% 58% 23% 27% / 39% 47% 22% 30%;padding:25px 21px 30px;text-align:center}.qualities>.sprig{height:66px;width:54px;transform:rotate(25deg)}.qualities h2{font-family:Caveat,cursive;color:var(--green);font-size:32px;margin:0 0 15px}.qualities ul{margin:0;padding:0;list-style:none;text-align:left;font-size:14px}.qualities li{position:relative;padding-left:27px;margin:8px 0}.qualities li:before{content:"✓";position:absolute;left:0;color:var(--green);font-weight:700;font-size:19px}.audience{padding:24px 0 30px}.center-title{text-align:center;font-size:30px;margin-bottom:33px;position:relative}.center-title:after{content:"";position:absolute;left:calc(50% - 23px);bottom:-10px;background:var(--green);height:2px;width:46px}.audience-grid{display:grid;grid-template-columns:repeat(4,1fr)}.audience-grid article{text-align:center;padding:0 18px;border-right:1px solid var(--line)}.audience-grid article:last-child{border:0}.audience-grid svg{height:59px;width:59px;color:var(--green);margin-bottom:5px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.audience-grid h3{font-size:18px;font-weight:700;margin-bottom:5px}.audience-grid p{font-size:16px;max-width:245px;margin:auto}.testimonials{background:linear-gradient(110deg,#edf5ee,#e8f2eb)}.testimonials-inner{display:grid;grid-template-columns:1fr 310px;gap:24px;align-items:stretch}.quotes{padding:22px 0}.quotes h2{font-family:"Nunito Sans",sans-serif;font-weight:600;font-size:23px;margin-bottom:24px}.quote-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}blockquote{margin:0;background:#fffefa;border-radius:22px;padding:23px 22px 20px 45px;position:relative;font-size:15px;font-style:italic}blockquote>span{position:absolute;left:14px;top:5px;font-family:Georgia,serif;color:#488b76;font-size:59px}blockquote footer{margin-top:12px;color:var(--green);font-style:normal;font-size:13px}.text-link{display:inline-block;margin-top:14px;color:var(--green);font-size:14px;border-bottom:1px solid #accbbc}.contact-photo{position:relative;min-height:290px;border-radius:48% 0 0 45%;overflow:hidden}.contact-photo img{height:100%;width:100%;object-fit:cover}.contact-photo .button{position:absolute;bottom:25px;left:25px;border-color:white}.footer{display:flex;gap:24px;align-items:center;justify-content:space-between;padding-block:25px;font-size:13px}.footer-brand{font-family:Caveat,cursive;font-size:25px;color:var(--green)}.footer-brand span{display:block;font-family:"Nunito Sans",sans-serif;font-size:11px}.menu-toggle{display:none}a:focus-visible,button:focus-visible{outline:3px solid var(--green);outline-offset:5px}.skip-link{position:fixed;top:-100px;left:15px;z-index:30;background:white;padding:12px}.skip-link:focus{top:10px}
h1 em{margin-right:.12em}.hero-portrait{object-position:50% 28%}
@media(min-width:1400px){.hero{min-height:560px}.hero-visual{height:530px}.header{min-height:125px}}
@media(max-width:1150px){.wrap{width:calc(100% - 48px)}.header{gap:20px}.brand{width:240px}.header nav{gap:17px;font-size:12px}.header-contact{padding:12px 17px}.hero-note{right:-8px;width:145px}.hero-note p{font-size:30px}.about{gap:20px}.qualities{padding-inline:17px}.qualities ul{font-size:13px}}
@media(max-width:950px){.header{min-height:100px;flex-wrap:wrap;position:relative}.header-contact{margin-left:auto}.menu-toggle{display:block;background:none;border:1px solid var(--line);color:var(--green);border-radius:8px;padding:5px 12px;order:3}.header nav{display:none;position:absolute;right:0;top:90px;z-index:20;background:var(--cream);padding:18px 25px;border:1px solid var(--line);border-radius:15px;box-shadow:0 10px 30px #073d5112;min-width:220px;font-size:16px}.header nav.is-open{display:flex;flex-direction:column;align-items:stretch;gap:0}.hero{min-height:470px}.hero-visual{height:430px}.hero-copy p{font-size:15px}h1{font-size:35px}.hero-note{top:135px;width:115px;min-height:220px;padding:20px 6px}.hero-note p{font-size:25px}.hero-note .sprig{height:48px}.actions{gap:8px}.actions .button{font-size:14px;padding:12px 18px;min-width:0}.section-heading p{font-size:22px}.offer-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:650px}.about{grid-template-columns:1fr 1.2fr}.qualities{grid-column:1/-1;border-radius:30px;display:flex;gap:22px;align-items:center;padding:20px}.qualities h2{margin:0;white-space:nowrap}.qualities ul{font-size:14px;columns:2}.qualities>.sprig{flex-shrink:0}.testimonials-inner{grid-template-columns:1fr 240px}.quote-grid{grid-template-columns:1fr}.contact-photo .button{left:12px;padding-inline:17px}.footer{flex-wrap:wrap}.audience-grid h3{font-size:16px}}
@media(max-width:650px){.wrap{width:calc(100% - 32px)}.header{min-height:94px;gap:12px}.brand{width:210px}.brand span{font-size:16px}.header-contact{display:none}.menu-toggle{margin-left:auto}.hero{grid-template-columns:1fr;padding-top:15px;gap:24px}.hero-copy{padding:0}.hero-copy p{font-size:16px;max-width:none}h1{font-size:clamp(33px,8.5vw,48px);letter-spacing:-.8px}.actions{margin-top:20px;gap:12px}.actions .button{font-size:15px;padding:12px 19px}.hero-visual{height:370px;margin:0 10px 0 0}.hero-portrait{object-position:50% 34%}.hero-note{right:-12px;top:108px;width:125px;min-height:225px}.hero-note p{font-size:27px}.hero-leaf{left:-5px;bottom:-7px}.offers{padding:20px 13px;margin-top:10px;border-radius:20px}.section-heading{display:block;padding:0 5px}.section-heading h2{font-size:30px}.section-heading p{font-size:24px;line-height:1.15;margin-top:8px}.offer-grid{grid-template-columns:1fr;max-width:310px;gap:14px}.offer-card,.offer-card img{border-radius:16px}.about{grid-template-columns:1fr;gap:22px;margin-top:30px}.about-photo{height:300px;margin-inline:10px}.about-copy h2{font-size:30px}.about-copy p{font-size:17px}.qualities{display:block;grid-column:auto;padding:18px 25px 25px;border-radius:42% 42% 25px 25px}.qualities h2{font-size:34px}.qualities ul{columns:1;max-width:290px;margin:15px auto 0;font-size:15px}.audience{padding-top:30px}.audience-grid{grid-template-columns:1fr 1fr;row-gap:26px}.audience-grid article{padding:0 10px}.audience-grid article:nth-child(2){border:0}.audience-grid p{font-size:15px}.audience-grid h3{font-size:16px}.testimonials-inner{grid-template-columns:1fr;gap:0}.quotes h2{font-size:21px}.quote-grid{gap:13px}.contact-photo{height:240px;min-height:0;border-radius:45% 45% 0 0}.contact-photo .button{left:50%;transform:translateX(-50%)}.footer{gap:15px;padding-block:22px}.footer-brand{width:100%}.footer p{width:100%}}
@media(max-width:400px){.hero-visual{height:325px}.brand{width:195px}.actions{gap:8px}.actions .button{padding:12px 14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

/* Four consistent service tiles: vector icons and accessible, live text. */
.offers .offer-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-width:none;gap:16px}
.offers .service-card{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0;padding:27px 15px 22px;background:#fffefa;border:1px solid #dfeae2;border-radius:19px;color:var(--ink)}
.offers .service-card .service-icon{display:block;width:86px;height:86px;flex:0 0 86px;aspect-ratio:1;object-fit:contain;border-radius:0;margin:0 0 16px;color:var(--green)}
.offers .service-card h3{font-size:21px;font-weight:700;line-height:1.25;margin:0 0 9px}
.offers .service-card p{font-size:16px;line-height:1.4;margin:0;color:#35586a}
.offers .service-card>.service-arrow{position:static;display:block;opacity:1;font-size:23px;line-height:1;color:var(--green);margin-top:17px;transition:transform .2s}
.offers .service-card:hover{border-color:#9dc2af;box-shadow:0 8px 20px #1b634c12}
.offers .service-card:hover>.service-arrow{transform:translateX(4px)}
@media(max-width:950px){.offers .offer-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:680px}.offers .service-card{padding:25px 15px 20px}}
@media(max-width:500px){.offers .offer-grid{grid-template-columns:1fr;max-width:330px}.offers .service-card{padding:25px 20px 20px}.offers .service-card .service-icon{width:78px;height:78px;flex-basis:78px;margin-bottom:12px}}

/* Rotating experiences with a stable reading area. */
.quote-grid{display:block;min-height:184px}
.quote-grid blockquote{min-height:184px;display:flex;flex-direction:column;justify-content:center;font-size:17px;padding:25px 30px 25px 53px}
.quote-grid blockquote[hidden]{display:none}
.quote-grid blockquote footer{margin-top:16px}
.quote-controls{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:16px}
.quote-dot{width:10px;height:10px;border:1px solid var(--green);border-radius:50%;background:transparent;padding:0;cursor:pointer;position:relative}
.quote-dot:before{content:"";position:absolute;inset:-7px}
.quote-dot[aria-pressed="true"]{background:var(--green)}
.quote-play{margin-left:10px;padding:5px 11px;border:1px solid #abcbbb;border-radius:20px;background:transparent;color:var(--green);font:inherit;font-size:13px;cursor:pointer}
.quote-controls button:focus-visible{outline:2px solid var(--green);outline-offset:5px}
@media(max-width:650px){.quote-grid,.quote-grid blockquote{min-height:235px}.quote-grid blockquote{padding:25px 23px 25px 43px;font-size:16px}}

/* Keep long experiences readable without moving the surrounding page. */
.quote-grid blockquote{height:280px;min-height:280px;overflow-y:auto;display:block;scrollbar-width:thin;scrollbar-color:#aacbbb transparent}
.quote-grid blockquote p+p{margin-top:13px}
.quote-grid blockquote cite{font-style:normal}
.quote-grid blockquote:focus-visible{outline:2px solid var(--green);outline-offset:3px}
@media(max-width:650px){.quote-grid blockquote{height:340px;min-height:340px}}

/* Give the landscape session photo enough room on smaller screens. */
@media(max-width:950px){.hero{grid-template-columns:1fr;gap:24px}.hero-visual{width:100%;height:auto;aspect-ratio:3 / 2;margin:0}.hero-portrait{object-position:center}.hero-copy p{max-width:650px}}

/* Shift the photo inside its frame to show more of Heidi on the left. */
.hero-portrait{object-position:left center}

/* Round the photo without clipping the contact button. */
.contact-photo{overflow:visible}
.contact-photo>img{border-radius:inherit}

/* Position the swapped photos with Heidi in view. */
.about-photo>img{object-position:35% 25%}
.contact-photo>img{object-position:35% center}

@media(max-width:950px){.contact-photo>img{object-position:40% center}}

/* A less cropped contact frame keeps both people visible. */
.contact-photo{height:300px;min-height:0;align-self:center}
@media(max-width:950px){.contact-photo{height:260px}}
@media(max-width:650px){.contact-photo{height:240px}}
