.fod-book,.fod-check-form{color:var(--e-global-color-text);font-family:var(--e-global-typography-text-font-family);position:relative}
.fod-book__steps{list-style:none;margin:0 0 var(--space-lg);padding:0 0 var(--space-sm);display:flex;gap:var(--space-sm);flex-wrap:wrap;border-bottom:1px solid var(--e-global-color-accent)}
.fod-book__step{font-family:var(--e-global-typography-accent-font-family);font-size:var(--e-global-typography-accent-font-size);letter-spacing:var(--e-global-typography-accent-letter-spacing);text-transform:var(--e-global-typography-accent-text-transform);color:var(--e-global-color-primary);opacity:.55;display:flex;align-items:center;gap:var(--space-xs)}
.fod-book__step.is-active{opacity:1;color:var(--e-global-color-secondary)}
.fod-book__stepnum{display:inline-grid;place-items:center;inline-size:1.75rem;block-size:1.75rem;border:1px solid currentColor;border-radius:2px}
.fod-book__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:var(--space-md);align-items:end}
.fod-field{display:flex;flex-direction:column;gap:var(--space-xs)}
.fod-field--wide{grid-column:1/-1}
.fod-field__label,.fod-book__interests legend{font-family:var(--e-global-typography-formlabel-font-family);font-size:var(--e-global-typography-formlabel-font-size);font-weight:var(--e-global-typography-formlabel-font-weight);letter-spacing:var(--e-global-typography-formlabel-letter-spacing);text-transform:var(--e-global-typography-formlabel-text-transform);color:var(--e-global-color-primary)}
.fod-book .fod-field__input,.fod-check-form .fod-field__input{font-family:var(--e-global-typography-formfield-font-family);font-size:var(--e-global-typography-formfield-font-size);line-height:var(--e-global-typography-formfield-line-height);color:var(--e-global-color-text);background:var(--e-global-color-canvascream);border:1px solid var(--e-global-color-primary);border-radius:2px;padding:var(--space-sm) var(--space-md);inline-size:100%;box-sizing:border-box}
.fod-book .fod-field__input:focus-visible,.fod-check-form .fod-field__input:focus-visible{outline:2px solid var(--e-global-color-secondary);outline-offset:2px}
.fod-book .fod-field.is-invalid .fod-field__input{border-color:var(--e-global-color-secondary)}
.fod-field__error{font-size:var(--e-global-typography-bodys-font-size);color:var(--e-global-color-secondary)}
.fod-book__hint,.fod-book__sample,.fod-book__policytext{font-size:var(--e-global-typography-bodys-font-size);line-height:var(--e-global-typography-bodys-line-height);color:var(--e-global-color-primary);margin:var(--space-sm) 0}
.fod-book__next{margin-top:var(--space-md)}
.fod-book__alert{background:var(--e-global-color-khaki);border-left:3px solid var(--e-global-color-secondary);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md)}
.fod-book__summary{font-family:var(--e-global-typography-h4-font-family);font-size:var(--e-global-typography-h4-font-size);font-weight:var(--e-global-typography-h4-font-weight);line-height:var(--e-global-typography-h4-line-height);margin:0 0 var(--space-md)}
.fod-book__rooms{display:grid;gap:var(--space-md)}
.fod-book .fod-room{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-md);background:var(--e-global-color-khaki);border:1px solid var(--e-global-color-accent);border-radius:2px;padding:var(--space-md)}
@media (min-width:48em){.fod-book .fod-room{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr)}
.fod-book .fod-room--noimg{grid-template-columns:minmax(0,1fr)}}
.fod-room__img{aspect-ratio:4/3;object-fit:cover;inline-size:100%;border:1px solid var(--e-global-color-accent);display:block}
.fod-room__name{font-family:var(--e-global-typography-h3-font-family);font-size:var(--e-global-typography-h3-font-size);font-weight:var(--e-global-typography-h3-font-weight);line-height:var(--e-global-typography-h3-line-height);margin:0 0 var(--space-xs)}
.fod-room__avail{font-family:var(--e-global-typography-accent-font-family);font-size:var(--e-global-typography-accent-font-size);letter-spacing:var(--e-global-typography-accent-letter-spacing);text-transform:var(--e-global-typography-accent-text-transform);color:var(--e-global-color-secondary);margin:0 0 var(--space-sm)}
.fod-room__boards{display:grid;gap:var(--space-xs);margin:var(--space-sm) 0}
.fod-book .fod-board{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border:1px solid var(--e-global-color-primary);border-radius:2px;background:var(--e-global-color-canvascream);cursor:pointer}
.fod-board:has(input:checked){border-color:var(--e-global-color-secondary);box-shadow:inset 0 0 0 1px var(--e-global-color-secondary)}
.fod-board input{accent-color:var(--e-global-color-secondary)}
.fod-room--unavailable{opacity:.6}
.fod-book__nav{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-top:var(--space-lg)}
.fod-book__interests{border:1px solid var(--e-global-color-primary);border-radius:2px;padding:var(--space-md);margin:var(--space-md) 0;display:grid;gap:var(--space-xs)}
.fod-check{display:flex;flex-direction:row;gap:var(--space-xs);align-items:flex-start}
.fod-check input{accent-color:var(--e-global-color-secondary);margin-top:.35em}
.fod-hp{position:absolute;left:-10000px;inline-size:1px;block-size:1px;overflow:hidden}
.fod-book__done,.fod-book__manage{background:var(--e-global-color-khaki);border:1px solid var(--e-global-color-accent);padding:var(--space-lg)}
.fod-book__donetitle{font-family:var(--e-global-typography-h3-font-family);font-size:var(--e-global-typography-h3-font-size);font-weight:var(--e-global-typography-h3-font-weight);line-height:var(--e-global-typography-h3-line-height);margin:0 0 var(--space-sm)}
.fod-book__facts{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-xs) var(--space-md);margin:0 0 var(--space-md)}
.fod-book__facts dt{font-family:var(--e-global-typography-formlabel-font-family);font-size:var(--e-global-typography-formlabel-font-size);letter-spacing:var(--e-global-typography-formlabel-letter-spacing);text-transform:var(--e-global-typography-formlabel-text-transform);color:var(--e-global-color-primary)}
.fod-book__facts dd{margin:0}
.fod-book[aria-busy="true"]{opacity:.6;pointer-events:none}

