/* JDT Builds — theme-level layout: header, hero carousel, sections, footer, drawer, dialog.
   Every value is a design-system token. Component classes (.jdt-btn, .jdt-card, .jdt-service …)
   come from components.css. */

.jdt-i{display:inline-flex;align-items:center;justify-content:center;color:inherit}
.jdt-i svg{width:100%;height:100%}
.jdt-wrap{max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter)}
.jdt-section{padding:var(--space-16) 0}
.jdt-section--tight{padding:var(--space-14) 0}
.jdt-section--card{background:var(--surface-card)}
.jdt-eyebrow{font:var(--type-eyebrow);letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--text-muted)}
.jdt-lead{font:var(--type-body-lg);color:var(--text-body);max-width:var(--container-narrow)}
.jdt-grid{display:grid;gap:var(--space-6)}
.jdt-grid--2{grid-template-columns:1fr 1fr}
.jdt-grid--3{grid-template-columns:repeat(3,1fr)}
.jdt-grid--split{grid-template-columns:1.1fr 1fr;gap:var(--space-12);align-items:center}

/* ---------- header ---------- */
.jdt-header{position:sticky;top:0;z-index:40;background:var(--overlay-glass);backdrop-filter:var(--blur-glass);border-bottom:var(--border-1) solid var(--border-subtle)}
.jdt-header__bar{display:flex;align-items:center;gap:var(--space-8);height:84px}
.jdt-header__logo{border-bottom:0;display:flex;align-items:center}
.jdt-header__logo img{height:46px;width:auto;display:block}
.jdt-nav{display:flex;gap:var(--space-1);margin-left:auto}
.jdt-nav__item{position:relative}
.jdt-nav__link{appearance:none;border:0;background:none;cursor:pointer;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font:var(--type-label);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-body);border-bottom:var(--rule-heavy) solid transparent;text-decoration:none}
.jdt-nav__link:hover,.jdt-nav__link[aria-current=page]{color:var(--text-strong)}
.jdt-nav__link[aria-current=page]{border-bottom-color:var(--surface-accent)}
.jdt-menu{position:absolute;top:100%;left:0;display:none;gap:var(--space-6);min-width:440px;background:var(--surface-card);border:var(--border-1) solid var(--border-subtle);border-top:var(--rule-heavy) solid var(--grey-900);border-radius:0 0 var(--radius-md) var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-4)}
.jdt-nav__item:hover .jdt-menu,.jdt-nav__item:focus-within .jdt-menu{display:flex}
.jdt-menu__col{display:flex;flex-direction:column;flex:1;min-width:0}
.jdt-menu__head{padding:var(--space-2) var(--space-3);color:var(--text-strong)}
.jdt-menu a{border-bottom:0;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);font:var(--type-body-sm);color:var(--text-body);border-radius:var(--radius-sm)}
.jdt-menu a:hover{background:var(--teal-050);color:var(--teal-800)}
.jdt-menu a .jdt-i{color:var(--teal-700)}
.jdt-menu--single{min-width:340px}
.jdt-header__actions{display:flex;align-items:center;gap:var(--space-4)}
.jdt-burger{display:none}

