/*
Theme Name: Viallo Vienna Child
Template: twentytwentyfive
Version: 1.0.0
Text Domain: viallo-vienna
*/

:root { --v-plum:#482c3d; --v-deep:#2d1d29; --v-paper:#fffdf9; --v-ivory:#f7f3ed; --v-gold:#9a7040; --v-ink:#252321; --v-muted:#625e59; --v-line:#ded7ce; --v-green:#2f6b57; }
.viallo-home { color:var(--v-ink); background:var(--v-ivory); font-family:Inter,ui-sans-serif,system-ui,"Noto Sans SC",sans-serif; overflow:hidden; }
.viallo-home * { box-sizing:border-box; }
.viallo-home img { display:block; max-width:100%; }
.viallo-home a { color:inherit; text-decoration:none; }
.viallo-home h1,.viallo-home h2,.viallo-home h3,.viallo-home p { margin-top:0; }
.viallo-home h1,.viallo-home h2,.viallo-home h3 { font-family:Georgia,"Noto Serif SC",serif; font-weight:500; text-wrap:balance; }
.viallo-skip { position:absolute; left:1rem; top:-4rem; z-index:100; padding:.75rem 1rem; color:#fff; background:var(--v-plum); }
.viallo-skip:focus { top:1rem; }
.viallo-announcement { display:flex; justify-content:center; gap:.6rem; padding:.55rem 1rem; color:#f6e7cf; background:var(--v-deep); font-size:.78rem; text-align:center; }
.viallo-bar { position:relative; z-index:3; display:flex; align-items:center; gap:1.5rem; max-width:1360px; margin:auto; padding:1.1rem clamp(1rem,4vw,3.5rem); background:var(--v-ivory); }
.viallo-brand { display:inline-flex; align-items:center; gap:.7rem; font-family:Georgia,serif; font-size:1.2rem; font-weight:700; letter-spacing:.02em; }
.viallo-mark { display:grid; width:2.5rem; height:2.5rem; place-items:center; border-radius:50%; color:#fff; background:var(--v-plum); font-size:1.4rem; font-weight:500; }
.viallo-nav { display:flex; flex:1; justify-content:flex-end; gap:1.25rem; font-size:.85rem; font-weight:650; }
.viallo-nav a:hover { color:var(--v-plum); }
.viallo-languages { display:flex; align-items:center; gap:.2rem; padding:.25rem; border:1px solid var(--v-line); background:#fff; font-size:.7rem; font-weight:750; }
.viallo-languages a { padding:.35rem .55rem; }
.viallo-languages .current-lang a { color:#fff; background:var(--v-plum); }
.viallo-hero { position:relative; min-height:680px; display:grid; grid-template-columns:minmax(0,1.25fr) minmax(280px,.55fr); align-items:end; gap:3rem; padding:clamp(4rem,9vw,8rem) clamp(1rem,6vw,6rem) 4rem; color:#fff; }
.viallo-hero__image,.viallo-hero__veil { position:absolute; inset:0; width:100%; height:100%; }
.viallo-hero__image { object-fit:cover; object-position:center; }
.viallo-hero__veil { background:linear-gradient(90deg,rgba(28,17,26,.91),rgba(28,17,26,.67) 46%,rgba(28,17,26,.18)); }
.viallo-hero__copy,.viallo-hero__card { position:relative; z-index:1; }
.viallo-kicker { margin-bottom:1rem; color:#efd5ac; font-size:.7rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.viallo-hero h1 { max-width:760px; margin-bottom:1.4rem; font-size:clamp(3rem,6vw,5.8rem); line-height:1.02; letter-spacing:-.035em; }
.viallo-hero__lead { max-width:640px; color:rgba(255,255,255,.88); font-size:1.08rem; line-height:1.75; }
.viallo-actions { display:flex; flex-wrap:wrap; gap:.85rem; margin-top:1.8rem; }
.viallo-button { display:inline-flex; min-height:3.1rem; align-items:center; justify-content:center; padding:.8rem 1.1rem; border:1px solid transparent; border-radius:2px; font-size:.86rem; font-weight:760; transition:transform .18s ease,background .18s ease; }
.viallo-button:hover { transform:translateY(-2px); }
.viallo-button--solid { color:#fff; background:var(--v-plum); }
.viallo-button--light { color:var(--v-deep); background:#fff; }
.viallo-button--outline { color:#fff; border-color:rgba(255,255,255,.7); }
.viallo-hero__card { padding:1.5rem; color:var(--v-ink); background:rgba(255,253,249,.96); }
.viallo-hero__card h2 { margin-bottom:1.15rem; font-size:1.65rem; line-height:1.2; }
.viallo-fact { display:flex; justify-content:space-between; gap:1rem; padding:.75rem 0; border-top:1px solid var(--v-line); font-size:.8rem; }
.viallo-fact span { color:var(--v-muted); }
.viallo-trust { display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid var(--v-line); background:var(--v-paper); }
.viallo-trust p { display:flex; align-items:center; justify-content:center; min-height:5rem; margin:0; padding:1rem; border-right:1px solid var(--v-line); color:#4c4843; font-size:.78rem; font-weight:700; text-align:center; }
.viallo-section { padding:clamp(4.5rem,8vw,7.5rem) max(1rem,calc((100vw - 1260px)/2)); }
.viallo-section__head { max-width:760px; margin-bottom:3rem; }
.viallo-section__head h2 { margin-bottom:1rem; font-size:clamp(2.3rem,4.5vw,4rem); line-height:1.08; letter-spacing:-.025em; }
.viallo-section__head p:last-child { max-width:640px; margin-bottom:0; color:var(--v-muted); line-height:1.75; }
.viallo-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; }
.viallo-service { min-height:320px; display:flex; flex-direction:column; justify-content:space-between; padding:1.65rem; color:var(--v-ink); background:#f8f2eb; }
.viallo-service--featured { color:#fff; background:var(--v-plum); }
.viallo-service h3 { margin:.3rem 0 1rem; font-size:1.9rem; line-height:1.16; }
.viallo-service p { color:inherit; opacity:.78; line-height:1.7; }
.viallo-service small { font-weight:750; letter-spacing:.04em; }
.viallo-process { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--v-line); }
.viallo-process article { min-height:245px; padding:1.5rem; border-right:1px solid var(--v-line); }
.viallo-process strong { color:var(--v-gold); font-size:.75rem; letter-spacing:.12em; }
.viallo-process h3 { margin:3rem 0 .7rem; font-size:1.45rem; }
.viallo-process p { margin-bottom:0; color:var(--v-muted); font-size:.86rem; line-height:1.7; }
.viallo-companions { background:#eee6dc; }
.viallo-companion { padding:1.25rem; background:var(--v-paper); }
.viallo-avatar { min-height:250px; display:grid; place-items:center; margin-bottom:1.2rem; color:#fff; font-family:Georgia,serif; font-size:3.5rem; }
.viallo-avatar--plum { background:#705164; }.viallo-avatar--gold { background:#a77f4e; }.viallo-avatar--green { background:#507565; }
.viallo-demo { color:var(--v-green); font-size:.7rem; font-weight:800; }
.viallo-companion h3 { margin:.45rem 0; font-size:1.65rem; }.viallo-companion p { color:var(--v-muted); font-size:.84rem; line-height:1.65; }
.viallo-tags { display:flex; flex-wrap:wrap; gap:.4rem; padding-top:.8rem; border-top:1px solid var(--v-line); }
.viallo-tags span { padding:.35rem .5rem; border:1px solid var(--v-line); color:#5d5751; font-size:.68rem; }
.viallo-safety { color:#fff; background:var(--v-deep); }
.viallo-safety .viallo-section__head p:last-child { color:rgba(255,255,255,.72); }
.viallo-safety-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.2); }
.viallo-safety-grid article { min-height:190px; padding:1.4rem; border-right:1px solid rgba(255,255,255,.15); border-bottom:1px solid rgba(255,255,255,.15); }
.viallo-safety-grid h3 { margin:.3rem 0 .75rem; font-size:1.35rem; }.viallo-safety-grid p { margin:0; color:rgba(255,255,255,.68); font-size:.8rem; line-height:1.65; }
.viallo-faq { background:var(--v-paper); }.viallo-faq details { max-width:920px; margin:auto; padding:1.25rem 0; border-top:1px solid var(--v-line); }.viallo-faq details:last-child { border-bottom:1px solid var(--v-line); }
.viallo-faq summary { cursor:pointer; font:500 1.2rem/1.4 Georgia,"Noto Serif SC",serif; }.viallo-faq details p { max-width:720px; margin:1rem 0 0; color:var(--v-muted); font-size:.88rem; line-height:1.75; }
.viallo-inquiry { display:grid; grid-template-columns:.75fr 1.25fr; gap:3rem; background:var(--v-ivory); }.viallo-inquiry__intro { position:sticky; top:2rem; align-self:start; }.viallo-form-shell { padding:1.5rem; border:1px solid var(--v-line); background:var(--v-paper); }.viallo-form-shell h3 { margin-bottom:.75rem; font-size:1.7rem; }.viallo-form-shell p { color:var(--v-muted); line-height:1.65; }
.viallo-form-shell .ff-el-form-control { border-color:var(--v-line)!important; border-radius:0!important; }.viallo-form-shell .ff-btn-submit { border-radius:2px!important; background:var(--v-plum)!important; }
.viallo-final { padding:6rem 1rem; color:#fff; background:var(--v-plum); text-align:center; }.viallo-final h2 { max-width:820px; margin:0 auto 1rem; font-size:clamp(2.5rem,5vw,4.5rem); line-height:1.08; }.viallo-final p { max-width:620px; margin:0 auto 1.5rem; color:rgba(255,255,255,.78); line-height:1.7; }
.viallo-footer { padding:3rem max(1rem,calc((100vw - 1260px)/2)) 1.5rem; color:rgba(255,255,255,.72); background:#21181e; }.viallo-footer__grid { display:grid; grid-template-columns:1.5fr repeat(3,1fr); gap:2rem; padding-bottom:2.5rem; }.viallo-footer h3 { margin-bottom:.8rem; color:#fff; font-size:1rem; }.viallo-footer p,.viallo-footer a { display:block; margin:.45rem 0; color:rgba(255,255,255,.58); font-size:.78rem; line-height:1.6; }.viallo-footer__bottom { padding-top:1rem; border-top:1px solid rgba(255,255,255,.14); font-size:.7rem; }
@media (max-width:900px) { .viallo-bar { flex-wrap:wrap; }.viallo-nav { order:3; width:100%; justify-content:space-between; gap:.5rem; overflow:auto; }.viallo-hero { grid-template-columns:1fr; min-height:720px; }.viallo-hero__card { display:none; }.viallo-trust,.viallo-process { grid-template-columns:repeat(2,1fr); }.viallo-grid { grid-template-columns:1fr; }.viallo-safety-grid { grid-template-columns:repeat(2,1fr); }.viallo-inquiry { grid-template-columns:1fr; }.viallo-inquiry__intro { position:static; }.viallo-footer__grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px) { .viallo-announcement { font-size:.68rem; }.viallo-languages { margin-left:auto; }.viallo-nav { font-size:.75rem; }.viallo-hero { min-height:650px; padding:4rem 1.25rem 2.5rem; }.viallo-hero h1 { font-size:3.1rem; }.viallo-trust,.viallo-process,.viallo-safety-grid { grid-template-columns:1fr; }.viallo-trust p,.viallo-process article { border-right:0; border-bottom:1px solid var(--v-line); }.viallo-section { padding-inline:1.25rem; }.viallo-footer__grid { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { .viallo-home *, .viallo-home *::before, .viallo-home *::after { scroll-behavior:auto!important; transition-duration:.01ms!important; } }

/* Let the custom landing page own its canvas while preserving the parent theme elsewhere. */
body:has(.viallo-home) .wp-site-blocks > header.wp-block-template-part,
body:has(.viallo-home) .wp-site-blocks > footer.wp-block-template-part,
body:has(.viallo-home) .wp-block-post-title { display:none; }
body:has(.viallo-home) main#wp--skip-link--target,
body:has(.viallo-home) main#wp--skip-link--target > .wp-block-group,
body:has(.viallo-home) .entry-content.wp-block-post-content { width:100%; max-width:none!important; margin:0!important; padding:0!important; }
body:has(.viallo-home) main#wp--skip-link--target { margin:0!important; }
body:has(.viallo-home) .viallo-home { width:100vw!important; max-width:none!important; margin-inline:calc(50% - 50vw)!important; overflow:hidden; }

/* Quiet, editorial travel polish: tailored density on large screens and calm, touch-first hierarchy on small screens. */
@media (min-width:901px) {
	.viallo-bar { min-height:5.2rem; }
	.viallo-hero { min-height:720px; padding-bottom:4.8rem; }
	.viallo-hero__copy { max-width:50rem; }
	.viallo-hero__lead { font-size:1.12rem; }
	.viallo-grid { gap:1.25rem; }
	.viallo-service,.viallo-companion { transition:transform .2s ease, box-shadow .2s ease; }
	.viallo-service:hover,.viallo-companion:hover { transform:translateY(-5px); box-shadow:0 18px 40px rgba(45,29,41,.11); }
	.viallo-companion { min-height:100%; }
}

@media (max-width:900px) {
	.viallo-announcement { min-height:2.65rem; align-items:center; padding:.55rem 1.1rem; line-height:1.35; }
	.viallo-bar { display:grid; grid-template-columns:1fr auto; gap:.9rem; padding:1rem 1.25rem 1.15rem; }
	.viallo-brand { min-width:0; font-size:1.1rem; }
	.viallo-mark { width:2.25rem; height:2.25rem; }
	.viallo-languages { margin-left:0; }
	.viallo-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); grid-column:1 / -1; gap:.4rem; width:100%; margin:0; overflow:visible; }
	.viallo-nav a { min-height:2.45rem; display:flex; align-items:center; justify-content:center; padding:.35rem .2rem; border:1px solid var(--v-line); background:rgba(255,255,255,.68); font-size:.7rem; line-height:1.15; text-align:center; }
	.viallo-hero { min-height:calc(100svh - 10rem); padding:5.5rem 1.4rem 2.5rem; align-items:end; }
	.viallo-hero__veil { background:linear-gradient(180deg,rgba(28,17,26,.48),rgba(28,17,26,.87) 68%,rgba(28,17,26,.94)); }
	.viallo-hero h1 { max-width:11ch; margin-bottom:1rem; font-size:clamp(3.15rem,13vw,4.6rem); }
	.viallo-hero__lead { max-width:34rem; margin-bottom:0; font-size:1rem; line-height:1.65; }
	.viallo-actions { display:grid; grid-template-columns:1fr; gap:.65rem; width:min(100%,24rem); margin-top:1.5rem; }
	.viallo-button { min-height:3.35rem; }
	.viallo-trust { grid-template-columns:repeat(2,1fr); }
	.viallo-trust p { min-height:4.5rem; padding:.8rem .7rem; font-size:.72rem; }
	.viallo-section { padding-top:4.25rem; padding-bottom:4.25rem; }
	.viallo-section__head { margin-bottom:2rem; }
	.viallo-section__head h2 { font-size:clamp(2.15rem,10vw,3.25rem); }
	.viallo-service { min-height:0; gap:2.4rem; padding:1.45rem; }
	.viallo-service h3 { font-size:1.7rem; }
	.viallo-process { margin-inline:-1.25rem; }
	.viallo-process article { min-height:0; padding:1.35rem 1.25rem; }
	.viallo-process h3 { margin-top:1.35rem; }
	.viallo-companion { padding:1rem; }
	.viallo-avatar { min-height:190px; margin-bottom:1rem; }
	.viallo-safety-grid { margin-inline:-1.25rem; }
	.viallo-safety-grid article { min-height:0; padding:1.2rem 1.25rem; }
	.viallo-inquiry { gap:1.7rem; }
	.viallo-form-shell { padding:1.25rem; }
	.viallo-final { padding:4.5rem 1.25rem; text-align:left; }
	.viallo-final h2,.viallo-final p { margin-left:0; }
	.viallo-final .viallo-button { width:100%; }
}

@media (max-width:420px) {
	.viallo-announcement { font-size:.64rem; }
	.viallo-brand { font-size:1.02rem; }
	.viallo-languages a { padding:.35rem .42rem; }
	.viallo-nav { gap:.32rem; }
	.viallo-nav a { font-size:.64rem; }
	.viallo-hero { padding-inline:1.15rem; }
	.viallo-hero h1 { font-size:clamp(2.9rem,14vw,3.6rem); }
	.viallo-trust { grid-template-columns:1fr; }
	.viallo-trust p { border-right:0; border-bottom:1px solid var(--v-line); }
}

/* Keep the primary action readable inside the dark hero despite the global link reset. */
.viallo-home .viallo-button--light { color:var(--v-deep); }

/* Editorial resource pages: readable, source-led and intentionally separate from booking claims. */
.viallo-resource { width:min(100%,1100px); margin:0 auto; color:var(--v-ink); background:var(--v-paper); }
.viallo-resource__hero { padding:clamp(4rem,9vw,8rem) clamp(1.25rem,7vw,6.5rem) clamp(3rem,6vw,5rem); color:#fff; background:linear-gradient(120deg,var(--v-deep),var(--v-plum)); }
.viallo-resource__hero h1 { max-width:850px; margin:.6rem 0 1.2rem; font:500 clamp(2.8rem,6vw,5.7rem)/1.04 Georgia,"Noto Serif SC",serif; letter-spacing:-.035em; }
.viallo-resource__hero p:last-child { max-width:700px; margin:0; color:rgba(255,255,255,.8); font-size:1.08rem; line-height:1.75; }
.viallo-resource__body { display:grid; gap:0; padding:clamp(2.25rem,6vw,5.5rem) clamp(1.25rem,7vw,6.5rem); }
.viallo-resource__body section { display:grid; grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr); gap:2rem; padding:2rem 0; border-top:1px solid var(--v-line); }
.viallo-resource__body section:first-child { border-top:0; padding-top:0; }
.viallo-resource h2 { margin:0; font:500 clamp(1.55rem,2.4vw,2.2rem)/1.2 Georgia,"Noto Serif SC",serif; }
.viallo-resource__body p { max-width:620px; margin:0; color:var(--v-muted); font-size:1rem; line-height:1.8; }
.viallo-resource__sources { margin:0 clamp(1.25rem,7vw,6.5rem); padding:2rem; background:#f4eee5; border-left:3px solid var(--v-gold); }
.viallo-resource__sources h2 { margin-bottom:1rem; font-size:1.3rem; }
.viallo-resource__sources a { display:block; width:fit-content; margin:.7rem 0; color:var(--v-plum); font-weight:750; text-decoration:underline; text-underline-offset:.2em; }
.viallo-resource__cta { display:flex; flex-wrap:wrap; align-items:center; gap:1.2rem; padding:0 clamp(1.25rem,7vw,6.5rem) clamp(3.5rem,7vw,6rem); }
.viallo-resource__cta > a:not(.viallo-button) { color:var(--v-plum); font-weight:750; }
body:has(.viallo-resource) .wp-site-blocks > header.wp-block-template-part,body:has(.viallo-resource) .wp-site-blocks > footer.wp-block-template-part,body:has(.viallo-resource) .wp-block-post-title { display:none; }
body:has(.viallo-resource) main#wp--skip-link--target,body:has(.viallo-resource) main#wp--skip-link--target > .wp-block-group,body:has(.viallo-resource) .entry-content.wp-block-post-content { width:100%; max-width:none!important; margin:0!important; padding:0!important; }
body:has(.viallo-resource) main#wp--skip-link--target { margin:0!important; }
@media (max-width:700px) { .viallo-resource__body section { grid-template-columns:1fr; gap:.9rem; padding:1.6rem 0; }.viallo-resource__sources { margin:0 1.25rem; padding:1.35rem; }.viallo-resource__cta { align-items:stretch; flex-direction:column; }.viallo-resource__cta .viallo-button { width:100%; }.viallo-resource__hero { min-height:55svh; display:flex; flex-direction:column; justify-content:end; } }
