/* ROOT VARIABLES */
:root {

    /* Colors */
    --color-light-blue: #03B1CA;
    --color-orange: #F9A632;
    --color-dark-blue: #15567D;
    --color-purple: #320a5f;

    /* Section measurements */
    --site-width:1320px;

    /* Font sizes */
    --site-supertitle:4rem;
    --site-title:3rem;
    --site-subtitle:1.2rem;
    --site-nav:1.1rem;

    /* Spacers */
    --content-spacer:5.4rem;
    --inner-content-spacer:7rem;
    --limited-spacer:3rem;

    /* Drop Shadow */
    --simple-lift: 0 4px 8px 5px rgba(0, 0, 0, 0.25);
    --simple-lift-text: 0 4px 8px rgba(0, 0, 0, 0.25);
    --heavy-lift-text: 2px 2px 16px rgba(0, 0, 0, 1);

    font-family: 'Ubuntu Sans', sans-serif;

}



/* SPACERS */
.bottom-spacer{
    margin-bottom:var(--content-spacer);
}


.heavy-text-shadow{
    text-shadow: var(--heavy-lift-text) !important;
}


/* FONTS */
.aqua-hero{
    color:var(--color-light-blue);
    font-size: var(--site-title);
    font-weight:var(--bold);
    text-shadow: var(--simple-lift-text);
}

.aqua-title{
    color:var(--color-light-blue);
    font-size: var(--site-supertitle);
    font-weight:var(--bold);
    text-shadow: var(--simple-lift-text);
    text-transform: uppercase;
}

.aqua-title-white{
    color:white;
    font-size: var(--site-supertitle);
    font-weight:var(--bold);
    text-shadow: var(--simple-lift-text);
    text-transform: uppercase;
}

.aqua-title-dark{
    color:var(--color-dark-blue);
    font-size: var(--site-supertitle);
    font-weight:var(--bold);
    text-shadow: var(--simple-lift-text);
    text-transform: uppercase;
}

.aqua-subtitle{
    color:var(--color-light-blue);
    font-size: var(--site-subtitle);
    font-weight:var(--medium);
    line-height:3rem;
    text-shadow: var(--simple-lift-text);
}

.aqua-subtitle-white{
    color:white;
    font-size: var(--site-subtitle);
    font-weight:var(--medium);
    line-height:3rem;
    text-shadow: var(--simple-lift-text);
}

.aqua-body-white{
    color:white;
    font-size: 1rem;
    font-weight:var(--regular);
    line-height:1.6rem;
    text-shadow: var(--simple-lift-text);
}

.aqua-body-dark{
    color:var(--color-dark-blue);
    font-size: 1rem;
    font-weight:var(--regular);
    line-height:1.6rem;
}

.aqua-body{
    color:black;
    font-size: 1rem;
    font-weight:var(--regular);
    line-height:1.6rem;
}

.aqua-body > *{
    color:black;
    font-size: 1rem;
    font-weight:var(--regular);
    line-height:1.6rem;
}


/* detect inline bullets and indent */
.aqua-body .bullet {
    display: block;
    margin-left: 1.25rem;
    text-indent: -0.75rem;
}




/* WRAPPERS */
body{
    display:flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
}

#outermost-wrapper{
    width:98%;
    margin:1% 1% 0 1%;
    max-width:var(--site-width);
}


/* NAVBAR */
#navbar{
    width:100%;
    height:4rem;
    border-bottom:4px solid var(--color-light-blue);
    display:flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
    padding-bottom:0.5rem;
    margin-bottom:var(--limited-spacer);
}

#navbar-branding{
    width:auto;
    max-width:350px;
    height:auto;
}

#navbar-branding-content{
    font-size:32px;
    color:var(--color-light-blue);
    font-weight: var(--semi-bold);
    text-transform: uppercase;
}

#navbar-links{
    width:auto;
    display:flex;
    flex-direction: row;
    justify-content: flex-end;
    align-items: center;
    gap:1.5rem;
}

.navbar-link-item,
.navbar-link-item-rev {
    color: var(--color-dark-blue);
    font-size: var(--site-nav);
    cursor: pointer;
    font-weight: var(--regular);
    padding: 0.1rem;
    letter-spacing: 0.02em;
    opacity: 0.75;
    transition: opacity 0.2s;
}

.navbar-link-item-rev {
    color: var(--color-orange);
}

