@charset "utf-8";
/* CSS Document */

/* =========================================================
   BASE / GLOBAL
   ========================================================= */

body {
    font-family: 'Rethink Sans', sans-serif;
    color: #333;
    background: #fff;
    margin: 0;
    padding: 0;
}

p {
    line-height: 1.7;
    margin-bottom: 1rem;
}

h1, h2, h3, h4, h5, h6 {
    font-family: "acier-bat-gris", sans-serif;
    font-weight: 400;
    font-style: normal;
    color: #00394d;
    margin-bottom: 0.75rem;
}

h1 {
    font-family: "acier-bat-solid", sans-serif !important;
    font-weight: 400;
    font-style: normal;
    font-size: 36px;
    text-align: center;
}

.display-1,
.display-4 {
    font-family: "acier-bat-gris", sans-serif !important;
}

h2 {
    font-size: 30px;
}

h5 {
    text-align: center;
    color: #fff;
    border: 1px solid #ccc;
    padding: 10px 20px;
    border-radius: 5px;
    cursor: pointer;
}

h5:hover {
    background-color: #f0f0f0;
}

/* =========================================================
   TABLES
   ========================================================= */

table {
    width: 100%;
    border-collapse: collapse;
    margin-bottom: 20px;
}

th, td {
    border: 1px solid #ddd;
    padding: 8px;
    text-align: center;
}

th {
    background-color: #00394d;
    color: #fff;
}

tr:nth-child(even) {
    background-color: #f2f2f2;
}

/* =========================================================
   NAVIGATION
   ========================================================= */

.navbar {
    background-color: #00394d;
    padding: 1rem 0;
}

.navbar-brand {
    color: #fff;
}

.navbar-brand img {
    max-height: 40px;
}

.navbar-nav .nav-link {
    color: #fff;
    padding: 0.5rem 1rem;
}

.navbar-nav .nav-link:hover {
    color: #ffc107;
}

/* =========================================================
   FOOTER
   ========================================================= */

.footer {
    background-color: #00394d;
    color: #fff;
    padding: 2rem 0;
}

.social-icons {
    display: flex;
    justify-content: center;
}

.icon-link,
.social-icons .icon-link {
    margin: 0 10px;
    color: #fff;
    font-size: 24px;
    text-decoration: none;
}

.icon-link:hover,
.social-icons .icon-link:hover {
    color: #ffc107;
}

/* =========================================================
   BUTTONS
   ========================================================= */

.btn {
    background-color: #ffc107;
    color: #00394d;
    border: none;
    padding: 0.5rem 1rem;
    border-radius: 5px;
    cursor: pointer;
    transition: background-color 0.3s;
}

.btn:hover {
    background-color: #ffca28;
}

.toggle-button {
    cursor: pointer;
    padding: 10px 20px;
    background-color: #007bff;
    color: #fff;
    border: none;
    border-radius: 5px;
    margin-bottom: 10px;
    display: inline-block;
    transition: background-color 0.3s;
}

.toggle-button:hover {
    background-color: #0056b3;
}

.cta-button,
.category-link {
    display: inline-block;
    padding: 14px 28px;
    background: #7f8c57;
    color: #fff !important;
    text-decoration: none;
    font-weight: 600;
    border-radius: 999px;
    transition: all 0.3s ease;
}

.cta-button:hover,
.category-link:hover {
    background: #6f7b4c;
    text-decoration: none;
    transform: translateY(-2px);
}

/* =========================================================
   SERVICES SECTION
   ========================================================= */

.services-section {
    padding: 4rem 0;
}

.services-section h2 {
    margin-bottom: 2rem;
}

.services-section p {
    margin-bottom: 1.5rem;
}

.services-list {
    list-style: none;
    padding: 0;
}

.services-list li {
    margin-bottom: 1rem;
}

.services-list li i {
    color: #ffc107;
    margin-right: 0.5rem;
}

/* =========================================================
   SHARED SECTION ELEMENTS
   ========================================================= */

.section-header {
    text-align: center;
    margin-bottom: 50px;
}

.section-header h2 {
    font-size: 2.2rem;
    color: #1f1f1f;
    margin-bottom: 10px;
}

.section-header p {
    max-width: 720px;
    margin: 0 auto;
    color: #666;
    line-height: 1.8;
}

