
/* TRE Consulting: fast, accessible, dependency-free redesign */
:root {
  --navy: #12283a;
  --ink: #172f40;
  --muted: #506475;
  --teal: #0b756d;
  --teal-dark: #075950;
  --sand: #edf2ef;
  --paper: #fbfcfa;
  --line: #d6e0e0;
  --gold: #c7aa68;
  --radius: 18px;
  --shadow: 0 18px 50px rgba(13, 40, 57, .08);
}
*,*::before,*::after { box-sizing:border-box }
html { scroll-behavior:smooth }
body { margin:0; background:var(--paper); color:var(--ink); font-family: system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif; line-height:1.58; -webkit-font-smoothing:antialiased; }
a { color:inherit }
a:focus-visible,button:focus-visible { outline:3px solid #e8a84e; outline-offset:4px; }
button, input { font:inherit }
img,svg { max-width:100%; }
.container { width:min(1120px,calc(100% - 44px)); margin-inline:auto }
.skip-link { position:absolute; top:-60px; left:8px; background:#fff; z-index:30; padding:10px 15px; }
.skip-link:focus { top:8px }
.eyebrow { letter-spacing:.15em; text-transform:uppercase; font-size:.75rem; font-weight:750; color:var(--teal); }
.site-header { position:relative; z-index:5; background:rgba(251,252,250,.98); border-bottom:1px solid var(--line); }
.nav-wrap { min-height:90px; display:flex; align-items:center; justify-content:space-between; gap:22px }
.brand { display:flex; align-items:center; gap:13px; min-width:0; text-decoration:none; }
.brand-mark { background:var(--navy); color:#fff; font-size:1.45rem; font-weight:850; letter-spacing:-.08em; line-height:1; padding:12px 13px 13px 10px; border-radius:10px; }
.brand-caption { display:block; font-weight:780; letter-spacing:.02em; line-height:1.1; font-size:1.02rem; color:var(--navy) }
.brand-small { display:block; color:var(--muted); text-transform:uppercase; letter-spacing:.125em; font-size:.64rem; margin-top:5px; }
.nav { display:flex; gap:5px; align-items:center; flex-wrap:wrap; justify-content:flex-end; }
.nav a { text-decoration:none; padding:10px 12px; font-weight:650; font-size:.9rem; border-radius:8px; }
.nav a:hover, .nav a[aria-current="page"] { background:#e9f0ee; color:var(--teal-dark) }
.nav .nav-call { background:var(--teal); color:#fff; padding-inline:16px; margin-left:10px; }
.nav .nav-call:hover { background:var(--teal-dark); color:#fff; }
h1,h2,h3,p { margin-top:0 }
h1,h2,h3 { color:var(--navy); letter-spacing:-.036em; line-height:1.12 }
h1 { font-size:clamp(2.55rem,5vw,4.6rem); font-weight:780; }
h2 { font-size:clamp(1.85rem,3.1vw,2.75rem); }
h3 { font-size:1.24rem; letter-spacing:-.022em; }
p { color:var(--muted); }
.lead { font-size:clamp(1.04rem,1.5vw,1.2rem); line-height:1.73; max-width:660px; }
.hero { position:relative; overflow:hidden; background:linear-gradient(145deg,#f3f7f3,#fbfcfa 60%); border-bottom:1px solid var(--line); }
.hero-grid { display:grid; grid-template-columns:1.13fr .87fr; align-items:center; min-height:565px; gap:45px; padding-block:78px 85px; }
.hero h1 { max-width:780px; margin:17px 0 23px }
.hero .lead { max-width:570px; margin-bottom:28px }
.actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px }
.btn { display:inline-flex; justify-content:center; align-items:center; gap:9px; border-radius:9px; text-decoration:none; padding:13px 20px; min-height:48px; font-weight:750; font-size:.95rem; border:1px solid transparent; transition: background .2s,transform .2s; }
.btn:hover { transform:translateY(-1px) }
.btn-primary { background:var(--teal); color:#fff }
.btn-primary:hover { background:var(--teal-dark) }
.btn-secondary { border-color:#bdd0ce; background:rgba(255,255,255,.85); color:var(--navy) }
.btn-secondary:hover { background:#e5efec }
.blueprint { width:100%; aspect-ratio: .94; min-height:405px; position:relative; overflow:hidden; border-radius:var(--radius); box-shadow:var(--shadow); background:
 linear-gradient(125deg,rgba(20,55,75,.94),rgba(5,90,86,.88)),
 repeating-linear-gradient(0deg,transparent 0 32px,rgba(255,255,255,.2) 33px 34px),
 repeating-linear-gradient(90deg,transparent 0 32px,rgba(255,255,255,.2) 33px 34px);
 isolation:isolate; }
.blueprint::before { content:""; position:absolute; inset:0; opacity:.16; background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px); background-size:44px 44px; }
.blueprint::after { content:""; position:absolute; width:460px; height:460px; border:1px solid rgba(255,255,255,.24); border-radius:50%; right:-140px; top:-100px; box-shadow:0 0 0 55px rgba(255,255,255,.028),0 0 0 125px rgba(255,255,255,.03); }
.bp-frame { position:absolute; left:11%; right:11%; top:17%; bottom:22%; transform:skewY(-10deg); border:2px solid rgba(255,255,255,.55); border-radius:3px }
.bp-frame::before { content:""; position:absolute; left:10%; top:12%; width:54%; height:57%; border:2px solid rgba(230,213,164,.9); box-shadow:18px 16px 0 -1px rgba(255,255,255,.11); }
.bp-frame::after { content:""; position:absolute; left:70%; top:0; bottom:0; border-left:2px solid rgba(255,255,255,.5); }
.bp-diag { position:absolute; height:2px; width:120%; left:-10%; top:62%; background:rgba(255,255,255,.32); transform:rotate(-24deg); }
.bp-copy { position:absolute; bottom:23px; left:26px; right:26px; color:#fff; z-index:1; background:rgba(12,45,54,.80); border:1px solid rgba(255,255,255,.21); padding:19px 22px; border-radius:12px; }
.bp-copy span { display:block; letter-spacing:.2em; text-transform:uppercase; font-size:.68rem; color:#b7e5d9; font-weight:750; margin-bottom:5px }
.bp-copy strong { font-weight:700; letter-spacing:-.01em; font-size:1.1rem }
.stat-strip { background:#fff; border-bottom:1px solid var(--line) }
.strip-inner { display:flex; flex-wrap:wrap; gap:16px 40px; padding-block:22px; align-items:center; justify-content:space-between }
.strip-inner span { font-size:.83rem; text-transform:uppercase; letter-spacing:.06em; font-weight:700; color:#3e6570 }
.section { padding-block:82px }
.section-soft { background:#eef3f1 }
.section-title { max-width:730px; margin-bottom:30px }
.section-title h2 { margin:9px 0 12px }
.grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px }
.grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px }
.service-card, .info-card { padding:28px; border:1px solid var(--line); background:#fff; border-radius:14px; }
.service-card { box-shadow:0 3px 20px rgba(15,45,60,.035) }
.card-index { display:inline-flex; width:37px; height:37px; align-items:center; justify-content:center; font-size:.78rem; color:var(--teal-dark); background:#e4f2ed; border-radius:9px; margin-bottom:26px; font-weight:850; }
.service-card h3 { margin-bottom:11px }
.service-card p { margin-bottom:17px }
.text-link { font-weight:730; text-decoration-thickness:1px; text-underline-offset:5px; color:var(--teal-dark) }
.sectors { display:flex; flex-wrap:wrap; gap:10px; padding:0; list-style:none; margin:24px 0 0 }
.sectors li { background:#fff; padding:9px 15px; color:var(--navy); font-weight:660; border:1px solid var(--line); border-radius:100px; font-size:.9rem }
.split { display:grid; grid-template-columns:1fr 1fr; gap:65px; align-items:center }
.quote-panel { background:var(--navy); padding:39px; border-radius:16px; color:#fff; }
.quote-panel h2 { color:#fff }
.quote-panel p { color:#d8e5e9 }
.quote-panel .eyebrow { color:#8be1c8 }
.checklist { list-style:none; padding:0; margin:20px 0 0 }
.checklist li { padding:13px 0 13px 28px; position:relative; border-bottom:1px solid #dce6e3; color:var(--ink) }
.checklist li::before { content:"✓"; position:absolute; left:0; color:var(--teal); font-weight:bold }
.cta { background:var(--navy); color:#fff; padding-block:70px; }
.cta .container { display:flex; gap:22px; align-items:center; justify-content:space-between }
.cta h2 { color:#fff; margin:10px 0; }
.cta p { color:#d8e5e9; margin:0 }
.cta .btn-secondary { background:transparent; color:#fff; border-color:#77919e; }
.cta .btn-secondary:hover { background:#253e50; }
.subhero { background:linear-gradient(135deg,#eef4f1,#fff); padding-block:65px 72px; border-bottom:1px solid var(--line) }
.subhero h1 { max-width:900px; font-size:clamp(2.65rem,5vw,4rem); margin:17px 0 }
.subhero .lead { margin-bottom:0 }
.content-layout { display:grid; grid-template-columns: 1.55fr .75fr; gap:70px }
.prose h2 { font-size:clamp(1.6rem,2.4vw,2.1rem); margin-top:32px }
.prose h2:first-child { margin-top:0 }
.prose p { font-size:1.02rem }
.sidebar { background:#edf4f1; border:1px solid #d8e5e0; padding:26px; align-self:start; border-radius:14px }
.sidebar h3 { margin:0 0 12px }
.sidebar p { margin-bottom:15px }
.list-clean { margin:0; padding:0; list-style:none }
.list-clean li { padding:12px 0; border-bottom:1px solid var(--line); color:var(--ink) }
.list-clean li:last-child { border-bottom:0 }
.contact-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:28px; align-items:start }
.contact-primary { border-radius:18px; padding:36px; background:#edf5f1; border:1px solid var(--line) }
.contact-primary .contact-number { font-size:clamp(1.9rem,3vw,2.6rem); letter-spacing:-.035em; font-weight:780; display:block; color:var(--navy); text-decoration:none; line-height:1.2; margin:13px 0 22px; overflow-wrap:anywhere }
.contact-primary a { overflow-wrap:anywhere }
.contact-primary .contact-mail { font-weight:700; color:var(--teal-dark); text-underline-offset:4px }
.contact-detail { background:#fff; border:1px solid var(--line); border-radius:18px; padding:30px }
.contact-detail h3 { margin-top:22px }
.contact-detail h3:first-child { margin-top:0 }
.notice { color:var(--muted); font-size:.85rem }
.site-footer { background:#101f2c; color:#fff; padding:44px 0 22px }
.footer-main { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:35px; padding-bottom:30px }
.footer-main h3 { color:#fff; margin-bottom:12px }
.footer-main p { color:#b8c7d0; margin-bottom:12px }
.footer-main a { color:#e8f4f3; text-decoration:none; display:block; margin:7px 0 }
.footer-main a:hover { text-decoration:underline }
.footer-bottom { border-top:1px solid #344450; padding-top:19px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:9px; color:#b1c2c9; font-size:.8rem }
.inline-note { font-size:.87rem; color:var(--muted) }
@media (max-width:940px) {
  .nav-wrap { align-items:flex-start; padding-block:18px; flex-wrap:wrap; }
  .nav { width:100%; justify-content:flex-start }
  .nav a { padding-inline:10px; }
  .nav .nav-call { margin-left:0 }
  .hero-grid { grid-template-columns:1fr .85fr; gap:25px; min-height:0; }
  .blueprint { min-height:350px; }
  .split { gap:30px }
  .content-layout { gap:30px }
}
@media (max-width:710px) {
  .container { width:min(100% - 34px, 1120px) }
  .nav-wrap { min-height:auto }
  .nav { gap:0; }
  .nav a { padding:8px 10px; font-size:.87rem }
  .hero-grid { grid-template-columns:1fr; gap:30px; padding-block:55px 50px }
  .hero h1 { font-size:clamp(2.55rem,10vw,3.75rem) }
  .blueprint { min-height:300px; aspect-ratio:1.55; }
  .section { padding-block:57px }
  .grid-3, .grid-2, .split, .content-layout, .contact-grid, .footer-main { grid-template-columns:1fr }
  .cta .container { align-items:flex-start; flex-direction:column }
  .service-card,.info-card { padding:24px }
  .footer-main { gap:13px }
  .contact-primary { padding:25px }
  .subhero { padding-block:53px 56px }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto } .btn { transition:none } }

/* Light-touch additions: protected contact form and published credentials */
.contact-form { margin-top:26px; }
.form-field { margin:0 0 17px; }
.form-field label { display:block; font-weight:700; color:var(--navy); margin-bottom:6px; }
.form-field input, .form-field textarea { font:inherit; width:100%; display:block; padding:12px 14px; border-radius:8px; border:1px solid #a8bdbd; background:#fff; color:var(--ink); min-height:48px; }
.form-field textarea { resize:vertical; min-height:150px; }
.form-field input:focus-visible,.form-field textarea:focus-visible { outline:3px solid #d3ab57; outline-offset:1px; border-color:var(--teal-dark); }
.form-note { font-size:.84rem; margin:14px 0 0; }
.hp-field { position:absolute !important; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.contact-detail address { font-style:normal; color:var(--muted); line-height:1.75; }
.contact-detail address a { color:var(--teal-dark); }
.contact-primary .contact-number.small { font-size:clamp(1.35rem,2.4vw,1.9rem); margin:4px 0; }
.credentials { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); padding:0; gap:10px; list-style:none; }
.credentials li { padding:11px 12px; border-radius:8px; background:#eff5f2; border:1px solid var(--line); font-size:.94rem; }
.status-line { margin-top:25px; font-size:.86rem; color:#b9e8d8 !important; font-weight:650; }
.result-panel { max-width:720px; padding:35px; border:1px solid var(--line); background:#fff; border-radius:18px; margin:0 auto; }
.result-panel p { margin-bottom:23px; }
.result-panel h1 { font-size:clamp(2rem,4vw,3rem); }
@media (max-width:710px) { .credentials { grid-template-columns:1fr; } .result-panel { padding:25px; } }

/* Footer office locations: direct map links, including accessible keyboard focus. */
.footer-main .footer-locations a { display:inline; margin:0; color:#e8f4f3; text-decoration:underline; text-underline-offset:3px; }
.footer-main .footer-locations a:hover { color:#fff; }
.footer-main .footer-locations a:focus-visible { outline:2px solid #e8f4f3; outline-offset:3px; border-radius:2px; }
.footer-locations span { color:#b8c7d0; }


/* TRE v7: integrated project photography */
.hero-photo {
  position:relative;
  min-height:405px;
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:var(--shadow);
  background:#d8e2e2;
}
.hero-photo img {
  width:100%;
  height:100%;
  min-height:405px;
  object-fit:cover;
  display:block;
}
.hero-photo::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(9,28,39,.06),rgba(9,28,39,.22));
}
.hero-badge {
  position:absolute;
  left:22px;
  bottom:22px;
  z-index:1;
  display:inline-flex;
  align-items:center;
  gap:8px;
  max-width:min(85%, 420px);
  padding:12px 15px;
  border-radius:12px;
  background:rgba(12,45,54,.82);
  border:1px solid rgba(255,255,255,.18);
  color:#fff;
  font-weight:650;
}
.hero-badge span { color:#9fe7d5; letter-spacing:.14em; text-transform:uppercase; font-size:.68rem; font-weight:800; display:block; }
.hero-badge strong { display:block; font-size:.96rem; }
.media-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.media-card, .photo-card {
  background:#fff;
  border:1px solid var(--line);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 6px 24px rgba(14,38,52,.05);
}
.media-card img, .photo-card img {
  width:100%;
  display:block;
  aspect-ratio:16/10;
  object-fit:cover;
}
.media-card .media-copy, .photo-card .photo-copy { padding:18px 18px 20px; }
.media-card h3, .photo-card h3 { margin:0 0 8px; }
.media-card p, .photo-card p { margin:0; color:var(--muted); }
.inline-actions { margin-top:24px; display:flex; gap:14px; flex-wrap:wrap; }
.feature-band {
  background:#eef3f1;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.feature-band .container { padding-block:22px; }
.figure-split {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:28px;
  align-items:start;
}
.figure-split .photo-card img { aspect-ratio:16/11; }
.photo-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.gallery-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
}
.gallery-grid .photo-card img { aspect-ratio:16/10; }
.gallery-intro {
  max-width:760px;
  margin-bottom:28px;
}
.caption-note {
  font-size:.84rem;
  color:var(--muted);
  margin-top:18px;
}
@media (max-width:940px) {
  .media-grid { grid-template-columns:1fr; }
  .figure-split { grid-template-columns:1fr; }
}
@media (max-width:710px) {
  .hero-photo, .hero-photo img { min-height:300px; }
  .photo-grid, .gallery-grid { grid-template-columns:1fr; }
  .hero-badge { left:16px; right:16px; max-width:none; }
}
