﻿:root {
    --brand-primary: #7b0c2e; /* deep wine */
    --brand-ink: #0f0f0f;
}

/* 2-col responsive grid uses Bootstrap row/cols; images are square */
.img-square {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1; /* keep square even if container changes */
    object-fit: cover; /* fill square nicely */
}

body {
    font-family: Montserrat,system-ui,Arial,Helvetica,sans-serif;
    color: var(--brand-ink)
}

h1, h2, h3 {
    font-family: "Montserrat", Montserrat, Montserrat;
}

.navbar .nav-link {
    padding: .75rem 1rem
}

/* avoid stray horizontal scroll from defaults */
html, body {
    margin: 0;
    overflow-x: hidden;
}

.card-dest .card-img {
    height: 240px;
    object-fit: cover
}

.gradient-bottom {
    background: linear-gradient(180deg,rgba(0,0,0,0) 0%, rgba(0,0,0,.65) 100%)
}

.cookie-banner {
    position: sticky;
    top: 0;
    z-index: 1040;
    background: rgba(0,0,0,.85);
    color: #fff
}

.btn-primary {
    background-color: var(--brand-primary);
    border-color: var(--brand-primary)
}

.btn-outline-primary {
    color: var(--brand-primary);
    border-color: var(--brand-primary)
}

    .btn-outline-primary:hover {
        background-color: var(--brand-primary);
        border-color: var(--brand-primary)
    }


/* Paste at the END of Content/site.css */
.hero {
    position: relative;
    overflow: hidden;
}

    .hero > video.hero-bg {
        position: relative !important; /* override any absolute fill */
        display: block;
        width: 100% !important; /* never exceed page width */
        max-width: 100% !important;
        height: auto !important; /* keep aspect ratio */
        object-fit: contain !important;
    }

/* force dark grey bar */
.navbar-main {
    background-color: #2f2f2f !important; /* beats .bg-white */
}

    .navbar-main .navbar-brand,
    .navbar-main .nav-link {
        color: #fff !important;
    }

        .navbar-main .nav-link:hover,
        .navbar-main .nav-link:focus {
            opacity: .85;
        }

/* 2-column square grid with spacing */
.image-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px; /* padding between images */
}

    .image-grid .tile {
        position: relative;
        display: block; /* make the anchor a block for layout */
        width: 100%;
        padding-top: 100%; /* perfect square */
        overflow: hidden; /* no overlap outside the tile */
        border-radius: 8px; /* optional */
    }

        .image-grid .tile img {
            position: absolute;
            inset: 0;
            width: 100%;
            height: 100%;
            object-fit: cover; /* fill tile nicely */
            display: block;
        }

/* Optional: 1 column on narrow screens */
@media (max-width: 576px) {
    .image-grid {
        grid-template-columns: 1fr;
    }
}

.img-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 8px; /* optional */
}

/* backstop to ensure gutters apply even if a reset removed col padding */
.row > [class*="col"] {
    padding-left: calc(var(--bs-gutter-x) * 1) !important;
    padding-right: calc(var(--bs-gutter-x) * 1) !important;
}

.img-frame {
    border: 1px solid rgba(0,0,0,.25);
    border-radius: 12px;
    overflow: hidden; /* rounds the image corners */
    background: #fff;
}

    .img-frame .ratio {
        border-radius: inherit;
    }

.img-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

:root { --img-border-gap: 20px; }  /* ← change this to adjust the padding */

.ratio.img-frame{
  border:1px solid #222;
  border-radius:12px;
  background:#fff;
  position:relative;
  overflow:hidden;
}

/* inset the image by 20px on all sides */
.ratio.img-frame > .img-pad{
  position:absolute;
  top:var(--img-border-gap);
  right:var(--img-border-gap);
  bottom:var(--img-border-gap);
  left:var(--img-border-gap);
  width:auto !important;   /* override Bootstrap ratio defaults */
  height:auto !important;
  border-radius:8px;
  overflow:hidden;
}

