/* ==========================================================================
   AUTHOR WEBSITE DESIGN SYSTEM - White + Beige + Brown
   ========================================================================== */

:root {
    /* Color Palette */
    --primary: #4A2C0A;      /* Dark Brown */
    --secondary: #F5ECD7;    /* Warm Beige */
    --accent: #C8963E;       /* Gold */
    --bg-white: #FDFAF6;     /* Off-White */
    --text-main: #3d2b1f;    /* Body Text */
    --text-light: #7B4A1E;   /* Muted Brown */
    --white: #ffffff;
    --black: #1a0f05;
    
    /* Typography */
    --font-heading: 'Playfair Display', serif;
    --font-body: 'Lora', serif;
    --font-ui: 'Inter', sans-serif;
    
    /* Effects */
    --shadow-soft: 0 4px 20px rgba(74, 44, 10, 0.10);
    --shadow-premium: 0 10px 30px rgba(74, 44, 10, 0.15);
    --radius-sm: 4px;
    --radius-md: 8px;
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

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

body {
    background-color: var(--bg-white);
    color: var(--text-main);
    font-family: var(--font-body);
    line-height: 1.7;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
}

.container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-heading);
    color: var(--primary);
    line-height: 1.2;
    margin-bottom: 1.5rem;
}

p { margin-bottom: 1rem; }

a {
    text-decoration: none;
    color: inherit;
    transition: var(--transition);
}

/* --- Buttons --- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 28px;
    border-radius: var(--radius-sm);
    font-family: var(--font-ui);
    font-weight: 500;
    font-size: 0.95rem;
    cursor: pointer;
    transition: var(--transition);
    border: none;
}

.btn-primary {
    background-color: var(--primary);
    color: var(--secondary);
}

.btn-primary:hover {
    background-color: var(--black);
    transform: translateY(-2px);
    box-shadow: var(--shadow-soft);
}

.btn-outline {
    border: 1px solid var(--primary);
    background: transparent;
    color: var(--primary);
}

.btn-outline:hover {
    background-color: var(--primary);
    color: var(--white);
}

/* --- Header --- */
.site-header {
    background: rgba(253, 250, 246, 0.95);
    backdrop-filter: blur(10px);
    padding: 20px 0;
    position: sticky;
    top: 0;
    z-index: 1000;
    border-bottom: 1px solid rgba(74, 44, 10, 0.05);
}

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

.site-logo {
    display: flex;
    align-items: center;
    gap: 12px;
}

.primary-nav {
    margin-left: auto;
    transform: translateX(36px);
}

.logo-icon {
    font-size: 1.5rem;
    color: var(--accent);
}

.logo-name {
    display: block;
    font-family: var(--font-heading);
    font-size: clamp(1rem, 1.4vw, 1.4rem);
    font-weight: 700;
    color: var(--primary);
    line-height: 1.15;
    overflow-wrap: anywhere;
}

.logo-tagline {
    font-size: 0.75rem;
    color: var(--text-light);
    text-transform: uppercase;
    letter-spacing: 1px;
}

.nav-list {
    display: flex;
    list-style: none;
    gap: 32px;
}

.nav-link {
    font-family: var(--font-ui);
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--text-main);
}

.nav-link:hover, .nav-link.active {
    color: var(--accent);
}

/* --- Hero Section --- */
.hero {
    padding: 100px 0;
    background: linear-gradient(to bottom, #F5ECD7, var(--bg-white));
    text-align: center;
}

.hero-content h1 {
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    margin-bottom: 24px;
}

.hero-subtitle {
    font-size: 1.25rem;
    color: var(--text-light);
    max-width: 600px;
    margin: 0 auto 40px;
}

/* --- Footer --- */
.site-footer {
    background-color: var(--primary);
    color: var(--secondary);
    padding: 40px 0 20px;
    margin-top: 0;
}

.footer-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 40px;
    margin-bottom: 30px;
}

