/* =========================================================
   Five Seasons Press — 5SeasonsNew.css (tidied + corrected)
   - Removes duplicates
   - Adds TRUE cross-fade for BOTH carousels (small + big)
   ========================================================= */
:root {
    --fsp-blue-light: #6A7395;
    --fsp-blue-dark: #2a358f;
    --fsp-blue-hover: #3a5d80;
    --fsp-bg-page: #D6DBE2;
    --fsp-rule: #99a6d7;
}

/* =========================================================
   Base / Typography
   ========================================================= */
html {
    scrollbar-gutter: stable;
    overflow-y: scroll;
    overflow-x: hidden;

    /* prevent any horizontal “ghost” scroll */
}

body.background {
    background-color: #D6DBE2;
    display: flex;
    justify-content: center;

    /* horizontal centring */
    align-items: flex-start;
    min-height: 100vh;
    padding: 0 10px;

    /* 👈 guarantees 10px at edges */
    box-sizing: border-box;
}

.bodytext {
    font-family: Georgia,"Times New Roman",Times,serif;
    font-size: 16px;
    line-height: 18px;
    font-style: normal;
    font-weight: normal;
    color: #000;
    margin: 0 0 8px 0;
    padding: 0;
}

.text-subhead {
    font-weight: bold;
    font-size: 15px;
    color: var(--fsp-blue-dark);
    margin-bottom: 3px;
    font-family: Georgia;
}

.smallcaps {
    font-size: 9px;
    color: #6A7395;
    font-style: normal;
}

a:link {
    color: #6A7395;
    text-decoration: underline;
}

a:visited {
    color: #666F8E;
    text-decoration: underline;
}

a:hover {
    color: #003366;
    text-decoration: none;
}

.drop-char {
    position: relative;
    vertical-align: -4px;
}

/* Utility shadow used on cut-out images */
.shadow-cutout {
    filter: drop-shadow(5px 5px 4px rgba(0,0,0,0.35));
}

/* Video fullscreen background */
video:fullscreen,
video:-webkit-full-screen,
video:-moz-full-screen,
video:-ms-fullscreen {
    background: black !important;
}

.col2 td.tableCell img.ImageBorder {
    width: auto;
    height: 100px;
    margin-top: 3px;
    margin-bottom: 10px;
    max-width: none;
}

/* =========================================================
   Layout (Desktop defaults)
   ========================================================= 
.container {
    max-width: 930px;
    margin: 0 auto;
    padding: 0 10px;
} */
.fsp-container {
    width: 100%;
    max-width: 930px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 10px;
    padding-right: 10px;
    box-sizing: border-box;
}

.fixed-row {
    display: flex;
    align-items: flex-start;
    gap: 5px;
    flex-wrap: nowrap;

    /* desktop default */
}

.menu-row {
    position: relative;

    /* anchor for absolute-positioned hamburger/menu */
}

.col1 {
    flex: 0 0 150px;
    box-sizing: border-box;
    padding: 0 0px;
}

.col2 {
    position: relative;
    flex: 1 1 520px;
    min-width: 0;

    /* critical for flex shrink behaviour */
    max-width: 6800px;

    /* desktop cap */
    box-sizing: border-box;
    padding: 0 25px 0 0;
    margin-top: -7px;
}

/* NOTE: on mobile we may indent col3; on desktop it’s normal */
.col3 {
    flex: 0 1 250px;
    min-width: 0;
}

.col3 img {
    max-width: 100%;
    height: auto;
}

.col3 * {
    overflow-wrap: anywhere;
    padding-left: 0 !important;
}

/* Consistent top spacing for items inside columns */
.col1 > *,
.col2 > *,
.col3 > * {
    padding-top: 0;
}

/* Images in col2 should always scale down */
.col2 img {
    max-width: 100%;
    height: auto;
}

.logo-fixed {
    flex: 0 0 auto;

    /* do not grow, do not shrink */
    width: 400px;
    margin-top: -4px;
    margin-bottom: 30px;

    /* fixes the flex-basis */
}

.logo-fixed img {
    width: 100%;
    height: auto;
    max-width: 100%;
}

/* <-- THIS stops responsive shrinking */
/* =========================================================
   Headings / Tables / Misc
   ========================================================= */
.EditionType {
    color: #8D94AD;
    font-weight: bold;
}

