/* ================================================
   FAIRCHILD GOLDEN DOODLES — MASTER STYLESHEET
   
   Palette (extracted directly from the logo):
     --navy-deep    #2B3D4F   badge background / darkest anchor
     --navy         #3A5068   primary brand
     --slate        #6B7D8D   mid-tone / body text secondary
     --silver       #9AAAB8   ornamental scrollwork tone
     --cream        #F0ECE4   warm page background
     --cream-dark   #E2DDD4   slightly darker cream
     --off-white    #E8E2D5   logo text / cream accent
     --white        #FFFFFF   cards, highlights
     --gold         #C9A06A   single warm accent (keeps
                               heritage feel without clashing)
   ================================================ */
:root {
    --navy-deep:   #2B3D4F;
    --navy:        #3A5068;
    --navy-mid:    #4D6578;
    --slate:       #6B7D8D;
    --silver:      #9AAAB8;
    --silver-light:#BCC8D2;
    --cream:       #F0ECE4;
    --cream-dark:  #E2DDD4;
    --off-white:   #E8E2D5;
    --white:       #FFFFFF;
    --gold:        #C9A06A;
    --gold-dim:    #A8835A;
    --shadow-sm:   0 2px 10px  rgba(43,61,79,.09);
    --shadow-md:   0 8px 30px  rgba(43,61,79,.13);
    --shadow-lg:   0 22px 60px rgba(43,61,79,.17);
    --radius:      14px;
    --nav-h:       68px;
    --ease:        cubic-bezier(.4,0,.2,1);
}

/* ================================================
   RESET & BASE
   ================================================ */
*,*::before,*::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }

body {
    font-family:'Source Sans 3',sans-serif;
    background:var(--cream);
    color:var(--navy-deep);
    line-height:1.6;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
}
a { text-decoration:none; color:inherit; }

/* ================================================
   NAVIGATION
   ================================================ */
.navbar {
    position:fixed;
    top:0; left:0; right:0;
    height:var(--nav-h);
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 2.5rem;
    background:rgba(240,236,228,.9);
    backdrop-filter:blur(18px) saturate(1.3);
    -webkit-backdrop-filter:blur(18px) saturate(1.3);
    border-bottom:1px solid rgba(43,61,79,.08);
    z-index:100;
}

.nav-logo {
    display:flex;
    align-items:center;
    gap:.5rem;
    font-family:'Playfair Display',serif;
    font-size:1.15rem;
    font-weight:600;
    color:var(--navy-deep);
    white-space:nowrap;
}
.nav-logo strong { color:var(--navy); }

.nav-logo__img {
    height: 72px;
    width:auto;
    object-fit:contain;
}

.nav-links {
    list-style:none;
    display:flex;
    gap:2.2rem;
    align-items:center;
}
.nav-links a {
    font-size:.72rem;
    font-weight:600;
    letter-spacing:1.6px;
    text-transform:uppercase;
    color:var(--slate);
    position:relative;
    padding-bottom:5px;
    transition:color .25s;
}
.nav-links a::after {
    content:'';
    position:absolute;
    bottom:0; left:0;
    width:0; height:1.5px;
    background:var(--gold);
    transition:width .3s var(--ease);
}
.nav-links a:hover,
.nav-links a.active { color:var(--navy-deep); }
.nav-links a:hover::after,
.nav-links a.active::after { width:100%; }

/* Hamburger */
.nav-toggle {
    display:none;
    flex-direction:column;
    gap:5px;
    background:none;
    border:none;
    cursor:pointer;
    padding:.5rem;
}
.nav-toggle span {
    display:block;
    width:24px; height:2px;
    background:var(--navy-deep);
    border-radius:2px;
    transition:all .3s;
}

/* ================================================
   PAGE HEADER  (about / puppies / contact)
   ================================================ */
.page-header {
    padding:calc(var(--nav-h) + 4rem) 2rem 3.4rem;
    background:linear-gradient(155deg, var(--navy-deep) 0%, var(--navy) 50%, var(--navy-mid) 100%);
    text-align:center;
    position:relative;
    overflow:hidden;
}

/* Subtle warm glow */
.page-header::before {
    content:'';
    position:absolute;
    width:440px; height:440px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(201,160,106,.13) 0%, transparent 65%);
    top:-35%; right:-10%;
    pointer-events:none;
}

/* Art Deco bottom rule */
.page-header::after {
    content:'';
    position:absolute;
    bottom:0; left:50%;
    transform:translateX(-50%);
    width:100px; height:1px;
    background:linear-gradient(90deg, transparent, var(--gold), transparent);
}

.page-header-content { position:relative; z-index:1; }

