:root {
     --main-bg-color:#edebe6;
     --font-black:#1a1a1a;
     --font-white:#fff;
     --light-gray:#454749;
     --light-beige:#d1b7a1;
     --dark-beige:#a18167;
     --teal:#00695c;
}
 html {
    scroll-behavior:smooth;
}
 body {
    margin:0;
    padding:0;
    font-family: 'Poppins', 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    font-size:.9rem;
    line-height:1.5;
}
 body a:link, body a:visited, body a:active {
    text-decoration:none;
}
 section {
    overflow-x:hidden;
}
 img {
    max-width:160%;
}
:focus-visible, .masonry-card a:focus-visible {
  outline: none; /* remove default browser outline */
  box-shadow:
    0 0 0 2px white,      /* inner white */
    0 0 0 5px var(--teal); /* outer teal */
    border-radius:4px;
}
/*typography ======================*/
/* mrs-saint-delafield-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Mrs Saint Delafield';
  font-style: normal;
  font-weight: 400;
  src: url('fonts/mrs-saint-delafield-v13-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* poppins-200 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 200;
  src: url('fonts/poppins-v23-latin-200.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* poppins-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 400;
  src: url('fonts/poppins-v23-latin-regular400.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
@font-face {
    font-family: 'copperplate_gothic_pro-light';
    src: url('fonts/copperplate_gothic_pro-light-webfont.woff2') 
    format('woff2'),url('fonts/copperplate_gothic_pro-light-webfont.woff') 
    format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

p {
  min-height: 1.5em; /* 1.5 × current font-size */
}
.title, .footer-title {
    font-size:2em;
     font-family: 'copperplate_gothic_pro-light', 'Copperplate', 'Trebuchet MS', sans-serif;
     font-weight: 500;
     color:var(--font-white);
     z-index:10;
}
 .title span {
    font-family:'copperplate_gothic_pro-light',  'Copperplate', 'Trebuchet MS', sans-serif;
     font-size:.45em;
     font-weight: 100;
     display:block;
     padding:0 1em;
}
 h2, .gallery-font, span.cta, span.gallery-cta {
    font-size:1.6em;
     font-family: Georgia, 'Times New Roman', serif;
     font-weight: 400;
     color: var(--font-black);
}
 .footerhead {
    font-size:2em;
     font-family: 'copperplate_gothic_pro-light',  'Copperplate', 'Trebuchet MS', sans-serif;
     font-weight: 500;
}
/*desperation ================*/
 .padding-bottom {
    padding-bottom:50px !important;
    /*fixes a problem under the last paragraph on the legal pages*/
}
 .line {
    line-height:5px;
}
/*video*/
.background-wrapper{
    background-image: url("images/background2.webp");
}
.video-wrapper-home {
  width: 100vw;
  aspect-ratio: 880 / 780; /* Or 1.778 if you prefer */
  overflow: hidden;
  margin:0 auto;
  padding-top:25px;
  padding-bottom:25px;
}

.video-wrapper-home video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover; /* Or 'contain' if you prefer */
  display: block;
}
/* Media query to limit size on larger screens */
@media (min-width: 750px) {
  .video-wrapper-home {
    width: 50vw;
  }
}
.glow {
  text-shadow: 0 0 12px var(--main-bg-color);  /* slightly wider glow */
}
.glowsmall {
  text-shadow: 0 0 12px var(--main-bg-color);  /* slightly wider glow */
}
@media screen and (min-width:800px){
 .glowsmall {
  text-shadow: none;
}
}

