/* GENERATED by tools/build-css.py from css/*.css: do not edit this file directly. */

/* --- icons.css --- */
@font-face {
    font-family: "Font Awesome 6 Free";
    font-style: normal;
    font-weight: 900;
    font-display: block;
    src: url("/assets/fonts/fa-solid-subset.woff2") format("woff2");
}
@font-face {
    font-family: "Font Awesome 6 Brands";
    font-style: normal;
    font-weight: 400;
    font-display: block;
    src: url("/assets/fonts/fa-brands-subset.woff2") format("woff2");
}
.fa, .fas, .fa-solid, .fab, .fa-brands {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    display: inline-block;
    font-style: normal;
    font-variant: normal;
    line-height: 1;
    text-rendering: auto;
}
.fa, .fas, .fa-solid {
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
}
.fab, .fa-brands {
    font-family: "Font Awesome 6 Brands";
    font-weight: 400;
}
.fa-archway:before { content: "\f557"; }
.fa-arrow-right:before { content: "\f061"; }
.fa-birthday-cake:before { content: "\f1fd"; }
.fa-building:before { content: "\f1ad"; }
.fa-building-columns:before { content: "\f19c"; }
.fa-calculator:before { content: "\f1ec"; }
.fa-calendar-check:before { content: "\f274"; }
.fa-camera:before { content: "\f030"; }
.fa-champagne-glasses:before { content: "\f79f"; }
.fa-check:before { content: "\f00c"; }
.fa-child:before { content: "\f1ae"; }
.fa-clock:before { content: "\f017"; }
.fa-compass:before { content: "\f14e"; }
.fa-couch:before { content: "\f4b8"; }
.fa-cube:before { content: "\f1b2"; }
.fa-dice:before { content: "\f522"; }
.fa-envelope:before { content: "\f0e0"; }
.fa-font:before { content: "\f031"; }
.fa-gem:before { content: "\f3a5"; }
.fa-gift:before { content: "\f06b"; }
.fa-google:before { content: "\f1a0"; }
.fa-hands-helping:before { content: "\f4c4"; }
.fa-heart:before { content: "\f004"; }
.fa-home:before { content: "\f015"; }
.fa-image:before { content: "\f03e"; }
.fa-layer-group:before { content: "\f5fd"; }
.fa-location-dot:before { content: "\f3c5"; }
.fa-map-location-dot:before { content: "\f5a0"; }
.fa-map-marker-alt:before { content: "\f3c5"; }
.fa-map-pin:before { content: "\f276"; }
.fa-masks-theater:before { content: "\f630"; }
.fa-palette:before { content: "\f53f"; }
.fa-paper-plane:before { content: "\f1d8"; }
.fa-phone:before { content: "\f095"; }
.fa-plus:before { content: "\2b"; }
.fa-quote-left:before { content: "\f10d"; }
.fa-scroll:before { content: "\f70e"; }
.fa-search:before { content: "\f002"; }
.fa-sign-hanging:before { content: "\f4d9"; }
.fa-star:before { content: "\f005"; }
.fa-tag:before { content: "\f02b"; }
.fa-tree:before { content: "\f1bb"; }
.fa-truck:before { content: "\f0d1"; }
.fa-users:before { content: "\f0c0"; }
.fa-utensils:before { content: "\f2e7"; }
.fa-wand-magic-sparkles:before { content: "\e2ca"; }
.fa-whatsapp:before { content: "\f232"; }
.fa-instagram:before { content: "\f16d"; }
.fa-tiktok:before { content: "\e07b"; }
.fa-wine-glass:before { content: "\f4e3"; }

/* --- style.css --- */
.container {
    max-width: 1240px;
    margin: 0 auto;
    padding: 1rem;
}
.hero {
    height: 100vh;
    background: #2b2b2b;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.hero-photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 70% center;
}
.hero-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.45);
}
.hero-content {
    position: relative;
    z-index: 2;
    max-width: 800px;
    padding: 0 20px;
    color: white;
}
.hero-title {
    font-family: var(--ff-secondary);
    font-size: 3.5rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    line-height: 1.2;
}
.hero-subtitle {
    font-family: var(--ff-primary);
    font-size: 1.25rem;
    margin-bottom: 1.5rem;
    opacity: 0.9;
    line-height: 1.6;
    color: var(--clr-secondary-cream);
}
.hero-usp {
    font-size: 1.5rem;
    margin-bottom: 2.5rem;
    color: var(--clr-secondary-red);
    font-weight: 500;
    font-style: italic;
}
.hero .hero-usp,
.hero-options .hero-usp {
    color: #ffcdd2;
}
.hero-stats {
    display: flex;
    gap: 1.5rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 1.5rem;
    font-family: var(--ff-primary);
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.85);
}
.hero-stats strong {
    color: white;
    font-weight: 700;
}
.hero-stats span {
    display: flex;
    align-items: center;
    gap: 0.3rem;
}
.hero-stats span+span::before {
    content: "·";
    margin-right: 1rem;
    opacity: 0.5;
}
.hero-usp span {
    display: block;
    margin-top: 0.5rem;
    font-size: 1.2rem;
    color: var(--clr-secondary-cream);
}
.hero-cta {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
}
.cta-primary,
.cta-secondary {
    padding: 1rem 2rem;
    border-radius: 50px;
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
    font-size: 1.1rem;
}
.cta-primary {
    background: var(--clr-primary-red);
    color: white;
}
.cta-primary:hover {
    background: var(--clr-primary-red-dark);
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(198, 40, 40, 0.28);
}
.cta-secondary {
    background: transparent;
    color: white;
    border: 2px solid white;
}
.cta-secondary:hover {
    background: var(--clr-primary-red);
    color: var(--clr-secondary-cream);
    transform: translateY(-3px);
}
.services {
    padding: 6rem 0;
    background: var(--clr-surface-warm);
}
.services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 2rem;
}
.service-card {
    background: #ffffff;
    border-radius: 20px;
    text-align: left;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}
