:root {
    --navy: #073a72;
    --blue: #087cd8;
    --pink: #f20b78;
    --yellow: #ffb000;
    --ink: #0d1b32;
    --muted: #55647b;
    --line: #dce4ef;
    --surface: #f6f9fd;
    --white: #ffffff;
    --content: 1180px;
    --radius: 14px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--white);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.55;
}
a { color: var(--navy); }
button, input, select { font: inherit; }
button, input, select, a { outline-offset: 4px; }
:focus-visible { outline: 3px solid var(--yellow); }

.skip-link {
    position: fixed;
    z-index: 100;
    top: 12px;
    left: 12px;
    padding: 10px 16px;
    color: var(--white);
    background: var(--navy);
    transform: translateY(-150%);
}
.skip-link:focus { transform: translateY(0); }

.site-header {
    position: sticky;
    z-index: 20;
    top: 0;
    border-bottom: 1px solid rgba(7, 58, 114, .1);
    background: rgba(255, 255, 255, .94);
    backdrop-filter: blur(12px);
    transition: box-shadow .2s ease;
}
.site-header.is-scrolled { box-shadow: 0 10px 35px rgba(13, 27, 50, .08); }
.header-inner {
    display: flex;
    align-items: center;
    gap: clamp(20px, 4vw, 64px);
    width: min(100% - 32px, var(--content));
    min-height: 82px;
    margin: auto;
}
.brand img { display: block; width: 108px; height: auto; }
nav { display: flex; align-items: center; gap: clamp(16px, 3vw, 36px); margin-left: auto; }
nav a, nav span { color: var(--ink); font-size: .9rem; font-weight: 700; text-decoration: none; }
nav span { color: var(--muted); opacity: .55; }
.header-action { padding: 10px 15px; border-radius: 9px; color: var(--white); background: var(--navy); font-size: .82rem; font-weight: 800; text-decoration: none; transition: background-color .2s ease, transform .2s ease; }
.header-action:hover { background: var(--blue); transform: translateY(-1px); }

