/*
Theme Name: Anothemes
Author: Anothemes
Author URI: https://anothemes.vn/
Description: Custom WordPress theme Anothemes
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.8
Requires PHP: 8.0
License: GPL v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: anothemes
*/

@import 'assets/css/swiper-bundle.min.css';

@font-face {
    font-family: 'Momo Signature';
    src: url('./assets/fonts/MomoSignature-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap; /* Recommended for performance – shows fallback font while loading */
}

@font-face {
    font-family: 'SVN Gilroy';
    src: url('./assets/fonts/SVN-Gilroy-Bold.otf') format('opentype');
    font-weight: 700;   /* Bold weight */
    font-style: normal;
    font-display: swap; /* Best for performance – shows fallback while loading */
}

@font-face {
    font-family: 'Be Vietnam Pro';
    src: url('./assets/fonts/BeVietnamPro-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Be Vietnam Pro';
    src: url('./assets/fonts/BeVietnamPro-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Be Vietnam Pro';
    src: url('./assets/fonts/BeVietnamPro-SemiBold.ttf') format('truetype');
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Be Vietnam Pro';
    src: url('./assets/fonts/BeVietnamPro-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Gustavo';
    src: url('./assets/fonts/Gustavo-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Gustavo';
    src: url('./assets/fonts/Gustavo-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Gustavo';
    src: url('./assets/fonts/Gustavo-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

body {
    padding: 0;
    margin: 0;
    overflow-x: hidden;
}

@media (prefers-reduced-motion: reduce) {
    html body * {
        transition-delay: 0s !important;
        transition-duration: 0.4s !important;
    }
}

/* FPT banner */
.fpt-banner-wrapper {
    position: relative;
    min-height: 843px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border-radius: 12px;
    padding: 113px 0 386px;
}

.fpt-banner-bg {
    position: absolute;
    inset: 0;
}

.fpt-banner-wrapper .fpt-banner-bg img {
    height: 100%;
    width: 100%;
    object-fit: cover;
}

.fpt-banner-content {
    position: relative;
    z-index: 2;
    text-align: center;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    padding-top: 20px;
}

.fpt-banner-title-1-wrapper {
    position: relative;
    width: fit-content;
    padding: 20px 45px;
}

.fpt-banner-title-1-bg {
    position: absolute;
    inset: 0;
}

.elementor .fpt-banner-title-1-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: drop-shadow(2px 2px 3px rgba(0, 0, 0, 0.8));
}

.fpt-banner-title-1 {
    font-family: 'Momo Signature', sans-serif;
    font-size: 52px;
    font-weight: 400;
    margin: 0;
    line-height: 1;
    z-index: 1;
    position: relative;
}

.fpt-banner-title-1 span {
    display: block;
}

.fpt-banner-title-2 {
    font-family: 'SVN Gilroy', sans-serif;
    font-size: 96px;
    font-weight: 700;
    margin: 0;
    line-height: 1;
    max-width: 836px;
}

.fpt-banner-details {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 53px;
    position: absolute;
    left: 39px;
    bottom: 21px;
    z-index: 1;
}

.fpt-banner-details li {
    font-size: 16px;
    line-height: 24px;
    color: #fff;
    position: relative;
}

.fpt-banner-details li::after {
    content: '';
    height: 7px;
    width: 7px;
    border-radius: 50%;
    background-color: #fff;
    display: block;
    position: absolute;
    right: -30px;
    top: 30%;
}

.fpt-banner-details li:last-child::after {
    display: none;
}

.fpt-banner-asset-1 {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 0;
}

.fpt-banner-asset-1 {
    margin-bottom: -4px;
}

.fpt-banner-asset-2 {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    z-index: 0;
}

@media (max-width: 1024px) {
    .fpt-banner-title-1 { font-size: 50px; }
    .fpt-banner-title-2 { font-size: 60px; }
    .fpt-banner-details li { font-size: 28px; }
}

@media (max-width: 767px) {
    .fpt-banner-wrapper { min-height: 500px; }
    .fpt-banner-title-1 { font-size: 40px; }
    .fpt-banner-title-2 { font-size: 48px; }
    .fpt-banner-details {
        flex-direction: column;
        align-items: center;
        gap: 20px;
    }
    .fpt-banner-details li { font-size: 24px; }
}

/* FPT Gallery with Title */
.fpt-gallery-wrapper {
    display: flex;
    flex-wrap: wrap;
    justify-content: center; /* Centers items if fewer than max per row */
    gap: 24px 30px; /* Consistent spacing */
    margin: 0 auto;
    overflow: hidden;
}

.fpt-gallery-item {
    flex: 0 1 calc((100% - 60px) / 3); /* Max 3 per row, minus gap */
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    overflow: hidden;
    position: relative;
}

.fpt-gallery-item-link {
    display: block;
    text-decoration: none;
    color: inherit;
}

.fpt-gallery-item-img {
    width: 100%;
    overflow: hidden;
    border-radius: 7px;
    line-height: 0.5;
    position: relative;
}

.fpt-gallery-item .fpt-gallery-item-img img {
    width: 100%;
    aspect-ratio: 425 / 272;
    object-fit: cover;
    object-position: center;
    display: block;
    transform: scale(1);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1)!important;
    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.fpt-gallery-item:hover .fpt-gallery-item-img img {
    transform: scale(1.05) !important;
}

.fpt-gallery-index {
    padding-right: 5px;
}

.fpt-gallery-title {
    font-family: 'Be Vietnam Pro', sans-serif;
    font-size: 27px;
    font-weight: 500;
    margin: 0;
    color: #393936;
    line-height: 1.5;
    text-align: center;
}

.fpt-gallery-item a {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: block;
}

@media (max-width: 1024px) {
    .fpt-gallery-item {
        flex: 0 1 calc(50% - 30px); /* 2 per row on tablets */
    }
}

@media (max-width: 767px) {
    .fpt-gallery-item {
        flex: 0 1 100%; /* 1 per row on mobile */
    }
}

/* FPT Section Title */
.fpt-section-title-wrapper {
    position: relative;
}

.fpt-section-title-index {
    font-family: 'Gustavo', sans-serif;
    font-size: 128px;
    font-weight: 700;
    line-height: 1;
    color: #FFD39880;
    text-align: center;
    position: absolute;
    left: 50%;
    top: 0;
    transform: translate(-50%, -50%);
}

h2.fpt-section-title {
    font-family: 'Gustavo', sans-serif;
    font-size: 56px;
    font-weight: 700;
    max-width: 777px;
    margin: 0 auto;
    padding: 0;
    color: #F47A43;
    position: relative;
    z-index: 1;
    text-align: center;
}

.fpt-section-description {
    font-family: 'Be Vietnam Pro', sans-serif;
    font-size: 25px;
    line-height: 1.28;
    color: #54534D;
    max-width: 883px;
    margin: 40px auto 0;
    padding: 0;
    text-align: center;
    position: relative;
    z-index: 1;
}

.fpt-section-description p {
    margin: 0;
    padding: 0;
}

/* FPT Title */
.fpt-title {
    font-family: 'Gustavo', sans-serif;
    font-size: 40px;
    font-weight: 500;
    line-height: 1.2;
    color: #FF8400;
    margin: 0;
}

/* FPT Row Text and Image */
.fpt-row-text-img-inner {    
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
}

.fpt-row-text-and-img-wrapper.fpt-row-reverse .fpt-row-text-img-inner {
    flex-direction: row-reverse;
}

.fpt-row-img-column {
    width: 100%;
    height: fit-content;
    max-width: 759px;
    flex-shrink: 0;
}

.fpt-row-img-wrapper {
    width: 100%;
    height: 100%;
    border-radius: 12px;
    overflow: hidden;
    line-height: 0.5;
}

.fpt-row-img-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.fpt-row-text-column {
    height: fit-content;
    width: 100%;
    font-family: 'Be Vietnam Pro', sans-serif;
    font-size: 24px;
    line-height: 30px;
    font-weight: 500;
    color: #54534D;
}

.fpt-row-text-content p {
    padding: 0;
    margin: 0;
}

/* FPT Image Slider */
.fpt-image-slider-wrapper {
    position: relative;
    width: 100%;
    margin: 0 auto;
}

.fpt-image-slider {
    width: 100%;
    overflow: visible;
}

.fpt-image-slider .swiper-wrapper {
    display: flex;
    transition-timing-function: linear;
}

.fpt-image-slider .swiper-slide {
    height: auto;
    width: auto!important;
    flex-shrink: 0;
    display: flex;
    justify-content: center;
}

.fpt-image-slider-slide-inner {
    width: 100%;
    border-radius: 12px;
    overflow: hidden;
    line-height: 0;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease!important;
}

.fpt-image-slider-slide-inner img {
    display: block;
    width: auto;           /* Image width dictates slide width */
    max-width: 100%;       /* Ensures images don't exceed container width if too large */
    height: 100%;  
}

.fpt-image-slider-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    display: block;
    transform: scale(1);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

/* Hover state: when wrapper is hovered, scale up only the active slide's image */
.fpt-image-slider-wrapper.is-hovered .swiper-slide-active .fpt-image-slider-image {
    transform: scale(1.05);
}

@media (max-width: 1024px) {
    .fpt-image-slider-slide-inner {
        max-width: 420px;
    }
}

@media (max-width: 767px) {
    .fpt-image-slider-slide-inner {
        max-width: 100%;
        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
    }
}

/* FPT Text Editor */
.fpt-text-editor-content {
    color: #54534D;
    font-family: 'Be Vietnam Pro', sans-serif;
    font-size: 24px;
    line-height: 30px;
}

.fpt-text-editor-content p {
    margin: 0;
    padding: 0;
}