.service-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.14);
}
.service-card-body {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 1rem;
}
.service-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #1a237e, #3949ab);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 1.5rem;
    color: var(--clr-accent-red);
    font-size: 2rem;
}
.event-type {
    color: var(--clr-primary-navy);
    margin-bottom: 0.6rem;
    font-family: var(--ff-secondary);
    font-size: clamp(14px, 1.8vw, 17px);
    font-weight: 500;
    display: inline-block;
}
.event-description {
    font-family: var(--ff-primary);
    font-size: 0.98rem;
    font-weight: 300;
    line-height: 1.6;
}
.price {
    display: inline-block;
    background: var(--clr-accent-red);
    color: #fff;
    padding: 0.2rem 0.8rem;
    border-radius: 50px;
    font-size: 0.85rem;
    font-weight: 700;
    margin: 0;
    align-self: flex-start;
}
.service-card a.cta-secondary {
    display: inline-flex;
    justify-content: center;
    width: 100%;
    padding: 0.8rem 0.9rem;
    margin-top: auto;
    color: var(--clr-primary-navy);
    border-color: var(--clr-primary-navy);
    font-size: 0.95rem;
}
.service-card a.cta-secondary:hover {
    background: var(--clr-primary-navy);
    color: white;
    border-color: var(--clr-primary-navy);
}
.hero-usp span {
    display: inline-block;
    margin: 0.5rem 0.75rem;
}
.why-choose {
    padding: 5.5rem 0;
    background: #fff;
}
.why-choose .section-header .eyebrow {
    margin-bottom: 0.4rem;
    font-size: 0.8rem;
}
.why-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 380px);
    gap: 2.5rem;
    align-items: center;
    margin-top: 2.5rem;
}
.why-grid {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}
.why-card {
    padding: 1.5rem;
    border-radius: 18px;
    background: var(--clr-surface-warm);
    display: grid;
    gap: 0.55rem;
    align-content: start;
}
.why-card > i {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    background: #fff;
    color: var(--clr-gold-text) !important;
    font-size: 1.15rem;
    box-shadow: 0 2px 8px rgba(26, 35, 126, 0.08);
}
.why-card h3 {
    margin: 0.35rem 0 0;
    font-family: var(--ff-secondary);
    font-size: 1.25rem;
    line-height: 1.25;
    color: var(--clr-primary-navy);
}
.why-card p {
    margin: 0;
    font-size: 0.97rem;
    line-height: 1.6;
    color: #444;
}
.why-photo {
    margin: 0;
}
.why-photo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    border-radius: 20px;
    background: var(--clr-placeholder);
}
.why-photo figcaption {
    margin-top: 0.6rem;
    font-size: 0.85rem;
    color: #555;
    text-align: center;
}
.why-proof {
    list-style: none;
    margin: 2.5rem 0 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
}
.why-proof a {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1.1rem;
    border-radius: 50px;
    border: 1px solid rgba(26, 35, 126, 0.15);
    color: var(--clr-primary-navy);
    font-weight: 600;
    font-size: 0.92rem;
    text-decoration: none;
    transition: background 0.2s ease, border-color 0.2s ease;
}
.why-proof a:hover,
.why-proof a:focus-visible {
    background: var(--clr-surface-warm);
    border-color: var(--clr-gold);
}
.why-proof .fas {
    color: var(--clr-gold-text) !important;
}
@media (max-width: 900px) {
    .why-layout {
        grid-template-columns: 1fr;
    }
    .why-photo {
        max-width: 420px;
        margin: 0 auto;
    }
}
@media (max-width: 600px) {
    .why-choose {
        padding: 3.5rem 0;
    }
    .why-grid {
        grid-template-columns: 1fr;
    }
    .why-photo img {
        aspect-ratio: 4 / 3;
    }
    .why-proof {
        justify-content: flex-start;
    }
}
.service-areas {
    padding: 6rem 0;
    background: #f8f9ff;
}
.areas-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1.5rem;
}
.area-card {
    background: white;
    padding: 2rem;
    border-radius: 15px;
    text-align: center;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
}
.area-card.featured {
    background: linear-gradient(135deg, #1a237e, #3949ab);
    color: white;
    transform: scale(1.05);
}
.area-card:hover:not(.featured) {
    transform: translateY(-5px);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}
.area-card i {
    font-size: 2.5rem;
    color: var(--clr-accent-red);
    margin-bottom: 1rem;
}
.area-card.featured i {
    color: var(--clr-accent-red);
}
.area-card h3 {
    font-family: var(--ff-secondary);
    color: #1a237e;
    margin-bottom: 0.5rem;
}
.area-card.featured h3 {
    color: white;
}
.area-card p {
    color: #666;
    font-size: 0.9rem;
}
.area-card.featured p {
    color: rgba(255, 255, 255, 0.9);
}
.process {
    padding: 6rem 0;
    background: #f8f9ff;
}
.process-steps {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap;
}
.step {
    text-align: center;
    max-width: 300px;
    background: white;
    padding: 2.5rem 2rem;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
}
.step:hover {
    transform: translateY(-10px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15);
}
.step-number {
    width: 80px;
    height: 80px;
    background: var(--clr-primary-red);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    font-weight: bold;
    color: white;
    margin: 0 auto 1.5rem;
}
.step h3 {
    font-family: var(--ff-secondary);
    color: #1a237e;
    font-size: 1.5rem;
    margin-bottom: 1rem;
}
.step p {
    color: #666;
    line-height: 1.6;
}
.step-arrow {
    font-size: 2rem;
    color: var(--clr-accent-red);
    display: flex;
    align-items: center;
}
.contact {
    padding: 6rem 0;
    background: linear-gradient(135deg, #1a237e 0%, #3949ab 100%);
    color: white;
}
.contact h3 {
    color: var(--clr-primary-navy);
    font-family: var(--ff-secondary);
    font-size: 2.5rem;
    margin-bottom: 1rem;
}
.contact-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: start;
}
.contact-info h3 {
    font-family: var(--ff-secondary);
    font-size: 2.5rem;
    margin-bottom: 1rem;
}
.contact-info>p {
    font-size: 1.1rem;
    margin-bottom: 2.5rem;
    opacity: 0.9;
}
.contact-form-container {
    background: white;
    border-radius: 20px;
    padding: 2.5rem;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}
.contact-form h3 {
    font-family: var(--ff-secondary);
    color: #1a237e;
    font-size: 1.8rem;
    margin-bottom: 1.5rem;
    text-align: center;
}
.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}
.form-group {
    margin-bottom: 1.1rem;
}
.form-group input,
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 1rem;
    border: 2px solid #e0e0e0;
    border-radius: 10px;
    font-size: 1rem;
    transition: all 0.3s ease;
    font-family: var(--ff-primary);
}
.form-group label {
    display: block;
    margin-bottom: 0.4rem;
    font-family: var(--ff-primary);
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--clr-primary-navy);
}
.form-group .req {
    color: var(--clr-secondary-red);
}
.form-note {
    font-size: 0.9rem;
    margin: -0.5rem 0 1.25rem;
    color: #444;
}
.form-note a {
    color: var(--clr-whatsapp-dark);
    font-weight: 700;
    text-decoration: underline;
}
.form-honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    outline: 3px solid var(--clr-primary-navy);
    outline-offset: 2px;
    border-color: var(--clr-primary-navy);
    box-shadow: none;
}
.form-group textarea {
    resize: vertical;
    min-height: 100px;
}
.form-submit {
    width: 100%;
    background: linear-gradient(135deg, #1a237e, #3949ab);
    color: white;
    border: none;
    padding: 1.25rem;
    border-radius: 50px;
    font-size: 1.1rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}
.form-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(26, 35, 126, 0.3);
}
@media (max-width: 768px) {
    .hero-title {
        font-size: 2.5rem;
    }
    .hero-cta {
        flex-direction: column;
        align-items: center;
    }
    .cta-primary,
    .cta-secondary {
        width: 100%;
        max-width: 300px;
        justify-content: center;
    }
    .services-grid {
        grid-template-columns: 1fr;
    }
    .contact-content {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    .form-row {
        grid-template-columns: 1fr;
    }
    .process-steps {
        flex-direction: column;
    }
    .step-arrow {
        transform: rotate(90deg);
    }
    .nav-quote-btn {
        padding: 0.5rem 1rem;
        font-size: 0.9rem;
    }
}
@media (max-width: 480px) {
    .hero-title {
        font-size: 2rem;
    }
    .hero-subtitle {
        font-size: 1.1rem;
    }
    .hero-usp {
        font-size: 1rem;
    }
    .contact-form-container {
        padding: 1.5rem;
    }
    .step {
        padding: 2rem 1.5rem;
    }
}
.breadcrumb-nav {
    background: var(--clr-surface-warm);
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
.breadcrumb-list {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0;
    padding: 0;
    font-family: var(--ff-primary);
    font-size: 0.82rem;
    flex-wrap: wrap;
}
.breadcrumb-item+.breadcrumb-item::before {
    content: "›";
    color: #aaa;
    margin-right: 0.4rem;
}
.breadcrumb-item a {
    color: var(--clr-primary-navy);
    text-decoration: none;
    opacity: 0.8;
}
.breadcrumb-item a:hover {
    opacity: 1;
    text-decoration: underline;
}
.breadcrumb-current {
    color: #555;
    font-weight: 500;
}
.hero-content .fas,
.contact .fas {
    color: var(--clr-secondary-cream);
}
.fa-star {
    color: var(--clr-gold) !important;
}
@keyframes heroEnter {
    from {
        opacity: 0;
        transform: translateY(28px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
.hero-content {
    animation: heroEnter 0.9s ease-out both;
    animation-delay: 0.15s;
}
.sticky-whatsapp {
    display: none;
}
@media (max-width: 768px) {
    .sticky-whatsapp {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 0.6rem;
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 1000;
        background: var(--clr-whatsapp);
        color: white;
        padding: 0.85rem 1rem;
        font-family: var(--ff-primary);
        font-weight: 700;
        font-size: 1rem;
        text-decoration: none;
        box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.12);
        transition: background 0.2s ease;
    }
    .sticky-whatsapp:hover {
        background: var(--clr-whatsapp-dark);
        color: white;
    }
    .sticky-whatsapp i {
        font-size: 1.3rem;
    }
    body:has(.sticky-whatsapp) {
        padding-bottom: 54px;
    }
}
.contact-map {
    padding: 4rem 0;
    background: #f8f9ff;
}
.contact-map .section-header {
    margin-bottom: 2rem;
}
.contact-map iframe {
    width: 100%;
    height: 420px;
    border: 0;
    border-radius: 16px;
    display: block;
    background: var(--clr-placeholder);
}
.faq-section {
    padding: 4rem 0;
    background: var(--clr-surface-warm);
}
.faq-list {
    max-width: 820px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}
details.faq-item {
    background: white;
    border-radius: 12px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.06);
    overflow: hidden;
    transition: box-shadow 0.2s ease;
}
details.faq-item[open] {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
}
summary.faq-question {
    padding: 1.1rem 1.5rem;
    font-family: var(--ff-secondary);
    font-weight: 600;
    font-size: clamp(15px, 2vw, 17px);
    color: var(--clr-primary-navy);
    cursor: pointer;
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}
summary.faq-question::-webkit-details-marker {
    display: none;
}
summary.faq-question::marker {
    display: none;
}
summary.faq-question::after {
    content: "+";
    font-size: 1.5rem;
    font-weight: 300;
    color: var(--clr-accent-red);
    flex-shrink: 0;
    line-height: 1;
    transition: transform 0.2s ease;
}
details.faq-item[open] summary.faq-question::after {
    transform: rotate(45deg);
}
.faq-answer {
    padding: 0.85rem 1.5rem 1.25rem;
    font-family: var(--ff-primary);
    font-size: 0.95rem;
    line-height: 1.75;
    color: #444;
    border-top: 1px solid rgba(0, 0, 0, 0.06);
}
.hero-options.hero-compact {
    height: auto;
    min-height: 340px;
    padding-block: 4rem 3.5rem;
}
.cta-primary.cta-whatsapp,
a.cta-primary[href*="wa.me"],
a.cta-primary-btn[href*="wa.me"] {
    background: var(--clr-whatsapp);
}
a.cta-primary[href*="wa.me"]:hover,
a.cta-primary-btn[href*="wa.me"]:hover,
.cta-primary.cta-whatsapp:hover {
    background: var(--clr-whatsapp-dark);
    box-shadow: 0 10px 25px rgba(7, 94, 84, 0.3);
}
.hero-content .cta-whatsapp .fab {
    color: #fff;
}
.contact-compact {
    padding: 4.5rem 0;
}
.contact-compact .contact-info h2 {
    margin-bottom: 0.75rem;
    line-height: 1.2;
}
.contact-compact .contact-info > p {
    margin-bottom: 1.75rem;
}
.quick-contact {
    list-style: none;
    margin: 0 0 1.75rem;
    padding: 0;
    display: grid;
    gap: 0.75rem;
}
.qc {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 0.9rem 1.1rem;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #fff;
    text-decoration: none;
    transition: background 0.2s ease, transform 0.2s ease;
}
.qc:hover,
.qc:focus-visible {
    background: rgba(255, 255, 255, 0.18);
    transform: translateY(-1px);
}
.qc > i {
    width: 44px;
    height: 44px;
    flex: none;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(255, 255, 255, 0.12);
    font-size: 1.15rem;
}
.qc-wa > i {
    background: #25d366;
    color: #fff !important;
}
.qc strong {
    display: block;
    font-family: var(--ff-secondary);
    font-size: 1.15rem;
}
.qc-value {
    display: block;
    font-size: 0.95rem;
    opacity: 0.9;
    word-break: break-word;
}
.contact-facts {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.5rem;
    font-size: 0.95rem;
    opacity: 0.9;
}
.contact-facts a {
    color: #fff;
    font-weight: 600;
    text-underline-offset: 3px;
}
.contact-facts .fab {
    color: var(--clr-secondary-cream);
}
.contact-facts i {
    width: 1.2rem;
    margin-right: 0.4rem;
    text-align: center;
}
.map-link {
    margin-top: 1rem;
    text-align: center;
}
.map-link a {
    color: var(--clr-primary-navy);
    font-weight: 600;
    text-underline-offset: 3px;
}
.map-link i {
    color: var(--clr-primary-red) !important;
    margin-right: 0.3rem;
}
@media (max-width: 768px) {
    .hero-options.hero-compact {
        height: auto;
        min-height: 0;
        padding-block: 3rem 2.5rem;
    }
    .contact-compact {
        padding: 2.5rem 0 3rem;
    }
    .contact-compact .contact-info h2 {
        font-size: 2rem;
    }
    .contact-compact .contact-form-container h3 {
        font-size: 1.8rem;
        line-height: 1.2;
    }
    .quick-contact {
        grid-template-columns: repeat(3, 1fr);
        gap: 0.5rem;
        margin-bottom: 1.25rem;
    }
    .qc {
        flex-direction: column;
        gap: 0.4rem;
        padding: 0.8rem 0.4rem;
        text-align: center;
    }
    .qc strong {
        font-size: 1rem;
    }
    .qc-value {
        display: none;
    }
    .contact-facts {
        font-size: 0.9rem;
    }
}
.link-collection .section-header .eyebrow {
    margin-bottom: 0.4rem;
    font-size: 0.8rem;
}
.service-card-photo {
    display: block;
    width: 100%;
    height: 220px;
    object-fit: cover;
}
.link-collection .service-card-body {
    padding: 1.5rem;
    gap: 0.85rem;
}
.service-card-title {
    margin: 0;
    font-family: var(--ff-secondary);
    font-size: 1.5rem;
    line-height: 1.2;
    color: var(--clr-primary-navy);
}
.service-card-price {
    margin: 0;
    font-size: 0.95rem;
    color: #555;
}
.service-card-price strong {
    color: var(--clr-primary-red);
    font-size: 1.1rem;
}
.service-card-points {
    list-style: none;
    margin: 0 0 0.5rem;
    padding: 0;
    display: grid;
    gap: 0.45rem;
    font-size: 0.95rem;
    color: #444;
}
.service-card-points li {
    position: relative;
    padding-left: 1.5rem;
}
.service-card-points li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--clr-gold-text);
    font-weight: 700;
}
.link-collection .service-card-body .cta-primary-btn {
    margin-top: auto;
    align-self: stretch;
    justify-content: center;
    font-size: 1rem;
}
.thanks {
    padding: 5rem 0 6rem;
    background: var(--clr-surface-warm);
}
.thanks-inner {
    max-width: 46rem;
    text-align: center;
}
.thanks-icon {
    width: 72px;
    height: 72px;
    margin: 0 auto 1.25rem;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--clr-whatsapp);
    color: #fff;
    font-size: 2rem;
}
.thanks-icon .fas {
    color: #fff !important;
}
.thanks-lead {
    font-size: 1.1rem;
    color: #444;
    margin: 0.75rem auto 2rem;
    max-width: 36rem;
}
.thanks-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.5rem;
    align-items: center;
    justify-content: center;
    margin-bottom: 3.5rem;
}
.thanks-call {
    color: var(--clr-primary-navy);
    font-weight: 600;
    text-decoration: none;
}
.thanks-call:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}
.thanks-subtitle {
    font-family: var(--ff-secondary);
    color: var(--clr-primary-navy);
    font-size: 1.5rem;
    margin: 0 0 1.25rem;
}
.thanks-steps {
    list-style: none;
    margin: 0 0 3rem;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
    text-align: left;
}
.thanks-steps li {
    background: #fff;
    border-radius: 14px;
    padding: 1.25rem;
    box-shadow: 0 2px 12px rgba(26, 35, 126, 0.08);
    display: grid;
    gap: 0.3rem;
    font-size: 0.95rem;
    color: #555;
}
.thanks-steps strong {
    color: var(--clr-primary-navy);
    font-size: 1rem;
}
.thanks-num {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--clr-primary-red);
    color: #fff;
    font-weight: 700;
    font-size: 0.9rem;
    margin-bottom: 0.3rem;
}
.thanks-links {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    justify-content: center;
}
.thanks-links a {
    display: inline-block;
    padding: 0.55rem 1.1rem;
    border-radius: 50px;
    border: 2px solid var(--clr-primary-navy);
    color: var(--clr-primary-navy);
    font-weight: 600;
    font-size: 0.95rem;
    text-decoration: none;
}
.thanks-links a:hover {
    background: var(--clr-primary-navy);
    color: #fff;
}
@media (max-width: 768px) {
    .thanks {
        padding: 3rem 0 4rem;
    }
    .thanks .title {
        font-size: 2rem;
        line-height: 1.25;
    }
    .thanks-steps {
        grid-template-columns: 1fr;
    }
}
.form-terms {
    margin: 0.75rem 0 0;
    font-size: 0.82rem;
    color: #555;
    text-align: center;
}
.form-terms a {
    color: var(--clr-primary-navy);
    font-weight: 600;
    text-underline-offset: 2px;
}

