:root {
  --bg:#191a18;
  --bg2:#20211e;
  --bg3:#292a26;
  --paper:#ede8dc;
  --ivory:#f5f1e9;
  --soft:#c1beb6;
  --muted:#96958d;
  --gold:#b89560;
  --gold-light:#d4b87e;
  --line:rgba(244,240,231,.17);
  --line-dark:rgba(25,26,24,.18);
  --max:1376px;
  --ease:cubic-bezier(.2,.7,.2,1)
}


* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth
}

body {
  margin:0;
  background:var(--bg);
  color:var(--ivory);
  font-family:"Helvetica Neue",Arial,sans-serif;
  -webkit-font-smoothing:antialiased
}

img {
  max-width:100%;
  display:block
}

a {
  color:inherit;
  text-decoration:none
}

button,input,select,textarea {
  font:inherit
}

button {
  cursor:pointer
}

p,h1,h2,h3,figure {
  margin:0
}

p {
  line-height:1.65
}

::selection {
  background:var(--gold);
  color:var(--bg)
}

:focus-visible {
  outline:2px solid var(--gold-light);
  outline-offset:4px
}

.shell {
  width:min(calc(100% - clamp(40px,8vw,144px)),var(--max));
  margin-inline:auto
}

.eyebrow {
  font-size:.72rem;
  line-height:1.5;
  font-weight:700;
  letter-spacing:.19em;
  text-transform:uppercase;
  color:var(--gold-light)
}

.arrow {
  font-family:Arial,sans-serif;
  font-weight:400;
  line-height:1
}

.dot {
  color:var(--gold)
}


.skip-link {
  position:absolute;
  z-index:1000;
  top:-100px;
  left:16px;
  background:var(--gold-light);
  color:var(--bg);
  padding:12px 18px
}

.skip-link:focus {
  top:12px
}


.site-header {
  position:sticky;
  top:0;
  z-index:60;
  border-bottom:1px solid var(--line);
  background:rgba(25,26,24,.94);
  backdrop-filter:blur(18px)
}

.header-inner {
  height:78px;
  display:flex;
  align-items:center;
  gap:30px
}

.brand {
  display:inline-flex;
  align-items:center;
  gap:7px;
  flex:none;
  padding:4px 7px;
  background:#f9f6f0;
  border:1px solid #cabb9c;
  transition:border-color .2s,box-shadow .2s
}

.brand:hover {
  border-color:var(--gold-light);
  box-shadow:0 0 0 2px rgba(184,149,96,.22)
}

.brand-symbol,.brand-lockup {
  display:block;
  flex:none;
  background-image:url("/assets/jirehmans-logo.webp");
  background-repeat:no-repeat
}

.brand-symbol {
  width:35px;
  height:36px;
  background-size:184px 184px;
  background-position:-76px -46px
}

.brand-lockup {
  width:190px;
  height:43px;
  background-size:230px 230px;
  background-position:-21px -107px
}

.desktop-nav {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(10px,1.6vw,26px);
  flex:1
}

.desktop-nav a {
  font-size:.69rem;
  font-weight:700;
  letter-spacing:.045em;
  white-space:nowrap;
  color:#d6d3ca;
  transition:color .2s
}

.desktop-nav a:hover,.desktop-nav a[aria-current="page"] {
  color:var(--gold-light)
}

.header-actions {
  margin-left:auto;
  display:flex;
  align-items:center
}

.language-switch {
  display:flex;
  align-items:center;
  gap:2px;
  padding-left:16px;
  border-left:1px solid var(--line)
}

.language-switch a {
  padding:8px 5px;
  font-size:.65rem;
  font-weight:800;
  letter-spacing:.09em;
  color:var(--muted)
}

.language-switch a+ a:before {
  content:"/";
  display:inline-block;
  color:#5c5d57;
  margin-right:9px
}

.language-switch a:hover,.language-switch a[aria-current="true"] {
  color:var(--gold-light)
}

.menu-toggle,.mobile-nav {
  display:none
}


.button {
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  border:1px solid transparent;
  padding:12px 21px;
  font-size:.78rem;
  font-weight:750;
  letter-spacing:.015em;
  transition:background .25s,border-color .25s,transform .25s,color .25s
}