.TextHeading {
    color: var(--fsp-blue-dark);
    font-family: Georgia,"Times New Roman",Times,serif;
    font-size: 16px;
    line-height: 19px;
    margin: -8px 0 12px;
    font-weight: normal;
    border-top: solid 2px;
    padding-top: 8px;
}

.TextSubheading {
    font-family: Georgia,"Times New Roman",Times,serif;
    font-size: 16px;
    line-height: 18px;
    font-weight: normal;
    color: var(--fsp-blue-dark);
    margin: 27px 0 0 0;
    padding: 0;
}

.pageHeading {
    font-size: 19px;
    font-weight: bold;
    color: var(--fsp-blue-dark);
    font-family: Georgia;
    margin-top: 0px;
}

.tableAuthor {
    font-family: Verdana,Arial,Helvetica,sans-serif;
    font-size: 12px;
    font-weight: bold;
    margin: 0;
    margin-bottom: 3px;
    line-height: 14px;
}

.tabletext,
.tabletitle {
    font-family: Verdana,Arial,Helvetica,sans-serif;
    font-size: 12px;
    line-height: 13px;
    margin-bottom: 6px;
}

.firsttitle {
    padding-bottom: 0px;
    padding-top: 26px;
}

.tabletitle {
    font-weight: bold;
    margin-top: 0px;
    max-width: 140px;
    min-width: 100px;
    color: var(--fsp-blue-dark);
    display: inline-block;

    /* or block */
}

a.tabletitle {
    text-decoration: none;
    color: var(--fsp-blue-dark);
    display: inline-block;

    /* You can also add your line-height here if it's not already set */
    line-height: 15px;

    /* Or your desired line-height */
}

a.tabletitle:hover {
    text-decoration: none;
    color: var(--fsp-blue-light);
}

.table-spaced {
    border-collapse: separate;

    /* required for border-spacing to work */
    border-spacing: 2px;

    /* replaces cellspacing="2" */
}

.table-spaced td,
.table-spaced th {
    padding: 2px;

    /* replaces cellpadding="2" */
}

.tableCell {
    vertical-align: top;
    border-top: 1px solid #A7ACC0;
    text-align: left;
}

.review {
    font-family: Verdana,Arial,Helvetica,sans-serif;
    font-size: 12px;
    margin-bottom: 3px;
    font-weight: normal;
    line-height: 14px;
}

td {
    vertical-align: top;
    margin-top: 1px;
}

/* Add extra right padding to 2nd column of any table with this class */
.table2colmargin > tbody > tr > td:nth-of-type(2) {
    padding-right: 20px !important;
    padding-left: 10px !important;
}

.ImageBorder {
    border: 1px solid #000;
    transition: box-shadow .2s ease, border-color .2s ease;
}

a:hover .ImageBorder {
    border-color: var(--fsp-blue-dark);
    box-shadow: 0 4px 10px rgba(0,0,0,.35);
}

.shadowPix {
    border: 1px solid silver;
    box-shadow: 3px 3px 5px silver;
    margin-bottom: 15px;
}

.rowSectionRule {
    margin-top: 55px;
}

/* Decorative rule extending across columns */
.col2.rowSectionRule::before {
    content: "";
    position: absolute;
    top: 0;
    left: -150px;

    /* extend into col1 */
    width: calc(100% + 250px);

    /* col2 + part of col3 */
    border-top: 2px solid #99a6d7;
}

.cover-pair {
    display: flex;
    gap: 10px;
}

.cover-pair img {
    height: 175px;
    width: auto;
    display: block;
}

/* =========================================================
   Modal (Bootstrap)
   ========================================================= */
#imageModal .modal-dialog {
    max-width: 95vw;
}

#imageModal .modal-dialog.pdf-open {
    max-width: 90vw;
}

#imageModal #pdfModalFrame {
    width: 100%;
}

#imageModal .modal-content {
    background: transparent;
    border: 0;
}

/* Remove modal body padding so big carousel can truly centre */
#imageModal .modal-body {
    padding: 0;
}

/* =========================================================
   Carousels (Bootstrap)
   ========================================================= */
/* Indicators below – circular dots */
.carousel-indicators.carousel-indicators-below {
    position: static;
    margin-top: .75rem;
    justify-content: center;
    gap: 12px;
}

.carousel-indicators.carousel-indicators-below [data-bs-target] {
    width: 10px !important;
    height: 10px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background-color: #bbb !important;
    opacity: .6;
    cursor: pointer;
    text-indent: 0 !important;

    /* kill dash look */
}