.footer-heading {
    color: var(--accent);
    font-size: 1.1rem;
    margin-bottom: 1.5rem;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.footer-links { list-style: none; }
.footer-links li { margin-bottom: 12px; }
.footer-links a:hover { color: var(--accent); padding-left: 5px; }

/* --- Search Bar --- */
.search-bar-wrapper {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    background: var(--white);
    padding: 30px 0;
    box-shadow: var(--shadow-soft);
    display: none;
}

.search-bar-wrapper.active { display: block; animation: slideDown 0.3s ease; }

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

/* Responsive */
@media (max-width: 992px) {
    .footer-grid { grid-template-columns: 1fr 1fr; }
    .nav-list { display: none; }
}

@media (max-width: 576px) {
    .footer-grid { grid-template-columns: 1fr; }
}

/* === Additional Page Styles === */
.py-60{padding:60px 0}.py-80{padding:80px 0}.py-100{padding:100px 0}.mt-60{margin-top:60px}.mt-80{margin-top:80px}.mb-60{margin-bottom:60px}.text-center{text-align:center}.muted{color:#888}.narrow{max-width:760px}.bg-beige{background:var(--secondary)}
.section-tag{display:inline-block;font-family:var(--font-ui);font-size:.75rem;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:12px}
.page-hero{padding:80px 0 60px;text-align:center}.page-hero h1{font-size:clamp(2rem,5vw,3.5rem)}
.btn-sm{padding:8px 16px;font-size:.8rem}.btn-lg{padding:16px 36px;font-size:1.05rem}.btn-block{width:100%}
.genre-badge{display:inline-block;background:var(--accent);color:#fff;padding:3px 12px;border-radius:12px;font-size:.75rem;font-weight:600;margin-bottom:12px}
.free-badge{display:inline-block;background:#27ae60;color:#fff;padding:3px 12px;border-radius:12px;font-size:.75rem;font-weight:600}
.star-display{display:inline-flex;gap:2px;color:var(--accent)}.star.empty{color:#ddd}.star-row{display:flex;align-items:center;gap:6px;margin:8px 0}
.alert{padding:12px 16px;border-radius:6px;margin-bottom:16px;font-size:.9rem}.alert-success{background:#e8f8f0;border:1px solid #a3dcc0;color:#1e7e4a}.alert-error{background:#fde8e8;border:1px solid #f5a3a3;color:#8b1a1a}
.form-group{margin-bottom:20px}.form-group label{display:block;font-weight:600;margin-bottom:6px;font-size:.9rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 14px;border:1px solid #ddd;border-radius:6px;font-family:var(--font-body);font-size:.95rem}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent)}.form-row.two-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.filter-bar{display:flex;align-items:center;gap:16px;margin-bottom:40px;flex-wrap:wrap}.filter-group label{font-size:.8rem;margin-bottom:4px;display:block}.filter-group select{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-family:var(--font-ui)}.btn-clear-filter{color:var(--accent);font-size:.85rem}.results-count{margin-left:auto;color:#888;font-size:.875rem}
.books-grid.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.book-card-item{display:flex;flex-direction:column}.book-card-meta{padding:16px 0}.book-card-title{font-size:1.05rem;margin:8px 0}.book-cta-row{display:flex;align-items:center;gap:10px;margin-top:8px}
.book-detail-grid{display:grid;grid-template-columns:320px 1fr;gap:60px;align-items:start}.book-cover-col{text-align:center}.cover-rating{margin-top:12px;display:flex;align-items:center;justify-content:center;gap:8px}.book-info-col h1{font-size:2.2rem}.author-byline{color:var(--text-light);margin-bottom:24px}.book-meta-table{width:100%;border-collapse:collapse;margin-bottom:24px}.book-meta-table td{padding:8px 12px;border-bottom:1px solid #f0e8dc}.book-meta-table td:first-child{font-weight:600;width:120px}.author-note{border-left:3px solid var(--accent);padding:16px 20px;background:var(--secondary);border-radius:0 6px 6px 0;margin:24px 0}.quote-mark{font-size:2rem;color:var(--accent);line-height:1}.book-cta-group{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.yt-responsive{position:relative;padding-bottom:56.25%;height:0}.yt-responsive iframe{position:absolute;inset:0;width:100%;height:100%;border-radius:8px}
.review-summary{display:flex;gap:40px;align-items:flex-start;margin-bottom:40px;background:var(--secondary);padding:24px;border-radius:8px}.avg-rating-big{font-size:3.5rem;font-weight:700;color:var(--primary);font-family:var(--font-heading)}.rating-bars{flex:1}.rating-bar-row{display:flex;align-items:center;gap:10px;margin-bottom:6px;font-size:.875rem}.bar{flex:1;height:8px;background:#e8ddd0;border-radius:4px}.bar-fill{height:100%;background:var(--accent);border-radius:4px}.reviews-list{display:grid;gap:20px;margin-bottom:40px}.review-card{background:#fff;border:1px solid #e8ddd0;border-radius:8px;padding:20px;position:relative}.review-card.featured{border-color:var(--accent)}.featured-ribbon{position:absolute;top:12px;right:12px;background:var(--accent);color:#fff;font-size:.7rem;padding:2px 8px;border-radius:10px}.review-header{display:flex;align-items:center;gap:12px;margin-bottom:10px}.reviewer-avatar{width:36px;height:36px;border-radius:50%;background:var(--primary);color:var(--secondary);display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}.review-rating{margin-left:auto}.review-headline{margin-bottom:8px;font-size:1rem}.review-body{color:var(--text-light);font-size:.9rem}.review-footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:.8rem}.review-date{color:#aaa}.review-source{font-size:.75rem;color:#aaa}.write-review-form{background:var(--secondary);padding:32px;border-radius:8px;margin-top:40px}.star-picker .stars-input{display:flex;flex-direction:row-reverse;gap:4px;font-size:1.5rem}.stars-input input{display:none}.stars-input label{cursor:pointer;color:#ddd;transition:color .2s}.stars-input label:hover,.stars-input label:hover~label,.stars-input input:checked~label{color:var(--accent)}
.related-books-scroll{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.related-book-card img{width:100%;height:180px;object-fit:cover;border-radius:6px}.related-book-card h4{font-size:.95rem;margin-top:8px}
.reader-toolbar{background:#fff;border-bottom:1px solid #e8ddd0;padding:12px 0;position:sticky;top:0;z-index:50}.reader-toolbar-inner{display:flex;align-items:center;gap:16px}.reader-title{flex:1;font-size:1rem;font-weight:600}.reader-controls{display:flex;gap:8px}.reader-progress-bar{height:3px;background:#e8ddd0}.reading-progress{height:100%;background:var(--accent);transition:width .3s}.reader-wrapper{padding:40px 0}
.reader-text-view{font-size:16px;line-height:1.9}.night-mode{background:#1a1208;color:#d4b896}.night-mode .reader-toolbar{background:#2c1a0e}.flipbook-container{text-align:center}.flipbook-controls{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:24px}
.hero-post{padding:80px 0;background:var(--secondary)}.hero-post-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.hero-post-img img{width:100%;border-radius:8px;height:400px;object-fit:cover}.hero-post-content h1{font-size:2rem}.hero-post-meta{color:#888;font-size:.875rem;margin:12px 0}
.cat-badge{display:inline-block;color:#fff;padding:3px 12px;border-radius:12px;font-size:.75rem;font-weight:600;margin-bottom:12px}.cat-tabs{display:flex;gap:4px;margin-bottom:24px;flex-wrap:wrap}.cat-tab{padding:8px 16px;border-radius:20px;font-size:.85rem;border:1px solid #e8ddd0;color:#888}.cat-tab.active{background:var(--primary);color:var(--secondary);border-color:var(--primary)}.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-bottom:40px}.blog-card{background:#fff;border-radius:8px;overflow:hidden;border:1px solid #e8ddd0;transition:transform .2s,box-shadow .2s}.blog-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-premium)}.blog-card-img{position:relative;height:200px;overflow:hidden}.blog-card-img img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.blog-card:hover .blog-card-img img{transform:scale(1.05)}.blog-card-img .cat-badge{position:absolute;top:12px;left:12px}.blog-card-content{padding:20px}.blog-card-meta{font-size:.8rem;color:#888;margin-bottom:8px}.blog-card-content h2,.blog-card-content h3{font-size:1.1rem;margin-bottom:8px}.read-more{color:var(--accent);font-size:.875rem;font-weight:600}
.blog-page-grid{display:grid;grid-template-columns:1fr 320px;gap:48px}.blog-posts-col{min-width:0}.blog-sidebar{}.sidebar-widget{background:#fff;border:1px solid #e8ddd0;border-radius:8px;padding:24px;margin-bottom:24px}.sidebar-widget h4{margin-bottom:16px;font-size:1rem}.sidebar-search{display:flex;gap:8px}.sidebar-search input{flex:1;padding:8px 12px;border:1px solid #ddd;border-radius:6px}.sidebar-newsletter .btn-block{margin-top:12px;text-align:center}.tag-cloud{display:flex;flex-wrap:wrap;gap:8px}.tag-pill{padding:4px 12px;border:1px solid #e8ddd0;border-radius:12px;font-size:.8rem;color:var(--text-light)}.tag-pill:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.post-cover-hero{height:480px;background-size:cover;background-position:center;position:relative}.post-cover-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(0,0,0,.1),rgba(0,0,0,.7));display:flex;align-items:flex-end;padding-bottom:60px}.post-cover-overlay .container{}.post-cover-hero h1{color:#fff;font-size:clamp(1.8rem,4vw,3rem);margin-bottom:12px}.post-byline{color:rgba(255,255,255,.8);font-size:.9rem}.post-body-wrapper{padding:60px 0}.post-layout{display:grid;grid-template-columns:1fr 260px;gap:48px;align-items:start}.post-content{min-width:0}.post-lead{font-size:1.15rem;color:var(--text-light);border-left:3px solid var(--accent);padding-left:20px;margin-bottom:32px}.post-body{font-size:1.05rem;line-height:1.85}.post-body h2{margin-top:2rem}.post-tags{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:32px 0;padding-top:24px;border-top:1px solid #e8ddd0}.share-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}.share-btn{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;cursor:pointer;border:none;text-decoration:none}.share-btn.twitter{background:#000;color:#fff}.share-btn.facebook{background:#1877f2;color:#fff}.share-btn.whatsapp{background:#25d366;color:#fff}.share-btn.copy{background:#eee;color:#333}.post-toc{background:var(--secondary);border-radius:8px;padding:20px;position:sticky;top:80px}.post-toc h4{margin-bottom:12px}.post-toc ul{list-style:none}.post-toc li{margin-bottom:6px}.post-toc li a{font-size:.85rem;color:var(--text-light)}.post-toc li.toc-sub{padding-left:14px}
.auth-page{min-height:70vh;display:flex;align-items:center}.auth-card{max-width:460px;margin:0 auto;background:#fff;border-radius:12px;padding:40px;box-shadow:var(--shadow-premium)}.auth-header{text-align:center;margin-bottom:28px}.auth-header .logo-icon{font-size:2.5rem;display:block;margin-bottom:8px}.auth-header h1{font-size:1.8rem}.auth-form{display:flex;flex-direction:column;gap:0}.auth-footer{text-align:center;margin-top:20px;font-size:.875rem;color:#888}.auth-footer a{color:var(--accent)}
.events-list{display:flex;flex-direction:column;gap:24px}.event-card{display:grid;grid-template-columns:100px 1fr;gap:28px;background:#fff;border:1px solid #e8ddd0;border-radius:8px;padding:24px;align-items:start}.event-date-block{background:var(--primary);color:var(--secondary);border-radius:8px;padding:16px;text-align:center}.event-month{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:1px;opacity:.7}.event-day{display:block;font-size:2.5rem;font-weight:700;font-family:var(--font-heading);line-height:1}.event-meta{display:flex;flex-wrap:wrap;gap:12px;font-size:.85rem;color:#888;margin:8px 0}.past-events-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.past-event-card{background:var(--secondary);border-radius:8px;padding:20px}.event-year{font-size:.75rem;color:var(--accent);font-weight:700;display:block;margin-bottom:6px}
.reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:40px}.global-rating{display:flex;align-items:center;justify-content:center;gap:10px;font-size:1.1rem;margin-top:12px}
.hero-search-form{display:flex;gap:12px;max-width:600px;margin:32px auto 0}.hero-search-form input{flex:1;padding:12px 16px;border:1px solid #ddd;border-radius:6px;font-family:var(--font-body);font-size:1rem}.search-results-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:40px}.search-result-card{display:flex;gap:16px;background:#fff;border:1px solid #e8ddd0;border-radius:8px;padding:16px;transition:transform .2s}.search-result-card:hover{transform:translateY(-2px)}.search-result-card img{width:60px;height:80px;object-fit:cover;border-radius:4px;flex-shrink:0}.result-type{font-size:.7rem;text-transform:uppercase;letter-spacing:1px;color:var(--accent);font-weight:700;display:block;margin-bottom:4px}.search-result-info h3{font-size:.95rem;margin-bottom:4px}.search-result-info p{font-size:.8rem;color:#888}
.dashboard-grid{display:grid;grid-template-columns:260px 1fr;gap:40px}.dashboard-sidebar{}.user-card{background:var(--secondary);border-radius:8px;padding:24px;text-align:center;margin-bottom:24px}.user-avatar-circle{width:64px;height:64px;background:var(--primary);color:var(--secondary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;margin:0 auto 12px}.dash-nav{display:flex;flex-direction:column;gap:4px}.dash-nav-link{padding:10px 14px;border-radius:6px;font-size:.875rem;color:var(--text-main);display:flex;align-items:center;gap:8px}.dash-nav-link:hover,.dash-nav-link.active{background:var(--secondary);color:var(--accent)}.dash-nav-link.logout-link{color:#c0392b}.dash-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:32px}.stat-card{background:#fff;border:1px solid #e8ddd0;border-radius:8px;padding:20px;text-align:center}.stat-number{display:block;font-size:2.5rem;font-weight:700;color:var(--primary);font-family:var(--font-heading)}.stat-label{font-size:.85rem;color:#888}.dash-section{margin-bottom:32px}.dash-review-item{background:#fff;border:1px solid #e8ddd0;border-radius:8px;padding:16px;margin-bottom:12px}.dash-review-info{display:flex;align-items:center;gap:12px;margin-bottom:8px}.review-status{font-size:.75rem;padding:2px 8px;border-radius:10px}.review-status.approved{background:#e8f8f0;color:#27ae60}.review-status.pending{background:#fff8e8;color:#C8963E}.dash-review-body{font-size:.875rem;color:#888}.dash-cta-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.dash-cta-card{background:var(--secondary);border-radius:8px;padding:24px;text-align:center;transition:transform .2s}.dash-cta-card:hover{transform:translateY(-3px)}.dash-cta-card span{font-size:2rem;display:block;margin-bottom:8px}
.contact-grid{display:grid;grid-template-columns:1fr 340px;gap:48px}.contact-form .contact-info-card{background:var(--secondary);border-radius:8px;padding:24px;margin-bottom:16px}
.newsletter-hero{padding:80px 0 40px;background:var(--secondary);text-align:center}.newsletter-page-grid{display:grid;grid-template-columns:1fr 320px;gap:48px}.subscribe-card{background:#fff;border-radius:12px;padding:36px;box-shadow:var(--shadow-soft)}.benefits-list{list-style:none;margin-bottom:24px}.benefits-list li{padding:8px 0;border-bottom:1px solid #f0e8dc;font-size:.95rem}.subscribe-form .form-group{margin-bottom:16px}.form-note{font-size:.75rem;color:#aaa;text-align:center;margin-top:12px}.archive-list{list-style:none}.archive-item{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #e8ddd0}.archive-date{font-size:.75rem;color:var(--accent);font-weight:600;min-width:60px}.archive-subject{font-size:.875rem}
.timeline{position:relative;padding-left:40px}.timeline::before{content:'';position:absolute;left:12px;top:0;bottom:0;width:2px;background:var(--accent)}.timeline-item{position:relative;margin-bottom:40px}.timeline-icon{position:absolute;left:-40px;width:28px;height:28px;background:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem}.timeline-content h4{color:var(--accent);font-size:1rem;margin-bottom:6px}.awards-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin-top:24px}.award-badge{background:var(--secondary);border:1px solid var(--accent);padding:12px 24px;border-radius:24px;font-size:.9rem}
.faq-list{display:flex;flex-direction:column;gap:8px}.faq-item{border:1px solid #e8ddd0;border-radius:8px;overflow:hidden}.faq-question{width:100%;padding:18px 20px;background:#fff;border:none;text-align:left;font-family:var(--font-body);font-size:1rem;font-weight:600;cursor:pointer;display:flex;justify-content:space-between;align-items:center;color:var(--primary)}.faq-question:hover{background:var(--secondary)}.faq-icon{font-size:1.2rem;color:var(--accent)}.faq-answer{padding:0 20px 20px;background:#fff}.faq-cta{margin-top:48px}
.error-page{padding:120px 0;text-align:center}.error-number{font-size:8rem;font-weight:700;color:var(--accent);font-family:var(--font-heading);opacity:.3;line-height:1}.error-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:32px}
.legal-page .legal-body h2{font-size:1.3rem;margin-top:2rem;margin-bottom:.5rem}.legal-page .legal-body ul{padding-left:24px;margin-bottom:1rem}
.press-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}.press-bio{background:var(--secondary);border-left:3px solid var(--accent);padding:16px 20px;border-radius:0 6px 6px 0;font-style:italic;margin:16px 0}.press-facts{padding-left:20px;margin:12px 0}.press-downloads{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.press-download-card{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #e8ddd0;border-radius:8px;padding:16px}.press-download-card span{font-size:1.5rem}.press-contact-box{background:var(--secondary);border-radius:8px;padding:24px;margin-top:16px}
.confirm-page{padding:120px 0;text-align:center}.confirm-icon{font-size:4rem;margin-bottom:24px}
.nl-stats{display:flex;gap:20px;margin-bottom:24px}.breadcrumb-nav{padding:20px 0;font-size:.875rem;color:#888}.breadcrumb-nav a{color:var(--accent)}
.about-grid{display:grid;grid-template-columns:380px 1fr;gap:60px;align-items:start}.author-photo-frame{border-radius:8px;overflow:hidden;box-shadow:var(--shadow-premium)}.author-photo-frame img{width:100%;height:500px;object-fit:cover}.pull-quote{font-size:1.2rem;font-style:italic;border-left:3px solid var(--accent);padding:16px 24px;background:var(--secondary);border-radius:0 6px 6px 0;margin:24px 0}
.empty-state{padding:60px;text-align:center;color:#888}.pagination{margin:40px 0;text-align:center}.pagination ul{list-style:none;display:flex;gap:8px;justify-content:center}.page-link{padding:8px 14px;border:1px solid #e8ddd0;border-radius:6px;font-size:.875rem;color:var(--text-main)}.page-link.active,.page-link:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.back-link{display:inline-block;margin-bottom:24px;color:var(--accent);font-size:.875rem}
@media(max-width:768px){.books-grid.three-col,.blog-grid,.reviews-grid,.search-results-grid,.events-list .event-card,.about-grid,.contact-grid,.book-detail-grid,.newsletter-page-grid,.post-layout,.dashboard-grid,.hero-post-grid,.press-grid,.past-events-grid,.form-row.two-col,.dash-stats,.dash-cta-grid,.related-books-scroll{grid-template-columns:1fr!important;display:block!important}.book-detail-grid,.blog-page-grid,.dashboard-grid{gap:24px!important}}

/* ===== HEADER / NAV extras ===== */
.site-header.scrolled{box-shadow:0 2px 20px rgba(74,44,10,.12)}
.header-actions{display:flex;align-items:center;gap:10px}
.btn-icon{background:none;border:none;cursor:pointer;color:var(--primary);padding:8px;border-radius:50%;transition:var(--transition)}
.btn-icon:hover{background:var(--secondary)}
.has-dropdown{position:relative}.dropdown{position:absolute;top:calc(100% + 8px);left:0;background:#fff;border:1px solid #e8ddd0;border-radius:6px;min-width:160px;padding:8px 0;box-shadow:0 8px 24px rgba(74,44,10,.12);opacity:0;pointer-events:none;transform:translateY(-6px);transition:all .2s;z-index:200}.has-dropdown:hover .dropdown{opacity:1;pointer-events:auto;transform:translateY(0)}.dropdown li{list-style:none}.dropdown a{display:block;padding:8px 16px;font-size:.875rem;color:var(--text-main)}.dropdown a:hover{color:var(--accent);background:var(--secondary)}
.mobile-menu-toggle{display:none;background:none;border:none;cursor:pointer;flex-direction:column;gap:5px;padding:6px}.mobile-menu-toggle span{display:block;width:22px;height:2px;background:var(--primary);transition:var(--transition)}.mobile-menu-toggle.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.mobile-menu-toggle.active span:nth-child(2){opacity:0}.mobile-menu-toggle.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
.search-results-dropdown{border-top:1px solid #f0e8dc;padding:4px 0}.search-result-item{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:6px;color:var(--text-main)}.search-result-item:hover{background:var(--secondary)}.result-type-badge{font-size:.65rem;padding:2px 8px;border-radius:10px;background:var(--accent);color:#fff;font-weight:700;text-transform:uppercase;flex-shrink:0}.search-no-results{padding:12px 16px;color:#888;font-size:.875rem}

/* ===== FOOTER extras ===== */
.footer-top{padding:20px 0 0}.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding:20px 0}.footer-bottom-inner{display:flex;justify-content:flex-start;align-items:center;font-size:.825rem;color:rgba(212,184,150,.6)}.footer-logo{display:flex;align-items:center;gap:10px;font-family:var(--font-heading);font-size:1.2rem;font-weight:700;color:var(--secondary);margin-bottom:16px}.footer-tagline{font-size:.875rem;color:rgba(212,184,150,.7);line-height:1.6;margin-bottom:20px}.social-links{display:flex;gap:10px}.social-link{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:var(--secondary);transition:var(--transition)}.social-link:hover{background:var(--accent);transform:translateY(-2px)}

/* ===== BACK TO TOP ===== */
.back-to-top{position:fixed;bottom:28px;right:28px;width:44px;height:44px;border-radius:50%;background:var(--primary);color:var(--secondary);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px rgba(74,44,10,.2);opacity:0;transform:translateY(10px);transition:opacity .3s,transform .3s;z-index:999}.back-to-top.visible{opacity:1;transform:translateY(0)}.back-to-top:hover{background:var(--accent)}

/* ===== FAQ ACCORDION ===== */
.faq-answer{max-height:0;overflow:hidden;transition:max-height .35s ease}
.faq-item.open .faq-icon{transform:rotate(45deg)}
.faq-icon{transition:transform .25s}

/* ===== MOBILE NAV ===== */
@media(max-width:992px){
  .mobile-menu-toggle{display:flex}
  .primary-nav{display:none;position:absolute;top:100%;left:0;width:100%;background:#fff;padding:16px;box-shadow:var(--shadow-soft);margin-left:0;transform:none}
  .primary-nav.mobile-active{display:block}
  .nav-list{flex-direction:column;gap:4px}
  .nav-link{display:block;padding:10px 14px;border-radius:6px}
  .nav-link:hover{background:var(--secondary)}
  .dropdown{position:static;opacity:1;pointer-events:auto;box-shadow:none;transform:none;border:none;padding-left:16px;display:none}
  .has-dropdown:hover .dropdown,.mobile-active .has-dropdown .dropdown{display:block}
}

/* ===== PUBLIC GALLERY & LIGHTBOX ===== */
.gallery-page-container {
    background-color: var(--primary);
    color: var(--secondary);
    min-height: 100vh;
}
.gallery-header-cinematic {
    text-align: center;
    padding: 100px 20px 0px;
}
.gallery-header-cinematic h1 {
    font-size: 3.2rem;
    color: var(--accent);
    margin-bottom: 12px;
}
.gallery-header-cinematic p {
    color: rgba(245, 236, 215, 0.8);
    font-size: 1.1rem;
    max-width: 650px;
    margin: 0 auto;
    line-height: 1.8;
}

/* ===== PUBLIC GALLERY GRID ===== */
.public-gallery-grid {
    column-count: 3;
    column-gap: 16px;
    padding: 100px 24px 60px;
    max-width: 1400px;
    margin: 0 auto;
}
@media (max-width: 992px) {
    .public-gallery-grid { column-count: 2; }
}
@media (max-width: 576px) {
    .public-gallery-grid { column-count: 1; }
}
.gallery-item {
    break-inside: avoid;
    margin-bottom: 16px;
    cursor: pointer;
    border-radius: 0;
    overflow: hidden;
    position: relative;
    display: block;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    transition: transform 0.3s, box-shadow 0.3s;
}
.gallery-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(0,0,0,0.3);
}
.gallery-media {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 0.4s;
}
.gallery-item:hover .gallery-media {
    transform: scale(1.03);
}

.gallery-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(20, 8, 0, 0.85) 0%,
        rgba(20, 8, 0, 0.4) 45%,
        transparent 100%
    );
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 20px 18px 18px;
    opacity: 0;
    transition: opacity 0.35s ease;
}
.gallery-item:hover .gallery-overlay {
    opacity: 1;
}

.gallery-icon {
    position: absolute;
    top: 12px;
    right: 14px;
    width: 34px;
    height: 34px;
    background: rgba(200,150,62,0.85);
    backdrop-filter: blur(4px);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.95rem;
    line-height: 1;
    transform: scale(0.6) rotate(-10deg);
    opacity: 0;
    transition: transform 0.35s cubic-bezier(0.175,0.885,0.32,1.275), opacity 0.3s;
}
.gallery-item:hover .gallery-icon {
    transform: scale(1) rotate(0deg);
    opacity: 1;
}

.gallery-caption {
    position: relative;
    transform: translateY(10px);
    opacity: 0;
    transition: transform 0.35s ease 0.05s, opacity 0.35s ease 0.05s;
    width: 100%;
}
.gallery-item:hover .gallery-caption {
    transform: translateY(0);
    opacity: 1;
}
.gallery-caption::before {
    content: '';
    display: block;
    width: 28px;
    height: 2px;
    background: #C8963E;
    border-radius: 2px;
    margin-bottom: 7px;
}
.gallery-caption-text {
    font-family: 'Inter', 'Lora', sans-serif;
    font-size: 0.82rem;
    font-weight: 600;
    color: #fff;
    line-height: 1.45;
    letter-spacing: 0.1px;
    text-shadow: 0 1px 4px rgba(0,0,0,0.5);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Lightbox */
.lightbox-modal {
    display: none;
    position: fixed;
    z-index: 9999;
    padding: 40px;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.9);
    align-items: center;
    justify-content: center;
    flex-direction: column;
    opacity: 0;
    transition: opacity 0.3s;
}
.lightbox-modal.show {
    opacity: 1;
}
.lightbox-content {
    max-width: 90%;
    max-height: 80vh;
    border-radius: 4px;
    box-shadow: 0 8px 32px rgba(0,0,0,0.5);
}
#lightbox-caption {
    margin: 20px auto 0;
    display: block;
    max-width: 800px;
    text-align: center;
    color: #ccc;
    padding: 10px 0;
    font-size: 1.1rem;
    font-style: italic;
}
.lightbox-close {
    position: absolute;
    top: 30px;
    right: 40px;
    color: #f1f1f1;
    font-size: 40px;
    font-weight: bold;
    cursor: pointer;
    transition: 0.3s;
}
.lightbox-close:hover {
    color: #bbb;
}

/* ==========================================================================
   PREMIUM HOMEPAGE REDESIGN STYLES
   ========================================================================== */

/* --- Animations & Utilities --- */
@keyframes fadeUpReveal {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes floatGentle {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-15px); }
}

@keyframes floatGentleInverse {
    0%, 100% { transform: translateY(0) scale(1); }
    50% { transform: translateY(15px) scale(1.05); }
}

@keyframes slowPan {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

.reveal-up {
    animation: fadeUpReveal 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}

.delay-1 { animation-delay: 0.2s; }
.delay-2 { animation-delay: 0.4s; }
.delay-3 { animation-delay: 0.6s; }

.glass-card {
    background: rgba(255, 255, 255, 0.85);
    backdrop-filter: blur(16px);
    border: 1px solid rgba(255, 255, 255, 0.6);
    box-shadow: 0 20px 40px rgba(74, 44, 10, 0.08);
    border-radius: 16px;
}

/* --- Hero Section Redesign --- */
.hero-premium {
    position: relative;
    padding: 180px 0 200px;
    background: linear-gradient(-45deg, #FDFDFD, #F4EAD3, #FFF8EB, #EBE1CB);
    background-size: 400% 400%;
    animation: slowPan 25s ease infinite;
    text-align: center;
    overflow: hidden;
    border-bottom: 1px solid rgba(200, 150, 62, 0.2);
}

.hero-premium::before {
    content: '';
    position: absolute;
    top: -50%; left: -50%;
    width: 200%; height: 200%;
    background: radial-gradient(circle, rgba(200,150,62,0.05) 0%, transparent 50%);
    animation: floatGentleInverse 30s infinite linear;
    z-index: 0;
}

.hero-premium .container { position: relative; z-index: 1; }

.hero-premium .hero-content h1 {
    font-size: clamp(3rem, 7vw, 5.5rem);
    font-weight: 700;
    letter-spacing: -1.5px;
    margin-bottom: 24px;
    color: var(--primary);
    text-shadow: 0 4px 20px rgba(74,44,10,0.08);
    line-height: 1.1;
}

.hero-premium .hero-subtitle {
    font-size: 1.35rem;
    color: var(--text-light);
    max-width: 650px;
    margin: 0 auto 48px;
    line-height: 1.8;
}

.btn-premium {
    padding: 14px 36px;
    font-size: 1rem;
    border-radius: 30px;
    box-shadow: 0 8px 20px rgba(200, 150, 62, 0.3);
    background: linear-gradient(135deg, var(--accent) 0%, #a67c33 100%);
    color: #fff;
    border: none;
}
.btn-premium:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 25px rgba(200, 150, 62, 0.4);
    color: #fff;
}

.btn-premium-outline {
    padding: 14px 36px;
    font-size: 1rem;
    border-radius: 30px;
    border: 2px solid var(--primary);
    color: var(--primary);
    background: transparent;
}
.btn-premium-outline:hover {
    background: var(--primary);
    color: var(--secondary);
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(74, 44, 10, 0.15);
}

/* --- Featured Book Redesign --- */
.featured-premium-section {
    position: relative;
    z-index: 10;
    margin-top: -100px;
    padding-bottom: 120px;
}

.featured-glass-wrapper {
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: 60px;
    align-items: center;
    padding: 60px;
    background: rgba(255, 255, 255, 0.9);
}

.featured-cover-container {
    perspective: 1000px;
    text-align: center;
}

.featured-cover-container img {
    max-width: 100%;
    height: auto;
    border-radius: 4px 12px 12px 4px;
    box-shadow: -15px 25px 50px rgba(74,44,10,0.3), inset 4px 0 10px rgba(255,255,255,0.3);
    animation: floatGentle 6s ease-in-out infinite;
    transform-style: preserve-3d;
}

.featured-info { padding: 20px 0; }
.featured-info .section-tag { margin-bottom: 20px; font-size: 0.85rem; letter-spacing: 3px; }
.featured-info h2 { font-size: 3.5rem; margin-bottom: 24px; line-height: 1.1; }
.featured-info .book-meta { margin-bottom: 30px; font-size: 1rem; color: var(--text-light); border-bottom: 1px solid rgba(200,150,62,0.2); padding-bottom: 16px; display: inline-block; }
.featured-info .book-summary { font-size: 1.15rem; line-height: 1.9; color: var(--text-main); margin-bottom: 40px; }

/* --- Collection Grid Redesign --- */
.premium-books-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 50px;
}

.premium-book-card {
    position: relative;
    background: #fff;
    border-radius: 16px;
    padding: 40px 30px;
    text-align: center;
    transition: all 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
    border: 1px solid rgba(200, 150, 62, 0.1);
    overflow: hidden;
    cursor: pointer;
}

.premium-book-card__link {
    position: absolute;
    inset: 0;
    z-index: 2;
    border-radius: inherit;
    text-decoration: none;
}

.premium-book-card > *:not(.premium-book-card__link) {
    position: relative;
    z-index: 1;
}

.premium-book-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; width: 100%; height: 6px;
    background: linear-gradient(90deg, transparent, var(--accent), transparent);
    opacity: 0;
    transition: opacity 0.5s;
}

.premium-book-card:hover {
    border-color: transparent;
    box-shadow: 0 25px 60px rgba(74,44,10,0.1);
    transform: translateY(-15px);
}

.premium-book-card:hover::before { opacity: 1; }

.premium-book-card img {
    height: 340px;
    object-fit: cover;
    border-radius: 4px 8px 8px 4px;
    box-shadow: 0 15px 35px rgba(0,0,0,0.18);
    margin-bottom: 30px;
    transition: transform 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.premium-book-card:hover img { transform: translateY(-12px) scale(1.03); }

.book-cover-empty {
    height: 340px;
    max-width: 240px;
    margin: 0 auto 30px;
    border: 1px dashed rgba(200, 150, 62, 0.35);
    border-radius: 6px 10px 10px 6px;
    background: linear-gradient(135deg, #faf7f2, #f0e8d8);
    color: rgba(74, 44, 10, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-ui);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    box-shadow: 0 15px 35px rgba(74,44,10,0.08);
}

.premium-book-card h4 { font-size: 1.4rem; margin-bottom: 10px; font-weight: 700; }
.premium-book-card .genre-text { color: var(--accent); font-size: 0.85rem; text-transform: uppercase; letter-spacing: 1.5px; font-weight: 600; margin-bottom: 25px; }

.premium-card-actions {
    opacity: 0;
    visibility: hidden;
    transform: translateY(20px);
    transition: all 0.4s cubic-bezier(0.2, 0.8, 0.2, 1);
    display: flex;
    justify-content: center;
    gap: 12px;
    position: relative;
    z-index: 3;
}

.premium-book-card:hover .premium-card-actions {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* --- Editorial Blog Preview --- */
.editorial-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}

.editorial-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    border-bottom: 2px solid transparent;
    padding-bottom: 30px;
    transition: all 0.4s ease;
}

.editorial-card:hover { border-bottom-color: var(--accent); }

.editorial-img-wrap {
    overflow: hidden;
    border-radius: 12px;
    margin-bottom: 24px;
    position: relative;
    box-shadow: 0 10px 30px rgba(74,44,10,0.08);
}

.editorial-img {
    width: 100%;
    height: 260px;
    object-fit: cover;
    transition: transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1);
    display: block;
}

.editorial-card:hover .editorial-img { transform: scale(1.08); }

.editorial-card .cat-badge { 
    position: absolute;
    top: 16px; left: 16px;
    background: rgba(255,255,255,0.9); 
    color: var(--primary); 
    padding: 6px 14px;
    border-radius: 30px;
    font-weight: 700;
    font-size: 0.75rem;
    letter-spacing: 1px;
    margin: 0;
}

.editorial-card .blog-date { font-family: var(--font-ui); font-size: 0.85rem; color: var(--text-light); margin-bottom: 12px; display: block; }
.editorial-card h3 { font-size: 1.6rem; margin-bottom: 16px; line-height: 1.3; transition: color 0.3s; }
.editorial-card:hover h3 { color: var(--accent); }
.editorial-card p { font-size: 1.05rem; color: var(--text-light); margin-bottom: 24px; line-height: 1.7; flex-grow: 1; }
.editorial-card .read-more { font-family: var(--font-ui); text-transform: uppercase; letter-spacing: 1px; font-size: 0.85rem; font-weight: 700; display: inline-flex; align-items: center; gap: 6px; }

/* --- Premium Newsletter Banner --- */
.premium-newsletter {
    background: linear-gradient(135deg, var(--primary) 0%, #2A1906 100%);
    color: var(--secondary);
    padding: 120px 0;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.premium-newsletter::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; height: 1px;
    background: linear-gradient(90deg, transparent, var(--accent), transparent);
}

.premium-newsletter h2 { color: var(--accent); font-size: 3rem; margin-bottom: 20px; }
.premium-newsletter p { font-size: 1.2rem; opacity: 0.85; max-width: 550px; margin: 0 auto 40px; line-height: 1.6; }
.premium-newsletter .newsletter-inline-form {
    max-width: 550px;
    margin: 0 auto;
    display: flex;
    gap: 12px;
    background: rgba(255,255,255,0.06);
    padding: 10px;
    border-radius: 50px;
    border: 1px solid rgba(255,255,255,0.15);
    backdrop-filter: blur(5px);
}

.premium-newsletter input {
    background: transparent;
    border: none;
    color: #fff;
    padding: 14px 24px;
    font-size: 1.05rem;
    font-family: var(--font-body);
}

.premium-newsletter input::placeholder { color: rgba(255,255,255,0.5); font-style: italic; }
.premium-newsletter input:focus { outline: none; }
.premium-newsletter .btn { padding: 14px 36px; border-radius: 30px; font-size: 1rem; }

@media (max-width: 992px) {
    .featured-glass-wrapper { grid-template-columns: 1fr; padding: 40px 20px; gap: 40px; }
    .featured-info h2 { font-size: 2.5rem; }
    .editorial-grid { grid-template-columns: 1fr; gap: 50px; }
    .premium-newsletter .newsletter-inline-form { flex-direction: column; border-radius: 12px; padding: 20px; background: transparent; border: none; }
    .premium-newsletter input { border: 1px solid rgba(255,255,255,0.2); border-radius: 6px; margin-bottom: 10px; }
}

/* --- New Homepage Feature Sections --- */

/* About Snippet */
.home-about-wrapper {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 60px;
    align-items: center;
}
.home-about-img {
    position: relative;
}
.home-about-img img {
    width: 100%;
    border-radius: 12px;
    box-shadow: 0 20px 40px rgba(74,44,10,0.1);
}
.home-about-img::before {
    content: '';
    position: absolute;
    top: -20px; left: -20px;
    width: 100%; height: 100%;
    border: 2px solid var(--accent);
    border-radius: 12px;
    z-index: -1;
}

/* Events Grid */
.home-events-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}
.home-event-card {
    background: #fff;
    border-radius: 12px;
    padding: 30px;
    border: 1px solid rgba(74,44,10,0.05);
    box-shadow: 0 10px 30px rgba(74,44,10,0.03);
    transition: all 0.3s ease;
    text-align: center;
}
.home-event-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 40px rgba(74,44,10,0.08);
    border-color: rgba(200,150,62,0.2);
}
.home-event-date {
    display: inline-block;
    background: var(--secondary);
    color: var(--primary);
    padding: 10px 20px;
    border-radius: 30px;
    font-weight: 700;
    margin-bottom: 20px;
    border: 1px solid rgba(200,150,62,0.2);
}

/* Reviews / Testimonials */
.home-reviews-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}
.testimonial-card {
    background: var(--bg-white);
    padding: 40px 30px;
    border-radius: 16px;
    position: relative;
    border: 1px solid rgba(200,150,62,0.15);
    transition: transform 0.3s;
}
.testimonial-card:hover { transform: translateY(-5px); }
.testimonial-card::before {
    content: '"';
    position: absolute;
    top: 20px; left: 30px;
    font-family: var(--font-heading);
    font-size: 6rem;
    color: var(--accent);
    opacity: 0.15;
    line-height: 1;
}
.testimonial-stars { color: var(--accent); margin-bottom: 16px; font-size: 1.2rem; }
.testimonial-body { font-size: 1.1rem; font-style: italic; color: var(--text-main); margin-bottom: 24px; position: relative; z-index: 2; line-height: 1.7; }
.testimonial-author { font-weight: 700; font-family: var(--font-ui); text-transform: uppercase; letter-spacing: 1px; font-size: 0.85rem; color: var(--primary); }

/* Gallery Mini */
.home-gallery-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}
.home-gallery-item {
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}
.home-gallery-item img {
    width: 100%;
    height: 250px;
    object-fit: cover;
    transition: transform 0.5s;
    display: block;
}
.home-gallery-item:hover img { transform: scale(1.1); }
.home-gallery-overlay {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(74,44,10,0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.3s;
}
.home-gallery-item:hover .home-gallery-overlay { opacity: 1; }
.home-gallery-overlay svg { color: #fff; width: 32px; height: 32px; }

@media (max-width: 992px) {
    .home-about-wrapper { grid-template-columns: 1fr; }
    .home-events-grid { grid-template-columns: 1fr; }
    .home-reviews-grid { grid-template-columns: 1fr; }
    .home-gallery-grid { grid-template-columns: repeat(2, 1fr); }
}

/* --- Premium Book Details Page --- */
.premium-detail-hero {
    background: linear-gradient(135deg, #1a0f05 0%, #1a1a1a 100%);
    color: #fff;
    padding: 36px 0 72px;
    position: relative;
    overflow: hidden;
}

.premium-detail-grid {
    display: grid;
    grid-template-columns: 350px 1fr;
    gap: 80px;
    align-items: center;
}

@media (max-width: 992px) {
    .premium-detail-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
}

.premium-cover-wrapper {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 30px 60px rgba(0,0,0,0.4);
    position: relative;
    background: #fff;
}

.premium-cover-wrapper img {
    width: 100%;
    height: auto;
    aspect-ratio: 2/3;
    object-fit: cover;
    display: block;
}

.premium-info-col h1 {
    font-size: 3.5rem;
    font-family: var(--font-heading);
    margin-bottom: 10px;
    color: #fff;
    line-height: 1.1;
}

.premium-info-col .author-byline {
    font-size: 1.2rem;
    color: rgba(255,255,255,0.7);
    margin-bottom: 30px;
}

.premium-meta-table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 30px;
    color: rgba(255,255,255,0.8);
}

.premium-meta-table td {
    padding: 10px 0;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.premium-meta-table td:first-child {
    font-weight: 600;
    color: #fff;
    width: 120px;
}

.premium-author-note {
    background: rgba(255,255,255,0.05);
    border-left: 4px solid var(--accent);
    padding: 24px;
    border-radius: 0 12px 12px 0;
    margin: 30px 0;
    font-style: italic;
    color: #fff;
}

.premium-cta-group {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
    margin-top: 40px;
}

/* --- Premium Authentication Pages (V2 - Immersive Glassmorphism) --- */
body.premium-auth-page {
    background-color: #111;
}
body.premium-auth-page .site-footer {
    margin-top: 0;
}

.auth-immersive-bg {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    background: linear-gradient(135deg, #1a0f05 0%, #4A2C0A 50%, #111 100%);
    background-size: 200% 200%;
    animation: authGradient 15s ease infinite;
    position: relative;
}

@keyframes authGradient {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

/* Optional subtle overlay pattern */
.auth-immersive-bg::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background-image: radial-gradient(rgba(255,255,255,0.05) 1px, transparent 1px);
    background-size: 30px 30px;
    pointer-events: none;
}

.auth-glass-card {
    background: rgba(255, 255, 255, 0.03);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    padding: 50px 40px;
    width: 100%;
    max-width: 480px;
    box-shadow: 0 30px 60px rgba(0,0,0,0.5);
    position: relative;
    z-index: 10;
    color: #fff;
}

.auth-glass-card .logo-icon {
    font-size: 3rem;
    color: var(--accent);
    display: block;
    text-align: center;
    margin-bottom: 20px;
    text-shadow: 0 0 20px rgba(200, 150, 62, 0.4);
}

.auth-glass-card h1 {
    font-size: 2.2rem;
    text-align: center;
    margin-bottom: 10px;
    font-family: var(--font-heading);
    color: #fff;
}

.auth-glass-card p.subtitle {
    text-align: center;
    color: rgba(255, 255, 255, 0.6);
    margin-bottom: 40px;
    font-size: 1.1rem;
}

.auth-glass-input-group {
    margin-bottom: 25px;
    position: relative;
}

.auth-glass-input-group label {
    display: block;
    margin-bottom: 8px;
    font-size: 0.9rem;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.8);
    letter-spacing: 0.5px;
}

.auth-glass-input-group input {
    width: 100%;
    padding: 15px 20px;
    background: rgba(0, 0, 0, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 8px;
    color: #fff;
    font-size: 1rem;
    transition: all 0.3s ease;
}

.auth-glass-input-group input::placeholder {
    color: rgba(255, 255, 255, 0.3);
}

.auth-glass-input-group input:focus {
    outline: none;
    border-color: var(--accent);
    background: rgba(0, 0, 0, 0.4);
    box-shadow: 0 0 15px rgba(200, 150, 62, 0.2);
}

.auth-glass-btn {
    width: 100%;
    padding: 16px;
    background: linear-gradient(135deg, var(--accent) 0%, #b8860b 100%);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 1.1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    margin-top: 10px;
    box-shadow: 0 10px 20px rgba(200, 150, 62, 0.3);
}

.auth-glass-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 15px 25px rgba(200, 150, 62, 0.4);
}

.auth-glass-footer {
    text-align: center;
    margin-top: 30px;
    color: rgba(255, 255, 255, 0.6);
    font-size: 0.95rem;
}

.auth-glass-footer a {
    color: var(--accent);
    text-decoration: none;
    font-weight: 600;
    transition: color 0.3s;
}

.auth-glass-footer a:hover {
    color: #fff;
}

@media (max-width: 576px) {
    .auth-glass-card {
        padding: 40px 20px;
    }
}

/* ==========================================================================
   HOMEPAGE PREMIUM REDESIGN — New Section Styles
   ========================================================================== */

/* --- 1. HERO: Split Layout --- */
.hero-split-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: center;
    min-height: 100vh;
    padding: 120px 0 80px;
}
.hero-split-text { text-align: left; }
.hero-split-text h1 {
    font-size: clamp(3rem, 5.5vw, 5.2rem);
    font-weight: 700;
    letter-spacing: -2px;
    line-height: 1.08;
    color: var(--primary);
    margin-bottom: 28px;
}
.hero-split-text .hero-subtitle {
    font-size: 1.2rem;
    color: var(--text-light);
    line-height: 1.85;
    margin-bottom: 40px;
    max-width: 520px;
}
.hero-actions { display: flex; gap: 16px; flex-wrap: wrap; }
.hero-portrait-wrap {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}
.hero-portrait-ring {
    position: relative;
    width: 420px;
    height: 420px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--accent), #f4d788, var(--primary));
    padding: 6px;
    animation: floatGentleRing 6s ease-in-out infinite;
    box-shadow: 0 30px 80px rgba(200,150,62,0.3);
}
@keyframes floatGentleRing {
    0%, 100% { transform: translateY(0px) rotate(0deg); }
    50% { transform: translateY(-18px) rotate(3deg); }
}
.hero-portrait-ring img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
    border: 6px solid var(--bg-white);
}
.hero-portrait-decor {
    position: absolute;
    top: -20px; right: -20px;
    width: 120px; height: 120px;
    border-radius: 50%;
    border: 2px dashed rgba(200,150,62,0.4);
    animation: spinSlow 20s linear infinite;
}
@keyframes spinSlow { to { transform: rotate(360deg); } }
.hero-marquee-wrapper {
    overflow: hidden;
    border-top: 1px solid rgba(200,150,62,0.2);
    border-bottom: 1px solid rgba(200,150,62,0.2);
    padding: 14px 0;
    margin-top: 20px;
}
.hero-marquee {
    display: flex;
    gap: 60px;
    white-space: nowrap;
    animation: marqueeScroll 20s linear infinite;
    font-family: var(--font-ui);
    font-size: 0.8rem;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--accent);
}
@keyframes marqueeScroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.scroll-down-hint {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin-top: 48px;
    font-family: var(--font-ui);
    font-size: 0.75rem;
    letter-spacing: 2px;
    color: var(--text-light);
    animation: bounceDown 2s ease-in-out infinite;
}
@keyframes bounceDown {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(8px); }
}
@media (max-width: 900px) {
    .hero-split-layout { grid-template-columns: 1fr; text-align: center; padding: 120px 0 60px; min-height: auto; }
    .hero-split-text h1 { font-size: 2.8rem; }
    .hero-split-text .hero-subtitle { margin: 0 auto 32px; }
    .hero-actions { justify-content: center; }
    .hero-portrait-ring { width: 280px; height: 280px; }
    .hero-portrait-wrap { margin-top: 40px; }
}

/* --- 2. LATEST POSTS — Editorial Grid --- */
.latest-posts-section {
    padding: 80px 0;
    background: var(--bg-white);
}
.section-label {
    font-family: var(--font-ui);
    font-size: 0.72rem;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 10px;
    display: block;
}
.section-title-editorial {
    font-size: clamp(2rem, 4vw, 3rem);
    color: var(--primary);
    margin-bottom: 6px;
    position: relative;
    display: inline-block;
}
.section-title-editorial::after {
    content: '';
    position: absolute;
    bottom: -8px; left: 0;
    width: 60px; height: 3px;
    background: var(--accent);
    border-radius: 2px;
    transition: width 0.6s ease;
}
.section-title-editorial:hover::after { width: 100%; }
.section-header-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 48px;
}
.posts-editorial-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    grid-template-rows: auto auto;
    gap: 28px;
}
/* Featured large card */
.post-card-featured {
    grid-row: 1 / 3;
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: var(--shadow-soft);
    display: flex;
    flex-direction: column;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
    position: relative;
}
.post-card-featured:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow-premium);
}
.post-card-featured .post-cover {
    height: 320px;
    overflow: hidden;
}
.post-card-featured .post-cover img {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 0.6s ease;
}
.post-card-featured:hover .post-cover img { transform: scale(1.05); }
.post-card-featured .post-body { padding: 32px; flex: 1; display: flex; flex-direction: column; }
.post-card-featured .post-title {
    font-size: 1.6rem;
    line-height: 1.25;
    margin-bottom: 14px;
    color: var(--primary);
}
.post-card-featured .post-excerpt {
    color: var(--text-light);
    font-size: 0.95rem;
    line-height: 1.75;
    flex: 1;
}
/* Small side cards */
.post-card-side {
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.04);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border: 1px solid rgba(0,0,0,0.03);
}
.post-card-side:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.post-card-side .side-cover {
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #f4ede1;
    position: relative;
    overflow: hidden;
}
.post-card-side .side-cover::after {
    content: "✦";
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    color: rgba(200, 150, 62, 0.3);
    font-size: 2rem;
    z-index: 0;
}
.post-card-side .side-cover img {
    width: 100%; height: 100%;
    object-fit: cover;
    position: relative;
    z-index: 1;
    transition: transform 0.6s ease;
}
.post-card-side:hover .side-cover img { transform: scale(1.04); }
.post-card-side .side-body { padding: 24px; display: flex; flex-direction: column; }
.post-card-side .post-title { font-size: 1.25rem; font-family: var(--font-heading); color: var(--primary); line-height: 1.3; margin-bottom: 12px; transition: color 0.3s ease; }
.post-card-side:hover .post-title { color: #C8963E; }

/* Shared post meta */
.post-meta-row {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
    flex-wrap: wrap;
}
.post-cat-badge {
    font-family: var(--font-ui);
    font-size: 0.7rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    background: var(--secondary);
    color: var(--accent);
    padding: 3px 10px;
    border-radius: 20px;
    font-weight: 600;
}
.new-badge {
    font-family: var(--font-ui);
    font-size: 0.65rem;
    letter-spacing: 1px;
    text-transform: uppercase;
    background: #e63946;
    color: #fff;
    padding: 2px 8px;
    border-radius: 20px;
    font-weight: 700;
    animation: pulseBadge 2s ease-in-out infinite;
}
@keyframes pulseBadge {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}
.post-date-text {
    font-family: var(--font-ui);
    font-size: 0.78rem;
    color: var(--text-light);
}
.read-more-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-ui);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--accent);
    margin-top: 20px;
    letter-spacing: 0.5px;
}
.read-more-link svg { transition: transform 0.3s; }
.read-more-link:hover svg { transform: translateX(5px); }
@media (max-width: 768px) {
    .posts-editorial-grid { grid-template-columns: 1fr; grid-template-rows: auto; }
    .post-card-featured { grid-row: auto; }
    .post-card-side { grid-template-columns: 100px 1fr; }
    .section-header-row { flex-direction: column; align-items: flex-start; gap: 12px; }
}

/* --- 3. ABOUT SNIPPET — Storytelling --- */
.home-about-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 80px;
    align-items: center;
}
.about-portrait-frame {
    position: relative;
}
.about-portrait-frame img {
    width: 100%;
    border-radius: 16px;
    object-fit: cover;
    max-height: 520px;
    box-shadow: var(--shadow-premium);
    position: relative;
    z-index: 1;
}
.about-portrait-frame::before {
    content: '';
    position: absolute;
    top: 20px; left: 20px;
    width: 100%; height: 100%;
    border: 3px solid var(--accent);
    border-radius: 16px;
    opacity: 0.4;
    z-index: 0;
}
.about-pull-quote {
    font-family: var(--font-heading);
    font-size: 1.6rem;
    line-height: 1.5;
    color: var(--primary);
    border-left: 4px solid var(--accent);
    padding-left: 24px;
    margin: 24px 0;
    font-style: italic;
}
.stats-bar {
    display: flex;
    gap: 0;
    margin-top: 36px;
    border: 1px solid rgba(200,150,62,0.2);
    border-radius: 12px;
    overflow: hidden;
}
.stat-item {
    flex: 1;
    text-align: center;
    padding: 20px 12px;
    border-right: 1px solid rgba(200,150,62,0.2);
}
.stat-item:last-child { border-right: none; }
.stat-number {
    font-family: var(--font-heading);
    font-size: 2rem;
    font-weight: 700;
    color: var(--accent);
    display: block;
    line-height: 1;
}
.stat-label {
    font-family: var(--font-ui);
    font-size: 0.72rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--text-light);
    display: block;
    margin-top: 4px;
}
@media (max-width: 900px) {
    .home-about-split { grid-template-columns: 1fr; gap: 40px; }
    .about-portrait-frame::before { display: none; }
}

/* --- 4. TIMELINE / LIFE JOURNEY --- */
.timeline-section { padding: 80px 0; background: var(--secondary); }
.timeline-wrapper { position: relative; }
.timeline-wrapper::before {
    content: '';
    position: absolute;
    top: 0; bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 2px;
    background: linear-gradient(to bottom, transparent, var(--accent), transparent);
}
.timeline-item {
    display: grid;
    grid-template-columns: 1fr 80px 1fr;
    align-items: start;
    margin-bottom: 48px;
    gap: 0;
}
.timeline-item.right .timeline-content { grid-column: 3; }
.timeline-item.left .timeline-content { grid-column: 1; text-align: right; }
.timeline-dot {
    grid-column: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-top: 18px;
}
.timeline-dot-inner {
    width: 48px; height: 48px;
    border-radius: 50%;
    background: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--font-ui);
    font-size: 0.65rem;
    font-weight: 700;
    color: #fff;
    letter-spacing: 1px;
    box-shadow: 0 0 0 6px rgba(200,150,62,0.15);
    text-align: center;
    line-height: 1.2;
}
.timeline-content {
    background: #fff;
    border-radius: 12px;
    padding: 24px;
    box-shadow: var(--shadow-soft);
    transition: transform 0.3s, box-shadow 0.3s;
}
.timeline-content:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-premium);
}
.timeline-year {
    font-family: var(--font-ui);
    font-size: 0.72rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 6px;
}
.timeline-title { font-size: 1.15rem; margin-bottom: 8px; }
.timeline-desc { font-size: 0.9rem; color: var(--text-light); line-height: 1.6; margin: 0; }
@media (max-width: 768px) {
    .timeline-wrapper::before { left: 24px; }
    .timeline-item { grid-template-columns: 60px 1fr; }
    .timeline-item.left .timeline-content, .timeline-item.right .timeline-content {
        grid-column: 2; text-align: left;
    }
    .timeline-dot { grid-column: 1; }
    .timeline-dot-inner { width: 40px; height: 40px; font-size: 0.6rem; }
}

/* --- 5. EVENTS — Editorial Cards --- */
.home-events-grid-new { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.event-card-editorial {
    background: #fff;
    border-radius: 14px;
    padding: 28px;
    box-shadow: var(--shadow-soft);
    display: flex;
    gap: 20px;
    align-items: flex-start;
    border-left: 4px solid var(--accent);
    transition: transform 0.3s, box-shadow 0.3s;
}
.event-card-editorial:hover { transform: translateY(-5px); box-shadow: var(--shadow-premium); }
.event-date-block {
    min-width: 56px;
    text-align: center;
    background: var(--secondary);
    border-radius: 10px;
    padding: 10px 8px;
}
.event-date-block .e-month {
    font-family: var(--font-ui);
    font-size: 0.65rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--accent);
    display: block;
}
.event-date-block .e-day {
    font-family: var(--font-heading);
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--primary);
    line-height: 1;
    display: block;
}
.event-info h4 { font-size: 1rem; margin-bottom: 6px; }
.event-info .e-location { font-size: 0.82rem; color: var(--text-light); font-family: var(--font-ui); }
@media (max-width: 900px) { .home-events-grid-new { grid-template-columns: 1fr; } }

/* --- 6. MASONRY GALLERY --- */
.masonry-gallery-grid {
    columns: 3;
    column-gap: 16px;
}
.masonry-gallery-grid .gallery-item {
    break-inside: avoid;
    margin-bottom: 16px;
    border-radius: 12px;
    overflow: hidden;
    cursor: pointer;
    position: relative;
}
.masonry-gallery-grid .gallery-item:nth-child(2) { margin-top: 40px; }
.masonry-gallery-grid .gallery-item:nth-child(5) { margin-top: -30px; }
.masonry-gallery-grid .gallery-item img {
    width: 100%;
    display: block;
    transition: transform 0.5s ease;
}
.masonry-gallery-grid .gallery-item:hover img { transform: scale(1.04); }
.gallery-item-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(74,44,10,0.6), transparent);
    opacity: 0;
    transition: opacity 0.3s;
    display: flex;
    align-items: flex-end;
    padding: 16px;
}
.gallery-item:hover .gallery-item-overlay { opacity: 1; }
.gallery-item-caption {
    font-family: var(--font-ui);
    font-size: 0.8rem;
    color: #fff;
    letter-spacing: 0.5px;
}
@media (max-width: 768px) { .masonry-gallery-grid { columns: 2; } }
@media (max-width: 480px) { .masonry-gallery-grid { columns: 1; } }