.button:hover {
  transform:translateY(-2px)
}

.button .arrow {
  font-size:1.15rem
}

.button--gold {
  background:var(--gold);
  color:var(--bg)
}

.button--gold:hover {
  background:var(--gold-light)
}

.button--outline {
  border-color:rgba(245,241,233,.43);
  background:transparent;
  color:var(--ivory)
}

.button--outline:hover {
  border-color:var(--gold-light);
  color:var(--gold-light)
}

.button--text {
  padding:12px 0;
  min-height:auto;
  border:0;
  border-bottom:1px solid var(--gold);
  color:var(--ivory);
  gap:48px
}

.button--text:hover {
  color:var(--gold-light)
}


.home-hero {
  min-height:min(755px,calc(100svh - 78px));
  display:grid;
  grid-template-columns:minmax(0,1.47fr) minmax(340px,1fr);
  gap:clamp(30px,5vw,84px);
  align-items:center;
  padding-block:68px 76px
}

.hero-copy {
  min-width:0;
  padding-top:8px
}

.hero-kicker {
  margin-bottom:34px
}

.hero-title {
  font-size:clamp(3.5rem,5.7vw,6.3rem);
  line-height:.995;
  letter-spacing:-.073em;
  font-weight:800;
  max-width:850px
}

.hero-title span {
  display:block;
  white-space:nowrap
}

.hero-intro {
  font-size:clamp(.96rem,1.26vw,1.16rem);
  line-height:1.6;
  color:var(--soft);
  max-width:690px;
  margin-top:40px
}

.hero-actions {
  display:flex;
  flex-wrap:wrap;
  gap:11px;
  margin-top:28px
}

.hero-trade {
  max-width:630px;
  margin-top:26px;
  padding-left:15px;
  border-left:1px solid var(--gold);
  color:var(--soft);
  font-size:.82rem;
  line-height:1.55
}

.hero-trade a {
  color:var(--ivory);
  border-bottom:1px solid var(--gold);
  white-space:nowrap
}

.hero-trade a:hover {
  color:var(--gold-light)
}

.visual-frame {
  min-width:0;
  position:relative
}

.visual-frame img {
  width:100%;
  height:auto;
  aspect-ratio:9/10;
  object-fit:cover;
  border-radius:2px;
  box-shadow:0 24px 80px rgba(0,0,0,.15)
}

.visual-frame figcaption {
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-top:12px;
  padding-top:9px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:.62rem;
  letter-spacing:.16em;
  font-weight:700
}

.visual-frame figcaption span {
  color:var(--gold-light);
  font-size:.95rem
}

.hero-visual {
  align-self:center
}

.credibility {
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#1e1f1c
}

.credibility .shell {
  min-height:73px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px
}

.credibility p {
  font-size:.64rem;
  font-weight:750;
  letter-spacing:.18em;
  color:#c2beb3;
  text-align:center
}

.tiny-cross {
  font-size:.7rem;
  color:var(--gold)
}


.section {
  padding-block:clamp(100px,11vw,170px)
}

.section--opening {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:6vw
}

.section--opening h2,.service-intro h2 {
  max-width:980px;
  font-size:clamp(2.8rem,5.4vw,5.9rem);
  line-height:1.07;
  letter-spacing:-.065em;
  font-weight:760
}

.section--opening>div>p,.service-intro>div>p {
  max-width:650px;
  margin-top:33px;
  color:var(--soft);
  font-size:1.08rem
}

.section--capabilities {
  background:var(--paper);
  color:var(--bg)
}

.section--capabilities .eyebrow,.service-list-section .eyebrow {
  color:#866c45
}

.section-heading-row {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:30px
}

.section-heading {
  max-width:780px
}

.section-heading h2 {
  margin-top:25px;
  font-size:clamp(2.8rem,5.25vw,5.55rem);
  font-weight:760;
  letter-spacing:-.068em;
  line-height:1.04
}

.section-heading>p:last-child:not(.eyebrow) {
  margin-top:23px;
  max-width:610px;
  color:var(--muted);
  font-size:1.04rem
}

.section--capabilities .section-heading>p:last-child {
  color:#595b54
}

