/* Scoped to the homepage; service and legal pages retain their layout. */
#contacts.contact-preview .footer-container .footer-column { order: 0; }
.home-visual .gallery-pause[hidden] { display: none; }
.home-visual .feature-service-link:focus-visible,
.home-visual .pricing-button:focus-visible,
.home-visual .feature-contact-link:focus-visible {
    outline: 3px solid #594333;
    outline-offset: 4px;
}
.home-visual .contact-preview .footer-book-btn {
    position: relative;
    overflow: hidden;
}
.home-visual .contact-preview .footer-book-btn.is-in-view {
    animation: booking-nudge 8s ease-in-out .5s infinite, contact-soft-glow 8s ease-in-out .5s infinite;
}
@keyframes contact-soft-glow {
    0%, 35%, 100% { box-shadow: inset 0 1px 0 #fff, 0 2px 0 #987d68, 0 0 0 rgba(228, 210, 200, 0); }
    12% { box-shadow: inset 0 1px 0 #fff, 0 2px 0 #987d68, 0 0 18px rgba(228, 210, 200, .65), 0 0 42px rgba(192, 164, 142, .45); }
}
.home-visual .contact-preview .footer-book-btn::before {
    content: '';
    display: block;
    position: absolute;
    inset: 0 auto 0 0;
    width: 30%;
    height: 100%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, .48), transparent);
    pointer-events: none;
    opacity: 0;
    transform: translateX(-150%);
}
.home-visual .contact-preview .footer-book-btn.is-in-view::before {
    animation: booking-sheen 8s ease-in-out .5s infinite;
}
.home-visual .contact-preview .footer-book-btn:hover,
.home-visual .contact-preview .footer-book-btn:focus-visible,
.home-visual .contact-preview .footer-book-btn:active { animation: none; }
.home-visual .contact-preview .footer-book-btn:hover::before,
.home-visual .contact-preview .footer-book-btn:focus-visible::before,
.home-visual .contact-preview .footer-book-btn:active::before { animation: none; opacity: 0; }
@media (prefers-reduced-motion: reduce) {
    .home-visual .contact-preview .footer-book-btn.is-in-view { animation: none; }
    .home-visual .contact-preview .footer-book-btn.is-in-view::before { animation: none; display: none; }
}
.home-visual .photo-title { margin-bottom: 0; }
.home-visual .photo-carousel .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    opacity: 1;
    background: radial-gradient(circle at 32% 26%, #c0a48e 0%, #816954 42%, #594333 76%, #3d2d22 100%);
    box-shadow: inset 0 1px 1px rgba(255, 255, 255, .3), 0 1px 2px rgba(61, 45, 34, .2);
    border: 1px solid #a58c77;
}
.home-visual .photo-carousel .swiper-pagination-bullet-active {
    background: radial-gradient(circle at 32% 26%, #e4d2c8 0%, #987d68 35%, #594333 70%, #3d2d22 100%);
    border-color: #f7f2ee;
    box-shadow: 0 0 0 2px #816954, 0 2px 4px rgba(61, 45, 34, .25);
}
.home-visual .photo-carousel {
    background: radial-gradient(ellipse at 50% 42%,
        #f7f2ee 0%,
        #efe5de 35%,
        #e8d9cf 68%,
        #e4d2c8 100%);
}
.home-visual .gallery-pause {
    display: block;
    margin: 24px auto;
    width: 44px;
    height: 44px;
    border: 1px solid #c0a48e;
    border-radius: 8px;
    background: linear-gradient(180deg, #fff0e5, #e4d2c8 48%, #c0a48e);
    color: #241b12;
    box-shadow: inset 0 1px 0 #fff, 0 2px 0 #987d68, 0 4px 10px rgba(0, 0, 0, .12);
    transition: transform .15s, box-shadow .15s;
}
.home-visual .gallery-pause::before {
    box-sizing: border-box;
    width: 12px;
    height: 14px;
    border-left: 4px solid currentColor;
    border-right: 4px solid currentColor;
}
.home-visual .gallery-pause[aria-pressed="true"]::before {
    width: 0;
    height: 0;
    border-right: 0;
    border-left: 12px solid currentColor;
    border-top: 7px solid transparent;
    border-bottom: 7px solid transparent;
}
.home-visual .gallery-pause:hover { background: linear-gradient(180deg, #fff7f0, #ede0d6 48%, #d7b9a3); }
.home-visual .gallery-pause:active { transform: translateY(2px); box-shadow: inset 0 1px 3px rgba(0, 0, 0, .16); }
.home-visual .gallery-pause:focus-visible { outline: 3px solid #816954; outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) {
    .home-visual .gallery-pause { transition: none; }
}
.home-visual .pricing-block { background: #191919; padding: 64px 24px; }
.home-visual .pricing-title { padding: 0; margin: 0 auto 32px; font-size: 32px; }
.home-visual .pricing-container { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; max-width: 1000px; margin: 0 auto 28px; }
.home-visual .pricing-card { width: auto; max-width: none; margin: 0; padding: 32px; background: #282624; border: 1px solid #64574d; border-radius: 8px; box-shadow: none; transform: none; display: flex; flex-direction: column; align-items: stretch; text-align: left; }
.home-visual .pricing-card::before, .home-visual .pricing-card::after { display: none; }
.home-visual .pricing-card--hidden { display: none; }
.home-visual .pricing-plan-title { font-size: 26px; margin: 0 0 12px; padding: 0; color: #fff; }
.home-visual .pricing-subtitle { margin: 0 0 24px; color: #d9c9ba; }
.home-visual .pricing-features { margin: 0 0 28px; padding: 0; flex: 1; }
.home-visual .pricing-features li { font-size: 16px; line-height: 1.6; margin: 0 0 8px; }
.home-visual .pricing-cost { margin: 0 0 24px; padding-top: 20px; border-top: 1px solid #64574d; font-size: 21px; line-height: 1.6; color: #fff; min-height: 90px; }
.home-visual .pricing-button { width: 100%; margin: 0; height: 52px; background: linear-gradient(180deg, #fff0e5, #e4d2c8 48%, #c0a48e); color: #241b12; border: 1px solid #e4d2c8; border-radius: 8px; box-shadow: inset 0 1px 0 #fff, 0 2px 0 #987d68; }
.home-visual .pricing-button::before { display: none; }
.home-visual .pricing-button:hover { background: linear-gradient(180deg, #fff7f0, #ede0d6 48%, #d7b9a3); }
.home-visual .pricing-note, .home-visual .pricing-links { max-width: 1000px; margin: 16px auto 0; font-size: 14px; line-height: 1.6; text-align: center; }
.home-visual .pricing-links a { color: #e4d2c8; }
@media(max-width:768px) {
    .home-visual .pricing-container { grid-template-columns: minmax(0, 1fr); }
    .home-visual .pricing-block { padding: 40px 20px; }
    .home-visual .pricing-title { font-size: 26px; }
    .home-visual .pricing-card { padding: 24px; }
}
.home-visual .hero {
    height: calc(100svh - 64px);
    min-height: 560px;
    max-height: 920px;
    background-attachment: fixed;
    background-position: center top;
    padding: 120px 6% 56px;
    justify-content: center;
    align-items: flex-end;
    text-align: center;
}
.home-visual .hero::before {
    background: rgba(0, 0, 0, .16);
}
.home-visual .hero-content {
    position: relative;
    inset: auto;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
    transition: none;
}
.home-visual .hero-logo { display: block; margin-bottom: 24px; }
.home-visual .hero-logo img { width: 450px; max-width: 100%; height: auto; }
.home-visual .hero h1 {
    font-size: 36px;
    line-height: 1.15;
    font-weight: 500;
    letter-spacing: 0;
    margin: 0 auto 20px;
    max-width: 760px;
    text-shadow: 0 2px 24px rgba(0, 0, 0, .5);
}
.home-visual .hero p {
    padding: 0;
    margin: 0;
    white-space: normal;
    text-shadow: 0 1px 8px #000;
}
.home-visual .hero .hero-intro {
    font-size: 20px;
    line-height: 1.5;
    max-width: 460px;
    margin: 0 auto 28px;
}
.home-visual .hero-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 24px;
}
.home-visual .hero .btn {
    width: 240px;
    max-width: 100%;
    height: 54px;
    line-height: 54px;
    font-size: 16px;
    background: linear-gradient(180deg, #fff0e5 0%, #e4d2c8 48%, #c0a48e 100%);
    color: #241b12;
    border: 1px solid #e4d2c8;
    border-radius: 8px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), 0 3px 0 #987d68, 0 8px 22px rgba(0, 0, 0, .3);
    transition: transform .2s, border-color .2s, box-shadow .2s;
    animation: booking-nudge 8s ease-in-out 1s infinite;
}
@keyframes booking-nudge {
    0%, 2%, 25%, 100% { transform: translateY(0); }
    3.5%, 7.5% { transform: translateY(2px); }
    5% { transform: translateY(-1px); }
    6% { transform: translateY(.5px); }
    10% { transform: translateY(-.9px); }
    13% { transform: translateY(.55px); }
    16% { transform: translateY(-.32px); }
    19% { transform: translateY(.18px); }
    22% { transform: translateY(-.08px); }
}
.home-visual .hero .btn:hover,
.home-visual .hero .btn:focus-visible,
.home-visual .hero .btn:active,
.home-visual .hero .btn.active { animation: none; }
.home-visual .hero .btn::before {
    content: '';
    display: block;
    position: absolute;
    inset: 0 auto 0 0;
    width: 30%;
    height: 100%;
    background: linear-gradient(105deg, transparent, rgba(255, 255, 255, .48), transparent);
    pointer-events: none;
    opacity: 0;
    transform: translateX(-150%);
    animation: booking-sheen 8s ease-in-out 1s infinite;
}
@keyframes booking-sheen {
    0% { transform: translateX(-150%); opacity: 0; }
    2% { opacity: .85; }
    12% { transform: translateX(450%); opacity: .85; }
    14%, 100% { transform: translateX(450%); opacity: 0; }
}
.home-visual .hero .btn:hover::before,
.home-visual .hero .btn:focus-visible::before,
.home-visual .hero .btn:active::before,
.home-visual .hero .btn.active::before {
    animation: none;
    opacity: 0;
}
.home-visual .hero .btn:hover {
    background: linear-gradient(180deg, #fff7f0 0%, #ede0d6 48%, #d7b9a3 100%);
    border-color: #fff0e5;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 4px 0 #987d68, 0 12px 26px rgba(0, 0, 0, .32);
    transform: translateY(-2px);
}
.home-visual .hero .btn:active,
.home-visual .hero .btn.active {
    background: linear-gradient(180deg, #c0a48e 0%, #e4d2c8 100%);
    box-shadow: inset 0 2px 5px rgba(104, 73, 31, .18), 0 1px 0 #987d68, 0 3px 10px rgba(0, 0, 0, .22);
    transform: translateY(2px);
}
.home-visual .hero-photo-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-height: 44px;
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 5px;
    text-shadow: 0 1px 8px #000;
}
.home-visual .hero-photo-link:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 5px;
}
.home-visual .hero .hero-address {
    margin-top: 28px;
    font-size: 14px;
    line-height: 1.5;
}
.home-visual .features { padding-top: 32px; }
.home-visual .feature-block { padding: 24px; gap: 16px; border-radius: 8px; }
.home-visual .feature-block:hover { transform: translateY(-3px); }
.home-visual .feature-title { font-size: 22px; line-height: 1.2; margin: 0; }
.home-visual .feature-text { margin: 0; line-height: 1.55; }
.home-visual .feature-contact-link,
.home-visual .feature-service-link { margin-top: auto; align-self: flex-start; }
.home-visual .feature-service-link {
    background: rgba(255, 255, 255, .22);
    color: #29211d;
    border: 1px solid #816954;
    border-radius: 8px;
    box-shadow: none;
    padding: 12px 20px;
    min-height: 48px;
    text-decoration: none;
}
.home-visual .feature-service-link:hover { background: rgba(255, 255, 255, .45); transform: none; }
.home-visual .service-still-life { display: none; }
@media (min-width: 1100px) {
    .home-visual .features-container { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .home-visual .service-still-life { display: block; position: relative; min-height: 240px; overflow: hidden; border-radius: 8px; }
    .home-visual .service-still-life img { position: absolute; width: 100%; height: 100%; object-fit: cover; inset: 0; }
}
.home-visual .brand-ecosystem-mark {
    width: min(100%, 320px);
    justify-self: center;
}
@media (max-width: 768px) {
    .home-visual .hero {
        height: var(--hero-stable-height, calc(100svh - 48px));
        min-height: 620px;
        max-height: 850px;
        padding: 96px 24px 28px;
        background-position: center top;
        background-color: #252c2e;
    }
    .home-visual .hero::before { background: rgba(0, 0, 0, .26); }
    .home-visual .hero-logo img { width: 300px; }
    .home-visual .hero h1 { font-size: 24px; margin-bottom: 16px; }
    .home-visual .hero .hero-intro { font-size: 17px; margin-bottom: 22px; }
    .home-visual .hero-actions { gap: 10px 20px; }
    .home-visual .hero .btn { width: 100%; max-width: 360px; }
    .home-visual .hero .hero-address { margin-top: 14px; }
}
@media (max-height: 700px) and (min-width: 769px) {
    .home-visual .hero { min-height: 0; height: auto; padding-top: 120px; }
}
@media (max-width: 768px) {
    .home-visual .hero.parallax-js::after,
    .home-visual .optimize-block.parallax-js::after,
    .home-visual .trusted-block.parallax-js::after {
        top: -25svh;
        bottom: -25svh;
    }
    .home-visual .hero.parallax-js::after {
        top: calc(-1 * var(--hero-stable-overscan, 25svh));
        bottom: calc(-1 * var(--hero-stable-overscan, 25svh));
    }
}
@media (prefers-reduced-motion: reduce) {
    .home-visual .hero .btn { transition: none; transform: none; animation: none; }
    .home-visual .hero .btn::before { animation: none; display: none; }
}


            .home-visual .contact-preview { background: #191919; padding: 64px 24px 24px; }
            .contact-preview .contact-title { max-width: 1100px; margin: 0 auto 40px; color: #fff; font-size: 32px; text-align: left; }
            .contact-preview .footer-container { max-width: 1100px; display: grid; grid-template-columns: 1fr 1.2fr 1fr; gap: 48px; margin: 0 auto; align-items: start; }
            .contact-preview .footer-column { width: auto; max-width: none; padding: 0; margin: 0; text-align: left; align-items: stretch; }
            .contact-preview .footer-heading { margin: 0 0 20px; font-size: 16px; color: #d5bba5; text-align: left; }
            .contact-preview .footer-column p { margin: 0 0 12px; font-size: 16px; line-height: 1.6; text-align: left; }
            .contact-preview .footer-column a { color: #ece2da; overflow-wrap: anywhere; }
            .contact-preview .footer-column-book .footer-book-btn { display: flex; justify-content: center; align-items: center; width: 100%; max-width: 360px; height: 54px; margin: 0; padding: 0 20px; border: 1px solid #e4d2c8; border-radius: 8px; background: linear-gradient(180deg, #fff0e5, #e4d2c8 48%, #c0a48e); color: #241b12; box-shadow: inset 0 1px 0 #fff, 0 2px 0 #987d68; text-decoration: none; font-size: 16px; }
            .contact-preview .footer-book-btn::before { display: none; }
            .contact-preview .footer-column-book .footer-book-links { display: flex; gap: 12px; margin: 16px 0 0; justify-content: flex-start; flex-wrap: wrap; }
            .contact-preview .footer-book-link { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 16px; border: 1px solid #816954; border-radius: 8px; text-decoration: none; background: #282624; }
            .contact-preview .footer-book-link:hover { background: #3b332d; }
            .contact-preview .contact-phone { font-size: 20px; text-decoration: none; }
            .contact-preview .contact-email { font-size: 14px; color: #bbb0a7; }
            .contact-preview .contact-map { display: inline-block; min-height: 44px; padding: 8px 0; text-underline-offset: 4px; }
            .contact-preview .footer-links { margin: 0; }
            .contact-preview .footer-links li { margin: 0 0 12px; }
            .contact-preview .footer-links a { font-size: 14px; color: #bbb0a7; }
            .contact-preview .footer-bottom { max-width: 1100px; margin: 40px auto 0; border-top: 1px solid #4b4139; padding: 20px 0 0; text-align: left; }
            @media (max-width: 768px) {
                .home-visual .contact-preview { padding: 40px 24px 24px; }
                .contact-preview .contact-title { font-size: 26px; margin-bottom: 28px; }
                .contact-preview .footer-container { grid-template-columns: minmax(0, 1fr); gap: 32px; }
                .contact-preview .footer-column:not(.footer-column-book) { display: block; }
            }
        

            .contact-preview .contact-title,
            .contact-preview .footer-column,
            .contact-preview .footer-heading,
            .contact-preview .footer-column p,
            .contact-preview .footer-bottom { text-align: center; }
            .contact-preview .footer-column-book .footer-book-links { justify-content: center; }
            .contact-preview .footer-column-book .footer-book-btn { margin-inline: auto; }
            .contact-preview .footer-links { text-align: center; }
            .contact-preview .contact-title { margin-bottom: 32px; }
            .contact-preview .footer-container { gap: 32px; }
            .contact-preview .footer-container .footer-column {
                display: flex;
                flex-direction: column;
                align-items: center;
                gap: 16px;
            }
            .contact-preview .footer-heading,
            .contact-preview .footer-column p { margin: 0; padding: 0; line-height: 1.5; }
            .contact-preview .footer-column-book .footer-book-links { margin: 0; }
            .contact-preview .contact-map { padding: 0; min-height: 44px; display: inline-flex; align-items: center; }
            .contact-preview .footer-links { display: flex; flex-direction: column; gap: 12px; }
            .contact-preview .footer-links li { margin: 0; }
            @media (max-width: 768px) {
                .contact-preview .contact-title { line-height: 1.3; margin-bottom: 16px; }
                .contact-preview .contact-title span { display: block; margin-top: 10px; }
            }
        