/* --- 7. TESTIMONIALS — Carousel --- */
.testimonial-carousel-wrapper { overflow: hidden; position: relative; }
.testimonial-carousel-track {
    display: flex;
    gap: 28px;
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}
.testimonial-card-premium {
    min-width: calc(33.333% - 19px);
    background: #fff;
    border-radius: 16px;
    padding: 36px;
    box-shadow: var(--shadow-soft);
    position: relative;
    border-top: 4px solid var(--accent);
    flex-shrink: 0;
}
.testimonial-quote-icon {
    font-family: var(--font-heading);
    font-size: 4rem;
    color: var(--accent);
    opacity: 0.2;
    line-height: 1;
    position: absolute;
    top: 16px; left: 24px;
}
.testimonial-stars-premium { color: var(--accent); font-size: 1rem; margin-bottom: 14px; }
.testimonial-body-premium {
    font-style: italic;
    color: var(--text-main);
    line-height: 1.8;
    font-size: 0.95rem;
    margin-bottom: 20px;
}
.testimonial-author-premium {
    font-family: var(--font-ui);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--primary);
}
.carousel-controls {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 36px;
}
.carousel-btn {
    width: 44px; height: 44px;
    border-radius: 50%;
    border: 2px solid var(--primary);
    background: transparent;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: var(--transition);
    color: var(--primary);
}
.carousel-btn:hover { background: var(--primary); color: var(--secondary); }
@media (max-width: 768px) {
    .testimonial-card-premium { min-width: calc(100% - 0px); }
}