.navbar-link-item:hover,
.navbar-link-item-rev:hover {
    opacity: 1;
    padding: 0.1rem;
}



/* SECTIONS */
.image-content-section{
    width:100%;
    height:70vh;
    position: relative;
}

.image-content-section-textblock{
    width: 44%;
    height: auto;
    position: absolute;
    top: 50%;
    z-index: 100;
    padding: 1.3rem;
    transform: translate(0, -50%);
    background: rgb(0, 0, 0, 0.5);
    border-radius: 12px;
}

.image-content-section-textblock-left{
    left:var(--inner-content-spacer);
}

.image-content-section-textblock-right{
    left:50%;
}

.image-content-section-textblock-under-title{
    font-size:var(--site-nav);
    color:var(--color-white);
    text-shadow: var(--simple-lift-text);
    font-weight:var(--regular);
    margin-bottom:1rem;
}

.image-content-section-textblock-body{
    font-size:var(--font-body);
    color:var(--color-white);
    text-shadow: var(--simple-lift-text);
    font-weight:var(--medium);
}

.image-content-section-button{
    margin-top:2rem;
}

.image-content-section-picture{
    width:100%;
    height:100%;
    object-fit: cover;
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
}


/* BUTTON */
.orange-cta-button{
    padding:0.8rem;
    background-color: var(--color-orange);
    color:var(--color-white);
    box-shadow: var(--simple-lift);
    min-width:140px;
    border-radius: var(--card-corners);
    text-align: center;
}

.blue-cta-button{
    padding:0.8rem;
    background-color: var(--color-dark-blue);
    color:var(--color-white);
    box-shadow: var(--simple-lift);
    min-width:140px;
    border-radius: var(--card-corners);
    text-align: center;
}

.orange-cta-button:hover,
.blue-cta-button:hover {
    filter: brightness(1.1);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
    cursor: pointer;
    transition: all 0.2s ease;
}

.orange-cta-button:active,
.blue-cta-button:active {
    filter: brightness(0.95);
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2);
    transition: all 0.05s ease;
}



/* FORM FIELDS */
.aqua-form-field {
    display: flex;
    flex-direction: column;
    font-family: inherit;
}

.aqua-form-label {
    font-size: 0.9rem;
    font-weight: var(--semi-bold); /* or 600 */
    margin-bottom: 0.4rem;
    color: #1d3557; /* dark blue */
}

.aqua-form-input,
.aqua-form-textarea,
.aqua-form-select {
    padding: 0.6rem 0.75rem;
    font-size: 1rem;
    font-weight: var(--medium); /* or 500 */
    border: 1px solid #dcdde1; /* light gray */
    border-radius: 6px;
    background-color: #ffffff;
    color: #2f2f2f; /* near-black */
    font-family: inherit;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.aqua-form-input:focus,
.aqua-form-textarea:focus,
.aqua-form-select:focus {
    border-color: #00bcd4; /* aqua */
    box-shadow: 0 0 0 2px rgba(0, 188, 212, 0.15);
    outline: none;
}

.aqua-form-input::placeholder,
.aqua-form-textarea::placeholder {
    color: #999;
    opacity: 0.7;
    font-weight: var(--medium);
}

.aqua-form-error {
    margin-top: 0.3rem;
    color: #d32f2f; /* red */
    font-size: 0.85rem;
    font-weight: var(--medium);
}

.aqua-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    max-width: 100%;
}

.aqua-form-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.aqua-form-row > .aqua-form-field {
    flex: 1 1 0; /* allow growth but keep min width */
    min-width: 200px;
}

/* Optional tighter version for small spacing rows */
.aqua-form-row.tight {
    gap: 0.75rem;
}

/* Optional label alignment tweak */
.aqua-form-field > label.aqua-form-label {
    white-space: nowrap;
}



/* IMAGES */
.aqua-thumbnail{
    width:15rem;
    height:15rem;
    border-radius:6px;
}

.aqua-thumbnail-large{
    width:26rem;
    height:26rem;
    border-radius:6px;
}



/* FOOTER */
#footer{
    width:100%;
    margin-bottom:var(--limited-spacer);
    border-top:4px solid var(--color-light-blue);
    padding-top:var(--limited-spacer);
    display:flex;
    flex-direction:row;
    justify-content: space-between;
    align-items: flex-start;
}

#footer-branding-image{
    width:25rem;
    height:25rem;
}

#links-and-copy{
    width:100%;
    height:25rem;
    display:flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
}

