:root{--purple:#641667;--purple-2:#7e2b82;--purple-dark:#34103a;--lavender:#f4ecf5;--lilac:#dcbfe0;--gold:#d8a629;--ink:#221d24;--muted:#6d6670;--cream:#fcfaf7;--white:#fff;--radius:28px;--shadow:0 24px 60px rgba(52,16,58,.15)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.6}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.skip-link{position:fixed;z-index:999;top:12px;left:12px;transform:translateY(-150%);background:#fff;padding:10px 16px;border-radius:10px}.skip-link:focus{transform:none}.site-header{height:92px;padding:0 clamp(24px,5vw,76px);display:flex;align-items:center;justify-content:space-between;background:rgba(252,250,247,.92);backdrop-filter:blur(14px);position:sticky;top:0;z-index:50;border-bottom:1px solid rgba(100,22,103,.1)}.brand{display:flex;align-items:center;gap:13px}.brand img{width:58px;height:58px;object-fit:contain}.brand strong{display:block;font-family:Manrope,sans-serif;color:var(--purple);font-size:17px;line-height:1.1}.brand small{color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.site-header nav{display:flex;align-items:center;gap:30px;font-weight:600;font-size:14px}.site-header nav>a:not(.nav-cta){position:relative}.site-header nav>a:not(.nav-cta)::after{content:"";position:absolute;left:0;bottom:-7px;width:0;height:2px;background:var(--gold);transition:.25s}.site-header nav>a:hover::after{width:100%}.nav-cta{background:var(--purple);color:white;padding:13px 20px;border-radius:999px;box-shadow:0 10px 24px rgba(100,22,103,.2)}.menu-button{display:none;background:none;border:0}.hero{min-height:calc(100vh - 92px);display:grid;grid-template-columns:1.02fr .98fr;gap:5vw;align-items:center;padding:clamp(60px,8vw,110px) clamp(24px,6vw,92px);overflow:hidden}.hero-copy{max-width:690px}.eyebrow{margin:0 0 23px;text-transform:uppercase;letter-spacing:.19em;font-weight:700;font-size:12px;color:var(--purple);display:flex;align-items:center;gap:12px}.eyebrow span{display:block;width:28px;height:2px;background:var(--gold)}h1,h2{font-family:Manrope,sans-serif;letter-spacing:-.05em;line-height:1.03;margin:0}h1{font-size:clamp(48px,5.5vw,82px)}h1 em,h2 em{font-family:Georgia,serif;font-weight:400;color:var(--purple);letter-spacing:-.03em}.hero-lede{max-width:610px;font-size:clamp(17px,1.5vw,21px);color:var(--muted);margin:30px 0 34px}.hero-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:18px;border:0;cursor:pointer;border-radius:999px;padding:16px 24px;font-weight:700}.button-primary{background:var(--purple);color:white;box-shadow:0 15px 35px rgba(100,22,103,.25)}.button-primary:hover,.nav-cta:hover{background:var(--purple-2);transform:translateY(-2px)}.text-link{font-weight:700}.text-link span{margin-left:8px;color:var(--purple)}.hero-trust{display:grid;grid-template-columns:1fr 1fr;margin-top:54px;border-top:1px solid var(--lilac)}.hero-trust div{padding:22px 24px 0 0}.hero-trust div+div{border-left:1px solid var(--lilac);padding-left:25px}.hero-trust strong,.hero-trust span{display:block}.hero-trust strong{color:var(--purple);margin-bottom:5px}.hero-trust span{font-size:13px;color:var(--muted);line-height:1.5}.hero-visual{position:relative;min-height:650px}.hero-main{width:100%;height:650px;object-fit:cover;border-radius:180px 24px 180px 24px;box-shadow:var(--shadow)}.hero-visual::before{content:"";position:absolute;width:250px;height:250px;border:1px solid var(--gold);border-radius:50%;right:-80px;top:-55px;z-index:-1}.hero-card{position:absolute;left:-55px;bottom:60px;background:white;padding:18px 24px;border-radius:20px;display:flex;gap:14px;align-items:center;box-shadow:var(--shadow)}.hero-card .heart{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--lavender);color:var(--purple)}.hero-card strong,.hero-card small{display:block}.hero-card small{color:var(--muted)}.hero-stamp{position:absolute;right:-20px;top:40px;width:115px;height:115px;border-radius:50%;background:var(--purple);color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transform:rotate(7deg);border:7px solid var(--cream)}.hero-stamp strong{font:800 30px Manrope}.hero-stamp span{font-size:10px;text-transform:uppercase;letter-spacing:.11em}.purpose-strip{background:var(--purple);color:white;display:flex;justify-content:center;gap:38px;padding:19px 24px;text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:12px}.purpose-strip p{margin:0}.purpose-strip i{color:var(--gold)}.section{padding:clamp(80px,10vw,150px) clamp(24px,6vw,92px)}.section-heading{display:grid;grid-template-columns:1.35fr .65fr;gap:6vw;align-items:end;margin-bottom:65px}.section-heading h2,.faq h2{font-size:clamp(42px,4.6vw,68px)}.section-heading>p{font-size:18px;color:var(--muted);margin:0 0 7px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ded5df;border-left:1px solid #ded5df}.service-card{min-height:375px;padding:34px;border-right:1px solid #ded5df;border-bottom:1px solid #ded5df;position:relative;transition:.3s;background:rgba(255,255,255,.35)}.service-card:hover{background:white;transform:translateY(-5px);box-shadow:var(--shadow);z-index:2}.service-card.featured{background:var(--purple);color:white}.service-card.featured p{color:#eadbea}.service-number{position:absolute;right:28px;top:28px;font-weight:700;color:#9c879e}.service-icon{font:700 28px Manrope;color:var(--purple);width:58px;height:58px;border-radius:18px;background:var(--lavender);display:grid;place-items:center;margin-bottom:60px}.featured .service-icon{background:rgba(255,255,255,.12);color:white}.service-card h3{font:700 23px Manrope;margin:0 0 13px}.service-card p{color:var(--muted);margin:0 0 22px}.service-card a{font-weight:700;font-size:14px;color:var(--purple)}.featured a{color:var(--gold)}.approach{background:var(--purple-dark);color:white;display:grid;grid-template-columns:1fr 1fr;min-height:850px}.approach-image{position:relative;min-height:720px}.approach-image img{width:100%;height:100%;object-fit:cover;opacity:.82}.approach-image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(52,16,58,.78))}.approach-image>p{position:absolute;z-index:2;bottom:45px;left:45px;margin:0}.approach-image strong,.approach-image span{display:block}.approach-image strong{font:700 22px Manrope}.approach-image span{opacity:.8}.approach-copy{padding:clamp(60px,8vw,120px)}.eyebrow.light{color:#eadbea}.approach h2,.programmes h2,.contact h2{font-size:clamp(42px,4.7vw,70px)}.approach h2 em,.programmes h2 em,.contact h2 em{color:#d8b0da}.approach-intro{font-size:18px;color:#d8c9d9;margin:30px 0 45px}.steps{list-style:none;padding:0;margin:0}.steps li{display:grid;grid-template-columns:55px 1fr;gap:18px;padding:24px 0;border-top:1px solid rgba(255,255,255,.17)}.steps li>span{color:var(--gold);font-weight:700}.steps h3{margin:0 0 6px;font:700 19px Manrope}.steps p{margin:0;color:#cbbdcd;font-size:14px}.spaces{background:white}.gallery{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:320px 320px;gap:20px}.gallery figure{margin:0;position:relative;overflow:hidden;border-radius:var(--radius)}.gallery-large{grid-row:1/3}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.gallery figure:hover img{transform:scale(1.04)}.gallery figure::after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,rgba(36,8,41,.78))}.gallery figcaption{position:absolute;z-index:2;left:28px;bottom:24px;color:white}.gallery figcaption strong,.gallery figcaption span{display:block}.gallery figcaption strong{font:700 21px Manrope}.gallery figcaption span{opacity:.82;font-size:14px}.programmes{display:grid;grid-template-columns:.9fr 1.1fr;background:var(--purple);color:white;padding:clamp(80px,10vw,140px) clamp(24px,7vw,105px);gap:8vw}.programme-intro>p:last-child{color:#dfcfe0;font-size:18px;max-width:520px}.programme-list article{display:grid;grid-template-columns:58px 1fr;gap:24px;padding:28px 0;border-bottom:1px solid rgba(255,255,255,.2)}.programme-list article>span{width:55px;height:55px;border-radius:18px;background:var(--gold);color:var(--purple-dark);display:grid;place-items:center;font-size:23px}.programme-list h3{font:700 24px Manrope;margin:0 0 7px}.programme-list p{margin:0;color:#dfcfe0}.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw}.faq-intro>p:last-child{color:var(--muted);font-size:18px}.accordion details{border-top:1px solid #d9ceda;padding:0}.accordion details:last-child{border-bottom:1px solid #d9ceda}.accordion summary{cursor:pointer;list-style:none;padding:25px 0;font:700 18px Manrope;display:flex;justify-content:space-between;gap:20px}.accordion summary::-webkit-details-marker{display:none}.accordion summary span{font-size:24px;color:var(--purple);transition:.25s}.accordion details[open] summary span{transform:rotate(45deg)}.accordion details p{margin:-5px 50px 25px 0;color:var(--muted)}.contact{margin:0 clamp(18px,3vw,45px) 45px;border-radius:40px;background:var(--purple-dark);color:white;padding:clamp(60px,8vw,110px);display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center;position:relative;overflow:hidden}.contact::after{content:"GPC";position:absolute;right:-30px;bottom:-115px;font:800 240px Manrope;color:rgba(255,255,255,.035)}.contact-copy>p:last-child{color:#d9cadb;font-size:18px}.contact-form{position:relative;z-index:2;background:white;color:var(--ink);padding:32px;border-radius:28px;box-shadow:var(--shadow)}.contact-form label{display:block;font-size:13px;font-weight:700;color:var(--purple);margin-bottom:18px}.contact-form input,.contact-form textarea{display:block;width:100%;border:0;border-bottom:1px solid #d8ced9;background:transparent;padding:10px 0;color:var(--ink);outline:none}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--purple)}.button-gold{width:100%;background:var(--gold);color:var(--purple-dark);margin-top:8px}.form-note{font-size:11px;color:var(--muted);text-align:center;margin:12px 0 0}footer{padding:65px clamp(24px,6vw,92px) 28px;display:grid;grid-template-columns:2fr 1fr 1fr;gap:60px;background:#f1eaf2;color:var(--purple-dark)}.footer-brand{display:flex;gap:18px}.footer-brand img{width:80px;height:80px}.footer-brand strong{font:700 20px Manrope}.footer-brand p{max-width:390px;color:var(--muted);margin:8px 0}footer h3{font:700 13px Manrope;text-transform:uppercase;letter-spacing:.15em;margin:0 0 17px}footer>div:not(.footer-brand) a{display:block;margin:8px 0;color:var(--muted)}.copyright{grid-column:1/-1;border-top:1px solid #d7c9d9;padding-top:25px;margin:20px 0 0;color:var(--muted);font-size:13px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}.reveal.is-visible{opacity:1;transform:none}
@media (max-width:1000px){.site-header nav{position:absolute;top:91px;left:0;right:0;background:var(--cream);padding:24px;display:none;flex-direction:column;align-items:stretch;box-shadow:var(--shadow)}.site-header nav.open{display:flex}.menu-button{display:flex;width:42px;height:42px;flex-direction:column;justify-content:center;gap:5px;align-items:center;border:1px solid #dbcddd;border-radius:50%}.menu-button span{width:17px;height:2px;background:var(--purple)}.menu-button b{position:absolute;clip:rect(0 0 0 0)}.hero{grid-template-columns:1fr;min-height:auto}.hero-copy{max-width:790px}.hero-visual{min-height:540px}.hero-main{height:540px}.service-grid{grid-template-columns:repeat(2,1fr)}.approach{grid-template-columns:1fr}.approach-image{min-height:650px}.section-heading,.programmes,.faq,.contact{grid-template-columns:1fr}.gallery{grid-template-columns:1fr 1fr;grid-template-rows:500px 300px}.gallery-large{grid-column:1/3;grid-row:auto}.programmes{gap:35px}.contact{gap:40px}.contact-form{max-width:650px}footer{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media (max-width:650px){.site-header{height:76px;padding:0 18px}.brand img{width:48px;height:48px}.brand small{display:none}.site-header nav{top:75px}.hero{padding:55px 20px 80px}.hero-actions{align-items:flex-start;flex-direction:column}.hero-trust{grid-template-columns:1fr}.hero-trust div+div{border-left:0;padding-left:0}.hero-visual{min-height:440px}.hero-main{height:440px;border-radius:100px 20px 100px 20px}.hero-card{left:12px;bottom:22px}.hero-stamp{right:6px;top:18px;width:92px;height:92px}.purpose-strip{justify-content:flex-start;overflow:hidden;white-space:nowrap}.section{padding:80px 20px}.section-heading{grid-template-columns:1fr;gap:25px;margin-bottom:42px}.service-grid{grid-template-columns:1fr}.service-card{min-height:auto}.approach-image{min-height:480px}.approach-copy{padding:70px 20px}.gallery{display:block}.gallery figure{height:360px;margin-bottom:16px}.programmes{padding:80px 20px}.faq{gap:45px}.contact{margin:0 12px 24px;padding:60px 20px;border-radius:28px}.contact-form{padding:25px 20px}footer{grid-template-columns:1fr;padding:55px 20px 24px;gap:30px}.footer-brand{grid-column:auto}.copyright{grid-column:1}.footer-brand img{width:62px;height:62px}}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.reveal{opacity:1;transform:none;transition:none}.gallery img,.button-primary,.nav-cta{transition:none}}

/* Brand mark emphasis */
.brand img{width:66px;height:66px}
.contact-seal{position:absolute;right:44px;top:36px;width:110px;height:110px;object-fit:contain;opacity:.13;filter:grayscale(1) brightness(4)}
@media (max-width:650px){.brand img{width:52px;height:52px}.contact-seal{width:78px;height:78px;right:18px;top:18px}}

/* Purposeful motion */
:root{--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1)}
.hero .eyebrow,.hero h1,.hero-lede,.hero-actions,.hero-trust{opacity:0;transform:translateY(18px)}
.hero.hero-ready .eyebrow,.hero.hero-ready h1,.hero.hero-ready .hero-lede,.hero.hero-ready .hero-actions,.hero.hero-ready .hero-trust{opacity:1;transform:translateY(0);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}
.hero.hero-ready h1{transition-delay:70ms}.hero.hero-ready .hero-lede{transition-delay:130ms}.hero.hero-ready .hero-actions{transition-delay:190ms}.hero.hero-ready .hero-trust{transition-delay:250ms}
.hero-visual{clip-path:inset(0 0 100% 0);transform:translateY(20px)}
.hero.hero-ready .hero-visual{clip-path:inset(0 0 0 0);transform:translateY(0);transition:clip-path 1s var(--ease-in-out) 90ms,transform .9s var(--ease-out) 90ms}
.hero-card,.hero-stamp{will-change:transform}.hero.hero-ready .hero-card{animation:gentle-float 5s ease-in-out 1.2s infinite}.hero.hero-ready .hero-stamp{animation:badge-float 6s ease-in-out 1.35s infinite}
@keyframes gentle-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes badge-float{0%,100%{transform:rotate(7deg) translateY(0)}50%{transform:rotate(5deg) translateY(-6px)}}
.button,.nav-cta,.menu-button,.service-card a,.text-link{transition:transform 160ms var(--ease-out),background-color 180ms ease,color 180ms ease,box-shadow 180ms ease}
.button:active,.nav-cta:active,.menu-button:active{transform:scale(.97)}
.service-card{transition:transform 220ms var(--ease-out),background-color 220ms ease,box-shadow 220ms ease}
.gallery img{transition:transform 650ms var(--ease-in-out)}
@media (hover:hover) and (pointer:fine){.button-primary:hover,.nav-cta:hover{transform:translateY(-2px)}.service-card:hover{transform:translateY(-5px)}.gallery figure:hover img{transform:scale(1.035)}.text-link:hover span,.service-card a:hover span{display:inline-block;transform:translate(2px,-2px)}}

/* Responsive refinements */
@media (max-width:1200px){.hero{gap:4vw;padding-left:4vw;padding-right:4vw}.hero-main{height:590px}.hero-visual{min-height:590px}.site-header nav{gap:20px}.service-card{padding:28px}}
@media (max-width:1000px){.hero{padding-top:75px}.hero-visual{max-width:820px;width:100%;margin:0 auto}.hero-card{left:22px}.hero-stamp{right:18px}.approach-copy{padding:75px clamp(24px,7vw,80px)}}
@media (max-width:760px){h1{font-size:clamp(43px,12vw,64px)}.hero-visual,.hero-main{min-height:500px;height:500px}.section-heading h2,.faq h2,.approach h2,.programmes h2,.contact h2{font-size:clamp(39px,10vw,54px)}.service-grid{grid-template-columns:1fr}.gallery{display:block}.gallery figure{height:400px;margin-bottom:18px}.gallery-large{height:480px!important}.approach-image{min-height:540px}.purpose-strip{justify-content:flex-start;overflow-x:auto;scrollbar-width:none}.purpose-strip::-webkit-scrollbar{display:none}}
@media (max-width:430px){body{font-size:15px}.brand span{max-width:170px}.brand strong{font-size:14px}.hero{padding-top:48px}.hero-main,.hero-visual{height:405px;min-height:405px}.hero-card{left:10px;right:10px;bottom:14px;padding:14px 16px}.hero-stamp{width:82px;height:82px;right:8px;top:12px}.hero-stamp strong{font-size:23px}.service-card{padding:26px 22px}.service-icon{margin-bottom:38px}.approach-image>p{left:22px;bottom:25px}.steps li{grid-template-columns:42px 1fr}.programme-list article{grid-template-columns:50px 1fr;gap:16px}.programme-list article>span{width:48px;height:48px}.contact-form{padding:23px 17px}.footer-brand{align-items:flex-start}}
@media (prefers-reduced-motion:reduce){.hero .eyebrow,.hero h1,.hero-lede,.hero-actions,.hero-trust,.hero-visual{opacity:1;transform:none;clip-path:none}.hero.hero-ready .hero-card,.hero.hero-ready .hero-stamp{animation:none}.reveal{transition:opacity .2s ease;transform:none}.gallery img,.service-card,.button,.nav-cta{transition-duration:.01ms!important}}

/* Expanded spaces gallery and direct contact information */
.gallery{grid-template-columns:repeat(3,1fr);grid-template-rows:320px 320px}
.gallery-large{grid-column:span 2;grid-row:span 2}
.gallery figcaption{right:24px}
.contact-copy>p{color:#d9cadb;font-size:18px}
.contact-details{display:grid;gap:13px;margin-top:30px}
.contact-details>a,.social-links a{display:flex;align-items:flex-start;gap:12px;width:max-content;max-width:100%;color:#fff;font-size:14px;line-height:1.45}
.contact-details svg{flex:0 0 21px;width:21px;height:21px;margin-top:1px;fill:none;stroke:var(--gold);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.contact-details svg .filled{fill:var(--gold);stroke:none}
.social-links{display:flex;gap:22px;flex-wrap:wrap;margin-top:5px}
.contact-details a:hover span{text-decoration:underline;text-underline-offset:4px}

@media (max-width:1000px){.gallery{grid-template-columns:1fr 1fr;grid-template-rows:500px repeat(2,300px)}.gallery-large{grid-column:1/3;grid-row:auto}}
@media (max-width:650px){.gallery{display:block}.gallery figure,.gallery-large{height:360px!important;margin-bottom:16px}.contact-details>a{font-size:13px}.social-links{gap:18px}}