/* --- GENERAL: Reveal Animation --- */
.reveal-up {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}
.reveal-up.visible { opacity: 1; transform: translateY(0); }
.delay-1 { transition-delay: 0.15s; }
.delay-2 { transition-delay: 0.3s; }
.delay-3 { transition-delay: 0.45s; }
.slide-dot.active {
    width: 24px;
    border-radius: 4px;
    background: var(--accent);
    box-shadow: 0 0 8px rgba(200, 150, 62, 0.6);
}

.slide-dot:hover:not(.active) {
    background: rgba(255, 255, 255, 0.8);
    transform: scale(1.2);
}

/* Progress bar */
.hero-slide-progress {
    position: absolute;
    bottom: 0;
    left: 0; right: 0;
    height: 3px;
    background: rgba(255, 255, 255, 0.15);
    z-index: 10;
    border-radius: 0 0 24px 0;
    overflow: hidden;
}

.hero-slide-progress-bar {
    height: 100%;
    width: 0%;
    background: linear-gradient(to right, rgba(200,150,62,0.6), var(--accent));
    border-radius: inherit;
}

/* Glow effect on the slides container */
.hero-slides::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    box-shadow: inset 0 0 40px rgba(200, 150, 62, 0.08);
    pointer-events: none;
    z-index: 5;
}

