/* Gentle site-wide refinements. Load after Bootstrap and before hair-menu.css. */
:root {
    --timeless-sage: #7a847b;
    --timeless-sage-dark: #526056;
    --timeless-ivory: #faf9f5;
    --timeless-paper: #f2f1eb;
    --timeless-gold: #9c782d;
    --timeless-line: #d9d5c8;
    --timeless-ink: #333831;
    --timeless-muted: #646b61;
}

body {
    color: var(--timeless-ink);
    background-color: var(--timeless-ivory);
    font-family: 'Lato', sans-serif;
    font-size: 16px;
    line-height: 1.75;
    -webkit-font-smoothing: antialiased;
}

body > .container {
    background-color: var(--timeless-ivory);
}

/* The original header height, logo, and video proportions are preserved. */
.header {
    background-color: var(--timeless-sage);
    border-bottom: 1px solid rgba(255, 255, 255, .13);
    box-shadow: 0 3px 18px rgba(44, 54, 44, .07);
}

.header .logo {
    padding-top: 14px;
    padding-bottom: 5px;
}

.header .logo a {
    display: inline-block;
    line-height: 0;
}

.header .logo img {
    max-width: 100%;
    height: auto;
}

#drop-menu {
    font-family: 'Raleway', sans-serif;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .09em;
}

#drop-menu ul#menu {
    width: auto;
    margin: 0 20px;
    align-items: center;
    gap: 4px;
}

#drop-menu ul#menu > li {
    float: none;
    margin: 0;
    padding: 9px 13px;
}

#drop-menu ul#menu > li.marginLeft {
    margin-left: 0 !important; /* Legacy .marginLeft uses !important. */
}

#drop-menu ul#menu > li > a,
#drop-menu ul#menu > li > button {
    position: relative;
    display: block;
    border: 0;
    padding: 2px 0;
    background: none;
    color: #fff;
    font: inherit;
    line-height: 1.6;
    letter-spacing: inherit;
    text-transform: uppercase;
    cursor: pointer;
}

#drop-menu ul#menu > li > a::after,
#drop-menu ul#menu > li > button::after {
    content: '';
    position: absolute;
    right: 0;
    bottom: -4px;
    left: 0;
    height: 1px;
    background-color: #ddcfaa;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .2s ease;
}

#drop-menu ul#menu > li:hover > a::after,
#drop-menu ul#menu > li:hover > button::after,
#drop-menu ul#menu > li:focus-within > a::after,
#drop-menu ul#menu > li:focus-within > button::after {
    transform: scaleX(1);
}

#drop-menu ul#menu ul {
    top: 100%;
    margin: 0;
    padding: 12px 6px;
    border: 1px solid var(--timeless-line);
    border-radius: 0 0 6px 6px;
    background-color: var(--timeless-ivory);
    box-shadow: 0 12px 26px rgba(41, 51, 42, .1);
}

#drop-menu ul#menu li:hover > ul,
#drop-menu ul#menu li:focus-within > ul,
#drop-menu ul#menu li.is-open > ul {
    visibility: visible;
    opacity: 1;
    padding-top: 12px;
    padding-bottom: 12px;
}

#drop-menu ul#menu ul li {
    float: none;
    margin: 0;
    padding: 5px 12px;
}

#drop-menu ul#menu ul li.marginLeft {
    margin-left: 0 !important;
}

#drop-menu ul#menu ul a {
    float: none;
    width: 200px;
    border: 0;
    padding: 6px 0;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.65;
    letter-spacing: .06em;
}

#drop-menu ul#menu ul a:hover {
    text-decoration: underline !important;
    text-decoration-color: var(--timeless-gold) !important;
    text-underline-offset: 5px;
}

.header a:focus-visible,
.header button:focus-visible {
    outline: 2px solid #e9debd;
    outline-offset: 6px;
}

.site-nav-toggle,
.iconBurgerMenu {
    display: none;
    border: 1px solid rgba(255, 255, 255, .38);
    border-radius: 50%;
    padding: 0;
    background: transparent;
    filter: none;
    cursor: pointer;
}

.site-nav-toggle::before,
.site-nav-toggle::after,
.iconBurgerMenu::before,
.iconBurgerMenu::after {
    content: '';
    position: absolute;
    left: 11px;
    width: 18px;
    height: 1px;
    background-color: #fff;
    transition: transform .2s ease, top .2s ease;
}

.site-nav-toggle::before,
.iconBurgerMenu::before {
    top: 13px;
    box-shadow: 0 6px 0 #fff;
}

.site-nav-toggle::after,
.iconBurgerMenu::after {
    top: 25px;
}