#footer-links{
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    align-items: flex-start;
    gap: 4rem;
    width: 91%;
    margin-left: auto;
}

.footer-link-col{
    display:flex;
    flex-direction:column;
    justify-content: flex-start;
    align-items: flex-start;
    flex:1;
}

.footer-link-col-title{
    font-weight: var(--semi-bold);
    color: var(--color-dark-blue);
    margin-bottom:1.4rem;
}

.footer-link{
    color: var(--color-dark-blue);
    margin-bottom:0.5rem;
}

.link{
    color:var(--color-light-blue);
    text-decoration: underline;
}

#footer-copy{
    margin-top:auto;
    display:flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    gap:0.5rem;
    margin-bottom:0;
}




.image-pair-section {
  display: flex;
  align-items: stretch;
  gap: 2rem;
  margin: 0 auto 4rem auto;
}

.image-pair-section-textblock {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 2rem;
  gap:2rem;
}

.image-pair-section-picture {
  flex: 0 0 40%;         /* fixed width, 40% of container */
  height: 28rem;         /* consistent height */
  object-fit: cover;     /* crop edges, no distortion */
  border-radius: 6px;
  box-shadow: var(--simple-lift);
  aspect-ratio: 12/9;
}






#share-your-experience{
    width:100%;
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content: center;
    align-items: center;
}

#contact-bg{
    width:60%;
    display:flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    background-color: var(--color-light-blue);
    margin-top:3rem;
    padding:5rem;
    box-shadow: var(--simple-lift);
}

#contact-bg > .aqua-form > .aqua-form-row > .aqua-form-field > label{
    color:white;
}

#contact-bg-image{
    height:65rem;
}

#contact-submit-button{
    margin-top:3rem;
}


.banner{
    width:100%;
    height:18rem;
    display:flex;
    flex-direction:column;
    justify-content: center;
    align-items: center;
    margin-bottom: 3rem;
}












.popup-overlay {
    position: fixed; top: 0; left: 0;
    width: 100vw; height: 100vh;
    background: rgba(0,0,0,0.6);
    display: flex; align-items: center; justify-content: center;
    z-index: 9999;
}

.popup-box.two-column {
    background: white; border-radius: 10px; padding: 20px;
    display: flex; gap: 20px; flex-wrap: wrap;
    max-width: 90vw; max-height: 90vh; overflow: auto;
    box-shadow: 0 4px 16px rgba(0,0,0,0.3);
    position: relative;
}

.popup-image-col {
    flex: 1 1 300px;
    display: flex; flex-direction: column; align-items: center;
}

.popup-image-col img {
    max-width: 100%; height: auto; border-radius: 6px;
    border: 1px solid #ccc;
}

#popup-close {
    position: absolute;
    bottom: 10px;
    right: 10px;
}










.carousel {
    position: relative;
    width: 100%;
    max-width: 75rem;  /* frame width */
    margin: 0 auto;
    background: #fff;
}

.carousel-viewport {
    max-width: 62rem;  /* slider window */
    margin: 0 auto;
    overflow: hidden;  /* hides edges */
}

.carousel-track {
    display: flex;
    transition: transform 0.5s ease-in-out;
}

.carousel-slide {
    min-width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    box-sizing: border-box;
}

.carousel-slide img {
    width: 100%;
    height: 32rem;
    object-fit: cover;
    border-radius: 6px;
    box-shadow: var(--simple-lift);
}

.image-pair {
    display: flex;
    gap: 1rem;
    width: 100%;
    height: 32rem;
    justify-content: center;
}

.image-pair img {
    width: 48%;
    height: 100%;
    object-fit: cover;
    border-radius: 6px;
    box-shadow: var(--simple-lift);
}

.carousel-caption {
    font-size: 1rem;
    font-weight: var(--medium);
    color: var(--color-dark-blue);
    text-align: center;
    max-width: 70%;
}

/* Navigation arrows */
.carousel-control {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.5);
    border: none;
    color: white;
    font-size: 2rem;
    font-weight: bold;
    width: 3rem;
    height: 3rem;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    transition: background 0.2s ease;
    z-index: 5;
}

.carousel-control:hover {
    background: rgba(0, 0, 0, 0.7);
}

#prev-slide {
    left: 1rem;
}

#next-slide {
    right: 1rem;
}

#proudly-serving{
    font-size:0.8rem;
    font-weight:400;
    text-align: center;
    color:#919191;
    width:70%;
}