/* ==========================================================================
   House White theme for bwgallery.design
   Loaded AFTER css/bootstrap.css and css/style.css; it only overrides colors,
   type, backgrounds and ornaments, so the template's layout, menu and
   lightbox scripts keep working. Remove the <link> to this file to go back.

   Idea (same as the interactive resume): a field split down the middle,
   concrete gray on one side and near-black on the other, with a sigil
   straddling the line. Palette is strictly black, white and gray.
   ========================================================================== */

:root {
  --concrete: #d2d2d2;
  --black: #060606;
  --bone: #ececec;
  --split: 55%;
  --sw: 300px;
  --tex: url("../images/hw-concrete.jpg");
  --grit: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='.10'/></svg>");
  --display: "Cinzel", "Trajan Pro", Georgia, serif;
  --body: "Crimson Pro", "Iowan Old Style", Georgia, serif;
  --mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --vine-lt: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 36'><g fill='%234d4d4d' stroke='%234d4d4d'><path fill='none' stroke-width='1.3' d='M0 18 C26 4 46 32 76 18 S128 4 158 18 S210 32 240 18'/><path d='M0 0 C5 -9 14 -9 19 0 C14 9 5 9 0 0Z' transform='translate(40 10) rotate(-48)'/><path d='M0 0 C5 -9 14 -9 19 0 C14 9 5 9 0 0Z' transform='translate(62 26) rotate(48)'/><path d='M0 0 C5 -9 14 -9 19 0 C14 9 5 9 0 0Z' transform='translate(98 8) rotate(-40)'/><path d='M0 0 C5 -9 14 -9 19 0 C14 9 5 9 0 0Z' transform='translate(120 22) rotate(42)'/><path d='M0 0 C5 -9 14 -9 19 0 C14 9 5 9 0 0Z' transform='translate(150 10) rotate(-50)'/><path d='M0 0 C5 -9 14 -9 19 0 C14 9 5 9 0 0Z' transform='translate(176 28) rotate(46)'/><path d='M0 0 C5 -9 14 -9 19 0 C14 9 5 9 0 0Z' transform='translate(204 12) rotate(-38)'/><circle cx='238' cy='18' r='2.4'/></g></svg>");
  --vine-dk: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 36'><g fill='%239b9b9b' stroke='%239b9b9b'><path fill='none' stroke-width='1.3' d='M0 18 C26 4 46 32 76 18 S128 4 158 18 S210 32 240 18'/><path d='M0 0 C5 -9 14 -9 19 0 C14 9 5 9 0 0Z' transform='translate(40 10) rotate(-48)'/><path d='M0 0 C5 -9 14 -9 19 0 C14 9 5 9 0 0Z' transform='translate(62 26) rotate(48)'/><path d='M0 0 C5 -9 14 -9 19 0 C14 9 5 9 0 0Z' transform='translate(98 8) rotate(-40)'/><path d='M0 0 C5 -9 14 -9 19 0 C14 9 5 9 0 0Z' transform='translate(120 22) rotate(42)'/><path d='M0 0 C5 -9 14 -9 19 0 C14 9 5 9 0 0Z' transform='translate(150 10) rotate(-50)'/><path d='M0 0 C5 -9 14 -9 19 0 C14 9 5 9 0 0Z' transform='translate(176 28) rotate(46)'/><path d='M0 0 C5 -9 14 -9 19 0 C14 9 5 9 0 0Z' transform='translate(204 12) rotate(-38)'/><circle cx='238' cy='18' r='2.4'/></g></svg>");
}

/* ---------- fields: concrete (lt) and black (dk) ---------- */
.page .lt { --fg:#0a0a0a; --fg2:#262626; --mute:#4d4d4d; --line:rgba(10,10,10,.32); --bgc:var(--concrete); --chip:rgba(10,10,10,.09); color: var(--fg);
  background: linear-gradient(rgba(212,212,212,.78), rgba(212,212,212,.78)), var(--tex); background-size: auto, 800px; background-color: var(--concrete); }
.page .dk { --fg:#ececec; --fg2:#cfcfcf; --mute:#9b9b9b; --line:rgba(236,236,236,.28); --bgc:var(--black); --chip:rgba(236,236,236,.09); color: var(--fg);
  background: var(--grit), var(--black); }
