:root {
  --orange: #f29122;
  --dark: #141414;
  --cream: #EDEBE7;
}

* { box-sizing: border-box; }

html, body { margin: 0; padding: 0; }

body { font-family: Archivo, Helvetica, sans-serif; }

img { display: block; }

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

.navlink { transition: color .15s ease; }
.navlink:hover { color: var(--orange) !important; }

.btn { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; border: none; font-family: inherit; transition: opacity .15s ease; }
.btn:hover { opacity: .85; }

@keyframes tlaPulseRed { 0%,100% { box-shadow:0 0 0 0 rgba(220,53,69,.35); } 50% { box-shadow:0 0 0 5px rgba(220,53,69,0); } }
@keyframes tlaPulseBlue { 0%,100% { box-shadow:0 0 0 0 rgba(0,102,204,.35); } 50% { box-shadow:0 0 0 5px rgba(0,102,204,0); } }
@keyframes tlaBarGrow { from { transform:scaleY(0); } to { transform:scaleY(1); } }
.tla-bar { transform-origin:0 160px; animation:tlaBarGrow .7s cubic-bezier(.2,.7,.3,1) both; }

.field input, .field select, .field textarea {
  width: 100%;
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(237,235,231,.25);
  padding: 9px 0;
  font-size: 14px;
  font-family: Archivo, Helvetica, sans-serif;
  color: #EDEBE7;
  outline: none;
}
.field textarea { border: 1px solid rgba(237,235,231,.25); padding: 11px; min-height: 66px; resize: vertical; }
.field select { color: #8F8A82; }
.field select option { background: #141414; color: #EDEBE7; }
.field input::placeholder, .field textarea::placeholder { color: #8F8A82; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--orange); }

/* Hamburger button (shown only on mobile) */
.menu-toggle {
  display: none; flex-direction: column; justify-content: center; align-items: center; gap: 5px;
  width: 44px; height: 44px; margin-right: -10px; padding: 0;
  background: none; border: none; color: inherit; cursor: pointer;
}
.menu-toggle span { display: block; width: 22px; height: 2px; background: currentColor; transition: transform .2s ease, opacity .2s ease; }
.menu-open .menu-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-open .menu-toggle span:nth-child(2) { opacity: 0; }
.menu-open .menu-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ---------- Mobile ----------
   Layout is inline-styled per page, so these rules target the inline
   grid patterns directly and override them below the breakpoint. */
body { overflow-x: clip; }

@media (max-width: 760px) {
  /* Header: logo · ES/EN · ☰ on one row; nav opens below as full-width rows */
  body > header { flex-wrap: wrap; gap: 0 12px !important; padding-top: 12px !important; padding-bottom: 12px !important; }
  .menu-toggle { display: inline-flex; }
  body > header > nav { display: none !important; order: 3; width: 100%; margin-left: 0 !important; flex-direction: column; gap: 0 !important; margin-top: 10px; font-size: 13px !important; }
  body > header.menu-open > nav { display: flex !important; }
  body > header > nav > a { display: flex; align-items: center; min-height: 48px; padding: 0 !important; border: none !important; border-top: 1px solid rgba(128,128,128,.22) !important; }

  /* Fixed 2–3 column grids stack into one column */
  [style*="grid-template-columns:minmax"],
  [style*="grid-template-columns:repeat(3,"] { grid-template-columns: minmax(0,1fr) !important; }
  [style*="grid-template-columns:repeat(3,"] > * { border-right: none !important; border-top: 1px solid rgba(128,128,128,.22); }
  [style*="grid-template-columns:repeat(3,"] > :first-child { border-top: none; }
  /* Home sector cards sit flush left: drop side padding once stacked */
  [style*="grid-template-columns:repeat(3,"] > [style*="padding:clamp(26px,3vw,40px)"] { padding-left: 0 !important; padding-right: 0 !important; }

  /* Numbered rows (01 · title · text): keep number column, text below title */
  [style*="grid-template-columns:auto minmax"] { grid-template-columns: auto minmax(0,1fr) !important; row-gap: 8px !important; }
  [style*="grid-template-columns:auto minmax"] > :nth-child(3) { grid-column: 2; }

  /* Paired cells lose side padding once stacked */
  [style*="grid-template-columns:minmax"] > [style*="padding:20px 20px 20px 0"],
  [style*="grid-template-columns:minmax"] > [style*="padding:12px 20px 12px 0"] { padding-right: 0 !important; }
}