.intro-label,
.section-label,
.about-label,
.newborns-label,
.children-label,
.seniors-label,
.families-label {
    text-transform: uppercase;
    letter-spacing: 2px;
    font-size: 0.8rem;
    font-weight: 600;
    color: #8c6f5d;
    margin-bottom: 14px;
}

/* =========================================================
   HOME PAGE
   ========================================================= */

.home-page {
    background: #ffffff;
    scroll-behavior: smooth;
}

.hero-section {
    position: relative;
    width: 100%;
    height: 92vh;
    overflow: hidden;
}

.hero-video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(20, 20, 20, 0.15) 0%, rgba(20, 20, 20, 0.35) 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 20px;
}

.hero-label {
    display: inline-block;
    margin-bottom: 18px;
    padding: 10px 16px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.35);
    color: #fff;
    font-size: 0.85rem;
    letter-spacing: 2px;
    text-transform: uppercase;
    backdrop-filter: blur(4px);
}

.hero-overlay h1,
.hero-overlay p {
    color: #fff;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

.hero-overlay .display-4 {
    max-width: 900px;
    margin: 0 auto 18px;
    font-size: 3.2rem;
    line-height: 1.15;
}

.hero-overlay .lead {
    max-width: 700px;
    margin: 0 auto 28px;
    font-size: 1.15rem;
    line-height: 1.8;
}

.hero-button {
    display: inline-block;
    padding: 14px 28px;
    background: #ffffff;
    color: #333 !important;
    text-decoration: none;
    font-weight: 600;
    border-radius: 999px;
    transition: all 0.3s ease;
}

.hero-button:hover {
    text-decoration: none;
    transform: translateY(-2px);
    background: #f6f1ed;
}

.intro-section {
    padding: 90px 20px 70px;
    background: linear-gradient(180deg, #ffffff 0%, #fbf7f3 100%);
}

.intro-content {
    max-width: 850px;
    margin: 0 auto;
    text-align: center;
}

.intro-title {
    font-size: 2.5rem;
    line-height: 1.2;
    color: #1f1f1f;
    margin-bottom: 22px;
}

.intro-content p {
    font-size: 1.08rem;
    line-height: 1.9;
    color: #555;
    margin-bottom: 26px;
}

.intro-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
}

.intro-tag,
.about-tag {
    display: inline-block;
    padding: 10px 16px;
    border-radius: 999px;
    background: #fff;
    border: 1px solid #eadfd6;
    color: #5c4a40;
    font-size: 0.95rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.category-section {
    padding: 90px 20px;
    background: #ffffff;
}

.alt-section {
    background: #f9f6f2;
}

.category-layout {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 50px;
    align-items: center;
}

.reverse-layout {
    grid-template-columns: 1.1fr 1fr;
}

.category-copy h2 {
    font-size: 2.3rem;
    line-height: 1.2;
    color: #1f1f1f;
    margin-bottom: 18px;
}

.category-copy p {
    font-size: 1.05rem;
    line-height: 1.9;
    color: #555;
    margin-bottom: 24px;
}

.category-gallery {
    display: grid;
    gap: 18px;
}

.two-up {
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
}

.category-card {
    overflow: hidden;
    border-radius: 22px;
    background: #f8f8f8;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

.category-card img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    object-position: center 30%;
    display: block;
    transition: transform 0.4s ease;
}

.category-card:hover img {
    transform: scale(1.04);
}

.tall-card img,
.wide-card img {
    height: 300px;
}

.tall-card img {
    object-position: center 25%;
}

.wide-card img {
    object-position: center 30%;
}

/* newborn homepage crop tuning */
#newborns-home .category-card img {
    height: 280px;
    object-position: center 25%;
}

#newborns-home .tall-card img,
#newborns-home .wide-card img {
    height: 280px;
}

.gallery-section {
    padding: 90px 20px;
    background: #ffffff;
    text-align: center;
}

.gallery-heading {
    margin-bottom: 35px;
    font-size: 2rem;
    font-weight: 500;
}

.image-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    grid-auto-flow: dense;
}

.gallery-item {
    overflow: hidden;
    border-radius: 18px;
    background: #f8f8f8;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.08);
}