.hero {
    position: relative;
    color: #fff;
    background: linear-gradient(rgba(3, 20, 36, .55), rgba(3, 20, 36, .35)), url('../images/home-hero-mercatisettimanali.webp') center / cover no-repeat;
}
.hero-inner { width: min(100% - 32px, 1100px); margin: auto; padding: 18px 0 12px; }
.hero h1 { max-width: 900px; margin: auto; color: #fff; font-size: clamp(30px, 3.6vw, 52px); font-weight: 750; line-height: 1.02; letter-spacing: -.025em; text-align: center; }
.eyebrow { margin: 0 0 12px; color: var(--blue); font-size: .78rem; font-weight: 900; letter-spacing: .13em; text-transform: uppercase; }
.hero .eyebrow { color: #73c5ff; }
h1, h2 { margin: 0; line-height: 1.08; letter-spacing: -.035em; }
h1 { max-width: 880px; font-size: clamp(2.5rem, 6.7vw, 5.7rem); }
h2 { font-size: clamp(2rem, 4vw, 3.6rem); }
.hero-copy { margin: 14px auto 10px; color: #fff; font-size: 18px; line-height: 1.3; text-align: center; text-shadow: 0 1px 4px #142133; }

.search-shell {
    display: grid;
    grid-template-columns: minmax(240px, 1.5fr) minmax(160px, .7fr) auto;
    gap: 12px;
    max-width: 950px;
    padding: 15px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: var(--radius);
    background: var(--white);
    box-shadow: 0 24px 60px rgba(0,0,0,.2);
}
.search-shell div { display: grid; gap: 5px; }
.search-shell label { color: var(--navy); font-size: .75rem; font-weight: 800; }
.search-shell input, .search-shell select {
    width: 100%;
    min-height: 44px;
    padding: 0 12px;
    border: 1px solid var(--line);
    border-radius: 9px;
    color: var(--muted);
    background: var(--surface);
}
.search-shell button, .button {
    align-self: end;
    min-height: 44px;
    padding: 0 20px;
    border: 0;
    border-radius: 9px;
    color: var(--white);
    background: var(--navy);
    font-weight: 800;
    text-decoration: none;
}
.search-shell button:disabled { cursor: not-allowed; opacity: .75; }
.search-shell--page { grid-template-columns: minmax(240px, 1fr) auto; }
.search-shell--page { max-width: 720px; margin-top: 30px; border-color: var(--line); box-shadow: 0 18px 50px rgba(13, 27, 50, .08); }
.search-shell--page button { min-width: 120px; }

.hero-search-panel { padding: 16px 24px; border: 1px solid #e0e5ed; border-radius: 11px; background: #fff; box-shadow: 0 8px 24px #0003; }
.home-search { display: grid; grid-template-columns: minmax(0, 2.05fr) minmax(0, 1.2fr) minmax(0, 1.06fr) minmax(0, 1.08fr) minmax(0, .88fr); gap: 22px; align-items: end; }
.home-search-field { min-width: 0; }
.home-search label { display: block; margin-bottom: 7px; color: #152748; font-size: 13px; font-weight: 650; }
.home-control { position: relative; }
.home-control input, .home-control select { width: 100%; min-width: 0; height: 44px; padding: 0 13px; border: 1px solid #d9dfeb; border-radius: 7px; background-color: #fff; color: #18253b; font-size: 12px; }
.home-control input { padding-right: 35px; }
.home-control input::placeholder { color: #6a7a99; opacity: 1; }
.home-control select { appearance: none; padding-right: 30px; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2318253b' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 12px center; }
.home-control--icon input, .home-control--icon select { padding-left: 42px; }
.home-control svg, .home-day-links svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }
.home-control svg { position: absolute; left: 16px; top: 12px; color: #263247; pointer-events: none; }
.home-control .home-search-icon { left: auto; right: 14px; }
.home-control input::-webkit-search-cancel-button { display: none; }
.home-search button { height: 44px; border: 0; border-radius: 8px; background: #063b78; color: #fff; font-size: 13px; font-weight: 700; cursor: pointer; }
.home-search button:hover { background: #052e60; }
.home-day-links { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 12px; margin-top: 16px; color: #18253b; font-size: 13px; font-weight: 650; }
.home-day-links a { display: inline-flex; align-items: center; gap: 12px; min-height: 36px; text-decoration: none; white-space: nowrap; }
.home-day-links a:hover { text-decoration: underline; text-underline-offset: 4px; }
.home-day-links .today-link { padding: 0 12px; border-radius: 7px; background: #eef4fe; color: #0758b7; gap: 8px; }
.day-lunedi { color: #0758b7; } .day-martedi { color: #007f7c; } .day-mercoledi { color: #387c20; } .day-giovedi { color: #986300; } .day-venerdi { color: #c63b10; } .day-sabato { color: #d01465; } .day-domenica { color: #9132af; }
.hero :is(input, select, button, a):focus-visible { outline: 3px solid #087cd8; outline-offset: 3px; }
@media (max-width: 1100px) {
    .home-search { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 20px; }
    .home-search button { grid-column: 1 / -1; }
    .home-day-links { justify-content: flex-start; gap: 8px 22px; }
    .hero-inner { padding: 24px 0; }
}
@media (max-width: 600px) {
    .hero h1 { font-size: 32px; line-height: 1.08; }
    .hero h1 br { display: none; }
    .hero-copy { font-size: 16px; margin: 14px 0 18px; }
    .hero-search-panel { padding: 18px; }
    .home-search { grid-template-columns: minmax(0, 1fr); gap: 12px; }
    .home-day-links { gap: 4px 18px; }
    .home-day-links > span { flex-basis: 100%; }
    .home-day-links a { min-height: 44px; }
}

.trust-strip {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    padding: 0 max(16px, calc((100% - var(--content)) / 2));
    border-bottom: 1px solid var(--line);
    background: var(--white);
}
.trust-strip p { display: grid; gap: 2px; margin: 0; padding: 27px clamp(16px, 3vw, 38px); border-right: 1px solid var(--line); }
.trust-strip p:first-child { border-left: 1px solid var(--line); }
.trust-strip strong { color: var(--navy); }
.trust-strip span { color: var(--muted); font-size: .86rem; }

.home-grid, .today-section, .directory-section {
    width: min(100% - 32px, var(--content));
    margin: auto;
    padding: clamp(68px, 8vw, 110px) 0;
}
.today-section { width: auto; padding-right: max(16px, calc((100% - var(--content)) / 2)); padding-left: max(16px, calc((100% - var(--content)) / 2)); background: var(--surface); }
.section-heading > p:last-child { max-width: 680px; color: var(--muted); }

.region-list { display: grid; grid-template-columns: repeat(2, 1fr); border-top: 1px solid var(--line); }
.region-list a { display: grid; gap: 4px; padding: 24px 5px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; transition: color .2s ease, padding-left .2s ease; }
.region-list a:nth-child(odd) { margin-right: 30px; }
.region-list a:hover { padding-left: 8px; color: var(--blue); }
.region-list span { color: var(--muted); font-size: .86rem; }
.region-list--large strong { font-size: 1.25rem; }
.text-link { display: inline-flex; gap: 10px; align-items: center; margin-top: 28px; color: var(--blue); font-weight: 850; text-decoration: none; }
.text-link span { transition: transform .2s ease; }
.text-link:hover span { transform: translateX(5px); }

.market-list { border-top: 1px solid var(--line); }
.market-row { display: grid; grid-template-columns: minmax(240px, 1.4fr) minmax(170px, .7fr) minmax(190px, .8fr) 32px; gap: 24px; align-items: center; padding: 25px 0; border-bottom: 1px solid var(--line); }
.market-row__place > span { color: var(--muted); font-size: .78rem; font-weight: 750; text-transform: uppercase; letter-spacing: .06em; }
.market-row h3 { margin: 3px 0 0; font-size: 1.1rem; line-height: 1.3; }
.market-row h3 a { color: var(--ink); text-decoration: none; }
.market-row h3 a:hover { color: var(--blue); }
.market-row__schedule, .market-row__status { display: grid; gap: 3px; }
.market-row__schedule span, .market-row__status small { color: var(--muted); font-size: .82rem; }
.market-row__status > span { font-size: .86rem; font-weight: 800; }
.status--da_verificare > span, .status--non_confermato > span { color: #9a6100; }
.status--verificato > span { color: #167344; }
.status--segnalato > span, .status--sospeso > span { color: #b4235a; }
.market-row__arrow { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; color: var(--navy); background: #eaf4ff; text-decoration: none; transition: color .2s ease, background .2s ease, transform .2s ease; }
.market-row__arrow:hover { color: var(--white); background: var(--blue); transform: translateX(3px); }
.empty-state { padding: 30px 0; color: var(--muted); }


.breadcrumbs { width: min(100% - 32px, var(--content)); margin: 25px auto 0; }
.breadcrumbs ol { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.breadcrumbs li { display: flex; gap: 8px; color: var(--muted); font-size: .8rem; }
.breadcrumbs li:not(:last-child)::after { content: "/"; color: #a7b3c3; }
.breadcrumbs a { color: var(--muted); text-decoration: none; }
.breadcrumbs a:hover { color: var(--blue); }

.page-hero { width: min(100% - 32px, var(--content)); margin: auto; padding: clamp(60px, 8vw, 105px) 0 45px; }
.page-hero h1 { max-width: 980px; color: var(--navy); font-size: clamp(2.4rem, 6vw, 5.1rem); }
.page-hero > p:last-child { max-width: 760px; color: var(--muted); font-size: 1.08rem; }
.page-hero--day, .page-hero--search { padding-bottom: 35px; }
.territory-story { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: clamp(36px, 7vw, 90px); align-items: start; width: min(100% - 32px, var(--content)); margin: auto; padding: 10px 0 clamp(65px, 8vw, 105px); border-bottom: 1px solid var(--line); }
.territory-story--text { grid-template-columns: minmax(0, 820px); }
.territory-visual { position: sticky; top: 112px; margin: 0; }
.territory-visual img { display: block; width: 100%; height: auto; border-radius: 3px; }
.editorial-content { color: var(--muted); font-size: 1.02rem; }
.editorial-content > :first-child { margin-top: 0; }
.editorial-content > :last-child { margin-bottom: 0; }
.editorial-content h2, .editorial-content h3, .editorial-content h4 { margin: 1.55em 0 .45em; color: var(--navy); line-height: 1.17; letter-spacing: -.025em; }
.editorial-content h2 { font-size: clamp(1.75rem, 3vw, 2.55rem); }
.editorial-content h3 { font-size: clamp(1.35rem, 2vw, 1.8rem); }
.editorial-content p { margin: 0 0 1em; }
.editorial-content ul, .editorial-content ol { padding-left: 1.35em; }
.editorial-content li { margin: .35em 0; }
.editorial-content a { color: var(--pink); text-underline-offset: 3px; }
.directory-section + .directory-section { padding-top: 0; }

.municipality-list { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.municipality-list a, .municipality-result { display: grid; gap: 3px; padding: 22px 8px 22px 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.municipality-list > :not(:nth-child(3n)) { margin-right: 28px; }
.municipality-list a:hover strong { color: var(--blue); }
.municipality-list span { color: var(--muted); font-size: .84rem; }
.municipality-result--unavailable { opacity: .68; }

.day-tabs { display: flex; gap: 8px; width: min(100% - 32px, var(--content)); margin: 0 auto; overflow-x: auto; padding-bottom: 8px; }
.day-tabs a { flex: 0 0 auto; padding: 9px 14px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: .82rem; font-weight: 800; text-decoration: none; }
.day-tabs a:hover, .day-tabs a.is-active { color: var(--white); border-color: var(--navy); background: var(--navy); }

.market-hero { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(40px, 8vw, 120px); align-items: end; width: min(100% - 32px, var(--content)); margin: auto; padding: clamp(65px, 9vw, 120px) 0 55px; }
.preview-banner { position: relative; z-index: 10; display: grid; grid-template-columns: minmax(240px, 1fr) minmax(220px, .8fr) auto; gap: 24px; align-items: center; padding: 15px max(16px, calc((100% - var(--content)) / 2)); color: var(--white); background: #031c3a; border-top: 5px solid var(--yellow); }
.preview-banner > div { display: grid; gap: 2px; }
.preview-banner span, .preview-banner details { color: rgba(255,255,255,.72); font-size: .82rem; }
.preview-banner summary { cursor: pointer; font-weight: 800; }
.preview-banner details p { margin: 7px 0 0; }
.preview-banner a { justify-self: end; color: #8fd1ff; font-weight: 850; text-decoration: none; }
.market-hero h1 { max-width: 830px; color: var(--navy); font-size: clamp(2.5rem, 6vw, 5rem); }
.market-hero > div > p:last-child { max-width: 690px; color: var(--muted); }
.verification-panel { display: grid; gap: 5px; padding: 22px 0; border-top: 3px solid var(--yellow); border-bottom: 1px solid var(--line); }
.verification-panel span { color: var(--muted); font-size: .85rem; }
.market-copy { width: min(100% - 32px, 800px); margin: 0 auto; padding: 65px 0 0; }
.market-copy:last-of-type { padding-bottom: 100px; }
.market-copy h2 { color: var(--navy); font-size: clamp(1.7rem, 3vw, 2.5rem); }
.market-copy p { color: var(--muted); }
.type-list { display: flex; flex-wrap: wrap; gap: 9px; padding: 0; list-style: none; }
.type-list li { padding: 8px 12px; border-radius: 999px; color: var(--navy); background: #eaf4ff; font-size: .84rem; font-weight: 800; }
.catalog-hero { display: flex; justify-content: space-between; gap: 45px; align-items: end; width: min(100% - 32px, var(--content)); margin: auto; padding: clamp(65px, 9vw, 120px) 0 clamp(55px, 7vw, 90px); animation: hero-enter .65s both; }
.catalog-hero > div { max-width: 880px; }
.catalog-hero h1, .goods-hero h1 { color: var(--navy); font-size: clamp(3rem, 7vw, 6.2rem); line-height: .96; letter-spacing: -.055em; }
.catalog-hero p, .goods-hero p { max-width: 720px; color: var(--muted); font-size: 1.08rem; }
.catalog-hero .text-link { flex: 0 0 auto; padding-bottom: 8px; }
.goods-index { width: min(100% - 32px, var(--content)); margin: auto; border-top: 1px solid var(--line); }
.goods-feature { display: grid; grid-template-columns: minmax(280px, .78fr) minmax(0, 1.22fr); gap: clamp(32px, 7vw, 100px); align-items: center; padding: clamp(35px, 6vw, 75px) 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.goods-feature.is-reversed figure { order: 2; }
.goods-feature figure { aspect-ratio: 4 / 3; margin: 0; overflow: hidden; background: var(--surface); }
.goods-feature img { width: 100%; height: 100%; object-fit: cover; transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.goods-feature:hover img { transform: scale(1.035); }
.goods-feature > div { display: grid; grid-template-columns: 56px minmax(0,1fr); column-gap: 22px; transition: transform .28s ease; }
.goods-feature:hover > div { transform: translateX(7px); }
.goods-feature > div > span { grid-row: 1 / span 4; color: var(--pink); font-size: .82rem; font-weight: 900; }
.goods-feature h2 { margin: 0 0 13px; color: var(--navy); font-size: clamp(2rem, 4vw, 3.7rem); line-height: 1; letter-spacing: -.045em; }
.goods-feature p { max-width: 630px; margin: 0 0 15px; color: var(--muted); }
.goods-feature small { color: var(--blue); font-weight: 800; }
.catalog-note { padding: clamp(80px, 11vw, 150px) max(16px, calc((100% - var(--content)) / 2)); color: var(--white); background: var(--navy); }
.catalog-note h2 { max-width: 920px; }
.catalog-note > p:last-child { max-width: 690px; color: rgba(255,255,255,.7); }
.goods-hero { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(320px,.95fr); gap: clamp(45px,8vw,120px); align-items: center; width: min(100% - 32px,var(--content)); margin: auto; padding: clamp(60px,8vw,110px) 0; animation: hero-enter .65s both; }
.goods-hero figure { aspect-ratio: 1 / 1; margin: 0; overflow: hidden; }
.goods-hero img { width: 100%; height: 100%; object-fit: cover; }
.goods-editorial, .goods-children, .goods-merchants, .merchant-search, .merchant-results { width: min(100% - 32px,var(--content)); margin: auto; padding: clamp(55px,7vw,95px) 0; border-top: 1px solid var(--line); }
.goods-editorial { display: grid; grid-template-columns: minmax(0,820px); }
.goods-children > div:last-child { display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line); }
.goods-children a { display: grid; gap: 5px; padding: 22px 22px 22px 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; transition: color .2s ease, transform .2s ease; }
.goods-children a:not(:nth-child(3n)) { margin-right: 28px; }
.goods-children a:hover { color: var(--blue); transform: translateY(-2px); }
.goods-children span { color: var(--muted); font-size: .82rem; }
.honest-empty { max-width: 780px; padding: 34px 0; border-top: 3px solid var(--yellow); border-bottom: 1px solid var(--line); }
.honest-empty strong { color: var(--navy); font-size: clamp(1.35rem,2.5vw,2rem); }
.honest-empty p { color: var(--muted); }
.merchant-search { padding-top: 0; border-top: 0; }
.merchant-search form { display: grid; grid-template-columns: minmax(260px,1fr) minmax(260px,1fr) auto; gap: 14px; align-items: end; padding: 24px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.merchant-search label { display: grid; gap: 7px; }
.merchant-search label span { color: var(--muted); font-size: .78rem; font-weight: 800; }
.merchant-search select, .merchant-search input { min-height: 48px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 7px; background: var(--white); }
.merchant-search button { min-height: 48px; padding: 11px 22px; border: 0; border-radius: 7px; color: var(--white); background: var(--navy); font-weight: 850; cursor: pointer; transition: background .2s ease, transform .2s ease; }
.merchant-search button:hover { background: var(--blue); transform: translateY(-2px); }
.merchant-lines { border-top: 1px solid var(--line); }
.merchant-lines a { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 30px; align-items: center; padding: 25px 0; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.merchant-lines a > div { display: grid; gap: 4px; transition: transform .2s ease; }
.merchant-lines a:hover > div { transform: translateX(6px); }
.merchant-lines strong { color: var(--navy); font-size: 1.18rem; }
.merchant-lines span, .merchant-lines small { color: var(--muted); }
.merchant-presence-list { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.merchant-presence-list li { display: grid; grid-template-columns: 110px minmax(0,1fr) auto; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.merchant-presence-list span, .merchant-presence-list small { color: var(--muted); }
.merchant-auth { display: grid; grid-template-columns: minmax(360px,.9fr) minmax(0,1.1fr); min-height: calc(100svh - 92px); }
.merchant-auth__visual { min-height: 680px; background: linear-gradient(rgba(3,28,58,.08),rgba(3,28,58,.08)),url('../images/home-hero-mercatisettimanali.webp') center / cover; animation: account-image-enter .8s both; }
.merchant-auth__content { display: flex; flex-direction: column; justify-content: center; max-width: 690px; padding: clamp(55px,8vw,115px); animation: hero-enter .6s .08s both; }
.merchant-auth__content h1, .account-message h1, .account-header h1 { color: var(--navy); font-size: clamp(2.5rem,5vw,4.8rem); line-height: 1; letter-spacing: -.05em; }
.merchant-auth__content > p:not(.eyebrow), .account-message > p { color: var(--muted); }
.merchant-auth-form { display: grid; gap: 18px; margin-top: 30px; }
.merchant-auth-form label { display: grid; gap: 7px; }
.merchant-auth-form label > span { color: var(--ink); font-size: .82rem; font-weight: 850; }
.merchant-auth-form label small { color: var(--muted); font-weight: 500; }
.merchant-auth-form input:not([type=checkbox]), .merchant-auth-form textarea, .merchant-auth-form select { width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: var(--white); }
.merchant-auth-form textarea { resize: vertical; }
.merchant-auth-form > button { min-height: 50px; border: 0; border-radius: 7px; color: var(--white); background: var(--navy); font-weight: 850; cursor: pointer; transition: background .2s ease,transform .2s ease; }
.merchant-auth-form > button:hover { background: var(--blue); transform: translateY(-2px); }
.merchant-consent { display: flex !important; grid-template-columns: auto 1fr; gap: 11px !important; align-items: flex-start; }
.merchant-consent input { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--blue); }
.field-error { color: #ad174f !important; font-weight: 800 !important; }
.merchant-auth__alternate { margin-top: 24px; font-size: .88rem; }
.merchant-auth__alternate a { color: var(--blue); font-weight: 850; }
.registration-plan-choice { display: grid; gap: 0; margin: 4px 0; padding: 0; border: 0; border-top: 1px solid var(--line); }
.registration-plan-choice legend { padding: 22px 0 0; color: var(--navy); font-size: 1.05rem; font-weight: 900; }
.registration-plan-choice > p { margin: 5px 0 12px; color: var(--muted); font-size: .8rem; }
.registration-plan-line { display: grid !important; grid-template-columns: auto 1fr; gap: 12px !important; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--line); cursor: pointer; }
.registration-plan-line input { width: 18px; height: 18px; accent-color: var(--blue); }
.registration-plan-line span { display: flex; justify-content: space-between; gap: 18px; }
.registration-plan-line small { color: var(--muted); }
.registration-plan-choice > a { margin-top: 13px; color: var(--blue); font-size: .82rem; font-weight: 850; }
.account-message { width: min(100% - 32px,800px); min-height: 66vh; margin: auto; padding: clamp(80px,11vw,150px) 0; animation: hero-enter .6s both; }
.development-verification { margin: 34px 0; padding: 25px 0; border-top: 3px solid var(--yellow); border-bottom: 1px solid var(--line); }
.development-verification p { color: var(--muted); }
.development-verification code { padding: 2px 5px; background: var(--surface); }
.account-header { display: flex; justify-content: space-between; gap: 35px; align-items: end; width: min(100% - 32px,var(--content)); margin: auto; padding: clamp(60px,8vw,105px) 0 45px; animation: hero-enter .55s both; }
.account-header h1 { margin-bottom: 14px; }
.account-header p:last-child { color: var(--muted); }
.text-button { border: 0; color: var(--blue); background: transparent; font-weight: 850; cursor: pointer; }
.account-alert { width: min(100% - 32px,var(--content)); margin: 0 auto 22px; padding: 13px 16px; border-radius: 7px; }
.account-alert--success { color: #0e5b35; background: #e6f6ed; }
.account-alert--error { color: #7a153d; background: #ffebf2; }
.account-plan-status { display: grid; grid-template-columns: minmax(240px,.75fr) minmax(0,1.25fr); gap: 24px 55px; width: min(100% - 32px,var(--content)); margin: 0 auto 22px; padding: 30px 0; border-top: 3px solid var(--blue); border-bottom: 1px solid var(--line); }
.account-plan-status h2 { margin: 2px 0 8px; color: var(--navy); font-size: clamp(1.8rem,3vw,2.7rem); }
.account-plan-status p { margin: 0; color: var(--muted); }
.account-plan-status dl { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 0; }
.account-plan-status dl > div { padding: 5px 20px; border-left: 1px solid var(--line); }
.account-plan-status dt { color: var(--muted); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.account-plan-status dd { margin: 5px 0 0; color: var(--navy); font-size: 1.05rem; font-weight: 900; }
.account-plan-status__features { grid-column: 1 / -1; font-size: .86rem; }
.account-plan-status > small { grid-column: 1 / -1; color: var(--muted); }
.account-plan-change { grid-column: 1 / -1; padding-top: 18px; border-top: 1px solid var(--line); }
.account-plan-change summary { width: fit-content; color: var(--blue); font-weight: 850; cursor: pointer; }
.account-plan-change form { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0 24px; margin-top: 18px; }
.account-plan-change label { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--line); cursor: pointer; }
.account-plan-change input { width: 18px; height: 18px; accent-color: var(--blue); }
.account-plan-change label span { display: grid; }
.account-plan-change label small { color: var(--muted); font-size: .75rem; }
.account-plan-change button { grid-column: 1; min-height: 44px; margin-top: 18px; border: 0; border-radius: 7px; color: var(--white); background: var(--navy); font-weight: 850; cursor: pointer; }
.account-plan-change form > a { align-self: center; margin-top: 18px; color: var(--blue); font-size: .82rem; font-weight: 850; }
.button--disabled { color: var(--muted); background: var(--surface); cursor: not-allowed; }
.button--disabled:hover { background: var(--surface); transform: none; }

.plans-hero { position: relative; display: flex; min-height: min(680px,calc(100svh - 82px)); align-items: center; overflow: hidden; color: var(--white); background: linear-gradient(90deg,rgba(3,28,58,.95) 0%,rgba(3,38,75,.76) 45%,rgba(3,38,75,.16) 78%),url('../images/home-hero-mercatisettimanali.webp') center / cover no-repeat; }
.plans-hero::after { position: absolute; inset: auto 0 0; height: 7px; content: ''; background: linear-gradient(90deg,var(--pink) 0 33%,var(--yellow) 33% 66%,var(--blue) 66%); }
.plans-hero__inner { position: relative; z-index: 1; width: min(100% - 32px,var(--content)); margin: auto; animation: hero-enter .7s both; }
.plans-hero__inner h1 { max-width: 780px; margin: 10px 0 20px; font-size: clamp(3rem,7vw,6.6rem); line-height: .96; letter-spacing: -.055em; }
.plans-hero__inner > p:not(.eyebrow) { max-width: 560px; margin-bottom: 32px; font-size: clamp(1rem,2vw,1.25rem); }
.plans-hero .button { display: inline-flex; color: var(--navy); background: var(--white); text-decoration: none; }
.plans-intro, .plan-comparison, .plan-definitions, .plan-details, .plan-safety, .plan-principles, .plans-final { width: min(100% - 32px,var(--content)); margin: auto; }
.plans-intro { display: grid; grid-template-columns: minmax(180px,.45fr) minmax(0,1.1fr) minmax(250px,.65fr); gap: 40px; align-items: start; padding: clamp(75px,9vw,130px) 0; }
.plans-intro h2, .plan-comparison h2, .plan-principles h2, .plans-final h2 { margin: 0; color: var(--navy); font-size: clamp(2.2rem,4.5vw,4.4rem); line-height: 1; letter-spacing: -.045em; }
.plans-intro > p:last-child, .plan-comparison > header > p:last-child, .plans-final p { color: var(--muted); }
.plan-comparison { padding: 0 0 clamp(80px,10vw,145px); scroll-margin-top: 110px; }
.plan-comparison > header { display: grid; grid-template-columns: .45fr 1.1fr .65fr; gap: 40px; align-items: end; padding-bottom: 32px; border-bottom: 1px solid var(--line); }
.plan-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; max-width: 1060px; margin: 30px auto 0; }
.plan-column { position: relative; display: flex; min-width: 0; flex-direction: column; padding: clamp(24px,3vw,38px); border: 1px solid #cfdbea; border-radius: 18px; background: var(--white); box-shadow: 0 18px 45px rgba(7,58,114,.08); animation: plan-column-enter .55s calc(var(--plan-order) * 90ms + 120ms) both; transition: border-color .2s ease,box-shadow .2s ease,transform .2s ease; }
.plan-column:hover { border-color: #aac4df; box-shadow: 0 24px 58px rgba(7,58,114,.13); transform: translateY(-4px); }
.plan-column.is-recommended { border-color: var(--yellow); background: #fffaf0; box-shadow: 0 22px 52px rgba(255,176,0,.14); }
.plan-column__recommended { position: absolute; top: 0; right: 28px; padding: 7px 16px; border-radius: 0 0 10px 10px; color: var(--navy); background: var(--yellow); font-size: .72rem; font-weight: 950; letter-spacing: .055em; text-transform: uppercase; }
.plan-column__heading { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 22px; align-items: start; min-height: 150px; }
.plan-column__heading > div:first-child > span { color: var(--muted); font-size: .76rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.plan-column h3 { margin: 0 0 3px; color: var(--navy); font-size: clamp(2.8rem,5vw,4.8rem); line-height: .9; letter-spacing: -.055em; }
.plan-column__heading > div:first-child > strong { color: var(--navy); font-size: 1.15rem; }
.plan-column__price { display: grid; justify-items: end; min-width: 118px; padding: 12px 15px; border-radius: 12px; background: #edf5fd; text-align: right; }
.is-recommended .plan-column__price { margin-top: 18px; background: #fff0cd; }
.plan-column__price strong { color: var(--navy); font-size: clamp(1.35rem,2.5vw,2rem); line-height: 1; white-space: nowrap; }
.plan-column__price span,.plan-column__price small { color: var(--muted); font-size: .76rem; }
.plan-column__audience { min-height: 76px; margin: 0 0 20px; color: var(--muted); line-height: 1.55; }
.plan-column__limits { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin-bottom: 24px; border-radius: 13px; background: #f2f7fd; }
.is-recommended .plan-column__limits { background: #fff4dc; }
.plan-column__limits > div { display: grid; grid-template-columns: 46px minmax(0,1fr); gap: 12px; align-items: center; min-height: 104px; padding: 17px; }
.plan-column__limits > div + div { border-left: 1px solid #cbd9e8; }
.plan-column__limits img { width: 42px; height: 42px; }
.plan-column__limits p,.plan-column__qr p { display: grid; margin: 0; line-height: 1.2; }
.plan-column__limits strong { color: var(--navy); font-size: 1.15rem; line-height: 1.05; }
.plan-column__limits span { margin-top: 4px; color: var(--muted); font-size: .78rem; }
.plan-column__features { display: grid; gap: 10px; margin: 0 0 24px; padding: 0; list-style: none; }
.plan-column__features li { display: grid; grid-template-columns: 19px minmax(0,1fr); gap: 10px; align-items: start; color: var(--ink); font-size: .91rem; line-height: 1.4; }
.plan-column__features img { width: 18px; height: 18px; margin-top: 1px; }
.plan-column__qr { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 13px; align-items: center; margin: auto 0 22px; padding: 15px; border: 1px solid #cfe0f1; border-radius: 12px; background: #f3f8fe; }
.plan-column__qr img { width: 42px; height: 42px; }
.plan-column__qr strong { color: var(--navy); font-size: .9rem; }
.plan-column__qr span { margin-top: 3px; color: var(--muted); font-size: .76rem; line-height: 1.35; }
.plan-column__actions { display: grid; gap: 13px; margin-top: auto; text-align: center; }
.plan-column__actions .button { display: flex; width: 100%; justify-content: center; align-items: center; color: var(--white); text-decoration: none; }
.plan-column:not(.is-recommended) .plan-column__actions .button { border: 2px solid var(--navy); color: var(--navy); background: var(--white); }
.plan-column:not(.is-recommended) .plan-column__actions .button:hover { color: var(--white); background: var(--navy); }
.plan-column__detail { color: var(--blue); font-size: .82rem; font-weight: 850; text-underline-offset: 4px; }
.plan-qr { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(50px,9vw,130px); width: min(100% - 32px,var(--content)); margin: auto; padding: clamp(70px,9vw,120px) 0; border-top: 1px solid var(--line); }
.plan-qr h2 { margin: 0; color: var(--navy); font-size: clamp(2.2rem,4.5vw,4.4rem); line-height: 1; letter-spacing: -.045em; }
.plan-qr > div > p:last-child { max-width: 620px; color: var(--muted); line-height: 1.65; }
.plan-qr ol { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.plan-qr li { display: grid; grid-template-columns: 46px minmax(120px,.55fr) minmax(0,1fr); gap: 16px; align-items: start; padding: 22px 0; border-bottom: 1px solid var(--line); }
.plan-qr li span { color: var(--pink); font-size: 1.25rem; font-weight: 950; }
.plan-qr li strong { color: var(--navy); }
.plan-qr li small { color: var(--muted); font-size: .9rem; line-height: 1.55; }
.plan-definitions { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(50px,9vw,130px); padding: clamp(70px,9vw,120px) 0; border-top: 1px solid var(--line); }
.plan-definitions h2, .plan-details h2, .plan-safety h2 { margin: 0; color: var(--navy); font-size: clamp(2.2rem,4.5vw,4.4rem); line-height: 1; letter-spacing: -.045em; }
.plan-definitions dl { margin: 0; border-top: 1px solid var(--line); }
.plan-definitions dl > div { padding: 22px 0; border-bottom: 1px solid var(--line); }
.plan-definitions dt { margin-bottom: 5px; color: var(--navy); font-weight: 900; }
.plan-definitions dd { margin: 0; color: var(--muted); line-height: 1.65; }
.plan-details { padding: clamp(70px,9vw,125px) 0; border-top: 1px solid var(--line); }
.plan-details > header { display: grid; grid-template-columns: .45fr 1.75fr; gap: 40px; align-items: end; padding-bottom: 38px; }
.plan-details > article { display: grid; grid-template-columns: minmax(70px,.35fr) minmax(0,1.65fr); gap: 40px; padding: clamp(42px,6vw,72px) 0; border-top: 1px solid var(--line); scroll-margin-top: 110px; }
.plan-details__number { color: var(--pink); font-size: clamp(2.4rem,5vw,5.4rem); font-weight: 950; line-height: .9; letter-spacing: -.06em; }
.plan-details__body { max-width: 820px; }
.plan-details__body h3 { margin: 5px 0 4px; color: var(--navy); font-size: clamp(2.4rem,5vw,4.8rem); line-height: .95; letter-spacing: -.05em; }
.plan-details__body h4 { margin: 0 0 18px; color: var(--ink); font-size: clamp(1.2rem,2vw,1.65rem); }
.plan-details__body > p:not(.eyebrow) { color: var(--muted); line-height: 1.65; }
.plan-details__limits { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 30px 0; border-block: 1px solid var(--line); }
.plan-details__limits span { padding: 22px 0; color: var(--muted); }
.plan-details__limits span + span { padding-left: 28px; border-left: 1px solid var(--line); }
.plan-details__limits strong { display: block; color: var(--navy); font-size: clamp(1.8rem,3vw,2.8rem); line-height: 1; }
.plan-details__example { padding-left: 18px; border-left: 4px solid var(--yellow); color: var(--ink) !important; }
.plan-details__body ul { display: grid; gap: 9px; margin: 25px 0 30px; padding: 0; list-style: none; }
.plan-details__body li { position: relative; padding-left: 24px; }
.plan-details__body li::before { position: absolute; left: 0; color: var(--pink); content: "✓"; font-weight: 950; }
.plan-details__body .button { display: inline-flex; color: var(--white); text-decoration: none; }
.plan-safety { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(50px,9vw,130px); padding: clamp(70px,9vw,120px) 0; border-top: 1px solid var(--line); }
.plan-safety ul { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.plan-safety li { display: grid; gap: 4px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.plan-safety li span { color: var(--muted); line-height: 1.55; }
.plan-principles { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(50px,9vw,130px); padding: clamp(70px,9vw,125px) 0; border-top: 1px solid var(--line); }
.plan-principles ul { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.plan-principles li { display: grid; gap: 3px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.plan-principles li span { color: var(--muted); }
.plans-final { display: flex; justify-content: space-between; gap: 55px; align-items: end; padding: clamp(70px,9vw,120px) 0; border-top: 1px solid var(--line); }
.plans-final > div { max-width: 760px; }
.plans-final .button { flex: 0 0 auto; color: var(--white); text-decoration: none; }
@keyframes plan-column-enter { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: translateY(0); } }
.account-workspace, .account-guidance { width: min(100% - 32px,var(--content)); margin: auto; padding: clamp(42px,6vw,75px) 0; border-top: 1px solid var(--line); }
.account-workspace--primary { padding-top: 32px; border-top: 4px solid var(--blue); }
.account-workspace--narrow { max-width: 820px; }
.account-section-heading { display: flex; justify-content: space-between; gap: 25px; align-items: end; margin-bottom: 35px; }
.account-section-heading h2, .account-guidance h2 { color: var(--navy); }
.account-section-heading p { margin-bottom: 0; color: var(--muted); }
.account-profile-list { border-top: 1px solid var(--line); }
.account-profile-list article { display: flex; justify-content: space-between; gap: 30px; padding: 23px 0; border-bottom: 1px solid var(--line); }
.account-profile-list article > div { display: grid; gap: 4px; }
.account-profile-list span, .account-profile-list small { color: var(--muted); }
.account-profile-list__actions { display: grid; gap: 5px; justify-items: end; text-align: right; }
.account-activity-table-wrap { overflow-x: auto; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.account-activity-table { width: 100%; border-collapse: collapse; text-align: left; }
.account-activity-table th { padding: 13px 14px; color: var(--muted); background: var(--surface); font-size: .7rem; font-weight: 900; letter-spacing: .055em; text-transform: uppercase; white-space: nowrap; }
.account-activity-table th:first-child,.account-activity-table td:first-child { padding-left: 0; }
.account-activity-table th:last-child,.account-activity-table td:last-child { padding-right: 0; text-align: right; }
.account-activity-table td { padding: 22px 14px; border-top: 1px solid var(--line); vertical-align: middle; transition: background-color .18s ease; }
.account-activity-table tbody tr:first-child td { border-top: 0; }
.account-activity-table tbody tr:hover td { background: #f8fbff; }
.account-activity-table td > strong,.account-activity-table td > small { display: block; }
.account-activity-table td:first-child > strong { color: var(--navy); font-size: 1.08rem; }
.account-activity-table td small { max-width: 280px; margin-top: 4px; color: var(--muted); font-size: .76rem; }
.account-activity-table time { color: var(--muted); font-size: .82rem; white-space: nowrap; }
.account-row-actions { display: flex; justify-content: flex-end; gap: 7px; }
.account-row-actions a { display: inline-flex; min-height: 38px; align-items: center; padding: 8px 11px; border: 1px solid var(--line); border-radius: 6px; color: var(--navy); background: var(--white); font-size: .76rem; font-weight: 850; text-decoration: none; white-space: nowrap; transition: border-color .18s ease,background-color .18s ease,transform .18s ease; }
.account-row-actions a:hover { border-color: var(--blue); background: var(--surface); transform: translateY(-1px); }
.account-row-actions .account-row-actions__primary { border-color: var(--navy); color: var(--white); background: var(--navy); }
.account-row-actions .account-row-actions__primary:hover { color: var(--white); background: var(--blue); }
.account-activity-card { display: grid !important; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 20px 35px !important; padding: 30px 0 !important; }
.account-activity-card__main { gap: 5px !important; }
.account-activity-card h3 { margin: 2px 0 0; color: var(--navy); font-size: clamp(1.35rem,2.5vw,2rem); }
.account-activity-card p { margin: 0 0 4px; color: var(--muted); }
.account-activity-card__action { justify-items: end; }
.account-activity-card__action .button { min-width: 220px; text-align: center; text-decoration: none; }
.account-simple-status { width: fit-content; padding: 5px 9px; border-radius: 999px; color: #744c00 !important; background: #fff1c7; font-size: .72rem; font-weight: 900; }
.account-simple-status--pubblicato { color: #0e5b35 !important; background: #e6f6ed; }
.account-simple-status--sospeso { color: #7a153d !important; background: #ffebf2; }
.account-optional-tools { grid-column: 1 / -1; padding-top: 15px; border-top: 1px solid var(--line); }
.account-optional-tools summary { width: fit-content; color: var(--blue); font-size: .84rem; font-weight: 850; cursor: pointer; }
.account-optional-tools nav { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 13px; }
.account-optional-tools a { padding: 9px 13px; border: 1px solid var(--line); border-radius: 7px; color: var(--navy); font-size: .82rem; font-weight: 800; text-decoration: none; }
.account-first-step { display: grid; grid-template-columns: 54px minmax(0,1fr) auto; gap: 22px; align-items: center; padding: 28px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); }
.account-first-step > span { display: grid; width: 48px; height: 48px; place-items: center; border-radius: 50%; color: var(--white); background: var(--blue); font-size: 1.2rem; font-weight: 900; }
.account-first-step p { margin: 4px 0 0; color: var(--muted); }
.account-first-step .button { text-decoration: none; }
.account-guidance ol { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.account-guidance li { display: grid; grid-template-columns: 60px 1fr; gap: 20px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.account-guidance li > span { color: var(--pink); font-weight: 900; }
.account-guidance p { margin: 3px 0 0; color: var(--muted); }
.account-form-columns { display: grid; grid-template-columns: repeat(2,1fr); gap: 18px; }
.account-local-nav { position: sticky; z-index: 20; top: 91px; display: flex; gap: 24px; width: min(100% - 32px,var(--content)); margin: 0 auto; padding: 16px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: rgba(255,255,255,.96); backdrop-filter: blur(10px); }
.account-local-nav a { color: var(--muted); font-size: .82rem; font-weight: 850; text-decoration: none; }
.account-local-nav a:hover { color: var(--blue); }
.account-simple-progress { display: grid; grid-template-columns: minmax(250px,.8fr) minmax(0,1.2fr); gap: 35px; width: min(100% - 32px,var(--content)); margin: 0 auto 20px; padding: 22px 25px; border: 1px solid var(--line); border-left: 5px solid var(--blue); border-radius: 9px; background: var(--surface); }
.account-simple-progress > div { display: grid; gap: 4px; }
.account-simple-progress > div span { color: var(--muted); font-size: .84rem; }
.account-simple-progress ol { display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: center; margin: 0; padding: 0; list-style: none; }
.account-simple-progress li { color: var(--muted); font-size: .82rem; font-weight: 800; }
.account-simple-progress li span { margin-right: 5px; }
.account-simple-progress li.is-done { color: #0e5b35; }
.account-editor { display: grid; grid-template-columns: minmax(240px,.65fr) minmax(0,1.35fr); gap: clamp(45px,8vw,120px); width: min(100% - 32px,var(--content)); margin: auto; padding: clamp(60px,8vw,105px) 0; }
.account-editor__intro { align-self: start; position: sticky; top: 175px; }
.account-editor__intro h2, .account-presences h2 { color: var(--navy); font-size: clamp(2rem,4vw,3.5rem); line-height: 1; letter-spacing: -.04em; }
.account-editor__intro p:last-child, .account-presences .account-section-heading p:last-child { color: var(--muted); }
.account-editor__forms { min-width: 0; }
.account-editor__forms > .account-editor__form--information { order: 1; margin-top: 0; padding-top: 0; border-top: 0; }
.account-editor__forms > #immagine { order: 2; }
.account-editor__forms > #galleria { order: 3; }
.account-editor__forms > #profilo-avanzato { order: 4; }
.account-editor__forms { display: flex; flex-direction: column; }
.account-editor__form { margin-top: 42px; padding-top: 42px; border-top: 1px solid var(--line); }
.merchant-image-form { display: grid; grid-template-columns: minmax(220px,.8fr) minmax(260px,1.2fr); gap: 30px; align-items: center; scroll-margin-top: 180px; }
.merchant-image-preview { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--surface); }
.merchant-image-preview img { width: 100%; height: 100%; object-fit: cover; animation: account-image-enter .35s both; }
.merchant-image-preview.is-empty { display: grid; place-items: center; border: 1px dashed #aebdce; }
.merchant-image-preview span { max-width: 180px; color: var(--muted); font-size: .83rem; font-weight: 750; text-align: center; }
.merchant-image-fields { display: grid; gap: 16px; }
.merchant-image-fields h3 { margin: 0 0 5px; color: var(--navy); font-size: 1.35rem; }
.merchant-image-fields p { margin: 0; color: var(--muted); font-size: .86rem; }
.merchant-image-fields label { display: grid; gap: 7px; }
.merchant-image-fields label > span { font-size: .82rem; font-weight: 850; }
.merchant-image-fields input:not([type=file]) { width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 7px; }
.merchant-image-fields input[type=file] { max-width: 100%; color: var(--muted); font-size: .82rem; }
.merchant-image-fields input[type=file]::file-selector-button { margin-right: 12px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 6px; color: var(--navy); background: var(--white); font-weight: 800; cursor: pointer; }
.merchant-image-fields button { min-height: 48px; border: 0; border-radius: 7px; color: var(--white); background: var(--navy); font-weight: 850; cursor: pointer; transition: background .2s ease,transform .2s ease; }
.merchant-image-fields button:hover { background: var(--blue); transform: translateY(-2px); }
.goods-picker { min-width: 0; margin: 20px 0 0; padding: 28px 0 0; border: 0; border-top: 1px solid var(--line); }
.goods-picker legend { padding: 0; color: var(--navy); font-size: 1.25rem; font-weight: 850; }
.goods-picker legend small { color: var(--muted); font-size: .75rem; font-weight: 600; }
.goods-picker > p { color: var(--muted); font-size: .86rem; }
.goods-picker > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 24px; max-height: 430px; overflow: auto; border-top: 1px solid var(--line); }
.goods-choice { display: grid !important; grid-template-columns: auto 1fr !important; gap: 10px !important; align-items: center; min-width: 0; padding: 12px 0; border-bottom: 1px solid var(--line); cursor: pointer; }
.goods-choice input { width: 18px; height: 18px; accent-color: var(--blue); }
.goods-choice span { display: grid; color: var(--ink); font-size: .88rem; font-weight: 750; }
.goods-choice span small { color: var(--muted); font-size: .68rem; font-weight: 600; }
.goods-choice--parent span { color: var(--navy); font-weight: 900; }
.account-presences { width: min(100% - 32px,var(--content)); margin: auto; padding: clamp(60px,8vw,105px) 0; border-top: 1px solid var(--line); }
.presence-lines { border-top: 1px solid var(--line); }
.presence-lines article { display: grid; grid-template-columns: 150px minmax(0,1fr) auto auto; gap: 28px; align-items: center; padding: 22px 0; border-bottom: 1px solid var(--line); }
.presence-lines article > div { display: grid; gap: 3px; }
.presence-lines span { color: var(--muted); font-size: .82rem; }
.review-state { padding: 6px 9px; border-radius: 999px; color: #8b5700 !important; background: #fff5d9; font-weight: 800; }
.deactivate-form { margin-top: 45px; padding-top: 20px; border-top: 1px solid var(--line); }
.deactivate-form button { border: 0; color: #ad174f; background: transparent; font-weight: 850; cursor: pointer; }
.merchant-gallery-editor { scroll-margin-top: 180px; }
.merchant-gallery-heading { display: flex; justify-content: space-between; gap: 25px; align-items: start; margin-bottom: 26px; }
.merchant-gallery-heading h3 { margin: 0 0 5px; color: var(--navy); font-size: 1.55rem; }
.merchant-gallery-heading p { margin: 0; color: var(--muted); }
.merchant-gallery-heading > strong { display: grid; min-width: 72px; color: var(--navy); font-size: 2rem; line-height: 1; text-align: right; }
.merchant-gallery-heading > strong small { margin-top: 5px; color: var(--muted); font-size: .68rem; font-weight: 700; }
.merchant-gallery-list { border-top: 1px solid var(--line); }
.merchant-gallery-list article { display: grid; grid-template-columns: minmax(180px,.7fr) minmax(230px,1.3fr); gap: 28px; padding: 24px 0; border-bottom: 1px solid var(--line); animation: account-image-enter .35s both; }
.merchant-gallery-list figure { aspect-ratio: 4 / 3; margin: 0; overflow: hidden; background: var(--surface); }
.merchant-gallery-list img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.merchant-gallery-list article:hover img { transform: scale(1.025); }
.merchant-gallery-meta { display: grid; gap: 13px; align-content: start; }
.merchant-gallery-meta .review-state { justify-self: start; }
.merchant-gallery-meta form { display: grid; gap: 7px; }
.merchant-gallery-meta label { display: grid; gap: 6px; font-size: .78rem; font-weight: 850; }
.merchant-gallery-meta input { width: 100%; min-height: 43px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 7px; }
.merchant-gallery-meta .text-button { justify-self: start; padding: 0; }
.gallery-remove { justify-self: start; padding: 0; border: 0; color: #ad174f; background: transparent; font-weight: 850; cursor: pointer; }
.merchant-gallery-upload { display: grid; grid-template-columns: minmax(180px,.7fr) minmax(230px,1.3fr); gap: 28px; margin-top: 28px; padding-top: 28px; border-top: 3px solid var(--blue); }
.gallery-plan-note { padding: 22px 0; border-top: 3px solid var(--yellow); border-bottom: 1px solid var(--line); color: var(--muted); }
.gallery-plan-note a { color: var(--blue); font-weight: 850; }
.public-merchant-gallery { display: grid; grid-template-columns: minmax(220px,.45fr) minmax(0,1.55fr); gap: clamp(35px,7vw,90px); width: min(100% - 32px,var(--content)); margin: auto; padding: clamp(65px,8vw,110px) 0; border-top: 1px solid var(--line); }
.public-merchant-gallery h2 { margin: 5px 0 0; color: var(--navy); font-size: clamp(2rem,4vw,3.6rem); line-height: 1; }
.public-merchant-gallery > div:last-child { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.public-merchant-gallery figure { aspect-ratio: 4 / 3; margin: 0; overflow: hidden; background: var(--surface); }
.public-merchant-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.public-merchant-gallery figure:hover img { transform: scale(1.025); }
.premium-profile { scroll-margin-top: 180px; }
.premium-profile > header { display: flex; justify-content: space-between; gap: 28px; align-items: start; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.premium-profile > header h3 { margin: 3px 0 7px; color: var(--navy); font-size: clamp(1.55rem,3vw,2.3rem); }
.premium-profile > header p { margin: 0; color: var(--muted); }
.premium-profile > header > span { flex: 0 0 auto; padding: 7px 10px; border-radius: 999px; color: var(--navy); background: #eaf6ff; font-size: .74rem; font-weight: 900; }
.premium-profile__locked { padding: 30px 0 4px; }
.premium-profile__locked strong { display: block; color: var(--navy); font-size: 1.15rem; }
.premium-profile__locked p { max-width: 620px; color: var(--muted); }
.premium-profile__locked a { color: var(--blue); font-weight: 850; }
.premium-profile > form { display: grid; gap: 32px; padding-top: 30px; }
.account-rich-heading { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 9px; color: var(--navy); font-size: .82rem; font-weight: 850; }
.account-rich-heading > span { color: var(--muted); font-size: .72rem; }
.account-rich-toolbar { display: flex; flex-wrap: wrap; gap: 5px; padding: 7px; border: 1px solid var(--line); border-bottom: 0; background: var(--surface); }
.account-rich-toolbar button { padding: 6px 9px; border: 1px solid var(--line); border-radius: 5px; color: var(--navy); background: #fff; font: inherit; font-size: .75rem; cursor: pointer; }
.account-rich-toolbar button:hover { border-color: var(--blue); color: var(--blue); }
.account-rich-editor, .account-rich-field > textarea { width: 100%; min-height: 310px; padding: 22px; border: 1px solid var(--line); border-radius: 0 0 7px 7px; background: #fff; resize: vertical; }
.account-rich-editor:focus { outline: 3px solid #ffb000; outline-offset: 2px; }
.account-rich-field.is-enhanced > textarea { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); }
.premium-contacts { margin: 0; padding: 26px 0 0; border: 0; border-top: 1px solid var(--line); }
.premium-contacts legend { padding: 0; color: var(--navy); font-size: 1.15rem; font-weight: 900; }
.premium-contacts > p { margin: 5px 0 20px; color: var(--muted); font-size: .82rem; }
.premium-contacts label { display: grid; gap: 6px; color: var(--ink); font-size: .78rem; font-weight: 850; }
.premium-contacts input { width: 100%; min-height: 44px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 7px; }
.merchant-contact-rail { display: flex; flex-wrap: wrap; gap: 0; width: min(100% - 32px,var(--content)); margin: 0 auto clamp(40px,6vw,75px); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.merchant-contact-rail > span, .merchant-contact-rail a { padding: 18px 22px; }
.merchant-contact-rail > span { padding-left: 0; color: var(--muted); font-size: .76rem; font-weight: 850; text-transform: uppercase; }
.merchant-contact-rail a { display: flex; gap: 16px; border-left: 1px solid var(--line); color: var(--navy); font-weight: 850; text-decoration: none; transition: color .2s ease,background .2s ease; }
.merchant-contact-rail a:hover { color: var(--blue); background: var(--surface); }
.merchant-contact-rail a span { transition: transform .2s ease; }
.merchant-contact-rail a:hover span { transform: translate(2px,-2px); }
.offer-workspace, .offer-editor { width: min(100% - 32px,var(--content)); margin: auto; padding: clamp(55px,7vw,90px) 0; }
.account-offer-lines { border-top: 1px solid var(--line); }
.account-offer-lines article { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 28px; align-items: center; padding: 24px 0; border-bottom: 1px solid var(--line); }
.account-offer-lines article > div { display: grid; gap: 6px; }
.account-offer-lines article > div:last-child { justify-items: end; }
.account-offer-lines article small { color: var(--muted); }
.offer-state--pubblicata { color: #0e5b35 !important; background: #e6f6ed; }
.offer-state--rifiutata { color: #8b1747 !important; background: #ffebf2; }
.offer-editor { max-width: 980px; }
.offer-editor > form:first-of-type { display: grid; gap: 34px; }
.offer-editor label { display: grid; gap: 7px; color: var(--ink); font-size: .79rem; font-weight: 850; }
.offer-editor input, .offer-editor textarea, .offer-editor select { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); background: #fff; font: inherit; }
.offer-editor textarea { resize: vertical; }
.offer-editor__lead { display: grid; gap: 22px; }
.offer-editor__lead input { min-height: 58px; color: var(--navy); font-size: 1.25rem; font-weight: 850; }
.offer-price-line { display: grid; grid-template-columns: 1fr 1fr auto; gap: 18px; align-items: end; padding: 28px 0; border-top: 3px solid var(--pink); border-bottom: 1px solid var(--line); }
.offer-price-line output { min-width: 150px; padding-bottom: 13px; color: #0e6d46; font-weight: 900; }
.offer-placement, .offer-conditions { margin: 0; padding: 28px 0 0; border: 0; border-top: 1px solid var(--line); }
.offer-placement { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.offer-placement legend { padding: 0; color: var(--navy); font-size: 1.2rem; font-weight: 900; }
.offer-placement > p { grid-column: 1 / -1; margin: -10px 0 0; color: var(--muted); font-size: .82rem; }
.offer-image { padding-top: 30px; border-top: 1px solid var(--line); }
.offer-editor__actions { display: flex; justify-content: flex-end; gap: 12px; padding-top: 20px; border-top: 1px solid var(--line); }
.offer-editor__actions button { min-height: 48px; padding: 10px 20px; border: 0; border-radius: 7px; color: #fff; background: var(--navy); font-weight: 850; cursor: pointer; }
.offer-editor__actions .button-secondary { border: 1px solid var(--navy); color: var(--navy); background: #fff; }
.offer-catalog-hero > strong { display: grid; color: var(--pink); font-size: clamp(3rem,7vw,6rem); line-height: .8; text-align: right; }
.offer-catalog-hero > strong small { margin-top: 14px; color: var(--muted); font-size: .75rem; }
.public-offer-list { width: min(100% - 32px,var(--content)); margin: auto; padding: 0 0 clamp(80px,10vw,140px); border-top: 1px solid var(--line); }
.public-offer-list > a { display: grid; grid-template-columns: 220px minmax(0,1fr) auto; gap: clamp(24px,5vw,65px); align-items: center; padding: 22px 0; border-bottom: 1px solid var(--line); color: inherit; text-decoration: none; }
.public-offer-list figure { aspect-ratio: 4 / 3; margin: 0; overflow: hidden; background: var(--surface); }
.public-offer-list figure img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.public-offer-list figure.is-empty { display: grid; place-items: center; color: var(--blue); font-size: 3rem; font-weight: 900; }
.public-offer-list > a:hover figure img { transform: scale(1.025); }
.public-offer-list h2 { margin: 4px 0; color: var(--navy); font-size: clamp(1.35rem,2.6vw,2.25rem); }
.public-offer-list p, .public-offer-list span, .public-offer-list small { color: var(--muted); }
.public-offer-list p { margin: 0; font-size: .75rem; font-weight: 850; text-transform: uppercase; }
.public-offer-list aside { display: grid; gap: 8px; min-width: 135px; justify-items: end; }
.public-offer-list aside strong { color: var(--pink); font-size: 1.45rem; }
.public-offer-list aside b { color: var(--blue); font-size: 1.5rem; transition: transform .2s ease; }
.public-offer-list > a:hover aside b { transform: translateX(5px); }
.offer-detail { width: min(100% - 32px,var(--content)); margin: auto; padding: 35px 0 clamp(90px,10vw,150px); }
.offer-detail > header { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(230px,.55fr); gap: clamp(35px,8vw,110px); padding-bottom: clamp(45px,7vw,85px); }
.offer-detail h1 { margin: 8px 0 18px; color: var(--navy); font-size: clamp(2.8rem,7vw,6.8rem); line-height: .93; }
.offer-detail > header > div > p:last-child { max-width: 680px; color: var(--muted); font-size: 1.08rem; }
.offer-detail > header aside { display: grid; align-content: end; justify-items: end; }
.offer-detail > header del { color: var(--muted); font-size: 1.1rem; }
.offer-detail > header strong { color: var(--pink); font-size: clamp(2.4rem,5vw,4.8rem); }
.offer-detail > header span { margin-top: 8px; color: var(--muted); }
.offer-detail > figure { max-height: 720px; margin: 0; overflow: hidden; }
.offer-detail > figure img { width: 100%; height: 100%; max-height: 720px; object-fit: cover; }
.offer-detail > section { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: clamp(40px,8vw,120px); padding-top: 55px; }
.offer-detail > section h2, .offer-detail > section h3 { color: var(--navy); }
.offer-detail > section aside { display: grid; gap: 12px; align-content: start; padding-top: 8px; border-top: 3px solid var(--yellow); }
.offer-detail > section aside > a:not(.button) { color: var(--navy); font-size: 1.25rem; font-weight: 900; }
.public-merchant-offers { width: min(100% - 32px,var(--content)); margin: auto; padding: clamp(65px,8vw,100px) 0; border-top: 1px solid var(--line); }
.public-merchant-offers header { display: flex; justify-content: space-between; align-items: end; margin-bottom: 28px; }
.public-merchant-offers h2 { margin: 5px 0 0; color: var(--navy); font-size: clamp(2rem,4vw,3.4rem); }
.public-merchant-offers > div { border-top: 1px solid var(--line); }
.public-merchant-offers a { display: grid; grid-template-columns: 120px minmax(0,1fr) auto 30px; gap: 20px; align-items: center; padding: 20px 0; border-bottom: 1px solid var(--line); color: inherit; text-decoration: none; }
.public-merchant-offers a > span { color: var(--muted); font-size: .78rem; }
.public-merchant-offers a > b { color: var(--pink); }
.public-merchant-offers a > i { color: var(--blue); font-style: normal; transition: transform .2s ease; }
.public-merchant-offers a:hover > i { transform: translateX(5px); }
.analytics-workspace { width: min(100% - 32px,var(--content)); margin: auto; padding: clamp(45px,7vw,90px) 0 clamp(85px,10vw,145px); }
.analytics-locked { max-width: 780px; padding: clamp(48px,7vw,85px) 0; border-top: 4px solid var(--yellow); border-bottom: 1px solid var(--line); }
.analytics-locked h2 { max-width: 720px; margin: 8px 0 18px; color: var(--navy); font-size: clamp(2.2rem,5vw,4.5rem); line-height: .98; }
.analytics-locked > p:not(.eyebrow) { max-width: 650px; color: var(--muted); }
.analytics-locked .button { display: inline-flex; margin-top: 18px; }
.analytics-periods { display: flex; align-items: center; gap: 8px; padding-bottom: 25px; border-bottom: 1px solid var(--line); }
.analytics-periods span { margin-right: 10px; color: var(--muted); font-size: .75rem; font-weight: 850; text-transform: uppercase; }
.analytics-periods a { padding: 8px 12px; border-radius: 999px; color: var(--navy); font-size: .82rem; font-weight: 850; text-decoration: none; }
.analytics-periods a[aria-current="page"] { color: #fff; background: var(--navy); }
.analytics-totals { display: grid; grid-template-columns: repeat(4,1fr); padding: clamp(36px,6vw,70px) 0; border-bottom: 1px solid var(--line); }
.analytics-totals > div { display: grid; gap: 3px; }
.analytics-totals > div:not(:first-child) { padding-left: clamp(20px,4vw,55px); border-left: 1px solid var(--line); }
.analytics-totals span,.analytics-totals small { color: var(--muted); }
.analytics-totals span { font-size: .75rem; font-weight: 900; text-transform: uppercase; }
.analytics-totals strong { color: var(--navy); font-size: clamp(2.8rem,7vw,6.3rem); line-height: .95; }
.analytics-trend { padding: clamp(55px,7vw,90px) 0; border-bottom: 1px solid var(--line); }
.analytics-trend > header { display: flex; justify-content: space-between; gap: 30px; align-items: end; margin-bottom: 42px; }
.analytics-trend h2,.analytics-depth h2,.analytics-offers h2 { margin: 5px 0 0; color: var(--navy); font-size: clamp(1.8rem,4vw,3.3rem); }
.analytics-trend > header > p { max-width: 380px; margin: 0; color: var(--muted); font-size: .82rem; }
.analytics-bars { display: flex; gap: clamp(2px,.45vw,7px); height: 250px; align-items: end; border-bottom: 1px solid var(--line); }
.analytics-bars > div { position: relative; display: flex; flex: 1; height: 100%; align-items: end; }
.analytics-bars i { position: relative; display: block; width: 100%; height: var(--views); min-height: 2px; background: var(--blue); transform-origin: bottom; animation: analytics-rise .55s both; }
.analytics-bars i::after { position: absolute; right: 0; bottom: 0; left: 0; height: var(--actions); content: ""; background: var(--pink); }
.analytics-bars i::before { position: absolute; right: 0; bottom: var(--actions); left: 0; height: var(--scans); content: ""; background: var(--yellow); }
.analytics-bars span { position: absolute; bottom: -25px; color: var(--muted); font-size: .68rem; white-space: nowrap; }
.analytics-bars > div:last-child span { right: 0; }
.analytics-depth { display: grid; grid-template-columns: 1.35fr .65fr; gap: clamp(45px,8vw,110px); padding: clamp(65px,8vw,105px) 0; border-bottom: 1px solid var(--line); }
.analytics-depth ol { margin: 32px 0 0; padding: 0; list-style: none; }
.analytics-depth li { display: grid; grid-template-columns: 145px minmax(0,1fr) 55px; gap: 15px; align-items: center; padding: 13px 0; border-top: 1px solid var(--line); }
.analytics-depth li i { height: 7px; background: linear-gradient(90deg,var(--blue) var(--share),var(--surface) var(--share)); }
.analytics-depth li strong { text-align: right; }
.analytics-depth dl { margin-top: 32px; }
.analytics-depth dl > div { display: flex; justify-content: space-between; padding: 15px 0; border-top: 1px solid var(--line); }
.analytics-depth dt { color: var(--muted); }
.analytics-depth dd { margin: 0; color: var(--navy); font-weight: 900; }
.analytics-offers { padding: clamp(65px,8vw,105px) 0; border-bottom: 1px solid var(--line); }
.analytics-offers > div { margin-top: 28px; border-top: 1px solid var(--line); }
.analytics-offers article { display: grid; grid-template-columns: minmax(0,1fr) 170px 120px; gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.analytics-offers article span { color: var(--muted); font-size: .82rem; }
.analytics-upgrade { display: grid; grid-template-columns: 180px minmax(0,1fr) auto; gap: 25px; align-items: center; padding: 27px 0; border-top: 3px solid var(--yellow); border-bottom: 1px solid var(--line); }
.analytics-upgrade span { color: var(--muted); }
.analytics-upgrade a { color: var(--blue); font-weight: 900; }
.analytics-privacy { max-width: 760px; padding-top: 45px; }
.analytics-privacy strong { color: var(--navy); }
.analytics-privacy p,.analytics-empty { color: var(--muted); }
.qr-workspace { width: min(100% - 32px,var(--content)); margin: auto; padding: clamp(45px,7vw,85px) 0 clamp(90px,10vw,145px); }
.qr-locked { max-width: 800px; padding: clamp(48px,7vw,85px) 0; border-top: 4px solid var(--yellow); border-bottom: 1px solid var(--line); }
.qr-locked h2 { max-width: 720px; margin: 8px 0 18px; color: var(--navy); font-size: clamp(2.2rem,5vw,4.5rem); line-height: .98; }
.qr-locked > p:not(.eyebrow) { max-width: 660px; color: var(--muted); }
.qr-locked .button { display: inline-flex; margin-top: 18px; }
.qr-stage { display: grid; grid-template-columns: minmax(330px,.85fr) minmax(0,1.15fr); gap: clamp(45px,8vw,120px); align-items: center; padding-bottom: clamp(65px,8vw,105px); border-bottom: 1px solid var(--line); }
.qr-stage__visual { display: grid; justify-items: center; padding: clamp(28px,4vw,48px); color: #fff; background: var(--navy); animation: qr-enter .45s both; }
.qr-stage__visual [data-qr-code] { width: min(100%,420px); padding: 18px; background: #fff; }
.qr-stage__visual svg { display: block; width: 100%; height: auto; }
.qr-stage__visual > span { margin-top: 22px; color: rgba(255,255,255,.68); font-size: .72rem; font-weight: 850; letter-spacing: .12em; text-transform: uppercase; }
.qr-stage__visual > strong { margin-top: 4px; font-size: clamp(1.2rem,2.5vw,2rem); text-align: center; }
.qr-stage__controls h2 { margin: 6px 0 16px; color: var(--navy); font-size: clamp(2.5rem,5vw,4.8rem); line-height: .95; }
.qr-stage__controls > p:not(.eyebrow) { max-width: 590px; color: var(--muted); }
.qr-short-link { display: flex; margin: 28px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.qr-short-link code { flex: 1; overflow: hidden; padding: 17px 0; text-overflow: ellipsis; }
.qr-short-link button { padding: 0 15px; border: 0; color: var(--blue); background: transparent; font-weight: 900; cursor: pointer; }
.qr-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 25px; }
.qr-actions button,.qr-destination form > button { min-height: 46px; padding: 10px 18px; border: 1px solid var(--navy); border-radius: 7px; color: #fff; background: var(--navy); font: inherit; font-weight: 850; cursor: pointer; }
.qr-actions .button-secondary { color: var(--navy); background: #fff; }
.qr-actions .text-button { border-color: transparent; color: var(--blue); background: transparent; }
.qr-destination { padding: clamp(60px,8vw,100px) 0; border-bottom: 1px solid var(--line); }
.qr-destination > header { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px,8vw,110px); align-items: end; margin-bottom: 34px; }
.qr-destination h2 { margin: 5px 0 0; color: var(--navy); font-size: clamp(2rem,4vw,3.5rem); }
.qr-destination > header > p { margin: 0; color: var(--muted); }
.qr-destination form { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 15px; align-items: end; max-width: 840px; }
.qr-destination label { display: grid; gap: 7px; color: var(--navy); font-size: .8rem; font-weight: 850; }
.qr-destination select { width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 7px; background: #fff; font: inherit; }
.qr-destination__fixed { display: grid; gap: 5px; grid-column: 1 / -1; padding: 20px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.qr-destination__fixed span { color: var(--muted); word-break: break-all; }
.qr-guidance { display: grid; grid-template-columns: repeat(3,1fr); padding-top: 40px; }
.qr-guidance > div { display: grid; gap: 5px; padding-right: 28px; }
.qr-guidance > div:not(:first-child) { padding-left: 28px; border-left: 1px solid var(--line); }
.qr-guidance span { color: var(--muted); font-size: .82rem; }
@keyframes qr-enter { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: scale(1); } }
@keyframes analytics-rise { from { transform: scaleY(0); opacity: .4; } to { transform: scaleY(1); opacity: 1; } }
@keyframes account-image-enter { from { opacity: 0; transform: scale(1.025); } to { opacity: 1; transform: scale(1); } }

.foundation { width: min(100% - 32px, var(--content)); margin: auto; padding: clamp(72px, 9vw, 125px) 0; }
.section-heading { max-width: 720px; margin-bottom: 52px; }
.foundation-list { margin: 0; padding: 0; border-top: 1px solid var(--line); list-style: none; }
.foundation-list li { display: grid; grid-template-columns: 70px 1fr; gap: 20px; padding: 30px 0; border-bottom: 1px solid var(--line); }
.foundation-list li > div { transition: transform .2s ease; }
.foundation-list li:hover > div { transform: translateX(6px); }
.foundation-list li > span { color: var(--pink); font-weight: 900; }
.foundation-list strong { display: block; margin-bottom: 5px; font-size: 1.16rem; }
.foundation-list p { max-width: 700px; margin: 0; color: var(--muted); }

.next-step { padding: clamp(70px, 10vw, 130px) max(16px, calc((100% - var(--content)) / 2)); background: var(--surface); }
.next-step h2 { max-width: 900px; }
.next-step > p:last-child { max-width: 680px; color: var(--muted); font-size: 1.08rem; }
.error-page { width: min(100% - 32px, 760px); min-height: 65vh; margin: auto; padding: 100px 0; }
.error-page p { color: var(--muted); }
.error-page .button { display: inline-flex; align-items: center; margin-top: 20px; }
.button { transition: background-color .2s ease, transform .2s ease; }
.button:hover { background: var(--blue); transform: translateY(-2px); }

.site-footer { display: flex; justify-content: space-between; gap: 30px; padding: 45px max(16px, calc((100% - var(--content)) / 2)); color: rgba(255,255,255,.75); background: #031c3a; }
.site-footer p { margin: 5px 0 0; }
.footer-links { display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: center; }
.footer-links a { color: rgba(255,255,255,.82); }

@keyframes hero-enter { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 760px) {
    .header-inner { min-height: 70px; }
    .brand img { width: 82px; }
    .site-header nav { display: none; }
    .header-action { margin-left: auto; padding: 8px 11px; }
    .hero { background-position: 62% center; }
    .search-shell { grid-template-columns: 1fr; }
    .search-shell button { align-self: stretch; }
    .trust-strip { grid-template-columns: 1fr; }
    .trust-strip p, .trust-strip p:first-child { border-right: 0; border-left: 0; border-bottom: 1px solid var(--line); }
    .region-list, .municipality-list { grid-template-columns: 1fr; }
    .region-list a:nth-child(odd), .municipality-list > :not(:nth-child(3n)) { margin-right: 0; }
    .market-row { grid-template-columns: 1fr auto; gap: 14px; }
    .market-row__schedule, .market-row__status { grid-column: 1; }
    .market-row__arrow { grid-column: 2; grid-row: 1 / span 3; }
    .market-hero { grid-template-columns: 1fr; }
    .preview-banner { grid-template-columns: 1fr; }
    .preview-banner a { justify-self: start; }
    .territory-story { grid-template-columns: 1fr; }
    .territory-visual { position: static; order: -1; }
    .catalog-hero { align-items: flex-start; flex-direction: column; }
    .goods-feature, .goods-hero { grid-template-columns: 1fr; }
    .goods-feature.is-reversed figure { order: 0; }
    .goods-feature > div { grid-template-columns: 40px minmax(0,1fr); }
    .goods-children > div:last-child { grid-template-columns: 1fr; }
    .goods-children a:not(:nth-child(3n)) { margin-right: 0; }
    .merchant-search form { grid-template-columns: 1fr; }
    .merchant-lines a, .merchant-presence-list li { grid-template-columns: 1fr; gap: 7px; }
    .merchant-auth { grid-template-columns: 1fr; }
    .merchant-auth__visual { min-height: 260px; }
    .merchant-auth__content { padding: 48px 16px 70px; }
    .account-header, .account-section-heading, .account-profile-list article { align-items: flex-start; flex-direction: column; }
    .account-activity-card { display: flex !important; }
    .account-activity-card__action { width: 100%; justify-items: start; }
    .account-activity-card__action .button { width: 100%; }
    .account-first-step,.account-simple-progress { grid-template-columns: 1fr; }
    .account-first-step > span { width: 42px; height: 42px; }
    .account-activity-table-wrap { overflow: visible; }
    .account-activity-table,.account-activity-table tbody,.account-activity-table tr,.account-activity-table td { display: block; width: 100%; }
    .account-activity-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .account-activity-table tr { padding: 18px 0; border-top: 1px solid var(--line); }
    .account-activity-table tbody tr:first-child { border-top: 0; }
    .account-activity-table td,.account-activity-table td:first-child,.account-activity-table td:last-child { display: grid; grid-template-columns: 105px minmax(0,1fr); gap: 14px; padding: 9px 0; border: 0; text-align: left; }
    .account-activity-table td::before { color: var(--muted); content: attr(data-label); font-size: .68rem; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
    .account-activity-table td > strong,.account-activity-table td > small,.account-activity-table td > span,.account-activity-table td > time,.account-activity-table td > nav { grid-column: 2; }
    .account-activity-table td > small { margin-top: -8px; }
    .account-row-actions { justify-content: flex-start; flex-wrap: wrap; }
    .account-row-actions a { min-height: 44px; padding: 10px 13px; }
    .account-plan-status { grid-template-columns: 1fr; }
    .account-plan-status dl { grid-template-columns: 1fr; }
    .account-plan-status dl > div { padding: 12px 0; border-left: 0; border-bottom: 1px solid var(--line); }
    .account-plan-change form { grid-template-columns: 1fr; }
    .account-plan-change button { grid-column: 1; }
    .registration-plan-line span { display: grid; gap: 2px; }
    .plans-hero { min-height: calc(100svh - 70px); background-position: 62% center; }
    .plans-hero__inner h1 { max-width: 560px; font-size: clamp(2.8rem,13vw,4.7rem); }
    .plans-intro, .plan-comparison > header, .plan-qr, .plan-definitions, .plan-details > header, .plan-safety, .plan-principles { grid-template-columns: 1fr; gap: 22px; }
    .plan-columns { grid-template-columns: 1fr; }
    .plan-column__heading { min-height: 0; }
    .plan-column__audience { min-height: 0; }
    .plan-details > article { grid-template-columns: 1fr; gap: 20px; }
    .plan-details__limits { grid-template-columns: 1fr; }
    .plan-details__limits span + span { padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
    .plan-qr li { grid-template-columns: 38px 1fr; }
    .plan-qr li small { grid-column: 2; }
    .plans-final { align-items: flex-start; flex-direction: column; }
    .account-profile-list__actions { justify-items: start; text-align: left; }
    .account-form-columns { grid-template-columns: 1fr; }
    .account-local-nav { top: 70px; overflow-x: auto; }
    .account-editor { grid-template-columns: 1fr; }
    .account-editor__intro { position: static; }
    .merchant-image-form { grid-template-columns: 1fr; }
    .merchant-gallery-list article, .merchant-gallery-upload, .public-merchant-gallery { grid-template-columns: 1fr; }
    .public-merchant-gallery > div:last-child { grid-template-columns: 1fr; }
    .premium-profile > header { flex-direction: column; }
    .merchant-contact-rail { display: grid; grid-template-columns: 1fr 1fr; }
    .merchant-contact-rail > span { grid-column: 1 / -1; padding-left: 0; }
    .merchant-contact-rail a:nth-of-type(odd) { border-left: 0; }
    .account-offer-lines article, .offer-detail > header, .offer-detail > section { grid-template-columns: 1fr; }
    .account-offer-lines article > div:last-child, .offer-detail > header aside { justify-items: start; }
    .offer-price-line, .offer-placement { grid-template-columns: 1fr; }
    .offer-price-line output, .offer-placement > p { grid-column: 1; }
    .offer-editor__actions { align-items: stretch; flex-direction: column; }
    .public-offer-list > a { grid-template-columns: 96px minmax(0,1fr); gap: 18px; }
    .public-offer-list aside { grid-column: 2; justify-items: start; }
    .offer-catalog-hero > strong { text-align: left; }
    .public-merchant-offers a { grid-template-columns: 1fr auto; }
    .public-merchant-offers a > span { grid-column: 1 / -1; }
    .analytics-totals { grid-template-columns: 1fr; }
    .analytics-totals > div,.analytics-totals > div:not(:first-child) { padding: 22px 0; border-left: 0; border-bottom: 1px solid var(--line); }
    .analytics-trend > header { align-items: flex-start; flex-direction: column; }
    .analytics-bars { height: 190px; }
    .analytics-depth { grid-template-columns: 1fr; }
    .analytics-offers article { grid-template-columns: 1fr 1fr; }
    .analytics-offers article strong { grid-column: 1 / -1; }
    .analytics-upgrade { grid-template-columns: 1fr; }
    .qr-stage,.qr-destination > header { grid-template-columns: 1fr; }
    .qr-destination form { grid-template-columns: 1fr; }
    .qr-guidance { grid-template-columns: 1fr; }
    .qr-guidance > div,.qr-guidance > div:not(:first-child) { padding: 18px 0; border-left: 0; border-bottom: 1px solid var(--line); }
    .goods-picker > div { grid-template-columns: 1fr; max-height: 520px; }
    .presence-lines article { grid-template-columns: 1fr; gap: 8px; }
    .site-footer { flex-direction: column; }
}

@media (max-width: 460px) {
    .plan-column__heading { grid-template-columns: 1fr; }
    .plan-column__price,.is-recommended .plan-column__price { justify-items: start; width: 100%; margin-top: 0; text-align: left; }
    .plan-column__limits { grid-template-columns: 1fr; }
    .plan-column__limits > div + div { border-top: 1px solid #cbd9e8; border-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

@media print {
    .site-header,.site-footer,.account-header,.qr-stage__controls,.qr-destination,.qr-guidance,.qr-workspace > .account-alert { display: none !important; }
    .qr-workspace,.qr-stage { width: 100%; padding: 0; border: 0; }
    .qr-stage { display: block; }
    .qr-stage__visual { width: 170mm; margin: 20mm auto 0; color: #062c5c; background: #fff; }
    .qr-stage__visual > span { color: #52677f; }
}
.home-day-links span { color: inherit; opacity: 1; font-size: inherit; }
@media (min-width: 761px) and (max-width: 1100px) {
    .header-inner { flex-wrap: wrap; gap: 12px 20px; padding-bottom: 12px; }
    .site-header nav { order: 3; width: 100%; flex-wrap: wrap; justify-content: center; gap: 12px 20px; }
    .header-action { margin-left: auto; }
}
/* Geographic calendar: reuses the home controls without changing the hero. */
.day-hub .page-hero { padding-top: 36px; padding-bottom: 24px; }
.day-hub h1 { font-size: clamp(2rem, 4vw, 3.6rem); }
.day-hub .day-tabs { flex-wrap: wrap; overflow: visible; }
.calendar-filters, .calendar-geography { width: min(100% - 32px, var(--content)); margin: 28px auto 0; }
.calendar-filters { padding: 18px 20px; border: 1px solid #d9e8f6; border-radius: 10px; background: #f1f8ff; }
.calendar-filters__heading { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.calendar-filters__icon { flex: 0 0 36px; width: 36px; height: 36px; color: #0069da; }
.calendar-filters__heading h2 { margin: 0 0 3px; font-size: clamp(1.15rem, 2vw, 1.45rem); line-height: 1.25; letter-spacing: -.025em; }
.calendar-filters__heading p { margin: 0; color: var(--muted); font-size: .9rem; line-height: 1.4; }
.calendar-filters__locality-label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.calendar-filters__locality { position: relative; }
.calendar-filters__locality svg { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); width: 19px; height: 19px; color: var(--muted); pointer-events: none; }
.calendar-filters .calendar-filters__locality input { padding-left: 40px; }
.calendar-filters .calendar-search { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr) minmax(0, 1fr) 160px; gap: 16px; align-items: end; }
.calendar-filters .home-search-field { min-width: 0; }
.calendar-filters .calendar-search :is(input, select, button) { min-height: 46px; height: 46px; border-radius: 7px; }
.calendar-filters .calendar-search :is(input, select) { border-color: #d4e1ef; background-color: var(--white); }
.calendar-filters .calendar-search button { width: 100%; padding: 0 14px; white-space: nowrap; background: var(--navy); }
.calendar-filters .calendar-search button:hover { background: var(--blue); }
.calendar-search input { font-size: 14px; padding-right: 12px; }
.calendar-search select { font-size: 14px; }
.calendar-reset { display: inline-block; margin-top: 14px; font-size: .85rem; }
.calendar-geography h2, .calendar-results h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); }
.calendar-place-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0 24px; padding: 0; list-style: none; }
.calendar-place-grid a { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 64px; border-bottom: 1px solid var(--line); text-decoration: none; font-size: .9rem; }
.calendar-place-grid strong { overflow-wrap: anywhere; }
.calendar-place-grid span { color: var(--muted); white-space: nowrap; font-size: .78rem; }
.calendar-place-grid a:hover { color: var(--blue); }
.calendar-geography summary { cursor: pointer; padding: 12px 0; }
.calendar-results { padding-top: 40px; }
.calendar-pagination { justify-content: center; flex-wrap: wrap; margin: 28px auto 0; }
.calendar-pagination a, .calendar-pagination span { padding: 12px; }
.calendar-pagination span { opacity: 1; }
.day-hub :is(input, select, button, a, summary):focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }
@media (max-width: 1100px) {
    .calendar-filters .calendar-search { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .calendar-search button { grid-column: auto; }
    .calendar-place-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .calendar-filters .calendar-search, .calendar-place-grid { grid-template-columns: minmax(0, 1fr); }
    .calendar-filters { padding: 16px; }
    .day-hub .day-tabs a { padding: 12px; }
    .calendar-pagination { gap: 4px; }
}
/* Compact photographic hero, scoped to national weekday archives. */
.national-day-hero { position: relative; isolation: isolate; background: var(--surface); }
.national-day-hero__content { position: relative; width: min(100% - 32px, var(--content)); margin: auto; padding: 20px 0 24px; }
.national-day-hero .breadcrumbs { width: 100%; margin: 0; }
.day-hub .national-day-hero .page-hero { width: 65%; margin: 0; padding: 22px 0 18px; }
.national-day-hero .eyebrow { margin: 0 0 12px; }
.day-hub .national-day-hero h1 { margin: 0 0 14px; font-size: clamp(2rem, 3.5vw, 3.15rem); line-height: 1.1; letter-spacing: -.045em; text-wrap: balance; }
.national-day-hero .page-hero > p:last-child { max-width: 650px; margin: 0; font-size: 1rem; line-height: 1.6; }
.national-day-hero__image { position: absolute; z-index: -1; inset: 0 0 0 54%; overflow: hidden; }
.national-day-hero__image img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: 65% center; }
.national-day-hero__image::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--surface), rgba(246,249,253,.92) 10%, rgba(246,249,253,.3) 36%, transparent 62%); }
.day-hub .national-day-hero .day-tabs { width: 70%; margin: 0; gap: 6px; padding: 4px; }
.national-day-hero .day-tabs a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 9px 12px; background: var(--white); transition: background-color .15s ease, color .15s ease; }
.national-day-hero .day-tabs a:hover, .national-day-hero .day-tabs a.is-active { background: var(--navy); color: var(--white); }
@media (max-width: 1000px) {
    .day-hub .national-day-hero .page-hero { width: 75%; }
    .day-hub .national-day-hero .day-tabs { width: 100%; }
    .national-day-hero__image { left: 60%; opacity: .35; }
}
@media (max-width: 600px) {
    .national-day-hero__content { padding-top: 18px; padding-bottom: 18px; }
    .day-hub .national-day-hero .page-hero { width: 100%; padding-top: 20px; }
    .day-hub .national-day-hero h1 { font-size: clamp(1.85rem, 7.8vw, 2.4rem); }
    .national-day-hero .page-hero > p:last-child { font-size: .95rem; }
    .national-day-hero__image { inset: auto 0 0; height: 115px; opacity: .18; }
    .national-day-hero__image::after { background: linear-gradient(180deg, var(--surface), transparent); }
    .day-hub .national-day-hero .day-tabs { gap: 6px; }
    .day-hub .national-day-hero .day-tabs a { padding: 9px 11px; }
}
@media (prefers-reduced-motion: reduce) {
    .national-day-hero .day-tabs a { transition: none; }
}
/* Reusable geographic map; navigation is provided by native links. */
.regions-intro { padding-bottom: 20px; }
.regions-map-section { padding-top: 20px; }
.italy-map-layout { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 32px; align-items: start; margin-top: 16px; }
.italy-map-figure { position: relative; min-width: 0; }
.italy-map-figure svg { display: block; width: 100%; height: auto; max-height: 590px; }
.italy-map-layout--compact .italy-map-figure svg { max-height: 490px; }
.day-hub:has(.italy-map-layout) .calendar-results { padding-top: 24px; }
.italy-map-region { fill: #e5eff8; stroke: #073a72; stroke-width: 1.5; stroke-linejoin: round; }
.italy-map-detail { pointer-events: none; stroke: #073a72; stroke-width: 1; }
.italy-map-figure a { cursor: pointer; }
.italy-map-figure a:is(:hover, .is-highlighted) .italy-map-region { fill: #b4d4ee; stroke: #04274f; stroke-width: 2; }
.italy-map-figure svg a:focus:not(:focus-visible) { outline: none; }
/* Replace only the SVG link's rectangular outline with a region-shaped keyboard indicator. */
.italy-map-figure svg a:focus-visible { outline: none; }
.italy-map-figure svg a:focus-visible .italy-map-region { fill: #b4d4ee; stroke: #04274f; stroke-width: 3; vector-effect: non-scaling-stroke; }
.italy-map-figure a:is(:active, [aria-current="page"]) .italy-map-region { fill: #073a72; }
.italy-map-tooltip { position: fixed; z-index: 100; width: max-content; max-width: min(230px, calc(100vw - 16px)); padding: 10px 13px; border-radius: 7px; background: #073a72; color: #fff; font-size: .83rem; line-height: 1.45; white-space: pre-line; box-shadow: 0 4px 16px #0d1b3226; overflow-wrap: anywhere; }
.italy-map-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; margin: 0; padding: 0; list-style: none; }
.italy-map-list a { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 49px; padding: 9px 4px; border-bottom: 1px solid #e8edf3; text-decoration: none; }
.italy-map-list strong { font-size: .86rem; font-weight: 650; overflow-wrap: anywhere; }
.italy-map-list span { flex-shrink: 0; font-size: .75rem; }
.italy-map-list .map-count--empty { color: #788596; font-weight: 400; }
.italy-map-list .map-count--available { color: #073a72; font-weight: 750; }
.italy-map-list a:is(:hover, .is-highlighted, [aria-current="page"]) { color: #0758b7; background: #eef5ff; }
.italy-map-list a:focus-visible { outline: 3px solid #0758b7; outline-offset: 3px; }
@media (max-width: 1100px) {
    .italy-map-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .italy-map-figure { width: min(100%, 410px); margin-inline: auto; }
}
@media (max-width: 600px) {
    .italy-map-list { grid-template-columns: minmax(0, 1fr); }
    .italy-map-list a { min-height: 48px; }
    .italy-map-figure { width: 100%; }
    .italy-map-figure svg, .italy-map-layout--compact .italy-map-figure svg { max-height: 400px; }
}

/* Discovery cards belong only to the shared calendar page. */
.calendar-discover { width: min(100% - 32px, var(--content)); margin: 42px auto; }
.calendar-discover__heading { display: flex; justify-content: space-between; align-items: start; gap: 20px; margin-bottom: 22px; }
.calendar-discover__heading h2 { margin: 0 0 8px; font-size: clamp(1.5rem, 2.5vw, 2rem); }
.calendar-discover__heading p { margin: 0; color: var(--muted); }
.calendar-discover__heading > a { flex-shrink: 0; padding-block: 10px; color: #0065d4; font-weight: 700; }
.calendar-discover__grid { display: grid; grid-template-columns: repeat(var(--discover-columns), minmax(0, 1fr)); align-items: start; gap: 16px; }
.calendar-discover :is(.discover-market, .discover-merchant) { min-width: 0; border: 1px solid #dceaf7; border-radius: 14px; overflow: hidden; }
.calendar-discover .discover-market { background: #fff; }
.calendar-discover .discover-market > a { display: block; height: 100%; padding: 7px; text-decoration: none; color: inherit; }
.calendar-discover .discover-market > a:hover { background: #f5faff; }
.calendar-discover .discover-market > a:focus-visible { outline: 3px solid #0065d4; outline-offset: -4px; border-radius: 14px; }
.calendar-discover .discover-market__image { display: block; width: 100%; height: auto; max-height: 240px; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 9px; }
.calendar-discover .discover-market__body { padding: 16px 12px 20px; }
.calendar-discover h3 { margin: 0 0 10px; font-size: clamp(1.2rem, 1.6vw, 1.5rem); line-height: 1.2; overflow-wrap: anywhere; }
.calendar-discover .discover-market p { margin: 0; color: var(--muted); font-size: .9rem; }
.calendar-discover .discover-market__schedule { border-top: 1px solid #e2edf7; margin-top: 20px; padding-top: 18px; }
.calendar-discover .discover-market__schedule p + p { margin-top: 6px; }
.calendar-discover .discover-market ul { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 20px 0 0; }
.calendar-discover .discover-market li { padding: 7px 12px; border-radius: 24px; background: #eef6ff; font-size: .8rem; }
.calendar-discover .discover-merchant { position: relative; display: flex; flex-direction: column; padding: 18px; background: #eef7ff; }
.calendar-discover .discover-merchant__label { align-self: start; margin: 0; padding: 7px 12px; border-radius: 24px; background: #dfefff; color: #005ac6; font-size: .8rem; font-weight: 700; }
.calendar-discover .discover-merchant img { display: block; order: -1; flex-shrink: 0; width: calc(100% + 36px); max-width: none; height: 245px; object-fit: cover; object-position: center 76%; margin: -18px -18px 12px; mix-blend-mode: multiply; }
.calendar-discover .discover-merchant__label { position: absolute; top: 12px; left: 12px; z-index: 1; margin: 0; }
.calendar-discover .discover-merchant h3 { margin-bottom: 8px; }
.calendar-discover .discover-merchant > p:not(.discover-merchant__label) { margin: 0 0 16px; color: var(--muted); font-size: .9rem; }
.calendar-discover .discover-merchant .button { width: 100%; margin-top: 0; padding: 12px 10px; text-align: center; font-size: .85rem; }
#calendar-results { scroll-margin-top: 150px; }
#calendar-results .section-heading { margin-bottom: 20px; }
#calendar-results .section-heading h2 { margin-bottom: 4px; }
#calendar-results .section-heading p { margin: 0; color: var(--muted); }
#calendar-results .calendar-market { border-top: 1px solid #dceaf7; }
#calendar-results .calendar-market:last-child { border-bottom: 1px solid #dceaf7; }
#calendar-results .calendar-market__link { display: grid; grid-template-columns: 112px minmax(180px, 1.2fr) minmax(130px, .65fr) minmax(180px, 1fr) 36px; align-items: center; gap: 18px; padding: 14px 0; color: inherit; text-decoration: none; }
#calendar-results .calendar-market__link:hover { background: #f5faff; }
#calendar-results .calendar-market__link:focus-visible { outline: 3px solid #0069db; outline-offset: 3px; border-radius: 8px; }
#calendar-results .calendar-market img { display: block; width: 112px; height: 80px; object-fit: cover; border-radius: 8px; }
#calendar-results .calendar-market__place { min-width: 0; overflow-wrap: anywhere; }
#calendar-results .calendar-market h3 { margin: 0 0 5px; font-size: 1rem; line-height: 1.35; }
#calendar-results .calendar-market p { margin: 0; font-size: .875rem; color: var(--muted); }
#calendar-results .calendar-market__times { grid-column: 3; }
#calendar-results .calendar-market__goods { grid-column: 4; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0; list-style: none; }
#calendar-results .calendar-market__goods li { padding: 6px 10px; border-radius: 20px; background: #eaf5ff; color: #07559d; font-size: .75rem; overflow-wrap: anywhere; }
#calendar-results .calendar-market__arrow { grid-column: 5; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; background: #eaf5ff; color: #0069db; font-size: 1.4rem; }
@media (max-width: 1100px) {
    #calendar-results .calendar-market__link { grid-template-columns: 96px minmax(0, 1fr) 36px; gap: 8px 16px; }
    #calendar-results .calendar-market img { width: 96px; height: 76px; grid-row: 1 / 4; }
    #calendar-results .calendar-market__times, #calendar-results .calendar-market__goods { grid-column: 2; }
    #calendar-results .calendar-market__arrow { grid-column: 3; grid-row: 1 / 4; }
}
@media (max-width: 600px) {
    #calendar-results .market-list { display: grid; gap: 12px; }
    #calendar-results .calendar-market { border: 1px solid #dceaf7; border-radius: 12px; }
    #calendar-results .calendar-market__link { grid-template-columns: 80px minmax(0, 1fr) 28px; padding: 12px; gap: 10px; }
    #calendar-results .calendar-market img { width: 80px; height: 64px; grid-row: 1; }
    #calendar-results .calendar-market__times, #calendar-results .calendar-market__goods { grid-column: 1 / -1; }
    #calendar-results .calendar-market__arrow { grid-row: 1; width: 28px; height: 28px; }
}
@media (max-width: 1100px) {
    .calendar-discover__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .calendar-discover .discover-merchant img { height: 182px; }
    .calendar-discover__grid:has(.discover-market:nth-child(2)):not(:has(.discover-market:nth-child(3))) .discover-merchant { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
    .calendar-discover__grid { grid-template-columns: minmax(0, 1fr); }
    .calendar-discover .discover-merchant { padding: 16px; }
    .calendar-discover .discover-merchant img { width: calc(100% + 32px); height: 192px; margin: -16px -16px 12px; object-position: center 65%; }
    .calendar-discover__heading { flex-wrap: wrap; gap: 8px; }
}

/* Regional calendar composition; other map instances keep their existing layout. */
.calendar-geography--regions { padding: 22px; border: 1px solid #dceaf7; border-radius: 14px; background: linear-gradient(120deg, #fff, #f8fbff); }
.calendar-geography--regions > h2 { margin: 0 0 5px; font-size: clamp(1.4rem, 2.4vw, 2rem); line-height: 1.2; }
.calendar-geography--regions .calendar-geography__intro { margin: 0; color: var(--muted); font-size: .95rem; }
.calendar-geography--regions .italy-map-layout { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.7fr) minmax(0, .95fr); gap: 24px; margin-top: 22px; }
.calendar-geography--regions .italy-map-figure { width: 100%; margin: 0; }
.calendar-geography--regions .italy-map-figure > svg { width: 100%; height: 350px; max-height: none; }
.calendar-geography--regions .regional-map-hint { display: flex; align-items: center; gap: 14px; margin: 16px 0 0; padding: 14px; border-radius: 10px; background: #edf6ff; font-size: .88rem; line-height: 1.45; }
.calendar-geography--regions .regional-map-hint svg { width: 26px; height: 30px; flex: 0 0 26px; color: #0069da; }
.calendar-geography--regions .italy-map-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
.calendar-geography--regions .italy-map-list a { min-height: 45px; gap: 7px; padding: 8px 0; }
.calendar-geography--regions .italy-map-list strong { flex: 1; font-size: .82rem; }
.calendar-geography--regions .italy-map-list :is(.map-count--empty, .map-count--available) { padding: 3px 7px; border-radius: 20px; background: #edf6ff; font-size: .7rem; }
.calendar-geography--regions .italy-map-list .regional-link-arrow { color: #0069da; font-size: 1.25rem; }
.calendar-geography--regions .regional-editorial { overflow: hidden; border: 1px solid #dceaf7; border-radius: 11px; background: #eef6ff; }
.calendar-geography--regions .regional-editorial__visual { position: relative; min-height: 260px; }
.calendar-geography--regions .regional-editorial__visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 35%, rgba(0, 20, 42, .88)); pointer-events: none; }
.calendar-geography--regions .regional-editorial__visual > img { display: block; width: 100%; height: 100%; position: absolute; inset: 0; object-fit: cover; }
.calendar-geography--regions .regional-editorial__body { padding: 16px; }
.calendar-geography--regions .regional-editorial h3 { position: relative; z-index: 1; margin: 0; padding: 16px; color: #fff; font-size: 1.3rem; line-height: 1.15; letter-spacing: -.025em; text-shadow: 0 1px 3px #00142a; }
.calendar-geography--regions .regional-editorial__visual { display: flex; align-items: end; }
.calendar-geography--regions .regional-editorial p { margin: 0; color: var(--muted); font-size: .86rem; line-height: 1.45; }
.calendar-geography--regions .regional-editorial ul { display: grid; gap: 12px; margin: 16px 0 0; padding: 0; list-style: none; }
.calendar-geography--regions .regional-editorial li { display: flex; align-items: start; gap: 9px; font-size: .8rem; line-height: 1.4; }
.calendar-geography--regions .regional-editorial li svg { flex: 0 0 21px; width: 21px; height: 21px; fill: none; stroke: #358333; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 1100px) {
    .calendar-geography--regions .italy-map-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); }
    .calendar-geography--regions .italy-map-list { grid-template-columns: minmax(0, 1fr); }
    .calendar-geography--regions .regional-editorial { grid-column: 1 / -1; display: grid; grid-template-columns: 180px minmax(0, 1fr); }
    .calendar-geography--regions .regional-editorial__visual { min-height: 200px; }
    .calendar-geography--regions .regional-editorial ul { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
    .calendar-geography--regions { padding: 16px; }
    .calendar-geography--regions .italy-map-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .calendar-geography--regions .italy-map-figure > svg { height: 290px; }
    .calendar-geography--regions .regional-map-hint br { display: none; }
    .calendar-geography--regions .regional-editorial { grid-template-columns: minmax(0, 1fr); }
    .calendar-geography--regions .regional-editorial__body { padding: 12px; }
    .calendar-geography--regions .regional-editorial h3 { font-size: 1.05rem; }
    .calendar-geography--regions .regional-editorial p, .calendar-geography--regions .regional-editorial li { font-size: .78rem; }
    .calendar-geography--regions .regional-editorial ul { grid-template-columns: minmax(0, 1fr); gap: 9px; margin-top: 12px; }
}

/* Home territory block: approved composition, isolated from the hero. */
.home-benefits,.home-territory{width:min(1370px,calc(100% - 64px));margin-inline:auto}
.home-benefits{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;padding:28px 0;background:#f7fbff;box-shadow:0 0 0 100vmax #f7fbff;clip-path:inset(0 -100vmax)}
.home-benefits article{display:flex;align-items:center;gap:20px;padding:16px;background:#edf5fc;border-radius:7px}
.home-benefit-icon{display:grid;place-items:center;flex:0 0 64px;height:64px;border-radius:50%;background:#f6fbff;color:#198ce6}
.home-benefits article:last-child .home-benefit-icon{color:#14987c}
.home-benefits svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.home-benefits h3{margin:0 0 5px;color:#092748;font-size:1rem;line-height:1.25}
.home-benefits p{margin:0;color:#344b61;font-size:.9rem;line-height:1.5}
.home-territory{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,2fr);gap:40px;padding:36px 0 40px;align-items:start}
.home-territory-heading{min-width:0;padding-top:2px}
.home-territory-heading h2{margin:12px 0 20px;color:#081e36;font-size:clamp(1.7rem,2.25vw,2.2rem);line-height:1.18;letter-spacing:-.035em}
.home-territory-heading p:not(.eyebrow){color:#344b61;line-height:1.6;margin:0;font-size:1rem}
.home-territory-heading>a{display:inline-flex;align-items:center;gap:10px;background:#073a72;color:white;border:1px solid #1268a5;border-radius:5px;padding:12px 28px;margin-top:28px;text-decoration:none;min-height:46px}
.home-territory-heading>a:hover{background:#09528c}
.home-territory .italy-map-layout{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:32px;margin:0;align-items:start}
.home-territory .italy-map-figure{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(130px,1fr);gap:16px;width:100%;max-width:none;align-items:center;margin:0}
.home-territory .italy-map-figure svg{max-height:340px;min-height:300px}
.home-territory .italy-map-region{fill:#bfdeef;stroke:#f3f9fd;stroke-width:2}
.home-territory .italy-map-detail{stroke:#f3f9fd}
.home-territory .italy-map-figure a:is(:hover,.is-highlighted) .italy-map-region{fill:#79b7df;stroke:#357aab}
.home-territory .italy-map-figure svg a:focus-visible .italy-map-region{fill:#79b7df;stroke:#073a72;stroke-width:3}
.home-territory-summary{padding:20px 18px;border:1px solid #e4ecf3;border-radius:7px;box-shadow:0 2px 4px #163f6510;background:#fcfdff}
.home-territory-summary>p{margin:0 0 18px;color:#092748;font-size:.88rem;font-weight:700}
.home-territory-stats{margin:0;display:grid;gap:18px}
.home-territory-stats>div{display:flex;flex-direction:column-reverse}
.home-territory-stats dt{color:#526478;font-size:.9rem}
.home-territory-stats dd{margin:0;color:#073a72;font-size:1.85rem;font-weight:750;line-height:1.2}
.home-region-directory h3{margin:0 0 6px;color:#073a72;font-size:.9rem}
.home-territory .italy-map-list{grid-template-rows:repeat(10,auto);grid-auto-flow:column;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.home-territory .italy-map-list a{min-height:33px;padding:6px 0;gap:5px}
.home-territory .italy-map-list strong{font-size:.82rem;font-weight:550}
.home-territory .italy-map-list span{color:#1684bd;font-size:1.2rem;line-height:1}
.home-territory .italy-map-tooltip{padding:6px 9px;font-size:.8rem;box-shadow:none}
@media(max-width:1200px){.home-territory{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:28px}.home-territory .italy-map-layout{grid-template-columns:1fr;gap:24px}.home-territory .italy-map-figure{max-width:470px;margin-inline:auto}.home-benefits{gap:16px}.home-benefits article{gap:12px;padding:14px}.home-benefit-icon{flex-basis:44px;height:44px}.home-benefits svg{width:28px;height:28px}.home-territory .italy-map-list a{min-height:44px}}
@media(max-width:800px){.home-territory{grid-template-columns:1fr}.home-territory-heading{max-width:600px}.home-benefits{grid-template-columns:1fr;gap:12px}.home-benefits article{padding:16px;gap:18px}.home-benefit-icon{flex-basis:56px;height:56px}.home-territory .italy-map-figure{max-width:500px}}
@media(max-width:600px){.home-benefits,.home-territory{width:calc(100% - 32px)}.home-territory{padding:28px 0 36px;gap:28px}.home-territory .italy-map-list{grid-template-columns:1fr;grid-template-rows:none;grid-auto-flow:row}.home-territory .italy-map-list a{min-height:48px}.home-territory .italy-map-list strong{font-size:.95rem}.home-territory .italy-map-figure{gap:12px;grid-template-columns:minmax(0,1fr) 130px}.home-territory .italy-map-figure svg{min-height:0;max-height:320px}.home-territory-summary{padding:16px 12px}.home-territory-stats dd{font-size:1.6rem}}

/* Today's homepage cards. */
.home-today{background:#f3f9fe;padding:32px 0}
.home-today__inner{width:min(1370px,calc(100% - 64px));margin-inline:auto}
.home-today__heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:20px}
.home-today__heading h2{margin:7px 0 8px;color:#081e36;font-size:2rem;line-height:1.2;letter-spacing:-.03em}
.home-today__heading p:not(.eyebrow){margin:0;color:#526478;line-height:1.6}
.home-today__heading>a{flex-shrink:0}
.home-today__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch}
.home-today-card{min-width:0;background:white;border:1px solid #e2eaf2;border-radius:6px;overflow:hidden;box-shadow:0 2px 5px #123c6010}
.home-today-card>a{display:block;height:100%;text-decoration:none;color:inherit}
.home-today-card>a:focus-visible{outline:3px solid #0878ba;outline-offset:-3px}
.home-today-card__image{position:relative;aspect-ratio:3.2;overflow:hidden}
.home-today-card__image img{width:100%;height:100%;object-fit:cover;display:block}
.home-today-card__image>span{position:absolute;right:12px;top:12px;background:#f0f9ff;color:#0666a7;border-radius:4px;padding:7px 12px;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
.home-today-card__body{position:relative;padding:16px 48px 18px 16px}
.home-today-card h3{font-size:1rem;line-height:1.45;margin:0 0 10px;color:#102b45}
.home-today-card p{display:flex;gap:7px;align-items:flex-start;margin:4px 0;color:#526478;font-size:.85rem;line-height:1.5}
.home-today-card p svg{width:16px;height:18px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7}
.home-today-card__arrow{position:absolute;right:15px;bottom:23px;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:#e5f3ff;color:#0878ba;font-size:1.2rem}
.home-today-card a:hover h3{color:#0878ba}
.home-today__explore,.home-today__empty{padding:28px;border:1px dashed #b9d5e9;border-radius:6px;background:#edf6fc;display:flex;flex-direction:column;justify-content:center}
.home-today__explore{grid-column:span 1}.home-today__cards:has(>.home-today-card:only-of-type) .home-today__explore{grid-column:span 2}
.home-today__explore h3{margin:0 0 10px;font-size:1.15rem;color:#073a72}.home-today__explore p,.home-today__empty p{margin:0 0 18px;color:#526478;line-height:1.6}
@media(max-width:1100px){.home-today__cards{grid-template-columns:repeat(2,minmax(0,1fr))}.home-today__cards:has(>.home-today-card:only-of-type) .home-today__explore{grid-column:auto}.home-today__heading{align-items:flex-start;flex-direction:column;gap:12px}.home-today-card__image{aspect-ratio:2.8}}
@media(max-width:600px){.home-today__inner{width:calc(100% - 32px)}.home-today__cards{grid-template-columns:1fr}.home-today-card__image{aspect-ratio:2.6}.home-today__heading h2{font-size:1.75rem}}
/* Home merchandise navigation only. */
.home-categories{padding:28px 0 32px;background:#f3f9fe;border-top:16px solid white}
.home-categories__inner{width:min(1370px,calc(100% - 64px));margin-inline:auto}
.home-categories__heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px}
.home-categories__heading h2{margin:7px 0 8px;font-size:2rem;line-height:1.2;letter-spacing:-.03em;color:#081e36}
.home-categories__heading p:not(.eyebrow){margin:0;color:#526478;line-height:1.6}
.home-categories__heading>a{flex-shrink:0}
.home-categories__grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:16px}
.home-category-card{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:10px;text-align:center;padding:15px 10px;min-height:110px;background:white;border:1px solid #edf2f7;border-radius:7px;text-decoration:none;color:#173952}
.home-category-card svg{width:28px;height:28px;flex-shrink:0;fill:currentColor;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.home-category-card span{font-size:.82rem;font-weight:600;line-height:1.4;overflow-wrap:anywhere;color:inherit;opacity:1}
.home-category-card:hover{background:#eaf5ff;border-color:#c5e1f3;color:#075f9b}
.home-category-card:focus-visible{outline:3px solid #0878ba;outline-offset:3px}
@media(max-width:1200px){.home-categories__grid{grid-template-columns:repeat(5,minmax(0,1fr))}.home-categories__heading{align-items:flex-start;flex-direction:column;gap:12px}}
@media(max-width:800px){.home-categories__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.home-categories__inner{width:calc(100% - 32px)}.home-categories__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.home-categories__heading h2{font-size:1.75rem}.home-category-card span{font-size:.9rem}}

/* Homepage: invitation for market traders. */
.home-merchants{background:#e7f4ff;position:relative;isolation:isolate;overflow:hidden}
.home-merchants__inner{max-width:1510px;margin-inline:auto;display:grid;grid-template-columns:minmax(0,43fr) minmax(220px,22fr) minmax(0,35fr);align-items:center;gap:24px;padding-inline:clamp(32px,5vw,80px);min-height:320px}
.home-merchants__copy{padding-block:32px}
.home-merchants__copy h2{margin:8px 0 14px;color:#081e36;font-size:2rem;line-height:1.17;letter-spacing:-.03em;overflow-wrap:anywhere}
.home-merchants__copy>p:not(.eyebrow){color:#425c73;font-size:.95rem;line-height:1.65;margin:0}
.home-merchants__actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:24px}
.home-merchants__actions .button{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:12px 18px;border:1px solid transparent;border-radius:5px;font-size:.88rem;text-align:center}
.home-merchants__actions .home-merchants__secondary{background:transparent;border-color:#5481a7;color:var(--navy)}
.home-merchants__actions .home-merchants__secondary:hover{background:#fff}
.home-merchants__benefits{list-style:none;margin:24px 0;padding:20px;background:#fffffff0;border-radius:8px;display:grid;gap:22px;position:relative;z-index:1}
.home-merchants__benefits li{display:flex;align-items:center;gap:14px;font-size:.88rem;line-height:1.45;color:#28445e}
.home-merchants__benefits li>span{display:grid;place-items:center;flex:0 0 48px;height:48px;border-radius:50%;background:#e0f1ff;color:#087fc3}
.home-merchants__benefits svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.home-merchants__visual{position:absolute;inset:0 0 0 55%;z-index:-1;overflow:hidden}
.home-merchants__visual::before{content:"";position:absolute;inset:0 auto 0 0;width:32%;background:linear-gradient(90deg,#e7f4ff,rgba(231,244,255,0));z-index:1;pointer-events:none}
.home-merchants__image{display:block;width:100%;height:100%;object-fit:cover;object-position:right center}
@media(max-width:1100px){.home-merchants__inner{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);padding:28px 32px;gap:24px}.home-merchants__copy{padding:0}.home-merchants__benefits{grid-column:2;margin:0}.home-merchants__visual{position:relative;inset:auto;grid-column:1 / -1;grid-row:2;aspect-ratio:2.1;z-index:0;margin:0 -32px -28px}.home-merchants__visual::before{width:22%}.home-merchants__copy h2{font-size:1.8rem}}
@media(max-width:600px){.home-merchants__inner{display:flex;flex-direction:column;align-items:stretch;padding:28px 16px 0;gap:24px}.home-merchants__copy h2{font-size:1.75rem}.home-merchants__actions{flex-direction:column}.home-merchants__actions .button{align-self:stretch}.home-merchants__visual{margin:0 -16px;aspect-ratio:1.8}.home-merchants__visual::before{width:16%}.home-merchants__benefits{padding:20px}}

/* Public blog archive only. */
.blog-container{width:min(1230px,calc(100% - 64px));margin-inline:auto}
.blog-hero{background:#edf8ff url('../images/hero-blog-mercatisettimanali.png') right center/cover no-repeat;padding:30px 0 48px}
.blog-breadcrumb{display:flex;align-items:center;gap:12px;margin-bottom:28px;font-size:.8rem;color:#294668}
.blog-breadcrumb a{color:inherit;text-decoration:none}
.blog-breadcrumb span{opacity:1;color:inherit}
.blog-hero h1{font-size:4rem;line-height:1.05;letter-spacing:-.04em;color:#0b2546;margin:8px 0 14px}
.blog-hero__copy{max-width:540px;font-size:1.15rem;line-height:1.5;color:#294668;margin:0}
.blog-results{padding-bottom:56px}
.blog-filters{display:flex;flex-wrap:wrap;gap:12px;padding:24px 0}
.blog-filters a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 24px;border:1px solid #dce7f0;border-radius:24px;text-decoration:none;color:#173c64;background:#fff;font-size:.9rem}
.blog-filters a[aria-current],.blog-pagination a[aria-current]{background:#073a72;color:white;border-color:#073a72}
.blog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.blog-card{display:flex;flex-direction:column;min-width:0;border:1px solid #e0eaf2;border-radius:8px;overflow:hidden;background:white;box-shadow:0 2px 6px #18395405}
.blog-card__image,.blog-card__placeholder{display:block;width:100%;height:auto;aspect-ratio:1.9;object-fit:cover;background:#e7f4ff}
.blog-card__body{display:flex;flex-direction:column;align-items:flex-start;padding:0 22px 22px;flex:1}
.blog-card__category{position:relative;margin-top:-14px;padding:5px 13px;border:4px solid white;border-radius:16px;background:#e3f3ff;color:#0064ac;font-size:.78rem;font-weight:700}
.blog-card h2{font-size:1.25rem;line-height:1.25;letter-spacing:-.02em;color:#0b2546;margin:6px 0 10px;overflow-wrap:anywhere}
.blog-card__body>p{font-size:.96rem;line-height:1.55;color:#526478;margin:0 0 24px;overflow-wrap:anywhere}
.blog-card__footer{margin-top:auto;width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:.78rem}
.blog-card time{color:#405a78}
.blog-card__footer a{color:#0069bd;text-decoration:none;font-weight:700;min-height:44px;display:inline-flex;align-items:center;gap:9px}
.blog-archive a:hover{text-decoration:underline}
.blog-archive a:focus-visible{outline:3px solid #0077bd;outline-offset:3px}
.blog-pagination{display:flex;justify-content:center;gap:10px;margin-top:28px}
.blog-pagination a{display:grid;place-items:center;min-width:44px;min-height:44px;border:1px solid #dce7f0;border-radius:6px;text-decoration:none;color:#073a72}
.blog-empty{padding:40px 0;color:#405a78;line-height:1.6}
@media(max-width:1100px){.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-hero__copy{max-width:460px}}
@media(max-width:600px){.blog-container{width:calc(100% - 32px)}.blog-grid{grid-template-columns:1fr;gap:20px}.blog-hero{padding:24px 0 36px;background-position:65% center}.blog-hero h1{font-size:3rem}.blog-hero__copy{font-size:1.05rem;max-width:310px}.blog-filters{gap:10px}.blog-filters a{padding:8px 20px}.blog-card__body{padding-inline:18px}}

@media(max-width:800px){.blog-hero{background-image:linear-gradient(90deg,rgba(237,248,255,.97) 0%,rgba(237,248,255,.88) 48%,rgba(237,248,255,.15) 100%),url('../images/hero-blog-mercatisettimanali.png')}}
/* Single blog article: hero only. */
.article-hero{background:#edf8ff;padding:32px 0}
.article-hero__inner{width:min(1230px,calc(100% - 64px));margin-inline:auto;display:grid;grid-template-columns:1fr 1.15fr;gap:40px;align-items:center}
.article-hero__text{min-width:0}
.article-hero__breadcrumb ol{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0 0 30px;font-size:.75rem;color:#294668}
.article-hero__breadcrumb li{overflow-wrap:anywhere}
.article-hero__breadcrumb li+li::before{content:'›';margin-right:8px}
.article-hero__breadcrumb a{color:inherit;text-decoration:none}
.article-hero__breadcrumb a:hover{text-decoration:underline}
.article-hero__breadcrumb a:focus-visible{outline:3px solid #0077bd;outline-offset:3px}
.article-hero h1{font-size:clamp(2rem,2.8vw,2.7rem);line-height:1.12;letter-spacing:-.035em;color:#0b2546;margin:12px 0 18px;overflow-wrap:anywhere}
.article-hero__excerpt{color:#405a78;line-height:1.55;margin:0 0 22px;overflow-wrap:anywhere}
.article-hero time{color:#526478;font-size:.85rem}
.article-hero__image{display:block;width:100%;height:auto;aspect-ratio:1.9;object-fit:cover;border-radius:8px}
@media(max-width:900px){.article-hero__inner{grid-template-columns:1fr;width:calc(100% - 32px);gap:28px}.article-hero h1{max-width:680px}.article-hero__breadcrumb ol{margin-bottom:24px}}
@media(max-width:480px){.article-hero{padding:24px 0}.article-hero h1{font-size:2rem}}
/* Article body and sidebar, independent from the hero. */
.article-layout{width:min(1230px,calc(100% - 64px));margin:36px auto 56px;display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:48px;align-items:start}
.article-prose{min-width:0;color:#405a78;font-size:1.05rem;line-height:1.75;overflow-wrap:anywhere}
.article-prose p{margin:0 0 1.25em}.article-prose h2,.article-prose h3,.article-prose h4{color:#0b2546;line-height:1.25;margin:1.5em 0 .65em;letter-spacing:-.02em}.article-prose h2{font-size:1.65rem}.article-prose h3{font-size:1.3rem}.article-prose>:first-child{margin-top:0}.article-prose ul,.article-prose ol{padding-left:1.5em;margin:0 0 1.25em}.article-prose li{padding-left:.2em;margin:.4em 0}.article-prose li::marker{color:#0088d5}.article-prose a{color:#0069ad;text-decoration:underline;text-underline-offset:3px}.article-prose strong{color:#294668}.article-prose blockquote{margin:24px 0;padding:16px 22px;background:#eff8ff;border-left:3px solid #0088d5}
.article-sidebar{display:grid;gap:20px;min-width:0}.article-sidebar__box{padding:24px;background:#f0f8fe;border:1px solid #e0eff9;border-radius:8px;color:#405a78;font-size:.9rem;line-height:1.55;overflow-wrap:anywhere}.article-sidebar h2{font-size:1rem;line-height:1.4;color:#0b2546;margin:0 0 14px}.article-sidebar dl{margin:0}.article-sidebar dl>div+div{margin-top:20px}.article-sidebar dt{font-weight:700;color:#0b2546;font-size:.8rem}.article-sidebar dd{margin:3px 0 0}.article-share{border-top:1px solid #dbeaf5;margin-top:24px;padding-top:20px}.article-share__links{display:flex;flex-wrap:wrap;gap:8px}.article-share__links a,.article-share__links button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:1px solid #c7deee;border-radius:22px;background:white;color:#075b91;font:inherit;cursor:pointer;text-decoration:none}.article-copy-status{font-size:.8rem;margin:10px 0 0}.article-copy-status:empty{display:none}.article-copy-fallback{width:100%;min-width:0;margin-top:10px}.article-search{display:inline-flex;align-items:center;gap:12px;min-height:44px;padding:10px 16px;border-radius:5px;background:#073a72;color:white;font-weight:700;text-decoration:none}.article-sidebar__related{list-style:none;margin:0;padding:0}.article-sidebar__related li{border-top:1px solid #dbeaf5}.article-sidebar__related a{display:block;padding:14px 0;color:#0069ad;text-decoration:none}.article-sidebar a:hover{text-decoration:underline}.article-layout a:focus-visible,.article-layout button:focus-visible,.article-layout input:focus-visible{outline:3px solid #0077bd;outline-offset:3px}
@media(max-width:900px){.article-layout{grid-template-columns:1fr;width:calc(100% - 32px);gap:28px;margin-top:28px}.article-sidebar__box{padding:22px}}
/* Editorial rhythm and sidebar refinement. */
.article-layout{column-gap:56px}
.article-prose{max-width:74ch;line-height:1.8}
.article-prose h2{font-size:1.75rem;margin-top:1.8em;margin-bottom:.7em;font-weight:750}
.article-prose h3{font-size:1.35rem;margin-top:1.65em;margin-bottom:.65em}
.article-prose li{margin:.55em 0;padding-left:.3em}
.article-sidebar{gap:22px;align-self:start}

.article-sidebar__box{padding:26px;border-color:#dcecf7;background:linear-gradient(120deg,#f4faff,#edf7fd);border-radius:9px}
.article-sidebar h2{font-size:1.02rem;font-weight:750;margin-bottom:16px}
.article-sidebar dl>div{position:relative;padding-left:54px;min-height:42px}
.article-sidebar dl>div+div{margin-top:22px}
.article-sidebar dt{font-size:.8rem;line-height:1.4}
.article-sidebar dd{margin-top:5px;font-size:.9rem}
.article-info-icon{position:absolute;left:0;top:0;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#dff1ff;color:#0084cd;font-size:27px}
.article-info-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.article-share{margin-top:26px;padding-top:20px}.article-share h2{font-size:.82rem}
.article-share__links{gap:8px}.article-share__links a,.article-share__links button{font-size:.8rem;padding:8px 11px}
.article-share__links a:hover,.article-share__links button:hover{background:#dff1ff;border-color:#78b9df}
.article-sidebar__search{border-color:#c9e3f5;background:#eaf6ff}
.article-sidebar__search h2{max-width:24ch}.article-sidebar__search p{line-height:1.65;margin:0 0 20px}
.article-search{justify-content:space-between;width:100%;padding:12px 16px;min-height:46px}
.article-sidebar__related a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 0;line-height:1.55}
.article-sidebar__related a>span:first-child{min-width:0}.article-sidebar__related a>span:last-child{flex-shrink:0;font-size:1.2rem}
@media(max-width:900px){.article-prose{max-width:none}.article-sidebar__box{padding:24px}.article-prose h2{font-size:1.5rem}}

.article-toc ol{padding:0;margin:0;list-style:none;counter-reset:chapter}
.article-toc li{border-top:1px solid #dbeaf5;counter-increment:chapter}
.article-toc a{display:block;padding:11px 0;color:#075b91;line-height:1.5;text-decoration:none;min-height:44px}
.article-toc a::before{content:counter(chapter) '. ';color:#52748e;font-size:.85em}
.article-toc__subheading{margin-left:16px;font-size:.85rem}
.article-prose h2,.article-prose h3{scroll-margin-top:var(--article-anchor-offset,120px)}
.article-prose h2:focus-visible,.article-prose h3:focus-visible{outline:2px solid #0077bd;outline-offset:5px}
.article-share--standalone{margin:0;padding:0;border:0}
.article-hero__date{display:inline-flex;align-items:center;gap:8px}
.article-hero__date svg{width:19px;height:19px;fill:none;stroke:#0084cd;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.article-toc li{border:0}.article-toc li[hidden]{display:none}
.article-toc a{display:flex;gap:12px;align-items:flex-start;padding:7px 0}
.article-toc a::before{content:counter(chapter);display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:50%;background:#d9efff;color:#0076bc;font-weight:750;font-size:.95rem}
.article-toc__toggle{margin-top:12px;padding:10px 0;min-height:44px;width:100%;border:0;border-top:1px solid #dbeaf5;background:transparent;color:#0069ad;font:inherit;font-weight:700;text-align:left;cursor:pointer}
.article-toc__toggle:hover{text-decoration:underline}
.article-sidebar nav.article-toc{display:block}
.article-toc ol{display:block;width:100%}.article-toc li{display:block}.article-toc li[hidden]{display:none}.article-toc a{font-weight:400}
.article-share__links a,.article-share__links button{padding:4px;width:44px;height:44px;border:0;background:transparent}
.article-share__links img{display:block;object-fit:contain;max-width:100%}
.article-more{padding:36px 0 44px;background:#eff8ff}
.article-more__heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}
.article-more__heading h2{margin:6px 0 0;color:#0b2546;font-size:1.9rem;letter-spacing:-.03em}
.article-more__heading>a{color:#0069bd;font-weight:700;text-decoration:none;min-height:44px;display:inline-flex;align-items:center;gap:12px}
.article-more .blog-card h3{font-size:1.25rem;line-height:1.3;letter-spacing:-.02em;color:#0b2546;margin:8px 0 24px;overflow-wrap:anywhere}
.article-more a:focus-visible{outline:3px solid #0077bd;outline-offset:3px}
@media(max-width:600px){.article-more__heading{align-items:flex-start;flex-direction:column;gap:8px}.article-more__heading h2{font-size:1.6rem}}
/* Home: latest editorial articles. */
.home-blog{padding:32px 0 40px;background:#fff}
.home-blog__inner{width:min(1370px,calc(100% - 64px));margin-inline:auto}
.home-blog__heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px}
.home-blog__heading h2{margin:6px 0 8px;font-size:2rem;line-height:1.2;letter-spacing:-.03em;color:#081e36}
.home-blog__heading p:not(.eyebrow){margin:0;color:#526478}
.home-blog__heading>a{flex-shrink:0;color:#0069bd;font-weight:700;text-decoration:none;min-height:44px;display:flex;align-items:center;gap:12px}
.home-blog__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.home-blog-card{display:grid;grid-template-columns:34% minmax(0,1fr);gap:12px;padding:8px;border:1px solid #dfebf5;border-radius:7px;background:#fff;min-width:0}
.home-blog-card>img,.home-blog-card__placeholder{width:100%;height:100%;min-height:210px;object-fit:cover;border-radius:4px;background:#eef7fd}
.home-blog-card__body{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:4px 2px}
.home-blog-card__category{color:#0069bd;background:#e6f4ff;padding:3px 6px;border-radius:3px;font-size:.65rem;font-weight:700;text-transform:uppercase}
.home-blog-card h3{font-size:1rem;line-height:1.4;margin:7px 0;overflow-wrap:anywhere}
.home-blog-card h3 a{color:#0b2546;text-decoration:none}
.home-blog-card__body>p{font-size:.8rem;line-height:1.5;color:#526478;margin:0 0 14px;overflow-wrap:anywhere}
.home-blog-card__footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;width:100%;gap:6px}
.home-blog-card time{font-size:.72rem;color:#526478}
.home-blog-card__footer a{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;color:#007aca;background:radial-gradient(circle,#e6f4ff 48%,transparent 50%);text-decoration:none;font-weight:700}
.home-blog a:focus-visible{outline:3px solid #0077bd;outline-offset:3px}
.home-blog a:hover{color:#007aca;text-decoration:underline}
@media(max-width:1100px){.home-blog__grid{grid-template-columns:1fr}.home-blog-card{grid-template-columns:160px minmax(0,1fr)}.home-blog-card>img,.home-blog-card__placeholder{min-height:180px}.home-blog-card h3{font-size:1.1rem}.home-blog-card__body>p{font-size:.9rem}}
@media(max-width:600px){.home-blog__inner{width:calc(100% - 32px)}.home-blog__heading{align-items:flex-start;flex-direction:column;gap:8px}.home-blog__heading h2{font-size:1.75rem}.home-blog-card{grid-template-columns:30% minmax(0,1fr);gap:10px}.home-blog-card h3{font-size:1rem}}

/* Single-market hero: scoped to leave the surrounding page unchanged. */
.market-hero { grid-template-columns: minmax(0, 45fr) minmax(0, 55fr); gap: 32px; align-items: center; padding: 12px 0 36px; }
.market-hero__copy { min-width: 0; }
.market-hero .eyebrow { margin: 0 0 14px; color: #006aca; font-size: .75rem; letter-spacing: .12em; }
.market-hero h1 { margin: 0 0 12px; font-size: clamp(2rem, 3.8vw, 3.25rem); line-height: 1.08; letter-spacing: -.045em; overflow-wrap: anywhere; }
.market-hero .market-hero__description { margin: 0 0 16px; color: var(--muted); font-size: .95rem; line-height: 1.45; }
.market-hero__types { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; padding: 0; list-style: none; }
.market-hero__types li { padding: 7px 13px; border-radius: 999px; background: #eaf5ff; color: var(--navy); font-size: .72rem; font-weight: 750; }
.market-hero__verification { display: flex; align-items: center; gap: 14px; width: fit-content; max-width: 100%; padding: 13px 16px; border-radius: 8px; background: #f0f7fd; }
.market-hero__verification svg { width: 26px; height: 30px; flex-shrink: 0; fill: #006aca; stroke: #006aca; stroke-width: 1.5; }
.market-hero__verification svg path + path { fill: none; stroke: white; stroke-width: 2; }
.market-hero__verification strong, .market-hero__appointment strong { display: block; color: var(--ink); font-size: .8rem; }
.market-hero__verification span { display: block; color: var(--muted); font-size: .72rem; }
.market-hero__media { position: relative; min-width: 0; aspect-ratio: 1.74; overflow: hidden; border-radius: 8px; background: #eaf0f6; }
.market-hero__media > img { display: block; width: 100%; height: 100%; object-fit: cover; }
.market-hero__appointment { position: absolute; top: 18px; left: 18px; display: flex; align-items: center; gap: 12px; max-width: calc(100% - 36px); padding: 10px 14px; border-radius: 9px; background: white; color: var(--muted); font-size: .78rem; }
.market-hero__appointment svg { width: 28px; height: 28px; flex-shrink: 0; fill: none; stroke: #006aca; stroke-width: 2; }
.market-hero__location { position: absolute; right: 14px; bottom: 14px; display: flex; align-items: center; gap: 7px; max-width: calc(100% - 28px); padding: 7px 10px; border-radius: 5px; background: #073a72; color: white; font-size: .72rem; font-weight: 600; overflow-wrap: anywhere; }
.market-hero__location svg { width: 15px; height: 18px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 2; }
@media (max-width: 800px) {
    .market-hero { grid-template-columns: minmax(0, 1fr); gap: 24px; padding-top: 8px; }
    .market-hero h1 { max-width: 620px; font-size: clamp(2rem, 6vw, 2.8rem); }
    .market-hero__media { aspect-ratio: 1.65; }
    .market-hero__appointment { top: 12px; left: 12px; }
}
/* Visit information on the single-market page. */
.market-visit { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.95fr); gap: 28px; width: min(100% - 32px, var(--content)); margin: 0 auto 24px; }
.market-visit section { min-width: 0; }
.market-visit h2 { margin: 0 0 16px; color: var(--navy); font-size: clamp(1.5rem, 2.1vw, 1.9rem); line-height: 1.2; letter-spacing: -.035em; }
.market-visit__schedule, .market-visit__address { background: #f0f7fd; border-radius: 10px; }
.market-visit__schedule { padding: 28px 22px; }
.market-visit__appointment { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.market-visit__appointment + .market-visit__appointment { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--line); }
.market-visit__line { display: flex; align-items: center; gap: 15px; }
.market-visit__line + .market-visit__line { margin-top: 24px; padding-top: 24px; border-top: 1px solid #d3e4f5; }
.market-visit__line strong { color: var(--navy); font-size: 1rem; line-height: 1.4; }
.market-visit__icon { display: grid; place-items: center; flex-shrink: 0; width: 48px; height: 54px; border-radius: 12px; background: #dfefff; color: #006aca; }
.market-visit svg { width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 2; flex-shrink: 0; }
.market-visit__icon--clock { background: #e0f5fb; }
.market-visit__eyebrow { display: block; margin-bottom: 4px; color: var(--muted); font-size: .6rem; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; }
.market-visit h3 { margin: 0; color: var(--navy); font-size: clamp(1.2rem, 1.8vw, 1.55rem); line-height: 1.25; }
.market-visit__recurrence { align-self: stretch; display: flex; flex-direction: column; justify-content: center; padding-left: 63px; color: var(--muted); font-size: .82rem; }
.market-visit__recurrence p { margin: 0; }
.market-visit__recurrence p + p { margin-top: 12px; }
.market-visit__recurrence p:first-child { display: flex; align-items: center; gap: 8px; }
.market-visit__frequency { display: inline-block; padding: 5px 11px; border-radius: 999px; background: #dfefff; color: var(--navy); font-size: .75rem; font-weight: 700; }
.market-visit__location { position: relative; }
.market-visit__address { display: flex; align-items: flex-start; gap: 8px; padding: 16px 18px; font-size: .82rem; overflow-wrap: anywhere; }
.market-visit__location--map .market-visit__address { position: absolute; z-index: 2; top: 20px; left: 20px; max-width: calc(100% - 40px); background: white; border-radius: 12px; box-shadow: 0 5px 20px #073a7214; }
.market-visit__location--map:has(iframe) .market-visit__address { display: none; }
.market-visit__address > svg { width: 20px; height: 23px; color: #006aca; }
.market-visit__address strong { color: var(--navy); line-height: 1.4; }
.market-visit__address p { margin: 6px 0 0; color: var(--muted); }
.market-visit__map-column { min-width: 0; }
.market-visit__map { position: relative; height: 350px; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: #edf3f8; }
.market-visit__preview, .market-visit__tiles { position: absolute; inset: 0; overflow: hidden; }
.market-visit__preview { background: repeating-linear-gradient(0deg, transparent 0 31px, #dce7ef 31px 32px), repeating-linear-gradient(90deg, #edf3f8 0 31px, #dce7ef 31px 32px); }
.market-visit__tiles img { position: absolute; max-width: none; }
.market-visit__schematic { position: absolute; top: 115px; left: 12px; right: 12px; color: var(--muted); font-size: .65rem; text-align: center; }
.market-visit__marker { position: absolute; top: calc(50% - 20px); left: 14px; right: 14px; display: grid; justify-items: center; gap: 6px; text-align: center; }
.market-visit__marker svg { width: 34px; height: 40px; color: white; fill: #006aca; stroke-width: 1.5; }
.market-visit__marker strong { padding: 3px 8px; border-radius: 4px; background: white; color: var(--navy); font-size: .78rem; }
.market-visit__tiles ~ .market-visit__marker { top: calc(50% - 40px); }
.market-visit__consent { position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 18px 24px; background: linear-gradient(transparent, #f8fbfe 22%); text-align: center; }
.market-visit__consent button { width: min(100%, 390px); min-height: 46px; padding: 10px 12px; border: 0; border-radius: 8px; background: #006aca; color: white; font-size: .8rem; font-weight: 750; line-height: 1.4; cursor: pointer; }
.market-visit__consent button:hover { background: var(--navy); }
.market-visit__consent button:focus-visible { outline: 3px solid var(--navy); outline-offset: 3px; }
.market-visit__consent p { margin: 8px 0 0; color: var(--muted); font-size: .68rem; line-height: 1.45; }
.market-visit__attribution { position: absolute; z-index: 1; top: 0; right: 0; padding: 2px 5px; background: white; color: var(--navy); font-size: .6rem; }
.market-visit__map iframe { display: block; width: 100%; height: 100%; border: 0; }
.market-visit__map-note, .market-visit__map-status { margin: 8px 0 0; color: var(--muted); font-size: .73rem; line-height: 1.5; }
.market-visit__map-status:empty { margin: 0; }
@media (max-width: 800px) {
    .market-visit { grid-template-columns: minmax(0, 1fr); gap: 28px; }
}
@media (max-width: 480px) {
    .market-visit__schedule { padding: 22px 18px; }
    .market-visit__location--map .market-visit__address { top: 12px; left: 12px; max-width: calc(100% - 24px); padding: 12px; }
}

/* Market goods reuse the home category card and icon system. */
.market-merchandise { width: min(100% - 32px, var(--content)); margin: 38px auto 28px; }
.market-merchandise__heading { display: flex; align-items: baseline; justify-content: space-between; gap: 18px; margin-bottom: 16px; }
.market-merchandise__heading h2 { margin: 0; color: var(--navy); font-size: clamp(1.35rem, 2vw, 1.65rem); line-height: 1.25; letter-spacing: -.035em; }
.market-merchandise__heading p { margin: 0; max-width: 460px; color: var(--muted); font-size: .75rem; line-height: 1.5; }
.market-merchandise__grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.market-merchandise .home-category-card { flex-direction: row; justify-content: flex-start; gap: 12px; min-height: 80px; padding: 14px 14px; text-align: left; border-color: #e2edf8; border-radius: 10px; }
.market-merchandise .home-category-card svg { width: 24px; height: 24px; padding: 8px; box-sizing: content-box; background: #f0f7fd; border-radius: 50%; flex-basis: 24px; }
.market-merchandise .home-category-card span { font-size: .75rem; font-weight: 750; line-height: 1.35; color: var(--navy); }
@media (max-width: 1100px) { .market-merchandise__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .market-merchandise__heading { align-items: flex-start; flex-direction: column; gap: 8px; } }
@media (max-width: 600px) { .market-merchandise__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .market-merchandise .home-category-card { padding: 12px 9px; gap: 8px; } }

.market-merchandise .home-category-card svg { background: #f1f4f7; color: #526174 !important; }
.market-merchandise .home-category-card[href$="/alimentari-bevande/"] svg { background: #edf8e8; color: #52a919 !important; }
.market-merchandise .home-category-card[href$="/abbigliamento-accessori/"] svg { background: #eaf4ff; color: #0076d7 !important; }
.market-merchandise .home-category-card[href$="/casa-giardino/"] svg { background: #f4edfc; color: #a15bdd !important; }
.market-merchandise .home-category-card[href$="/artigianato-prodotti-locali/"] svg { background: #fff5df; color: #ee9d00 !important; }
.market-merchandise .home-category-card[href$="/animali/"] svg { background: #ffedf5; color: #e9438a !important; }

/* Single market: real profiles/offers and matching promotional spaces. */
.market-promotions { width: min(100% - 32px, var(--content)); margin: 42px auto; }
.market-promotions h2 { margin: 0 0 8px; color: var(--navy); font-size: clamp(1.5rem, 2.1vw, 1.9rem); line-height: 1.2; letter-spacing: -.035em; }
.market-promotions__subtitle { margin: 0 0 20px; color: var(--muted); line-height: 1.5; }
.market-promotions__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.market-promo-card { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 16px; padding: 16px; min-height: 204px; border: 1px solid #e1ebf5; border-radius: 12px; background: white; }
.market-promo-card__image { min-width: 0; min-height: 144px; overflow: hidden; border-radius: 8px; background: #f0f4f8; display: grid; place-items: center; }
.market-promo-card__image img { width: 100%; height: 100%; object-fit: cover; }
.market-promo-card__image svg { width: 46px; height: 46px; fill: none; stroke: #8b9dae; stroke-width: 1.8; stroke-linejoin: round; stroke-linecap: round; }
.market-promo-card__body { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.market-promo-card h3 { margin: 0 0 7px; color: var(--navy); font-size: .98rem; line-height: 1.35; overflow-wrap: anywhere; }
.market-promo-card p { margin: 0 0 12px; font-size: .82rem; color: var(--muted); line-height: 1.45; }
.market-promo-card__body a { display: inline-flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; max-width: 100%; min-height: 44px; padding: 9px 11px; border-radius: 7px; background: #eaf5ff; color: #0067b5; text-decoration: none; font-size: .8rem; font-weight: 750; }
.market-promo-card__body a:hover { background: #d8edff; }
.market-promo-card__body a:focus-visible { outline: 3px solid #0067b5; outline-offset: 3px; }
.market-promo-card__badge { margin-bottom: 8px; padding: 3px 9px; border-radius: 6px; color: #473000; background: #ffc84e; font-size: .68rem; font-weight: 800; text-transform: uppercase; }
.market-promo-card .market-promo-card__date { font-size: .75rem; }
@media(max-width:1100px) { .market-promo-card { grid-template-columns: 76px minmax(0,1fr); padding: 12px; gap: 12px; } }
@media(max-width:900px) { .market-promotions__grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .market-promotions__grid { grid-template-columns: minmax(0,1fr); } .market-promo-card { grid-template-columns: 92px minmax(0,1fr); padding: 16px; } }

/* Shared height keeps real cards and available spaces aligned in mixed rows. */
.market-promotions__grid { grid-auto-rows: 1fr; }
.market-promo-card { min-height: 320px; }
.market-promo-card--cta { position: relative; isolation: isolate; overflow: hidden; display: flex; padding: 64px 24px 24px; }
.market-promo-card--cta .market-promo-card__image { position: absolute; inset: 0; z-index: -2; border-radius: 0; }
.market-promo-card--cta .market-promo-card__image img { position: absolute; inset: 0; }
.market-promo-card--cta::before { content: ''; position: absolute; inset: 0; z-index: -1; background: rgb(5 19 38 / 68%); }
.market-promo-card--cta .market-promo-card__body { flex: 1; align-items: center; justify-content: center; text-align: center; }
.market-promo-card--cta h3 { color: #fff; font-size: 1.2rem; line-height: 1.3; max-width: 28ch; margin-bottom: 12px; }
.market-promo-card--cta p { color: #fff; font-size: .95rem; max-width: 34ch; margin-bottom: 24px; }
.market-promo-card--cta .market-promo-card__body a { margin-top: auto; width: 100%; justify-content: center; background: #0067b5; color: #fff; border: 1px solid #a8d9ff; font-size: .9rem; }
.market-promo-card--cta .market-promo-card__body a:hover { background: #005799; }
.market-promo-card--cta .market-promo-card__body a:focus-visible { outline-color: #fff; }
.market-promo-card__badge--available { position: absolute; top: 16px; left: 16px; margin: 0; padding: 6px 10px; background: #0067b5; color: #fff; letter-spacing: .025em; }

/* Final notice on the single-market page. */
.market-departure { display: flex; align-items: center; gap: 22px; width: min(100% - 32px, var(--content)); margin: 32px auto 52px; padding: 22px 24px; background: #fff7e2; border-radius: 8px; }
.market-departure__icon { width: 42px; height: 42px; flex-shrink: 0; fill: #e5a009; stroke: #fff; stroke-width: 2; }
.market-departure__icon path + path { fill: none; stroke-width: 3; stroke-linecap: round; }
.market-departure__copy { flex: 1; min-width: 0; }
.market-departure h2 { margin: 0 0 5px; color: var(--navy); font-size: clamp(1.3rem, 1.8vw, 1.6rem); line-height: 1.2; letter-spacing: -.035em; }
.market-departure p { margin: 0; color: var(--muted); font-size: .85rem; line-height: 1.5; }
.market-departure__status { padding: 11px 15px; border: 1px solid #cbdff0; border-radius: 8px; background: white; color: #0067b5; font-size: .82rem; font-weight: 750; text-align: center; flex-shrink: 0; }
@media (max-width: 800px) { .market-departure { flex-wrap: wrap; gap: 14px; padding: 20px; } .market-departure__status { margin-left: 56px; } }
@media (max-width: 480px) { .market-departure { align-items: flex-start; } .market-departure__icon { width: 32px; height: 32px; } .market-departure__status { margin-left: 46px; max-width: calc(100% - 46px); } }

.market-alternatives { width: min(100% - 32px, var(--content)); margin: 36px auto 52px; }
.market-alternatives__heading { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; margin-bottom: 18px; }
.market-alternatives h2 { margin: 0; color: var(--navy); font-size: clamp(1.5rem, 2.1vw, 1.9rem); line-height: 1.2; letter-spacing: -.035em; }
.market-alternatives__heading p { margin: 7px 0 0; color: var(--muted); font-size: .8rem; }
.market-alternatives__heading > a { flex-shrink: 0; font-size: .85rem; }
.market-alternatives__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.market-alternative { min-width: 0; }
.market-alternative > a { display: flex; align-items: center; gap: 14px; min-height: 136px; height: 100%; padding: 14px; border: 1px solid #e1ebf5; border-radius: 10px; text-decoration: none; background: white; }
.market-alternative > a:hover { border-color: #a5cfef; background: #f8fbfe; }
.market-alternative > a:focus-visible { outline: 3px solid #0067b5; outline-offset: 3px; }
.market-alternative img { width: 96px; height: 104px; object-fit: cover; border-radius: 7px; flex-shrink: 0; }
.market-alternative__copy { min-width: 0; flex: 1; }
.market-alternative h3 { margin: 0 0 9px; color: var(--navy); font-size: .95rem; line-height: 1.35; overflow-wrap: anywhere; }
.market-alternative p { display: flex; align-items: flex-start; gap: 7px; margin: 6px 0 0; color: var(--muted); font-size: .78rem; line-height: 1.4; }
.market-alternative svg { width: 17px; height: 19px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 2; }
.market-alternative__arrow { color: #0076cb; font-size: 1.3rem; }
@media (max-width: 1100px) { .market-alternative img { width: 72px; height: 100px; } .market-alternative > a { gap: 10px; padding: 12px; } .market-alternatives__heading { flex-direction: column; gap: 12px; } }
@media (max-width: 800px) { .market-alternatives__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .market-alternatives__grid { grid-template-columns: minmax(0, 1fr); } .market-alternative img { width: 96px; height: 104px; } }

/* Public market reporting form. */
.market-report { width: calc(100% - 32px); max-width: 860px; margin: 40px auto 72px; }
.market-report h1 { font-size: clamp(2rem, 5vw, 3rem); margin-bottom: 16px; }
.market-report header > p { color: var(--muted); max-width: 740px; }
.market-report__form { position: relative; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; padding: 28px; margin-top: 28px; background: #f5faff; border: 1px solid #dceaf7; border-radius: 16px; }
.market-report__wide { grid-column: 1 / -1; }
.market-report__field { min-width: 0; display: flex; flex-direction: column; gap: 7px; }
.market-report label, .market-report legend { font-weight: 600; font-size: .95rem; }
.market-report input:not([type=checkbox]):not([type=hidden]), .market-report textarea { width: 100%; min-width: 0; padding: 12px; border: 1px solid #bbcede; border-radius: 8px; background: white; color: var(--ink); font: inherit; }
.market-report textarea { resize: vertical; }
.market-report fieldset { min-width: 0; border: 0; padding: 0; margin: 0; }
.market-report legend { margin-bottom: 10px; }
.market-report__days { display: flex; flex-wrap: wrap; gap: 10px 18px; }
.market-report__days label, .market-report__consent { display: flex; align-items: flex-start; gap: 8px; }
.market-report input[type=checkbox] { flex-shrink: 0; width: 18px; height: 18px; margin-top: 3px; accent-color: #0069db; }
.market-report small { font-size: .8rem; color: var(--muted); }
.market-report .report-error { color: #a32121; }
.market-report [aria-invalid=true] { border-color: #a32121; }
.market-report :is(input,textarea,button):focus-visible { outline: 3px solid #0069db; outline-offset: 3px; }
.market-report__trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.market-report__errors, .market-report__success { padding: 20px; margin-top: 24px; border-radius: 10px; background: #fff1f1; }
.market-report__success { background: #eaf7ef; }
@media(max-width:600px) { .market-report { margin-top: 24px; } .market-report__form { grid-template-columns: minmax(0,1fr); padding: 18px; gap: 18px; } .market-report .button { width: 100%; } }

/* Closing navigation on day archives only. */
.calendar-closing { width: min(100% - 32px, var(--content)); display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; margin: 40px auto 56px; }
.calendar-closing__card { min-width: 0; padding: 22px; border: 1px solid #dceaf7; border-radius: 12px; background: #f2f8ff; }
.calendar-closing__card header { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 18px; }
.calendar-closing__card header svg { flex: 0 0 34px; width: 34px; height: 34px; color: #0069db; }
.calendar-closing__card h2 { font-size: 1.05rem; line-height: 1.35; margin: 0 0 6px; }
.calendar-closing__card p { font-size: .9rem; color: var(--muted); margin: 0; }
.calendar-closing__card a { font-size: .875rem; font-weight: 600; }
.calendar-closing__card a:focus-visible { outline: 3px solid #0069db; outline-offset: 3px; border-radius: 6px; }
.calendar-closing__report { display: inline-flex; align-items: center; gap: 12px; padding: 12px 18px; }
.calendar-closing__days { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.calendar-closing__days a { display: grid; place-items: center; min-width: 40px; min-height: 40px; padding: 7px 9px; border: 1px solid #d5e3ef; border-radius: 24px; background: white; text-decoration: none; }
.calendar-closing__today { display: inline-flex; gap: 12px; padding: 9px 14px; border: 1px solid #78aafa; border-radius: 8px; background: white; text-decoration: none; }
.calendar-closing__guides { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.calendar-closing__guides a, .calendar-closing__guide-index { color: #005cc6; text-decoration: none; overflow-wrap: anywhere; }
.calendar-closing__guides a:hover, .calendar-closing__guide-index:hover { text-decoration: underline; }
@media(max-width:1100px) { .calendar-closing { grid-template-columns: repeat(2,minmax(0,1fr)); } .calendar-closing__card:last-child { grid-column: 1 / -1; } }
@media(max-width:600px) { .calendar-closing { grid-template-columns: minmax(0,1fr); gap: 14px; margin: 28px auto 40px; } .calendar-closing__card { padding: 18px; } }

/* Single-region hero: the shared territorial sections retain their layout. */
.region-hero { position: relative; isolation: isolate; overflow: hidden; background: radial-gradient(ellipse at 90% 35%, #d4e5ed, transparent 65%), #eef4f8; }
.region-hero__image { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 52%; }
.region-hero--fallback-image .region-hero__image { left: auto; right: 0; width: 55%; object-fit: cover; object-position: right center; -webkit-mask-image: linear-gradient(to right, transparent, #000 35%); mask-image: linear-gradient(to right, transparent, #000 35%); }
.region-hero::before { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, rgba(246, 250, 253, .98) 0%, rgba(246, 250, 253, .93) 30%, rgba(246, 250, 253, .7) 48%, rgba(246, 250, 253, .12) 72%, transparent 100%); }
.region-hero__inner { width: min(100% - 32px, var(--content)); margin: auto; padding: 24px 0 36px; }
.region-hero .breadcrumbs { width: 100%; margin: 0; }
.region-hero .breadcrumbs a, .region-hero .breadcrumbs span { color: #344d65; opacity: 1; }
.region-hero .breadcrumbs li::after { color: #65788a; }
.region-hero__copy { max-width: 730px; padding: 44px 0 28px; }
.region-hero .eyebrow { margin-bottom: 12px; color: #0064b5; }
.region-hero h1 { color: #07335a; font-size: clamp(2.25rem, 4.1vw, 3.5rem); line-height: 1.06; letter-spacing: -.045em; }
.region-hero h1 span { display: block; }
.region-hero__description { max-width: 640px; margin: 22px 0 0; color: #344d65; font-size: 1.08rem; line-height: 1.65; }
.region-hero__stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; max-width: 850px; margin: 0; padding: 0; list-style: none; }
.region-hero__stats li { display: flex; align-items: center; gap: 14px; min-width: 0; padding: 18px; border: 1px solid rgba(255, 255, 255, .8); border-radius: var(--radius); background: rgba(255, 255, 255, .93); }
.region-hero__stats svg { flex: 0 0 32px; width: 32px; height: 32px; fill: none; stroke: #0071ce; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.region-hero__stats strong, .region-hero__stats span { display: block; }
.region-hero__stats strong { color: #07335a; font-size: 1.3rem; line-height: 1.3; }
.region-hero__stats span { margin-top: 3px; color: #344d65; font-size: .8rem; }
@media (max-width: 900px) {
    .region-hero::before { background: linear-gradient(90deg, rgba(246, 250, 253, .98), rgba(246, 250, 253, .88) 55%, rgba(246, 250, 253, .35)); }
    .region-hero__copy { max-width: 610px; padding-top: 32px; }
    .region-hero__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 500px; }
    .region-hero__image { object-position: 70% center; }
}
@media (max-width: 480px) {
    .region-hero::before { background: linear-gradient(90deg, rgba(246, 250, 253, .97), rgba(246, 250, 253, .86)); }
    .region-hero__inner { padding-top: 18px; padding-bottom: 24px; }
    .region-hero__copy { padding: 28px 0 24px; }
    .region-hero__description { margin-top: 18px; font-size: 1rem; }
    .region-hero__stats { gap: 10px; }
    .region-hero__stats li { gap: 10px; padding: 14px 10px; }
    .region-hero__stats svg { flex-basis: 28px; width: 28px; height: 28px; }
    .region-hero__stats strong { font-size: 1.1rem; }
}
@media (max-width: 340px) { .region-hero__stats { grid-template-columns: 1fr; } }

/* Single-region content shell. Detailed editorial modules can be added inside this grid. */
.region-section-nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px;
    width: min(100% - 32px, var(--content));
    margin: 18px auto 0;
    padding: 5px;
    border: 1px solid #dceaf7;
    border-radius: 12px;
    background: #f1f7fc;
}
.region-section-nav a {
    display: grid;
    place-items: center;
    min-height: 44px;
    padding: 8px 16px;
    border-radius: 8px;
    color: var(--navy);
    font-size: .86rem;
    font-weight: 800;
    text-align: center;
    text-decoration: none;
}
.region-section-nav a:first-child { color: var(--white); background: var(--navy); }
.region-section-nav a:hover { color: var(--white); background: var(--blue); }

.region-content-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 330px);
    gap: clamp(30px, 4vw, 54px);
    align-items: start;
    width: min(100% - 32px, var(--content));
    margin: auto;
    padding: clamp(42px, 6vw, 76px) 0 clamp(70px, 8vw, 110px);
}
.region-content-layout__main { min-width: 0; }
.region-content-layout [id] { scroll-margin-top: 110px; }
.region-content-layout__main .territory-story,
.region-content-layout__main .directory-section { width: 100%; }
.territory-story--region {
    display: block;
    padding: 0 0 clamp(46px, 6vw, 72px);
}
.territory-story--region .editorial-content { max-width: 760px; }
.region-directory-section { padding: clamp(46px, 6vw, 72px) 0; }
.region-directory-section + .region-directory-section { padding-top: clamp(46px, 6vw, 72px); }
.region-directory-section .section-heading { margin-bottom: 34px; }
.region-directory-section .section-heading h2 { font-size: clamp(1.75rem, 3vw, 2.55rem); }
.region-content-layout .region-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.region-empty-state { padding: 28px; border: 1px solid #dceaf7; border-radius: var(--radius); background: var(--surface); }
.region-empty-state strong { color: var(--navy); font-size: 1.08rem; }
.region-empty-state p { margin: 6px 0 18px; color: var(--muted); }
.region-empty-state a { color: var(--blue); font-weight: 850; text-decoration: none; }

.region-sidebar { display: grid; gap: 18px; }
.region-sidebar__card { min-width: 0; padding: 24px; border: 1px solid #dceaf7; border-radius: var(--radius); background: #f5faff; }
.region-sidebar__card--primary { background: #eef7ff; }
.region-sidebar__card--report { border-color: #f2d9e4; background: #fff5f8; }
.region-sidebar__card .eyebrow { margin-bottom: 8px; font-size: .68rem; }
.region-sidebar__card h2 { margin-bottom: 16px; font-size: 1.12rem; line-height: 1.3; letter-spacing: -.02em; }
.region-sidebar__card > p:not(.eyebrow) { margin: -7px 0 18px; color: var(--muted); font-size: .88rem; }
.region-sidebar__province-list,
.region-sidebar__links { margin: 0; padding: 0; list-style: none; }
.region-sidebar__province-list { border-top: 1px solid #d9e7f3; }
.region-sidebar__province-list li { border-bottom: 1px solid #d9e7f3; }
.region-sidebar__province-list a,
.region-sidebar__links a {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: center;
    min-height: 46px;
    color: var(--navy);
    font-size: .86rem;
    font-weight: 750;
    text-decoration: none;
}
.region-sidebar__province-list small { color: var(--muted); font: inherit; }
.region-sidebar__province-list a:hover,
.region-sidebar__links a:hover { color: var(--blue); }
.region-sidebar__links li + li { border-top: 1px solid #d9e7f3; }
.region-sidebar__action,
.region-sidebar__report {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    min-height: 46px;
    margin-top: 18px;
    padding: 11px 15px;
    border-radius: 9px;
    color: var(--white);
    background: var(--navy);
    font-size: .84rem;
    font-weight: 850;
    text-decoration: none;
}
.region-sidebar__action:hover,
.region-sidebar__report:hover { background: var(--blue); }

@media (max-width: 980px) {
    .region-content-layout { grid-template-columns: minmax(0, 1fr); }
    .region-sidebar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .region-sidebar__card--primary { grid-row: span 2; }
}
@media (max-width: 680px) {
    .region-section-nav { display: flex; overflow-x: auto; }
    .region-section-nav a { flex: 1 0 auto; }
    .region-content-layout { padding-top: 36px; }
    .region-content-layout .region-list,
    .region-sidebar { grid-template-columns: minmax(0, 1fr); }
    .region-sidebar__card--primary { grid-row: auto; }
    .region-sidebar__card { padding: 20px; }
}

/* Compact calendar only: preserve the visit columns and map styles. */
.market-visit__schedule.market-schedule { padding:22px; color:var(--navy); }
.market-schedule__summary,.market-schedule__line { display:flex; align-items:center; gap:12px; min-width:0; }
.market-schedule .market-schedule__summary { padding-bottom:20px; border-bottom:1px solid #d3e4f5; }
.market-schedule .market-schedule__icon { display:grid; place-items:center; flex:0 0 42px; width:42px; height:44px; border-radius:11px; background:#dfefff; color:#006aca; }
.market-schedule .market-schedule__icon--clock { background:#e0f5fb; }
.market-schedule .market-schedule__icon svg { width:24px; height:24px; }
.market-schedule h3 { font-size:1.12rem; line-height:1.35; overflow-wrap:anywhere; }
.market-schedule .market-schedule__day { font-size:1rem; }
.market-schedule .market-schedule__row { display:block; }
.market-schedule .market-schedule__row + .market-schedule__row { margin-top:18px; padding-top:18px; border-top:1px solid #d3e4f5; }
.market-schedule__summary + .market-schedule__row { padding-top:18px; }
.market-schedule .market-schedule__time { margin:4px 0 0; font-size:1.08rem; line-height:1.4; font-variant-numeric:tabular-nums; }
.market-schedule .market-schedule__hours { margin-top:14px; }
.market-schedule .market-schedule__hours .market-schedule__time { margin:0; }
.market-schedule .market-schedule__detail { margin:10px 0 0 54px; color:var(--muted); font-size:.85rem; overflow-wrap:anywhere; }
.market-schedule .market-schedule__note { margin:12px 0 0; padding:10px 12px; border-radius:7px; background:#e3f1fd; font-size:.88rem; white-space:pre-line; overflow-wrap:anywhere; }
.market-schedule .market-schedule__status { margin:0 0 12px; font-size:.9rem; }
.market-schedule .market-schedule__footer { margin:20px 0 0; }
.market-schedule .market-schedule__empty { margin:0; color:var(--muted); font-size:.95rem; }
.market-schedule__empty + .market-schedule__row,.market-schedule__empty + .market-schedule__summary { margin-top:18px; }
.market-schedule .market-schedule__row--compact { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; align-items:start; }
.market-schedule__row--compact .market-schedule__line { gap:8px; }
.market-schedule__row--compact .market-schedule__hours { margin-top:0; }
.market-schedule__row--compact .market-schedule__icon { flex-basis:28px; width:28px; height:34px; border-radius:7px; }
.market-schedule__row--compact .market-schedule__icon svg { width:21px; height:21px; }
.market-schedule__row--compact h3,.market-schedule__row--compact .market-schedule__time { font-size:.95rem; }
.market-schedule__row--compact .market-schedule__detail,.market-schedule__row--compact .market-schedule__note,.market-schedule__row--compact .market-schedule__status { grid-column:1/-1; margin:0; }
@media(max-width:480px) { .market-visit__schedule.market-schedule { padding:20px 16px; } }

/* Managed identity and temporary site mode. */
.brand img,.admin-brand img { object-fit:contain; }
.brand img { max-height:110px; }
.coming-soon { width:calc(100% - 40px); max-width:760px; margin:0 auto; min-height:100svh; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:48px 0; overflow-wrap:anywhere; }
.coming-soon__logo { width:clamp(120px,24vw,220px); height:auto; max-height:230px; object-fit:contain; margin-bottom:32px; }
.coming-soon h1 { font-size:clamp(2rem,6vw,3.5rem); line-height:1.12; }
