
:root {
    /* Font */
    --font-family: 'Montserrat', Arial, Helvetica, sans-serif;
    --font-family2: 'Iowan', Georgia, 'Times New Roman', serif;

    /* Colori brand PDF */
    --ivory: #DBC8B6;
    --paper: #FFFDFC;
    --ink: #1E1C1A;
    --muted: #947D6F;
    --line: rgba(120, 73, 77, .16);

    --plum: #78494D;
    --walnut: #B9975B;
    --sage: #947D6F;
    --sand: #DBC8B6;

    --radius: 4px;
    --topbar: 76px;
    --ease: cubic-bezier(.22, 1, .36, 1);
}
* {
    box-sizing: border-box
}

body {
    margin: 0;
    background: var(--ivory);
    color: var(--ink);

    overflow-x: hidden;
    font-family: var(--font-family);
}

h1,
h2,
h3,
.logo,
.hero-title,
.section-title {
    font-family: var(--font-family2);
}
img,
video,
canvas {
    max-width: 100%;
    display: block
}

a {
    text-decoration: none;
    color: inherit
}

button,
input,
select,
textarea {
    font: inherit
}

::selection {
    background: var(--plum);
    color: #fff
}

.dg-cursor {
    position: fixed;
    z-index: 3000;
    left: 0;
    top: 0;
    width: 16px;
    height: 16px;
    border: 1px solid rgba(120, 73, 77, .6);
    border-radius: 50%;
    pointer-events: none;
    transform: translate(-50%, -50%);
    opacity: 0
}

.dg-topbar {
    position: fixed;
    z-index: 1000;
    top: 0;
    left: 0;
    right: 0;
    height: var(--topbar);
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 28px;
    padding: 14px 28px;
    color: #fff;
    background: rgba(37, 31, 29, .28);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(255, 255, 255, .16)
}

body:not(.is-home) .dg-topbar,
.dg-topbar.is-scrolled {
    background: rgba(246, 242, 235, .9);
    color: var(--ink);
    border-bottom: 1px solid var(--line)
}

.dg-brand {
    display: flex;
    gap: 10px;
    align-items: center;
    font-weight: 650;
    line-height: .95
}

.dg-brand-mark {
    width: 38px;
    height: 38px;
    border: 1px solid currentColor;
    display: grid;
    place-items: center;
    border-radius: var(--radius);
    font-family: Georgia, serif
}

.dg-brand-text small {
    opacity: .72
}

.dg-nav {
    display: flex;
    justify-content: center;
    gap: 22px;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .09em
}

.dg-nav-link {
    opacity: .68;
    transition: .25s var(--ease)
}

.dg-nav-link:hover,
.dg-nav-link.is-active {
    opacity: 1
}

.dg-top-actions {
    display: flex;
    align-items: center;
    gap: 8px
}

.dg-language,
.dg-icon-link,
.dg-booking-open,.dg-booking-link {
    height: 38px;
    border: 1px solid currentColor;
    background: transparent;
    color: inherit;
    border-radius: var(--radius)
}

.dg-language {
    padding: 0 8px
}

.dg-icon-link {
    width: 38px;
    display: grid;
    place-items: center;
    padding-left: .5rem;padding-right: .5rem;
}
.dg-booking-open,.dg-booking-link {
    padding: 0 14px;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: .76rem
}

.container-fluid {
    padding-left: clamp(20px, 4vw, 64px);
    padding-right: clamp(20px, 4vw, 64px)
}

.eyebrow {
    font-size: .78rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--walnut);
    margin-bottom: 18px
}

.dg-section-dark .eyebrow,
.hero-section .eyebrow {
    color: rgba(255, 255, 255, .72)
}

h1,
h2,
h3,
p {
    margin-top: 0
}

.hero-title {
    font-size: 3rem;
    line-height: .98;
    letter-spacing: -.045em;
    max-width: 760px;
    margin-bottom: 24px
}

.page-title {
    font-size: 3rem;
    line-height: 1;
    letter-spacing: -.04em;
    max-width: 960px
}

.section-title {
    font-size: clamp(2rem, 4vw, 4.8rem);
    line-height: .98;
    letter-spacing: -.045em;
    max-width: 960px
}

.manifesto {
    font-size: clamp(2.2rem, 5.8vw, 7rem);
    line-height: .91;
    letter-spacing: -.06em;
    max-width: 1240px
}

.cta-title {
    font-size: clamp(2rem, 5vw, 5.8rem);
    line-height: .94;
    letter-spacing: -.055em;
    max-width: 1120px
}

.hero-lead,
.page-lead,
.section-text {
    font-size: clamp(1rem, 1.35vw, 1.28rem);
    line-height: 1.68;
    color: rgba(37, 31, 29, .78);
    max-width: 700px
}

.hero-lead {
    color: rgba(255, 255, 255, .86)
}

.dg-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0 20px;
    border-radius: var(--radius);
    border: 1px solid transparent;
    cursor: pointer;
    transition: .35s var(--ease)
}

.dg-btn-light {
    background: #fff;
    color: var(--ink)
}

.dg-btn-outline-light {
    border-color: rgba(255, 255, 255, .72);
    color: #fff
}

.dg-btn-dark {
    background: var(--ink);
    color: #fff
}

.dg-link {
    display: inline-flex;
    border-bottom: 1px solid currentColor;
    padding-bottom: 5px;
    margin-top: 22px
}

.magnetic {
    will-change: transform
}

.hero-section {
    min-height: 100svh;
    position: relative;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    background: #111;
    color: #fff
}

.hero-video,
.hero-shade,
#dg-webgl,
.hero-mask {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%
}

.hero-video {
    object-fit: cover;
    filter: saturate(.92) contrast(1.05)
}

.hero-shade {
    background: linear-gradient(90deg, rgba(0, 0, 0, .2), rgba(0, 0, 0, .14) 55%, rgba(0, 0, 0, .15)), linear-gradient(180deg, rgba(0, 0, 0, .16), rgba(0, 0, 0, .74));
    z-index: 1
}

#dg-webgl {
    z-index: 2;
    opacity: .34;
    pointer-events: none;
    mix-blend-mode: screen
}

.hero-mask {
    z-index: 3;
    background: radial-gradient(circle at 70% 42%, rgba(255, 255, 255, .12), transparent 8%), linear-gradient(135deg, transparent 0 50%, rgba(246, 242, 235, .06) 50% 51%, transparent 50%);
    pointer-events: none
}

.hero-grid {
    position: relative;
    z-index: 4;
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 24px;
    align-items: end;
    padding-top: 160px;
    padding-bottom: clamp(40px, 7vw, 90px)
}

.hero-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap
}

.hero-facts {
    justify-self: end;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    max-width: 560px
}

.hero-facts span {
    border: 1px solid rgba(255, 255, 255, .22);
    background: rgba(255, 255, 255, .08);
    backdrop-filter: blur(12px);
    padding: 18px;
    border-radius: var(--radius);
    font-size: .92rem
}

.hero-facts strong {
    font-size: 1.7rem;
    display: block;
    line-height: 1.05
}

.manifesto-section {
    min-height: 86vh;
    display: flex;
    align-items: center;
    padding: 120px 0;
    background: var(--paper)
}

.sequence-section {
    padding: 145px 0
}

.sequence-grid {
    display: grid;
    grid-template-columns: 1fr .92fr;
    gap: clamp(24px, 6vw, 90px);
    align-items: end
}

.sequence-list {
    display: grid;
    gap: 10px;
    margin-top: 36px
}

.sequence-list article {
    border-top: 1px solid var(--line);
    padding: 18px 0
}

.sequence-list span {
    font-size: .76rem;
    letter-spacing: .12em;
    color: var(--plum)
}

.sequence-list h3 {
    font-size: 1.3rem
}

.sequence-media {
    height: min(76vh, 780px);
    overflow: hidden;
    border-radius: var(--radius);
    margin: 0
}

.sequence-media img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.webgl-wall-section {
    padding: 140px 0;
    background: #171412;
    color: #fff;
    overflow: hidden
}

.wall-head .eyebrow {
    color: rgba(255, 255, 255, .68)
}

.wall-head .section-title {
    color: #fff
}

.wall-shell {
    position: relative;
    height: min(82vh, 820px);
    margin: 42px clamp(20px, 4vw, 64px) 0;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: var(--radius);
    overflow: hidden;
    background: radial-gradient(circle at 50% 20%, rgba(120, 73, 77, .34), transparent 35%), #0f0d0c
}

.wall-shell canvas {
    width: 100%;
    height: 100%
}

.wall-caption {
    position: absolute;
    left: 18px;
    bottom: 18px;
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(255, 255, 255, .18);
    backdrop-filter: blur(16px);
    color: #fff;
    border-radius: var(--radius);
    padding: 14px 16px;
    font-size: .85rem;
    letter-spacing: .08em;
    text-transform: uppercase
}

.rooms-story {
    position: relative;
    min-height: 110vh;
    background: #171412;
    color: #fff
}

.rooms-pin {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 32px;
    align-items: center;
    padding: 120px clamp(20px, 4vw, 64px);
    position: sticky;
    top: 0
}

.rooms-visual {
    height: 74vh;
    position: relative;
    overflow: hidden;
    border-radius: var(--radius)
}

.room-layer {
    position: absolute;
    inset: 0;
    margin: 0;
    opacity: 0;
    clip-path: inset(14% 14% 14% 14%);
    transform: scale(.95)
}

.room-layer.is-active {
    opacity: 1
}

.room-layer img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.rooms-copy .section-title {
    color: #fff
}

.room-steps {
    display: grid;
    gap: 12px;
    margin-top: 28px
}

.room-steps article {
    border-top: 1px solid rgba(255, 255, 255, .18);
    padding-top: 18px;
    opacity: .45
}

.room-steps article:first-child {
    opacity: 1
}

.room-steps p {
    color: rgba(255, 255, 255, .68)
}

.drag-gallery-section {
    padding: 145px 0;
    background: var(--paper);
    overflow: hidden
}

.gallery-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 20px;
    margin-bottom: 42px
}

.gallery-hint {
    font-size: .84rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--muted)
}

.drag-gallery {
    overflow: hidden;
    cursor: grab
}

.drag-gallery.is-dragging {
    cursor: grabbing
}

.drag-track {
    display: flex;
    gap: 14px;
    will-change: transform;
    padding: 0 clamp(20px, 4vw, 64px)
}

.drag-card {
    position: relative;
    flex: 0 0 clamp(290px, 34vw, 560px);
    height: clamp(390px, 60vh, 690px);
    overflow: hidden;
    border-radius: var(--radius);
    background: #ddd;
    transform: scale(.88);
    opacity: .5;
    transition: filter .3s var(--ease)
}

.drag-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.08)
}

.drag-card div {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    background: rgba(255, 255, 255, .75);
    backdrop-filter: blur(14px);
    border: 1px solid rgba(255, 255, 255, .32);
    border-radius: var(--radius);
    padding: 16px
}

.drag-card h3 {
    margin-bottom: 6px
}

.drag-card p {
    font-size: .92rem;
    color: rgba(37, 31, 29, .7);
    margin-bottom: 0
}

.location-section {
    padding: 145px 0
}

.location-card {
    display: grid;
    grid-template-columns: 1.15fr 1fr auto;
    gap: 32px;
    align-items: end;
    border: 1px solid var(--line);
    padding: clamp(24px, 5vw, 70px);
    border-radius: var(--radius);
    background: #fff
}

.faq-preview {
    padding: 130px 0;
    background: #ece3d8
}

.faq-preview-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 36px 0
}

.faq-preview-grid article {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 24px
}

.cta-section {
    padding: 155px 0;
    background: var(--plum);
    color: #fff
}

.cta-section .eyebrow {
    color: rgba(255, 255, 255, .72)
}

.cta-section .dg-btn-dark {
    background: #fff;
    color: var(--ink)
}

.page-hero {
    padding: calc(var(--topbar) + 105px) 0 92px;
    background: var(--paper)
}

.content-grid-section,
.rooms-grid-section,
.faq-section,
.contact-section,
.room-detail-content {
    padding: 72px 0 135px
}

.content-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px
}

.content-card {
    border: 1px solid var(--line);
    background: #fff;
    border-radius: var(--radius);
    padding: 28px;
    min-height: 270px
}

.content-card h2 {
    font-size: 1.65rem;
    line-height: 1.05
}

.content-card p,
.faq-item p,
.room-text-block p,
.room-benefits li {
    color: rgba(37, 31, 29, .72);
    line-height: 1.65
}

.rooms-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px
}

.room-card {
    display: grid;
    grid-template-columns: .9fr 1fr;
    gap: 18px;
    border: 1px solid var(--line);
    background: #fff;
    border-radius: var(--radius);
    padding: 12px;
    min-height: 380px
}

.room-card figure {
    height: 100%;
    margin: 0;
    overflow: hidden;
    border-radius: var(--radius)
}

.room-card img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.room-card div {
    padding: 18px;
    align-self: end
}

.room-card span {
    font-size: .76rem;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--plum)
}

.room-detail-hero {
    padding: calc(var(--topbar) + 82px) 0 82px;
    background: var(--paper)
}

.room-detail-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 30px;
    align-items: end
}

.room-detail-grid figure {
    height: 68vh
}

.image-frame {
    overflow: hidden;
    border-radius: var(--radius);
    margin: 0
}

.image-frame img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

.room-detail-content .container-fluid {
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    gap: 12px
}

.room-text-block,
.room-benefits {
    border: 1px solid var(--line);
    background: #fff;
    border-radius: var(--radius);
    padding: 30px
}

.room-benefits ul {
    padding-left: 18px
}

.faq-list {
    max-width: 1080px
}

.faq-item {
    border: 1px solid var(--line);
    background: #fff;
    border-radius: var(--radius);
    margin-bottom: 8px;
    padding: 0 22px
}

.faq-item summary {
    cursor: pointer;
    font-size: 1.2rem;
    font-weight: 650;
    padding: 22px 0
}

.contact-layout {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 12px
}

.contact-panel,
.contact-form {
    border: 1px solid var(--line);
    background: #fff;
    border-radius: var(--radius);
    padding: 32px
}

.contact-panel a,
.dg-footer a {
    display: block;
    margin-bottom: 8px
}

.contact-form {
    display: grid;
    gap: 14px
}

.contact-form label,
.dg-booking-form label {
    display: grid;
    gap: 7px;
    color: var(--muted)
}

.contact-form input,
.contact-form textarea,
.dg-booking-form input,
.dg-booking-form select {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: #fff;
    padding: 12px;
    color: var(--ink)
}

.dg-footer {
    background: #151311;
    color: #fff;
    padding: 92px clamp(20px, 4vw, 64px) 24px
}

.dg-footer h2 {
    font-size: clamp(2rem, 4vw, 4rem);
    line-height: .96;
    letter-spacing: -.05em
}

.dg-footer h3 {
    font-size: 1rem;
    color: rgba(255, 255, 255, .76)
}

.dg-footer p,
.dg-footer a {
    color: rgba(255, 255, 255, .68);
    line-height: 1.6
}


.dg-footer-bottom {
    display: flex;
    justify-content: center;
    gap: 20px;
    border-top: 1px solid rgba(255, 255, 255, .14);
    padding-top: 18px;
    margin-top: 60px;
    color: rgba(255, 255, 255, .48);
    font-size: .85rem;
    text-align: center;
}

/* === PANNELLO PRENOTAZIONE ===
   Il pannello non e' piu' agganciato al viewport: e' ancorato al documento,
   quindi scorre insieme alla pagina. */
.dg-booking-panel {
    position: absolute;   /* era: fixed */
    top: 0;
    left: 0;
    right: 0;
    bottom: auto;         /* annulla il vecchio inset: 0 */
    height: 0;            /* il contenitore non occupa spazio nel layout */
    z-index: 9999;
    pointer-events: none
}

.dg-booking-panel.is-open {
    pointer-events: auto
}

/* Il backdrop invece resta fisso: deve coprire sempre tutto lo schermo */
.dg-booking-backdrop {
    position: fixed;      /* era: absolute */
    inset: 0;
    background: rgba(0, 0, 0, .48);
    opacity: 0;
    pointer-events: none;
    transition: opacity .35s var(--ease)
}

.dg-booking-panel.is-open .dg-booking-backdrop {
    opacity: 1;
    pointer-events: auto
}

.dg-booking-card {
    position: absolute;
    right: 0;
    top: var(--topbar);   /* parte sotto la topbar */
    height: auto;         /* era: 100% -> ora si adatta al contenuto */
    max-height: none;
    width: min(540px, 100%);
    background: var(--paper);
    padding: 34px;
    transform: translateX(105%);
    transition: transform .55s var(--ease);
    box-shadow: -30px 0 80px rgba(0, 0, 0, .22);
    overflow: visible     /* era: auto -> scrolla la pagina, non la card */
}

.dg-booking-panel.is-open .dg-booking-card {
    transform: translateX(0)
}

.dg-close {
    position: absolute;
    right: 18px;
    top: 18px;
    width: 38px;
    height: 38px;
    border: 1px solid var(--line);
    background: #fff;
    border-radius: var(--radius)
}

.dg-booking-card h2 {
    font-size: 2.3rem;
    line-height: 1
}

.dg-booking-form {
    display: grid;
    gap: 14px;
    margin-top: 24px
}
.dg-booking-form form button{
 background:#514641;border-radius:0;padding:.5rem
}
.dg-chatbot {
    position: fixed;
    right: 18px;
    bottom: 18px;
    z-index: 1500;display: none;
}

.dg-chat-toggle {
    height: 44px;
    width: 44px;
    border: 0;
    background: var(--plum);
    color: #fff;
    border-radius: var(--radius);
    box-shadow: 0 20px 50px rgba(0, 0, 0, .18)
}

.dg-chat-window {
    position: absolute;
    right: 0;
    bottom: 54px;
    width: min(360px, calc(100vw - 36px));
    background: #fff;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: 0 20px 70px rgba(0, 0, 0, .18);
    opacity: 0;
    transform: translateY(8px);
    pointer-events: none;
    transition: all .35s var(--ease)
}

.dg-chat-window.is-open {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto
}

.dg-chat-head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 16px;
    border-bottom: 1px solid var(--line)
}

.dg-chat-head button {
    border: 0;
    background: transparent;
    font-size: 20px
}

.dg-chat-body {
    padding: 16px;
    max-height: 280px;
    overflow: auto;
    font-size: .92rem;
    line-height: 1.5
}

.dg-chat-actions {
    display: flex;
    gap: 6px;
    padding: 12px;
    border-top: 1px solid var(--line)
}

.dg-chat-actions button {
    border: 1px solid var(--line);
    background: var(--ivory);
    border-radius: var(--radius);
    padding: 8px;
    font-size: .78rem
}

.split-line {
    display: block;
    overflow: hidden
}

.split-line > span {
    display: block
}

.reveal-media,
.reveal-card,
.reveal-line {
    will-change: transform, opacity
}

@media(max-width:991px) {
    .dg-cursor {
        display: none
    }

    .dg-topbar {
        grid-template-columns: auto auto;
        height: auto;
        padding: 10px 14px
    }

    .dg-nav {
        display: none
    }

    .dg-brand-text {
        display: none
    }

    .hero-grid,
    .sequence-grid,
    .rooms-pin,
    .location-card,
    .content-grid,
    .rooms-grid,
    .room-detail-grid,
    .room-detail-content .container-fluid,
    .contact-layout {
        grid-template-columns: 1fr
    }

    .hero-grid {
        padding-top: 130px
    }

    .hero-facts {
        justify-self: stretch;
        grid-template-columns: 1fr
    }

    .rooms-pin {
        position: relative
    }

    .rooms-visual {
        height: 50vh
    }

    .content-grid,
    .faq-preview-grid {
        grid-template-columns: 1fr
    }

    .strip-grid {
        grid-template-columns: 1fr 1fr
    }

    .wall-shell {
        height: 62vh
    }

    .room-card {
        grid-template-columns: 1fr
    }

    .room-card figure {
        height: 280px
    }
}

@media(max-width:575px) {

    .hero-title,
    .page-title {
        font-size: 3rem
    }

    .drag-card {
        flex-basis: 82vw
    }

    .strip-grid {
        grid-template-columns: 1fr
    }
}

@media(prefers-reduced-motion:reduce) {
    * {
        animation: none !important;
        transition: none !important;
        scroll-behavior: auto !important
    }
}




:root {
    --ease-natural: cubic-bezier(.19, 1, .22, 1);
    --ease-soft: cubic-bezier(.25, .46, .45, .94);
}

/* More elegant type scale: less gigantic, more controlled */
.hero-title {
    font-size: 3rem !important;
    letter-spacing: -.035em !important;
    line-height: .98 !important;
    max-width: 720px !important;
}

.page-title {
    font-size: 3rem !important;
    max-width: 900px !important;
    line-height: 1.02 !important;
}

.section-title {
    font-size: clamp(2rem, 3.45vw, 4.05rem) !important;
    line-height: 1.01 !important;
    letter-spacing: -.04em !important;
    max-width: 900px !important;
}

.manifesto {
    font-size: clamp(2rem, 4.8vw, 5.75rem) !important;
    line-height: .96 !important;
    letter-spacing: -.05em !important;
    max-width: 1160px !important;
}

.cta-title {
    font-size: clamp(2rem, 4.2vw, 5rem) !important;
    line-height: .98 !important;
}

.hero-section {
    min-height: 100svh;
}

.hero-video {
    will-change: transform, filter;
}

.hero-shade {
    background:
        linear-gradient(90deg, rgba(0, 0, 0, .58), rgba(0, 0, 0, .12) 55%, rgba(0, 0, 0, .42)),
        linear-gradient(180deg, rgba(0, 0, 0, .12), rgba(0, 0, 0, .68)) !important;
}

.hero-grid {
    padding-bottom: clamp(54px, 8vw, 104px) !important;
}

.hero-facts span {
    padding: 16px !important;
    background: rgba(255, 255, 255, .07) !important;
}

/* Natural text split */
.dg-line-mask {
    display: block;
    overflow: hidden;
    padding-bottom: .035em;
}

.dg-line-mask > span {
    display: block;
    will-change: transform, opacity, filter;
}

.dg-word {
    display: inline-block;
    will-change: opacity, filter, transform;
}

.dg-reveal-text {
    will-change: transform, opacity, filter;
}

/* Sections enter softly, not theatrical */
[data-flow-section] {
    position: relative;
    will-change: transform, opacity;
}

