.btn {
  min-height: 52px;
  padding: 0 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  border: 1px solid transparent;
  border-radius: 12px;
  font-weight: 900;
  cursor: pointer;
  transition: transform .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.btn:hover { transform: translateY(-2px); }
.btn-accent { position: relative; isolation: isolate; overflow: hidden; background: var(--color-accent); color: #fff; box-shadow: 0 14px 34px rgba(217,154,50,.18); }
.btn-accent:hover { background: var(--color-accent-dark); }
.btn-accent::after {
  content: "";
  position: absolute;
  inset: -45% auto -45% -70%;
  width: 42%;
  z-index: -1;
  transform: skewX(-18deg);
  background: linear-gradient(90deg,transparent,rgba(255,255,255,.32),transparent);
  transition: left .6s ease;
}
.btn-accent:hover::after { left: 130%; }
.btn-outline-light { border-color: rgba(255,255,255,.28); color: #fff; background: rgba(255,255,255,.06); }
.btn-outline-light:hover { background: rgba(255,255,255,.10); }
.btn-outline { border-color: var(--color-line); background: #fff; color: var(--color-text); }
.btn-outline:hover { border-color: rgba(47,79,79,.35); }

.section-head { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(300px,.7fr); gap: clamp(36px,6vw,110px); align-items: end; margin-bottom: clamp(44px,5vw,76px); }
.section-head .eyebrow { margin-bottom: 17px; }
.section-head p { font-size: clamp(16px,1.25vw,19px); max-width: 620px; justify-self: end; }

.card-grid { display: grid; grid-template-columns: repeat(3,1fr); border: 1px solid var(--color-line); border-radius: var(--radius-lg); overflow: hidden; background: #fff; }
.info-card { min-height: 250px; padding: 34px; border-right: 1px solid var(--color-line); border-bottom: 1px solid var(--color-line); position: relative; overflow: hidden; }
.info-card:nth-child(3n) { border-right: 0; }
.info-card:nth-last-child(-n+3) { border-bottom: 0; }
.info-card::after { content:""; position:absolute; width:18px; height:18px; top:12px; right:12px; border-top:1px solid rgba(47,79,79,.22); border-right:1px solid rgba(47,79,79,.22); }
.info-card .num { display:block; color: var(--color-accent); font-size: 11px; font-weight: 900; letter-spacing: .14em; margin-bottom: 54px; }
.info-card h3 { font-size: 21px; margin-bottom: 12px; }
.info-card p { font-size: 14px; }
.info-card:hover { background: #f1f4ef; }

.tech-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--color-line); border-left:1px solid var(--color-line); }
.tech-item { min-height:210px; padding:32px; border-right:1px solid var(--color-line); border-bottom:1px solid var(--color-line); display:flex; flex-direction:column; justify-content:flex-start; align-items:stretch; }
.tech-item b { display:block; color:var(--color-accent); font-size:11px; letter-spacing:.14em; margin:0; padding:0; }
.tech-item strong { display:block; font-size: 18px; margin-bottom: 8px; }
.tech-item span { color: var(--color-text-secondary); font-size: 13px; }

.photo-frame { position: relative; border-radius: var(--radius-lg); overflow: hidden; background: #dfe4df; box-shadow: var(--shadow-card); }
.photo-frame picture { position:absolute; inset:0; width:100%; height:100%; }
.photo-frame img { width:100%; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.2,.75,.2,1), filter .6s ease; }
.photo-frame:hover img { transform: scale(1.025); filter: contrast(1.03) saturate(.95); }
.photo-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(21,35,38,.76),rgba(21,35,38,.04) 62%); pointer-events:none; }
.photo-label { position:absolute; left:24px; bottom:22px; z-index:2; background:rgba(245,246,243,.94); border-radius:12px; padding:11px 14px; font-size:12px; font-weight:900; color:var(--color-text); }

.content-list { display: grid; gap: 14px; list-style: none; padding: 0; }
.content-list li { position:relative; min-width:0; max-width:100%; padding-left:26px; color:var(--color-text-secondary); overflow-wrap:anywhere; word-break:normal; }
.content-list li::before { content:""; position:absolute; left:0; top:.72em; width:8px; height:8px; border:2px solid var(--color-accent); border-radius:50%; transform:translateY(-50%); }

.cta-band { background: var(--color-primary); color:#fff; border-radius: var(--radius-lg); padding: clamp(36px,5vw,72px); position: relative; overflow:hidden; }
.cta-band::after { content:""; position:absolute; width:420px; height:420px; border:1px solid rgba(255,255,255,.13); border-radius:50%; right:-170px; bottom:-220px; box-shadow:0 0 0 80px rgba(255,255,255,.035); }
.cta-band-grid { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:40px; align-items:center; }
.cta-band-grid > * { min-width:0; max-width:100%; }
.cta-band .btn { max-width:100%; white-space:normal; text-align:center; }
.cta-band h2 { color:#fff; max-width:820px; }
.cta-band p { color:rgba(255,255,255,.70); max-width:760px; margin-top:16px; }

.modal[hidden] { display:none; }
.modal {
  position:fixed;
  inset:0;
  z-index:1800;
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  padding:clamp(10px, 2vw, 24px);
  overflow:hidden;
}
.modal-backdrop {
  position:absolute;
  inset:0;
  background:rgba(9,16,17,.76);
  backdrop-filter:blur(10px);
}
.modal-panel {
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);
  width:min(1060px, calc(100vw - clamp(20px, 4vw, 48px)));
  max-width:100%;
  max-height:calc(100dvh - clamp(20px, 4vw, 48px));
  min-width:0;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  background:#fff;
  border-radius:26px;
  box-shadow:0 36px 120px rgba(0,0,0,.28);
}
.modal-copy {
  min-width:0;
  overflow:hidden;
  background:var(--color-primary-dark);
  color:#fff;
  padding:48px 40px;
}
.modal-copy .eyebrow { color:#E3B66B; margin-bottom:18px; }
.modal-copy h2 {
  color:#fff;
  font-size:clamp(34px,4vw,52px);
  overflow-wrap:anywhere;
}
.modal-copy p {
  color:rgba(255,255,255,.63);
  margin-top:18px;
  overflow-wrap:anywhere;
}
.modal-direct {
  margin-top:34px;
  display:grid;
  gap:8px;
  min-width:0;
}
.modal-direct a {
  display:block;
  min-width:0;
  font-weight:800;
  overflow-wrap:anywhere;
}
.modal-close {
  position:absolute;
  right:14px;
  top:14px;
  z-index:5;
  width:42px;
  height:42px;
  border:0;
  border-radius:50%;
  background:#fff;
  box-shadow:0 8px 24px rgba(0,0,0,.12);
  cursor:pointer;
  font-size:26px;
  line-height:1;
}

.contact-form { min-width:0; max-width:100%; padding:40px; background:#eef2ed; overflow:hidden; }
.contact-form.is-compact { min-width:0; padding:42px 40px 32px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; min-width:0; }
.field { display:grid; gap:7px; min-width:0; }
.field-wide { grid-column:1/-1; }
.field label { font-size:12px; font-weight:900; color:#586365; }
.field label span { font-weight:500; color:#879092; }
.field input, .field textarea { width:100%; min-width:0; max-width:100%; border:1px solid #ccd3ce; background:#fff; border-radius:11px; padding:13px 14px; outline:none; color:var(--color-text); min-height:49px; }
.field textarea { min-height:112px; }
.field input:focus, .field textarea:focus { border-color:var(--color-accent); box-shadow:0 0 0 3px rgba(217,154,50,.12); }
.file-control { min-width:0; max-width:100%; min-height:82px; border:1px dashed rgba(47,79,79,.38); background:rgba(255,255,255,.70); border-radius:14px; padding:14px 16px; display:flex; align-items:center; gap:14px; cursor:pointer; }
.file-control:hover { border-color:var(--color-accent); }
.file-control-icon { width:38px; height:38px; min-width:38px; border-radius:10px; background:var(--color-primary); color:#fff; display:grid; place-items:center; font-size:22px; }
.file-control strong { display:block; color:var(--color-text); font-size:14px; }
.file-control small { display:block; color:var(--color-text-secondary); font-size:11px; margin-top:3px; font-weight:500; }
.file-input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.file-list { display:grid; gap:6px; }
.file-chip { display:flex; justify-content:space-between; gap:12px; align-items:center; background:#fff; border:1px solid var(--color-line); border-radius:9px; padding:8px 10px; font-size:11px; }
.file-chip button { border:0; background:none; cursor:pointer; color:#a54e35; font-weight:800; }
.consent-check { display:flex; align-items:flex-start; gap:10px; margin-top:15px; color:var(--color-text-secondary); font-size:11px; cursor:pointer; }
.consent-check input { width:17px; height:17px; min-width:17px; margin-top:1px; border:1px solid #b8c2bc; border-radius:4px; background:#fff; }
.consent-check input:checked { background:var(--color-primary); box-shadow: inset 0 0 0 4px #fff; }
.consent-check a { text-decoration:underline; }
.form-actions { margin-top:18px; display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.form-status { font-size:12px; color:var(--color-text-secondary); }
.form-status.is-success { color:#2f6b42; }
.form-status.is-error { color:#a74232; }
.hp-field { position:absolute !important; left:-9999px !important; width:1px !important; height:1px !important; overflow:hidden !important; }

.contact-card { border:1px solid var(--color-line); border-radius:20px; padding:26px; background:#fff; }
.contact-card span { display:block; color:var(--color-text-secondary); font-size:12px; text-transform:uppercase; letter-spacing:.1em; font-weight:800; margin-bottom:10px; }
.contact-card strong, .contact-card a { display:block; font-size:clamp(18px,2vw,26px); line-height:1.18; }
.contact-card a:hover { color:var(--color-primary); }


.file-control > span:last-child { min-width:0; max-width:100%; }
.file-control small,
.file-control strong { overflow-wrap:anywhere; }
.file-list,
.file-chip { min-width:0; max-width:100%; }
.file-chip > span {
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.file-chip button { flex:0 0 auto; }
.consent-check { min-width:0; }
.consent-check span { min-width:0; overflow-wrap:anywhere; }
.form-actions { min-width:0; }
.form-status { min-width:0; overflow-wrap:anywhere; }


/* Hidden native file input must never affect modal/document width. */
.field .file-input {
  position:absolute !important;
  width:1px !important;
  min-width:1px !important;
  max-width:1px !important;
  height:1px !important;
  min-height:1px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  opacity:0 !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
  pointer-events:none !important;
}

/* Honeypot stays available to the server but is removed from layout calculations. */
.hp-field {
  position:absolute !important;
  width:1px !important;
  min-width:1px !important;
  max-width:1px !important;
  height:1px !important;
  min-height:1px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
}
.hp-field label,
.hp-field input {
  position:absolute !important;
  width:1px !important;
  min-width:1px !important;
  max-width:1px !important;
  height:1px !important;
  min-height:1px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
}


/* Cookie notice */
.cookie-notice[hidden] { display:none !important; }
.cookie-notice {
  position:fixed;
  left:var(--site-gutter);
  bottom:var(--site-gutter);
  z-index:1450;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:16px;
  width:min(470px, calc(100vw - (var(--site-gutter) * 2)));
  padding:20px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:20px;
  background:rgba(21,35,38,.97);
  color:#fff;
  box-shadow:0 24px 80px rgba(6,15,16,.28);
  backdrop-filter:blur(14px);
  opacity:0;
  transform:translateY(18px);
  transition:opacity .26s ease, transform .26s ease;
}
.cookie-notice.is-visible {
  opacity:1;
  transform:none;
}
.cookie-notice-mark {
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid rgba(217,154,50,.42);
  border-radius:12px;
  color:var(--color-accent);
  font-weight:900;
  background:rgba(217,154,50,.08);
}
.cookie-notice-content { min-width:0; }
.cookie-notice strong {
  display:block;
  color:#fff;
  font-size:16px;
  margin-bottom:6px;
}
.cookie-notice p {
  color:rgba(255,255,255,.66);
  font-size:13px;
  line-height:1.55;
}
.cookie-notice-actions {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-top:14px;
}
.cookie-notice-actions a {
  color:rgba(255,255,255,.68);
  font-size:12px;
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:3px;
}
.cookie-notice-actions a:hover { color:#fff; }
.cookie-accept {
  min-height:40px;
  padding:0 18px;
  border-radius:10px;
  font-size:13px;
}


.tech-item {
  transition:background-color .25s ease, transform .25s ease;
}
.tech-item:hover {
  background:rgba(255,255,255,.018);
}
.section-soft .tech-item:hover {
  background:rgba(47,79,79,.025);
}


/* Stable top alignment for 3x2 engineering cards */
.tech-item strong {
  display:block;
  margin-top:34px;
  margin-bottom:12px;
  line-height:1.28;
}
.tech-item span {
  display:block;
  margin:0;
  line-height:1.62;
}
