/* SBRMirus — site styles */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Jost:wght@400;500;600&display=swap');

:root{
  --black: #0a0a0a;
  --white: #ffffff;
  --rust: #8a4a2f;       /* nav text color seen in reference */
  --rust-light: #a9633f;
  --grey-line: #d8d8d8;
  --grey-text: #6b6b6b;
  --shadow: 0 30px 60px rgba(0,0,0,0.35);
  --serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --sans: 'Jost', 'Helvetica Neue', Arial, sans-serif;
}

*{ box-sizing: border-box; }

html, body{
  margin:0;
  padding:0;
  background:#ffffff;
  font-family: var(--sans);
  color:#1c1c1c;
}

img{ max-width:100%; display:block; }

a{ color:inherit; text-decoration:none; }

.page-wrap{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: 60px 24px;
}

/* ===== Overall card layout: sidebar + black/photo panel ===== */
.site{
  display:flex;
  width:100%;
  max-width:1440px;
  background:#ffffff;
}

.sidebar{
  width:300px;
  flex-shrink:0;
  padding: 12px 30px 30px 0;
  display:flex;
  flex-direction:column;
}

.nav-toggle-checkbox{
  display:none;
}

.mobile-bar{
  display:contents;
}

.hamburger{
  display:none;
}

.nav-panel{
  display:contents;
}

.logo-block{
  margin-bottom: 56px;
}
.logo-block img{
  width:220px;
  height:auto;
}

.main-nav{
  list-style:none;
  margin:0;
  padding:0;
}
.main-nav li{
  margin-bottom: 26px;
}
.main-nav a{
  font-family: var(--sans);
  font-size: 14px;
  letter-spacing: 1.5px;
  font-weight: 400;
  color: #1c1c1c;
  display:flex;
  align-items:center;
  gap:8px;
  transition: color .2s ease;
}
.main-nav a:hover{
  color:#6b6b6b;
}
.main-nav li.active a{
  color: #1c1c1c;
  font-weight: 500;
}
.main-nav li.active a::after{
  content:"";
  display:inline-block;
  width:0;
  height:0;
  border-top: 5px solid transparent;
  border-bottom: 5px solid transparent;
  border-left: 7px solid #b9b9b9;
  margin-left: 4px;
}

/* ===== Right panel: the black/photo split card ===== */
.panel{
  position:relative;
  flex:1;
  min-height: 760px;
  display:flex;
  background:#000;
  box-shadow: var(--shadow);
  overflow:hidden;
}

.panel-black{
  width:42%;
  flex-shrink:0;
  background:#000;
  color:#fff;
  position:relative;
  padding: 0 50px 100px 50px;
  display:flex;
  flex-direction:column;
}

.panel-photo{
  flex:1;
  position:relative;
  background-size:cover;
  background-position:center;
}

/* Title plate, positioned across the full panel width, overlapping the seam */
.title-plate-wrap{
  position:absolute;
  top: 36px;
  left: 0;
  right: 50px;
  z-index:5;
  display:flex;
  justify-content:flex-end;
  pointer-events:none;
}
.title-plate-outer{
  pointer-events:auto;
  border:1px solid rgba(255,255,255,0.55);
  padding:10px;
  display:inline-block;
}
.title-plate{
  background:#000;
  padding: 22px 46px;
  display:inline-block;
}
.title-plate h1{
  margin:0;
  font-family: var(--serif);
  font-style: normal;
  font-weight:500;
  font-size: 34px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color:#fff;
  white-space: nowrap;
}

/* push body content below the title plate */
.panel-black .body-content{
  margin-top: 206px;
  flex:1;
}

.body-content p{
  font-family: var(--serif);
  font-size: 19px;
  line-height: 1.55;
  color:#f1f1f1;
  margin: 0 0 30px 0;
}
.body-content p strong{
  font-weight:600;
  color:#fff;
}
.body-content .lede{
  font-style: normal;
}
.body-content h3{
  font-family: var(--serif);
  font-weight:600;
  font-size:19px;
  color:#fff;
  margin: 0 0 12px 0;
}
.body-content ul{
  margin:0 0 28px 0;
  padding:0;
  list-style:none;
}
.body-content ul li{
  font-family: var(--serif);
  font-size:19px;
  color:#f1f1f1;
  line-height:1.6;
  padding-left: 18px;
  position:relative;
}
.body-content ul li::before{
  content:"•";
  position:absolute;
  left:0;
}

.body-content a.inline-link{
  color:#fff;
  text-decoration: underline;
  text-underline-offset:3px;
}

/* Two-column bullet list (Expertise page) */
.two-col-list{
  display:flex;
  gap: 40px;
  margin-bottom: 10px;
}
.two-col-list ul{
  flex:1;
  margin:0;
  padding:0;
  list-style:none;
  min-width:0;
}
.two-col-list li{
  font-family: var(--serif);
  font-size:18px;
  color:#f1f1f1;
  line-height:1.65;
  padding-left: 16px;
  position:relative;
  font-weight:600;
  white-space:nowrap;
}
.two-col-list li::before{
  content:"•";
  position:absolute;
  left:0;
}