.manifesto-section {
    min-height: 78vh !important;
    padding: 110px 0 !important;
    background: linear-gradient(180deg, #fffcf7, #f6f2eb) !important;
}

.sequence-section,
.editorial-section,
.location-section,
.faq-preview {
    padding-top: clamp(92px, 10vw, 148px) !important;
    padding-bottom: clamp(92px, 10vw, 148px) !important;
}

/* White space and restrained editorial flow */
.sequence-grid,
.location-card,
.room-detail-grid {
    gap: clamp(28px, 6vw, 86px) !important;
}

.sequence-list article,
.room-steps article {
    padding-top: 20px !important;
    padding-bottom: 12px !important;
}

/* Image reveals: elegant clip, small scale only */
.image-frame,
.sequence-media,
.reveal-media {
    clip-path: inset(0 0 0 0);
}

.image-frame img,
.sequence-media img,
.drag-card img,
.room-card img {
    transform-origin: center center;
}

/* Cards: less noisy hover, more luxury */
.service-tile,
.proof-card,
.content-card,
.room-card,
.faq-preview-grid article,
.location-card {
    border-color: rgba(37, 31, 29, .10) !important;
    box-shadow: none !important;
    transition:
        transform .7s var(--ease-natural),
        border-color .7s var(--ease-natural),
        background-color .7s var(--ease-natural),
        box-shadow .7s var(--ease-natural) !important;
}

.service-tile:hover,
.proof-card:hover,
.content-card:hover,
.room-card:hover,
.faq-preview-grid article:hover {
    transform: translateY(-6px) !important;
    border-color: rgba(120, 73, 77, .18) !important;
    box-shadow: 0 24px 70px rgba(37, 31, 29, .055) !important;
}

/* Rooms storytelling: calmer, more legible */
.rooms-story {
    background: #171412 !important;
}

.rooms-pin {
    gap: clamp(32px, 5vw, 72px) !important;
}

.rooms-visual {
    height: min(72vh, 760px) !important;
}

.room-layer {
    clip-path: inset(0 0 0 0) !important;
    opacity: 0;
    transform: scale(1.02);
}

.room-layer.is-active {
    opacity: 1;
    transform: scale(1);
}

.room-steps article {
    opacity: .46;
    transition: opacity .6s var(--ease-natural), transform .6s var(--ease-natural), border-color .6s var(--ease-natural);
}

.room-steps article.is-current {
    opacity: 1 !important;
    transform: translateX(0) !important;
    border-color: rgba(255, 255, 255, .45) !important;
}

/* Drag gallery: more refined and less gimmicky */
.drag-gallery-section {
    padding-top: clamp(110px, 11vw, 165px) !important;
    padding-bottom: clamp(110px, 11vw, 165px) !important;
}

.drag-card {
    border-radius: 4px !important;
    transition: filter .5s var(--ease-natural), opacity .5s var(--ease-natural) !important;
}

.drag-card div {
    background: rgba(255, 252, 247, .74) !important;
}

/* WebGL wall: more understated */
.webgl-wall-section {
    padding-top: clamp(110px, 11vw, 160px) !important;
    padding-bottom: clamp(110px, 11vw, 160px) !important;
}

.wall-shell {
    height: min(76vh, 760px) !important;
    background:
        radial-gradient(circle at 50% 18%, rgba(120, 73, 77, .24), transparent 33%),
        #12100f !important;
}

/* Navigation underline remains subtle */
.dg-nav-link::after {
    bottom: -7px !important;
    opacity: .55;
}

/* Reduce cursor prominence */
.dg-cursor {
    width: 14px !important;
    height: 14px !important;
    opacity: .55 !important;
}

/* Mobile text remains controlled */
@media(max-width:991px) {
    .manifesto {
        font-size: clamp(2rem, 10vw, 4.2rem) !important;
    }

    .section-title {
        font-size: clamp(1.9rem, 8vw, 3.3rem) !important;
    }

    .rooms-pin {
        position: relative !important;
    }
}




.tao-dining-widget {
    position: relative;
    padding: clamp(110px, 11vw, 168px) 0;
    background:
        linear-gradient(180deg, var(--paper), #f1e8dd);
    overflow: hidden;
}

#diningRichiesta {
    padding-top: 6rem;
    padding-bottom: 6rem
}

.tao-dining-widget::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 18% 12%, rgba(120, 73, 77, .08), transparent 28%),
        radial-gradient(circle at 88% 80%, rgba(148, 125, 111, .10), transparent 30%);
    pointer-events: none;
}

.tao-dining-head {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(280px, .52fr);
    gap: clamp(24px, 5vw, 78px);
    align-items: end;
    margin-bottom: clamp(42px, 6vw, 82px);
}

.tao-dining-intro {
    color: rgba(37, 31, 29, .70);
    line-height: 1.72;
    max-width: 520px;
    margin: 0;
}

.tao-dining-layout {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(190px, 260px) minmax(0, 1fr);
    gap: clamp(18px, 4vw, 60px);
    align-items: stretch;
}

.tao-dining-index {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 8px;
    padding-bottom: 78px;
}

.tao-dining-tab {
    border: 1px solid rgba(37, 31, 29, .12);
    background: rgba(255, 255, 255, .42);
    color: var(--ink);
    border-radius: var(--radius);
    padding: 16px 14px;
    text-align: left;
    display: grid;
    gap: 8px;
    cursor: pointer;
    transition:
        background .55s var(--ease-natural),
        border-color .55s var(--ease-natural),
        transform .55s var(--ease-natural),
        color .55s var(--ease-natural);
}

.tao-dining-tab span {
    font-size: .72rem;
    letter-spacing: .14em;
    color: var(--plum);
}

.tao-dining-tab strong {
    font-size: 1.02rem;
    line-height: 1.1;
}

.tao-dining-tab:hover,
.tao-dining-tab.is-active {
    background: var(--ink);
    color: #fff;
    border-color: var(--ink);
    transform: translateX(6px);
}

.tao-dining-tab.is-active span,
.tao-dining-tab:hover span {
    color: rgba(255, 255, 255, .64);
}

.tao-dining-swiper {
    width: 100%;
    overflow: visible;
}

.tao-dining-slide {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(300px, .62fr);
    gap: clamp(20px, 4vw, 56px);
    align-items: end;
    min-height: clamp(520px, 67vh, 720px);
}

.tao-dining-slide figure {
    position: relative;
    height: clamp(420px, 64vh, 700px);
    margin: 0;
    overflow: hidden;
    border-radius: var(--radius);
    clip-path: inset(0 0 0 0);
    background: #d8cbbc;
}

.tao-dining-slide figure::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 42%, rgba(0, 0, 0, .18));
    pointer-events: none;
}

.tao-dining-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.08);
    will-change: transform;
}

.tao-dining-copy {
    padding-bottom: clamp(72px, 8vw, 120px);
}

.tao-dining-copy span {
    display: block;
    font-size: .76rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--plum);
    margin-bottom: 18px;
}

.tao-dining-copy h3 {
    font-size: clamp(2rem, 3.3vw, 4.2rem);
    line-height: .98;
    letter-spacing: -.045em;
    margin-bottom: 20px;
}

.tao-dining-copy p {
    font-size: clamp(1rem, 1.2vw, 1.18rem);
    line-height: 1.72;
    color: rgba(37, 31, 29, .72);
    max-width: 500px;
}

.tao-dining-controls {
    position: absolute;
    left: calc(clamp(20px, 4vw, 64px) + 260px + clamp(18px, 4vw, 60px));
    bottom: 0;
    right: 0;
    height: 48px;
    display: flex;
    align-items: center;
    gap: 18px;
    z-index: 4;
}

.tao-dining-prev,
.tao-dining-next {
    border: 0;
    background: transparent;
    color: var(--ink);
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: .75rem;
    padding: 0;
    cursor: pointer;
    position: relative;
}

.tao-dining-prev::after,
.tao-dining-next::after {
    content: "";
    display: block;
    height: 1px;
    background: currentColor;
    transform: scaleX(.45);
    transform-origin: left;
    transition: transform .45s var(--ease-natural);
    margin-top: 5px;
}

.tao-dining-prev:hover::after,
.tao-dining-next:hover::after {
    transform: scaleX(1);
}

.tao-dining-progress {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: .78rem;
    letter-spacing: .12em;
    color: rgba(37, 31, 29, .72);
}

.tao-dining-progress i {
    display: block;
    width: 96px;
    height: 1px;
    background: rgba(37, 31, 29, .18);
    position: relative;
    overflow: hidden;
}

.tao-dining-progress i::before {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--plum);
    transform: scaleX(var(--progress, .25));
    transform-origin: left;
    transition: transform .65s var(--ease-natural);
}

/* Active slide animation states */
.tao-dining-slide figure,
.tao-dining-copy span,
.tao-dining-copy h3,
.tao-dining-copy p {
    will-change: transform, opacity, filter, clip-path;
}

.tao-dining-slide:not(.swiper-slide-active) .tao-dining-copy {
    pointer-events: none;
}

.ap-dining-layout,
.ap-dining-slide {
    align-items: end !important;
}

.ap-dining-media {
    align-self: end !important;
}

@media(max-width:991px) {

    .tao-dining-head,
    .tao-dining-layout,
    .tao-dining-slide {
        grid-template-columns: 1fr;
    }

    .tao-dining-index {
        flex-direction: row;
        overflow: auto;
        padding-bottom: 0;
    }

    .tao-dining-tab {
        min-width: 180px;
    }

    .tao-dining-slide {
        min-height: auto;
    }

    .tao-dining-slide figure {
        height: 52vh;
    }

    .tao-dining-copy {
        padding-bottom: 76px;
    }

    .tao-dining-controls {
        left: clamp(20px, 4vw, 64px);
    }
}

:root {
    --ap-ease: cubic-bezier(.19, 1, .22, 1);
    --ap-ease-inout: cubic-bezier(.575, .005, .285, 1.005);
    --ap-bg-1: #a79893;
    --ap-bg-2: #938580;
    --ap-bg-3: #786a65;
    --ap-bg-4: #514641;
}

.ap-line-mask {
    display: block;
    overflow: hidden;
    padding-bottom: .045em;
}

.ap-line-mask > span {
    display: block;
    will-change: transform, opacity, filter;
}

.ap-word {
    display: inline-block;
    will-change: transform, opacity, filter;
}

.ap-dining-widget {
    position: relative;
    overflow: hidden;
    min-height: 100vh;
    padding: clamp(92px, 9vw, 150px) 0;
    color: #fffff4;
    background: #514641;
    isolation: isolate;
}

.ap-dining-backgrounds {
    position: absolute;
    inset: 0;
    z-index: -2;
}

.ap-dining-bg {
    position: absolute;
    inset: 0;
    transform: scaleX(0);
    transform-origin: right;
    opacity: 1;
    transition:
        transform 2000ms var(--ap-ease),
        opacity 1500ms var(--ap-ease);
}

.ap-dining-bg.is-active {
    transform: scaleX(1);
}

.ap-bg-1 {
    background: var(--ap-bg-1)
}

.ap-bg-2 {
    background: var(--ap-bg-2)
}

.ap-bg-3 {
    background: var(--ap-bg-3)
}

.ap-bg-4 {
    background: var(--ap-bg-4)
}

.ap-dining-widget::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(circle at 70% 20%, rgba(255, 255, 255, .13), transparent 26%),
        linear-gradient(90deg, rgba(0, 0, 0, .06), rgba(0, 0, 0, .18));
    pointer-events: none;
}

.ap-dining-head {
    display: grid;
    grid-template-columns: .75fr 1.25fr;
    gap: clamp(24px, 5vw, 80px);
    align-items: end;
    margin-bottom: clamp(44px, 6vw, 92px);
}

.ap-dining-eyebrow {
    color: rgba(255, 255, 244, .72) !important;
}

.ap-dining-main-title {
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 400;
    font-size: clamp(2.15rem, 4.8vw, 6.2rem);
    line-height: .94;
    letter-spacing: -.045em;
    max-width: 1120px;
    margin: 0;
}

.ap-dining-layout {
    display: grid;
    grid-template-columns: 1.35fr .65fr;
    gap: clamp(28px, 5vw, 82px);
    align-items: stretch;
}

.ap-dining-left {
    min-width: 0;
}

.ap-dining-swiper {
    width: 100%;
    overflow: visible;
}

.ap-dining-slide {
    display: grid !important;
    grid-template-columns: .95fr .78fr;
    gap: clamp(24px, 4vw, 70px);
    align-items: center;
    min-height: min(68vh, 720px);
    opacity: 0 !important;
    pointer-events: none;
}

.ap-dining-slide.swiper-slide-active {
    opacity: 1 !important;
    pointer-events: auto;
}

.ap-dining-media {
    height: min(66vh, 720px);
    min-height: 460px;
    overflow: hidden;
    position: relative;
    border-radius: 4px;
    transform: translateX(0);
}

.ap-mask {
    transform: translateY(-100.1%);
    transition: transform 1700ms var(--ap-ease-inout);
}

.ap-mask .ap-mask-inner {
    height: 100%;
    transform: translateY(100.1%);
    transition: transform 1700ms var(--ap-ease-inout);
}

.ap-mask.is-active {
    transform: none;
}

.ap-mask.is-active .ap-mask-inner {
    transform: none;
}

.ap-mask-inner img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.1);
    transition: transform 3000ms var(--ap-ease);
}

.ap-mask.is-active img {
    transform: scale(1.02);
}

.ap-dining-copy {
    max-width: 520px;
    align-self: end;
    padding-bottom: clamp(20px, 4vw, 72px);
}

.ap-count {
    display: block;
    font-size: .82rem;
    letter-spacing: .18em;
    margin-bottom: 24px;
    opacity: .68;
}

.ap-kicker {
    color: rgba(255, 255, 244, .68) !important;
    margin-bottom: 18px !important;
}

.ap-title {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.05rem, 4vw, 4.9rem);
    line-height: .94;
    letter-spacing: -.045em;
    font-weight: 400;
    margin: 0 0 24px;
}

.ap-text {
    color: rgba(255, 255, 244, .76);
    line-height: 1.72;
    font-size: clamp(1rem, 1.2vw, 1.15rem);
    max-width: 460px;
}

.ap-dining-copy .dg-link {
    color: #fffff4;
    margin-top: 20px;
}

.ap-dining-right {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    border-left: 1px solid rgba(255, 255, 244, .22);
    padding-left: clamp(22px, 3vw, 50px);
}

.ap-dining-tabs {
    display: grid;
    gap: 10px;
}

.ap-dining-tab {
    border: 0;
    border-bottom: 1px solid rgba(255, 255, 244, .18);
    background: transparent;
    color: rgba(255, 255, 244, .46);
    text-align: left;
    padding: 18px 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.35rem, 2.1vw, 2.4rem);
    line-height: 1;
    transition:
        color 1000ms var(--ap-ease),
        transform 1000ms var(--ap-ease);
}

.ap-dining-tab span {
    font-family: Inter, system-ui, sans-serif;
    font-size: .72rem;
    letter-spacing: .15em;
    display: block;
    margin-bottom: 8px;
}

.ap-dining-tab.is-active {
    color: #fffff4;
    transform: translateX(10px);
}

.ap-dining-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-top: 40px;
}

.ap-arrow {
    border: 1px solid rgba(255, 255, 244, .34);
    background: transparent;
    color: #fffff4;
    height: 44px;
    padding: 0 18px;
    border-radius: 4px;
    font-size: .78rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    transition:
        background 700ms var(--ap-ease),
        color 700ms var(--ap-ease),
        transform 700ms var(--ap-ease);
}

.ap-arrow:hover {
    background: #fffff4;
    color: #514641;
    transform: translateY(-3px);
}

.ap-fraction {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-family: Georgia, serif;
    font-size: 2rem;
}

.ap-fraction em {
    font-size: 1rem;
    opacity: .5;
    font-style: normal;
}

/* Sequence states for text inside active slide */
.ap-dining-copy > * {
    opacity: 0;
    transform: translateY(36px);
    filter: blur(8px);
}

.ap-dining-slide.swiper-slide-active .ap-dining-copy > * {
    opacity: 1;
    transform: none;
    filter: blur(0px);
    transition:
        transform 1500ms var(--ap-ease),
        opacity 1000ms var(--ap-ease),
        filter 1200ms var(--ap-ease);
}

.ap-dining-slide.swiper-slide-active .ap-count {
    transition-delay: 420ms
}

.ap-dining-slide.swiper-slide-active .ap-kicker {
    transition-delay: 520ms
}

.ap-dining-slide.swiper-slide-active .ap-title {
    transition-delay: 640ms
}

.ap-dining-slide.swiper-slide-active .ap-text {
    transition-delay: 780ms
}

.ap-dining-slide.swiper-slide-active .dg-link {
    transition-delay: 920ms
}

/* Above the fold timing refinement */
.hero-copy > *,
.hero-facts span {
    will-change: transform, opacity, filter;
}

.hero-title .ap-line-mask > span {
    transform-origin: left center;
}

/* Minimal parallax classes */
.ap-parallax-text {
    will-change: transform;
}

@media(max-width:991px) {

    .ap-dining-head,
    .ap-dining-layout,
    .ap-dining-slide {
        grid-template-columns: 1fr !important;
    }

    .ap-dining-media {
        height: 52vh;
        min-height: 340px;
    }

    .ap-dining-right {
        border-left: 0;
        padding-left: 0;
        margin-top: 28px;
    }

    .ap-dining-tabs {
        grid-template-columns: 1fr 1fr;
    }
}

@media(max-width:575px) {
    .ap-dining-main-title {
        font-size: clamp(2rem, 12vw, 3.8rem)
    }

    .ap-title {
        font-size: clamp(2rem, 10vw, 3.6rem)
    }

    .ap-dining-tabs {
        grid-template-columns: 1fr
    }
}


:root {
    --v18-x: clamp(24px, 5.8vw, 104px);
    --v18-y: clamp(104px, 10vw, 172px);
    --v18-ease: cubic-bezier(.19, 1, .22, 1);
    --v18-mask: cubic-bezier(.575, .005, .285, 1.005);
}

/* Audit correction 01: more breathing, without changing V15 structure */
.container-fluid {
    padding-left: var(--v18-x) !important;
    padding-right: var(--v18-x) !important;
}

.manifesto-section,
.sequence-section,
.editorial-section,
.services-strip,
.drag-gallery-section,
.location-section,
.faq-preview,
.cta-section,
.content-grid-section,
.rooms-grid-section,
.faq-section,
.contact-section {
    padding-top: var(--v18-y) !important;
    padding-bottom: var(--v18-y) !important;
}

.page-hero {
    padding-top: calc(var(--topbar, 76px) + clamp(92px, 9vw, 145px)) !important;
    padding-bottom: clamp(92px, 9vw, 145px) !important;
}

/* Audit correction 02: preserve V15 hero beauty */
.hero-section {
    min-height: 100svh !important;
}

.hero-grid {
    padding-left: var(--v18-x) !important;
    padding-right: var(--v18-x) !important;
    padding-bottom: clamp(58px, 8vw, 110px) !important;
}

.hero-title {
    font-size: 4rem !important;
    line-height: .98 !important;
    letter-spacing: -.035em !important;
    max-width: 740px !important;
}

.hero-lead {
    max-width: 710px !important;
    line-height: 1.72 !important;
}

/* Audit correction 03: controlled typography */
.section-title {
    font-size: clamp(2.05rem, 3.45vw, 3.55rem) !important;
    line-height: 1.03 !important;
    letter-spacing: -.035em !important;
}

.manifesto {
    font-size: clamp(2.1rem, 4.85vw, 5.75rem) !important;
    line-height: .96 !important;
}

.page-title {
    font-size: 3rem !important;
    line-height: 1.04 !important;
}

.cta-title {
    font-size: clamp(2.1rem, 4.2vw, 5rem) !important;
    line-height: 1 !important;
}

/* Audit correction 04: Aquapetra-style minimal header */
.dg-topbar,
.dg-topbar-minimal {
    height: 72px !important;
    display: grid !important;
    grid-template-columns: 240px 1fr 240px !important;
    align-items: center !important;
    padding: 0 var(--v18-x) !important;
    background: transparent !important;
    border-bottom: 0 !important;
    color: #fffff4 !important;
    backdrop-filter: none !important;
    transition:
        background 1000ms var(--v18-ease),
        color 1000ms var(--v18-ease),
        transform 1000ms var(--v18-ease) !important;
}

body:not(.is-home) .dg-topbar,
.dg-topbar.is-scrolled {
    background: rgba(246, 242, 235, .90) !important;
    color: var(--ink, #1E1C1A) !important;
    backdrop-filter: blur(16px) !important;
    border-bottom: 1px solid rgba(37, 31, 29, .08) !important;
}

.dg-nav,
.dg-nav-hidden {
    display: none !important;
}

.dg-menu-controller {
    justify-self: start;
    display: flex;
    align-items: center;
    gap: 15px;
    width: 240px;
    height: 44px;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
}

.dg-menu-lines {
    width: 57px;
    display: grid;
    gap: 8px;
}

.dg-menu-lines i {
    display: block;
    height: 1px;
    width: 57px;
    background: currentColor;
    transform-origin: left;
    transition: transform 900ms var(--v18-ease);
}

.dg-menu-controller:hover .dg-menu-lines i:first-child {
    transform: scaleX(.72)
}

.dg-menu-controller:hover .dg-menu-lines i:last-child {
    transform: scaleX(1.1)
}

.dg-menu-label {
    font-size: 12px;
    letter-spacing: .28em;
    text-transform: uppercase;
}

.dg-brand-centered {
    justify-self: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    line-height: .95;
    text-align: center;
    color: inherit;margin-top:-5px
}
.dg-brand-centered img{
width:auto;height:90px
}
.dg-brand-centered .dg-brand-mark {
    width: 34px;
    height: 34px;
    border: 1px solid currentColor;
    border-radius: 4px;
    display: grid;
    place-items: center;
    font-family: Georgia, serif;
    margin-bottom: 3px;
}

.dg-brand-word {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 17px;
    letter-spacing: .06em;
}

.dg-brand-centered small {
    font-size: 10px;
    letter-spacing: .22em;
    text-transform: uppercase;
    opacity: .75;
}

.dg-top-actions-minimal {
    justify-self: end;
    width: 240px;
    display: flex !important;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
}

.dg-language,
.dg-icon-link,
.dg-booking-open,.dg-booking-link {
    height: 38px !important;
    border-color: currentColor !important;
    background: transparent !important;
    color: inherit !important;
    border-radius: 4px !important;
}

.dg-booking-open,.dg-booking-link {
    padding: 0 22px !important;
    font-size: 11px !important;
    letter-spacing: .18em !important;
}
.dg-booking-link {
    padding: .6rem 14px !important;
    font-size: 11px !important;
    min-width: max-content;
    letter-spacing: .18em !important;
}
/* Audit correction 05: fullscreen menu */
.dg-overlay-menu {
    position: fixed;
    inset: 0;
    z-index: 2100;
    pointer-events: none;
    color: #fffff4;
}

.dg-overlay-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .45);
    opacity: 0;
    transition: opacity 1000ms var(--v18-ease);
}

.dg-overlay-panel {
    position: absolute;
    inset: 0;
    background: #514641;
    transform: translateY(-100%);
    transition: transform 1300ms var(--v18-mask);
    padding: clamp(24px, 4vw, 70px) var(--v18-x);
    overflow: auto;
}

body.menu-open {
    overflow: hidden
}

body.menu-open .dg-overlay-menu {
    pointer-events: auto
}

body.menu-open .dg-overlay-backdrop {
    opacity: 1
}

body.menu-open .dg-overlay-panel {
    transform: none
}

.dg-overlay-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 52px;
    margin-bottom: clamp(54px, 8vw,  88px);
}

.dg-overlay-top .eyebrow {
    color: rgba(255, 255, 244, .72) !important;
    margin: 0;
}

.dg-overlay-close {
    border: 1px solid rgba(255, 255, 244, .45);
    background: transparent;
    color: #fffff4;
    height: 42px;
    padding: 0 18px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: .15em;
    font-size: 12px;
}

.dg-overlay-grid {
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: clamp(40px, 8vw, 130px);
    align-items: end;
}

.dg-overlay-primary {
    display: grid;
    gap: 10px
}

.dg-overlay-link {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.3rem, 6.4vw, 7.8rem);
    line-height: .92;
    letter-spacing: -.06em;
    color: rgba(255, 255, 244, .54);
    display: flex;
    gap: clamp(16px, 2vw, 34px);
    align-items: baseline;
    transform: translateY(30px);
    opacity: 0;
    transition:
        color 900ms var(--v18-ease),
        transform 900ms var(--v18-ease),
        opacity 900ms var(--v18-ease);
}

body.menu-open .dg-overlay-link {
    transform: none;
    opacity: 1;
}

body.menu-open .dg-overlay-link:nth-child(1) {
    transition-delay: 180ms
}

body.menu-open .dg-overlay-link:nth-child(2) {
    transition-delay: 240ms
}

body.menu-open .dg-overlay-link:nth-child(3) {
    transition-delay: 300ms
}

body.menu-open .dg-overlay-link:nth-child(4) {
    transition-delay: 360ms
}

body.menu-open .dg-overlay-link:nth-child(5) {
    transition-delay: 420ms
}

body.menu-open .dg-overlay-link:nth-child(6) {
    transition-delay: 480ms
}

.dg-overlay-link span {
    font-family: Inter, system-ui, sans-serif;
    font-size: .75rem;
    letter-spacing: .18em;
    color: rgba(255, 255, 244, .45);
}

.dg-overlay-link:hover,
.dg-overlay-link.is-active {
    color: #fffff4
}

.dg-overlay-side {
    border-left: 1px solid rgba(255, 255, 244, .18);
    padding-left: clamp(28px, 4vw, 70px);
    opacity: 0;
    transform: translateY(20px);
    transition:
        opacity 1000ms var(--v18-ease) 520ms,
        transform 1000ms var(--v18-ease) 520ms;
}

body.menu-open .dg-overlay-side {
    opacity: 1;
    transform: none;padding: 2rem;
}

.dg-overlay-side .eyebrow {
    color: rgba(255, 255, 244, .65) !important
}

.dg-overlay-side h2 {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2rem, 3.2vw, 4.2rem);
    line-height: 1;
    letter-spacing: -.04em;
}

.dg-overlay-side p {
    color: rgba(255, 255, 244, .72);
    line-height: 1.7;
    max-width: 420px;
}

/* Audit correction 06: layout grid repair */
.sequence-grid,
.location-card,
.room-detail-grid {
    gap: clamp(42px, 7vw, 120px) !important;
}