/* --- base.css --- */
*,
*::before,
*::after {
    box-sizing: border-box;
}
:root {
    --clr-primary-navy: #1a237e;
    --clr-primary-red: #c62828;
    --clr-primary-navy-light: #3949ab;
    --clr-primary-red-dark: #a91f1f;
    --clr-secondary-navy: #0d47a1;
    --clr-secondary-red: var(--clr-primary-red);
    --clr-secondary-blush: #fce4ec;
    --clr-surface-warm: #f7f3ee;
    --clr-placeholder: #f1ece5;
    --clr-gold: #c9a54a;
    --clr-gold-text: #7a5c1c;
    --clr-secondary-cream: #fff8e1;
    --clr-primary: var(--clr-primary-navy);
    --clr-accent: var(--clr-accent-red);
    --clr-secondary-orange: #ff6f00;
    --clr-accent-red: var(--clr-primary-red);
    --clr-accent-success: #2e7d32;
    --clr-accent-warning: #f57c00;
    --clr-accent-error: #d32f2f;
    --clr-accent-info: #1976d2;
    --clr-whatsapp: #0e7a5f;
    --clr-whatsapp-dark: #075e54;
    --clr-wedding-rose: #f8bbd9;
    --clr-corporate-steel: #607d8b;
    --clr-party-purple: #9c27b0;
    --clr-elegant-charcoal: #37474f;
    --ff-primary: "Manrope",
        sans-serif;
    --ff-secondary: "Faustina",
        serif;
}
html {
    color-scheme: light;
    scroll-behavior: smooth;
    box-sizing: border-box;
    interpolate-size: allow-keywords;
}
body {
    width: 100%;
    padding: 0;
    font-family: var(--ff-primary);
    background-color: #fff;
    color: #1f1f1f;
}
body,
h1,
h2,
h3,
h4,
h5,
p,
figure,
picture {
    margin: 0;
}
body {
    min-height: 100vh;
}
img,
picture {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
    font-style: italic;
    shape-margin: 1rem;
    background-size: cover;
    background-repeat: no-repeat;
}
input,
button,
textarea,
select {
    font: inherit;
}
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
::-webkit-scrollbar {
    width: 1em;
}
::-webkit-scrollbar-track {
    background: var(--clr-secondary-orange);
    border-radius: 100vw;
    margin-block: 0.5em;
}
::-webkit-scrollbar-thumb {
    background: var(--clr-primary);
    border: 0.25em solid var(--clr-primary-navy-light);
    border-radius: 100vw;
}
::-webkit-scrollbar-thumb:hover {
    background: var(--clr-primary-navy-light) !important;
    border: 0.25em solid var(--clr-primary-red) !important;
}
@supports (scrollbar-color: red blue) {
    * {
        scrollbar-color: var(--clr-primary-navy) var(--clr-primary-red);
        scrollbar-width: thin;
    }
}
h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: var(--ff-secondary);
    font-size: clamp(40px, 4vw, 60px);
    letter-spacing: 0.06em;
    line-height: 1.5;
}
p,
li,
figcaption {
    font-family: var(--ff-primary);
    font-size: clamp(16px, 3vw, 18px);
    letter-spacing: normal;
    line-height: 1.5;
}
.section-header {
    text-align: center;
    margin: 2.5rem 0 2rem;
}
.section-header p {
    font-family: var(--ff-primary);
    font-size: clamp(18px, 4vw, 20px);
    font-weight: 400;
    position: relative;
    line-height: 1.5;
}
@media (max-width: 1200px) {
    :root {
        --font-space: 1.2rem;
    }
}
@media (max-width: 992px) {
    :root {
        --font-space: 1.1rem;
    }
}
@media (max-width: 768px) {
    :root {
        --font-space: 1rem;
    }
}
@media (max-width: 576px) {
    :root {
        --font-space: 0.9rem;
    }
}
input,
textarea,
select,
button {
    padding: 0.5rem;
    border: 1px solid var(--clr-primary-red);
    border-radius: 5px;
    outline: none;
}
input:focus,
textarea:focus,
select:focus,
button:focus {
    border-color: var(--clr-primary-navy);
    box-shadow: 0 0 0 3px rgba(26, 35, 126, 0.35);
}
button {
    cursor: pointer;
    transition: background-color 0.3s ease;
}
:where(button:hover) {
    background-color: var(--clr-primary);
}
*,
*::before,
*::after {
    box-sizing: inherit;
}
body {
    margin: 0;
    padding: 0;
    a,
    a:hover,
    a:focus,
    a:active {
        text-decoration: none;
    }
}
:focus {
    outline: 2px dashed var(--clr-accent);
    outline-offset: 4px;
}
a:focus {
    outline: none;
}
a:focus-visible {
    outline: 2px dashed var(--clr-accent);
    outline-offset: 4px;
}
.title {
    color: var(--clr-primary-navy);
    margin-bottom: 1rem;
}
.skip-link {
    position: absolute;
    left: 1rem;
    top: -100px;
    z-index: 1000;
    padding: 0.75rem 1.25rem;
    background: var(--clr-primary-navy);
    color: #fff;
    font-family: var(--ff-primary);
    font-weight: 700;
    border-radius: 0 0 8px 8px;
    text-decoration: none;
}
.skip-link:focus {
    top: 0;
}
main:focus {
    outline: none;
}

/* --- navbar.css --- */
.logo {
    max-width: 500px;
}
header {
    background-color: var(--clr-secondary-blush);
}
.navbar {
    display: flex;
    justify-content: space-around;
    align-items: center;
    top: 0;
    z-index: 1;
    max-width: 1240px;
    margin: 0 auto;
    padding: 1rem 1rem;
}
.nav-list {
    list-style-type: none;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0;
    padding: 0;
    gap: 1rem;
}
.list-item {
    display: inline-block;
    padding: 10px 5px;
}
.list-item a {
    font-family: var(--ff-primary);
    font-weight: 600;
    font-size: clamp(16px, 3vw, 16px);
    letter-spacing: 2.5px;
    line-height: 3rem;
    text-decoration: none;
    position: relative;
    text-transform: capitalize;
    color: var(--clr-secondary-red);
}
.list-item a:hover {
    transition: transform 250ms;
    font-weight: 700;
}
.list-item a::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background: var(--clr-primary-navy);
    transform: scaleX(0);
    transform-origin: right;
    transition: transform 250ms ease-in;
}
.list-item a:hover::after {
    transform: scaleX(1);
    transform-origin: left;
}
.list-item a[aria-current="page"] {
    font-weight: 700;
    color: var(--clr-primary-navy);
}
.list-item a[aria-current="page"]::after {
    transform: scaleX(1);
    background: var(--clr-accent-red);
}
.menu {
    display: none;
    cursor: pointer;
    z-index: 100;
    border: none;
    background: transparent;
    padding: 0.25rem;
}
.menu div {
    width: 35px;
    height: 4px;
    background-color: var(--clr-primary-red);
    margin: 6px 0;
    transition: all 0.3s ease;
    border-radius: 2px;
}
.menu:focus {
    outline: 2px solid var(--clr-accent-red);
    outline-offset: 4px;
}
.menu.active .menu-line1 {
    transform: rotate(-45deg) translate(-5px, 6px);
}
.menu.active .menu-line2 {
    opacity: 0;
}
.menu.active .menu-line3 {
    transform: rotate(45deg) translate(-5px, -6px);
}
.nav-quote-btn {
    background: var(--clr-accent-red);
    color: white;
    border: none;
    padding: 0.75rem 1.5rem;
    border-radius: 30px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
}
.nav-quote-btn:hover {
    background: var(--clr-primary-red-dark);
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(198, 40, 40, 0.28);
    color: var(--clr-secondary-blush);
}
.cta-homepage-btns {}
@media screen and (max-width: 1024px) {
    .cta-homepage-btns {
        display: none;
    }
    header {
        position: fixed;
        width: 100%;
        top: 0;
        left: 0;
        z-index: 1002;
    }
    .navbar {
        width: 100%;
        left: 0;
        right: 0;
        position: fixed;
        top: 0;
        z-index: 1002;
        background-color: var(--clr-secondary-blush);
    }
    .nav-list {
        z-index: 1003;
    }
    .nav-list {
        position: fixed;
        right: -100%;
        height: calc(100vh - 70px);
        width: 100%;
        background-color: var(--clr-primary-navy);
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-end;
        transition: right 0.5s ease;
        z-index: 999;
        padding-top: 2rem;
        padding-right: 2rem;
        top: 70px;
    }
    .list-item {
        margin: 0.50rem 0;
        opacity: 0;
        transform: translateX(100px);
        transition: all 0.4s ease;
        text-align: right;
    }
    .nav-list.active {
        right: 0;
        background-color: var(--clr-primary-navy);
    }
    .nav-list.active .list-item {
        opacity: 1;
        transform: translateX(0);
    }
    .nav-list.active .list-item:nth-child(1) {
        transition-delay: 0.1s;
    }
    .nav-list.active .list-item:nth-child(2) {
        transition-delay: 0.2s;
    }
    .nav-list.active .list-item:nth-child(3) {
        transition-delay: 0.3s;
    }
    .nav-list.active .list-item:nth-child(4) {
        transition-delay: 0.4s;
    }
    .nav-list.active .list-item:nth-child(5) {
        transition-delay: 0.5s;
    }
    .menu {
        display: block;
        position: relative;
        z-index: 1001;
    }
    body.menu-open {
        overflow: hidden;
        position: fixed;
        width: 100%;
        height: 100%;
    }
    body {
        padding-top: 70px;
    }
    .logo {
        max-width: 200px;
    }
    .navbar {
        display: flex;
        justify-content: space-between;
    }
    .list-item a {
        color: #ffcdd2;
    }
    .list-item a[aria-current="page"] {
        color: white;
    }
    .list-item a[aria-current="page"]::after {
        background: var(--clr-secondary-cream);
    }
}

/* --- buttons.css --- */
.backToTopBtn {
    display: none;
    position: fixed;
    bottom: 100px;
    right: 30px;
    z-index: 99;
    cursor: pointer;
    width: 50px;
    height: 50px;
    padding: 4px;
    border-radius: 50%;
    border: 1px solid var(--clr-primary-navy-light);
    background-color: #fff;
    box-shadow: 0 4px 14px rgba(26, 35, 126, 0.18);
}
.backToTopBtn img {
    width: 100%;
    height: 100%;
    display: block;
}
.backToTopBtn:hover,
.backToTopBtn:focus-visible {
    background-color: var(--clr-surface-warm);
}
@media (max-width: 768px) {
    .backToTopBtn {
        width: 44px;
        height: 44px;
        right: 12px;
        bottom: 70px;
    }
}
.fa-arrow-right {
    color: var(--clr-primary-navy-light) !important;
}
.cta-primary-btn {
    padding: 1rem 2rem;
    border-radius: 50px;
    font-weight: 600;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    transition: all 0.3s ease;
    border: none;
    cursor: pointer;
    font-size: 1.1rem;
    align-self: center;
}
.cta-primary-btn {
    background: var(--clr-primary-red);
    color: white;
}
.cta-primary-btn:hover {
    background: var(--clr-primary-red-dark);
    transform: translateY(-3px);
    box-shadow: 0 10px 25px rgba(198, 40, 40, 0.28);
}
.whatsapp-float {
    position: fixed;
    right: 20px;
    top: 50%;
    transform: translateY(-50%);
    background: linear-gradient(180deg, var(--clr-whatsapp) 0%, var(--clr-whatsapp-dark) 100%);
    width: 56px;
    max-height: 56px;
    height: 100%;
    border-radius: 28px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    box-shadow: 0 8px 20px rgba(18, 140, 126, 0.2);
    z-index: 99999;
    text-decoration: none;
    padding: 8px;
    box-sizing: border-box;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}
.whatsapp-float img {
    display: block;
    width: 40px;
    height: 40px;
    flex-shrink: 0;
    transition: width 0.4s cubic-bezier(0.25, 1, 0.5, 1),
    height 0.4s cubic-bezier(0.25, 1, 0.5, 1);
}
.whatsapp-float:focus {
    outline: 3px solid rgba(37, 211, 102, 0.25);
    outline-offset: 4px;
}
.whatsapp-text {
    color: #ffffff;
    font-size: 10px;
    font-weight: 700;
    font-family: var(--ff-primary);
    letter-spacing: 1px;
    text-align: center;
    margin-top: 8px;
    writing-mode: vertical-rl;
    white-space: nowrap;
    opacity: 0;
    transform: scale(0.8);
    transition: opacity 0.3s ease, transform 0.3s ease;
}
.whatsapp-float:hover {
    max-height: 150px;
}
.whatsapp-float:hover img {
    width: 24px;
    height: 24px;
    margin-top: 4px;
}
.whatsapp-float:hover .whatsapp-text {
    opacity: 1;
    transform: scale(1);
    transition-delay: 0.05s;
}
@media (max-width: 768px) {
    .whatsapp-float {
        display: none;
    }
}
.cta {
    font-family: var(--ff-secondary);
    font-size: clamp(16px, 4vw, 18px);
    font-weight: 300;
}

