/* Offers Page Styles */
@import url('https://fonts.googleapis.com/css2?family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Lora:ital,wght@0,400;0,500;0,700;1,400;1,500&display=swap');

:root {
    --color-beige: #F0EFE7;
    --color-logo-gray: #183D4A;
    --color-cyan: #13C2CF;
}

body {
    background-color: var(--color-beige);
    font-family: 'Lora', serif;
}

/* ===================================
   HERO SECTION - Figma Design
   =================================== */
.hero-section {
    position: relative;
    background: transparent;
    height: 480px;
    /* Increased to fit full title with padding */
    margin-top: 100px;
    /* Space for navbar */
    z-index: 10;
}

/* Background mask group container */
.hero-section .hero-bg,
.hero-section .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 480px;
    /* Match hero section height */
    clip-path: polygon(0 0, 100% 0, 100% 60%, 0 90%);
    /* Steeper diagonal cutout */
    z-index: 1;
}

.hero-section .hero-bg {
    background-image: url('../assets/treatments/header_bg.png');
    background-size: cover;
    /* Cover the entire width */
    background-position: center center;
    /* Center the image both horizontally and vertically */
    background-repeat: no-repeat;
    width: 100%;
    /* Ensure full width coverage */
}

.hero-section .overlay {
    background-color: rgba(24, 61, 74, 0.7);
    /* #183D4A with 0.7 opacity */
    z-index: 2;
    display: flex;
    align-items: flex-start;
    padding-top: 125px;
    /* Reduced for compact hero section */
    padding-left: 75px;
    /* Exact left position from Figma */
}

.hero-title {
    font-family: 'Libre Baskerville', serif;
    font-style: normal;
    font-weight: 700;
    font-size: 80px;
    line-height: 120px;
    /* Exact line-height from Figma (150%) */
    width: 502px;
    /* Exact width from Figma */
    height: auto;
    /* Auto height to fit content */
    color: var(--color-beige);
    text-align: left;
    margin: 0;
    /* Animation */
    opacity: 0;
    animation: fadeInUp 1s ease-out forwards;
}

/* Keyframe for hero title animation */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ===================================
   INTRO SECTION - Figma Design
   =================================== */
.intro-section {
    position: relative;
    margin-left: auto;
    margin-right: 2%;
    /* Right-aligned with 2% margin from right */
    width: 55%;
    max-width: 700px;
    padding: 1rem 2rem 2rem;
    /* Reduced top padding */
    background: transparent;
    /* Transparent to show beige background */
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    /* Animation - starts after hero animation completes */
    opacity: 0;
    animation: fadeIn 0.8s ease-out 1s forwards;
}

/* Keyframe for intro section animation */
@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

.intro-text {
    font-family: 'Lora', serif;
    font-style: italic;
    font-weight: 500;
    font-size: 24px;
    line-height: 1.6;
    text-align: right;
    /* Right-aligned text */
    color: var(--color-logo-gray);
    /* #183D4A */
    margin: 0;
    width: 100%;
}

/* ===================================
   OFFERS LIST SECTION
   =================================== */
.offers-list {
    font-family: 'Montserrat', sans-serif;
    color: var(--color-logo-gray);
    font-size: 1rem;
    padding-left: 1rem;
}

.offers-list h2 {
    font-family: 'Lora', serif;
    font-weight: 600;
    font-size: 34px;
    color: var(--color-logo-gray);
    margin-bottom: 2rem;
    letter-spacing: 2px;
}

.offers-list ul {
    list-style: none;
    padding-left: 0;
}

.offers-list li {
    font-family: 'Montserrat', sans-serif;
    font-size: 22px;
    font-weight: normal;
    color: var(--color-logo-gray);
    margin-bottom: 0.8rem;
    line-height: 2.1;
}

/* Icon and Text Layout */
.sicu-icon-text {
    display: flex;
    align-items: flex-start;
}

.sicu-text-block {
    max-width: 100%;
}