/*buttons ======================*/
 .button, .submit {
    text-decoration:none;
     border:2px solid;
     padding:.5em 1.5em;
     display:inline-block;
     color:var(--font-white);
     z-index:10;
}
 .home-design .button-accent, .home-about a.button-accent, .submit {
    color: var(--font-black);
}
 .home-design .button-accent:hover, .home-about a.button-accent:hover, .submit:hover, .submit:focus {
    color: var(--font-white);
     border-color:var(--font-black);
}
 .home-portfolio .button-accent:hover {
    font-style:italic;
}
 .button:hover, .button:focus {
    background:var(--light-gray);
     color:var(--font-white);
}
 .button-fixed {
    display:none;
}
 .black-center {
    background: var(--light-gray);
     display:block;
     margin:0 auto;
     width:-moz-fit-content;
     width:fit-content;
}
 .button-fixed:hover, .black-center:hover {
    font-style:italic;
}
 @media screen and (min-width:800px) {
     .button-fixed {
        display:block;
         background-color:#454749;
         position:fixed;
         right:2rem;
         bottom:2.5rem;
         border-radius:25px;
    }
}
/*links ======================*/
 .custom-link {
    color: var(--teal);
    font-style:italic;
}
 .custom-link:hover, .custom-link-light:hover {
    font-style:normal;
}
a[href^="tel:"] {
  color: white;
  text-decoration: none; /* optional, if you don't want underline */
}
/*header ======================*/
 header {
    position:fixed;
     top:0;
     z-index:999;
     height:125px;
     width:100%;
}
 .standard header {
    background-color: var(--main-bg-color);
}
 .skip-nav-link {
    position:absolute;
     background-color: #454749;
     padding:.5rem 1.5rem;
     transform: translateY(-120%);
     color:var(--font-white);
     opacity:1;
     border-radius:25px;
     transition: transform 325ms;
     z-index:10;
     border: 2px solid;
}
 .skip-nav-link:focus, .skip-nav-link:focus-visible {
    transform:translateY(0);
     left:2rem;
     top:4rem;
     border:2px solid var(--teal);
     outline:none;
     outline-offset:0;
}
 .header-logo {
    padding:.75em;
     display:block;
     margin:auto;
     width:100px;
     position:absolute;
    top:0%;
    left:50%;
    transform: translateX(-50%);
     z-index:400;
}
 .standard .menu-text {
    color: var(--font-black);
}
 img.small, .mobile-nav-toggle {
    display:none;
}
 .primary-navigation ul {
    width:95vw;
     list-style:none;
     display:flex;
     position:fixed;
     left:0;
     top:0;
     gap:.75rem;
}
.primary-navigation li a, .menu-text {
    font-size: 1rem;
}
 .menu-text {
    color: var(--font-white);
}
 .primary-navigation li:nth-child(5) {
    margin-left:auto;
}
 .hidden {
    display:none;
}
 .cell {
    color:var(--font-white);
    font-size:.95rem;
}
 body.black-nav .cell {
    color: var(--font-black);
}
 body.black-nav{
     background: var(--main-bg-color);
}
 .primary-navigation a.current {
    font-style:italic;
}
 @media (max-width: 880px){
    .primary-navigation {
        display:none;
    }
     .primary-navigation[data-visible] {
        display:flex;
         height: 100vh;
         width:100vw;
         position:fixed;
         top:0;
         left:0;
         background-color:#edebe6;
         z-index:800;
    }
     .mobile-nav-toggle {
        cursor:pointer;
         background:transparent;
         border:0;
         padding: 0.5rem;
         display:block;
         position:relative;
         z-index:999;
         margin:1rem;
         width:75px;
    }
     img.header-logo {
        top:-63px;
    }
     .nav-wrapper {
        height:100%;
         width:100%;
    }
     .primary-navigation ul {
        width:70%;
         height:85%;
         position:relative;
         margin:50px auto 50px auto;
         list-style:none;
         display:grid;
         grid-template-columns: 1fr 1fr;
         grid-template-rows: 1fr 1fr 1fr;
         gap:2.3rem;
         padding:10px 0 0 0;
    }
     .primary-navigation ul > *:nth-child(1) {
         -ms-grid-row:1;
         -ms-grid-column:1;
    }
     .primary-navigation ul > *:nth-child(2) {
         -ms-grid-row:1;
         -ms-grid-column:3;
    }
     .primary-navigation ul > *:nth-child(3) {
         -ms-grid-row:3;
         -ms-grid-column:1;
    }
     .primary-navigation ul > *:nth-child(4) {
         -ms-grid-row:3;
         -ms-grid-column:3;
    }
     .primary-navigation ul > *:nth-child(5) {
         -ms-grid-row:5;
         -ms-grid-column:1;
    }
     .primary-navigation ul > *:nth-child(6) {
         -ms-grid-row:5;
         -ms-grid-column:3;
    }
     .primary-navigation li {
        box-sizing:border-box;
        position:relative;
        transition: transform 0.3s ease-in-out;
    }
    .primary-navigation li:hover {
    transform: scale(1.02);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.4);
    }
    .primary-navigation li a:hover {
        font-style:normal;
    }
     .hidden {
        display:block;
    }
     .primary-navigation li:nth-child(5) {
        margin-left:revert;
    }
     .cell {
        position:relative;
         display:block;
         width:90%;
         margin:auto;
         color: var(--font-black);
         z-index:2;
         font-size: 1.15rem;
         text-align:center;
    }
     img.small {
        display:block;
         width:100%;
         height:100%;
         -o-object-fit:cover;
         object-fit:cover;
         z-index:1;
    }
     img.small:focus, img.small:hover {
         z-index:1;    }
}
/*javascript classes ======================*/
 .menu-close {
    display:none;
     font-size:1.5rem;
     position:relative;
     top:-.25rem;
}
 .visible {
    display:block;
}
 .no-scroll {
    overflow:hidden;
}
.active {
background-color: var(--main-bg-color);
}
 .navcolor{
     color:#1a1a1a;
}
 .invisible {
    display:none;
}
/*home-hero ======================*/
 .home-hero{
     background-color:transparent;
     text-align:center;
     height:100vh;
}
 .title, #home-button {
    position:relative;
     bottom:-70%;
     z-index:10;
}
.desktop-slideshow
{display:none;
}
.mobile-slideshow
{display:block;}
@media screen and (min-width:850px){
    .desktop-slideshow
    {display:block;
    }
    .mobile-slideshow
    {display:none;
    }
}