/* --- testimonial.css --- */
.eyebrow {
    font-family: var(--ff-primary);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--clr-gold-text);
    margin: 0 0 0.5rem;
}
.pf-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 48px;
    padding: 0.75rem 1.5rem;
    border-radius: 30px;
    font-family: var(--ff-primary);
    font-weight: 700;
    font-size: 1rem;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.pf-btn:hover {
    transform: translateY(-2px);
}
.pf-btn i {
    color: inherit !important;
}
.pf-btn-wa {
    background: var(--clr-whatsapp);
    color: #fff;
}
.pf-btn-wa:hover {
    background: var(--clr-whatsapp-dark);
    color: #fff;
}
.pf-btn-outline {
    border: 2px solid var(--clr-primary-navy);
    color: var(--clr-primary-navy);
    background: #fff;
}
.pf-btn-outline:hover {
    background: var(--clr-primary-navy);
    color: #fff;
}
.portfolio {
    background: var(--clr-secondary-blush);
    padding: 5rem 0;
}
.portfolio .container,
.reviews .container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1.25rem;
}
.pf-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 240px;
    gap: 1rem;
    margin-top: 2.5rem;
}
.pf-item {
    position: relative;
    margin: 0;
    border-radius: 18px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 8px 24px rgba(26, 35, 126, 0.1);
}
.pf-item:first-child {
    grid-column: span 2;
    grid-row: span 2;
}
.pf-open {
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    border: none;
    border-radius: 0;
    background: none;
    cursor: zoom-in;
}
.pf-open img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}
.pf-item:hover img,
.pf-open:focus-visible img {
    transform: scale(1.04);
}
.pf-item figcaption {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 2.5rem 1rem 0.9rem;
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    background: linear-gradient(to top, rgba(10, 12, 40, 0.8), rgba(10, 12, 40, 0));
    color: #fff;
    pointer-events: none;
    font-family: var(--ff-primary);
}
.pf-tag {
    font-family: var(--ff-secondary);
    font-size: 1.1rem;
    font-weight: 700;
}
.pf-event {
    font-size: 0.85rem;
    color: #ffcdd2;
}
.pf-swipe-hint {
    display: none;
}
.pf-cta {
    margin-top: 2.5rem;
    text-align: center;
}
.pf-cta p {
    font-family: var(--ff-secondary);
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--clr-primary-navy);
    margin: 0 0 1rem;
}
.pf-cta-actions,
.rv-actions {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 0.75rem 1rem;
    flex-wrap: wrap;
}
.pf-lightbox {
    width: min(1100px, 94vw);
    max-height: 92vh;
    padding: 0;
    border: none;
    border-radius: 16px;
    background: #0d0f2b;
    color: #fff;
    overflow: visible;
}
.pf-lightbox::backdrop {
    background: rgba(5, 6, 20, 0.85);
}
.pf-lightbox figure {
    margin: 0;
}
.pf-lightbox img {
    display: block;
    width: 100%;
    max-height: 80vh;
    object-fit: contain;
    border-radius: 16px 16px 0 0;
    background: #0d0f2b;
}
.pf-lightbox figcaption {
    padding: 0.9rem 1.25rem;
    font-family: var(--ff-primary);
    font-size: 0.95rem;
    text-align: center;
}
.pf-lb-close,
.pf-lb-prev,
.pf-lb-next {
    position: absolute;
    z-index: 2;
    width: 48px;
    height: 48px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    color: var(--clr-primary-navy);
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.3);
}
.pf-lb-close {
    top: -14px;
    right: -14px;
    font-size: 1.8rem;
}
.pf-lb-prev,
.pf-lb-next {
    top: 40%;
}
.pf-lb-prev {
    left: 12px;
}
.pf-lb-next {
    right: 12px;
}
.reviews {
    background: #fff;
    padding: 5rem 0;
}
.rv-summary {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    margin-top: 1rem;
    padding: 0.6rem 1.1rem;
    border-radius: 30px;
    background: var(--clr-surface-warm);
    color: var(--clr-primary-navy);
    font-family: var(--ff-primary);
    font-weight: 700;
    text-decoration: none;
}
.rv-summary .fa-google {
    color: #ea4335 !important;
}
.rv-stars {
    display: inline-flex;
    gap: 0.15rem;
}
.rv-stars i {
    color: var(--clr-gold) !important;
    font-size: 0.95rem;
}
.reviews-widget {
    margin-top: 2.5rem;
}
.reviews-widget:empty {
    display: none;
}
.reviews:has(.reviews-widget .ti-widget) .reviews-fallback,
.reviews:has(.reviews-widget iframe) .reviews-fallback {
    display: none;
}
.rv-track {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-top: 2.5rem;
}
.rv-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 2rem 1.75rem 1.75rem;
    border-radius: 20px;
    background: #fff;
    border: 1px solid rgba(26, 35, 126, 0.1);
    box-shadow: 0 10px 30px rgba(26, 35, 126, 0.08);
}
.rv-quote {
    position: absolute;
    top: 1.5rem;
    right: 1.5rem;
    font-size: 2rem;
    color: var(--clr-secondary-blush) !important;
}
.rv-text {
    flex: 1;
    margin: 0;
    font-size: 1.05rem;
    line-height: 1.65;
    color: #333;
}
.rv-author {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-top: 1rem;
    border-top: 1px solid #f0f0f5;
    font-family: var(--ff-primary);
}
.rv-avatar {
    width: 44px;
    height: 44px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--clr-primary-navy);
    color: #fff;
    font-weight: 700;
    font-size: 1.1rem;
}
.rv-author strong {
    display: block;
    color: var(--clr-primary-navy);
}
.rv-meta {
    display: block;
    font-size: 0.85rem;
    color: #666;
}
.rv-dots {
    display: none;
}
.rv-actions {
    margin-top: 2.5rem;
    flex-direction: column;
}
.rv-leave {
    font-family: var(--ff-primary);
    font-size: 0.9rem;
    color: var(--clr-primary-navy);
    text-decoration: underline;
    text-underline-offset: 3px;
}
@media (max-width: 960px) {
    .pf-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-auto-rows: 220px;
    }
    .rv-track {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 640px) {
    .portfolio,
    .reviews {
        padding: 3.5rem 0;
    }
    .pf-grid,
    .rv-track {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        gap: 0.9rem;
        margin: 2rem -1.25rem 0;
        padding: 0.25rem 1.25rem 1rem;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }
    .pf-grid::-webkit-scrollbar,
    .rv-track::-webkit-scrollbar {
        display: none;
    }
    .pf-item,
    .pf-item:first-child {
        flex: 0 0 82%;
        aspect-ratio: 4 / 5;
        scroll-snap-align: center;
    }
    .pf-swipe-hint {
        display: block;
        text-align: center;
        font-family: var(--ff-primary);
        font-size: 0.85rem;
        color: #555;
        margin: 0.25rem 0 0;
    }
    .pf-cta p {
        font-size: 1.2rem;
    }
    .pf-cta-actions .pf-btn {
        flex: 1 1 100%;
    }
    .rv-card {
        flex: 0 0 85%;
        scroll-snap-align: center;
        padding: 1.75rem 1.4rem 1.4rem;
    }
    .rv-dots {
        display: flex;
        justify-content: center;
        gap: 0.25rem;
        margin-top: 0.5rem;
    }
    .rv-dot {
        width: 8px;
        height: 8px;
        box-sizing: content-box;
        padding: 8px;
        border: none;
        border-radius: 50%;
        background-clip: content-box;
        background-color: rgba(26, 35, 126, 0.2);
        cursor: pointer;
        transition: width 0.25s ease;
    }
    .rv-dot.is-active {
        width: 22px;
        border-radius: 6px;
        background-color: var(--clr-primary-navy);
    }
    .pf-lb-prev,
    .pf-lb-next {
        top: auto;
        bottom: -60px;
    }
    .pf-lb-prev {
        left: calc(50% - 60px);
    }
    .pf-lb-next {
        right: calc(50% - 60px);
    }
    .pf-lb-close {
        top: -56px;
        right: 0;
    }
}

/* --- footer.css --- */
.site-footer {
    font-family: var(--ff-primary);
    color: #1f1f1f;
}
.ft-cta {
    background: var(--clr-primary-navy);
    color: #fff;
    padding: 2.5rem 1.25rem;
}
.ft-cta-inner {
    max-width: 1200px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem 2rem;
    flex-wrap: wrap;
}
.ft-cta-title {
    font-family: var(--ff-secondary);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 0.35rem;
}
.ft-cta-sub {
    margin: 0;
    color: #ffcdd2;
    font-size: 1rem;
    max-width: 34rem;
}
.ft-cta-actions {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}
.ft-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.55rem;
    min-height: 48px;
    padding: 0.75rem 1.5rem;
    border-radius: 30px;
    font-weight: 700;
    font-size: 1rem;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}
.ft-btn:hover {
    transform: translateY(-2px);
}
.ft-btn i {
    color: inherit !important;
    font-size: 1.15em;
}
.ft-btn-wa {
    background: var(--clr-whatsapp);
    color: #fff;
}
.ft-btn-wa:hover {
    background: var(--clr-whatsapp-dark);
    color: #fff;
}
.ft-btn-call {
    border: 2px solid #fff;
    color: #fff;
}
.ft-btn-call:hover {
    background: #fff;
    color: var(--clr-primary-navy);
}
.ft-main {
    background: var(--clr-surface-warm);
    padding: 3rem max(1.25rem, calc((100% - 1200px) / 2)) 2rem;
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
    gap: 2rem 2.5rem;
}
.ft-logo-link {
    display: inline-block;
}
.ft-logo {
    width: 220px;
    height: auto;
    display: block;
}
.ft-blurb {
    margin: 1rem 0 1.25rem;
    font-size: 0.95rem;
    line-height: 1.6;
    color: #333;
    max-width: 26rem;
}
.ft-contact {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0.6rem;
}
.ft-contact li {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    font-size: 0.95rem;
}
.ft-contact i {
    width: 1.1rem;
    text-align: center;
    color: var(--clr-primary-navy) !important;
}
.ft-contact i.fa-whatsapp {
    color: var(--clr-whatsapp) !important;
}
.ft-contact a {
    color: var(--clr-primary-navy);
    text-decoration: none;
    word-break: break-word;
}
.ft-heading {
    font-family: var(--ff-secondary);
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--clr-gold-text);
    margin: 0 0 0.9rem;
}
.ft-col ul {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0.15rem;
}
.ft-col li {
    margin: 0;
}
.ft-col a {
    display: inline-block;
    padding: 0.35rem 0;
    color: var(--clr-primary-navy);
    text-decoration: none;
    font-size: 0.95rem;
}
.ft-col a:hover,
.ft-contact a:hover {
    color: var(--clr-secondary-red);
    text-decoration: underline;
    text-underline-offset: 3px;
}
.ft-bottom {
    background: var(--clr-surface-warm);
    border-top: 1px solid rgba(26, 35, 126, 0.15);
    padding: 1.25rem max(1.25rem, calc((100% - 1200px) / 2));
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem 1.5rem;
    flex-wrap: wrap;
    font-size: 0.85rem;
    color: #444;
}
.ft-bottom p {
    margin: 0;
    font-size: 0.85rem;
}
.ft-bottom a {
    color: var(--clr-primary-navy);
    font-weight: 600;
    text-decoration: none;
}
.ft-bottom a:hover {
    text-decoration: underline;
}
@media (max-width: 960px) {
    .ft-main {
        grid-template-columns: 1fr 1fr;
    }
    .ft-brand,
    .ft-col:last-child {
        grid-column: 1 / -1;
    }
    .ft-areas {
        grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
    }
}
@media (max-width: 560px) {
    .ft-cta {
        text-align: center;
    }
    .ft-cta-inner,
    .ft-cta-actions {
        justify-content: center;
    }
    .ft-cta-sub {
        margin: 0 auto;
    }
    .ft-btn {
        flex: 1 1 100%;
    }
    .ft-bottom {
        flex-direction: column;
        text-align: center;
    }
}
.ft-social {
    list-style: none;
    margin: 1.1rem 0 0;
    padding: 0;
    display: flex;
    gap: 0.6rem;
}
.ft-social a {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--clr-primary-navy);
    color: #fff;
    font-size: 1.1rem;
    text-decoration: none;
    transition: background 0.2s ease, transform 0.2s ease;
}
.ft-social a:hover,
.ft-social a:focus-visible {
    background: var(--clr-primary-red);
    transform: translateY(-2px);
}
.ft-social .fab {
    color: #fff !important;
}

