/* Roomier proportions for D. van Wijk, with smaller-screen gutters. */
:root {
  --dvw-content-width: 1440px;
  --dvw-heading-size: clamp(32px, 3.2vw, 46px);
  --dvw-section-space: clamp(64px, 6.6vw, 110px);
}

#Wrapper .section:not(.full-width):not(.full-width-ex-mobile) > .section_wrapper,
#Wrapper .container {
  max-width: min(var(--dvw-content-width), calc(100% - 64px));
  padding-inline: 0;
}

body {
  font-size: 18px;
  line-height: 1.7;
  font-weight: 400;
}

#Content h1 { font-size: clamp(38px, 4.2vw, 60px); line-height: 1.25; }
#Content h2 { font-size: var(--dvw-heading-size); line-height: 1.35; }
#Content h3 { font-size: 28px; line-height: 1.4; }
#Content h4 { font-size: 24px; line-height: 1.45; }
#Content h5 { font-size: 32px; line-height: 1.4; }
#Content .lead, #Content .big { font-size: 21px; line-height: 1.7; }
#Subheader .title { font-size: clamp(38px, 4.2vw, 60px); line-height: 1.25; }

#Top_bar .menu > li > a:not(.menu-toggle) { font-size: 18px; }
#Top_bar .top_bar_right .action_button {
  min-height: 56px;
  padding: 16px 24px;
  font-size: 16px;
  line-height: 22px;
}

#Content a.button, #Content button, #Content input[type="submit"] {
  font-size: 16px;
  min-height: 52px;
}

#Content input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
#Content textarea, #Content select {
  font-size: 17px;
  line-height: 1.6;
}

/* Scale the existing homepage cards together with the wider grid. */
#Content .dvw-home-services,
#Content .dvw-home-projects { padding-block: var(--dvw-section-space); }
#Content .dvw-home-services-intro > .mcb-wrap-inner { padding-bottom: 44px; }
#Content .dvw-home-services .mcb-item-fkm84wtg .title { max-width: 900px; }
#Content .dvw-home-services-grid > .mcb-wrap-inner { column-gap: 32px; row-gap: 32px; }
#Content .dvw-home-services-grid .mfn-icon-box .desc-wrapper { padding: 28px; }
#Content .dvw-home-services-grid .mfn-icon-box .title {
  min-height: 70px;
  font-size: 25px;
  line-height: 1.4;
}
#Content .dvw-home-services-grid .mfn-icon-box .desc { font-size: 17px; line-height: 1.7; }
#Content .dvw-home-service-link { font-size: 15px; }
#Content .dvw-home-services .mcb-item-vngzq4qq .title,
#Content .dvw-home-projects .mcb-item-2zs2vpxs .title { font-size: 13px; }

#Content .dvw-home-projects-intro .column_attr { max-width: 760px; font-size: 18px; }
#Content .dvw-projects-all { min-height: 56px; padding-inline: 24px; font-size: 16px; }
#Content .dvw-home-projects .portfolio_group { gap: 36px 32px; }
#Content .dvw-home-projects .portfolio_group .desc { padding: 28px; }
#Content .dvw-home-projects .entry-title { min-height: 68px; font-size: 24px; }
#Content .dvw-home-projects .portfolio_group.grid .portfolio-item .desc .desc-wrapper {
  font-size: 17px;
  line-height: 1.7;
}

/* Give the existing feature images and inner-page photography more presence. */
@media (min-width: 960px) {
  #Content .mcb-item-hauod0f4 .title { font-size: 38px; }
  #Content .mcb-item-4griog8u .mcb-column-inner { height: 380px; }
  #Content .mcb-item-phi2h4bd .mcb-column-inner { height: 500px; }
  #Content .mcb-wrap-p9zb1m2g > .mcb-wrap-inner,
  #Content .mcb-wrap-pkekt53p > .mcb-wrap-inner { padding-left: 52px; }
  #Content .mcb-section-rbmcdoa,
  #Content .mcb-section-zev6z87l { min-height: 540px; }
  #Content .mcb-section-8ppdeme { min-height: 420px; }
}

/* Keep the footer readable at the same scale as the main content. */
#mfn-footer-template .dvw-footer-cta { padding-block: 68px; }
#mfn-footer-template .dvw-footer-main { padding-block: 72px 64px; }
#mfn-footer-template .dvw-footer-cta .title { font-size: var(--dvw-heading-size); }
#mfn-footer-template .dvw-footer-cta p { max-width: 760px; font-size: 18px; }
#mfn-footer-template .dvw-footer-kicker { font-size: 13px; }
#mfn-footer-template .dvw-footer-actions .button { min-height: 56px; padding: 18px 28px; font-size: 16px; }
#mfn-footer-template .dvw-footer-call { font-size: 16px; }
#mfn-footer-template .dvw-footer-main .title { font-size: 20px; }
#mfn-footer-template .dvw-footer-main p,
#mfn-footer-template .dvw-footer-email,
#mfn-footer-template address,
#mfn-footer-template .dvw-footer-nav a,
#mfn-footer-template .dvw-footer-hours { font-size: 16px; }
#mfn-footer-template .dvw-footer-brand .desc { max-width: 340px; }
#mfn-footer-template .dvw-footer-logo img { width: 280px; }
#mfn-footer-template .dvw-footer-phone { font-size: 24px; }
#mfn-footer-template .dvw-footer-note { font-size: 12px; }
#mfn-footer-template .dvw-footer-bottom p,
#mfn-footer-template .dvw-footer-backtop { font-size: 14px; }