/*home-hero slideshow ======================*/
 .slideshow {
    position: absolute;
     width: 100%;
     height: 100vh;
     top:0;
     overflow: hidden;
}
 .slideshow-image {
    position: absolute;
     width: 100%;
     height: 100%;
     background: no-repeat 50% 50%;
     background-size: cover;
     animation-name: kenburns;
     animation-timing-function: linear;
     animation-iteration-count: infinite;
     animation-duration: 40s;
     opacity: 1;
     transform: scale(1.2);
}
 .slideshow-image:nth-child(1) {
    animation-name: zoomIn;
     z-index: 7;
}
 .slideshow-image:nth-child(2) {
    animation-name: moveDown;
     z-index: 6;
}
 .slideshow-image:nth-child(3) {
    animation-name: zoomOut;
     z-index: 5;
}
 .slideshow-image:nth-child(4) {
    animation-name: moveRight;
     z-index: 4;
}
 .slideshow-image:nth-child(5) {
    animation-name: zoomIn2;
     z-index: 3;
}
 .slideshow-image:nth-child(6) {
    animation-name: moveUp;
     z-index: 2;
}
 .slideshow-image:nth-child(7) {
    animation-name: moveLeft;
     z-index: 1;
}
 .slideshow-image:nth-child(8) {
    animation-name: zoomOut2;
     z-index: 0;
}
 @keyframes zoomIn {
     0% {
         opacity: 1;
         transform: scale(1.0);
    }
     0.625% {
         opacity: 1;
    }
     11.875% {
         opacity: 1;
    }
     13.125% {
         opacity: 0;
         transform: scale(1.2);
    }
     99.375% {
         opacity: 0;
    }
     100% {
         opacity: 1;
         transform: scale(1.0);
    }
}
 @keyframes moveDown {
     11.875% {
         opacity: 1;
         transform: scale(1.2) translateY(0);
    }
     13.125% {
         opacity: 1;
    }
     24.375% {
         opacity: 1;
    }
     25.625% {
         opacity: 0;
         transform: scale(1.2) translateY(8%);
    }
     100% {
         opacity: 0;
         transform: scale(1.2) translateY(0);
    }
}
 @keyframes zoomOut {
     24.375% {
         opacity: 1;
         transform: scale(1.2);
    }
     25.625% {
         opacity: 1;
    }
     36.875% {
         opacity: 1;
    }
     38.125% {
         opacity: 0;
         transform: scale(1);
    }
     100% {
         opacity: 0;
         transform: scale(1.2);
    }
}
 @keyframes moveRight {
     36.875% {
         opacity: 1;
         transform: scale(1.1) translateX(0);
    }
     38.125% {
         opacity: 1;
    }
     49.375% {
         opacity: 1;
         transform: scale(1.1) translateX(4%);
    }
     50.625% {
         opacity: 0;
         transform: scale(1.1) translateX(4%);
    }
     100% {
         opacity: 0;
         transform: scale(1.1) translateX(0);
    }
}
 @keyframes zoomIn2 {
     49.375% {
         opacity: 1;
         transform: scale(1);
    }
     50.625% {
         opacity: 1;
    }
     61.875% {
         opacity: 1;
         transform: scale(1.2);
    }
     63.125% {
         opacity: 0;
         transform: scale(1.2);
    }
     100% {
         opacity: 0;
         transform: scale(1);
    }
}
 @keyframes moveUp {
     61.875% {
         opacity: 1;
         transform: scale(1.1) translateY(8%);
         top:-4%;
    }
     63.125% {
         opacity: 1;
    }
     74.375% {
         opacity: 1;
    }
     75.625% {
         opacity: 0;
         transform: scale(1.1) translateY(0);
    }
     100% {
         opacity: 0;
         transform: scale(1.1) translateY(0);
    }
}
 @keyframes moveLeft {
     74.375% {
         opacity: 1;
         transform: scale(1.1) translateX(4%);
    }
     75.625% {
         opacity: 1;
    }
     86.875% {
         opacity: 1;
    }
     88.125% {
         opacity: 0;
         transform: scale(1.1) translateX(0);
    }
     100% {
         opacity: 0;
         transform: scale(1.2) translateX(0);
    }
}
 @keyframes zoomOut2 {
     86.875% {
         opacity: 1;
         transform: scale(1.2);
    }
     88.125% {
         opacity: 1;
    }
     99.375% {
         opacity: 1;
    }
     100% {
         opacity: 0;
         transform: scale(1);
    }
}
/*containers ======================*/
/*home page*/
 .home-design, .home-portfolio, .home-about {
    overflow-y: hidden;
     overflow-x: hidden;
}
 .home-design, .home-about {
    background-color: var(--main-bg-color);
     border: 20px solid var(--light-beige);
     outline: 3px solid var(--dark-beige);
     outline-offset: -20px;
}
  .home-grid {
    display: grid;
    grid-template-rows: repeat(3, minmax(300px, auto)); /* Shrinks sections */
  }
 @media screen and (min-width:850px){
      .home-grid {
        grid-template-rows: 1fr 1fr 1fr; /* or repeat(3, 1fr) */
        }
    .home-grid > section {
    min-height: 500px; /* ensures even short content doesn't collapse */
    }
    .home-design {
        display:grid;
         grid-template-columns: 1.8fr 1.2fr;
         grid-template-rows: auto;
    }
     .home-design > *:nth-child(1) {
         -ms-grid-row:1;
         -ms-grid-column:1;
    }
     .home-design > *:nth-child(2) {
         -ms-grid-row:1;
         -ms-grid-column:2;
    }
    .image-third, .image-half {
        height:100%; 
    }
     .home-about {
        display:grid;
         grid-template-columns: 1fr 1fr;
         grid-template-rows: auto;
    }
     .home-about > *:nth-child(1) {
         -ms-grid-row:1;
         -ms-grid-column:1;
    }
     .home-about > *:nth-child(2) {
         -ms-grid-row:1;
         -ms-grid-column:2;
    }
    .image-half
    {order:2;
    }
     .padding {
        padding-bottom:50px;
    }
     .container-text, .container-text-video {
        display:flex;
         flex-direction:column;
         justify-content: center;
         align-items: center;
    }
}
.container-text-video{
    height:25%;
}
 .home-design img, .home-portfolio img, .home-about img {
    display:flex;
    /*do not remove as it will cause a gap under images*/
     background-color: var(--main-bg-color);
     max-width:100%;
     -o-object-fit:cover;
     object-fit:cover;
}
 .home-portfolio {
    background-color: var(--light-gray);
}
 .home-portfolio p, .home-portfolio h2, a.button-center {
    color:var(--font-white);
     text-align:center;
}
 .container p {
    padding: 0 1em 2em 1em;
     font-size:.95em;
}
.container h2{
        padding:.5em;
}
 .container-text, .container-text-video   {
    text-align:center;
    padding-bottom:50px;
}
 .standard-container {
    margin: 7.6rem auto 0 auto;
     background-color: var(--main-bg-color);
     min-height:10rem;
}
 .standard-container h1, .standard-container h2, .standard-container p {
    padding: 0 2rem 0 2rem;
}
 .standard-container ul {
    list-style:square;
     margin-left:2rem;
     margin-right: 1rem;
}
 .standard-container h2 {
    font-size: 1.5rem;
}
 .standard-container span {
    display:block;
}
 @media screen and (min-width:850px){
     .standard-container h1, .standard-container h2, .standard-container p {
        padding: 0 4rem 0 4rem;
    }
     .standard-container ul {
        margin-left:3.5rem;
    }
}
/*current project page ======================*/
 .news-gallery {
    display:flex;
     flex-wrap:wrap;
     gap:1rem;
     justify-content:space-evenly;
}
 .news-gallery-image-wrapper {
     flex: 1 1 30%;
  max-width: 30%;
}
@media (max-width: 768px) {
  .news-gallery-image-wrapper {
    flex: 1 1 48%;
    max-width: 48%;
  }
}