.gallery-item img {
    width: 100%;
    height: 360px;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.gallery-item:hover img {
    transform: scale(1.04);
}

.gallery-tall img {
    height: 520px;
}

.gallery-wide {
    grid-column: span 2;
}

.gallery-wide img {
    height: 360px;
}

.home-values-section {
    padding: 90px 20px;
    background: #ffffff;
}

.home-values-grid,
.values-grid {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}

.home-value-box,
.value-box {
    background: #fff;
    border: 1px solid #eee4dc;
    border-radius: 22px;
    padding: 30px 24px;
    text-align: center;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.05);
}

.home-value-box i,
.value-box i {
    display: inline-block;
    margin-bottom: 16px;
    font-size: 1.8rem;
    color: #a38571;
}

.home-value-box h3,
.value-box h3 {
    font-size: 1.2rem;
    color: #222;
    margin-bottom: 10px;
}

.home-value-box p,
.value-box p {
    margin: 0;
    font-size: 0.98rem;
    line-height: 1.75;
    color: #666;
}

.home-cta-section,
.cta-section {
    padding: 90px 20px 100px;
    background: #f9f6f2;
}

.home-cta-box,
.cta-box,
.newborns-cta-box,
.children-cta-box,
.seniors-cta-box,
.families-cta-box {
    max-width: 900px;
    margin: 0 auto;
    background: linear-gradient(135deg, #f4ece5 0%, #fff8f3 100%);
    border-radius: 28px;
    padding: 50px 30px;
    text-align: center;
    box-shadow: 0 16px 35px rgba(0, 0, 0, 0.07);
}

.home-cta-box h2,
.cta-box h2,
.newborns-cta-box h2,
.children-cta-box h2,
.seniors-cta-box h2,
.families-cta-box h2 {
    font-size: 2rem;
    color: #1f1f1f;
    margin-bottom: 12px;
}

.home-cta-box p,
.cta-box p,
.newborns-cta-box p,
.children-cta-box p,
.seniors-cta-box p,
.families-cta-box p {
    max-width: 650px;
    margin: 0 auto 24px;
    color: #555;
    line-height: 1.85;
}

/* =========================================================
   ABOUT PAGE
   ========================================================= */

.about-page {
    background: #ffffff;
}

.about-hero {
    padding: 150px 20px 80px;
    background: linear-gradient(180deg, #f8f3ef 0%, #ffffff 100%);
}

.about-hero .container {
    max-width: 1200px;
}

.about-title {
    font-size: 3rem;
    line-height: 1.12;
    color: #1f1f1f;
    margin-bottom: 20px;
}

.about-intro {
    max-width: 650px;
    margin-bottom: 30px;
    font-size: 1.08rem;
    line-height: 1.9;
    color: #555;
}

.about-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.about-image-wrap {
    position: relative;
    text-align: center;
    margin-top: 20px;
}

.about-image-wrap::before {
    content: "";
    position: absolute;
    top: 30px;
    left: 50%;
    width: 82%;
    height: 86%;
    background: #eadfd6;
    border-radius: 28px;
    transform: translateX(-50%);
    z-index: 0;
}

.about-main-image {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 420px;
    border-radius: 24px;
    object-fit: cover;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.14);
}

.story-section {
    padding: 90px 20px;
    background: #ffffff;
}

.story-section .container {
    max-width: 1100px;
}

.story-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 40px;
    align-items: start;
}

.story-copy p {
    font-size: 1.05rem;
    line-height: 1.9;
    color: #444;
    margin-bottom: 22px;
}

.story-cards {
    display: grid;
    gap: 20px;
}

.story-card {
    background: #faf7f4;
    border: 1px solid #eee2d8;
    border-radius: 22px;
    padding: 24px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.05);
}

.story-card i {
    display: inline-block;
    margin-bottom: 12px;
    font-size: 1.4rem;
    color: #9a7f6b;
}

.story-card h3 {
    font-size: 1.15rem;
    color: #222;
    margin-bottom: 8px;
}

.story-card p {
    margin: 0;
    font-size: 0.98rem;
    line-height: 1.75;
    color: #555;
}

.values-section {
    padding: 90px 20px;
    background: #f9f6f2;
}

/* =========================================================
   NEWBORNS PAGE
   ========================================================= */

.newborns-page {
    background: #ffffff;
}

