@import url('https://fonts.googleapis.com/css2?family=Lato:ital,wght@0,100;0,300;0,400;0,700;0,900;1,100;1,300;1,400;1,700;1,900&display=swap');

:root {
  --primary: #2c2c2c;
  --secondary:#23262F;
  --ternary: #00000080;
  --black:#000000;
  --white: #FFFFFF;
  --gray: #2B3030;
  --warning: #EA9F48;
  --success: #4AB37B;
  --success-medium: #A9CCB9;
  --success-light: #CCEBDA;
  --error: #EF717D;
  --error-light: #FFF6F7;
  --gardient-1: linear-gradient(179.68deg, #2c2c2c 17.38%, #23262F 99.89%);
  --gardient-2: linear-gradient(90deg,rgba(255, 255, 255, 0.15) 30%, rgba(255, 255, 255, 0.25) 30%, rgba(255, 255, 255, 0) 100%);
  --white-light: #f2f2f291;

}

body {
  font-family: "Lato", sans-serif;;
  background-color: var(--white);
}
h1,h2,h3,h4,h5,h6{
    line-height: 1;
    font-family: "Lato", sans-serif;;
}
h1 {
    font-size : 2.75rem;
    font-weight: 600;
    color: var(--black);
}
h2{
    font-size: 2rem;
    font-weight: 600;
}
h4 {
    font-size: 1.4rem;
}
h5 {
    font-size: 1.1rem;
    font-weight: 600;
}
h6 {
    font-size: 1rem;
}

p {
    font-size: 1rem;
    line-height: 1.5;
}

hr {
    border-top: 1px solid var(--white) !important;
    width: -webkit-fill-available;
    opacity: 1;
}
.padding-top {
    padding-top: 5rem;
}

.padding-bottom {
    padding-bottom: 5rem;
}
.mendatory {
    color: var(--error);
}
.middled {
    display: flex;
    flex-flow: column;
    justify-content: center;
    align-items: center;
}
.centered {
    display: flex;
    align-items: center;
    justify-content: center;
}
.fixed {
    position: fixed;
    top: 0;
}

.col-form-label {
    text-align: right;
}
/* Make bootstrap-select match Bootstrap 5 form-select */
.bootstrap-select .dropdown-toggle {
    background-color: #fff !important;
    border: 1px solid #ced4da !important;
    border-radius: 0.375rem !important;
    font-size: .8rem !important;
    color: #212529 !important;
}
.container-fluid {
    padding-right: 0rem !important;
    padding-left: 0rem !important;
}

.row {
    margin-right: 0rem !important;
    margin-left: 0rem !important;
}
.main-header {
    position: relative;
    width: 100%;
    z-index: 999;
    transition: all .3s ease;
    padding: 1rem 0; 
    background-color: #2c2c2c;
}

.navbar {
    padding: 0;
}

.nav-logo {
    max-width: 10rem;
}

.main-menu .nav-link {
    margin: 0 .75rem;
    padding: .75rem 1rem;
    color: var(--white-light);
    transition: .3s ease;
}

.main-menu .nav-link.active,
.main-menu .nav-link:hover {
    color: var(--white);
}

.scrolled {
    position: fixed !important;
    top: 0;
    left: 0;
    right: 0;
    background: var(--primary) !important;
    box-shadow: 0 3px 12px rgba(0,0,0,0.1);
    padding: .7rem 0 !important;
}
/* Mobile Menu */
#navMenu {
    background: var(--gray);
    padding: 1rem 1rem;
    border-radius: .5rem;
}

#navMenu.show .nav-link {
    color: #fff;
    border-bottom: 1px solid rgba(255,255,255,.2);
}

#navToggle {
    border: 1px solid;
    background: none;
    color: var(--white);
}

.navbar-nav {
    text-align: left;
}

@media (min-width: 992px) {
    #navMenu {
        background: transparent;
        padding: 0;
    }
}
.card{
    border-radius: .5rem;
    box-shadow: 0px 0px 9px 0px #28A9E03B;
}
.card .card-title{
    color: var(--primary);
}
.card .card-subtitle{
    color: var(--grey);
}
.card p{
    color: var(--grey);
}
.card-footer {
    background-color: var(--white);
    height: 100%;
}
.card-footer:last-child {
    border-radius: 0 0 calc(1rem - 1px) calc(1rem - 1px);
}
/*************** Home Page ***************/
.home{
    background-color: #2c2c2c;
}

/* Main Banner Container */
.home .banner {
    position: relative;
    background-color: #2c2c2c;
    min-height: 450px;      /* reserve space */
    overflow: hidden;
    margin-bottom: 100px;
    z-index: 1040;
    contain: layout paint;   /* prevents CLS outside banner */
}

