@font-face {
    font-family: 'Playfair';
    src: url('/fonts/playfair-display-latin-400-normal.woff2');
}


@font-face {
    font-family: 'Noto Serif JP';
    src: url('/fonts/noto-serif-jp-japanese-400-normal.woff2');
}

@font-face {
    font-family: 'Song';
    src: url('/fonts/sanjiheisongtixianxi.woff2');
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth; /* Smooth scrolling for anchor links */
}

body {
    font-family: 'Noto Serif JP', 'Cinzel', 'Song', serif, Helvetica;
    line-height: 1.6;
    color: #333; /* Dark Gray */
    background-color: #fff; /* White */
    font-size: 16px;
    position: relative;
}


.container {
    max-width: 1140px; /* Controls max width, prevents stretching */
    margin: 0 auto;
    padding: 0 20px;
}

a {
    color: #333;
    text-decoration: none;
    transition: color 0.3s ease;
}

p > a {
    display: inline-block;
    font-size: 1rem;
    color: #EE96C2;
    position: relative;
    transition: all 0.3s ease;
}

p > a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 0;
    height: 2px;
    background-color: #E867A7;
    transition: width 0.3s ease;

}

p > a:hover {
    color: #E867A7;
    /* font-size: 1.05rem; */
    transform: scale(1.05);
    text-shadow: 0 2px 4px rgba(232, 103, 167, 0.4);
}

p > a:hover::after {
    width: 100%;
}

p > a.menu-button {
    display: inline-block;
    padding: 10px 20px;
    background-color: #56BAA0;
    color: white;
    border-radius: 6px;
    text-decoration: none;
    transition: all 0.3s ease;
    margin: 5px;
}
  
p > a.menu-button:hover {
    background-color: #48B870;
}

p > a.menu-button:hover::after {
    width: unset;
}

.back-to-top {
    position: fixed;
    bottom: 5%;
    right: 5%;
    background-color: #56BAA0;
    color: white;
    padding: 10px 15px;
    border-radius: 20px;
    text-decoration: none;
    font-size: 14px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
    transition: background-color 0.3s ease;
}
  
.back-to-top:hover {
    background-color: #48B870;
}

h2 {
    font-family: 'Playfair', 'Noto Serif JP', 'Song', serif;
    font-size: 2.2rem;
    font-weight: 300; /* Lighter font weight for elegance */
    margin-bottom: 30px;
    text-align: center;
    color: #111; /* Near black */
    letter-spacing: 2px;
}

.fade-in {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 1s ease, transform 1s ease;
}

.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}

video.showreel {
    width: 100%;
    max-width: 1100px;
    height: auto;
    display: block;
    margin: 40px auto;
    border-radius: 10px;
    box-shadow: 0 8px 20px rgba(0,0,0,0.1);
    background-color: #000;
}

h3 {
    font-size: 1.4rem;
    font-weight: 400;
    margin-bottom: 10px;
    color: #222;
}

p {
    margin-bottom: 15px;
    color: #555; /* Medium Gray */
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

.fade-in > img {
    margin: auto;
    height: 25vh;
}

main {
    position: relative;
    z-index: 2;
    background-image: url('/images/bg2.webp');
    background-repeat: no-repeat;
    background-attachment: fixed; 
    background-position-x: center;
    background-size: cover;
    /* padding-bottom: 60px; */
}

main::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255,255,255,0.6); /* Adjust for visibility */
    z-index: -1;
}

.btImg {
    position: fixed;
    bottom: 0;
    right: 0;
}

iframe {
    max-width: 100%;
}

/* --- Header Styling --- */
#main-header {
    background-color: #fff; /* White background */
    padding: 15px 0;
    position: sticky; /* Sticky header */
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05); /* Subtle shadow */
}

#main-header .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo img { 
    width: 100px; 
    height: auto;
}

.main-nav ul {
    list-style: none;
    display: flex;
}

.main-nav ul li {
    margin-left: 25px; /* Spacing between nav items */
}

.main-nav ul li a {
    font-size: 1rem;
    padding: 5px 0; /* Minimal padding */
    position: relative; /* For underline effect */
    color: #555;
}

/* Simple underline effect on hover/active */
.main-nav ul li a::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 1px;
    background-color: #E867A7;
    transition: width 0.3s ease;
}