.section-index {
  padding-top:4px;
  white-space:nowrap;
  font-size:.65rem;
  font-weight:700;
  letter-spacing:.15em;
  color:#8b897f
}

.capability-list {
  margin-top:64px;
  border-top:1px solid var(--line-dark)
}

.capability-card {
  display:grid;
  grid-template-columns:13% 1fr auto;
  align-items:center;
  gap:25px;
  min-height:188px;
  padding:29px 6px 29px 0;
  border-bottom:1px solid var(--line-dark);
  transition:padding .3s var(--ease),background .3s
}

.capability-card:hover {
  padding-left:19px;
  background:#e4dece
}

.card-number {
  align-self:start;
  padding-top:10px;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.13em;
  color:#766d5d
}

.card-copy {
  display:flex;
  flex-direction:column;
  gap:10px
}

.card-copy strong {
  font-size:clamp(1.9rem,3.1vw,3.3rem);
  letter-spacing:-.055em;
  font-weight:760;
  line-height:1.1
}

.card-copy>span {
  max-width:660px;
  color:#595b54;
  font-size:.97rem;
  line-height:1.6
}

.capability-card>.arrow {
  align-self:center;
  font-size:2rem;
  font-weight:300;
  color:#8e7045
}

.trade-section {
  background:#242520;
  border-block:1px solid var(--line)
}

.trade-grid {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:6vw
}

.trade-grid>div {
  max-width:950px
}

.trade-grid h2 {
  font-size:clamp(2.9rem,5.2vw,5.7rem);
  line-height:1.05;
  letter-spacing:-.065em
}

.trade-grid p:not(.eyebrow) {
  max-width:720px;
  margin-top:27px;
  color:var(--soft);
  font-size:1.05rem
}

.trade-grid .button {
  margin-top:25px
}

.section--method .section-heading>p:last-child {
  color:var(--soft)
}

.steps {
  list-style:none;
  margin:66px 0 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line)
}

.steps li {
  min-height:255px;
  padding:26px 23px 0 0;
  border-right:1px solid var(--line)
}

.steps li+li {
  padding-left:24px
}

.steps li:last-child {
  border-right:0
}

.step-number {
  color:var(--gold-light);
  font-size:.7rem;
  letter-spacing:.15em
}

.steps h3 {
  margin-top:48px;
  font-size:1.6rem;
  letter-spacing:-.045em
}

.steps p {
  max-width:240px;
  margin-top:14px;
  color:var(--muted);
  font-size:.89rem
}


.feature-section {
  background:var(--bg2);
  overflow:hidden
}

.feature-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(60px,9vw,155px);
  align-items:center
}

.feature-image {
  aspect-ratio:1.17;
  overflow:hidden
}

.feature-image img {
  width:100%;
  height:100%;
  object-fit:cover
}

.feature-copy {
  max-width:590px
}

.feature-copy h2,.academy-copy h2,.belief-grid h2 {
  margin-top:26px;
  font-size:clamp(2.9rem,5.2vw,5.7rem);
  letter-spacing:-.065em;
  line-height:1.05
}

.feature-copy>p:not(.eyebrow),.academy-copy>p:not(.eyebrow),.belief-grid p:not(.eyebrow) {
  max-width:520px;
  margin-top:27px;
  color:var(--soft);
  font-size:1.05rem
}

.feature-copy .button,.academy-copy .button {
  margin-top:24px
}

.academy-section {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(55px,8vw,145px);
  align-items:center
}

.academy-art {
  min-height:480px;
  padding:42px;
  background:linear-gradient(135deg,#685842 0,#a18861 39%,#2d2d28 100%);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  position:relative;
  overflow:hidden
}

.academy-art:before {
  content:"";
  position:absolute;
  width:88%;
  aspect-ratio:1;
  border:1px solid rgba(255,245,226,.34);
  border-radius:50%;
  top:3%;
  left:30%;
  box-shadow:0 0 0 80px rgba(255,245,226,.035),0 0 0 160px rgba(255,245,226,.025)
}

.academy-art:after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,transparent 45%,rgba(20,20,18,.5))
}

.academy-art>span,.academy-art small {
  position:relative;
  z-index:2
}