/* contact-specific */
.contact-details{
  font-family: var(--serif);
  font-size:19px;
  line-height:1.7;
  color:#f1f1f1;
}
.contact-details .label{
  text-transform:uppercase;
  font-family:var(--sans);
  font-size:12px;
  letter-spacing:1.5px;
  color:#9a9a9a;
  margin: 22px 0 4px 0;
  display:block;
}
.contact-details .label:first-child{
  margin-top:0;
}

.contact-intro{
  font-family: var(--serif);
  font-size: 19px;
  color:#f1f1f1;
  margin: 0 0 70px 0;
}

.contact-card{
  text-align:center;
  padding-top: 30px;
}
.contact-card p{
  font-family: var(--serif);
  font-size: 19px;
  font-weight:600;
  color:#fff;
  margin: 0 0 22px 0;
}
.contact-card a{
  color:#fff;
}
.contact-card a:hover{
  text-decoration: underline;
}

/* ===== Dot navigation strip ===== */
.dot-nav{
  position:absolute;
  left: 50px;
  right: 50px;
  bottom: 40px;
  height: 26px;
  display:flex;
  align-items:center;
  z-index:5;
}
.dot-nav .track{
  position:absolute;
  left:0; right:0; top:50%;
  height:1px;
  margin-top:-0.5px;
  background: rgba(255,255,255,0.9);
  filter: drop-shadow(0 0 1px rgba(0,0,0,0.55));
  z-index:1;
}
.dot-nav .dots{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  height:100%;
  z-index:2;
}
.dot-nav .dot{
  width:13px;
  height:13px;
  border-radius:50%;
  background: rgba(255,255,255,0.9);
  border: none;
  display:block;
  box-shadow: 0 0 2px rgba(0,0,0,0.5);
}
.dot-nav a.dot-link{
  display:flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  border-radius:50%;
  flex-shrink:0;
}
.dot-nav a.dot-link.is-active{
  border: 1px solid #fff;
  box-shadow: 0 0 3px rgba(0,0,0,0.6);
}
.dot-nav a.dot-link.is-active .dot{
  width:13px;
  height:13px;
}
.dot-nav a.dot-link:not(.is-active) .dot{
  width:11px;
  height:11px;
  background: rgba(255,255,255,0.55);
}

/* ===== Clients page — logo grid image inside the panel-black content area ===== */
.clients-logo-grid{
  margin-top: -10px;
}
.clients-logo-grid img{
  width:100%;
  max-width: 320px;
  height:auto;
  display:block;
}

/* ===== Responsive ===== */
@media (max-width: 1100px){
  .site{ flex-direction:column; }

  .sidebar{
    width:100%;
    padding: 0;
    display:block;
  }

  .mobile-bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding: 16px 20px;
  }

  .logo-block{ margin-bottom:0; }
  .logo-block img{ width:150px; }

  .hamburger{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:5px;
    width:34px;
    height:34px;
    background:none;
    border:none;
    cursor:pointer;
    padding:0;
  }
  .hamburger span{
    display:block;
    width:100%;
    height:2px;
    background:#1c1c1c;
    transition: transform .25s ease, opacity .2s ease;
  }

  .nav-panel{
    display:block;
    max-height:0;
    overflow:hidden;
    transition: max-height .3s ease;
    background:#ffffff;
    border-top: 1px solid #eee;
  }

  .nav-toggle-checkbox:checked ~ .nav-panel{
    max-height: 600px;
  }
  .nav-toggle-checkbox:checked ~ .mobile-bar .hamburger span:nth-child(1){
    transform: translateY(7px) rotate(45deg);
  }
  .nav-toggle-checkbox:checked ~ .mobile-bar .hamburger span:nth-child(2){
    opacity:0;
  }
  .nav-toggle-checkbox:checked ~ .mobile-bar .hamburger span:nth-child(3){
    transform: translateY(-7px) rotate(-45deg);
  }

  .main-nav{
    display:block;
    padding: 10px 20px 20px;
  }
  .main-nav li{
    margin-bottom:0;
    border-bottom: 1px solid #f0f0f0;
  }
  .main-nav a{
    padding: 14px 0;
  }
  .main-nav li.active a::after{
    margin-left:auto;
  }

  .main-nav{
    padding-bottom: 24px;
  }

  .panel{ min-height:auto; flex-direction:column; }
  .panel-black{ width:100%; padding: 50px 24px 40px; }
  .title-plate-wrap{ position:static; margin-bottom:30px; }
  .title-plate-outer{ display:block; }
  .title-plate{ display:block; text-align:center; }
  .title-plate h1{ white-space:normal; font-size:24px; letter-spacing:2px; }
  .panel-black .body-content{ margin-top:0; }
  .panel-photo{ min-height:300px; }
  .body-content p, .body-content ul li, .contact-details{ font-size:17px; }
  .two-col-list{ flex-direction:column; gap:0; }
  .two-col-list li{ white-space:normal; }
}

@media (max-width: 640px){
  .page-wrap{ padding:0; }
}