.main-nav ul li a:hover::after,
.main-nav ul li a.active::after { /* Add active class via JS if needed */
    width: 100%;
}

.main-nav ul li a.active {
    color: #E867A7; /* Accent color for active link text */
    font-weight: bold; /* Make active link bold */
}

/* Simple rain sakura petal */
.petal {
    position: absolute;
    top: -50px;
    width: 20px;
    height: 20px;
    animation: fall 12s linear infinite;
  }
  
@keyframes fall {
    0% {
      transform: translateX(0) translateY(0) rotate(0deg);
      opacity: 0.8;
    }
    50% {
      transform: translateX(30px) translateY(50vh) rotate(25deg);
      opacity: 0.6;
    }
    100% {
      transform: translateX(60px) translateY(100vh) rotate(50deg);
      opacity: 0.3;
    }
  }

@-webkit-keyframes fall {
    0% {
      transform: translateX(0) translateY(0) rotate(0deg);
      opacity: 0.8;
    }
    50% {
      transform: translateX(30px) translateY(50vh) rotate(25deg);
      opacity: 0.6;
    }
    100% {
      transform: translateX(60px) translateY(100vh) rotate(50deg);
      opacity: 0.3;
    }
  }
  
  /* Random positions and delays */
.petal:nth-child(1) { left: 10vw; animation-delay: 0s; animation-duration: 10s; }
.petal:nth-child(2) { left: 20vw; animation-delay: 2s; animation-duration: 12s; }
.petal:nth-child(3) { left: 30vw; animation-delay: 4s; animation-duration: 11s; }
.petal:nth-child(4) { left: 40vw; animation-delay: 1s; animation-duration: 13s; }
.petal:nth-child(5) { left: 50vw; animation-delay: 3s; animation-duration: 9s; }
.petal:nth-child(6) { left: 60vw; animation-delay: 5s; animation-duration: 14s; }
.petal:nth-child(7) { left: 70vw; animation-delay: 0.5s; animation-duration: 10s; }
.petal:nth-child(8) { left: 80vw; animation-delay: 3.5s; animation-duration: 12s; }
/*.petal:nth-child(9) { left: 85vw; animation-delay: 1.5s; animation-duration: 11s; }
.petal:nth-child(10) { left: 45vw; animation-delay: 2.5s; animation-duration: 13s; }
*/

.burger-menu {
    display: none; /* Hidden by default on larger screens */
    background: none;
    border: none;
    padding: 5px; /* Add some padding for easier tapping */
    cursor: pointer;
    /* Remove fixed font-size, size will be controlled by SVG */
    line-height: 0; /* Prevent extra space */
}

/* Style for the SVG icons within the button */
.burger-menu .icon {
    width: 28px; /* Control SVG size */
    height: 28px;
    stroke: #333; /* Control SVG color */
    stroke-width: 2; /* Control line thickness */
    display: block; /* Ensure it behaves like a block element */
}

.burger-menu .icon-close {
    display: none; /* Ensure close icon is hidden by default */
}

.language-switcher {
    text-align: right;
    font-size: 0.9rem;
    margin: 1rem;
}
.language-switcher a {
    margin-left: 0.5rem;
    text-decoration: none;
}
.language-switcher a:hover {
    color: #E867A7;
}

/* --- Hero Slider Styling --- */
.hero-slider {
    position: relative;
    width: 100%;
    height: calc(100vh - 70px); /* Keep your desired height */
    max-height: 800px;
    overflow: hidden;
    /* Change background here or ensure .slide background covers it */
    background-color: #fff; /* Dark gray/near black background for the whole slider area */
}

.arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    font-size: 3rem;
    color: rgba(0, 0, 0, 0.5); /* white with 50% opacity */
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.2em 0.5em;
    z-index: 10;
    transition: color 0.3s ease;
}
  
.arrow:hover {
    color: rgba(0, 0, 0, 1); /* full white on hover */
}

.arrow.prev {
    left: 10vw;
}

.arrow.next {
    right: 10vw;
}

.slider-container {
    position: relative;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
}

.slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 1s ease-in-out;
    z-index: 2;
    display: flex; /* Use flexbox to easily center the image */
    justify-content: center; /* Center horizontally */
    align-items: center; /* Center vertically */
    background-color: #fff; 
}

.slide.active {
    opacity: 1;
    z-index: 3;
}

