/* OMOTIC General Trading PLC — shared site reset + behavior hooks.
   Each page carries its own <style> block for section-specific rules;
   this file only holds the small set of things every page needs. */

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; }
img, svg { display: block; max-width: 100%; }
a { text-decoration: none; }
button { font: inherit; }
:focus { outline: none; }
:focus-visible { outline: 2px solid #D4AF37; outline-offset: 2px; }
::selection { background: rgba(211,174,52,.3); }

/* scroll-reveal state (site.js toggles .om-in on intersect) */
[data-reveal] {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1);
}
[data-reveal].om-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1; transform: none; transition: none; }
}

/* mobile nav panel, closed by default; site.js toggles [data-nav-open] on <body> */
[data-om~="nav-mobile"] { display: none; }
body[data-nav-open] [data-om~="nav-mobile"] { display: flex; }

form input:focus, form select:focus, form textarea:focus { border-color: #d3ae34 !important; }

/* --- responsive safety net ------------------------------------------------
   A grid or flex item defaults to min-width:auto, so it refuses to shrink
   below its content's natural width. A long email address, or a <select>
   whose longest option is "Buying — Monaco Automotive Batteries", then
   widens the whole column and the page scrolls sideways on phones.
   Letting these items shrink fixes the cause; overflow-x:hidden would only
   hide it (and would break the sticky header). */
[data-om~="two-col"] > *,
[data-om~="hero-grid"] > *,
[data-om~="grid-2"] > *,
[data-om~="grid-3"] > *,
[data-om~="grid-4"] > * { min-width: 0; }

input, select, textarea { max-width: 100%; }

/* Long unbreakable strings wrap instead of pushing the layout wider. */
a[href^="mailto:"], a[href^="tel:"] { word-break: break-word; }

/* Brand plate — stands in wherever no photograph is available yet.
   Reads as part of the identity rather than as a missing image.
   To use a real photo instead, replace the whole <div class="om-brandplate">…</div>
   with:  <img src="assets/your-photo.jpg" alt="…"
                style="width:100%;height:100%;object-fit:cover"> */
.om-brandplate {
  width: 100%; height: 100%;
  display: grid; place-items: center;
  background:
    radial-gradient(120% 100% at 28% 18%, rgba(211,174,52,.20), transparent 62%),
    linear-gradient(135deg, #34383C 0%, #272A2D 100%);
}
.om-brandplate img {
  width: auto; height: 46%; max-height: 170px;
  opacity: .38; object-fit: contain;
}
