/* 4 Shore Cottages — public styles */
body {
    font-family: 'Open Sans', system-ui, -apple-system, sans-serif;
    color: #24303a;
}
h1, h2, h3, h4, h5, .navbar-brand, .display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
    font-family: 'Montserrat', sans-serif;
}
a { color: var(--primary, #1e6091); }
.btn-primary {
    background-color: var(--primary, #1e6091);
    border-color: var(--primary, #1e6091);
}
.btn-primary:hover, .btn-primary:focus {
    background-color: #17517b;
    border-color: #17517b;
}
.btn-warning {
    background-color: var(--accent, #e9c46a);
    border-color: var(--accent, #e9c46a);
    color: #14213d;
}
.btn-warning:hover { background-color: #dfb44e; border-color: #dfb44e; color: #14213d; }
.text-primary { color: var(--primary, #1e6091) !important; }
.bg-primary { background-color: var(--primary, #1e6091) !important; }

.navbar .nav-link { font-weight: 600; opacity: .9; }
.navbar .nav-link.active, .navbar .nav-link:hover { opacity: 1; }

/* Hero */
.hero {
    position: relative;
    min-height: 70vh;
    display: flex;
    align-items: center;
    color: #fff;
    background: linear-gradient(rgba(20,33,61,.55), rgba(30,96,145,.65)),
                url('/assets/images/hero.jpg') center/cover no-repeat,
                linear-gradient(135deg, #1e6091 0%, #14213d 100%);
}
.hero h1 { font-weight: 800; font-size: clamp(2.2rem, 5vw, 3.6rem); }

/* Cards */
.cottage-card, .attraction-card {
    border: none;
    box-shadow: 0 4px 18px rgba(20,33,61,.08);
    transition: transform .2s ease, box-shadow .2s ease;
    overflow: hidden;
}
.cottage-card:hover, .attraction-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 28px rgba(20,33,61,.16);
}
.cottage-card .card-img-top, .attraction-card .card-img-top {
    height: 220px;
    object-fit: cover;
    background: #dde6ee;
}
.photo-placeholder {
    height: 220px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #dde6ee, #c3d4e2);
    color: #6b8299;
    font-size: 2.5rem;
}
.amenity-chip {
    display: inline-block;
    background: #eef4f9;
    color: #1e6091;
    border-radius: 999px;
    padding: .3rem .8rem;
    margin: .2rem .2rem 0 0;
    font-size: .85rem;
    font-weight: 600;
}
.section-title { position: relative; margin-bottom: 2rem; }
.rating-stars { color: #e9c46a; }

/* Gallery */
.gallery-grid img { width: 100%; height: 100%; object-fit: cover; border-radius: .5rem; cursor: pointer; }
