/* ═══════════════════════════════════════════════
   PALO CAPITAL — Global Stylesheet
   CI: Bayoux #4A666F · Sage #93A298 · Offwhite #F4F5F5 · Gold #C9A96E
   ═══════════════════════════════════════════════ */

@font-face { font-family:'FG'; src:url('FoundersGrotesk-Regular.woff2') format('woff2'), url('FoundersGrotesk-Regular.otf') format('opentype'); font-weight:400; font-display:swap; }
@font-face { font-family:'FG'; src:url('FoundersGrotesk-Medium.woff2') format('woff2'), url('FoundersGrotesk-Medium.otf') format('opentype'); font-weight:500; font-display:swap; }

:root {
  --bayoux: #4A666F;
  --bayoux-dark: #3a5259;
  --bayoux-deep: #1e2e33;
  --bayoux-light: #e8eef0;
  --sage: #93A298;
  --offwhite: #F4F5F5;
  --cream: #EAECE8;
  --white: #ffffff;
  --black: #0d1214;
  --text: #1a1a1a;
  --text-light: #6a7a7a;
  --accent: #C9A96E;
  --accent-dark: #b0904f;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  font-family: 'FG', -apple-system, system-ui, sans-serif;
  color: var(--text); line-height:1.65; font-weight:400; font-size:17px;
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  overflow-x:hidden;
}

/* ─── ANIMATIONS ─── */
@keyframes pulse {
  0%,100% { opacity:0.25; }
  50% { opacity:0.5; }
}

/* ─── NAV ─── */
nav {
  position:fixed; top:0; left:0; right:0; z-index:100;
  padding:24px 48px;
  transition:all 0.5s cubic-bezier(0.16,1,0.3,1);
}
nav.scrolled {
  background:rgba(255,255,255,0.97); backdrop-filter:blur(20px);
  padding:16px 48px;
  box-shadow:0 1px 0 rgba(0,0,0,0.06);
}
.nav-inner {
  max-width:1400px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
}
.logo-img { height:30px; transition:opacity 0.3s; }
.logo-img:hover { opacity:0.7; }
.nav-right { display:flex; gap:12px; align-items:center; }
.nav-links {
  display:flex; gap:4px; align-items:center;
  background:rgba(255,255,255,0.6); backdrop-filter:blur(12px);
  padding:6px; border-radius:100px;
  border:1px solid rgba(0,0,0,0.06);
}
nav.scrolled .nav-links {
  background:var(--offwhite);
  border-color:rgba(0,0,0,0.04);
}
.nav-links a {
  font-size:14px; font-weight:400; letter-spacing:0.3px;
  text-decoration:none; color:var(--text-light); transition:all 0.3s;
  padding:8px 20px; border-radius:100px;
}
.nav-links a:hover { color:var(--bayoux-deep); background:rgba(0,0,0,0.04); }
.nav-links a.active { color:var(--bayoux-deep); background:var(--white); box-shadow:0 1px 4px rgba(0,0,0,0.08); font-weight:500; }
nav.scrolled .nav-links a { color:var(--text-light); }
nav.scrolled .nav-links a:hover { color:var(--bayoux-deep); background:rgba(0,0,0,0.04); }
nav.scrolled .nav-links a.active { color:var(--bayoux-deep); background:var(--white); box-shadow:0 1px 4px rgba(0,0,0,0.08); font-weight:500; }
nav.scrolled .lang-toggle { color:var(--text-light); border-color:rgba(0,0,0,0.12); }
nav.scrolled .lang-toggle:hover { background:var(--offwhite); color:var(--bayoux-deep); border-color:rgba(0,0,0,0.2); }
nav.scrolled .hamburger span { background:var(--text); }

.lang-toggle {
  font-size:11px; font-weight:500; letter-spacing:1.5px; cursor:pointer;
  padding:8px 18px; border:1px solid rgba(0,0,0,0.12); border-radius:100px;
  background:rgba(255,255,255,0.6); backdrop-filter:blur(12px);
  color:var(--text-light); transition:all 0.3s;
  text-transform:uppercase;
}
.lang-toggle:hover { background:rgba(255,255,255,0.9); color:var(--bayoux-deep); border-color:rgba(0,0,0,0.2); }
.hamburger { display:none; background:none; border:none; cursor:pointer; padding:4px; }
.hamburger span { display:block; width:26px; height:1.5px; background:var(--text); margin:6px 0; transition:0.3s; }