.slide img {
    width: 100%; /* Let the container control max-width */
    height: 100%; /* Let the container control max-height */
    object-fit: contain; /* CHANGE THIS! Ensures the whole image fits */
    /* object-position: center; /* Center is default for contain, but good to be explicit */
    max-width: 100%; /* Redundant with width:100% but safe */
    max-height: 100%; /* Ensure image doesn't overflow its flex container */
    display: block; /* Remove any potential inline spacing */
}

.slider-nav {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 4;
    display: flex;
    gap: 12px; /* Space between dots */
}

.slider-nav button {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.7); /* White border */
    background-color: transparent;
    cursor: pointer;
    padding: 0;
    transition: background-color 0.3s ease;
}

.slider-nav button:hover {
    background-color: rgba(255, 255, 255, 0.4);
}

.slider-nav button.active {
    background-color: rgba(255, 255, 255, 0.9); /* Solid white active dot */
}

/* --- Content Section Styling --- */
.content-section {
    padding: 80px 0;
}

.video-section {
    padding: 30px 0;
}

/* .content-section.bg-gray {
    background-color: #f8f8f8; 
} */

.content-section.bg-gray {
    background-color: rgba(248, 248, 248, 0.85); /* Soft light gray with transparency */
}

.content-section .container {
    max-width: 800px;
    text-align: center;
}

.container.pricing {
    max-width: 1000px;
}

.content-section h2 {
    margin-bottom: 40px;
}

/* --- Services Section Specific --- */
.service-items {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 30px;
    text-align: left; /* Align text left within service items */
    margin-top: 40px;
}

.service-item {
    background-color: #fff; /* White background for items on gray */
    padding: 25px;
    border: 1px solid #eee;
    border-radius: 4px; /* Slightly rounded corners */
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.03);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.service-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.08);
}

/* On white background, remove item background */
#services.content-section:not(.bg-gray) .service-item {
     background-color: transparent;
     border: none;
     padding: 0;
     box-shadow: none;
     text-align: center; /* Center if no background */
}
#services.content-section:not(.bg-gray) .service-items {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
}


/* --- Contact Section Specific --- */
.contact-info p {
    margin-bottom: 10px;
    color: #444;
}

.contact-info i {
    margin-right: 10px;
    color: #777; /* Icon color */
    width: 20px; /* Ensure icons align */
    text-align: center;
}

picture img {
    margin: auto;
}

hr {
    border: 0;
    height: 2px;
    background-image: linear-gradient(to right, rgba(238, 150, 194, 0), rgba(232, 103, 167, 0.75), rgba(238, 150, 194, 0)); /* Fading gradient line */
    margin: 60px auto; /* Add more vertical space */
    max-width: 300px; /* Make it shorter */
    position: relative; /* For pseudo-element */
}

hr::before {
    content: '';
    display: block;
    width: 10px; height: 10px; /* Smaller diamond */
    transform: translateX(-50%) rotate(45deg); /* Center and rotate */
    background-color: #ee96c2; /* Accent color */
    position: absolute; /* Position relative to the hr line */
    left: 50%;
    top: -4px; /* Position it centered on the line */
}

svg {
    width: 18px;
    height: 18px;
    margin-right: 10px;
    vertical-align: middle;
    fill: #777;
}
/* --- Footer Styling --- */
footer {
    background-color: #222; /* Dark Gray/Black */
    color: #aaa; /* Light Gray text */
    padding: 30px 0;
    text-align: center;
    font-size: 0.9rem;
}

footer p {
    margin-bottom: 0;
}

/* --- Pricing Packages Section --- */
#pricing-packages .section-intro {
    max-width: 600px;
    margin: 0 auto 40px auto;
    font-size: 1rem;
    color: #666;
}

.pricing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
    margin-top: 40px;
}