.academy-art>span {
  font-size:clamp(2.3rem,4.1vw,5rem);
  font-weight:800;
  letter-spacing:-.07em;
  line-height:.99
}

.academy-art small {
  align-self:flex-end;
  letter-spacing:.2em;
  font-weight:800;
  font-size:.8rem
}

.academy-copy>p:not(.eyebrow) {
  color:var(--soft)
}


.cta-band {
  background:var(--gold);
  color:var(--bg);
  padding-block:clamp(80px,9vw,130px)
}

.cta-band-inner {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:55px
}

.cta-band .eyebrow {
  color:#3c372e
}

.cta-band h2 {
  max-width:850px;
  margin-top:19px;
  font-size:clamp(3.2rem,6vw,6.6rem);
  letter-spacing:-.07em;
  line-height:1.02
}

.cta-band p:not(.eyebrow) {
  max-width:660px;
  margin-top:25px;
  color:#373831;
  font-size:1.02rem
}

.cta-band .button--gold {
  background:var(--bg);
  color:var(--ivory);
  flex-shrink:0
}

.cta-band .button--gold:hover {
  background:#35352f
}


.interior-hero {
  min-height:670px;
  padding-block:86px 95px;
  display:grid;
  grid-template-columns:minmax(0,1.3fr) minmax(300px,.74fr);
  gap:clamp(40px,8vw,140px);
  align-items:center
}

.interior-copy h1 {
  max-width:880px;
  margin-top:34px;
  font-size:clamp(3.7rem,6vw,6.5rem);
  font-weight:770;
  letter-spacing:-.07em;
  line-height:1.01
}

.interior-copy>p:not(.eyebrow) {
  max-width:700px;
  margin-top:34px;
  color:var(--soft);
  font-size:1.15rem
}

.interior-rule {
  display:flex;
  justify-content:space-between;
  max-width:650px;
  margin-top:52px;
  padding-top:15px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:.64rem;
  letter-spacing:.16em;
  font-weight:700
}

.interior-rule span:last-child {
  color:var(--gold-light);
  font-size:1rem
}

.interior-visual img {
  aspect-ratio:9/10
}

.service-intro {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:6vw
}

.service-list-section {
  padding-top:20px;
  background:var(--paper);
  color:var(--bg)
}

.service-list {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:0 80px
}

.service-item {
  min-height:215px;
  display:grid;
  grid-template-columns:60px 1fr;
  gap:18px;
  padding:29px 0 35px;
  border-top:1px solid var(--line-dark)
}

.service-item>span {
  padding-top:5px;
  color:#957649;
  font-size:.72rem;
  font-weight:700
}

.service-item h3 {
  font-size:clamp(1.5rem,2.2vw,2.25rem);
  letter-spacing:-.05em
}

.service-item p {
  margin-top:14px;
  max-width:500px;
  color:#5b5e56;
  font-size:.96rem
}

.service-belief {
  background:var(--bg2)
}

.belief-grid {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:6vw
}

.belief-grid>div {
  max-width:950px
}

.belief-grid h2 {
  margin-top:0
}

.belief-grid p:not(.eyebrow) {
  max-width:650px
}


.contact-hero {
  padding-block:115px 100px
}

.contact-hero h1 {
  max-width:1040px;
  margin-top:30px;
  font-size:clamp(4rem,8vw,9rem);
  letter-spacing:-.08em;
  line-height:.98
}

.contact-hero>p:not(.eyebrow) {
  max-width:720px;
  margin-top:34px;
  color:var(--soft);
  font-size:1.15rem
}

.contact-section {
  padding-block:90px 130px;
  background:var(--paper);
  color:var(--bg)
}

.contact-grid {
  display:grid;
  grid-template-columns:.88fr 1.12fr;
  gap:clamp(55px,9vw,150px)
}

.contact-details .eyebrow,.form-panel .eyebrow {
  color:#856b43
}

.contact-email {
  display:inline-block;
  margin-top:35px;
  font-size:clamp(1.65rem,3.5vw,3.6rem);
  font-weight:700;
  letter-spacing:-.06em;
  line-height:1.13;
  overflow-wrap:anywhere
}

.contact-email .arrow {
  color:#98764b;
  font-size:1.9rem
}