/* ─── HERO (Homepage) ─── */
.hero {
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background: var(--white);
  position:relative; overflow:hidden;
  text-align:center;
}
.hero-bg-img {
  position:absolute; inset:0;
  background-size:cover; background-position:center 40%;
  opacity:0.35;
}
.hero-gradient {
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.85) 100%);
}
.hero-content {
  position:relative; z-index:2;
  max-width:1100px; padding:0 48px;
}
.hero-eyebrow {
  display:inline-block;
  font-size:13px; font-weight:500; letter-spacing:4px;
  text-transform:uppercase; color:var(--accent);
  margin-bottom:40px;
}
.hero h1 {
  font-size:clamp(48px, 7vw, 100px);
  font-weight:400; line-height:1.05;
  color:var(--bayoux-deep);
  letter-spacing:-0.03em;
  margin-bottom:36px;
}
.hero h1 em { font-style:italic; color:var(--accent); }
.hero-sub {
  font-size:clamp(18px, 2vw, 22px);
  color:var(--text-light);
  line-height:1.7; max-width:600px; margin:0 auto 56px;
}
.hero-cta {
  display:inline-flex; align-items:center; gap:12px;
  padding:16px 36px; background:var(--bayoux); color:var(--white);
  text-decoration:none; font-size:15px; font-weight:500;
  border-radius:100px; transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
  letter-spacing:0.3px;
}
.hero-cta:hover { background:var(--bayoux-deep); transform:translateY(-2px); box-shadow:0 16px 40px rgba(0,0,0,0.12); }
.hero-cta svg { transition:transform 0.3s; }
.hero-cta:hover svg { transform:translateX(4px); }
.hero-scroll {
  position:absolute; bottom:40px; left:50%; transform:translateX(-50%);
  color:var(--text-light); font-size:11px; letter-spacing:3px;
  text-transform:uppercase;
  animation: pulse 2s infinite;
}

/* ─── PAGE HERO (subpages) ─── */
.page-hero {
  padding:180px 48px 100px;
  background:var(--white);
  text-align:center;
  position:relative; overflow:hidden;
}
.page-hero::before {
  content:''; position:absolute; inset:0;
  background:none;
}
.page-hero-inner {
  max-width:900px; margin:0 auto; position:relative; z-index:1;
}
.page-hero .eyebrow {
  font-size:13px; font-weight:500; letter-spacing:4px;
  text-transform:uppercase; color:var(--accent); margin-bottom:28px;
}
.page-hero h1 {
  font-size:clamp(42px, 5.5vw, 80px);
  font-weight:400; line-height:1.08;
  color:var(--bayoux-deep); letter-spacing:-0.03em;
}
.page-hero h1 em { font-style:italic; color:var(--accent); }
.page-hero p {
  font-size:clamp(18px, 2vw, 21px);
  color:var(--text-light);
  line-height:1.7; max-width:640px; margin:32px auto 0;
}

/* ─── BIG TEXT / EDITORIAL STATEMENT ─── */
.big-text {
  padding:100px 48px;
  background:var(--white);
}
.big-text-inner {
  max-width:1100px; margin:0 auto;
}
.big-text p {
  font-size:clamp(28px, 4vw, 56px);
  font-weight:400; line-height:1.2;
  color:var(--bayoux-deep);
  letter-spacing:-0.02em;
}
.big-text p em { font-style:italic; color:var(--accent); }
.big-text .attribution {
  margin-top:40px;
  font-size:15px; color:var(--text-light);
  font-weight:400; letter-spacing:0;
}

/* ─── EYEBROW (shared) ─── */
.eyebrow {
  font-size:13px; font-weight:500; letter-spacing:4px;
  text-transform:uppercase; color:var(--accent); margin-bottom:24px;
}

/* ─── SECTION HEADER (shared) ─── */
.section-h2 {
  font-size:clamp(36px, 4vw, 56px);
  font-weight:400; line-height:1.08;
  letter-spacing:-0.02em;
  margin-bottom:40px;
}
.section-h2.light { color:var(--white); }
.section-h2.dark { color:var(--bayoux-deep); }

/* ─── ABOUT / PURPOSE ─── */
.about {
  padding:0;
  background:var(--white);
}
.about-image-strip { display:block; }
.about-content {
  padding:80px 48px 120px;
}
.about-inner {
  max-width:860px; margin:0 auto;
}
.about-inner h2 {
  font-size:clamp(36px, 4vw, 56px);
  font-weight:400; line-height:1.08;
  color:var(--bayoux-deep); letter-spacing:-0.02em;
  margin-bottom:48px;
}
.about-text p {
  font-size:19px; color:var(--text);
  line-height:1.85; margin-bottom:28px;
}
.about-text p:last-child { margin-bottom:0; }