.page-header h1 {
    font-family:'Playfair Display',serif;
    font-size:clamp(2.5rem,5.5vw,3.6rem);
    font-weight:700;
    color:var(--white);
    letter-spacing:.3px;
    margin-bottom:.5rem;
}
.page-header p {
    font-size:.97rem;
    color:var(--silver);
    font-weight:300;
}

/* ================================================
   HERO  (index only)
   ================================================ */
.hero {
    height:100vh;
    min-height:600px;
    background:
        linear-gradient(148deg, rgba(43,61,79,.82) 0%, rgba(58,80,104,.76) 42%, rgba(77,101,120,.7) 100%),
        url('Pictures/First_LitterPuppies.jpg') 50% 35%/cover no-repeat;
    display:flex;
    align-items:center;
    justify-content:center;
    position:relative;
    overflow:hidden;
}
/* Hero image tint */
.hero::after {
    content:'';
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 30% 20%, rgba(201,160,106,.16), transparent 55%),
        linear-gradient(180deg, rgba(240,236,228,.06), rgba(43,61,79,.12));
    pointer-events:none;
    z-index:1;
}

/* Ambient orbs — cool, restrained */
.hero__orb {
    position:absolute;
    border-radius:50%;
    pointer-events:none;
}
.hero__orb--1 {
    width:580px; height:580px;
    background:radial-gradient(circle, rgba(154,170,184,.18) 0%, transparent 68%);
    top:-18%; right:-14%;
    animation:orb1 20s ease-in-out infinite;
}
.hero__orb--2 {
    width:400px; height:400px;
    background:radial-gradient(circle, rgba(201,160,106,.1) 0%, transparent 65%);
    bottom:-14%; left:-10%;
    animation:orb2 24s ease-in-out infinite;
}
.hero__orb--3 {
    width:280px; height:280px;
    background:radial-gradient(circle, rgba(77,101,120,.22) 0%, transparent 68%);
    top:38%; left:16%;
    animation:orb3 17s ease-in-out infinite;
}

@keyframes orb1 {
    0%,100%{transform:translate(0,0) scale(1)}
    50%    {transform:translate(-32px,26px) scale(1.06)}
}
@keyframes orb2 {
    0%,100%{transform:translate(0,0) scale(1)}
    50%    {transform:translate(26px,-20px) scale(1.07)}
}
@keyframes orb3 {
    0%,100%{transform:translate(0,0)}
    50%    {transform:translate(16px,20px) scale(1.08)}
}

.hero-content {
    position:relative;
    z-index:2;
    text-align:center;
    max-width:760px;
    padding:2rem;
    animation:heroFade .9s .15s var(--ease) both;
}
@keyframes heroFade {
    from{opacity:0;transform:translateY(26px)}
    to  {opacity:1;transform:translateY(0)}
}


.hero h1 {
    font-family:'Playfair Display',serif;
    font-size:clamp(2.8rem,7vw,5.2rem);
    font-weight:700;
    color:var(--off-white);
    line-height:1.1;
    letter-spacing:-.6px;
    text-transform:uppercase;
    margin-bottom:.7rem;
    text-shadow:
        0 10px 28px rgba(0,0,0,.35),
        0 0 1px rgba(43,61,79,.55),
        0 0 6px rgba(43,61,79,.25);
}
.hero h1 strong {
    display:block;
    color:var(--white);
    letter-spacing:.5px;
    text-shadow:
        0 10px 28px rgba(0,0,0,.35),
        0 0 1px rgba(43,61,79,.6),
        0 0 6px rgba(43,61,79,.3);
}

.hero p {
    font-size:1.08rem;
    color:var(--off-white);
    max-width:560px;
    margin:0 auto 2rem;
    font-weight:400;
    line-height:1.7;
    text-shadow:0 8px 20px rgba(0,0,0,.35);
    background:rgba(43,61,79,.45);
    border:1px solid rgba(255,255,255,.15);
    padding:.55rem 1rem;
    border-radius:999px;
    display:inline-block;
}

/* ================================================
   BUTTONS
   ================================================ */
.cta-button {
    display:inline-flex;
    align-items:center;
    gap:.4rem;
    padding:.82rem 2.1rem;
    font-family:'Source Sans 3',sans-serif;
    font-size:.73rem;
    font-weight:600;
    letter-spacing:1.3px;
    text-transform:uppercase;
    border-radius:50px;
    border:none;
    cursor:pointer;
    transition:all .3s var(--ease);
    /* default = gold accent */
    background:var(--gold);
    color:var(--white);
    box-shadow:0 5px 20px rgba(201,160,106,.3);
}
.cta-button:hover {
    background:var(--gold-dim);
    transform:translateY(-2px);
    box-shadow:0 9px 28px rgba(201,160,106,.38);
}