/* Artwork Layer */
.home .banner .banner-visuals {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.home .banner .artwork-layer {
    position: absolute;
    right: 0;
    top: 0;
    width: 75%;
    height: 100%;
    background-size: cover;
    background-position: center;
    filter: blur(20px);
    opacity: 0;
    animation: artworkReveal 1.2s ease forwards;
}

@keyframes artworkReveal {
    0% { filter: blur(20px); opacity: 0; transform: scale(1.05); }
    100% { filter: blur(0); opacity: 1; transform: scale(1); }
}

/* Artist Portrait */
.home .banner .artist-img {
    position: absolute;
    left: 10%;
    bottom: 0;
    width: auto;
    height: 100%;
    max-height: 100%;
    transform: translateY(100px) rotateY(180deg);
    opacity: 0;
    z-index: 9999;
    animation: portraitJump 0.9s ease forwards;
    animation-delay: 1.1s;
}

@keyframes portraitJump {
    0% { transform: translateY(100px) rotateY(180deg); opacity: 0; }
    60% { transform: translateY(-20px) rotateY(180deg); opacity: 1; }
    100% { transform: translateY(0) rotateY(180deg); opacity: 1; }
}

/* Title Overlay */
.home .banner .text-overlay-bar {
    position: absolute;
    bottom: 3.5%;
    left: 0;
    width: 100%;
    background: var(--gardient-2);
    padding: 90px 0 0 90px;
    z-index: 3;
}

.home .banner .text-overlay-bar h1 {
    color: #dd8834;
    margin: 0;
    opacity: 0;
    transform: translateX(-3rem);
    animation: bannerSlideIn 0.8s cubic-bezier(.25,.8,.25,1) forwards;
    animation-delay: 2s;
}

/* Subtitle Overlay */
.home .banner .text-subtitle-bar {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    background: #2c2c2c;
    padding-left: 200px;
    z-index: 3;
}

.home .banner .text-subtitle-bar h4 {
    color: #ffffff;
    margin: 0;
    opacity: 0;
    transform: translateX(-2.5rem);
    animation: bannerSlideIn .9s cubic-bezier(.25,.8,.25,1) forwards;
    animation-delay: 2.25s;
}

/* Banner Slide In Animation */
@keyframes bannerSlideIn {
    0% { opacity: 0; transform: translateX(-3rem); }
    100% { opacity: 1; transform: translateX(0); }
}

.methology {
    background-size: cover; 
    background-repeat: no-repeat;
    background-position: center;
    color: var(--black);
}
/*************** End Home Page ***************/

/*************** start Common CSS ***************/
.page-banner {
    color: #fff;
    background: var(--primary);
}
.page-banner .banner-content {
    background: var(--gardient-1);
    padding: 1rem;
    text-align: right;

    /* animation setup */
    opacity: 0;
    transform: translateX(-2.5rem);
    animation: bannerSlideIn 0.9s cubic-bezier(.25,.8,.25,1) forwards;
    animation-delay: 0.15s;
}

@keyframes bannerSlideIn {
    from {
        opacity: 0;
        transform: translateX(-2.5rem);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* child elements */
.banner-content > * {
    opacity: 0;
    transform: translateX(-10rem);
    animation: itemSlide 1.6s cubic-bezier(.4,0,.2,1) forwards;
}

/* stagger */
.banner-content > *:nth-child(1) { animation-delay: .35s; }
.banner-content > *:nth-child(2) { animation-delay: .5s; }
.banner-content > *:nth-child(3) { animation-delay: .65s; }

@keyframes itemSlide {
    from {
        opacity: 0;
        transform: translateX(-10rem);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* accessibility */
@media (prefers-reduced-motion: reduce) {
    .page-banner .banner-content,
    .banner-content > * {
        animation: none;
        opacity: 1;
        transform: none;
    }
}
.page-banner .banner-content h1{
    color: #dd8834;
    font-size: 1.5rem;
}

.page-banner .banner-img img {
    width: 100%;
    max-height: 35rem;
    object-fit: cover;
    opacity: .9;
    
    filter: blur(20px);
    opacity: 0;
    animation: artworkReveal 1.2s ease forwards;
}
.video iframe {
    width: 100%;
    height: 1080px;
}
.exe-video iframe {
    width: 100%;
    height: 500px;
}

/* ===== SECTION BASE ===== */
.artist-section {
    padding: 2.5rem 0 1.25rem;
    background: var(--bg);
    overflow: hidden;
}

/* ===== FRAME ===== */
.artist-frame {
    position: relative;
    padding-left: 3.75rem;
}

.artist-frame::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 0.125rem; 
    height: 100%;
    background: linear-gradient(to bottom, transparent, var(--text), transparent);
    opacity: .15;
}

/* ===== HEADER ===== */
.artist-header {
    margin-bottom: 2.5rem; 
}

.artist-title {
    position: relative;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.1;
    margin-bottom: 0.75rem; 
    color: var(--text);
}
/* underline */
.artist-title::before {
    content: '';
    position: absolute;
    bottom: -0.375rem; 
    left: 0;
    width: 100%;
    height: 0.125rem;
    background: var(--text);
}
.artist-subtitle {
    font-size: 1rem;
    color: var(--text);
}

/* ===== NARRATIVE ===== */
.artist-narrative {
    font-size: 0.95rem;
    line-height: 1.9;
    color: var(--text);
    margin-bottom: 1.25rem; 
    text-align: justify;
}

/* ===== CARD ===== */
.artist-card {
    background: #fff;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 1.25rem 3.125rem rgba(0,0,0,.08); 
    transition: transform .4s ease, box-shadow .4s ease;
}

.artist-card:hover {
    transform: translateY(-0.625rem);
    box-shadow: 0 1.875rem 4.375rem rgba(0,0,0,.12);
}

/* ===== MEDIA ===== */
.artist-media img {
    width: 100%;
    transition: transform .6s ease;
}

.artist-card:hover img {
    transform: scale(1.08);
}

/* ===== META ===== */
.artist-meta {
    padding: 1.375rem;
}

.artist-meta h5 {
    font-size: 1.05rem;
    margin-bottom: 0.5rem;
}

.artist-text {
    font-size: 0.88rem;
    color: var(--gray);
    line-height: 1.7;
}

/* ===== Category Buttons ===== */
    .gallery-filters {
        text-align: center;
        margin-bottom: 40px;
        position: sticky;
        top: 95px;
        z-index: 1000;
        background: #fff;
        padding: 15px 0;
    }

    .gallery-filters button {
        border: 1px solid var(--primary);
        background: transparent;
        padding: 8px 22px;
        margin: 5px;
        cursor: pointer;
        transition: all .3s ease;
        border-radius: .5rem; 
    }
    .gallery-filters button.active,
    .gallery-filters button:hover {
        background: var(--primary);
        color: #fff;
    }

    /* ===== Gallery Grid ===== */
.gallery-grid {
    display: none;
}

.gallery-grid.active {
    display: block;
}

.masonry {
    column-count: 3;
    column-gap: 1rem;
}

@media (max-width: 991px) {
    .masonry { column-count: 2; }
}

@media (max-width: 575px) {
    .masonry { column-count: 1; }
}

.masonry-item {
    break-inside: avoid;
    margin-bottom: 1rem;
    overflow: hidden;
    opacity: 0;
    transform: translateY(25px);
    transition: opacity .6s ease, transform .6s ease;
}

/* When visible */
.masonry-item.fade-in {
    opacity: 1;
    transform: translateY(0);
}

.masonry-item img {
    width: 100%;
    display: block;
    transition: transform .4s ease;
}

.masonry-item:hover img {
    transform: scale(1.05);
}
.gallery-item {
    position: relative;
    cursor: pointer;
}

.gallery-overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
    padding: 15px;
    /* background: linear-gradient(to top, rgb(0 0 0 / 45%), #b5b5b58c); */
    color: #fff;
    opacity: 0;
    transition: all .3s ease;
    text-align: center;
}

.gallery-item:hover .gallery-overlay {
    opacity: 1;
}

/* ===== Affiliation Gallery – Controlled Chaos Grid ===== */
.general-gallery {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-auto-rows: 160px;
    gap: 16px;
    grid-auto-flow: dense; /* fills gaps automatically */
}

/* ===== Default (covers ALL items) ===== */
.general-gallery .gallery-item {
    grid-column: span 1;
    grid-row: span 1;
    overflow: hidden;
    position: relative;
    opacity: 0;
    transform: translateY(25px);
    transition: opacity .6s ease, transform .6s ease;
}
.general-gallery .gallery-item.fade-in {
    opacity: 1;
    transform: translateY(0);
}

.general-gallery .gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease, filter 0.5s ease;
}


/* ===== CHAOS PATTERN (11-item loop) ===== */

/* Row 1 → 1 big hero */
.general-gallery .gallery-item:nth-child(11n + 1) {
    grid-column: span 1;
    grid-row: span 2;
}

/* Row 2 & 3 → 2 columns */
.general-gallery .gallery-item:nth-child(11n + 2),
.general-gallery .gallery-item:nth-child(11n + 3) {
    grid-column: span 2;
    grid-row: span 2;
}

/* Row 4 → 2 columns (40 / 60 feel) */
.general-gallery .gallery-item:nth-child(11n + 4) {
    grid-column: span 2;
    grid-row: span 2;
}

.general-gallery .gallery-item:nth-child(11n + 5) {
    grid-column: span 2;
    grid-row: span 2;
}

/* Row 5 → single reset */
.general-gallery .gallery-item:nth-child(11n + 6) {
    grid-column: span 1;
    grid-row: span 2;
}

/* Row 6 → 2 columns */
.general-gallery .gallery-item:nth-child(11n + 7),
.general-gallery .gallery-item:nth-child(11n + 8) {
    grid-column: span 1;
    grid-row: span 2;
}

/* Row 7 → 3 columns (1 / 2 / 1) */
.general-gallery .gallery-item:nth-child(11n + 9) {
    grid-column: span 1;
    grid-row: span 2;
}

.general-gallery .gallery-item:nth-child(11n + 10) {
    grid-column: span 2;
    grid-row: span 2;
}

.general-gallery .gallery-item:nth-child(11n + 11) {
    grid-column: span 1;
    grid-row: span 2;
}

/* ===== Hover effect ===== */
.general-gallery .gallery-item:hover img {
    transform: scale(1.05);
    filter: brightness(1.05);
}
/* Overlay */
.general-gallery .gallery-item {
    cursor: pointer;
}

.gallery-overlay h5 {
    margin: 0;
    font-size: 16px;
}

.general-gallery .gallery-item:hover .gallery-overlay {
    opacity: 1;
}

.gallery-modal {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.9);
    z-index: 9999;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 30px;
}

.gallery-modal img {
    max-height: 80vh;
    max-width: 90%;
}

.gallery-modal h5 {
    color: #fff;
    margin-top: 15px;
}
#galleryCarousel .carousel-item {
    max-height: 35rem;
    height: 100%; /* adjust as needed */
    
    -webkit-backface-visibility: hidden; /* iPhone Safari fix */
    backface-visibility: hidden;
    transform: translateZ(0); /* GPU rendering */
}