/* Responsive */
@media (max-width: 1100px) {
    .hero-slider-frame { width: 360px; }
    .hero-slides { height: 440px; }
    .slider-decor-ring-1 { width: 410px; height: 410px; }
    .slider-decor-ring-2 { width: 460px; height: 460px; }
}


@media (max-width: 768px) {
    .hero-photo-slider-wrap { padding: 30px 10px; }
    .hero-slider-frame { width: 100%; max-width: 360px; }
    .hero-slides { height: 380px; }
    .slider-decor-ring { display: none; }
    .slider-decor-line { display: none; }
}

/* ==========================================================================
   CINEMATIC FULL-WIDTH BANNER HERO
   ========================================================================== */

@keyframes cineFadeIn {
    from { opacity: 0; transform: scale(1.04); }
    to   { opacity: 1; transform: scale(1); }
}
@keyframes cineFadeOut {
    from { opacity: 1; transform: scale(1); }
    to   { opacity: 0; transform: scale(1.02); }
}
@keyframes cineKenBurns {
    0%   { transform: scale(1) translateX(0) translateY(0); }
    100% { transform: scale(1.08) translateX(-1%) translateY(-0.5%); }
}
@keyframes cineTextReveal {
    from { opacity: 0; transform: translateY(28px); }
    to   { opacity: 1; transform: translateY(0); }
}
@keyframes scrollBounce {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(6px); }
}
@keyframes wheelSpin {
    0%   { top: 4px; opacity: 1; }
    80%  { top: 18px; opacity: 0; }
    100% { top: 4px; opacity: 0; }
}