.proof-grid,
.strip-grid,
.content-grid,
.rooms-grid {
    gap: clamp(14px, 1.4vw, 24px) !important;
    max-width: 1500px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.room-card {
    min-height: 400px !important
}

.content-card,
.service-tile,
.proof-card {
    padding: clamp(24px, 2.4vw, 42px) !important;
}

/* Audit correction 07: restore V15 dining strength, only add breathing */
.ap-dining-widget {
    padding-top: clamp(120px, 12vw, 200px) !important;
    padding-bottom: clamp(120px, 12vw, 200px) !important;
}

.ap-dining-head {
    margin-bottom: clamp(62px, 7vw, 112px) !important;
}

.ap-dining-layout {
    gap: clamp(42px, 7vw, 120px) !important;
}

.ap-dining-slide {
    min-height: min(70vh, 760px) !important;
}

.ap-dining-media {
    min-height: 500px !important;
}

.ap-dining-main-title {
    font-size: clamp(2.15rem, 4.7vw, 6rem) !important;
}

.ap-title {
    font-size: clamp(2.05rem, 3.8vw, 4.6rem) !important;
}

/* Audit correction 08: preserve images/gallery assets */
.drag-track {
    padding-left: var(--v18-x) !important;
    padding-right: var(--v18-x) !important;
}

.wall-shell {
    margin-left: var(--v18-x) !important;
    margin-right: var(--v18-x) !important;
}

@media(max-width:991px) {
    :root {
        --v18-x: clamp(18px, 5vw, 36px)
    }

    .dg-topbar,
    .dg-topbar-minimal {
        grid-template-columns: auto 1fr auto !important;
        padding: 0 var(--v18-x) !important;
    }

    .dg-menu-controller {
        width: auto
    }

    .dg-menu-label {
        display: none
    }

    .dg-menu-lines,
    .dg-menu-lines i {
        width: 42px
    }

    .dg-brand-word {
        font-size: 14px
    }

    .dg-brand-centered small {
        display: none
    }

    .dg-top-actions-minimal {
        width: auto
    }

    .dg-language {
        display: none
    }

    .dg-icon-link {
        display: none !important
    }

    .dg-booking-open {
        height: 34px !important;
        padding: 0 10px !important
    }

    .dg-overlay-grid {
        grid-template-columns: 1fr
    }

    .dg-overlay-side {
        border-left: 0;
        border-top: 1px solid rgba(255, 255, 244, .18);
        padding-left: 0;
        padding-top: 28px;
    }

    .dg-overlay-link {
        font-size: clamp(2.4rem, 13vw, 5rem)
    }

    .sequence-grid,
    .location-card,
    .ap-dining-layout,
    .ap-dining-slide {
        grid-template-columns: 1fr !important;
    }

    .ap-dining-right {
        border-left: 0 !important;
        padding-left: 0 !important;
    }

    .ap-dining-media {
        min-height: 360px !important
    }
}



:root {
    --v19-ease: cubic-bezier(.19, 1, .22, 1);
    --v19-mask: cubic-bezier(.575, .005, .285, 1.005);
}

/* 01. Hero text readability: stronger layering, not heavier design */
.hero-section {
    isolation: isolate !important;
}

.hero-video {
    z-index: 0 !important;
}

#dg-webgl {
    z-index: 1 !important;
    opacity: .22 !important;
}

.hero-shade {
    z-index: 2 !important;
    background: linear-gradient(90deg, rgba(0, 0, 0, .16), rgba(0, 0, 0, .34) 48%, rgba(0, 0, 0, .18)),
        linear-gradient(180deg, rgba(0, 0, 0, .22), rgba(0, 0, 0, .18)) !important;
}

.hero-mask {
    z-index: 3 !important;
    opacity: .55 !important;
    pointer-events: none !important;
}

.hero-grid {
    z-index: 6 !important;
}

.hero-readable,
.hero-readable-facts {
    position: relative;
    z-index: 7 !important;
}

.hero-title,
.hero-lead,
.hero-actions,
.hero-facts {
    text-shadow: 0 18px 45px rgba(0, 0, 0, .38);
}

.hero-title {
    color: #fffff4 !important;
    opacity: 1 !important;
    filter: none !important;
}

.hero-lead {
    color: rgba(255, 255, 244, .88) !important;
}

.hero-facts span {
    color: #fffff4 !important;
    background: rgba(20, 18, 16, .32) !important;
    border-color: rgba(255, 255, 244, .24) !important;
    backdrop-filter: blur(14px) !important;
}

/* 02. Menu overlay: smaller, elegant, no giant aggressive typography */
.dg-overlay-link {
    font-size: clamp(1.85rem, 4.4vw, 5.25rem) !important;
    line-height: .96 !important;
    letter-spacing: -.045em !important;
    gap: clamp(12px, 1.4vw, 24px) !important;
}

.dg-overlay-link span {
    font-size: .68rem !important;
    letter-spacing: .16em !important;
}

.dg-overlay-primary {
    gap: clamp(6px, .7vw, 12px) !important;
}

.dg-overlay-side h2 {
    font-size: clamp(1.65rem, 2.55vw, 3.25rem) !important;
    line-height: 1.04 !important;
}

.dg-overlay-side p {
    font-size: .98rem !important;
    line-height: 1.72 !important;
}

/* 03. Menu no double scrollbar */
html.menu-open-html,
body.menu-open {
    overflow: hidden !important;
    height: 100% !important;
}

body.menu-open #smooth-wrapper,
body.menu-open #smooth-content {
    overflow: hidden !important;
}

.dg-overlay-menu {
    overflow: hidden !important;
}

.dg-overlay-panel,
.dg-overlay-panel-scroll {
    overflow: auto !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
}

.dg-overlay-panel::-webkit-scrollbar,
.dg-overlay-panel-scroll::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
}

body.menu-open .dg-overlay-panel {
    max-height: 100svh !important;
}

/* 04. Header refinement */
.dg-topbar-minimal {
    height: 76px !important;
}

.dg-menu-label {
    font-size: 11px !important;
    letter-spacing: .24em !important;
}

.dg-menu-lines,
.dg-menu-lines i {
    width: 50px !important;
}

.dg-brand-word {
    font-size: 16px !important;
}

.dg-booking-open,.dg-booking-link {
    letter-spacing: .16em !important;
}

/* 05. Slower, more natural title motion helper classes */
.hero-title,
.aqua-title,
.manifesto,
.section-title,
.page-title,
.cta-title,
.ap-dining-main-title,
.ap-title {
    will-change: transform, opacity, filter;
}

/* 06. Less mechanical movement */
[data-flow-section] {
    transform: none !important;
}

.service-tile:hover,
.proof-card:hover,
.content-card:hover,
.room-card:hover,
.faq-preview-grid article:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 22px 65px rgba(37, 31, 29, .05) !important;
}

/* 07. Dining still strong but slightly calmer */
.ap-dining-copy > * {
    transition-duration: 1800ms !important;
}

.ap-dining-slide.swiper-slide-active .ap-count {
    transition-delay: 520ms !important
}

.ap-dining-slide.swiper-slide-active .ap-kicker {
    transition-delay: 680ms !important
}

.ap-dining-slide.swiper-slide-active .ap-title {
    transition-delay: 860ms !important
}

.ap-dining-slide.swiper-slide-active .ap-text {
    transition-delay: 1040ms !important
}

.ap-dining-slide.swiper-slide-active .dg-link {
    transition-delay: 1220ms !important
}

/* 08. Mobile hero readability */
@media(max-width:991px) {
    .hero-shade {
        background:
            linear-gradient(180deg, rgba(0, 0, 0, .55), rgba(0, 0, 0, .72)),
            linear-gradient(90deg, rgba(0, 0, 0, .62), rgba(0, 0, 0, .42)) !important;
    }

    .dg-overlay-link {
        font-size: clamp(1.95rem, 10vw, 4rem) !important;
    }
}



:root {
    --v20-x: clamp(24px, 6vw, 112px);
    --v20-y: clamp(110px, 12vw, 190px);
    --v20-ease: cubic-bezier(.19, 1, .22, 1);
    --v20-mask: cubic-bezier(.575, .005, .285, 1.005);
}

.container-fluid {
    padding-left: var(--v20-x) !important;
    padding-right: var(--v20-x) !important;
}

/* Big editorial sections */
.v20-big-visual-section {
    padding: var(--v20-y) 0;
    background: linear-gradient(180deg, #f6f2eb, #fffcf7);
    position: relative;
    overflow: clip;
}

.v20-big-visual-section.is-reverse {
    background: linear-gradient(180deg, #fffcf7, #f6f2eb);
}

.v20-big-visual-grid {
    display: grid;
    grid-template-columns: .86fr 1.14fr;
    gap: clamp(42px, 7vw, 128px);
    align-items: end;
}

.v20-big-visual-section.is-reverse .v20-big-copy {
    order: 2;
}

.v20-big-copy {
    padding-bottom: clamp(20px, 4vw, 78px);
}

.v20-big-copy .section-title {
    max-width: 780px !important;
}

.v20-big-copy .section-text {
    max-width: 620px !important;
}

.v20-big-image {
    height: min(76vh, 780px);
    min-height: 520px;
    margin: 0;
    overflow: hidden;
    border-radius: 4px;
    position: relative;
    background: #ddd;
}

.v20-big-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.08);
}

.v20-big-image figcaption,
.v20-full-bleed-image figcaption {
    position: absolute;
    left: 18px;
    bottom: 18px;
    z-index: 2;
    background: rgba(255, 252, 247, .76);
    backdrop-filter: blur(14px);
    border: 1px solid rgba(255, 255, 255, .3);
    border-radius: 4px;
    padding: 12px 14px;
    font-size: .76rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: #514641;
}

/* Home full image break */
.v20-home-image-break {
    padding: clamp(80px, 8vw, 130px) 0;
    background: #171412;
    overflow: clip;
}

.v20-full-bleed-image {
    margin: 0;
    height: min(86vh, 900px);
    min-height: 540px;
    position: relative;
    overflow: hidden;
    border-radius: 4px;
}

.v20-full-bleed-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.08);
}

/* Make internal pages feel like home */
.page-hero {
    min-height: clamp(460px, 58vh, 680px);
    display: flex;
    align-items: end;
}

.content-grid-section,
.rooms-grid-section,
.faq-section,
.contact-section,
.room-detail-content {
    position: relative;
    overflow: clip;
}

.content-grid-section::before,
.rooms-grid-section::before,
.faq-section::before,
.contact-section::before,
.room-detail-content::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    width: 42%;
    height: 1px;
    background: rgba(81, 70, 65, .22);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 1600ms var(--v20-ease);
}

.content-grid-section.v20-is-visible::before,
.rooms-grid-section.v20-is-visible::before,
.faq-section.v20-is-visible::before,
.contact-section.v20-is-visible::before,
.room-detail-content.v20-is-visible::before {
    transform: scaleX(1);
}

/* Better card rhythm on inner pages */
.content-card,
.room-card,
.contact-panel,
.contact-form,
.room-text-block,
.room-benefits,
.faq-item {
    transform-origin: center bottom;
}

/* Image mask compatibility */
.aqua-media,
.v20-big-image,
.v20-full-bleed-image {
    will-change: clip-path, transform, opacity;
}

.aqua-media img {
    will-change: transform;
}

/* Typography refinements across internal pages */
.page-lead,
.section-text,
.content-card p,
.faq-item p {
    line-height: 1.74 !important;
}

.content-card h2,
.room-card h2 {
    line-height: 1.05 !important;
}

/* Footer should also breathe */
.dg-footer {
    padding-top: clamp(96px, 10vw, 165px) !important;
}

/* Responsive */
@media(max-width:991px) {
    .v20-big-visual-grid {
        grid-template-columns: 1fr;
    }

    .v20-big-visual-section.is-reverse .v20-big-copy {
        order: 0;
    }

    .v20-big-image,
    .v20-full-bleed-image {
        min-height: 380px;
        height: 56vh;
    }
}

@media(max-width:575px) {
    :root {
        --v20-x: clamp(18px, 5vw, 30px)
    }

    .v20-big-image,
    .v20-full-bleed-image {
        min-height: 320px;
        height: 48vh;
    }
}


:root {
    --brand-paper: #FAF7F2;
    --brand-ivory: #FFFDF9;
    --brand-stone: #E7DDD2;
    --brand-taupe: #8D7C72;
    --brand-ink: #1E1C1A;
    --brand-burgundy: #6D2B46;
    --brand-burgundy-soft: #8B4863;
    --brand-lake: #547C8E;
    --brand-lake-soft: #7FA8B8;
    --brand-olive: #6F7964;
    --brand-warm: #514641;
}

/* Typography refinement:
   make the project more distinctive and less "copied".
   We keep serif + sans logic, but shift the chromatic and spacing system.
*/
body {
    background: var(--brand-paper) !important;
    color: var(--brand-ink) !important;
}

.eyebrow,
.ap-kicker,
.dg-menu-label,
.dg-overlay-link span,
.hero-facts span,
.v20-big-image figcaption,
.v20-full-bleed-image figcaption,
.v21-map-figure figcaption {
    font-family: Inter, system-ui, Arial, sans-serif !important;
    letter-spacing: .18em !important;
    text-transform: uppercase !important;
}

.hero-title,
.section-title,
.page-title,
.manifesto,
.cta-title,
.ap-title,
.ap-dining-main-title,
.dg-overlay-link,
.dg-overlay-side h2 {
    font-family: Georgia, "Times New Roman", serif !important;
}

/* Replace some overly burgundy feeling with more Garda balance */
.hero-facts span:nth-child(2),
.dg-link,
.ap-count,
.v21-map-copy .eyebrow {
    color: var(--brand-lake) !important;
}

.hero-facts span:nth-child(1) {
    color: var(--brand-burgundy) !important;
}

.hero-facts span:nth-child(3) {
    color: var(--brand-olive) !important;
}

.ap-dining-bg,
.dg-overlay-panel {
    background: #547C8E !important;
}

.ap-bg-1 {
    background: #A2948E !important
}

.ap-bg-2 {
    background: #8F837E !important
}

.ap-bg-3 {
    background: #6D7D73 !important
}

.ap-bg-4 {
    background: #617A87 !important
}

/* Large drag gallery improvement for single room pages */
.v21-room-drag-gallery {
    padding-top: clamp(110px, 12vw, 185px) !important;
    padding-bottom: clamp(110px, 12vw, 185px) !important;
    background: linear-gradient(180deg, #fffcf7, #f7f1ea) !important;
}

.v21-room-drag-gallery .section-head {
    margin-bottom: clamp(36px, 5vw, 72px) !important;
}

.v21-room-drag-gallery .drag-gallery {
    cursor: grab;
}

.v21-room-drag-gallery .drag-track {
    gap: 18px !important;
}

.v21-drag-card {
    width: min(44vw, 560px) !important;
    height: min(68vh, 720px) !important;
    min-width: 320px !important;
    overflow: hidden !important;
    border-radius: 4px !important;
    position: relative !important;
    background: #ddd !important;
    box-shadow: 0 26px 80px rgba(37, 31, 29, .08) !important;
}

.v21-drag-card img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    transform: scale(1.06) !important;
}

.v21-drag-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, transparent 48%, rgba(0, 0, 0, .35));
    pointer-events: none;
}

.v21-drag-card div {
    position: absolute !important;
    left: 18px !important;
    right: 18px !important;
    bottom: 18px !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    z-index: 2 !important;
    background: rgba(255, 252, 247, .76) !important;
    color: var(--brand-warm) !important;
    border: 1px solid rgba(255, 255, 255, .32) !important;
    backdrop-filter: blur(14px) !important;
}

.v21-drag-card span {
    font-size: .72rem !important;
    letter-spacing: .16em !important;
    text-transform: uppercase !important;
    color: var(--brand-lake) !important;
}

.v21-drag-card strong {
    font-family: Georgia, "Times New Roman", serif !important;
    font-size: 1.2rem !important;
    font-weight: 400 !important;
    line-height: 1.1 !important;
}

/* Map section */
.v21-map-section {
    padding: clamp(110px, 12vw, 190px) 0 !important;
    background: linear-gradient(180deg, #f7f1ea, #faf7f2) !important;
}

.v21-map-section-compact {
    padding-top: clamp(90px, 9vw, 140px) !important;
}

.v21-map-grid {
    display: grid;
    grid-template-columns: .82fr 1.18fr;
    gap: clamp(42px, 7vw, 120px);
    align-items: end;
}

.v21-map-copy {
    padding-bottom: clamp(20px, 4vw, 70px);
}

.v21-map-copy .section-title {
    max-width: 760px !important;
}

.v21-map-copy .section-text {
    max-width: 620px !important;
}

.v21-map-figure {
    margin: 0;
    position: relative;
    min-height: 520px;
    border-radius: 4px;
    overflow: hidden;
    background: #EFE6DC;
}

.v21-map-figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.03);
}

.v21-map-figure figcaption {
    position: absolute;
    left: 18px;
    bottom: 18px;
    z-index: 2;
    background: rgba(255, 252, 247, .78);
    border: 1px solid rgba(255, 255, 255, .3);
    backdrop-filter: blur(14px);
    border-radius: 4px;
    padding: 12px 14px;
    color: var(--brand-warm);
}

/* Internal page consistency */
.v20-big-visual-section,
.v21-map-section,
.v21-room-drag-gallery {
    overflow: clip;
}

.content-card,
.room-card,
.service-tile,
.proof-card {
    border-color: rgba(81, 70, 65, .12) !important;
}

.content-card:hover,
.room-card:hover,
.service-tile:hover,
.proof-card:hover {
    border-color: rgba(109, 43, 70, .18) !important;
}

/* Responsive */
@media(max-width:991px) {
    .v21-map-grid {
        grid-template-columns: 1fr;
    }

    .v21-map-figure {
        min-height: 380px;
    }

    .v21-drag-card {
        width: min(82vw, 480px) !important;
        height: min(58vh, 520px) !important;
    }
}


/* V23 Asset Final: optimized real images */
img {
    image-rendering: auto;
}

.hero-video {
    background-image: url("../img/hotel-taormina-facciata-rinnovata.webp");
    background-size: cover;
    background-position: center;
}



@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');

:root {
    --ivory: #F8F2ED !important;
    --paper: #FFFDFC !important;
    --ink: #251F1D !important;
    --muted: #766861 !important;
    --line: rgba(120, 73, 77, .16) !important;
    --plum: #78494D !important;
    --walnut: #B9975B !important;
    --sage: #947D6F !important;
    --sand: #DBC8B6 !important;
}

body {
    font-family: "Montserrat", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important;
    background: var(--ivory) !important;
    color: var(--ink) !important;
}

h1,
h2,
h3,
.hero-title,
.page-title,
.section-title,
.manifesto,
.cta-title,
.dg-brand-word {
    font-family: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif !important;
    font-weight: 500;
}

.eyebrow,
.dg-nav-link,
.dg-menu-label,
.dg-booking-open,
.dg-btn,
.tao-number,
.room-card span,
.ap-kicker,.dg-booking-link {
    font-family: "Montserrat", ui-sans-serif, system-ui, sans-serif !important;
}

.dg-brand-mark {
    background: var(--plum);
    color: #fff;
    border-color: var(--plum);
}

body:not(.is-home) .dg-topbar,
.dg-topbar.is-scrolled {
    background: rgba(255, 253, 252, .93) !important;
    color: var(--ink) !important;
    border-bottom-color: var(--line) !important;
}

.hero-shade {
    background: linear-gradient(90deg, rgba(37, 31, 29, .18), rgba(120, 73, 77, .24) 55%, rgba(37, 31, 29, .18)), linear-gradient(180deg, rgba(37, 31, 29, .18), rgba(37, 31, 29, .14)) !important;
}

.dg-btn-dark,
.dg-chat-toggle {
    background: var(--plum) !important;
    color: #fff !important;
    border-color: var(--plum) !important;
}

.dg-btn-light {
    background: #fff !important;
    color: var(--plum) !important;
}

.dg-btn-outline-light {
    border-color: rgba(255, 255, 255, .8) !important;
    color: #fff !important;
}

.cta-section {
    background: linear-gradient(135deg, var(--plum), #5f393d) !important;
}

.webgl-wall-section,
.rooms-story,
.dg-footer {
    background: #1D1716 !important;
}

.faq-preview {
    background: linear-gradient(180deg, var(--sand), #F8F2ED) !important;
}

.content-card,
.room-card,
.location-card,
.faq-item,
.contact-panel,
.contact-form {
    background: #fff !important;
    border-color: var(--line) !important;
}

.content-card:hover,
.room-card:hover,
.faq-item:hover {
    border-color: rgba(185, 151, 91, .5) !important;
    box-shadow: 0 24px 70px rgba(120, 73, 77, .08) !important;
}

.tao-page-hero {
    background: linear-gradient(180deg, #FFFDFC, #F8F2ED) !important;
}

.tao-text-section {
    padding: clamp(88px, 9vw, 140px) 0;
    background: var(--paper);
}

.tao-text-section.tao-section-dark {
    background: #1D1716;
    color: #fff;
}

.tao-text-section.tao-section-dark .section-text,
.tao-text-section.tao-section-dark .content-card p {
    color: rgba(255, 255, 255, .72) !important;
}

.tao-text-section.tao-section-dark .content-card {
    background: rgba(255, 255, 255, .06) !important;
    border-color: rgba(255, 255, 255, .14) !important;
    color: #fff;
}

.tao-content-grid {
    margin-top: 36px;
    grid-template-columns: repeat(3, 1fr);
}

.tao-number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 42px;
    height: 32px;
    border: 1px solid var(--line);
    color: var(--plum);
    font-size: .76rem;
    letter-spacing: .12em;
    margin-bottom: 18px;
}

.tao-feature-section {
    padding: clamp(94px, 10vw, 150px) 0;
    background: var(--ivory);
}

.tao-feature-grid {
    display: grid;
    grid-template-columns: .92fr 1.08fr;
    gap: clamp(28px, 6vw, 90px);
    align-items: center;
}

.tao-feature-reverse .tao-feature-copy {
    order: 2
}

.tao-feature-reverse figure {
    order: 1
}

.tao-feature-grid figure {
    height: min(70vh, 720px);
}

.tao-feature-grid img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tao-dining-simple {
    padding: clamp(96px, 10vw, 150px) 0;
    background: linear-gradient(180deg, #FFFDFC, #F2E8DF);
}

.tao-service-grid {
    margin-top: 38px;
}

.tao-rooms-grid {
    grid-template-columns: repeat(2, 1fr);
    margin-top: 38px;
}

.tao-room-detail {
    background: var(--paper);
    padding-bottom: 100px;
}

.tao-room-detail .room-detail-grid {
    align-items: center;
}

.tao-room-blocks {
    grid-template-columns: repeat(2, 1fr) !important;
}

.tao-list {
    margin: 18px 0 0;
    padding-left: 1.1rem;
    color: rgba(37, 31, 29, .72);
    line-height: 1.68;
}

.tao-list li + li {
    margin-top: 10px;
}

.tao-section-dark .tao-list {
    color: rgba(255, 255, 255, .75);
}

.faq-list {
    display: grid;
    gap: 12px;
    margin-top: 36px;
    max-width: 960px;
}

.faq-item {
    border: 1px solid var(--line);
    padding: 22px 24px;
    border-radius: var(--radius);
}

.faq-item summary {
    cursor: pointer;
    font-family: "Iowan Old Style", "Palatino Linotype", Georgia, serif;
    font-size: 1.35rem;
    line-height: 1.2;
    color: var(--plum);
}

.faq-item p {
    margin: 16px 0 0;
    color: rgba(37, 31, 29, .74);
    line-height: 1.7;
}

.contact-panel,
.contact-form {
    padding: clamp(24px, 4vw, 48px);
    border: 1px solid var(--line);
    border-radius: var(--radius);
}

.contact-panel hr {
    border-color: var(--line);
    opacity: 1;
    margin: 28px 0;
}

.dg-overlay-panel {
    background: linear-gradient(135deg, var(--plum), #372426) !important;
}

.dg-overlay-side {
    border-color: rgba(255, 255, 255, .18) !important;
    background: rgba(255, 255, 255, .06) !important;
}

.dg-overlay-link:hover,
.dg-overlay-link.is-active {
    color: var(--sand) !important;
}

@media(max-width:991px) {

    .tao-feature-grid,
    .tao-content-grid,
    .tao-rooms-grid,
    .tao-room-blocks {
        grid-template-columns: 1fr !important
    }

    .tao-feature-reverse .tao-feature-copy,
    .tao-feature-reverse figure {
        order: initial
    }

    .tao-feature-grid figure {
        height: 50vh
    }

    .page-title,
    .hero-title {
        font-size: clamp(2.2rem, 9vw, 3.4rem) !important
    }

    .content-card {
        min-height: auto !important
    }
}



body.is-home .dg-topbar {
    background: transparent !important;
    border-bottom-color: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    color: #fffff4 !important;
    transition:
        background 700ms var(--ease),
        border-color 700ms var(--ease),
        box-shadow 700ms var(--ease),
        color 700ms var(--ease),
        padding 700ms var(--ease),
        height 700ms var(--ease);
}

body.is-home .dg-topbar::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: linear-gradient(180deg, rgba(30, 28, 26, .42), rgba(30, 28, 26, 0));
    opacity: .75;
    transition: opacity 700ms var(--ease);
}

body.is-home .dg-topbar:not(.is-scrolled) .dg-brand-centered img {
    filter: drop-shadow(0 10px 26px rgba(0, 0, 0, .32));
}

body:not(.is-home) .dg-topbar,
body.is-home .dg-topbar.is-scrolled,
body.menu-open .dg-topbar {
    background: rgba(255, 253, 252, .92) !important;
    border-bottom: 1px solid rgba(120, 73, 77, .16) !important;
    box-shadow: 0 18px 50px rgba(30, 28, 26, .08) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-backdrop-filter: blur(18px) !important;
    color: var(--ink) !important;
}

body.is-home .dg-topbar.is-scrolled::before,
body.menu-open .dg-topbar::before {
    opacity: 0;
}

body.is-home .dg-topbar.is-scrolled .dg-brand-centered img,
body.menu-open .dg-topbar .dg-brand-centered img {
    filter: none;
}

.hero-weather-card {
    justify-self: end;
    align-self: end;
    width: min(354px, 100%);
    position: relative;
    z-index: 8;
    padding: clamp(20px, 2.2vw, 22px);
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 244, .22);
    background:
        radial-gradient(circle at 100% 0%, rgba(185, 151, 91, .26), transparent 42%),
        rgba(30, 28, 26, .46);
    color: #fffff4;
    box-shadow: 0 28px 80px rgba(0, 0, 0, .26);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    overflow: hidden;
}

.hero-weather-card::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    border-radius: inherit;
    background: linear-gradient(135deg, rgba(255, 255, 255, .16), transparent 42%);
    opacity: .55;
}

.hero-weather-card > * {
    position: relative;
    z-index: 1;
}

.hero-weather-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}