#galleryCarousel .carousel-item img {
    height: 100%;
    object-fit: cover; /* cover slide area without stretching */
}
.view-pdf-sticky {
    position: fixed;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    background: #000;
    color: #fff;
    padding: .65rem  .5rem;
    text-decoration: none;
    font-size: .8rem;
    border-radius: 1rem 0 0 1rem;
    writing-mode: vertical-rl;
    text-orientation: mixed;
    transition: all .3s ease;
    z-index: 9999;
}

.view-pdf-sticky:hover{
    background: var(--primary);
    color: #fff;
}
.close-modal {
    position: absolute;
    top: 20px;
    right: 30px;
    font-size: 35px;
    color: #fff;
    cursor: pointer;
}

.nav-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: transparent;
    border: none;
    font-size: 40px;
    color: #fff;
    cursor: pointer;
    padding: 10px;
}

.nav-btn.prev { left: 20px; }
.nav-btn.next { right: 20px; }

/* ===== Tablet ===== */
@media (max-width: 991.98px) {
    .general-gallery {
        grid-template-columns: repeat(3, 1fr);
        grid-auto-rows: 140px;
    }

    /* soften hero */
    .general-gallery .gallery-item:nth-child(11n + 1) {
        grid-column: span 3;
        grid-row: span 2;
    }
}

