:root{
  --wine:#76142d;
  --wine-dark:#4b0a1b;
  --wine-soft:#b75d73;
  --blush:#ead8dc;
  --champagne:#c7a35b;
  --champagne-dark:#a77d34;
  --ivory:#f7f1e8;
  --paper:#fffdf9;
  --charcoal:#211d1e;
  --teal:var(--wine);
  --teal-dark:var(--wine-dark);
  --teal-soft:var(--blush);
  --copper:var(--champagne);
  --copper-dark:var(--champagne-dark);
  --graphite:var(--charcoal);
  --ink:#30292b;
  --muted:#756a6c;
  --limestone:var(--ivory);
  --stone:#e8ded2;
  --line:rgba(57,33,39,.14);
  --shadow:0 28px 80px rgba(63,17,30,.13);
  --radius-sm:16px;
  --radius:28px;
  --radius-lg:42px;
  --radius-xl:62px;
  --container:min(1480px,calc(100% - 88px));
}

body{background:var(--ivory);color:var(--charcoal)}
h1,h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:-.045em}
h3{letter-spacing:-.03em}
p{color:var(--muted)}
::selection{background:var(--wine);color:#fff}

.page-loader{background:var(--ivory)}
.page-loader span{border-color:#dfd1c3;border-top-color:var(--wine)}
.section{padding:148px 0}
.section-kicker{color:var(--wine);letter-spacing:.2em}
.copper-rule{height:3px;background:var(--champagne)}
.button{border-radius:999px;padding-inline:29px;overflow:hidden;position:relative}
.button::before{content:"";position:absolute;inset:0;transform:translateX(-102%);background:rgba(255,255,255,.13);transition:transform .38s ease}
.button:hover::before{transform:none}
.button-teal,.button-wine{background:var(--wine);color:#fff}
.button-teal:hover,.button-wine:hover{background:var(--wine-dark)}
.button-copper{background:var(--champagne);color:var(--wine-dark)}
.button-copper:hover{background:#d8b975;color:var(--wine-dark)}
.circle-link,.project-overlay a,.portfolio-body>a{background:var(--wine);color:#fff}

.site-header{height:116px;background:rgba(255,253,249,.94);border-bottom-color:rgba(76,10,28,.1)}
.site-header.is-sticky{height:88px;box-shadow:0 12px 42px rgba(68,14,29,.1)}
.site-header.is-sticky+main{padding-top:116px}
.header-inner{gap:34px}
.brand{min-width:305px}
.brand .brand-logo{width:300px;max-height:92px}
.primary-nav{gap:27px}
.primary-nav>a,.nav-parent>button{font-size:.68rem;letter-spacing:.07em}
.primary-nav>a::after,.nav-parent>button::after{background:var(--wine);height:3px;border-radius:99px}
.nav-dropdown{width:400px;border-radius:26px;background:var(--paper);border-color:rgba(76,10,28,.12);box-shadow:0 28px 70px rgba(65,12,27,.18)}
.nav-dropdown a{border-radius:15px}
.nav-dropdown a:hover,.nav-dropdown a.is-active{background:var(--blush);color:var(--wine-dark)}
.portal-actions{display:flex;align-items:center;gap:7px;margin-left:4px}
.portal-actions a{display:flex;align-items:center;gap:8px;padding:12px 13px;border:1px solid rgba(76,10,28,.17);border-radius:999px;color:var(--wine-dark);font-size:.59rem;font-weight:800;text-transform:uppercase;letter-spacing:.035em;white-space:nowrap;transition:.25s}
.portal-actions a span{color:var(--champagne-dark);font-size:1rem}
.portal-actions a:hover{transform:translateY(-2px);background:var(--wine);border-color:var(--wine);color:#fff;box-shadow:0 12px 26px rgba(76,10,28,.18)}

.home-hero{padding:22px 0 48px;position:relative}
.home-hero::before{content:"";position:absolute;width:520px;height:520px;left:-330px;top:90px;border:1px solid rgba(118,20,45,.14);border-radius:50%;box-shadow:0 0 0 55px rgba(118,20,45,.025),0 0 0 110px rgba(118,20,45,.018)}
.home-hero-grid{min-height:790px;grid-template-columns:.78fr 1.22fr;gap:70px}
.hero-copy{position:relative;z-index:2}
.hero-copy h1{font-size:clamp(4.5rem,6.6vw,7.8rem);line-height:.94;margin-bottom:38px}
.hero-copy h1 em,.inner-hero h1 em,.page-title-section h1 em{color:var(--wine);font-style:italic;font-weight:400}
.hero-copy>p{font-size:1.1rem;max-width:600px}
.hero-media{height:760px;border-radius:44px 44px 88px 44px;box-shadow:var(--shadow)}
.hero-media>img{transition:transform 1.3s cubic-bezier(.2,.8,.2,1)}
.hero-media:hover>img{transform:scale(1.035)}
.vertical-location{background:var(--wine);width:66px}
.perspective-card{border-radius:20px 20px 42px 20px;background:rgba(33,29,30,.92);backdrop-filter:blur(16px)}
.perspective-card::before{background:var(--champagne)}
.perspective-card small{color:#e8d7dc}
.perspective-card a{background:var(--wine)}
.hero-facts strong.copper{color:var(--wine)}

.industry-rail{background:var(--wine-dark);border-radius:34px 34px 0 0}
.rail-links i{background:var(--champagne)}
.rail-links a{transition:color .25s,transform .25s}
.rail-links a:hover{color:#f2d9df;transform:translateX(4px)}
.intro-section{background:var(--ivory)}
.intro-body .lead,.project-conversation .lead{color:var(--ink)}

.sectors-section,.services-detail,.group-map-section{background:var(--paper)}
.sector-card{background:var(--ivory);border-radius:30px;box-shadow:0 8px 0 transparent}
.sector-card,.portfolio-card,.capability-card{position:relative;isolation:isolate}
.sector-card::before,.portfolio-card::before,.capability-card::before{content:"";position:absolute;z-index:3;inset:0;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.28),transparent 64%);transition:opacity .3s}
.sector-card:hover::before,.portfolio-card:hover::before,.capability-card:hover::before{opacity:1}
.sector-card:hover{transform:translateY(-10px) rotate(.15deg);box-shadow:0 28px 70px rgba(82,18,35,.14)}
.sector-image{border-radius:0 0 30px 30px}
.sector-card:hover .circle-link{background:var(--wine)}
.sector-card-body small,.service-group-copy>small,.portfolio-body small{color:var(--wine)}

.people-at-work{padding-top:118px;background:var(--paper)}
.people-gallery{display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:repeat(2,350px);gap:22px}
.people-shot{position:relative;margin:0;overflow:hidden;border-radius:34px;background:var(--charcoal)}
.people-shot-wide{grid-row:span 2}
.people-shot img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.2,.8,.2,1),filter .5s}
.people-shot::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(32,11,17,.84),transparent 55%)}
.people-shot:hover img{transform:scale(1.055);filter:saturate(1.05)}
.people-shot figcaption{position:absolute;z-index:2;left:28px;right:28px;bottom:25px;color:#fff;display:flex;align-items:end;justify-content:space-between;gap:20px}
.people-shot small{color:#e1bc6f;font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.15em}
.people-shot strong{font-family:Georgia,serif;font-size:1.5rem;font-weight:400}

.approach-section,.industry-process,.contact-band{background:var(--wine)}
.approach-sticky p,.process-heading p,.contact-band p{color:#eadce0}
.approach-steps article:hover{background:rgba(255,255,255,.07);border-radius:18px}
.approach-steps article>span,.process-list span{color:#e3c078}
.project-card,.portfolio-card,.service-group-image,.focus-image,.inner-hero-media{border-radius:36px 36px 58px 36px}
.project-card::after{background:linear-gradient(0deg,rgba(44,8,18,.94),rgba(44,8,18,.03) 68%)}
.project-overlay small{color:#edd0d7}
.responsibility-card{background:var(--wine-dark);border-radius:52px;box-shadow:var(--shadow)}
.responsibility-card::before{border-color:var(--wine-soft)}

.partnership-story{background:var(--paper)}
.partnership-story-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:88px;align-items:center}
.partnership-photo{height:610px;overflow:hidden;border-radius:42px 42px 72px 42px;box-shadow:var(--shadow)}
.partnership-photo img{width:100%;height:100%;object-fit:cover;transition:transform .9s}
.partnership-photo:hover img{transform:scale(1.035)}
.partnership-copy h2{margin:0 0 30px;font-size:clamp(3rem,4.8vw,5.1rem)}
.partnership-copy p{font-size:1.05rem;margin-bottom:35px}

.inner-hero{padding:82px 0 105px}
.inner-hero-grid{grid-template-columns:.78fr 1.22fr}
.inner-hero-copy h1{font-size:clamp(4rem,6vw,7rem)}
.inner-hero-copy p{font-size:1.1rem}
.inner-hero-media{height:650px;box-shadow:var(--shadow)}
.inner-hero-media img,.focus-image img,.service-group-image img{transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.inner-hero-media:hover img,.focus-image:hover img{transform:scale(1.04)}
.inner-hero-media>span{background:rgba(75,10,27,.92);border-radius:999px}
.capability-card,.principle-card{border-radius:28px;background:var(--ivory)}
.capability-card:hover{background:var(--wine-dark)}
.image-label{color:var(--wine-dark);border-radius:999px}
.focus-copy li span{color:var(--wine)}

.people-section{padding-top:0;background:var(--paper)}
.people-panel{padding:80px;display:grid;grid-template-columns:1.08fr .92fr;gap:90px;align-items:center;border-radius:50px;background:var(--wine-dark);color:#fff;position:relative;overflow:hidden}
.people-panel::after{content:"";position:absolute;width:430px;height:430px;right:-160px;top:-170px;border:1px solid rgba(255,255,255,.16);border-radius:50%;box-shadow:0 0 0 54px rgba(255,255,255,.025),0 0 0 108px rgba(255,255,255,.018)}
.people-panel-copy,.people-panel-stats{position:relative;z-index:1}
.people-panel-copy h2{margin-bottom:28px}
.people-panel-copy p{color:#d9c8cc}
.people-panel-stats{border-top:1px solid rgba(255,255,255,.2)}
.people-panel-stats>div{display:grid;grid-template-columns:70px 1fr;align-items:center;padding:25px 10px;border-bottom:1px solid rgba(255,255,255,.2)}
.people-panel-stats strong{color:var(--champagne);font-size:.7rem;letter-spacing:.15em}
.people-panel-stats span{font-size:1.05rem;font-weight:700}

.working-culture{background:var(--paper)}
.culture-grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:90px;align-items:center}
.culture-copy .lead{font-size:1.25rem;color:var(--ink)}
.culture-image{height:620px;position:relative;overflow:hidden;border-radius:42px 42px 70px 42px;box-shadow:var(--shadow)}
.culture-image img{width:100%;height:100%;object-fit:cover;transition:transform .9s}
.culture-image:hover img{transform:scale(1.04)}
.culture-image span{position:absolute;left:25px;bottom:25px;padding:12px 17px;border-radius:999px;background:var(--wine);color:#fff;font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em}
.group-map-card{background:var(--wine-dark);border-radius:50px}
.orbit-item{background:var(--wine)}
.orbit-item:hover{background:var(--champagne);color:var(--wine-dark)}
.orbit-center{border-radius:28px;background:var(--paper)}

.service-group-list{gap:135px}
.service-group-image{height:570px;box-shadow:var(--shadow)}
.service-group-image span{background:var(--wine)}
.service-collaboration{background:var(--paper);padding-top:0}
.collaboration-card{min-height:620px;display:grid;grid-template-columns:1.15fr .85fr;border-radius:50px;overflow:hidden;background:var(--wine-dark);color:#fff}
.collaboration-image{min-height:620px;overflow:hidden}
.collaboration-image img{width:100%;height:100%;object-fit:cover;transition:transform .9s}
.collaboration-card:hover .collaboration-image img{transform:scale(1.035)}
.collaboration-copy{padding:72px;display:flex;flex-direction:column;justify-content:center}
.collaboration-copy p{color:#d9c8cc;font-size:1.03rem}

.project-toolbar button:hover,.project-toolbar button.is-active{background:var(--wine);border-color:var(--wine)}
.projects-masonry{gap:30px}
.portfolio-card{border-radius:30px;background:var(--paper)}
.portfolio-card:hover{box-shadow:0 28px 70px rgba(82,18,35,.14)}
.portfolio-image{border-radius:0 0 30px 30px}
.project-conversation{padding-top:35px}
.project-conversation-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:100px;align-items:end;padding-top:85px;border-top:1px solid var(--line)}

.contact-page-grid{grid-template-columns:.75fr 1.25fr}
.contact-side{position:sticky;top:120px}
.contact-details{position:static}
.contact-photo{height:320px;overflow:hidden;border-radius:32px 32px 52px 32px;box-shadow:var(--shadow)}
.contact-photo img{width:100%;height:100%;object-fit:cover}
.contact-form-card{border-radius:38px;background:var(--paper)}
.portal-links a{background:#f1e6e2}
.portal-links a:hover{background:var(--wine)}
input,select,textarea{padding:15px 12px;border:1px solid #d8c8c3;border-radius:13px;background:#fff}
input:focus,select:focus,textarea:focus{border-color:var(--wine);box-shadow:0 0 0 4px rgba(118,20,45,.08)}

.portal-shell,.login-shell,.access-help-shell{background:var(--wine-dark)}
.portal-backdrop{background:radial-gradient(circle at 15% 15%,rgba(199,163,91,.18),transparent 32%),linear-gradient(120deg,rgba(75,10,27,.98),rgba(31,20,23,.92))}
.portal-photo{position:absolute;right:0;top:0;width:48%;height:100%;opacity:.24;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 28%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 28%)}
.portal-photo img{width:100%;height:100%;object-fit:cover}
.portal-choice{border-radius:38px}
.portal-choice:hover{background:var(--wine)}
.portal-choice.copper-choice:hover{background:var(--champagne);color:var(--wine-dark)}
.portal-choice-icon{background:var(--wine)}
.copper-choice .portal-choice-icon{background:var(--champagne);color:var(--wine-dark)}
.login-grid{grid-template-columns:1fr 560px}
.login-story li span{color:var(--champagne)}
.login-story>a{color:#e7cdd4}
.login-story-image{height:260px;margin-top:38px;overflow:hidden;border-radius:30px;opacity:.9}
.login-story-image img{width:100%;height:100%;object-fit:cover}
.login-card,.access-help-card{border-radius:38px;background:var(--paper)}
.login-card-brand img{width:335px}

.contact-band{border-radius:54px 54px 0 0}
.site-footer{background:var(--charcoal)}
.footer-logo-frame{background:var(--paper);border-radius:22px}
.site-footer h3{color:#d9b667}
.back-to-top{background:var(--wine);box-shadow:0 12px 30px rgba(75,10,27,.25)}
.mobile-bottom-nav{background:rgba(34,25,28,.98)!important}
.mobile-bottom-nav a.is-active,.mobile-bottom-nav a:hover{background:var(--wine)!important}

.reveal{transform:translateY(42px) scale(.985);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.is-visible{transform:none}
@keyframes gentleFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.perspective-card{animation:gentleFloat 6s ease-in-out infinite}

@media(max-width:1280px){
  .portal-actions{display:none}
  .brand{min-width:270px}
  .home-hero-grid{gap:45px}
}

@media(max-width:900px){
  :root{--container:calc(100% - 36px)}
  .section{padding:100px 0}
  .brand .brand-logo{width:min(270px,calc(100vw - 105px))}
  .nav-toggle{background:var(--wine-dark);border-radius:16px}
  .primary-nav{background:var(--paper);border-radius:28px}
  .primary-nav .nav-dropdown,.primary-nav .nav-parent:hover .nav-dropdown,.primary-nav .nav-parent:focus-within .nav-dropdown{background:#f1e6e2}
  .home-hero-grid,.inner-hero-grid{grid-template-columns:1fr;gap:45px}
  .hero-media{height:650px}.hero-copy h1{font-size:clamp(4.4rem,10vw,7rem)}
  .people-gallery{grid-template-columns:1fr 1fr;grid-template-rows:500px 330px}.people-shot-wide{grid-column:1/-1;grid-row:auto}
  .partnership-story-grid,.culture-grid,.people-panel,.collaboration-card,.project-conversation-grid{grid-template-columns:1fr;gap:50px}
  .partnership-photo,.culture-image{height:540px}
  .collaboration-copy{padding:55px}.collaboration-image{min-height:480px}
  .people-panel{padding:55px}.contact-side{position:static}
  .login-grid{grid-template-columns:1fr}.login-story-image{max-width:680px;height:330px}
}

@media(max-width:640px){
  :root{--container:calc(100% - 26px);--radius:22px;--radius-lg:30px;--radius-xl:42px}
  .section{padding:78px 0}
  .site-header,.site-header.is-sticky{height:92px}
  .brand .brand-logo{width:min(242px,calc(100vw - 92px));max-height:75px}
  .hero-copy{padding-top:40px}.hero-copy h1{font-size:3.5rem;line-height:.98}
  .hero-media{height:520px;border-radius:28px 28px 52px 28px}
  .industry-rail{border-radius:25px 25px 0 0}
  .people-gallery{display:block}.people-shot{height:330px;margin-bottom:14px}.people-shot-wide{height:430px}
  .people-shot figcaption{align-items:start;flex-direction:column;gap:5px}.people-shot strong{font-size:1.25rem}
  .partnership-photo,.culture-image{height:420px;border-radius:28px 28px 50px 28px}
  .partnership-copy h2{font-size:2.8rem}
  .inner-hero-media{height:460px}
  .people-panel{padding:38px 25px;border-radius:34px;gap:35px}
  .people-panel-stats>div{grid-template-columns:48px 1fr}
  .service-group-list{gap:85px}.service-group-image{height:390px}
  .collaboration-card{border-radius:34px;gap:0}.collaboration-image{min-height:360px}.collaboration-copy{padding:38px 25px}
  .project-conversation-grid{gap:28px;padding-top:60px}
  .contact-photo{height:270px}.contact-form-card{border-radius:30px}
  .portal-photo{width:100%;opacity:.12}.login-story-image{height:250px}
  .contact-band{border-radius:34px 34px 0 0}
  .perspective-card{animation:none}
}

@media(prefers-reduced-motion:reduce){.perspective-card{animation:none}}