/* ─── EDITORIAL COLORFUL CARDS ─── */
.focus-section {
  padding:0;
  background:var(--white);
}
.focus-header {
  padding:80px 48px 48px;
  max-width:1400px; margin:0 auto;
}
.focus-header h2 {
  font-size:clamp(36px, 4vw, 56px);
  font-weight:400; line-height:1.08;
  color:var(--bayoux-deep); letter-spacing:-0.02em;
  max-width:700px;
}
.editorial-cards {
  display:grid; grid-template-columns:repeat(3,1fr);
  grid-template-rows:1fr auto auto; gap:2px;
  max-width:1400px; margin:0 auto; padding:0 48px 80px;
}
.ed-card {
  padding:56px 40px;
  min-height:380px;
  display:grid; grid-template-rows:subgrid; grid-row:span 3;
  align-content:end;
  position:relative; overflow:hidden;
  border-radius:12px;
  transition: transform 0.4s cubic-bezier(0.16,1,0.3,1), box-shadow 0.4s;
}
.ed-card:hover { transform:translateY(-4px); box-shadow:0 20px 50px rgba(0,0,0,0.08); }
.ed-card::before {
  content:''; position:absolute; inset:0;
  opacity:0; transition:opacity 0.5s;
}
.ed-card:nth-child(1) { background:var(--bayoux-light); }
.ed-card:nth-child(2) { background:var(--offwhite); }
.ed-card:nth-child(3) { background:var(--cream); }
.ed-card .card-num {
  font-size:100px; font-weight:500; color:rgba(201,169,110,0.15);
  line-height:1; text-align:right; align-self:start;
}
.ed-card h3 {
  font-size:clamp(24px, 2.5vw, 34px); font-weight:500;
  color:var(--bayoux-deep); line-height:1.15; margin-bottom:20px;
  letter-spacing:-0.01em; align-self:end;
}
.ed-card p {
  font-size:17px; color:var(--text-light);
  line-height:1.75; max-width:420px;
  min-height:5.25em;
}

/* ─── VALUES STRIP ─── */
.values-strip {
  padding:100px 48px;
  background:var(--offwhite);
}
.values-inner { max-width:1400px; margin:0 auto; }
.values-header { margin-bottom:60px; }
.values-header h2 {
  font-size:clamp(36px, 4vw, 56px);
  font-weight:400; line-height:1.08;
  color:var(--bayoux-deep); letter-spacing:-0.02em;
}
.values-grid { display:flex; flex-direction:column; gap:0; }
.value-item {
  display:grid; grid-template-columns:80px 1fr; gap:40px;
  padding:40px 0;
  border-top:1px solid rgba(201,169,110,0.25);
  align-items:baseline;
}
.value-item:last-child { border-bottom:1px solid rgba(201,169,110,0.25); }
.value-num {
  font-size:48px; font-weight:500; color:rgba(201,169,110,0.3); line-height:1;
}
.value-content h4 {
  font-size:clamp(22px, 2.2vw, 28px); font-weight:500; color:var(--bayoux-deep);
  margin-bottom:16px; letter-spacing:-0.01em;
}
.value-content p {
  font-size:18px; color:var(--text-light); line-height:1.8;
  max-width:700px;
}

/* ─── PORTFOLIO ─── */
.portfolio {
  padding:100px 48px;
  background:var(--white);
}
.portfolio-inner { max-width:1400px; margin:0 auto; }
.portfolio-header {
  display:grid; grid-template-columns:1fr 1fr; gap:80px;
  margin-bottom:60px; align-items:end;
}
.portfolio-header h2 {
  font-size:clamp(36px, 4vw, 56px);
  font-weight:400; line-height:1.08;
  color:var(--bayoux-deep); letter-spacing:-0.02em;
}
.portfolio-header p {
  font-size:19px; color:var(--text-light); line-height:1.8;
  align-self:end;
}
.portfolio-list { display:flex; flex-direction:column; gap:2px; }
.port-item {
  background:var(--offwhite); cursor:pointer;
  transition:background 0.4s cubic-bezier(0.16,1,0.3,1);
  overflow:hidden; border-radius:8px;
}
.port-item:hover { background:var(--cream); }
.port-item.active { background:var(--bayoux-deep); }
.port-item-header {
  display:grid; grid-template-columns:200px 1fr auto; gap:40px;
  align-items:center; padding:36px 48px; transition:all 0.4s;
}
.port-item.active .port-item-header { padding-bottom:24px; }
.port-item-logo {
  height:48px; max-width:180px;
  object-fit:contain; object-position:left center;
  transition:all 0.5s cubic-bezier(0.16,1,0.3,1);
}
.port-item-logo.logo-sm { height:64px; max-width:200px; }
.port-item.active .port-item-logo { filter:grayscale(100%) brightness(10); opacity:1; }
.port-item-summary {
  display:grid; grid-template-columns:200px 1fr; gap:32px; align-items:center;
}
.port-item-tag {
  font-size:12px; letter-spacing:2px; text-transform:uppercase;
  color:var(--text-light); transition:color 0.4s; white-space:nowrap;
}
.port-item.active .port-item-tag { color:rgba(255,255,255,0.4); }
.port-item-tagline { font-size:16px; color:var(--text); transition:color 0.4s; }
.port-item.active .port-item-tagline { color:rgba(255,255,255,0.6); }
.port-item-toggle {
  width:36px; height:36px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%; background:rgba(0,0,0,0.04); transition:all 0.4s;
}
.port-item.active .port-item-toggle { background:rgba(255,255,255,0.1); }
.port-item-toggle svg {
  width:16px; height:16px; stroke:var(--text-light);
  transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
}
.port-item.active .port-item-toggle svg { stroke:white; transform:rotate(180deg); }
.port-item-detail {
  max-height:0; overflow:hidden;
  transition:max-height 0.6s cubic-bezier(0.16,1,0.3,1), padding 0.4s;
  padding:0 48px;
}
.port-item.active .port-item-detail { max-height:400px; padding:0 48px 48px; }
.port-detail-inner {
  display:grid; grid-template-columns:1fr 1fr 1fr; gap:48px;
  opacity:0; transform:translateY(16px);
  transition:all 0.5s 0.1s cubic-bezier(0.16,1,0.3,1);
}
.port-item.active .port-detail-inner { opacity:1; transform:translateY(0); }
.port-detail-desc {
  font-size:16px; line-height:1.8; color:rgba(255,255,255,0.55); grid-column:span 2;
}
.port-detail-facts { display:flex; flex-direction:column; gap:20px; }
.port-fact-label {
  font-size:11px; letter-spacing:2px; text-transform:uppercase;
  color:var(--accent); margin-bottom:4px;
}
.port-fact-value { font-size:20px; font-weight:500; color:white; }


