/* ═══════════════════════════════════════════
   style.css — Grand Format (site-4)
═══════════════════════════════════════════ */
:root {
  --pure:   #FFFFFF;
  --dark:   #111827;
  --dark-m: #1F2937;
  --red:    #C23B22;
  --red-l:  #D4523A;
  --blue:   #1D4E8F;
  --gold:   #B8942A;
  --gray-l: #F3F4F6;
  --gray-m: #9CA3AF;
  --gray-b: #E5E7EB;
  --t:      0.25s ease;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { -webkit-font-smoothing: antialiased; }

::-webkit-scrollbar       { width: 5px; }
::-webkit-scrollbar-track { background: var(--gray-l); }
::-webkit-scrollbar-thumb { background: var(--red); border-radius: 3px; }
::selection               { background: var(--red); color: var(--pure); }
:focus-visible            { outline: 2px solid var(--red); outline-offset: 3px; border-radius: 1px; }

/* Navbar */
#navbar { transition: box-shadow .3s ease; }
#navbar.scrolled { box-shadow: 0 2px 24px rgba(17,24,39,.1); }
.nav-link.active-link { color: var(--red) !important; }
#mobile-menu.is-open { display: block; }

/* Hero patterns */
.hero-geo-pattern {
  background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23FFFFFF' fill-opacity='1'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}
.hero-right-pattern {
  background-image: url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23FFFFFF' fill-opacity='1'%3E%3Cpath d='M0 0h40v40H0V0zm40 40h40v40H40V40zm0-40h2l-2 2V0zm0 4l4-4h2l-6 6V4zm0 4l8-8h2L40 10V8zm0 4L52 0h2L40 14v-2zm0 4L56 0h2L40 18v-2zm0 4L60 0h2L40 22v-2zm0 4L64 0h2L40 26v-2zm0 4L68 0h2L40 30v-2zm0 4L72 0h2L40 34v-2zm0 4L76 0h2L40 38v-2zm0 4L80 0v2L42 40h-2zm4 0L80 4v2L46 40h-2zm4 0L80 8v2L50 40h-2zm4 0l28-28v2L54 40h-2zm4 0l24-24v2L58 40h-2zm4 0l20-20v2L62 40h-2zm4 0l16-16v2L66 40h-2zm4 0l12-12v2L70 40h-2zm4 0l8-8v2l-6 6h-2zm4 0l4-4v2l-2 2h-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
}

/* Buttons */
.btn-red {
  background: var(--red);
  color: var(--pure);
  border: 2px solid var(--red);
  transition: background var(--t), transform var(--t), box-shadow var(--t);
}
.btn-red:hover   { background: var(--red-l); border-color: var(--red-l); transform: translateY(-2px); box-shadow: 0 5px 20px rgba(194,59,34,.3); }
.btn-red:active  { transform: translateY(0); }
.btn-red:disabled { opacity:.6; cursor:not-allowed; transform:none; }

.btn-ghost-white {
  background: transparent;
  color: var(--pure);
  border: 2px solid rgba(255,255,255,.3);
  transition: background var(--t), border-color var(--t), transform var(--t);
}
.btn-ghost-white:hover { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.6); transform: translateY(-2px); }
.btn-ghost-white:active { transform: translateY(0); }

/* Method editorial */
.method-editorial { transition: background var(--t); }
.method-editorial:hover { background: rgba(194,59,34,.03); }

/* Story newspaper */
.story-editorial { border: 1px solid var(--dark); }
.story-columns {
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
  font-size: 0.9375rem;
  line-height: 1.8;
  color: rgba(17,24,39,.7);
}
@media (min-width: 1024px) {
  .story-columns {
    column-count: 2;
    column-gap: 2.5rem;
  }
}
.story-drop::first-letter {
  font-family: 'Playfair Display', serif;
  font-size: 3.5rem;
  font-weight: 900;
  float: left;
  line-height: .8;
  margin-right: .05em;
  color: var(--red);
}
.pull-quote {
  column-span: all;
  border-left: 4px solid var(--red);
  padding: 1rem 1.5rem;
  background: var(--gray-l);
  break-inside: avoid;
}

/* Form */
.edit-form-label {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: .65rem;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--dark);
  margin-bottom: .4rem;
}
.edit-form-input {
  display: block;
  width: 100%;
  padding: .8rem 1rem;
  background: var(--pure);
  border: 1.5px solid var(--gray-b);
  border-radius: 0;
  font-family: 'Montserrat', sans-serif;
  font-size: .875rem;
  font-weight: 300;
  color: var(--dark);
  transition: border-color var(--t), box-shadow var(--t);
  appearance: none; -webkit-appearance: none;
}
.edit-form-input::placeholder { color: var(--gray-m); }
.edit-form-input:hover        { border-color: var(--dark); }
.edit-form-input:focus        { outline: none; border-color: var(--red); box-shadow: 0 0 0 3px rgba(194,59,34,.08); }
.edit-form-input.is-invalid   { border-color: var(--red); box-shadow: 0 0 0 3px rgba(194,59,34,.1); }
.edit-form-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%239CA3AF'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .875rem center;
  background-size: 1.125rem;
  padding-right: 2.5rem;
}

/* Reveal */
.reveal { opacity: 0; transform: translateY(20px); transition: opacity .7s cubic-bezier(.22,1,.36,1), transform .7s cubic-bezier(.22,1,.36,1); }
.reveal.visible { opacity: 1; transform: translateY(0); }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .btn-red:hover, .btn-ghost-white:hover { transform: none; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media print { #navbar, footer { display: none; } .reveal { opacity:1; transform:none; } }