.cta-button--outline {
    background:transparent;
    color:var(--navy-deep);
    border:1.5px solid rgba(43,61,79,.25);
    box-shadow:none;
}
.cta-button--outline:hover {
    border-color:var(--gold);
    color:var(--gold-dim);
    background:rgba(201,160,106,.06);
    box-shadow:none;
}

/* ================================================
   SHARED SECTION LAYOUT
   ================================================ */
section {
    padding:5rem 2rem;
    max-width:1200px;
    margin:0 auto;
}

.section-header {
    text-align:center;
    margin-bottom:3.2rem;
}

/* Art Deco flanking label */
.section-header .section-label,
.section-label {
    display:inline-flex;
    align-items:center;
    gap:.65rem;
    font-size:.67rem;
    font-weight:600;
    letter-spacing:2.4px;
    text-transform:uppercase;
    color:var(--gold);
    margin-bottom:.85rem;
}
.section-header .section-label::before,
.section-label::before,
.section-header .section-label::after,
.section-label::after {
    content:'';
    width:26px; height:1px;
    background:var(--gold);
}

.section-header h2 {
    font-family:'Playfair Display',serif;
    font-size:clamp(1.9rem,4vw,2.8rem);
    font-weight:700;
    color:var(--navy-deep);
    margin-bottom:.6rem;
}

.section-header p {
    font-size:.93rem;
    color:var(--slate);
    max-width:560px;
    margin:0 auto;
    font-weight:300;
    line-height:1.7;
}

/* ================================================
   ABOUT PREVIEW  (index – two-col card)
   ================================================ */
.about-preview {
    /* inherits section padding */
}

.about-preview-content {
    display:grid;
    grid-template-columns:1fr 1fr;
    background:var(--white);
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:var(--shadow-lg);
}

.about-preview-image {
    min-height:440px;
    background:linear-gradient(148deg, var(--navy-mid) 0%, var(--navy-deep) 100%);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:3.6rem;
    color:rgba(255,255,255,.3);
    position:relative;
    overflow:hidden;
}
/* Decorative circle — echoes the logo's round paw */
.about-preview-image::before {
    content:'';
    position:absolute;
    width:260px; height:260px;
    border-radius:50%;
    border:1px solid rgba(201,160,106,.15);
    top:50%; left:50%;
    transform:translate(-50%,-50%);
    pointer-events:none;
}

.about-preview-photo {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
}

.about-preview-text {
    padding:3.2rem 2.8rem;
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.about-preview-text h2 {
    font-family:'Playfair Display',serif;
    font-size:2rem;
    font-weight:700;
    color:var(--navy-deep);
    margin-bottom:1rem;
}
.about-preview-text p {
    font-size:.9rem;
    color:var(--slate);
    line-height:1.8;
    margin-bottom:.9rem;
}

/* ================================================
   FEATURED PUPPIES (index preview)
   ================================================ */
.featured-puppies { /* section padding inherited */ }

/* ================================================
   PUPPY GALLERY & CARDS
   ================================================ */
.gallery {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(290px,1fr));
    gap:1.8rem;
}
.gallery--preview {
    grid-template-columns:repeat(2,1fr) !important;
}

/* Puppy gallery page */
.gallery-page {
    max-width:1200px;
    margin:0 auto;
    padding:3.5rem 2rem 5rem;
}
.gallery-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
    gap:1.4rem;
}
.gallery-item {
    background:var(--white);
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:var(--shadow-sm);
    cursor:pointer;
    transition:transform .25s var(--ease), box-shadow .25s var(--ease);
}
.gallery-item:hover {
    transform:translateY(-4px);
    box-shadow:var(--shadow-md);
}
.gallery-item img {
    width:100%;
    height:220px;
    object-fit:cover;
    display:block;
}

.gallery-lightbox {
    position:fixed;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background:rgba(43,61,79,.6);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    opacity:0;
    visibility:hidden;
    transition:opacity .2s var(--ease), visibility .2s var(--ease);
    z-index:1100;
}
.gallery-lightbox.is-active {
    opacity:1;
    visibility:visible;
}
.gallery-lightbox img {
    max-width:min(92vw, 1000px);
    max-height:82vh;
    object-fit:contain;
    border-radius:16px;
    box-shadow:0 28px 80px rgba(0,0,0,.4);
    transform:scale(1.2);
    transition:transform .2s var(--ease);
    background:rgba(255,255,255,.1);
}
.gallery-lightbox-close {
    position:absolute;
    top:20px;
    right:20px;
    width:40px;
    height:40px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.35);
    background:rgba(255,255,255,.12);
    color:var(--white);
    font-size:1.4rem;
    line-height:1;
    cursor:pointer;
}
.gallery-lightbox-arrow {
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:46px;
    height:46px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.35);
    background:rgba(255,255,255,.12);
    color:var(--white);
    font-size:1.6rem;
    line-height:1;
    cursor:pointer;
}
.gallery-lightbox-prev { left:24px; }
.gallery-lightbox-next { right:24px; }
.gallery-cta {
    text-align:center;
    margin-top:2.4rem;
}