/* ─── PROCESS ─── */
.process {
  padding:100px 48px;
  background:var(--white);
  border-top:1px solid rgba(0,0,0,0.06);
}
.process-inner { max-width:1400px; margin:0 auto; }
.process .eyebrow { color:var(--accent); }
.process h2 {
  font-size:clamp(36px, 4vw, 56px);
  font-weight:400; line-height:1.08;
  color:var(--bayoux-deep); letter-spacing:-0.02em;
  margin-bottom:60px; max-width:700px;
}
.process-steps { display:grid; grid-template-columns:repeat(4,1fr); gap:40px; }
.step { padding-top:40px; border-top:2px solid rgba(201,169,110,0.3); }
.step-num {
  font-size:56px; font-weight:500; color:rgba(201,169,110,0.25);
  letter-spacing:-0.03em; margin-bottom:20px; line-height:1;
}
.step h4 {
  font-size:22px; font-weight:500; color:var(--bayoux-deep);
  margin-bottom:16px; letter-spacing:-0.01em;
}
.step p { font-size:17px; color:var(--text-light); line-height:1.8; }

/* ─── TEAM ─── */
.team {
  padding:100px 48px;
  background:var(--offwhite);
}
.team-inner { max-width:1400px; margin:0 auto; }
.team-header { margin-bottom:60px; }
.team-header h2 {
  font-size:clamp(36px, 4vw, 56px);
  font-weight:400; line-height:1.08;
  color:var(--bayoux-deep); letter-spacing:-0.02em;
}
.team-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:24px; }
.member { position:relative; cursor:pointer; }
.member-photo-wrap { position:relative; overflow:hidden; border-radius:12px; }
.member-img {
  width:100%; aspect-ratio:3/4; object-fit:cover;
  filter:brightness(0.9);
  transition:all 0.6s cubic-bezier(0.16,1,0.3,1);
}
.member:hover .member-img,
.member.active .member-img { filter:brightness(1.05); transform:scale(1.03); }
.member-overlay {
  position:absolute; inset:0;
  background:linear-gradient(transparent 30%, rgba(30,46,51,0.85) 100%);
  display:flex; flex-direction:column; justify-content:flex-end;
  padding:24px;
  opacity:0; transition:opacity 0.4s cubic-bezier(0.16,1,0.3,1);
  border-radius:12px;
}
.member:hover .member-overlay,
.member.active .member-overlay { opacity:1; }
.member-overlay .overlay-name { font-size:18px; font-weight:500; color:white; margin-bottom:4px; }
.member-overlay .overlay-role { font-size:13px; color:rgba(255,255,255,0.6); margin-bottom:12px; }
.member-overlay .overlay-hint {
  font-size:12px; color:var(--accent); letter-spacing:1px;
  text-transform:uppercase; display:flex; align-items:center; gap:6px;
}
.member-overlay .overlay-hint svg { width:12px; height:12px; }
.member-linkedin {
  position:absolute; top:16px; right:16px; z-index:2;
  width:32px; height:32px; border-radius:50%;
  background:rgba(255,255,255,0.15); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center;
  opacity:0; transition:all 0.3s; text-decoration:none;
}
.member:hover .member-linkedin,
.member.active .member-linkedin { opacity:1; }
.member-linkedin:hover { background:rgba(255,255,255,0.3); transform:scale(1.1); }
.member-linkedin svg { width:14px; height:14px; fill:white; }
.member-info { padding:16px 0 0; }
.member-name { font-size:17px; font-weight:500; color:var(--bayoux-deep); margin-bottom:2px; }
.member-role { font-size:13px; color:var(--text-light); letter-spacing:0.3px; }
.team-bios { margin-top:0; }
.member-bio {
  max-height:0; overflow:hidden;
  transition:max-height 0.6s cubic-bezier(0.16,1,0.3,1), padding 0.4s;
  padding:0;
}
.member-bio.open { max-height:600px; padding:32px 0; }
.member-bio-inner {
  display:grid; grid-template-columns:1fr 2fr; gap:48px;
  padding:40px; background:var(--white); border-radius:12px;
}
.member-bio-name {
  font-size:28px; font-weight:500; color:var(--bayoux-deep);
  margin-bottom:4px; letter-spacing:-0.02em;
}
.member-bio-role {
  font-size:14px; color:var(--accent); letter-spacing:1px; text-transform:uppercase;
  margin-bottom:24px;
}
.member-bio-linkedin {
  display:inline-flex; align-items:center; gap:8px;
  font-size:14px; color:var(--bayoux); text-decoration:none;
  transition:color 0.2s;
}
.member-bio-linkedin:hover { color:var(--bayoux-dark); }
.member-bio-linkedin svg { width:16px; height:16px; fill:currentColor; }
.member-bio-text p {
  font-size:16px; line-height:1.8; color:var(--text-light); margin-bottom:12px;
}
.member-bio-text p:last-child { margin-bottom:0; }

