
/*
Theme Name:   GoDetail Theme
Theme URI:    https://example.com/godetail
Author:       Adam Ginsberg
Author URI:   https://example.com
Description:  A custom theme for GoDetail.
Version:      1.0
Text Domain:  godetail
*/

/* Main Stylesheet (main.css)
  
   NOTE: No changes were made to this file. 
   It already contains all the necessary styles for the tabs.
*/

/* * 1. Global & Utility Styles
 * -------------------------------------------------------------------------- */

/* Enables smooth scrolling when an anchor link is clicked */
html {
    scroll-behavior: smooth;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    margin: 0;
    background-color: #ffffff; /* White background */
}

/* A simple container to center content */
.container {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}

/* * 2. Hero Section Styles
 * -------------------------------------------------------------------------- */

 .hero-section {
    /* This is the key: makes the hero fill the screen height */
    height: calc(100svh - 70px); /* Changed from 100vh to 100svh (small viewport height) */
    /* min-height: 600px; */ /* Removed this as 100svh is more reliable */
    
    /* Position relative to allow absolute positioning for the chevron */
    position: relative;
    
    /* Flexbox for vertical content arrangement */
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box; /* Added for safety */
    
    /* Background Image & Fade Effect 
       We layer a radial gradient ON TOP of the image URL.
       The gradient fades from transparent (at 40%) to white (at 80%),
       which creates the "fade out into white" effect you wanted.
       
       Image Credit: Unsplash, Chad Kirchoff
     */
    background-image: 
        radial-gradient(ellipse at center, rgba(255,255,255,0) 40%, rgba(255,255,255,1) 80%),
        url('https://images.unsplash.com/photo-1552519507-da3b142c6e3d?q=80&w=2070&auto=format&fit=crop');
        
    background-size: cover;
    background-position: center center;
    
    /* Ensures text is readable against the background */
    color: #222;
    text-align: center;
}

.hero-content {
    /* This flex setup creates the spacing you wanted.
       - flex-direction: column (stacks items vertically)
       - justify-content: space-between (pushes top text up, buttons down)
       - height: 85% (provides padding from the very top/bottom edges)
     */
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 85%;
    padding: 2rem 0;
    box-sizing: border-box; /* Ensures padding is included in the height */
}

.hero-top-text p {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 500;
}

.hero-main-text h1 {
    margin: 0;
    font-size: 3.5rem;
    font-weight: 800;
    line-height: 1.1;
    /* Add some shadow for better readability over the image */
    text-shadow: 0 2px 4px rgba(255, 255, 255, 0.5);
}

/* Responsive font size for mobile */
@media (max-width: 768px) {
    .hero-main-text h1 {
        font-size: 2.5rem;
    }
    .hero-top-text p {
        font-size: 1rem;
    }
}

.hero-bottom-cta {
    display: flex;
    justify-content: center;
    gap: 1rem; /* Space between buttons */
    flex-wrap: wrap; /* Allows buttons to stack on small screens */
}

.hero-button {
    padding: 0.8rem 1.75rem;
    border-radius: 50px; /* This makes them "rounded" */
    text-decoration: none;
    font-weight: 700;
    font-size: 0.95rem;
    border: 2px solid transparent;
    transition: all 0.3s ease-in-out;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
    box-sizing: border-box; /* ADDED: Fixes button overflow */
}

/* Primary "Get a free quote" button */
.hero-button.primary {
    background-color: #007bff; /* Example blue */
    color: #ffffff;
}

.hero-button.primary:hover {
    background-color: #0056b3;
    box-shadow: 0 6px 20px rgba(0, 123, 255, 0.4);
    transform: translateY(-2px);
}

/* Secondary "Learn More" button */
.hero-button.secondary {
    background-color: rgba(255, 255, 255, 0.8); /* Translucent white */
    color: #333;
    border-color: #555;
}

.hero-button.secondary:hover {
    background-color: #ffffff;
    border-color: #000;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
    transform: translateY(-2px);
}


/* * 3. Bouncing Chevron Styles
 * -------------------------------------------------------------------------- */

.scroll-chevron {
    position: absolute;
    bottom: 25px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    cursor: pointer;
}

/* The span is styled to create the chevron shape */
.scroll-chevron span {
    display: block;
    width: 24px;
    height: 24px;
    /* Creates the 'V' shape using borders */
    border-bottom: 3px solid #333;
    border-right: 3px solid #333;
    
    /* Rotates the square to look like a chevron */
    transform: rotate(45deg);
    
    /* Links the animation */
    animation: bounce 2s infinite;
}