@media (min-width: 1240px) {
  #Top_bar:not(.is-sticky) #logo { padding-block: 20px; }
  #Top_bar:not(.is-sticky) .menu > li > a { padding-block: 20px; }
  #Top_bar .menu > li > a:not(.menu-toggle) > span:not(.description) { padding-inline: 20px; }
  #Top_bar .menu > li.current-menu-item > a > span::after,
  #Top_bar .menu > li.current-menu-ancestor > a > span::after { left: 20px; right: 20px; }
}

@media (min-width: 768px) and (max-width: 1239px) {
  #Content .dvw-home-services-grid > .mcb-wrap-inner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #Content .dvw-home-services-grid .mfn-icon-box .title { min-height: 0; }
}

@media (max-width: 959px) {
  body { font-size: 17px; }
  #Content h3 { font-size: 26px; }
  #Content h4 { font-size: 22px; }
  #Content h5 { font-size: 28px; }
  #Content .dvw-home-services-grid > .mcb-wrap-inner { column-gap: 24px; row-gap: 24px; }
  #Content .dvw-home-projects .portfolio_group { gap: 28px 24px; }
  #mfn-footer-template .dvw-footer-main { padding-block: 56px; }
}

@media (max-width: 767px) {
  :root { --dvw-heading-size: 30px; --dvw-section-space: 56px; }
  #Wrapper .section:not(.full-width):not(.full-width-ex-mobile) > .section_wrapper {
    box-sizing: border-box;
    width: calc(100% - 40px) !important;
    max-width: none !important;
    padding-inline: 0 !important;
  }
  #Wrapper #Top_bar .container { width: 100%; max-width: 100%; }
  #Content h1 { font-size: 36px; }
  #Content h3 { font-size: 25px; }
  #Content h5 { font-size: 28px; }
  #Content .lead, #Content .big { font-size: 19px; }
  #Top_bar .menu > li > a:not(.menu-toggle) { font-size: 17px; }
  body.mobile-header-mini #Top_bar .top_bar_right .action_button {
    min-height: 50px;
    padding: 14px 18px;
    font-size: 16px;
  }
  #Content .dvw-home-services-intro > .mcb-wrap-inner { padding-bottom: 32px; }
  /* Swipe through the services, with a preview of the next card. */
  #Content .dvw-home-services-grid { min-width: 0; }
  #Content .dvw-home-services-grid > .mcb-wrap-inner {
    display: flex;
    flex-wrap: nowrap;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    padding-block: 4px 12px;
    scrollbar-width: thin;
    scrollbar-color: #ae271b #ede9e5;
  }
  #Content .dvw-home-services-grid > .mcb-wrap-inner > .mcb-column {
    flex: 0 0 88%;
    width: 88%;
    min-width: 0;
    clear: none;
    scroll-snap-align: start;
  }
  #Content .dvw-home-services-grid .mcb-column-inner { margin: 0; }
  #Content .dvw-home-services-grid .mcb-column-inner > a:focus-visible { outline-offset: -3px; }
  #Content .dvw-home-services-grid .mfn-icon-box .desc-wrapper,
  #Content .dvw-home-projects .portfolio_group .desc { padding: 24px; }
  #Content .dvw-home-services-grid .mfn-icon-box .title,
  #Content .dvw-home-projects .entry-title { min-height: 0; font-size: 24px; }
  #Content .dvw-home-projects .mcb-item-uv1cm8cp .title { max-width: none; }
  #Content .dvw-home-projects-intro .column_attr { font-size: 17px; }
  #Content .dvw-projects-all { white-space: normal; }
  /* The wrapper already supplies the same 20px gutter as the page content. */
  #mfn-footer-template .mcb-section:not(.full-width) { padding-inline: 0; }
  /* The footer uses flex; its clearfix would otherwise add an empty row. */
  #mfn-footer-template .mcb-section > .section_wrapper::after { content: none; }
  #mfn-footer-template .dvw-footer-cta,
  #mfn-footer-template .dvw-footer-main { padding-block: 40px; }
  #mfn-footer-template .dvw-footer-cta p { font-size: 17px; }
  #mfn-footer-template .dvw-footer-logo img { width: 240px; }
  #mfn-footer-template .dvw-footer-hours,
  #mfn-footer-template .dvw-footer-hours dt { font-size: 14px; }
}