.page [class*="bg-image-"]::before { display: none; }
.page .lt.bg-image-1, .page .lt.bg-image-2, .page .dk.bg-image-3 { background-position: 0 0; }

html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: linear-gradient(rgba(150,150,150,.9), rgba(150,150,150,.9)), var(--tex);
  background-size: auto, 800px;
  background-attachment: fixed;
  background-color: #969696;
  color: #0a0a0a;
  font-family: var(--body);
  font-size: 19px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
.page { background: transparent; }

/* ---------- type ---------- */
.page h1, .page h2, .page h3, .page h4, .page h5, .page h6, .page .h7, .page h7 {
  font-family: var(--display); font-weight: 700; text-transform: uppercase; letter-spacing: .14em; color: inherit;
}
.page .lt h1, .page .lt h2, .page .lt h3, .page .lt h4, .page .lt h5, .page .lt h6, .page .lt h7,
.page .dk h1, .page .dk h2, .page .dk h3, .page .dk h4, .page .dk h5, .page .dk h6, .page .dk h7,
.page .context-primary h4, .page .context-primary h5 { color: var(--fg); }
.page h4 { font-size: clamp(22px, 2.4vw, 30px); line-height: 1.2; letter-spacing: .2em; }
.page h5 { font-style: normal; font-size: 15px; line-height: 1.4; letter-spacing: .18em; }
.page h7 { display: block; font-size: 12px; letter-spacing: .24em; color: var(--mute); }
.page p, .page li, .page dd { font-family: var(--body); }
.page .lt p, .page .dk p { color: var(--fg2); }
.page .text-secondary, .page .context-primary .text-secondary { color: var(--fg); font-style: italic; font-size: 22px; line-height: 1.35; }
.page font { color: inherit; }
.page a { color: inherit; text-decoration: underline; text-decoration-color: var(--mute); text-underline-offset: 3px; transition: text-decoration-color .2s, background .2s, color .2s; }
.page a:hover, .page a:focus { color: inherit; text-decoration-color: currentColor; }
.page .context-primary a, .page .context-primary a:hover { color: inherit; }
.page a:focus-visible, .page button:focus-visible, .page input:focus-visible, .page textarea:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.page i, .page em { font-family: var(--body); }
.page b { font-weight: 600; }

/* section heading ornament: the vine replaces the old red rule */
.page .decorative-line-2 {
  display: inline-block; width: 120px; height: 18px; margin: 0 0 0 14px; border: 0; vertical-align: middle;
  background: var(--vine-lt) center / contain no-repeat;
}
.page .dk .decorative-line-2, .page .context-primary .decorative-line-2 { background-image: var(--vine-dk); }
.page h5 .decorative-line-2:first-child { margin: 0 14px 0 0; }
.page .decorative-line-1 { border-color: var(--mute); }
.page .decorative-line-1::before { background: var(--mute); }

