/* ============================================
   TRIOMPHAL — Unified CSS v3.0
   Only non-inline styles (keyframes, cursor,
   form fields, media queries, selection).
   All layout styles live inline in .hbs files.
   ============================================ */

/* ---- Variables (consumed by inline styles via var()) ---- */
:root {
  --navy-deep:#060826; --navy:#0B0E3D; --navy-soft:#161A52; --navy-card:#1C2260;
  --gold:#C9A24E; --gold-light:#E8C77A; --gold-dark:#9C7A2E;
  --cream:#F0E2BC; --ivory:#FAF7EE; --muted:rgba(240,226,188,.6);
  --serif:'Playfair Display',Georgia,serif; --sans:'Inter',system-ui,sans-serif;
}

/* ---- Reset ---- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: auto; }
body { margin: 0; background: var(--navy-deep); color: var(--ivory); font-family: var(--sans); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }

/* ---- Selection ---- */
#tri-home ::selection { background: rgba(201,162,78,0.85); color: #060826; }
#tri-home a { text-decoration: none; }
#tri-home img { display: block; }

/* ---- Keyframes ---- */
@keyframes tri-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes tri-dot { 0% { box-shadow: 0 0 0 0 rgba(201,162,78,0.55); } 70% { box-shadow: 0 0 0 11px rgba(201,162,78,0); } 100% { box-shadow: 0 0 0 0 rgba(201,162,78,0); } }
@keyframes tri-scroll { 0%,100% { transform: scaleY(0.35); opacity: 0.4; transform-origin: top; } 50% { transform: scaleY(1); opacity: 1; transform-origin: top; } }

/* ---- Cursor hover state ---- */
#tri-cursor.is-hover { width: 64px; height: 64px; background: rgba(201,162,78,0.12); border-color: #E8C77A; }

/* ---- Form fields ---- */
#tri-home .fld {
  width:100%; padding:13px 16px;
  background:rgba(28,34,96,.7); border:1px solid rgba(201,162,78,.2);
  border-radius:9px; color:#FAF7EE; font-family:'Inter',sans-serif;
  font-size:15px; box-sizing:border-box;
  transition:border-color .25s, box-shadow .25s, background .25s;
}
#tri-home .fld:focus {
  outline:none; border-color:#C9A24E;
  background:rgba(28,34,96,.92);
  box-shadow:0 0 0 3px rgba(201,162,78,.14);
}
#tri-home .fld::placeholder { color:rgba(240,226,188,.4); }

/* ---- Alert messages ---- */
.tri-alert {
  padding: 16px 22px; border-radius: 10px; font-size: 15px;
  font-weight: 500; margin-bottom: 24px; text-align: center;
}
.tri-alert-success {
  background: rgba(39,174,96,.12); border: 1px solid rgba(39,174,96,.3); color: #6fcf97;
}
.tri-alert-error {
  background: rgba(231,76,60,.12); border: 1px solid rgba(231,76,60,.3); color: #e88;
}

/* ---- Media queries ---- */
@media (hover: none) {
  #tri-cursor, #tri-cursor-dot { display: none !important; }
}

@media (max-width: 1024px) {
  #tri-nav-links { display: none !important; }
  #tri-burger { display: flex !important; }
  #tri-nav-links.is-open { display: flex !important; }
  #tri-nav { padding: 20px 24px !important; }
  .tri-grid4 { grid-template-columns: repeat(2,1fr) !important; }
}

@media (max-width: 940px) {
  .tri-contact { grid-template-columns: 1fr !important; }
}

@media (max-width: 900px) {
  .tri-grid2 { grid-template-columns: 1fr !important; }
  .tri-foot { grid-template-columns: 1fr !important; gap: 32px !important; }
}

@media (max-width: 760px) {
  .tri-grid3, .tri-grid4 { grid-template-columns: 1fr !important; }
  .tri-reorder > *:first-child { order: 2; }
  .tri-reorder > *:last-child { order: 1; }
  .tri-form-row { grid-template-columns: 1fr !important; }
  [data-draw-wrap] [style*="top:33px"] { display: none !important; }
}