.contact-location {
  margin-top:90px;
  display:flex;
  gap:25px
}

.contact-location .line {
  width:34px;
  height:1px;
  margin-top:12px;
  background:#96754c
}

.contact-location p {
  font-size:.97rem
}

.contact-response {
  margin-top:60px;
  color:#62645c;
  max-width:320px
}

.form-panel {
  padding:clamp(30px,4vw,65px);
  background:#f5f1e8;
  border:1px solid #d8d2c5
}

.form-panel h2 {
  margin:16px 0 45px;
  font-size:clamp(2rem,3.5vw,3.8rem);
  letter-spacing:-.06em
}

.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px
}

.field {
  margin-bottom:24px
}

.field label {
  display:block;
  margin-bottom:11px;
  font-size:.77rem;
  font-weight:700
}

.field label span {
  color:#9b7649
}

.field input,.field select,.field textarea {
  width:100%;
  min-height:47px;
  padding:12px 0;
  border:0;
  border-bottom:1px solid #a9a69c;
  border-radius:0;
  outline:none;
  background:transparent;
  color:var(--bg);
  font-size:.97rem;
  transition:border-color .2s
}

.field textarea {
  resize:vertical;
  min-height:133px
}

.field input:focus,.field select:focus,.field textarea:focus {
  border-bottom:2px solid #796039
}

.field textarea::placeholder {
  color:#81837b;
  opacity:1
}

.consent {
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin:13px 0 31px;
  color:#62645c;
  font-size:.77rem;
  line-height:1.55
}

.consent input {
  accent-color:#8e7045;
  margin:3px 0 0
}

.consent a {
  text-decoration:underline;
  text-underline-offset:2px;
  color:var(--bg)
}

.form-panel .button {
  border:0
}

.honeypot {
  position:absolute;
  left:-9999px;
  width:1px;
  height:1px;
  overflow:hidden
}


.legal-hero {
  padding-block:116px 85px;
  border-bottom:1px solid var(--line)
}

.legal-hero h1 {
  margin-top:20px;
  font-size:clamp(4rem,8vw,8rem);
  letter-spacing:-.075em;
  line-height:1
}

.legal-content {
  max-width:1000px;
  padding-block:70px 130px
}

.legal-lead {
  font-size:1.17rem;
  color:var(--soft);
  margin-bottom:50px
}

.legal-block {
  padding:35px 0;
  border-top:1px solid var(--line)
}

.legal-block h2 {
  font-size:1.5rem;
  letter-spacing:-.035em;
  margin-bottom:17px
}

.legal-block p {
  color:var(--soft);
  font-size:1rem
}

.legal-block dl {
  margin:10px 0 0
}

.legal-block dl>div {
  display:grid;
  grid-template-columns:240px 1fr;
  gap:25px;
  padding:18px 0;
  border-top:1px solid var(--line)
}

.legal-block dt {
  color:var(--muted);
  font-size:.84rem
}

.legal-block dd {
  margin:0;
  line-height:1.7
}

.legal-block a {
  text-decoration:underline;
  text-decoration-color:var(--gold);
  text-underline-offset:4px
}

.thank-you {
  min-height:65vh;
  padding-block:140px
}

.thank-you h1 {
  max-width:900px;
  margin-top:25px;
  font-size:clamp(3.5rem,7vw,7rem);
  letter-spacing:-.075em;
  line-height:1.02
}

.thank-you>p:not(.eyebrow) {
  max-width:650px;
  margin-top:30px;
  color:var(--soft);
  font-size:1.1rem
}

.thank-you .button {
  margin-top:34px
}


.site-footer {
  background:#151613;
  color:var(--ivory)
}

.footer-top {
  padding-block:100px 85px;
  display:flex;
  justify-content:space-between;
  gap:40px;
  border-bottom:1px solid var(--line)
}

.footer-top>div:first-child {
  max-width:870px
}

.footer-top h2 {
  margin-top:22px;
  font-size:clamp(2.8rem,5.2vw,5.8rem);
  letter-spacing:-.068em;
  line-height:1.05
}

.footer-top p:not(.eyebrow) {
  max-width:650px;
  margin-top:22px;
  color:var(--soft)
}

.footer-top .button {
  margin-top:23px
}

