/* DURO Software — Cassiopeia overrides. Installed by j6/apply-assets.sh as
   media/templates/site/cassiopeia/css/user.css (Cassiopeia loads it after template.css).
   Goal: the 2019 Helix look (white header, blue #0345bf, dark footer, hero + cards) with a
   lighter, more modern finish — same structure, same content. */

:root {
  --duro-blue: #0345bf;
  --duro-blue-dark: #023a9e;
  --duro-ink: #252525;
  --duro-text: #3d4652;
  --duro-muted: #5f6b7a;
  --duro-surface: #f6f8fb;
  --duro-line: #e6e9ef;
  --duro-radius: 14px;
  --duro-shadow: 0 8px 24px rgba(17, 40, 85, .08);
  --duro-max: 1320px;

  --cassiopeia-color-primary: var(--duro-blue);
  --cassiopeia-color-link: var(--duro-blue);
  --cassiopeia-color-hover: var(--duro-blue-dark);
  --link-color: var(--duro-blue);
  --link-color-rgb: 3, 69, 191;
  --link-hover-color: var(--duro-blue-dark);
  --link-hover-color-rgb: 2, 58, 158;
  --body-color: var(--duro-ink);
}

html { overflow-x: clip; }
body { font-size: 1.0625rem; line-height: 1.65; }
h1, h2, h3, h4 { letter-spacing: -.01em; }
a { text-underline-offset: .15em; }