.site-nav-toggle.is-active,
.iconBurgerMenu.is-active {
    background-image: none;
}

.site-nav-toggle.is-active::before,
.iconBurgerMenu.is-active::before {
    top: 19px;
    box-shadow: none;
    transform: rotate(45deg);
}

.site-nav-toggle.is-active::after,
.iconBurgerMenu.is-active::after {
    top: 19px;
    transform: rotate(-45deg);
}

.overlay-menu {
    border-top: 1px solid var(--timeless-line);
    padding: 14px 24px 30px;
    background-color: var(--timeless-ivory);
    font-family: 'Raleway', sans-serif;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: .09em;
}

.overlay-menu.is-open {
    display: block;
}

.overlay-menu .burgerMenu {
    max-width: 680px;
    margin-inline: auto;
}

.overlay-menu ul {
    margin-bottom: 0;
}

.overlay-menu li {
    border-bottom: 1px solid var(--timeless-line);
    padding: 13px 0;
}

.overlay-menu li a {
    display: block;
    padding: 5px 0;
    line-height: 1.7;
}

/* Existing editorial sections keep their order and Bootstrap columns. */
.content {
    width: calc(100% - 64px);
    max-width: 1200px;
    margin: 52px auto 72px;
    border: 0;
}

.content > .row {
    padding-right: 0 !important; /* Override legacy global .row padding. */
    padding-left: 0 !important;
    row-gap: 30px;
}

.content > .row:first-child {
    margin-top: 0 !important;
}

.content > .row + .row {
    margin-top: 56px !important;
}

.content > .row > [class*='col-'] {
    min-width: 0;
    padding-right: 24px;
    padding-left: 24px;
}

.content .sezioneFull {
    margin-top: 0;
    margin-bottom: 0;
}

.content .titolo,
.content h1,
.content h2,
.page-document h1,
.page-document h2,
.page-document h3 {
    color: var(--timeless-sage-dark);
    font-family: 'Raleway', sans-serif;
    font-weight: 400;
    line-height: 1.25;
    text-transform: none;
    overflow-wrap: break-word;
}

.content .titolo {
    margin: 8px 0 25px;
    font-size: clamp(32px, 3.2vw, 44px);
}

.content h1,
.page-document h1 {
    margin: 0 0 25px !important;
    font-size: clamp(30px, 3vw, 42px) !important;
}

.content h2,
.page-document h2 {
    margin: 34px 0 18px !important;
    font-size: clamp(23px, 2.2vw, 29px) !important;
}

.content .titoletto {
    margin-bottom: 12px;
    color: var(--timeless-gold);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.content .testo,
.content .testoCentro {
    color: var(--timeless-ink);
    font-size: 17px;
    line-height: 1.85;
    text-align: left;
}

.content .testoCentro {
    border-radius: 0;
    padding: 12px 0;
}

.content .sezioneFull > .testo,
.content .sezioneFull > .testoCentro {
    max-width: 86ch;
    margin-right: auto;
    margin-left: auto;
}

.content .testo p,
.content .testoCentro p {
    margin-bottom: 1.15em;
}

.content .testo p:last-child,
.content .testoCentro p:last-child {
    margin-bottom: 0;
}

.content .testo .gold {
    color: var(--timeless-gold);
    font-weight: 700;
}

.content blockquote {
    margin: 25px 0;
    border-left: 2px solid #c8b478;
    padding: 4px 0 4px 22px;
    color: var(--timeless-sage-dark);
}

.content .testo ul {
    padding-left: 1.2em;
}

.content .testo li + li {
    margin-top: .65em;
}

.content .sezioneFoto img,
.content img.imageradius,
.content .slideshow-container,
.content .slides img {
    border-radius: 8px;
}

.content .sezioneFoto img {
    height: auto;
}

.content .slideshow-container {
    overflow: hidden;
}

.content .prev,
.content .next {
    display: flex;
    width: 42px;
    height: 42px;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, .55);
    border-radius: 50%;
    padding: 0;
    background-color: rgba(250, 249, 245, .88);
    font-size: 16px;
}

.content .prev { left: 14px; }
.content .next { right: 14px; }

/* Contacts remain a full-width sage section, including on the home page. */
.row.contatti {
    margin-top: 64px;
    padding: 50px max(32px, calc((100% - 1152px) / 2)) 56px !important;
    background-color: var(--timeless-sage);
    color: #fff;
    line-height: 1.8;
}

.row.contatti > [class*='col-'] {
    padding-right: 24px;
    padding-left: 24px;
}