/* --- hero-option.css --- */
.hero-options {
    height: 70vh;
    padding-block: 3rem;
    background: #2b2b2b;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.hero-options .hero-usp {
    margin-top: 1rem;
}
.hero-options .hero-cta {
    margin-top: 1rem;
}
.hero-options .hero-cta:first-of-type {
    margin-top: 2.5rem;
}
.linking-container {
    padding: 3.5rem 1.25rem;
    background: var(--clr-surface-warm);
}
.linking-card {
    max-width: 1100px;
    margin: 0 auto;
    padding: 2.25rem 2.5rem;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 2rem 3rem;
    align-items: center;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 4px 20px rgba(26, 35, 126, 0.08);
}
.linking-text .eyebrow {
    margin-bottom: 0.35rem;
}
.linking-text h2 {
    margin: 0 0 0.6rem;
    font-family: var(--ff-secondary);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    line-height: 1.2;
    color: var(--clr-primary-navy);
}
.linking-text > p:not(.eyebrow) {
    margin: 0 0 1.1rem;
    max-width: 40rem;
    color: #444;
    font-size: 1.02rem;
    line-height: 1.6;
}
.linking-points {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.4rem;
    font-size: 0.95rem;
    color: #333;
}
.linking-points li::before {
    content: "✓";
    margin-right: 0.4rem;
    color: var(--clr-gold-text);
    font-weight: 700;
}
.linking-actions {
    display: grid;
    gap: 0.6rem;
    justify-items: center;
}
.linking-actions .cta-primary-btn {
    font-size: 1rem;
    white-space: nowrap;
}
.linking-note {
    margin: 0;
    font-size: 0.85rem;
    color: #555;
}
@media (max-width: 768px) {
    .linking-container {
        padding: 2.5rem 1rem;
    }
    .linking-card {
        grid-template-columns: 1fr;
        padding: 1.75rem 1.4rem;
        gap: 1.5rem;
    }
    .linking-actions {
        justify-items: stretch;
        text-align: center;
    }
    .linking-actions .cta-primary-btn {
        justify-content: center;
    }
}
@media (max-width: 1024px) {
    .packages-container {
        padding: 1.25rem 0.75rem;
    }
    .packages-container section {
        margin-bottom: 0.65rem;
    }
}
@media (max-width: 768px) {
    .hero-options {
        height: auto;
        min-height: 0;
        padding-block: 3.5rem 3rem;
    }
    .packages-container {
        padding: 1rem;
    }
}

/* --- collections.css --- */
.collections-section {
    padding: 3rem 1.5rem 5rem;
}
.collections-container {
    max-width: 1200px;
    margin: 0 auto;
}
.collections-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.5rem;
    margin-top: 2.5rem;
}
.collection-card {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(26, 35, 126, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    text-decoration: none;
    color: inherit;
    display: block;
}
.collection-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 14px 40px rgba(26, 35, 126, 0.16);
}
.collection-card-img {
    aspect-ratio: 1 / 1;
    background: var(--clr-placeholder);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.collection-card-img i {
    font-size: 4.5rem;
    color: var(--clr-primary-navy) !important;
}
.collection-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.collection-card-body {
    padding: 1rem 1.1rem 1.3rem;
    text-align: center;
}
.collection-card-title {
    font-family: var(--ff-secondary);
    font-size: clamp(14px, 1.8vw, 17px);
    color: var(--clr-elegant-charcoal);
    margin: 0 0 0.4rem;
    font-weight: 600;
    line-height: 1.3;
}
.collection-card-link {
    font-family: var(--ff-primary);
    font-size: 12px;
    color: var(--clr-accent-red);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
@media (max-width: 1100px) {
    .collections-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}
@media (max-width: 720px) {
    .collections-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem;
    }
}
.hire-items-section {
    padding: 3rem 1.5rem 5rem;
}
.hire-items-container {
    max-width: 1100px;
    margin: 0 auto;
}
.hire-items-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    margin-top: 2.5rem;
}
.hire-item-card {
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(26, 35, 126, 0.08);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    display: flex;
    flex-direction: column;
}
.hire-item-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 35px rgba(26, 35, 126, 0.14);
}
.hire-item-card:has(.delivery-info-trigger:hover) {
    transform: none;
    box-shadow: 0 4px 20px rgba(26, 35, 126, 0.08);
}
.hire-item-img {
    aspect-ratio: 1 / 1;
    background: var(--clr-placeholder);
    overflow: hidden;
}
.hire-item-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.hire-item-body {
    padding: 1rem 1.2rem 1.3rem;
    display: flex;
    flex-direction: column;
    flex: 1;
}
.hire-item-name {
    font-family: var(--ff-secondary);
    font-size: clamp(15px, 1.8vw, 18px);
    color: var(--clr-elegant-charcoal);
    font-weight: 600;
    margin: 0 0 0.35rem;
    line-height: 1.3;
}
.hire-item-price {
    font-family: var(--ff-primary);
    font-size: clamp(14px, 1.5vw, 15px);
    color: var(--clr-primary-navy);
    font-weight: 700;
    margin: 0 0 1rem;
    letter-spacing: 0.04em;
}
.hire-item-price::after {
    content: " / per day";
    font-style: italic;
    font-weight: 400;
    font-size: 0.85em;
    opacity: 0.75;
}
.hire-item-price.no-unit::after {
    content: "";
}
@media (max-width: 900px) {
    .hire-items-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
.item-options {
    display: flex;
    gap: 0.3rem;
    margin-bottom: 0.5rem;
    flex-wrap: wrap;
}
.option-btn {
    flex: 1;
    min-width: 0;
    min-height: 36px;
    padding: 0.4rem 0.45rem;
    border: 1px solid rgba(26, 35, 126, 0.4);
    background: transparent;
    color: var(--clr-primary-navy);
    border-radius: 50px;
    font-family: var(--ff-primary);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
    opacity: 0.75;
}
.option-btn.active {
    background: var(--clr-primary-navy);
    color: #fff;
    border-color: var(--clr-primary-navy);
    opacity: 1;
}
.option-btn:hover:not(.active) {
    border-color: var(--clr-primary-navy);
    opacity: 1;
}
.hire-item-img {
    position: relative;
}
.hire-item-img-note {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: #b84500;
    color: #fff;
    font-family: var(--ff-primary);
    font-size: 0.65rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-align: center;
    padding: 0.3rem 0.5rem;
    line-height: 1.3;
    z-index: 1;
}
.hire-item-name a {
    color: inherit;
    text-decoration: none;
}
.hire-item-name a:hover {
    text-decoration: underline;
    text-decoration-color: currentColor;
    opacity: 0.8;
}
.hire-item-card a.cta-secondary {
    display: inline-flex;
    justify-content: center;
    width: 100%;
    padding: 0.8rem 0.9rem;
    margin-top: auto;
    background: var(--clr-whatsapp);
    color: #fff;
    border-color: var(--clr-whatsapp);
    font-size: 0.95rem;
}
.hire-item-card a.cta-secondary:hover {
    background: var(--clr-whatsapp-dark);
    color: #fff;
    border-color: var(--clr-whatsapp-dark);
}
@media (max-width: 500px) {
    .hire-items-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.75rem;
    }
    .hire-item-body {
        padding: 0.75rem 0.9rem 1rem;
    }
}
.delivery-info-trigger {
    display: block;
    width: fit-content;
    text-align: left;
    margin-top: 0.4rem;
    padding: 0.4rem 0;
    background: transparent !important;
    border: none;
    font-family: var(--ff-primary);
    font-size: 0.82rem;
    color: var(--clr-primary-navy) !important;
    opacity: 0.8;
    text-decoration: underline;
    cursor: pointer;
    letter-spacing: 0.02em;
}
.delivery-info-trigger:hover {
    opacity: 1;
    background: transparent !important;
    color: var(--clr-primary-navy) !important;
}
.delivery-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 9999;
    align-items: center;
    justify-content: center;
}
.delivery-modal-overlay.active { display: flex; }
.delivery-modal {
    background: #fff;
    border-radius: 14px;
    padding: 2rem 1.75rem;
    max-width: 420px;
    width: 90%;
    position: relative;
}
.delivery-modal-close {
    position: absolute;
    top: 0.85rem;
    right: 1rem;
    background: none;
    border: none;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    color: var(--clr-elegant-charcoal);
    opacity: 0.5;
}
.delivery-modal-close:hover { opacity: 1; }
.delivery-modal h3 {
    font-family: var(--ff-secondary);
    color: var(--clr-primary-navy);
    font-size: 1.1rem;
    margin: 0 0 0.85rem;
}
.delivery-modal p {
    font-family: var(--ff-primary);
    font-size: 0.875rem;
    line-height: 1.65;
    color: var(--clr-elegant-charcoal);
    margin: 0;
}
.hire-item-detail-section {
    padding: 3rem 1.5rem 5rem;
}
.hire-item-detail-container {
    max-width: 960px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: start;
}
.hire-item-detail-img {
    aspect-ratio: 1 / 1;
    background: var(--clr-placeholder);
    border-radius: 16px;
    overflow: hidden;
    position: relative;
}
.hire-item-detail-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.hire-item-detail-info {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}
.hire-item-detail-info h2 {
    font-family: var(--ff-secondary);
    font-size: clamp(20px, 2.5vw, 28px);
    color: var(--clr-elegant-charcoal);
    margin: 0;
    line-height: 1.2;
}
.hire-item-detail-info p.item-description {
    font-family: var(--ff-primary);
    font-size: 0.95rem;
    line-height: 1.7;
    color: var(--clr-elegant-charcoal);
    opacity: 0.85;
    margin: 0;
}
.hire-item-detail-info a.cta-secondary {
    display: inline-flex;
    justify-content: center;
    width: 100%;
    padding: 0.8rem 0.9rem;
    background: var(--clr-whatsapp);
    color: #fff;
    border-color: var(--clr-whatsapp);
    font-size: 0.95rem;
}
.hire-item-detail-info a.cta-secondary:hover {
    background: var(--clr-whatsapp-dark);
    color: #fff;
    border-color: var(--clr-whatsapp-dark);
}
.hire-item-detail-back {
    display: inline-block;
    font-family: var(--ff-primary);
    font-size: 0.8rem;
    color: var(--clr-primary-navy);
    opacity: 0.8;
    text-decoration: underline;
}
.hire-item-detail-back:hover {
    opacity: 1;
}
@media (max-width: 720px) {
    .hire-item-detail-container {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}
.hire-item-detail-info .hire-item-price {
    font-size: clamp(26px, 4vw, 38px);
    color: var(--clr-accent-red);
    margin: 0;
    letter-spacing: 0.02em;
}
.hire-item-detail-img .img-secondary {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 0.4s ease;
}
.hire-item-detail-img:hover img.img-secondary {
    opacity: 1;
}
div.img-secondary {
    background: var(--clr-placeholder);
}
.hire-search {
    max-width: 640px;
    margin: 2rem auto 0;
}
.hire-search-label {
    display: block;
    font-family: var(--ff-primary);
    font-weight: 600;
    color: var(--clr-primary-navy);
    margin-bottom: 0.5rem;
}
.hire-search-field {
    position: relative;
}
.hire-search-field i {
    position: absolute;
    left: 1.1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--clr-primary-navy) !important;
    pointer-events: none;
}
.hire-search-field input {
    width: 100%;
    font-family: var(--ff-primary);
    font-size: 1rem;
    padding: 0.9rem 1rem 0.9rem 2.8rem;
    border: 2px solid var(--clr-primary-navy);
    border-radius: 30px;
    background: #fff;
    color: #1f1f1f;
}
.hire-search-field input:focus {
    border-color: var(--clr-primary-navy);
    box-shadow: 0 0 0 4px rgba(26, 35, 126, 0.2);
}
.hire-search-status {
    font-family: var(--ff-primary);
    font-size: 0.9rem;
    color: #555;
    margin: 0.6rem 0 0;
    min-height: 1.2em;
    text-align: center;
}
.hire-search-results {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
    margin-top: 0.75rem;
}
.hire-search-card {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding: 0.6rem;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 4px 16px rgba(26, 35, 126, 0.08);
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}
.hire-search-card:hover,
.hire-search-card:focus-visible {
    box-shadow: 0 8px 24px rgba(26, 35, 126, 0.16);
    transform: translateY(-2px);
}
.hire-search-card img,
.hire-search-noimg {
    width: 64px;
    height: 64px;
    flex-shrink: 0;
    border-radius: 8px;
    object-fit: cover;
    background: var(--clr-placeholder);
}
.hire-search-noimg {
    display: flex;
    align-items: center;
    justify-content: center;
}
.hire-search-noimg i {
    color: var(--clr-primary-navy) !important;
    opacity: 0.5;
}
.hire-search-info {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}
.hire-search-name {
    font-family: var(--ff-secondary);
    font-weight: 600;
    color: var(--clr-primary-navy);
    line-height: 1.3;
}
.hire-search-cat {
    font-family: var(--ff-primary);
    font-size: 0.8rem;
    color: #555;
}
.hire-search-price {
    font-family: var(--ff-primary);
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--clr-secondary-red);
}
.hire-search-empty {
    grid-column: 1 / -1;
    text-align: center;
    font-family: var(--ff-primary);
}
.hire-search-empty a {
    color: var(--clr-whatsapp-dark);
    font-weight: 700;
    text-decoration: underline;
}
@media (max-width: 600px) {
    .hire-search-results {
        grid-template-columns: 1fr;
    }
}
.item-included {
    margin: 1rem 0 1.25rem;
    padding: 1rem 1.1rem;
    border-radius: 14px;
    background: var(--clr-surface-warm);
}
.item-included-title {
    margin: 0 0 0.5rem;
    font-family: var(--ff-primary);
    font-weight: 800;
    font-size: 0.85rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--clr-primary-navy);
}
.item-included ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.4rem;
}
.item-included li {
    position: relative;
    padding-left: 1.5rem;
    font-size: 0.95rem;
}
.item-included li::before {
    content: "\2713";
    position: absolute;
    left: 0;
    color: var(--clr-primary-navy);
    font-weight: 800;
}
.item-extra {
    padding: 3.5rem 1.25rem;
    background: #fff;
}
.item-extra-inner {
    max-width: 1000px;
    margin: 0 auto;
    font-family: var(--ff-primary);
}
.item-extra .title {
    font-size: clamp(1.5rem, 3vw, 2rem);
    text-align: center;
    color: var(--clr-primary-navy);
    margin: 2.5rem 0 1.25rem;
    line-height: 1.25;
}
.item-extra .title:first-child {
    margin-top: 0;
}
.item-steps {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}
.item-steps li {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1.4rem;
    border-radius: 16px;
    border: 1px solid rgba(26, 35, 126, 0.12);
    background: #fff;
}
.item-step-num {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--clr-primary-navy);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    margin-bottom: 0.35rem;
}
.item-steps strong {
    color: var(--clr-primary-navy);
}
.item-steps li > span:last-child {
    font-size: 0.92rem;
    color: #444;
}
.item-tags,
.item-related {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.6rem;
}
.item-tags li {
    padding: 0.5rem 1rem;
    border-radius: 30px;
    background: var(--clr-surface-warm);
    color: var(--clr-primary-navy);
    font-weight: 600;
    font-size: 0.92rem;
}
.item-related a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0.5rem 1.1rem;
    border-radius: 30px;
    border: 2px solid var(--clr-primary-navy);
    color: var(--clr-primary-navy);
    font-weight: 700;
    text-decoration: none;
}
.item-related a:hover {
    background: var(--clr-primary-navy);
    color: #fff;
}
.item-areas {
    margin: 2rem auto 0;
    max-width: 44rem;
    text-align: center;
    font-size: 0.92rem;
    color: #444;
}
.item-areas a {
    color: var(--clr-primary-navy);
    font-weight: 600;
}
@media (max-width: 680px) {
    .item-steps {
        grid-template-columns: 1fr;
    }
}
.item-event {
    margin: 0 auto;
    max-width: 820px;
    border-radius: 18px;
    overflow: hidden;
    background: var(--clr-surface-warm);
    box-shadow: 0 10px 30px rgba(26, 35, 126, 0.1);
}
.item-event img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 2;
    object-fit: cover;
}
.item-event figcaption {
    padding: 0.9rem 1.1rem;
    font-size: 0.92rem;
    color: var(--clr-primary-navy);
    font-weight: 600;
    text-align: center;
}
.delivery-modal .delivery-modal-terms {
    margin-top: 0.9rem;
}
.delivery-modal-terms a {
    color: var(--clr-primary-navy);
    font-weight: 600;
    text-underline-offset: 3px;
}
.item-note {
    margin: 0 0 1rem;
    padding: 0.75rem 1rem;
    border: 1px solid var(--clr-gold);
    border-radius: 10px;
    background: var(--clr-surface-warm);
    color: #3d3d3d;
    font-size: 0.95rem;
    line-height: 1.5;
}
.item-note strong {
    color: var(--clr-primary-navy);
}
.hire-item-img img.img-contain,
.hire-item-detail-img img.img-contain {
    object-fit: contain;
    background: #fff;
}
.hire-items-grid.is-single {
    grid-template-columns: minmax(0, 380px);
    justify-content: center;
}