.puppy-card {
    background:var(--white);
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:var(--shadow-sm);
    transition:transform .35s var(--ease), box-shadow .35s var(--ease);
    display:flex;
    flex-direction:column;
}
.puppy-card:hover {
    transform:translateY(-5px);
    box-shadow:var(--shadow-md);
}
.puppy-card.hidden { display:none; }

.puppy-image {
    height:245px;
    background:linear-gradient(148deg, var(--navy-mid) 0%, var(--navy-deep) 100%);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:2.6rem;
    color:rgba(255,255,255,.3);
    position:relative;
    overflow:hidden;
}
/* Subtle bottom fade */
.puppy-image::after {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(180deg, transparent 50%, rgba(43,61,79,.22) 100%);
    pointer-events:none;
}

.puppy-info {
    padding:1.5rem;
    flex:1;
    display:flex;
    flex-direction:column;
}
.puppy-info h3 {
    font-family:'Playfair Display',serif;
    font-size:1.4rem;
    font-weight:700;
    color:var(--navy-deep);
    margin-bottom:.18rem;
}
.puppy-info .breed {
    font-size:.71rem;
    font-weight:600;
    letter-spacing:.7px;
    text-transform:uppercase;
    color:var(--gold);
    margin-bottom:.65rem;
}
.puppy-info .description {
    font-size:.84rem;
    color:var(--slate);
    line-height:1.65;
    margin-bottom:.8rem;
    flex:1;
}

/* Attribute tags */
.puppy-details {
    display:flex;
    flex-wrap:wrap;
    gap:.38rem;
    margin-bottom:.8rem;
}
.puppy-details span {
    font-size:.7rem;
    font-weight:500;
    color:var(--navy-mid);
    background:var(--cream);
    border:1px solid var(--cream-dark);
    padding:.24rem .6rem;
    border-radius:20px;
}

.puppy-info .price {
    font-family:'Playfair Display',serif;
    font-size:1.15rem;
    font-weight:700;
    color:var(--navy-deep);
    margin-bottom:.5rem;
}

.puppy-info .status {
    display:inline-block;
    font-size:.67rem;
    font-weight:600;
    letter-spacing:.6px;
    text-transform:uppercase;
    padding:.26rem .7rem;
    border-radius:20px;
    align-self:flex-start;
}
.puppy-info .status.available {
    background:#d4eedd;
    color:#1a6b35;
}
.puppy-info .status:not(.available) {
    background:rgba(201,160,106,.14);
    color:var(--gold-dim);
}

/* ================================================
   FEATURES / WHY CHOOSE US
   ================================================ */
.features {
    background:var(--navy-deep);
    border-radius:var(--radius);
    padding:4rem 3rem;
    position:relative;
    overflow:hidden;
}

/* Art Deco corner ornaments */
.features::before {
    content:'';
    position:absolute;
    top:22px; left:22px;
    width:38px; height:38px;
    border-top:1.5px solid rgba(201,160,106,.28);
    border-left:1.5px solid rgba(201,160,106,.28);
    pointer-events:none;
}
.features::after {
    content:'';
    position:absolute;
    bottom:22px; right:22px;
    width:38px; height:38px;
    border-bottom:1.5px solid rgba(201,160,106,.28);
    border-right:1.5px solid rgba(201,160,106,.28);
    pointer-events:none;
}

/* Colours on dark */
.features .section-header h2 { color:var(--white); }
.features .section-header p  { color:var(--silver); }
.features .section-header .section-label { color:var(--gold); }
.features .section-header .section-label::before,
.features .section-header .section-label::after { background:var(--gold); }

.features-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:1.4rem;
}

.feature-card {
    background:rgba(255,255,255,.055);
    border:1px solid rgba(255,255,255,.08);
    border-radius:var(--radius);
    padding:1.9rem 1.7rem;
    transition:background .3s, border-color .3s, transform .3s var(--ease);
}
.feature-card:hover {
    background:rgba(255,255,255,.1);
    border-color:rgba(201,160,106,.22);
    transform:translateY(-3px);
}