.hero-weather-head span,
.hero-weather-head small,
.hero-weather-updated {
    display: block;
    font-family: var(--font-family);
    font-size: .62rem;
    line-height: 1.45;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: rgba(255, 255, 244, .66);
}

.hero-weather-head small {
    text-align: right;
    color: rgba(255, 255, 244, .52);
}

.hero-weather-card .js-weather-temp {
    display: block;
    font-family: var(--font-family2);
    font-size: clamp(3.4rem, 7vw, 4.2rem);
    line-height: .88;
    font-weight: 400;
    letter-spacing: -.06em;
    color: var(--walnut);
    margin-bottom: 8px;
    text-shadow: 0 18px 50px rgba(0, 0, 0, .22);
}

.hero-weather-card .js-weather-desc {
    margin: 0 0 10px;
    font-size: .8rem;
    line-height: 1.55;
    color: rgba(255, 255, 244, .86);
}

.hero-weather-updated {
    margin-bottom: 18px;
    color: rgba(255, 255, 244, .48);
}

.hero-weather-contact {
    display: grid;
    gap: 8px;
    padding-top: 16px;
    border-top: 1px solid rgba(255, 255, 244, .18);
}

.hero-weather-contact a,
.dg-overlay-contact a {
    font-size: .82rem;
    line-height: 1.45;
    color: inherit;
    opacity: .82;
    transition: opacity 350ms var(--ease), color 350ms var(--ease), transform 350ms var(--ease);
}

.hero-weather-contact a:hover,
.dg-overlay-contact a:hover {
    opacity: 1;
    color: var(--walnut);
    transform: translateX(3px);
}

.hero-weather-card.is-weather-ready .js-weather-temp {
    animation: weatherPulse 900ms var(--ease) both;
}

@keyframes weatherPulse {
    0% { transform: translateY(10px); opacity: .45; filter: blur(5px); }
    100% { transform: translateY(0); opacity: 1; filter: blur(0); }
}

.dg-overlay-contact {
    display: grid;
    gap: 10px;
    margin: 24px 0 26px;
    padding: 18px 0;
    border-top: 1px solid rgba(255, 255, 244, .18);
    border-bottom: 1px solid rgba(255, 255, 244, .18);
    color: rgba(255, 255, 244, .84);
}

@media (max-width: 991px) {
    .hero-weather-card {
        justify-self: stretch;
        margin-top: 28px;
    }

    body.is-home .dg-topbar {
        background: linear-gradient(180deg, rgba(30, 28, 26, .36), rgba(30, 28, 26, 0)) !important;
    }

    body.is-home .dg-topbar.is-scrolled,
    body.menu-open .dg-topbar {
        background: rgba(255, 253, 252, .95) !important;
    }
}

@media (max-width: 575px) {
    .hero-weather-card {
        border-radius: 14px;
        padding: 18px;
    }

    .hero-weather-head {
        display: grid;
        gap: 6px;
    }

    .hero-weather-head small {
        text-align: left;
    }
}


.tao-photo-gallery{
    position:relative;
    padding:7.4rem 0 6.4rem;
    background:#1E1C1A;
    color:var(--paper);
    border-top:1px solid rgba(185,151,91,.14);
    border-bottom:1px solid rgba(185,151,91,.22);
    overflow:hidden;
    user-select:none;
}
.tao-photo-gallery::before{
    content:"";
    position:absolute;
    inset:-20% -10% auto auto;
    width:44rem;
    height:44rem;
    border-radius:50%;
    background:radial-gradient(circle,rgba(120,73,77,.34),rgba(120,73,77,0) 68%);
    pointer-events:none;
}
.tao-photo-gallery::after{
    content:"";
    position:absolute;
    inset:auto auto -24% -10%;
    width:38rem;
    height:38rem;
    border-radius:50%;
    background:radial-gradient(circle,rgba(185,151,91,.22),rgba(185,151,91,0) 66%);
    pointer-events:none;
}
.tao-gallery-shell{position:relative;z-index:2}
.tao-gallery-vertical{
    position:absolute;
    left:1.55rem;
    top:7rem;
    z-index:3;
    align-items:center;
    gap:1rem;
    writing-mode:vertical-rl;
    transform:rotate(180deg);
    font-family:var(--font-family);
    font-size:.55rem;
    letter-spacing:.32em;
    text-transform:uppercase;
    color:rgba(219,200,182,.38);
}
.tao-gallery-vertical i{display:block;width:1px;height:3rem;background:rgba(185,151,91,.26)}
.tao-gallery-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:2rem;
    padding-bottom:1.65rem;
    border-bottom:1px solid rgba(185,151,91,.14);
}
.tao-gallery-kicker{display:flex;align-items:center;gap:.5rem;margin-bottom:.55rem;color:var(--walnut)}
.tao-gallery-title{
    font-family:var(--font-family2);
    font-size:clamp(2.8rem,5.3vw,5rem);
    font-weight:300;
    line-height:.92;
    letter-spacing:-.045em;
    margin:0;
    color:var(--paper);
}
.tao-gallery-title em{font-family:var(--font-family2);font-style:italic;color:var(--walnut);font-weight:400}
.tao-gallery-copy{margin:.8rem 0 0;max-width:34rem;color:rgba(255,253,252,.64);font-style:italic;font-size:1.02rem;line-height:1.42}
.tao-gallery-controls{display:flex;align-items:center;gap:1.05rem;flex:0 0 auto}
.tao-gallery-index{display:flex;align-items:center;gap:.55rem;font-family:monospace;font-size:.76rem;color:rgba(255,253,252,.5)}
.tao-gallery-index span:first-child{color:var(--walnut);font-weight:700}.tao-gallery-index i{opacity:.35;font-style:normal}
.tao-gallery-arrow{
    width:2.72rem;
    height:2.72rem;
    border:1px solid rgba(185,151,91,.42);
    border-radius:50%;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:transparent;
    color:var(--paper);
    font-family:var(--font-family);
    font-size:1.05rem;
    transition:.34s var(--ease);
    cursor:pointer;
}
.tao-gallery-arrow:hover:not(:disabled){background:var(--walnut);border-color:var(--walnut);color:var(--ink);transform:translateY(-2px)}
.tao-gallery-arrow:disabled{opacity:.32;cursor:not-allowed}
.tao-gallery-window{position:relative;width:100%;overflow:hidden;padding:1.5rem 0 1.2rem;cursor:none}
.tao-gallery-track{display:flex;gap:1.5rem;will-change:transform;transform:translate3d(0,0,0);padding:.2rem 0}
.tao-gallery-card{width:18.75rem;flex:0 0 18.75rem;display:flex;flex-direction:column;gap:1rem;position:relative;color:inherit;text-decoration:none}
.tao-gallery-card__frame{position:relative;aspect-ratio:3/2;overflow:hidden;border-radius:.8rem;background:rgba(120,73,77,.18);border:1px solid rgba(185,151,91,.18);padding:.5rem;transition:transform .55s var(--ease),border-color .55s var(--ease),background .55s var(--ease)}
.tao-gallery-card__frame::after{content:"";position:absolute;inset:.5rem;border-radius:.55rem;background:linear-gradient(to top,rgba(30,28,26,.34),rgba(30,28,26,.02));z-index:2;transition:.5s var(--ease);pointer-events:none}
.tao-gallery-card:hover .tao-gallery-card__frame{border-color:rgba(185,151,91,.52);background:rgba(120,73,77,.24);transform:translateY(-.18rem)}
.tao-gallery-card:hover .tao-gallery-card__frame::after{opacity:.25}
.tao-gallery-card img{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:cover;border-radius:.54rem;transform:scale(1.002);transition:transform 1s var(--ease);pointer-events:none;-webkit-user-drag:none}
.tao-gallery-card:hover img{transform:scale(1.055)}
.tao-gallery-pill{position:absolute;z-index:5;top:1rem;left:1rem;display:inline-flex;align-items:center;min-height:1.55rem;border:1px solid rgba(185,151,91,.38);border-radius:999px;background:rgba(30,28,26,.72);backdrop-filter:blur(12px);padding:.35rem .62rem;font-family:var(--font-family);font-size:.52rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--walnut)}
.tao-gallery-card__meta{padding:0 .1rem}.tao-gallery-card__top{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.45rem}
.tao-gallery-card h3{font-family:var(--font-family2);font-size:1.42rem;font-weight:500;letter-spacing:-.015em;color:var(--paper);margin:0;transition:.35s var(--ease)}
.tao-gallery-card:hover h3{color:var(--walnut)}
.tao-gallery-altitude{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap;font-family:monospace;font-size:.62rem;color:rgba(185,151,91,.86)}
.tao-gallery-card p{margin:0;max-width:34rem;color:rgba(255,253,252,.66);font-size:.87rem;line-height:1.42;font-style:italic}
.tao-gallery-dots{display:flex;align-items:center;justify-content:center;gap:.55rem;margin-top:.45rem}
.tao-gallery-dot{height:.38rem;width:.38rem;border:0;border-radius:99px;background:rgba(185,151,91,.22);transition:.45s var(--ease);padding:0;cursor:pointer}
.tao-gallery-dot:hover{background:rgba(185,151,91,.55)}.tao-gallery-dot.is-active{width:2rem;background:var(--walnut)}
.tao-gallery-cursor{position:absolute;z-index:20;top:0;left:0;pointer-events:none;opacity:0;visibility:hidden;transform:translate3d(0,0,0);will-change:transform}
.tao-gallery-cursor__badge{width:6rem;height:6rem;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid rgba(185,151,91,.78);background:rgba(255,253,252,.96);color:var(--plum);box-shadow:0 1.4rem 3.5rem rgba(0,0,0,.35);transform:translate3d(-50%,-50%,0) scale(.72);opacity:0;transition:opacity .18s ease,transform .24s var(--ease),background .24s var(--ease)}
.tao-gallery-cursor__badge span{font-family:var(--font-family);font-size:.55rem;letter-spacing:.16em;text-transform:uppercase;font-weight:800}.tao-gallery-cursor__badge small{font-family:monospace;font-size:.72rem;letter-spacing:.12em;opacity:.75;margin-top:.2rem}
.tao-gallery-window.is-cursor .tao-gallery-cursor{opacity:1;visibility:visible}.tao-gallery-window.is-cursor .tao-gallery-cursor__badge{opacity:1;transform:translate3d(-50%,-50%,0) scale(1)}
.tao-gallery-window.is-dragging .tao-gallery-cursor__badge{transform:translate3d(-50%,-50%,0) scale(.86);background:var(--walnut);color:var(--ink)}
.tao-gallery-window.is-dragging .tao-gallery-track{cursor:grabbing}.tao-gallery-window.is-dragging .tao-gallery-card__frame{transform:scale(.992)}
@media(min-width:576px){.tao-gallery-card{width:28.125rem;flex-basis:28.125rem}}
@media(min-width:992px){.tao-gallery-card{width:37.5rem;flex-basis:37.5rem}.tao-gallery-window{padding-top:1.75rem}.tao-photo-gallery{padding-top:8.3rem}}
@media(max-width:991px){.tao-gallery-head{align-items:flex-start;flex-direction:column}.tao-gallery-controls{width:100%;justify-content:space-between}.tao-gallery-title{font-size:clamp(2.45rem,13vw,4.1rem)}.tao-gallery-window{cursor:grab}.tao-gallery-cursor{display:none}.tao-photo-gallery{padding:5.6rem 0 4.8rem}.tao-gallery-card{width:min(78vw,28.125rem);flex-basis:min(78vw,28.125rem)}}
@media(max-width:575px){.tao-gallery-card{width:78vw;flex-basis:78vw}.tao-gallery-track{gap:1rem}.tao-gallery-copy{font-size:.96rem}.tao-gallery-arrow{width:2.45rem;height:2.45rem}.tao-gallery-card h3{font-size:1.28rem}.tao-gallery-card__top{display:block}.tao-gallery-altitude{margin-top:.28rem}}




.dg-topbar,
.dg-topbar-minimal {
    isolation: isolate !important;
    transition:
        background-color .55s var(--ease),
        background .55s var(--ease),
        border-color .55s var(--ease),
        box-shadow .55s var(--ease),
        color .55s var(--ease),
        backdrop-filter .55s var(--ease),
        -webkit-backdrop-filter .55s var(--ease) !important;
}

body.is-home .dg-topbar:not(.is-scrolled):not(.dg-force-solid) {
    background: linear-gradient(180deg, rgba(30, 28, 26, .34), rgba(30, 28, 26, 0)) !important;
    border-bottom-color: transparent !important;
    box-shadow: none !important;
    color: #fffff4 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.is-inner .dg-topbar,
body:not(.is-home) .dg-topbar,
.dg-topbar.is-scrolled,
body.menu-open .dg-topbar {
    background: rgba(255, 253, 252, .94) !important;
    border-bottom: 1px solid rgba(120, 73, 77, .18) !important;
    box-shadow: 0 18px 48px rgba(30, 28, 26, .09) !important;
    color: var(--ink, #1E1C1A) !important;
    backdrop-filter: blur(18px) saturate(1.12) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.12) !important;
}

body.is-inner .dg-topbar::before,
body:not(.is-home) .dg-topbar::before,
.dg-topbar.is-scrolled::before,
body.menu-open .dg-topbar::before {
    opacity: 0 !important;
}

body.is-inner .dg-brand-centered img,
body:not(.is-home) .dg-brand-centered img,
.dg-topbar.is-scrolled .dg-brand-centered img,
body.menu-open .dg-brand-centered img {
    filter: none !important;
}

.dg-overlay-menu {
    background: rgba(30, 28, 26, 0) !important;
    transition: background .65s var(--ease) !important;
}

body.menu-open .dg-overlay-menu {
    background: rgba(30, 28, 26, .58) !important;
}

.dg-overlay-panel,
.dg-overlay-panel-scroll {
    background:
        radial-gradient(circle at 15% 10%, rgba(185, 151, 91, .16), transparent 34%),
        linear-gradient(135deg, #78494D 0%, #514641 48%, #1E1C1A 100%) !important;
}



html.dg-header-solid [data-fixed-header],
body.dg-header-solid [data-fixed-header],
body:not(.is-home) [data-fixed-header],
body.is-inner [data-fixed-header],
[data-fixed-header].is-scrolled,
[data-fixed-header].dg-force-solid,
html.menu-open-html [data-fixed-header],
body.menu-open [data-fixed-header] {
    background: rgba(255, 253, 252, .96) !important;
    background-color: rgba(255, 253, 252, .96) !important;
    color: var(--ink, #1E1C1A) !important;
    border-bottom: 1px solid rgba(120, 73, 77, .18) !important;
    box-shadow: 0 18px 48px rgba(30, 28, 26, .10) !important;
    backdrop-filter: blur(18px) saturate(1.12) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.12) !important;
}

html.dg-header-transparent body.is-home:not(.menu-open) [data-fixed-header]:not(.is-scrolled):not(.dg-force-solid),
body.dg-header-transparent.is-home:not(.menu-open) [data-fixed-header]:not(.is-scrolled):not(.dg-force-solid) {
    background: linear-gradient(180deg, rgba(30, 28, 26, .32), rgba(30, 28, 26, 0)) !important;
    background-color: transparent !important;
    color: #fffff4 !important;
    border-bottom-color: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

html.dg-header-solid [data-fixed-header]::before,
body.dg-header-solid [data-fixed-header]::before,
body:not(.is-home) [data-fixed-header]::before,
body.is-inner [data-fixed-header]::before,
[data-fixed-header].is-scrolled::before,
[data-fixed-header].dg-force-solid::before,
html.menu-open-html [data-fixed-header]::before,
body.menu-open [data-fixed-header]::before {
    opacity: 0 !important;
}

html.dg-header-solid [data-fixed-header] a,
html.dg-header-solid [data-fixed-header] button,
html.dg-header-solid [data-fixed-header] select,
body.dg-header-solid [data-fixed-header] a,
body.dg-header-solid [data-fixed-header] button,
body.dg-header-solid [data-fixed-header] select,
body:not(.is-home) [data-fixed-header] a,
body:not(.is-home) [data-fixed-header] button,
body:not(.is-home) [data-fixed-header] select,
body.is-inner [data-fixed-header] a,
body.is-inner [data-fixed-header] button,
body.is-inner [data-fixed-header] select,
[data-fixed-header].is-scrolled a,
[data-fixed-header].is-scrolled button,
[data-fixed-header].is-scrolled select,
html.menu-open-html [data-fixed-header] a,
html.menu-open-html [data-fixed-header] button,
html.menu-open-html [data-fixed-header] select,
body.menu-open [data-fixed-header] a,
body.menu-open [data-fixed-header] button,
body.menu-open [data-fixed-header] select {
    color: var(--ink, #1E1C1A) !important;
}

html.dg-header-transparent body.is-home:not(.menu-open) [data-fixed-header]:not(.is-scrolled):not(.dg-force-solid) a,
html.dg-header-transparent body.is-home:not(.menu-open) [data-fixed-header]:not(.is-scrolled):not(.dg-force-solid) button,
html.dg-header-transparent body.is-home:not(.menu-open) [data-fixed-header]:not(.is-scrolled):not(.dg-force-solid) select,
body.dg-header-transparent.is-home:not(.menu-open) [data-fixed-header]:not(.is-scrolled):not(.dg-force-solid) a,
body.dg-header-transparent.is-home:not(.menu-open) [data-fixed-header]:not(.is-scrolled):not(.dg-force-solid) button,
body.dg-header-transparent.is-home:not(.menu-open) [data-fixed-header]:not(.is-scrolled):not(.dg-force-solid) select {
    color: #fffff4 !important;
}

html.dg-header-solid .dg-brand-centered img,
body.dg-header-solid .dg-brand-centered img,
body:not(.is-home) .dg-brand-centered img,
body.is-inner .dg-brand-centered img,
[data-fixed-header].is-scrolled .dg-brand-centered img,
html.menu-open-html .dg-brand-centered img,
body.menu-open .dg-brand-centered img {
    filter: none !important;
}


.dg-overlay-menu[data-overlay-menu] {
    position: fixed !important;
    inset: 0 !important;
    z-index: 9998 !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    background: rgba(30, 28, 26, 0) !important;
    transition: opacity .45s var(--ease, ease), visibility .45s var(--ease, ease), background .45s var(--ease, ease) !important;
}

html.menu-open-html .dg-overlay-menu[data-overlay-menu],
body.menu-open .dg-overlay-menu[data-overlay-menu] {
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: auto !important;
    background: rgba(30, 28, 26, .62) !important;
}

.dg-overlay-menu[data-overlay-menu] .dg-overlay-backdrop {
    position: absolute !important;
    inset: 0 !important;
    opacity: 0 !important;
    background: rgba(30, 28, 26, .62) !important;
    transition: opacity .45s var(--ease, ease) !important;
}

html.menu-open-html .dg-overlay-menu[data-overlay-menu] .dg-overlay-backdrop,
body.menu-open .dg-overlay-menu[data-overlay-menu] .dg-overlay-backdrop {
    opacity: 1 !important;
}

.dg-overlay-menu[data-overlay-menu] .dg-overlay-panel,
.dg-overlay-menu[data-overlay-menu] .dg-overlay-panel-scroll {
    transform: translate3d(0, -100%, 0) !important;
    opacity: 1 !important;
    visibility: visible !important;
    background:
        radial-gradient(circle at 12% 10%, rgba(185, 151, 91, .22), transparent 34%),
        linear-gradient(135deg, #78494D 0%, #514641 48%, #1E1C1A 100%) !important;
    transition: transform .9s cubic-bezier(.22, 1, .36, 1) !important;
    will-change: transform !important;
}

html.menu-open-html .dg-overlay-menu[data-overlay-menu] .dg-overlay-panel,
html.menu-open-html .dg-overlay-menu[data-overlay-menu] .dg-overlay-panel-scroll,
body.menu-open .dg-overlay-menu[data-overlay-menu] .dg-overlay-panel,
body.menu-open .dg-overlay-menu[data-overlay-menu] .dg-overlay-panel-scroll {
    transform: translate3d(0, 0, 0) !important;
}

html.menu-open-html,
body.menu-open {
    overflow: hidden !important;
}

@media (max-width: 991px) {
    html.dg-header-solid [data-fixed-header],
    body.dg-header-solid [data-fixed-header],
    [data-fixed-header].is-scrolled,
    html.menu-open-html [data-fixed-header],
    body.menu-open [data-fixed-header] {
        background: rgba(255, 253, 252, .98) !important;
    }
}
.tao-highlights-section {
  position: relative;
  padding: clamp(110px, 11vw, 170px) 0;
  background:
    radial-gradient(circle at 12% 10%, rgba(120, 73, 77, .08), transparent 28%),
    linear-gradient(180deg, var(--paper), #f4ece2);
  overflow: hidden;
}

.tao-highlights-section::before {
  content: "";
  position: absolute;
  left: clamp(20px, 4vw, 64px);
  right: clamp(20px, 4vw, 64px);
  top: 0;
  height: 1px;
  background: rgba(37, 31, 29, .10);
  transform-origin: left;
}

.tao-highlights-head {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, .55fr);
  gap: clamp(28px, 6vw, 90px);
  align-items: end;
  margin-bottom: clamp(44px, 6vw, 86px);
}

.tao-highlights-head .section-title {
  max-width: 880px;
}

.tao-highlights-head .section-text {
  margin-bottom: 0;
  max-width: 560px;
}

.tao-highlights-layout {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(360px, .84fr) minmax(0, 1.16fr);
  gap: clamp(18px, 3vw, 34px);
  align-items: stretch;
}

.tao-highlight-feature {
  position: sticky;
  top: calc(var(--topbar, 76px) + 24px);
  align-self: start;
  min-height: min(74vh, 760px);
  border: 1px solid rgba(37, 31, 29, .10);
  border-radius: var(--radius);
  overflow: hidden;
  background: #171412;
  color: #fff;
}

.tao-highlight-feature figure {
  position: absolute;
  inset: 0;
  margin: 0;
  overflow: hidden;
}

.tao-highlight-feature figure::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, .04), rgba(0, 0, 0, .72)),
    linear-gradient(90deg, rgba(0, 0, 0, .42), rgba(0, 0, 0, .08));
  pointer-events: none;
}

.tao-highlight-feature img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.03);
}