.carousel-indicators.carousel-indicators-below .active {
    background-color: #333 !important;
    opacity: 1 !important;
}

/* Bootstrap default icon size (if you ever use the stock icons) */
.carousel-control-prev-icon,
.carousel-control-next-icon {
    width: 3rem;
    height: 3rem;
    background-size: 100% 100%;
}

/* Your custom text arrows */
.carousel-arrow {
    font-size: 4rem;
    font-weight: 700;
    color: #fff;
    line-height: 1;
}

/* -------------------------
   Small carousel (page)
   ------------------------- */
.col2 .carousel {
    max-width: 520px;
}

/* fixed slide box (keeps page stable) */
#carouselExample .carousel-item {
    height: 320px;

    /* gap on right */
    padding-left: 0;
    box-sizing: border-box;
}

/* image fills the box, aligned top-left */
#carouselExample .carousel-item img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: left top;
    display: block;
}

/* show pointer when hovering carousel images */
#carouselExample,
#carouselExample .carousel-item,
#carouselExample .carousel-item img {
    cursor: pointer;
}

/* Small carousel: make prev/next visible and on top */
#carouselExample .carousel-control-prev,
#carouselExample .carousel-control-next {
    opacity: 1;
    width: 12%;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
}

#carouselExample .carousel-control-prev {
    left: -15px;
}

#carouselExample .carousel-control-next {
    right: 5px;
}

#carouselExample .carousel-control-prev:hover,
#carouselExample .carousel-control-next:hover {
    opacity: 1;
}

#carouselExample .carousel-arrow {
    font-size: 3.5rem;

    /* smaller than big carousel */
    text-shadow: 0 2px 8px rgba(0,0,0,.8);
    pointer-events: none;
}

/* -------------------------
   Big carousel (in modal)
   IMPORTANT: your injected markup must include "carousel-fade"
   e.g. <div id="carouselBig" class="carousel slide carousel-fade" ...>
   ------------------------- */
#carouselBig {
    min-height: 80vh;
}

/* Stable height prevents “jump” when images differ in aspect ratio */
#carouselBig .carousel-inner {
    height: 80vh;
    max-height: 800px;

    /* optional cap */
}

/* Keep item height */
#carouselBig .carousel-item {
    height: 100%;
}

/* Center ONLY visible/transitioning items (do not flex ALL items) */
#carouselBig .carousel-item.active,
#carouselBig .carousel-item-next,
#carouselBig .carousel-item-prev {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Image fits inside fixed-height box + add subtle shadow (you asked) */
#carouselBig .carousel-item img {
    width: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
    filter: drop-shadow(0 10px 22px rgba(0,0,0,0.55));
}

/* -------------------------
   TRUE cross-fade for BOTH carousels
   (fixes: “incoming appears immediately then old fades”)
   ------------------------- */
#carouselExample.carousel-fade .carousel-item,
#carouselBig.carousel-fade .carousel-item {
    opacity: 0;
    transition: opacity 1.2s ease-in-out;
    transform: none;

    /* prevent any slide transform from affecting fade */
}

/* active slide is visible */
#carouselExample.carousel-fade .carousel-item.active,
#carouselBig.carousel-fade .carousel-item.active {
    opacity: 1;
}

/* incoming slides start invisible... */
#carouselExample.carousel-fade .carousel-item-next,
#carouselExample.carousel-fade .carousel-item-prev,
#carouselBig.carousel-fade .carousel-item-next,
#carouselBig.carousel-fade .carousel-item-prev {
    opacity: 0;
}

/* ...then fade IN when Bootstrap marks them as starting */
#carouselExample.carousel-fade .carousel-item-next.carousel-item-start,
#carouselExample.carousel-fade .carousel-item-prev.carousel-item-end,
#carouselBig.carousel-fade .carousel-item-next.carousel-item-start,
#carouselBig.carousel-fade .carousel-item-prev.carousel-item-end {
    opacity: 1;
}

/* outgoing active fades OUT */
#carouselExample.carousel-fade .carousel-item.active.carousel-item-start,
#carouselExample.carousel-fade .carousel-item.active.carousel-item-end,
#carouselBig.carousel-fade .carousel-item.active.carousel-item-start,
#carouselBig.carousel-fade .carousel-item.active.carousel-item-end {
    opacity: 0;
}