/* Keyframe animation for the bounce effect */
@keyframes bounce {
    0%, 20%, 50%, 80%, 100% {
        transform: translateY(0) rotate(45deg);
        opacity: 0.8;
    }
    40% {
        transform: translateY(-15px) rotate(45deg);
        opacity: 1;
    }
    60% {
        transform: translateY(-7px) rotate(45deg);
        opacity: 1;
    }
}

/* * 4. Next Section Styles
 * -------------------------------------------------------------------------- */

/* This is just placeholder styling so you can see the scroll work */
.about-section {
    min-height: 80vh; /* Give it some space */
    padding: 80px 0;
    background-color: #f8f9fa; /* Light gray background from image */
    border-top: 1px solid #e9ecef;
}

.about-flex-container {
    display: flex;
    flex-wrap: wrap; /* Allows columns to stack on mobile */
    align-items: center;
    justify-content: center;
    gap: 2rem;
}

.about-column {
    flex: 1 1 45%; /* Each column takes up 45% of the width */
    min-width: 350px; /* Ensures columns stack gracefully */
}

/* --- Left Column: Text --- */
.about-text {
    padding-right: 1rem; /* Space between text and image on desktop */
}

.about-text h2 {
    font-size: 2.8rem;
    font-weight: 800;
    color: #2c2c2c;
    margin-top: 0;
    line-height: 1.2;
}

.about-reviews {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 0.9rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
}

.review-stars {
    color: #f5c518; /* Gold/yellow for stars */
    font-size: 1.1rem;
    letter-spacing: 1px;
}

.review-trust {
    color: #007bff; /* Example blue */
}

.about-text p {
    font-size: 1.05rem;
    line-height: 1.6;
    color: #555;
}

.service-select-link {
    font-size: 1.2rem;
    font-weight: 700;
    color: #333;
    text-decoration: none;
    transition: color 0.3s;
    cursor: pointer; /* Added for better UX */
}

.service-select-link:hover {
    color: #007bff;
}

.service-select-link span {
    display: inline-block;
    transition: transform 0.3s;
}

.service-select-link:hover span {
    transform: translateY(3px);
}


/* --- Right Column: Image --- */
.about-image {
    text-align: center;
}

.about-image-wrapper {
    position: relative;
    display: inline-block; /* Keeps pseudo-element tight to the image */
    padding: 10px; /* Space for the swoosh to show */
}

/* The decorative blue swoosh */
.about-image-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    
    /* Create the shape */
    border: 3px solid #cce7ff; /* Light blue color */
    border-radius: 40% 60% 60% 40% / 60% 40% 60% 50%; /* Wobbly circle */
    
    /* Position behind image */
    z-index: 1;
    transform: rotate(-15deg); /* Tilt it */
}

.about-image-wrapper img {
    max-width: 100%;
    height: auto;
    border-radius: 15px; /* Rounded corners for the photo */
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    position: relative;
    z-index: 2; /* Sits on top of the swoosh */
}

.image-caption {
    margin-top: 1.5rem;
    font-size: 1.1rem;
    font-weight: 600;
    color: #444;
}

.caption-heart {
    color: #e44d80; /* Pink/red heart */
    font-size: 1.3rem;
    margin-right: 0.25rem;
}

/* Responsive adjustments for columns */
@media (max-width: 992px) {
    .about-text {
        padding-right: 0;
        text-align: center;
    }
    .about-reviews {
        justify-content: center;
    }
    .about-text h2 {
        font-size: 2.2rem;
    }
}

/* * 5. Services Section Styles
 * -------------------------------------------------------------------------- */

.services-section {
    padding: 80px 0;
    /* background-color: #f8f9fa; */ /* Re-using light gray background */
    text-align: center;
}

.section-title {
    font-size: 2.8rem;
    font-weight: 800;
    color: #2c2c2c;
    margin-top: 0;
    margin-bottom: 2.5rem;
}

/* --- Tab Navigation --- */
.service-tabs {
    display: inline-flex;
    background-color: #007bff;
    border-radius: 50px;
    padding: 6px;
    margin-bottom: 3rem;
    box-shadow: 0 5px 20px rgba(0, 123, 255, 0.2);
    
    /* REMOVED for mobile responsiveness */
    /* flex-wrap: wrap; */
    /* justify-content: center; */
}