.tao-highlight-feature-copy {
  position: absolute;
  left: clamp(22px, 3vw, 42px);
  right: clamp(22px, 3vw, 42px);
  bottom: clamp(22px, 3vw, 42px);
  z-index: 2;
}

.tao-highlight-feature-copy span {
  display: block;
  margin-bottom: 16px;
  font-size: .72rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .72);
}

.tao-highlight-feature-copy h3 {
  max-width: 620px;
  margin-bottom: 18px;
  font-size: clamp(2rem, 3.45vw, 4.2rem);
  line-height: .98;
  letter-spacing: -.045em;
  color: #fff;
}

.tao-highlight-feature-copy p {
  max-width: 560px;
  margin-bottom: 0;
  color: rgba(255, 255, 255, .78);
  line-height: 1.72;
}

.tao-highlight-feature-copy .dg-link {
  color: #fff;
  margin-top: 24px;
}

.tao-highlights-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.tao-highlight-card {
  position: relative;
  min-height: clamp(250px, 23vw, 335px);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(22px, 2.4vw, 34px);
  border: 1px solid rgba(37, 31, 29, .10);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .62);
  overflow: hidden;
  transition:
    transform .7s var(--ease-natural, cubic-bezier(.19, 1, .22, 1)),
    border-color .7s var(--ease-natural, cubic-bezier(.19, 1, .22, 1)),
    background-color .7s var(--ease-natural, cubic-bezier(.19, 1, .22, 1)),
    box-shadow .7s var(--ease-natural, cubic-bezier(.19, 1, .22, 1));
}

.tao-highlight-card::before {
  content: "";
  position: absolute;
  inset: auto 18px 18px auto;
  width: 82px;
  height: 82px;
  border-radius: 50%;
  border: 1px solid rgba(120, 73, 77, .12);
  transform: scale(.82);
  opacity: .55;
  transition:
    transform .7s var(--ease-natural, cubic-bezier(.19, 1, .22, 1)),
    opacity .7s var(--ease-natural, cubic-bezier(.19, 1, .22, 1));
}

.tao-highlight-card span {
  position: absolute;
  left: clamp(22px, 2.4vw, 34px);
  top: clamp(20px, 2.2vw, 30px);
  font-size: .76rem;
  letter-spacing: .14em;
  color: var(--plum);
}

.tao-highlight-card h3 {
  max-width: 420px;
  margin-bottom: 12px;
  font-size: clamp(1.35rem, 1.65vw, 2rem);
  line-height: 1.05;
  letter-spacing: -.025em;
}

.tao-highlight-card p {
  max-width: 460px;
  margin-bottom: 0;
  color: rgba(37, 31, 29, .70);
  line-height: 1.68;
  font-size: .96rem;
}

.tao-highlight-card:hover {
  transform: translateY(-5px);
  border-color: rgba(120, 73, 77, .18);
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 24px 70px rgba(37, 31, 29, .055);
}

.tao-highlight-card:hover::before {
  transform: scale(1);
  opacity: 1;
}

@media (max-width: 1199px) {
  .tao-highlights-layout {
    grid-template-columns: 1fr;
  }

  .tao-highlight-feature {
    position: relative;
    top: auto;
    min-height: 620px;
  }
}

@media (max-width: 991px) {
  .tao-highlights-head,
  .tao-highlights-grid {
    grid-template-columns: 1fr;
  }

  .tao-highlight-feature {
    min-height: 560px;
  }

  .tao-highlight-card {
    min-height: 240px;
  }
}

@media (max-width: 575px) {
  .tao-highlights-section {
    padding: 92px 0;
  }

  .tao-highlight-feature {
    min-height: 520px;
  }

  .tao-highlight-feature-copy h3 {
    font-size: clamp(2rem, 10vw, 3.2rem);
  }

  .tao-highlight-card {
    min-height: 230px;
  }
}
/* Reviews */
.tao-reviews-section {
  position: relative;
  padding: clamp(100px, 10vw, 155px) 0;
  background:
    radial-gradient(circle at 84% 12%, rgba(185, 151, 91, .12), transparent 28%),
    linear-gradient(180deg, #FFFDFC, #F3EADF);
  overflow: hidden;
}

.tao-reviews-head {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, .58fr);
  gap: clamp(28px, 6vw, 86px);
  align-items: end;
  margin-bottom: clamp(42px, 6vw, 76px);
}

.tao-reviews-head .section-text {
  max-width: 560px;
  margin-bottom: 0;
}

.tao-review-platforms {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.tao-review-platform {
  position: relative;
  min-height: 365px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(24px, 3vw, 38px);
  border: 1px solid rgba(37, 31, 29, .10);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .68);
  overflow: hidden;
  transition:
    transform .7s var(--ease-natural, cubic-bezier(.19, 1, .22, 1)),
    border-color .7s var(--ease-natural, cubic-bezier(.19, 1, .22, 1)),
    background-color .7s var(--ease-natural, cubic-bezier(.19, 1, .22, 1)),
    box-shadow .7s var(--ease-natural, cubic-bezier(.19, 1, .22, 1));
}

.tao-review-platform::before {
  content: "";
  position: absolute;
  inset: 18px 18px auto auto;
  width: 128px;
  height: 128px;
  border-radius: 50%;
  background: rgba(120, 73, 77, .045);
  transform: scale(.78);
  transition: transform .7s var(--ease-natural, cubic-bezier(.19, 1, .22, 1));
}

.tao-review-platform:hover {
  transform: translateY(-5px);
  border-color: rgba(185, 151, 91, .42);
  background: rgba(255, 255, 255, .9);
  box-shadow: 0 24px 70px rgba(120, 73, 77, .075);
}

.tao-review-platform:hover::before {
  transform: scale(1);
}

.tao-platform-icon {
  position: absolute;
  top: clamp(22px, 2.4vw, 134px);
  right: clamp(22px, 6vw, 53px);
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #fff;
  border: 1px solid rgba(37, 31, 29, .08);
  box-shadow: 0 14px 35px rgba(37, 31, 29, .06);
}

.tao-platform-icon svg {
  width: 34px;
  height: 34px;
}

.tao-platform-label {
  display: inline-flex;
  width: fit-content;
  margin-bottom: 18px;
  padding: 8px 10px;
  border: 1px solid rgba(120, 73, 77, .14);
  border-radius: 999px;
  color: var(--plum);
  font-size: .72rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.tao-review-platform strong {
  display: block;
  max-width: 360px;
  margin-bottom: 12px;
  font-family: var(--font-family2);
  font-size: clamp(1.65rem, 2vw, 2.55rem);
  line-height: 1;
  letter-spacing: -.035em;
}

.tao-review-platform p {
  max-width: 420px;
  margin-bottom: 0;
  color: rgba(37, 31, 29, .70);
  line-height: 1.68;
}

.tao-review-platform .dg-link {
  margin-top: 24px;
}

.tao-reviews-note {
  display: flex;
  gap: 14px;
  align-items: baseline;
  margin-top: 22px;
  color: rgba(37, 31, 29, .58);
  font-size: .86rem;
}

.tao-reviews-note span {
  color: var(--plum);
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: .72rem;
}

.tao-reviews-note p {
  margin: 0;
}

.tao-reviews-note code {
  padding: 2px 5px;
  border-radius: 4px;
  background: rgba(37, 31, 29, .06);
}


/* Dove siamo / Diana-style */
.tao-location-diana-section {
  position: relative;
  padding: clamp(110px, 11vw, 170px) 0;
  background:
    radial-gradient(circle at 10% 82%, rgba(120, 73, 77, .10), transparent 30%),
    linear-gradient(180deg, #F3EADF, var(--paper));
  overflow: hidden;
}

.tao-location-diana-grid {
  display: grid;
  grid-template-columns: minmax(320px, .84fr) minmax(0, 1.16fr);
  gap: clamp(28px, 6vw, 92px);
  align-items: center;
}

.tao-location-copy {
  position: relative;
  z-index: 2;
}

.tao-location-copy .section-text {
  max-width: 620px;
}

.tao-location-address {
  margin-top: 34px;
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid rgba(37, 31, 29, .10);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .68);
}

.tao-location-address span {
  display: block;
  margin-bottom: 12px;
  color: var(--plum);
  font-size: .74rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.tao-location-address strong {
  display: block;
  font-family: var(--font-family2);
  font-size: clamp(1.55rem, 2vw, 2.35rem);
  line-height: 1.08;
  letter-spacing: -.035em;
}

.tao-location-facts {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin-top: 10px;
}

.tao-location-facts article {
  min-height: 128px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 18px;
  border: 1px solid rgba(37, 31, 29, .10);
  border-radius: var(--radius);
  background: rgba(255, 255, 255, .56);
}

.tao-location-facts span {
  display: block;
  margin-bottom: 8px;
  color: var(--plum);
  font-family: var(--font-family2);
  font-size: clamp(1.8rem, 2.8vw, 3.2rem);
  line-height: .95;
  letter-spacing: -.04em;
}

.tao-location-facts p {
  margin-bottom: 0;
  color: rgba(37, 31, 29, .68);
  line-height: 1.45;
  font-size: .92rem;
}

.tao-location-panel {
  position: relative;
  min-height: min(82vh, 790px);
}

.tao-location-map {
  position: absolute;
  inset: 0 0 84px 0;
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius);
  border: 1px solid rgba(37, 31, 29, .10);
  background:
    linear-gradient(135deg, rgba(120, 73, 77, .20), rgba(185, 151, 91, .12)),
    #D8CBBC;
}

.tao-location-map img,
.tao-location-map iframe {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: 0;
}

.tao-location-map::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, transparent 45%, rgba(30, 28, 26, .24)),
    radial-gradient(circle at 68% 34%, rgba(255, 255, 255, .26), transparent 16%);
  pointer-events: none;
}

.tao-arrival-card {
  position: absolute;
  left: clamp(18px, 3vw, 42px);
  right: clamp(18px, 3vw, 42px);
  bottom: 0;
  z-index: 3;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: var(--radius);
  background: rgba(255, 253, 252, .88);
  box-shadow: 0 28px 80px rgba(37, 31, 29, .14);
  backdrop-filter: blur(18px) saturate(1.08);
  -webkit-backdrop-filter: blur(18px) saturate(1.08);
  overflow: hidden;
}

.tao-arrival-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-bottom: 1px solid rgba(37, 31, 29, .10);
}

.tao-arrival-tabs button {
  min-height: 54px;
  border: 0;
  border-right: 1px solid rgba(37, 31, 29, .10);
  background: transparent;
  color: rgba(37, 31, 29, .62);
  text-transform: uppercase;
  letter-spacing: .12em;
  font-size: .74rem;
  cursor: pointer;
  transition: background .45s var(--ease), color .45s var(--ease);
}

.tao-arrival-tabs button:last-child {
  border-right: 0;
}

.tao-arrival-tabs button:hover,
.tao-arrival-tabs button.is-active {
  background: var(--plum);
  color: #fff;
}

.tao-arrival-panels {
  padding: clamp(22px, 3vw, 34px);
}

.tao-arrival-panels article {
  display: none;
}

.tao-arrival-panels article.is-active {
  display: block;
}

.tao-arrival-panels h3 {
  margin-bottom: 10px;
  font-size: clamp(1.5rem, 2vw, 2.25rem);
  line-height: 1.02;
  letter-spacing: -.035em;
}

.tao-arrival-panels p {
  max-width: 720px;
  margin: 0;
  color: rgba(37, 31, 29, .72);
  line-height: 1.68;
}

@media (max-width: 1199px) {
  .tao-location-diana-grid {
    grid-template-columns: 1fr;
  }

  .tao-location-panel {
    min-height: 720px;
  }
}

@media (max-width: 991px) {
  .tao-reviews-head,
  .tao-review-platforms,
  .tao-location-facts {
    grid-template-columns: 1fr;
  }

  .tao-review-platform {
    min-height: 310px;
  }

  .tao-location-panel {
    min-height: 660px;
  }
}

@media (max-width: 575px) {
  .tao-reviews-section,
  .tao-location-diana-section {
    padding: 92px 0;
  }

  .tao-location-panel {
    min-height: 640px;
  }

  .tao-location-map {
    inset: 0 0 245px 0;
  }

  .tao-arrival-card {
    left: 0;
    right: 0;
  }

  .tao-arrival-tabs {
    grid-template-columns: 1fr;
  }

  .tao-arrival-tabs button {
    border-right: 0;
    border-bottom: 1px solid rgba(37, 31, 29, .10);
  }

  .tao-arrival-tabs button:last-child {
    border-bottom: 0;
  }
}






.tao-reviews-carousel-window {
  width: 100%;
  overflow: visible;
}

.tao-reviews-carousel-controls {
  display: none;
}

@media (max-width: 991px) {
  .tao-reviews-section .container-fluid {
    overflow: hidden;
  }

  .tao-reviews-carousel-window {
    overflow: visible;
    margin-left: -6px;
    margin-right: -6px;
  }

  .tao-review-platforms {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 12px !important;
    will-change: transform;
    transition: transform .68s var(--ease-natural, cubic-bezier(.19, 1, .22, 1));
    transform: translate3d(0, 0, 0);
  }

  .tao-review-platform {
    flex: 0 0 min(86vw, 420px);
    min-height: 330px;
  }

  .tao-reviews-carousel-controls {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 22px;
  }

  .tao-reviews-arrows {
    display: flex;
    gap: 8px;
  }

  .tao-reviews-arrow {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border: 1px solid rgba(37, 31, 29, .14);
    border-radius: var(--radius);
    background: rgba(255, 255, 255, .72);
    color: var(--ink);
    cursor: pointer;
    transition:
      background .35s var(--ease, cubic-bezier(.22, 1, .36, 1)),
      color .35s var(--ease, cubic-bezier(.22, 1, .36, 1)),
      border-color .35s var(--ease, cubic-bezier(.22, 1, .36, 1));
  }

  .tao-reviews-arrow:hover {
    background: var(--plum);
    border-color: var(--plum);
    color: #fff;
  }

  .tao-reviews-dots {
    display: flex;
    align-items: center;
    gap: 8px;
  }

  .tao-reviews-dot {
    width: 8px;
    height: 8px;
    border: 0;
    border-radius: 999px;
    background: rgba(37, 31, 29, .22);
    padding: 0;
    cursor: pointer;
    transition:
      width .35s var(--ease, cubic-bezier(.22, 1, .36, 1)),
      background .35s var(--ease, cubic-bezier(.22, 1, .36, 1));
  }

  .tao-reviews-dot.is-active {
    width: 28px;
    background: var(--plum);
  }

  .tao-reviews-note {
    display: none;
  }
}

@media (max-width: 575px) {
  .tao-review-platform {
    flex-basis: calc(100vw - 52px);
    min-height: 320px;
  }

  .tao-platform-icon {
    width: 50px;
    height: 50px;
  }

  .tao-platform-icon svg {
    width: 31px;
    height: 31px;
  }
}




.tao-highlights-section .tao-highlight-card,
.tao-highlights-section .tao-highlight-feature {
  will-change: transform, opacity, filter;
}

.tao-highlights-section .tao-highlight-card.is-highlight-current {
  border-color: rgba(120, 73, 77, .26);
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 26px 72px rgba(37, 31, 29, .065);
}

@media (max-width: 991px) {
  .tao-highlights-layout {
    gap: 14px;
  }

  .tao-highlights-grid {
    gap: 10px;
  }

  .tao-highlight-feature {
    min-height: 520px;
  }

  .tao-highlight-card {
    min-height: 235px;
  }
}



@media (max-width: 991px) {
  .dg-topbar {
    grid-template-columns: minmax(0, 1fr) auto !important;
    min-height: 74px !important;
    height: auto !important;
    width: 100% !important;
    padding: 10px 14px !important;
    gap: 12px !important;
    align-items: center !important;
  }

  .dg-brand {
    min-width: 0 !important;
    gap: 10px !important;
    align-items: center !important;
  }

  .dg-brand-text {
    display: none !important;
  }

  .dg-brand-mark {
    width: 46px !important;
    height: 46px !important;
    flex: 0 0 46px !important;
    transition:
      width .35s var(--ease, cubic-bezier(.22, 1, .36, 1)),
      height .35s var(--ease, cubic-bezier(.22, 1, .36, 1)),
      flex-basis .35s var(--ease, cubic-bezier(.22, 1, .36, 1));
  }

  .dg-brand img,
  .dg-brand svg,
  .dg-topbar .logo img,
  .dg-topbar .custom-logo,
  .dg-topbar [class*="logo"] img {
    max-height: 58px !important;
    width: auto !important;
    object-fit: contain !important;
    transition:
      max-height .35s var(--ease, cubic-bezier(.22, 1, .36, 1)),
      transform .35s var(--ease, cubic-bezier(.22, 1, .36, 1));
  }

  .dg-topbar.is-scrolled .dg-brand-mark,
  .dg-topbar.dg-force-solid .dg-brand-mark,
  body.menu-open .dg-topbar .dg-brand-mark {
    width: 38px !important;
    height: 38px !important;
    flex-basis: 38px !important;
  }

  .dg-topbar.is-scrolled .dg-brand img,
  .dg-topbar.dg-force-solid .dg-brand img,
  body.menu-open .dg-topbar .dg-brand img,
  .dg-topbar.is-scrolled .logo img,
  .dg-topbar.dg-force-solid .logo img,
  body.menu-open .dg-topbar .logo img,
  .dg-topbar.is-scrolled .custom-logo,
  .dg-topbar.dg-force-solid .custom-logo,
  body.menu-open .dg-topbar .custom-logo,
  .dg-topbar.is-scrolled [class*="logo"] img,
  .dg-topbar.dg-force-solid [class*="logo"] img,
  body.menu-open .dg-topbar [class*="logo"] img {
    max-height: 42px !important;
  }

  .dg-top-actions {
    justify-self: end !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    min-width: 0 !important;
  }


  .dg-booking-open {
    display: none !important;
  }

  [data-menu-toggle],
  .dg-menu-toggle,
  .menu-toggle,
  .hamburger {
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    min-height: 46px !important;
    display: inline-grid !important;
    place-items: center !important;
    border-radius: var(--radius) !important;
    border: 1px solid currentColor !important;
    background: transparent !important;
    color: inherit !important;
    padding: 0 !important;
    line-height: 1 !important;
  }

  .dg-icon-link {
    width: 46px !important;
    height: 46px !important;
  }

  body.is-home:not(.menu-open) .dg-topbar:not(.is-scrolled):not(.dg-force-solid) {
    background: linear-gradient(180deg, rgba(30, 28, 26, .28), rgba(30, 28, 26, 0)) !important;
    background-color: transparent !important;
    color: #fffff4 !important;
    border-bottom-color: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
  }

  body.menu-open .dg-topbar,
  .dg-topbar.is-scrolled,
  .dg-topbar.dg-force-solid {
    background: rgba(255, 253, 252, .98) !important;
    background-color: rgba(255, 253, 252, .98) !important;
    color: var(--ink) !important;
    border-bottom: 1px solid rgba(120, 73, 77, .16) !important;
    box-shadow: 0 18px 48px rgba(30, 28, 26, .10) !important;
    backdrop-filter: blur(18px) saturate(1.12) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.12) !important;
  }
}

@media (max-width: 575px) {
  .dg-topbar {
    min-height: 68px !important;
    padding: 8px 12px !important;
  }

  .dg-brand-mark {
    width: 42px !important;
    height: 42px !important;
    flex-basis: 42px !important;
  }

  .dg-brand img,
  .dg-brand svg,
  .dg-topbar .logo img,
  .dg-topbar .custom-logo,
  .dg-topbar [class*="logo"] img {
    max-height: 52px !important;
  }

  .dg-topbar.is-scrolled .dg-brand img,
  .dg-topbar.dg-force-solid .dg-brand img,
  body.menu-open .dg-topbar .dg-brand img,
  .dg-topbar.is-scrolled .logo img,
  .dg-topbar.dg-force-solid .logo img,
  body.menu-open .dg-topbar .logo img,
  .dg-topbar.is-scrolled .custom-logo,
  .dg-topbar.dg-force-solid .custom-logo,
  body.menu-open .dg-topbar .custom-logo,
  .dg-topbar.is-scrolled [class*="logo"] img,
  .dg-topbar.dg-force-solid [class*="logo"] img,
  body.menu-open .dg-topbar [class*="logo"] img {
    max-height: 38px !important;
  }

  [data-menu-toggle],
  .dg-menu-toggle,
  .menu-toggle,
  .hamburger,
  .dg-icon-link {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
  }
}

.servizi-page {
  background: var(--ivory, #F8F2ED);
}

/* HERO SWIPER FULL SCREEN */
.servizi-hero {
  position: relative;
  min-height: 100svh;
  background: #111;
  color: #fff;
  overflow: hidden;
}

.servizi-hero-swiper,
.servizi-hero-swiper .swiper-wrapper,
.servizi-hero-slide {
  width: 100%;
  height: 100svh;
  min-height: 680px;
}

.servizi-hero-slide {
  position: relative;
  overflow: hidden;
}

.servizi-hero-slide figure {
  position: absolute;
  inset: 0;
  margin: 0;
  overflow: hidden;
}

.servizi-hero-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.04);
}

.servizi-hero-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(0, 0, 0, .16), rgba(0, 0, 0, .18) 52%, rgba(0, 0, 0, .36)),
    linear-gradient(180deg, rgba(0, 0, 0, .12), rgba(0, 0, 0, .12));
  pointer-events: none;
}

.servizi-hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-top: calc(var(--topbar, 76px) + 90px);
  padding-bottom: clamp(54px, 8vw, 112px);
}

.servizi-hero .eyebrow {
  color: rgba(255, 255, 255, .72);
}

.servizi-hero-title {
  max-width: 940px;
  margin: 0 0 24px;
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(3.2rem, 7.2vw, 6.8rem);
  font-weight: 500;
  line-height: .88;
  letter-spacing: -.07em;
  color: #fff;    font-size: 4rem !important;
    line-height: .98 !important;
    letter-spacing: -.035em !important;
    max-width: 740px !important;
}

.servizi-hero-lead {
  max-width: 720px;
  margin-bottom: 28px;
  color: rgba(255, 255, 255, .86);
  font-size: clamp(1rem, 1.35vw, 1.28rem);
  line-height: 1.7;
}

.servizi-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.servizi-hero-ui {
  position: absolute;
  z-index: 5;
  left: clamp(20px, 4vw, 64px);
  right: clamp(20px, 4vw, 64px);
  bottom: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  pointer-events: none;
}

.servizi-hero-pagination {
  display: flex;
  gap: 8px;
  pointer-events: auto;
}

.servizi-hero-pagination .swiper-pagination-bullet {
  width: 38px;
  height: 2px;
  border-radius: 0;
  background: rgba(255, 255, 255, .42);
  opacity: 1;
  transition: background .35s var(--ease, cubic-bezier(.22, 1, .36, 1)), width .35s var(--ease, cubic-bezier(.22, 1, .36, 1));
}

.servizi-hero-pagination .swiper-pagination-bullet-active {
  width: 64px;
  background: #fff;
}

.servizi-hero-arrows {
  display: flex;
  gap: 16px;
  pointer-events: auto;
}

.servizi-hero-prev,
.servizi-hero-next {
  border: 0;
  background: transparent;
  color: #fff;
  padding: 0;
  font-size: .75rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
}

.servizi-hero-prev::after,
.servizi-hero-next::after {
  content: "";
  display: block;
  height: 1px;
  margin-top: 5px;
  background: currentColor;
  transform: scaleX(.46);
  transform-origin: left;
  transition: transform .45s var(--ease, cubic-bezier(.22, 1, .36, 1));
}

.servizi-hero-prev:hover::after,
.servizi-hero-next:hover::after {
  transform: scaleX(1);
}

/* INTRO */
.servizi-intro-section {
  padding: clamp(105px, 10vw, 160px) 0;
  background: linear-gradient(180deg, var(--paper, #FFFDFC), #F3EADF);
}

.servizi-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, .56fr);
  gap: clamp(28px, 6vw, 92px);
  align-items: end;
}

.servizi-intro-grid .section-text {
  margin-bottom: 0;
}