.feature-icon {
    width:44px; height:44px;
    border-radius:11px;
    background:linear-gradient(135deg, rgba(201,160,106,.22), rgba(201,160,106,.08));
    border:1px solid rgba(201,160,106,.18);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.25rem;
    margin-bottom:.9rem;
}

.feature-card h3 {
    font-family:'Playfair Display',serif;
    font-size:1.1rem;
    font-weight:700;
    color:var(--off-white);
    margin-bottom:.35rem;
}
.feature-card p {
    font-size:.81rem;
    color:var(--silver);
    line-height:1.65;
}

/* ================================================
   CTA STRIP
   ================================================ */
.cta-strip {
    background:linear-gradient(148deg, var(--navy) 0%, var(--navy-deep) 100%);
    border-radius:var(--radius);
    padding:3.8rem 2rem;
    text-align:center;
    position:relative;
    overflow:hidden;
}
/* Radial glow */
.cta-strip::before {
    content:'';
    position:absolute;
    width:360px; height:360px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(201,160,106,.1) 0%, transparent 68%);
    top:-45%; right:-18%;
    pointer-events:none;
}

.cta-strip h2 {
    font-family:'Playfair Display',serif;
    font-size:clamp(1.7rem,3.4vw,2.4rem);
    font-weight:700;
    color:var(--white);
    margin-bottom:.45rem;
    position:relative; z-index:1;
}
.cta-strip p {
    font-size:.9rem;
    color:var(--silver);
    font-weight:300;
    margin-bottom:1.7rem;
    position:relative; z-index:1;
}
.cta-strip .cta-button { position:relative; z-index:1; }

.cta-strip-buttons {
    display:flex;
    gap:.9rem;
    justify-content:center;
    flex-wrap:wrap;
    position:relative; z-index:1;
}
/* Outline variant on dark strip */
.cta-strip .cta-button--outline {
    color:var(--off-white);
    border-color:rgba(232,226,213,.28);
}
.cta-strip .cta-button--outline:hover {
    border-color:var(--gold);
    color:var(--gold);
    background:rgba(201,160,106,.08);
}

/* ================================================
   ABOUT PAGE — full story section
   ================================================ */
.about {
    /* section padding inherited */
}
.about-content {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:3rem;
    align-items:center;
    background:var(--white);
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:var(--shadow-lg);
}

.about-text {
    padding:3rem;
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.about-text h2 {
    font-family:'Playfair Display',serif;
    font-size:2rem;
    font-weight:700;
    color:var(--navy-deep);
    margin-bottom:1rem;
}
.about-text p {
    font-size:.88rem;
    color:var(--slate);
    line-height:1.8;
    margin-bottom:.85rem;
}

.about-image {
    min-height:420px;
    background:linear-gradient(148deg, var(--navy-mid) 0%, var(--navy-deep) 100%);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:3.4rem;
    color:rgba(255,255,255,.3);
    position:relative;
    overflow:hidden;
}
.about-image::before {
    content:'';
    position:absolute;
    width:240px; height:240px;
    border-radius:50%;
    border:1px solid rgba(201,160,106,.15);
    top:50%; left:50%;
    transform:translate(-50%,-50%);
    pointer-events:none;
}

/* ================================================
   PHILOSOPHY GRID  (about page)
   ================================================ */
.philosophy {
    /* section padding */
}
.philosophy-grid {
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
    gap:1.4rem;
}

.philosophy-card {
    background:var(--white);
    border-radius:var(--radius);
    padding:1.7rem;
    box-shadow:var(--shadow-sm);
    border:1px solid transparent;
    transition:border-color .3s, transform .3s var(--ease);
}
.philosophy-card:hover {
    border-color:rgba(201,160,106,.22);
    transform:translateY(-3px);
}
.philosophy-icon { font-size:1.5rem; margin-bottom:.6rem; }

.philosophy-card h3 {
    font-family:'Playfair Display',serif;
    font-size:1.1rem;
    font-weight:700;
    color:var(--navy-deep);
    margin-bottom:.35rem;
}
.philosophy-card p {
    font-size:.81rem;
    color:var(--slate);
    line-height:1.65;
}

/* ================================================
   PARENT DOGS  (about page)
   ================================================ */
.parents-grid {
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1.8rem;
}

.parent-card {
    background:var(--white);
    border-radius:var(--radius);
    overflow:hidden;
    box-shadow:var(--shadow-sm);
    transition:transform .3s var(--ease), box-shadow .3s;
}
.parent-card:hover {
    transform:translateY(-4px);
    box-shadow:var(--shadow-md);
}

.parent-image {
    height:320px;
    background:linear-gradient(148deg, var(--navy-mid) 0%, var(--navy-deep) 100%);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:2.2rem;
    color:rgba(255,255,255,.3);
    overflow:hidden;
    padding:16px;
}

.parent-photo {
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
    display:block;
    border-radius:12px;
    background:rgba(240,236,228,.25);
}

.parent-info { padding:1.5rem; }
.parent-info h3 {
    font-family:'Playfair Display',serif;
    font-size:1.35rem;
    font-weight:700;
    color:var(--navy-deep);
    margin-bottom:.12rem;
}
.parent-info .breed {
    font-size:.69rem;
    font-weight:600;
    letter-spacing:.5px;
    text-transform:uppercase;
    color:var(--gold);
    margin-bottom:.5rem;
}
.parent-info p {
    font-size:.81rem;
    color:var(--slate);
    line-height:1.65;
}

.parents-grid--single {
    grid-template-columns:1fr;
}

.parent-card--featured .parent-image {
    height:420px;
}

.parent-card--baseball {
    border:1px solid rgba(43,61,79,.08);
    background:linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(240,236,228,.9) 100%);
    position:relative;
}
.parent-card--photo {
    border:1px solid rgba(43,61,79,.08);
    background:linear-gradient(180deg, rgba(255,255,255,.92) 0%, rgba(240,236,228,.9) 100%);
    position:relative;
}

