/* =========================
   GLOBAL STRUCTURE
========================= */


.body_part {
    display: flex;
    min-height: 100vh;
}

.main {
    width: 80%;
    min-height: 100vh;

    display: flex;
    flex-direction: column;
    justify-content: center;

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    transition: background-image 1.5s ease-in-out;
}



/* =========================
   INTRODUCTION / HERO
========================= */

.introduction {
    margin-top: 40px;
    margin-bottom: 30px;
}

.hero-title {
    font-family: 'Playfair Display', serif;
    font-size: 2.4rem;
    font-weight: lighter;

    text-align: center;

    color: #D8CF82 !important;
	
    font-style: normal; /* removes italics completely */

    letter-spacing: 0.03em;

    margin-bottom: 10vh;  /* IMPORTANT spacing below title */

    white-space: nowrap;
}

.hero-text {
    font-family: 'Playfair Display', serif;

    text-align: center;

    max-width: 750px;
    width: 90%;
    margin: 0 auto;

    font-size: 1.2rem;
	font-weight: lighter;
	opacity: 0.9;
	letter-spacing: 0.2px;
    line-height: 1.6;

    color: #ffffff !important;

    white-space: normal;
    overflow-wrap: break-word;

    transition: opacity 1s ease-in-out;

    /* limit to 3 lines */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}


/* =========================
   BUTTON SECTION
========================= */

.buttons {
    display: flex;
    padding: 8vh 12vh;
    justify-content: space-between;
}

.ob a,
.memory a,
.charity a {
    font-family: 'Playfair Display', serif;
    text-decoration: none;

    display: inline-block;

    color: #dfcd81;
    border-: 1px solid #dfcd81;
    border: 1px solid rgba(223, 205, 129, 0.3);

    padding: 6px 17px;
    font-size: 1.125rem;

    background-color: transparent;

    cursor: pointer;
    border-radius: 5px;

    transition: 0.5s;
}

.ob a:hover,
.memory a:hover,
.charity a:hover {
    border: 1px solid #294b27;
    background-color: #294b27;
}


/* =========================
   AIM SECTION
========================= */

.aim h1,
.aim p {
    color: #dfcd81;
    text-align: center;
	
}

.aim h1 {
    font-family: Arial, Helvetica, sans-serif;
    font-size: 3rem;
    font-weight: lighter;
    padding-bottom: 1vh;
}

.aim p {
    font-family: 'Playfair Display', serif;
    font-size: 1.2rem;
    line-height: 1.8;

	padding: 0 40px;
	
    color: #adb1ad;

    padding-top: 1vh;
    padding-bottom: 6vh;
}


/* =========================
   ASIDE SECTION (UPDATED)
========================= */

.aside {
    width: 20%;
    text-align: center;
    color: #dfcd81;
}

/* Title */
.aside-title {
    font-family: 'Playfair Display', serif;
    font-size: 1.2rem;
	font-style: normal;
    margin-bottom: 10px;
}

/* =========================
   TABS (MODERN STYLE)
========================= */

.nav-tabs {
    display: flex;
    justify-content: center;

    border-bottom: 2px solid rgba(216, 207, 130, 0.2);
    margin-bottom: 20px;

    padding: 0;
}

/* REMOVE DOTS (your issue) */
.nav-tabs li {
    list-style: none;
}

/* Tab links */
.nav-tabs a {
    display: flex;
    align-items: center;
    gap: 8px;

    padding: 10px 18px;

    text-decoration: none;

    color: #888;
    font-weight: 600;

    border-bottom: 3px solid transparent;

    transition: all 0.3s ease;
}

/* Active tab */
.nav-tabs a.active {
    color: #384E2D;
    border-bottom: 3px solid #384E2D;
}

/* Hover */
.nav-tabs a:hover {
    color: #ffffff;
}

/* Icons */
.nav-tabs i {
    font-size: 0.9rem;
}

