.hero,
.sections,
.feature,
.two-up,
.mini-gallery,
.testimonials,
.final-cta,
.contact {
    padding: 6vh 5vw;
}

.sections { padding-top: 4vh; }

.hero {
    position: relative;
    background:
        linear-gradient(to bottom, rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0.2)),
        url("/static/Madcakes/imgs/banner.jpg") center/cover no-repeat;
    color: #fff;
    text-align: center;
    border-radius: 16px;
}

.hero__inner {
    max-width: 900px;
    margin: 0 auto;
}

.hero h1 {
    margin: 0 0 0.5rem 0;
    font-size: clamp(2rem, 3.5vw, 3rem);
    color: #fff !important;
}

.hero p {
    margin: 0.25rem 0 0.75rem 0;
    line-height: 1.6;
    color: #fff !important;
}

.hero__contact a {
    color: #fff;
    text-decoration: underline;
}

.hero__cta {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 1rem;
}

.btn {
    display: inline-block;
    padding: 0.8rem 1.2rem;
    border-radius: 14px;
    background: #c9a15b;
    color: #fff;
    font-weight: 700;
    border: 1px solid transparent;
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
    transition: filter .15s ease, background .15s ease, transform .15s ease;
}

.btn:hover { filter: brightness(0.95); }

.btn--ghost {
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255,255,255,.55);
    box-shadow: none;
}

.btn--ghost:hover {
    filter: none;
    background: rgba(255,255,255,.12);
}

.btn--ghost-dark {
    color: #3b2a26;
    border: 1px solid #e8dccb;
}

.btn--ghost-dark:hover {
    background: #fff7ec;
}

.sections__title {
    text-align: center;
    margin: 0 0 1.25rem 0;
}

.grid {
    display: grid;
    gap: 1.25rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 1024px) {
    .grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 640px) {
    .grid { grid-template-columns: 1fr; }
}

.card {
    display: block;
    background: #fff;
    border: 1px solid #e8dccb;
    border-radius: 16px;
    overflow: hidden;
    color: inherit;
    text-align: center;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08);
}

.card img {
    width: 100%;
    height: 280px;
    object-fit: cover;
    display: block;
}

.card h3 { margin: 0.9rem 0 1.1rem 0; }

.feature__inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    gap: 2rem;
    grid-template-columns: 1.1fr 0.9fr;
    align-items: center;
    background: #fff;
    border: 1px solid #e8dccb;
    border-radius: 20px;
    padding: clamp(1.25rem, 3vw, 2rem);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.05);
}

.feature__text h2 {
    margin: 0 0 0.75rem 0;
    font-size: clamp(1.6rem, 2.8vw, 2.2rem);
    color: #3b2a26;
}

.feature__text p {
    margin: 0 0 1rem 0;
    line-height: 1.7;
    font-size: 1.08rem;
    color: #3b2a26;
}

.ticks {
    list-style: none;
    padding: 0;
    margin: 0 0 1.25rem 0;
    display: grid;
    gap: 0.6rem;
}

.ticks li {
    position: relative;
    padding-left: 1.6rem;
    line-height: 1.5;
    color: #3b2a26;
}

.ticks li::before {
    content: "✓";
    position: absolute;
    left: 0;
    top: 0;
    color: #c9a15b;
    font-weight: 900;
}

.feature__buttons {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.feature__media img {
    width: 100%;
    height: 420px;
    object-fit: cover;
    border-radius: 16px;
    border: 1px solid #e8dccb;
    display: block;
}

.two-up { padding-top: 2vh; }

.two-up__inner {
    max-width: 1100px;
    margin: 0 auto;
    display: grid;
    gap: 1.25rem;
    grid-template-columns: 1fr 1fr;
    align-items: stretch;
}

.panel {
    position: relative;
    background: #fff;
    border: 1px solid #e8dccb;
    border-radius: 20px;
    box-shadow: 0 8px 24px rgba(0,0,0,.05);
    overflow: hidden;
}

.panel::before{
    content:"";
    position:absolute;
    left:0; right:0; top:0;
    height:6px;
    background: linear-gradient(90deg, #c9a15b, #ff66c4);
    opacity: .9;
    z-index: 1;
}

.award__inner {
    padding: clamp(1.25rem, 3vw, 2rem);
    text-align: center;
}

.award__inner h2 {
    margin: 0 0 0.5rem 0;
    font-size: clamp(1.4rem, 2.6vw, 1.9rem);
    color: #3b2a26;
}

.award__inner p {
    margin: 0 0 1rem 0;
    font-size: 1.05rem;
    line-height: 1.6;
    color: #3b2a26;
}

.award__inner a {
    color: #3b2a26;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.award__inner img {
    width: 250px;
    max-width: 70vw;
    display: block;
    margin: 0.5rem auto 0;
    filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.05));
}

.panel--party{
    border: 2px solid rgba(255, 102, 196, 0.35);
    box-shadow: 0 10px 26px rgba(0,0,0,.06), 0 0 0 6px rgba(255,102,196,.06);
}