/* ---------- Top bar (contact strip) ---------- */
.container-topbar { background: #1b2430; color: #cfd6e0; font-size: .875rem; }
.duro-topbar { max-width: var(--duro-max); margin: 0 auto; padding: .45rem .5em; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .35rem 1.75rem; }
.duro-topbar a { color: inherit; text-decoration: none; display: inline-flex; align-items: center; gap: .45rem; white-space: nowrap; }
.duro-topbar a .fas { color: #8fb0ff; font-size: .85em; }
.duro-topbar a:hover, .duro-topbar a:focus { color: #fff; }
@media (max-width: 575.98px) { .duro-topbar { justify-content: center; gap: .25rem 1rem; } }

/* ---------- Header: white, one row on desktop ---------- */
.container-header {
  background: #fff;
  background-image: none;
  box-shadow: 0 1px 0 var(--duro-line), 0 6px 20px rgba(17, 40, 85, .06);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
}
.container-header.sticky-top { position: sticky !important; top: 0; }
.container-header .container-topbar { flex: 0 0 100%; }
.container-header .grid-child { padding: .55em .5em; }
.container-header .navbar-brand { padding: .2rem 0; margin: 0; font-size: 1rem; }
.container-header .navbar-brand img { height: 40px; width: auto; display: block; }
.container-header .container-nav { padding-bottom: .55em; justify-content: flex-end; }
.container-header .container-nav nav, .container-header nav { margin-top: 0; }
.container-header .mod-menu { color: var(--duro-ink); justify-content: flex-end; }
.container-header .mod-menu > li > a, .container-header .mod-menu > li > span { font-weight: 500; padding: .5rem 0; display: inline-block; }
.container-header .metismenu > li > a:hover:after, .container-header .metismenu > li.active > a:after { background: var(--duro-blue); }
.container-header .metismenu > li.level-1.active > a, .container-header .metismenu > li.level-1 > a:hover { color: var(--duro-blue); }
.container-header .navbar-toggler { color: var(--duro-ink); border: 1px solid var(--duro-line); border-radius: 10px; }
@media (min-width: 992px) {
  .container-header > .grid-child { width: 50%; max-width: calc(var(--duro-max) / 2); }
  .container-header .metismenu > li + li { margin-left: 2rem; }
}
@media (max-width: 991.98px) {
  /* brand left, hamburger right, menu as a full-width panel under the header */
  .container-header > .grid-child { width: auto; flex: 1 1 auto; }
  .container-header > .container-nav { flex: 0 0 auto; position: static; }
  .container-header .container-nav nav { position: static; }
  .container-header .navbar-collapse { position: absolute; left: 0; right: 0; top: 100%; background: #fff; padding: .5rem 1rem 1rem; box-shadow: 0 12px 24px rgba(17, 40, 85, .12); border-top: 1px solid var(--duro-line); }
  .container-header .mod-menu { flex-direction: column; }
  .container-header .mod-menu > li > a { padding: .65rem .25rem; font-size: 1.05rem; }
}

/* ---------- Page chrome ---------- */
.duro-home .container-component > :first-child { margin-top: 0; }
.mod-breadcrumbs { background: var(--duro-surface); border-radius: 10px; font-size: .9rem; }
.page-header { margin: 1.75rem 0 .5rem; }
.page-header h1, .page-header h2, .com-content-article__title, .com-contact__name { font-weight: 600; font-size: clamp(1.8rem, 3.5vw, 2.4rem); }
.btn-primary { --btn-bg: var(--duro-blue); --btn-border-color: var(--duro-blue); --btn-hover-bg: var(--duro-blue-dark); --btn-hover-border-color: var(--duro-blue-dark); --btn-active-bg: var(--duro-blue-dark); --btn-active-border-color: var(--duro-blue-dark); border-radius: 10px; padding: .6rem 1.25rem; }
.form-control { border-radius: 10px; border-color: var(--duro-line); padding: .6rem .8rem; }
.form-control:focus { border-color: var(--duro-blue); box-shadow: 0 0 0 .2rem rgba(3, 69, 191, .15); }

/* ---------- Sections ---------- */
.duro-section { padding: clamp(2.5rem, 6vw, 4.5rem) 0; }
.duro-section__title { text-align: center; font-size: clamp(1.6rem, 3vw, 2.1rem); font-weight: 600; margin: 0 0 .75rem; }
.duro-section__lead { text-align: center; max-width: 860px; margin: 0 auto 2.25rem; color: var(--duro-muted); }
.duro-bleed, .duro-hero, .duro-apps { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); }

/* Hero */
.duro-hero {
  position: relative; isolation: isolate; color: #fff; text-align: center;
  display: grid; place-items: center;
  min-height: min(68vh, 640px);
  padding: clamp(4rem, 12vw, 9rem) 1.5rem;
  background-size: cover; background-position: 50% 35%;
}
.duro-hero::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(6, 20, 50, .52) 0%, rgba(6, 20, 50, .66) 100%); }
.duro-hero__inner { max-width: 920px; }
.duro-hero__title { color: #fff; font-size: clamp(2.4rem, 6.5vw, 4.5rem); font-weight: 600; letter-spacing: .06em; margin: 0 0 1.1rem; text-shadow: 0 2px 18px rgba(0, 0, 0, .25); }
.duro-hero__lead { font-size: clamp(1.05rem, 1.6vw, 1.3rem); line-height: 1.6; margin: 0 auto; max-width: 840px; color: rgba(255, 255, 255, .94); }

/* Products */
.duro-products__grid { display: grid; grid-template-columns: 1fr; gap: 2rem; align-items: center; }
@media (min-width: 900px) { .duro-products__grid { grid-template-columns: 1.1fr 1fr; gap: 3.5rem; } }
.duro-products__figure { margin: 0; }
.duro-products__figure img { width: 100%; height: auto; border-radius: var(--duro-radius); }
.duro-products__list p { margin: 0 0 1.15rem; color: var(--duro-text); }
.duro-products__list p > a:first-child { font-weight: 600; text-decoration: none; }
.duro-products__list p > a:first-child:hover { text-decoration: underline; }
.duro-products__contact { padding-top: .5rem; border-top: 1px solid var(--duro-line); color: var(--duro-ink) !important; }

/* Apps band + cards */
.duro-apps { background: var(--duro-surface); padding-left: 1.5rem; padding-right: 1.5rem; }
.duro-apps > * { max-width: var(--duro-max); margin-left: auto; margin-right: auto; }
.duro-apps > .duro-section__lead { max-width: 860px; }
.duro-cards { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); max-width: 980px; margin-left: auto; margin-right: auto; }
.duro-cards--2 { max-width: none; margin-bottom: 1.5rem; }
.duro-card { background: #fff; border: 1px solid var(--duro-line); border-radius: var(--duro-radius); padding: 1.75rem; box-shadow: var(--duro-shadow); }
.duro-card--wide { max-width: none; }
.duro-card__icon { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 14px; background: rgba(3, 69, 191, .08); color: var(--duro-blue); font-size: 1.45rem; margin-bottom: 1rem; }
.duro-card__title { font-size: 1.2rem; font-weight: 600; margin: 0 0 .5rem; }
.duro-card p { margin: 0; color: var(--duro-text); }

/* About */
.duro-company__card { text-align: center; padding: clamp(1.5rem, 4vw, 2.75rem); border-radius: var(--duro-radius); border: 1px solid var(--duro-line); background: linear-gradient(180deg, #fff 0%, var(--duro-surface) 100%); }
.duro-company__name { font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 600; color: var(--duro-blue); margin: 0 0 .75rem; }
.duro-company__meta { margin: 0; line-height: 1.9; color: var(--duro-text); }
.duro-about { padding-top: 0; }
.duro-timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: .9rem; }
.duro-timeline li { position: relative; padding-left: 1.75rem; color: var(--duro-text); }
.duro-timeline li::before { content: ""; position: absolute; left: 0; top: .55em; width: .7rem; height: .7rem; border-radius: 50%; background: var(--duro-blue); box-shadow: 0 0 0 4px rgba(3, 69, 191, .12); }

/* Inner pages: tighter top, no duplicated block headings */
.duro-inner .page-header, .duro-inner .com-contact > h1 { margin: 1.25rem 0 .25rem; }
.duro-inner .duro-section:first-child { padding-top: 1.25rem; }
.duro-about { padding-top: 0; }

/* Contact */
.com-contact__container > h2 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.com-contact__container { display: grid; grid-template-columns: 1fr; gap: 1.5rem 3rem; align-items: center; margin: 1.5rem 0 2.5rem; }
@media (min-width: 768px) { .com-contact__container { grid-template-columns: minmax(0, 480px) minmax(0, 1fr); } }
.com-contact__thumbnail { margin: 0; float: none; max-width: 100%; }
.com-contact__thumbnail img, .com-contact .contact-image img { max-width: 100%; height: auto; border-radius: var(--duro-radius); box-shadow: var(--duro-shadow); }
.com-contact__address { margin: 0; font-size: 1.05rem; }
.com-contact__address dt { color: var(--duro-muted); font-weight: 500; }
.com-contact__address dd { color: var(--duro-ink); margin-bottom: .35rem; }
.com-contact > h2, .com-contact__form + h2 { font-size: 1.4rem; font-weight: 600; margin: 0 0 1rem; }
.com-contact__form fieldset, .com-contact form fieldset { border: 1px solid var(--duro-line); border-radius: var(--duro-radius); padding: 1.5rem; background: #fff; }
.com-contact__form legend { font-size: 1.1rem; font-weight: 600; color: var(--duro-ink); }

/* ---------- Footer ---------- */
.footer { background: #171717; background-image: none; margin-top: clamp(1.5rem, 4vw, 3rem); color: #cbd2dc; }
.footer .grid-child { padding: 1.4rem .5em; flex-direction: row; justify-content: space-between; align-items: center; }
.duro-copyright { margin: 0; font-size: .95rem; }
.back-to-top-link { border-radius: 10px; box-shadow: var(--duro-shadow); }