.contatti .titoloSx {
    margin: 0 0 22px !important;
    color: #fff;
    font-family: 'Raleway', sans-serif;
    font-size: 32px !important;
    font-weight: 400;
    text-transform: none;
}

.contatti .titoletto {
    margin: 25px 0 9px;
    color: #eee1bc;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .11em;
}

.contatti .info { margin-bottom: 7px; }
.contatti .linkTel { font-weight: 700; }
.contatti .social { display: inline-block; margin: 0 8px 0 0; }
.contatti .social img { float: none; width: 28px; height: 28px; margin-right: 0; }

/* Shared footer and document pages supplied by the common templates. */
.site-footer {
    border-top: 1px solid var(--timeless-line);
    padding: 36px 0;
    background-color: var(--timeless-paper);
    color: var(--timeless-muted);
    font-size: 13px;
    line-height: 1.8;
}

.site-footer-inner {
    display: flex;
    width: calc(100% - 80px);
    max-width: 1140px;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 18px 32px;
    margin-inline: auto;
}

.site-footer-brand {
    color: var(--timeless-sage-dark);
    font-family: 'Raleway', sans-serif;
    font-size: 19px;
    font-weight: 500;
    letter-spacing: .025em;
}

.site-footer-links,
.site-footer-links ul {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px 20px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.site-footer a {
    color: var(--timeless-sage-dark) !important;
    text-decoration-thickness: 1px !important;
    text-underline-offset: 4px;
}

.site-footer a:hover,
.site-footer a:focus-visible {
    text-decoration: underline !important;
    text-decoration-color: var(--timeless-gold) !important;
}

.site-footer-meta,
.site-footer-credit {
    margin: 0;
    font-size: 12px;
    line-height: 1.8;
}

.site-footer-meta { flex-basis: 100%; }
.site-footer-meta p { margin: 0; }
.site-footer-credit { overflow-wrap: anywhere; }

.page-document {
    width: calc(100% - 64px);
    max-width: 960px;
    margin-right: auto;
    margin-left: auto;
    padding-top: 52px;
    padding-bottom: 72px;
    color: var(--timeless-ink);
    font-size: 16px;
    line-height: 1.85;
}

.page-document h3 {
    margin: 28px 0 12px;
    font-size: 21px;
}

.page-document p { margin-bottom: 1.15em; }
.page-document ul { padding-left: 1.25em; }
.page-document li + li { margin-top: .45em; }
.page-document a { overflow-wrap: anywhere; text-decoration: underline !important; text-underline-offset: 3px; }
.page-document .document-meta { color: var(--timeless-muted); font-size: 14px; }

.whatsapp-float { z-index: 20; }

@media (max-width: 1100px) and (min-width: 1001px) {
    #drop-menu ul#menu { margin-inline: 8px; gap: 0; }
    #drop-menu ul#menu > li { padding-right: 10px; padding-left: 10px; }
    #drop-menu { font-size: 11px; letter-spacing: .065em; }
}

@media (max-width: 1000px) {
    .header .logo { padding-top: 14px; }
    .header .logo img { width: clamp(190px, 59vw, 230px); }

    .site-nav-toggle,
    .iconBurgerMenu {
        display: block;
        position: fixed;
        top: 24px;
        right: 18px;
        z-index: 101;
        width: 42px;
        height: 42px;
        background-image: none;
        filter: none;
    }

    .overlay-menu {
        height: calc(100vh - 180px);
        height: calc(100dvh - 180px);
    }

    .content { width: calc(100% - 48px); }
    .content > .row > [class*='col-'] { padding-right: 16px; padding-left: 16px; }
    .row.contatti { padding-right: 24px !important; padding-left: 24px !important; }
    .row.contatti > [class*='col-'] { padding-right: 16px; padding-left: 16px; }
}

@media (max-width: 767px) {
    .content { width: calc(100% - 40px); margin-top: 34px; margin-bottom: 48px; }
    .content > .row { row-gap: 24px; }
    .content > .row + .row { margin-top: 42px !important; }
    .content > .row > [class*='col-'] { padding-right: 0; padding-left: 0; }
    .content .titolo { margin-bottom: 20px; font-size: 32px; }
    .content .titoletto { font-size: 12px; line-height: 1.7; letter-spacing: .085em; }
    .content .testo,
    .content .testoCentro { font-size: 16px; line-height: 1.8; }
    .content .testoCentro { padding-top: 4px; padding-bottom: 4px; }
    .content .sezioneFoto img,
    .content .slides img,
    .content .slideshow-container { border-radius: 6px; }
    .content .slideshow-container.mt-5 { margin-top: 8px !important; }

    .row.contatti {
        margin-top: 46px;
        padding: 36px 20px 42px !important;
    }

    .row.contatti > [class*='col-'] { padding-right: 0; padding-left: 0; }
    .contatti .titoloSx { font-size: 29px !important; }
    .site-footer { padding-top: 28px; padding-bottom: 84px; }
    .site-footer-inner { width: calc(100% - 40px); align-items: flex-start; gap: 14px; }
    .site-footer-brand,
    .site-footer-links,
    .site-footer-credit { flex-basis: 100%; }
    .site-footer-links,
    .site-footer-links ul { justify-content: flex-start; gap: 8px 17px; }
    .site-footer-brand { font-size: 18px; }
    .page-document { width: calc(100% - 40px); padding-top: 34px; padding-bottom: 52px; }
}

@media (max-width: 359px) {
    .site-nav-toggle,
    .iconBurgerMenu { right: 13px; }
    .overlay-menu { padding-right: 20px; padding-left: 20px; font-size: 12px; }
    .content .titolo { font-size: 30px; }
    .site-footer-links,
    .site-footer-links ul { gap: 8px 13px; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    #drop-menu ul#menu > li > a::after,
    #drop-menu ul#menu > li > button::after,
    .site-nav-toggle::before,
    .site-nav-toggle::after,
    .iconBurgerMenu::before,
    .iconBurgerMenu::after { transition: none; }
}

/* Keep intrinsic image proportions after adding dimension attributes. */
.content .slides img { height: auto; }
.site-footer-links button, .document-cta { border: 0; padding: 0; background: none; color: var(--timeless-sage-dark); font: inherit; cursor: pointer; text-decoration: underline; text-underline-offset: 4px; }
.site-footer-links button:hover, .document-cta:hover { color: var(--timeless-gold); }
.site-footer-links button:focus-visible, .document-cta:focus-visible { outline: 2px solid var(--timeless-gold); outline-offset: 4px; }
#drop-menu [aria-current="page"]::after { transform: scaleX(1); }

/* Contain section margins so inner pages retain their intended header spacing. */
.containerCenter {
    display: flow-root;
}

.hm-page {
    padding-top: 0;
}

/* The home page keeps its original editorial layout and full-width video. */
.home-page > .container {
    background-color: #f8f8f8;
}

.home-page .containerCenter {
    color: #212529;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-size: 16px;
    line-height: 1.5;
}

.home-page .containerCenter > .video-container {
    margin-top: 0;
}

.home-page .content {
    width: auto;
    max-width: 1600px;
    margin: 20px auto;
    border: 1px solid transparent;
}

.home-page .content > .row {
    padding-right: 20px !important;
    padding-left: 20px !important;
    row-gap: 0;
}

.home-page .content > .row + .row {
    margin-top: 0 !important;
}

.home-page .content > .row > [class*='col-'] {
    padding-right: 15px;
    padding-left: 15px;
}

.home-page .content .sezioneFull {
    margin-top: 40px;
    margin-bottom: 40px;
}

.home-page .content .titolo {
    margin: 10px 0 .5rem !important;
    color: #daa520;
    font-family: 'Raleway', sans-serif;
    font-size: clamp(32px, 3.2vw, 44px) !important;
    font-weight: 400;
    line-height: 1.25;
    text-transform: none;
}

.home-page .content .titoletto,
.home-page .contatti .titoletto {
    color: #daa520;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.6;
    letter-spacing: .11em;
    text-transform: uppercase;
}

.home-page .content div.titoletto { margin-bottom: 0; }

.home-page .content .testo,
.home-page .content .testoCentro {
    color: #333;
    font-size: 16px;
    line-height: 35px;
}

.home-page .content .testoCentro {
    max-width: none;
    margin: 0;
    border-radius: 30px;
    padding: 40px;
    text-align: justify;
}

.home-page .content .testo p,
.home-page .content .testoCentro p {
    margin-bottom: 1rem;
}

.home-page .content .testo .gold {
    color: #daa520;
}

.home-page .content .sezioneFoto img {
    border-radius: 0;
}

.home-page .row.contatti {
    margin-top: 0;
    padding: 0 20px 40px !important;
    line-height: 1.5;
}

.home-page .row.contatti > [class*='col-'] {
    padding-right: 15px;
    padding-left: 15px;
}

.home-page .contatti .titoloSx {
    margin: 40px 0 .5rem !important;
    color: #daa520;
    font-family: 'Raleway', sans-serif;
    font-size: 32px !important;
    font-weight: 400;
    line-height: 1.25;
    text-transform: none;
}

.home-page .contatti .titoletto {
    margin: 0 0 1rem;
    font-size: 12px;
}

.home-page .contatti .info { margin-bottom: 1rem; }
.home-page .contatti .linkTel { font-weight: 800; }
.home-page .contatti .social { display: block; margin: 0 0 1rem; }
.home-page .contatti .social img { float: left; width: 30px; height: 30px; margin-right: 10px; }

/* Show one slide at a time without flex sizing or forced image proportions. */
.content .slideshow-container {
    width: 100%;
    max-width: 430px;
    margin-right: auto;
    margin-left: auto;
}

.content .slides {
    display: block;
    width: 100%;
}

.content .slides img {
    display: none;
    width: 100%;
    max-width: 100%;
    height: auto;
    max-height: 540px;
    margin-right: auto;
    margin-left: auto;
    object-fit: contain;
    flex: none;
}

.content .slides img.active,
.content .slides img:first-child:not([style]) {
    display: block;
}

.page-testa .content .slideshow-container,
.page-sposa .content .slideshow-container {
    max-width: 344px;
}

.page-testa .content .slides img,
.page-sposa .content .slides img {
    max-height: 430px;
}

.content .sezioneFoto img,
.content img.imageradius {
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

.content .titolo,
.content h1,
.content h2,
.content .titoletto,
.content .testo .gold,
.page-document h1,
.page-document h2,
.page-document h3 {
    color: #daa520;
}

.whatsapp-float a {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.whatsapp-float img {
    display: block;
    width: 35px;
    height: 35px;
    margin: 0;
    object-fit: contain;
    flex: none;
}

@media (max-width: 1000px) {
    .home-page .content > .row,
    .home-page .row.contatti {
        padding-right: 0 !important;
        padding-left: 0 !important;
    }

    .home-page .content .testoCentro { padding: 10px; }
}

@media (max-width: 767px) {
    .home-page .content .titolo {
        font-size: 32px !important;
    }

    .home-page .content .titoletto {
        font-size: 12px;
        line-height: 1.7;
        letter-spacing: .085em;
    }

    .home-page .contatti .titoloSx {
        font-size: 29px !important;
    }

    .content .slideshow-container,
    .page-testa .content .slideshow-container,
    .page-sposa .content .slideshow-container {
        max-width: 100%;
    }

    .content .slides img,
    .page-testa .content .slides img,
    .page-sposa .content .slides img {
        width: auto;
        max-width: 100%;
        height: auto;
        max-height: 480px;
    }

    .whatsapp-float img {
        width: 30px;
        height: 30px;
    }
}

/* Compact, aligned footer; preferences use the same link treatment. */
.site-footer-inner { display: grid; grid-template-columns: minmax(230px, 1fr) auto; gap: 12px 36px; }
.site-footer-brand { grid-column: 1; grid-row: 1; }
.site-footer-meta { grid-column: 1; grid-row: 2; }
.site-footer-links { grid-column: 2; grid-row: 1; }
.site-footer-credit { grid-column: 2; grid-row: 2; justify-self: end; }
@media (max-width: 767px) {
 .site-footer { padding-bottom: 80px; }
 .site-footer-inner { display: flex; align-items: flex-start; gap: 14px; }
 .site-footer-links { justify-content: flex-start; width: 100%; }
 .site-footer-credit { width: 100%; }
}
/* Semantic headings retain the light typography chosen for the refreshed site. */
.content h1.titoletto, .content h2.titoletto {
    font-family: 'Raleway', sans-serif;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
}
/* A calmer, centered contact section with the original copy and sage background. */
.home-page .row.contatti {
    justify-content: center;
    padding: 16px 24px 52px !important;
    text-align: center;
}
.home-page .row.contatti > .col-md-6 {
    flex: 0 1 760px;
    max-width: 760px;
    padding-right: 20px;
    padding-left: 20px;
}
.home-page .contatti .titoloSx { margin-top: 26px !important; margin-bottom: 20px !important; }
.home-page .contatti .testoSx { max-width: 54ch; margin: 0 auto 25px; }
.home-page .contatti .titoletto { margin: 22px 0 8px; }
.home-page .contatti .info { margin-bottom: 8px; }
.home-page .contatti .social { display: inline-flex; margin: 4px 7px 0; vertical-align: middle; }
.home-page .contatti .social img { float: none; margin: 0; width: 30px; height: 30px; }
@media (max-width: 767px) {
    .home-page .row.contatti { padding: 16px 20px 40px !important; }
    .home-page .row.contatti > .col-md-6 { padding-right: 0; padding-left: 0; }
}