@media (max-width: 480px) {
  .news-gallery-image-wrapper {
    flex: 1 1 100%;
    max-width: 100%;
  }
}
 .project {
    width:100%;
}
 .left-gallery img, .left-gallery-news img {
    position:absolute;
     top: 50%;
     left: 50%;
     transform: translate(-50%, -50%);
}
 .video-wrapper {
    display:grid;
     grid-template-columns: repeat(4, 1fr);
     gap:1rem;
}
.news-lazy {
  border: 3px solid var(--light-gray);
  position: relative;
  width: 100%;
  max-width: 315px;  /* adjust width if desired */
  aspect-ratio: 9 / 16;
  overflow: hidden;
  background: #000;
  margin: 0 auto;
  cursor: pointer;
}

.news-lazy::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 50px; /* adjust based on title length */
  background: linear-gradient(to bottom, rgba(0,0,0,0.6), rgba(0,0,0,0));
  z-index: 1;
}

.news-lazy img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/*.news-lazy button {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 3rem;
  background: rgba(0, 0, 0, 0.6);
  color: white;
  border: none;
  border-radius: 50%;
  width: 60px;
  height: 60px;
  text-align: center;
  line-height: 60px;
  cursor: pointer;
  z-index: 1;
  transition: background 0.3s ease;
}*/
.news-lazy button {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 68px;
  height: 48px;
  background: rgba(255,0,0,0.8);
  border: none;
  border-radius: 50%;
  cursor: pointer;
  z-index: 1;
  transition: background 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.news-lazy button::before {
  content: '';
  display: block;
  width: 0;
  height: 0;
  border-left: 12px solid white;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  margin-left: 4px;
}

.news-lazy button:hover {
  background: rgba(255,0,0,1);
}
.mute-note {
  position: absolute;
  bottom: 8px;
  right: 8px;
  background: rgba(0,0,0,0.6);
  color: white;
  font-size: 0.75rem;
  padding: 2px 6px;
  border-radius: 4px;
}
.video-title {
  position: absolute;
  top: 8px;
  left: 8px;
  right: 8px;
  color: white;
  font-size: 0.85rem;
  z-index:2;
  padding: 4px 8px;
  border-radius: 4px;
  text-align: center;
  line-height: 1.2;
}
 @media (max-width: 1024px) {
     .video-wrapper {
        grid-template-columns: repeat(2, 1fr);
         justify-items:center;
    }
     .you-tube {
        width:auto;
    }
}
 @media (max-width: 800px) {
     .video-wrapper {
         grid-template-columns: 1fr;
         justify-items:center;
    }
}
/*contact page =====================*/
.gallery-intro-contact {
    overflow:hidden;
     margin: 0 2rem 0 2rem;
     padding-top:15px;
}
@media screen and (min-width:850px){
    .gallery-intro-contact{
        margin: 0 4rem 0 4rem;
    }
}
.right-gallery-contact {
    display:flex;
     flex-direction:column;
     align-items:center;
    /* center horizontally */
    width:750px;
}
.gallery-intro-contact picture {
  flex: 1 1 50%;
  max-width: 50%;
  padding-bottom:25px;
}
.gallery-intro-contact img {
    height: 600px;
    width: 100%;
    -o-object-fit: cover;
       object-fit: cover;
    max-width:revert;
     display:block;
     margin: 0 auto;
}
 .right-gallery-contact {
    position:relative;
     margin-top:2rem;
     align-content:center;
     width:100%;
}
 .radios {
    width:100%;
     position:relative;
     top:-35px;
     padding-left:10px;
     pointer-events: all !important;
     z-index: 500 !important;
 }
.radios label {
  display: inline-block;
  padding: 5px;
  margin-right: 12px;
  cursor: pointer;
}
 .conditional-group {
    width:100%;
     box-sizing:border-box;
}
 form.right-gallery-contact {
    width:100%;
}
 span.tiny {
    display:inline;
     font-size:12px;
}
 fieldset {
    border:none;
     display:grid;
     margin-top:1rem;
     padding:0;
     width:99%;
}
 form {
    position:relative;
     top:-50px;
     margin:0;
}
 .sr-only {
    position: absolute;
     width: 1px;
     height: 1px;
     padding: 0;
     margin: -1px;
     overflow: hidden;
     clip: rect(0,0,0,0);
     white-space: nowrap;
     border: 0;
}
 .userCode {
    position: absolute;
     left: -5000px;
     text-indent: 100%;
     white-space: nowrap;
     overflow: hidden;
}

 input[type="radio"]:focus {
    box-shadow: 0px 0px 5px var(--light-gray);
}
input[type="text"], input[type="email"], input[type="tel"], input[type="date"], textarea, #details {
     appearance: none;
    -moz-appearance: none; /* Firefox */
    border-radius: 0;       /* optional: remove iOS rounding too */
    background-color: var(--main-bg-color);
     border-width:1px;
     border-color:rgb(118, 118, 118);
     border-style:solid;
     box-sizing:border-box;
}
 input[type="text"], input[type="email"], input[type="tel"], input[type="date"] {
    padding:2px;
    margin-bottom:.5rem;
}
input, textarea {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
input:focus, textarea:focus, select:focus, #details{
    outline: none;
     box-shadow: 2px 2px 5px var(--light-gray);
     background-color: #fffdf5;
}
 .submit {
    display:block;
     padding:10px 50px 10px 50px;
     border: 1px solid #1a1a1a;
     margin: 2rem auto 0 auto;
     background: var(--light-gray);
     color: var(--font-white);
     font-size:1rem;
}
 .submit:hover, .submit:focus {
    font-style:italic;
}
 @media screen and (min-width:1000px){
     .gallery-intro-contact {
        margin:2rem 4rem 0rem 4rem;
        display:flex;
        flex-direction:row;
    }
     .gallery-intro-contact img {
        height: 800px;
        width: 100%;
        margin-right:10px;
    }
     .right-gallery-contact {
        display:flex;
         flex: 1 1 50%;
         align-items: center;
         justify-content:top;
         margin-left:10px;
    }
    .right-gallery-contact legend {
        padding-bottom:10px;
    }
     form.right-gallery-contact {
         width: 100%;
        /* let form fill container */
         margin: 0 auto;
    }
     .radios {
        margin-bottom:50px;
    }
     .conditional-group {
        width:98%;
         display: block;
         position:relative;
         top:0;
    }
     .conditional-group[hidden] {
        visibility: hidden;
         height: 0;
         overflow: hidden;
         padding: 0;
         margin: 0;
    }
     form {
        margin:1rem;
         top:-85px;
         width:95%;
    }
}
/*about page =========================*/
 .info-section {
    height:100%;
     width:100%;
     display:flex;
     flex-direction:column;
     gap: 1rem;
     align-items:center;
     justify-content: center;
    /* optional, but helps center child elements vertically */
     box-sizing: border-box;
     overflow: hidden;
}
 .info-left, .info-right, .map-wrapper {
    flex:1;
}
 img.info-left, img.info-right {
    width:100%;
    max-height:600px;
     margin:1.5rem;
     -o-object-fit:cover;
        object-fit:cover;
}
 @media screen and (min-width:800px){
     .info-section {
        flex-direction:row;
    }
     img.info-left {
        /*width:95%;*/
    }
}
@media (min-width: 800px) and (max-width: 1000px) {
  img.info-left, img.info-right, .map-wrapper, #map{
    height: 900px;
  }
}
.mobile-about
{display:none;}
.desktop-about
{display:block;
}
@media (min-width: 800px) and (max-width: 1000px) {
    .desktop-about {display:none;}
    .mobile-about {display:block;}
  }
  @media screen and (min-width:1000px){
    .desktop-about {display:block;}
    .mobile-about {display:none;}
}
/*services page ===================*/
/* .services-wrapper {
    display: flex;
     flex-wrap: wrap;
     max-width: 1200px;
     margin: 0 auto;
}
 .services-cell {
    flex: 0 0 50%;
     box-sizing: border-box;
     padding: 1rem;
    /* optional for spacing 
     overflow:hidden;
}
 .services-cell img {
    display:flex;
     -o-object-fit:cover;
     object-fit:cover;
     max-width:100%;
     height:100%;
}
 .full {
    width:100%;
}
 .full h2 {
    text-align:center;
}*/