.cine-hero {
    position: relative;
    width: 100%;
    height: 92vh;
    min-height: 560px;
    max-height: 900px;
    overflow: hidden;
    background: #1a0f05;
}

.cine-slides { position: absolute; inset: 0; z-index: 1; }

.cine-slide { position: absolute; inset: 0; opacity: 0; z-index: 1; }

.cine-slide.is-active {
    opacity: 1; z-index: 2;
    animation: cineFadeIn 1.2s cubic-bezier(0.25,0.46,0.45,0.94) forwards;
}

.cine-slide.is-leaving {
    opacity: 0; z-index: 3;
    animation: cineFadeOut 1s cubic-bezier(0.25,0.46,0.45,0.94) forwards;
}

.cine-slide img {
    width: 100%; height: 100%;
    object-fit: cover; object-position: center top; display: block;
}

.cine-slide.is-active img {
    animation: cineKenBurns 10s ease-out forwards;
}

.cine-overlay-gradient {
    position: absolute; inset: 0; z-index: 4; pointer-events: none;
    background:
        linear-gradient(to right,  rgba(20,10,2,0.75) 0%, rgba(20,10,2,0.2) 55%, transparent 100%),
        linear-gradient(to top,    rgba(10,5,1,0.82) 0%, rgba(10,5,1,0.15) 45%, transparent 100%);
}