/* --- enquiry.css --- */
.enquiry-add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    width: 100%;
    min-height: 40px;
    margin-top: 0.5rem;
    padding: 0.5rem 0.75rem;
    border: 1.5px dashed var(--clr-primary-navy);
    border-radius: 30px;
    background: transparent;
    color: var(--clr-primary-navy);
    font-family: var(--ff-primary);
    font-size: 0.85rem;
    font-weight: 700;
    cursor: pointer;
}
.enquiry-add:hover {
    background: var(--clr-surface-warm);
}
.enquiry-add i {
    color: inherit !important;
}
.enquiry-add.is-added {
    border-style: solid;
    background: var(--clr-primary-navy);
    color: #fff;
}
.hire-item-detail-info .enquiry-add {
    width: auto;
    padding: 0.6rem 1.4rem;
    margin-left: 0.5rem;
}
.enquiry-bar {
    position: fixed;
    left: 50%;
    bottom: 1.25rem;
    transform: translateX(-50%);
    z-index: 1001;
    width: min(440px, calc(100% - 2rem));
    font-family: var(--ff-primary);
}
.enquiry-bar[hidden] {
    display: none;
}
.enquiry-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    min-height: 54px;
    padding: 0.75rem 1.25rem;
    border: none;
    border-radius: 30px;
    background: var(--clr-primary-navy);
    color: #fff;
    font-family: var(--ff-primary);
    font-size: 1rem;
    font-weight: 700;
    box-shadow: 0 8px 28px rgba(26, 35, 126, 0.35);
    cursor: pointer;
}
.enquiry-toggle:hover {
    background: var(--clr-primary-navy-light);
}
.enquiry-toggle-label {
    font-size: 0.85rem;
    color: #ffcdd2;
    text-decoration: underline;
    text-underline-offset: 3px;
}
.enquiry-panel {
    background: #fff;
    border-radius: 18px;
    box-shadow: 0 12px 36px rgba(26, 35, 126, 0.25);
    padding: 1.1rem 1.1rem 1rem;
    margin-bottom: 0.6rem;
    max-height: min(60vh, 460px);
    overflow-y: auto;
}
.enquiry-panel-title {
    font-family: var(--ff-secondary);
    font-weight: 700;
    font-size: 1.15rem;
    color: var(--clr-primary-navy);
    margin: 0 0 0.6rem;
}
.enquiry-items {
    list-style: none;
    padding: 0;
    margin: 0;
}
.enquiry-items li {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid #eee;
    font-size: 0.92rem;
}
.enquiry-items a {
    flex: 1;
    color: var(--clr-primary-navy);
    text-decoration: none;
    font-weight: 600;
}
.enquiry-price {
    color: var(--clr-secondary-red);
    font-weight: 700;
    font-size: 0.85rem;
    white-space: nowrap;
}
.enquiry-remove {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: var(--clr-surface-warm);
    color: var(--clr-primary-navy);
    font-size: 1.2rem;
    line-height: 1;
    cursor: pointer;
}
.enquiry-hint {
    font-size: 0.8rem;
    color: #555;
    margin: 0.75rem 0;
}
.enquiry-actions {
    display: flex;
    gap: 0.6rem;
    align-items: center;
}
.enquiry-send {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 48px;
    border-radius: 30px;
    background: var(--clr-whatsapp);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
}
.enquiry-send:hover {
    background: var(--clr-whatsapp-dark);
    color: #fff;
}
.enquiry-send i {
    color: inherit !important;
}
.enquiry-clear {
    min-height: 48px;
    padding: 0 1rem;
    border: 1px solid #ccc;
    border-radius: 30px;
    background: #fff;
    color: #444;
    font-family: var(--ff-primary);
    font-weight: 600;
    cursor: pointer;
}
body.has-enquiry .sticky-whatsapp {
    display: none !important;
}
@media (max-width: 768px) {
    .enquiry-bar {
        bottom: 0.6rem;
    }
    body.has-enquiry .backToTopBtn {
        bottom: 80px;
    }
}