.reverse {
flex-direction:column-reverse;
}
.map-wrapper {
  width: 100%;
  height: 600px;
  flex: none;
}
#map {
  height: 100%;
  width: 100%;
  margin: 0;
}
 @media (max-width: 1000px){
     .about-reverse {
    flex-direction:column-reverse;
     }
}
 @media (min-width: 1000px){    
     .map-wrapper{
        flex: 0 0 50%;
        height:600px;
    }
 }
 #map {
    height: 100%;
     width: 100%;
     margin:2rem;
}
 @media screen and (max-width: 1200px) {
     .tall {
        height: 400px;
    }
     #map {
        margin:0;
    }
     .full h2 {
        text-align:left;
    }
}
 .services-font {
    font-family: 'Mrs Saint Delafield', serif;
     font-weight:normal;
     font-size:75px;
     margin:0;
     position:relative;
     top:25px;
     text-align:center;
     z-index:15;
     padding-bottom:25px;
}
 .large-font {
    font-size:95px;
}
 .services-font.font-small {
    font-size:65px;
}
 @media screen and (max-width:885px){
     .services-font {
        font-size:55px;
    }
     .large-font {
        font-size:75px;
    }
}
/*subpages slide galleries ==========================*/
.center{
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.subpage-gallery{
    display: flex;
    flex-direction:row;
    gap: 1rem;
}
.subpage-gallery-right {
    flex: 1 1 50%;
    position:relative;
}
.subpage-gallery-left
{   position: relative;
    overflow: hidden;
    flex: 1 1 50%;
    width: 100%;
    aspect-ratio:4 / 5;
}
.subpage-gallery-left img
{   position: absolute;
    top: 0;
    left: 0;
    height:100%;
    max-width:revert;
    object-fit:cover;
    object-position:center;
}
/* Responsive: stack on small screens */
@media (max-width: 900px) {
.subpage-gallery {
    flex-direction: column;
  }
  .subpage-gallery-right, .subpage-gallery-left {
    flex: 1 1 100%;
  }
  .subpage-gallery-left{
      max-height:650px;
  }
}
img.subpage-gallery-slider{
    opacity:0.0;
    animation: 20s autoplay infinite linear;
    width:100%;
    overflow:hidden;
}
/*portfolio page slide gallery ======================*/
 .gallery-container {
    background-color: var(--main-bg-color);
     margin: 125px 0 auto 0;
     min-height:10rem;
     padding:1rem 2rem 1.5rem 2rem;
}
 .gallery-font {
    font-family: 'Mrs Saint Delafield';
     font-size: 15cqw;
     position:absolute;
     margin:0;
     z-index:10;
     left: 50%;
     transform: translateX(-50%);
}
 .tiny {
    font-size: 10cqw;
}
 span.cta {
    display:block;
     padding-top:3rem;
     padding-bottom:10px;
     text-align:center;
}
 span.gallery-cta {
    display:block;
     padding-top:1.5rem;
     padding-bottom:10px;
     text-align:center;
}
 @media screen and (min-width:875px){
     .gallery-container {
        padding:1rem 5rem 2rem 5rem;
    }
     .gallery-font {
        font-size:100px;
    }
}
 @media screen and (min-width:550px){
     .gallery-font {
        left:0;
         transform: translateX(17.5%);
    }
}
 @media screen and (max-width:400px){
     .tiny {
        font-size: 12cqw;
    }
}
 .left-gallery, .left-gallery-news {
    height:600px;
     overflow:hidden;
     padding:2rem;
     position:relative;
}
.gallery-slider
{height:100%;
}
.news-text
{position:relative;
top:-1rem;
}
.left-gallery-news img {
    height:85%;
     max-width:revert;
}
.left-gallery img
{height:100%;
max-width:revert
}
 .right-gallery {
    position:relative;
     margin-top:2rem;
     align-content:center;
}
 img.gallery-slider {
    position:absolute;
     animation: 20s autoplay infinite linear;
     top: 50%;
     left: 50%;
     transform: translate(-50%, -50%);
     opacity: 0.0;
}
@keyframes autoplay {
    0% {
        opacity: 0.0;
    }
    5% {
        opacity: 1.0;
    }
    20% {
        opacity: 1.0;
    }
    25% {
        opacity: 0.0;
    }
    100% {
        opacity: 0.0;
    }
}

 .left-gallery, .subpage-gallery-left > *:nth-child(1) {
    animation-delay: 0s
}
 .left-gallery, .subpage-gallery-left > *:nth-child(2) {
    animation-delay: 4s
}
 .left-gallery, .subpage-gallery-left > *:nth-child(3) {
    animation-delay: 8s
}
 .left-gallery, .subpage-gallery-left > *:nth-child(4) {
    animation-delay: 12s
}
 .left-gallery, .subpage-gallery-left > *:nth-child(5) {
    animation-delay: 16s
}
/*gallery page ======================*/
 .gallery-text {
    position:relative;
}
 .gallery-title span {
    display:block;
     font-size:1rem;
}
.overflow{
    overflow-x:visible;
}
.masonry-card:hover {
  transform: scale(1.02);
}
.masonry-layout {
  position: relative;
}
/* each card must be positionable */
.masonry-card {
    position: absolute;
    width: var(--masonry-card-width); /* computed in JS */
    background-color: var(--light-grey);
    padding: 8px;
    border-radius: 3px;
    box-shadow: 0 0 8px rgba(0,0,0,0.2);
    box-sizing: border-box;
}
.masonry-card img {
    max-width: 100%;
    height: auto; /* Maintain aspect ratio */
    border-radius: 4px;
    display: block; /* Remove extra space below image */
    margin-bottom: 10px;
}
.masonry-card p {
    margin: 15px 0 5px 0;
    font-size:.85rem;
}
.masonry-card a {
    font-size:.85rem;
 }
 /* in your CSS */
#lightbox-overlay {
  position: fixed;
  inset: 0;                   /* equivalent to top:0;left:0;right:0;bottom:0; */
  background: rgba(0,0,0,0.85);
 opacity:1;
 display:none;
 align-items: center;
  justify-content: center;
  z-index: 9999;
  transition: opacity 0.3s ease;  /* fade */
}
#lightbox-overlay img {
  opacity:1;
  max-width: 90%;
  max-height: 90%;
  position:relative;
  top:-25px;
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
}
button#lightbox-close{
position: absolute;
    top: 1rem;
    right: 1rem;
    font-size: 3rem;
  padding: 0.25rem;
  border: 0;
  background: transparent;
  color: white;
  cursor: pointer;
  line-height: 1;
}
button#lightbox-next, button#lightbox-prev {
  position:absolute;
  font-size: 1.75rem;
  padding: 0.25rem;
  border: 0;
  background: transparent;
  line-height: 1;
  color:#fff;
}
button#lightbox-prev{
    left:1rem;
    top:50%;    
    transform:translateY(-50%);
}
button#lightbox-next{
    right:1rem;
    top:50%;
    transform:translateY(-50%);
}
.lightbox-text {
  position:absolute;
  bottom:1rem;
  color: white;
  text-align: center;
  margin-top: 1rem;
  max-width: 90%;
  font-size: .75rem;
}
.lightbox-text a {
  color: lightblue;
}

