
/* Operational UI for Diginuohooja 2.2; local assets, no external fonts. */
.booking-preferences { border:1px solid #cbd1c4; border-radius:12px; padding:18px; margin:18px 0; min-width:0; }
.booking-preferences legend { color:var(--ink,#202522); font-weight:650; padding-inline:6px; font-size:1rem; }
.booking-preferences p { color:#515d4d; font-size:.86rem; line-height:1.55; margin:12px 0 0; }
.booking-preferences .form-grid { margin:0; }
.booking-preferences input,.booking-preferences select { max-width:100%; min-width:0; }
.dn-booking { color:#202522; background:#f5f4ee; border:1px solid #d5d8ce; border-radius:18px; padding:clamp(22px,4vw,38px); margin-block:24px 0; }
.dn-booking h2 { font-size:clamp(1.5rem,3vw,2rem); margin:0 0 12px; }
.dn-booking p { color:#515d4d; max-width:66ch; }
.dn-booking .btn { margin-top:10px; }
.dn-booking :is(input,select,textarea,button) { max-width:100%; }
.dn-booking iframe { width:100%; border:0; }
.price.price-quote { font-size:clamp(1.75rem,3vw,2.5rem); }
.pricing-terms { margin-top:24px; border:1px solid #d5d8ce; background:#fff; padding:clamp(20px,3vw,30px); border-radius:18px; color:#202522; }
.pricing-terms h3 { margin:0 0 14px; font-size:1.25rem; }
.pricing-terms p { max-width:90ch; font-size:.96rem; line-height:1.7; }
.pricing-terms dl { display:grid; grid-template-columns:1fr 1fr; gap:18px 30px; margin:0; }
.pricing-terms dt { font-weight:700; margin-bottom:6px; }
.pricing-terms dd { margin:0; color:#515d4d; white-space:normal; line-height:1.65; }
#contact-status { overflow-wrap:anywhere; scroll-margin-top:120px; }
.dn-privacy-controls { background:#202821; color:#fff; text-align:center; padding:0 20px 32px; }
.dn-privacy-controls button { border:1px solid #758172; border-radius:8px; color:#fff; background:transparent; padding:10px 16px; min-height:44px; cursor:pointer; font:inherit; font-size:.875rem; }
.dn-consent { position:fixed; z-index:1500; left:20px; right:20px; bottom:20px; max-width:760px; margin-inline:auto; padding:24px; border:1px solid #bdc5b7; border-radius:18px; background:#fff; color:#202821; box-shadow:0 12px 70px #1119; max-height:calc(100dvh - 40px); overflow:auto; }
.dn-consent h2 { font-size:1.25rem; margin:0 0 10px; }
.dn-consent h2:focus { outline:2px solid #526b49; outline-offset:4px; }
.dn-consent p { font-size:.92rem; color:#46513e; line-height:1.6; margin:0 0 12px; }
.dn-consent a { color:#29471f; text-decoration:underline; text-underline-offset:3px; }
.dn-consent-options { display:flex; gap:12px 28px; flex-wrap:wrap; margin:12px 0 16px; }
.dn-consent-options label { display:flex; align-items:center; gap:10px; min-height:44px; font-weight:600; font-size:.95rem; }
.dn-consent-options input { width:22px; height:22px; accent-color:#38522b; }
.dn-consent-actions { display:flex; flex-wrap:wrap; gap:10px; }
.dn-consent-actions button { cursor:pointer; min-height:46px; padding:10px 16px; background:#edf0e8; color:#202821; border:1px solid #7d8b72; border-radius:9px; font:inherit; font-size:.9rem; font-weight:650; flex:1 1 170px; }
.dn-consent button:focus-visible,.dn-privacy-controls button:focus-visible { outline:3px solid #b74410; outline-offset:3px; }
.dn-consent [disabled] { opacity:.5; }
@media(max-width:600px) {
 .pricing-terms dl { grid-template-columns:1fr; }
 .booking-preferences { padding:14px; }
 .dn-booking { padding:22px; }
 .dn-consent { left:10px; right:10px; bottom:10px; padding:20px; max-height:calc(100dvh - 20px); }
 .dn-consent-actions button { flex-basis:100%; }
 .dn-privacy-controls { padding-bottom:90px; }
}

