@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&display=swap');
:root{--forest:#1d4234;--deep:#153428;--cream:#f7f5ed;--paper:#fffefa;--sage:#e7eade;--mint:#edf0e7;--sand:#d8b780;--ink:#243d32;--muted:#66736a;--line:#e2e4da;--danger:#a34f43;font-family:'DM Sans',system-ui,sans-serif;color:var(--ink);background:var(--cream)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.wrap{width:min(1180px,calc(100% - 52px));margin-inline:auto}.utility-bar{height:29px;background:var(--deep);color:#e7e9db;font-size:10px;letter-spacing:.19em;display:flex;justify-content:space-between;align-items:center;padding:0 max(26px,calc((100% - 1180px)/2))}.utility-right{letter-spacing:.06em;text-transform:none;font-size:11px}.dot{display:inline-block;background:#bbcf86;width:6px;height:6px;border-radius:50%;margin-right:8px}.site-header{position:relative;background:var(--paper);z-index:5;border-bottom:1px solid var(--line)}.header-inner{height:83px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}.brand-icon{width:41px;height:41px;color:var(--forest);display:grid;place-items:center;border:1.5px solid var(--forest);border-radius:50%}.brand-icon svg{width:31px}.brand strong,.brand small{display:block}.brand strong{font-family:'Playfair Display',serif;font-size:19px;letter-spacing:.095em}.brand small{font-size:10px;letter-spacing:.32em;margin-top:2px}.desktop-nav{display:flex;align-items:center;gap:35px;margin-left:auto}.desktop-nav a{font-size:12px;font-weight:700;color:#425147;transition:color .2s}.desktop-nav a:hover,.desktop-nav a.active{color:#9e724b}.header-actions{display:flex;gap:12px}.account-button{background:var(--forest);color:white;border:0;border-radius:3px;padding:13px 18px;font-size:12px;font-weight:700;white-space:nowrap}.account-button .arrow{margin-left:15px}.menu-toggle{width:43px;height:43px;border:1px solid var(--line);border-radius:3px;background:transparent;display:none;flex-direction:column;align-items:center;justify-content:center;gap:5px}.menu-toggle span{width:19px;height:2px;background:var(--forest)}.mobile-menu{background:var(--paper);padding:14px 26px 23px;border-top:1px solid var(--line);box-shadow:0 8px 20px #142d201a}.mobile-menu a{display:block;padding:12px 0;border-bottom:1px solid var(--line);font-weight:600}.page{display:none}.page.visible{display:block}.hero{position:relative;height:565px;background:var(--deep);isolation:isolate;overflow:hidden}.hero-image,.hero-overlay{position:absolute;inset:0}.hero-image{background-image:url('/assets/farm-banner.webp');background-position:center 44%;background-size:cover;z-index:-2}.hero-overlay{background:linear-gradient(90deg,rgba(9,30,21,.89) 0%,rgba(10,35,23,.73) 28%,rgba(16,46,29,.30) 63%,rgba(10,30,22,.07) 100%);z-index:-1}.hero-inner{height:100%;display:flex;align-items:center}.hero-copy{max-width:620px;color:white;padding:26px 0}.eyebrow{font-size:10px;letter-spacing:.25em;font-weight:700;color:#8d7854}.eyebrow.light{color:#e8d0a4}.eyebrow span{margin:0 12px;color:#e2cba0}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Playfair Display',Georgia,serif}h1 em,h2 em,h3 em{font-weight:400}.hero h1{font-size:clamp(46px,5.5vw,76px);font-weight:400;line-height:1.11;letter-spacing:-.045em;margin:21px 0 24px}.hero-copy p{max-width:415px;font-size:14px;line-height:1.85;color:#f4f2e8}.hero-actions{display:flex;gap:12px;margin-top:31px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:22px;border-radius:3px;padding:15px 23px;font-size:12px;line-height:1.25;font-weight:700;border:1px solid transparent;transition:transform .2s,background .2s}.btn:hover{transform:translateY(-2px)}.btn-cream{background:#f6eddc;color:#254137}.btn-outline-light{border-color:#e9e6d5;background:transparent;color:#fff}.btn-green{background:var(--forest);color:white}.btn-outline{border-color:#b6c3b8;background:transparent;color:var(--forest)}.hero-caption{position:absolute;right:max(24px,calc((100% - 1180px)/2));bottom:21px;letter-spacing:.18em;font-size:9px;color:#f0ebdb}.welcome-section{padding:86px 0 48px;display:grid;grid-template-columns:1.2fr 1fr;gap:100px;align-items:end}.welcome-section h2{font-size:clamp(32px,4vw,51px);line-height:1.22;font-weight:400;letter-spacing:-.035em;margin:17px 0 0}.welcome-section>p{font-size:14px;line-height:2;color:var(--muted);max-width:425px;margin-bottom:3px}.cards-section{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;padding-bottom:97px}.feature-card{text-align:left;display:flex;flex-direction:column;min-height:355px;background:var(--paper);border:1px solid var(--line);border-radius:3px;padding:26px 27px;transition:transform .2s,box-shadow .2s;color:inherit}.feature-card:hover{transform:translateY(-5px);box-shadow:0 20px 45px #162e2012}.feature-top{display:flex;justify-content:space-between;color:#728275;font-size:10px;letter-spacing:.15em;font-weight:700}.feature-arrow{font-size:20px;color:var(--forest)}.feature-graphic{display:grid;place-items:center;font-family:Georgia,serif;font-size:76px;color:#597960;background:radial-gradient(circle,#e9eee3 0%,transparent 71%);min-height:140px}.feature-card h3{font-size:28px;font-weight:400;margin:4px 0 11px}.feature-card p{line-height:1.8;color:var(--muted);font-size:12px;margin-bottom:20px}.text-link{font-size:11px;font-weight:700;border-bottom:1px solid #779084;padding-bottom:5px}.notice-band{background:var(--forest);color:white}.notice-band-inner{display:flex;align-items:center;justify-content:space-between;gap:40px;min-height:278px;padding:35px 0}.notice-band h2{font-size:44px;font-weight:400;line-height:1.2;margin:16px 0}.notice-band p{font-size:13px;color:#d6e0d5;line-height:1.7;margin-bottom:0}.footer{background:#142f25;color:#f3f1e7}.footer-main{display:flex;justify-content:space-between;align-items:start;padding:65px 0 60px}.footer-logo{font-family:'Playfair Display',Georgia,serif;font-size:30px;letter-spacing:.045em}.footer-logo span{font-size:18px}.footer-main p{line-height:1.9;color:#c1cec1;font-size:12px;margin-top:14px}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:20px 40px;font-size:12px;color:#d3e0d2}.footer-bottom{border-top:1px solid #476055;padding:23px 0;display:flex;justify-content:space-between;color:#a4b7a8;font-size:11px}.page-content{padding:68px 0 120px;min-height:650px}.page-heading{margin-bottom:38px}.page-heading h1{font-size:clamp(41px,5vw,63px);font-weight:400;letter-spacing:-.05em;margin:12px 0}.page-heading p{color:var(--muted);font-size:14px;line-height:1.8}.surface{background:var(--paper);border:1px solid var(--line);border-radius:5px}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px}.booking-calendar{padding:35px}.booking-help{padding:35px 28px;background:#ebeee5;border-left:1px solid var(--line)}.booking-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}.booking-toolbar h2{font-size:28px;font-weight:400;margin:7px 0 0}.date-actions{display:flex;align-items:center;gap:6px}.icon-btn{border:1px solid #d7dfd4;background:white;color:var(--forest);padding:10px 13px;border-radius:3px;font-weight:700}.date-actions input{width:143px;padding:10px 7px;border:1px solid #d7dfd4;color:var(--ink);border-radius:3px;background:#fff;font-size:12px}.subtle{font-size:12px;color:var(--muted);line-height:1.7;margin:16px 0 26px}.slot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.slot{background:#f5f8f0;border:1px solid #cad7c5;border-radius:3px;padding:12px 7px;min-height:81px;color:var(--forest);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.slot strong{font-size:14px}.slot small{font-size:9px;line-height:1.45;color:#68796c;max-width:100%;overflow-wrap:anywhere}.slot:not(:disabled):hover{border-color:var(--forest);background:#e8f1e3}.slot.busy{background:#f2e6dc;color:#985b45;border-color:#e2d0c4;opacity:1}.slot.passed{background:#f3f3f0;border-color:#e1e2df;color:#9ca39b}.legend{display:flex;gap:22px;margin-top:23px;font-size:11px;color:var(--muted);flex-wrap:wrap}.legend-dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:7px}.legend-dot.free{background:#95b794}.legend-dot.busy{background:#d29f89}.legend-dot.passed{background:#bec6be}.booking-help h3{font-size:29px;font-weight:400;margin:15px 0 31px}.help-item{display:flex;gap:12px;align-items:start;padding:15px 0;border-top:1px solid #d0d9ca}.help-item b{font-family:'Playfair Display',Georgia,serif;color:#8c9f8e}.help-item p{font-size:12px;line-height:1.8;color:#647464;margin:0}.help-illustration{text-align:center;font-family:Georgia,serif;font-size:110px;color:#a6bb9e;line-height:1.2;margin-top:28px}.announcement-list{display:grid;gap:14px;max-width:900px}.announcement{padding:28px 30px;background:var(--paper);border:1px solid var(--line);border-radius:4px}.announcement.pinned{border-left:4px solid #bd9b63}.announcement .meta{display:flex;gap:16px;align-items:center;color:#829082;font-size:10px;letter-spacing:.08em;text-transform:uppercase}.announcement h3{font-size:27px;font-weight:400;margin:12px 0}.announcement p{font-size:13px;line-height:1.9;color:#5e6d62;white-space:pre-wrap;margin:0}.tag{font-size:10px;background:#ede4d2;color:#8b6a38;border-radius:2px;padding:5px 9px;font-weight:700}.empty-panel{background:var(--paper);border:1px dashed #c5d2c2;border-radius:4px;padding:48px 28px;text-align:center;color:var(--muted)}.empty-panel .empty-illustration{font-size:54px;color:#84a18a}.empty-panel h3{font-size:27px;font-weight:400;color:var(--ink);margin:16px 0 8px}.empty-panel p{font-size:13px;line-height:1.8}.stack{display:grid;gap:17px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:25px;flex-wrap:wrap}.toolbar h2{font-size:30px;font-weight:400;margin:0}.horse-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.horse-card{background:var(--paper);border:1px solid var(--line);border-radius:4px;overflow:hidden}.horse-photo{height:auto;aspect-ratio:1/1;background:linear-gradient(135deg,#dbe6d4,#e9e9d9);display:grid;place-items:center;font-size:70px;color:#7d9a78;overflow:hidden}.horse-photo img{width:100%;height:100%;object-fit:cover;display:block;object-position:center}.horse-card-content{padding:24px}.horse-card h3{font-size:27px;font-weight:400;margin:0 0 8px}.horse-card p{font-size:12px;line-height:1.65;color:var(--muted);margin-bottom:13px}.button-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:15px}.small-btn{padding:10px 13px;border:1px solid #ced7cb;background:#f3f6f0;color:var(--forest);font-size:11px;font-weight:700;border-radius:3px}.small-btn.danger{color:var(--danger);border-color:#efceca;background:#fff5f2}.panel{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:27px;margin-bottom:20px}.panel h2{font-size:28px;font-weight:400;margin:0 0 19px}.panel h3{font-family:'DM Sans',sans-serif;font-size:14px}.muted{font-size:12px;color:var(--muted);line-height:1.7}.data-table{width:100%;border-collapse:collapse;font-size:12px}.data-table td,.data-table th{text-align:left;border-bottom:1px solid var(--line);padding:13px 9px;vertical-align:top}.data-table th{font-size:10px;letter-spacing:.1em;color:#6d826e;text-transform:uppercase}.data-table td{overflow-wrap:anywhere}.table-scroll{overflow:auto}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.admin-grid .wide{grid-column:1/-1}.unread{border-left:3px solid #b88f59}.message-item{border-bottom:1px solid var(--line);padding:16px 5px}.message-item:last-child{border:0}.message-item h3{margin:4px 0 8px}.message-item p{white-space:pre-wrap;font-size:12px;line-height:1.7}.form{display:grid;gap:15px}.form label{display:grid;gap:6px;font-size:12px;font-weight:700;color:#415947}.form input,.form textarea,.form select{width:100%;background:#fff;border:1px solid #d0dbce;border-radius:3px;padding:13px;color:var(--ink);outline-color:#88a88c}.form textarea{min-height:105px;resize:vertical;line-height:1.6}.form .checkline{display:flex;align-items:center;gap:10px}.form .checkline input{width:auto}.form small{font-weight:400;color:var(--muted)}.modal-backdrop{position:fixed;inset:0;background:#07170fd4;display:grid;place-items:center;z-index:20;padding:18px;overflow:auto}.modal-card{width:min(505px,100%);background:var(--paper);padding:34px;max-height:calc(100vh - 36px);overflow:auto;position:relative;border-radius:5px;box-shadow:0 20px 90px #0004}.modal-close{position:absolute;right:14px;top:8px;background:transparent;border:0;font-size:29px;color:var(--ink)}.modal-card h2{font-weight:400;font-size:36px;margin:13px 20px 12px 0}.modal-card p{font-size:13px;color:var(--muted);line-height:1.7}.modal-links{margin-top:15px;text-align:center;font-size:12px}.modal-links button{border:0;background:transparent;text-decoration:underline;color:var(--forest);font-weight:700}.toast{position:fixed;bottom:22px;right:22px;max-width:min(400px,calc(100vw - 44px));z-index:30;padding:15px 20px;border-radius:4px;background:#1e4835;color:#fff;box-shadow:0 6px 20px #0002;font-size:13px}.toast.error{background:#a04740}.notice-small{background:#f0f5e9;border-left:3px solid #86a884;padding:13px;font-size:12px;line-height:1.7}.booking-confirmation{background:#f0f7ee;padding:17px;overflow-wrap:anywhere;border:1px solid #ccddc9;border-radius:3px}.booking-confirmation code{font-size:11px;word-break:break-all}.auth-required{max-width:640px}.demo-ribbon{position:fixed;left:13px;bottom:13px;background:#dbaf59;color:#1e382c;font-weight:800;font-size:10px;letter-spacing:.07em;padding:10px 13px;border-radius:3px;z-index:4}.mini-heading{font-weight:800;font-size:11px;letter-spacing:.12em;color:#69806e;margin:20px 0 10px}
@media(max-width:980px){.desktop-nav{gap:18px}.desktop-nav a{font-size:11px}.booking-layout{grid-template-columns:1fr}.booking-help{border-left:0;border-top:1px solid var(--line)}.booking-help .help-illustration{display:none}.horse-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.utility-bar{justify-content:center}.utility-right{display:none}.header-inner{height:70px}.brand strong{font-size:17px}.desktop-nav{display:none}.menu-toggle{display:flex}.header-actions{gap:7px}.account-button{padding:12px;font-size:11px}.account-button .arrow{margin-left:5px}.hero{height:545px}.hero-overlay{background:linear-gradient(90deg,#0c291fd9,#12352488 80%)}.hero h1{font-size:53px}.welcome-section{grid-template-columns:1fr;gap:20px;padding-top:60px}.cards-section{grid-template-columns:1fr;padding-bottom:60px}.feature-card{min-height:260px}.feature-graphic{min-height:80px;font-size:55px}.notice-band-inner{flex-direction:column;align-items:start;justify-content:center;padding:50px 0}.footer-main{gap:25px;flex-direction:column}.footer-bottom{gap:15px;flex-wrap:wrap}.admin-grid,.horse-grid{grid-template-columns:1fr}.slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.page-content{padding:48px 0 90px}}
@media(max-width:480px){.wrap{width:min(100% - 30px,1180px)}.brand-icon{width:32px;height:32px}.brand-icon svg{width:26px}.brand strong{font-size:14px}.brand small{font-size:8px}.hero h1{font-size:43px}.hero-copy p{font-size:13px}.hero{height:510px}.eyebrow{font-size:9px}.booking-calendar{padding:21px 13px}.slot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.slot{min-height:75px}.booking-toolbar h2{font-size:24px}.date-actions{width:100%}.date-actions input{flex:1}.modal-card{padding:28px 19px}.page-heading h1{font-size:43px}.footer-logo{font-size:25px}.footer-logo span{font-size:16px}}

/* Native, dependency-free horse photo editor. The canvas matches the profile-card ratio. */
.crop-backdrop{position:fixed;inset:0;background:rgba(6,23,16,.88);z-index:50;display:grid;place-items:center;padding:16px;overflow-y:auto}
.crop-card{position:relative;width:min(700px,100%);max-height:calc(100vh - 32px);overflow-y:auto;background:var(--paper);border-radius:7px;box-shadow:0 28px 90px #0008;padding:29px}
.crop-card h2{font-size:clamp(28px,4vw,40px);font-weight:400;margin:10px 26px 10px 0}
.crop-card p{color:var(--muted);font-size:13px;line-height:1.7}
.crop-stage{background:#132d22;margin:17px 0 22px;border:2px solid var(--forest);border-radius:5px;overflow:hidden;line-height:0;box-shadow:0 4px 15px #0002}
.crop-stage canvas{width:100%;height:auto;aspect-ratio:1/1;display:block;cursor:grab;touch-action:none;outline-offset:3px}
.crop-stage canvas:active{cursor:grabbing}
.crop-zoom-label{display:flex;justify-content:space-between;gap:15px;font-size:13px;font-weight:700;color:var(--forest)}
#cropZoom{width:100%;accent-color:var(--forest);margin:12px 0 1px;cursor:pointer}
.crop-card .crop-note{font-size:11px;margin:8px 0 15px}
.crop-actions{display:flex;justify-content:flex-end;gap:11px;flex-wrap:wrap}
.photo-preview-wrap{border:1px solid var(--line);border-radius:4px;padding:10px;background:#f4f6f0;display:grid;gap:8px}
.photo-preview-wrap img{width:min(260px,100%);aspect-ratio:1/1;object-fit:cover;border-radius:3px;display:block}
.photo-preview-wrap small{font-weight:500;color:var(--muted)}
@media(max-width:480px){.crop-card{padding:22px 15px}.crop-actions .btn{flex:1;padding:13px 10px}}

/* Equestrian Park services and square horse-photo update */
.brand-wordmark strong{font-size:16px;letter-spacing:.045em;white-space:nowrap}
.brand-wordmark small{font-size:9px;letter-spacing:.21em;white-space:nowrap}
.services-section{padding:18px 0 85px}
.services-intro{max-width:740px;margin-bottom:28px}
.services-intro h2{font-size:clamp(36px,4.2vw,54px);font-weight:400;line-height:1.13;margin:13px 0}
.services-intro p{color:var(--muted);font-size:14px;line-height:1.8}
.services-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}
.service-card{background:var(--paper);padding:27px;border:1px solid var(--line);border-radius:5px;display:flex;flex-direction:column;align-items:flex-start;min-height:365px}
.service-top{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px}
.service-pill{font-size:11px;color:var(--forest);background:var(--sage);font-weight:700;padding:7px 10px;border-radius:20px;white-space:nowrap}
.service-card h3{font-size:clamp(24px,2.3vw,31px);font-weight:400;line-height:1.2;margin:24px 0 5px}
.service-card p{font-size:12px;line-height:1.8;color:var(--muted);margin:9px 0}
.service-card strong{color:var(--forest)}
.service-card .btn{margin-top:auto;display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:43px}
.booking-other-services{padding:25px;margin-top:22px;border:1px solid var(--line);border-left:4px solid var(--forest);background:var(--paper);border-radius:4px}
.booking-other-services h2{font-size:28px;font-weight:400;margin:0 0 7px}
.booking-other-services p{font-size:13px;line-height:1.7;color:var(--muted)}
.booking-other-services a,.inline-mail,.footer-email{color:#719a81;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
.footer-email{display:inline-block;font-size:12px;margin-top:12px;color:#c4d6c5}
.booking-rule{padding:12px;background:#edf4e9;border-left:3px solid var(--forest)}
.crop-stage{width:min(440px,100%);margin-left:auto;margin-right:auto}
@media(max-width:1000px){.services-grid{grid-template-columns:1fr 1fr}.services-grid .service-card:last-child{grid-column:1/-1}.brand-wordmark strong{font-size:14px}}
@media(max-width:760px){.services-grid{grid-template-columns:1fr}.services-grid .service-card:last-child{grid-column:auto}.service-card{min-height:unset;gap:8px}.service-card .btn{margin-top:18px}.services-section{padding-bottom:55px}}
@media(max-width:480px){.brand-wordmark strong{font-size:11px}.brand-wordmark small{font-size:8px;letter-spacing:.11em}.utility-bar{font-size:8px;letter-spacing:.1em}.brand{gap:6px}.account-button{padding:10px 8px}}


/* Booking times — three compact expandable dayparts. Retains Honeywood's visual language. */
.time-group-intro{display:flex;align-items:center;gap:13px;margin:0 0 17px;color:#758479;font-size:10px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.time-group-line{height:1px;flex:1;background:#dfe5d9}
.time-periods{display:grid;gap:11px}
.time-period{background:#fcfdf9;border:1px solid #dbe4d8;border-radius:5px;overflow:hidden;transition:border-color .18s,box-shadow .18s}
.time-period-open{border-color:#9db49f;box-shadow:0 4px 16px rgba(29,66,52,.055)}
.time-period-heading{margin:0;font:inherit}
.time-period-toggle{display:flex;gap:16px;align-items:center;width:100%;padding:19px 20px;color:var(--forest);text-align:left;background:#f6f8f2;border:0;transition:background .17s}
.time-period-toggle:hover{background:#edf2e8}
.time-period-toggle:focus-visible,.time-choice:focus-visible{outline:3px solid #8fb69b;outline-offset:-3px}
.time-period-open .time-period-toggle{background:#edf3e9}
.time-period-symbol{width:42px;height:42px;border-radius:50%;background:#e0e9dd;color:#3d6650;display:grid;place-items:center;flex-shrink:0;font-family:Georgia,serif;font-size:23px;line-height:1}
.time-period-title{display:grid;gap:4px;min-width:0;flex:1}
.time-period-title strong{font-family:'Playfair Display',Georgia,serif;font-weight:500;font-size:22px;line-height:1.15}
.time-period-title small{font-size:11px;font-weight:500;color:#7c897e;line-height:1.35}
.time-period-count{flex-shrink:0;border-radius:99px;padding:7px 10px;font-size:10px;font-weight:800;letter-spacing:.02em}
.time-period-count.has-free{background:#dfeee0;color:#356745}
.time-period-count.no-free{background:#ebece7;color:#778479}
.time-period-chevron{display:inline-grid;place-items:center;flex-shrink:0;color:#698271;font-size:25px;font-weight:400;line-height:1;transform:rotate(0);transition:transform .18s}
.time-period-open .time-period-chevron{transform:rotate(180deg)}
.time-period-panel{padding:17px 19px 20px;border-top:1px solid #e1e9dc;background:#fffefa}
.time-period-hint{font-size:11px;color:#758078;margin:1px 0 14px}
.time-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.time-choice{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;min-height:78px;padding:15px 38px 15px 16px;text-align:left;border:1px solid #c8dac6;border-radius:4px;background:#f6faf4;color:var(--forest);transition:background .16s,border-color .16s,transform .16s}
.time-choice.is-available:hover{border-color:#547d61;background:#e9f3e7;transform:translateY(-1px)}
.time-choice-clock{font-size:17px;font-weight:700;letter-spacing:.01em;line-height:1.2}
.time-choice-detail{font-size:10px;color:#6b806f;line-height:1.4;overflow-wrap:anywhere}
.time-choice-arrow{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:17px;color:#5d8868}
.time-choice.is-booked{background:#f8f0e9;border-color:#e6d7c8;color:#925d4c;opacity:1}
.time-choice.is-booked .time-choice-detail{color:#a47562}
.time-choice.is-past{background:#f6f6f3;border-color:#e3e5de;color:#9aa49b;opacity:1}
.time-choice.is-past .time-choice-detail{color:#a0a8a0}
@media(max-width:630px){.time-period-toggle{gap:10px;padding:14px 12px}.time-period-symbol{width:36px;height:36px;font-size:19px}.time-period-title strong{font-size:19px}.time-period-count{font-size:9px;padding:6px 8px}.time-period-panel{padding:13px 10px 15px}.time-choice-grid{gap:8px}.time-choice{padding:13px 25px 13px 11px;min-height:73px}.time-choice-clock{font-size:14px}.time-choice-arrow{right:9px}}
@media(max-width:400px){.time-period-title small{font-size:10px}.time-period-toggle{gap:8px}.time-period-count{font-size:8px}.time-period-symbol{display:none}.time-choice-clock{font-size:13px}}


/* Honeywood-area forecast — collapsible and mobile-friendly */
.weather-section{padding:0 0 85px}
.weather-heading{display:flex;justify-content:space-between;align-items:end;gap:35px;margin:0 0 26px}
.weather-heading h2{font-size:clamp(34px,4.1vw,51px);font-weight:400;line-height:1.13;margin:14px 0 0}
.weather-heading>p{max-width:340px;line-height:1.8;font-size:12px;color:var(--muted);margin:0 0 5px}
.weather-widget{border:1px solid #d6dfd3;border-radius:5px;background:#fffefa;box-shadow:0 10px 38px #1431240a;overflow:hidden}
.weather-main{display:grid;grid-template-columns:minmax(0,1.6fr) auto minmax(0,1.1fr);align-items:center;gap:23px;padding:25px 30px}
.weather-primary{display:flex;align-items:center;gap:18px;min-width:0}
.weather-main-icon{display:grid;place-items:center;width:78px;height:78px;flex-shrink:0;border-radius:50%;font-size:41px;line-height:1;background:#e8efe2;color:#27513c}
.weather-caption{display:block;font-size:9px;font-weight:800;letter-spacing:.15em;color:#88927b;margin-bottom:6px}
.weather-primary h3{font-family:'Playfair Display',Georgia,serif;font-size:25px;font-weight:500;margin:0 0 3px;line-height:1.2}
.weather-condition{font-size:12px;color:var(--muted);line-height:1.6}
.weather-reading{display:flex;align-items:flex-start;justify-content:center;color:var(--forest);font-family:'Playfair Display',Georgia,serif}
.weather-reading strong{font-size:59px;font-weight:400;line-height:1}
.weather-reading span{font-size:20px;margin:8px 0 0 4px}
.weather-stats{display:grid;gap:10px;border-left:1px solid var(--line);padding-left:25px}
.weather-stats>div{display:flex;align-items:center;justify-content:space-between;gap:18px}
.weather-stats span{color:#758174;font-size:11px}
.weather-stats b{color:var(--forest);font-weight:700;font-size:12px;white-space:nowrap}
.weather-disclosure{border-top:1px solid #e0e5db}
.weather-disclosure>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 30px;background:#f2f6ee;font-size:12px;font-weight:750;color:var(--forest)}
.weather-disclosure>summary::-webkit-details-marker{display:none}
.weather-disclosure>summary:focus-visible{outline:3px solid #8baa9b;outline-offset:-3px}
.weather-disclosure>summary:hover{background:#e9f1e5}
.weather-chevron{font-size:22px;line-height:1;transition:transform .2s}
.weather-disclosure[open] .weather-chevron{transform:rotate(180deg)}
.weather-expanded{padding:25px 30px 31px}
.weather-expanded h4{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#607867;font-weight:800;margin:0 0 14px}
.weather-expanded h4:not(:first-child){margin-top:24px}
.weather-hourly{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:9px}
.weather-hour{min-width:0;background:#f4f7f1;border:1px solid #e0e7db;border-radius:4px;text-align:center;padding:15px 7px;display:grid;justify-items:center;gap:8px}
.weather-hour time{font-size:11px;color:#677f6d;font-weight:700}
.weather-hour .forecast-symbol{font-size:24px;line-height:1}
.weather-hour strong{font-size:17px;color:var(--forest)}
.weather-hour small{font-size:10px;line-height:1.45;color:#778477}
.weather-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.weather-day{border:1px solid #e1e5d9;border-radius:4px;padding:17px;background:#fafbf7;display:flex;align-items:center;gap:13px}
.weather-day>span{font-size:32px}
.weather-day>div{min-width:0}
.weather-day b{display:block;font-size:12px;color:var(--forest);margin-bottom:4px}
.weather-day small{display:block;font-size:11px;line-height:1.5;color:var(--muted)}
.weather-empty{font-size:12px;color:var(--muted);margin:0;line-height:1.6}
.weather-footer{border-top:1px solid #e1e7db;display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 30px;font-size:10px;color:#77887c}
.weather-footer a{color:#3a6d52;text-decoration:underline;text-underline-offset:2px}
.weather-booking-note{border:1px solid #d8e1d7;background:#f2f6ed;margin:0 0 18px;padding:15px 20px;border-radius:5px;display:flex;align-items:center;gap:14px}
.weather-booking-icon{font-size:28px;color:var(--forest)}
.weather-booking-note>div{flex:1;min-width:0;display:grid;gap:4px}
.weather-booking-note strong{font-size:12px;color:var(--forest)}
.weather-booking-note div span{font-size:11px;color:var(--muted);line-height:1.5}
.weather-booking-note a{font-size:11px;color:var(--forest);font-weight:700;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}
@media(max-width:950px){.weather-main{grid-template-columns:1fr auto}.weather-stats{grid-column:1/-1;border-left:none;border-top:1px solid var(--line);padding:16px 0 0;grid-template-columns:repeat(3,1fr)}.weather-stats>div{display:grid;gap:4px}.weather-hourly{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.weather-heading{display:block}.weather-heading>p{margin:14px 0 0}.weather-section{padding-bottom:55px}.weather-main{padding:22px 18px;gap:13px}.weather-main-icon{width:58px;height:58px;font-size:33px}.weather-primary{gap:11px}.weather-primary h3{font-size:20px}.weather-caption{font-size:8px}.weather-reading strong{font-size:46px}.weather-reading span{font-size:16px}.weather-disclosure>summary{padding:16px 18px}.weather-expanded{padding:18px 15px 21px}.weather-hourly{grid-template-columns:repeat(3,minmax(0,1fr))}.weather-days{grid-template-columns:1fr}.weather-footer{padding:12px 18px}.weather-booking-note{flex-wrap:wrap}.weather-booking-note a{margin-left:41px}}
@media(max-width:380px){.weather-primary h3{font-size:17px}.weather-main-icon{width:43px;height:43px;font-size:26px}.weather-reading strong{font-size:38px}.weather-hourly{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* October update: a discreet sky-side forecast and fuller hourly weather metrics */
.hero-weather{position:absolute;top:24px;right:max(24px,calc((100% - 1180px)/2));z-index:2;width:278px;border:1px solid rgba(255,255,255,.48);border-radius:8px;background:rgba(18,45,39,.76);box-shadow:0 10px 32px rgba(0,0,0,.16);backdrop-filter:blur(12px);color:#fff;overflow:hidden}
.hero-weather>summary{list-style:none;padding:13px 16px;cursor:pointer;display:grid;gap:5px}
.hero-weather>summary::-webkit-details-marker{display:none}
.hero-weather>summary:focus-visible{outline:3px solid #e4e2c0;outline-offset:-3px}
.hero-weather-heading{font-size:9px;letter-spacing:.19em;font-weight:800;color:#d6e4d2}
.hero-weather-basic{display:flex;align-items:center;gap:8px;font-size:12px}
.hero-weather-basic #heroWeatherIcon{font-size:25px}
.hero-weather-basic strong{font-family:Georgia,serif;font-size:25px;font-weight:500;white-space:nowrap}
.hero-weather-basic #heroWeatherCondition{font-size:11px;flex:1;color:#f3f4e9}
.hero-weather-breakdown{padding:11px 16px 14px;border-top:1px solid #ffffff35;background:#0a251da8;display:grid;gap:10px}
.hero-weather-breakdown>div{display:flex;justify-content:space-between;gap:12px;font-size:11px}
.hero-weather-breakdown b{font-weight:650;text-align:right}
.hero-weather-breakdown>a{font-size:11px;color:#f0deb6;text-decoration:underline;text-underline-offset:3px}
.weather-probability-note{font-size:11px;line-height:1.6;color:var(--muted);margin:-4px 0 15px}
.weather-stats{grid-template-columns:1fr;min-width:195px}
.weather-day{align-items:flex-start}
.weather-hour{padding:15px 5px;gap:6px}
.weather-hour small{font-size:9px}
.website-support h2{font-size:27px;font-weight:500;margin:13px 0}
.website-support p{line-height:1.75;font-size:13px}
.support-warning{margin-top:20px;padding:16px 17px;background:#fff4e3;border-left:3px solid #a9773a;color:#5c4936;border-radius:3px}
@media(max-width:800px){.hero-weather{right:16px;top:12px;width:240px}.hero-weather-basic strong{font-size:22px}.hero-weather-basic #heroWeatherCondition{font-size:10px}}
@media(max-width:600px){.hero-weather{right:12px;top:10px;width:min(200px,53vw)}.hero-weather>summary{padding:9px 10px}.hero-weather-heading{font-size:8px}.hero-weather-basic{gap:4px}.hero-weather-basic #heroWeatherIcon{font-size:19px}.hero-weather-basic strong{font-size:21px}.hero-weather-basic #heroWeatherCondition{font-size:9px}.hero-weather-breakdown{padding:10px}.hero-weather-breakdown>div{font-size:9px}.hero-copy{padding-top:95px}.hero-weather{background:rgba(18,45,39,.87)}.weather-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Rain-forecast service setup/availability banner */
#weatherDataNotice:not([hidden]) {margin: 0 0 14px; padding: 14px 18px; border: 1px solid #b29a64; border-radius: 8px; background: #2d2a20; color: #f4e5bd; line-height: 1.55; font-size: 0.92rem;}

/* Round-yard booking and in-site farm enquiry additions */
#page-roundyard .booking-layout{margin-top:22px}
#page-roundyard .booking-calendar{min-width:0}
.enquiry-intro,.enquiry-footnote{font-size:13px;line-height:1.65;color:var(--muted)}
.enquiry-footnote{margin-top:16px}
.bot-field{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);left:-10000px;top:auto}
.booking-other-services button.text-link{margin:7px 16px 7px 0;cursor:pointer;color:var(--forest);font-weight:700}
.weather-direction-note{font-size:11px;color:var(--muted);line-height:1.55;margin:0 0 18px}
/* Long compass annotations: allow wrapping rather than clipping in cards */
.weather-stats b{white-space:normal;text-align:right}
.weather-hour small{overflow-wrap:anywhere}
.weather-day small{overflow-wrap:anywhere}
@media(max-width:480px){#page-roundyard .date-actions{flex-wrap:wrap}.service-card button.btn{width:100%;text-align:center}}

/* Explicit 60-minute confirmation on both calendars */
.booking-selected-date{margin:10px 0 8px;color:#a9bfb0}
.booking-selected-time{display:grid;gap:5px;padding:15px 18px;margin:12px 0 20px;border:1px solid #476452;border-radius:5px;background:#193b2d;color:#f8fbf7}
.booking-selected-time strong{font-size:21px;letter-spacing:.01em}
.booking-selected-time small{font-size:12px;color:#c6d8c8}

/* Booking safety and explicit one-hour booked-session list */
.booking-safety-notice {border:1px solid #b68b47;background:#392e20;color:#f1e3cd;padding:16px 18px;border-radius:9px;margin:12px 0;}
.booked-sessions {margin:26px 0 6px;padding:18px;border:1px solid rgba(185,196,178,.23);border-radius:9px;background:rgba(11,29,20,.20);}
.booked-sessions h3{margin:0 0 12px;font-size:1.1rem;color:#c7dccc;}
.booked-sessions .subtle{font-size:.87rem;margin:0 0 12px;}
.booked-sessions ul{margin:6px 0 0;padding-left:22px;}
.booked-sessions li{margin:6px 0;line-height:1.5;word-break:break-word;}