/* #gallery {
    display: grid;
     -ms-grid-rows:1fr 0.5rem 1fr 0.5rem 1fr 0.5rem 1fr 0.5rem 1fr 0.5rem 1fr;
     -ms-grid-columns:1fr 0.5rem 1fr 0.5rem 1fr 0.5rem 1fr 0.5rem 1fr 0.5rem 1fr;
     grid-template: repeat(6, 1fr) / repeat(6, 1fr);
     margin-top:3rem;
     grid-gap:0.5rem;
}
 @media (max-width: 600px) {
     #gallery {
        display: flex;
         align-items: flex-start;
         flex-wrap: wrap;
         justify-content: center;
         grid-gap: 0;
    }
     #gallery > div {
        width: 48%;
         margin: 1%;
    }
}
 @media (max-width: 800px) and (max-width: 350px) {
     #gallery > div {
        width: 98%;
    }
}
 #gallery > div:nth-child(6n + 1) {
    -ms-grid-column-span: 2;
    grid-column: span 2;
     -ms-grid-row-span: 2;
     grid-row: span 2;
}
 #gallery > div:nth-child(2) {
    -ms-grid-column-span: 3;
    grid-column: span 3;
     -ms-grid-row-span: 3;
     grid-row: span 3;
}
 #gallery > div:nth-child(4) {
    -ms-grid-column-span: 1;
    grid-column: span 1;
     -ms-grid-row-span: 2;
     grid-row: span 2;
}
 #gallery > div > a, #project-gallery > div > a {
     opacity: 0;
     position: absolute;
     color:var(--font-white);
     font: 4em Poppins;
     padding: 2rem;
     width: 100%;
     height: 100%;
     transition: all ease 1s;
     text-align:center;
}
 #gallery > div > img, #project-gallery > div > img {
    width: 100%;
     min-height: 100%;
     transition: all ease 1s;
     aspect-ratio: 1 / 1;
     -o-object-fit:cover;
     object-fit:cover;
}
 @media (hover: hover) and (pointer: fine){
     #gallery > div:hover img {
        transform:scale(2);
    }
     #project-gallery > div:hover img {
        transform:scale(1.1);
    }
     #gallery > div:hover a, #project-gallery > div:hover a {
        opacity: 1;
    }
}
 #gallery > div, #project-gallery > div {
    overflow: hidden;
     position: relative;
     box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.2), 0 3px 20px 0 rgba(0, 0, 0, 0.19);
}
 #gallery div, #project-gallery div, #gallery a, #project-gallery a {
    display: flex;
     justify-content: center;
     align-items: center;
     text-decoration: none;
}
@media (max-width: 768px) {
   #gallery > div > a, #project-gallery > div > a {
    opacity: 1;
    font: 2.2em Poppins;
  }
  #project-gallery a
  {
  padding: 1rem;
  align-items:flex-end;
  }
}
#gallery > div {
    font-size:.35em;
}
 #project-gallery > div {
    font-size:.55em;
}
 @media (max-width: 600px) {
     #gallery > div, #project-gallery > div {
        font-size:.65em;
    }
}
 @media (min-width: 1100px) {
     #gallery > div, #project-gallery > div {
        font-size:.65em;
    }
}
a:focus-visible,
button:focus-visible {
 outline: none; /* don’t rely on default */