.service-tab {
    padding: 0.75rem 1.75rem;
    color: #ffffff;
    text-decoration: none;
    font-weight: 600;
    border-radius: 50px;
    transition: all 0.3s ease;
    white-space: nowrap;
    
    /* REMOVED for mobile responsiveness */
    /* margin: 4px; */ /* Gives space when tabs wrap */
}

.service-tab.active {
    background-color: #ffffff;
    color: #007bff;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

/* --- Tab Content --- */
.service-tab-content {
    display: none; /* Hide all panels by default */
    animation: fadeIn 0.5s;
}

.service-tab-content.active {
    display: block; /* Show only the active panel */
}

.service-tab.active {
    background-color: #ffffff;
    color: #007bff;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

/* ADDED: Makes tabs skinnier on mobile to prevent overflow */
@media (max-width: 480px) {
    .service-tab {
        padding: 0.75rem 1rem; /* Less horizontal padding */
        font-size: 0.9rem; /* Slightly smaller text */
    }
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* --- Service Cards --- */
/* --- Force a clean 3-up layout (with responsive fallbacks) --- */
.service-cards-container{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
  align-items: stretch; /* make rows even height */
}

/* 2-up on tablets */
@media (max-width: 1024px){
  .service-cards-container{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* 1-up on phones */
@media (max-width: 640px){
  .service-cards-container{
    grid-template-columns: 1fr;
  }
}


/* --- Make each card fill its grid cell and keep CTAs aligned --- */
.service-card {
    background: #ffffff;
    border-radius: 20px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
    border: 1px solid #eee;
    padding: 1.75rem;
    display: flex;
    flex-direction: column;
    transition: all 0.3s ease;
    box-sizing: border-box;
    height: 100%; /* Fill the grid cell */
    /* Removed flex-basis and flex-grow */
}

/* Avoid hover scaling that can cause wrap/overflow */
.service-card:hover {
    transform: translateY(-5px); /* subtle lift only */
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.1);
}

.service-card.popular {
    border: 2px solid #007bff;
    box-shadow: 0 10px 40px rgba(0, 123, 255, 0.25);
}
.service-card.popular:hover {
    transform: translateY(-5px); /* no scale */
}

.service-card h3 {
    font-size: 1.8rem;
    font-weight: 800;
    color: #2c2c2c;
    margin-top: 0;
    margin-bottom: 0.5rem;
    /* display: flex; */ /* REMOVED */
    /* justify-content: space-between; */ /* REMOVED */
    /* align-items: flex-start; */ /* REMOVED */
    /* flex-wrap: wrap; */ /* REMOVED */
    min-height: 4.4rem; /* Kept to align images */
    line-height: 1.3; /* Added for better spacing */
}

.tag {
    font-size: 0.9rem;
    font-weight: 700;
    font-style: italic;
    margin-left: 0; /* REMOVED margin-left: 0.5rem; */
    display: block; /* ADDED: Force tag to new line */
    margin-top: 0.25rem; /* ADDED: Add space above tag */
}
.tag-refresh { color: #e44d80; }
.tag-popular { color: #f59e0b; }
.tag-vip { color: #d97706; }

/* Normalize media height so titles/paragraphs align nicely */
.service-card-image {
    width: 100%;
    aspect-ratio: 16 / 9;   /* keeps equal thumbnail heights */
    object-fit: cover;
    border-radius: 15px;
    margin-bottom: 1rem;
}

.service-card p {
    color: #555;
    margin-bottom: 1.5rem;
    font-size: 1rem;
    line-height: 1.5;
    min-height: 4.5rem; /* ADDED: Reserves space for 3 lines of paragraph text */
}

.service-list {
    margin-bottom: 1.5rem;
}

.service-list h4 {
    font-size: 0.9rem;
    color: #777;
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: 1rem;
    border-bottom: 1px solid #f0f0f0;
    padding-bottom: 0.5rem;
}

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

.service-list li {
    display: flex;
    align-items: center;
    margin-bottom: 0.6rem;
    color: #333;
    font-weight: 500;
}

.check {
    color: #007bff;
    background-color: #e6f2ff;
    border-radius: 50%;
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 0.8rem;
    margin-right: 0.75rem;
    flex-shrink: 0; /* Prevents check from shrinking */
}

/* --- Card Button --- */
.btn-full {
    width: 100%;
    text-align: center;
    margin-top: auto; /* Pushes the button to the bottom of the card */
    padding: 1rem;
    font-size: 1.1rem;
}

/* * 6. How We Work (Video) Section
 * -------------------------------------------------------------------------- */

.how-we-work-section {
    position: relative;
    padding: 100px 0;
    text-align: center;
    color: #ffffff;
    overflow: hidden; /* Ensures no bleed */
}

.how-we-work-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center center;
    z-index: 1;
}

.how-we-work-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6); /* Dark overlay */
    z-index: 2;
}

.how-we-work-section .container {
    position: relative;
    z-index: 3; /* Content sits on top of overlay */
}

.how-we-work-content h2 {
    font-size: 3.5rem;
    font-weight: 800;
    margin: 0;
    line-height: 1.1;
    text-transform: uppercase;
}

.how-we-work-content h4 {
    font-size: 1.2rem;
    font-weight: 700;
    color: #f5c518; /* Gold color */
    letter-spacing: 2px;
    margin: 0.5rem 0;
    display: inline-block;
    padding-bottom: 5px;
    border-bottom: 2px solid #f5c518;
}

.how-we-work-content .video-duration {
    display: block;
    font-size: 1rem;
    font-weight: 500;
    margin-top: 1.5rem;
}

.how-we-work-content p {
    font-size: 1.1rem;
    line-height: 1.6;
    max-width: 450px;
    margin: 0.5rem auto 2rem auto;
}

.how-we-work-content .watch-button {
    background-color: #ffffff;
    color: #222;
    border-color: #ffffff;
}

.how-we-work-content .watch-button:hover {
    background-color: #f0f0f0;
    border-color: #f0f0f0;
}

.how-we-work-content .watch-button span {
    margin-left: 0.5rem;
    font-size: 0.9rem;
}

/* Responsive styles for video section */
@media (max-width: 768px) {
    .how-we-work-content h2 {
        font-size: 2.5rem;
    }
    .how-we-work-content p {
        font-size: 1rem;
    }
}


/* * 7. Video Modal Styles
 * -------------------------------------------------------------------------- */

.video-modal {
    display: none; /* Hidden by default */
    position: fixed;
    z-index: 1000;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.85);
    
    /* Flex to center the video */
    align-items: center;
    justify-content: center;
    
    opacity: 0;
    transition: opacity 0.3s ease;
}

.video-modal.active {
    display: flex;
    opacity: 1;
}

.video-modal-content {
    position: relative;
    width: 90%;
    max-width: 900px;
    aspect-ratio: 16 / 9; /* Perfect 16:9 ratio */
    background: #000;
}

.video-modal-content iframe {
    width: 100%;
    height: 100%;
    border: none;
}

.close-modal {
    position: absolute;
    top: -35px;
    right: 0;
    color: #ffffff;
    font-size: 2.5rem;
    font-weight: bold;
    cursor: pointer;
    transition: color 0.2s;
}

.close-modal:hover {
    color: #ccc;
}

/* * 8. Gallery Section Styles (v2)
 * -------------------------------------------------------------------------- */

.gallery-section {
    padding: 80px 0;
    background-color: #f8f9fa; /* Use light gray background */
    text-align: center;
}

.gallery-section .section-description {
    font-size: 1.1rem;
    line-height: 1.6;
    color: #555;
    max-width: 700px;
    margin: -1rem auto 2.5rem auto;
}

.gallery-grid {
    display: grid;
    /* This creates a 4-column grid */
    grid-template-columns: repeat(4, 1fr);
    /* This sets a uniform height for rows */
    grid-auto-rows: 300px;
    gap: 1rem; /* Space between images */
}

.gallery-item {
    position: relative;
    overflow: hidden;
    border-radius: 15px; /* Rounded corners for all images */
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
}

.gallery-item img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* Ensures image fills the box */
    display: block;
    transition: transform 0.4s ease-in-out;
}

.gallery-item:hover img {
    transform: scale(1.05); /* Slight zoom on hover */
}

/* --- Grid Layout Classes --- */

/* This makes an item span 2 columns (wide) */
.gallery-item.item-wide {
    grid-column: span 2;
}

/* --- Responsive Grid --- */

/* On tablets, go to a 2-column layout */
@media (max-width: 992px) {
    .gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 250px;
    }
    
    /* Make the wide item span the full width */
    .gallery-item.item-wide {
        grid-column: span 2;
    }
}

/* On phones, go to a 1-column layout */
@media (max-width: 640px) {
    .gallery-grid {
        grid-template-columns: 1fr;
        grid-auto-rows: 250px;
    }
    
    /* Reset all items to span 1 column */
    .gallery-item.item-wide {
        grid-column: span 1;
    }
}

/* * 9. Quick CTA Section
 * -------------------------------------------------------------------------- */

.quick-cta-section {
    padding: 80px 0;
    background-color: #ffffff;
    text-align: center;
}

.quick-cta-section .section-description {
    font-size: 1.1rem;
    line-height: 1.6;
    color: #555;
    max-width: 600px;
    margin: -1rem auto 2.5rem auto;
}

.cta-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
}