/* =========================
   OBITUARY LIST & TABS
========================= 

.tab-pane {
    display: none; /* Hidden by default, JS will set to flex 
    flex-direction: column;
    align-items: center;
    width: 100%;
}

.theDead {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 10px;
    margin-bottom: 10px;
    border-bottom: 1px solid #eee;
    /* Removed opacity: 0 to ensure they are visible 
    opacity: 1; 
    transform: none;
    filter: none;
}

.photoSection img {
    width: 70px;
    height: 80px;
    object-fit: cover;
    border-radius: 4px;
    margin-right: 15px;
}

.nameSection {
    display: flex;
    flex-direction: column;
    font-family: sans-serif;
}

/* Styles for your custom JS tags *
theLate {
    font-size: 0.7rem;
    color: #666;
    text-transform: uppercase;
}

obNames {
    font-weight: bold;
    font-size: 1rem;
    color: #294b27;
}

livedYears {
    font-size: 0.85rem;
    color: #444;
    margin-bottom: 8px;
}

visitPage {
    margin-top: 5px;
}

/* =========================
   PAGINATION
========================= *

.pagination {
    display: flex;
    justify-content: center;
    padding: 0;
    margin-top: 15px;
    list-style: none; /* Removes the dots *
}

#prevButtonOb,
#nextButtonOb {
    background-color: #294b27;
    border: none;
    color: #dfcd81;
    padding: 6px 20px;
    margin: 0 8px;
    font-size: 0.75rem;
    border-radius: 4px;
    cursor: pointer;
    transition: 0.3s;
}

#prevButtonOb:hover,
#nextButtonOb:hover {
    background-color: #384E2D;
}
*/
/* =========================
   OBITUARY LIST SECTION
========================= */
.tab-pane {
    height: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-bottom: 10px;
}

.theDead {
    width: 12vw;
    height: 24vh;
    align-items: center;
    margin: 5px auto;
    background-color: rgba(100, 100, 100, 0.3);
    border-radius: 4px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    /* Removed opacity: 0 and blur to ensure visibility */
}

.photoSection {
    width: 100%;
    height: 52%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 5px;
}

.photoSection img {
    width: 5.5vw;
    height: 11.3vh;
    border-radius: 50%;
    color: #dfcd81;
    object-fit: cover; /* Ensures photos don't stretch */
}

.nameSection {
    width: 100%;
    height: 48%;
    font-size: 10px;
    display: flex;
    flex-direction: column;
    align-items: center; /* Center text inside namesection */
    text-align: center;
}

obNames {
    font-size: 0.72vw;
    display: block;
}

theLate, livedYears {
    color: whitesmoke;
    display: block;
}

livedYears {
    padding-bottom: 5px;
}

visitPage {
    margin-top: 8px;
    display: block;
}

/* Fix for the hover background color */
visitPage a:hover {
    background-color: #f2e797 !important; 
    transition: 0.3s;
}

/* =========================
   PAGINATION
========================= */
ul {
    list-style-type: none;
    padding: 0;
}

.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 15px;
}

#prevButtonOb, #nextButtonOb {
    background-color: #294b27;
    border: none;
    color: #dfcd81;
    padding: 5px 22px;
    text-align: center;
    text-decoration: none;
    display: inline-block;
    font-size: 10px;
    margin: 0px 10px;
    border-radius: 3px;
    cursor: pointer;
}

#prevButtonOb:hover, #nextButtonOb:hover {
    background-color: #384E2D;
}

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

.core-services {
    width: 100%;
    padding: 10vh 8vw;

    text-align: center;
}

/* Section title */
.core-title {
    font-family: 'Playfair Display', serif;
    font-size: 2.2rem;
    font-weight: 400;

  	color: white;

    margin-bottom: 6vh;
    letter-spacing: 0.04em;
}

/* =========================
   CARDS CONTAINER (FIXED)
========================= */

.service-cards {
    display: flex;
    justify-content: center;
    align-items: stretch;

    gap: 30px;

    flex-wrap: wrap;
}

/* =========================
   INDIVIDUAL CARD
========================= */