.ratio.img-frame > .img-pad > img{
  width:100% !important;
  height:100% !important;
  object-fit:cover;
  display:block;
}

/* Grid cell: border around the outside, padding inside the cell */
.cell {
    border: 2px solid #222; /* thin line border around the cell */
    border-radius: 12px;
    background: #fff;
    padding: 20px; /* gap between border and image (adjust here) */
}

    /* Keep the image square and clipped to rounded corners */
    .cell .inner {
        border-radius: 8px;
        overflow: hidden;
    }

.img-fluid-cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Ensure page doesn't add side scroll */
html, body {
    overflow-x: hidden;
}

/* Full-width, auto-height hero that fits window width */
.hero-video {
    position: relative;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    overflow: hidden;
}

/* Make the video exactly page width; keep aspect */
.hero-video__media {
    display: block;
    width: 100% !important; /* fits window/page width */
    height: auto !important; /* preserve aspect ratio */
    max-width: 100%;
    object-fit: contain !important;
}

/* Optional dim overlay on top of the video */
.hero-video__overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(0,0,0,.35), rgba(0,0,0,.25));
}

/* Content on top of video */
.hero-video__content {
    position: absolute;
    inset: 0; /* stretch over video area */
    display: flex;
    align-items: center; /* vertical centering */
}

/* If you had old rules that forced absolute cover, neutralize them */
.hero .hero-bg,
.hero-video .hero-bg,
.hero-video video.hero-bg,
.hero-video__media.hero-bg {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
}



    /* Force navbar brand to sans-serif (wins over any Playfair rules) */
.brand-sans,
.navbar .navbar-brand.brand-sans {
    font-family: Montserrat, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: .2px;
}

/* Ensure headings keep Playfair, but NOT the brand */
h1, h2, h3 {
    font-family: "Montserrat", Montserrat, sans-serif;
}

/* Global sans stack */
:root {
    --font-sans: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Apply everywhere you show text */
html, body,
h1, h2, h3, h4, h5, h6,
.navbar .navbar-brand, .navbar .nav-link,
.btn, .dropdown-item, .lead,
.display-1, .display-2, .display-3, .display-4,
.card, .modal, .form-control, .breadcrumb, .alert {
    font-family: var(--font-sans) !important;
}

/* Global sans stack */
:root {
    --font-sans: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Site-wide default */
html, body {
    font-family: var(--font-sans) !important;
}

/* Navbar brand & links */
.navbar .navbar-brand,
.navbar .nav-link {
    font-family: var(--font-sans) !important;
    font-weight: 700;
    letter-spacing: .2px;
}

{ font-family: var(--font-sans) !important; }

<link rel="stylesheet" href='@Url.Content("~/Content/site.css")?v=noserif5' / >
/* Container for the hero section */
.pm-hero {
    position: relative; /* Establishes a positioning context for child elements */
    height: 100vh; /* Makes the section take up the full browser window height */
    display: flex;
    justify-content: center; /* Horizontally centers the title */
    align-items: center; /* Vertically centers the title */
    overflow: hidden; /* Prevents scrollbars if video is slightly larger */
}

/* Styles the background video */
.pm-hero__video {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%); /* Centers the video perfectly */
    min-width: 100%;
    min-height: 100%;
    width: auto;
    height: auto;
    z-index: -1; /* Places the video behind the text */
    object-fit: cover; /* Ensures video covers the area without distortion */
}

/* Styles the title text */
.pm-hero__title {
    font-family: 'Dancing Script', cursive;
    font-size: 5rem; /* A large, responsive font size */
    color: white;
    text-align: center;
    /* This shadow makes white text readable on any background */
    text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.7);
}

/* Optional: Adjust font size for smaller screens */
@media (max-width: 768px) {
    .pm-hero__title {
        font-size: 3rem;
    }
}