/* ─── MBI SECTION ─── */
.mbi-section {
  padding:100px 48px;
  background:var(--offwhite);
  position:relative; overflow:hidden;
}
.mbi-section::before {
  content:''; position:absolute; inset:0;
  background:none;
}
.mbi-inner {
  max-width:1400px; margin:0 auto; position:relative; z-index:1;
  display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:start;
}
.mbi-left h2 {
  font-size:clamp(36px, 4vw, 56px);
  font-weight:400; line-height:1.08;
  color:var(--bayoux-deep); letter-spacing:-0.02em;
  margin-bottom:40px;
}
.mbi-left > p {
  font-size:19px; color:var(--text-light);
  line-height:1.85; margin-bottom:28px;
}
.mbi-criteria { list-style:none; padding:0; margin:0 0 48px; }
.mbi-criteria li {
  padding:20px 0;
  border-bottom:1px solid rgba(0,0,0,0.08);
  display:flex; align-items:flex-start; gap:16px;
  font-size:17px; color:var(--text); line-height:1.6;
}
.mbi-criteria li:first-child { padding-top:0; }
.mbi-check {
  width:20px; height:20px; flex-shrink:0; margin-top:3px;
  border:1.5px solid var(--accent); border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}
.mbi-check svg { width:10px; height:10px; stroke:var(--accent); }
.mbi-cta {
  display:inline-flex; align-items:center; gap:12px;
  padding:16px 36px; background:var(--bayoux); color:var(--white);
  text-decoration:none; font-size:15px; font-weight:500;
  border-radius:100px;
  transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
  letter-spacing:0.3px;
}
.mbi-cta:hover {
  background:var(--bayoux-deep);
  transform:translateY(-2px); box-shadow:0 16px 40px rgba(0,0,0,0.12);
}

.mbi-right {
  padding-top:80px;
  display:flex; flex-direction:column; justify-content:center; gap:32px;
}
.mbi-quote-img {
  width:100%; max-width:360px; border-radius:12px;
  object-fit:cover; aspect-ratio:3/4;
}
.mbi-quote-text { max-width:360px; }

