/* Shared DEE 2027 visual language. The original logo and route structure stay intact. */
.dee-site { --paper:#f5f3ee; --ink:#171717; --muted:#55544f; --line:#d8d6cf; --red:#da2723; --heading:'BenchNine','Arial Narrow',sans-serif; margin:0; padding:0; background:var(--paper); color:var(--ink); font:400 16px/1.6 Arial,Helvetica,sans-serif; -webkit-font-smoothing:antialiased; }
.dee-site *, .dee-site *::before, .dee-site *::after { box-sizing:border-box; }
.dee-site a { color:inherit; text-decoration:none; }
.dee-site a:hover { text-decoration:none; }
.dee-site a:focus-visible, .dee-site button:focus-visible, .dee-site input:focus-visible, .dee-site textarea:focus-visible, .dee-site select:focus-visible, .dee-site summary:focus-visible, .dee-site [tabindex]:focus-visible { outline:3px solid var(--red); outline-offset:4px; }
.dee-site img { max-width:100%; height:auto; }
.dee-site p { margin:0 0 16px; }
.dee-site h1,.dee-site h2,.dee-site h3,.dee-site h4 { color:var(--ink); font-family:var(--heading); font-weight:400; text-transform:uppercase; line-height:1.05; }
.dee-site h2 { font-size:44px; margin:0 0 20px; }
.dee-site h3 { font-size:34px; margin:0 0 8px; }
.dee-site .home-wrap { width:min(1440px,calc(100% - 112px)); margin-inline:auto; }
.dee-site .skip-link { position:fixed; top:-100px; left:20px; z-index:2000; padding:12px 20px; background:var(--ink); color:white; }
.dee-site .skip-link:focus { top:12px; }
.dee-site .home-header { border-bottom:1px solid var(--line); }
.dee-site .header-inner { display:flex; align-items:center; justify-content:space-between; gap:28px; min-height:112px; }
.dee-site .home-brand { flex:0 0 72px; }
.dee-site .home-brand img { display:block; width:72px; height:72px; object-fit:contain; }
.dee-site .desktop-navigation { display:flex; align-items:center; flex-wrap:wrap; justify-content:flex-end; gap:clamp(12px,2.3vw,36px); }
.dee-site .desktop-navigation a { display:flex; align-items:center; min-height:48px; font-size:14px; font-weight:600; border-bottom:2px solid transparent; }
.dee-site .desktop-navigation a:hover,.dee-site .desktop-navigation a[aria-current] { border-color:var(--red); }
.dee-site .mobile-navigation { display:none; }
.dee-site .home-footer { border-top:1px solid var(--line); }
.dee-site .footer-inner { display:flex; align-items:center; flex-wrap:wrap; justify-content:space-between; gap:12px 28px; padding-block:20px; color:var(--muted); font-size:12px; }
.dee-site .footer-inner p { margin:0; }
.dee-site .footer-inner a { display:inline-flex; gap:24px; align-items:center; min-height:48px; }
.dee-site .footer-inner a:hover,.dee-site .footer-social a:hover { text-decoration:underline; }
.dee-site .footer-social { font-size:13px; padding-bottom:24px; color:var(--muted); }
.dee-site .footer-social p { margin:0; }
.dee-site .footer-social a { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; vertical-align:middle; }
.dee-site .footer-social img { width:21px; height:21px; }
.dee-site .site-main { padding-block:56px 88px; min-height:65vh; }
.dee-site .page-heading { display:flex; justify-content:space-between; align-items:flex-end; flex-wrap:wrap; gap:28px; margin-bottom:48px; }
.dee-site .eyebrow { font-size:11px; line-height:1.6; font-weight:700; letter-spacing:.12em; text-transform:uppercase; margin:0 0 16px; }
.dee-site .page-title { font-size:clamp(64px,7vw,104px); line-height:.95; letter-spacing:-.02em; margin:0; overflow-wrap:anywhere; }
.dee-site .page-subtitle { font:400 36px/1.1 var(--heading); text-transform:uppercase; margin:0 0 5px; color:var(--muted); }
.dee-site #rightcol { padding:0; min-width:0; }
.dee-site .btn { border-radius:0; box-shadow:none; text-shadow:none; min-height:48px; padding:12px 20px; line-height:1.5; font:600 14px/1.5 Arial,Helvetica,sans-serif; white-space:normal; }
.dee-site .btn-primary,.dee-site .btn-danger { color:#fff; background:var(--red); border-color:var(--red); }
.dee-site .btn-primary:hover,.dee-site .btn-danger:hover { background:#b71c19; border-color:#b71c19; }
.dee-site .btn-default,.dee-site .btn-info { background:#fff; color:var(--ink); border:1px solid var(--line); }
.dee-site .btn-default:hover,.dee-site .btn-info:hover { background:#edeae3; color:var(--ink); border-color:#aaa8a0; }
.dee-site .btn[disabled] { opacity:.4; }
.dee-site .alert { border-radius:0; padding:20px; line-height:1.6; }
.dee-site .alert-info { color:#333; background:#eae7df; border:1px solid var(--line); }
.dee-site .alert-success { color:#245137; background:#eaf3ec; border-color:#b9d0bd; }
.dee-site .alert-danger { color:#842420; background:#fff0ed; border-color:#e4b7af; }
.dee-site .alert ul { padding-left:20px; }
.dee-site label { font-size:14px; font-weight:600; }
.dee-site input:not([type=hidden]):not([type=submit]),.dee-site textarea { border:1px solid #aaa8a0; border-radius:0; background:#fff; color:var(--ink); min-height:50px; padding:12px 14px; font:400 16px/1.5 Arial,Helvetica,sans-serif; max-width:100%; }
.dee-site input::placeholder,.dee-site textarea::placeholder { color:#66645f; }
.dee-site textarea { width:100%; min-height:180px; resize:vertical; }
.dee-site [aria-invalid=true] { border-color:#b71c19!important; }
.dee-site .bootstrap-select { max-width:100%; }
.dee-site .bootstrap-select .dropdown-menu { border-radius:0; padding:6px; }
.dee-site .bootstrap-select .dropdown-menu li a { padding:12px; white-space:normal; color:var(--ink); }
.dee-site .bootstrap-select .dropdown-menu li a:hover,.dee-site .bootstrap-select .dropdown-menu li.selected a { background:#eeeae3; }
/* Public content */
.dee-site .reference-intro { max-width:960px; font-size:18px; line-height:1.8; margin-bottom:48px; }
.dee-site .references-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 40px; }
.dee-site .reference-item { padding:24px 0; border-top:1px solid var(--line); min-width:0; overflow-wrap:anywhere; }
.dee-site .reference-item h3 { font-size:32px; }
.dee-site .reference-item p { margin:0; font-size:14px; color:var(--muted); }
.dee-site .gallery-categories { display:flex; flex-wrap:wrap; gap:8px; padding:12px; background:var(--ink); margin-bottom:40px; }
.dee-site .gallery-categories a { color:#eee; padding:12px 20px; min-height:48px; font-size:14px; }
.dee-site .gallery-categories a[aria-current],.dee-site .gallery-categories a:hover { color:#fff; background:var(--red); }
.dee-site .gallery-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:40px 28px; }
.dee-site .imageGalleryItem { min-width:0; }
.dee-site .gallery-cover { position:relative; background:#e6e3db; margin-bottom:18px; }
.dee-site .gallery-cover > a { display:block; }
.dee-site .image-gallery-tumbnail { display:block; width:100%; aspect-ratio:16/10; object-fit:cover; margin:0; border-radius:0; }
.dee-site .imageGalleryItem h3 { font-size:32px; overflow-wrap:anywhere; }
.dee-site .cityAndLocation { color:var(--muted); font-size:14px; margin:0; }
.dee-site .viewIcon { position:absolute; right:12px; bottom:12px; }
.dee-site .viewIcon a { display:flex; width:48px; height:48px; align-items:center; justify-content:center; background:#171717df; }
.dee-site .viewIcon img { width:21px; height:21px; }
.dee-site .modal-dialog { width:min(960px,calc(100% - 32px)); margin:32px auto; }
.dee-site .modal-content { border-radius:0; background:var(--paper); box-shadow:0 20px 60px #0005; }
.dee-site .modal-header { display:flex; flex-direction:row-reverse; align-items:flex-start; justify-content:space-between; gap:20px; border:0; padding:24px; }
.dee-site .modal-header::before,.dee-site .modal-header::after { display:none; }
.dee-site .modal-title { font-size:36px; line-height:1.1; overflow-wrap:anywhere; }
.dee-site .modal-header button { flex-shrink:0; }
.dee-site .modal-body { padding:0 24px 24px; }
.dee-site .slider { text-align:center; min-height:80px; }
.dee-site .slider img { max-width:100%; max-height:65vh; margin:0 auto; object-fit:contain; }
.dee-site .gallery-position { text-align:center; margin:16px 0; min-height:24px; color:var(--muted); font-size:14px; }
.dee-site .modal-footer { display:none; }
.dee-site .transport-presentation > h2 { max-width:780px; font-size:clamp(38px,4.5vw,64px); margin-bottom:40px; }
.dee-site .transport-images { display:grid; gap:24px; }
.dee-site .transport-three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.dee-site .transport-two { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:40px; }
.dee-site .transport-images img { display:block; width:100%; aspect-ratio:8/5; height:auto; object-fit:cover; }
.dee-site .transport-copy { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px; margin-top:40px; color:var(--muted); line-height:1.85; }
.dee-site .transport-contact { display:inline-flex; gap:28px; align-items:center; }
.dee-site .contact-layout { display:grid; grid-template-columns:1fr 1.35fr; gap:80px; }
.dee-site .contact-details { border-top:2px solid var(--red); padding-top:28px; }
.dee-site .contact-details h2,.dee-site .contact-form h2 { font-size:64px; margin-bottom:32px; }
.dee-site .contact-details dt { margin-top:24px; font-size:12px; text-transform:uppercase; letter-spacing:.08em; color:var(--muted); }
.dee-site .contact-details dd { font-size:17px; margin-top:4px; overflow-wrap:anywhere; }
.dee-site .contact-details a:hover { text-decoration:underline; }
.dee-site .contact-form { background:#fff; border:1px solid var(--line); padding:32px; min-width:0; }
.dee-site .contact-field { margin-top:20px; }
.dee-site .field-label { margin-bottom:8px; }
.dee-site .field-control input { width:100%; }
.dee-site .contact-form .bootstrap-select { width:100%!important; }
.dee-site .contact-visit { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:56px; }
.dee-site .contact-visit > img { width:100%; height:360px; object-fit:cover; }
.dee-site .contact-visit iframe { width:100%; height:360px; }
.dee-site .error-page p[role=status] { max-width:700px; margin:32px 0; font-size:18px; }
@media (max-width:1100px) {
    .dee-site .home-wrap { width:calc(100% - 64px); }
    .dee-site .references-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .dee-site .gallery-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .dee-site .contact-layout { gap:40px; }
}
@media (max-width:900px) {
    .dee-site .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .dee-site .header-inner { min-height:96px; }
    .dee-site .desktop-navigation { display:none; }
    .dee-site .mobile-navigation { display:block; }
    .dee-site .mobile-navigation summary { cursor:pointer; display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:48px; padding:8px 12px; border:1px solid var(--line); list-style:none; font-size:14px; }
    .dee-site .mobile-navigation summary::-webkit-details-marker { display:none; }
    .dee-site .mobile-navigation nav { position:absolute; z-index:100; top:96px; left:0; right:0; padding:12px 32px 24px; background:var(--paper); border-bottom:1px solid var(--line); box-shadow:0 16px 24px #0001; }
    .dee-site .mobile-navigation nav a { display:flex; align-items:center; min-height:52px; border-bottom:1px solid var(--line); font-size:16px; }
    .dee-site .mobile-navigation nav a[aria-current] { color:#b71c19; }
    .dee-site .site-main { padding-block:40px 64px; }
    .dee-site .page-heading { margin-bottom:36px; }
    .dee-site .contact-layout { grid-template-columns:1fr 1.3fr; gap:28px; }
    .dee-site .contact-form { padding:24px; }
    .dee-site .contact-details h2,.dee-site .contact-form h2 { font-size:48px; }
    .dee-site .transport-copy { gap:28px; }
}
@media (max-width:600px) {
    .dee-site .home-wrap { width:calc(100% - 40px); }
    .dee-site .header-inner { min-height:88px; }
    .dee-site .home-brand,.dee-site .home-brand img { width:60px; height:60px; flex-basis:60px; }
    .dee-site .mobile-navigation nav { top:88px; padding-inline:20px; }
    .dee-site .site-main { padding-block:32px 48px; }
    .dee-site .page-title { font-size:64px; }
    .dee-site .page-subtitle { font-size:30px; }
    .dee-site .references-grid,.dee-site .gallery-grid { grid-template-columns:1fr; }
    .dee-site .gallery-categories { gap:4px; padding:8px; margin-bottom:28px; }
    .dee-site .gallery-categories a { padding:12px; }
    .dee-site .gallery-grid { gap:32px; }
    .dee-site .reference-intro { font-size:16px; margin-bottom:32px; }
    .dee-site .reference-item { padding-block:20px; }
    .dee-site .transport-three,.dee-site .transport-two,.dee-site .transport-copy { grid-template-columns:1fr; gap:24px; }
    .dee-site .contact-layout,.dee-site .contact-visit { grid-template-columns:1fr; gap:32px; }
    .dee-site .contact-form { padding:24px 20px; }
    .dee-site .contact-visit { margin-top:32px; }
    .dee-site .contact-visit > img { height:auto; aspect-ratio:8/5; }
    .dee-site .modal-dialog { width:calc(100% - 20px); margin:16px auto; }
    .dee-site .modal-header { padding:20px; }
    .dee-site .modal-body { padding:0 20px 20px; }
    .dee-site .modal-title { font-size:30px; }
    .dee-site .footer-inner { gap:0 20px; }
    .dee-site .footer-inner p:last-child { flex-basis:100%; padding-bottom:12px; }
}