/* PARALLAX */
.servizi-parallax-section {
  position: relative;
  min-height: min(100svh, 920px);
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: #171412;
  color: #fff;
}

.servizi-parallax-media {
  position: absolute;
  inset: 0;
  margin: 0;
  overflow: hidden;
}

.servizi-parallax-media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(0,0,0,.64), rgba(0,0,0,.10) 58%, rgba(0,0,0,.36)),
    linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.12));
  pointer-events: none;
}

.servizi-parallax-media img {
  width: 100%;
  height: 115%;
  object-fit: cover;
  transform: scale(1.08);
}

.servizi-parallax-copy {
  position: relative;
  z-index: 2;
  padding-top: 160px;
  padding-bottom: clamp(58px, 8vw, 112px);
}

.servizi-parallax-copy .eyebrow {
  color: rgba(255, 255, 255, .72);
}

.servizi-parallax-title {
  max-width: 920px;
  margin: 0 0 24px;
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(3rem, 6vw, 4.4rem);
  line-height: .92;
  letter-spacing: -.065em;
  color: #fff;
}

.servizi-parallax-copy p {
  max-width: 680px;
  color: rgba(255,255,255,.78);
  line-height: 1.74;
  font-size: clamp(1rem, 1.28vw, 1.24rem);
}

/* CARDS */
.servizi-cards-section {
  position: relative;
  padding: clamp(110px, 11vw, 170px) 0;
  background:
    radial-gradient(circle at 86% 12%, rgba(185, 151, 91, .10), transparent 28%),
    linear-gradient(180deg, #FFFDFC, #F3EADF);
  overflow: hidden;
}

.servizi-cards-head {
  max-width: 980px;
  margin-bottom: clamp(42px, 6vw, 78px);
}

.servizi-cards-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.servizio-card {
  position: relative;
  min-height: 330px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(22px, 2.4vw, 34px);
  border: 1px solid rgba(37, 31, 29, .10);
  border-radius: var(--radius, 4px);
  background: rgba(255, 255, 255, .66);
  overflow: hidden;
  transition:
    transform .7s var(--ease-natural, cubic-bezier(.19, 1, .22, 1)),
    border-color .7s var(--ease-natural, cubic-bezier(.19, 1, .22, 1)),
    background-color .7s var(--ease-natural, cubic-bezier(.19, 1, .22, 1)),
    box-shadow .7s var(--ease-natural, cubic-bezier(.19, 1, .22, 1));
}

.servizio-card::before {
  content: "";
  position: absolute;
  right: 18px;
  top: 18px;
  width: 84px;
  height: 84px;
  border: 1px solid rgba(120, 73, 77, .12);
  border-radius: 50%;
  transform: scale(.82);
  opacity: .62;
  transition: transform .7s var(--ease-natural, cubic-bezier(.19, 1, .22, 1)), opacity .7s var(--ease-natural, cubic-bezier(.19, 1, .22, 1));
}

.servizio-card:hover {
  transform: translateY(-6px);
  border-color: rgba(120, 73, 77, .22);
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 26px 76px rgba(37, 31, 29, .065);
}

.servizio-card:hover::before {
  transform: scale(1);
  opacity: 1;
}

.servizio-card span {
  position: absolute;
  top: clamp(20px, 2vw, 30px);
  left: clamp(22px, 2.4vw, 34px);
  color: var(--plum, #78494D);
  font-size: .74rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.servizio-card h3 {
  max-width: 440px;
  margin-bottom: 12px;
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(1.55rem, 2vw, 2.45rem);
  line-height: 1.02;
  letter-spacing: -.035em;
}

.servizio-card p {
  max-width: 520px;
  margin-bottom: 0;
  color: rgba(37, 31, 29, .70);
  line-height: 1.68;
  font-size: .96rem;
}

.servizio-card-large {
  grid-column: span 2;
  grid-row: span 2;
  min-height: 670px;
  background:
    linear-gradient(180deg, rgba(120, 73, 77, .88), rgba(37, 31, 29, .92)),
    var(--plum, #78494D);
  color: #fff;
}

.servizio-card-large span,
.servizio-card-large p {
  color: rgba(255,255,255,.76);
}

.servizio-card-large h3 {
  max-width: 620px;
  color: #fff;
  font-size: clamp(2.2rem, 3.6vw, 4.8rem);
}

.servizio-card-large::before {
  border-color: rgba(255,255,255,.18);
}

.servizio-card-wide {
  grid-column: span 2;
}

/* CTA */
.servizi-cta-section {
  padding: clamp(110px, 12vw, 180px) 0;
  background: var(--plum, #78494D);
  color: #fff;
}

.servizi-cta-section .eyebrow {
  color: rgba(255,255,255,.72);
}

.servizi-cta-section .cta-title {
  color: #fff;
}

.servizi-cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}

/* RESPONSIVE */
@media (max-width: 1199px) {
  .servizi-cards-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .servizio-card-large {
    min-height: 560px;
  }
}

@media (max-width: 991px) {
  .servizi-hero-swiper,
  .servizi-hero-swiper .swiper-wrapper,
  .servizi-hero-slide {
    min-height: 100svh;
  }

  .servizi-hero-title {
    font-size: clamp(3rem, 12vw, 5.6rem);
  }

  .servizi-intro-grid {
    grid-template-columns: 1fr;
  }

  .servizi-parallax-section {
    min-height: 82svh;
  }

  .servizi-parallax-title {
    font-size: clamp(2.7rem, 11vw, 5.2rem);
  }

  .servizi-cards-grid {
    grid-template-columns: 1fr;
  }

  .servizio-card,
  .servizio-card-large,
  .servizio-card-wide {
    grid-column: auto;
    grid-row: auto;
    min-height: 285px;
  }

  .servizio-card-large {
    min-height: 430px;
  }
}

@media (max-width: 575px) {
  .servizi-hero-content {
    padding-bottom: 72px;
  }

  .servizi-hero-lead {
    font-size: 1rem;
  }

  .servizi-hero-ui {
    align-items: flex-end;
  }

  .servizi-hero-arrows {
    display: none;
  }

  .servizi-hero-pagination .swiper-pagination-bullet {
    width: 28px;
  }

  .servizi-hero-pagination .swiper-pagination-bullet-active {
    width: 48px;
  }

  .servizi-parallax-section {
    min-height: 76svh;
  }

  .servizio-card {
    min-height: 260px;
  }
}








.dg-overlay-primary .nav-link,
.dg-overlay-menu .nav-link {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.3rem, 6.4vw, 7.8rem);
    line-height: .92;
    letter-spacing: -.06em;
    color: rgba(255, 255, 244, .54);
    display: flex;
    gap: clamp(16px, 2vw, 34px);
    align-items: baseline;
    transform: translateY(30px);
    opacity: 0;
    transition:
        color 900ms var(--v18-ease, cubic-bezier(.19, 1, .22, 1)),
        transform 900ms var(--v18-ease, cubic-bezier(.19, 1, .22, 1)),
        opacity 900ms var(--v18-ease, cubic-bezier(.19, 1, .22, 1));
}

body.menu-open .dg-overlay-primary .nav-link,
body.menu-open .dg-overlay-menu .nav-link {
    transform: none;
    opacity: 1;
}

body.menu-open .dg-overlay-primary .nav-link:nth-child(1),
body.menu-open .dg-overlay-menu .nav-link:nth-child(1) {
    transition-delay: 180ms;
}

body.menu-open .dg-overlay-primary .nav-link:nth-child(2),
body.menu-open .dg-overlay-menu .nav-link:nth-child(2) {
    transition-delay: 240ms;
}

body.menu-open .dg-overlay-primary .nav-link:nth-child(3),
body.menu-open .dg-overlay-menu .nav-link:nth-child(3) {
    transition-delay: 300ms;
}

body.menu-open .dg-overlay-primary .nav-link:nth-child(4),
body.menu-open .dg-overlay-menu .nav-link:nth-child(4) {
    transition-delay: 360ms;
}

body.menu-open .dg-overlay-primary .nav-link:nth-child(5),
body.menu-open .dg-overlay-menu .nav-link:nth-child(5) {
    transition-delay: 420ms;
}

body.menu-open .dg-overlay-primary .nav-link:nth-child(6),
body.menu-open .dg-overlay-menu .nav-link:nth-child(6) {
    transition-delay: 480ms;
}

.dg-overlay-primary .nav-link span,
.dg-overlay-menu .nav-link span {
    font-family: Inter, system-ui, sans-serif;
    font-size: .75rem;
    letter-spacing: .18em;
    color: rgba(255, 255, 244, .45);
}

.dg-overlay-primary .nav-link:hover,
.dg-overlay-primary .nav-link.is-active,
.dg-overlay-menu .nav-link:hover,
.dg-overlay-menu .nav-link.is-active {
    color: #fffff4;
}

@media(max-width:991px) {
    .dg-overlay-primary .nav-link,
    .dg-overlay-menu .nav-link {
        font-size: clamp(2.4rem, 13vw, 5rem);
    }
}

.camere-page,
.camera-tipologia-page {
  background: var(--ivory, #F8F2ED);
}



.camere-hero {
  position: relative;
  min-height: 100svh;
  background: #111;
  color: #fff;
  overflow: hidden;
}

.camere-hero-swiper,
.camere-hero-swiper .swiper-wrapper,
.camere-hero-slide {
  width: 100%;
  height: 100svh;
  min-height: 680px;
}

.camere-hero-slide {
  position: relative;
  overflow: hidden;
}

.camere-hero-slide figure {
  position: absolute;
  inset: 0;
  margin: 0;
  overflow: hidden;
}

.camere-hero-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.035);
}

.camere-hero-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(0,0,0,.66), rgba(0,0,0,.12) 54%, rgba(0,0,0,.32)),
    linear-gradient(180deg, rgba(0,0,0,.10), rgba(0,0,0,.74));
  pointer-events: none;
}

.camere-hero-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding-top: calc(var(--topbar, 76px) + 90px);
  padding-bottom: clamp(56px, 8vw, 112px);
}

.camere-hero .eyebrow {
  color: rgba(255,255,255,.72);
}

.camere-hero-title {
  max-width: 960px;
  margin: 0 0 24px;
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(3.2rem, 7.5vw, 4rem);
  font-weight: 500;
  line-height: .88;
  letter-spacing: -.07em;
  color: #fff;
}

.camere-hero-lead {
  max-width: 720px;
  margin-bottom: 28px;
  color: rgba(255,255,255,.86);
  font-size: clamp(1rem, 1.35vw, 1.28rem);
  line-height: 1.7;
}

.camere-hero-actions,
.camere-cta-actions,
.room-type-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.sloganHero{
    position: absolute;
    width: 80%;
    bottom: 13%;
    left: 0;
    z-index: 671;
    -webkit-transform: none;
    transform: none;
    opacity: 1;
    text-align: l;
    -webkit-transition: all 2000ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
    transition: all 2000ms cubic-bezier(0.190, 1.000, 0.220, 1.000);
}
.camere-hero-ui {
  position: absolute;
  z-index: 5;
  left: clamp(20px, 4vw, 64px);
  right: clamp(20px, 4vw, 64px);
  bottom: 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  pointer-events: none;
}

.camere-hero-pagination {
  display: flex;
  gap: 8px;
  pointer-events: auto;
}

.camere-hero-pagination .swiper-pagination-bullet {
  width: 38px;
  height: 2px;
  border-radius: 0;
  background: rgba(255,255,255,.42);
  opacity: 1;
}

.camere-hero-pagination .swiper-pagination-bullet-active {
  width: 64px;
  background: #fff;
}

.camere-hero-arrows {
  display: flex;
  gap: 16px;
  pointer-events: auto;
}

.camere-hero-prev,
.camere-hero-next {
  border: 0;
  background: transparent;
  color: #fff;
  padding: 0;
  font-size: .75rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  cursor: pointer;
}

.camere-hero-prev::after,
.camere-hero-next::after {
  content: "";
  display: block;
  height: 1px;
  margin-top: 5px;
  background: currentColor;
  transform: scaleX(.46);
  transform-origin: left;
  transition: transform .45s var(--ease, cubic-bezier(.22, 1, .36, 1));
}

.camere-hero-prev:hover::after,
.camere-hero-next:hover::after {
  transform: scaleX(1);
}


.camere-intro-section,
.camere-principles-section {
  padding: clamp(105px, 10vw, 160px) 0;padding-bottom:5rem;
  background: linear-gradient(180deg, var(--paper, #FFFDFC), #F3EADF);
}

.camere-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, .56fr);
  gap: clamp(28px, 6vw, 92px);
  align-items: end;
}

.camere-intro-grid .section-text {
  margin-bottom: 0;
}

.camere-principles-section {
  padding-top: 4rem;
}

.camere-principles-head {
  max-width: 960px;
  margin-bottom: clamp(40px, 6vw, 76px);
}

.camere-principles-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.camere-principles-grid article {
  min-height: 330px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(24px, 3vw, 38px);
  border: 1px solid rgba(37,31,29,.10);
  border-radius: var(--radius, 4px);
  background: rgba(255,255,255,.68);
}

.camere-principles-grid span,
.servizio-card span,
.room-type-features-grid span,
.room-type-related-card span {
  color: var(--plum, #78494D);
  font-size: .74rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.camere-principles-grid h3 {
  margin: 18px 0 12px;
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(1.7rem, 2.4vw, 3rem);
  line-height: 1.02;
  letter-spacing: -.04em;
}

.camere-principles-grid p {
  margin-bottom: 0;
  color: rgba(37,31,29,.70);
  line-height: 1.7;
}



.camere-drag-section {
  padding: clamp(110px, 11vw, 170px) 0;
  background: var(--paper, #FFFDFC);
  overflow: hidden;
}

.camere-drag-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: clamp(42px, 6vw, 78px);
}

.camere-drag-hint {
  margin: 0;
  color: var(--muted, #766861);
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.camere-drag-gallery {
  overflow: hidden;
  cursor: grab;
}

.camere-drag-gallery.is-dragging {
  cursor: grabbing;
}

.camere-drag-track {
  display: flex;
  gap: 16px;
  padding: 0 clamp(20px, 4vw, 64px);
  will-change: transform;
}

.camere-type-card {
  position: relative;
  flex: 0 0 clamp(320px, 38vw, 610px);
  height: clamp(430px, 66vh, 760px);
  border-radius: var(--radius, 4px);
  overflow: hidden;
  background: #d8cbbc;
  color: #fff;
  transform-origin: center center;
}

.camere-type-card figure {
  position: absolute;
  inset: 0;
  margin: 0;
  overflow: hidden;
  pointer-events: all;
}

.camere-type-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.06);
}

.camere-type-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, transparent 38%, rgba(0,0,0,.72)),
    linear-gradient(90deg, rgba(0,0,0,.42), rgba(0,0,0,.08));
  pointer-events: auto;
}
.camere-type-card.camere2 {

  pointer-events:none;cursor:grab!important
}
.camere-type-card.camere2::after  {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, transparent 18%, rgba(0,0,0,.12)),
    linear-gradient(90deg, rgba(0,0,0,.12), rgba(0,0,0,.08));
  pointer-events: auto;
}
.camere-type-card div {
  position: absolute;
  z-index: 2;
  left: clamp(22px, 3vw, 42px);
  right: clamp(22px, 3vw, 42px);
  bottom: clamp(22px, 3vw, 42px);
}

.camere-type-card span {
  display: block;
  margin-bottom: 0px;
  color: rgba(255,255,255,.70);
  font-size: .74rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.camere-type-card h3 {
  max-width: 520px;
  margin-bottom: 14px;
  color: #fff;
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(2rem, 3vw, 4rem);
  line-height: .96;
  letter-spacing: -.05em;
}

.camere-type-card p {
  max-width: 520px;
  margin-bottom: 0;
  color: rgba(255,255,255,.78);
  line-height: 1.65;
}

/* =========================================================
   CTA
   ========================================================= */

.camere-cta-section {
  padding: clamp(110px, 12vw, 180px) 0;
  background: var(--plum, #78494D);
  color: #fff;
}

.camere-cta-section .eyebrow {
  color: rgba(255,255,255,.72);
}

.camere-cta-section .cta-title {
  color: #fff;
}



.room-type-hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: #111;
  color: #fff;
}

.room-type-hero-media {
  position: absolute;
  inset: 0;
  margin: 0;
}

.room-type-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.room-type-hero-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(0,0,0,.68), rgba(0,0,0,.10) 58%, rgba(0,0,0,.32)),
    linear-gradient(180deg, rgba(0,0,0,.08), rgba(0,0,0,.76));
}

.room-type-hero-content {
  position: relative;
  z-index: 2;
  padding-top: calc(var(--topbar, 76px) + 100px);
  padding-bottom: clamp(58px, 8vw, 112px);
}

.room-type-hero .eyebrow {
  color: rgba(255,255,255,.72);
}

.room-type-title {
  max-width: 980px;
  margin: 0 0 24px;
  color: #fff;
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(3.2rem, 7vw, 8.4rem);
  line-height: .9;
  letter-spacing: -.07em;
}

.room-type-lead {
  max-width: 720px;
  margin-bottom: 28px;
  color: rgba(255,255,255,.84);
  font-size: clamp(1rem, 1.35vw, 1.28rem);
  line-height: 1.7;
}

/* OVERVIEW */
.room-type-overview-section,
.room-type-gallery-section,
.room-type-features-section,
.room-type-related-section {
  padding: clamp(105px, 10vw, 160px) 0;
  background: linear-gradient(180deg, var(--paper, #FFFDFC), #F3EADF);
}

.room-type-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 440px);
  gap: clamp(28px, 6vw, 92px);
  align-items: start;
}

.room-type-copy .section-text {
  max-width: 760px;
}

.room-type-sticky-card {
  position: sticky;
  top: calc(var(--topbar, 76px) + 26px);
  padding: clamp(24px, 3vw, 38px);
  border: 1px solid rgba(37,31,29,.10);
  border-radius: var(--radius, 4px);
  background: rgba(255,255,255,.78);
}

