/* Shared production components. Homepage-specific composition remains in style.css. */
.vn-site-main { overflow: clip; }
.vn-page { margin: 0; color: var(--wp--preset--color--ink); }
.vn-page :where(a,button,input,select,textarea,summary):focus-visible {
	outline: 3px solid var(--wp--preset--color--sport-orange); outline-offset: 3px;
}
.vn-leaf-rule { display:block; width:7.5rem; color:var(--wp--preset--color--sport-turquoise); }
.vn-leaf-rule svg { width:100%; fill:none; stroke:currentColor; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; }
.vn-eyebrow { margin:0 0 .75rem; color:var(--wp--preset--color--sport-orange); font-size:.78rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.vn-icon-list { list-style:none; padding:0; display:grid; gap:.7rem; }
.vn-icon-list li { position:relative; padding-left:2rem; }
.vn-icon-list li::before { content:""; position:absolute; left:0; top:.2em; width:1.15rem; height:1.15rem; border:2px solid var(--wp--preset--color--sport-turquoise); border-radius:50% 55% 48% 60%; transform:rotate(-8deg); }
.vn-icon-list li::after { content:""; position:absolute; left:.36rem; top:.48em; width:.42rem; height:.22rem; border:solid var(--wp--preset--color--sport-primary); border-width:0 0 2px 2px; transform:rotate(-45deg); }
.vn-brand-learning .vn-icon-list li::before { border-color:var(--wp--preset--color--learn-lilac); }
.vn-brand-learning .vn-icon-list li::before { width:1.45rem; height:1.45rem; top:.05em; border:0; border-radius:0; background-image:var(--vn-list-icon,url("../icons/brain.svg")); background-position:center; background-size:contain; background-repeat:no-repeat; transform:none; }
.vn-brand-learning .vn-icon-list li::after { display:none; }
.vn-page-cta { position:relative; isolation:isolate; padding:clamp(4rem,8vw,7rem) var(--wp--style--root--padding-right); overflow:hidden; background:var(--wp--preset--color--sport-primary); color:#fff; }
.vn-page-cta::before,.vn-page-cta::after { content:""; position:absolute; z-index:-1; width:24rem; aspect-ratio:1; border:1px solid rgb(255 255 255 / .16); border-radius:43% 57% 61% 39%; }
.vn-page-cta::before { left:-10rem; top:-13rem; transform:rotate(20deg); }
.vn-page-cta::after { right:-9rem; bottom:-15rem; transform:rotate(-24deg); }
.vn-page-cta__inner { max-width:52rem; margin-inline:auto; text-align:center; }
.vn-page-cta h2 { color:#fff; margin-top:0; }
.vn-page-cta .wp-block-buttons { justify-content:center; }
.vn-page-cta .wp-block-button__link { background:var(--wp--preset--color--sport-orange); color:#fff; }

/* Editable photographic layer for one selected solid panel per internal page. */
.vn-photo-panel { position:relative!important; isolation:isolate; overflow:hidden; }
.vn-photo-panel__media { position:absolute!important; inset:0; z-index:0; width:100%!important; max-width:none!important; height:100%; margin:0!important; border-radius:inherit; overflow:hidden; }
.vn-photo-panel__media img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.vn-photo-panel__media::after { content:""; position:absolute; inset:0; background:linear-gradient(115deg,rgb(3 35 43 / .94) 0%,rgb(1 90 94 / .84) 58%,rgb(1 90 94 / .68) 100%); }
.vn-photo-panel--orange .vn-photo-panel__media::after { background:linear-gradient(115deg,rgb(67 25 7 / .94) 0%,rgb(177 63 8 / .84) 58%,rgb(255 100 13 / .7) 100%); }
.vn-photo-panel > :not(.vn-photo-panel__media) { position:relative; z-index:2; }
.vn-form-notice { padding:1rem 1.15rem; border-radius:12px; margin-bottom:1rem; font-weight:600; }
.vn-form-notice--success { background:#e5f7ef; color:#0b5c43; }
.vn-form-notice--error { background:#fff0ed; color:#8b2419; }
.vn-contact-form { display:grid; grid-template-columns:1fr 1fr; gap:1rem 1.25rem; }
.vn-contact-form p { margin:0; }
.vn-contact-form p:nth-of-type(n+3),.vn-contact-form .vn-consent { grid-column:1/-1; }
.vn-contact-form label { display:block; margin-bottom:.4rem; font-weight:650; }
.vn-contact-form input:not([type=checkbox]),.vn-contact-form select,.vn-contact-form textarea { width:100%; box-sizing:border-box; }
.vn-contact-form .vn-consent label { display:flex; gap:.7rem; align-items:flex-start; font-weight:400; }
.vn-contact-form input[type=checkbox] { margin-top:.3rem; }
.vn-contact-form button { border:0; border-radius:12px; background:var(--wp--preset--color--sport-orange); color:#fff; padding:.9rem 1.35rem; font:inherit; font-weight:700; cursor:pointer; }
.vn-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.vn-optional { color:var(--wp--preset--color--muted-text); font-size:.85em; font-weight:400; }
.vn-pattern-placeholder { min-height:18rem; display:grid; place-items:center; padding:2rem; border:1px dashed var(--wp--preset--color--line); border-radius:24px; background:linear-gradient(135deg,var(--wp--preset--color--mist),#fff); color:var(--wp--preset--color--muted-text); text-align:center; }
.vn-virtuagym-slot { border-left:4px solid var(--wp--preset--color--sport-orange); padding:1.25rem 1.5rem; background:var(--wp--preset--color--sport-sand); border-radius:0 16px 16px 0; }
.vn-footer__actions { gap:.5rem 1.4rem; padding:1.25rem 0; border-top:1px solid rgb(255 255 255 / .14); border-bottom:1px solid rgb(255 255 255 / .14); }
.vn-footer__actions p { margin:0; }
.vn-footer__actions a { color:#fff; font-weight:650; text-decoration-thickness:1px; text-underline-offset:.25em; }
@media (max-width:700px) { .vn-contact-form { grid-template-columns:1fr; } .vn-contact-form p { grid-column:1!important; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }
