:root {
  --paper: #f4f2eb;
  --paper-strong: #ece9df;
  --ink: #102625;
  --ink-soft: #314b49;
  --purple: #3d348b;
  --purple-deep: #2f286f;
  --green: #009b4d;
  --green-deep: #007e3f;
  --line: rgba(16, 38, 37, 0.16);
  --white: #ffffff;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Arial, Helvetica, sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
.shell { width: min(1420px, calc(100% - 88px)); margin-inline: auto; }
.section-space { padding-block: 132px; }

.site-header {
  height: 108px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  position: relative;
  z-index: 20;
}
.brand { display: flex; width: 174px; height: 58px; align-items: center; overflow: hidden; }
.brand img { width: 168px; height: auto; display: block; }
.desktop-nav { display: flex; align-items: center; gap: 36px; margin-left: auto; margin-right: 48px; }
.desktop-nav a, .language { font-size: 13px; font-weight: 600; transition: color .2s ease; }
.desktop-nav a:hover, .language:hover { color: var(--green); }
.header-actions { display: flex; align-items: center; gap: 23px; }
.language span { color: #83908e; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: 54px;
  padding: 0 24px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  transition: transform .2s ease, background .2s ease, color .2s ease;
}
.button:hover { transform: translateY(-2px); }
.button-dark { background: var(--ink); color: white; min-width: 176px; }
.button-primary { background: var(--green); color: white; min-width: 220px; }
.button-primary:hover { background: var(--green-deep); }
.button-light { background: white; color: var(--ink); min-width: 300px; }
.mobile-menu { display: none; position: relative; }

.hero {
  min-height: 710px;
  display: grid;
  grid-template-columns: minmax(0, .95fr) minmax(520px, 1.05fr);
  gap: 62px;
  align-items: center;
  padding-block: 72px 82px;
}
.eyebrow {
  display: flex;
  align-items: center;
  gap: 11px;
  margin: 0 0 28px;
  color: var(--ink-soft);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.eyebrow > span { width: 23px; height: 1px; background: var(--green); }
.hero h1, .section-heading h2, .about-copy h2, .insights h2, .contact h2 {
  margin: 0;
  font-size: clamp(58px, 5.4vw, 88px);
  line-height: .94;
  letter-spacing: -.065em;
  font-weight: 600;
}
em { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; color: var(--green); }
.hero-lead {
  max-width: 650px;
  margin: 36px 0 0;
  color: var(--ink-soft);
  font-size: 18px;
  line-height: 1.62;
}
.hero-actions { display: flex; align-items: center; gap: 33px; margin-top: 40px; }
.text-link { font-size: 13px; font-weight: 700; border-bottom: 1px solid var(--ink); padding-bottom: 6px; }
.text-link span { margin-left: 9px; color: var(--green); }

.hero-visual {
  position: relative;
  min-height: 590px;
  overflow: hidden;
  border-radius: 4px 90px 4px 4px;
  background: var(--ink);
  color: white;
  isolation: isolate;
}
.visual-grid {
  position: absolute; inset: 0; opacity: .17;
  background-image: linear-gradient(rgba(255,255,255,.16) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.16) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: linear-gradient(to bottom, black, transparent 92%);
}
.orbit { position: absolute; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; }
.orbit::after { content:""; position:absolute; width:12px; height:12px; background:var(--green); border:5px solid var(--ink); border-radius:50%; }
.orbit-one { width: 460px; height: 460px; left: 50%; top: 50%; transform: translate(-50%,-50%); }
.orbit-one::after { top: 42px; right: 74px; }
.orbit-two { width: 610px; height: 340px; left: 50%; top: 50%; transform: translate(-50%,-50%) rotate(-22deg); border-color: rgba(61,52,139,.85); }
.orbit-two::after { bottom: 40px; left: 112px; background:var(--purple); }
.orbit-three { width: 300px; height: 600px; left: 50%; top: 50%; transform: translate(-50%,-50%) rotate(60deg); border-color: rgba(0,155,77,.55); }
.orbit-three::after { right: 20px; top: 160px; }
.visual-core {
  position: absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  width: 190px; height: 190px; border-radius:50%;
  background: var(--paper); color:var(--ink); display:flex; flex-direction:column; align-items:center; justify-content:center;
  box-shadow: 0 20px 80px rgba(0,0,0,.3);
}
.visual-core span { font-size: 10px; letter-spacing:.16em; font-weight:700; }
.visual-core strong { font-family:Georgia,serif; font-size:75px; line-height:.9; color:var(--purple); font-weight:400; }
.visual-core small { font-size:11px; color:var(--green-deep); margin-top:7px; }
.orbit-label { position:absolute; display:flex; align-items:center; gap:9px; font-size:11px; letter-spacing:.1em; text-transform:uppercase; }
.orbit-label i { width:6px; height:6px; background:var(--green); border-radius:50%; }
.label-a { top:18%; left:12%; }
.label-b { top:26%; right:10%; }
.label-c { bottom:27%; left:10%; }
.label-d { bottom:17%; right:15%; }
.visual-caption { position:absolute; left:38px; right:38px; bottom:30px; display:flex; justify-content:space-between; align-items:end; border-top:1px solid rgba(255,255,255,.25); padding-top:19px; }
.visual-caption > span { font-size:11px; color:rgba(255,255,255,.55); }
.visual-caption p { margin:0; text-align:center; font-family:Georgia,serif; font-size:14px; line-height:1.45; color:rgba(255,255,255,.78); }

.proof-strip { background: var(--white); border-block:1px solid var(--line); }
.proof-inner { min-height:120px; display:grid; grid-template-columns:repeat(3, 1fr) 1.8fr; align-items:center; }
.proof-inner > div { min-height:54px; display:flex; flex-direction:column; justify-content:center; padding-inline:30px; border-right:1px solid var(--line); }
.proof-inner > div:first-child { padding-left:0; }
.proof-inner strong { font-family:Georgia,serif; color:var(--purple); font-size:27px; font-weight:400; }
.proof-inner span { color:var(--ink-soft); font-size:11px; margin-top:5px; }
.proof-inner > p { margin:0; text-align:right; color:var(--ink-soft); font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }

.section-heading { display:flex; justify-content:space-between; align-items:flex-end; }
.section-heading h2, .about-copy h2, .insights h2, .contact h2 { font-size:clamp(46px, 4.6vw, 72px); }
.audience-cards { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:66px; }
.audience-card { position:relative; min-height:390px; padding:40px; overflow:hidden; transition:transform .25s ease; }
.audience-card:hover { transform:translateY(-5px); }
.audience-card::after { content:""; position:absolute; border:1px solid currentColor; opacity:.18; border-radius:50%; width:380px; height:380px; right:-105px; bottom:-190px; }
.audience-foreign { background:var(--purple); color:white; border-radius:4px 60px 4px 4px; }
.audience-local { background:var(--green); color:white; border-radius:60px 4px 4px 4px; }
.card-index { font-size:10px; letter-spacing:.12em; text-transform:uppercase; opacity:.72; }
.audience-card h3 { max-width:500px; margin:89px 0 18px; font-size:36px; line-height:1.05; letter-spacing:-.045em; }
.audience-card p { max-width:430px; margin:0; font-family:Georgia,serif; font-size:17px; line-height:1.5; opacity:.78; }
.audience-card b { position:absolute; right:36px; bottom:32px; width:50px; height:50px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.5); border-radius:50%; font-size:18px; }

.services { background:var(--ink); color:white; }
.eyebrow-light { color:rgba(255,255,255,.65); }
.services h2 em, .contact h2 em { color:#63d391; }
.services-heading { align-items:end; margin-bottom:70px; }
.section-intro { width:min(430px, 100%); margin:0 0 4px; color:rgba(255,255,255,.62); font-family:Georgia,serif; font-size:17px; line-height:1.55; }
.service-list { border-top:1px solid rgba(255,255,255,.2); }
.service-row { display:grid; grid-template-columns:70px 1fr 1.1fr .7fr 32px; gap:24px; align-items:center; min-height:148px; border-bottom:1px solid rgba(255,255,255,.2); transition:background .2s ease, padding .2s ease; }
.service-row:hover { background:rgba(255,255,255,.045); padding-inline:16px; }
.service-number { font-family:Georgia,serif; color:#63d391; font-size:17px; }
.service-row h3 { margin:0; font-size:25px; letter-spacing:-.035em; }
.service-row p { margin:0; max-width:470px; color:rgba(255,255,255,.62); font-size:14px; line-height:1.55; }
.service-meta { color:rgba(255,255,255,.4); font-size:9px; line-height:1.4; letter-spacing:.08em; text-transform:uppercase; }
.service-arrow { font-size:20px; color:#63d391; }

.process-heading { margin-bottom:72px; }
.dark-intro { color:var(--ink-soft); }
.process-path { display:grid; grid-template-columns:repeat(4,1fr); position:relative; }
.process-path::before { content:""; position:absolute; top:34px; left:35px; right:35px; height:1px; background:linear-gradient(90deg,var(--purple),var(--green)); }
.process-step { position:relative; padding-right:40px; }
.step-dot { position:relative; z-index:1; width:68px; height:68px; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; background:var(--paper); }
.step-dot::after { content:""; position:absolute; width:9px; height:9px; background:var(--green); border-radius:50%; right:2px; top:12px; }
.step-dot span { font-family:Georgia,serif; color:var(--purple); }
.process-step h3 { margin:28px 0 12px; font-size:20px; letter-spacing:-.03em; }
.process-step p { margin:0; color:var(--ink-soft); font-size:13px; line-height:1.6; max-width:240px; }

.about { background:var(--white); }
.about-grid { display:grid; grid-template-columns:.92fr 1.08fr; gap:100px; align-items:center; }
.about-mark { min-height:570px; position:relative; display:grid; place-items:center; overflow:hidden; border-radius:4px 70px 4px 4px; background:linear-gradient(145deg,#efede6,#dfe8e1); }
.about-mark strong { position:relative; z-index:2; font-size:58px; letter-spacing:-.07em; font-style:italic; color:var(--purple); }
.about-mark strong span { color:var(--green); }
.about-arc { position:absolute; width:500px; height:500px; border:4px solid var(--purple); border-radius:50%; }
.top-arc { top:-270px; }
.bottom-arc { bottom:-270px; border-color:var(--green); }
.about-mark::before, .about-mark::after { content:""; position:absolute; width:22px; height:22px; border-radius:50%; z-index:3; }
.about-mark::before { background:var(--purple); top:100px; right:76px; }
.about-mark::after { background:var(--green); bottom:100px; left:76px; }
.about-copy h2 { margin-bottom:34px; }
.about-copy > p:not(.eyebrow) { color:var(--ink-soft); font-size:15px; line-height:1.72; max-width:670px; }
.about-copy .about-lead { font-family:Georgia,serif; color:var(--ink); font-size:20px; }
.about-facts { display:grid; grid-template-columns:1fr 1.5fr; gap:20px; margin-top:38px; padding-top:28px; border-top:1px solid var(--line); }
.about-facts div { display:flex; flex-direction:column; gap:7px; }
.about-facts strong { font-family:Georgia,serif; font-weight:400; color:var(--purple); font-size:28px; }
.about-facts span { font-size:11px; color:var(--ink-soft); line-height:1.5; }

.insights-head { display:flex; justify-content:space-between; align-items:end; margin-bottom:62px; }
.insight-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:18px; }
.insight-featured { background:var(--paper-strong); padding:24px 36px 36px; border-radius:4px 48px 4px 4px; }
.insight-graphic { position:relative; height:310px; background:var(--purple); overflow:hidden; display:grid; place-items:center; border-radius:2px 30px 2px 2px; margin-bottom:26px; }
.insight-graphic > div { width:120px; height:120px; border-radius:50%; display:grid; place-items:center; background:var(--paper); color:var(--purple); font-family:Georgia,serif; font-size:42px; z-index:2; }
.molecule { position:absolute; width:14px; height:14px; background:#63d391; border:5px solid var(--purple); border-radius:50%; box-sizing:content-box; }
.molecule::after { content:""; position:absolute; width:180px; height:1px; background:rgba(255,255,255,.45); transform-origin:left; left:9px; top:6px; }
.m1 { left:10%; top:20%; }.m1::after { transform:rotate(20deg); }
.m2 { right:12%; top:24%; }.m2::after { transform:rotate(145deg); }
.m3 { left:20%; bottom:18%; }.m3::after { transform:rotate(-25deg); }
.m4 { right:22%; bottom:15%; }.m4::after { transform:rotate(205deg); }
.insight-type, .insight-list article > span { font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--green-deep); font-weight:700; }
.insight-featured h3 { max-width:650px; margin:15px 0 25px; font-size:28px; line-height:1.18; letter-spacing:-.04em; }
.insight-featured a { font-size:12px; font-weight:700; border-bottom:1px solid var(--ink); padding-bottom:5px; }
.insight-featured a span { color:var(--green); }
.insight-list { border-top:1px solid var(--line); }
.insight-list article { min-height:170px; display:grid; grid-template-columns:1fr auto; grid-template-rows:auto 1fr; gap:18px; align-items:start; position:relative; padding:28px 64px 22px 4px; border-bottom:1px solid var(--line); }
.insight-list time { font-size:10px; color:#7b8886; }
.insight-list h3 { margin:0; max-width:520px; font-family:Georgia,serif; font-size:22px; line-height:1.25; font-weight:400; }
.insight-list a { position:absolute; right:8px; bottom:28px; width:40px; height:40px; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; color:var(--green); }

.contact { padding-bottom:0; background:var(--purple-deep); color:white; }
.contact-grid { display:grid; grid-template-columns:1.35fr .65fr; gap:70px; align-items:end; padding-bottom:115px; }
.contact-actions { display:flex; flex-direction:column; align-items:flex-start; gap:18px; }
.contact-actions p { margin:0 0 0 18px; color:rgba(255,255,255,.52); font-size:11px; }
.footer { min-height:180px; display:grid; grid-template-columns:220px 1fr 1fr auto; gap:50px; align-items:center; border-top:1px solid rgba(255,255,255,.2); }
.footer img { width:165px; height:auto; filter:brightness(0) invert(1); opacity:.9; }
.footer p { margin:0; font-family:Georgia,serif; font-size:14px; line-height:1.5; color:rgba(255,255,255,.65); }
.footer div { display:flex; gap:25px; font-size:11px; }
.footer > span { font-size:10px; color:rgba(255,255,255,.45); }

@media (max-width: 1120px) {
  .shell { width:min(100% - 48px, 1080px); }
  .desktop-nav { gap:20px; margin-right:24px; }
  .hero { grid-template-columns:1fr 1fr; gap:32px; }
  .hero-visual { min-height:540px; }
  .orbit-one { width:380px; height:380px; }
  .service-row { grid-template-columns:55px 1fr 1fr 30px; }
  .service-meta { display:none; }
  .about-grid { gap:54px; }
}

@media (max-width: 860px) {
  .shell { width:calc(100% - 34px); }
  .section-space { padding-block:88px; }
  .site-header { height:88px; }
  .desktop-nav, .language, .header-cta { display:none; }
  .mobile-menu { display:block; }
  .mobile-menu summary { list-style:none; font-size:12px; font-weight:700; padding:12px 0; cursor:pointer; }
  .mobile-menu summary::-webkit-details-marker { display:none; }
  .mobile-menu nav { position:absolute; right:0; top:48px; width:230px; padding:24px; background:var(--ink); color:white; border-radius:18px 2px 18px 18px; display:flex; flex-direction:column; gap:20px; box-shadow:0 20px 60px rgba(0,0,0,.2); }
  .brand { width:150px; }
  .brand img { width:145px; }
  .hero { grid-template-columns:1fr; padding-top:64px; gap:58px; }
  .hero-visual { min-height:520px; }
  .proof-inner { grid-template-columns:repeat(3,1fr); }
  .proof-inner > p { display:none; }
  .audience-cards, .about-grid, .insight-grid, .contact-grid { grid-template-columns:1fr; }
  .section-heading, .services-heading, .process-heading, .insights-head { align-items:flex-start; flex-direction:column; gap:32px; }
  .section-intro { width:100%; }
  .audience-card { min-height:350px; }
  .service-row { grid-template-columns:45px 1fr 30px; padding-block:28px; min-height:0; }
  .service-row p { grid-column:2/3; }
  .service-arrow { grid-row:1; grid-column:3; }
  .process-path { grid-template-columns:1fr 1fr; gap:48px 24px; }
  .process-path::before { display:none; }
  .about-mark { min-height:450px; }
  .footer { grid-template-columns:1fr 1fr; padding-block:50px; }
}

@media (max-width: 560px) {
  .hero h1 { font-size:50px; }
  .hero-lead { font-size:16px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:24px; }
  .hero-visual { min-height:460px; border-radius:3px 45px 3px 3px; }
  .orbit-one { width:310px; height:310px; }
  .orbit-two { width:420px; height:260px; }
  .orbit-three { width:230px; height:440px; }
  .visual-core { width:145px; height:145px; }
  .visual-core strong { font-size:58px; }
  .orbit-label { font-size:9px; }
  .visual-caption { left:22px; right:22px; }
  .proof-inner { min-height:106px; }
  .proof-inner > div { padding-inline:10px; }
  .proof-inner strong { font-size:21px; }
  .proof-inner span { font-size:9px; }
  .audience-cards { grid-template-columns:1fr; }
  .audience-card { padding:28px; min-height:320px; }
  .audience-card h3 { margin-top:72px; font-size:30px; }
  .service-row { grid-template-columns:36px 1fr 24px; gap:14px; }
  .service-row h3 { font-size:20px; }
  .process-path { grid-template-columns:1fr; }
  .about-mark { min-height:350px; }
  .about-mark strong { font-size:40px; }
  .about-facts { grid-template-columns:1fr; }
  .insights-head .text-link { margin-top:10px; }
  .insight-featured { padding:16px 20px 28px; }
  .insight-graphic { height:230px; }
  .insight-list h3 { font-size:18px; }
  .contact-grid { padding-bottom:80px; }
  .button-light { min-width:0; width:100%; }
  .footer { grid-template-columns:1fr; gap:26px; }
  .footer div { flex-direction:column; gap:12px; }
}

@media (prefers-reduced-motion: no-preference) {
  .orbit-one { animation:orbitSpin 28s linear infinite; }
  .orbit-two { animation:orbitSpinReverse 34s linear infinite; }
  .visual-core { animation:coreFloat 5s ease-in-out infinite; }
  @keyframes orbitSpin { from { transform:translate(-50%,-50%) rotate(0); } to { transform:translate(-50%,-50%) rotate(360deg); } }
  @keyframes orbitSpinReverse { from { transform:translate(-50%,-50%) rotate(-22deg); } to { transform:translate(-50%,-50%) rotate(-382deg); } }
  @keyframes coreFloat { 0%,100% { transform:translate(-50%,-50%); } 50% { transform:translate(-50%,calc(-50% - 8px)); } }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } }

/*
 * Pharmaceutical Blue — cooler, science-led color direction.
 * Kept as a separate route so the original logo-led palette remains intact.
 */
.pharma-theme {
  --paper: #f4f8fb;
  --paper-strong: #e7eff5;
  --ink: #0b2035;
  --ink-soft: #40586d;
  --purple: #2d5cc4;
  --purple-deep: #0b2948;
  --green: #0e9da5;
  --green-deep: #087681;
  --line: rgba(11, 32, 53, 0.15);
  --white: #ffffff;
  min-height: 100vh;
  background:
    radial-gradient(circle at 88% 3%, rgba(45, 92, 196, .08), transparent 24%),
    var(--paper);
}
.pharma-theme .hero-visual {
  background:
    radial-gradient(circle at 50% 42%, rgba(45,92,196,.26), transparent 29%),
    linear-gradient(145deg, #0b2948 0%, #071d33 100%);
  box-shadow: 0 28px 80px rgba(13, 48, 81, .16);
}
.pharma-theme .visual-grid {
  opacity: .22;
  background-image:
    linear-gradient(rgba(145, 204, 226, .17) 1px, transparent 1px),
    linear-gradient(90deg, rgba(145, 204, 226, .17) 1px, transparent 1px);
}
.pharma-theme .orbit-one { border-color: rgba(169, 217, 235, .46); }
.pharma-theme .orbit-two { border-color: rgba(76, 123, 224, .86); }
.pharma-theme .orbit-three { border-color: rgba(35, 195, 190, .65); }
.pharma-theme .orbit::after { border-color: #071d33; }
.pharma-theme .visual-core {
  background: #f8fbfd;
  box-shadow: 0 22px 90px rgba(0,0,0,.34), inset 0 0 0 8px rgba(45,92,196,.05);
}
.pharma-theme .visual-core small { color: var(--green-deep); }
.pharma-theme .proof-strip { background: rgba(255,255,255,.84); }
.pharma-theme .audience-foreign {
  background: linear-gradient(145deg, #2d5cc4, #234a9f);
}
.pharma-theme .audience-local {
  background: linear-gradient(145deg, #0e9da5, #087681);
}
.pharma-theme .services {
  background:
    radial-gradient(circle at 82% 12%, rgba(45,92,196,.22), transparent 30%),
    #0b2948;
}
.pharma-theme .services h2 em,
.pharma-theme .contact h2 em,
.pharma-theme .service-number,
.pharma-theme .service-arrow { color: #72d6d6; }
.pharma-theme .about-mark {
  background:
    linear-gradient(rgba(45,92,196,.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(45,92,196,.08) 1px, transparent 1px),
    linear-gradient(145deg, #edf4f8, #dce9f1);
  background-size: 44px 44px, 44px 44px, auto;
}
.pharma-theme .insight-graphic {
  background:
    radial-gradient(circle at 50% 50%, rgba(35,195,190,.15), transparent 36%),
    linear-gradient(145deg, #2d5cc4, #1c438f);
}
.pharma-theme .molecule { background: #72d6d6; border-color: #2d5cc4; }
.pharma-theme .contact {
  background:
    radial-gradient(circle at 75% 22%, rgba(45,92,196,.28), transparent 32%),
    #0b2948;
}
.pharma-theme .button-primary {
  background: #147fc2;
}
.pharma-theme .button-primary:hover { background: #0d6da9; }

/* Production additions for the PHP/HTML build. */
.skip-link {
  position: fixed;
  z-index: 1000;
  left: 16px;
  top: 12px;
  padding: 12px 18px;
  border-radius: 999px;
  background: #fff;
  color: var(--ink);
  font-weight: 700;
  transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); }
:focus-visible { outline: 3px solid #72d6d6; outline-offset: 4px; }
.language { cursor: default; }
.js .reveal { opacity: 0; transform: translateY(20px); transition: opacity .7s ease, transform .7s ease; }
.js .reveal.is-visible { opacity: 1; transform: none; }

.contact-grid { align-items: start; }
.contact-direct { margin: 32px 0 0; color: rgba(255,255,255,.62); font-family: Georgia,serif; line-height: 1.6; }
.contact-direct a { color: white; border-bottom: 1px solid rgba(255,255,255,.45); }
.privacy-link { margin-left: 18px; color: rgba(255,255,255,.64); font-size: 11px; text-decoration: underline; text-underline-offset: 3px; }
.contact-form {
  display: grid;
  gap: 17px;
  padding: 34px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 4px 42px 4px 4px;
  background: rgba(255,255,255,.07);
  box-shadow: 0 28px 70px rgba(0,0,0,.12);
  backdrop-filter: blur(12px);
}
.form-field { display: grid; gap: 8px; }
.form-field label { color: rgba(255,255,255,.72); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.form-field input, .form-field textarea {
  width: 100%;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.33);
  border-radius: 0;
  padding: 10px 2px 12px;
  background: transparent;
  color: white;
  font: inherit;
  resize: vertical;
}
.form-field input:focus, .form-field textarea:focus { border-color: #72d6d6; outline: none; }
.consent { display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: start; color: rgba(255,255,255,.64); font-size: 10px; line-height: 1.5; }
.consent input { accent-color: #0e9da5; margin-top: 2px; }
.consent a { color: white; text-decoration: underline; text-underline-offset: 2px; }
.contact-form .button { border: 0; cursor: pointer; margin-top: 4px; }
.response-time { margin: -3px 0 0; color: rgba(255,255,255,.5); font-size: 10px; text-align: center; }
.honeypot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-message { padding: 13px 15px; border-radius: 4px; font-size: 13px; line-height: 1.45; }
.form-message.success { background: rgba(114,214,214,.17); border: 1px solid rgba(114,214,214,.45); }
.form-message.error { background: rgba(255,151,151,.14); border: 1px solid rgba(255,151,151,.4); }

.legal-page { min-height: 100vh; }
.legal-content { max-width: 900px; padding-block: 90px 120px; }
.legal-content h1, .error-page h1 { margin: 0 0 54px; font-size: clamp(48px,7vw,86px); line-height: .95; letter-spacing: -.06em; }
.legal-content h2 { margin: 42px 0 13px; font-size: 24px; letter-spacing: -.03em; }
.legal-content p { color: var(--ink-soft); font-family: Georgia,serif; font-size: 17px; line-height: 1.75; }
.legal-content a { color: var(--green-deep); text-decoration: underline; text-underline-offset: 3px; }
.legal-notice { padding: 22px; border-left: 4px solid var(--green); background: white; color: var(--ink-soft); line-height: 1.6; }
.legal-date { margin-top: 60px; padding-top: 24px; border-top: 1px solid var(--line); font-size: 13px !important; }

.error-page { display: grid; min-height: 100vh; place-items: center; padding: 30px; }
.error-page main { width: min(740px,100%); text-align: center; }
.error-page img { width: 190px; height: auto; margin-bottom: 50px; }
.error-page .eyebrow { justify-content: center; }

@media (max-width: 860px) {
  .contact-form { margin-top: 18px; }
  .legal-content { padding-block: 70px 90px; }
}

@media (max-width: 560px) {
  .contact-form { padding: 24px 20px; border-radius: 4px 28px 4px 4px; }
  .legal-page .site-header .brand { width: 140px; }
  .legal-content h1 { margin-bottom: 38px; }
}

@media (prefers-reduced-motion: reduce) {
  .js .reveal { opacity: 1; transform: none; transition: none; }
}