/* ---------- hero carousel ---------- */
.jdt-hero{position:relative;min-height:620px;display:flex;align-items:flex-end;overflow:hidden;background:var(--grey-900)}
.jdt-hero__slide{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity var(--dur-page) var(--ease-out)}
.jdt-hero__slide[data-active=true]{opacity:1}
.jdt-hero__slide--dark{background:var(--grey-900)}
.jdt-hero__slide--teal{background:var(--teal-900)}
.jdt-hero__slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%}
.jdt-hero__wash{position:absolute;inset:0;background:rgba(18,20,22,.52)}
.jdt-hero__plate{position:absolute;top:0;bottom:0;left:42%;right:2%;opacity:.92;padding:var(--space-8) 0}
.jdt-hero__plate svg{width:100%;height:100%;display:block}
.jdt-hero__protect{position:absolute;inset:0;background:var(--protect-photo);pointer-events:none}
.jdt-hero__inner{position:relative;width:100%;padding-top:var(--space-16);padding-bottom:var(--space-12);pointer-events:none}
.jdt-hero__copy{max-width:46ch;display:flex;flex-direction:column;gap:var(--space-5)}
.jdt-hero__meta{display:flex;gap:var(--space-3);align-items:center}
.jdt-hero__place{font:var(--type-data);font-size:12px;color:var(--grey-300);text-transform:uppercase;letter-spacing:var(--ls-label)}
.jdt-hero h1,.jdt-hero__title{font:var(--fw-bold) var(--fs-display-2)/var(--lh-tight) var(--font-display);text-transform:uppercase;letter-spacing:var(--ls-display);color:var(--white);margin:0}
.jdt-hero__lead{font:var(--type-body-lg);color:var(--grey-300)}
.jdt-hero__cta{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-2);pointer-events:auto}
.jdt-hero__rail{display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);margin-top:var(--space-10);border-top:var(--border-1) solid var(--border-inverse);padding-top:var(--space-5);pointer-events:auto}
.jdt-hero__tabs{display:flex;gap:var(--space-6);flex:1}
.jdt-hero__tab{appearance:none;background:none;border:0;cursor:pointer;text-align:left;display:flex;flex-direction:column;gap:var(--space-2);width:180px}
.jdt-hero__tab span:first-child{height:var(--rule-heavy);background:rgba(255,255,255,.25);width:100%;transition:var(--transition-control)}
.jdt-hero__tab[aria-selected=true] span:first-child{background:var(--white)}
.jdt-hero__tab em{font:var(--type-eyebrow);letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--grey-400);font-style:normal}
.jdt-hero__tab[aria-selected=true] em{color:var(--white)}
.jdt-hero__arrows{display:flex;gap:var(--space-2)}

/* ---------- service list ---------- */
.jdt-sublist{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}
.jdt-sublist a{border-bottom:0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);background:var(--surface-card);border:var(--border-1) solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);font:var(--type-body-sm);color:var(--text-body);min-height:48px}
.jdt-sublist a:hover{border-color:var(--border-strong);color:var(--text-strong)}
.jdt-sublist a>span{display:flex;align-items:center;gap:var(--space-3)}
.jdt-sublist .jdt-i{color:var(--teal-700)}

/* ---------- project + review cards ---------- */
.jdt-tile{padding:0;overflow:hidden;display:block}
.jdt-tile__media{aspect-ratio:4 / 3;background:var(--grey-800);display:flex;align-items:flex-end;position:relative;overflow:hidden}
.jdt-tile__media img{width:100%;height:100%;object-fit:cover}
.jdt-tile__media--teal{background:var(--teal-800)}
.jdt-tile__media span{position:relative;font:var(--type-data);font-size:11px;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--grey-400);padding:var(--space-4)}
.jdt-tile__body{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}
.jdt-tile__title{font:var(--type-h3);color:var(--text-strong)}
.jdt-tile__place{font:var(--type-body-sm);color:var(--text-muted)}
.jdt-stars{display:flex;gap:2px;color:var(--teal-600)}
.jdt-review{border-top:var(--rule-heavy) solid var(--grey-900);display:flex;flex-direction:column;gap:var(--space-4)}
.jdt-review__by{font:var(--type-data);font-size:13px;color:var(--text-muted);margin-top:auto}
.jdt-taglist{display:flex;gap:var(--space-2);flex-wrap:wrap}

/* ---------- footer ---------- */
.jdt-footer{background:var(--surface-inverse);color:var(--grey-400);margin-top:var(--space-16)}
.jdt-footer__cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:var(--space-10);padding:var(--space-12) 0}
.jdt-footer img{height:44px;width:auto;align-self:flex-start;display:block}
.jdt-footer__brand{display:flex;flex-direction:column;gap:var(--space-4)}
.jdt-footer__col{display:flex;flex-direction:column;gap:var(--space-3)}
.jdt-footer__col .jdt-eyebrow{color:var(--white)}
.jdt-footer a{border-bottom:0;font:var(--type-body-sm);color:var(--grey-400);display:flex;align-items:center;gap:var(--space-3);min-height:36px}
.jdt-footer a:hover{color:var(--white)}
.jdt-footer__tel{font:var(--type-data)!important;font-size:15px!important;color:var(--white)!important}
.jdt-footer__legal{border-top:var(--border-1) solid var(--border-inverse);padding:var(--space-5) 0;display:flex;justify-content:space-between;font:var(--type-data);font-size:12px}

