/* JP Farm Core: booking and enquiry components. Uses theme tokens when present. */
.jpf-search,.jpf-rooms,.jpf-checkout,.jpf-enquiry,.jpf-bookbox,.jpf-confirm,.jpf-notice,.jpf-results-head{
	--f:var(--jp-forest,#1E4A2E);--g:var(--jp-gold,#E9B21E);--ink:var(--jp-ink,#1A221C);--mut:var(--jp-muted,#5E665F);
	--line:var(--jp-line,#E2DCCB);--paper:var(--jp-paper,#FAF8F2);--sand:var(--jp-sand,#F1ECDF);
	font-family:var(--jp-body,system-ui,sans-serif);color:var(--ink)
}
.jpf-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}

/* Buttons */
.jpf-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:48px;padding:.7em 1.4em;border-radius:999px;border:2px solid transparent;font:600 1rem/1.1 var(--jp-body,system-ui);text-decoration:none;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}
.jpf-btn--gold{background:var(--jp-gold,#E9B21E);color:var(--jp-forest-2,#143522)}
.jpf-btn--gold:hover{background:#d9a20f}
.jpf-btn--green{background:var(--jp-forest,#1E4A2E);color:#fff}
.jpf-btn--green:hover{background:var(--jp-forest-2,#143522);color:#fff}
.jpf-btn--line{border-color:var(--jp-forest,#1E4A2E);color:var(--jp-forest,#1E4A2E);background:transparent}
.jpf-btn--line:hover{background:var(--jp-forest,#1E4A2E);color:#fff}
.jpf-btn--wa{background:#1F8F4E;color:#fff}
.jpf-btn--block{width:100%}
.jpf-btn:focus-visible{outline:3px solid var(--jp-gold,#E9B21E);outline-offset:2px}
.jpf-btn[disabled]{opacity:.6;cursor:wait}

/* Fields */
.jpf-search label,.jpf-checkout label,.jpf-enquiry label,.jpf-bookbox label{display:block;font-size:.85rem;font-weight:600;color:var(--mut);margin:0 0 .9rem}
.jpf-search input,.jpf-search select,.jpf-checkout input:not([type=radio]):not([type=checkbox]),.jpf-checkout select,.jpf-checkout textarea,
.jpf-enquiry input,.jpf-enquiry select,.jpf-enquiry textarea,.jpf-bookbox input,.jpf-bookbox select{
	display:block;width:100%;margin-top:.3rem;min-height:46px;padding:.55rem .8rem;border:1px solid var(--line);border-radius:10px;background:#fff;
	font:400 1rem/1.3 var(--jp-body,system-ui);color:var(--ink);box-sizing:border-box
}
.jpf-checkout textarea,.jpf-enquiry textarea{min-height:84px}
.jpf-search input:focus,.jpf-search select:focus,.jpf-checkout input:focus,.jpf-checkout select:focus,.jpf-checkout textarea:focus,
.jpf-enquiry input:focus,.jpf-enquiry select:focus,.jpf-enquiry textarea:focus,.jpf-bookbox input:focus,.jpf-bookbox select:focus{outline:2px solid var(--f);outline-offset:1px;border-color:var(--f)}
.jpf-grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 .9rem}
.jpf-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 .9rem}

/* Search bar */
.jpf-search{display:grid;grid-template-columns:1.2fr 1.2fr .7fr .7fr auto;gap:.75rem;align-items:end;background:#fff;padding:1rem;border-radius:18px;box-shadow:0 12px 40px -18px rgba(20,53,34,.35);border:1px solid var(--line)}
.jpf-search label{margin:0}
.jpf-search .jpf-btn{min-height:46px}
@media (max-width:860px){.jpf-search{grid-template-columns:1fr 1fr}.jpf-search .jpf-btn{grid-column:1/-1}}

/* Notices */
.jpf-notice{padding:.9rem 1.1rem;border-radius:12px;background:var(--sand);border-left:4px solid var(--g);margin:0 0 1.2rem}
.jpf-notice--error{border-left-color:#B42318;background:#FDF0EE}
.jpf-results-head{margin:0 0 1.2rem;font-size:1.05rem}

/* Room cards */
.jpf-rooms{display:grid;gap:1.6rem}
.jpf-room{display:grid;grid-template-columns:minmax(0,42%) 1fr;background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden}
.jpf-room__media{display:block;background:var(--sand);min-height:240px}
.jpf-room__media img{width:100%;height:100%;object-fit:cover;display:block}
.jpf-room__ph{display:block;width:100%;height:100%;min-height:240px;background:
	radial-gradient(circle at 50% 120%,var(--g) 0 28%,transparent 28.5%),linear-gradient(var(--sand),var(--sand))}
.jpf-room__body{padding:1.4rem 1.6rem;display:flex;flex-direction:column}
.jpf-room__title{font-family:var(--jp-display,Georgia,serif);font-weight:400;font-size:1.6rem;margin:0 0 .3rem;line-height:1.15}
.jpf-room__title a{color:var(--f);text-decoration:none}
.jpf-room__meta{color:var(--mut);margin:0 0 .6rem;font-size:.95rem}
.jpf-room__excerpt{margin:0 0 .8rem}
.jpf-room__amen{list-style:none;padding:0;margin:0 0 1rem;display:flex;flex-wrap:wrap;gap:.4rem}
.jpf-room__amen li{font-size:.85rem;background:var(--paper);border:1px solid var(--line);padding:.25rem .65rem;border-radius:999px}
.jpf-room__foot{margin-top:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem;padding-top:.8rem;border-top:1px dashed var(--line)}
.jpf-room__price,.jpf-room__stay{margin:0}
.jpf-room__price strong,.jpf-room__stay strong{font-size:1.45rem;color:var(--f)}
.jpf-room__price span,.jpf-room__stay span{color:var(--mut);font-size:.9rem}
.jpf-room__few{margin:0;color:#9A5B00;font-weight:600;font-size:.9rem;width:100%}
.jpf-room__full{margin:0;color:#B42318;font-weight:600}
@media (max-width:760px){.jpf-room{grid-template-columns:1fr}.jpf-room__media,.jpf-room__ph{min-height:210px;aspect-ratio:16/10}}

/* Booking box on room page */
.jpf-bookbox{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.4rem;position:sticky;top:96px}
.jpf-bookbox__price{margin:0 0 1rem}
.jpf-bookbox__price strong{font-size:1.8rem;color:var(--f);font-family:var(--jp-display,Georgia,serif);font-weight:400}
.jpf-bookbox__price span{color:var(--mut)}
.jpf-bookbox__row{display:grid;grid-template-columns:1fr 1fr;gap:0 .7rem}
.jpf-bookbox__alt{font-size:.9rem;color:var(--mut);margin:.9rem 0 0}
.jpf-bookbox__alt a{color:var(--f);font-weight:600}

/* Checkout */
.jpf-checkout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:2rem;align-items:start}
.jpf-checkout__form{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.6rem}
.jpf-checkout__form h2{font-family:var(--jp-display,Georgia,serif);font-weight:400;margin:0 0 1rem;color:var(--f)}
.jpf-paymode{border:0;padding:0;margin:.4rem 0 1rem}
.jpf-paymode legend{font-weight:700;margin-bottom:.6rem}
.jpf-paymode__opt{display:flex!important;gap:.7rem;align-items:flex-start;border:1.5px solid var(--line);border-radius:12px;padding:.85rem 1rem;margin:0 0 .6rem!important;cursor:pointer;color:var(--ink)!important;font-weight:400!important;font-size:1rem!important}
.jpf-paymode__opt:has(input:checked){border-color:var(--f);background:#F3F7F1}
.jpf-paymode__opt input{margin-top:.25rem;accent-color:var(--f)}
.jpf-paymode__opt em{font-style:normal;font-weight:700;color:var(--f);margin-left:.3rem}
.jpf-paymode__opt small{display:block;color:var(--mut)}
.jpf-agree{display:flex!important;gap:.6rem;align-items:flex-start;font-weight:400!important;color:var(--ink)!important;font-size:.92rem!important}
.jpf-agree input{margin-top:.25rem;accent-color:var(--f)}
.jpf-agree a{color:var(--f)}
.jpf-checkout__msg,.jpf-enquiry__msg{min-height:0;margin:.4rem 0 .8rem;font-weight:600}
.jpf-checkout__msg.is-err,.jpf-enquiry__msg.is-err{color:#B42318}
.jpf-checkout__msg.is-ok{color:var(--f)}
.jpf-paybtn.is-busy{position:relative;color:transparent!important}
.jpf-paybtn.is-busy::after{content:"";position:absolute;width:20px;height:20px;border:3px solid var(--jp-forest-2,#143522);border-right-color:transparent;border-radius:50%;animation:jpfspin .8s linear infinite}
@keyframes jpfspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.jpf-paybtn.is-busy::after{animation:none}}
.jpf-secure{font-size:.85rem;color:var(--mut);text-align:center;margin:.7rem 0 0}
.jpf-summary{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:1.2rem;position:sticky;top:96px}
.jpf-summary__img{width:100%;height:auto;border-radius:12px;aspect-ratio:16/10;object-fit:cover;margin-bottom:.8rem}
.jpf-summary h3{font-family:var(--jp-display,Georgia,serif);font-weight:400;font-size:1.4rem;margin:0 0 .8rem;color:var(--f)}
.jpf-summary__dates{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:0 0 1rem}
.jpf-summary__dates div{background:#fff;border:1px solid var(--line);border-radius:10px;padding:.6rem .7rem}
.jpf-summary__dates dt{font-size:.78rem;color:var(--mut)}
.jpf-summary__dates dd{margin:0;font-weight:700}
.jpf-summary__dates small{display:block;font-weight:400;color:var(--mut)}
.jpf-summary__table{width:100%;border-collapse:collapse;font-size:.95rem}
.jpf-summary__table th,.jpf-summary__table td{padding:.5rem 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.jpf-summary__table td{text-align:right;white-space:nowrap}
.jpf-summary__table th span{display:block;font-weight:400;color:var(--mut);font-size:.85rem}
.jpf-summary__total th,.jpf-summary__total td{font-size:1.15rem;font-weight:800;color:var(--f);border-bottom:0}
@media (max-width:900px){.jpf-checkout{grid-template-columns:1fr}.jpf-summary{position:static;order:-1}}
@media (max-width:520px){.jpf-grid2,.jpf-grid3{grid-template-columns:1fr}.jpf-grid3{grid-template-columns:repeat(3,1fr)}}

/* Confirmation */
.jpf-confirm{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.8rem;max-width:680px}
.jpf-confirm h2{font-family:var(--jp-display,Georgia,serif);font-weight:400;color:var(--f);margin:0 0 .4rem}
.jpf-confirm.is-ok{border-top:6px solid var(--jp-leaf,#4C9A3F)}
.jpf-confirm.is-wait{border-top:6px solid var(--g)}
.jpf-confirm__actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.2rem}

/* Enquiry */
.jpf-enquiry{background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.5rem;color:var(--ink)}
.jpf-enquiry__title{font-family:var(--jp-display,Georgia,serif);font-weight:400;font-size:1.5rem;margin:0 0 1rem;color:var(--f)}
.jpf-enquiry__alt{text-align:center;font-size:.92rem;color:var(--mut);margin:.8rem 0 0}
.jpf-enquiry__alt a{color:var(--f);font-weight:700}
.jpf-enquiry__done h3{font-family:var(--jp-display,Georgia,serif);font-weight:400;color:var(--f);margin:0 0 .4rem;font-size:1.5rem}
.jpf-bookbox__rates{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:0 0 .3rem}
.jpf-bookbox__rates div{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:.6rem .8rem}
.jpf-bookbox__rates dt{font-size:.8rem;color:var(--mut)}
.jpf-bookbox__rates dd{margin:0;font-family:var(--jp-display,Georgia,serif);font-size:1.6rem;color:var(--f)}
.jpf-bookbox__note{margin:0 0 1rem;font-size:.88rem;color:var(--mut)}
