﻿/* Brandon Grotesque Font Faces */
@font-face {
    font-family: 'Brandon Grotesque';
    src: url('../fonts/Brandon/BrandonGrotesque-Regular.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Brandon Grotesque';
    src: url('../fonts/Brandon/BrandonGrotesque-Medium.otf') format('opentype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Brandon Grotesque';
    src: url('../fonts/Brandon/BrandonGrotesque-Bold.otf') format('opentype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Brandon Grotesque';
    src: url('../fonts/Brandon/BrandonGrotesque-Black.otf') format('opentype');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Brandon Text';
    src: url('../fonts/Brandon/BrandonText-Regular.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Brandon Text';
    src: url('../fonts/Brandon/BrandonText-Medium.otf') format('opentype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Brandon Text';
    src: url('../fonts/Brandon/BrandonText-Bold.otf') format('opentype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Brandon Text';
    src: url('../fonts/Brandon/BrandonText-Black.otf') format('opentype');
    font-weight: 900;
    font-style: normal;
    font-display: swap;
}

/* Brandon Font Implementation */
body {
    font-family: 'Brandon Text', 'Work Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
    font-weight: 400;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Brandon Grotesque', 'EB Garamond', Georgia, serif !important;
    font-weight: 700;
    line-height: 1.3;
    letter-spacing: -0.02em;
}

.navbar-brand,
.nav-link,
.btn,
.dropdown-item {
    font-family: 'Brandon Grotesque', 'Work Sans', sans-serif !important;
    font-weight: 500;
    letter-spacing: 0.5px;
}

.hero-title,
.section-title,
.display-1,
.display-2,
.display-3,
.display-4,
.display-5,
.display-6 {
    font-family: 'Brandon Grotesque', 'EB Garamond', serif !important;
    font-weight: 900;
    letter-spacing: -0.03em;
}

.lead,
.subtitle {
    font-family: 'Brandon Text', 'Work Sans', sans-serif !important;
    font-weight: 400;
    line-height: 1.7;
}

.footer {
    font-family: 'Brandon Text', 'Work Sans', sans-serif !important;
}

.footer h6 {
    font-family: 'Brandon Grotesque', 'EB Garamond', serif !important;
    font-weight: 700;
}

/* Enhanced Typography with Brandon */
.navbar-nav .nav-link {
    font-family: 'Brandon Grotesque', sans-serif !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 14px;
}

.btn {
    font-family: 'Brandon Grotesque', sans-serif !important;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.8px;
}

.card-title,
.service-title {
    font-family: 'Brandon Grotesque', serif !important;
    font-weight: 700;
}

.card-text,
.service-description {
    font-family: 'Brandon Text', sans-serif !important;
    font-weight: 400;
    line-height: 1.6;
}

/* iPhone Safari Responsive Fixes */
/* Fix for iPhone Safari viewport and touch issues */
html {
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
    text-size-adjust: 100%;
}

body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: contain;
}

/* iOS Safari specific navbar fixes */
@supports (-webkit-appearance: none) {
    .navbar {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 1050 !important;
        width: 100% !important;
        transform: translateZ(0) !important;
        -webkit-backface-visibility: hidden !important;
        backface-visibility: hidden !important;
    }

    .navbar-collapse {
        -webkit-overflow-scrolling: touch !important;
        will-change: scroll-position !important;
        isolation: isolate !important;
    }

    /* Fix for iOS Safari dropdown issues */
    .dropdown-menu {
        -webkit-overflow-scrolling: touch !important;
        will-change: scroll-position !important;
        transform: translateZ(0) !important;
    }

    /* Prevent zoom on focus for iOS Safari */
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="number"],
    input[type="password"],
    input[type="search"],
    select,
    textarea {
        font-size: 16px !important;
        -webkit-appearance: none !important;
        appearance: none !important;
        border-radius: 0 !important;
    }
}

/* Safe area adjustments for iPhone X and later */
@supports (padding: max(0px)) {
    .navbar {
        padding-left: env(safe-area-inset-left) !important;
        padding-right: env(safe-area-inset-right) !important;
    }

    body {
        padding-left: env(safe-area-inset-left) !important;
        padding-right: env(safe-area-inset-right) !important;
    }

    .container {
        padding-left: max(15px, env(safe-area-inset-left)) !important;
        padding-right: max(15px, env(safe-area-inset-right)) !important;
    }
}

/* Touch target improvements for iPhone */
@media (max-width: 991px) {
    .nav-link,
    .dropdown-item,
    .btn,
    button,
    a {
        min-height: 44px !important;
        min-width: 44px !important;
        display: flex !important;
        align-items: center !important;
        touch-action: manipulation !important;
        -webkit-tap-highlight-color: transparent !important;
    }

    /* Fix for horizontal scrolling issues */
    html, body {
        overflow-x: hidden !important;
        max-width: 100vw !important;
    }

    .container-fluid,
    .container {
        overflow-x: hidden !important;
        max-width: 100% !important;
    }

    /* Improved touch scrolling */
    .navbar-collapse,
    .dropdown-menu {
        -webkit-overflow-scrolling: touch !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
    }
}

/* iPhone landscape orientation fixes */
@media screen and (max-width: 991px) and (orientation: landscape) {
    .navbar {
        min-height: 60px !important;
    }

    .navbar-brand img {
        height: 35px !important;
    }

    body {
        padding-top: 60px !important;
    }
}

/* iPhone specific media queries */
@media only screen 
and (device-width: 375px) 
and (device-height: 812px) 
and (-webkit-device-pixel-ratio: 3) {
    /* iPhone X, XS */
    .navbar {
        padding-top: env(safe-area-inset-top, 20px) !important;
    }
}

@media only screen 
and (device-width: 414px) 
and (device-height: 896px) 
and (-webkit-device-pixel-ratio: 2) {
    /* iPhone XR */
    .navbar {
        padding-top: env(safe-area-inset-top, 20px) !important;
    }
}

@media only screen 
and (device-width: 414px) 
and (device-height: 896px) 
and (-webkit-device-pixel-ratio: 3) {
    /* iPhone XS Max */
    .navbar {
        padding-top: env(safe-area-inset-top, 20px) !important;
    }
}

/* Performance optimizations for iOS Safari */
.navbar,
.navbar-collapse,
.dropdown-menu {
    will-change: transform !important;
    transform: translateZ(0) !important;
    -webkit-transform: translateZ(0) !important;
}

/* Fix for iOS Safari bounce scrolling */
.navbar-collapse {
    overscroll-behavior: contain !important;
}

/****EDITOR CONTENT START****/
.editor-content h1,
.editor-content h2,
.editor-content h3,
.editor-content h4,
.editor-content h5,
.editor-content h6 {
    /*color: rgb(var(--bs-cprimary-rgb));
    font-weight: 600;*/
    margin-bottom: 1rem;
}

    .editor-content h1:not(:first-child),
    .editor-content h2:not(:first-child),
    .editor-content h3:not(:first-child),
    .editor-content h4:not(:first-child),
    .editor-content h5:not(:first-child),
    .editor-content h6:not(:first-child) {
        margin-top: 2rem;
    }

#tinymce img,
.editor-content img,
#tinymce iframe,
.editor-content iframe,
#tinymce video,
.editor-content video {
    max-width: 100%;
    margin-bottom: 1rem;
}

#tinymce ul,
.editor-content ul,
#tinymce ol,
.editor-content ol {
    font-size: 1rem;
    padding: revert;
    margin: revert;
}

    #tinymce ul li,
    .editor-content ul li {
        list-style-type: disc;
    }

    #tinymce ol li,
    .editor-content ol li {
        list-style-type: decimal;
    }

#tinymce table:not([class]),
.editor-content table:not([class]) {
    width: 100%;
    margin-bottom: 1rem;
    color: #212529;
    vertical-align: top;
    border: 1px solid #dee2e6;
}

    #tinymce table:not([class]) th,
    .editor-content table:not([class]) th,
    #tinymce table:not([class]) td,
    .editor-content table:not([class]) td {
        padding: 0.5rem;
        vertical-align: top;
        border: 1px solid #dee2e6;
    }

    #tinymce table:not([class]) thead th,
    .editor-content table:not([class]) thead th {
        vertical-align: bottom;
        border-bottom: 2px solid #dee2e6;
        border-bottom-width: 2px;
    }

    #tinymce table:not([class]) tbody + tbody,
    .editor-content table:not([class]) tbody + tbody {
        border-top: 2px solid #dee2e6;
    }

#tinymce p:not(:last-child),
.editor-content p:not(:last-child) {
    margin-bottom: 1rem;
}

#tinymce table p,
.editor-content table p {
    margin: 0;
}

.editor-content p {
    text-align: justify;
}
/****EDITOR CONTENT END****/

label.error {
    color: red;
    background: none;
    font-size: .875rem;
    /*margin-bottom: 1rem;*/
}

form .form-check {
    display: flex;
    flex-wrap: wrap;
}

    form .form-check input[type=checkbox] {
        margin-right: .5rem;
    }

    form .form-check label.error {
        flex: 1 0 100%;
        order: 10;
    }

    form .form-check .form-check-label {
        flex: 1 0 50%;
    }

        form .form-check .form-check-label p {
            margin: 0;
        }

.grecaptcha-badge {
    display: none;
}

.ibia-footer-logo {
    max-width: 240px;
}

.footer-contact-link-content {
    max-width: 300px;
}

.column-count-2 {
    column-count: 2 !important;
}