.service-card {
    flex: 1 1 280px;
    max-width: 340px;
    min-width: 280px;

    background: rgba(255, 255, 255, 0.03);

    -border: 1px solid rgba(216, 207, 130, 0.25);
	border: 1px solid #384E2D;
    border-radius: 18px;

    padding: 28px 22px;

    text-align: center;

    position: relative;
    overflow: hidden;

    backdrop-filter: blur(6px);

    transition: all 0.5s ease;

    /* Scroll reveal base state */
    opacity: 0;
    transform: translateY(35px);
    filter: blur(6px);
}

/* Scroll reveal active state */
.service-card.reveal {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
}

/* =========================
   HEADER (ICON + TITLE)
========================= */

.service-header {
    font-family: 'Playfair Display', serif;
    font-style: normal;
    font-size: 1.4rem;
    font-weight: 500;

    color: #D8CF82;

    margin-bottom: 18px;

    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;

    letter-spacing: 0.02em;
}

/* icon */
.icon {
    font-size: 1.2rem;
    line-height: 1;
}

/* =========================
   TEXT CONTENT
========================= */

.service-card p {
    font-family: 'Playfair Display', serif;

    font-size: 1rem;
    line-height: 1.7;

    color: #D8CF82;

    opacity: 0.9;

    padding: 10px 8px;
}

/* =========================
   HOVER EFFECT (SOFT GLOW)
========================= */

.service-card:hover {
    transform: translateY(-8px);

    border: 1px solid rgba(216, 207, 130, 0.55);

    box-shadow:
        0 10px 25px rgba(0, 0, 0, 0.35),
        0 0 25px rgba(216, 207, 130, 0.18);
}

/* glow overlay */
.service-card::after {
    content: "";
    position: absolute;
    inset: 0;

    background: radial-gradient(
        circle at top center,
        rgba(216, 207, 130, 0.10),
        transparent 65%
    );

    opacity: 0;
    transition: opacity 0.4s ease;

    pointer-events: none;
}

.service-card:hover::after {
    opacity: 1;
}

/* =========================
   SOFT BREATHING EFFECT
   (applies AFTER reveal only)
========================= */

@keyframes memoryBreath {
    0% {
        box-shadow: 0 0 18px rgba(216, 207, 130, 0.08);
    }

    50% {
        box-shadow: 0 0 28px rgba(216, 207, 130, 0.14);
    }

    100% {
        box-shadow: 0 0 18px rgba(216, 207, 130, 0.08);
    }
}

/* apply breathing ONLY when revealed */
.service-card.reveal {
    animation: memoryBreath 6s ease-in-out infinite;
}

/* stagger breathing (subtle timing difference) */
.service-card:nth-child(1).reveal {
    animation-delay: 0s;
}

.service-card:nth-child(2).reveal {
    animation-delay: 2s;
}

.service-card:nth-child(3).reveal {
    animation-delay: 4s;
}

/* Ensure navbar is always clickable */
nav, header {
    position: relative;
    z-index: 9999;
}
/*=======================
   RESPONSIVE DESIGN
========================= */

@media only screen and (max-width: 900px) {
    .service-cards {
        flex-direction: column;
        align-items: center;
    }

    .service-card {
        width: 90%;
        max-width: 500px;
    }
}

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

@media only screen and (max-width: 600px) {

    .body_part {
        flex-direction: column;
    }

    .main {
        width: 90%;
        min-height: 70vh;
        margin: auto;
    }

    .hero-title {
        font-size: 1.6rem;
        white-space: normal;
    }

    .hero-text {
        font-size: 1rem;
        max-width: 95%;
    }

    .buttons {
        padding: 3vh 0;
        flex-direction: column;
        gap: 10px;
        align-items: center;
    }

    .aside {
        display: none;
    }

	.core-services {
    padding: 8vh 5vw;
	}

	.service-cards {
		flex-direction: column;
		align-items: center;
		gap: 20px;
	}

	.service-card {
		width: 100%;
		max-width: 95%;
	}
}