/* =========================================================
   Sidebar swap blocks (Desktop default)
   ========================================================= */
.sidebar-desktop {
    display: block;
    width: 140px;
    border-right: 1px solid #999;
    text-align: right;
    font-family: Georgia,"Times New Roman",Times,serif;
    font-size: 11px;
    line-height: 14px;
    font-style: italic;
    font-weight: normal;
    color: #6A7395;
    padding-right: 5px;
}

.sidebar-mobile {
    display: none;
    width: auto;
    max-width: 100%;
    padding-left: 0;
    text-align: center;
    margin: 0 auto;
}

.logo-desktop {
    display: block;
    text-align: left;
    margin: 0;
    padding: 0;
}

.logo-desktop img {
    display: block;
    margin: 0;
    max-width: 100%;
    height: auto;
}

/* =========================================================
   Menus (Desktop default)
   ========================================================= */
.menu {
    margin: 0 0 4px 0;
    font-family: Verdana,Arial,Helvetica,sans-serif;
    font-size: 12px;
    font-weight: normal;
    line-height: 14px;
}

/* ----------------------------------------
   Custom tooltip: white, 50% opaque
----------------------------------------- */
.tooltip .tooltip-inner {
    background-color: rgba(255, 255, 255, 0.5);
    color: #000;
    font-size: 11px;
    padding: 4px 8px;
    border-radius: 4px;
    border: 1px solid rgba(0, 0, 0, 0.2);
}

.tooltip {
    pointer-events: none;
}

/* Arrow color to match */
.tooltip.bs-tooltip-top .tooltip-arrow::before,
.tooltip.bs-tooltip-bottom .tooltip-arrow::before,
.tooltip.bs-tooltip-start .tooltip-arrow::before,
.tooltip.bs-tooltip-end .tooltip-arrow::before {
    border-color: rgba(255, 255, 255, 0.7);
}

/* =========================================================
   NAV PILLS (Five Seasons)
   ========================================================= */
/* Nav container */
.nav.nav-pills {
    justify-content: flex-start;
}

/* Base pill */
.nav.nav-pills .nav-link {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 13px;
    color: #000000;
    border-radius: 4px;
    margin-bottom: 3px;
    text-align: left;
    text-decoration: none;
    background-color: #8bb0e7;
    width: 125px;
    height: 18px;
    line-height: 16px;

    /* centers text vertically */
    padding: 0 10px;

    /* remove vertical padding */
}

.xxx {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 14px;
    color: #323645;
    border-radius: 6px;
    padding: 0px 10px 6px;
    margin-bottom: 4px;
    text-align: left;
    text-decoration: none;
    background-color: #c2cdf5;
    width: 145px;
    height: 17px;
}

/* Hover */
.nav.nav-pills .nav-link:hover {
    background-color: var(--fsp-blue-hover);
    text-decoration: none;
    color: #fff;
}

/* Active pill */
.nav.nav-pills .nav-link.active {
    background-color: var(--fsp-blue-dark);
    color: #fff;
}

/* Disabled */
.nav.nav-pills .nav-link.disabled {
    color: #aaa;
}

/* -------------------------
   Sub pills (nested under Home)
   Goal: space on LEFT, right edge aligned
   ------------------------- */
.nav.nav-pills .nav-link.nav-sub {
    background-color: #acc9f1!important;
    color: #0c0c0c;
    font-size: 12px;
    margin-left: 10px;
    width: 115px;

    /* keep right edge flush */
    box-sizing: border-box;
    padding-left: 8px;
    padding-right: 10px;
    text-decoration: none;
}

.nav.nav-pills .nav-link.nav-sub:hover,
.nav.nav-pills .nav-link.nav-sub:focus {
    background-color: var(--fsp-blue-hover) !important;
    color: rgb(247, 243, 243);
}

/* -------------------------
   Hover-expand subgroup under Home (desktop)
   NOTE: hover won’t work on touch; see media note below.
   ------------------------- */
.nav.nav-pills .nav-subgroup {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(-4px);
    transition: max-height .25s ease, opacity .2s ease, transform .2s ease;
}

/* Open when hovering Home OR the subgroup itself */
.nav.nav-pills .nav-home:hover + .nav-subgroup,
.nav.nav-pills .nav-subgroup:hover {
    max-height: 500px;
    opacity: 1;
    transform: translateY(0);
}

