/* Public website refresh: editorial hierarchy, Maktubia colour system and modular content. */
:root{
  --wine:#81002f;
  --wine-deep:#56001f;
  --ink:#13232c;
  --ink-soft:#223740;
  --paper:#fff;
  --cloud:#f5f4f2;
  --muted:#5e6c73;
  --line:#d8dede;
  --rose:#f4e6eb;
  --wrap:1280px;
  --shadow:0 22px 60px rgba(17,35,44,.13);
}

body{font-family:Manrope,Montserrat,Arial,sans-serif;font-size:15px;line-height:1.7}
h1,h2,h3{font-family:Montserrat,Arial,sans-serif}
.wrap{width:min(var(--wrap),calc(100% - 80px))}
.skip-link{background:var(--wine)}
a:focus-visible,button:focus-visible{outline:3px solid #d15b87;outline-offset:3px}

.back-to-top{align-items:center;background:var(--wine);border:0;border-radius:50%;bottom:24px;box-shadow:0 5px 18px rgba(19,35,44,.25);color:#fff;cursor:pointer;display:flex;font:inherit;font-size:25px;height:52px;justify-content:center;line-height:1;position:fixed;right:24px;transition:background-color .2s,transform .2s; width:52px;z-index:40}
.back-to-top:hover{background:var(--ink);transform:translateY(-3px)}
.back-to-top span{margin-top:-3px}

.site-header{background:rgba(255,255,255,.98);border:0;box-shadow:0 1px 0 rgba(19,35,44,.12);height:auto;transition:box-shadow .25s;z-index:50}
.site-header.is-scrolled{box-shadow:0 8px 28px rgba(15,30,38,.12)}
.header-top{background:var(--ink);color:#d7e0e2}
.header-top-inner{align-items:center;display:flex;font-size:10px;font-weight:700;justify-content:space-between;letter-spacing:.1em;margin:auto;min-height:32px;text-transform:uppercase;width:min(1420px,calc(100% - 80px))}
.header-top-actions{align-items:center;display:flex;gap:22px}
.header-top .language-switcher{color:#fff;gap:6px;margin:0}
.header-top .language-switcher svg{stroke:currentColor}
.header-top .language-switcher a{color:#fff}
.header-top .language-switcher a[aria-current="true"],.header-top .language-switcher a:hover{color:#edacc4}
.header-top a{color:#fff;transition:color .2s}
.header-top a:hover{color:#e9a5bd}
.header-top a span{font-size:13px;margin-left:4px}
.header-inner{height:78px;position:relative;width:min(1420px,calc(100% - 80px))}
.brand{flex-basis:204px}
.brand img{height:35px}
.main-nav{gap:clamp(17px,2vw,35px)}
.main-nav a{color:var(--ink);font-size:10px;letter-spacing:.08em}
.main-nav a:after{background:var(--wine);bottom:17px;height:2px}
.main-nav a.active,.main-nav a:hover{color:var(--wine)}
.header-actions{align-items:center;flex:0 0 auto;gap:21px}
.contact-link{align-items:center;color:var(--wine);display:inline-flex;font-size:10px;font-weight:800;gap:9px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.contact-link span{font-size:17px;font-weight:400;line-height:1;transition:transform .2s}
.contact-link:hover span{transform:translateX(4px)}
.account-link{border-left:1px solid var(--line);color:var(--ink);font-size:10px;letter-spacing:.08em;padding-left:20px;text-transform:uppercase}
.account-link:after{display:none}

.hero{background:var(--wine-deep);isolation:isolate;min-height:min(780px,calc(100vh - 110px));overflow:hidden}
.hero:before{background:var(--wine);content:"";inset:0 38% 0 0;position:absolute;z-index:-2}
.hero-image{background-image:none;height:100%;left:48%;object-fit:cover;object-position:left center;right:0;transform:scale(1.35);transform-origin:left center;width:52%;z-index:-1}
.hero-overlay{background:linear-gradient(90deg,rgba(86,0,31,.08) 0%,rgba(86,0,31,.1) 54%,rgba(19,35,44,.34) 100%);z-index:0}
.hero-content{padding:0 0 122px;position:relative}
.hero-kicker,.eyebrow{font-size:10px;letter-spacing:.15em}
.hero-kicker{color:#f3bdcf;font-size:20px;margin-bottom:27px}
.hero h1{font-size:clamp(26px,3vw,47px);letter-spacing:-.07em;line-height:.96;max-width:735px}
@media (min-width:1051px){.hero h1{font-size:clamp(26px,min(3vw,calc((48vw - max(40px, (100vw - var(--wrap))/2))/14)),47px);max-width:calc(48vw - max(40px, (100vw - var(--wrap))/2))}}
.hero h1 em{color:#fff;display:block;font-family:inherit;font-style:normal;font-weight:inherit;position:relative}
.hero h1 em:after{background:#eaa4bd;bottom:-9px;content:"";height:6px;left:3%;position:absolute;width:72%}
.hero-intro{color:#fff;font-size:clamp(15px,1.25vw,18px);line-height:1.85;margin:39px 0 33px;max-width:min(570px,40vw)}
.hero-actions{gap:26px}
.button{border-radius:0;font-size:10px;gap:16px;letter-spacing:.09em;min-height:54px;padding:13px 24px;text-transform:uppercase}
.button-primary{background:var(--wine);color:#fff}
.button-primary:hover{background:var(--ink);color:#fff}
.hero .button-primary{background:#fff;color:var(--wine)}
.hero .button-primary:hover{background:var(--ink);color:#fff}
.button-light{background:#fff;color:var(--wine)}
.button-light:hover{background:#f1d9e2}
.button-outline{border-color:var(--wine);color:var(--wine)}
.button-outline:hover{background:var(--wine);color:#fff}
.text-link{border-bottom:1px solid currentColor;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.text-link-light{color:#fff}
.hero-aside{bottom:38px;color:#fff;display:flex;font-size:9px;left:max(40px,calc((100% - var(--wrap))/2));letter-spacing:.14em;right:auto;text-transform:uppercase;writing-mode:initial}
.hero-line{background:rgba(255,255,255,.5);height:1px;width:66px}

.principles{padding:142px 0 132px}
.section-intro{align-items:start;gap:30px;grid-template-columns:repeat(12,1fr);margin-bottom:74px}
.section-intro>.eyebrow{grid-column:1 / span 3;padding-top:12px}
.section-intro h2{grid-column:4 / span 9;max-width:930px}
.eyebrow{color:var(--wine);font-weight:800;margin-bottom:16px}
h2{font-size:clamp(36px,4vw,64px);letter-spacing:-.065em;line-height:1.08}
.principles-grid{border-color:var(--ink);border-top-width:2px}
.principle{border-color:var(--line);gap:25px;padding:32px 30px 8px 0}
.principle:not(:first-child){padding-left:30px}
.principle-number{color:var(--wine);font-size:10px;letter-spacing:.12em}
.principle h3{font-size:18px;letter-spacing:-.03em;margin-bottom:14px}
.principle p{font-size:15px;line-height:1.75}

.services-section{background:var(--cloud);padding:134px 0 142px}
.section-heading{align-items:end;margin-bottom:64px}
.section-heading h2{max-width:710px}
.section-heading>p{font-size:14px;line-height:1.9;max-width:370px}
.services-grid{border-top:2px solid var(--ink);gap:0;grid-template-columns:repeat(5,minmax(0,1fr))}
.service-card{background:transparent;border-bottom:1px solid var(--line);border-right:1px solid var(--line);min-height:330px;padding:31px 30px 27px;transform:none;transition:background-color .25s,color .25s}
.service-card:nth-child(n){grid-column:auto}
.service-card:last-child{border-right:0}
.service-card:hover{background:var(--wine);color:#fff;transform:none}
.service-icon{background:transparent;border-radius:0;color:var(--wine);font-size:10px;height:auto;justify-content:flex-start;letter-spacing:.12em;margin-bottom:69px;width:auto}
.service-card:hover .service-icon{background:transparent;color:#f5c6d6}
.service-card h3{font-size:clamp(16px,1.55vw,21px);letter-spacing:-.04em;max-width:310px}
.service-card p{font-size:14px;line-height:1.75;max-width:390px}
.service-card:hover p{color:#f7e9ee}
.service-card a{border-color:var(--line);font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.service-card:hover a{border-color:#ce7597}

.training-section{grid-template-columns:1.04fr .96fr;margin-bottom:142px;margin-top:142px;min-height:620px;position:relative}
.training-image{position:relative}
.training-image:after{border:1px solid rgba(255,255,255,.7);content:"";inset:18px;pointer-events:none;position:absolute}
.training-content{background:var(--ink);color:#fff;padding:clamp(54px,7vw,116px)}
.training-content .eyebrow{color:#e8abc1}
.training-content h2{font-size:clamp(33px,3.45vw,55px)}
.training-content>p:not(.eyebrow){color:#d8e0e2;font-size:15px;line-height:1.9;margin:27px 0}
.check-list li{font-size:15px;line-height:1.7;margin:12px 0}
.check-list li:before{color:#e39ab7}
.training-content .button-outline{border-color:#fff;color:#fff}
.training-content .button-outline:hover{background:#fff;color:var(--ink)}

.impact-band{background:var(--wine);overflow:hidden;padding:119px 0;position:relative}
.impact-band:after{border:1px solid rgba(255,255,255,.25);border-radius:50%;content:"";height:520px;position:absolute;right:-170px;top:-265px;width:520px}
.impact-grid{gap:80px;grid-template-columns:1.45fr .55fr;position:relative;z-index:1}
.impact-grid h2{max-width:760px}
.impact-grid>p{font-size:15px;line-height:1.9;max-width:350px}
.eyebrow-light{color:#f4c1d3}

.cowork-section{grid-template-columns:1.1fr .9fr;min-height:670px}
.cowork-visual img{filter:saturate(.83);opacity:.95}
.cowork-copy{background:#ede6e8;color:var(--ink);padding:clamp(58px,8vw,132px)}
.cowork-copy .eyebrow{color:var(--wine)}
.cowork-copy h2{font-size:clamp(48px,5.2vw,82px)}
.cowork-copy>p:not(.eyebrow){color:var(--muted);font-size:15px;line-height:1.9}
.cowork-copy .check-list li{font-size:15px}
.check-list-dark li{color:var(--ink)}
.check-list-dark li:before{color:var(--wine)}
.cowork-copy .button-primary{background:var(--wine);color:#fff}
.cowork-copy .button-primary:hover{background:var(--ink)}

.insights{padding:142px 0}
.section-heading.compact{margin-bottom:50px}
.gallery-grid{gap:16px;grid-template-columns:1.25fr .75fr .75fr}
.gallery-item{height:278px}
.gallery-item.gallery-large{height:572px}
.gallery-item:after{background:linear-gradient(0deg,rgba(19,35,44,.5),transparent 52%);content:"";inset:0;opacity:0;position:absolute;transition:opacity .25s}
.gallery-item:hover:after{opacity:1}
.gallery-item figcaption{font-size:16px;letter-spacing:-.02em;padding:70px 28px 26px;z-index:1}
.gallery-status{background:var(--cloud);color:var(--muted);padding:28px}
.gallery-archive{padding-bottom:120px;padding-top:62px}
.gallery-archive-grid{display:grid;gap:20px;grid-template-columns:repeat(3,minmax(0,1fr))}
.gallery-archive-item{background:var(--cloud);margin:0;min-width:0}
.gallery-archive-item>a{display:block;overflow:hidden}
.gallery-archive-item img{aspect-ratio:4/3;display:block;height:auto;object-fit:cover;transition:transform .35s;width:100%}
.gallery-archive-item>a:hover img{transform:scale(1.035)}
.gallery-archive-item figcaption{color:var(--ink);font-size:13px;line-height:1.6;padding:16px 18px}

.careers-preview{background:var(--ink);padding:126px 0}
.careers-grid{gap:110px;grid-template-columns:.9fr 1.1fr}
.careers-intro h2{font-size:clamp(39px,4.2vw,65px)}
.careers-intro>p:not(.eyebrow){line-height:1.9}
.jobs-list{border-color:#56666d}
.job-row{border-color:#56666d;padding:27px 0}
.job-row:hover{background:rgba(255,255,255,.06);padding-left:17px}
.job-row strong{font-size:17px}
.job-row small{font-size:10px;letter-spacing:.05em;text-transform:uppercase}
.job-row b{color:#f0b6cb}

.site-footer{background:#0d1a20}
.footer-cta{border-color:#405057;padding:78px 0}
.footer-cta h2{font-size:clamp(30px,3.4vw,53px)}
.footer-main{gap:64px;padding:72px 0}
.footer-brand img{background:#fff;padding:6px;width:214px}
.site-footer h3{font-size:10px;letter-spacing:.14em}
.site-footer a{font-size:12px}
.footer-bottom{font-size:10px;padding:21px 0}

.page-hero{background:linear-gradient(118deg,var(--wine-deep) 0%,var(--wine) 67%,#a30445 100%);padding:114px 0 102px;position:relative}
.service-page-hero{overflow:hidden}
.page-hero:after{border:1px solid rgba(255,255,255,.22);border-radius:50%;content:"";height:340px;position:absolute;right:8%;top:-176px;width:340px}
.page-hero .wrap{position:relative;z-index:1}
.page-hero h1{font-size:clamp(45px,5.5vw,80px);max-width:910px}
.page-hero p:last-child{font-size:16px;line-height:1.85}
.page-hero .service-summary{font-size:16px;line-height:1.85;max-width:780px}
.page-hero .button{margin-top:20px}
.service-detail-main{display:grid;gap:clamp(44px,8vw,120px);grid-template-columns:1.25fr .75fr;padding-bottom:120px;padding-top:112px}
.service-detail-copy h2,.service-detail-focus h2,.service-contact-info h2{font-size:clamp(32px,3.5vw,48px);letter-spacing:-.055em;line-height:1.12}
.service-detail-copy>p:not(.eyebrow){color:var(--muted);font-size:15px;line-height:1.9;margin:24px 0 0;max-width:740px}
.service-detail-focus{align-self:start;background:var(--cloud);padding:clamp(28px,4vw,48px)}
.service-detail-focus h2{font-size:clamp(25px,2.4vw,32px);margin-bottom:25px}
.service-detail-focus .check-list{margin:0}
.service-detail-focus .check-list li{font-size:14px}
.service-contact-section{background:var(--cloud);padding:104px 0}
.service-contact{align-items:stretch;display:grid;gap:clamp(36px,6vw,84px);grid-template-columns:.8fr 1.2fr}
.service-contact-info{align-content:start;display:grid;gap:17px}
.service-contact-info .eyebrow,.service-contact-info h2,.service-contact-info>p{margin:0}
.service-contact-info>p:not(.eyebrow){color:var(--muted);font-size:15px;line-height:1.85;margin-bottom:8px}
.service-contact-info>a{color:var(--ink);font-size:14px;line-height:1.8}
.service-contact-info>a:hover{color:var(--wine)}
.service-contact-map{border:0;display:block;min-height:360px;width:100%}
.careers-main{padding:32px 0 136px}
.careers-main .section-heading{margin-bottom:45px}
.careers-main .section-heading .eyebrow{font-size:14px}
.careers-main .section-heading h2{font-size:clamp(32px,4vw,54px)}
.vacancy-grid{column-gap:4px;display:grid;grid-template-columns:repeat(auto-fill,250px);justify-content:center;row-gap:10px}
.vacancy-card{aspect-ratio:45/46;background:#790018 url("../images/flyer.jpeg") center center/contain no-repeat;color:#fff;display:block;justify-self:start;max-width:250px;overflow:hidden;position:relative;transition:box-shadow .25s,transform .25s;width:100%}
.vacancy-card--interest{background-image:url("../images/flyer1.jpeg")}
.vacancy-card:hover{box-shadow:0 20px 42px rgba(71,0,18,.2);transform:translateY(-5px)}
.vacancy-card h2{font-size:clamp(10px,.95vw,14px);left:55%;letter-spacing:-.025em;line-height:1.12;margin:0;max-width:82%;overflow-wrap:anywhere;position:absolute;text-align:center;text-shadow:0 1px 4px rgba(65,0,14,.42);top:73%;transform:translate(-50%,-50%);width:82%}
.vacancy-meta{font-size:10px;letter-spacing:.1em}
.vacancy-card>p{margin:26px 0 0}
.vacancy-card .button{min-height:48px}
.no-vacancies{background:var(--rose);padding:74px 38px}
.vacancy-detail-main{padding:75px 0 130px}
.vacancy-detail-card{border-color:var(--ink);border-top-width:2px;padding:clamp(32px,5.5vw,76px)}
.vacancy-detail-card .vacancy-details{border-color:var(--line)}
.vacancy-detail-card .vacancy-lead,.vacancy-detail-card .vacancy-details p{text-align:justify;text-justify:inter-word}
.vacancy-detail-card .vacancy-lead{font-size:clamp(15px,1.25vw,18px);line-height:1.8}
.vacancy-detail-card .vacancy-details p{line-height:1.9;max-width:72ch}

@media (max-width:1050px){
  .wrap{width:min(var(--wrap),calc(100% - 56px))}
  .header-top-inner,.header-inner{width:calc(100% - 56px)}
  .main-nav{gap:15px}
  .service-card{padding-inline:22px}
  .hero h1{max-width:calc(48vw - 28px)}
}

@media (max-width:950px){
  .wrap{width:min(var(--wrap),calc(100% - 40px))}
  .header-top-inner,.header-inner{width:calc(100% - 40px)}
  .header-inner{height:70px}
  .brand{flex:1}
  .brand img{height:31px}
  .menu-toggle{display:block;order:3}
  .main-nav{background:var(--ink);box-shadow:0 15px 22px rgba(15,30,38,.16);display:none;left:-20px;padding:13px 20px 19px;position:absolute;right:-20px;top:70px}
  .main-nav.is-open{display:block}
  .main-nav a{color:#fff;font-size:11px;padding:12px 5px}
  .main-nav a:after{background:#edacc4;bottom:6px}
  .header-actions{margin-right:16px}
  .contact-link{font-size:9px}
  .section-intro{grid-template-columns:repeat(8,1fr)}
  .section-intro>.eyebrow{grid-column:1 / span 2}
  .section-intro h2{grid-column:3 / span 6}
  .principles,.insights{padding:104px 0}
  .gallery-archive-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .vacancy-grid{grid-template-columns:repeat(auto-fill,250px)}
  .services-section{padding:104px 0}
  .training-section{margin-bottom:104px;margin-top:104px}
  .hero h1{font-size:clamp(19px,3vw,26px);max-width:calc(48vw - 20px)}
}

@media (max-width:640px){
  html,body{max-width:100%;overflow-x:hidden}
  .back-to-top{bottom:18px;height:48px;right:18px;width:48px}
  .wrap{width:calc(100% - 36px)}
  .header-top{display:block}
  .header-top-inner{min-height:30px;width:calc(100% - 36px)}
  .header-top-inner>span,.header-top-actions>a{display:none}
  .header-inner{height:68px;width:calc(100% - 36px)}
  .brand img{height:28px;width:auto}
  .main-nav{left:-18px;right:-18px;top:68px}
  .header-actions{gap:0;margin-right:10px}
  .contact-link{display:none}
  .account-link{border-left:0;font-size:0;padding-left:0}
  .account-link:before{content:"↗";font-size:19px}
  .hero{min-height:670px}
  .hero:before{inset:0 0 auto 0;height:100%;opacity:.95}
  .hero-image{inset:0;object-position:center;transform:none;width:100%;opacity:.26}
  .hero-overlay{background:linear-gradient(135deg,rgba(86,0,31,.84),rgba(19,35,44,.65))}
  .hero-content{padding:112px 0 98px}
  .hero h1{font-size:clamp(18px,5.5vw,29px);max-width:100%}
  .hero-intro{font-size:14px;line-height:1.78;margin-top:32px;max-width:100%}
  .hero-aside{bottom:26px;font-size:8px;left:18px}
  .hero-actions{gap:20px}
  .button{font-size:9px;min-height:51px}
  .section-intro{display:block;margin-bottom:44px}
  .section-intro>.eyebrow{padding-top:0}
  h2{font-size:clamp(33px,10vw,48px)}
  .principles,.insights{padding:78px 0}
  .principle,.principle:not(:first-child){padding:27px 0}
  .services-section{padding:78px 0}
  .section-heading{margin-bottom:42px}
  .services-grid{display:block}
  .service-card,.service-card:nth-child(n){border-right:0;min-height:0;padding:28px 0}
  .service-icon{margin-bottom:37px}
  .service-card p{margin-bottom:29px}
  .training-section{display:flex;margin:78px 0;min-height:0}
  .training-image{height:310px}
  .training-content{padding:48px 30px}
  .impact-band{padding:82px 0}
  .impact-band:after{height:350px;right:-195px;top:-190px;width:350px}
  .impact-grid{display:block}
  .impact-grid>p{margin-top:29px}
  .cowork-section{display:flex;min-height:0}
  .cowork-visual{height:330px}
  .cowork-copy{padding:64px 28px}
  .gallery-grid{gap:10px}
  .gallery-item.gallery-large{height:370px}
  .gallery-item{height:155px}
  .gallery-archive{padding-bottom:78px;padding-top:38px}
  .gallery-archive-grid{grid-template-columns:1fr}
  .gallery-archive-item figcaption{font-size:12px;padding:12px}
  .careers-preview{padding:80px 0}
  .careers-grid{display:block}
  .careers-intro{margin-bottom:44px}
  .footer-cta{padding:58px 0}
  .footer-main{gap:42px;padding:52px 0}
  .page-hero{padding:78px 0 72px}
  .page-hero:after{height:260px;right:-105px;top:-155px;width:260px}
  .service-detail-main{display:block;padding-bottom:78px;padding-top:78px}
  .service-detail-focus{margin-top:42px}
  .service-contact-section{padding:78px 0}
  .service-contact{grid-template-columns:1fr}
  .service-contact-map{min-height:320px}
  .careers-main{padding:32px 0 90px}
  .vacancy-grid{gap:8px;grid-template-columns:minmax(0,1fr);justify-items:center;max-width:100%;width:100%}
  .vacancy-card{justify-self:center;max-width:min(250px,100%)}
  .vacancy-card h2{font-size:12px;max-width:76%;width:76%}
  .vacancy-detail-main{padding:52px 0 80px}
}