.room-type-sticky-card span {
  display: block;
  margin-bottom: 18px;
  color: var(--plum, #78494D);
  font-size: .74rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.room-type-sticky-card ul {
  margin: 0 0 26px;
  padding-left: 18px;
  color: rgba(37,31,29,.70);
  line-height: 1.78;
}

/* GALLERY */
.room-type-section-head {
  max-width: 980px;
  margin-bottom: clamp(42px, 6vw, 76px);
}

.room-type-gallery-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 10px;
}

.room-type-gallery-grid figure {
  min-height: 360px;
  margin: 0;
  overflow: hidden;
  border-radius: var(--radius, 4px);
  background: #d8cbbc;
}

.room-type-gallery-large {
  grid-row: span 2;
  min-height: 730px !important;
}

.room-type-gallery-grid img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* FEATURES */
.room-type-features-section {
  background: var(--paper, #FFFDFC);
}

.room-type-features-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.room-type-features-grid article {
  min-height: 330px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(22px, 2.4vw, 34px);
  border: 1px solid rgba(37,31,29,.10);
  border-radius: var(--radius, 4px);
  background: rgba(255,255,255,.70);
}

.room-type-features-grid h3 {
  margin: 18px 0 12px;
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(1.55rem, 2vw, 2.5rem);
  line-height: 1.03;
  letter-spacing: -.035em;
}

.room-type-features-grid p {
  margin: 0;
  color: rgba(37,31,29,.70);
  line-height: 1.68;
}

/* AMENITIES */
.room-type-amenities-section {
  padding: 0 0 clamp(105px, 10vw, 155px);
  background: var(--paper, #FFFDFC);
}

.room-type-amenities {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.room-type-amenities span {
  padding: 12px 14px;
  border: 1px solid rgba(37,31,29,.10);
  border-radius: 999px;
  background: rgba(255,255,255,.70);
  color: rgba(37,31,29,.72);
  font-size: .84rem;
}

/* RELATED */
.room-type-related-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}

.room-type-related-card {
  position: relative;
  min-height: 440px;
  overflow: hidden;
  border-radius: var(--radius, 4px);
  background: #d8cbbc;
  color: #fff;
}

.room-type-related-card figure {
  position: absolute;
  inset: 0;
  margin: 0;
}

.room-type-related-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.room-type-related-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 42%, rgba(0,0,0,.72));
}

.room-type-related-card div {
  position: absolute;
  z-index: 2;
  left: 24px;
  right: 24px;
  bottom: 24px;
}

.room-type-related-card span {
  color: rgba(255,255,255,.70);
}

.room-type-related-card h3 {
  margin: 12px 0 0;
  color: #fff;
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(1.8rem, 2.8vw, 3.4rem);
  line-height: 1;
  letter-spacing: -.045em;
}

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

@media (max-width: 1199px) {
  .room-type-features-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 991px) {
  .camere-hero-swiper,
  .camere-hero-swiper .swiper-wrapper,
  .camere-hero-slide {
    min-height: 100svh;
  }

  .camere-hero-title,
  .room-type-title {
    font-size: clamp(3rem, 12vw, 5.8rem);
  }

  .camere-intro-grid,
  .camere-principles-grid,
  .room-type-overview-grid,
  .room-type-gallery-grid,
  .room-type-related-grid {
    grid-template-columns: 1fr;
  }

  .camere-principles-grid article,
  .room-type-features-grid article {
    min-height: 260px;
  }

  .camere-drag-head {
    display: block;
  }

  .camere-drag-hint {
    margin-top: 18px;
  }

  .camere-type-card {
    flex-basis: min(84vw, 520px);
    height: min(62vh, 620px);
  }

  .room-type-sticky-card {
    position: relative;
    top: auto;
  }

  .room-type-gallery-large {
    min-height: 440px !important;
  }

  .room-type-features-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575px) {
  .camere-hero-content,
  .room-type-hero-content {
    padding-bottom: 72px;
  }

  .camere-hero-arrows {
    display: none;
  }

  .camere-hero-pagination .swiper-pagination-bullet {
    width: 28px;
  }

  .camere-hero-pagination .swiper-pagination-bullet-active {
    width: 48px;
  }

  .camere-type-card {
    flex-basis: calc(100vw - 52px);
    height: 560px;
  }

  .room-type-gallery-grid figure,
  .room-type-gallery-large {
    min-height: 320px !important;
  }

  .room-type-related-card {
    min-height: 360px;
  }
}


body.is-hero-transparent-page:not(.menu-open) [data-fixed-header]:not(.is-scrolled):not(.dg-force-solid),
body.is-hero-transparent-page:not(.menu-open) .dg-topbar:not(.is-scrolled):not(.dg-force-solid),
[data-fixed-header].dg-header-transparent-active {
    background: transparent !important;
    background-color: transparent !important;
    color: #fffff4 !important;
    border-bottom-color: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}
body.is-hero-transparent-page:not(.menu-open) [data-fixed-header]:not(.is-scrolled):not(.dg-force-solid) a,
body.is-hero-transparent-page:not(.menu-open) [data-fixed-header]:not(.is-scrolled):not(.dg-force-solid) button,
body.is-hero-transparent-page:not(.menu-open) [data-fixed-header]:not(.is-scrolled):not(.dg-force-solid) select,
[data-fixed-header].dg-header-transparent-active a,
[data-fixed-header].dg-header-transparent-active button,
[data-fixed-header].dg-header-transparent-active select {
    color: #fffff4 !important;
}
body.menu-open [data-fixed-header],
html.menu-open-html [data-fixed-header],
[data-fixed-header].is-scrolled,
[data-fixed-header].dg-force-solid,
body.dg-header-solid [data-fixed-header] {
    background: rgba(255, 253, 252, .96) !important;
    background-color: rgba(255, 253, 252, .96) !important;
    color: var(--ink, #1E1C1A) !important;
    border-bottom: 1px solid rgba(120, 73, 77, .18) !important;
    box-shadow: 0 18px 48px rgba(30, 28, 26, .10) !important;
    backdrop-filter: blur(18px) saturate(1.12) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.12) !important;
}
body.menu-open [data-fixed-header] a,
body.menu-open [data-fixed-header] button,
body.menu-open [data-fixed-header] select,
html.menu-open-html [data-fixed-header] a,
html.menu-open-html [data-fixed-header] button,
html.menu-open-html [data-fixed-header] select,
[data-fixed-header].is-scrolled a,
[data-fixed-header].is-scrolled button,
[data-fixed-header].is-scrolled select,
[data-fixed-header].dg-force-solid a,
[data-fixed-header].dg-force-solid button,
[data-fixed-header].dg-force-solid select {
    color: var(--ink, #1E1C1A) !important;
}

/* Logo stabile in header */
.dg-brand-centered  {
 background-color:rgba(255, 253, 252, 0.96) !important;box-shadow: rgba(30, 28, 26, 0.1) 0px 18px 48px !important;
    border-bottom: 1px solid rgba(120, 73, 77, 0.18) !important;
    backdrop-filter: blur(18px) saturate(1.12) !important;
}
.dg-brand-centered img {
    width: auto !important;
    object-fit: contain !important;
    transition: height .34s var(--ease, ease), max-height .34s var(--ease, ease) !important;
}

/* Menu overlay: supporta GlobalArea Concrete, .nav-link e link semplici */
.dg-overlay-primary a,
.dg-overlay-primary .nav-link,
.dg-overlay-primary .dg-overlay-link {
    font-family: var(--font-family2);
    font-size: clamp(2.3rem, 4.4vw, 2.8rem) !important;
    line-height: .92 !important;
    letter-spacing: -.06em !important;
    color: rgba(255, 255, 244, .54) !important;
    display: flex !important;
    gap: clamp(16px, 2vw, 34px) !important;
    align-items: baseline !important;
    width: fit-content !important;
    text-decoration: none !important;
    transform: translateY(30px);
    opacity: 0;
    transition: color 900ms cubic-bezier(.19, 1, .22, 1), transform 900ms cubic-bezier(.19, 1, .22, 1), opacity 900ms cubic-bezier(.19, 1, .22, 1) !important;
}


.dg-overlay-primary .nav-item ul .nav-link
 {
    font-family: var(--font-family2);
    font-size: clamp(1.5rem, 2.4vw, 1.2rem) !important;
    padding-left:3rem;
    transition: color 900ms cubic-bezier(.19, 1, .22, 1), transform 900ms cubic-bezier(.19, 1, .22, 1), opacity 900ms cubic-bezier(.19, 1, .22, 1) !important;
}








body.menu-open .dg-overlay-primary a,
html.menu-open-html .dg-overlay-primary a,
.dg-overlay-menu.is-open .dg-overlay-primary a,
.dg-overlay-menu[aria-hidden="false"] .dg-overlay-primary a {
    transform: translateY(0);
    opacity: 1;
}
body.menu-open .dg-overlay-primary a:nth-child(1),
html.menu-open-html .dg-overlay-primary a:nth-child(1) { transition-delay: 180ms !important; }
body.menu-open .dg-overlay-primary a:nth-child(2),
html.menu-open-html .dg-overlay-primary a:nth-child(2) { transition-delay: 240ms !important; }
body.menu-open .dg-overlay-primary a:nth-child(3),
html.menu-open-html .dg-overlay-primary a:nth-child(3) { transition-delay: 300ms !important; }
body.menu-open .dg-overlay-primary a:nth-child(4),
html.menu-open-html .dg-overlay-primary a:nth-child(4) { transition-delay: 360ms !important; }
body.menu-open .dg-overlay-primary a:nth-child(5),
html.menu-open-html .dg-overlay-primary a:nth-child(5) { transition-delay: 420ms !important; }
body.menu-open .dg-overlay-primary a:nth-child(6),
html.menu-open-html .dg-overlay-primary a:nth-child(6) { transition-delay: 480ms !important; }
.dg-overlay-primary a:hover,
.dg-overlay-primary a.is-active { color: #fffff4 !important; }
.dg-overlay-primary ul,
.dg-overlay-primary li { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.dg-overlay-primary ul { display: grid !important; gap: 10px !important; }

/* Carousel camere GSAP custom */
.camere-drag-section {
    overflow: hidden !important;
}
.camere-drag-gallery {
    overflow: hidden !important;
    cursor: grab !important;
    touch-action: pan-y !important;
}
.camere-drag-gallery.is-dragging {
    cursor: grabbing !important;
}
.camere-drag-track {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 16px !important;
    will-change: transform !important;
    padding-left: clamp(20px, 4vw, 64px) !important;
    padding-right: clamp(20px, 4vw, 64px) !important;
}
.camere-type-card {
    flex: 0 0 clamp(320px, 38vw, 610px) !important;
    min-width: clamp(320px, 38vw, 610px) !important;
    will-change: transform, opacity, filter !important;
}

/* Cards servizi: mai bloccate invisibili */
.servizi-cards-section,
.servizi-cards-grid,
.servizio-card {
    opacity: 1 !important;
    visibility: visible !important;
}

/* Evita transizione brutta tra pagine */
body.dg-page-leaving main,
body.dg-page-leaving footer {
    filter: none !important;
    transform: none !important;
}

@media (max-width: 991px) {
    .dg-topbar,
    .dg-topbar-minimal {
        min-height: 72px !important;
        height: auto !important;
        grid-template-columns: auto 1fr auto !important;
        padding: 8px clamp(14px, 4vw, 28px) !important;
    }
    .dg-brand-centered img {
        height: 62px;
        max-height: 62px;
    }
    .dg-booking-open,
    .dg-icon-link {
        display: none !important;
    }
     .dg-language{
        display: block !important;border-radius:1px
    }
    .camere-type-card {
        flex-basis: calc(100vw - 52px) !important;
        min-width: calc(100vw - 52px) !important;
    }
    .dg-overlay-primary a,
    .dg-overlay-primary .nav-link,
    .dg-overlay-primary .dg-overlay-link {
        font-size: clamp(2.4rem, 13vw, 5rem) !important;
    }
}


.camere-drag-gallery,
.tao-gallery-window {
  position: relative;
  cursor: grab;
  touch-action: pan-y;
  user-select: none;
}

.camere-drag-gallery.is-dragging,
.tao-gallery-window.is-dragging {
  cursor: grabbing;
}

.camere-drag-track,
.tao-gallery-track {
  will-change: transform;
}

.camere-type-card,
.tao-gallery-card {
  -webkit-user-drag: none;
  user-select: none;
}

.camere-type-card img,
.tao-gallery-card img {
  pointer-events: none;
  -webkit-user-drag: none;
}

.dg-drag-cursor {
  position: absolute;
  z-index: 30;
  top: 0;
  left: 0;
  pointer-events: all;
  opacity: 0;
  visibility: hidden;
  transform: translate3d(0,0,0);
  will-change: transform;
}

.dg-drag-cursor__badge {
  width: 6rem;
  height: 6rem;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(185,151,91,.78);
  background: rgba(255,253,252,.96);
  color: var(--plum);
  box-shadow: 0 1.4rem 3.5rem rgba(0,0,0,.24);
  transform: translate3d(-50%,-50%,0) scale(.72);
  opacity: 0;
  transition: opacity .18s ease, transform .24s var(--ease), background .24s var(--ease), color .24s var(--ease);
}

.dg-drag-cursor__badge span {
  font-family: var(--font-family);
  font-size: .55rem;
  letter-spacing: .16em;
  text-transform: uppercase;
  font-weight: 800;
}

.dg-drag-cursor__badge small {
  font-family: monospace;
  font-size: .72rem;
  letter-spacing: .12em;
  opacity: .75;
  margin-top: .2rem;
}

.camere-drag-gallery.is-cursor .dg-drag-cursor {
  opacity: 1;
  visibility: visible;
}

.camere-drag-gallery.is-cursor .dg-drag-cursor__badge {
  opacity: 1;
  transform: translate3d(-50%,-50%,0) scale(1);
}

.camere-drag-gallery.is-dragging .dg-drag-cursor__badge {
  transform: translate3d(-50%,-50%,0) scale(.86);
  background: var(--walnut);
  color: var(--ink);
}

.badgePerson2{color:white;padding-top: 1vh;background-color: red;padding-left: 1rem;padding-right: 1rem;padding-bottom: .7rem;width: 25rem;max-width: fit-content;border-radius: .8rem;font-size: 1rem;}
.ico-mq {
  display: block;
  color: #78494D;
  width: 25px;
  height:auto
}

@media(max-width:991px){
  .dg-drag-cursor,
  .tao-gallery-cursor {
    display: none !important;
  }
}


.faq-page-main {
  background: var(--ivory, #F8F2ED);
}

.faq-hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: #171412;
  color: #fff;
}

.faq-hero-media {
  position: absolute;
  inset: 0;
  margin: 0;
  overflow: hidden;
}

.faq-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.035);
}

.faq-hero-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(0, 0, 0, .70), rgba(0, 0, 0, .18) 55%, rgba(0, 0, 0, .36)),
    linear-gradient(180deg, rgba(0, 0, 0, .10), rgba(0, 0, 0, .76));
  pointer-events: none;
}

.faq-hero-content {
  position: relative;
  z-index: 2;
  padding-top: calc(var(--topbar, 76px) + 100px);
  padding-bottom: clamp(58px, 8vw, 112px);
}

.faq-hero .eyebrow {
  color: rgba(255, 255, 255, .72);
}

.faq-hero-title {
  max-width: 980px;
  margin: 0 0 24px;
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(3.2rem, 7.4vw, 8.7rem);
  line-height: .88;
  letter-spacing: -.07em;
  color: #fff;
}

.faq-hero-lead {
  max-width: 720px;
  margin-bottom: 28px;
  color: rgba(255, 255, 255, .84);
  font-size: clamp(1rem, 1.35vw, 1.28rem);
  line-height: 1.72;
}

.faq-hero-actions,
.faq-cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.faq-intro-section,
.faq-facts-section,
.faq-list-section {
  padding: clamp(105px, 10vw, 160px) 0;
  background: linear-gradient(180deg, var(--paper, #FFFDFC), #F3EADF);
}

.faq-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, .56fr);
  gap: clamp(28px, 6vw, 92px);
  align-items: end;
}

.faq-intro-grid .section-text {
  margin-bottom: 0;
}

.faq-facts-section {
  padding-top: 0;
}

.faq-facts-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.faq-facts-grid article {
  min-height: 210px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(22px, 2.4vw, 34px);
  border: 1px solid rgba(37, 31, 29, .10);
  border-radius: var(--radius, 4px);
  background: rgba(255, 255, 255, .68);
  overflow: hidden;
  position: relative;
}

.faq-facts-grid article::before {
  content: "";
  position: absolute;
  right: 18px;
  top: 18px;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  border: 1px solid rgba(120, 73, 77, .12);
}