.party__inner{
    position: relative;
    padding: clamp(1.25rem, 3vw, 2rem);
    min-height: 320px;
    display: grid;
    align-content: center;
    gap: .75rem;
    text-align: center;
    isolation: isolate;
}

.party__inner h2 {
    margin: 0 0 0.75rem 0;
    font-size: clamp(1.5rem, 3vw, 2rem);
    color: #3b2a26;
}

.party__inner p {
    margin: 0 0 1rem 0;
    font-size: 1.1rem;
    line-height: 1.6;
    color: #3b2a26;
}

.party__inner a { color: #3b2a26; }

.party-decor{
    position:absolute;
    inset:0;
    pointer-events:none;
    opacity: .95;
    z-index: 0;
}

.party-decor__img{
    position:absolute;
    width: 78px;
    height: 78px;
    object-fit: cover;
    border-radius: 16px;
    border: 2px solid rgba(255, 255, 255, .92);
    box-shadow: 0 10px 20px rgba(0,0,0,.12);
    transform: rotate(var(--r, 0deg));
    filter: saturate(1.05);
}

.party-content{
    position: relative;
    z-index: 2;
}

.party-content .btn{
    position: relative;
    z-index: 3;
}

.party-decor__img.img--1{ top: 16px; left: 16px;  --r:-6deg; }
.party-decor__img.img--2{ top: 16px; right: 16px; --r: 7deg; }
.party-decor__img.img--3{ bottom: 22px; left: 22px; --r: 6deg; }
.party-decor__img.img--4{ bottom: 22px; right: 22px; --r:-7deg; }

.mini-gallery__inner {
    max-width: 1100px;
    margin: 0 auto;
    text-align: center;
}

.mini-gallery__inner h2 {
    margin: 0 0 0.5rem 0;
    color: #3b2a26;
}

.mini-gallery__sub {
    max-width: 750px;
    margin: 0 auto 1.5rem auto;
    line-height: 1.6;
    font-size: 1.05rem;
    color: #3b2a26;
}

.mini-gallery__grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, 1fr);
}

.mini-gallery__grid img {
    width: 100%;
    height: 260px;
    object-fit: cover;
    border-radius: 18px;
    border: 1px solid #e8dccb;
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.06);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.mini-gallery__grid img:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(0, 0, 0, 0.08);
}

.testimonials {
    background: #fff7ec;
    border-top: 1px solid #e8dccb;
    border-bottom: 1px solid #e8dccb;
}

.testimonials__inner {
    max-width: 1100px;
    margin: 0 auto;
}

.testimonials h2 {
    text-align: center;
    margin: 0 0 1.5rem 0;
    color: #3b2a26;
}

.testimonials__grid {
    display: grid;
    gap: 1rem;
    grid-template-columns: repeat(3, 1fr);
}

.quote {
    background: #fff;
    border: 1px solid #e8dccb;
    border-radius: 18px;
    padding: 1.25rem;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.05);
}

.quote p {
    margin: 0 0 0.75rem 0;
    font-size: 1.05rem;
    line-height: 1.6;
    color: #3b2a26;
}

.quote span {
    display: block;
    opacity: 0.8;
    font-size: 0.95rem;
    color: #3b2a26;
}

.final-cta__inner {
    max-width: 1100px;
    margin: 0 auto;
    text-align: center;
    background: linear-gradient(to bottom, #fff, #fff7ec);
    border: 1px solid #e8dccb;
    border-radius: 22px;
    padding: clamp(1.5rem, 4vw, 2.5rem);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.06);
}

.final-cta__inner h2 {
    margin: 0 0 0.75rem 0;
    font-size: clamp(1.7rem, 3vw, 2.3rem);
    color: #3b2a26;
}

.final-cta__inner p {
    max-width: 780px;
    margin: 0 auto 1.25rem auto;
    line-height: 1.7;
    font-size: 1.08rem;
    color: #3b2a26;
}

.final-cta__buttons {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    flex-wrap: wrap;
}

.contact { text-align: center; }

.contact h2 {
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    margin-bottom: 1rem;
    color: #3b2a26;
}

.contact__details {
    font-size: 1.1rem;
    line-height: 1.6;
    background: #fff;
    border: 1px solid #e8dccb;
    border-radius: 14px;
    padding: 1.5rem;
    max-width: 700px;
    margin: 0 auto 2rem auto;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
    color: #3b2a26;
}

.contact .map iframe { border-radius: 12px; }

a:focus-visible,
.btn:focus-visible {
    outline: 3px solid #c9a15b;
    outline-offset: 3px;
}

@media (max-width: 950px) {
    .feature__inner { grid-template-columns: 1fr; }
    .feature__media img { height: 320px; }

    .two-up__inner { grid-template-columns: 1fr; }

    .mini-gallery__grid { grid-template-columns: 1fr; }
    .mini-gallery__grid img { height: 240px; }

    .testimonials__grid { grid-template-columns: 1fr; }

    .party__inner { min-height: unset; }

    .party-decor__img{
        width: 62px;
        height: 62px;
        opacity: .75;
    }
}