.footer-route {
  width:240px;
  min-width:180px;
  display:flex;
  align-items:center;
  gap:12px;
  align-self:center;
  color:var(--gold-light);
  font-size:.66rem;
  letter-spacing:.18em;
  font-weight:700
}

.footer-route i {
  height:1px;
  flex:1;
  background:var(--gold);
  position:relative
}

.footer-route i:after {
  content:"";
  position:absolute;
  right:0;
  top:-3px;
  width:7px;
  height:7px;
  border:1px solid var(--gold);
  border-radius:50%;
  background:#151613
}

.footer-grid {
  display:grid;
  grid-template-columns:2fr 1fr 1fr;
  gap:80px;
  padding-block:63px 80px
}

.footer-logo-panel {
  width:min(100%,390px);
  aspect-ratio:1.9;
  overflow:hidden;
  border:1px solid rgba(212,184,126,.6);
  background:#f9f6f0
}

.footer-logo-panel img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center
}

.footer-identity p {
  max-width:330px;
  margin:14px 0;
  color:var(--muted);
  font-size:.9rem
}

.footer-identity>a {
  font-size:.87rem;
  border-bottom:1px solid var(--gold);
  padding-bottom:3px
}

.footer-grid h3 {
  color:var(--gold-light);
  font-size:.65rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  margin:12px 0 22px
}

.footer-grid ul {
  list-style:none;
  padding:0;
  margin:0
}

.footer-grid li+li {
  margin-top:15px
}

.footer-grid li a {
  display:inline-flex;
  gap:18px;
  align-items:center;
  color:#c9c6bd;
  font-size:.81rem
}

.footer-grid li a:hover {
  color:var(--gold-light)
}

.footer-grid li .arrow {
  color:var(--gold);
  font-size:.9rem
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding-block:21px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:.66rem;
  letter-spacing:.05em
}

.footer-bottom a {
  color:var(--gold-light);
  font-weight:700
}


[data-reveal].is-visible {
  animation:rise-in .65s var(--ease) both
}

