/* ============================================================
   Jona Facilities Management — design tokens
   Concept: the maintenance work order / dispatch ticket.
   A facilities company runs on tickets — jobs raised, jobs
   closed — so the ticket stub is the signature visual motif.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap');

:root{
  --ink:        #142129;   /* near-black steel, header/footer/text */
  --ink-soft:   #2B3A44;
  --paper:      #ECEDE7;   /* cool concrete gray-white */
  --paper-dim:  #E1E3DB;
  --card:       #F7F7F3;
  --amber:      #F2A93C;   /* hazard/hi-vis amber — primary accent */
  --rust:       #C1502B;   /* rust/corrosion orange-red — secondary accent */
  --line:       #C7CCC4;   /* hairline steel gray */
  --line-dark:  #55636A;
  --text:       #20262A;
  --text-dim:   #5B6560;

  --display: 'Montserrat', 'Arial', sans-serif;
  --body:    'Inter', -apple-system, sans-serif;
  --mono:    'IBM Plex Mono', 'Courier New', monospace;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--body);
  background:var(--paper);
  color:var(--text);
  line-height:1.55;
}
img{ max-width:100%; display:block; }
a{ color:inherit; }

h1,h2,h3{
  font-family:var(--display);
  text-transform:uppercase;
  letter-spacing:0.02em;
  margin:0 0 0.5em;
  color:var(--ink);
  font-weight:600;
}
h1{ font-size:clamp(2.4rem, 5vw, 4.2rem); line-height:1.02; font-weight:700; }
h2{ font-size:clamp(1.6rem, 3vw, 2.3rem); }
h3{ font-size:1.15rem; letter-spacing:0.04em; }

p{ margin:0 0 1em; color:var(--text); }

.eyebrow{
  font-family:var(--mono);
  font-size:0.72rem;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--rust);
  display:flex;
  align-items:center;
  gap:0.6em;
  margin-bottom:0.9em;
}
.eyebrow::before{
  content:"";
  width:22px; height:2px;
  background:var(--amber);
  display:inline-block;
}

.wrap{ max-width:1120px; margin:0 auto; padding:0 1.6rem; }