.newborns-hero {
    padding: 150px 20px 80px;
    background: linear-gradient(180deg, #f8f3ef 0%, #ffffff 100%);
}

.newborns-title {
    font-size: 3rem;
    line-height: 1.12;
    color: #1f1f1f;
    margin-bottom: 20px;
    text-align: left;
}

.newborns-intro {
    max-width: 650px;
    margin-bottom: 30px;
    font-size: 1.08rem;
    line-height: 1.9;
    color: #555;
}

.newborns-hero-image-wrap {
    position: relative;
    text-align: center;
    margin-top: 20px;
}

.newborns-hero-image-wrap::before {
    content: "";
    position: absolute;
    top: 30px;
    left: 50%;
    width: 82%;
    height: 86%;
    background: #eadfd6;
    border-radius: 28px;
    transform: translateX(-50%);
    z-index: 0;
}

.newborns-hero-image {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 420px;
    border-radius: 24px;
    object-fit: cover;
    object-position: center 25%;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.14);
}

.newborns-story-section {
    padding: 90px 20px;
    background: #ffffff;
}

.newborns-story-grid {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 40px;
    align-items: start;
}

.newborns-story-copy p {
    font-size: 1.05rem;
    line-height: 1.9;
    color: #444;
    margin-bottom: 22px;
}

.newborns-feature-cards {
    display: grid;
    gap: 20px;
}

.newborns-feature-card {
    background: #faf7f4;
    border: 1px solid #eee2d8;
    border-radius: 22px;
    padding: 24px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.05);
}

.newborns-feature-card i {
    display: inline-block;
    margin-bottom: 12px;
    font-size: 1.4rem;
    color: #9a7f6b;
}

.newborns-feature-card h3 {
    font-size: 1.15rem;
    color: #222;
    margin-bottom: 8px;
}

.newborns-feature-card p {
    margin: 0;
    font-size: 0.98rem;
    line-height: 1.75;
    color: #555;
}

.newborns-gallery-section {
    padding: 90px 20px;
    background: #f9f6f2;
}

.newborns-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.newborns-gallery-item {
    overflow: hidden;
    border-radius: 18px;
    background: #f8f8f8;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.08);
}

.newborns-gallery-item img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    object-position: center 25%;
    display: block;
    transition: transform 0.35s ease;
}

.newborns-gallery-item:hover img {
    transform: scale(1.03);
}

.newborns-cta-section {
    padding: 90px 20px 100px;
    background: #ffffff;
}

/* =========================================================
   CHILDREN PAGE
   ========================================================= */

.children-page {
    background: #ffffff;
}

.children-hero {
    padding: 150px 20px 80px;
    background: linear-gradient(180deg, #f8f3ef 0%, #ffffff 100%);
}

.children-title {
    font-size: 3rem;
    line-height: 1.12;
    color: #1f1f1f;
    margin-bottom: 20px;
    text-align: left;
}

.children-intro {
    max-width: 650px;
    margin-bottom: 30px;
    font-size: 1.08rem;
    line-height: 1.9;
    color: #555;
}

.children-hero-image-wrap {
    position: relative;
    text-align: center;
    margin-top: 20px;
}

.children-hero-image-wrap::before {
    content: "";
    position: absolute;
    top: 30px;
    left: 50%;
    width: 82%;
    height: 86%;
    background: #eadfd6;
    border-radius: 28px;
    transform: translateX(-50%);
    z-index: 0;
}

.children-hero-image {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 420px;
    border-radius: 24px;
    object-fit: cover;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.14);
}

.children-story-section {
    padding: 90px 20px;
    background: #ffffff;
}

.children-story-grid {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 40px;
    align-items: start;
}

.children-story-copy p {
    font-size: 1.05rem;
    line-height: 1.9;
    color: #444;
    margin-bottom: 22px;
}

.children-feature-cards {
    display: grid;
    gap: 20px;
}

.children-feature-card {
    background: #faf7f4;
    border: 1px solid #eee2d8;
    border-radius: 22px;
    padding: 24px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.05);
}

.children-feature-card i {
    display: inline-block;
    margin-bottom: 12px;
    font-size: 1.4rem;
    color: #9a7f6b;
}

.children-feature-card h3 {
    font-size: 1.15rem;
    color: #222;
    margin-bottom: 8px;
}

.children-feature-card p {
    margin: 0;
    font-size: 0.98rem;
    line-height: 1.75;
    color: #555;
}