/* --- packages.css --- */
.pkg-page {
    max-width: 1200px;
    margin: 0 auto;
    padding: 3.5rem 1.25rem 4rem;
    font-family: var(--ff-primary);
}
.pkg-facts {
    list-style: none;
    margin: 2rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.75rem;
}
.pkg-facts li {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.9rem 1rem;
    background: var(--clr-surface-warm);
    border-radius: 14px;
    font-size: 0.9rem;
    line-height: 1.45;
    color: var(--clr-primary-navy);
    font-weight: 600;
}
.pkg-facts i {
    margin-top: 0.15rem;
    color: var(--clr-secondary-red) !important;
}
.pkg-tabs {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 2.5rem 0 0;
}
.pkg-tab {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0.55rem 1.3rem;
    border: 2px solid var(--clr-primary-navy);
    border-radius: 30px;
    color: var(--clr-primary-navy);
    font-weight: 700;
    font-size: 0.95rem;
    text-decoration: none;
    background: #fff;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.pkg-tab:hover,
.pkg-tab[aria-current="true"] {
    background: var(--clr-primary-navy);
    color: #fff;
}
.pkg-page.tabs-ready .pkg-category:not(.is-active) {
    display: none;
}
.pkg-category {
    margin-top: 2.5rem;
    scroll-margin-top: 90px;
}
.pkg-cat-head {
    text-align: center;
    margin-bottom: 1.75rem;
}
.pkg-cat-head h3 {
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    color: var(--clr-primary-navy);
    margin: 0 0 0.35rem;
    line-height: 1.25;
}
.pkg-cat-head p {
    margin: 0 auto;
    max-width: 36rem;
    color: #444;
}
.pkg-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
    align-items: stretch;
}
.pkg-cards:has(> .pkg-card:only-child) {
    grid-template-columns: minmax(0, 24rem);
    justify-content: center;
}
.pkg-card {
    position: relative;
    display: flex;
    flex-direction: column;
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid rgba(26, 35, 126, 0.12);
    box-shadow: 0 10px 30px rgba(26, 35, 126, 0.08);
    scroll-margin-top: 100px;
}
.pkg-card.is-popular {
    border: 2px solid var(--clr-primary-navy);
    box-shadow: 0 16px 40px rgba(26, 35, 126, 0.18);
}
.pkg-card.is-highlight {
    outline: 4px solid var(--clr-secondary-red);
    outline-offset: 3px;
}
.pkg-media {
    position: relative;
    aspect-ratio: 4 / 3;
    background: var(--clr-placeholder);
}
.pkg-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.pkg-placeholder {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    color: var(--clr-primary-navy);
    opacity: 0.45;
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.04em;
}
.pkg-placeholder i {
    font-size: 2rem;
    color: inherit !important;
}
.pkg-tier,
.pkg-badge {
    position: absolute;
    top: 0.9rem;
    padding: 0.3rem 0.8rem;
    border-radius: 30px;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.pkg-tier {
    left: 0.9rem;
    background: #fff;
    color: var(--clr-primary-navy);
}
.pkg-badge {
    right: 0.9rem;
    background: var(--clr-secondary-red);
    color: #fff;
}
.pkg-body {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: 1.4rem 1.4rem 1.5rem;
}
.pkg-name {
    font-family: var(--ff-secondary);
    font-size: 1.35rem;
    line-height: 1.25;
    letter-spacing: 0;
    color: var(--clr-primary-navy);
    margin: 0;
}
.pkg-price {
    margin: 0.5rem 0 0;
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--clr-secondary-red);
}
.pkg-from {
    font-size: 0.85rem;
    font-weight: 600;
    color: #666;
}
.pkg-guests {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0.35rem 0 0;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--clr-primary-navy);
}
.pkg-guests i {
    color: inherit !important;
}
.pkg-desc {
    margin: 0.75rem 0 0;
    font-size: 0.95rem;
    color: #444;
}
.pkg-plus {
    margin: 1rem 0 0;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--clr-primary-navy);
}
.pkg-list {
    list-style: none;
    margin: 0.75rem 0 1.25rem;
    padding: 0;
    display: grid;
    gap: 0.5rem;
    flex: 1;
    align-content: start;
}
.pkg-list li {
    position: relative;
    padding-left: 1.6rem;
    font-size: 0.95rem;
    line-height: 1.45;
    color: #222;
}
.pkg-list li::before {
    content: "\2713";
    position: absolute;
    left: 0;
    top: 0;
    width: 1.15rem;
    height: 1.15rem;
    border-radius: 50%;
    background: var(--clr-surface-warm);
    color: var(--clr-primary-navy);
    font-size: 0.72rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
}
.pkg-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    min-height: 48px;
    padding: 0.75rem 1.25rem;
    border-radius: 30px;
    background: var(--clr-whatsapp);
    color: #fff;
    font-weight: 700;
    text-decoration: none;
    transition: background-color 0.2s ease;
}
.pkg-cta:hover {
    background: var(--clr-whatsapp-dark);
    color: #fff;
}
.pkg-cta i {
    color: inherit !important;
}
.pkg-body .enquiry-add {
    margin-top: 0.6rem;
}
.pkg-swipe-hint {
    display: none;
}
.pkg-note {
    margin: 1.5rem auto 0;
    max-width: 44rem;
    text-align: center;
    font-size: 0.85rem;
    color: #555;
}
.pkg-steps,
.pkg-addons,
.pkg-chooser,
.pkg-custom,
.pkg-corporate {
    margin-top: 4rem;
}
.pkg-steps h3,
.pkg-addons h3,
.pkg-chooser h3 {
    text-align: center;
    color: var(--clr-primary-navy);
    font-size: clamp(1.5rem, 3vw, 2rem);
    margin: 0 0 1.5rem;
    line-height: 1.25;
}
.pkg-steps ol {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
}
.pkg-steps li {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1.4rem;
    background: #fff;
    border-radius: 16px;
    border: 1px solid rgba(26, 35, 126, 0.12);
}
.pkg-step-num {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--clr-primary-navy);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    margin-bottom: 0.4rem;
}
.pkg-steps strong {
    color: var(--clr-primary-navy);
    font-size: 1.05rem;
}
.pkg-steps li > span:last-child {
    font-size: 0.92rem;
    color: #444;
}
.pkg-addons {
    text-align: center;
}
.pkg-addons > p {
    margin: -0.75rem 0 1.25rem;
    color: #444;
}
.pkg-addons ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.6rem;
}
.pkg-addons a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0.5rem 1.1rem;
    border-radius: 30px;
    background: var(--clr-surface-warm);
    color: var(--clr-primary-navy);
    font-weight: 600;
    text-decoration: none;
}
.pkg-addons a:hover {
    background: var(--clr-primary-navy);
    color: #fff;
}
.pkg-chooser {
    background: var(--clr-primary-navy);
    color: #fff;
    border-radius: 24px;
    padding: 2.5rem 1.5rem;
    text-align: center;
    scroll-margin-top: 90px;
}
.pkg-chooser h3 {
    color: #fff;
    margin-bottom: 0.5rem;
}
.pkg-chooser > p {
    color: #ffcdd2;
    margin: 0 0 1.5rem;
}
.pkg-chooser-form {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 1rem;
    max-width: 720px;
    margin: 0 auto;
    text-align: left;
}
.pkg-chooser-form .form-group {
    flex: 1 1 220px;
    margin: 0;
}
.pkg-chooser-form label {
    color: #fff;
}
.pkg-chooser-btn {
    min-height: 52px;
    padding: 0.75rem 1.5rem;
    border: none;
    border-radius: 30px;
    background: #fff;
    color: var(--clr-primary-navy);
    font-family: var(--ff-primary);
    font-weight: 800;
    font-size: 1rem;
    cursor: pointer;
}
.pkg-chooser-btn:hover {
    background: var(--clr-surface-warm);
}
.pkg-chooser-result {
    max-width: 640px;
    margin: 1.5rem auto 0;
    padding: 1.25rem;
    border-radius: 16px;
    background: #fff;
    color: #222;
}
.pkg-chooser-result strong {
    color: var(--clr-primary-navy);
}
.pkg-chooser-result .pkg-result-actions {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 0.6rem;
    margin-top: 1rem;
}
.pkg-result-view {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    padding: 0.75rem 1.25rem;
    border: 2px solid var(--clr-primary-navy);
    border-radius: 30px;
    color: var(--clr-primary-navy);
    font-weight: 700;
    text-decoration: none;
}
.pkg-custom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem;
    flex-wrap: wrap;
    padding: 2rem;
    border-radius: 20px;
    background: var(--clr-surface-warm);
}
.pkg-custom h3 {
    color: var(--clr-primary-navy);
    font-size: 1.6rem;
    margin: 0 0 0.35rem;
    line-height: 1.25;
}
.pkg-custom p {
    margin: 0;
    max-width: 38rem;
    color: #333;
}
.pkg-corporate {
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: 2rem;
    align-items: start;
    scroll-margin-top: 90px;
}
.pkg-corp-info h3 {
    color: var(--clr-primary-navy);
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    margin: 0 0 1rem;
    line-height: 1.25;
}
.pkg-corp-info ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 0.6rem;
}
.pkg-corp-info li {
    display: flex;
    gap: 0.6rem;
    align-items: center;
    font-weight: 600;
    color: #222;
}
.pkg-corp-info i {
    color: var(--clr-whatsapp) !important;
}
.pkg-form {
    background: #fff;
    border-radius: 20px;
    padding: 1.75rem;
    border: 1px solid rgba(26, 35, 126, 0.12);
    box-shadow: 0 10px 30px rgba(26, 35, 126, 0.08);
    position: relative;
}
.pkg-crosssell {
    margin-top: 4rem;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}