.faq-facts-grid span {
  display: block;
  margin-bottom: 10px;
  color: var(--plum, #78494D);
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(2rem, 3.8vw, 4.6rem);
  line-height: .9;
  letter-spacing: -.055em;
}

.faq-facts-grid p {
  max-width: 260px;
  margin: 0;
  color: rgba(37, 31, 29, .68);
  line-height: 1.45;
}

.faq-list-section {
  position: relative;
  padding-top: clamp(110px, 11vw, 170px);
  background:
    radial-gradient(circle at 84% 12%, rgba(185, 151, 91, .10), transparent 28%),
    linear-gradient(180deg, #FFFDFC, #F3EADF);
  overflow: hidden;
}

.faq-list-head {
  max-width: 980px;
  margin-bottom: clamp(42px, 6vw, 78px);
}

.faq-layout {
  display: grid;
  grid-template-columns: minmax(300px, 420px) minmax(0, 1fr);
  gap: clamp(20px, 4vw, 58px);
  align-items: start;
}

.faq-side-card {
  position: sticky;
  top: calc(var(--topbar, 76px) + 28px);
  padding: clamp(24px, 3vw, 38px);
  border: 1px solid rgba(37, 31, 29, .10);
  border-radius: var(--radius, 4px);
  background:
    linear-gradient(180deg, rgba(120, 73, 77, .92), rgba(37, 31, 29, .94)),
    var(--plum, #78494D);
  color: #fff;
  overflow: hidden;
}

.faq-side-card::after {
  content: "";
  position: absolute;
  right: -40px;
  top: -40px;
  width: 160px;
  height: 160px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 50%;
}

.faq-side-card .eyebrow,
.faq-side-card p,
.faq-side-card .dg-link {
  color: rgba(255, 255, 255, .76);
}

.faq-side-card h3 {
  margin-bottom: 18px;
  color: #fff;
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(2rem, 3vw, 3.6rem);
  line-height: 1;
  letter-spacing: -.045em;
}

.faq-side-card p {
  line-height: 1.7;
}

.faq-accordion {
  display: grid;
  gap: 10px;
}

.tao-faq-card {
  border: 1px solid rgba(37, 31, 29, .10);
  border-radius: var(--radius, 4px);
  background: rgba(255, 255, 255, .70);
  overflow: hidden;
  transition:
    border-color .55s cubic-bezier(.19, 1, .22, 1),
    background-color .55s cubic-bezier(.19, 1, .22, 1),
    box-shadow .55s cubic-bezier(.19, 1, .22, 1);
}

.tao-faq-card[open] {
  background: rgba(255, 255, 255, .94);
  border-color: rgba(120, 73, 77, .22);
  box-shadow: 0 24px 70px rgba(37, 31, 29, .055);
}

.tao-faq-card summary {
  list-style: none;
  cursor: pointer;
  min-height: 112px;
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) 38px;
  gap: 18px;
  align-items: center;
  padding: clamp(20px, 2.4vw, 34px);
}

.tao-faq-card summary::-webkit-details-marker {
  display: none;
}

.tao-faq-card summary > span {
  color: var(--plum, #78494D);
  font-size: .74rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.tao-faq-card summary h3 {
  margin: 0;
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(1.55rem, 2.1vw, 2.8rem);
  line-height: 1.03;
  letter-spacing: -.035em;
}

.tao-faq-card summary::after {
  content: "+";
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(120, 73, 77, .16);
  border-radius: 50%;
  color: var(--plum, #78494D);
  font-size: 1.4rem;
  line-height: 1;
  transition:
    transform .45s cubic-bezier(.19, 1, .22, 1),
    background-color .45s cubic-bezier(.19, 1, .22, 1),
    color .45s cubic-bezier(.19, 1, .22, 1);
}

.tao-faq-card[open] summary::after {
  content: "";
  transform: rotate(180deg);
  background: var(--plum, #78494D);
  color: #fff;
}

.tao-faq-card > div {
  padding: 0 clamp(20px, 2.4vw, 34px) clamp(24px, 3vw, 38px) calc(clamp(20px, 2.4vw, 34px) + 82px);
}

.tao-faq-card p,
.tao-faq-card li {
  max-width: 850px;
  color: rgba(37, 31, 29, .72);
  line-height: 1.72;
}

.tao-faq-card ul {
  margin: 18px 0 0;
  padding-left: 18px;
}

.faq-cta-section {
  padding: clamp(110px, 12vw, 180px) 0;
  background: var(--plum, #78494D);
  color: #fff;
}

.faq-cta-section .eyebrow,
.faq-cta-section p {
  color: rgba(255, 255, 255, .76);
}

.faq-cta-section .cta-title {
  max-width: 980px;
  color: #fff;
}

.faq-cta-section p {
  max-width: 720px;
  line-height: 1.72;
}

@media (max-width: 1199px) {
  .faq-layout {
    grid-template-columns: 1fr;
  }

  .faq-side-card {
    position: relative;
    top: auto;
  }
}

@media (max-width: 991px) {
  .faq-intro-grid,
  .faq-facts-grid {
    grid-template-columns: 1fr;
  }

  .faq-hero-title {
    font-size: clamp(3rem, 12vw, 5.8rem);
  }

  .faq-facts-grid article {
    min-height: 170px;
  }

  .tao-faq-card summary {
    grid-template-columns: 46px minmax(0, 1fr) 34px;
    gap: 12px;
  }

  .tao-faq-card > div {
    padding-left: clamp(20px, 2.4vw, 34px);
  }
}

@media (max-width: 575px) {
  .faq-hero-content {
    padding-bottom: 72px;
  }

  .faq-hero-actions,
  .faq-cta-actions {
    display: grid;
  }

  .tao-faq-card summary {
    min-height: 96px;
    grid-template-columns: 1fr 34px;
  }

  .tao-faq-card summary > span {
    grid-column: 1 / -1;
  }

  .tao-faq-card summary h3 {
    font-size: clamp(1.42rem, 7vw, 2.2rem);
  }
}


.service-detail-main {
  background: var(--ivory, #F8F2ED);
}

.service-detail-hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background: #171412;
  color: #fff;
}

.service-detail-hero-media {
  position: absolute;
  inset: 0;
  margin: 0;
  overflow: hidden;
}

.service-detail-hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scale(1.035);
}

.service-detail-hero-shade {
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(90deg, rgba(0, 0, 0, .20), rgba(0, 0, 0, .16) 55%, rgba(0, 0, 0, .14)),
    linear-gradient(180deg, rgba(0, 0, 0, .08), rgba(0, 0, 0, .56));
  pointer-events: none;
}
.service-detail-hero-content {
  position: relative;
  z-index: 2;
  padding-top: calc(var(--topbar, 76px) + 100px);
  padding-bottom: clamp(58px, 8vw, 112px);
}

.service-detail-hero .eyebrow {
  color: rgba(255, 255, 255, .72);
}

.service-detail-hero-title {
  max-width: 1100px;
  margin: 0 0 24px;
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(3.15rem, 7.1vw, 8.4rem);
  line-height: .9;
  letter-spacing: -.07em;
  color: #fff;
}

.service-detail-hero-lead {
  max-width: 760px;
  margin-bottom: 28px;
  color: rgba(255, 255, 255, .84);
  font-size: clamp(1rem, 1.35vw, 1.28rem);
  line-height: 1.72;
}

.service-detail-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.service-detail-intro-section,
.service-detail-facts-section,
.service-detail-content-section,
.service-detail-related-section {
  padding: clamp(105px, 10vw, 160px) 0;
  background: linear-gradient(180deg, var(--paper, #FFFDFC), #F3EADF);
}

.service-detail-intro-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(300px, .56fr);
  gap: clamp(28px, 6vw, 92px);
  align-items: end;
}

.service-detail-intro-grid .section-text {
  margin-bottom: 0;
}

.service-detail-facts-section {
  padding-top: 0;
}

.service-detail-facts-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
}

.service-detail-facts-grid article {
  position: relative;
  min-height: 220px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(22px, 2.4vw, 34px);
  border: 1px solid rgba(37, 31, 29, .10);
  border-radius: var(--radius, 4px);
  background: rgba(255, 255, 255, .68);
  overflow: hidden;
}

.service-detail-facts-grid article::before {
  content: "";
  position: absolute;
  right: 18px;
  top: 18px;
  width: 74px;
  height: 74px;
  border-radius: 50%;
  border: 1px solid rgba(120, 73, 77, .12);
}

.service-detail-facts-grid span {
  display: block;
  margin-bottom: 10px;
  color: var(--plum, #78494D);
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(2rem, 3.8vw, 4.6rem);
  line-height: .9;
  letter-spacing: -.055em;
}

.service-detail-facts-grid p {
  max-width: 260px;
  margin: 0;
  color: rgba(37, 31, 29, .68);
  line-height: 1.45;
}

.service-detail-content-section {
  background:
    radial-gradient(circle at 84% 12%, rgba(185, 151, 91, .10), transparent 28%),
    linear-gradient(180deg, #FFFDFC, #F3EADF);
}

.service-detail-content-head,
.service-detail-related-head {
  max-width: 980px;
  margin-bottom: clamp(42px, 6vw, 78px);
}

.service-detail-layout {
  display: grid;
  grid-template-columns: minmax(300px, 420px) minmax(0, 1fr);
  gap: clamp(20px, 4vw, 58px);
  align-items: start;
}

.service-detail-sticky-card {
  position: sticky;
  top: calc(var(--topbar, 76px) + 28px);
  padding: clamp(24px, 3vw, 38px);
  border: 1px solid rgba(37, 31, 29, .10);
  border-radius: var(--radius, 4px);
  background:
    linear-gradient(180deg, rgba(120, 73, 77, .92), rgba(37, 31, 29, .94)),
    var(--plum, #78494D);
  color: #fff;
  overflow: hidden;
}

.service-detail-sticky-card::after {
  content: "";
  position: absolute;
  right: -40px;
  top: -40px;
  width: 160px;
  height: 160px;
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 50%;
}

.service-detail-sticky-card .eyebrow,
.service-detail-sticky-card p {
  color: rgba(255, 255, 255, .76);
}

.service-detail-sticky-card h3 {
  margin-bottom: 18px;
  color: #fff;
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(2rem, 3vw, 3.6rem);
  line-height: 1;
  letter-spacing: -.045em;
}

.service-detail-sticky-card p {
  line-height: 1.7;
}

.service-detail-cards {
  display: grid;
  gap: 10px;
}

.service-detail-card {
  position: relative;
  min-height: 300px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(24px, 3vw, 40px);
  border: 1px solid rgba(37, 31, 29, .10);
  border-radius: var(--radius, 4px);
  background: rgba(255, 255, 255, .70);
  overflow: hidden;
  transition:
    transform .7s cubic-bezier(.19, 1, .22, 1),
    border-color .7s cubic-bezier(.19, 1, .22, 1),
    background-color .7s cubic-bezier(.19, 1, .22, 1),
    box-shadow .7s cubic-bezier(.19, 1, .22, 1);
}

.service-detail-card::before {
  content: "";
  position: absolute;
  right: 20px;
  top: 20px;
  width: 82px;
  height: 82px;
  border-radius: 50%;
  border: 1px solid rgba(120, 73, 77, .12);
  transform: scale(.86);
  transition: transform .7s cubic-bezier(.19, 1, .22, 1);
}

.service-detail-card:hover {
  transform: translateY(-5px);
  border-color: rgba(120, 73, 77, .22);
  background: rgba(255, 255, 255, .94);
  box-shadow: 0 24px 70px rgba(37, 31, 29, .055);
}

.service-detail-card:hover::before {
  transform: scale(1);
}

.service-detail-card span,
.service-related-card span {
  color: var(--plum, #78494D);
  font-size: .74rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.service-detail-card h3 {
  max-width: 780px;
  margin: 18px 0 14px;
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(1.72rem, 2.55vw, 3.4rem);
  line-height: 1.02;
  letter-spacing: -.04em;
}

.service-detail-card p {
  max-width: 850px;
  margin: 0;
  color: rgba(37, 31, 29, .72);
  line-height: 1.72;
}

.service-detail-related-section {
  background: var(--paper, #FFFDFC);
}

.service-detail-related-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
}

.service-related-card {
  min-height: 230px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: clamp(22px, 2.4vw, 34px);
  border: 1px solid rgba(37, 31, 29, .10);
  border-radius: var(--radius, 4px);
  background: rgba(255, 255, 255, .70);
  text-decoration: none;
  transition:
    transform .55s cubic-bezier(.19, 1, .22, 1),
    background-color .55s cubic-bezier(.19, 1, .22, 1);
}

.service-related-card h3 {
  margin: 16px 0 0;
  color: var(--ink, #1E1C1A);
  font-family: var(--font-family2, Georgia, serif);
  font-size: clamp(1.35rem, 1.75vw, 2.3rem);
  line-height: 1.04;
  letter-spacing: -.035em;
}

.service-related-card:hover {
  transform: translateY(-4px);
  background: rgba(255, 255, 255, .95);
}

@media (max-width: 1199px) {
  .service-detail-layout,
  .service-detail-related-grid {
    grid-template-columns: 1fr;
  }

  .service-detail-sticky-card {
    position: relative;
    top: auto;
  }
}

@media (max-width: 991px) {
  .service-detail-intro-grid,
  .service-detail-facts-grid {
    grid-template-columns: 1fr;
  }

  .service-detail-hero-title {
    font-size: clamp(3rem, 12vw, 5.8rem);
  }

  .service-detail-facts-grid article,
  .service-detail-card {
    min-height: 230px;
  }
}

@media (max-width: 575px) {
  .service-detail-hero-content {
    padding-bottom: 72px;
  }

  .service-detail-hero-actions {
    display: grid;
  }

  .service-detail-card h3 {
    font-size: clamp(1.55rem, 7.4vw, 2.5rem);
  }
}

.storia-page-main,.contatti-page-main{background:var(--ivory,#F8F2ED)}
.storia-hero,.contatti-hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;background:#171412;color:#fff}
.storia-hero-media,.contatti-hero-media{position:absolute;inset:0;margin:0;overflow:hidden}
.storia-hero-media img,.contatti-hero-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.035)}
.storia-hero-shade,.contatti-hero-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(0,0,0,.70),rgba(0,0,0,.16) 55%,rgba(0,0,0,.34)),linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.176));pointer-events:none}
.storia-hero-content,.contatti-hero-content{position:relative;z-index:2;padding-top:calc(var(--topbar,76px) + 100px);padding-bottom:clamp(58px,8vw,112px)}
.storia-hero .eyebrow,.contatti-hero .eyebrow{color:rgba(255,255,255,.72)}
.storia-hero-title,.contatti-hero-title{max-width:1120px;margin:0 0 24px;font-family:var(--font-family2,Georgia,serif);font-size:clamp(3.15rem,7.1vw,8.4rem);line-height:.9;letter-spacing:-.07em;color:#fff}
.storia-hero-lead,.contatti-hero-lead{max-width:760px;margin-bottom:28px;color:rgba(255,255,255,.84);font-size:clamp(1rem,1.35vw,1.28rem);line-height:1.72}
.storia-hero-actions,.contatti-hero-actions,.storia-cta-actions{display:flex;flex-wrap:wrap;gap:10px}
.storia-intro-section,.storia-facts-section,.storia-chapters-section,.contatti-info-section,.contatti-map-section,.contatti-form-section{padding:clamp(105px,10vw,160px) 0;background:linear-gradient(180deg,var(--paper,#FFFDFC),#F3EADF)}
.storia-intro-grid,.contatti-form-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(300px,1.16fr);gap:clamp(28px,6vw,92px);align-items:end}
.storia-intro-grid .section-text,.contatti-form-grid .section-text{margin-bottom:0}
.storia-facts-section{padding-top:0}
.storia-facts-grid,.contatti-map-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.storia-facts-grid article,.contatti-map-facts article{position:relative;min-height:220px;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(22px,2.4vw,34px);border:1px solid rgba(37,31,29,.10);border-radius:var(--radius,4px);background:rgba(255,255,255,.68);overflow:hidden}
.storia-facts-grid article::before,.contatti-map-facts article::before{content:"";position:absolute;right:18px;top:18px;width:74px;height:74px;border-radius:50%;border:1px solid rgba(120,73,77,.12)}
.storia-facts-grid span,.contatti-map-facts span{display:block;margin-bottom:10px;color:var(--plum,#78494D);font-family:var(--font-family2,Georgia,serif);font-size:clamp(2rem,3.8vw,4.6rem);line-height:.9;letter-spacing:-.055em}
.storia-facts-grid p,.contatti-map-facts p{max-width:260px;margin:0;color:rgba(37,31,29,.68);line-height:1.45}
.storia-parallax-section{position:relative;min-height:min(100svh,920px);display:flex;align-items:flex-end;overflow:hidden;background:#171412;color:#fff}
.storia-parallax-media{position:absolute;inset:0;margin:0;overflow:hidden}
.storia-parallax-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.64),rgba(0,0,0,.10) 58%,rgba(0,0,0,.36)),linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.72));pointer-events:none}
.storia-parallax-media img{width:100%;height:115%;object-fit:cover;transform:scale(1.08)}
.storia-parallax-copy{position:relative;z-index:2;padding-top:160px;padding-bottom:clamp(58px,8vw,112px)}
.storia-parallax-copy .eyebrow{color:rgba(255,255,255,.72)}
.storia-parallax-copy h2{max-width:960px;margin:0 0 24px;color:#fff;font-family:var(--font-family2,Georgia,serif);font-size:clamp(3rem,6vw,7.4rem);line-height:.92;letter-spacing:-.065em}
.storia-parallax-copy p{max-width:680px;color:rgba(255,255,255,.78);line-height:1.74;font-size:clamp(1rem,1.28vw,1.24rem)}
.storia-chapters-section{background:radial-gradient(circle at 84% 12%,rgba(185,151,91,.10),transparent 28%),linear-gradient(180deg,#FFFDFC,#F3EADF)}
.storia-chapters-head,.contatti-info-head{max-width:980px;margin-bottom:clamp(42px,6vw,78px)}
.storia-layout{display:grid;grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:clamp(20px,4vw,58px);align-items:start}
.storia-sticky-card{position:sticky;top:calc(var(--topbar,76px) + 28px);padding:clamp(24px,3vw,38px);border:1px solid rgba(37,31,29,.10);border-radius:var(--radius,4px);background:linear-gradient(180deg,rgba(120,73,77,.92),rgba(37,31,29,.94)),var(--plum,#78494D);color:#fff;overflow:hidden}
.storia-sticky-card::after{content:"";position:absolute;right:-40px;top:-40px;width:160px;height:160px;border:1px solid rgba(255,255,255,.16);border-radius:50%}
.storia-sticky-card .eyebrow,.storia-sticky-card p{color:rgba(255,255,255,.76)}
.storia-sticky-card h3{margin-bottom:18px;color:#fff;font-family:var(--font-family2,Georgia,serif);font-size:clamp(2rem,3vw,3.6rem);line-height:1;letter-spacing:-.045em}
.storia-chapter-cards{display:grid;gap:10px}
.storia-chapter-card,.contatti-info-grid article{position:relative;min-height:300px;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(24px,3vw,40px);border:1px solid rgba(37,31,29,.10);border-radius:var(--radius,4px);background:rgba(255,255,255,.70);overflow:hidden;transition:transform .7s cubic-bezier(.19,1,.22,1),border-color .7s cubic-bezier(.19,1,.22,1),background-color .7s cubic-bezier(.19,1,.22,1),box-shadow .7s cubic-bezier(.19,1,.22,1)}
.storia-chapter-card:hover,.contatti-info-grid article:hover{transform:translateY(-5px);border-color:rgba(120,73,77,.22);background:rgba(255,255,255,.94);box-shadow:0 24px 70px rgba(37,31,29,.055)}
.storia-chapter-card span,.contatti-info-grid article span{color:var(--plum,#78494D);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}
.storia-chapter-card h3,.contatti-info-grid article h3{max-width:780px;margin:18px 0 14px;font-family:var(--font-family2,Georgia,serif);font-size:clamp(1.72rem,2.55vw,3.4rem);line-height:1.02;letter-spacing:-.04em}
.contatti-info-grid article h3{max-width:780px;margin:18px 0 14px;font-family:var(--font-family2,Georgia,serif);font-size:clamp(1.72rem,2.45vw,2.2rem);line-height:1.02;letter-spacing:-.04em}
.storia-chapter-card p,.contatti-info-grid article p{max-width:850px;margin:0;color:rgba(37,31,29,.72);line-height:1.72}
.storia-cta-section{padding:clamp(110px,12vw,180px) 0;background:var(--plum,#78494D);color:#fff}
.storia-cta-section .eyebrow{color:rgba(255,255,255,.72)}
.storia-cta-section .cta-title{color:#fff}
.contatti-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.contatti-map-section{background:radial-gradient(circle at 10% 82%,rgba(120,73,77,.10),transparent 30%),linear-gradient(180deg,#F3EADF,var(--paper,#FFFDFC))}
.contatti-map-grid{display:grid;grid-template-columns:minmax(320px,.84fr) minmax(0,1.16fr);gap:clamp(28px,6vw,92px);align-items:center}
.contatti-map-copy .section-text{max-width:620px}
.contatti-map-facts{margin-top:34px;grid-template-columns:repeat(2,1fr)}
.contatti-map-panel{min-height:min(76vh,720px);border-radius:var(--radius,4px);overflow:hidden;border:1px solid rgba(37,31,29,.10);box-shadow:0 28px 80px rgba(37,31,29,.12);background:#D8CBBC}
.contatti-map-panel iframe{width:100%;border:0;filter:saturate(.9) contrast(.95)}
.contatti-form-section{background:var(--paper,#FFFDFC)}
.contatti-form-card{padding:clamp(24px,3vw,40px);border:1px solid rgba(37,31,29,.10);border-radius:var(--radius,4px);background:rgba(255,255,255,.76)}
.contatti-form-card label{display:block;margin-bottom:16px;color:rgba(37,31,29,.68);font-size:.82rem;letter-spacing:.08em;text-transform:uppercase}
.contatti-form-card input,.contatti-form-card textarea{width:100%;margin-top:8px;padding:15px 16px;border:1px solid rgba(37,31,29,.12);border-radius:var(--radius,4px);background:rgba(255,255,255,.88);color:var(--ink,#1E1C1A);outline:none;font:inherit;text-transform:none;letter-spacing:0}
.contatti-form-card input:focus,.contatti-form-card textarea:focus{border-color:rgba(120,73,77,.42)}
.contatti-form-card button{background:#78494d;padding:.8rem;border-radius:none}
@media (max-width:1199px){.storia-layout,.contatti-map-grid{grid-template-columns:1fr}.storia-sticky-card{position:relative;top:auto}.contatti-map-panel{min-height:560px}}
@media (max-width:991px){.storia-intro-grid,.contatti-form-grid,.storia-facts-grid,.contatti-info-grid,.contatti-map-facts{grid-template-columns:1fr}.storia-hero-title,.contatti-hero-title{font-size:clamp(3rem,12vw,5.8rem)}.storia-facts-grid article,.contatti-map-facts article,.storia-chapter-card,.contatti-info-grid article{min-height:230px}}
@media (max-width:575px){.storia-hero-content,.contatti-hero-content{padding-bottom:72px}.storia-hero-actions,.contatti-hero-actions,.storia-cta-actions{display:grid}.storia-parallax-section{min-height:76svh}.contatti-map-panel{min-height:460px}}
/* =========================================================
   HOTEL TAORMINA TERRITORIO PAGE V42 STYLE
   ========================================================= */
.territorio-page-main{background:var(--ivory,#F8F2ED)}
.territorio-hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;background:#171412;color:#fff}
.territorio-hero-media{position:absolute;inset:0;margin:0;overflow:hidden}
.territorio-hero-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.035)}
.territorio-hero-shade{position:absolute;inset:0;z-index:1;background: linear-gradient(90deg,rgba(0,0,0,.70),rgba(0,0,0,.16) 55%,rgba(0,0,0,.14)),linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.06));pointer-events:none}
.territorio-hero-content{position:relative;z-index:2;padding-top:calc(var(--topbar,76px) + 100px);padding-bottom:clamp(58px,8vw,112px)}
.territorio-hero .eyebrow{color:rgba(255,255,255,.72)}
.territorio-hero-title{max-width:1120px;margin:0 0 24px;font-family:var(--font-family2,Georgia,serif);font-size:clamp(3.15rem,7.1vw,8.4rem);line-height:.9;letter-spacing:-.07em;color:#fff}
.territorio-hero-lead{max-width:760px;margin-bottom:28px;color:rgba(255,255,255,.84);font-size:clamp(1rem,1.35vw,1.28rem);line-height:1.72}
.territorio-hero-actions,.territorio-cta-actions{display:flex;flex-wrap:wrap;gap:10px}

.territorio-intro-section,.territorio-facts-section,.territorio-story-section,.territorio-carousel-section{padding:clamp(105px,10vw,160px) 0;background:linear-gradient(180deg,var(--paper,#FFFDFC),#F3EADF)}
.territorio-intro-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(300px,.56fr);gap:clamp(28px,6vw,92px);align-items:end}
.territorio-intro-grid .section-text{margin-bottom:0}
.territorio-facts-section{padding-top:0}
.territorio-facts-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.territorio-facts-grid article{position:relative;min-height:220px;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(22px,2.4vw,34px);border:1px solid rgba(37,31,29,.10);border-radius:var(--radius,4px);background:rgba(255,255,255,.68);overflow:hidden}
.territorio-facts-grid article::before{content:"";position:absolute;right:18px;top:18px;width:74px;height:74px;border-radius:50%;border:1px solid rgba(120,73,77,.12)}
.territorio-facts-grid span{display:block;margin-bottom:10px;color:var(--plum,#78494D);font-family:var(--font-family2,Georgia,serif);font-size:clamp(2rem,3.8vw,4.6rem);line-height:.9;letter-spacing:-.055em}
.territorio-facts-grid p{max-width:260px;margin:0;color:rgba(37,31,29,.68);line-height:1.45}

.territorio-parallax-section{position:relative;min-height:min(100svh,920px);display:flex;align-items:flex-end;overflow:hidden;background:#171412;color:#fff}
.territorio-parallax-media{position:absolute;inset:0;margin:0;overflow:hidden}
.territorio-parallax-media::after{content:"";position:absolute;inset:0;background: linear-gradient(90deg,rgba(0,0,0,.34),rgba(0,0,0,.10) 58%,rgba(0,0,0,.36)),linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.172));pointer-events:none}
.territorio-parallax-media img{width:100%;height:115%;object-fit:cover;transform:scale(1.08)}
.territorio-parallax-copy{position:relative;z-index:2;padding-top:160px;padding-bottom:clamp(58px,8vw,112px)}
.territorio-parallax-copy .eyebrow{color:rgba(255,255,255,.72)}
.territorio-parallax-copy h2{max-width:960px;margin:0 0 24px;color:#fff;font-family:var(--font-family2,Georgia,serif);font-size: clamp(3rem,6vw,4.4rem);line-height:.92;letter-spacing:-.065em}
.territorio-parallax-copy p{max-width:680px;color:rgba(255,255,255,.78);line-height:1.74;font-size:clamp(1rem,1.28vw,1.24rem)}

.territorio-story-section{background:radial-gradient(circle at 84% 12%,rgba(185,151,91,.10),transparent 28%),linear-gradient(180deg,#FFFDFC,#F3EADF)}
.territorio-story-head,.territorio-carousel-head{max-width:980px;margin-bottom:clamp(42px,6vw,78px)}
.territorio-layout{display:grid;grid-template-columns:minmax(300px,420px) minmax(0,1fr);gap:clamp(20px,4vw,58px);align-items:start}
.territorio-sticky-card{position:sticky;top:calc(var(--topbar,76px) + 28px);padding:clamp(24px,3vw,38px);border:1px solid rgba(37,31,29,.10);border-radius:var(--radius,4px);background:linear-gradient(180deg,rgba(120,73,77,.92),rgba(37,31,29,.94)),var(--plum,#78494D);color:#fff;overflow:hidden}
.territorio-sticky-card::after{content:"";position:absolute;right:-40px;top:-40px;width:160px;height:160px;border:1px solid rgba(255,255,255,.16);border-radius:50%}
.territorio-sticky-card .eyebrow,.territorio-sticky-card p{color:rgba(255,255,255,.76)}
.territorio-sticky-card h3{margin-bottom:18px;color:#fff;font-family:var(--font-family2,Georgia,serif);font-size:clamp(2rem,3vw,3.6rem);line-height:1;letter-spacing:-.045em}

.territorio-story-cards{display:grid;gap:10px}
.territorio-story-card{position:relative;min-height:300px;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(24px,3vw,40px);border:1px solid rgba(37,31,29,.10);border-radius:var(--radius,4px);background:rgba(255,255,255,.70);overflow:hidden;transition:transform .7s cubic-bezier(.19,1,.22,1),border-color .7s cubic-bezier(.19,1,.22,1),background-color .7s cubic-bezier(.19,1,.22,1),box-shadow .7s cubic-bezier(.19,1,.22,1)}
.territorio-story-card:hover{transform:translateY(-5px);border-color:rgba(120,73,77,.22);background:rgba(255,255,255,.94);box-shadow:0 24px 70px rgba(37,31,29,.055)}
.territorio-story-card span,.territorio-card-copy span{color:var(--plum,#78494D);font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}
.territorio-story-card h3{max-width:780px;margin:18px 0 14px;font-family:var(--font-family2,Georgia,serif);font-size:clamp(1.72rem,2.55vw,3.4rem);line-height:1.02;letter-spacing:-.04em}
.territorio-story-card p{max-width:850px;margin:0;color:rgba(37,31,29,.72);line-height:1.72}

.territorio-carousel-section{background:var(--paper,#FFFDFC)}
.territorio-carousel-section .drag-gallery{overflow:hidden;position:relative;cursor:none}
.territorio-carousel-section .drag-track{display:flex;align-items:stretch;gap:18px;will-change:transform}
.territorio-carousel-section .drag-card{flex:0 0 clamp(320px,31vw,470px);min-height:640px;border:1px solid rgba(37,31,29,.10);border-radius:var(--radius,4px);overflow:hidden;background:rgba(255,255,255,.84)}
.territorio-carousel-section .drag-card figure{margin:0;height:72%;overflow:hidden}
.territorio-carousel-section .drag-card img{width:100%;height:100%;object-fit:cover;transform:scale(1.035)}
.territorio-card-copy{display:flex;flex-direction:column;justify-content:flex-end;gap:10px;padding:22px 24px 26px}
.territorio-card-copy h3{margin:0;font-family:var(--font-family2,Georgia,serif);font-size:clamp(1.5rem,1.9vw,2.4rem);line-height:1.04;letter-spacing:-.035em}
.territorio-card-copy p{margin:0;color:rgba(37,31,29,.68);line-height:1.62}
.territorio-carousel-section .drag-gallery.is-dragging{cursor:grabbing}

.territorio-cta-section{padding:clamp(110px,12vw,180px) 0;background:var(--plum,#78494D);color:#fff}
.territorio-cta-section .eyebrow{color:rgba(255,255,255,.72)}
.territorio-cta-section .cta-title{color:#fff}
@media (max-width: 1921px) {
.dg-overlay-primary a,
.dg-overlay-primary .nav-link,
.dg-overlay-primary .dg-overlay-link {
    font-family: var(--font-family2);
    font-size: clamp(2.3rem, 4vw, 2.1rem) !important;
    line-height: .92 !important;
    letter-spacing: -.06em !important;
    color: rgba(255, 255, 244, .54) !important;
    display: flex !important;
    gap: clamp(16px, 2vw, 34px) !important;
    align-items: baseline !important;
    width: fit-content !important;
    text-decoration: none !important;
    transform: translateY(30px);
    opacity: 0;
    transition: color 900ms cubic-bezier(.19, 1, .22, 1), transform 900ms cubic-bezier(.19, 1, .22, 1), opacity 900ms cubic-bezier(.19, 1, .22, 1) !important;
}


.dg-overlay-primary .nav-item ul .nav-link
 {
    font-family: var(--font-family2);
    font-size: clamp(1.5rem, 2.2vw, 1.1rem) !important;
    padding-left:3rem;
    transition: color 900ms cubic-bezier(.19, 1, .22, 1), transform 900ms cubic-bezier(.19, 1, .22, 1), opacity 900ms cubic-bezier(.19, 1, .22, 1) !important;
}
.dg-overlay-primary .nav-link,
.dg-overlay-primary .dg-overlay-link,
.dg-overlay-menu .nav-link,
.dg-overlay-menu .dg-overlay-link,
[data-overlay-menu] .nav-link,
[data-overlay-menu] .dg-overlay-link{
  font-size: clamp(2.35rem, 4vw, 2.2rem) !important;
}
}
@media (max-width:1199px){
  .territorio-layout{grid-template-columns:1fr}
  .territorio-sticky-card{position:relative;top:auto}
}
@media (max-width:991px){
  .territorio-intro-grid,.territorio-facts-grid{grid-template-columns:1fr}
  .territorio-hero-title{font-size:clamp(3rem,12vw,5.8rem)}
  .territorio-facts-grid article,.territorio-story-card{min-height:230px}
  .territorio-carousel-section .drag-card{flex:0 0 min(84vw,420px);min-height:560px}
}
@media (max-width:575px){
  .territorio-hero-content{padding-bottom:72px}
  .territorio-hero-actions,.territorio-cta-actions{display:grid}
  .territorio-parallax-section{min-height:76svh}
  .territorio-carousel-section .drag-card{min-height:500px}
  .territorio-card-copy{padding:18px}
}
.badgePerson{position:absolute!important;top:1rem!important;display: flex;color: var(--ap-bg-4);padding-top: 1vh;background-color: white;padding-left: 1rem;padding-right: 1rem;padding-bottom: .7rem;width: 15rem;height:35px;border-radius: .8rem;font-size: 1rem;}.badgePerson span{position:relative!important;display: block;color: var(--brand-burgundy);font-size: .7rem;margin-left: .42rem;}

.tao-room-features{padding:80px 0}
.tao-feature{height:100%;padding:32px 24px;text-align:center;border-left:1px solid rgba(0,0,0,.12)}
.col-lg:first-child .tao-feature{border-left:none}
.tao-icon{width:46px;height:46px;margin-bottom:18px;fill:none;stroke:#111;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.tao-feature h3{font-size:.78rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;margin-bottom:12px}
.tao-feature p{font-size:.92rem;line-height:1.7;color:#555;margin:0}
.tao-reviews-carousel-section {
  overflow: hidden;
}

.tao-reviews-swiper {
  width: 100%;
  overflow: visible;
}

.tao-reviews-swiper .swiper-wrapper {
  align-items: stretch;
}

.tao-reviews-swiper .swiper-slide {
  height: auto;
}

.tao-review-platform {
  min-height: 100%;
}

.tao-review-stars {
  margin-top: 14px;
  margin-bottom: 10px;
  font-size: 14px;
  letter-spacing: 0.12em;
  line-height: 1;
  color: currentColor;
  opacity: .82;
}

.tao-review-meta {
  display: block;
  margin-top: 20px;
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: .08em;
  text-transform: uppercase;
  opacity: .58;
}

.tao-expedia .tao-platform-icon,
.tao-trivago .tao-platform-icon {
  display: flex;
  align-items: center;
  justify-content: center;
}

.tao-platform-letter {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-family: Arial, Helvetica, sans-serif;
  font-weight: 800;
  font-size: 28px;
  line-height: 1;
}

.tao-expedia .tao-platform-icon {
  background: #f7c948;
  color: #14213d;
}

.tao-trivago .tao-platform-icon {
  background: #f3f0ea;
  color: #1e1c1a;
}

.tao-review-carousel-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 34px;
}

.tao-review-pagination {
  position: static !important;
  width: auto !important;
  display: flex;
  align-items: center;
  gap: 8px;
}

.tao-review-pagination .swiper-pagination-bullet {
  width: 7px;
  height: 7px;
  margin: 0 !important;
  opacity: .28;
  background: currentColor;
}

.tao-review-pagination .swiper-pagination-bullet-active {
  opacity: 1;
  transform: scale(1.35);
}

.tao-review-arrows {
  display: flex;
  align-items: center;
  gap: 10px;
}

.tao-review-arrow {
  width: 44px;
  height: 44px;
  border-radius: 999px;
  border: 1px solid currentColor;
  background: transparent;
  color: inherit;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: .78;
  transition: opacity .25s ease, transform .25s ease;
}

.tao-review-arrow:hover {
  opacity: 1;
  transform: translateY(-2px);
}

.tao-review-arrow span {
  display: block;
  font-size: 30px;
  line-height: 1;
  transform: translateY(-1px);
}

@media (max-width: 767px) {
  .tao-review-carousel-bottom {
    margin-top: 24px;
  }

  .tao-review-arrow {
    width: 40px;
    height: 40px;
  }
}
@media(max-width:991px){.tao-feature{border-left:none;border-top:1px solid rgba(0,0,0,.12);padding:28px 16px}.row>*:first-child .tao-feature{border-top:none}}


/* Forza il wrapper di GSAP a prendersi tutto lo schermo e andare SOTTO la scrollbar */
#smooth-wrapper {
    width: 100vw !important;
    overflow-x: hidden !important;
}

/* Rendi la barra trasparente così il contenuto ci scorre sotto e si vede */
html::-webkit-scrollbar {
    width: 10px;
    background: transparent;
}

html::-webkit-scrollbar-thumb {
    background-color: rgba(30, 28, 26, 0.4) !important; /* var(--ink) semi-trasparente[cite: 1] */
    border-radius: 20px;
    border: 2px solid transparent;
    background-clip: padding-box;
}

html::-webkit-scrollbar-track {
    background: transparent;
}

/* 1. Nascondi la barra nativa senza bloccare le funzioni di scroll */
html {
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE/Edge */
}
html::-webkit-scrollbar {
    display: none; /* Chrome, Safari, Brave */
}

/* 2. Posiziona la nuova barra in overlay assoluto */
.custom-scrollbar {
    position: fixed;
    top: 0;
    right: 0;
    width: 6px; /* Spessore sottile ed elegante */
    height: 100vh;
    z-index: 9999;
    pointer-events: none; /* Evita che blocchi i click sui contenuti sotto */
    padding-right: 2px;
}

.custom-scrollbar-thumb {
    width: 100%;
    background-color: var(--plum); /* Usa il colore del tuo brand dal CSS[cite: 1] */
    border-radius: 10px;
    height: 0; /* L'altezza verrà calcolata dinamicamente via JS */
    position: absolute;
    top: 0;
    right: 2px;
}
@media(max-width:991px){.dg-menu-lines, .dg-menu-lines i {
    width: 31px !important;
}.custom-scrollbar {
display:none
}
            }