.cta-card {
    background: #f8f9fa; /* Light gray background */
    padding: 2rem; /* Adjusted padding */
    border-radius: 20px;
    text-decoration: none;
    color: #2c2c2c;
    border: 1px solid #eee;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease-in-out;
}

.cta-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 12px 35px rgba(0, 123, 255, 0.15);
    background-color: #007bff; /* Primary blue on hover */
    color: #ffffff;
}

.cta-image {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 15px; /* Match other styles */
    margin-bottom: 1.5rem;
}

.cta-card:hover .cta-image {
    /* We can add a hover effect if we want, but not necessary */
}

.cta-card h3 {
    font-size: 1.5rem;
    font-weight: 700;
    margin-top: 0;
    margin-bottom: 0.5rem;
}

.cta-card p {
    font-size: 1rem;
    line-height: 1.5;
    color: #555;
    margin-bottom: 1.5rem;
    transition: color 0.3s ease-in-out;
}

.cta-card:hover p {
    color: #ffffff;
}

.cta-button {
    display: inline-block;
    font-weight: 700;
    text-decoration: none;
    color: #007bff;
    background: #ffffff;
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    border: 1px solid #eee;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease-in-out;
}

.cta-card:hover .cta-button {
    background: #ffffff;
    color: #007bff;
    transform: scale(1.05);
}