.teeth-icon {
    font-size: 25px !important;
    color: #00bfff;
    margin-right: 10px;
    flex-shrink: 0;
    position: relative;
    top: 4px !important;
}

/* ===================================
   RESPONSIVE ADJUSTMENTS
   =================================== */

/* Tablet (Small Desktop to Tablet Portrait) */
@media (max-width: 1024px) {
    .hero-section {
        height: 420px;
        margin-top: 80px;
    }

    .hero-section .overlay {
        padding-top: 100px;
        padding-left: 50px;
    }

    .hero-title {
        font-size: 56px;
        line-height: 84px;
        width: auto;
        max-width: 60%;
        height: auto;
    }

    .intro-section {
        position: relative;
        margin-left: auto;
        margin-right: 3%;
        width: 55%;
        max-width: 700px;
        padding: 1rem 1.5rem 1.5rem;
    }

    .intro-text {
        font-size: 20px;
        line-height: 40px;
    }
}

/* Mobile (Tablets and Switch to Stacked Layout) */
@media (max-width: 768px) {
    .hero-section {
        height: auto;
        min-height: 400px;
    }

    /* Remove clip on mobile for better stacking */
    .hero-section .hero-bg,
    .hero-section .overlay {
        position: absolute;
        height: 100%;
        background-position: center center;
        clip-path: none;
    }

    .hero-section .overlay {
        padding: 80px 20px 40px;
        text-align: center;
        display: flex;
        justify-content: center;
        align-items: center;
        width: 100%;
    }

    .hero-title {
        width: 100%;
        max-width: 100%;
        height: auto;
        font-size: 40px;
        line-height: 60px;
        text-align: center;
        margin-bottom: 2rem;
    }

    /* Stack intro below */
    .intro-section {
        position: relative;
        bottom: auto;
        right: auto;
        width: 100%;
        max-width: 100%;
        background: var(--color-beige);
        padding: 40px 20px;
        text-align: center;
        z-index: 6;
    }

    .intro-text {
        text-align: center;
        font-size: 18px;
        line-height: 36px;
    }

    .offers-list h2 {
        font-size: 26px;
        margin-bottom: 14px;
    }

    .offers-list li {
        font-size: 18px;
        letter-spacing: 0.8px;
    }
}

/* Small Mobile */
@media (max-width: 480px) {
    .hero-title {
        font-size: 32px;
        line-height: 48px;
    }

    .hero-section .overlay {
        padding: 60px 20px 20px;
    }

    .intro-section {
        padding: 30px 20px;
    }

    .intro-text {
        font-size: 16px;
        line-height: 32px;
    }

    .offers-list h2 {
        font-size: 18px;
        margin-bottom: 14px;
    }

    .offers-list li {
        font-size: 16px;
        letter-spacing: 0.8px;
    }

    .teeth-icon {
        font-size: 20px !important;
        top: 9px !important;
    }
}

@media (max-width: 320px) {
    .hero-title {
        font-size: 28px !important;
    }
}

/* ===================================
   LAPTOP 1024px - Offers Page
   =================================== */
