/* --- CSS VARIABLES --- */
:root {
    --primary: #414833;
    --accent: #d8853f;
    --text-dark: #292524;
    --text-muted: #57534e;
    --bg-light: #edeid2;
    --transition-slow: 1.5s ease-in-out;
    --transition-snap: 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

/* --- BASE STYLES --- */
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: 'Segoe UI', system-ui, sans-serif; background: var(--bg-light); color: var(--text-dark); overflow-x: hidden; }

/* --- HEADER --- */
header {
    position: fixed; width: 100%; top: 0; z-index: 1000;
    display: flex; justify-content: space-between; align-items: center;
    padding: 30px 5%; transition: all 0.4s ease;
}
header.scrolled { background: rgba(255, 255, 255, 0.98); padding: 15px 5%; box-shadow: 0 4px 15px rgba(0,0,0,0.08); }

.logo { font-size: 1.3rem; font-weight: 700; }
.logo a { text-decoration: none; color: white; transition: color 0.3s; }
header.scrolled .logo a { color: var(--primary); }

.nav-links { display: flex; align-items: center; gap: 35px; }
.nav-links a { text-decoration: none; color: white; font-weight: 500; transition: color 0.3s; font-size: 1rem; }
header.scrolled .nav-links a { color: var(--primary); }

.header-book-btn { background: var(--accent); color: white; padding: 12px 24px; border-radius: 8px; font-weight: 600; text-decoration: none; transition: 0.3s; }
header.scrolled #header-book-btn { color: black; }

/* --- MOBILE MENU --- */
.hamburger { display: none; cursor: pointer; background: none; border: none; color: white; z-index: 1001; }
header.scrolled .hamburger { color: var(--primary); }

.mobile-menu {
    position: fixed; inset: 0; background: var(--primary); 
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 30px; transform: translateX(100%); transition: transform 0.4s ease; z-index: 999;
}
.mobile-menu.active { transform: translateX(0); }
.mobile-menu a { color: white; font-size: 1.25rem; text-decoration: none; font-weight: 600; }

/* --- SECTION --- */
section { padding: 70px 8%; }
section h2 { font-size: 2.3rem; color: var(--primary); margin-bottom: 20px; }

/* --- HERO (Cross-Fade) --- */
.hero-section { height: 100vh; position: relative; overflow: hidden; display: flex; align-items: center; justify-content: center; text-align: center; color: white; }
.hero-slide { 
    position: absolute; inset: 0; opacity: 0; transition: opacity var(--transition-slow); 
    background-size: cover; background-position: center; z-index: -2;
}
.hero-slide.active { opacity: 1; }
.hero-overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.45); z-index: -1; }

.hero-content h1 { font-size: 2.75rem; margin-bottom: 15px; }
.hero-content p { font-size: 1.2rem; margin-bottom: 40px; max-width: 700px; padding: 0 20px; }
.hero-book-btn { background: var(--accent); color: white; padding: 16px 32px; border-radius: 8px; font-weight: 600; font-size: 1.1rem; text-decoration: none; transition: transform 0.3s; }

/* --- CAROUSEL CONTROLS --- */
.dots { position: absolute; bottom: 40px; left: 50%; transform: translateX(-50%); display: flex; gap: 12px; z-index: 10; }
.dot { width: 10px; height: 10px; border: 2px solid white; border-radius: 50%; cursor: pointer; transition: 0.3s; }
.dot.active { background: white; width: 25px; border-radius: 10px; }

.nav-arrows { position: absolute; top: 50%; width: 100%; display: flex; justify-content: space-between; padding: 0 15px; transform: translateY(-50%); z-index: 10; pointer-events: none; }
.arrow { background: rgba(255,255,255,0.2); border: none; color: white; width: 50px; height: 50px; border-radius: 50%; cursor: pointer; font-size: 1.5rem; transition: 0.3s; pointer-events: auto; }

/* --- ABOUT --- */
#about { max-width: 1200px; margin: 0 auto; }
#about h2 { text-align: center; }
.about-text p { color: var(--text-muted); line-height: 1.8; margin-bottom: 35px; }

.quick-facts {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    padding-top: 20px;
    padding-bottom: 40px;
}
.fact-item { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.fact-item svg { width: 32px; height: 32px; fill: none; stroke: var(--accent); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.fact-item span { color: var(--text-muted); }

.fact-value {
    font-size: 0.95rem;
    font-weight: 600;
    color: #1a1a1a;
    display: block;
}

.fact-label {
    font-size: 0.75rem;
    font-weight: 400;
    text-transform: uppercase;
    color: #a0a0a0;
    letter-spacing: 1.5px;
    margin-top: 2px;
    opacity: 0.5;
}

/* --- GALLERY (Slide) --- */
#gallery { background: #f1f5f9; text-align: center; }
.gallery-container { max-width: 1000px; margin: 50px auto; position: relative; background: white; border-radius: 15px; overflow: hidden; border: 10px; border-color: white; border-style: solid }
.gallery-wrapper { display: flex; transition: transform var(--transition-snap); }
.gallery-slide { min-width: 100%; position: relative; }
.gallery-slide img { width: 100%; height: 550px; object-fit: cover; border-radius: 8px; }
.gallery-caption { padding: 20px; font-style: italic; color: var(--text-muted); }

.gallery-arrows .arrow { background: rgba(0, 0, 0, 0.15); color: white; padding: 0 10px; }
.gallery-dots { position: relative; bottom: 10px; margin-top: 10px; width:fit-content; }
.gallery-dots .dot { border-color: var(--primary); }
.gallery-dots .dot.active { background: var(--primary); }

/* --- CONTACT --- */
footer { background: var(--primary); color: white; text-align: center; padding: 60px 8%; }
footer h2 { font-size: 2.3rem; margin-bottom: 20px; }
footer a { color: var(--accent); text-decoration: none; font-size: 1.2rem; font-weight: bold; }

/* Row 1: Phone & Email with labels */
.contact-primary {
    display: flex;
    justify-content: center;
    gap: 40px;
    margin-top: 30px;
    margin-bottom: 30px;
    flex-wrap: wrap;
}

/* Row 2: Socials - Icons only */
.contact-socials {
    display: flex;
    justify-content: center;
    gap: 20px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,0.1);
    max-width: 400px;
    margin: 0 auto;
}

.contact-item {
    display: flex;
    align-items: center;
    text-decoration: none;
    color: var(--white);
    transition: opacity 0.3s;
}

.contact-item svg {
    width: 28px;
    height: 28px;
    fill: currentColor;
    margin-right: 10px;
}

.copyright { margin-top: 30px; }
.copyright p { font-size: 0.9rem; opacity: 0.5; }

/* --- Apply hover effects only if the device supports it --- */
@media (hover: hover) {
    .logo a:hover { color: var(--accent); }

    .nav-links a:hover { color: var(--accent); }

    #header-book-btn:hover { color: black; }

    header.scrolled #header-book-btn:hover { color: white; }

    .hero-book-btn:hover { color: black; }

    .arrow:hover { background: rgba(255,255,255,0.4); }

    .gallery-arrows .arrow:hover { background: rgba(0, 0, 0, 0.3); }

    .contact-primary a:hover { color: var(--accent); }

    .contact-item:hover svg { fill: var(--accent); }
}

/* --- RESPONSIVE --- */
@media (max-width: 968px) {
    .nav-links { display: none; }
    .hamburger { display: block; }
    .gallery-slide img { height: 350px; }
}