/* Responsive CTA */
@media (max-width: 992px) {
    .cta-grid {
        grid-template-columns: 1fr; /* Stack on tablets and phones */
    }
}

/* * 10. Comparison Section
 * -------------------------------------------------------------------------- */

.comparison-section {
    padding: 80px 0;
    background-color: #f8f9fa; /* Light gray background */
}

.comparison-section .section-title {
    text-align: center;
}

.comparison-section .section-description {
    font-size: 1.1rem;
    line-height: 1.6;
    color: #555;
    max-width: 600px;
    margin: -1rem auto 2.5rem auto;
    text-align: center;
}

.comparison-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
}

.comparison-card {
    background: #ffffff;
    border-radius: 20px;
    padding: 2rem;
    border: 1px solid #eee;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.05);
}

.comparison-card.us {
    border-left: 5px solid #007bff; /* Blue accent for "Us" */
}

.comparison-card.them {
    border-left: 5px solid #dc3545; /* Red accent for "Them" */
}

.comparison-card h3 {
    font-size: 1.5rem;
    font-weight: 700;
    margin-top: 0;
    margin-bottom: 1.5rem;
}

.comparison-card ul {
    list-style: none;
    padding-left: 0;
    margin: 0;
}

.comparison-card li {
    display: flex;
    align-items: center;
    font-size: 1.05rem;
    font-weight: 500;
    color: #333;
    margin-bottom: 1rem;
}

.compare-icon {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-weight: bold;
    font-size: 0.9rem;
    margin-right: 0.75rem;
    flex-shrink: 0;
}

.compare-icon.check {
    background: #e6f2ff;
    color: #007bff;
}

.compare-icon.cross {
    background: #fdf2f2;
    color: #dc3545;
}

/* Responsive Comparison */
@media (max-width: 768px) {
    .comparison-grid {
        grid-template-columns: 1fr; /* Stack on mobile */
    }
}

/* * 11. FAQ Section
 * -------------------------------------------------------------------------- */

.faq-section {
    padding: 80px 0;
    background-color: #ffffff; /* White background */
}

.faq-section .section-title {
    text-align: center;
}

.faq-section .section-description {
    font-size: 1.1rem;
    line-height: 1.6;
    color: #555;
    max-width: 600px;
    margin: -1rem auto 2.5rem auto;
    text-align: center;
}

