/* Styles limited to the header and homepage hero. */
html { scroll-behavior:smooth; }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
.iab-header, .iab-hero { color: #173641; font: 400 16px/1.65 'DM Sans', Arial, sans-serif; -webkit-font-smoothing: antialiased; }
.iab-header *, .iab-hero * { box-sizing: border-box; }
.iab-header [hidden] { display: none !important; }
.iab-header a, .iab-hero a { color: inherit; text-decoration: none; }
.iab-header a:focus-visible, .iab-header button:focus-visible, .iab-hero a:focus-visible { outline: 3px solid #4b9aae; outline-offset: 5px; }
.iab-header { min-height: 100px; display: flex; align-items: center; justify-content: space-between; padding: 0 48px; gap: 25px; background: white; position: relative; z-index: 20; border-bottom: 1px solid #eee; }
.iab-brand { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.iab-monogram { font: 400 3.3rem/1 Georgia, serif; letter-spacing: -.22em; padding-right: .2em; }
.iab-brand-name { font: 400 1.55rem/1.2 'Playfair Display', Georgia, serif; letter-spacing: -.035em; }
.iab-brand-name > span { display: block; font: 400 .75rem/1.5 'DM Sans', Arial, sans-serif; letter-spacing: .035em; margin-top: 6px; }
.iab-desktop-nav { display: flex; align-items: center; gap: 25px; }
.iab-desktop-nav a { font-size: .875rem; padding: 8px 0; border-bottom: 1px solid transparent; }
.iab-desktop-nav a:hover { border-color: #173641; }
.iab-header-actions { display: flex; align-items: center; gap: 27px; }
.iab-header .iab-book { display: inline-flex; align-items: center; justify-content: center; gap: 25px; background: #173641; color: white; border: 1px solid #173641; border-radius: 4px; font-size: .875rem; font-weight: 500; line-height: 1.4; padding: 12px 22px; }
.iab-header .iab-book:hover { background: #225363; }
.iab-book span { font-size: 1.3rem; }
.iab-menu-button { display: none; background: none; padding: 12px; width: 44px; height: 44px; border: 0; cursor: pointer; }
.iab-menu-button span { height: 1px; background: #173641; display: block; width: 22px; margin: 6px 0; }
.iab-mobile-nav { display: none; }
.iab-hero { position: relative; height: 610px; color: white; overflow: hidden; background: #132f3b; }
.iab-hero .iab-hero-carousel, .iab-hero .carousel-inner, .iab-hero .carousel-item { height: 100%; }
.iab-hero-carousel { position: absolute; inset: 0; }
.iab-hero .carousel-item .iab-hero-image { display: block; width: 100%; max-width: 100%; height: 100%; margin: 0; object-fit: cover; object-position: 50% 50%; }
.iab-hero-shade { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, #0b2838c4, #0b283826 85%), linear-gradient(0deg, #0b283847, transparent 65%); }
/* Ombreggiatura slider disattivata temporaneamente su richiesta cliente: eliminare questa riga per ripristinarla */
.iab-hero-shade { display: none; }
.iab-hero-content, .iab-scroll-cue { text-shadow: 0 1px 3px #0b283899, 0 2px 14px #0b283866; }
.iab-hero-link:hover .iab-circle-arrow { text-shadow: none; }
.iab-hero-content { position: relative; z-index: 1; max-width: 1296px; width: calc(100% - 112px); margin: 0 auto; padding-top: 82px; pointer-events: none; }
.iab-hero-content a { pointer-events: auto; }
.iab-hero .iab-eyebrow { text-align: left; font-size: .75rem; font-weight: 600; letter-spacing: .19em; line-height: 1.5; margin: 0 0 24px; color: #eef7f7; }
.iab-hero h1 { font: 400 clamp(2.8rem, 4.9vw, 4.4rem)/1.16 'Playfair Display', Georgia, serif; letter-spacing: -.035em; max-width: 1000px; margin: 0; color: white; }
.iab-hero h1 em { font-weight: 400; }
.iab-hero .iab-hero-description { text-align: left; font-size: 1rem; line-height: 1.8; margin: 26px 0 0; color: #f1f5f5; }
.iab-hero-link { display: inline-flex; align-items: center; gap: 30px; font-size: .9rem; margin-top: 30px; }
.iab-circle-arrow { display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; border: 1px solid #ffffff70; border-radius: 50%; font-size: 1.3rem; flex-shrink: 0; }
.iab-hero-link:hover .iab-circle-arrow { background: white; color: #173641; }
.iab-hero-caption { position: absolute; right: 56px; bottom: 70px; z-index: 2; font-size: .75rem; color: white; padding: 4px 8px; background: #132f3b80; max-width: calc(100% - 40px); }
.iab-scroll-cue { position: absolute; right: 56px; top: 48%; display: flex; align-items: center; gap: 15px; writing-mode: vertical-rl; font-size: .75rem; letter-spacing: .18em; }
.iab-scroll-cue span { font-size: 1.4rem; }
@media (max-width: 1150px) {
    .iab-header { min-height: 90px; padding: 0 36px; gap: 20px; }
    .iab-brand-name { font-size: 1.3rem; }
    .iab-monogram { font-size: 2.8rem; }
    .iab-desktop-nav { gap: 17px; }
    .iab-header-actions { gap: 20px; }
    .iab-header .iab-book { padding: 12px 17px; gap: 15px; }
    .iab-hero-content { width: calc(100% - 72px); }
    .iab-hero-caption, .iab-scroll-cue { right: 36px; }
}
@media (max-width: 1050px) {
    .iab-desktop-nav { display: none; }
    .iab-menu-button { display: block; }
    .iab-mobile-nav { display: block; position: absolute; top: 100%; left: 0; right: 0; background: white; padding: 15px 28px 28px; box-shadow: 0 20px 25px #132f3b12; }
    .iab-mobile-nav a { display: block; padding: 12px 0; border-bottom: 1px solid #dde4e4; font-size: 1rem; }
}
@media (max-width: 900px) {
    .iab-hero h1 { font-size: 3.5rem; }
    .iab-scroll-cue { display: none; }
}
@media (max-width: 600px) {
    .iab-header { min-height: 84px; padding: 0 20px; gap: 10px; }
    .iab-brand { gap: 12px; }
    .iab-brand-name { font-size: 1.4rem; }
    .iab-brand-name > span { letter-spacing: .01em; margin-top: 4px; }
    .iab-header-actions { gap: 5px; }
    .iab-header .iab-book { display: none; }
    .iab-hero { height: 630px; }
    .iab-hero-content { width: calc(100% - 40px); padding-top: 61px; }
    .iab-hero h1 { font-size: clamp(2.55rem, 9.7vw, 3.6rem); line-height: 1.2; }
    .iab-hero .iab-eyebrow { max-width: 280px; line-height: 1.8; letter-spacing: .06em; margin-bottom: 20px; }
    .iab-hero .iab-hero-description { max-width: 295px; font-size: 1rem; margin-top: 23px; }
    .iab-hero-description br { display: none; }
    .iab-hero-link { font-size: .9375rem; margin-top: 25px; gap: 20px; }
    .iab-circle-arrow { width: 38px; height: 38px; }
    .iab-hero-caption { right: 20px; bottom: 61px; }
    .iab-hero .carousel-item .iab-hero-image { object-position: 53% 50%; }
}
@media (max-width: 359px) {
    .iab-brand-name { font-size: 1.2rem; }
    .iab-hero h1 { font-size: 2.4rem; }
    .iab-hero { height: 660px; }
}
@media (prefers-reduced-motion: reduce) { .iab-hero .carousel-item { transition: none; } }

/* Backend-driven search and rental cards. */
.iab-wrap { max-width:1296px; width:calc(100% - 112px); margin-left:auto; margin-right:auto; }
.iab-search-wrap, .iab-properties { color:#173641; font:400 16px/1.65 'DM Sans',Arial,sans-serif; }
.iab-search-wrap *, .iab-properties * { box-sizing:border-box; }
.iab-properties [hidden] { display:none !important; }
.iab-search-wrap a, .iab-properties a { color:inherit; }
.iab-search-wrap p, .iab-properties p { text-align:left; }
.iab-search-wrap :focus-visible, .iab-properties :focus-visible { outline:3px solid #4b9aae; outline-offset:4px; }
.iab-search-wrap { position:relative; margin-top:-46px; z-index:3; }
.iab-search-panel { display:grid; grid-template-columns:1fr 1fr auto; gap:10px; padding:23px 24px; align-items:center; background:white; border:1px solid #edf0ef; border-radius:6px; box-shadow:0 12px 40px #16374612; }
.iab-search-field { padding:0 24px; min-width:0; }
.iab-search-field:first-child { padding-left:7px; border-right:1px solid #dde4e4; }
.iab-search-field label { display:block; font-size:.875rem; color:#697679; line-height:1.4; margin:0 0 6px; }
.iab-search-field select { width:100%; font:inherit; font-size:1rem; background:transparent; border:0; border-radius:0; color:#173641; padding:3px 10px 3px 0; height:auto; cursor:pointer; }
.iab-button { display:inline-flex; align-items:center; justify-content:center; gap:11px; padding:17px 26px; border:1px solid #173641; border-radius:4px; background:#173641; color:white !important; font:500 .9375rem/1.4 'DM Sans',Arial,sans-serif; cursor:pointer; }
.iab-button:hover { background:#225363; border-color:#225363; }
.iab-button svg { width:18px; height:18px; flex-shrink:0; }
.iab-search-note { display:flex; justify-content:space-between; gap:20px; font-size:.875rem; color:#697679; margin-top:23px; }
.iab-search-note a { color:#173641; }
.iab-properties { padding-top:74px; padding-bottom:74px; }
.iab-section-top { display:flex; align-items:flex-end; justify-content:space-between; gap:28px; margin-bottom:37px; }
.iab-properties .iab-eyebrow { font-size:.75rem; font-weight:600; letter-spacing:.19em; margin:0 0 13px; }
.iab-properties h2 { font:400 clamp(2.2rem,3.8vw,3.35rem)/1.17 'Playfair Display',Georgia,serif; letter-spacing:-.035em; color:#173641; text-align:left; margin:0; }
.iab-text-link { display:inline-block; border-bottom:1px solid #a7b9bd; padding:5px 0 9px; font-weight:500; font-size:.9375rem; }
.iab-filters { display:flex; gap:5px; flex-wrap:wrap; margin-bottom:18px; }
.iab-filter { padding:9px 15px; border:1px solid transparent; border-radius:30px; background:none; color:#697679; font:400 .875rem/1.5 'DM Sans',Arial,sans-serif; cursor:pointer; white-space:nowrap; }
.iab-filter[aria-pressed="true"], .iab-filter:hover { color:#173641; background:#eaf0f1; }
.iab-result-count { font-size:.8125rem; color:#697679; margin:0 0 24px; }
.iab-property-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:42px 27px; }
.iab-property-card { min-width:0; }
.iab-property-card > a { display:block; }
.iab-property-image { position:relative; aspect-ratio:1.35; overflow:hidden; border-radius:5px; background:#f3f6f6; }
.iab-property-image img { display:block; height:100%; width:100%; object-fit:cover; transition:transform .4s; }
.iab-property-image img.iab-logo-fallback { object-fit:contain; padding:30px; }
.iab-property-card:hover img { transform:scale(1.035); }
.iab-property-badge { position:absolute; left:14px; top:14px; background:#fffefa; color:#173641; padding:5px 11px; border-radius:3px; font-size:.75rem; font-weight:600; letter-spacing:.07em; text-transform:uppercase; }
.iab-property-arrow { position:absolute; right:14px; bottom:14px; background:white; width:36px; height:36px; border-radius:50%; display:grid; place-items:center; font-size:1.2rem; }
.iab-properties .iab-property-location { font-size:.75rem; letter-spacing:.1em; text-transform:uppercase; color:#697679; margin:20px 0 6px; }
.iab-properties .iab-property-card h3 { font:400 1.4rem/1.28 'Playfair Display',Georgia,serif; min-height:2.5em; letter-spacing:-.02em; color:#173641; text-align:left; margin:0 0 12px; overflow-wrap:anywhere; }
.iab-properties .iab-property-meta { font-size:.875rem; line-height:1.6; min-height:2.8em; color:#697679; margin:0 0 17px; }
.iab-property-bottom { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-top:13px; border-top:1px solid #dde4e4; font-size:.9375rem; font-weight:500; }
.iab-more-row { display:flex; justify-content:center; margin-top:43px; }
.iab-button-outline { background:transparent; color:#173641 !important; border-color:#bdcbce; }
.iab-button-outline:hover { color:white !important; }
.iab-empty-state { padding:40px 25px; background:#f3f6f6; border-radius:4px; text-align:center; }
.iab-empty-state h3 { font:400 2rem/1.3 'Playfair Display',Georgia,serif; }
.iab-properties .iab-empty-state p { text-align:center; max-width:600px; margin:12px auto 23px; }
@media(max-width:1150px) { .iab-wrap { width:calc(100% - 72px); } .iab-search-field { padding-inline:15px; } }
@media(max-width:900px) { .iab-search-panel { grid-template-columns:1fr 1fr; gap:20px; } .iab-search-panel .iab-button { grid-column:span 2; } .iab-property-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) {
    .iab-wrap { width:calc(100% - 40px); }
    .iab-search-wrap { margin-top:-29px; }
    .iab-search-panel { padding:21px 18px; gap:20px 12px; }
    .iab-search-field { padding:0; } .iab-search-field:first-child { padding-left:0; padding-right:10px; }
    .iab-search-field label { font-size:.8125rem; line-height:1.5; }
    .iab-search-panel .iab-button { font-size:1rem; padding:14px; }
    .iab-search-note { display:block; margin-top:20px; } .iab-search-note > span { display:block; margin-bottom:13px; font-size:.8125rem; line-height:1.7; }
    .iab-properties { padding-top:54px; padding-bottom:54px; }
    .iab-section-top { display:block; margin-bottom:25px; } .iab-text-link { margin-top:17px; font-size:.875rem; }
    .iab-properties .iab-section-top > .iab-button { margin-top:20px; width:100%; }
    .iab-properties h2 { font-size:2.35rem; }
    .iab-filters { flex-wrap:nowrap; overflow-x:auto; padding-bottom:4px; }
    .iab-property-grid { grid-template-columns:minmax(0,1fr); gap:37px; }
    .iab-property-image { aspect-ratio:1.25; }
    .iab-properties .iab-property-card h3 { font-size:1.55rem; min-height:0; }
    .iab-properties .iab-property-meta { font-size:.9375rem; min-height:0; }
    .iab-more-row .iab-button { width:100%; }
}
@media(max-width:359px) { .iab-search-panel { grid-template-columns:1fr; } .iab-search-field:first-child { border-right:0; padding:0; } .iab-search-field:nth-child(2) { padding-top:15px; border-top:1px solid #dde4e4; } .iab-search-panel .iab-button { grid-column:auto; } }
@media(prefers-reduced-motion:reduce) { .iab-property-image img { transition:none; } }

/* Introductory service points between the search and the homes. */
.iab-home-frame { padding-left:0; padding-right:0; }
.iab-welcome-strip { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:35px; margin-top:49px; margin-bottom:0; padding:0 0 38px; list-style:none; border-bottom:1px solid #dde4e4; color:#173641; font:400 16px/1.65 'DM Sans',Arial,sans-serif; }
.iab-welcome-strip > li { display:flex; gap:19px; min-width:0; }
.iab-welcome-number { color:#83969d; font:400 1.35rem/1.25 'Playfair Display',Georgia,serif; }
.iab-welcome-strip strong { display:block; font-size:.9375rem; font-weight:600; }
.iab-welcome-strip p { text-align:left; font-size:.875rem; color:#697679; line-height:1.7; margin:6px 0 0; }
@media(max-width:1150px) { .iab-welcome-strip { gap:23px; } .iab-welcome-strip > li { gap:13px; } }
@media(max-width:900px) { .iab-welcome-strip { gap:22px; margin-top:38px; } .iab-welcome-strip > li { display:block; } .iab-welcome-number { display:block; margin-bottom:12px; } }
@media(max-width:600px) { .iab-welcome-strip { grid-template-columns:minmax(0,1fr); gap:23px; margin-top:35px; padding-bottom:31px; } .iab-welcome-strip > li { display:flex; gap:18px; } .iab-welcome-number { margin:0; font-size:1.4rem; min-width:25px; } .iab-welcome-strip strong { font-size:1rem; } .iab-welcome-strip p { margin-top:3px; } }

/* Hospitality overview: content and images from the agency backend. */
.iab-agency { background:#f3f6f6; padding:100px 0; color:#173641; font:400 16px/1.65 'DM Sans',Arial,sans-serif; }
.iab-agency * { box-sizing:border-box; }
.iab-agency-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8%; }
.iab-agency-photo { position:relative; min-height:580px; background:#dde4e4; border-radius:4px; overflow:hidden; }
.iab-agency-photo > img { position:absolute; width:100%; height:100%; display:block; object-fit:cover; object-position:55% 50%; }
.iab-agency-experience { position:absolute; bottom:24px; left:24px; background:white; padding:25px 30px; display:flex; align-items:center; gap:22px; border-radius:3px; }
.iab-agency-experience strong { font:400 3.4rem/1 'Playfair Display',Georgia,serif; letter-spacing:-.06em; }
.iab-agency .iab-agency-experience p { font-size:.8125rem; text-align:left; line-height:1.6; margin:0; }
.iab-agency-copy { padding:16px 0 12px; min-width:0; }
.iab-agency .iab-eyebrow { text-align:left; font-size:.75rem; font-weight:600; letter-spacing:.19em; line-height:1.5; margin:0 0 20px; }
.iab-agency h2 { font:400 clamp(2rem,3.2vw,2.9rem)/1.17 'Playfair Display',Georgia,serif; text-align:left; color:#173641; letter-spacing:-.035em; margin:0 0 26px; }
.iab-agency .iab-agency-description { font-size:1rem; text-align:left; color:#5a6b70; line-height:1.85; margin:0 0 16px; overflow-wrap:anywhere; }
.iab-agency-founder { display:flex; align-items:center; gap:15px; margin:27px 0; }
.iab-agency-founder img { width:52px; height:52px; flex-shrink:0; border-radius:50%; object-fit:cover; object-position:65% 40%; background:white; }
.iab-agency-founder strong { display:block; font-size:.9375rem; font-weight:600; }
.iab-agency-founder span { display:block; font-size:.8125rem; color:#697679; margin-top:1px; }
.iab-agency-links { display:flex; gap:25px; flex-wrap:wrap; }
.iab-agency .iab-text-link { color:inherit; display:inline-flex; align-items:center; gap:22px; margin-top:4px; }
.iab-agency a:focus-visible { outline:3px solid #4b9aae; outline-offset:4px; }
@media(max-width:1150px) { .iab-agency-grid { gap:6%; } }
@media(max-width:900px) { .iab-agency { padding:75px 0; } .iab-agency-grid { gap:5%; } .iab-agency h2 { font-size:2.2rem; } .iab-agency-experience { bottom:18px; left:18px; right:18px; padding:23px 17px; gap:15px; } .iab-agency-experience strong { font-size:2.8rem; } }
@media(max-width:600px) { .iab-agency { padding:60px 0; } .iab-agency-grid { grid-template-columns:minmax(0,1fr); gap:39px; } .iab-agency-photo { min-height:390px; } .iab-agency-experience { right:auto; left:20px; bottom:20px; padding:22px 24px; gap:20px; } .iab-agency-copy { padding:0; } .iab-agency h2 { font-size:2.3rem; } .iab-agency-links { gap:15px; } }
@media(max-width:600px) { .iab-agency-experience { max-width:calc(100% - 40px); } }

/* Destination cards link to the real rental filters. */
.iab-destinations { padding-top:100px; padding-bottom:100px; color:#173641; font:400 16px/1.65 'DM Sans',Arial,sans-serif; }
.iab-destinations * { box-sizing:border-box; }
.iab-destinations .iab-eyebrow { text-align:left; font-size:.75rem; font-weight:600; letter-spacing:.19em; margin:0 0 13px; }
.iab-destinations h2 { font:400 clamp(2.2rem,3.8vw,3.35rem)/1.17 'Playfair Display',Georgia,serif; letter-spacing:-.035em; color:#173641; text-align:left; margin:0; }
.iab-destinations .iab-destinations-description { font-size:1rem; text-align:left; color:#697679; padding-bottom:3px; line-height:1.8; margin:0; }
.iab-destination-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr); gap:24px; }
.iab-destinations .iab-destination { position:relative; display:block; min-height:360px; border-radius:4px; overflow:hidden; color:white; background:#132f3b; }
.iab-destination > img { width:100%; height:100%; position:absolute; display:block; object-fit:cover; object-position:center; transition:transform .6s; }
.iab-destination > img.iab-destination-logo { object-fit:contain; padding:30px; background:#f3f6f6; }
.iab-destination:after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,#071d29bf,transparent 80%); }
.iab-destination:hover > img { transform:scale(1.045); }
.iab-destination-label { position:absolute; z-index:1; bottom:24px; left:24px; right:24px; display:flex; align-items:flex-end; justify-content:space-between; gap:10px; }
.iab-destinations .iab-destination-label h3 { font:400 1.65rem/1.3 'Playfair Display',Georgia,serif; color:white; text-align:left; margin:8px 0 0; letter-spacing:-.02em; }
.iab-destination-label div > span { font-size:.75rem; letter-spacing:.12em; }
.iab-destination .iab-circle-arrow { width:34px; height:34px; font-size:1.1rem; }
.iab-destination:hover .iab-circle-arrow { background:white; color:#173641; }
.iab-destinations-more { display:flex; gap:30px; flex-wrap:wrap; margin-top:26px; font-size:.875rem; }
.iab-destinations-more a { color:inherit; border-bottom:1px solid #b4c1c6; padding-bottom:5px; }
.iab-destinations a:focus-visible { outline:3px solid #4b9aae; outline-offset:4px; }
@media(max-width:1150px) { .iab-destination-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; } .iab-destination-label { left:18px; right:18px; bottom:22px; } .iab-destinations .iab-destination-label h3 { font-size:1.4rem; } }
@media(max-width:900px) { .iab-destinations { padding-top:75px; padding-bottom:75px; } .iab-destination-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .iab-destination-large { grid-column:span 2; } .iab-destinations .iab-destination { min-height:320px; } .iab-destinations .iab-destination-large { min-height:330px; } .iab-destinations .iab-destination-label h3 { font-size:1.75rem; } }
@media(max-width:600px) { .iab-destinations { padding-top:60px; padding-bottom:60px; } .iab-destinations h2 { font-size:2.35rem; } .iab-destinations .iab-destinations-description { margin-top:20px; } .iab-destinations-description br { display:none; } .iab-destination-grid { grid-template-columns:minmax(0,1fr); gap:18px; } .iab-destination-large { grid-column:auto; } .iab-destinations .iab-destination { min-height:290px; } .iab-destination-label { left:24px; right:24px; bottom:25px; } .iab-destinations .iab-destination-label h3 { font-size:1.9rem; } .iab-destination .iab-circle-arrow { width:38px; height:38px; } .iab-destinations-more { flex-direction:column; align-items:flex-start; gap:19px; margin-top:24px; } }
@media(prefers-reduced-motion:reduce) { .iab-destination > img { transition:none; } }

/* Experiences use the existing backend pages and photographs. */
.iab-experiences { background:#f3f6f6; padding:100px 0; color:#173641; font:400 16px/1.65 'DM Sans',Arial,sans-serif; }
.iab-experiences * { box-sizing:border-box; }
.iab-experiences a { color:inherit; }
.iab-experiences .iab-eyebrow { text-align:left; font-size:.75rem; font-weight:600; letter-spacing:.19em; margin:0 0 13px; }
.iab-experiences h2 { font:400 clamp(2.2rem,3.8vw,3.35rem)/1.17 'Playfair Display',Georgia,serif; text-align:left; color:#173641; letter-spacing:-.035em; margin:0; }
.iab-experience-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.iab-experience-card { display:flex; flex-direction:column; min-width:0; }
.iab-experience-card > img { display:block; width:100%; height:auto; aspect-ratio:1.5; object-fit:cover; border-radius:4px; margin-bottom:24px; }
.iab-experiences .iab-experience-card .iab-eyebrow { font-weight:400; letter-spacing:.16em; margin-bottom:11px; color:#697679; }
.iab-experiences h3 { font:400 1.65rem/1.3 'Playfair Display',Georgia,serif; text-align:left; letter-spacing:-.025em; margin:0 0 12px; color:#173641; }
.iab-experiences .iab-experience-description { font-size:1rem; text-align:left; color:#697679; line-height:1.8; margin:0 0 18px; overflow-wrap:anywhere; }
.iab-experience-card .iab-text-link { align-self:flex-start; margin-top:auto; font-size:.875rem; }
.iab-experiences .iab-text-link { display:inline-flex; align-items:center; gap:15px; }
.iab-experiences a:focus-visible { outline:3px solid #4b9aae; outline-offset:4px; }
.iab-experience-card:hover .iab-text-link { color:#225363; border-color:#225363; }
.iab-experiences-more { display:flex; flex-wrap:wrap; gap:20px 30px; margin-top:32px; }
@media(max-width:1150px) { .iab-experience-grid { gap:22px; } .iab-experiences h3 { font-size:1.45rem; } }
@media(max-width:900px) { .iab-experiences { padding:75px 0; } .iab-experiences h3 { font-size:1.5rem; } }
@media(max-width:600px) { .iab-experiences { padding:60px 0; } .iab-experiences h2 { font-size:2.35rem; } .iab-experiences .iab-section-top > .iab-text-link { margin-top:17px; } .iab-experience-grid { grid-template-columns:minmax(0,1fr); gap:42px; } .iab-experiences h3 { font-size:1.8rem; } .iab-experience-card > img { margin-bottom:22px; } .iab-experience-card .iab-text-link { font-size:.9375rem; } }

/* Owner services from the existing backend page. */
.iab-owners { background:#132f3b; color:white; padding:82px 0; font:400 16px/1.65 'DM Sans',Arial,sans-serif; }
.iab-owners * { box-sizing:border-box; }
.iab-owners-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:12%; }
.iab-owners .iab-eyebrow { font-size:.75rem; font-weight:600; letter-spacing:.19em; color:#b1c8ce; text-align:left; margin:0 0 20px; }
.iab-owners h2 { color:white; font:400 clamp(2.2rem,3.7vw,3.2rem)/1.17 'Playfair Display',Georgia,serif; text-align:left; letter-spacing:-.035em; margin:0; }
.iab-owners h2 em { color:#c1d7dc; }
.iab-owners .iab-owners-description { text-align:left; font-size:1rem; line-height:1.85; color:#bdcdd2; max-width:445px; margin:22px 0 0; }
.iab-owners .iab-button-light { background:white; border-color:white; color:#173641 !important; margin-top:29px; }
.iab-owners .iab-button-light:hover { background:#e1edef; border-color:#e1edef; }
.iab-owner-services { list-style:none; padding:7px 0 0; margin:0; }
.iab-owner-services > li { display:flex; gap:23px; padding:24px 0; border-bottom:1px solid #ffffff20; }
.iab-owner-services > li:first-child { padding-top:0; }
.iab-owner-services > li:last-child { border:0; padding-bottom:0; }
.iab-service-number { font-size:.75rem; color:#91b4bf; padding-top:5px; letter-spacing:.05em; }
.iab-owners .iab-owner-services h3 { font:400 1.08rem/1.5 'DM Sans',Arial,sans-serif; color:white; text-align:left; margin:0; }
.iab-owners .iab-owner-services p { text-align:left; font-size:.9375rem; color:#bdcdd2; line-height:1.75; margin:8px 0 0; overflow-wrap:anywhere; }
.iab-owners a:focus-visible { outline:3px solid #4b9aae; outline-offset:4px; }
@media(max-width:900px) { .iab-owners-grid { gap:7%; } }
@media(max-width:600px) { .iab-owners { padding:56px 0; } .iab-owners-grid { grid-template-columns:minmax(0,1fr); gap:45px; } .iab-owners h2 { font-size:2.3rem; } .iab-owners .iab-button-light { width:100%; padding:16px; } .iab-owner-services > li { gap:22px; padding:23px 0; } }

/* Contact details and footer shared across the public site. */
.iab-contact, .iab-footer { color:#173641; font:400 16px/1.65 'DM Sans',Arial,sans-serif; }
.iab-contact *, .iab-footer * { box-sizing:border-box; }
.iab-contact a, .iab-footer a { color:inherit; }
.iab-contact a:focus-visible, .iab-footer a:focus-visible { outline:3px solid #4b9aae; outline-offset:4px; }
.iab-contact { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:7%; padding-top:92px; padding-bottom:85px; }
.iab-contact .iab-eyebrow { font-size:.75rem; font-weight:600; letter-spacing:.19em; text-align:left; margin:0 0 20px; }
.iab-contact h2 { font:400 clamp(2rem,3.2vw,2.8rem)/1.17 'Playfair Display',Georgia,serif; text-align:left; color:#173641; letter-spacing:-.035em; margin:0; }
.iab-contact-email { display:inline-flex; align-items:center; gap:25px; font-size:1.05rem; border-bottom:1px solid #adbfc4; padding-bottom:7px; margin-top:27px; overflow-wrap:anywhere; }
.iab-contact-mobile { display:block; font-size:.95rem; margin-top:14px; }
.iab-contact-intro > .iab-text-link { margin-top:20px; }
.iab-offices { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:40px; padding-top:47px; }
.iab-contact .iab-offices h3 { font:400 1.65rem/1.3 'Playfair Display',Georgia,serif; text-align:left; margin:0 0 18px; color:#173641; }
.iab-contact .iab-offices p { text-align:left; font-size:.9375rem; color:#697679; line-height:1.9; margin:0 0 12px; }
.iab-offices a { display:block; font-size:.875rem; }
.iab-offices .iab-map-link { display:inline-flex; gap:25px; margin-top:20px; border-bottom:1px solid #adbdc1; padding-bottom:4px; }
.iab-footer { background:#f3f6f6; padding:43px 0 25px; }
.iab-footer-top { display:flex; justify-content:space-between; align-items:center; gap:25px; }
.iab-footer .iab-monogram { font-size:2.8rem; }
.iab-footer .iab-brand-name { font-size:1.3rem; }
.iab-footer-top > p { font:italic 1.2rem/1.5 'Playfair Display',Georgia,serif; margin:0; }
.iab-socials { display:flex; gap:25px; font-size:.875rem; }
.iab-footer-links { display:flex; gap:15px 25px; flex-wrap:wrap; font-size:.875rem; padding:28px 0; }
.iab-footer-offices { display:flex; gap:10px 24px; flex-wrap:wrap; font-size:.8125rem; color:#697679; padding-bottom:22px; }
.iab-footer-bottom { border-top:1px solid #d9e1e2; padding-top:22px; display:flex; justify-content:space-between; gap:25px; font-size:.75rem; color:#697679; }
.iab-footer-bottom > div { display:flex; gap:24px; flex-wrap:wrap; }
@media(max-width:1150px) { .iab-contact { gap:5%; } .iab-offices { gap:24px; } .iab-footer-top > p { font-size:1.15rem; } }
@media(max-width:900px) { .iab-contact { grid-template-columns:minmax(0,1fr); gap:35px; padding-top:75px; padding-bottom:75px; } .iab-offices { padding-top:0; max-width:600px; gap:70px; } .iab-footer-top { flex-wrap:wrap; } .iab-footer-top > p { display:none; } .iab-footer-bottom { flex-direction:column; gap:15px; } }
@media(max-width:600px) { .iab-contact { padding-top:60px; padding-bottom:60px; gap:40px; } .iab-contact h2 { font-size:2.4rem; } .iab-contact-email { font-size:1rem; gap:20px; } .iab-offices { gap:25px; } .iab-contact .iab-offices h3 { font-size:1.5rem; margin-bottom:13px; } .iab-footer { padding:35px 0 25px; } .iab-footer-top { align-items:flex-start; gap:24px; } .iab-footer .iab-brand-name { font-size:1.4rem; } .iab-socials { gap:24px; padding-top:5px; } .iab-footer-links { gap:14px 24px; padding:25px 0; } .iab-footer-bottom { line-height:1.8; gap:17px; } }
@media(max-width:359px) { .iab-contact-email { font-size:.9rem; gap:12px; } .iab-footer .iab-brand-name { font-size:1.2rem; } }

/* Agency and team pages: preserve backend content, scope the editorial layout. */
.iab-inner { margin:0 -15px; color:#173641; font:400 16px/1.8 'DM Sans',Arial,sans-serif; }
.iab-inner * { box-sizing:border-box; }
.iab-inner a { color:inherit; }
.iab-inner a:focus-visible { outline:3px solid #4b9aae; outline-offset:4px; }
.iab-page-heading { background:#f3f6f6; padding:28px 0 64px; }
.iab-breadcrumbs { display:flex; flex-wrap:wrap; gap:14px; color:#697679; font-size:.8125rem; margin-bottom:40px; }
.iab-breadcrumbs a:hover { text-decoration:underline !important; }
.iab-inner .iab-eyebrow { font-size:.75rem; font-weight:600; letter-spacing:.19em; text-align:left; margin:0 0 15px; }
.iab-inner h1 { font:400 clamp(2.4rem,4.6vw,4rem)/1.17 'Playfair Display',Georgia,serif; letter-spacing:-.035em; color:#173641; margin:0; max-width:1000px; }
.iab-inner .iab-page-intro { font-size:1rem; line-height:1.85; color:#697679; text-align:left; max-width:800px; margin:24px 0 0; }
.iab-about-content { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:7%; padding-top:72px; }
.iab-about-photo { align-self:start; position:sticky; top:32px; }
.iab-about-photo img { display:block; width:100%; height:auto; aspect-ratio:1.1; object-fit:cover; border-radius:4px; }
.iab-richtext { min-width:0; overflow-wrap:anywhere; color:#5a6b70; }
.iab-richtext p, .iab-richtext div { text-align:left !important; }
.iab-richtext p { margin:0 0 20px; }
.iab-richtext > div { margin-bottom:20px; }
.iab-richtext [style] { font-family:inherit !important; font-size:inherit !important; color:inherit !important; text-align:left !important; background-color:transparent !important; }
.iab-richtext span, .iab-richtext small, .iab-richtext big { font:inherit; }
.iab-richtext h2, .iab-richtext h3, .iab-richtext h4 { font-family:'Playfair Display',Georgia,serif; font-weight:400; text-align:left; color:#173641; line-height:1.3; margin:28px 0 16px; }
.iab-richtext h2 { font-size:2rem; } .iab-richtext h3 { font-size:1.65rem; } .iab-richtext h4 { font-size:1.35rem; }
.iab-richtext a { color:#225363 !important; text-decoration:underline !important; text-underline-offset:4px; }
.iab-richtext ul, .iab-richtext ol { padding-left:24px; margin:0 0 20px; }
.iab-richtext li { margin-bottom:8px; }
.iab-richtext img { max-width:100%; height:auto; }
.iab-about-wide-photo { margin-top:48px; }
.iab-about-wide-photo img { display:block; width:100%; height:auto; border-radius:4px; }
.iab-inner-actions { display:flex; align-items:center; flex-wrap:wrap; gap:25px; padding-top:40px; padding-bottom:80px; }
.iab-inner .iab-text-link { display:inline-flex; align-items:center; gap:22px; margin:0; }
.iab-team-content { padding-top:64px; }
.iab-team-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:45px 28px; }
.iab-team-card { min-width:0; }
.iab-team-photo { aspect-ratio:1; border-radius:4px; overflow:hidden; background:#f3f6f6; }
.iab-team-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center 30%; }
.iab-inner .iab-team-card h2 { font:400 1.55rem/1.3 'Playfair Display',Georgia,serif; color:#173641; text-align:left; margin:20px 0 8px; overflow-wrap:anywhere; }
.iab-inner .iab-team-card p { font-size:.9375rem; text-align:left; line-height:1.7; color:#697679; margin:0; }
.iab-team-description { margin-top:64px; border-top:1px solid #dde4e4; padding-top:40px; max-width:900px; }
@media(max-width:900px) { .iab-about-content { gap:5%; padding-top:50px; } .iab-about-photo img { aspect-ratio:.8; } .iab-team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 24px; } }
@media(max-width:600px) { .iab-page-heading { padding-top:20px; padding-bottom:40px; } .iab-breadcrumbs { margin-bottom:28px; } .iab-inner h1 { font-size:2.35rem; } .iab-about-content { grid-template-columns:minmax(0,1fr); gap:32px; padding-top:40px; } .iab-about-photo { position:static; } .iab-about-photo img { aspect-ratio:1.25; } .iab-about-wide-photo { margin-top:32px; } .iab-inner-actions { padding-top:32px; padding-bottom:55px; gap:20px; } .iab-team-content { padding-top:40px; } .iab-team-grid { grid-template-columns:minmax(0,1fr); gap:35px; } .iab-team-photo { aspect-ratio:1.1; } .iab-team-description { margin-top:40px; padding-top:30px; } }

/* Match the staff layout of the piazzettasito project. */
.iab-team-page { padding:54px 0 85px; }
.iab-team-back { display:inline-flex; align-items:center; gap:12px; margin-bottom:28px; color:#697679 !important; font-size:13px; }
.iab-team-heading { max-width:1000px; margin-bottom:38px; }
.iab-team-page h1 { font-size:clamp(34px,4vw,54px); line-height:1.18; }
.iab-team-page .iab-team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 48px; }
.iab-team-member { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px; align-items:start; }
.iab-team-member > img { display:block; width:100%; height:auto; border-radius:6px; }
.iab-team-member > div { min-width:0; overflow-wrap:anywhere; }
.iab-team-page .iab-team-member h2 { font:400 26px/1.25 'Playfair Display',Georgia,serif; color:#173641; text-align:left; margin:0 0 12px; }
.iab-team-role { color:#697679; font-size:15px; line-height:1.8; }
.iab-team-role p { text-align:left; margin:0 0 16px; }
.iab-team-role a { text-decoration:underline !important; }
.iab-team-role img { max-width:100%; height:auto; }
.iab-team-text { margin-top:48px; }
@media(max-width:900px) { .iab-team-page .iab-team-grid { grid-template-columns:minmax(0,1fr); gap:35px; } }
@media(max-width:600px) { .iab-team-page { padding:34px 0 60px; } .iab-team-heading { margin-bottom:28px; } .iab-team-member { grid-template-columns:minmax(0,1fr); gap:20px; } .iab-team-member > img { max-width:360px; } }

/* Contact and owner forms retain their existing backend field names. */
.iab-form-layout { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:7%; padding-top:64px; padding-bottom:64px; align-items:start; }
.iab-form-panel { background:#f3f6f6; border:1px solid #dde4e4; border-radius:6px; padding:30px; }
.iab-inner .iab-form-panel h2, .iab-inner .iab-contact-aside h2 { font:400 1.8rem/1.3 'Playfair Display',Georgia,serif; color:#173641; text-align:left; margin:0 0 16px; }
.iab-form-panel > p { text-align:left; font-size:.9375rem; color:#697679; margin:0 0 24px; }
.iab-form-status:empty { display:none; }
.iab-inner .iab-form-status { color:#173641; font-size:1rem; margin-bottom:24px; }
.iab-contact-form [hidden], .iab-contact-form[hidden] { display:none !important; }
.iab-contact-form label { display:block; font-size:.8125rem; font-weight:500; color:#173641; margin:0 0 7px; }
.iab-contact-form input:not([type="checkbox"]):not([type="hidden"]), .iab-contact-form textarea { position:static; display:block; width:100%; min-width:0; max-width:100%; padding:11px 12px; border:1px solid #bdcbce; border-radius:4px; background:white; color:#173641; font:400 16px/1.5 'DM Sans',Arial,sans-serif; margin:0 0 20px; }
.iab-contact-form textarea { resize:vertical; }
.iab-contact-form input:focus, .iab-contact-form textarea:focus { outline:2px solid #4b9aae; outline-offset:2px; }
.iab-form-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 18px; }
.iab-contact-form .iab-form-privacy { display:flex; align-items:flex-start; gap:10px; font-size:.8125rem; line-height:1.7; font-weight:400; color:#697679; margin:8px 0 24px; }
.iab-form-privacy input[type="checkbox"] { position:static; flex:0 0 18px; width:18px; height:18px; margin:3px 0 0; accent-color:#173641; }
.iab-form-privacy a { text-decoration:underline !important; }
.iab-contact-form button:disabled { opacity:.6; cursor:wait; }
.iab-inner .iab-contact-form h3 { font:400 1.45rem/1.3 'Playfair Display',Georgia,serif; text-align:left; margin:12px 0 20px; color:#173641; }
.iab-contact-aside > a { display:block; overflow-wrap:anywhere; margin-bottom:8px; }
.iab-contact-aside .iab-offices { gap:30px; padding-top:30px; }
.iab-inner .iab-contact-aside h3 { font:400 1.5rem/1.3 'Playfair Display',Georgia,serif; color:#173641; text-align:left; margin:0 0 16px; }
.iab-contact-aside p { text-align:left; color:#697679; margin:0 0 16px; }
.iab-contact-maps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; padding-bottom:75px; }
.iab-map-frame { border-radius:6px; overflow:hidden; background:#f3f6f6; }
.iab-contact-maps iframe { display:block; width:100%; height:360px; border:0; }
.iab-owner-form-layout { grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:6%; padding-bottom:0; }
.iab-owner-form-aside { min-width:0; }
.iab-owner-form-photo { display:block; width:100%; height:auto; border-radius:6px; margin-bottom:24px; }
@media(max-width:900px) { .iab-form-layout { grid-template-columns:minmax(0,1fr); gap:40px; padding-top:45px; } .iab-owner-form-aside { max-width:680px; } }
@media(max-width:600px) { .iab-form-layout { padding-top:35px; padding-bottom:45px; } .iab-owner-form-layout { padding-bottom:0; } .iab-form-panel { padding:24px 20px; } .iab-form-fields { grid-template-columns:minmax(0,1fr); } .iab-contact-form .iab-button { width:100%; } .iab-contact-maps { grid-template-columns:minmax(0,1fr); gap:20px; padding-bottom:55px; } .iab-contact-maps iframe { height:300px; } .iab-contact-aside .iab-offices { gap:20px; } }

.iab-editorial-content { padding-top:64px; padding-bottom:75px; }
.iab-editorial-layout { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:7%; align-items:start; }
.iab-editorial-photo { display:block; width:100%; height:auto; border-radius:6px; }
.iab-editorial-wide { display:block; width:100%; height:auto; margin-top:40px; border-radius:6px; }
.iab-territory-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin-top:48px; }
.iab-territory-links a { display:block; border-bottom:1px solid #dde4e4; padding-bottom:14px; }
.iab-territory-links img { width:100%; aspect-ratio:1.5; object-fit:cover; display:block; margin-bottom:16px; border-radius:4px; }
.iab-territory-links span { font-size:1rem; }
.iab-content-photo { display:block; width:100%; max-height:500px; object-fit:cover; height:auto; border-radius:6px; margin-bottom:40px; }
.iab-content-copy { max-width:1050px; }
.iab-richtext iframe { max-width:100%; }
.iab-richtext table { display:block; max-width:100%; overflow-x:auto; }
.iab-richtext [style*="width"] { max-width:100% !important; }
.iab-error-page { padding:85px 0; }
.iab-error-page > .iab-wrap > p:not(.iab-eyebrow) { margin-top:25px; color:#697679; text-align:left; }
.iab-request-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; margin-bottom:24px; }
.iab-contact-form select { width:100%; min-width:0; padding:11px 12px; border:1px solid #bdcbce; border-radius:4px; color:#173641; background:white; font:400 16px/1.5 'DM Sans',Arial,sans-serif; margin-bottom:20px; }
.iab-choice-group { border:0; padding:0; margin:0 0 22px; min-width:0; }
.iab-choice-group legend { font-size:.8125rem; font-weight:500; color:#173641; margin-bottom:10px; }
.iab-choice-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 16px; }
.iab-contact-form .iab-choice { display:flex; align-items:flex-start; gap:8px; font-weight:400; font-size:.875rem; line-height:1.6; margin:0; }
.iab-contact-form .iab-choice input[type="checkbox"], .iab-contact-form .iab-choice input[type="radio"] { position:static; flex:0 0 17px; width:17px; height:17px; margin:3px 0 0; accent-color:#173641; }
@media(max-width:900px){.iab-editorial-layout,.iab-request-layout{grid-template-columns:minmax(0,1fr);gap:32px;} .iab-editorial-photo{max-width:700px;} }
@media(max-width:600px){.iab-editorial-content{padding-top:40px;padding-bottom:55px;} .iab-territory-links{grid-template-columns:minmax(0,1fr);gap:25px;margin-top:35px;} .iab-content-photo{margin-bottom:28px;} .iab-choice-options{grid-template-columns:minmax(0,1fr);} .iab-error-page{padding:55px 0;} }