/* ===== Mobile (clean grid) ===== */
@media (max-width: 575.98px) {
    .general-gallery {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 120px;
    }

    .general-gallery .gallery-item {
        grid-column: span 1 !important;
        grid-row: span 1 !important;
    }
}


/*************** End Common CSS ***************/


/*************** Contact Page ***************/
 .contact {
  background: #F7F8FF;
  align-items: center;
}
.contact p{
    font-size: 1rem;
}
.contact label{
    font-size: 1.1rem;
}

.form-control::placeholder {
  color: var(--gray);
  font-size: .85rem;
  opacity: 1; /* Ensure full visibility */
}

.submit_btn {
    background: var(--primary);
    color: var(--white);
    padding: .5rem 1rem .5rem 1.5rem;
    border-radius: .35rem;
    width: 100%;
}
.submit_btn:hover {
    background: var(--white);
    color: var(--primary);
}
.contact-card {
    background: #fff;
    border: 1px solid rgba(0,0,0,0.06);
    border-radius: 16px;
    padding: 22px;
    box-shadow: 0 12px 28px rgba(0,0,0,0.05);
    transition: all 0.3s ease;
}

.contact-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 22px 45px rgba(0,0,0,0.08);
}

.contact-title {
    font-size: 1.05rem;
    font-weight: 600;
    margin-bottom: 2px;
}