.cine-overlay-vignette {
    position: absolute; inset: 0; z-index: 5; pointer-events: none;
    box-shadow: inset 0 0 140px rgba(0,0,0,0.35);
}

.cine-overlay-noise {
    position: absolute; inset: 0; z-index: 6; opacity: 0.02; pointer-events: none;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
    background-size: 200px;
}

/* ---- Content lower-left ---- */
/* ---- Content lower-left ---- */
.cine-content {
    position: absolute !important;
    left: 0 !important;
    bottom: 0 !important;
    top: auto !important;
    margin: 0 !important;
    transform: none !important;
    z-index: 99 !important;
    padding: 0 5% 120px 100px !important;
    max-width: 850px !important;
    text-align: left !important;
    display: block !important;
}

.cine-eyebrow { display: flex; align-items: center; gap: 14px; margin-bottom: 15px; }
.cine-eyebrow-line { display: block; width: 40px; height: 1.5px; background: var(--accent); flex-shrink: 0; }
.cine-eyebrow-text {
    font-family: var(--font-ui); font-size: 0.72rem; font-weight: 600;
    letter-spacing: 3px; text-transform: uppercase; color: var(--accent);
}


.cine-headline {
    font-family: var(--font-heading);
    font-size: clamp(2.8rem, 6.5vw, 5.5rem);
    font-weight: 700; color: #ffffff;
    line-height: 1.08; letter-spacing: -1px;
    margin-bottom: 20px;
    text-shadow: 0 4px 30px rgba(0,0,0,0.4);
}