.children-gallery-section {
    padding: 90px 20px;
    background: #f9f6f2;
}

.children-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.children-gallery-item {
    overflow: hidden;
    border-radius: 18px;
    background: #f8f8f8;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.08);
}

.children-gallery-item img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    display: block;
    transition: transform 0.35s ease;
}

.children-gallery-item:hover img {
    transform: scale(1.03);
}

.children-cta-section {
    padding: 90px 20px 100px;
    background: #ffffff;
}

/* =========================================================
   SENIORS PAGE
   ========================================================= */

.seniors-page {
    background: #ffffff;
}

.seniors-hero {
    padding: 150px 20px 80px;
    background: linear-gradient(180deg, #f8f3ef 0%, #ffffff 100%);
}

.seniors-title {
    font-size: 3rem;
    line-height: 1.12;
    color: #1f1f1f;
    margin-bottom: 20px;
    text-align: left;
}

.seniors-intro {
    max-width: 650px;
    margin-bottom: 30px;
    font-size: 1.08rem;
    line-height: 1.9;
    color: #555;
}

.seniors-hero-image-wrap {
    position: relative;
    text-align: center;
    margin-top: 20px;
}

.seniors-hero-image-wrap::before {
    content: "";
    position: absolute;
    top: 30px;
    left: 50%;
    width: 88%;
    height: 82%;
    background: #eadfd6;
    border-radius: 28px;
    transform: translateX(-50%);
    z-index: 0;
}

.seniors-hero-image {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 520px;
    height: 360px;
    border-radius: 24px;
    object-fit: cover;
    object-position: center 15%;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.14);
}

.seniors-story-section {
    padding: 90px 20px;
    background: #ffffff;
}

.seniors-story-grid {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 40px;
    align-items: start;
}

.seniors-story-copy p {
    font-size: 1.05rem;
    line-height: 1.9;
    color: #444;
    margin-bottom: 22px;
}

.seniors-feature-cards {
    display: grid;
    gap: 20px;
}

.seniors-feature-card {
    background: #faf7f4;
    border: 1px solid #eee2d8;
    border-radius: 22px;
    padding: 24px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.05);
}

.seniors-feature-card i {
    display: inline-block;
    margin-bottom: 12px;
    font-size: 1.4rem;
    color: #9a7f6b;
}

.seniors-feature-card h3 {
    font-size: 1.15rem;
    color: #222;
    margin-bottom: 8px;
}

.seniors-feature-card p {
    margin: 0;
    font-size: 0.98rem;
    line-height: 1.75;
    color: #555;
}

.seniors-gallery-section {
    padding: 90px 20px;
    background: #f9f6f2;
}

.seniors-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.seniors-gallery-item {
    overflow: hidden;
    border-radius: 18px;
    background: #f8f8f8;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.08);
}

.seniors-gallery-item img {
    width: 100%;
    height: 320px;
    object-fit: cover;
    object-position: center 15%;
    display: block;
    transition: transform 0.35s ease;
}

.seniors-gallery-item:hover img {
    transform: scale(1.03);
}

.seniors-cta-section {
    padding: 90px 20px 100px;
    background: #ffffff;
}

/* =========================================================
   FAMILIES PAGE
   ========================================================= */

.families-page {
    background: #ffffff;
}

.families-hero {
    padding: 150px 20px 80px;
    background: linear-gradient(180deg, #f8f3ef 0%, #ffffff 100%);
}

.families-title {
    font-size: 3rem;
    line-height: 1.12;
    color: #1f1f1f;
    margin-bottom: 20px;
    text-align: left;
}

.families-intro {
    max-width: 650px;
    margin-bottom: 30px;
    font-size: 1.08rem;
    line-height: 1.9;
    color: #555;
}

.families-hero-image-wrap {
    position: relative;
    text-align: center;
    margin-top: 20px;
}

.families-hero-image-wrap::before {
    content: "";
    position: absolute;
    top: 30px;
    left: 50%;
    width: 88%;
    height: 82%;
    background: #eadfd6;
    border-radius: 28px;
    transform: translateX(-50%);
    z-index: 0;
}

.families-hero-image {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 520px;
    height: 360px;
    border-radius: 24px;
    object-fit: cover;
    object-position: center 14%;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.14);
}

.families-story-section {
    padding: 90px 20px;
    background: #ffffff;
}