/* Parents carousel */
.parents-carousel-layout {
    display:grid;
    grid-template-columns:minmax(280px, 1.1fr) minmax(240px, .9fr);
    gap:1.6rem;
    align-items:stretch;
}
.parents-carousel {
    position:relative;
    background:var(--white);
    border-radius:var(--radius);
    padding:1.1rem;
    box-shadow:var(--shadow-md);
}
.parents-carousel-track {
    position:relative;
    aspect-ratio:1/1;
    width:100%;
    overflow:hidden;
    border-radius:12px;
    background:linear-gradient(148deg, var(--navy-mid) 0%, var(--navy-deep) 100%);
}
.parents-slide {
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:.6rem;
    opacity:0;
    transform:scale(.98);
    transition:opacity .5s var(--ease), transform .5s var(--ease);
}
.parents-slide.is-active {
    opacity:1;
    transform:scale(1);
}
.parents-slide-img {
    width:100%;
    height:100%;
    object-fit:contain;
    object-position:center;
    background:rgba(240,236,228,.2);
    border-radius:12px;
    padding:12px;
}
.parents-slide-caption {
    font-family:'Playfair Display',serif;
    font-size:1rem;
    font-weight:700;
    color:var(--off-white);
    letter-spacing:.3px;
    text-shadow:0 6px 18px rgba(0,0,0,.35);
}
.parents-carousel-dots {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.5rem;
    margin-top:.9rem;
}
.parents-carousel-dots button {
    width:10px;
    height:10px;
    border-radius:50%;
    border:1px solid rgba(43,61,79,.3);
    background:transparent;
    cursor:pointer;
    transition:transform .2s var(--ease), background .2s var(--ease), border-color .2s var(--ease);
}
.parents-carousel-dots button.is-active {
    background:var(--gold);
    border-color:var(--gold);
    transform:scale(1.2);
}

.parents-carousel-arrow {
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:38px;
    height:38px;
    border-radius:50%;
    border:1px solid rgba(43,61,79,.25);
    background:rgba(255,255,255,.9);
    color:var(--navy-deep);
    font-size:1.4rem;
    line-height:1;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transition:transform .2s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease);
    z-index:2;
}
.parents-carousel-prev { left:10px; }
.parents-carousel-next { right:10px; }
.parents-carousel-arrow:hover {
    transform:translateY(-50%) scale(1.05);
    background:var(--white);
    box-shadow:0 8px 18px rgba(43,61,79,.2);
}

