/* =========================================================
   1. WEBSITE COLORS & BASIC SETTINGS
========================================================= */

:root {

    /* Main Website Colors */
    --sky: #8ecff0;
    --sky-light: #dff5ff;
    --navy: #092b58;
    --gold: #c99b4b;
    --white: #fffdf8;

    /* Text Colors */
    --ink: #112744;
    --muted: #4b6078;

    /* Border Color */
    --line: rgba(9, 43, 88, 0.35);

    /* Fonts */
    --serif: Georgia, "Times New Roman", serif;
    --sans: Arial, Helvetica, sans-serif;
}


/* =========================================================
   2. RESET / BASIC HTML SETTINGS
========================================================= */

* {
    box-sizing: border-box;
}


/* Smooth scrolling */

html {
    scroll-behavior: smooth;
}


/* Main body */

body {
    margin: 0;

    color: var(--ink);

    font-family: var(--sans);

    line-height: 1.65;

    /* Website background */

    background:
        radial-gradient(
            circle at 20% 10%,
            rgba(255, 255, 255, 0.7),
            transparent 28%
        ),
        linear-gradient(
            135deg,
            var(--sky-light),
            var(--sky) 52%,
            #b9e5f7
        );
}


/* =========================================================
   3. GENERAL ELEMENTS
========================================================= */

a {
    color: inherit;
    text-decoration: none;
}


/* Images */

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


/* Main content width */

.container {
    width: min(
        1160px,
        calc(100% - 40px)
    );

    margin: auto;
}


/* =========================================================
   4. TOP BAR
========================================================= */

.topbar {

    background: var(--navy);

    color: #ffffff;

    font-size: 12px;

    letter-spacing: 1.2px;

    text-align: center;

    padding: 7px;
}


/* =========================================================
   5. WEBSITE HEADER
========================================================= */

.site-header {

    position: sticky;

    top: 0;

    z-index: 100;

    background: rgba(
        255,
        253,
        248,
        0.96
    );

    border-bottom: 1px solid var(--line);

    backdrop-filter: blur(12px);
}


/* Navigation container */

.nav {

    min-height: 82px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 30px;
}


/* =========================================================
   6. WEBSITE LOGO
========================================================= */

.brand {

    font-family: var(--serif);

    font-size: 25px;

    font-weight: 700;

    color: var(--navy);
}


/* Small text under logo */

.brand span {

    display: block;

    font-family: var(--sans);

    font-size: 9px;

    letter-spacing: 2.5px;

    text-transform: uppercase;

    color: var(--gold);
}


/* =========================================================
   7. NAVIGATION LINKS
========================================================= */

.nav-links {

    display: flex;

    gap: 28px;

    align-items: center;
}


.nav-links a {

    font-size: 13px;

    font-weight: 700;

    letter-spacing: 1px;

    text-transform: uppercase;
}


/* Hover effect */

.nav-links a:hover {

    color: var(--gold);
}


/* =========================================================
   8. MOBILE MENU BUTTON
========================================================= */

.menu {

    display: none;

    border: none;

    background: none;

    font-size: 28px;

    color: var(--navy);

    cursor: pointer;
}


/* =========================================================
   9. HOME PAGE HERO
========================================================= */

.hero {

    padding: 78px 0 92px;
}


/* Hero two-column layout */

.hero-grid,
.intro-grid,
.author-grid {

    display: grid;

    grid-template-columns:
        1.08fr
        0.92fr;

    gap: 70px;

    align-items: center;
}


/* =========================================================
   10. SMALL TITLE / KICKER
========================================================= */

.kicker {

    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: 3px;

    font-size: 12px;

    color: var(--navy);
}


/* =========================================================
   11. HEADINGS
========================================================= */

h1,
h2,
h3 {

    font-family: var(--serif);

    color: var(--navy);

    line-height: 1.08;
}


/* Main H1 */

h1 {

    font-size: clamp(
        48px,
        7vw,
        88px
    );

    margin: 12px 0 22px;
}


/* H2 */

h2 {

    font-size: clamp(
        36px,
        5vw,
        58px
    );

    margin: 0 0 20px;
}


/* H3 */

h3 {

    font-size: 28px;

    margin: 0 0 12px;
}


/* =========================================================
   12. LEAD / INTRO TEXT
========================================================= */

.lead {

    font-family: var(--serif);

    font-size: 21px;

    max-width: 680px;

    color: #17395f;
}


/* =========================================================
   13. BUTTONS
========================================================= */

.actions {

    margin-top: 28px;
}


/* Normal button */

.btn {

    display: inline-block;

    padding: 13px 21px;

    margin: 5px 7px 5px 0;

    background: var(--navy);

    color: #ffffff;

    border: 1px solid var(--navy);

    font-size: 12px;

    font-weight: 800;

    letter-spacing: 1.3px;

    text-transform: uppercase;

    cursor: pointer;
}


/* Transparent button */

.btn.light {

    background: transparent;

    color: var(--navy);
}


/* Gold button */