.pkg-cross-card {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1.6rem;
    border-radius: 18px;
    background: var(--clr-surface-warm);
    color: var(--clr-primary-navy);
    text-decoration: none;
    transition: transform 0.2s ease;
}
.pkg-cross-card:hover {
    transform: translateY(-3px);
}
.pkg-cross-card i {
    font-size: 1.6rem;
    color: var(--clr-secondary-red) !important;
    margin-bottom: 0.3rem;
}
.pkg-cross-card strong {
    font-family: var(--ff-secondary);
    font-size: 1.25rem;
}
.pkg-cross-card span {
    color: #333;
}
@media (max-width: 960px) {
    .pkg-facts,
    .pkg-steps ol {
        grid-template-columns: 1fr 1fr;
    }
    .pkg-cards {
        grid-template-columns: 1fr 1fr;
    }
    .pkg-corporate {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 680px) {
    .pkg-page {
        padding-top: 2.5rem;
    }
    .pkg-facts {
        grid-template-columns: 1fr;
    }
    .pkg-tabs {
        flex-wrap: nowrap;
        justify-content: flex-start;
        overflow-x: auto;
        margin-left: -1.25rem;
        margin-right: -1.25rem;
        padding: 0 1.25rem 0.25rem;
        scrollbar-width: none;
    }
    .pkg-tabs::-webkit-scrollbar {
        display: none;
    }
    .pkg-tab {
        flex-shrink: 0;
    }
    .pkg-cards {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        gap: 0.9rem;
        margin: 0 -1.25rem;
        padding: 0.5rem 1.25rem 1rem;
        scrollbar-width: none;
    }
    .pkg-cards::-webkit-scrollbar {
        display: none;
    }
    .pkg-card {
        flex: 0 0 86%;
        scroll-snap-align: center;
    }
    .pkg-media {
        aspect-ratio: 16 / 9;
    }
    .pkg-swipe-hint {
        display: block;
        text-align: center;
        font-size: 0.85rem;
        color: #555;
        margin: 0.25rem 0 0;
    }
    .pkg-steps ol,
    .pkg-crosssell {
        grid-template-columns: 1fr;
    }
    .pkg-chooser {
        padding: 2rem 1.1rem;
    }
    .pkg-chooser-btn {
        width: 100%;
    }
    .pkg-custom {
        padding: 1.5rem;
    }
    .pkg-custom .pkg-cta {
        width: 100%;
    }
    .pkg-form {
        padding: 1.25rem;
    }
}
.pkg-cat-link {
    margin-top: 0.5rem !important;
}
.pkg-cat-link a {
    color: var(--clr-primary-navy);
    font-weight: 700;
}
.pkg-category:has(.pkg-card:only-child) .pkg-swipe-hint {
    display: none;
}

/* --- locations.css --- */
.loc-page {
    font-family: var(--ff-primary);
}
.loc-page > section,
.loc-page > article {
    max-width: 1200px;
    margin: 0 auto;
    padding: 3.5rem 1.25rem 0;
}
.loc-page .title {
    font-size: clamp(1.7rem, 3.5vw, 2.4rem);
    color: var(--clr-primary-navy);
    text-align: center;
    line-height: 1.25;
    margin: 0 0 1rem;
}
.loc-page .subtitle {
    text-align: center;
    max-width: 40rem;
    margin: -0.25rem auto 1.75rem;
    color: #444;
}
.loc-intro > p {
    max-width: 46rem;
    margin: 0 auto 1rem;
    font-size: 1.05rem;
    line-height: 1.7;
    color: #333;
}
.loc-facts {
    list-style: none;
    margin: 2rem 0 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.75rem;
}
.loc-facts li {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.9rem 1rem;
    border-radius: 14px;
    background: var(--clr-surface-warm);
    color: var(--clr-primary-navy);
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.45;
}
.loc-facts i {
    margin-top: 0.15rem;
    color: var(--clr-secondary-red) !important;
}
.loc-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
}
.loc-card {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1.6rem;
    border-radius: 20px;
    background: #fff;
    border: 1px solid rgba(26, 35, 126, 0.12);
    box-shadow: 0 10px 30px rgba(26, 35, 126, 0.08);
}
.loc-card h3 {
    font-family: var(--ff-secondary);
    font-size: 1.35rem;
    letter-spacing: 0;
    line-height: 1.25;
    color: var(--clr-primary-navy);
    margin: 0;
}
.loc-price {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--clr-secondary-red);
}
.loc-price span {
    font-size: 0.85rem;
    font-weight: 600;
    color: #666;
}
.loc-meta {
    margin: 0;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--clr-primary-navy);
}
.loc-card > p:not(.loc-price):not(.loc-meta):not(.ye-tier) {
    flex: 1;
    margin: 0.25rem 0 0.5rem;
    font-size: 0.95rem;
    color: #444;
}
.loc-card-actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.loc-btn {
    flex: 1 1 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    min-height: 46px;
    padding: 0.6rem 1.1rem;
    border-radius: 30px;
    font-weight: 700;
    font-size: 0.95rem;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.loc-btn i {
    color: inherit !important;
}
.loc-btn-wa {
    background: var(--clr-whatsapp);
    color: #fff;
}
.loc-btn-wa:hover {
    background: var(--clr-whatsapp-dark);
    color: #fff;
}
.loc-btn-outline {
    border: 2px solid var(--clr-primary-navy);
    color: var(--clr-primary-navy);
    background: #fff;
}
.loc-btn-outline:hover {
    background: var(--clr-primary-navy);
    color: #fff;
}
.loc-more {
    text-align: center;
    margin: 1.25rem 0 0;
}
.loc-more a {
    color: var(--clr-primary-navy);
    font-weight: 700;
}
.loc-chips {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.6rem;
}
.loc-chips a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0.5rem 1.15rem;
    border-radius: 30px;
    background: var(--clr-surface-warm);
    color: var(--clr-primary-navy);
    font-weight: 600;
    text-decoration: none;
}
.loc-chips a:hover {
    background: var(--clr-primary-navy);
    color: #fff;
}
.loc-page > .loc-gifting {
    display: flex;
    align-items: center;
    gap: 1.25rem;
    margin-top: 3.5rem;
    padding: 1.75rem 2rem;
    border-radius: 20px;
    background: var(--clr-surface-warm);
    max-width: calc(1200px - 2.5rem);
}
.loc-gifting > i {
    font-size: 2rem;
    color: var(--clr-secondary-red) !important;
}
.loc-gifting div {
    flex: 1;
}
.loc-gifting h2 {
    font-size: 1.4rem;
    letter-spacing: 0;
    line-height: 1.25;
    color: var(--clr-primary-navy);
    margin: 0 0 0.25rem;
}
.loc-gifting p {
    margin: 0;
    color: #333;
}
.loc-gifting .loc-btn {
    flex: 0 0 auto;
}
.loc-page > .loc-faq {
    max-width: none;
    padding: 0;
    margin-top: 3.5rem;
}
.loc-nearby {
    text-align: center;
    padding-bottom: 4rem !important;
}
.loc-nearby h2 {
    font-size: 1.3rem;
    letter-spacing: 0;
    color: var(--clr-primary-navy);
    margin: 0 0 1rem;
}
@media (max-width: 960px) {
    .loc-facts {
        grid-template-columns: 1fr 1fr;
    }
    .loc-cards {
        grid-template-columns: 1fr;
        max-width: 560px;
        margin: 0 auto;
    }
}
@media (max-width: 600px) {
    .loc-page > section,
    .loc-page > article {
        padding-top: 2.75rem;
    }
    .loc-facts {
        grid-template-columns: 1fr;
    }
    .loc-page > .loc-gifting {
        flex-direction: column;
        align-items: flex-start;
        margin-left: 1.25rem;
        margin-right: 1.25rem;
        padding: 1.5rem;
    }
    .loc-gifting .loc-btn {
        width: 100%;
    }
}
.sa-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
}
.sa-card {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    padding: 1.4rem;
    border-radius: 18px;
    background: #fff;
    border: 1px solid rgba(26, 35, 126, 0.12);
    box-shadow: 0 8px 24px rgba(26, 35, 126, 0.07);
    color: inherit;
    text-decoration: none;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.sa-card:hover,
.sa-card:focus-visible {
    transform: translateY(-3px);
    box-shadow: 0 14px 32px rgba(26, 35, 126, 0.14);
}
.sa-name {
    font-family: var(--ff-secondary);
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--clr-primary-navy);
}
.sa-desc {
    flex: 1;
    font-size: 0.92rem;
    line-height: 1.5;
    color: #444;
}
.sa-badge {
    align-self: flex-start;
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 0.75rem;
    border-radius: 30px;
    background: #f0f0f5;
    color: var(--clr-primary-navy);
    font-size: 0.8rem;
    font-weight: 700;
}
.sa-badge i {
    color: inherit !important;
}
.sa-badge.is-free {
    background: #e3f4ee;
    color: var(--clr-whatsapp-dark);
}
.sa-link {
    font-weight: 700;
    color: var(--clr-primary-navy);
}
@media (max-width: 960px) {
    .sa-grid {
        grid-template-columns: 1fr 1fr;
    }
}
@media (max-width: 560px) {
    .sa-grid {
        grid-template-columns: 1fr;
    }
}
.loc-work-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.75rem;
}
.loc-work-grid figure {
    margin: 0;
    border-radius: 16px;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: var(--clr-surface-warm);
}
.loc-work-grid img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
@media (max-width: 960px) {
    .loc-work-grid {
        grid-template-columns: 1fr 1fr;
    }
}
.ye-urgent {
    max-width: 1200px;
    margin: 2rem auto 0;
    padding: 0.9rem 1.25rem;
    border-radius: 14px;
    background: var(--clr-primary-navy);
    color: #fff;
    font-weight: 700;
    text-align: center;
}
.ye-urgent i {
    color: #ffcdd2 !important;
    margin-right: 0.4rem;
}
.ye-tier {
    margin: 0;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--clr-secondary-red);
}
.loc-card.ye-popular {
    border: 2px solid var(--clr-primary-navy);
    box-shadow: 0 16px 40px rgba(26, 35, 126, 0.18);
}
.ye-list {
    list-style: none;
    margin: 0.5rem 0 1rem;
    padding: 0;
    display: grid;
    gap: 0.45rem;
    flex: 1;
    align-content: start;
}
.ye-list li {
    position: relative;
    padding-left: 1.5rem;
    font-size: 0.93rem;
    line-height: 1.45;
    color: #222;
}
.ye-list li::before {
    content: "\2713";
    position: absolute;
    left: 0;
    color: var(--clr-primary-navy);
    font-weight: 800;
}
.loc-page .loc-card > p.loc-meta {
    flex: 0;
}
.ye-steps .item-steps {
    grid-template-columns: repeat(4, 1fr);
}
.work-study {
    scroll-margin-top: 90px;
}
.work-study .eyebrow {
    text-align: center;
}
.work-summary {
    max-width: 46rem;
    margin: 0 auto 2rem;
    text-align: center;
    font-size: 1.05rem;
    line-height: 1.7;
    color: #333;
}
.work-cols {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 2rem;
    margin-bottom: 2rem;
}
.work-cols h3 {
    font-size: 1.25rem;
    letter-spacing: 0;
    color: var(--clr-primary-navy);
    margin: 0 0 0.75rem;
}
.work-items {
    justify-content: flex-start;
}
.pf-grid.work-gallery {
    display: block;
    columns: 3;
    column-gap: 1rem;
}
.work-gallery .pf-item,
.work-gallery .pf-item:first-child {
    break-inside: avoid;
    margin: 0 0 1rem;
    grid-column: auto;
    grid-row: auto;
}
.work-gallery .pf-open img {
    height: auto;
}
.work-gallery .pf-event {
    display: none;
}
@media (max-width: 960px) {
    .ye-steps .item-steps {
        grid-template-columns: 1fr 1fr;
    }
    .work-cols {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 640px) {
    .pf-grid.work-gallery {
        display: block;
        columns: 2;
        column-gap: 0.6rem;
        overflow: visible;
        margin: 1.5rem 0 0;
        padding: 0;
    }
    .work-gallery .pf-item,
    .work-gallery .pf-item:first-child {
        flex: none;
        aspect-ratio: auto;
        margin-bottom: 0.6rem;
    }
    .work-gallery figcaption {
        padding: 1.4rem 0.6rem 0.5rem;
    }
    .work-gallery .pf-tag {
        font-size: 0.85rem;
    }
    .ye-steps .item-steps {
        grid-template-columns: 1fr;
    }
}

/* --- blog.css --- */
.post {
    max-width: 46rem;
    margin: 0 auto;
    padding: 3rem 1.25rem 4rem;
}
.post-header {
    text-align: center;
    margin-bottom: 2rem;
}
.post-header .eyebrow {
    margin-bottom: 0.6rem;
}
.post-title {
    font-family: var(--ff-secondary);
    color: var(--clr-primary-navy);
    font-size: clamp(2rem, 4.5vw, 2.9rem);
    line-height: 1.15;
    margin: 0 0 0.9rem;
}
.post-meta {
    color: #555;
    font-size: 0.92rem;
    margin: 0;
}
.post-hero {
    margin: 0 0 2.5rem;
}
.post-hero img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 460px;
    object-fit: cover;
    border-radius: 18px;
    background: var(--clr-placeholder);
}
.post-body {
    font-size: 1.06rem;
    line-height: 1.75;
    color: #333;
}
.post-body > p,
.post-body > ul,
.post-body > ol {
    margin: 0 0 1.25rem;
}
.post-body h2 {
    font-family: var(--ff-secondary);
    color: var(--clr-primary-navy);
    font-size: 1.7rem;
    line-height: 1.25;
    margin: 2.5rem 0 1rem;
    scroll-margin-top: 90px;
}
.post-body h3 {
    font-family: var(--ff-secondary);
    color: var(--clr-primary-navy);
    font-size: 1.25rem;
    margin: 1.75rem 0 0.6rem;
}
.post-body ul,
.post-body ol {
    padding-left: 1.4rem;
}
.post-body li {
    margin-bottom: 0.55rem;
}
.post-body li::marker {
    color: var(--clr-primary-red);
    font-weight: 700;
}
.post-body a {
    color: var(--clr-primary-navy);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: var(--clr-gold);
    text-underline-offset: 3px;
}
.post-body a:hover {
    color: var(--clr-primary-red);
}
.post-body strong {
    color: #1f1f1f;
}
.post-table {
    overflow-x: auto;
    margin: 0 0 1.5rem;
    border-radius: 14px;
    border: 1px solid rgba(26, 35, 126, 0.12);
}
.post-table:focus-visible {
    outline: 3px solid var(--clr-primary-navy);
    outline-offset: 2px;
}
.post-table table {
    width: 100%;
    min-width: 560px;
    border-collapse: collapse;
    font-size: 0.95rem;
    line-height: 1.5;
}
.post-table th,
.post-table td {
    padding: 0.8rem 1rem;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid rgba(26, 35, 126, 0.1);
}
.post-table thead th {
    background: var(--clr-primary-navy);
    color: #fff;
    font-weight: 600;
}
.post-table tbody th {
    color: var(--clr-primary-navy);
    white-space: nowrap;
}
.post-table tbody tr:nth-child(even) {
    background: var(--clr-surface-warm);
}
.post-table tbody tr:last-child th,
.post-table tbody tr:last-child td {
    border-bottom: 0;
}
.post-body .faq-list {
    margin-top: 1rem;
}
.post-cta {
    margin-top: 3rem;
    padding: 2rem;
    border-radius: 18px;
    background: var(--clr-primary-navy);
    color: #fff;
    text-align: center;
}
.post-cta h2 {
    font-family: var(--ff-secondary);
    font-size: 1.6rem;
    margin: 0 0 0.5rem;
    color: #fff;
}
.post-cta p {
    margin: 0 0 1.5rem;
    opacity: 0.92;
}
.post-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.5rem;
    align-items: center;
    justify-content: center;
}
.post-cta-link {
    color: #fff;
    font-weight: 600;
    text-underline-offset: 3px;
}
.blog-index {
    padding: 3.5rem 0 5rem;
    background: var(--clr-surface-warm);
}
.blog-index-header {
    text-align: center;
    max-width: 40rem;
    margin: 0 auto 2.5rem;
}
.blog-index-header .eyebrow {
    margin-bottom: 0.4rem;
}
.blog-index-header .subtitle {
    color: #444;
}
.blog-more {
    padding: 3.5rem 0 4.5rem;
    background: var(--clr-surface-warm);
}
.blog-more .title {
    text-align: center;
    margin-bottom: 2rem;
}
.blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(290px, 360px));
    justify-content: center;
    gap: 1.75rem;
}
.blog-card {
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.07);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.blog-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.12);
}
.blog-card-link {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: inherit;
    text-decoration: none;
}
.blog-card-link img {
    display: block;
    width: 100%;
    height: 200px;
    object-fit: cover;
    background: var(--clr-placeholder);
}
.blog-card-body {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1.25rem 1.4rem 1.5rem;
    flex: 1;
}
.blog-card-cat {
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--clr-gold-text);
}
.blog-card-title {
    font-family: var(--ff-secondary);
    color: var(--clr-primary-navy);
    font-size: 1.3rem;
    line-height: 1.3;
}
.blog-card-excerpt {
    color: #555;
    font-size: 0.95rem;
    line-height: 1.55;
}
.blog-card-date {
    margin-top: auto;
    padding-top: 0.4rem;
    color: #666;
    font-size: 0.85rem;
}
.blog-card-link:focus-visible {
    outline: 3px solid var(--clr-primary-navy);
    outline-offset: -3px;
}
@media (max-width: 768px) {
    .post {
        padding: 2rem 1rem 3rem;
    }
    .post-body {
        font-size: 1rem;
    }
    .post-body h2 {
        font-size: 1.45rem;
    }
    .post-cta {
        padding: 1.6rem 1.25rem;
    }
}
.legal-intro {
    font-size: 1.1rem;
    color: #444;
}
.legal-toc {
    margin: 0 0 2rem;
    padding: 1.25rem 1.5rem;
    border-radius: 14px;
    background: var(--clr-surface-warm);
}
.legal-toc-title {
    margin: 0 0 0.6rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--clr-gold-text);
}
.post-body .legal-toc ol {
    margin: 0;
    padding-left: 1.3rem;
    columns: 2;
    column-gap: 2rem;
    font-size: 0.95rem;
}
.post-body .legal-toc li {
    margin-bottom: 0.35rem;
    break-inside: avoid;
}
.legal .post-body h2 {
    font-size: 1.4rem;
}
@media (max-width: 600px) {
    .post-body .legal-toc ol {
        columns: 1;
    }
}