.faq-container {
    max-width: 800px;
    margin: 0 auto;
}

.faq-item {
    background: #ffffff;
    border-radius: 15px;
    border: 1px solid #eee;
    margin-bottom: 1rem;
    overflow: hidden; /* For the max-height transition */
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.03);
}

.faq-question {
    /* Reset button styles */
    background: transparent;
    border: none;
    text-align: left;
    
    /* Layout */
    display: flex;
    justify-content: space-between;
    align-items: flex-start; /* CHANGED: Was 'center', 'flex-start' aligns all icons to the top */
    width: 100%;
    
    /* Appearance */
    padding: 1.5rem;
    font-size: 1.15rem;
    font-weight: 600;
    color: #2c2c2c;
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.faq-question:hover {
    background-color: #f8f9fa;
}

.faq-question span {
    flex-grow: 1; /* Makes text take up available space */
}

.faq-icon {
    width: 20px;
    height: 20px;
    position: relative;
    flex-shrink: 0;
    margin-left: 1rem;
    margin-top: 0.25rem; /* ADDED: This tiny top margin should align the icon with the text's optical center */
}

/* Create the '+' icon */
.faq-icon::before,
.faq-icon::after {
    content: '';
    position: absolute;
    top: 50%; /* REVERTED: Back to 50% for centering within its own box */
    left: 50%;
    width: 16px;
    height: 2px;
    background-color: #007bff;
    transition: transform 0.3s ease-in-out;
}

.faq-icon::before {
    transform: translate(-50%, -50%);
}
.faq-icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

/* Change icon to '-' when active */
.faq-item.active .faq-icon::after {
    transform: translate(-50%, -50%) rotate(0deg);
}
.faq-item.active .faq-question {
    color: #007bff; /* Highlight active question */
}

.faq-answer {
    max-height: 0px; /* Hidden by default */
    overflow: hidden;
    transition: max-height 0.3s ease-in-out;
}

.faq-answer p {
    font-size: 1rem;
    line-height: 1.6;
    color: #555;
    padding: 0 1.5rem 1.5rem 1.5rem;
    margin: 0;
}

/* --- Lock all + icons to the same right edge --- */
.faq-question{
  display: block !important;               /* ignore previous flex/grid */
  position: relative;
  padding: 24px 64px 24px 24px;            /* right pad leaves room for icon */
  line-height: 1.35;
}

.faq-question > span{
  display: block;                           /* text flows naturally */
  margin: 0;
}

.faq-icon{
  position: absolute;
  top: 50%;
  right: 28px;                              /* <- set your desired inset */
  width: 24px;
  height: 24px;
  transform: translateY(-50%);              /* perfectly centered vertically */
  margin: 0;                                /* kill any inherited margins */
  pointer-events: none;                      /* icon won't steal clicks */
}

/* draw the + and animate to − when open */
.faq-icon::before,
.faq-icon::after{
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 16px;
  height: 2px;
  background: #007bff;
  transform: translate(-50%, -50%);
  transition: transform .25s ease;
}
.faq-icon::after{ transform: translate(-50%, -50%) rotate(90deg); }
.faq-item.active .faq-icon::after{ transform: translate(-50%, -50%) rotate(0deg); }


/* * 14. Header Styles
 * -------------------------------------------------------------------------- */

.site-header {
    background: #ffffff;
    border-bottom: 1px solid #e9ecef;
    padding: 1rem 0;
    position: sticky; /* Makes header stick to top on scroll */
    top: 0;
    z-index: 1000;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

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

.site-branding .site-title {
    font-size: 1.5rem;
    font-weight: 800;
    color: #2c2c2c;
    text-decoration: none;
}
.site-branding a {
    text-decoration: none;
}

/* --- Main Navigation --- */
.main-navigation ul {
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;
}

.main-navigation li {
    margin-left: 1.5rem;
}

.main-navigation a {
    text-decoration: none;
    color: #333;
    font-weight: 600;
    font-size: 1rem;
    transition: color 0.3s;
}

.main-navigation a:hover,
.main-navigation .current-menu-item > a {
    color: #007bff;
}

.header-cta-button {
    padding: 0.6rem 1.25rem; /* Slightly smaller for header */
    font-size: 0.9rem;
}

/* --- Mobile Menu Toggle --- */
.menu-toggle {
    display: none; /* Hidden on desktop */
    background: none;
    border: none;
    cursor: pointer;
    padding: 0;
    width: 24px;
    height: 18px;
    position: relative;
    z-index: 1010;
}

.menu-toggle .line {
    display: block;
    width: 100%;
    height: 2px;
    background: #333;
    position: absolute;
    left: 0;
    transition: all 0.3s ease;
}
.menu-toggle .line:nth-child(1) { top: 0; }
.menu-toggle .line:nth-child(2) { top: 8px; }
.menu-toggle .line:nth-child(3) { top: 16px; }

/* Mobile Menu Toggle Animation (X) */
.menu-toggle.is-active .line:nth-child(1) {
    transform: translateY(8px) rotate(45deg);
}
.menu-toggle.is-active .line:nth-child(2) {
    opacity: 0;
}
.menu-toggle.is-active .line:nth-child(3) {
    transform: translateY(-8px) rotate(-45deg);
}
.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    position: absolute !important;
    height: 1px;
    width: 1px;
    overflow: hidden;
}


/* * 15. Footer Styles
 * -------------------------------------------------------------------------- */

.site-footer {
    background-color: #2c2c2c; /* Dark background */
    color: #adb5bd; /* Light grey text */
    padding: 60px 0 0 0;
    font-size: 0.95rem;
}

.footer-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
    margin-bottom: 3rem;
}