/* Date checker on a dark ground (hero): labels and hairlines lift to cream/brass for AA contrast. */
.fod-checker--dark .fod-field__label{color:var(--e-global-color-canvascream)}
.fod-checker--dark .fod-check-form .fod-field__input{background:var(--e-global-color-canvascream)}
.fod-checker--dark .fod-check-form .fod-field__input{border-color:var(--e-global-color-accent)}
.fod-check-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-sm)}
.fod-check-form .fod-field{flex:1 1 8rem;min-inline-size:0}
.fod-check-form .btn{flex:0 0 auto}
@media (max-width:32em){.fod-check-form .fod-field{flex:1 1 100%}.fod-check-form .btn{flex:1 1 100%}}

/* Buttons. The site's .btn system styles an inner .elementor-button (Elementor widgets only),
   so the plugin's own <button> elements need the same skin, scoped to the plugin's containers. */
.fod-book .btn,.fod-check-form .btn{display:inline-block;max-inline-size:100%;overflow-wrap:break-word;font-family:var(--e-global-typography-button-font-family);font-size:var(--e-global-typography-button-font-size);font-weight:var(--e-global-typography-button-font-weight);letter-spacing:var(--e-global-typography-button-letter-spacing);text-transform:var(--e-global-typography-button-text-transform);line-height:1;border-radius:2px;padding:.95em 1.95em;cursor:pointer;text-decoration:none;transition:transform .2s ease,background-color .2s ease,color .2s ease,filter .2s ease}
.fod-book .btn--primary,.fod-check-form .btn--primary{background-color:var(--e-global-color-secondary);color:var(--e-global-color-canvascream);border:1px solid var(--e-global-color-secondary)}
.fod-book .btn--primary:hover,.fod-check-form .btn--primary:hover{filter:brightness(.92)}
.fod-book .btn--secondary{background-color:transparent;color:var(--e-global-color-primary);border:1px solid var(--e-global-color-primary)}
.fod-book .btn--secondary:hover{background-color:var(--e-global-color-primary);color:var(--e-global-color-canvascream)}
.fod-checker--dark .fod-check-form .btn--secondary{color:var(--e-global-color-canvascream);border-color:var(--e-global-color-canvascream)}
.fod-book .btn:hover,.fod-check-form .btn:hover{transform:translateY(-2px)}
.fod-book .btn:focus-visible,.fod-check-form .btn:focus-visible{outline:2px solid var(--e-global-color-secondary);outline-offset:3px}
.fod-book .btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;filter:none}
.fod-book .btn[disabled]:hover{transform:none;filter:none}