@keyframes rise-in {
  from {
    opacity:.65;
    transform:translateY(18px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }
}


@media(max-width:1260px) {
  .desktop-nav {
    gap:12px
  }
  .desktop-nav a {
    font-size:.62rem
  }
  .hero-title {
    font-size:clamp(3.5rem,5.5vw,5.5rem)
  }
}


@media(max-width:1050px) {
  .desktop-nav {
    display:none
  }
  .menu-toggle {
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:7px;
    background:none;
    border:0;
    width:44px;
    height:44px;
    margin-left:16px;
    padding:9px
  }
  .menu-toggle span {
    height:1px;
    width:100%;
    background:var(--ivory);
    transition:transform .3s
  }
  .menu-toggle[aria-expanded="true"] span:first-child {
    transform:translateY(4px) rotate(45deg)
  }
  .menu-toggle[aria-expanded="true"] span:last-child {
    transform:translateY(-4px) rotate(-45deg)
  }
  .mobile-nav {
    display:none;
    position:absolute;
    top:78px;
    left:0;
    right:0;
    max-height:calc(100svh - 78px);
    overflow:auto;
    background:#20211e;
    border-bottom:1px solid var(--line);
    padding:20px max(5vw,24px) 35px;
    box-shadow:0 26px 50px rgba(0,0,0,.3)
  }
  .mobile-nav.is-open {
    display:flex;
    flex-direction:column
  }
  .mobile-nav a {
    padding:16px 0;
    border-bottom:1px solid var(--line);
    font-size:clamp(1.25rem,3vw,1.9rem);
    font-weight:700;
    letter-spacing:-.04em
  }
  .mobile-nav a[aria-current="page"] {
    color:var(--gold-light)
  }
  .home-hero {
    grid-template-columns:1.15fr 1fr;
    gap:35px
  }
  .hero-title {
    font-size:clamp(3.3rem,5.3vw,5rem)
  }
  .hero-intro {
    margin-top:28px
  }
  .hero-kicker {
    margin-bottom:27px
  }
}


@media(max-width:800px) {
  .shell {
    width:min(calc(100% - 44px),var(--max))
  }
  .header-inner {
    height:70px
  }
  .mobile-nav {
    top:70px;
    max-height:calc(100svh - 70px)
  }
  .home-hero,.interior-hero {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    min-height:0;
    gap:58px;
    padding-block:76px 62px
  }
  .hero-title {
    font-size:clamp(3.5rem,9vw,6rem)
  }
  .hero-intro {
    max-width:650px
  }
  .hero-visual,.interior-visual {
    max-width:none
  }
  .visual-frame img {
    aspect-ratio:1.35;
    object-fit:cover
  }
  .interior-hero {
    padding-block:79px 68px
  }
  .interior-copy h1 {
    font-size:clamp(3.6rem,8.5vw,6rem)
  }
  .interior-visual img {
    aspect-ratio:1.45
  }
  .section--opening,.service-intro,.belief-grid,.trade-grid {
    grid-template-columns:1fr;
    gap:32px
  }
  .section--opening>div>p,.service-intro>div>p {
    margin-top:25px
  }
  .section {
    padding-block:95px
  }
  .section-heading-row {
    gap:20px
  }
  .steps {
    grid-template-columns:repeat(2,1fr)
  }
  .steps li:nth-child(2) {
    border-right:0
  }
  .steps li:nth-child(n+3) {
    border-top:1px solid var(--line)
  }
  .feature-grid,.academy-section {
    grid-template-columns:1fr;
    gap:55px
  }
  .feature-image {
    aspect-ratio:1.35
  }
  .academy-art {
    min-height:380px
  }
  .contact-grid {
    grid-template-columns:1fr;
    gap:65px
  }
  .contact-location {
    margin-top:42px
  }
  .contact-response {
    margin-top:25px
  }
  .footer-grid {
    gap:40px;
    grid-template-columns:1.4fr 1fr
  }
  .footer-grid>div:last-child {
    grid-column:2
  }
  .footer-route {
    display:none
  }
}


@media(max-width:580px) {
  .shell {
    width:calc(100% - 36px)
  }
  .brand {
    padding:3px 5px
  }
  .brand-symbol {
    display:none
  }
  .brand-lockup {
    width:152px;
    height:35px;
    background-size:184px 184px;
    background-position:-17px -86px
  }
  .language-switch {
    border-left:0;
    padding-left:0
  }
  .language-switch a {
    padding:8px 2px;
    font-size:.57rem
  }
  .language-switch a+ a:before {
    margin-right:5px
  }
  .menu-toggle {
    margin-left:7px;
    width:36px;
    padding:6px
  }
  .home-hero {
    padding-block:62px 57px;
    gap:44px
  }
  .hero-kicker {
    margin-bottom:24px
  }
  .hero-title {
    font-size:clamp(2.68rem,10.4vw,4.25rem);
    letter-spacing:-.075em;
    line-height:1.02
  }
  .locale-fr .hero-title {
    font-size:clamp(2.48rem,9.7vw,4rem)
  }
  .locale-de .hero-title {
    font-size:clamp(2.35rem,9.3vw,4rem)
  }
  .hero-intro {
    margin-top:26px;
    font-size:1rem
  }
  .hero-actions {
    gap:10px;
    margin-top:25px
  }
  .hero-actions .button {
    width:100%;
    min-height:50px
  }
  .visual-frame img {
    aspect-ratio:1.13
  }
  .credibility .shell {
    min-height:86px
  }
  .credibility p {
    font-size:.54rem;
    line-height:1.7;
    letter-spacing:.13em
  }
  .tiny-cross {
    display:none
  }
  .section {
    padding-block:75px
  }
  .section--opening h2,.service-intro h2,.section-heading h2,.feature-copy h2,.academy-copy h2,.belief-grid h2,.trade-grid h2 {
    font-size:clamp(2.55rem,11vw,4.1rem)
  }
  .section--opening>div>p,.service-intro>div>p {
    font-size:1rem
  }
  .section-heading-row {
    display:block
  }
  .section-index {
    display:none
  }
  .capability-list {
    margin-top:43px
  }
  .capability-card {
    grid-template-columns:1fr auto;
    gap:11px;
    min-height:194px;
    padding:25px 0
  }
  .capability-card .card-number {
    grid-column:1/-1
  }
  .card-copy strong {
    font-size:2rem
  }
  .card-copy>span {
    font-size:.9rem
  }
  .capability-card>.arrow {
    font-size:1.65rem
  }
  .steps {
    margin-top:47px
  }
  .steps li {
    min-height:222px;
    padding-right:14px
  }
  .steps li+li {
    padding-left:15px
  }
  .steps h3 {
    margin-top:36px;
    font-size:1.32rem
  }
  .steps p {
    font-size:.79rem
  }
  .academy-art {
    min-height:300px;
    padding:28px
  }
  .academy-art>span {
    font-size:clamp(2.6rem,10vw,4rem)
  }
  .cta-band {
    padding-block:71px
  }
  .cta-band-inner {
    display:block
  }
  .cta-band h2 {
    font-size:clamp(3rem,11vw,4.7rem)
  }
  .cta-band .button {
    margin-top:32px
  }
  .interior-hero {
    gap:44px;
    padding-block:68px 55px
  }
  .interior-copy h1 {
    font-size:clamp(3rem,10.7vw,4.7rem);
    margin-top:24px
  }
  .interior-copy>p:not(.eyebrow) {
    font-size:1rem;
    margin-top:25px
  }
  .interior-rule {
    margin-top:39px
  }
  .interior-rule span:first-child {
    font-size:.53rem;
    line-height:1.6
  }
  .service-list {
    display:block
  }
  .service-item {
    min-height:0;
    grid-template-columns:43px 1fr;
    gap:8px;
    padding-block:25px
  }
  .service-item h3 {
    font-size:1.75rem
  }
  .service-item p {
    font-size:.9rem
  }
  .contact-hero {
    padding-block:79px 73px
  }
  .contact-hero h1 {
    font-size:clamp(3.55rem,11.5vw,5.1rem)
  }
  .contact-hero>p:not(.eyebrow) {
    font-size:1rem
  }
  .contact-section {
    padding-block:69px 95px
  }
  .contact-email {
    font-size:2.25rem
  }
  .form-panel {
    padding:24px 21px
  }
  .form-panel h2 {
    margin-bottom:32px
  }
  .form-row {
    grid-template-columns:1fr;
    gap:0
  }
  .legal-hero {
    padding-block:80px 50px
  }
  .legal-hero h1 {
    font-size:clamp(3.4rem,12vw,5.5rem)
  }
  .legal-content {
    padding-block:48px 95px
  }
  .legal-block dl>div {
    grid-template-columns:1fr;
    gap:5px
  }
  .footer-top {
    padding-block:75px 65px
  }
  .footer-top h2 {
    font-size:clamp(2.7rem,10vw,4.5rem)
  }
  .footer-grid {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:55px 22px;
    padding-block:55px
  }
  .footer-identity {
    grid-column:1/-1
  }
  .footer-grid>div:last-child {
    grid-column:auto
  }
  .footer-grid li a {
    font-size:.77rem
  }
  .footer-bottom {
    font-size:.58rem
  }
}


@media(max-width:380px) {
  .brand-lockup {
    width:140px;
    height:33px;
    background-size:169px 169px;
    background-position:-15px -79px
  }
  .hero-title {
    font-size:10.1vw
  }
  .locale-fr .hero-title {
    font-size:9.6vw
  }
  .locale-de .hero-title {
    font-size:9vw
  }
  .footer-grid {
    grid-template-columns:1fr
  }
  .footer-grid>div:last-child {
    grid-column:auto
  }
}


@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    animation-duration:.01ms!important;
    transition-duration:.01ms!important
  }
}

.academy-art,.academy-copy {
  min-width:0;
}

.interior-copy h1,.contact-hero h1 {
  overflow-wrap:break-word;
}

.section-heading h2,.academy-copy h2,.cta-band h2 {
  hyphens:auto;
  overflow-wrap:anywhere;
}

@media(max-width:580px) {
  .academy-art>span {
    font-size:clamp(2rem,8vw,3.6rem);
    overflow-wrap:anywhere;
  }
}

@media(max-width:380px) {
  .cta-band h2,.section-heading h2,.academy-copy h2 {
    font-size:clamp(2.25rem,10vw,3.7rem);
  }
}