/* ---------- header / nav: always a black bar ---------- */
.page .rd-navbar-wrap, .page .rd-navbar-outer { background: var(--black); }
.page .rd-navbar { background: transparent; }
.page .rd-navbar-static.rd-navbar-transparent .rd-navbar-outer,
.page .rd-navbar-fullwidth.rd-navbar-transparent .rd-navbar-outer { background: var(--black); }
.page .rd-navbar-static.rd-navbar--is-stuck, .page .rd-navbar-static.rd-navbar--is-clone,
.page .rd-navbar-fullwidth.rd-navbar--is-stuck, .page .rd-navbar-fullwidth.rd-navbar--is-clone { box-shadow: 0 1px 0 rgba(236,236,236,.28), 0 8px 24px rgba(0,0,0,.35); }
.page .rd-navbar-outer { border-bottom: 1px solid rgba(236,236,236,.28); background-image: var(--grit); }
.page .rd-navbar-nav > li > a, .page .rd-navbar-nav li a {
  font-family: var(--display); font-weight: 600; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--bone); text-decoration: none;
}
.page .rd-navbar-nav > li:hover > a, .page .rd-navbar-nav > li.focus > a, .page .rd-navbar-nav > li.opened > a { color: #fff; text-decoration: underline; text-underline-offset: 8px; text-decoration-thickness: 1px; }
.page .rd-navbar-nav > li.active > a { color: #fff; }
.page .rd-navbar-nav > li > a { position: relative; }
.page .rd-navbar-nav > li.active > a::after, .page .rd-navbar-nav > li:hover > a::after { content: none; }
.page .rd-navbar-dropdown { background: var(--black); border: 1px solid rgba(236,236,236,.28); box-shadow: 0 10px 30px rgba(0,0,0,.5); }
.page .rd-navbar-dropdown li a { background: transparent; color: var(--bone); }
.page .rd-navbar-dropdown li a:hover { background: var(--bone); color: var(--black); text-decoration: none; }
.page .rd-navbar-fixed .rd-navbar-panel, .page .rd-navbar-fixed .rd-navbar-nav, .page .rd-navbar-sidebar .rd-navbar-panel { background: var(--black); }
.page .rd-navbar-toggle .toggle-icon, .page .rd-navbar-toggle .toggle-icon::before, .page .rd-navbar-toggle .toggle-icon::after { background-color: var(--bone); color: var(--bone); }
/* the template's empty "info" panel toggle has nothing in it, so hide it */
.page .info-toggle { display: none; }

.page .rd-navbar-brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.page .rd-navbar-brand img { filter: none; }
.hw-mark { display: inline-block; font: 700 14px/1.1 var(--display); letter-spacing: .22em; text-transform: uppercase; color: var(--bone); white-space: nowrap; }
.hw-mark small { display: block; margin-top: 4px; font: 400 10px/1 var(--mono); letter-spacing: .08em; color: #9b9b9b; text-transform: none; }

/* ---------- home: split-field hero (sigil straddles the line) ---------- */
.page .hw-hero {
  position: relative; display: grid; grid-template-columns: var(--split) minmax(0, 1fr); grid-template-rows: auto auto auto;
  padding-top: 92px; overflow: hidden; isolation: isolate; background: var(--black);
}
.hw-hero .bg-l, .hw-hero .bg-r { grid-row: 1 / -1; z-index: -2; }
.hw-hero .bg-l { grid-column: 1; }
.hw-hero .bg-r { grid-column: 2; }
.hw-name {
  grid-column: 1 / -1; grid-row: 1; display: grid; grid-template-columns: var(--split) minmax(0, 1fr);
  margin: 0; padding-top: clamp(26px, 4vw, 52px);
  font: 800 clamp(30px, 5.6vw, 68px)/1 var(--display); letter-spacing: .03em; text-transform: uppercase;
}
.hw-name span { display: block; padding-inline: clamp(14px, 2.4vw, 30px); background: none; }
.hw-name .n1 { text-align: right; animation: hwFromL .9s cubic-bezier(.2,.7,.2,1) both; }
.hw-name .n2 { text-align: left; animation: hwFromR .9s cubic-bezier(.2,.7,.2,1) both; }
@keyframes hwFromL { from { opacity: 0; transform: translateX(-28px); } }
@keyframes hwFromR { from { opacity: 0; transform: translateX(28px); } }
.hw-flank { z-index: 1; grid-row: 2; align-self: center; padding: 0 clamp(14px, 2.6vw, 34px); max-width: calc(100% - var(--sw) * 0.5528 - 12px); background: none !important; }
.hw-flank .k { display: block; margin-bottom: 8px; font: 600 11px/1 var(--display); letter-spacing: .22em; text-transform: uppercase; color: var(--mute); }
.hw-flank p { margin: 0; font: 600 clamp(17px, 1.9vw, 23px)/1.25 var(--display); letter-spacing: .02em; text-transform: uppercase; color: var(--fg) !important; }
.hw-flank small { display: block; margin-top: 10px; font: 400 16px/1.45 var(--body); letter-spacing: 0; color: var(--fg2); text-transform: none; }
.hw-flank.l { grid-column: 1; justify-self: start; text-align: left; }
.hw-flank.r { grid-column: 2; justify-self: end; text-align: right; }
.hw-sigil { grid-column: 1; grid-row: 2; justify-self: end; z-index: 2; width: calc(var(--sw) * 1.1056); margin: 18px calc(var(--sw) * -0.5528) 18px 0; }
.hw-sigil img { display: block; width: 100%; height: auto; filter: drop-shadow(0 6px 14px rgba(0,0,0,.25)); animation: hwOpens 1.2s cubic-bezier(.2,.7,.2,1) both; }
@keyframes hwOpens { from { clip-path: inset(0 50% 0 50%); } to { clip-path: inset(0 0 0 0); } }

.hw-tenets { grid-column: 1 / -1; grid-row: 3; display: grid; grid-template-columns: repeat(2, calc(var(--split) / 2)) repeat(2, calc((100% - var(--split)) / 2)); border-top: 1px solid var(--line); }
.page a.hw-tenet {
  display: flex; flex-direction: column; gap: 4px; padding: 16px clamp(14px, 2.4vw, 26px) 18px; min-width: 0;
  border-right: 1px solid var(--line); text-decoration: none; background: transparent; transition: background .18s, color .18s;
}
.hw-tenet:last-child { border-right: 0; }
.page a.hw-tenet:hover, .page a.hw-tenet:focus-visible { background: var(--fg); color: var(--bgc); }
.hw-tenet .t-name { font: 700 12px/1 var(--display); letter-spacing: .28em; text-transform: uppercase; }
.hw-tenet b { font: 800 clamp(30px, 4vw, 46px)/1.05 var(--display); }
.hw-tenet .t-note { font: 400 16px/1.3 var(--body); color: inherit; opacity: .8; text-wrap: balance; }
.page .lt.hw-tenet { background: transparent; }
.hw-tenets .lt, .hw-tenets .dk { background: transparent; }

/* hero quote band */
.hw-quote { padding: 54px 0 58px; text-align: center; }
.hw-quote blockquote { margin: 0 auto; max-width: 760px; padding: 0 20px; border: 0; font: italic 400 clamp(22px, 2.6vw, 30px)/1.4 var(--body); color: var(--fg); }
.hw-quote cite { display: block; margin-top: 18px; font: 600 11px/1.5 var(--display); letter-spacing: .24em; text-transform: uppercase; color: var(--mute); font-style: normal; }
.hw-quote .vine { display: block; width: 160px; height: 24px; margin: 0 auto 22px; background: var(--vine-dk) center / contain no-repeat; }

/* ---------- inner-page intro bands: split field, sigil on the line ---------- */
.page .hw-intro {
  --cut: calc(50% - min(50%, 585px) + min(100%, 1170px) * .3333 - 112px);
  position: relative; color: var(--fg);
  background:
    var(--grit),
    linear-gradient(90deg, transparent var(--cut), var(--black) var(--cut)),
    linear-gradient(rgba(212,212,212,.78), rgba(212,212,212,.78)), var(--tex);
  background-size: auto, auto, auto, 800px; background-color: var(--concrete);
}
.page .hw-intro::after {
  content: ""; position: absolute; top: 50%; left: var(--cut); width: 211px; height: 172px; margin: -86px 0 0 -105.5px;
  background: url("../images/hw-sigil-split.png") center / contain no-repeat; filter: drop-shadow(0 6px 14px rgba(0,0,0,.3)); pointer-events: none;
}
.hw-intro .shell, .hw-intro .range, .hw-intro [class*="cell-"] { position: relative; z-index: 1; }
.page .hw-intro, .page .hw-intro h4, .page .hw-intro h5, .page .hw-intro p, .page .hw-intro .text-secondary { color: var(--bone); }
.page .hw-intro { --fg:#ececec; --fg2:#cfcfcf; --mute:#9b9b9b; --line:rgba(236,236,236,.28); }
@media (max-width: 767px) {
  .page .hw-intro { background: var(--grit), var(--black); }
  .page .hw-intro { padding-top: 118px; }
  .page .hw-intro::after { top: 24px; left: 50%; width: 92px; height: 76px; margin: 0 0 0 -46px; }
}

/* ---------- lists, buttons, boxes ---------- */
.page .bordered { border: 1px solid var(--line); }
.page .list-marked li { padding-left: 22px; }
.page .list-marked li::before {
  content: ""; left: 1px; top: .72em; width: 8px; height: 8px; font-size: 0; background: currentColor;
  clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); transition: transform .2s;
}
.page .list-marked li:hover::before { opacity: 1; transform: rotate(90deg) scale(1.2); }
.page .list-marked a { text-decoration: none; }
.page .list-marked a:hover { text-decoration: underline; }

.page .button, .page .button-md-2 {
  font-family: var(--display); font-weight: 600; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; border-width: 1px; border-color: var(--fg);
  background: transparent; color: var(--fg); text-decoration: none; border-radius: 0;
}
.page .button:hover, .page .button:focus, .page .button:active { background: var(--fg); color: var(--bgc); border-color: var(--fg); text-decoration: none; }
.page .button .icon { color: inherit; }
.page .lt .button, .page .dk .button { color: var(--fg); }
.page .lt .button:hover, .page .dk .button:hover { color: var(--bgc); }

.page .counter-number, .page .service .number { font-family: var(--display); color: var(--mute); letter-spacing: .1em; }
.page .service .heading, .page .service-1 .heading { color: var(--fg); }

/* forms */
.page .form-input { font-family: var(--body); font-size: 19px; color: var(--fg); background: transparent; border: 1px solid var(--line); }
.page .form-input:focus { border-color: var(--fg); background: rgba(10,10,10,.05); }
.page .form-label, .page .form-label.auto-fill { font-family: var(--mono); font-size: 13px; letter-spacing: .04em; color: var(--mute); }
.page .form-validation, .page .form-validation-left .form-validation { color: var(--fg); font-family: var(--mono); }
.page .has-error .form-input, .page .form-input.form-control-has-error { border-color: var(--fg); border-style: dashed; }
.page .snackbars, .page .snackbars p, .page .snackbars .icon { font-family: var(--mono); }

/* portfolio images: framed like plates, kept in full color */
.page .image-grid img, .page .unit-left img, .page .person img { border: 1px solid #000; box-shadow: 0 8px 22px rgba(0,0,0,.28); transition: transform .2s, box-shadow .2s; }
.page .image-grid a:hover img, .page .unit-left a:hover img { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(0,0,0,.4); }
.page iframe { border: 1px solid #000; background: #000; }

/* map: strictly gray */
html body .rd-google-map { filter: grayscale(1) contrast(1.05); border-top: 1px solid #000; border-bottom: 1px solid #000; }

/* ---------- footer ---------- */
html body .page-footer { background: var(--grit), var(--black); color: var(--bone); border-top: 1px solid rgba(236,236,236,.28); }
html body .page-footer.bordered { border-top: 1px solid rgba(236,236,236,.28); }
html body .page-footer p, html body .page-footer .copy, html body .page-footer a { color: var(--bone); font-family: var(--mono); font-size: 13px; letter-spacing: .02em; }
html body .page-footer .brand a { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
html body .page-footer .brand img { filter: none; }

/* lightbox + photoswipe: neutral */
.lightboxOverlay { background: #000 !important; }
.lb-data .lb-caption, .lb-data .lb-number { font-family: var(--mono); }

::selection { background: #0a0a0a; color: #ececec; }

/* ---------- responsive ---------- */
@media (max-width: 991px) {
  :root { --sw: 220px; }
  .hw-flank { display: none; }
  .hw-sigil { margin-block: 10px; }
}
@media (max-width: 900px) {
  .hw-tenets { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hw-tenet:nth-child(2) { border-right: 0; }
  .hw-tenet:nth-child(n+3) { border-top: 1px solid var(--line); }
  .hw-tenet:nth-child(3) { border-right: 1px solid var(--line); }
  .page .hw-hero .hw-tenets > a:not(:hover):not(:focus-visible) { background-color: var(--bgc); }
  .hw-name { font-size: clamp(22px, 5.2vw, 56px); }
  .hw-name .n1 { white-space: nowrap; }
}
@media (max-width: 767px) {
  body { font-size: 18px; }
  :root { --split: 50%; }
  .page .hw-hero { padding-top: 0; }
  .page .decorative-line-2 { width: 80px; }
}
@media (max-width: 520px) {
  :root { --sw: 170px; }
  .hw-name { font-size: clamp(14px, 4.9vw, 22px); line-height: 1.08; }
  .hw-name .n1 { white-space: nowrap; }
  .hw-name span { padding-inline: 12px; }
  .hw-tenet .t-note { font-size: 14px; }
  .hw-mark { font-size: 12px; letter-spacing: .16em; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }

/* ---------- nav layout (static and fullwidth modes) ---------- */
.page .rd-navbar-static.rd-navbar-transparent .rd-navbar-panel,
.page .rd-navbar-fullwidth.rd-navbar-transparent .rd-navbar-panel { display: block; }
.page .rd-navbar-static .rd-navbar-panel { padding: 14px 0; }
.page .rd-navbar-static .rd-navbar-panel-right { display: none; }
.page .rd-navbar-static .rd-navbar-inner { flex-wrap: nowrap; }
.page .rd-navbar-static .rd-navbar-nav-wrap { flex: 1 1 auto; }
.page .rd-navbar-static .rd-navbar-nav, .page .rd-navbar-fullwidth .rd-navbar-nav { display: flex; flex-wrap: wrap; justify-content: flex-end; }
.page .rd-navbar-static .rd-navbar-nav::before, .page .rd-navbar-static .rd-navbar-nav::after { display: none; }
.page .rd-navbar-static .rd-navbar-nav > li, .page .rd-navbar-fullwidth .rd-navbar-nav > li { float: none; margin: 0 0 0 2px; }
.page .rd-navbar-static .rd-navbar-nav > li > a, .page .rd-navbar-fullwidth .rd-navbar-nav > li > a { margin: 0; padding: 30px 12px; border: 0; }
.page .rd-navbar-static .rd-navbar-nav > li:hover > a, .page .rd-navbar-static .rd-navbar-nav > li.active > a,
.page .rd-navbar-static .rd-navbar-nav > li.focus > a, .page .rd-navbar-static .rd-navbar-nav > li.opened > a { border: 0; }
.page .rd-navbar-static .rd-navbar-nav > li + li::before { display: none; }
.page .rd-navbar-static .rd-navbar-nav > li > a::after, .page .rd-navbar-fullwidth .rd-navbar-nav > li > a::after {
  content: ""; position: absolute; left: 12px; right: 12px; bottom: 20px; height: 1px; background: var(--bone); transform: scaleX(0); transform-origin: left; transition: transform .25s;
}
.page .rd-navbar-static .rd-navbar-nav > li:hover > a::after, .page .rd-navbar-static .rd-navbar-nav > li.active > a::after,
.page .rd-navbar-fullwidth .rd-navbar-nav > li:hover > a::after, .page .rd-navbar-fullwidth .rd-navbar-nav > li.active > a::after { transform: scaleX(1); }
.page .rd-navbar-nav > li:hover > a, .page .rd-navbar-nav > li.focus > a, .page .rd-navbar-nav > li.opened > a { text-decoration: none; }
.page .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav > li, .page .rd-navbar-static.rd-navbar--is-clone .rd-navbar-nav > li { margin: 0 0 0 2px; }
.page .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav > li > a { padding: 22px 12px; }
.page .rd-navbar-static.rd-navbar--is-stuck .rd-navbar-nav > li > a::after { bottom: 12px; }
.page .rd-navbar-static .rd-navbar-brand img { max-height: 56px; width: auto; }
.page .rd-navbar-fullwidth .rd-navbar-brand .brand-default { display: none; }
.page .rd-navbar-fullwidth .rd-navbar-brand .brand-mini { display: inline-block; }
.page .rd-navbar-fixed .rd-navbar-brand .brand-default { display: none; }
.page .rd-navbar-fixed .rd-navbar-brand .brand-mini { display: inline-block; max-height: 40px; width: auto; }
.page .rd-navbar-fixed .rd-navbar-nav li a { font-family: var(--display); color: var(--bone); border-color: rgba(236,236,236,.2); }
.page .rd-navbar-fixed .rd-navbar-nav li.active > a, .page .rd-navbar-fixed .rd-navbar-nav li > a:hover { color: #fff; background: rgba(236,236,236,.1); }

/* hero text sits on the two fields; only .bg-l/.bg-r paint them */
.page .hw-hero .hw-name span, .page .hw-hero .hw-flank, .page .hw-hero .hw-tenets > a { background-color: transparent; background-image: none; }
.page .hw-hero .hw-tenets > a:hover, .page .hw-hero .hw-tenets > a:focus-visible { background-color: var(--fg); }

/* no leftover template red, green or blue: everything is black, white or gray */
.page .text-primary, .page .text-secondary, .page .match, .page .box-skin-1 .heading, .page .service .number { color: var(--mute); }
html body .ui-to-top { background: var(--black); color: var(--bone); border: 1px solid rgba(236,236,236,.5); border-radius: 0; box-shadow: 0 6px 18px rgba(0,0,0,.4); }
html body .ui-to-top:hover { background: var(--bone); color: var(--black); }
.page .form-output.error, .page .form-output.success, .page .form-validation { color: var(--fg); font-family: var(--mono); font-size: 12px; }
.page .form-output.error::before { content: "× "; }
.page .form-output.success::before { content: "✓ "; }
.page .accordion-custom .accordion-custom-title a, .page .owl-prev:hover, .page .owl-next:hover,
.page .search-toggle:hover .toggle-icon, .page .info-toggle:hover .toggle-icon { color: var(--bone); }
.page .swiper-scrollbar-drag { background: var(--bone); }

/* services band: the hero's field flipped (black left, concrete right), mirrored sigil on the line */
.page .dk.hw-flip {
  position: relative; overflow: hidden; isolation: isolate;
  background:
    var(--grit),
    linear-gradient(90deg, var(--black) var(--split), transparent var(--split)),
    linear-gradient(rgba(212,212,212,.78), rgba(212,212,212,.78)), var(--tex);
  background-size: auto, auto, auto, 800px; background-color: var(--concrete);
}
.hw-flip::after {
  content: ""; position: absolute; z-index: -1; top: 50%; left: var(--split); width: 398px; height: 325px; margin: -162px 0 0 -199px;
  background: url("../images/hw-sigil-split.png") center / contain no-repeat; transform: scaleX(-1); filter: drop-shadow(0 6px 14px rgba(0,0,0,.3)); pointer-events: none;
}
@media (max-width: 767px) {
  .page .dk.hw-flip { background: var(--grit), var(--black); }
  .hw-flip::after { display: none; }
}

/* map: the live site's Google Maps key currently fails (BillingNotEnabledMapError), so show a quiet fallback behind it; a working map simply covers it */
html body .rd-google-map { position: relative; isolation: isolate; min-height: 240px; background: linear-gradient(rgba(150,150,150,.6), rgba(150,150,150,.6)), var(--tex); background-size: auto, 800px; }
html body .rd-google-map::before {
  content: "Overland Park, KS 66204"; position: absolute; z-index: -1; inset: 0; display: flex; align-items: center; justify-content: center;
  font: 600 14px/1 var(--display); letter-spacing: .28em; text-transform: uppercase; color: #0a0a0a;
}
html body .rd-google-map > .gm-style, html body .rd-google-map > div { background-color: transparent !important; }
html body .rd-google-map .gm-style > div:first-child { background-color: transparent !important; }
.page .dk .image-grid img, .page .dk .unit-left img, .page .dk .person img, .page .dk iframe { border-color: rgba(236,236,236,.35); box-shadow: none; }
.page .event .date { border: 1px solid var(--line); background: var(--chip); padding: 14px; }
.page .event .date iframe { display: block; max-width: 100%; }

/* contact form: a black plate on the concrete field */
.page .rd-mailform.dk { padding: clamp(18px, 3vw, 34px); border: 1px solid #000; box-shadow: 0 18px 50px rgba(0,0,0,.4); }
.page .dk .form-input { border-color: rgba(236,236,236,.35); color: var(--fg); }
.page .dk .form-input:focus { border-color: var(--fg); background: rgba(236,236,236,.06); }
.page .dk .form-label { color: var(--mute); }
.page .rd-mailform .button { background: transparent; }

/* tablet nav (template "fullwidth" mode): logo row, then the links wrap beneath */
.page .rd-navbar-fullwidth .rd-navbar-panel-right { display: none; }
.page .rd-navbar-fullwidth .rd-navbar-inner { flex-wrap: wrap; }
.page .rd-navbar-fullwidth .rd-navbar-inner .rd-navbar-nav-wrap { flex: 1 1 100%; max-width: 100%; }
.page .rd-navbar-fullwidth .rd-navbar-nav > li { margin: 0; }
.page .rd-navbar-fullwidth .rd-navbar-nav { justify-content: flex-start; padding-bottom: 6px; }
.page .rd-navbar-fullwidth .rd-navbar-nav > li > a { padding: 12px 12px; }
.page .rd-navbar-fullwidth .rd-navbar-nav > li > a::after { left: 12px; right: 12px; bottom: 6px; }
@media (min-width: 768px) and (max-width: 991px) { .page .hw-hero { padding-top: 124px; } }

/* dropdowns (the Resume links): compact, and right-aligned under the last menu item so they never poke past the viewport edge */
.page .rd-navbar-static .rd-navbar-nav > li .rd-navbar-dropdown, .page .rd-navbar-fullwidth .rd-navbar-nav > li .rd-navbar-dropdown { width: 200px; padding: 8px 6px; margin-top: 0; }
.page .rd-navbar-static .rd-navbar-nav > li:last-child > .rd-navbar-dropdown, .page .rd-navbar-fullwidth .rd-navbar-nav > li:last-child > .rd-navbar-dropdown { left: auto; right: 0; }
.page .rd-navbar-nav > li .rd-navbar-dropdown li a { padding: 8px 12px; }

/* ==========================================================================
   Current work (2026) - captioned gallery tiles (added 2026-11-01)
   Used only by the "Current work (2026)" section on the Graphic design page
   (section#current-work-2026). Tiles are screenshots with a short caption.
   ========================================================================== */
.page .hw-cw-intro { margin: 18px 0 22px; max-width: 62ch; }
.page .hw-cw { display: flex; flex-wrap: wrap; gap: 28px 22px; align-items: flex-start; }
.page .hw-cw .hw-piece { flex: 0 1 calc(33.333% - 15px); min-width: 220px; max-width: 100%; margin: 0; }
.page .hw-cw .hw-piece a { display: block; }
.page .hw-cw .hw-piece img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.page .hw-cap { margin: 12px 0 0; font: 400 15px/1.45 var(--body); }
.page .hw-cap b { display: block; font: 700 13px/1.3 var(--display); letter-spacing: .14em; text-transform: uppercase; margin-bottom: 4px; }
.page .hw-cap span { display: block; }
.page .hw-cap small { display: block; margin-top: 6px; font: 400 11px/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase; opacity: .7; }
@media (max-width: 767px) {
  .page .hw-cw { gap: 26px 0; }
  .page .hw-cw .hw-piece { flex: 1 1 100%; min-width: 0; }
}
@media (min-width: 768px) and (max-width: 991px) {
  .page .hw-cw .hw-piece { flex: 0 1 calc(50% - 11px); }
}
#current-work-2026 { scroll-margin-top: 64px; }

/* ==========================================================================
   Current work (2026) - additions (added 2026-11-01, round 2)
   - .hw-sub: sub-heading for the "KU optimization analyses" tiles
   - .hw-cap a.hw-pdf: "Open PDF" link inside a tile caption
   Appended block; nothing above this comment was changed.
   ========================================================================== */
.page .hw-sub { margin: 44px 0 0; font: 700 18px/1.3 var(--display); letter-spacing: .14em; text-transform: uppercase; }
.page .hw-ku { margin-top: 4px; }
.page .hw-cap small a.hw-pdf { text-decoration: underline; text-underline-offset: 3px; text-transform: uppercase; opacity: 1; font-weight: 700; }
.page .hw-ku .hw-piece img { border: 1px solid rgba(0,0,0,.25); }
/* keep a short last row left-aligned (the theme's .unit sets space-between, which pushed a 2-tile last row to the edges) */
.page .hw-cw { justify-content: flex-start; }