.cine-subline {
    font-family: var(--font-body);
    font-size: clamp(0.95rem, 1.8vw, 1.2rem);
    color: rgba(255,255,255,0.78); line-height: 1.7;
    margin-bottom: 36px; max-width: 500px;
    text-shadow: 0 2px 12px rgba(0,0,0,0.5);
}

.cine-actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }

.cine-btn-primary {
    display: inline-flex; align-items: center; gap: 10px;
    padding: 14px 32px;
    background: var(--accent); color: #fff;
    font-family: var(--font-ui); font-weight: 600; font-size: 0.9rem;
    letter-spacing: 0.5px; border-radius: 4px; text-decoration: none;
    transition: all 0.35s cubic-bezier(0.25,0.46,0.45,0.94);
    box-shadow: 0 8px 28px rgba(200,150,62,0.4);
}
.cine-btn-primary:hover {
    background: #a67c33; transform: translateY(-3px);
    box-shadow: 0 14px 36px rgba(200,150,62,0.5); color: #fff;
}
.cine-btn-primary svg { transition: transform 0.3s; }
.cine-btn-primary:hover svg { transform: translateX(4px); }

.cine-btn-ghost {
    display: inline-flex; align-items: center;
    padding: 13px 28px;
    border: 1.5px solid rgba(255,255,255,0.45);
    color: rgba(255,255,255,0.9);
    font-family: var(--font-ui); font-weight: 500; font-size: 0.9rem;
    border-radius: 4px; text-decoration: none;
    transition: all 0.3s ease; backdrop-filter: blur(4px);
}
.cine-btn-ghost:hover {
    background: rgba(255,255,255,0.1);
    border-color: rgba(255,255,255,0.8);
    color: #fff; transform: translateY(-2px);
}

/* ---- Slide info lower-right ---- */
.cine-slide-info {
    display: none;
}

.cine-slide-label {
    display: none;
}

.cine-slide-counter { display: none; }

.cine-counter-current {
    display: none;
}
.cine-counter-sep  { display: none; }
.cine-counter-total { display: none; }

/* ---- Dots ---- */
.cine-dots {
    position: absolute; bottom: 8%; left: 50%; transform: translateX(-50%);
    z-index: 10; display: flex; align-items: center; gap: 10px;
}
.cine-dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: #fff; cursor: pointer; padding: 0; border: none;
    transition: all 0.4s cubic-bezier(0.25,0.46,0.45,0.94);
    opacity: 0.5;
}
.cine-dot.is-active {
    background: var(--accent);
    opacity: 1;
    box-shadow: 0 0 10px rgba(200,150,62,0.8);
    transform: scale(1.1);
}
.cine-dot:hover:not(.is-active) { opacity: 1; transform: scale(1.1); }

/* ---- Arrows ---- */
.cine-arrow {
    position: absolute; top: 50%; transform: translateY(-50%);
    z-index: 10; width: 44px; height: 44px; border-radius: 50%;
    border: none;
    background: #fff; color: #1a0f05;
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(0,0,0,0.15);
    opacity: 0.9;
}
.cine-hero:hover .cine-arrow { opacity: 1; }
.cine-arrow:hover {
    background: #fdfdfd;
    transform: translateY(-50%) scale(1.05);
    box-shadow: 0 6px 20px rgba(0,0,0,0.25);
}
.cine-arrow-prev { left: clamp(16px,3vw,50px); }
.cine-arrow-next { right: clamp(16px,3vw,50px); }

/* ---- Progress bar ---- */
.cine-progress {
    display: none;
}
.cine-progress-bar {
    display: none;
}

/* ---- Scroll hint ---- */
.cine-scroll-hint {
    display: none;
}
.cine-scroll-mouse {
    display: none;
}
.cine-scroll-wheel {
    display: none;
}

/* ---- Responsive ---- */
@media (max-width: 768px) {
    .cine-hero { height: 85vh; }
    .cine-content { bottom: 16%; padding: 0 20px; max-width: 100%; }
    .cine-headline { font-size: clamp(2rem, 9vw, 3.2rem); }
    .cine-slide-info, .cine-scroll-hint, .cine-arrow { display: none; }
}
@media (max-width: 480px) {
    .cine-hero { height: 80vh; min-height: 500px; }
    .cine-btn-primary, .cine-btn-ghost { padding: 11px 20px; font-size: 0.82rem; }
}
