/* Forever Growing Therapy responsive site styles. */
:root{--ink:#234c54;--ink-strong:#193e46;--text:#364b4e;--muted:#536c70;--cream:#f9f8f3;--mist:#edf5f0;--line:#d8e5df;--coral:#a93c35;--coral-hover:#8d302c;--white:#fff;--max:1152px;font-family:"Segoe UI",Aptos,"Helvetica Neue",Arial,sans-serif;color:var(--text);background:var(--white);font-synthesis:none}
*,*::before,*::after{box-sizing:border-box} html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;min-width:280px;font-size:16px;line-height:1.64}a{color:inherit}button,input{font:inherit}img,svg{display:block;max-width:100%}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--ink-strong);line-height:1.16;letter-spacing:-.035em}h1{font-size:clamp(2.45rem,5vw,4.35rem);line-height:1.09}h2{font-size:clamp(1.85rem,3.15vw,2.55rem);margin-bottom:22px}h3{font-size:1.17rem}p{margin-bottom:18px}p:last-child{margin-bottom:0}.wrap{width:calc(100% - 48px);max-width:var(--max);margin-inline:auto}.narrow{max-width:850px}.section{padding:clamp(66px,8vw,108px) 0}.section.compact{padding-block:clamp(56px,6vw,83px)}.section-cream{background:var(--cream)}.section-mist{background:var(--mist)}.eyebrow{color:#31666c;letter-spacing:.085em;font-size:.73rem;font-weight:800;text-transform:uppercase;margin-bottom:18px}.small-muted,.quiet{color:var(--muted);font-size:.92rem;line-height:1.62}.section-lead{max-width:740px;color:var(--muted);font-size:1.07rem}.skip{position:absolute;top:-60px;left:12px;background:var(--ink);color:#fff;padding:12px;z-index:99}.skip:focus{top:10px}:focus-visible{outline:3px solid var(--coral);outline-offset:4px}a:focus-visible,button:focus-visible{border-radius:4px}.review-ribbon{background:#e9f1eb;color:var(--ink);font-size:.64rem;font-weight:800;letter-spacing:.13em;text-align:center;padding:8px 14px}
.header{position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid var(--line)}.head-inner{display:flex;align-items:center;gap:24px;min-height:91px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;flex:none}.brand img{width:68px;height:68px;object-fit:contain;flex:none}.brand-name{display:grid;gap:2px;color:var(--ink);line-height:1.09;white-space:nowrap}.brand-name strong{font-size:.96rem;letter-spacing:-.025em}.brand-name small{font-weight:800;font-size:.53rem;letter-spacing:.11em;color:#5a7371}.nav-desktop{display:flex;align-items:center;gap:clamp(14px,2vw,28px);margin-left:auto}.nav-desktop a{text-decoration:none;font-size:.88rem;font-weight:650;white-space:nowrap;position:relative}.nav-desktop a:hover,.nav-desktop a[aria-current="page"]{color:var(--coral)}.nav-desktop a[aria-current="page"]::after{content:"";position:absolute;bottom:-7px;left:0;right:0;background:var(--coral);height:2px;border-radius:4px}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:14px 23px;background:var(--coral);border:2px solid var(--coral);color:#fff;border-radius:12px;text-decoration:none;font-weight:750;font-size:.95rem;line-height:1.3;text-align:center;transition:background-color .14s,transform .14s}.button:hover{background:var(--coral-hover);border-color:var(--coral-hover)}.button:focus-visible{outline:3px solid var(--ink)}.button-small{font-size:.81rem;padding:12px 14px;border-radius:10px;white-space:nowrap}.text-link{color:var(--ink);text-decoration:none;font-weight:750;border-bottom:2px solid #94b9b0;padding-bottom:3px;white-space:normal}.text-link:hover{color:var(--coral);border-color:var(--coral)}.menu-toggle,.mobile-menu{display:none}.menu-toggle{align-items:center;gap:9px;cursor:pointer;background:#fff;border:1px solid #cbded6;border-radius:100px;padding:10px 15px;font-weight:750;color:var(--ink)}.hamburger{display:grid;gap:3px}.hamburger i{display:block;width:16px;height:2px;background:currentColor;border-radius:3px}
.home-hero{background:var(--cream)}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.93fr);align-items:center;gap:clamp(34px,5vw,78px);padding-block:clamp(67px,7vw,110px)}.hero-copy h1{max-width:660px;margin-bottom:21px}.hero-sub{font-size:1.15rem;line-height:1.55;max-width:530px}.hero-copy .quiet{margin-top:17px}.actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:29px}.photo-card{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(155deg,#eef5ec 0%,#e1efe5 60%,#d6e7df 100%);border:1px solid #d4e5db;min-height:415px;border-radius:24px;display:flex;flex-direction:column;justify-content:space-between}.photo-card>svg{position:absolute;left:0;bottom:20px;width:100%;height:75%;z-index:-1}.photo-top,.photo-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px;font-size:.65rem;font-weight:850;letter-spacing:.1em;color:var(--ink)}.photo-bottom{align-items:end;text-transform:none;letter-spacing:0;font-size:.85rem}.photo-bottom strong{font-size:.68rem;max-width:110px;line-height:1.35;text-align:right;text-transform:uppercase;letter-spacing:.04em}.intro-row{display:grid;grid-template-columns:.9fr 1fr;gap:clamp(30px,6vw,85px);align-items:center}.intro-row h2{max-width:420px;margin-bottom:0}.intro-row>p{max-width:570px;color:var(--muted);font-size:1.06rem}.heading-row{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:33px}.heading-row h2{margin-bottom:0}.service-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:50px;list-style:none;padding:0;margin:0}.service-list li{display:flex;align-items:center;gap:19px;border-top:1px solid #d1dfd6;min-width:0;padding:21px 4px}.service-list li:nth-last-child(-n + 1){border-bottom:1px solid #d1dfd6}.service-list li:nth-child(4){border-bottom:1px solid #d1dfd6}.service-count{color:#608b86;font-size:.82rem;font-weight:800}.service-list a{display:flex;justify-content:space-between;align-items:center;gap:12px;text-decoration:none;font-size:1.03rem;font-weight:720;line-height:1.35;color:var(--ink);flex:1}.service-list a span{font-size:1rem;color:var(--coral);font-weight:500}.service-list a:hover{text-decoration:underline;text-underline-offset:4px}.short-heading{max-width:750px}.short-heading>p:not(.eyebrow){color:var(--muted)}.three{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:47px}.three>div{border-top:1px solid var(--line);padding-top:25px}.place-icon{display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:var(--mist);color:var(--ink);width:43px;height:43px;font-size:1.3rem}.three h3{margin:15px 0 0}.three+.small-muted{margin-top:27px}.split-info{display:grid;grid-template-columns:1.1fr .85fr;align-items:center;gap:clamp(35px,7vw,115px)}.split-info h2{max-width:520px}.split-info>div:first-child>p:not(.eyebrow){max-width:530px}.simple-panel{padding:clamp(24px,4vw,39px);background:#fff;border:1px solid var(--line);border-radius:20px}.simple-panel p{color:var(--muted);font-size:.95rem}.simple-panel p strong{color:var(--ink)}.simple-panel p+p{border-top:1px solid #e2ebe5;padding-top:18px}.simple-panel .text-link{font-size:.88rem}.panel-label{font-size:.7rem!important;color:#31666c!important;font-weight:800;letter-spacing:.085em;margin-bottom:17px}.panel-border{border-color:#dae4dd}.end-cta{display:flex;align-items:center;justify-content:space-between;gap:40px;background:var(--ink);color:white;border-radius:25px;padding:clamp(30px,5vw,60px)}.end-cta h2,.end-cta .eyebrow{color:white}.end-cta>div>p:last-child{color:#e0eeee;max-width:670px}.end-cta .button{flex:none}.button-light{background:#fff;border-color:#fff;color:var(--ink)}.button-light:hover{background:var(--cream);border-color:var(--cream)}
.page-hero{background:var(--cream);padding:clamp(58px,8vw,112px) 0}.page-hero h1{max-width:900px}.page-lead{font-size:clamp(1.07rem,1.5vw,1.23rem);color:var(--muted);max-width:670px;line-height:1.6}.page-hero .text-link,.page-hero .button{margin-top:9px}.sub-intro{padding-bottom:32px;border-bottom:1px solid var(--line)}.sub-intro h2{font-size:1.7rem;margin-bottom:10px}.service-detail{display:grid;grid-template-columns:60px 1fr;gap:15px;padding:34px 0;border-bottom:1px solid var(--line);scroll-margin-top:130px}.service-number{font-weight:800;color:#588b87;padding-top:5px}.service-detail h2{font-size:clamp(1.33rem,2vw,1.7rem);margin-bottom:10px}.service-detail p{max-width:650px;color:var(--muted)}.callout{background:var(--mist);padding:33px;border-radius:18px;margin-top:50px}.callout h2{font-size:1.6rem}.endrow{display:flex;justify-content:space-between;align-items:center;gap:30px}.endrow p{max-width:650px}.endrow h2{margin-bottom:12px}.endrow .button{flex:none}.two-block{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,90px);align-items:center}.two-block h2{max-width:520px}.about-placeholder{min-height:320px}.about-graphic{height:200px;position:relative}.about-graphic span{position:absolute;border-radius:52% 48% 65% 35%;background:#a7c8b8;width:150px;height:190px;left:34%;top:10px;transform:rotate(-26deg)}.about-graphic span:nth-child(2){background:#c7dccc;left:12%;top:75px;transform:rotate(35deg);width:128px;height:155px}.about-graphic span:nth-child(3){background:#e8e1bf;left:64%;top:65px;transform:rotate(-8deg);width:90px;height:120px}.two-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:34px}.two-cards .simple-panel{height:100%}.role-pill{font-size:.82rem;font-weight:800;display:inline-block;color:var(--ink);background:var(--mist);padding:9px 12px;border-radius:9px;margin-bottom:15px}.step-list{padding:0;margin:35px 0 0;display:grid;gap:25px;grid-template-columns:repeat(3,1fr);list-style:none}.step-list li{border-top:1px solid var(--line);padding-top:25px}.step-list span{color:var(--coral);font-weight:800;font-size:.79rem;letter-spacing:.08em}.step-list h3{margin-top:17px}.step-list p{color:var(--muted)}.tick-list{margin:0;padding-left:23px;line-height:2}.faq details{border-top:1px solid var(--line);padding:18px 0}.faq details:last-child{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;font-weight:750;color:var(--ink);font-size:1.05rem;padding-right:15px}.faq details p{max-width:670px;color:var(--muted);padding-top:13px}.contact-grid{display:grid;grid-template-columns:1.17fr .83fr;gap:clamp(35px,7vw,110px)}.contact-grid .simple-panel{align-self:start;background:var(--mist)}.contact-grid p{max-width:650px}.email-standalone{margin-top:20px;font-weight:750;overflow-wrap:anywhere}.privacy-caution{background:var(--cream);border-left:4px solid var(--coral);padding:23px 26px;margin-top:40px}.privacy-caution p{margin-top:7px;color:var(--muted)}.short-steps{padding-left:24px}.short-steps li{margin-bottom:16px}.privacy-placeholder{padding:35px;background:var(--cream);border:1px solid var(--line);border-radius:18px}.privacy-placeholder p{max-width:700px}
.footer{background:var(--ink-strong);color:#f8fcfc;padding:62px 0 22px}.foot-main{display:grid;grid-template-columns:1.35fr .67fr 1.07fr;gap:clamp(25px,6vw,90px)}.foot-title{font-size:1.18rem;color:#fff}.footer h2{color:#fff;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:15px}.footer p{color:#dce9e9;font-size:.87rem;line-height:1.72}.footer a{color:#fff;font-size:.87rem;text-decoration:none;overflow-wrap:anywhere}.footer a:hover{text-decoration:underline;text-underline-offset:4px}.footer ul{padding:0;margin:0;list-style:none}.footer li{margin-bottom:9px}.foot-bottom{border-top:1px solid #426771;display:flex;justify-content:space-between;gap:30px;margin-top:54px;padding-top:20px;font-size:.75rem;color:#dce9e9}.footer :focus-visible{outline-color:#f8d3a1}
[hidden]{display:none!important}
@media(max-width:1170px){.head-inner{gap:16px}.brand img{width:59px;height:59px}.brand-name strong{font-size:.86rem}.nav-desktop{gap:13px}.nav-desktop a{font-size:.8rem}.button-small{font-size:.76rem;padding:12px 11px}}
@media(max-width:1040px){.nav-desktop,.header-action{display:none}.menu-toggle{display:flex;margin-left:auto}.head-inner{min-height:80px}.mobile-menu{display:block;background:#fff;border-top:1px solid var(--line);box-shadow:0 16px 26px #1d424620}.menu-items{display:grid;gap:0;padding:12px 0 20px}.menu-items a{padding:11px 16px;text-decoration:none;font-size:.97rem;font-weight:700;border-radius:8px}.menu-items a:hover,.menu-items a[aria-current="page"]{background:var(--mist)}.menu-items .menu-enquire{background:var(--coral);color:white;text-align:center;margin-top:8px}.menu-items .menu-enquire:hover,.menu-items .menu-enquire[aria-current="page"]{background:var(--coral-hover)}.hero-grid{gap:30px}}
@media(max-width:760px){.hero-grid{grid-template-columns:1fr;gap:33px}.photo-card{min-height:350px}.intro-row,.split-info,.two-block,.contact-grid{grid-template-columns:1fr;gap:34px}.intro-row h2{margin-bottom:0}.heading-row{align-items:start}.three{gap:18px}.foot-main{grid-template-columns:1fr 1fr}.foot-main>div:first-child{grid-column:1/-1}.endrow{align-items:start}.step-list{grid-template-columns:1fr;gap:14px}.step-list li{padding-top:18px}.step-list h3{margin:10px 0}.two-cards{gap:18px}}
@media(max-width:570px){html{scroll-padding-top:92px}.wrap{width:calc(100% - 38px)}body{font-size:16px}.review-ribbon{font-size:.54rem;letter-spacing:.07em;padding:7px 6px}.head-inner{min-height:74px}.brand img{width:56px;height:56px}.brand-name strong{font-size:.84rem}.brand-name small{font-size:.46rem}.menu-toggle{font-size:.8rem;padding:8px 11px;gap:7px}.hero-grid{padding-block:48px 58px;gap:29px}.hero-copy h1{font-size:clamp(2.35rem,10vw,3rem)}.hero-sub{font-size:1.05rem}.actions{display:flex;align-items:start;flex-direction:column;gap:18px}.actions .button{width:100%}.photo-card{min-height:295px;border-radius:17px}.photo-top,.photo-bottom{padding:15px;font-size:.53rem}.photo-bottom{font-size:.7rem}.photo-bottom strong{font-size:.56rem}.section{padding:65px 0}.section.compact{padding:50px 0}.section h2{font-size:clamp(1.8rem,7.7vw,2.2rem)}.service-list{grid-template-columns:1fr}.service-list li{padding:17px 4px;gap:15px}.service-list li:nth-child(4){border-bottom:0}.service-list li:last-child{border-bottom:1px solid #d1dfd6}.service-list a{font-size:.97rem}.heading-row{display:block}.heading-row .text-link{display:inline-block;margin-top:17px}.three{grid-template-columns:1fr;gap:13px;margin-top:26px}.three>div{display:flex;align-items:center;gap:16px;padding-top:15px}.three h3{margin:0}.end-cta{display:block;padding:32px 25px;border-radius:20px}.end-cta .button{width:100%;margin-top:23px}.page-hero{padding:55px 0}.page-hero h1{font-size:clamp(2.25rem,10vw,3rem)}.page-lead{font-size:1.02rem}.service-detail{grid-template-columns:40px 1fr;gap:8px;padding:27px 0}.service-detail h2{font-size:1.33rem}.two-cards{grid-template-columns:1fr}.endrow{display:block}.endrow .button{width:100%;margin-top:20px}.contact-grid .button{width:100%}.foot-main{grid-template-columns:1fr;gap:27px}.foot-main>div:first-child{grid-column:auto}.foot-bottom{display:block;margin-top:37px}.foot-bottom span{display:block;margin-top:5px}.privacy-placeholder{padding:25px}}

/* Coordinated service illustrations */
.service-visual{display:grid;place-items:center;flex:0 0 auto;width:56px;height:56px;padding:8px;border-radius:16px;background:rgba(255,255,255,.84);box-shadow:0 5px 13px rgba(30,89,95,.09)}
.service-visual img{display:block;width:100%;height:100%;object-fit:contain}
.service-list .service-visual{width:46px;height:46px;padding:7px;border-radius:14px}
.page-services .service-detail{grid-template-columns:60px 66px minmax(0,1fr);align-items:start}
@media(max-width:570px){.service-list .service-visual{width:38px;height:38px;padding:6px;border-radius:11px}.page-services .service-detail{grid-template-columns:40px 50px minmax(0,1fr);gap:10px}.page-services .service-detail .service-visual{width:48px;height:48px;padding:7px;border-radius:13px}}
@media(max-width:350px){.page-services .service-detail{grid-template-columns:36px 44px minmax(0,1fr);gap:7px}.page-services .service-detail .service-visual{width:42px;height:42px}}
@media(max-width:350px){.wrap{width:calc(100% - 32px)}.brand img{width:48px;height:48px}.brand-name strong{font-size:.76rem}.brand-name small{font-size:.42rem}.menu-toggle{padding:8px 8px}.hero-copy h1{font-size:2.26rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Books page */
.books-hero {overflow:hidden;background:linear-gradient(135deg,#eef8ff 0%,#f3edff 54%,#eaf8ef 100%);}
.books-hero-grid {display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.72fr);align-items:center;gap:clamp(36px,7vw,100px);}
.books-hero-grid>div:first-child {max-width:700px;}
.books-hero-art {position:relative;display:grid;place-items:center;min-height:310px;isolation:isolate;}
.books-art-icon {display:grid;place-items:center;width:190px;height:190px;padding:31px;border-radius:42px;background:rgba(255,255,255,.9);border:2px solid rgba(33,104,111,.13);box-shadow:0 25px 45px rgba(30,84,96,.13);transform:rotate(-3deg);}
.books-art-icon img {width:100%;height:100%;}
.books-art-orbit {position:absolute;z-index:-1;border-radius:50%;}
.books-art-orbit-one {width:270px;height:270px;background:#ffe4a6;right:1%;top:-12%;}
.books-art-orbit-two {width:180px;height:180px;background:#bfe9dc;left:2%;bottom:-8%;}
@media(max-width:760px) {
  .books-hero-grid {grid-template-columns:1fr;}
  .books-hero-grid {gap:20px;}
  .books-hero-art {min-height:240px;}
  .books-art-icon {width:155px;height:155px;padding:25px;border-radius:34px;}
  .books-art-orbit-one {width:205px;height:205px;right:9%;}
  .books-art-orbit-two {width:140px;height:140px;left:10%;}
}


/* Brighter, welcoming colour foundation. */
:root {
  --ink: #17626B;
  --ink-strong: #173F46;
  --text: #334C50;
  --muted: #526970;
  --cream: #FFF8EF;
  --mist: #EAF8F0;
  --line: #D5E7E0;
  --coral: #B33B51;
  --coral-hover: #942B40;
  --sky: #E8F5FD;
  --peach: #FFF0E7;
  --sunshine: #FFE4A7;
}
body { background: #FFFFFF; }
.review-ribbon { background: #E8F7F5; color: #155C66; border-bottom: 1px solid #CFE8E2; }
.header { background: #FFFEFC; border-bottom-color: #D7EAE6; }
.brand-name { color: var(--ink-strong); }
.brand-name small { color: #446D70; }
.nav-desktop a:hover, .nav-desktop a[aria-current="page"] { color: var(--coral); }
.button { box-shadow: 0 5px 13px rgba(179,59,81,.12); }
.button:hover { box-shadow: 0 6px 15px rgba(179,59,81,.2); }
.button-light { box-shadow: 0 5px 14px rgba(9,64,70,.12); }
.text-link { border-bottom-color: #85C9BE; }
.text-link:hover { color: var(--coral); }
.menu-toggle { background: #F1FBF8; border-color: #C3E4DE; }
.mobile-menu { background: #FFFEFC; }
.menu-items a:hover, .menu-items a[aria-current="page"] { background: #E6F7F3; }
.home-hero { background: linear-gradient(117deg, #FFF9EE 0%, #FFF2E9 50%, #ECF9F3 100%); }
.page-hero { background: linear-gradient(112deg, #FFF8EE 0%, #FFF2E9 53%, #EAF7F4 100%); }
.eyebrow, .panel-label { color: #196A71 !important; }
.photo-card { background: linear-gradient(145deg,#EAF8FF 0%, #E9F9EE 54%, #FFF2DB 100%); border-color: #C8E8DF; box-shadow: 0 18px 34px rgba(46,112,109,.08); }
.photo-top, .photo-bottom { color: #155C66; }
.section-cream { background: #FFF7EC; }
.section-mist { background: #EBF9F1; }
.service-list li { border-color: #D5E5DB; transition: background-color .15s ease; }
.service-list li:hover { background: rgba(255,255,255,.65); }
.service-count { color: #196A71; }
.service-list a span { color: var(--coral); }
.three>div { border-top-color: #CBE6DF; }
.place-icon { background: #E1F6EC; color: #17636C; }
.three>div:nth-child(2) .place-icon { background: #E1F3FE; color: #17636C; }
.three>div:nth-child(3) .place-icon { background: #FFF0C8; color: #7B510B; }
.simple-panel { background: #FFFFFF; border-color: #D3E9DF; box-shadow: 0 11px 24px rgba(25,87,84,.045); }
.simple-panel p+p { border-top-color: #E2F0E9; }
.end-cta { background: linear-gradient(116deg, #176670, #1E7D82); box-shadow: 0 18px 32px rgba(23,98,107,.11); }
.end-cta .eyebrow { color: #F8FFFE !important; }
.end-cta>div>p:last-child { color: #F0FFFA; }
.button-light { background: #FFFDF8; border-color: #FFFDF8; color: #173F46; }
.button-light:hover { background: #FFE9BA; border-color: #FFE9BA; color: #173F46; }
.callout { background: #EAF8F0; }
.role-pill { background: #DFF5EB; color: #155C66; }
.about-graphic span { background: #7FC8B2; }
.about-graphic span:nth-child(2) { background: #AEDCCE; }
.about-graphic span:nth-child(3) { background: #FFD88D; }
.contact-grid .simple-panel { background: #ECF9F3; }
.privacy-caution { background: #FFF5E5; border-left-color: var(--coral); }
.privacy-placeholder { background: #FFF9EE; }
.footer { background: #15515A; }
.footer p, .foot-bottom { color: #E5F5F1; }
.foot-bottom { border-top-color: #3F7C82; }
@media (prefers-reduced-motion: reduce) {
  .service-list li { transition: none; }
}


/* Colourful and playful presentation layer. */
:root {
  --ink: #176F78;
  --ink-strong: #193F4A;
  --text: #344C56;
  --muted: #506773;
  --cream: #FFF8EF;
  --mist: #E8F8ED;
  --line: #CFE8E4;
  --coral: #B83455;
  --coral-hover: #942944;
  --sky: #E3F3FF;
  --peach: #FFE8DA;
  --sunshine: #FFD779;
  --lavender: #F0E8FF;
  --mint: #D9F4E5;
  --pink: #FCE6ED;
}
/* Professional brand anchor with a quietly multicolour upper edge. */
.review-ribbon { background: linear-gradient(95deg,#DAF5EB 0%,#F8EAFE 34%,#FFF1D1 67%,#FFE7E9 100%); color:#19545F; border-bottom-color:#E5E8E7; }
.header {background:#FFFEFC;box-shadow:0 3px 14px rgba(34,94,106,.035);}
.header::before {content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,#61C9BA 0 23%,#FFCA70 23% 45%,#F59A92 45% 68%,#AB96E2 68% 84%,#80C9F2 84%);pointer-events:none;}
.brand-name small {color:#356873;}
.nav-desktop a[aria-current="page"]::after {height:3px;background:#B83455;}
.menu-toggle {background:#E9F8F3;border-color:#BDE5D9;}
.menu-items a:hover,.menu-items a[aria-current="page"] {background:#E7F5FF;}
.button {border-radius:15px;box-shadow:0 7px 18px rgba(184,52,85,.16);transition:background-color .15s ease,box-shadow .15s ease,transform .15s ease;}
.button:hover {transform:translateY(-2px);box-shadow:0 10px 22px rgba(184,52,85,.22);}
.button-light {box-shadow:0 7px 16px rgba(10,60,72,.1);}
.button-light:hover {background:#FFE2A7;border-color:#FFE2A7;box-shadow:0 10px 20px rgba(10,60,72,.13);}
.text-link {border-bottom-color:#50BAB1;}
:focus-visible {outline-color:#8D347A;outline-width:3px;outline-offset:4px;}
/* Joyful but readable: large white-space areas with pastel colour pools. */
.home-hero {background:
  radial-gradient(circle at 7% 16%,rgba(255,214,115,.29) 0 12%,transparent 12.4%),
  radial-gradient(circle at 90% 82%,rgba(139,213,248,.24) 0 15%,transparent 15.4%),
  linear-gradient(116deg,#FFF7E9 0%,#FFF1EC 46%,#E9F9EE 100%);}
.hero-copy .eyebrow {display:inline-flex;align-items:center;border-radius:100px;background:#DDF4EE;color:#175A66 !important;padding:9px 14px;letter-spacing:.07em;margin-bottom:22px;}
.hero-highlight {background:linear-gradient(transparent 73%,#FFDA82 73% 92%,transparent 92%);box-decoration-break:clone;-webkit-box-decoration-break:clone;padding-inline:.035em;}
.photo-card {background:linear-gradient(139deg,#DDF3FF 0%,#E4FAED 53%,#FFF0CA 100%);border:2px solid #B9E9E0;border-radius:31px;box-shadow:0 22px 38px rgba(19,96,111,.11);}
.photo-card::before {content:"";position:absolute;width:115px;height:115px;border:16px solid rgba(255,255,255,.42);border-radius:50%;right:-60px;bottom:70px;pointer-events:none;}
.photo-carousel::before {content:none;}
.photo-carousel {display:block;min-height:0;}
.photo-carousel-viewport {height:415px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-x:contain;}
.photo-carousel-viewport::-webkit-scrollbar {display:none;}
.photo-carousel-track {display:flex;height:100%;}
.photo-carousel-slide {flex:0 0 100%;width:100%;height:100%;margin:0;scroll-snap-align:start;scroll-snap-stop:always;}
.photo-carousel-slide img {width:100%;height:100%;object-fit:cover;}
.page-home .photo-carousel-slide:first-child img {object-position:center 48%;}
.page-home .photo-carousel-slide:nth-child(2) img {object-position:center 43%;}
.photo-carousel-controls {position:absolute;z-index:2;left:14px;right:14px;bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:none;}
.photo-carousel-arrow,.photo-carousel-dot {pointer-events:auto;border:1px solid rgba(21,84,98,.2);background:rgba(255,255,255,.92);color:#155462;box-shadow:0 5px 16px rgba(25,62,70,.16);cursor:pointer;}
.photo-carousel-arrow {display:grid;place-items:center;width:42px;height:42px;padding:0;border-radius:50%;font-size:1.2rem;font-weight:800;}
.photo-carousel-arrow:hover,.photo-carousel-dot:hover {background:#fff;}
.photo-carousel-arrow:focus-visible,.photo-carousel-dot:focus-visible {outline:3px solid #A62E52;outline-offset:3px;}
.photo-carousel-dots {display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 10px;border-radius:100px;background:rgba(255,255,255,.84);box-shadow:0 5px 16px rgba(25,62,70,.12);pointer-events:auto;}
.photo-carousel-dot {width:10px;height:10px;padding:0;border-radius:50%;box-shadow:none;background:#B8CBCB;}
.photo-carousel-dot[aria-current="true"] {width:25px;border-radius:100px;background:#A62E52;border-color:#A62E52;}
.visually-hidden {position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}
.hero-visual-column {min-width:0;align-self:center;}
.giiguy-home-callout {position:relative;display:grid;grid-template-columns:minmax(0,.9fr) minmax(205px,1.1fr);align-items:center;gap:15px;min-height:126px;margin:0 0 22px;padding:13px 14px 13px 22px;overflow:hidden;border:1px solid rgba(23,98,107,.17);border-radius:23px;background:linear-gradient(118deg,rgba(255,255,255,.94),rgba(225,248,241,.94) 58%,rgba(237,230,255,.92));color:var(--ink-strong);text-decoration:none;box-shadow:0 15px 28px rgba(25,87,94,.1);transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s ease,border-color .22s ease;}
.giiguy-home-callout-copy {position:relative;z-index:1;display:flex;align-items:flex-start;flex-direction:column;}
.giiguy-home-callout strong {max-width:230px;font-size:clamp(1.08rem,1.8vw,1.42rem);line-height:1.15;}
.giiguy-home-scene {position:relative;align-self:stretch;min-height:100px;overflow:hidden;border:1px solid rgba(24,105,112,.15);border-radius:17px;background:linear-gradient(180deg,#c9f1f5 0%,#e8faf6 67%,#d7efc8 67%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.45);}
.giiguy-home-character {position:absolute;z-index:1;left:4%;bottom:10%;width:92%;height:auto;opacity:0;filter:drop-shadow(0 8px 9px rgba(33,82,87,.16));transform:translate3d(0,43%,0) scale(.94);transform-origin:72% 72%;transition:opacity .2s ease,transform .55s cubic-bezier(.22,1,.36,1);will-change:transform,opacity;}
.giiguy-home-grass {position:absolute;z-index:2;inset:0;overflow:hidden;background:linear-gradient(180deg,#9bd35b 0%,#72bc46 46%,#4f9a36 100%);clip-path:polygon(0 36%,3% 19%,6% 36%,10% 10%,13% 37%,17% 22%,20% 38%,24% 12%,27% 38%,31% 20%,35% 38%,39% 7%,42% 38%,46% 18%,50% 38%,54% 12%,58% 38%,62% 22%,66% 38%,70% 10%,73% 38%,77% 18%,81% 38%,85% 12%,89% 37%,93% 20%,96% 37%,100% 15%,100% 100%,0 100%);transition:transform .58s cubic-bezier(.22,1,.36,1);will-change:transform;}
.giiguy-home-grass::before,.giiguy-home-grass::after {content:"";position:absolute;border-radius:50%;background:#fff4a9;box-shadow:42px 24px 0 #fff,89px -8px 0 #f8d5f0,137px 18px 0 #fff,188px -4px 0 #fff4a9,236px 25px 0 #f8d5f0;}
.giiguy-home-grass::before {width:5px;height:5px;left:14%;top:56%;}
.giiguy-home-grass::after {width:4px;height:4px;left:28%;top:76%;opacity:.82;transform:scale(.82);}
.giiguy-home-callout:hover {transform:translateY(-3px);border-color:rgba(23,98,107,.3);box-shadow:0 19px 32px rgba(25,87,94,.14);}
.giiguy-home-callout:is(:hover,:focus-visible) .giiguy-home-grass {transform:translate3d(0,72%,0);}
.giiguy-home-callout:is(:hover,:focus-visible) .giiguy-home-character {opacity:1;animation:giiguy-slither 1.05s .34s ease-in-out infinite;}
.giiguy-home-callout:focus-visible {outline:3px solid #a62e52;outline-offset:4px;}
@keyframes giiguy-slither {
  0%,100% {transform:translate3d(0,0,0) rotate(0deg) skewX(0deg) scaleY(1);}
  25% {transform:translate3d(3px,-2px,0) rotate(-.7deg) skewX(-1deg) scaleY(1.025);}
  50% {transform:translate3d(7px,1px,0) rotate(.65deg) skewX(.9deg) scaleY(.98);}
  75% {transform:translate3d(3px,2px,0) rotate(-.35deg) skewX(-.55deg) scaleY(1.012);}
}

@media(hover:none) {
  .giiguy-home-character {opacity:1;transform:translate3d(0,22%,0) scale(.96);}
  .giiguy-home-grass {transform:translate3d(0,18%,0);}
}

@media(max-width:570px) {
  .giiguy-home-callout {grid-template-columns:1fr;gap:12px;padding:18px;}
  .giiguy-home-callout strong {max-width:none;}
  .giiguy-home-scene {width:100%;min-height:112px;}
}
.about-carousel .photo-carousel-viewport {height:clamp(230px,42vw,480px);}
.about-carousel .photo-carousel-slide img {object-position:center 22%;}
.photo-top span:first-child {background:rgba(255,255,255,.75);border:1px solid rgba(20,101,115,.14);border-radius:100px;padding:8px 11px;}
.photo-bottom {position:relative;z-index:1;}
.photo-bottom span,.photo-bottom strong {background:rgba(255,254,246,.91);color:#155462;border-radius:9px;padding:5px 8px;}
/* Alternating section colours, with more playful service and settings treatments. */
.section-cream {background:#FFF7EC;}
.section-mist {background:#EAF5FF;}
.page-home .section-cream {background:linear-gradient(145deg,#FFF8EC,#FFF5EC 60%,#FCF4FF);}
.service-list {gap:13px 16px;}
.service-list li,.service-list li:nth-child(4),.service-list li:last-child,.service-list li:nth-last-child(-n + 1) {
  border:1px solid rgba(26,108,115,.09);border-radius:17px;padding:19px 19px;min-height:81px;
  background:#E4F6F0;transition:transform .15s ease,box-shadow .15s ease;
}
.service-list li:nth-child(7n+1){background:#E3F5E8;}
.service-list li:nth-child(7n+2){background:#FFEADF;}
.service-list li:nth-child(7n+3){background:#E3F2FF;}
.service-list li:nth-child(7n+4){background:#F1E8FB;}
.service-list li:nth-child(7n+5){background:#FFF0C8;}
.service-list li:nth-child(7n+6){background:#FCE8ED;}
.service-list li:nth-child(7n+7){background:#DAF5F0;}
.service-list li:hover {background-color:inherit;transform:translateY(-2px);box-shadow:0 8px 15px rgba(29,80,91,.08);}
.service-count {flex:none;display:inline-flex;justify-content:center;align-items:center;width:34px;height:34px;border-radius:11px;background:rgba(255,255,255,.77);font-size:.76rem;color:#155766;}
.service-list a {color:#203E49;}
.service-list a span {color:#A43151;}
.three {gap:18px;}
.three>div {border:1px solid #D5EBE4;background:#E5F7EC;border-radius:19px;padding:27px 25px;min-height:160px;}
.three>div:nth-child(2) {background:#E3F3FF;border-color:#CDE8FA;}
.three>div:nth-child(3) {background:#FFF0C7;border-color:#F4DF9D;}
.three .place-icon {background:#FFF;color:#176A76;width:49px;height:49px;border-radius:15px;font-size:1.5rem;box-shadow:0 5px 12px rgba(15,82,96,.08);}
.three>div:nth-child(2) .place-icon,.three>div:nth-child(3) .place-icon {background:#FFF;}
.simple-panel {background:#FFF;border-color:#D0E7E7;border-radius:24px;box-shadow:0 13px 26px rgba(30,89,95,.06);}
.page-home .section-mist .simple-panel {background:#FFFDFB;border-color:#DFD5F2;}
.page-home .section:not(.section-mist) .panel-border {background:#F7F0FF;border-color:#E6D9F5;}
.role-pill {border-radius:11px;background:#E0F6F0;}
.two-cards .simple-panel:nth-child(2) .role-pill {background:#FFEDCF;color:#73510B;}
.about-graphic span {background:#75CDBE;}
.about-graphic span:nth-child(2) {background:#B5A4E5;}
.about-graphic span:nth-child(3) {background:#F8C26E;}
.callout {background:#E2F6ED;border:1px solid #CEEBDD;border-radius:22px;}
.contact-grid .simple-panel {background:#ECF7FF;border-color:#D1EAF6;}
.privacy-caution {background:#FFF3E3;border-left-color:#B83455;}
.privacy-placeholder {background:#FFF8EF;}
/* Short interior-page heroes: colourful variation, consistent hierarchy. */
.page-hero {background:
  radial-gradient(circle at 88% 22%,rgba(255,200,117,.32) 0 11%,transparent 11.4%),
  linear-gradient(111deg,#FFF7ED 0%,#EAF8F2 100%);}
.page-services .page-hero {background:radial-gradient(circle at 89% 15%,#FFE9B6 0 11%,transparent 11.4%),linear-gradient(110deg,#FFF4E8,#FCEAF3 64%,#E7F6F9);}
.page-about .page-hero {background:radial-gradient(circle at 90% 15%,#F8DBA3 0 9%,transparent 9.4%),linear-gradient(110deg,#F4EDFF,#E7F5FF 68%,#E6F8EB);}
.page-getting-started .page-hero {background:radial-gradient(circle at 91% 25%,#FFDC8D 0 10%,transparent 10.4%),linear-gradient(110deg,#E9F8EE,#F5F4FF 65%,#FFF1E7);}
.page-contact .page-hero {background:radial-gradient(circle at 91% 25%,#D4EBFC 0 10%,transparent 10.4%),linear-gradient(110deg,#FFF3E6,#FFF0F0 60%,#E9F7EF);}
.page-privacy .page-hero {background:linear-gradient(105deg,#FFF9F1,#F2F9F6);}
/* Final CTA: clear action contrast with playful but non-distracting shapes. */
.end-cta {position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(117deg,#176B78,#167E86 65%,#267285);border-radius:30px;box-shadow:0 17px 31px rgba(17,101,115,.16);}
.end-cta::before {content:"";position:absolute;width:250px;height:250px;right:180px;top:-210px;border:38px solid rgba(255,224,151,.18);border-radius:50%;z-index:-1;pointer-events:none;}
.end-cta::after {content:"";position:absolute;width:240px;height:240px;right:-120px;bottom:-170px;border:44px solid rgba(181,232,248,.19);border-radius:50%;z-index:-1;pointer-events:none;}
.footer {background:#174A58;border-top:5px solid #FFCA85;}
.footer p,.foot-bottom {color:#E4F3F5;}
.foot-bottom {border-top-color:#487A83;}
@media(max-width:760px) {
  .three>div {min-height:0;}
  .home-hero {background:
    radial-gradient(circle at 5% 4%,rgba(255,214,115,.2) 0 12%,transparent 12.4%),
    linear-gradient(140deg,#FFF7E8,#FFF1EC 56%,#E9F9EF);}
}
@media(max-width:570px) {
  .service-list {gap:10px;}
  .service-list li,.service-list li:nth-child(4),.service-list li:last-child {padding:15px 13px;min-height:69px;gap:11px;}
  .service-count {width:30px;height:30px;}
  .three>div {padding:17px 16px;min-height:0;}
  .photo-card {border-radius:23px;}
  .end-cta {border-radius:23px;}
}
@media(prefers-reduced-motion:reduce) {
  .button:hover,.service-list li:hover {transform:none;}
  .service-list li {transition:none;}
}

/* Individual team profiles. */
.team-profile {display:grid;grid-template-columns:140px 1fr;gap:23px;align-items:center;margin-top:27px;padding-top:27px;border-top:1px solid #E2F0E9;}
.team-profile img {width:140px;height:140px;aspect-ratio:1;object-fit:cover;border-radius:18px;background:#EEF2F1;box-shadow:0 7px 17px rgba(30,89,95,.1);}
.zac-photo-button {display:block;width:140px;height:140px;padding:0;border:0;border-radius:18px;background:transparent;cursor:pointer;overflow:hidden;}
.zac-photo-button img {box-shadow:none;}
.zac-photo-button:hover img {filter:saturate(1.04);}
.zac-photo-button:focus-visible {outline:3px solid #8D347A;outline-offset:5px;}
.team-profile h4 {color:var(--ink-strong);font-size:1.3rem;line-height:1.2;letter-spacing:-.025em;margin:0 0 5px;}
.team-profile .team-role {color:#196A71;font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin:0 0 10px;}
.team-profile p:last-child {color:var(--muted);font-size:.92rem;line-height:1.58;margin:0;}
.team-profile p+p {border-top:0;padding-top:0;}
.team-directory {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:34px;}
.team-member-card .team-profile {margin-top:0;padding-top:0;border-top:0;}
.team-member-card .team-profile h3 {color:var(--ink-strong);font-size:1.3rem;line-height:1.2;letter-spacing:-.025em;margin:0 0 5px;}
.profile-placeholder {display:grid;place-items:center;width:140px;height:140px;border-radius:18px;background:linear-gradient(145deg,#DDF3EA,#F6EBD8);color:var(--ink-strong);font-size:2rem;font-weight:800;letter-spacing:.04em;box-shadow:0 7px 17px rgba(30,89,95,.1);}
.profile-photo-frame {width:140px;height:140px;overflow:hidden;border-radius:18px;background:#EEF2F1;box-shadow:0 7px 17px rgba(30,89,95,.1);}
.team-profile .profile-photo-frame img {width:100%;height:100%;border-radius:0;box-shadow:none;object-fit:cover;object-position:center top;}
.josh-photo-button {position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:pointer;overflow:hidden;}
.josh-photo-button img {transition:filter .15s ease;}
.josh-photo-button:hover img {filter:saturate(1.05);}
.josh-photo-button:focus-visible {outline:3px solid #8D347A;outline-offset:-5px;}
.josh-photo-button.hair-found {animation:josh-hair-pop .32s ease;}
.josh-tear {position:absolute;z-index:2;left:44%;top:39%;width:6px;height:10px;border-radius:55% 55% 65% 65%;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(116,201,228,.85));box-shadow:0 1px 2px rgba(31,91,98,.2);opacity:0;pointer-events:none;}
.josh-photo-button.is-upset .josh-tear {animation:josh-tear-roll 1s ease-in forwards;}
@keyframes josh-hair-pop {50%{transform:translateY(2px) rotate(-1deg);}}
@keyframes josh-tear-roll {0%{opacity:0;transform:translateY(-2px) scale(.65)}15%{opacity:.95}100%{opacity:0;transform:translateY(29px) scale(.9)}}
.jake-photo-button {position:relative;display:block;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:pointer;overflow:hidden;}
.jake-photo-button img {transition:filter .15s ease;}
.jake-photo-button:hover img {filter:contrast(1.04) saturate(1.05);}
.jake-photo-button:focus-visible {outline:3px solid #8D347A;outline-offset:-5px;}
.jake-photo-button.powering-up {animation:jake-power-up .46s cubic-bezier(.2,.9,.3,1.2);}
@keyframes jake-power-up {0%{transform:scale(1)}42%{transform:scale(.9)}75%{transform:scale(1.08)}100%{transform:scale(1)}}
@media(max-width:570px) {
  .team-directory {grid-template-columns:1fr;gap:16px;}
  .team-profile {grid-template-columns:96px 1fr;gap:16px;align-items:start;}
  .team-profile img {width:96px;height:96px;border-radius:15px;}
  .profile-placeholder {width:96px;height:96px;border-radius:15px;font-size:1.5rem;}
  .profile-photo-frame {width:96px;height:96px;border-radius:15px;}
  .zac-photo-button {width:96px;height:96px;border-radius:15px;}
  .team-profile h4 {font-size:1.15rem;}
}
@media(max-width:420px) {
  .team-profile {grid-template-columns:1fr;}
  .team-profile img {width:128px;height:128px;}
  .profile-placeholder {width:128px;height:128px;}
  .profile-photo-frame {width:128px;height:128px;}
  .zac-photo-button {width:128px;height:128px;}
}

/* Gooey slime Easter egg: transparent fixed overlay, isolated from page hit-testing.
   The canvas is created only on About Us and is idle/hidden until activated. */
.booger-slime-canvas {position:fixed;inset:0;width:100vw;height:100vh;z-index:9999;pointer-events:none;contain:strict;}
.booger-slime-canvas[hidden] {display:none!important;}
.booger-slime-close {display:none;position:fixed;bottom:18px;right:18px;z-index:10000;padding:12px 18px;border:2px solid #F6FFD5;border-radius:99px;color:#FFF;background:#357526;box-shadow:0 5px 20px rgba(20,67,26,.24);font-size:.91rem;font-weight:700;line-height:1.2;cursor:pointer;}
@media(pointer:coarse){.booger-slime-close:not([hidden]){display:block;}}
.zac-photo-button.nose-found {animation:nose-wiggle .3s ease;}
@keyframes nose-wiggle {0%,100%{transform:rotate(0)}33%{transform:rotate(-2deg)}66%{transform:rotate(2deg)}}
.josh-photo-button.is-booger-horrified {animation:josh-booger-horror .62s ease;}
.josh-photo-button.is-booger-horrified .josh-tear {animation:josh-tear-roll .9s ease-in forwards;}
@keyframes josh-booger-horror {0%,100%{transform:translateX(0) rotate(0)}18%{transform:translateX(-3px) rotate(-1deg)}38%{transform:translateX(3px) rotate(1deg)}58%{transform:translateX(-2px) rotate(-.7deg)}78%{transform:translateX(2px) rotate(.7deg)}}
@media(prefers-reduced-motion:reduce) {
  .zac-photo-button.nose-found {animation:none;}
  .josh-photo-button img {transition:none;}
  .josh-photo-button.hair-found,.josh-photo-button.is-upset .josh-tear,.josh-photo-button.is-booger-horrified,.josh-photo-button.is-booger-horrified .josh-tear {animation:none;}
  .jake-photo-button img {transition:none;}
  .jake-photo-button.powering-up {animation:none;}
}

/* Home-page role summary from the editable content master. */
.what-we-do-list {display:grid;gap:14px;max-width:620px;}
.what-we-do-list p {margin:0;padding:18px 20px;border:1px solid #D5EBE4;border-radius:16px;background:#F4FBF7;color:var(--muted);}
.what-we-do-list p:nth-child(2) {background:#FFF5E7;border-color:#F2DFC3;}
.what-we-do-list strong {color:var(--ink-strong);}

/* Services-page introduction from the editable content master. */
.service-intro-title {font-size:1.18rem;margin:25px 0 8px;}
.page-services .services-hero {padding:clamp(58px,7vw,92px) 0;}
.services-hero-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(38px,5vw,68px);align-items:center;}
.services-hero-copy {min-width:0;}
.services-hero-copy h1 {max-width:560px;margin-bottom:28px;}
.services-hero-copy .page-lead {max-width:600px;}
.services-carousel {width:100%;max-width:570px;min-height:0;justify-self:end;border-color:rgba(22,104,115,.28);background:#dceff1;}
.services-carousel .photo-carousel-viewport {height:clamp(480px,52vw,640px);}
.services-carousel .photo-carousel-slide {background:#dceff1;}
.services-carousel .photo-carousel-slide img {object-position:center 54%;}
.services-carousel .photo-carousel-slide:nth-child(2) img {object-position:center 58%;}
.services-carousel .photo-carousel-slide:nth-child(3) {position:relative;isolation:isolate;background:#173f4a;overflow:hidden;}
.services-carousel .photo-carousel-slide:nth-child(3)::before {content:"";position:absolute;z-index:-1;inset:-34px;background:url("services-activity-sensory-letters.webp") center/cover no-repeat;filter:blur(22px);opacity:.52;transform:scale(1.05);}
.services-carousel .photo-carousel-slide:nth-child(3) img {position:relative;z-index:1;object-fit:contain;object-position:center;}
.services-carousel .photo-carousel-slide:nth-child(4) img {object-position:center 51%;}

@media(max-width:900px) {
  .services-hero-grid {grid-template-columns:1fr;gap:42px;}
  .services-hero-copy {max-width:720px;}
  .services-carousel {max-width:720px;justify-self:stretch;}
  .services-carousel .photo-carousel-viewport {height:clamp(440px,78vw,620px);}
}

@media(max-width:760px) {
  .giiguy-home-callout {max-width:720px;margin-bottom:19px;grid-template-columns:minmax(0,1fr) minmax(180px,42%);}
  .photo-carousel-viewport {height:350px;}
  .services-hero-grid {gap:34px;}
  .services-carousel .photo-carousel-viewport {height:clamp(410px,105vw,540px);}
}

@media(max-width:570px) {
  .giiguy-home-callout {min-height:104px;padding:14px 13px 13px 16px;border-radius:18px;grid-template-columns:minmax(0,1fr) minmax(135px,44%);}
  .giiguy-home-callout img {margin-left:-58px;}
  .giiguy-home-callout-label {font-size:.54rem;}
  .giiguy-home-callout strong {font-size:1.03rem;}
  .giiguy-home-callout-link {font-size:.75rem;}
  .photo-carousel-viewport {height:295px;}
  .services-hero-copy h1 {margin-bottom:22px;}
  .services-carousel {border-radius:22px;}
  .services-carousel .photo-carousel-viewport {height:clamp(390px,118vw,500px);}
  .photo-carousel-controls {left:10px;right:10px;bottom:10px;}
  .photo-carousel-arrow {width:38px;height:38px;}
}

/* Warm, welcoming production theme. */
:root {
  --ink:#166873;
  --ink-strong:#173f4a;
  --text:#344b54;
  --muted:#536973;
  --cream:#fff2e6;
  --mist:#e3f6eb;
  --line:#c6e5df;
  --coral:#c43d5d;
  --coral-hover:#a52d4b;
  --warm-ivory:#fffcf6;
  --sunny-yellow:#ffd36e;
}
body {background:var(--warm-ivory);font-synthesis:none;}
.header {background:rgba(255,253,248,.97);}
.header::before {height:5px;background:linear-gradient(90deg,#55c4ad 0 22%,#ffd06e 22% 43%,#f48d83 43% 64%,#ad91df 64% 82%,#68bfe9 82%);}
.button {background:var(--coral);border-color:var(--coral);box-shadow:0 8px 20px rgba(196,61,93,.2);}
.button:hover {background:var(--coral-hover);border-color:var(--coral-hover);box-shadow:0 11px 23px rgba(165,45,75,.24);}
.text-link {border-bottom-color:#46b9a7;}
.hero-copy h1,.page-hero h1,.section h2 {text-wrap:balance;}

.home-hero {background:radial-gradient(circle at 7% 13%,rgba(255,199,81,.42) 0 11%,transparent 11.4%),radial-gradient(circle at 91% 82%,rgba(100,195,235,.31) 0 15%,transparent 15.4%),radial-gradient(circle at 76% 12%,rgba(192,142,225,.18) 0 9%,transparent 9.4%),linear-gradient(118deg,#fff5df 0%,#ffeae2 48%,#e0f6e8 100%);}
.page-hero {background:radial-gradient(circle at 89% 19%,rgba(255,197,79,.48) 0 10%,transparent 10.4%),linear-gradient(112deg,#fff0df 0%,#ffe9e0 48%,#dcf3e8 100%);}
.page-services .page-hero {background:radial-gradient(circle at 89% 17%,#ffd888 0 11%,transparent 11.4%),linear-gradient(110deg,#ffead8,#f9e3ef 63%,#dff3f8);}
.page-about .page-hero {background:radial-gradient(circle at 90% 17%,#ffd37c 0 9%,transparent 9.4%),linear-gradient(110deg,#eee3ff,#daefff 64%,#d9f3e2);}
.page-getting-started .page-hero {background:radial-gradient(circle at 91% 24%,#ffd36e 0 10%,transparent 10.4%),linear-gradient(110deg,#dcf4e5,#eee8ff 62%,#ffe5d6);}
.page-contact .page-hero {background:radial-gradient(circle at 91% 24%,#cfeaff 0 10%,transparent 10.4%),linear-gradient(110deg,#ffe8d5,#ffe1e6 60%,#dcf3e6);}
.page-privacy .page-hero {background:radial-gradient(circle at 90% 20%,#d9f0ff 0 9%,transparent 9.4%),linear-gradient(108deg,#fff0df,#e4f5ec);}
.page-service-agreement .page-hero {background:radial-gradient(circle at 90% 20%,#ffd888 0 9%,transparent 9.4%),linear-gradient(110deg,#e0f4ea,#e7efff 63%,#fff0df);}
.page-error .page-hero {min-height:55vh;display:grid;align-items:center;}

.eyebrow,.panel-label {display:inline-flex;align-items:center;width:fit-content;padding:8px 13px;border-radius:100px;background:#d8f2e8;color:#155d68!important;box-shadow:inset 0 0 0 1px rgba(22,104,115,.08);}
.page-services .page-hero .eyebrow {background:#ffe0d4;}
.page-about .page-hero .eyebrow {background:#e6dafa;}
.page-getting-started .page-hero .eyebrow {background:#d4efdf;}
.page-contact .page-hero .eyebrow {background:#ffdce1;}
.page-privacy .page-hero .eyebrow {background:#d8edfa;}
.page-service-agreement .page-hero .eyebrow {background:#ffebbb;}

main>.section {position:relative;isolation:isolate;overflow:hidden;}
main>.section>.wrap {position:relative;z-index:1;}
.section:not(.section-cream):not(.section-mist) {background:var(--warm-ivory);}
.section-cream {background:linear-gradient(145deg,#fff0df,#fff5e8 64%,#f8ebff);}
.section-mist {background:linear-gradient(145deg,#dcf4e6,#e0f3ff 70%,#eae5ff);}
.section-cream::after,.section-mist::after {content:"";position:absolute;z-index:0;width:180px;height:180px;right:-78px;top:42px;border:28px solid rgba(255,255,255,.36);border-radius:50%;pointer-events:none;}
.section-mist::after {border-color:rgba(255,211,110,.28);top:auto;bottom:34px;}

.photo-card {border-color:#8fd8cc;box-shadow:0 23px 42px rgba(22,104,115,.15);}
.photo-carousel-arrow,.photo-carousel-dot {border-color:rgba(22,104,115,.27);}
.photo-carousel-dot[aria-current="true"] {background:var(--coral);border-color:var(--coral);}
.service-list li,.service-list li:nth-child(4),.service-list li:last-child,.service-list li:nth-last-child(-n+1) {border-color:rgba(30,93,101,.13);box-shadow:0 7px 15px rgba(36,87,91,.055);}
.service-list li:nth-child(7n+1) {background:#d9f2e2;}
.service-list li:nth-child(7n+2) {background:#ffe2d4;}
.service-list li:nth-child(7n+3) {background:#dcefff;}
.service-list li:nth-child(7n+4) {background:#eadff8;}
.service-list li:nth-child(7n+5) {background:#ffeab5;}
.service-list li:nth-child(7n+6) {background:#f9dfe7;}
.service-count {background:rgba(255,255,255,.86);}
.three>div {border-width:2px;box-shadow:0 12px 23px rgba(29,91,96,.07);}
.three>div:nth-child(1) {background:linear-gradient(145deg,#d9f3e4,#edf9f1);}
.three>div:nth-child(2) {background:linear-gradient(145deg,#dcefff,#eef8ff);}
.three>div:nth-child(3) {background:linear-gradient(145deg,#ffe8ad,#fff4d6);}

.simple-panel {background:#fffefa;border-color:#bfe2dc;box-shadow:0 14px 28px rgba(27,82,88,.08);}
.team-member-card {position:relative;overflow:hidden;border-top-width:5px;}
.team-member-card:nth-child(6n+1) {background:#f4fcf7;border-top-color:#68c6aa;}
.team-member-card:nth-child(6n+2) {background:#fff8f2;border-top-color:#f39b78;}
.team-member-card:nth-child(6n+3) {background:#f4faff;border-top-color:#78bfe7;}
.team-member-card:nth-child(6n+4) {background:#fbf7ff;border-top-color:#aa8bd8;}
.team-member-card:nth-child(6n+5) {background:#fffaf0;border-top-color:#e6b847;}
.team-member-card:nth-child(6n+6) {background:#fff6f8;border-top-color:#dc7893;}
.profile-photo-frame,.profile-placeholder,.zac-photo-button {border:4px solid rgba(255,255,255,.96);box-shadow:0 8px 18px rgba(31,91,98,.14),0 0 0 2px #cfe8e2;}
.profile-placeholder {background:linear-gradient(145deg,#d3f0e2,#ffe7c1);}

.page-services .service-detail {margin-top:14px;padding:28px 26px;border:1px solid rgba(25,89,97,.11);border-radius:20px;box-shadow:0 9px 21px rgba(33,84,90,.055);}
.page-services .service-detail:nth-of-type(7n+1) {background:#d9f2e2;}
.page-services .service-detail:nth-of-type(7n+2) {background:#ffe2d4;}
.page-services .service-detail:nth-of-type(7n+3) {background:#dcefff;}
.page-services .service-detail:nth-of-type(7n+4) {background:#eadff8;}
.page-services .service-detail:nth-of-type(7n+5) {background:#ffeab5;}
.page-services .service-detail:nth-of-type(7n+6) {background:#f9dfe7;}
.page-services .service-detail:nth-of-type(7n+7) {background:#daf5f0;}
.page-services .service-number,.step-list span {display:inline-grid;place-items:center;width:39px;height:39px;padding:0;border-radius:12px;background:rgba(255,255,255,.82);color:#17636d;box-shadow:0 4px 10px rgba(28,87,93,.08);}
.callout {background:linear-gradient(135deg,#d7f2e3,#e1f1ff);border-color:#b8ddd4;}
.step-list {gap:18px;}
.step-list li {padding:25px;border:1px solid rgba(30,93,101,.1);border-radius:20px;box-shadow:0 10px 20px rgba(31,84,89,.055);}
.step-list li:nth-child(1) {background:#dff4e7;}
.step-list li:nth-child(2) {background:#ffe8db;}
.step-list li:nth-child(3) {background:#e5eafa;}
.faq {display:grid;gap:11px;}
.faq details,.faq details:last-child {padding:18px 20px;border:1px solid #cbe5df;border-left:6px solid #65bea9;border-radius:14px;background:rgba(255,255,255,.88);box-shadow:0 6px 15px rgba(31,82,87,.045);}
.faq details:nth-child(3n+2) {border-left-color:#ee9b77;}
.faq details:nth-child(3n+3) {border-left-color:#9e83d3;}
.faq details[open] {background:#fffaf2;}
.contact-grid .simple-panel {background:linear-gradient(145deg,#dcefff,#ecf8ff);}
.privacy-caution {background:#fff0dc;border-left-color:#d44865;}
.privacy-placeholder {background:linear-gradient(145deg,#fff1df,#fff9ee);border-color:#efd6bd;}
.section.compact>.wrap.endrow {padding:clamp(27px,4vw,44px);border:1px solid #edcfab;border-radius:26px;background:linear-gradient(118deg,#fff0d6,#ffe4df 56%,#e4f3ed);box-shadow:0 14px 28px rgba(92,70,48,.08);}
.end-cta {background:linear-gradient(117deg,#176c76,#187f82 60%,#377391);border:2px solid rgba(255,255,255,.32);}
.end-cta .eyebrow {background:#145a63;color:#fff!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);}
.end-cta .button-light,.end-cta .button-light:hover {background:#fffdf8;border-color:#fffdf8;color:#173f4a;box-shadow:0 8px 20px rgba(0,0,0,.13);}

.legal-layout {display:grid;grid-template-columns:minmax(210px,280px) minmax(0,760px);gap:clamp(34px,6vw,78px);align-items:start;justify-content:center;}
.legal-nav {position:sticky;top:120px;padding:24px;}
.legal-nav h2 {font-size:1.15rem;margin:0 0 14px;}
.legal-nav ul {display:grid;gap:5px;margin:0;padding:0;list-style:none;}
.legal-nav a {display:block;padding:7px 9px;border-radius:8px;color:var(--ink);font-size:.9rem;font-weight:700;text-decoration:none;}
.legal-nav a:hover {background:var(--mist);}
.legal-document {min-width:0;}
.legal-document>section {scroll-margin-top:120px;padding:38px 0;border-bottom:1px solid var(--line);}
.legal-document h2 {font-size:clamp(1.6rem,3vw,2.05rem);margin-bottom:16px;}
.legal-document h3 {font-size:1.22rem;margin:29px 0 11px;}
.legal-document p,.legal-document li {line-height:1.75;}
.legal-document ul {padding-left:1.35rem;}
.legal-document li+li {margin-top:9px;}
.legal-intro,.legal-closing {padding:clamp(24px,4vw,34px);}
.legal-intro p:first-child {margin-top:0;}
.legal-intro p:last-child,.legal-closing p:last-child {margin-bottom:0;}
.legal-closing {margin-top:38px;background:linear-gradient(145deg,#e4f5ec,#fff1df);}

.footer {position:relative;border-top:0;background:#174a58;}
.footer::before {content:"";position:absolute;inset:0 0 auto;height:7px;background:linear-gradient(90deg,#55c4ad,#ffd06e,#f48d83,#ad91df,#68bfe9);}
.footer .footer-social-links {display:grid;justify-items:start;gap:10px;margin-top:17px;}
.footer .footer-social-link {display:inline-flex;align-items:center;gap:10px;max-width:100%;padding:11px 15px;border:1px solid rgba(255,255,255,.34);border-radius:999px;background:rgba(255,255,255,.08);color:#fff;font-weight:800;line-height:1.2;box-shadow:0 7px 17px rgba(6,38,45,.16);transition:background .18s ease,border-color .18s ease,transform .18s ease;}
.footer .footer-social-link-secondary {background:rgba(255,255,255,.045);}
.footer .footer-social-link svg {flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.footer .footer-social-link .footer-social-dot {fill:currentColor;stroke:none;}
.footer .footer-social-link .footer-social-arrow {font-size:1rem;transition:transform .18s ease;}
.footer .footer-social-link:hover {background:rgba(255,255,255,.15);border-color:rgba(255,255,255,.62);text-decoration:none;transform:translateY(-1px);}
.footer .footer-social-link:hover .footer-social-arrow {transform:translate(2px,-2px);}
@media (prefers-reduced-motion: reduce) {.footer .footer-social-link,.footer .footer-social-link .footer-social-arrow {transition:none;}.footer .footer-social-link:hover {transform:none;}}

@media(max-width:760px) {
  .section-cream::after,.section-mist::after {width:120px;height:120px;border-width:20px;right:-62px;}
  .page-services .service-detail {padding:23px 20px;}
  .step-list li {padding:21px;}
  .legal-layout {grid-template-columns:1fr;gap:26px;}
  .legal-nav {position:static;}
  .legal-nav ul {grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:570px) {
  .eyebrow,.panel-label {padding:7px 11px;}
  .section.compact>.wrap.endrow {padding:25px 21px;border-radius:22px;}
  .faq details,.faq details:last-child {padding:16px 15px;}
  .legal-nav ul {grid-template-columns:1fr;}
  .legal-document>section {padding:31px 0;}
}

/* Team-wide slime-proximity portrait reactions; preserves click-controlled states. */
.team-member-card.is-team-jolting .team-profile > img,
.team-member-card.is-team-jolting .team-profile > .profile-photo-frame,
.team-member-card.is-team-jolting .team-profile > .zac-photo-button,
.team-member-card.is-team-jolting .team-profile > .profile-placeholder {
  animation: team-startle .27s ease-out both;
  transform-origin: center 55%;
}
@keyframes team-startle {
  0% { transform: translateX(0) rotate(0); }
  23% { transform: translateX(-3px) rotate(-1deg); }
  55% { transform: translateX(3px) rotate(1deg); }
  82% { transform: translateX(-1px) rotate(-.35deg); }
  100% { transform: translateX(0) rotate(0); }
}
.team-member-card.is-team-shocked { border-top-color: #df9368; }
.profile-placeholder { position: relative; overflow: hidden; }
.profile-placeholder .placeholder-surprise {
  position: absolute; inset: 0; display: grid; place-items: center;
  background: linear-gradient(145deg,#ffdfc3,#ffbabb); color: #8e2c55;
  font-size: 3.5rem; font-weight: 900;
  opacity: 0; transition: opacity .13s ease;
}
.team-member-card.is-team-shocked .placeholder-surprise { opacity: 1; }
.team-member-card.is-hair-upset .josh-tear { animation: josh-tear-roll 1s ease-in forwards; }
@media (prefers-reduced-motion: reduce) {
  .team-member-card.is-team-jolting .team-profile > img,
  .team-member-card.is-team-jolting .team-profile > .profile-photo-frame,
  .team-member-card.is-team-jolting .team-profile > .zac-photo-button,
  .team-member-card.is-team-jolting .team-profile > .profile-placeholder,
  .team-member-card.is-hair-upset .josh-tear { animation: none !important; }
  .profile-placeholder .placeholder-surprise { transition: none; }
}


/* Portrait-safe team reactions — no artificial facial-feature overlays. */
.team-member-card .team-profile { position: relative; }
.team-member-card .team-surprise-spark {
  position: absolute;
  left: 119px;
  top: -13px;
  z-index: 4;
  display: grid;
  place-items: center;
  width: 39px;
  height: 39px;
  padding: 0;
  border-radius: 50%;
  border: 3px solid #fff;
  background: #e17b54;
  box-shadow: 0 3px 8px rgba(47, 63, 55, .19);
  color: white;
  font: 900 1.65rem/1 system-ui,sans-serif;
  opacity: 0;
  pointer-events: none;
  transform: scale(.55) rotate(-13deg);
  transition: opacity .14s ease-out, transform .22s cubic-bezier(.2,1.4,.4,1);
}
.team-member-card.is-team-shocked:not(.has-photo-reaction) .team-surprise-spark {
  opacity: 1;
  transform: scale(1) rotate(8deg);
}
@media (max-width: 760px) {
  .team-member-card .team-surprise-spark { left: 78px; top: -10px; width: 34px; height: 34px; font-size: 1.4rem; }
}
@media (max-width: 570px) {
  .team-member-card .team-surprise-spark { left: 106px; }
}
@media (prefers-reduced-motion: reduce) {
  .team-member-card .team-surprise-spark { transition: none; transform: none; }
  .team-member-card.is-team-shocked .team-surprise-spark { transform: none; }
}


/* Matched square reactions use two stacked photographs for a real crossfade.
   The original remains underneath, avoiding source-swap flashes and layout shifts. */
.fgt-portrait-stack { position: relative; }
.fgt-portrait-stack > img:not(.fgt-portrait-reaction) { position: relative; z-index: 1; }
.team-profile img.fgt-portrait-reaction {
  position: absolute;
  z-index: 2;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  border: 0;
  border-radius: inherit;
  object-fit: cover;
  object-position: 50% var(--shock-focus-y, 50%);
  box-shadow: none;
  opacity: 0;
  pointer-events: none;
  transition: opacity .22s ease-out, filter .15s ease;
}
.team-profile img.fgt-portrait-reaction.is-visible { opacity: 1; }
.fgt-portrait-stack .josh-tear { z-index: 3; }
@media (prefers-reduced-motion: reduce) {
  .team-profile img.fgt-portrait-reaction { transition: none; }
}

/* Consistent portrait framing for normal and shocked states.
   Direct images (Anna/Kayla), framed images and interactive buttons now use the
   same border-box dimensions, so swapping a source cannot stretch or resize it. */
.team-profile > img,
.profile-photo-frame,
.profile-placeholder,
.zac-photo-button {
  box-sizing: border-box;
  width: 140px;
  height: 140px;
  aspect-ratio: 1;
  border: 4px solid rgba(255,255,255,.96);
  border-radius: 18px;
  background: #eef2f1;
  box-shadow: 0 8px 18px rgba(31,91,98,.14), 0 0 0 2px #cfe8e2;
  overflow: hidden;
}

.team-profile > img {
  object-fit: cover;
}

.team-profile .profile-photo-frame img,
.zac-photo-button img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  border: 0;
  border-radius: 14px;
  object-fit: cover;
  box-shadow: none;
}

/* Square reaction focal points keep the expression aligned with the base image. */
.team-member-card[data-team-member="zac"] { --shock-focus-y: 50%; }
.team-member-card[data-team-member="josh"] { --shock-focus-y: 50%; }
.team-member-card[data-team-member="jake"] { --shock-focus-y: 50%; }

@media(max-width:570px) {
  .team-profile > img,
  .profile-photo-frame,
  .profile-placeholder,
  .zac-photo-button {
    width: 96px;
    height: 96px;
    border-radius: 15px;
  }

  .team-profile .profile-photo-frame img,
  .zac-photo-button img {
    border-radius: 11px;
  }
}

/* About hero: team photograph with an HQB-inspired translucent readability layer. */
.page-about .about-hero {
  position:relative;
  isolation:isolate;
  display:grid;
  align-items:center;
  min-height:clamp(430px,42vw,600px);
  overflow:hidden;
  background-image:
    linear-gradient(110deg,rgba(8,38,48,.72),rgba(11,48,56,.48)),
    url("about-hero-team.webp");
  background-position:center 36%;
  background-size:cover;
  color:#fff;
}

.page-about .about-hero::after {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(180deg,rgba(4,28,35,.08),rgba(4,28,35,.22));
  pointer-events:none;
}

.page-about .about-hero .wrap {
  text-align:center;
  text-shadow:0 2px 18px rgba(3,27,34,.42);
}

.page-about .about-hero h1,
.page-about .about-hero .page-lead {
  margin-inline:auto;
  color:#fff;
}

.page-about .about-hero .page-lead {
  max-width:760px;
  color:rgba(255,255,255,.94);
}

.page-about .about-hero .eyebrow {
  margin-inline:auto;
  background:rgba(232,247,243,.9);
  box-shadow:0 7px 19px rgba(3,27,34,.18);
  text-shadow:none;
}

@media(max-width:570px) {
  .page-about .about-hero {
    min-height:500px;
    background-image:
      linear-gradient(180deg,rgba(7,35,44,.58),rgba(8,39,48,.7)),
      url("about-hero-team.webp");
    background-position:center 40%;
  }
}

/* Keep the Books hero distinct from the shared page-hero palette. */
.page-books .page-hero {
  overflow:hidden;
  background:linear-gradient(135deg,#eef8ff 0%,#f3edff 54%,#eaf8ef 100%);
}
.page-books .page-hero .eyebrow {background:#e5dcf7;}

/* Books catalogue and Giiguy detail page */
.books-catalogue-intro {max-width:700px;}
.books-catalogue-grid {margin-top:38px;}
.book-catalogue-card {padding:22px;background:linear-gradient(145deg,#dff4e7,#eefaf3);}
.book-card-cover {display:block;overflow:hidden;aspect-ratio:1;border:1px solid rgba(28,91,97,.13);border-radius:19px;background:#a8e5ef;box-shadow:0 10px 22px rgba(28,84,91,.1);}
.book-card-cover img {width:100%;height:100%;object-fit:cover;transition:transform .35s cubic-bezier(.22,1,.36,1);}
.book-card-cover:hover img {transform:scale(1.025);}
.book-format-label {margin:23px 0 10px!important;color:#276e74!important;font-size:.68rem!important;font-weight:850;letter-spacing:.08em;}
.book-catalogue-card h2 {font-size:clamp(1.45rem,2.2vw,1.78rem);margin-bottom:14px;}
.book-catalogue-card h2 a {text-decoration:none;}
.book-catalogue-card h2 a:hover {text-decoration:underline;text-underline-offset:4px;}
.book-format-chips,.giiguy-format-list {display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:20px 0 25px;}
.book-format-chips li,.giiguy-format-list li {padding:7px 10px;border:1px solid rgba(28,98,106,.12);border-radius:999px;background:rgba(255,255,255,.73);color:#27545b;font-size:.74rem;font-weight:750;}
.book-catalogue-card .button {margin-top:auto;}

.page-giiguy .page-hero {background:radial-gradient(circle at 91% 18%,#ffe19a 0 10%,transparent 10.4%),linear-gradient(112deg,#dff5fb 0%,#edf0ff 48%,#e2f6e9 100%);}
.giiguy-hero-grid {display:grid;grid-template-columns:minmax(0,1.1fr) minmax(330px,.7fr);align-items:center;gap:clamp(38px,7vw,100px);}
.giiguy-hero-copy h1 {max-width:720px;}
.giiguy-hero-copy .page-lead {max-width:720px;}
.giiguy-format-list {margin-top:24px;}
.giiguy-format-list li {background:rgba(255,255,255,.84);box-shadow:0 3px 9px rgba(26,82,89,.05);}
.giiguy-cover-card {margin:0;padding:clamp(17px,2vw,25px);border:1px solid rgba(27,94,101,.13);border-radius:29px;background:rgba(255,255,255,.86);box-shadow:0 24px 45px rgba(25,82,91,.14);transform:rotate(1.2deg);}
.giiguy-cover-card img {width:100%;border-radius:18px;}
.giiguy-cover-card figcaption {padding:15px 4px 2px;color:#416068;font-size:.8rem;line-height:1.45;text-align:center;}

.giiguy-purchase-section {background:linear-gradient(135deg,#fffaf4 0%,#fff3e9 50%,#f3effd 100%);scroll-margin-top:105px;}
.giiguy-purchase-heading {display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:38px;}
.giiguy-purchase-heading h2 {max-width:720px;margin-bottom:0;}
.giiguy-purchase-shop-intro {max-width:470px;}
.giiguy-purchase-shop-intro p {margin:0 0 12px;color:var(--muted);}
.giiguy-purchase-shop-intro .text-link {font-size:.88rem;}
.giiguy-purchase-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:18px;}
.giiguy-purchase-card {display:flex;flex-direction:column;min-height:365px;padding:clamp(23px,2.6vw,32px);border:1px solid rgba(29,91,98,.12);border-top:6px solid #65bea8;border-radius:23px;background:rgba(255,255,255,.91);box-shadow:0 13px 28px rgba(27,82,88,.08);}
.giiguy-purchase-card:nth-child(2) {border-top-color:#ef9d78;}
.giiguy-purchase-card:nth-child(3) {border-top-color:#e5bd58;}
.giiguy-purchase-card:nth-child(4) {border-top-color:#a98bd6;}
.giiguy-purchase-card-top {display:flex;align-items:start;justify-content:space-between;gap:15px;margin-bottom:25px;}
.giiguy-purchase-kind {margin:4px 0 0!important;color:#2c7177!important;font-size:.66rem!important;font-weight:850;letter-spacing:.08em;line-height:1.35;}
.giiguy-purchase-price {margin:0!important;color:var(--ink-strong)!important;font-size:1.45rem!important;font-weight:850;line-height:1;white-space:nowrap;}
.giiguy-purchase-price span {font-size:.72rem;vertical-align:.34em;}
.giiguy-purchase-availability {margin:0!important;padding:8px 10px;border:1px solid rgba(31,111,118,.16);border-radius:999px;background:#e1f5ef;color:#21666d!important;font-size:.69rem!important;font-weight:850;letter-spacing:.08em;line-height:1;white-space:nowrap;}
.giiguy-purchase-card h3 {font-size:1.55rem;margin-bottom:14px;}
.giiguy-purchase-card>p {color:var(--muted);}
.giiguy-purchase-card .button {align-self:flex-start;margin-top:auto;padding:12px 17px;font-size:.82rem;}
.giiguy-purchase-card-featured {min-height:565px;}
.giiguy-product-gallery-trigger {position:relative;display:block;width:100%;margin:-7px 0 22px;padding:0;overflow:hidden;border:1px solid rgba(29,91,98,.14);border-radius:17px;background:linear-gradient(145deg,#e6f6f1,#eef3ff);color:var(--ink-strong);cursor:pointer;box-shadow:0 8px 18px rgba(26,82,89,.08);}
.giiguy-product-gallery-image {display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;padding:9px;overflow:hidden;}
.giiguy-product-gallery-image img {width:100%;height:100%;object-fit:contain;border-radius:11px;transition:transform .32s cubic-bezier(.22,1,.36,1);}
.giiguy-product-gallery-label {position:absolute;right:9px;bottom:9px;display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.94);font-size:.72rem;font-weight:800;line-height:1;box-shadow:0 4px 11px rgba(22,70,76,.14);}
.giiguy-product-gallery-trigger:hover .giiguy-product-gallery-image img {transform:scale(1.025);}
.giiguy-product-gallery-trigger:focus-visible {outline:4px solid rgba(197,55,91,.28);outline-offset:3px;}
.giiguy-product-gallery-dialog {width:min(960px,calc(100% - 34px));max-height:calc(100dvh - 34px);padding:0;border:0;border-radius:25px;background:#fffaf5;color:var(--ink);box-shadow:0 32px 90px rgba(11,46,52,.34);}
.giiguy-product-gallery-dialog::backdrop {background:rgba(9,37,42,.72);backdrop-filter:blur(4px);}
.giiguy-product-gallery-dialog-inner {padding:clamp(20px,3vw,34px);}
.giiguy-product-gallery-dialog-heading {display:flex;justify-content:flex-end;margin-bottom:12px;}
.giiguy-product-gallery-close {display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;padding:0;border:1px solid rgba(29,91,98,.14);border-radius:50%;background:#fff;color:var(--ink-strong);font-size:1.8rem;line-height:1;cursor:pointer;}
.giiguy-product-gallery-stage {display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:14px;}
.giiguy-product-gallery-stage.is-single {grid-template-columns:minmax(0,1fr);}
.giiguy-product-gallery-stage figure {margin:0;text-align:center;}
.giiguy-product-gallery-stage figure>img {width:100%;height:min(58dvh,610px);object-fit:contain;border-radius:17px;background:linear-gradient(145deg,#e7f4ef,#f2effc);}
.giiguy-product-gallery-arrow {display:grid;place-items:center;width:46px;height:46px;padding:0;border:1px solid rgba(29,91,98,.14);border-radius:50%;background:#fff;color:var(--ink-strong);font-size:1.35rem;cursor:pointer;box-shadow:0 7px 15px rgba(25,77,84,.1);}
.giiguy-product-gallery-close:hover,.giiguy-product-gallery-arrow:hover {background:#e6f6f1;}
.giiguy-product-gallery-close:focus-visible,.giiguy-product-gallery-arrow:focus-visible,.giiguy-product-gallery-thumbnails button:focus-visible {outline:4px solid rgba(197,55,91,.28);outline-offset:3px;}
.giiguy-product-gallery-thumbnails {display:flex;justify-content:center;gap:10px;margin-top:18px;}
.giiguy-product-gallery-thumbnails button {width:78px;aspect-ratio:1;padding:4px;overflow:hidden;border:2px solid transparent;border-radius:13px;background:#fff;cursor:pointer;opacity:.65;}
.giiguy-product-gallery-thumbnails button[aria-current="true"] {border-color:#c5375b;opacity:1;box-shadow:0 5px 13px rgba(197,55,91,.15);}
.giiguy-product-gallery-thumbnails img {width:100%;height:100%;object-fit:cover;border-radius:8px;}
body.product-gallery-open {overflow:hidden;}
.giiguy-purchase-note {display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:24px;padding:20px 24px;border:1px solid rgba(31,91,98,.12);border-radius:18px;background:rgba(255,255,255,.74);}
.giiguy-purchase-note p {margin:0;color:var(--muted);}
.giiguy-purchase-note strong {color:var(--ink-strong);}
.giiguy-purchase-note .text-link {flex:0 0 auto;}
.giiguy-launch-note {display:flex;align-items:center;justify-content:space-between;gap:clamp(24px,4vw,64px);margin-top:24px;padding:clamp(24px,3vw,36px);overflow:hidden;border:1px solid rgba(31,91,98,.13);border-radius:24px;background:linear-gradient(120deg,rgba(219,247,239,.92),rgba(235,240,255,.94));box-shadow:0 14px 30px rgba(27,82,88,.08);}
.giiguy-launch-note-copy {max-width:760px;}
.giiguy-launch-note .eyebrow {margin-bottom:12px;}
.giiguy-launch-note h3 {margin:0 0 10px;font-size:clamp(1.35rem,2.2vw,1.85rem);}
.giiguy-launch-note-copy>p:last-child {margin:0;color:var(--muted);}
.giiguy-launch-note .button {flex:0 0 auto;white-space:nowrap;}

.giiguy-about-grid {display:grid;grid-template-columns:minmax(290px,1.08fr) minmax(240px,300px) minmax(320px,1fr);grid-template-areas:"copy video benefits";gap:clamp(24px,3vw,44px);align-items:start;}
.giiguy-about-section {isolation:isolate;overflow:hidden;}
.giiguy-about-section::before {content:"";position:absolute;z-index:0;left:clamp(-48px,-2.5vw,-24px);bottom:-28px;width:min(76vw,1120px);aspect-ratio:3/1;pointer-events:none;background:url("books/giiguy/giiguy-background-serpent.png") center/contain no-repeat;opacity:.13;transform:scaleX(-1);transform-origin:center;}
.giiguy-about-copy {grid-area:copy;}
.giiguy-about-copy>p:not(.eyebrow) {max-width:700px;color:var(--muted);font-size:1.05rem;}
.giiguy-about-video {grid-area:video;position:relative;width:100%;max-width:300px;margin:0 auto;padding:9px;border:1px solid rgba(31,91,98,.14);border-radius:25px;background:rgba(255,255,255,.9);box-shadow:0 16px 34px rgba(43,79,85,.11);}
.giiguy-about-video-frame {position:relative;overflow:hidden;aspect-ratio:9/16;border-radius:17px;background:#17363a;}
.giiguy-about-video-player {width:100%;height:100%;background:#10272a;}
.giiguy-about-video video {display:block;width:100%;height:100%;object-fit:contain;background:#10272a;}
.giiguy-about-video figcaption {padding:10px 6px 2px;color:var(--muted);font-size:.82rem;text-align:center;}
.giiguy-benefit-panel {grid-area:benefits;padding:clamp(26px,4vw,42px);border:1px solid #d7c8ed;border-radius:24px;background:linear-gradient(145deg,#e9ddf8,#f7f2ff);box-shadow:0 14px 28px rgba(64,48,86,.07);}
.giiguy-benefit-panel h3 {font-size:1.3rem;}
.giiguy-benefit-panel ul {margin:19px 0 0;padding-left:22px;}
.giiguy-benefit-panel li {margin-bottom:9px;}

.giiguy-audience-section {isolation:isolate;overflow:hidden;}
.giiguy-audience-section::before {content:"";position:absolute;z-index:0;width:min(31vw,430px);aspect-ratio:1472/1069;right:clamp(32px,8vw,140px);top:clamp(38px,5vw,76px);pointer-events:none;background:url("books/giiguy/giiguy-background-coiled.png") center/contain no-repeat;opacity:.12;}
.giiguy-audience-grid {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:15px;margin-top:38px;}
.giiguy-audience-card {display:flex;align-items:center;min-height:135px;padding:24px;border:1px solid rgba(29,91,98,.11);border-radius:20px;background:#dff4e7;color:var(--ink-strong);font-weight:750;line-height:1.35;box-shadow:0 9px 19px rgba(32,82,89,.055);}
.giiguy-audience-card:nth-child(2) {background:#ffe4d7;}
.giiguy-audience-card:nth-child(3) {background:#dcefff;}
.giiguy-audience-card:nth-child(4) {background:#eadff8;}
.giiguy-audience-card:nth-child(5) {background:#ffecb9;}

.giiguy-gallery-heading {display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:34px;}
.giiguy-gallery-heading h2 {margin-bottom:0;}
.giiguy-gallery-heading>p {max-width:430px;color:var(--muted);}
.giiguy-gallery {display:grid;grid-auto-flow:column;grid-auto-columns:minmax(250px,29%);gap:18px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;padding:4px 4px 19px;scrollbar-color:#7cbeb4 rgba(255,255,255,.65);}
.giiguy-gallery-item {display:block;overflow:hidden;scroll-snap-align:start;border:4px solid rgba(255,255,255,.94);border-radius:21px;background:#fff;box-shadow:0 12px 25px rgba(28,83,90,.11);}
.giiguy-gallery-item img {width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;transition:transform .3s cubic-bezier(.22,1,.36,1);}
.giiguy-gallery-item:hover img {transform:scale(1.018);}

.giiguy-creator-grid {display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:38px;}
.giiguy-creator-card {overflow:hidden;border:1px solid rgba(29,91,98,.11);border-top:6px solid #66c3ac;border-radius:21px;background:#fff;box-shadow:0 11px 23px rgba(28,83,89,.065);}
.giiguy-creator-card:nth-child(2) {border-top-color:#f1a078;}
.giiguy-creator-card:nth-child(3) {border-top-color:#a88bd6;}
.giiguy-creator-photo {position:relative;isolation:isolate;display:flex;justify-content:center;overflow:hidden;aspect-ratio:16/10;background:#e8f3ef;}
.giiguy-creator-photo::before {content:"";position:absolute;inset:-16px;z-index:0;background-position:center;background-size:cover;filter:blur(13px);opacity:.42;transform:scale(1.08);}
.giiguy-creator-photo img {position:relative;z-index:1;width:100%;height:100%;object-fit:cover;transition:transform .35s cubic-bezier(.22,1,.36,1);}
.giiguy-creator-card:hover .giiguy-creator-photo img {transform:scale(1.018);}
.giiguy-creator-photo-anna img {object-position:64% 50%;}
.giiguy-creator-photo-micklo::before {background-image:url("books/giiguy/micklo-jarrett.webp");background-position:50% 28%;}
.giiguy-creator-photo-elisha::before {background-image:url("books/giiguy/elisha-nelson.webp");background-position:50% 24%;}
.giiguy-creator-photo-micklo img {width:78%;object-position:50% 28%;}
.giiguy-creator-photo-elisha img {width:86%;object-position:50% 24%;}
.giiguy-creator-copy {padding:clamp(26px,3vw,36px);}
.giiguy-creator-card h3 {font-size:1.35rem;margin-bottom:8px;}
.giiguy-creator-role {min-height:48px;color:#2e7378;font-size:.82rem;font-weight:800;line-height:1.45;}
.giiguy-creator-card p:last-child {color:var(--muted);}

.giiguy-document-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:38px;}
.giiguy-document-card {display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);gap:28px;padding:24px;border:1px solid #cfe5df;border-radius:24px;background:#fffefa;box-shadow:0 13px 28px rgba(27,82,88,.08);}
.giiguy-document-preview {display:grid;place-items:center;overflow:hidden;min-height:265px;border:1px solid rgba(28,91,97,.11);border-radius:17px;background:#ddf2f4;}
.giiguy-document-preview img {width:100%;height:100%;object-fit:cover;}
.giiguy-document-preview-portrait img {object-fit:contain;background:#b7e8ed;}
.giiguy-document-card>div:last-child {display:flex;flex-direction:column;align-items:flex-start;}
.giiguy-document-meta {margin-bottom:10px;color:#2d7278!important;font-size:.68rem!important;font-weight:850;letter-spacing:.08em;}
.giiguy-document-card h3 {font-size:1.45rem;margin-bottom:11px;}
.giiguy-document-card p {color:var(--muted);}
.giiguy-document-actions {display:flex;align-items:center;flex-wrap:wrap;gap:19px;margin-top:auto;padding-top:20px;}
.giiguy-document-actions .button {padding:12px 18px;font-size:.84rem;}
.giiguy-document-actions .text-link {font-size:.84rem;}

@media(max-width:1050px) {
  .giiguy-purchase-grid {grid-template-columns:repeat(2,1fr);}
  .giiguy-about-grid {grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"copy benefits" "video video";}
  .giiguy-about-video {width:min(100%,340px);margin-top:10px;}
  .giiguy-audience-grid {grid-template-columns:repeat(3,1fr);}
  .giiguy-document-grid {grid-template-columns:1fr;}
}
@media(max-width:820px) {
  .books-catalogue-grid {grid-template-columns:1fr;}
  .giiguy-hero-grid {grid-template-columns:1fr;}
  .giiguy-about-grid {grid-template-columns:1fr;grid-template-areas:"copy" "video" "benefits";}
  .giiguy-purchase-heading {display:block;}
  .giiguy-purchase-shop-intro {margin-top:16px;}
  .giiguy-purchase-note {align-items:flex-start;flex-direction:column;}
  .giiguy-launch-note {align-items:flex-start;flex-direction:column;}
  .giiguy-about-section::before {left:-18vw;bottom:-8px;width:135vw;opacity:.09;}
  .giiguy-audience-section::before {width:min(58vw,280px);right:-7vw;top:86px;opacity:.08;}
  .giiguy-cover-card {width:min(100%,520px);margin-inline:auto;transform:none;}
  .giiguy-gallery {grid-auto-columns:minmax(240px,72%);}
  .giiguy-creator-grid {grid-template-columns:1fr;}
  .giiguy-creator-role {min-height:0;}
}
@media(max-width:620px) {
  .giiguy-purchase-grid {grid-template-columns:1fr;}
  .giiguy-purchase-card,.giiguy-purchase-card-featured {min-height:0;}
  .giiguy-purchase-card .button {width:100%;margin-top:14px;}
  .giiguy-launch-note .button {width:100%;text-align:center;}
  .giiguy-product-gallery-image {aspect-ratio:16/11;}
  .giiguy-product-gallery-dialog {width:calc(100% - 18px);max-height:calc(100dvh - 18px);border-radius:19px;}
  .giiguy-product-gallery-dialog-inner {padding:17px 13px 18px;}
  .giiguy-product-gallery-dialog-heading {margin-bottom:14px;}
  .giiguy-product-gallery-stage {grid-template-columns:38px minmax(0,1fr) 38px;gap:5px;}
  .giiguy-product-gallery-stage figure>img {height:min(55dvh,500px);border-radius:13px;}
  .giiguy-product-gallery-arrow {width:38px;height:38px;font-size:1.1rem;}
  .giiguy-product-gallery-thumbnails button {width:66px;}
  .giiguy-audience-grid {grid-template-columns:1fr;}
  .giiguy-audience-card {min-height:0;}
  .giiguy-gallery-heading {display:block;}
  .giiguy-gallery-heading>p {margin-top:15px;}
  .giiguy-gallery {grid-auto-columns:84%;}
  .giiguy-about-video {margin-top:6px;padding:8px;border-radius:21px;}
  .giiguy-about-video-frame {border-radius:14px;}
  .giiguy-document-card {grid-template-columns:1fr;padding:19px;}
  .giiguy-document-preview {min-height:220px;}
  .giiguy-document-actions {align-items:flex-start;flex-direction:column;width:100%;}
  .giiguy-document-actions .button {width:100%;}
}

/* Resources page: category-led destinations with clear external-link context. */
.page-resources .page-hero {
  position:relative;
  isolation:isolate;
  background-image:
    radial-gradient(circle at 90% 18%,rgba(174,139,216,.2) 0 10%,transparent 10.4%),
    linear-gradient(112deg,rgba(227,244,255,.9) 0%,rgba(238,231,255,.88) 48%,rgba(225,245,233,.92) 100%),
    url("services-activity-letter-resources.webp");
  background-position:center,center,center 47%;
  background-size:auto,auto,cover;
}

.page-resources .page-hero .eyebrow { background:#e8def8; }
.resource-intro { max-width:780px; }
.resource-intro h2 { max-width:650px; }

.resource-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(18px,2.6vw,30px);
  margin-top:42px;
}

.resource-card {
  position:relative;
  isolation:isolate;
  display:flex;
  flex-direction:column;
  min-height:390px;
  overflow:hidden;
  padding:clamp(25px,3.5vw,38px);
  border:1px solid rgba(31,91,98,.12);
  border-radius:26px;
  box-shadow:0 13px 28px rgba(27,82,88,.08);
}

.resource-card::after {
  content:"";
  position:absolute;
  z-index:-1;
  width:170px;
  height:170px;
  right:-68px;
  top:-72px;
  border:26px solid rgba(255,255,255,.38);
  border-radius:50%;
}

.resource-card:nth-child(1) { background:linear-gradient(145deg,#dff4e7,#eefaf3); }
.resource-card:nth-child(2) { background:linear-gradient(145deg,#ffe7d9,#fff4ed); }
.resource-card:nth-child(3) { background:linear-gradient(145deg,#e8e1fa,#f5f1ff); }

.resource-card-with-images {
  --resource-backdrop:#dff4e7;
  --resource-wash-top:rgba(226,247,237,.32);
  --resource-wash-middle:rgba(231,248,240,.66);
  --resource-wash-bottom:rgba(238,250,245,.93);
  background:var(--resource-backdrop);
}

.resource-card-giiguy {
  --resource-backdrop:#dff4e7;
  --resource-wash-top:rgba(226,247,237,.48);
  --resource-wash-middle:rgba(231,248,240,.74);
  --resource-wash-bottom:rgba(238,250,245,.95);
}

.resource-card-social {
  --resource-backdrop:#e8e1fa;
  --resource-wash-top:rgba(235,227,251,.3);
  --resource-wash-middle:rgba(242,236,253,.65);
  --resource-wash-bottom:rgba(248,245,255,.93);
}

.resource-card-social .resource-card-backdrop img { object-position:center top; }
.resource-card-giiguy .resource-card-backdrop img.is-active { opacity:.48; }
.resource-card-giiguy .resource-card-backdrop img:nth-child(1) { object-position:center 52%; }
.resource-card-giiguy .resource-card-backdrop img:nth-child(2) { object-position:center 48%; }
.resource-card-giiguy .resource-card-backdrop img:nth-child(3) { object-position:center 44%; }
.resource-card-with-images::after { z-index:1; }
.resource-card-with-images > :not(.resource-card-backdrop) { position:relative; z-index:2; }

.resource-card-backdrop {
  position:absolute;
  z-index:0;
  inset:0;
  overflow:hidden;
  background:var(--resource-backdrop);
  pointer-events:none;
}

.resource-card-backdrop::after {
  content:"";
  position:absolute;
  z-index:1;
  inset:0;
  background:linear-gradient(180deg,var(--resource-wash-top) 0%,var(--resource-wash-middle) 43%,var(--resource-wash-bottom) 82%);
}

.resource-card-backdrop img {
  position:absolute;
  z-index:0;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  object-fit:cover;
  object-position:center;
  opacity:0;
  filter:saturate(.88) contrast(.92);
  transform:scale(1.06) translateX(1.5%);
  transition:opacity .75s ease,transform 4.3s linear;
}

.resource-card-backdrop img.is-active {
  opacity:.64;
  transform:scale(1.12) translateX(-1.5%);
}

.resource-card-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:31px;
}

.resource-icon {
  display:grid;
  place-items:center;
  width:60px;
  height:60px;
  border:1px solid rgba(23,98,107,.12);
  border-radius:18px;
  background:rgba(255,255,255,.78);
  color:#17626b;
  box-shadow:0 6px 14px rgba(27,82,88,.07);
}

.resource-icon svg {
  width:30px;
  height:30px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.resource-number {
  color:rgba(23,63,70,.62);
  font-size:.76rem;
  font-weight:850;
  letter-spacing:.12em;
}

.resource-card h2 {
  font-size:clamp(1.45rem,2.2vw,1.78rem);
  margin-bottom:15px;
}

.resource-card p { color:#435e65; }
.resource-card .button { align-self:flex-start; margin-top:auto; }
.resource-card-actions {display:flex;align-items:center;gap:17px;flex-wrap:wrap;margin-top:auto;padding-top:24px;}
.resource-card-actions .button {margin-top:0;}
.resource-card-actions .text-link {font-size:.86rem;}

@media(hover:hover) and (pointer:fine) {
  .resource-card { transition:transform .24s cubic-bezier(.22,1,.36,1),box-shadow .24s ease; }
  .resource-card:hover,
  .motion-ready .resource-card.is-revealed:hover {
    transform:translateY(-5px);
    box-shadow:0 18px 34px rgba(27,82,88,.13);
  }
}

@media(max-width:900px) {
  .resource-grid { grid-template-columns:1fr; }
  .resource-card { min-height:0; }
  .resource-card .button { margin-top:24px; }
}

@media(max-width:570px) {
  .resource-grid { margin-top:30px; }
  .resource-card { padding:25px 22px; border-radius:22px; }
  .resource-card-top { margin-bottom:23px; }
  .resource-card .button { width:100%; }
  .resource-card-actions {align-items:flex-start;flex-direction:column;width:100%;}
  .resource-card-actions .text-link {margin-left:2px;}
}

@media(prefers-reduced-motion:reduce) {
  .giiguy-home-callout,.giiguy-home-character,.giiguy-home-grass {transition:none!important;}
  .giiguy-home-callout:hover {transform:none!important;}
  .giiguy-home-callout:is(:hover,:focus-visible) .giiguy-home-character {animation:none!important;transform:translate3d(0,0,0)!important;}
  .resource-card { transition:none !important; }
  .resource-card-backdrop img { transition:none !important; transform:none !important; }
  .resource-card-backdrop img.is-active { opacity:.6; }
}

@media(max-width:420px) {
  .team-profile > img,
  .profile-photo-frame,
  .profile-placeholder,
  .zac-photo-button {
    width: 128px;
    height: 128px;
  }
}

/* Four delivery locations supplied in the returned website copy. */
.three { grid-template-columns: repeat(4, minmax(0, 1fr)); }

/* A softly washed photograph gives the home-page locations section context
   while keeping the heading and four location cards easy to read. */
body.page-home main > section.section.home-where-section {
  background-image:
    linear-gradient(110deg,rgba(255,252,246,.76),rgba(250,247,244,.72) 54%,rgba(240,250,247,.82)),
    url("home-where-gym.webp");
  background-position:center,center 46%;
  background-size:auto,cover;
}

.home-where-section .three > div {
  box-shadow:0 14px 28px rgba(24,72,80,.11);
}

@media(max-width:760px) {
  .three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media(max-width:570px) {
  .three { grid-template-columns: 1fr; }
}

/* Scroll-led page motion inspired by the restrained movement on HQB.
   The motion-ready class is added only after JavaScript prepares the page,
   keeping every word visible when scripting is unavailable. */
.header,
.header .head-inner,
.header .brand img {
  transition: background-color .3s ease, box-shadow .3s ease, min-height .3s ease, width .3s ease, height .3s ease;
}

.header.is-scrolled {
  background: rgba(255,253,248,.9);
  box-shadow: 0 11px 28px rgba(21,71,80,.12);
  -webkit-backdrop-filter: blur(14px) saturate(1.08);
  backdrop-filter: blur(14px) saturate(1.08);
}

@media(min-width:1041px) {
  .header.is-scrolled .head-inner { min-height: 78px; }
  .header.is-scrolled .brand img { width: 60px; height: 60px; }
}

.motion-ready [data-reveal] {
  opacity: 0;
  transform: translate3d(0,24px,0);
  transition-property: opacity, transform;
  transition-duration: .72s;
  transition-delay: var(--reveal-delay,0ms);
  transition-timing-function: cubic-bezier(.22,1,.36,1);
  will-change: opacity, transform;
}

.motion-ready [data-reveal="visual"] {
  transform: translate3d(0,18px,0) scale(.975);
  transition-duration: .82s;
}

.motion-ready [data-reveal].is-revealed {
  opacity: 1;
  transform: translate3d(0,0,0) scale(1);
  will-change: auto;
}

.text-link span[aria-hidden="true"],
.button span[aria-hidden="true"] {
  display: inline-block;
  transition: transform .2s cubic-bezier(.22,1,.36,1);
}

.text-link:hover span[aria-hidden="true"] { transform: translateX(4px); }
.button:hover span[aria-hidden="true"] { transform: translate(2px,-2px); }

@media(hover:hover) and (pointer:fine) {
  .service-list > li,
  .three > div,
  .step-list > li,
  .team-member-card,
  .two-cards > .simple-panel {
    transition: transform .24s cubic-bezier(.22,1,.36,1), box-shadow .24s ease, border-color .24s ease;
  }

  .service-list > li:hover,
  .three > div:hover,
  .step-list > li:hover,
  .team-member-card:hover,
  .two-cards > .simple-panel:hover,
  .motion-ready .service-list > li.is-revealed:hover,
  .motion-ready .three > div.is-revealed:hover,
  .motion-ready .step-list > li.is-revealed:hover,
  .motion-ready .team-member-card.is-revealed:hover,
  .motion-ready .two-cards > .simple-panel.is-revealed:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 30px rgba(27,82,88,.12);
  }

  .motion-ready .button[data-reveal].is-revealed:hover { transform: translateY(-2px); }
}

@media(max-width:570px) {
  .motion-ready [data-reveal] { transform: translate3d(0,17px,0); }
  .motion-ready [data-reveal="visual"] { transform: translate3d(0,13px,0) scale(.985); }
}

@media(prefers-reduced-motion:reduce) {
  .header,
  .header .head-inner,
  .header .brand img,
  .text-link span[aria-hidden="true"],
  .button span[aria-hidden="true"],
  .service-list > li,
  .three > div,
  .step-list > li,
  .team-member-card,
  .two-cards > .simple-panel {
    transition: none !important;
  }

  .motion-ready [data-reveal],
  .motion-ready [data-reveal="visual"],
  .motion-ready [data-reveal].is-revealed {
    opacity: 1 !important;
    transform: none !important;
  }
}



/* Sally's source and shocked portraits share a single, immovable crop.
   Her original portrait uses object-position: center top, whereas the default
   reaction layer centres its crop. That mismatch made her face jump upwards.
   Keep both at top alignment and fade expressions without a shake/translation. */
.team-member-card[data-team-member="sally"] .profile-photo-frame > img,
.team-member-card[data-team-member="sally"] .profile-photo-frame > img.fgt-portrait-reaction {
  object-position: center top;
}
.team-member-card[data-team-member="sally"] .profile-photo-frame > img.fgt-portrait-reaction {
  transition: opacity .28s cubic-bezier(.22,.61,.36,1);
}
.team-member-card[data-team-member="sally"].is-team-jolting .profile-photo-frame {
  animation: none;
  transform: none;
}

/* Lailanie eye-area Easter egg: the hit target stays invisible until keyboard focus. */
.team-member-card[data-team-member="lailanie"] .profile-photo-frame {
  position: relative;
  overflow: visible;
}

.team-member-card[data-team-member="lailanie"] .profile-photo-frame > img {
  border-radius: 14px;
}

.lailanie-heart-trigger {
  position: absolute;
  z-index: 5;
  top: 20%;
  left: 27%;
  width: 47%;
  height: 26%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.lailanie-heart-trigger:focus-visible {
  outline: 3px solid #c93c62;
  outline-offset: 3px;
  background: rgba(255,255,255,.16);
}

.lailanie-heart-trigger.is-sending-love {
  animation: lailanie-eye-twinkle .34s ease-out;
}

.lailanie-floating-heart {
  position: fixed;
  z-index: 1002;
  left: 0;
  top: 0;
  display: block;
  color: var(--heart-colour, #c93c62);
  font: 900 clamp(17px,1.8vw,25px)/1 Georgia,serif;
  text-shadow: 0 2px 4px rgba(63,33,44,.16), 0 0 0 rgba(255,255,255,0);
  pointer-events: none;
  opacity: 0;
  transform: translate3d(var(--heart-x),var(--heart-y),0) translate(-50%,-50%) scale(.4);
  animation: lailanie-heart-rise 1.18s cubic-bezier(.2,.72,.28,1) var(--heart-delay,0ms) forwards;
  will-change: transform,opacity;
}

@keyframes lailanie-heart-rise {
  0% {
    opacity: 0;
    transform: translate3d(var(--heart-x),var(--heart-y),0) translate(-50%,-50%) scale(.4) rotate(0deg);
  }
  14% { opacity: 1; }
  72% { opacity: .94; }
  100% {
    opacity: 0;
    transform: translate3d(calc(var(--heart-x) + var(--heart-drift)),calc(var(--heart-y) - var(--heart-rise)),0) translate(-50%,-50%) scale(var(--heart-scale)) rotate(var(--heart-rotation));
  }
}

@keyframes lailanie-eye-twinkle {
  0%,100% { box-shadow: none; }
  45% { box-shadow: 0 0 0 5px rgba(233,111,140,.18), 0 0 18px rgba(233,111,140,.42); }
}

@media (max-width:570px) {
  .team-member-card[data-team-member="lailanie"] .profile-photo-frame > img { border-radius: 11px; }
  .lailanie-heart-trigger { top: 18%; left: 23%; width: 54%; height: 31%; }
}

@media (prefers-reduced-motion:reduce) {
  .lailanie-heart-trigger.is-sending-love { animation: none; }
  .lailanie-floating-heart {
    animation-name: lailanie-heart-gentle;
    animation-duration: .58s;
    will-change: opacity;
  }
}

@keyframes lailanie-heart-gentle {
  0% {
    opacity: 0;
    transform: translate3d(var(--heart-x),var(--heart-y),0) translate(-50%,-50%) scale(.75);
  }
  30%,70% { opacity: 1; }
  100% {
    opacity: 0;
    transform: translate3d(calc(var(--heart-x) + var(--heart-drift)),calc(var(--heart-y) - var(--heart-rise)),0) translate(-50%,-50%) scale(.9);
  }
}
@media (prefers-reduced-motion: reduce) {
  .team-member-card[data-team-member="sally"] .profile-photo-frame > img.fgt-portrait-reaction {
    transition: none;
  }
}