/*  box-shadow:
    0 0 0 2px white,
    0 0 0 4px var(--teal);
}
img.focused-image {
  outline: 6px solid var(--teal);
  outline-offset: -6px;
  border-radius: 4px;
  transition:none;
}
[inert] {
  pointer-events: none;
  user-select: none;
}
.lightbox {
  display: none;
}
.lightbox[aria-hidden="false"] {
  display: block;
}
body.no-scroll {
  overflow: hidden;
}
[id^="lightbox-"] {
    position: fixed;
     width:100vw;
     top: 125px;
     left: 0;
     height: calc(100vh - 125px);
     background-color: rgba(0, 0, 0, 0.5);
     display: flex;
     opacity: 0;
     transition: opacity 450ms ease-in-out;
     align-items: center;
     justify-content: center;
     pointer-events: none;
     z-index:999;
}
 [id^="lightbox-"][aria-hidden="false"]  {
    opacity: 1;
    pointer-events: auto;
}*/
/* [id^="lightbox-"]:hover .close, [id^="lightbox-"] .content:hover .close{
     opacity: 1;
     transform: scale(1);
}
[id^="lightbox-"]:target:hover .close, [id^="lightbox-"]:target .content:hover .close {
     opacity: 1;
     transform: scale(1);
}
*/
/* [id^="lightbox-"][aria-hidden="false"]  img {
    filter: blur(0);
}
 [id^="lightbox-"] .content {
     max-width: 100%;
     height:100%;
     position: relative;
     color:var(--font-white);
     display:flex;
     justify-content:center;
     align-items:center;
}*/
 /*[id^="lightbox-"] .content:hover > .gallery-title {
    opacity: 1;
     transform: translateY(-3px);
}
[id^="lightbox-"] .content:hover > .gallery-title::after {
    opacity: 1;
}*/
/* [id^="lightbox-"] .content > * {
    transition: all 450ms ease-in-out;
}
 [id^="lightbox-"] .gallery-title {
    display: block;
     margin: 0;
     padding: 1em;
     position: absolute;
     bottom: 3rem;
     left:1rem;
     width: 100%;
     transform: translateY(50%);
     font-size: 1.5em;
     opacity: 0;
     z-index:2;
}
 [id^="lightbox-"] .gallery-title::after {
    content: ' ';
     bottom: 0;
     left: 0;
     height: 100%;
     width: 100%;
     position: absolute;
     transition: all 350ms ease-in-out 250ms;
     opacity: 0;
     transform-origin: bottom;
     mix-blend-mode: soft-light;
}
[id^="lightbox-"] .content.show-controls > .gallery-title {
  opacity: 1;
  transform: translateY(-3px);
}
[id^="lightbox-"] .content.show-controls > .gallery-title::after {
  opacity: 1;
  transform: translateY(-3px);
}

 [id^="lightbox-"] img {
    max-height: 82.5vh;
     max-width: 90%;
     margin: 0;
     text-align:center;
     padding: 0;
     filter: blur(50px);
}
 [id^="lightbox-"] a.close {
    width: 3rem;
     height: 3rem;
     position: absolute;
     right: 1rem;
     top: 1rem;
     background-color: rgba(0, 0, 0, 0.5);
     border-radius:50%;
     display: flex;
     align-items: center;
     justify-content: center;
     transform: scale(0, 0);
     opacity: 0;
     transform-origin: right top;
     text-decoration: none;
     color:var(--font-white);
     z-index:3;
}
 [id^="lightbox-"] a.close:hover {
     font-style:normal;
 }
 [id^="lightbox-"] a.close::after {
    content: "X";
    font-size:2rem;
}
[id^="lightbox-"] a.close:focus-visible {
  opacity: 1;
  transform: scale(1, 1);
  outline: 2px solid var(--teal);
  outline-offset: 2px;
}
[id^="lightbox-"] .content.show-controls > .close {
  opacity: 1;
  transform: scale(1);
}*/
/*faq ======================*/
 h2.faq {
    border-bottom:2px solid var(--light-gray);
}
 .faq-p-size {
    font-size:0.83rem;
     margin-right:2rem;
}
 dl {
    margin: 0;
     padding: 0;
}
 dt {
    width: 87%;
}
 dd {
    width:87%;
}
 button[data-accordion-header] {
    all: unset;
     display: inline-flex;
     align-items: center;
     gap: 0.5rem;
     background-color: var(--main-bg-color);
     padding: 1rem;
     font-size: 1rem;
     cursor: pointer;
     transition: background-color 0.3s;
     text-align: left;
     margin-left:1.5rem;
     width:100%;
}
 button[data-accordion-header]::before {
    content: '+';
     font-size: 1.5rem;
     margin-left: 0px;
     transition: transform 0.3s, content 0.3s;
}
 button[data-accordion-header][aria-expanded="true"]::before {
    content: '–';
}
 button[data-accordion-header]:hover, button[data-accordion-header]:focus {
    background-color: #e0e0e0;
}
 dd {
    padding: 0 1rem;
     background-color: var(--main-bg-color);
     border-radius: 0 4px 4px 0;
     overflow: hidden;
     max-height: 0;
     transition: max-height 0.3s ease, padding 0.3s ease;
}
/*failure ======================*/
.right, .whoops
{position: relative;
  background-image: url('/images/plane-desktop.webp');
  background-size: cover;
  background-position: center;
  height: 75vh;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white; /* or black, depending on overlay */
  flex-direction:column;
}
@supports (background-image: url("image.avif")) {
  .right, .whoops {
    background-image: url('/images/plane-desktop.avif');
  }
}
@media screen and (max-width: 768px) {
  .right, .whoops {
    background-image: url('/images/plane-mobile.webp');
  }
}