/* ─── CRITERIA SPLIT (Investmentfokus page) ─── */
.criteria-split { padding:120px 48px; background:#fff; }
.criteria-split-inner {
  max-width:1200px; margin:0 auto;
  display:grid; grid-template-columns:2fr 3fr; gap:80px; align-items:start;
}
.criteria-sticky { position:sticky; top:120px; }
.criteria-sticky .eyebrow { margin-bottom:16px; }
.criteria-sticky h2 {
  font-size:clamp(28px,4vw,40px); font-weight:500;
  color:var(--bayoux-deep); letter-spacing:-0.02em; line-height:1.25;
}
.criteria-sticky p {
  margin-top:20px; font-size:17px; line-height:1.6;
  color:var(--text-light); max-width:380px;
}
.criteria-list { display:flex; flex-direction:column; }
.criteria-card {
  padding:40px 0; border-bottom:1px solid rgba(74,102,111,0.12);
}
.criteria-card:first-child { padding-top:0; }
.criteria-card:last-child { border-bottom:none; }
.criteria-card h4 {
  font-size:20px; font-weight:600; color:var(--bayoux-deep);
  margin-bottom:14px; padding-left:20px;
  border-left:3px solid var(--accent);
}
.criteria-card p {
  font-size:16px; line-height:1.75; color:var(--text-light); padding-left:20px;
}
.criteria-card--muted h4 { color:var(--text-light); border-left-color:rgba(74,102,111,0.2); }
@media (max-width:900px) {
  .criteria-split { padding:60px 20px; }
  .criteria-split-inner { grid-template-columns:1fr; gap:40px; }
  .criteria-sticky { position:static; }
  .criteria-card { padding:28px 0; }
}

/* ─── BIG TEXT QUOTE / CTA BAND — bayoux bg ─── */
.big-text-dark {
  padding:100px 48px;
  background:var(--bayoux);
  position:relative; overflow:hidden;
}
.big-text-dark::before {
  content:''; position:absolute; inset:0;
  background:none;
}
.big-text-dark .big-text-inner { max-width:1100px; margin:0 auto; position:relative; z-index:1; }
.big-text-dark p {
  font-size:clamp(26px, 3.5vw, 48px);
  font-weight:400; line-height:1.2;
  color:var(--white); letter-spacing:-0.02em;
}
.big-text-dark p em { font-style:italic; color:var(--accent); }
.big-text-dark .attribution {
  margin-top:32px;
  font-size:15px; color:rgba(255,255,255,0.5);
}
.big-text-dark .hero-cta {
  background:var(--white); color:var(--bayoux);
}
.big-text-dark .hero-cta:hover {
  background:var(--offwhite); color:var(--bayoux-deep);
  box-shadow:0 16px 40px rgba(0,0,0,0.15);
}

/* ─── CONTACT ─── */
.contact-image {
  display:none;
}
.contact-image::after {
  display:none;
}
.contact {
  padding:80px 48px 120px;
  background:var(--white);
}
.contact-inner {
  max-width:1400px; margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:start;
}
.contact-left h2 {
  font-size:clamp(36px, 4vw, 56px);
  font-weight:400; line-height:1.08;
  color:var(--bayoux-deep); letter-spacing:-0.02em;
  margin-bottom:32px;
}
.contact-left p {
  font-size:19px; color:var(--text-light);
  line-height:1.8; margin-bottom:40px;
}
.contact-cta {
  display:inline-flex; align-items:center; gap:12px;
  padding:16px 36px; background:var(--bayoux); color:var(--white);
  text-decoration:none; font-size:15px; font-weight:500;
  border-radius:100px; transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
  letter-spacing:0.3px;
}
.contact-cta:hover { background:var(--bayoux-deep); transform:translateY(-2px); box-shadow:0 16px 40px rgba(0,0,0,0.12); }
.contact-details { padding-top:16px; }
.contact-details .detail { padding:28px 0; border-bottom:1px solid rgba(0,0,0,0.06); }
.contact-details .detail-label {
  font-size:11px; font-weight:500; letter-spacing:3px;
  text-transform:uppercase; color:var(--bayoux); margin-bottom:8px;
}
.contact-details .detail-value { font-size:18px; color:var(--bayoux-deep); font-weight:400; }
.contact-details a { text-decoration:none; color:var(--bayoux-deep); transition:color 0.2s; }
.contact-details a:hover { color:var(--bayoux); }
.contact-form { display:flex; flex-direction:column; gap:20px; margin-top:8px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-group { display:flex; flex-direction:column; gap:6px; }
.form-group.full { grid-column:1 / -1; }
.form-group label {
  font-size:11px; font-weight:500; letter-spacing:2px;
  text-transform:uppercase; color:var(--bayoux);
}
.form-group input, .form-group textarea {
  font-family:'FG', sans-serif; font-size:16px;
  padding:14px 18px; border:1px solid rgba(0,0,0,0.1);
  border-radius:8px; background:var(--offwhite); color:var(--bayoux-deep);
  transition:border-color 0.3s, background 0.3s; outline:none; resize:vertical;
}
.form-group input:focus, .form-group textarea:focus { border-color:var(--accent); background:var(--white); }
.form-group textarea { min-height:100px; }
.form-group input::placeholder, .form-group textarea::placeholder { color:rgba(0,0,0,0.25); }
.form-submit {
  display:inline-flex; align-items:center; gap:12px;
  padding:16px 36px; background:var(--bayoux); color:var(--white);
  font-family:'FG', sans-serif; font-size:15px; font-weight:500;
  border:none; border-radius:100px; cursor:pointer;
  transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
  letter-spacing:0.3px; align-self:flex-start;
}
.form-submit:hover { background:var(--bayoux-deep); transform:translateY(-2px); box-shadow:0 16px 40px rgba(0,0,0,0.12); }
.contact-lock {
  display:flex; align-items:center; gap:8px;
  font-size:13px; color:var(--text-light); opacity:0.6;
}
.contact-lock svg { width:14px; height:14px; flex-shrink:0; }
.berater-hint {
  padding:40px; background:var(--bayoux-light); border-radius:12px;
  margin-top:32px;
}
.berater-hint h4 {
  font-size:14px; font-weight:500; letter-spacing:3px;
  text-transform:uppercase; color:var(--bayoux); margin-bottom:12px;
}
.berater-hint p {
  font-size:16px; line-height:1.7; color:var(--text); margin:0;
}
.berater-hint a { color:var(--bayoux); font-weight:500; }

/* ─── HOME TEASER CARDS ─── */
.home-teasers {
  padding:100px 48px;
  background:var(--offwhite);
}
.home-teasers-inner {
  max-width:1400px; margin:0 auto;
}
.home-teasers-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:24px;
  margin-top:0;
}
.teaser-card {
  background:var(--offwhite);
  padding:48px 36px;
  border-radius:12px;
  text-decoration:none; color:var(--text);
  transition:all 0.4s cubic-bezier(0.16,1,0.3,1);
  display:flex; flex-direction:column;
  position:relative; overflow:hidden;
  border:1px solid rgba(0,0,0,0.04);
  border-top:3px solid var(--accent);
}
.teaser-card:hover {
  background:var(--bayoux);
  transform:translateY(-6px);
  box-shadow:0 24px 60px rgba(0,0,0,0.1);
  border-color:transparent;
}
.teaser-card:hover * { color:white !important; }
.teaser-card:hover .teaser-eyebrow { color:rgba(255,255,255,0.6) !important; }
.teaser-eyebrow {
  font-size:11px; font-weight:500; letter-spacing:4px;
  text-transform:uppercase; color:var(--accent); margin-bottom:24px;
}
.teaser-card h3 {
  font-size:clamp(24px, 2.5vw, 30px); font-weight:500;
  color:var(--bayoux-deep); line-height:1.15; margin-bottom:20px;
  letter-spacing:-0.01em;
}
.teaser-card p {
  font-size:16px; color:var(--text-light);
  line-height:1.7; margin-bottom:32px; flex-grow:1;
}
.teaser-arrow {
  display:inline-flex; align-items:center; gap:8px;
  font-size:14px; font-weight:500; color:var(--accent);
  letter-spacing:0.5px;
}
.teaser-arrow svg {
  width:18px; height:18px; transition:transform 0.3s;
}
.teaser-card:hover .teaser-arrow svg { transform:translateX(6px); }
.teaser-card-img {
  display:none;
}
.teaser-card:hover .teaser-card-img { display:none; }

/* ─── FOOTER — bayoux ─── */
footer {
  padding:60px 48px;
  background:var(--bayoux);
  border-top:none;
}
.footer-inner {
  max-width:1400px; margin:0 auto;
  display:flex; justify-content:space-between; align-items:center;
}
.footer-left { display:flex; align-items:center; gap:40px; }
.footer-logo { height:16px; opacity:0.6; filter:brightness(10); }
.footer-copy { font-size:13px; color:rgba(255,255,255,0.5); }
.footer-links { display:flex; gap:28px; }
.footer-links a { font-size:13px; color:rgba(255,255,255,0.5); text-decoration:none; transition:color 0.2s; }
.footer-links a:hover { color:rgba(255,255,255,0.9); }

/* ─── LEGAL MODALS ─── */
.legal-overlay {
  position:fixed; inset:0; z-index:200;
  background:rgba(0,0,0,0.4); backdrop-filter:blur(8px);
  opacity:0; pointer-events:none;
  transition:opacity 0.4s cubic-bezier(0.16,1,0.3,1);
  display:flex; align-items:center; justify-content:center;
  padding:40px 24px;
}
.legal-overlay.open { opacity:1; pointer-events:all; }
.legal-modal {
  background:var(--white); border-radius:16px;
  max-width:720px; width:100%;
  max-height:85vh; overflow-y:auto;
  padding:64px 56px;
  transform:translateY(30px);
  transition:transform 0.5s cubic-bezier(0.16,1,0.3,1);
  position:relative;
}
.legal-overlay.open .legal-modal { transform:translateY(0); }
.legal-close {
  position:absolute; top:24px; right:24px;
  width:40px; height:40px; border:none; background:none;
  cursor:pointer; color:var(--bayoux); font-size:24px;
  display:flex; align-items:center; justify-content:center;
  border-radius:50%; transition:background 0.2s;
}
.legal-close:hover { background:rgba(0,0,0,0.05); }
.legal-modal h2 {
  font-size:32px; font-weight:500; letter-spacing:-0.02em;
  color:var(--bayoux-deep); margin:0 0 40px;
}
.legal-modal h3 {
  font-size:18px; font-weight:500; color:var(--bayoux-deep);
  margin:32px 0 12px; letter-spacing:-0.01em;
}
.legal-modal p {
  font-size:15px; line-height:1.75; color:var(--text); margin:0 0 16px;
}
.legal-modal a { color:var(--bayoux); }
.legal-modal a:hover { color:var(--bayoux-deep); }

/* ─── MOBILE MENU ─── */
.mobile-menu {
  position:fixed; inset:0; z-index:99;
  background:var(--white);
  display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:32px;
  opacity:0; pointer-events:none; transition:opacity 0.4s;
}
.mobile-menu.open { opacity:1; pointer-events:all; }
.mobile-menu a {
  font-size:28px; font-weight:500; color:var(--bayoux-deep);
  text-decoration:none; letter-spacing:-0.01em; transition:color 0.2s;
}
.mobile-menu a:hover { color:var(--bayoux); }

/* ─── RESPONSIVE ─── */
@media (max-width:1024px) {
  .about-content { padding:60px 48px 100px; }
  .contact-image { display:none; }
  .image-divider { height:40vh; background-attachment:scroll; }
  .editorial-cards { grid-template-columns:1fr; grid-template-rows:auto; padding:0 48px 60px; }
  .ed-card { min-height:280px; grid-row:span 1; display:flex; flex-direction:column; justify-content:flex-end; }
  .about-inner { max-width:100%; }
  .portfolio-header { grid-template-columns:1fr; gap:32px; }
  .process-steps { grid-template-columns:repeat(2,1fr); }
  .team-grid { grid-template-columns:repeat(3,1fr); }
  .contact-inner { grid-template-columns:1fr; gap:60px; }
  .mbi-inner { grid-template-columns:1fr; gap:60px; }
  .home-teasers-grid { grid-template-columns:1fr; }
  .value-item { grid-template-columns:1fr; gap:16px; }
  .value-num { font-size:32px; }
  .port-item-header { grid-template-columns:100px 1fr auto; gap:20px; padding:28px 32px; }
  .port-item-logo { height:36px; max-width:100px; }
  .port-item-logo.logo-sm { height:48px; max-width:100px; }
  .port-item-summary { grid-template-columns:1fr; gap:4px; }
  .port-detail-inner { grid-template-columns:1fr; gap:24px; }
  .port-detail-desc { grid-column:span 1; }
  .port-item.active .port-item-detail { padding:0 32px 36px; }
}
@media (max-width:768px) {
  nav { padding:14px 20px; }
  nav.scrolled { padding:10px 20px; }
  .nav-links { display:none; }
  .hamburger { display:block; }
  .logo-img { height:24px; }
  .nav-right { gap:12px; }
  .lang-toggle { padding:6px 14px; font-size:10px; }
  .hero-content { padding:0 24px; }
  .page-hero { padding:140px 24px 60px; }
  .about-content { padding:40px 24px 80px; }
  section, .big-text, .big-text-dark, .focus-header,
  .about, .portfolio, .process, .team, .contact,
  .mbi-section, .values-strip, .home-teasers { padding-left:24px; padding-right:24px; }
  .editorial-cards { padding-left:24px; padding-right:24px; }
  .image-divider { height:30vh; background-attachment:scroll; }
  .process-steps { grid-template-columns:1fr; }
  .team-grid { grid-template-columns:repeat(2,1fr); }
  .member-bio-inner { grid-template-columns:1fr; gap:24px; padding:28px; }
  .footer-inner { flex-direction:column; gap:24px; text-align:center; }
  .footer-left { flex-direction:column; gap:16px; }
  .form-row { grid-template-columns:1fr; }
  .port-item-header { grid-template-columns:1fr auto; gap:12px; padding:20px; }
  .port-item-logo { height:28px; max-width:100px; grid-column:1/-1; }
  .port-item-logo.logo-sm { height:36px; max-width:100px; }
  .port-item-summary { grid-template-columns:1fr; gap:2px; }
  .port-item-tag { font-size:10px; }
  .port-item-tagline { font-size:13px; }
  .port-item-toggle { width:28px; height:28px; position:absolute; top:20px; right:20px; }
  .port-item { position:relative; }
  .port-item.active .port-item-detail { padding:0 20px 28px; max-height:600px; }
  .port-detail-facts { flex-direction:row; gap:24px; flex-wrap:wrap; }
  .page-hero { padding:120px 24px 50px; }
  .page-hero p { font-size:16px; }
  .legal-modal { padding:48px 28px; border-radius:12px; }
  .legal-modal h2 { font-size:24px; }
  #cookie-banner .cb-inner { gap:12px; }
  #cookie-banner .cb-btn { padding:10px 20px; font-size:13px; }
}

/* ─── COOKIE BANNER ─── */
#cookie-banner {
  position:fixed; bottom:0; left:0; right:0; z-index:9999;
  background:var(--bayoux-deep); color:rgba(255,255,255,0.85);
  padding:20px 32px;
  transform:translateY(100%); opacity:0;
  transition:transform 0.4s cubic-bezier(0.16,1,0.3,1), opacity 0.4s;
}
#cookie-banner.visible { transform:translateY(0); opacity:1; }
.cb-inner {
  max-width:680px; margin:0 auto;
  display:flex; flex-direction:column; align-items:center; gap:16px; text-align:center;
}
.cb-text { font-size:14px; line-height:1.6; margin:0; }
.cb-link { color:var(--accent); text-decoration:underline; text-underline-offset:2px; }
.cb-link:hover { color:#fff; }
.cb-buttons { display:flex; gap:10px; flex-shrink:0; }
.cb-btn {
  font-family:'FG',sans-serif; font-size:14px; font-weight:500;
  padding:10px 24px; border-radius:100px; border:none; cursor:pointer;
  transition:all 0.2s;
}
.cb-decline {
  background:transparent; color:rgba(255,255,255,0.7);
  border:1px solid rgba(255,255,255,0.25);
}
.cb-decline:hover { background:rgba(255,255,255,0.1); color:#fff; }
.cb-accept { background:var(--accent); color:var(--bayoux-deep); }
.cb-accept:hover { background:var(--accent-dark); }