.parents-info-card {
    background:var(--white);
    border-radius:var(--radius);
    padding:1.6rem;
    box-shadow:var(--shadow-md);
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.parents-info-card h3 {
    font-family:'Playfair Display',serif;
    font-size:1.6rem;
    font-weight:700;
    color:var(--navy-deep);
    margin-bottom:.5rem;
}
.parents-info-card > p {
    font-size:.88rem;
    color:var(--slate);
    line-height:1.7;
    margin-bottom:1.1rem;
}
.parents-info-list {
    display:grid;
    gap:.9rem;
}
.parents-info-item h4 {
    font-family:'Playfair Display',serif;
    font-size:1.05rem;
    color:var(--navy-deep);
    margin-bottom:.2rem;
}
.parents-info-item p {
    font-size:.82rem;
    color:var(--slate);
    line-height:1.6;
}
.parent-image--tall {
    height:360px;
}
.parent-photo--card {
    border-radius:14px;
    background:rgba(255,255,255,.7);
}
.parent-info--baseball {
    padding:1.2rem 1.5rem 1.6rem;
}
.parent-stats {
    display:flex;
    flex-wrap:wrap;
    gap:.4rem;
    margin-top:.7rem;
}
.parent-stats span {
    font-size:.72rem;
    font-weight:600;
    letter-spacing:.3px;
    color:var(--navy-mid);
    background:rgba(255,255,255,.7);
    border:1px solid var(--cream-dark);
    padding:.28rem .6rem;
    border-radius:999px;
}

.parents-portrait {
    margin:1.6rem auto 2rem;
    background:var(--white);
    border-radius:var(--radius);
    padding:1rem;
    box-shadow:var(--shadow-sm);
    max-width:520px;
}
.parents-portrait-img {
    width:100%;
    height:360px;
    display:block;
    border-radius:12px;
    object-fit:contain;
    background:rgba(240,236,228,.35);
}


/* ================================================
   FILTER BAR  (puppies page)
   ================================================ */
.filter-section {
    padding:1.4rem 2rem 0;
    max-width:1200px;
    margin:0 auto;
}
.filter-bar {
    display:flex;
    justify-content:center;
    gap:.55rem;
    flex-wrap:wrap;
}
.filter-btn {
    font-family:'Source Sans 3',sans-serif;
    font-size:.71rem;
    font-weight:600;
    letter-spacing:.8px;
    text-transform:uppercase;
    color:var(--slate);
    background:var(--white);
    border:1.5px solid var(--cream-dark);
    border-radius:50px;
    padding:.46rem 1.25rem;
    cursor:pointer;
    transition:all .25s var(--ease);
}
.filter-btn:hover {
    border-color:var(--gold);
    color:var(--navy-deep);
}
.filter-btn.active {
    background:var(--navy-deep);
    color:var(--white);
    border-color:var(--navy-deep);
}

/* ================================================
   CONTACT PAGE
   ================================================ */
.contact-page {
    max-width:1200px;
    margin:0 auto;
    padding:3rem 2rem 5rem;
}
.contact-page-grid {
    display:grid;
    grid-template-columns:1.3fr 1fr;
    gap:2.4rem;
    align-items:start;
}

/* Form card */
.contact-form-wrapper {
    background:var(--white);
    border-radius:var(--radius);
    padding:2.5rem;
    box-shadow:var(--shadow-md);
}
.contact-form-wrapper h2 {
    font-family:'Playfair Display',serif;
    font-size:1.8rem;
    font-weight:700;
    color:var(--navy-deep);
    margin-bottom:.28rem;
}
.contact-form-intro {
    font-size:.84rem;
    color:var(--slate);
    margin-bottom:1.7rem;
    line-height:1.65;
}
.contact-form { display:block; }

.form-group { margin-bottom:1.05rem; }
.form-group label {
    display:block;
    font-size:.75rem;
    font-weight:600;
    letter-spacing:.3px;
    color:var(--navy-deep);
    margin-bottom:.32rem;
}
.form-group input,
.form-group select,
.form-group textarea {
    width:100%;
    padding:.7rem .95rem;
    border:1.5px solid var(--cream-dark);
    border-radius:9px;
    font-family:'Source Sans 3',sans-serif;
    font-size:.87rem;
    color:var(--navy-deep);
    background:var(--cream);
    transition:border-color .25s, background .25s;
    appearance:none;
    -webkit-appearance:none;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline:none;
    border-color:var(--gold);
    background:var(--white);
}
.form-group textarea { resize:vertical; min-height:115px; }
.form-group select {
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'%3E%3Cpath fill='%232B3D4F' d='M5 7L1 3h8z'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right .9rem center;
    padding-right:2.1rem;
}

.submit-button {
    width:100%;
    margin-top:.45rem;
    padding:.8rem;
    background:var(--navy-deep);
    color:var(--white);
    border:none;
    border-radius:50px;
    font-family:'Source Sans 3',sans-serif;
    font-size:.73rem;
    font-weight:600;
    letter-spacing:1.3px;
    text-transform:uppercase;
    cursor:pointer;
    transition:all .3s var(--ease);
}
.submit-button:hover {
    background:var(--navy);
    transform:translateY(-2px);
    box-shadow:0 7px 22px rgba(43,61,79,.2);
}

/* Form success */
.form-success { display:none; text-align:center; padding:2.4rem 1rem; }
.form-success.visible { display:block; }
.form-success-icon {
    width:60px; height:60px;
    border-radius:50%;
    background:#d4eedd;
    color:#1a6b35;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:1.6rem;
    margin:0 auto 1rem;
}
.form-success h3 {
    font-family:'Playfair Display',serif;
    font-size:1.6rem;
    font-weight:700;
    color:var(--navy-deep);
    margin-bottom:.3rem;
}
.form-success p {
    font-size:.85rem;
    color:var(--slate);
}

/* Sidebar */
.contact-info-wrapper {
    display:flex;
    flex-direction:column;
    gap:1.4rem;
}
.contact-info-card {
    background:var(--white);
    border-radius:var(--radius);
    padding:1.7rem;
    box-shadow:var(--shadow-sm);
}
.contact-info-card h3 {
    font-family:'Playfair Display',serif;
    font-size:1.2rem;
    font-weight:700;
    color:var(--navy-deep);
    margin-bottom:1rem;
    padding-bottom:.6rem;
    border-bottom:1px solid var(--cream-dark);
}

.contact-detail {
    display:flex;
    gap:.8rem;
    align-items:flex-start;
    margin-bottom:.9rem;
}
.contact-detail:last-child { margin-bottom:0; }
.contact-detail-icon {
    font-size:1.05rem;
    flex-shrink:0;
    width:24px;
    text-align:center;
    padding-top:.08rem;
}
.contact-detail strong {
    display:block;
    font-size:.75rem;
    color:var(--navy-deep);
    margin-bottom:.08rem;
}
.contact-detail p {
    font-size:.79rem;
    color:var(--slate);
    line-height:1.5;
}

/* Steps */
.expect-step {
    display:flex;
    gap:.75rem;
    align-items:flex-start;
    margin-bottom:.8rem;
}
.expect-step:last-child { margin-bottom:0; }
.expect-number {
    flex-shrink:0;
    width:26px; height:26px;
    border-radius:50%;
    background:linear-gradient(135deg,var(--gold),var(--gold-dim));
    color:var(--white);
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:.68rem;
    font-weight:700;
}
.expect-step strong {
    display:block;
    font-size:.75rem;
    color:var(--navy-deep);
    margin-bottom:.08rem;
}
.expect-step p {
    font-size:.77rem;
    color:var(--slate);
    line-height:1.5;
}

/* ================================================
   FOOTER
   ================================================ */
footer {
    background:var(--navy-deep);
    color:rgba(255,255,255,.48);
    text-align:center;
    padding:2.6rem 2rem;
    margin-top:1rem;
}
footer p { font-size:.77rem; margin-bottom:.35rem; }

.social-links {
    margin-top:1rem;
    display:flex;
    gap:1.3rem;
    justify-content:center;
}
.social-links a {
    font-size:.73rem;
    font-weight:500;
    letter-spacing:.5px;
    color:var(--gold);
    transition:color .25s;
}
.social-links a:hover { color:var(--white); }

/* ================================================
   SCROLL REVEAL
   ================================================ */
.fade-in {
    opacity:0;
    transform:translateY(22px);
    transition:opacity .7s var(--ease), transform .7s var(--ease);
}
.fade-in.visible {
    opacity:1;
    transform:translateY(0);
}

/* ================================================
   RESPONSIVE
   ================================================ */
@media(max-width:900px){
    .contact-page-grid      { grid-template-columns:1fr; }
    .parents-grid           { grid-template-columns:1fr; }
    .gallery--preview       { grid-template-columns:1fr !important; }
    .about-content          { grid-template-columns:1fr; }
    .about-image            { min-height:260px; }
    .about-preview-content  { grid-template-columns:1fr; }
    .about-preview-image    { min-height:260px; }
    .parents-carousel-layout{ grid-template-columns:1fr; }
}

@media(max-width:768px){
    .nav-toggle { display:flex; }

    .nav-links {
        display:none;
        flex-direction:column;
        position:absolute;
        top:var(--nav-h);
        left:0; right:0;
        background:rgba(240,236,228,.96);
        backdrop-filter:blur(16px);
        padding:1.3rem 0;
        gap:0;
        box-shadow:0 8px 22px rgba(43,61,79,.1);
    }
    .nav-links.open { display:flex; }
    .nav-links li   { padding:.75rem 2rem; }
    .nav-links a::after { display:none; }

    .about-preview-text { padding:2rem; }
    .about-text         { padding:2rem; }

    section { padding:3rem 1.25rem; }

    .features  { padding:2.2rem 1.25rem; }
    .philosophy{ padding:2.2rem 1.25rem; }

    .contact-form-wrapper { padding:1.5rem; }

    .gallery { grid-template-columns:1fr; }
    .gallery-grid { grid-template-columns:1fr; }

    .cta-strip-buttons {
        flex-direction:column;
        align-items:center;
    }
}