.footer-column h4 {
    font-size: 1.1rem;
    color: #ffffff;
    margin-top: 0;
    margin-bottom: 1.25rem;
    font-weight: 700;
}

.footer-column .site-title {
    font-size: 1.5rem;
    font-weight: 800;
    color: #ffffff;
    text-decoration: none;
    margin-bottom: 1rem;
    display: block;
}

.footer-column p {
    line-height: 1.6;
    margin-bottom: 1rem;
}

.footer-column ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-column li {
    margin-bottom: 0.75rem;
}

.footer-column a {
    color: #adb5bd;
    text-decoration: none;
    transition: color 0.3s;
}

.footer-column a:hover {
    color: #ffffff;
    text-decoration: underline;
}

.footer-bottom-bar {
    border-top: 1px solid #495057;
    padding: 1.5rem 0;
    text-align: center;
}

.footer-bottom-bar p {
    margin: 0;
    font-size: 0.9rem;
}


/* * 16. Header & Footer Responsive
 * -------------------------------------------------------------------------- */

@media (max-width: 992px) {
    .main-navigation {
        display: none; /* Hide nav by default on mobile */
        position: absolute;
        top: 75px; /* Height of header */
        left: 0;
        width: 100%;
        background: #ffffff;
        box-shadow: 0 10px 10px rgba(0, 0, 0, 0.05);
        border-top: 1px solid #e9ecef;
    }

    .main-navigation.is-active {
        display: block; /* Show when active */
    }

    .main-navigation ul {
        flex-direction: column;
    }

    .main-navigation li {
        margin: 0;
    }

    .main-navigation a {
        display: block;
        padding: 1rem 1.5rem;
        border-bottom: 1px solid #f8f9fa;
    }

    .menu-toggle {
        display: block; /* Show hamburger on mobile */
    }

    .header-cta {
        display: none; /* Hide desktop CTA on mobile */
        /* It's assumed you'll add a CTA inside the mobile menu */
    }
}

@media (max-width: 768px) {
    .footer-grid {
        grid-template-columns: 1fr; /* Stack columns on mobile */
    }

    .footer-column {
        text-align: center; /* Center footer text on mobile */
    }
}

.booking-section {
    background-color: #f8f9fa;
    padding: 80px 0;
}

html, body {
    width: 100%;
    overflow-x: hidden;
  }
  
  
  /* ADDED: Sticky/Hiding Header Styles */
  .site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    width: 100%;
    /* This transition is for the show/hide effect */
    transition: transform 0.3s ease-in-out;
  }
  .site-header.is-hidden {
    /* This class will be added by JS to hide the header */
    transform: translateY(-100%);
  }
  
  /* Horizontal centering + tidy widths */
#book-detail .container{
  max-width: 900px;
  margin: 0 auto;
  padding: 2rem 1rem;
  text-align: center;
}

#book-detail .section-title{
  margin: 0 0 .5rem;
}

#book-detail .section-description{
  margin: 0 auto;
  max-width: 60ch;
}

/* Optional: make the whole section vertically centered in the viewport */
#book-detail{
  display: flex;
  align-items: center;
  justify-content: center;
}