@media screen and (min-width: 1024px) and (max-width: 1439px) {

    body,
    html {
        overflow-x: hidden !important;
        max-width: 100vw !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .container {
        max-width: 95% !important;
        margin: 0 auto !important;
        padding-left: 25px !important;
        padding-right: 25px !important;
    }

    .hero-section {
        height: 420px !important;
        margin-top: 80px !important;
    }

    .hero-section .overlay {
        padding-top: 120px !important;
        padding-left: 40px !important;
    }

    .hero-title {
        font-size: 55px !important;
        line-height: 80px !important;
    }

    .intro-section {
        position: relative !important;
        margin-left: auto !important;
        margin-right: 3% !important;
        width: 55% !important;
        padding: 1rem 1.5rem 1.5rem !important;
    }

    .intro-text {
        font-size: 18px !important;
        line-height: 36px !important;
    }

    .offers-list {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    .offers-list h2 {
        font-size: 26px !important;
        margin-bottom: 1.5rem !important;
        letter-spacing: 1.5px !important;
    }

    .offers-list li {
        font-size: 19px !important;
        margin-bottom: 1rem !important;
        line-height: 1.8 !important;
        letter-spacing: 1px !important;
    }

    .teeth-icon {
        font-size: 22px !important;
        margin-top: 8px !important;
    }
}

/* ===================================
   LAPTOP L DISPLAYS (1440px and above)
   =================================== */
@media screen and (min-width: 1440px) and (max-width: 2559px) {

    body,
    html {
        overflow-x: hidden !important;
        max-width: 100vw !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .container {
        max-width: 95% !important;
        margin: 0 auto !important;
        padding-left: 35px !important;
        padding-right: 35px !important;
    }

    .hero-section {
        height: 550px !important;
        margin-top: 80px !important;
    }

    .hero-section .hero-bg,
    .hero-section .overlay {
        height: 550px !important;
        clip-path: polygon(0 0, 100% 0, 100% 60%, 0 90%) !important;
    }

    .hero-section .overlay {
        padding-top: 100px !important;
        padding-left: 50px !important;
    }

    .hero-title {
        font-size: 79px !important;
        line-height: 110px !important;
        width: 750px !important;
    }

    .intro-section {
        position: relative !important;
        margin-left: auto !important;
        margin-right: 2% !important;
        width: 55% !important;
        max-width: 900px !important;
        padding: 1rem 1.7rem 2rem !important;
    }

    .intro-text {
        font-size: 25px !important;
        line-height: 50px !important;
    }

    .offers-list {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .offers-list h2 {
        font-size: 34px !important;
        margin-bottom: 1.7rem !important;
    }

    .offers-list li {
        font-size: 25px !important;
        margin-bottom: 0.85rem !important;
        line-height: 1.6 !important;
    }

    .teeth-icon {
        font-size: 28px !important;
        margin-top: 11px !important;
    }
}

/* ===================================
   4K DISPLAYS (2560px and above)
   =================================== */
@media screen and (min-width: 2560px) {

    body,
    html {
        overflow-x: hidden !important;
        max-width: 100vw !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .container {
        max-width: 95% !important;
        margin: 0 auto !important;
        padding-left: 40px !important;
        padding-right: 40px !important;
    }

    .hero-section {
        height: 850px !important;
        margin-top: 120px !important;
    }

    .hero-section .hero-bg,
    .hero-section .overlay {
        height: 850px !important;
        clip-path: polygon(0 0, 100% 0, 100% 60%, 0 90%) !important;
    }

    .hero-section .overlay {
        padding-top: 150px !important;
        padding-left: 80px !important;
    }

    .hero-title {
        font-size: 140px !important;
        line-height: 180px !important;
        width: 1000px !important;
        height: auto !important;
    }

    .intro-section {
        position: relative !important;
        margin-left: auto !important;
        margin-right: 2% !important;
        width: 55% !important;
        max-width: 1600px !important;
        padding: 1.5rem 3rem 3rem !important;
    }

    .intro-text {
        font-size: 44px !important;
        line-height: 88px !important;
    }

    .offers-list {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    .offers-list h2 {
        font-size: 60px !important;
        margin-bottom: 3rem !important;
    }

    .offers-list li {
        font-size: 44px !important;
        margin-bottom: 1.5rem !important;
        line-height: 1.6 !important;
    }

    .teeth-icon {
        font-size: 50px !important;
        margin-top: 10px !important;
    }
}

/* ===================================
   FIX FOR 1280x832 RESOLUTION
   =================================== */
@media screen and (max-width: 1280px) and (max-height: 900px),
screen and (max-width: 1280px) and (max-height: 832px) {

    body,
    html {
        overflow-x: hidden !important;
        max-width: 100vw !important;
    }

    .container,
    .container-fluid {
        max-width: 100vw !important;
    }

    .offers-list {
        padding-left: 70px !important;
        padding-right: 10px !important;
    }
}