.families-story-grid {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 40px;
    align-items: start;
}

.families-story-copy p {
    font-size: 1.05rem;
    line-height: 1.9;
    color: #444;
    margin-bottom: 22px;
}

.families-feature-cards {
    display: grid;
    gap: 20px;
}

.families-feature-card {
    background: #faf7f4;
    border: 1px solid #eee2d8;
    border-radius: 22px;
    padding: 24px;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.05);
}

.families-feature-card i {
    display: inline-block;
    margin-bottom: 12px;
    font-size: 1.4rem;
    color: #9a7f6b;
}

.families-feature-card h3 {
    font-size: 1.15rem;
    color: #222;
    margin-bottom: 8px;
}

.families-feature-card p {
    margin: 0;
    font-size: 0.98rem;
    line-height: 1.75;
    color: #555;
}

.families-gallery-section {
    padding: 90px 20px;
    background: #f9f6f2;
}

.families-gallery-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.families-gallery-item {
    overflow: hidden;
    border-radius: 18px;
    background: #f8f8f8;
    box-shadow: 0 8px 22px rgba(0, 0, 0, 0.08);
}

.families-gallery-item img {
    width: 100%;
    height: 320px;
    object-fit: cover;
    object-position: center 14%;
    display: block;
    transition: transform 0.35s ease;
}

.families-gallery-item:hover img {
    transform: scale(1.03);
}

/* fine tune family gallery crops */
.families-gallery-item:nth-child(1) img,
.families-gallery-item:nth-child(4) img,
.families-gallery-item:nth-child(5) img,
.families-gallery-item:nth-child(6) img,
.families-gallery-item:nth-child(7) img,
.families-gallery-item:nth-child(8) img,
.families-gallery-item:nth-child(9) img,
.families-gallery-item:nth-child(11) img {
    object-position: center 12%;
}

/* family-3 needs more head room */
.families-gallery-item:nth-child(2) img {
    object-position: center 10%;
    height: 300px;
}

/* Christmas family portrait needs to be wider and less tall */
.families-gallery-item:nth-child(10) img {
    height: 260px;
    object-position: center 12%;
}

.families-cta-section {
    padding: 90px 20px 100px;
    background: #ffffff;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 991px) {
    .hero-section {
        height: 75vh;
    }

    .hero-overlay .display-4 {
        font-size: 2.4rem;
    }

    .image-grid,
    .home-values-grid,
    .values-grid {
        grid-template-columns: 1fr 1fr;
    }

    .gallery-wide {
        grid-column: span 1;
    }

    .gallery-tall img,
    .gallery-wide img,
    .gallery-item img {
        height: 320px;
    }

    .category-layout,
    .reverse-layout,
    .story-grid,
    .newborns-story-grid,
    .children-story-grid,
    .seniors-story-grid,
    .families-story-grid {
        grid-template-columns: 1fr;
    }

    .newborns-gallery-grid,
    .children-gallery-grid,
    .seniors-gallery-grid,
    .families-gallery-grid {
        grid-template-columns: 1fr;
    }

    .category-copy h2,
    .intro-title {
        font-size: 2rem;
    }

    .about-hero,
    .newborns-hero,
    .children-hero,
    .seniors-hero,
    .families-hero {
        padding-top: 120px;
    }

    .about-title,
    .newborns-title,
    .children-title,
    .seniors-title,
    .families-title {
        font-size: 2.3rem;
    }

    .about-image-wrap,
    .newborns-hero-image-wrap,
    .children-hero-image-wrap,
    .seniors-hero-image-wrap,
    .families-hero-image-wrap {
        margin-top: 40px;
    }

    .seniors-hero-image,
    .families-hero-image {
        max-width: 100%;
        height: 320px;
        object-position: center 12%;
    }

    .seniors-gallery-item img,
    .families-gallery-item img {
        height: 300px;
        object-position: center 12%;
    }

    .families-gallery-item:nth-child(10) img,
    .families-gallery-item:nth-child(2) img {
        height: 260px;
    }
}

/* =========================================================
   QUOTE PAGE
   ========================================================= */

.quote-page {
    background: #ffffff;
}