/* ---------- mobile drawer (hidden above the breakpoint; opened by site.js below it) ---------- */
.jdt-drawer{display:none;border-top:var(--border-1) solid var(--border-subtle);background:var(--surface-card);max-height:calc(100vh - 68px);overflow-y:auto}
.jdt-drawer__inner{padding:var(--space-3) 0 var(--space-6);display:flex;flex-direction:column}
.jdt-drawer__row{border-bottom:var(--border-1) solid var(--border-subtle)}
.jdt-drawer__btn{appearance:none;border:0;background:none;width:100%;min-height:56px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;padding:var(--space-3) 0;font:var(--type-label);font-size:var(--fs-body-sm);text-transform:uppercase;letter-spacing:var(--ls-label);color:var(--text-body);text-decoration:none}
.jdt-drawer__btn:hover{color:var(--text-strong)}
.jdt-drawer__panel{display:none;padding-bottom:var(--space-4);flex-direction:column;gap:var(--space-4)}
.jdt-drawer__row[data-open=true] .jdt-drawer__panel{display:flex}
.jdt-drawer__panel a{border-bottom:0;display:flex;align-items:center;gap:var(--space-3);min-height:48px;font:var(--type-body-sm);color:var(--text-body)}
.jdt-drawer__panel a:hover{color:var(--teal-800)}
.jdt-drawer__panel .jdt-i{color:var(--teal-700)}

/* ---------- call-back dialog ---------- */
.jdt-modal{position:fixed;inset:0;z-index:60;display:none;align-items:center;justify-content:center;padding:var(--space-6);background:var(--overlay-scrim)}
.jdt-modal[data-open=true]{display:flex}
.jdt-modal .jdt-dialog{max-width:520px;width:100%}
.jdt-modal .jdt-dialog__body p{margin-bottom:var(--space-4)}

/* ---------- mobile ---------- */
.jdt-callbar{display:none}
@media (max-width:820px){
  .jdt-header__bar{height:68px;gap:var(--space-4)}
  .jdt-header__logo img{height:36px}
  .jdt-nav,.jdt-header__actions .jdt-btn{display:none}
  .jdt-header__actions{margin-left:auto;gap:var(--space-2)}
  .jdt-burger{display:inline-flex}
  .jdt-drawer[data-open=true]{display:block}
  .jdt-hero{min-height:480px}
  .jdt-hero__inner{padding-top:var(--space-10);padding-bottom:var(--space-8)}
  .jdt-hero h1,.jdt-hero__title{font-size:var(--fs-display-3)}
  .jdt-hero__lead{font:var(--type-body)}
  .jdt-hero__cta{flex-direction:column;align-items:stretch}
  .jdt-hero__plate{left:0;right:0;opacity:.28;padding:var(--space-6)}
  .jdt-hero__rail{margin-top:var(--space-8)}
  .jdt-hero__tabs{gap:var(--space-3)}
  .jdt-hero__tab{width:auto;flex:1;min-height:24px;justify-content:center}
  .jdt-hero__tab em{display:none}
  .jdt-section,.jdt-section--tight{padding:var(--space-10) 0}
  .jdt-grid--2,.jdt-grid--3,.jdt-grid--split,.jdt-sublist,.jdt-footer__cols{grid-template-columns:1fr}
  .jdt-grid--2{gap:var(--space-10)}
  .jdt-footer{padding-bottom:76px}
  .jdt-footer__legal{flex-direction:column;gap:var(--space-2)}
  .jdt-callbar{position:fixed;left:0;right:0;bottom:0;z-index:50;display:flex;gap:var(--space-3);padding:var(--space-3) var(--gutter);background:var(--overlay-glass);backdrop-filter:var(--blur-glass);border-top:var(--border-1) solid var(--border-default)}
  .jdt-callbar .jdt-btn--accent{flex:1}
}