/* -------------------- header / nav -------------------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:var(--ink);
  border-bottom:3px solid var(--amber);
}
.header-row{
  display:flex; align-items:center; justify-content:space-between;
  padding:0.9rem 1.6rem;
  max-width:1120px; margin:0 auto;
  gap:1rem;
  flex-wrap:wrap;
}
.brand{
  display:flex; align-items:center; gap:0.7rem;
  text-decoration:none;
  color:#fff;
}
.brand-mark{
  width:38px; height:38px;
  flex-shrink:0;
}
.brand-text{
  font-family:var(--display);
  font-size:1.05rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
  line-height:1.15;
}
.brand-text span{
  display:block;
  font-family:var(--mono);
  font-size:0.62rem;
  letter-spacing:0.18em;
  color:var(--amber);
  font-weight:500;
  margin-top:2px;
}
nav.main-nav{
  display:flex; flex-wrap:wrap; gap:0.3rem;
}
nav.main-nav a{
  color:#D8DCD6;
  text-decoration:none;
  font-family:var(--body);
  font-size:0.76rem;
  font-weight:600;
  letter-spacing:0.06em;
  text-transform:uppercase;
  padding:0.5rem 0.7rem;
  border-radius:2px;
  transition:background .15s,color .15s;
}
nav.main-nav a:hover{ background:rgba(242,169,60,0.14); color:var(--amber); }
nav.main-nav a.active{ color:var(--ink); background:var(--amber); font-weight:600; }
.nav-cta{
  font-family:var(--mono);
  font-size:0.72rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--ink) !important;
  background:#fff;
  padding:0.5rem 0.8rem !important;
  border-radius:2px;
}
.nav-cta:hover{ background:var(--amber) !important; }

/* -------------------- hero (ticket board) -------------------- */
.hero{
  background:var(--ink);
  color:#EFEFEA;
  position:relative;
  overflow:hidden;
  border-bottom:1px solid var(--line-dark);
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background-image:
    repeating-linear-gradient(0deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 40px),
    repeating-linear-gradient(90deg, rgba(255,255,255,0.035) 0 1px, transparent 1px 40px);
  pointer-events:none;
}
.hero-inner{
  position:relative;
  max-width:1120px; margin:0 auto;
  padding:4.4rem 1.6rem 3.4rem;
}
.ticket-tag{
  display:inline-flex; align-items:center; gap:0.5em;
  font-family:var(--mono);
  font-size:0.72rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ink);
  background:var(--amber);
  padding:0.35em 0.8em;
  margin-bottom:1.3rem;
}
.hero h1{ color:#fff; max-width:16ch; }
.hero .lede{
  color:#C9CEC7;
  font-size:1.1rem;
  max-width:46ch;
  margin-top:1rem;
}
.hero-actions{
  display:flex; gap:0.9rem; flex-wrap:wrap;
  margin-top:2rem;
}
.btn{
  font-family:var(--mono);
  font-size:0.78rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  text-decoration:none;
  padding:0.85em 1.5em;
  border:1px solid transparent;
  display:inline-block;
  font-weight:600;
}
.btn-amber{ background:var(--amber); color:var(--ink); }
.btn-amber:hover{ background:#ffbd5c; }
.btn-outline{ border-color:#4C5860; color:#EFEFEA; }
.btn-outline:hover{ border-color:var(--amber); color:var(--amber); }

/* stat / ticket strip under hero */
.stat-strip{
  position:relative;
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(150px,1fr));
  border-top:1px solid #37424A;
}
.stat-strip div{
  padding:1.1rem 1.6rem;
  border-right:1px solid #37424A;
  font-family:var(--mono);
}
.stat-strip div:last-child{ border-right:none; }
.stat-strip strong{
  display:block;
  font-size:1.5rem;
  color:var(--amber);
  font-family:var(--display);
  letter-spacing:0.02em;
}
.stat-strip span{
  font-size:0.68rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:#9AA39C;
}

/* -------------------- sections -------------------- */
section{ padding:3.6rem 0; }
.section-tight{ padding:2.2rem 0; }
.section-head{ max-width:60ch; margin-bottom:2.4rem; }
.bg-ink{ background:var(--ink); color:#EFEFEA; }
.bg-ink h2, .bg-ink h3{ color:#fff; }
.bg-ink p{ color:#C9CEC7; }
.bg-card{ background:var(--card); }

/* -------------------- ticket / service cards -------------------- */
.ticket-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(260px,1fr));
  gap:1.4rem;
}
.ticket{
  background:var(--card);
  border:1px solid var(--line);
  position:relative;
  text-decoration:none;
  color:var(--text);
  display:flex;
  flex-direction:column;
  transition:transform .15s, box-shadow .15s, border-color .15s;
}
.ticket:hover{
  transform:translateY(-3px);
  border-color:var(--amber);
  box-shadow:0 10px 24px -12px rgba(20,33,41,0.35);
}
.ticket-top{
  padding:1.3rem 1.3rem 1rem;
}
.ticket-code{
  font-family:var(--mono);
  font-size:0.68rem;
  letter-spacing:0.1em;
  color:var(--rust);
  display:flex; justify-content:space-between;
  margin-bottom:0.9rem;
}
.ticket-icon{
  width:44px; height:44px;
  color:var(--ink);
  margin-bottom:0.9rem;
}
.ticket h3{ margin-bottom:0.4rem; }
.ticket p{ font-size:0.92rem; color:var(--text-dim); margin-bottom:0; }
.ticket-perf{
  height:0;
  border-top:2px dashed var(--line);
  position:relative;
  margin:0 0.2rem;
}
.ticket-perf::before,.ticket-perf::after{
  content:"";
  position:absolute; top:-7px;
  width:14px; height:14px;
  background:var(--paper);
  border-radius:50%;
}
.ticket-perf::before{ left:-7px; }
.ticket-perf::after{ right:-7px; }
.ticket-bottom{
  padding:0.9rem 1.3rem;
  font-family:var(--mono);
  font-size:0.72rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  display:flex; align-items:center; justify-content:space-between;
  color:var(--ink);
}
.ticket-bottom .arrow{ transition:transform .15s; }
.ticket:hover .ticket-bottom .arrow{ transform:translateX(4px); }

/* -------------------- content pages: service detail -------------------- */
.page-hero{
  background:var(--ink);
  color:#fff;
  padding:3rem 0 2.2rem;
  border-bottom:3px solid var(--amber);
}
.breadcrumb{
  font-family:var(--mono);
  font-size:0.7rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:#9AA39C;
  margin-bottom:1rem;
}
.breadcrumb a{ color:#C9CEC7; text-decoration:none; }
.breadcrumb a:hover{ color:var(--amber); }

.spec-list{
  list-style:none; margin:0; padding:0;
  display:grid; gap:0.9rem;
}
.spec-list li{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:0.9rem;
  align-items:start;
  padding-bottom:0.9rem;
  border-bottom:1px solid var(--line);
}
.spec-list li:last-child{ border-bottom:none; }
.spec-num{
  font-family:var(--mono);
  color:var(--rust);
  font-size:0.8rem;
  padding-top:0.15rem;
}
.spec-list h3{ margin-bottom:0.25rem; font-size:1rem; }
.spec-list p{ margin:0; font-size:0.92rem; color:var(--text-dim); }

.two-col{
  display:grid;
  grid-template-columns:1.1fr 0.9fr;
  gap:2.6rem;
  align-items:start;
}
@media (max-width:800px){ .two-col{ grid-template-columns:1fr; } }

.diagram-frame{
  background:var(--card);
  border:1px solid var(--line);
  padding:1.6rem;
}
.diagram-frame svg{ width:100%; height:auto; }

.callout{
  background:var(--rust);
  color:#fff;
  padding:1.6rem 1.8rem;
  margin-top:1.6rem;
}
.callout h3{ color:#fff; margin-bottom:0.4rem; }
.callout p{ color:#F5DFD3; margin-bottom:0; font-size:0.92rem; }

/* -------------------- service photo grid -------------------- */
.photo-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(160px,1fr));
  gap:0.7rem;
  margin-top:1.4rem;
}
.photo-frame{
  position:relative;
  border:1px solid var(--line);
  background:var(--ink);
  aspect-ratio:4/3;
  overflow:hidden;
}
.photo-frame img{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
  filter:grayscale(15%) contrast(1.04);
  transition:filter .2s, transform .3s;
}
.photo-frame:hover img{ filter:grayscale(0%) contrast(1.04); transform:scale(1.04); }
.photo-frame::after{
  content:"";
  position:absolute; left:0; right:0; bottom:0;
  height:3px;
  background:var(--amber);
}
.photo-tag{
  position:absolute; top:0; left:0;
  background:var(--amber);
  color:var(--ink);
  font-family:var(--mono);
  font-size:0.62rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  padding:0.25em 0.55em;
  font-weight:600;
}

/* -------------------- other services strip -------------------- */
.mini-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:1rem;
}
.mini-card{
  border:1px solid var(--line);
  background:var(--card);
  padding:1.1rem;
  text-decoration:none;
  color:var(--text);
  display:flex; align-items:center; gap:0.8rem;
  transition:border-color .15s, background .15s;
}
.mini-card:hover{ border-color:var(--amber); background:#fff; }
.mini-card svg{ width:28px; height:28px; color:var(--ink); flex-shrink:0; }
.mini-card span{ font-family:var(--mono); font-size:0.78rem; text-transform:uppercase; letter-spacing:0.04em; }

/* -------------------- about page -------------------- */
.value-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1.4rem;
}
.value-card{
  border-left:3px solid var(--amber);
  padding:0.3rem 0 0.3rem 1.1rem;
}
.value-card h3{ margin-bottom:0.35rem; }
.value-card p{ font-size:0.92rem; color:var(--text-dim); margin:0; }

.timeline{ border-left:2px solid var(--line); margin-left:0.4rem; }
.timeline li{
  list-style:none;
  padding:0 0 1.8rem 1.6rem;
  position:relative;
}
.timeline li::before{
  content:"";
  position:absolute; left:-6.5px; top:2px;
  width:11px; height:11px;
  background:var(--amber);
  border:2px solid var(--ink);
  border-radius:50%;
}
.timeline li:last-child{ padding-bottom:0; }
.timeline .t-label{
  font-family:var(--mono);
  font-size:0.7rem;
  color:var(--rust);
  letter-spacing:0.08em;
  text-transform:uppercase;
}

/* -------------------- contact -------------------- */
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:2.6rem;
}
@media (max-width:760px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-card{
  background:var(--ink);
  color:#fff;
  padding:2rem;
}
.contact-card h3{ color:var(--amber); }
.contact-line{
  display:flex; gap:0.9rem; align-items:flex-start;
  padding:0.9rem 0;
  border-bottom:1px solid #37424A;
}
.contact-line:last-child{ border-bottom:none; }
.contact-line svg{ width:22px; height:22px; color:var(--amber); flex-shrink:0; margin-top:2px; }
.contact-line a, .contact-line div{ color:#EFEFEA; text-decoration:none; font-size:0.95rem; }
.contact-line small{ display:block; color:#9AA39C; font-family:var(--mono); font-size:0.68rem; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:0.2rem; }

.hours-table{ width:100%; border-collapse:collapse; font-size:0.92rem; }
.hours-table td{ padding:0.55rem 0; border-bottom:1px solid var(--line); }
.hours-table td:last-child{ text-align:right; font-family:var(--mono); font-size:0.82rem; color:var(--text-dim); }

/* -------------------- form -------------------- */
.field{ margin-bottom:1.1rem; }
.field label{
  display:block;
  font-family:var(--mono);
  font-size:0.7rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--text-dim);
  margin-bottom:0.4rem;
}
.field input, .field textarea, .field select{
  width:100%;
  background:var(--card);
  border:1px solid var(--line);
  padding:0.75em 0.9em;
  font-family:var(--body);
  font-size:0.95rem;
  color:var(--text);
}
.field input:focus, .field textarea:focus, .field select:focus{
  outline:2px solid var(--amber);
  outline-offset:1px;
}
.field textarea{ resize:vertical; min-height:110px; }
.form-submit{
  font-family:var(--mono);
  font-size:0.8rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  background:var(--ink);
  color:#fff;
  border:none;
  padding:0.9em 1.8em;
  cursor:pointer;
  font-weight:600;
}
.form-submit:hover{ background:var(--rust); }
.form-note{ font-size:0.8rem; color:var(--text-dim); margin-top:0.8rem; }

/* -------------------- footer -------------------- */
footer.site-footer{
  background:var(--ink);
  color:#C9CEC7;
  padding:2.6rem 0 1.6rem;
  border-top:3px solid var(--amber);
}
.footer-grid{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr;
  gap:2rem;
  margin-bottom:2rem;
}
@media (max-width:760px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-grid h3{ color:#fff; font-size:0.8rem; letter-spacing:0.1em; margin-bottom:0.9rem; }
.footer-grid a{ color:#C9CEC7; text-decoration:none; display:block; font-size:0.88rem; padding:0.25rem 0; }
.footer-grid a:hover{ color:var(--amber); }
.footer-bottom{
  border-top:1px solid #37424A;
  padding-top:1.3rem;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:0.6rem;
  font-family:var(--mono);
  font-size:0.7rem;
  letter-spacing:0.05em;
  color:#7C8781;
  text-transform:uppercase;
}

/* -------------------- utility -------------------- */
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:2.4rem; }
@media (max-width:760px){ .grid-2{ grid-template-columns:1fr; } }
.center{ text-align:center; }
.mt-lg{ margin-top:2.6rem; }
.skip-link{
  position:absolute; left:-999px; top:auto;
  background:var(--amber); color:var(--ink); padding:0.6em 1em;
  font-family:var(--mono); font-size:0.8rem;
}
.skip-link:focus{ left:1rem; top:1rem; z-index:100; }

@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; scroll-behavior:auto !important; }
}

/* Professional service galleries */
.gallery{grid-template-columns:repeat(2,minmax(0,1fr));}
.gallery .photo-frame{overflow:hidden;border-radius:10px;}
.gallery .photo-frame img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease;}
.gallery .photo-frame:hover img{transform:scale(1.04);}
@media(max-width:560px){.gallery{grid-template-columns:1fr;}}

/* Updated brand logo */
.brand-logo-image{width:42px;height:42px;object-fit:contain;}


/* -------------------- conversion / trust upgrades -------------------- */
.trust-strip{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.trust-grid div{padding:1.2rem 1.4rem;border-right:1px solid var(--line)}
.trust-grid div:last-child{border-right:0}
.trust-grid strong{display:block;font-family:var(--display);font-size:1.15rem;letter-spacing:.05em;color:var(--ink)}
.trust-grid span{font-family:var(--mono);font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim)}
.service-area-section{background:var(--paper-dim);border-bottom:1px solid var(--line)}
.area-pills{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.2rem}
.area-pills span{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;background:var(--ink);color:#fff;padding:.55rem .75rem;border-left:3px solid var(--amber)}
.area-card{background:var(--ink);color:#fff;padding:1.8rem;border-top:3px solid var(--amber)}
.area-card h3{color:#fff}.area-card p{color:#C9CEC7}
.btn-dark-outline{border:1px solid #5B6870;color:#fff}.btn-dark-outline:hover{border-color:var(--amber);color:var(--amber)}
.faq-section{background:var(--card)}
.faq-grid{display:grid;grid-template-columns:1fr 1fr;gap:.9rem 1rem}
.faq-grid details{background:#fff;border:1px solid var(--line);padding:0 1.1rem}
.faq-grid summary{cursor:pointer;list-style:none;font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:1.05rem 1.7rem 1.05rem 0;position:relative;color:var(--ink)}
.faq-grid summary::-webkit-details-marker{display:none}
.faq-grid summary::after{content:'+';position:absolute;right:0;top:.9rem;font-family:var(--mono);font-size:1.1rem;color:var(--amber)}
.faq-grid details[open] summary::after{content:'−'}
.faq-grid details p{font-size:.9rem;color:var(--text-dim);padding:0 0 1.1rem;margin:0}
.floating-actions{position:fixed;right:1rem;bottom:1rem;z-index:60;display:flex;flex-direction:column;gap:.55rem}
.floating-actions a{display:flex;align-items:center;justify-content:center;text-decoration:none;font-family:var(--mono);font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.8rem 1rem;min-width:100px;box-shadow:0 8px 24px rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.2)}
.floating-actions .wa-float{background:#198754;color:#fff}.floating-actions .wa-float:hover{background:#157347}
.floating-actions .call-float{background:var(--amber);color:var(--ink)}.floating-actions .call-float:hover{background:#ffbd5c}
@media(max-width:760px){.trust-grid{grid-template-columns:1fr 1fr}.trust-grid div:nth-child(2){border-right:0}.trust-grid div{border-bottom:1px solid var(--line)}.faq-grid{grid-template-columns:1fr}.floating-actions{left:1rem;right:1rem;bottom:.75rem;flex-direction:row}.floating-actions a{flex:1}.site-header{position:sticky}.brand-text{font-size:.9rem}.brand-logo-image{width:46px;height:46px}}
@media(max-width:520px){.trust-grid{grid-template-columns:1fr}.trust-grid div{border-right:0}.trust-grid div:last-child{border-bottom:0}.hero-actions .btn{width:100%;text-align:center}}


.location-link{display:block;color:inherit;text-decoration:none;line-height:1.7;transition:transform .2s ease,opacity .2s ease}.location-link:hover{opacity:.9;transform:translateX(3px)}.location-link span{display:inline-block;margin-top:6px;font-weight:700;color:#d6a84f}