.btn.gold {

    background: var(--gold);

    border-color: var(--gold);

    color: #ffffff;
}


/* =========================================================
   14. HERO BOOK CARD
========================================================= */

.book-hero-card {

    background: rgba(
        255,
        253,
        248,
        0.75
    );

    padding: 22px;

    border: 1px solid var(--line);

    box-shadow:
        0 18px 45px
        rgba(9, 43, 88, 0.18);
}


/* =========================================================
   15. BOOK COVER
========================================================= */

.book-cover {

    position: relative;

    overflow: hidden;

    aspect-ratio: 3 / 4;

    border: 4px double var(--navy);

    background:
        linear-gradient(
            145deg,
            #d9f4ff,
            #75c1e8
        );

    padding: 17px;
}


/* Decorative inner border */

.book-cover::before {

    content: "";

    position: absolute;

    inset: 7px;

    border: 1px solid var(--navy);

    pointer-events: none;
}


/* =========================================================
   16. CUSTOM BOOK COVER CONTENT
========================================================= */

.cover-content {

    height: 100%;

    border: 1px solid var(--navy);

    padding: 30px 18px;

    display: flex;

    flex-direction: column;

    justify-content: space-between;

    text-align: center;

    position: relative;

    z-index: 2;
}


/* Book title on placeholder cover */

.cover-title {

    font-size: clamp(
        30px,
        4vw,
        50px
    );

    font-weight: 900;

    letter-spacing: 1px;

    line-height: 0.95;

    color: var(--white);

    text-shadow:
        0 2px 5px
        rgba(0, 0, 0, 0.25);
}


/* Script text */

.cover-script {

    font-family: cursive;

    font-size: 28px;

    color: var(--navy);

    font-style: italic;
}


/* Book information */

.cover-meta {

    font-size: 12px;

    letter-spacing: 2px;

    font-weight: 900;

    color: var(--navy);
}


/* Anchor / ship icon */

.ship {

    font-size: 70px;

    line-height: 1;
}


/* =========================================================
   17. REAL BOOK COVER
========================================================= */

/*
   Used when you have an actual image,
   for example:

   <img src="assets/book-06-cover.jpeg">
*/

.real-cover {

    padding: 0;

    background: none;

    border: 0;
}


/* Remove decorative border */

.real-cover::before {

    display: none;
}


/* Real cover image */

.real-cover img {

    width: 100%;

    height: 100%;

    object-fit: cover;
}


/* =========================================================
   18. GENERAL SECTIONS
========================================================= */

.section {

    padding: 88px 0;
}


/* White section */

.section.white {

    background:
        rgba(
            255,
            253,
            248,
            0.78
        );
}


/* Navy section */

.section.navy {

    background: var(--navy);

    color: #ffffff;
}


/* White headings in navy section */

.section.navy h2,
.section.navy h3 {

    color: #ffffff;
}


/* Center content */

.center {

    text-align: center;
}


/* =========================================================
   19. DECORATIVE DIVIDER
========================================================= */

.divider {

    width: 120px;

    height: 2px;

    background: var(--navy);

    margin: 18px auto 30px;
}


/* =========================================================
   20. QUOTE
========================================================= */

.quote {

    font-family: var(--serif);

    font-size: 30px;

    line-height: 1.3;

    border-left: 4px solid var(--gold);

    padding-left: 25px;
}


/* =========================================================
   21. BOOKS GRID
========================================================= */

.books-grid {

    display: grid;

    grid-template-columns:
        repeat(4, 1fr);

    gap: 24px;

    margin-top: 42px;
}


/* Individual book card */

.book-card {

    background:
        rgba(
            255,
            253,
            248,
            0.9
        );

    padding: 16px;

    border: 1px solid var(--line);

    box-shadow:
        0 9px 25px
        rgba(9, 43, 88, 0.09);
}


/* Book card title */

.book-card h3 {

    font-size: 22px;

    margin: 16px 0 4px;
}


/* Book card description */

.book-card p {

    font-size: 13px;

    color: var(--muted);

    margin: 0 0 12px;
}


/* Smaller book cover */

.cover-small {

    aspect-ratio: 3 / 4;

    padding: 10px;
}


/* Smaller cover content */

.cover-small .cover-content {

    padding: 18px 10px;
}


/* Smaller title */

.cover-small .cover-title {

    font-size: 26px;
}


/* Smaller script */

.cover-small .cover-script {

    font-size: 17px;
}


/* Smaller anchor */

.cover-small .ship {

    font-size: 45px;
}


/* =========================================================
   22. FEATURED SERIES BAND
========================================================= */

.series-band {

    background:
        linear-gradient(
            90deg,
            rgba(9, 43, 88, 0.97),
            rgba(18, 62, 114, 0.94)
        );

    color: #ffffff;

    padding: 65px 0;
}


/* Heading inside series band */

.series-band h2 {

    color: #ffffff;
}


/* Paragraph width */

.series-band p {

    max-width: 760px;
}


/* =========================================================
   23. INNER PAGE HERO
========================================================= */

