/* Accessibility overrides shared by every public page. */
:root { --accessible-blue: #07618a; }
html { scroll-behavior: auto; }
body { overflow-wrap: anywhere; }
a { color: var(--accessible-blue); }
a:hover, a:focus { color: #034363; }
main a:not(.site_service_box a):not(.carousel-control-prev):not(.carousel-control-next) { text-decoration: underline; }
:focus-visible { outline: 3px solid #111 !important; outline-offset: 4px; box-shadow: 0 0 0 6px white !important; }
main:focus { outline: none; }
.skip-link { position: fixed; left: 1rem; top: -10rem; padding: .8rem; background: #fff; color: #111; z-index: 10000; }
.skip-link:focus { top: 1rem; }
.navbar-light .navbar-nav .active > .nav-link, .navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus,
.navbar-light .navbar-nav .nav-link.active, .text-primary { color: var(--accessible-blue) !important; }
button.dropdown-toggle { border: 0; background: none; cursor: pointer; font: inherit; font-size: 20px; padding: 8px 15px; }
.navbar-nav .dropdown-menu.show { display: block; }
.navbar-brand { max-width: calc(100% - 70px); }
.navbar-brand img { max-width: 100%; }
.navbar-toggler, .dropdown-toggle, .dropdown-item, .nav-link { min-height: 44px; }
.bg-primary, .site_subheader, .site_villa_info_wrapper, .site_blue_bg, .site_howit_wrapper { background-color: var(--accessible-blue) !important; color: white; }
.site_blue_bg a, .site_villa_info_wrapper a { color: white; text-decoration: underline; }
.site_dark_background, .site_dark_background .site_copyright { color: #222; }
.site_dark_background a { color: var(--accessible-blue); text-decoration: underline; }
.site_section_title { color: var(--accessible-blue); }
.site_ins_card .card-header { background-color: var(--accessible-blue); }
.site_temecula_link { border: 0; background: transparent; cursor: pointer; color: var(--accessible-blue); padding: .4rem 0; text-decoration: underline; }
.site_wineries_media_list .media-body li a { display: inline-block; min-height: 24px; padding: 2px 0; }
.site_content_box .site_section_title { color: inherit; }
.site_subheader_inner { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.site_subheader_inner h1 { order: 1; margin: 0 auto; font-size: 1.875rem; }
.site_arrow_link { position: static; flex-shrink: 0; transform: none; opacity: 1; color: white; min-width: 44px; min-height: 44px; }
.site_arrow_left { order: 0; }.site_arrow_right { order: 2; }
.site_arrow_link i { font-size: 2.5rem; }
.site_service_title { background: rgba(0,0,0,.85); padding: .5rem; }
.site_service_title h2 { font-size: 1.875rem; color: white; margin: 0; }
.site_title_letter_space { letter-spacing: .15rem; }
button.carousel-control-prev, button.carousel-control-next { border: 0; color: white; font-size: 2.5rem; opacity: 1; background: transparent; z-index: 12; cursor: pointer; min-width: 44px; }
.carousel-control-prev > i, .carousel-control-next > i { font-size: 2.5rem; background: #111; border-radius: 50%; }
.carousel-control-prev, .carousel-control-next { text-shadow: 0 0 2px #111; }
.scroll-down a { background: #111; color: white !important; padding: .75rem 1rem; animation: none !important; }
.site_slider_overlay { pointer-events: none; }.site_slider_overlay a { pointer-events: auto; }
.text-muted { color: #555 !important; }.text-danger, .field-error { color: #a31212 !important; }
.btn-primary { background: var(--accessible-blue); border-color: var(--accessible-blue); }
.btn-outline-primary { color: var(--accessible-blue); border-color: var(--accessible-blue); }
.btn-outline-primary:hover { background: var(--accessible-blue); color: white; }
.form-control:focus { border-color: #07618a; }.form-control[aria-invalid="true"] { border: 2px solid #a31212; }
.field-error { margin: .35rem 0; }.form-status:not(:empty) { border: 2px solid #07618a; padding: 1rem; margin: 1rem 0; background: #f5faff; color: #111; }
.form-status a { display: inline-block; min-height: 24px; padding: .25rem 0; }
img, video, iframe { max-width: 100%; } video { height: auto; }
.card, .card-img { height: auto !important; }
dialog.photo-viewer { max-width: min(94vw,1100px); max-height: 94vh; width: 100%; padding: 1rem; border: 2px solid #111; background: white; color: #111; }
/* The bundled Bootstrap reset otherwise displays closed native dialogs. */
dialog.photo-viewer:not([open]) { display: none; }
dialog::backdrop { background: rgba(0,0,0,.8); }
.photo-viewer img { max-height: 70vh; object-fit: contain; display: block; margin: auto; }
.photo-viewer video { max-height: 70vh; display: block; margin: auto; }
.viewer-controls { display: flex; justify-content: space-between; gap: .5rem; flex-wrap: wrap; margin-bottom: .75rem; }
.viewer-controls button { padding: .6rem; min-width: 44px; min-height: 44px; }
@media(max-width: 767px) {
 .site_wineries_media_list .media { flex-wrap: wrap; gap: .5rem; }.site_wineries_media_list .media-body { min-width: 0; }
 .site_content_box { padding: 1.5rem !important; }.site_display_table, .site_display_table_cell { display: block; height: auto !important; }
 .site_subheader_inner h1 { font-size: 1.4rem; }.site_arrow_link i { font-size: 2rem; }
 .site_title_btn_list .ml-4 { margin-left: 0 !important; }.site_title_btn_list .list-inline-item { margin: .5rem 0; }
 .site_slide_title { font-size: 1.5rem; line-height: 1.4; }
}
@media(prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; } }