/* Optional: keep it open when keyboard-tabbing into the subgroup */
.nav.nav-pills .nav-home:focus + .nav-subgroup,
.nav.nav-pills .nav-subgroup:focus-within {
    max-height: 500px;
    opacity: 1;
    transform: translateY(0);
}

/* Hamburger hidden by default (desktop) */
/* Desktop default */
.menu-toggle {
    display: none;
}

.mobile-menu {
    display: none;
}

/* Mobile dropdown hidden by default */
.mobile-menu {
    display: none;
    position: absolute;

    /* anchored to .menu-row */
    top: 50px;
    left: 50%;
    transform: translateX(-50%);
    width: 150px;
    padding: 10px 12px;
    border: 1px solid #999;
    border-radius: 8px;
    z-index: 200;
    opacity: 1 !important;
}

.mobile-menu .menu {
    display: block;
    margin-bottom: 6px;
}

.mobile-menu.is-open {
    display: block;
}

.menu-toggle:hover {
    background: #aeb1c7;
}

.menu-toggle:focus-visible {
    outline: 2px solid #dfe1eb;
    outline-offset: 3px;
}

.menu-toggle:active {
    transform: translateX(-50%) translateY(1px);
}

/* =========================================================
   Fonts
   ========================================================= */
@font-face{
    font-family: "Village";
    src: url("/fonts/Village.ttf") format("opentype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face{
    font-family: "Baskervville";
    src: url("/fonts/baskervville.regular.otf") format("opentype");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face{
    font-family: "Baskervville";
    src: url("/fonts/baskervville.italic.otf") format("opentype");
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

.baskervville {
    font-family: "Baskervville",serif;
}

.baskervville.onum,
.baskervville.onum * {
    font-variant-numeric: oldstyle-nums;
    font-feature-settings: "onum" 1;
}

.village {
    font-family: "Village",serif;
}

/* =========================================================
   Responsive: <= 860px
   - show hamburger
   - hide desktop menu
   - swap sidebars
   - wrap row + drop col3
   ========================================================= */
@media (max-width:720px){
    .menu-toggle {
        display: flex;
        position: absolute;
        top: 10px;
        left: 50%;
        transform: translateX(-50%);
        z-index: 300;
        border: none;
        background-color: #b3badc;
        border-radius: 10px;
        width: 34px;
        height: 30px;
        font-size: 24px;
        cursor: pointer;
        align-items: center;
        justify-content: center;
    }

    .menu-inline {
        display: flex;
        gap: 8px;
        align-items: center;
    }

    .menu-inline .menu {
        display: inline;
        width: auto;
    }

    .menu-inline .sep {
        color: #6A7395;
    }

    .sidebar-desktop {
        display: none;
    }

    .sidebar-mobile {
        display: block;
    }

    .logo-desktop {
        display: none;
    }

    .sidebar-mobile {
        text-align: center;
        margin: 0 auto;
        max-width: 100%;
    }

    .sidebar-mobile img.logo-mobile {
        display: block;
        margin: 0 auto 6px;
        max-width: 100%;
        height: auto;
    }

    .sidebar-mobile .review {
        text-align: center;
        margin: 0 auto;
        max-width: 95%;
    }

    .sidebar-mobile .sidebar {
        font-size: 12px;
        line-height: 15px;
        text-align: center;
        border-right: none;
        padding-right: 0;
        width: auto;
    }

    /* keep the row normal (don’t “auto-centre” each column) */
    .fixed-row {
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    /* col1 stays fixed */
    .col1 {
        flex: 0 0 150px;
    }

    /* col2 behaves as the main column */
    .col2 {
        flex: 1 1 520px;
        max-width: 520px;
        min-width: 0;
    }

    /* when col3 drops, align it under col2 */
    .col3 {
        flex: 0 0 100%;
        width: 100%;
        padding-left: 155px;

        /* 150 col1 + 5 gap */
        box-sizing: border-box;
    }

    /* hide desktop menu */
    .fsp-menu--desktop {
        display: none;
    }

    /* When col3 becomes the full-width row, indent it to col2's left edge */
    .fixed-row > .col3 {
        flex: 0 0 100%;
        width: 100%;
        margin-left: 0;
        padding-left: 155px;

        /* 150 col1 + 5 gap */
        box-sizing: border-box;
    }

    /* Also ensure the CONTENT inside doesn't re-center itself */
    .fixed-row > .col3 > * {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }
}