@supports (background-image: url("image.avif")) {
  @media screen and (max-width: 768px) {
    .right, .whoops {
      background-image: url('/images/plane-mobile.avif');
    }
  }
}
.right::before, .whoops::before{
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background-color: rgba(0, 0, 0, 0.5); /* black overlay, 50% opacity */
  z-index: 1;
}
.whoops-white{
    color:white;
    z-index:50;
    text-align:center;
}
.custom-link-light {
  color: #b2dfdb;
}
/*footer ======================*/
 footer {
    background-color:#454749;
     color:#fff;
     text-align:center;
     padding-top:1em;
}
.footer-wrapper {
    max-width:1125px;
     margin:auto;
}
 .contact {
    display:none;
}
 footer p {
    margin:0;
     padding-top:1em;
}
 footer li a {
    font-size: .95em;
}
 footer p span {
    display:block;
}
 .footer-secondary-nav {
    display: block;
     width: 100%;
     -ms-grid-column-span: 1;
     grid-column: span 1;
}
 footer ul {
    list-style:none;
     padding-inline-start:0;
}
 .row1 span {
    font-size: .4em;
}
 .row3 {
    font-size:.75em;
     padding-bottom:3.5em;
}
 .italic {
    font-style:italic;
}
 .small {
    font-size:.85em;
}
 footer li span {
    font-size: 1.15em;
     font-weight:400;
}
 footer li a {
    text-decoration:none;
     font-size:1rem;
     color:var(--font-white);
     font-weight:200;
}
 footer li a:hover, nav a:focus, a:hover {
    font-style:italic;
}
 .row2 {
    font-size:1.2em;
     font-weight:300;
}
 .row2 img {
    position:relative;
     top:15px;
     padding:10px;
     width:25px;
}
/*desktop footer*/
 @media screen and (min-width:800px) {
     footer {
        padding-top:10px;
         padding-bottom:20px;
    }
     .footer-wrapper {
        display:grid;
         grid-template-columns: 1fr 1fr 1fr 1fr;
         grid-template-rows: auto auto auto auto;
    }
     .footer-wrapper > *:nth-child(1) {
         -ms-grid-row:1;
         -ms-grid-column:1;
    }
     .footer-wrapper > *:nth-child(2) {
         -ms-grid-row:1;
         -ms-grid-column:2;
    }
     .footer-wrapper > *:nth-child(3) {
         -ms-grid-row:1;
         -ms-grid-column:3;
    }
     .footer-wrapper > *:nth-child(4) {
         -ms-grid-row:1;
         -ms-grid-column:4;
    }
     .footer-wrapper > *:nth-child(5) {
         -ms-grid-row:2;
         -ms-grid-column:1;
    }
     .footer-wrapper > *:nth-child(6) {
         -ms-grid-row:2;
         -ms-grid-column:2;
    }
     .footer-wrapper > *:nth-child(7) {
         -ms-grid-row:2;
         -ms-grid-column:3;
    }
     .footer-wrapper > *:nth-child(8) {
         -ms-grid-row:2;
         -ms-grid-column:4;
    }
     .footer-wrapper > *:nth-child(9) {
         -ms-grid-row:3;
         -ms-grid-column:1;
    }
     .footer-wrapper > *:nth-child(10) {
         -ms-grid-row:3;
         -ms-grid-column:2;
    }
     .footer-wrapper > *:nth-child(11) {
         -ms-grid-row:3;
         -ms-grid-column:3;
    }
     .footer-wrapper > *:nth-child(12) {
         -ms-grid-row:3;
         -ms-grid-column:4;
    }
     .footer-wrapper > *:nth-child(13) {
         -ms-grid-row:4;
         -ms-grid-column:1;
    }
     .footer-wrapper > *:nth-child(14) {
         -ms-grid-row:4;
         -ms-grid-column:2;
    }
     .footer-wrapper > *:nth-child(15) {
         -ms-grid-row:4;
         -ms-grid-column:3;
    }
     .footer-wrapper > *:nth-child(16) {
         -ms-grid-row:4;
         -ms-grid-column:4;
    }
     .row1 {
        grid-column-start:1;
         -ms-grid-column-span:4;
         grid-column-end:5;
         grid-row-start:1;
         -ms-grid-row-span:1;
         grid-row-end:2;
         padding-bottom:1.5em;
    }
     .row2, .row2 img {
        grid-column-start:1;
         -ms-grid-column-span:4;
         grid-column-end:5;
         grid-row-start:3;
         -ms-grid-row-span:1;
         grid-row-end:4;
    }
     .row3 {
        grid-column-start:1;
         -ms-grid-column-span:4;
         grid-column-end:5;
         grid-row-start:4;
         -ms-grid-row-span:1;
         grid-row-end:5;
    }
     .row3 {
        font-size:12px;
         padding-bottom:2em;
    }
     .col1 {
        grid-column-start:1;
         -ms-grid-column-span:1;
         grid-column-end:2;
         grid-row-start:2;
         -ms-grid-row-span:1;
         grid-row-end:3;
    }
     .contact {
        font-size:1.15em;
         font-weight:400;
         display:inline-block;
    }
     .hours {
        display:inline-block;
         font-size:12px;
    }
     .footer-hidden {
        display:none;
    }
     .col2 {
        grid-column-start:2;
         -ms-grid-column-span:1;
         grid-column-end:3;
         grid-row-start:2;
         -ms-grid-row-span:1;
         grid-row-end:3;
    }
     .col3 {
        grid-column-start:3;
         -ms-grid-column-span:1;
         grid-column-end:4;
         grid-row-start:2;
         -ms-grid-row-span:1;
         grid-row-end:3;
    }
     .col4 {
        grid-column-start:4;
         -ms-grid-column-span:1;
         grid-column-end:5;
         grid-row-start:2;
         -ms-grid-row-span:1;
         grid-row-end:3;
    }
}