.pricing-package {
    background-color: #fff;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 30px;
    text-align: left;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.pricing-package:hover {
    transform: translateY(-5px);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
}

.package-header {
    margin-bottom: 20px;
    text-align: center;
    position: relative; /* For badge positioning */
}

.package-header h3 {
    font-size: 1.6rem;
    color: #333;
    font-family: 'Playfair', 'Noto Serif JP', 'Song', serif;
    margin-bottom: 0;
}

.redbook.badge {
    background-color: rgba(255, 40, 66, 0.6);
}

.tiktok.badge {
    background-color: rgba(0, 0, 0, 0.6);
}

.wechat.badge {
    background-color: rgba(0, 199, 10, 0.6);
}

.pricing-package.redbook:hover .badge,
.pricing-package.redbook:hover ul.redbook + .cta-button {
    background-color: rgba(255, 40, 66, 1);
}

.pricing-package.tiktok:hover .badge,
.pricing-package.tiktok:hover ul.tiktok + .cta-button {
    background-color: rgba(0, 0, 0, 1);
}

.pricing-package.wechat:hover .badge,
.pricing-package.wechat:hover ul.wechat + .cta-button{
    background-color: rgba(0, 199, 10, 1);
}

.pricing-package .badge {
    /* background-color: #E867A7; */
    color: #fff;
    font-size: 0.8rem;
    padding: 5px 12px;
    border-radius: 15px;
    display: inline-block;
    position: absolute;
    top: -15px; /* Adjust to position above the card or within */
    right: -15px; /* Adjust as needed */
    transform: rotate(10deg); /* Slight rotation for style */
    font-weight: bold;
}
/* Adjust badge for recommended plan if it's inside the header */
.pricing-package.recommended .package-header .badge {
    position: static; /* Or adjust top/right */
    transform: none;
    margin-top: 10px;
}

.redbook.recommended {
    border-top: 4px solid rgba(255, 40, 66, 0.6);
    box-shadow: 0 8px 25px rgba(255, 36, 66, 0.15);
}
.tiktok.recommended {
    border-top: 4px solid rgba(0,0,0,0.6);
    box-shadow: 0 8px 25px rgba(5, 5, 5, 0.15);
}
.wechat.recommended {
    border-top: 4px solid rgba(0, 199, 10, 0.6);
    box-shadow: 0 8px 25px rgba(0, 139, 7, 0.15);
}

.redbook.recommended:hover {
    border-top: 4px solid rgba(255, 40, 66, 1);
}
.tiktok.recommended:hover {
    border-top: 4px solid rgba(0, 0, 0, 1);
}
.wechat.recommended:hover {
    border-top: 4px solid rgba(0, 199, 10, 1);
}


/* .pricing-package.recommended {
    border-top: 4px solid #E867A7; 
    box-shadow: 0 8px 25px rgba(232, 103, 167, 0.15); 
} */

.redbook.package-price {
    color: rgba(255, 40, 66, 0.6);
}
.tiktok.package-price {
    color: rgba(0,0,0,0.6);
}
.wechat.package-price {
    color: rgba(0, 199, 10, 0.6);
}

.pricing-package.redbook:hover .redbook.package-price {
    color: rgba(255, 40, 66, 1);
}
.pricing-package.tiktok:hover .tiktok.package-price {
    color: rgba(0,0,0,1);
}
.pricing-package.wechat:hover .wechat.package-price {
    color: rgba(0, 199, 10, 1);
}

.package-price {
    font-size: 1.8rem;
    font-weight: bold;
    /* color: #E867A7; */
    margin-bottom: 25px;
    text-align: center;
    font-family: 'Playfair', serif;
}

.package-price .amount {
    font-size: 2.2rem;
    display: block;
}

.package-price .duration {
    font-size: 0.9rem;
    color: #777;
    font-weight: normal;
    font-family: 'Noto Serif JP', serif;
}

.features-list {
    list-style: none;
    padding: 0;
    margin-bottom: 30px;
    flex-grow: 1; /* Allows button to be at the bottom */
}

.features-list li {
    margin-bottom: 12px;
    color: #555;
    font-size: 0.95rem;
    display: flex;
    align-items: flex-start; /* Align icon with first line of text */
}

.features-list.redbook .checkmark-icon {
    fill: rgba(255, 40, 66, 0.6)
}
.features-list.tiktok .checkmark-icon {
    fill: rgba(0,0,0,0.6)
}
.features-list.wechat .checkmark-icon {
    fill: rgba(0, 199, 10, 0.6);
}

.pricing-package.redbook:hover .features-list.redbook .checkmark-icon {
    fill: rgba(255, 40, 66, 1)
}
.pricing-package.tiktok:hover .features-list.tiktok .checkmark-icon {
    fill: rgba(0,0,0,1)
}
.pricing-package.wechat:hover .features-list.wechat .checkmark-icon {
    fill: rgba(0, 199, 10, 1);
}

.features-list .checkmark-icon {
    width: 16px;
    height: 16px;
    /* fill: #E867A7;  */
    margin-right: 10px;
    flex-shrink: 0; /* Prevent icon from shrinking */
    margin-top: 3px; /* Align with text better */
}

ul.redbook + .cta-button {
    background-color: rgba(255, 40, 66, 0.6)
}
ul.tiktok + .cta-button {
    background-color: rgba(0,0,0,0.6)
}
ul.wechat + .cta-button {
    background-color: rgba(0, 199, 10, 0.6);
}

.pricing-package .cta-button {
    display: inline-block;
    /* background-color: #EE96C2; */
    color: #fff;
    padding: 12px 25px;
    border-radius: 25px; /* Rounded button */
    text-decoration: none;
    font-weight: bold;
    text-align: center;
    transition: background-color 0.3s ease, transform 0.3s ease;
    margin-top: auto; /* Pushes button to the bottom if flex-grow is on ul */
}

ul.redbook + .cta-button:hover {
    background-color: #FF2442;
}
ul.tiktok + .cta-button:hover {
    background-color: #000;
}
ul.wechat + .cta-button:hover {
    background-color: #00C70A;
}

.pricing-package .cta-button:hover {
    /* background-color: #E867A7;  */
    color: #fff; /* Ensure text remains white */
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.pricing-package .cta-button:hover::after {
    width: 0; /* Disable underline from global p > a styles */
}

svg.brand-icon {
    width: 50px;
    height: auto;
}

svg.brand-icon:hover {
    rotate: -20deg;
    transition: ease-in-out;
}

/* Responsive adjustments for pricing packages */
@media (max-width: 768px) {

}

/* --- Responsive Design --- */
@media (max-width: 768px) {
    h2 {
        font-size: 1.8rem;
    }

    main {
        background-image: url('/images/bg2-750.webp');
    }

    .language-switcher {
        font-size: 0.8rem;
        margin: 0;
    }

    .main-nav {
        display: none; /* Hide standard nav */
        position: absolute;
        top: 100%; /* Position below header */
        left: 0;
        width: 100%;
        background-color: #fff;
        box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
        border-top: 1px solid #eee;
    }

    .main-nav.mobile-active {
        display: block; /* Show when active */
    }

    .logo img {
        width: 50px;
        height: auto;
    }

    .main-nav ul {
        flex-direction: column; /* Stack items vertically */
    }

    .main-nav ul li {
        margin: 0;
        text-align: center;
        border-bottom: 1px solid #eee;
    }
     .main-nav ul li:last-child {
        border-bottom: none;
    }

    .main-nav ul li a {
        display: block; /* Make links full width */
        padding: 15px;
        width: 100%;
    }

    .main-nav ul li a::after {
       display: none; /* Hide underline effect on mobile nav */
    }

    .burger-menu {
        display: block; /* Show burger menu button */
    }

    /* When the mobile menu is active... */
    .main-nav.mobile-active + .burger-menu .icon-menu {
        /* This selector targets the icon-menu *inside* the burger-menu button
           that IMMEDIATELY FOLLOWS the main-nav element which HAS the mobile-active class */
        display: none; /* Hide the menu bars icon */
    }

    .main-nav.mobile-active + .burger-menu .icon-close {
        display: block; /* Show the close icon */
    }

     /* Adjust header container padding if needed on mobile */
    #main-header .container {
       padding: 0 15px; /* Slightly less padding */
    }

    .content-section {
        padding: 60px 0;
    }

    .hero-slider {
       height: 70vh;
       background-color: #fff;
    }

    .slide {
        display: flex;
        justify-content: center;
        align-items: center;
        background-color: #fff;
    }
    .slide img {
        object-fit: cover;
        width: 100%;
        height: 100%;
        max-width: none;
        max-height: none;
    }
    .pricing-grid {
        grid-template-columns: 1fr; /* Stack on smaller screens */
    }
    .pricing-package .badge {
        top: 10px;
        right: 10px;
        transform: none;
    }
    .package-price .amount {
        font-size: 1.8rem;
    }
}

@media (max-width: 1460px) {

    main {
        background-image: url('/images/bg2-750.webp');
    }

    .slide img {
        object-fit: cover;
        width: 100%;
        height: 100%;
        max-width: none;
        max-height: none;
    }

    button.arrow {
        display: none;
    }
}