.contact-section {
    padding: 180px 20px 120px;
    background: linear-gradient(180deg, #f8f3ef 0%, #ffffff 100%);
}

.quote-form-wrap {
    max-width: 760px;
    margin: 0 auto;
    padding: 50px 30px;
    background: #ffffff;
    border: 1px solid #eee2d8;
    border-radius: 28px;
    box-shadow: 0 16px 35px rgba(0, 0, 0, 0.07);
}

.quote-title {
    font-size: 2.6rem;
    line-height: 1.15;
    color: #1f1f1f;
    margin-bottom: 18px;
    text-align: left;
}

.quote-intro {
    font-size: 1.05rem;
    line-height: 1.9;
    color: #555;
    margin-bottom: 28px;
}

.quote-intro a {
    color: #7f8c57;
    text-decoration: none;
}

.quote-intro a:hover {
    text-decoration: underline;
}

.quote-form .form-group {
    margin-bottom: 20px;
}

.quote-form label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: #333;
}

.quote-form .form-control {
    border-radius: 14px;
    border: 1px solid #ddd;
    padding: 14px 16px;
    min-height: 52px;
    box-shadow: none;
}

.quote-form textarea.form-control {
    min-height: 140px;
    resize: vertical;
}

.quote-form .form-control:focus {
    border-color: #7f8c57;
    box-shadow: 0 0 0 0.15rem rgba(127, 140, 87, 0.15);
}

.quote-submit {
    border: none;
    cursor: pointer;
}



@media (max-width: 576px) {
    .contact-section {
        padding: 150px 20px 90px;
    }

    .quote-form-wrap {
        padding: 36px 22px;
    }

    .quote-title {
        font-size: 1.9rem;
    }

    .quote-intro {
        font-size: 1rem;
    }
}

@media (max-width: 768px) {
    h1 {
        font-size: 28px;
    }

    h2 {
        font-size: 24px;
    }

    .navbar-brand img {
        max-height: 30px;
    }

    .footer {
        padding: 1rem 0;
    }

    .services-section p {
        width: 100%;
    }

    .btn {
        width: 100%;
    }

    .jumbotron video {
        display: none;
    }
}

@media (max-width: 576px) {
    .hero-section {
        height: 68vh;
    }

    .hero-overlay .display-4 {
        font-size: 2rem;
    }

    .hero-overlay .lead {
        font-size: 1rem;
    }

    .image-grid,
    .home-values-grid,
    .values-grid {
        grid-template-columns: 1fr;
    }

    .two-up {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .wide-card,
    .gallery-wide {
        grid-column: span 1;
    }

    .tall-card img,
    .wide-card img,
    .gallery-tall img,
    .gallery-wide img,
    .gallery-item img,
    .category-card img {
        height: 300px;
    }

    .intro-title,
    .home-cta-box h2,
    .cta-box h2,
    .section-header h2,
    .category-copy h2,
    .about-title,
    .newborns-title,
    .children-title,
    .seniors-title,
    .families-title,
    .newborns-cta-box h2,
    .children-cta-box h2,
    .seniors-cta-box h2,
    .families-cta-box h2 {
        font-size: 1.8rem;
    }

    .home-cta-box,
    .cta-box,
    .newborns-cta-box,
    .children-cta-box,
    .seniors-cta-box,
    .families-cta-box {
        padding: 36px 22px;
    }

    .about-intro,
    .story-copy p,
    .cta-box p,
    .value-box p,
    .newborns-intro,
    .newborns-story-copy p,
    .newborns-feature-card p,
    .children-intro,
    .children-story-copy p,
    .children-feature-card p,
    .seniors-intro,
    .seniors-story-copy p,
    .seniors-feature-card p,
    .families-intro,
    .families-story-copy p,
    .families-feature-card p,
    .newborns-cta-box p,
    .children-cta-box p,
    .seniors-cta-box p,
    .families-cta-box p {
        font-size: 1rem;
    }

    .intro-section {
        padding: 50px 20px 20px;
    }

    .newborns-gallery-item img,
    .children-gallery-item img,
    .seniors-gallery-item img,
    .families-gallery-item img {
        height: 260px;
    }

    .seniors-hero-image,
    .families-hero-image {
        height: 260px;
        object-position: center 10%;
    }

    .families-gallery-item:nth-child(10) img,
    .families-gallery-item:nth-child(2) img {
        height: 220px;
    }
}

/* =========================
   HEADSHOTS PAGE
========================= */

.headshots-page {
    background-color: #fff;
}

/* Hero Section */
.headshots-hero {
    padding: 100px 0;
    background: #f8f5f1;
}

.headshots-label {
    display: inline-block;
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: #8a6d5a;
    margin-bottom: 18px;
}

.headshots-title {
    font-size: 3rem;
    line-height: 1.2;
    font-weight: 600;
    color: #2f2a26;
    margin-bottom: 20px;
}

.headshots-intro {
    font-size: 1.1rem;
    line-height: 1.8;
    color: #5c5148;
    margin-bottom: 30px;
    max-width: 560px;
}

.headshots-hero-image-wrap {
    position: relative;
    text-align: center;
}

.headshots-hero-image {
    width: 100%;
    max-width: 500px;
    border-radius: 24px;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.08);
    object-fit: cover;
}

