/* Shared page system, including compact navigation and touch layouts. */
.final-ui { --brand-accent:#2c6550; --brand-dark:#172c27; color:#172c27; }
.final-ui *, .final-ui *::before, .final-ui *::after { box-sizing:border-box; }
.final-ui img { max-width:100%; }
.final-ui #main-nav { min-height:76px; }
.final-ui #main-nav > div:first-child { min-height:76px; padding-block:18px; }
.final-ui #main-nav.nav-solid { background:#fff; border-bottom:1px solid #d8dfda; }
.final-ui #main-nav.nav-solid .nav-links, .final-ui #main-nav.nav-solid .nav-mobile-btn { color:#172c27; }
.final-ui #main-nav.nav-solid .nav-cta { color:#fff; background:#172c27; }
.final-ui .nav-links { gap:32px; }
.final-ui .nav-links > * { margin-left:0; }
.final-ui .nav-links a[aria-current="page"] { text-decoration:underline; text-underline-offset:7px; }
.final-ui #main-nav.menu-open { background:#fff; }
.final-ui .nav-cta { box-shadow:none; }
.final-ui #mobile-menu { padding:88px 0 28px; background:#fff; overscroll-behavior:contain; }
.final-ui footer { background:#172c27; border-color:#2f473d; }
.final-ui footer [class*="text-gray-"] { color:#b9c8bf; }
.final-ui main > section:not(.vh-section) { padding-block:84px; }
.final-ui main h2 { font-weight:500; letter-spacing:-.04em; line-height:1.15; }
.final-ui main h3 { letter-spacing:-.018em; }
.final-ui main p, .final-ui main li { overflow-wrap:break-word; }
.final-ui main .bg-black { background:#172c27; }
.final-ui main .text-black { color:#172c27; }
.final-ui main .text-green-600, .final-ui main .text-green-700 { color:#2c6550; }
.final-ui main a, .final-ui main button { touch-action:manipulation; }
.final-ui :is(a,button,input,select,textarea):focus-visible { outline:3px solid #629b7c; outline-offset:4px; }
.final-ui main .text-center:has(> h2) { text-align:left; }
.final-ui main .text-center:has(> h2) > p { margin-left:0; }
.final-ui main .rounded-full:not(input):not(button):not(a) { border-radius:4px; }
.final-ui main [class*="shadow-"] { box-shadow:none; }
.final-ui main img:not(.vh-hero-image) { border-radius:4px; }
.final-ui main .grayscale { filter:none; }
.final-ui main .animate-on-scroll { opacity:1; transform:none; }
.final-ui .fade-in-up, .final-ui .fade-in { animation:none; opacity:1; transform:none; }
.final-service main { padding-top:76px; }
.final-service .service-hero { display:grid; grid-template-columns:1.08fr 1fr; min-height:650px; background:#f2f5f2; padding:0; }
.service-hero-copy { padding:80px max(40px,calc((100vw - 1280px)/2)); padding-right:54px; align-self:center; }
.service-hero-copy .editorial-kicker { font-size:.72rem; text-transform:uppercase; letter-spacing:.13em; font-weight:600; margin:0 0 25px; }
.final-service .service-hero h1 { font-size:clamp(2.8rem,4.3vw,4.5rem); line-height:1.05; letter-spacing:-.055em; font-weight:500; margin-bottom:26px; color:#172c27; }
.service-hero .service-lead { font-size:1.12rem; line-height:1.65; max-width:48ch; color:#52615b; margin:0 0 24px; }
.service-hero .service-fee { font-size:.82rem; line-height:1.6; color:#52615b; margin-bottom:26px; }
.final-service .service-hero > img { width:100%; height:100%; max-height:760px; min-height:650px; object-fit:cover; border-radius:0; }
.final-service .service-grid { grid-template-columns:1fr 1fr; gap:32px; }
.final-service .service-grid > div { border:0; border-top:1px solid #b6c8bb; border-radius:0; padding:26px 12px 24px 0; background:transparent; }
.final-service .service-grid > div:last-child:nth-child(odd) { grid-column:1/-1; }
.final-service .service-grid > div > div:first-child:has(>svg) { background:transparent; color:#2c6550; width:32px; height:32px; }
.final-service .service-grid > div > div:first-child:has(>svg) svg { color:#2c6550; }
.final-service main section .text-xs.uppercase { letter-spacing:.08em; }
.final-service main section > div > .text-center > span { display:none; }
.final-article main, .final-resource main { padding-top:76px; }
.final-article main > header, .final-resource main > header { padding:54px 24px 42px; background:#f2f5f2; border:0; }
.final-article main > header > div, .final-resource main > header > div { max-width:1060px; padding:0; text-align:left; }
.final-article main > header h1, .final-resource main > header h1 { font-size:clamp(2.4rem,4.4vw,4rem); font-weight:500; letter-spacing:-.045em; line-height:1.12; max-width:24ch; }
.final-article main > header .rounded-full, .final-resource main > header .rounded-full { background:transparent; border:0; color:#52615b; padding:0; }
.final-article main > header .text-center, .final-resource main > header .text-center { text-align:left; }
.editorial-banner { margin:0; background:#f2f5f2; padding:0 24px 48px; }
.editorial-banner img { width:100%; max-width:1060px; height:290px; object-fit:cover; margin:auto; }
.final-article main > section { padding-top:55px; }
.final-article main section p, .final-article main section li { line-height:1.8; }
.final-article main section h2 { font-size:clamp(1.8rem,3vw,2.4rem); scroll-margin-top:100px; }
.final-article .toc-link { display:block; padding-block:7px; }
.final-ui .overflow-x-auto { -webkit-overflow-scrolling:touch; max-width:100%; overscroll-behavior-x:contain; }
.final-ui table { font-size:.92rem; line-height:1.65; min-width:520px; }
.final-ui th, .final-ui td { padding:14px 18px; vertical-align:top; }
.final-ui th { background:#edf2ee; }
.final-ui tbody tr:nth-child(even) { background:#f6f8f6; }
.final-location main > section.-mt-12, .final-golf main > section.-mt-12 { margin-top:0; }
.final-location main > section img, .final-golf main > section img { object-fit:cover; }
.final-golf .golf-hero { min-height:740px; height:auto; padding:170px 0 100px; }
.final-golf .golf-hero > .relative { text-align:left; width:min(1280px,calc(100% - 48px)); max-width:1280px; margin:auto; }
.final-golf .golf-hero h1 { font-size:clamp(3rem,5.4vw,5rem); font-weight:500; letter-spacing:-.055em; line-height:1.08; max-width:15ch; }
.final-golf .golf-hero p { margin-left:0; max-width:55ch; }
.final-golf .golf-hero .items-center { align-items:flex-start; }
.final-golf .golf-hero > .absolute > div { background:linear-gradient(90deg,rgba(10,30,24,.75),rgba(10,30,24,.2)); }
.final-golf .bg-brand-golf { background:#172c27; }
.final-ui .form-error { background:#fff1ef; color:#8b3025; border:1px solid #d8aaa2; padding:16px; margin:16px 0; border-radius:4px; }
.final-ui input, .final-ui select, .final-ui textarea { border-radius:4px; accent-color:#2c6550; }
.final-ui input[type="checkbox"], .final-ui input[type="radio"] { min-width:20px; min-height:20px; }
@media (max-width:1023px) {
 .final-ui #main-nav > div:first-child > .md\:flex, .final-ui #main-nav > div:first-child > .md\:inline-block { display:none; }
 .final-ui #mobile-menu-btn { display:inline-flex; width:44px; height:44px; align-items:center; justify-content:center; }
 .final-ui #mobile-menu:not(.hidden) { display:block; }
 .final-ui #main-nav > div:first-child { padding-block:10px; min-height:72px; }
 .final-ui .vh-wrap { width:calc(100% - 48px); }
 .final-service .service-hero { min-height:540px; grid-template-columns:1.1fr 1fr; }
 .service-hero-copy { padding:48px 28px; }
 .final-service .service-hero h1 { font-size:clamp(2.6rem,5vw,3.6rem); }
 .final-service .service-hero > img { min-height:540px; }
 .final-ui .vh-intro, .final-ui .vh-blueprint, .final-ui .vh-visit { gap:40px; }
 .final-ui .vh-steps { grid-template-columns:1fr 1fr; }
 .final-ui main > section:not(.vh-section) { padding-block:64px; }
 .final-article aside#toc-sidebar { display:none !important; }
 .final-article main .flex:has(>aside#toc-sidebar) { display:block; }
}
@media (max-width:767px) {
 .final-ui #main-nav > div:first-child { padding-inline:20px; }
 .final-ui main > section:not(.vh-section) { padding-block:48px; }
 .final-ui .vh-wrap { width:calc(100% - 40px); }
 .final-ui main h2 { font-size:clamp(1.9rem,7.5vw,2.6rem); }
 .final-service .service-hero { display:flex; flex-direction:column; min-height:0; }
 .service-hero-copy { padding:48px 22px 38px; }
 .final-service .service-hero h1 { font-size:clamp(2.5rem,10vw,3.7rem); }
 .service-hero .service-lead { font-size:1rem; }
 .final-service .service-hero > img { min-height:0; height:280px; }
 .final-service .service-grid { grid-template-columns:1fr; gap:20px; }
 .final-service .service-grid > div:last-child { grid-column:auto; }
 .final-article main > header, .final-resource main > header { padding:36px 20px 28px; }
 .final-article main > header h1, .final-resource main > header h1 { font-size:clamp(2rem,8vw,2.7rem); max-width:none; }
 .editorial-banner { padding:0 20px 28px; }
 .editorial-banner img { height:210px; }
 .final-ui main .p-10, .final-ui main .p-12 { padding:24px; }
 .final-ui main .p-8 { padding:22px; }
 .final-ui main .gap-16 { gap:32px; }
 .final-ui main .text-5xl { font-size:2.6rem; }
 .final-ui main .text-6xl { font-size:3rem; }
 .final-ui main a.rounded-full { padding:16px 22px; }
 .final-ui main button[type="submit"] { min-height:52px; }
 .final-ui input:not([type="checkbox"]):not([type="radio"]), .final-ui select, .final-ui textarea { font-size:16px; min-height:48px; }
 .final-ui .flex.justify-between:has(> .tabular-nums) { flex-wrap:wrap; gap:8px 16px; }
 .final-golf .golf-hero { min-height:640px; padding:140px 0 80px; }
 .final-golf .golf-hero > .relative { width:100%; padding-inline:22px; }
 .final-golf .golf-hero h1 { font-size:clamp(2.7rem,10vw,4rem); }
 .final-location header.relative h1 { font-size:clamp(2.5rem,10vw,3.4rem); }
 .final-ui footer > div { padding-inline:22px; }
 .final-ui footer .grid { grid-template-columns:1fr 1fr; gap:32px 24px; }
 .final-ui footer .grid > div:first-child { grid-column:1/-1; }
 .final-ui footer li a { display:inline-block; padding-block:5px; }
}
@media (max-width:359px) {
 .final-ui .nav-logo { width:164px; height:auto; }
 .final-ui main .px-6 { padding-inline:20px; }
 .final-ui .vh-steps { grid-template-columns:1fr; }
 .final-ui .vh-price { padding:22px; }
}
@media (prefers-reduced-motion:reduce) {
 .final-ui *, .final-ui *::before, .final-ui *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; }
}

.table-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; -webkit-overflow-scrolling:touch; }
.final-article main article, .final-article main .flex-1 { min-width:0; }
.final-ui #main-nav.menu-open { backdrop-filter:none; -webkit-backdrop-filter:none; }
.final-ui #main-nav.menu-open > div:first-child { background:#fff; }
.final-ui #main-nav.menu-open .nav-mobile-btn { color:#172c27; }
.final-ui #mobile-menu { height:100dvh; bottom:auto; }
.final-ui .golf-hero > .relative > div:first-child { background:transparent; padding:0; border:0; backdrop-filter:none; font-weight:500; }

.final-ui button:disabled { opacity:.45; cursor:not-allowed; transform:none; }