.contact-subtitle {
    font-size: 0.85rem;
    color: var(--gray);
    margin-bottom: 12px;
}

.contact-text {
    font-size: 0.95rem;
    color: var(--gray);;
    line-height: 1.6;
}

.contact-card a {
    color: #000;
    text-decoration: none;
    border-bottom: 1px solid rgba(0,0,0,0.25);
}

.contact-card a:hover {
    border-color: #000;
}


/*************** End Contact Page ***************/

/*************** Footer CSS ***************/

.footer {
  background: var(--primary);
  align-items: center;
  padding: 1rem 0rem;
}
.footer hr{
    border-top: 1px solid #9A9EA6 !important;
}

.quick-links {
    display: flex;
    flex-flow: column;
    float: right;
}
.quick-links a{
    margin-bottom: .35rem;
}
.footer p{
    color: var(--white);
    font-size: .8rem;
    font-weight: 500;
}
.footer .social img{
    width: 2rem;
}
.footer a {
    color: #ffffff;
    font-size: .85rem;
    text-align: left;
    text-decoration: none;
}
.footer .contact-info img{
    width: 1.12rem;
    margin-right: .25rem;
}

.copy-right p{
    font-size: .85rem;
    color: var(--white);
    font-weight: 400;
    padding-top: 1rem;
}



/*************** Footer CSS ***************/

/*************** Responsive CSS ***************/

@media screen and (max-width: 991px) {
    h1 {
        font-size: 2.5rem;
    }

    h2 {
        font-size: 2rem;
    }

    h3 {
        font-size: 1.75rem;
    }

    h4 {
        font-size: 1.5rem;
    }

    p {
        font-size: .95rem;
    }
    .padding-top {
        padding-top: 3rem;
    }

    .padding-bottom {
        padding-bottom: 3rem;
    }
    .nav-buttons{
        flex-direction: row;
        margin-top: 1rem;
    }
    
    .home .banner {
        height: auto !important;
        margin: 0 0 60px 0;
    }
    .home .banner .text-overlay-bar {
        background: linear-gradient(90deg,rgba(255, 255, 255, .25) 30%, rgba(255, 255, 255, 0.25) 30%, rgba(255, 255, 255, .25) 100%);
        backdrop-filter: blur(0px);
        padding: 60px 0 0 80px;
    }
    .home .banner .text-overlay-bar h1{
        font-size: 2rem;
    }
    .home .banner .artist-img {
        left: 0;
        height: 105%;
        width: auto;
    }
    .home .banner .artwork-layer{
        background-image: url('/images/banner/home-mobile.png') !important;
        width: 65%;
    }
    .home .banner .text-subtitle-bar h4 {
        font-size: 1rem;
    }
    .page-banner .banner-content h1{
        font-size: 1.5rem !important;
    }
    .video iframe {
        width: 100%;
        height: 450px;
    }
     .artist-frame {
        padding-left: 20px;
    }
    .artist-title {
        font-size: 1.75rem;
    }
    .artist-title::after {
        display: none;
    }
    .mendatory h2, .mendatory p{
        color: var(--black);
    }
    .contact{
        height: auto;
        padding-bottom: 2rem;
    }
    .social {
        margin-right: 0rem;
    }
    .quick-links {
        float: left;
    }
    .footer {
        height: auto;
    }
    
    .map {
        height: 400px;
    }
}

@media screen and (max-width: 768px) {
    .col-form-label {
        text-align: left;
    }

}
@media screen and (max-width: 767px) {
   .home .banner .text-overlay-bar {
        bottom: 4.5%;
    }
}

@media screen and (max-width: 500px) {
    .nav-logo {
        max-width: 9rem;
    }
    h1{
        font-size: 1.5rem;
    }
    h2 {
        font-size: 1.25rem;
    }
    h3 {
        font-size: 1.25rem;
    }
    h6 {
        font-size: .85rem;
    }
    .home .banner {
        min-height: 300px;
    }
    .home .banner .text-overlay-bar h1{
        font-size: 1.25rem;
    }
    .home .banner .text-subtitle-bar {
        padding: 0 0 0 115px;
    }
    .video iframe {
        height: 250px;
    }
    .gallery-filters {
        top: 88px;
    }
    .gallery-filters button {
        padding: 3px 6px;
        /* font-size: small; */
        margin: 3px;
    }
}
@media screen and (max-width: 375px) {

}
@media screen and (max-width: 320px) {

}

/*************** End Responsive CSS ***************/