/* La Disbauxa Vilanovina · llenguatge visual compartit 2027 */
:root{--ldv-accent:#f344a3;--ldv-rose:#ffb7db;--ldv-deep:#0d0912;--ldv-surface:#1b1222;--ldv-line:rgba(255,170,215,.22)}
html{scroll-behavior:smooth}body{background:#100b17;color:#f9f3f8}body,main,.section,.container{min-width:0}img,video,iframe{max-width:100%}
main{overflow:clip}main .section{position:relative}main .section:not(.ldv27-hero):not(.ldv27-signups):not(.ldv27-news):not(.ldv-year):not(.section--hero){padding-block:clamp(35px,6vw,78px)}
main .section:nth-of-type(even):not(.ldv27-hero):not(.ldv27-signups):not(.ldv27-news):not(.ldv-year){background:linear-gradient(160deg,#170e1e,#100b17)}
main .container{width:min(100% - 32px,1160px);max-width:1160px;margin-inline:auto}
main h1,main h2,main h3{overflow-wrap:break-word;max-width:100%;text-wrap:balance}
main h1{letter-spacing:-.035em;line-height:1.1}main h2{letter-spacing:-.025em}
main p{line-height:1.7}main a{transition:color .2s,border-color .2s,background .2s}
/* Cohesive subpage hero, retaining the page's original photograph */
main .hero-visual{border-radius:clamp(18px,3vw,32px);overflow:hidden;isolation:isolate;position:relative;box-shadow:0 22px 70px #0007;border:1px solid var(--ldv-line)}
main .hero-visual .media{position:relative;overflow:hidden;min-height:clamp(260px,38vw,430px)}
main .hero-visual .media>img{display:block;width:100%;height:clamp(260px,38vw,430px);object-fit:cover;filter:saturate(.83) brightness(.75)}
main .hero-visual .media::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,6,17,.78),rgba(10,6,17,.2) 90%);pointer-events:none}
main .hero-visual .copy{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(22px,6vw,68px);color:#fff}
main .hero-visual .copy h1{font-size:clamp(2.25rem,6vw,5.3rem)!important;max-width:100%;width:auto!important;margin:0 0 12px;text-shadow:0 4px 30px #0009}
main .hero-visual .copy p{color:#ffe0f0;max-width:680px}
/* Inner-page components */
main :is(.card,.gallery-card,.qs-card,.shop-card,.video-card,.notice-banner__box){border:1px solid var(--ldv-line)!important;border-radius:22px!important;background:linear-gradient(150deg,rgba(255,255,255,.09),rgba(255,255,255,.025))!important;box-shadow:0 15px 38px #0003;overflow:hidden;transition:transform .22s,border-color .22s,box-shadow .22s}
main :is(.card,.gallery-card,.qs-card,.shop-card,.video-card):hover{transform:translateY(-3px);border-color:rgba(255,145,205,.6)!important;box-shadow:0 20px 45px #0005}
main :is(.card,.gallery-card,.qs-card) :is(h2,h3){color:#fff}main :is(.card,.gallery-card,.qs-card) p{color:#f0dce9}
main :is(.gallery-grid,.shop-grid,.qs-grid,.video-grid,.grid){max-width:100%;min-width:0;gap:clamp(14px,2.4vw,26px)}
main :is(.gallery-grid,.shop-grid,.qs-grid,.video-grid,.grid)>*{min-width:0;max-width:100%}
main .gallery-title{font-size:clamp(1.7rem,4vw,3.1rem)!important;line-height:1.18;max-width:100%;width:auto!important}
main :is(.btn,.button,.ldv-open-external){border-radius:999px!important}
main a:focus-visible,main button:focus-visible{outline:3px solid #ff9bd0;outline-offset:3px}
/* Forms and maps must stay within their parent cards */
.section--form,.section--form .container,.section--form .ldv-tabs,.section--form .ldv-tabpanels,.section--form .ldv-tabpanel{max-width:100%;min-width:0}
.section--form .ldv-tab{overflow-wrap:anywhere;min-width:0}
main iframe{display:block;max-width:100%;border-radius:14px}main .card--map iframe{width:100%}
/* Consistent navigation and footers */
.ldv-header__nav a{border-radius:12px}.ldv-header__nav a:hover{background:rgba(243,68,163,.13)}
footer{border-top:1px solid var(--ldv-line)}
@media(max-width:800px){main .container{width:min(100% - 24px,1160px)}main .hero-visual .media,main .hero-visual .media>img{min-height:240px;height:300px}main .hero-visual .copy{padding:24px}main .hero-visual .copy h1{font-size:clamp(2rem,10vw,3.5rem)!important}main .grid[style*="grid-template-columns"]{grid-template-columns:1fr!important}main :is(.gallery-grid,.shop-grid,.qs-grid,.video-grid){grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))!important}}
@media(max-width:480px){main .hero-visual .media,main .hero-visual .media>img{height:260px;min-height:260px}main .hero-visual .copy h1{font-size:clamp(1.8rem,9vw,2.8rem)!important}main :is(.card,.gallery-card,.qs-card,.shop-card){border-radius:17px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}main :is(.card,.gallery-card,.qs-card,.shop-card,.video-card){transition:none}main :is(.card,.gallery-card,.qs-card,.shop-card,.video-card):hover{transform:none}}