/* Story Section */
.headshots-story-section {
    padding: 100px 0;
    background-color: #fff;
}

.headshots-story-grid {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 50px;
    align-items: start;
    margin-top: 50px;
}

.headshots-story-copy p {
    font-size: 1.05rem;
    line-height: 1.9;
    color: #5c5148;
    margin-bottom: 22px;
}

/* Feature Cards */
.headshots-feature-cards {
    display: grid;
    gap: 24px;
}

.headshots-feature-card {
    background: #f8f5f1;
    padding: 30px;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04);
}

.headshots-feature-card i {
    font-size: 1.4rem;
    color: #8a6d5a;
    margin-bottom: 15px;
}

.headshots-feature-card h3 {
    font-size: 1.2rem;
    color: #2f2a26;
    margin-bottom: 10px;
    font-weight: 600;
}

.headshots-feature-card p {
    font-size: 1rem;
    line-height: 1.7;
    color: #5c5148;
    margin-bottom: 0;
}

/* Gallery Section */
.headshots-gallery-section {
    padding: 100px 0;
    background: #fcfaf7;
}

.headshots-gallery-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 30px;
    margin-top: 40px;
    justify-items: center;
}

.headshots-gallery-item img {
    width: 100%;
    max-width: 500px;
    border-radius: 24px;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.08);
    object-fit: cover;
}

/* CTA Section */
.headshots-cta-section {
    padding: 100px 20px;
    background: #fff;
}

.headshots-cta-box {
    max-width: 900px;
    margin: 0 auto;
    text-align: center;
    background: #f8f5f1;
    padding: 60px 40px;
    border-radius: 28px;
    box-shadow: 0 18px 45px rgba(0, 0, 0, 0.05);
}

.headshots-cta-box h2 {
    font-size: 2.2rem;
    color: #2f2a26;
    margin-bottom: 18px;
    font-weight: 600;
}

.headshots-cta-box p {
    font-size: 1.05rem;
    line-height: 1.8;
    color: #5c5148;
    max-width: 680px;
    margin: 0 auto 28px;
}

/* Shared section header support */
.section-header {
    text-align: center;
    max-width: 760px;
    margin: 0 auto;
}

.section-header h2 {
    font-size: 2.3rem;
    color: #2f2a26;
    margin-bottom: 15px;
    font-weight: 600;
}

.section-header p {
    font-size: 1.05rem;
    line-height: 1.8;
    color: #5c5148;
    margin-bottom: 0;
}

/* Responsive */
@media (max-width: 991px) {
    .headshots-hero {
        padding: 80px 0;
        text-align: center;
    }

    .headshots-title {
        font-size: 2.4rem;
    }

    .headshots-intro {
        margin-left: auto;
        margin-right: auto;
    }

    .headshots-hero-image-wrap {
        margin-top: 40px;
    }

    .headshots-story-grid {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .headshots-cta-box {
        padding: 50px 30px;
    }
}

@media (max-width: 575px) {
    .headshots-hero,
    .headshots-story-section,
    .headshots-gallery-section,
    .headshots-cta-section {
        padding: 70px 0;
    }

    .headshots-title {
        font-size: 2rem;
    }

    .section-header h2,
    .headshots-cta-box h2 {
        font-size: 1.8rem;
    }

    .headshots-feature-card {
        padding: 24px;
    }

    .headshots-cta-box {
        padding: 40px 22px;
        border-radius: 22px;
    }

    .headshots-hero-image,
    .headshots-gallery-item img {
        border-radius: 20px;
    }
}