.page-hero {

    padding: 70px 0;

    background:
        rgba(
            255,
            253,
            248,
            0.7
        );

    border-bottom:
        1px solid var(--line);
}


/* Page hero heading */

.page-hero h1 {

    font-size: clamp(
        45px,
        6vw,
        75px
    );
}


/* =========================================================
   24. BOOK DETAIL PAGE
========================================================= */

.detail-grid {

    display: grid;

    grid-template-columns:
        390px
        1fr;

    gap: 70px;

    align-items: start;
}


/* Sticky book cover */

.detail-cover {

    position: sticky;

    top: 115px;
}


/* =========================================================
   25. BOOK INFORMATION BOXES
========================================================= */

.info-list {

    display: grid;

    grid-template-columns:
        1fr
        1fr;

    gap: 12px;

    margin: 28px 0;
}


/* Individual information box */

.info {

    background:
        rgba(
            255,
            253,
            248,
            0.65
        );

    padding: 14px;

    border: 1px solid var(--line);
}


/* Information heading */

.info strong {

    display: block;

    font-size: 11px;

    text-transform: uppercase;

    letter-spacing: 1.3px;

    color: var(--gold);
}


/* =========================================================
   26. LONG TEXT / BOOK DESCRIPTION
========================================================= */

.prose {

    font-family: var(--serif);

    font-size: 18px;

    color: #234263;
}


/* Paragraph spacing */

.prose p {

    margin: 0 0 20px;
}


/* =========================================================
   27. AUTHOR PAGE
========================================================= */

.author-grid {

    grid-template-columns:
        0.8fr
        1.2fr;
}


/* Author photo placeholder */

.author-photo {

    aspect-ratio: 4 / 5;

    border: 4px double var(--navy);

    background:
        linear-gradient(
            145deg,
            #c8ebfa,
            #5fb3dc
        );

    display: flex;

    align-items: center;

    justify-content: center;

    text-align: center;

    color: var(--navy);
}


/* Author name inside placeholder */

.author-photo strong {

    font-family: var(--serif);

    font-size: 42px;
}


/* Author timeline */

.timeline {

    border-left:
        2px solid var(--gold);

    padding-left: 25px;
}


/* =========================================================
   28. FOOTER
========================================================= */

.footer {

    background: var(--navy);

    color: #d9ecfa;

    padding: 55px 0 30px;
}


/* Footer columns */

.footer-grid {

    display: grid;

    grid-template-columns:
        2fr
        1fr
        1fr;

    gap: 45px;
}


/* Footer headings */

.footer h3 {

    color: #ffffff;

    font-size: 20px;
}


/* Footer links */

.footer a {

    display: block;

    color: #d9ecfa;

    font-size: 13px;

    margin: 5px 0;
}


/* =========================================================
   29. FOOTER COPYRIGHT
========================================================= */

.footer-bottom {

    border-top:
        1px solid
        rgba(255, 255, 255, 0.2);

    margin-top: 35px;

    padding-top: 20px;

    font-size: 12px;

    color: #a9c5da;
}


/* =========================================================
   30. FOOTER BOOK LINKS
   2 COLUMNS
========================================================= */

.book-links {

    display: grid;

    grid-template-columns:
        1fr
        1fr;

    gap: 25px;
}


.book-links a {

    display: block;

    margin-bottom: 6px;
}


/* =========================================================
   31. TABLET RESPONSIVE DESIGN
========================================================= */

@media (max-width: 950px) {


    /* Books become 2 columns */

    .books-grid {

        grid-template-columns:
            repeat(2, 1fr);
    }


    /* Hero becomes one column */

    .hero-grid,
    .intro-grid,
    .author-grid {

        grid-template-columns: 1fr;
    }


    /* Book details become one column */

    .detail-grid {

        grid-template-columns: 1fr;

        gap: 40px;
    }


    /* Book cover no longer sticky */

    .detail-cover {

        position: static;

        max-width: 390px;

        margin: auto;
    }


    /* Footer becomes one column */

    .footer-grid {

        grid-template-columns: 1fr;
    }

}


/* =========================================================
   32. MOBILE RESPONSIVE DESIGN
========================================================= */

@media (max-width: 720px) {


    /* Hide normal navigation */

    .nav-links {

        display: none;

        position: absolute;

        left: 0;

        right: 0;

        top: 82px;

        background: var(--white);

        padding: 20px;

        flex-direction: column;

        align-items: flex-start;

        border-bottom:
            1px solid var(--line);
    }


    /* Show navigation when JS adds "open" */

    .nav-links.open {

        display: flex;
    }


    /* Show hamburger button */

    .menu {

        display: block;
    }


    /* Books become one column */

    .books-grid {

        grid-template-columns: 1fr;
    }


    /* Smaller sections */

    .hero,
    .section {

        padding: 60px 0;
    }


    /* Information boxes become one column */

    .info-list {

        grid-template-columns: 1fr;
    }


    /* Footer book links remain two columns */

    .book-links {

        grid-template-columns:
            1fr
            1fr;

        gap: 15px;
    }

}