/* ===== Additions for the CMS-rendered site (keeps the original design language) ===== */

/* Accessibility */
.skip-link { position:absolute; top:-60px; right:12px; z-index:3000; background:var(--gold); color:#000; padding:10px 16px; border-radius:8px; font-weight:800; }
.skip-link:focus { top:12px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
bdi { unicode-bidi:isolate; }

/* Hero slides are now real <img> elements (better LCP than CSS backgrounds) */
.hero-slide img, .hero-slide-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.page-hero-bg img, .page-hero-img { width:100%; height:100%; object-fit:cover; }
button.hero-dot { border:0; padding:0; }
.logo-img { width:44px; height:44px; border-radius:10px; object-fit:cover; }

/* Capacity highlight (was inline style) */
.capacity-card.is-highlight { border-color:var(--gold); background:var(--gold-dim); }
.capacity-card.is-highlight .ton { font-size:2.5rem; }
.capacity-card.is-highlight .ton-desc { color:var(--gold); }

/* Gallery preview on home (was inline style) */
.gallery-preview-grid { grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); }
.gallery-preview-item { margin:0; border-radius:14px; overflow:hidden; height:220px; position:relative; cursor:pointer; display:block; }
.gallery-preview-item img { width:100%; height:100%; object-fit:cover; }
figure.gallery-item { margin:0; }

/* Coverage items that link to an area page */
a.coverage-item { transition:var(--tr); }
a.coverage-item:hover { border-color:var(--gold); color:var(--gold); }

/* FAQ */
.faq-list { max-width:820px; margin:0 auto; display:flex; flex-direction:column; gap:14px; }
.faq-item { background:var(--card); border:1px solid var(--border); border-radius:var(--radius); padding:0 24px; transition:var(--tr); }
.faq-item[open] { border-color:var(--gold); }
.faq-item summary { cursor:pointer; list-style:none; padding:20px 0; font-weight:800; font-size:1rem; color:var(--gold); display:flex; justify-content:space-between; gap:12px; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:'+'; font-size:1.3rem; line-height:1; transition:transform .25s; }
.faq-item[open] summary::after { transform:rotate(45deg); }
.faq-answer { padding:0 0 20px; color:var(--gray); font-size:0.92rem; }

/* Quote form additions */
.hp-field { position:absolute !important; left:-10000px !important; width:1px; height:1px; overflow:hidden; }
.form-status { margin-top:14px; text-align:center; font-weight:700; font-size:0.9rem; min-height:1.4em; }
.form-status.is-ok { color:#22c55e; }
.form-status.is-error { color:#f87171; }
.btn-submit[disabled] { opacity:.7; cursor:wait; }
.cf-turnstile { margin:10px 0; }

/* Rich text / articles */
.prose { max-width:820px; margin:0 auto; color:#e5e5e5; font-size:1.05rem; line-height:2; }
.prose h2 { font-size:1.55rem; font-weight:900; margin:2em 0 .6em; color:var(--white); scroll-margin-top:90px; }
.prose h3 { font-size:1.25rem; font-weight:800; margin:1.6em 0 .5em; color:var(--gold); scroll-margin-top:90px; }
.prose h4 { font-size:1.1rem; font-weight:800; margin:1.4em 0 .4em; }
.prose p { margin:0 0 1.1em; }
.prose ul, .prose ol { margin:0 1.4em 1.2em 0; padding:0; }
.prose ul { list-style:disc; }
.prose ol { list-style:decimal; }
.prose li { margin:.35em 0; }
.prose a { color:var(--gold); text-decoration:underline; text-underline-offset:4px; }
.prose blockquote { border-right:4px solid var(--gold); background:var(--card); padding:16px 20px; border-radius:10px; margin:1.4em 0; color:var(--gray); }
.prose img { border-radius:12px; height:auto; margin:0 auto; }
.prose figure { margin:1.6em 0; }
.prose figcaption { text-align:center; color:var(--muted); font-size:.85rem; margin-top:8px; }
.prose hr { border:0; border-top:1px solid var(--border); margin:2em 0; }
.prose code { background:var(--bg3); padding:2px 6px; border-radius:5px; font-size:.9em; }
.prose pre { background:var(--bg3); padding:16px; border-radius:10px; overflow:auto; direction:ltr; text-align:left; }
.table-wrap { overflow-x:auto; margin:1.4em 0; -webkit-overflow-scrolling:touch; }
.prose table, .g-table { width:100%; border-collapse:collapse; font-size:.92rem; }
.prose th, .prose td { border:1px solid var(--border); padding:10px 12px; text-align:right; vertical-align:top; }
.prose th { background:var(--gold-dim); color:var(--gold); font-weight:800; }

/* Blog */
.post-header { padding:130px 5% 30px; background:var(--bg2); border-bottom:1px solid var(--border); }
.post-header-inner { max-width:860px; margin:0 auto; }
.post-header .breadcrumb { justify-content:flex-start; margin:0 0 18px; flex-wrap:wrap; }
.post-header h1 { font-size:clamp(1.7rem,4.5vw,2.6rem); font-weight:900; line-height:1.4; margin:12px 0 14px; }
.post-meta { color:var(--muted); font-size:.85rem; display:flex; flex-wrap:wrap; gap:4px; align-items:center; }
.post-cover { max-width:960px; margin:30px auto 0; padding:0 5%; }
.post-cover img { width:100%; height:auto; max-height:520px; object-fit:cover; border-radius:16px; }
.post-body { padding:40px 5% 20px; }
.post-tags { max-width:820px; margin:0 auto; padding:0 5%; display:flex; flex-wrap:wrap; gap:8px; }
.post-tags a { background:var(--card); border:1px solid var(--border); padding:4px 12px; border-radius:20px; font-size:.82rem; color:var(--gray); }
.post-tags a:hover { color:var(--gold); border-color:var(--gold); }
.post-cta { max-width:820px; margin:40px auto 60px; padding:30px; background:var(--card); border:1px solid var(--border); border-radius:var(--radius); text-align:center; }
.post-cta h2 { font-size:1.4rem; font-weight:900; margin-bottom:8px; }
.post-cta p { color:var(--gray); margin-bottom:18px; }
.post-card h3 a:hover { color:var(--gold); }
.post-card .post-meta { margin-bottom:6px; }
.blog-cats { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom:34px; }
.blog-cats a { padding:8px 16px; border-radius:20px; border:1px solid var(--border); color:var(--gray); font-size:.88rem; }
.blog-cats a.active, .blog-cats a:hover { background:var(--gold); color:#000; border-color:var(--gold); }
.pagination { display:flex; justify-content:center; gap:18px; align-items:center; margin-top:40px; color:var(--muted); }
.pagination a { color:var(--gold); font-weight:800; }
.empty-state { text-align:center; color:var(--muted); padding:40px 0; }
.preview-bar { position:fixed; bottom:0; right:0; left:0; z-index:3000; background:#b45309; color:#fff; text-align:center; padding:10px; font-weight:800; }

/* 404 */
.error-page { min-height:70vh; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:130px 5% 60px; }
.error-code { font-size:clamp(5rem,18vw,10rem); font-weight:900; line-height:1; background:linear-gradient(135deg,var(--gold),#fff); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.error-title { font-size:clamp(1.4rem,4vw,2rem); font-weight:900; margin:10px 0 12px; }
.error-page p { color:var(--gray); max-width:560px; margin-bottom:26px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

/* Featured equipment card (was inline style) */
.fleet-card.is-featured { border-color:var(--gold); }
