:root{--ink:#182621;--pine:#19372e;--pine-deep:#10251f;--moss:#708579;--cream:#f3efe6;--paper:#faf8f2;--terracotta:#ba5b43;--orange:#d97855;--line:rgba(24,38,33,.16);--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--mono:'DM Mono',monospace;--shadow:0 24px 60px rgba(25,55,46,.13)}*,*::before,*::after{box-sizing:border-box}html{overflow-x:hidden!important;width:100%!important;max-width:100%!important;scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{overflow-x:hidden!important;width:100%!important;max-width:100%!important;margin:0;padding:0;position:relative;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55}body.modal-open{overflow:hidden}.site-wrapper{overflow-x:clip!important;overflow-y:visible;width:100%;max-width:100%;position:relative}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.announcement{height:31px;background:var(--pine-deep);color:#dce7da;display:flex;align-items:center;justify-content:center;gap:10px;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.pulse-dot{width:6px;height:6px;border-radius:50%;background:#e08b66;box-shadow:0 0 0 4px rgba(224,139,102,.16)}.announcement-separator{opacity:.4}.site-header{height:84px;padding:0 5.5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(250,248,242,.9);backdrop-filter:blur(15px);position:relative;z-index:10}.wordmark{display:flex;align-items:center;gap:10px;color:var(--pine);font-family:var(--serif);font-size:23px;line-height:.85;letter-spacing:-.05em}.wordmark b{font-weight:600}.wordmark em{font-family:var(--sans);font-size:13px;color:var(--terracotta);font-style:normal;padding:0 2px}.wordmark small{display:block;font-family:var(--mono);font-size:7px;line-height:1;margin-top:7px;letter-spacing:.12em;text-transform:uppercase;color:var(--moss)}.wordmark-mark{width:29px;height:31px;position:relative;display:inline-block}.wordmark-mark:after{content:'';position:absolute;width:2px;height:13px;background:var(--terracotta);bottom:1px;left:14px;border-radius:2px}.wordmark-mark i{position:absolute;display:block;background:var(--pine);width:13px;height:20px;border-radius:100% 0 100% 0;transform:rotate(35deg)}.wordmark-mark i:nth-child(1){left:4px;top:2px}.wordmark-mark i:nth-child(2){left:13px;top:0;transform:rotate(68deg) scale(.9)}.wordmark-mark i:nth-child(3){left:10px;top:10px;transform:rotate(16deg) scale(.76);background:var(--moss)}.main-nav{display:flex;align-items:center;gap:30px;font-size:12px;font-weight:600}.main-nav>a:not(.nav-cta){color:#52655d}.main-nav>a:not(.nav-cta):hover{color:var(--terracotta)}.nav-cta{background:var(--pine);color:var(--cream);padding:12px 18px;border-radius:2px}.nav-cta span{margin-left:13px;color:#e39b7c}.menu-toggle{display:none;border:0;background:transparent;padding:6px}.section-shell{width:min(1180px,89vw);margin:0 auto}.hero{display:grid;grid-template-columns:1fr 1.06fr;gap:clamp(40px,7vw,110px);padding:76px 0 82px;align-items:center}.kicker{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;font-size:10px;color:var(--terracotta);display:flex;align-items:center;gap:11px;margin:0 0 22px}.line{display:inline-block;width:34px;height:1px;background:currentColor}.hero h1,.closing h2,.story h2,.section-heading h2,.cafe h2,.location h2{font-family:var(--serif);font-weight:600;letter-spacing:-.055em;line-height:.98;margin:0;color:var(--pine-deep)}h1{font-size:clamp(58px,7.4vw,100px)}h1 i,h2 i{font-style:italic;color:var(--terracotta);font-weight:500}.hero-lede{max-width:405px;font-size:17px;line-height:1.7;color:#53655e;margin:29px 0 31px}.hero-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.button{border:0;display:inline-flex;justify-content:center;align-items:center;gap:26px;padding:15px 20px;min-height:49px;border-radius:2px;font-size:11px;font-weight:700;letter-spacing:.02em;white-space:nowrap;transition:transform .2s ease,background .2s ease}.button:hover{transform:translateY(-2px)}.button span{font-size:18px;font-weight:400;line-height:0}.button-dark{background:var(--pine);color:var(--cream)}.button-dark:hover{background:var(--pine-deep)}.button-terracotta{background:var(--terracotta);color:#fff8ee}.button-terracotta:hover{background:#a74e38}.button-cream{background:var(--cream);color:var(--pine);padding:16px 22px}.text-link{font-size:11px;font-weight:700;color:var(--pine);border-bottom:1px solid var(--terracotta);padding-bottom:3px}.text-link span{font-size:16px;margin-left:7px;color:var(--terracotta)}.hero-note{display:flex;gap:12px;align-items:center;color:#87948e;font-size:11px;margin-top:57px}.note-rule{width:43px;height:1px;background:#b6c0b9}.hero-visual{position:relative}.hero-image-wrap{height:min(610px,53vw);min-height:460px;position:relative;background:var(--pine);overflow:hidden}.hero-image-wrap:after{content:'';position:absolute;inset:0;background:linear-gradient(145deg,rgba(16,37,31,.05),rgba(16,37,31,.42));pointer-events:none}.hero-image-wrap img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.72) contrast(1.04)}.image-chip{position:absolute;z-index:1;left:16px;top:16px;background:rgba(250,248,242,.87);padding:8px 10px;color:var(--pine);font-family:var(--mono);font-size:8px;letter-spacing:.07em;text-transform:uppercase}.image-stamp{position:absolute;z-index:2;right:22px;bottom:21px;color:var(--cream);display:flex;align-items:center;gap:11px}.image-stamp span{font-family:var(--serif);font-size:47px;line-height:1;color:#f0b499}.image-stamp small{font-family:var(--mono);font-size:9px;line-height:1.5;letter-spacing:.08em;text-transform:uppercase}.hero-caption{display:flex;justify-content:space-between;align-items:center;color:var(--moss);font-family:var(--mono);text-transform:uppercase;font-size:9px;letter-spacing:.08em;padding-top:13px}.caption-arrow{font-size:16px;color:var(--terracotta)}.booking-strip{background:var(--pine);color:var(--cream);display:grid;grid-template-columns:1fr 3fr;align-items:center;gap:30px;padding:26px 5.5vw;position:relative}.booking-intro{display:flex;flex-direction:column;gap:2px}.booking-intro .eyebrow{color:#cb8a71}.booking-intro strong{font-family:var(--serif);font-size:21px;font-weight:500}.eyebrow{font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--moss);text-transform:uppercase}.booking-fields{display:grid;grid-template-columns:1fr 1fr .75fr auto;gap:10px;align-items:end}.booking-fields label{display:flex;flex-direction:column;gap:6px;font-family:var(--mono);font-size:9px;color:#a9b9ac;letter-spacing:.06em;text-transform:uppercase}.booking-fields input,.booking-fields select{border:0;border-bottom:1px solid rgba(243,239,230,.28);background:transparent;color:var(--cream);padding:7px 0;font-family:var(--sans);font-size:13px;outline:none;border-radius:0}.booking-fields select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,#cb8a71 50%),linear-gradient(135deg,#cb8a71 50%,transparent 50%);background-position:calc(100% - 8px) 53%,calc(100% - 3px) 53%;background-size:5px 5px;background-repeat:no-repeat}.booking-fields option{color:var(--ink)}.booking-disclaimer{position:absolute;left:5.5vw;bottom:-25px;color:#829289;font-size:10px;margin:0}.numbers{padding:94px 0 105px;display:grid;grid-template-columns:1fr 3fr;gap:40px}.section-index{font-family:var(--mono);font-size:9px;letter-spacing:.11em;text-transform:uppercase;color:var(--moss)}.section-index span{color:var(--terracotta);margin:0 5px}.number-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);padding-top:17px}.number-item{min-height:120px;border-right:1px solid var(--line);padding-right:20px;padding-left:20px;display:flex;align-items:baseline;gap:10px}.number-item:first-child{padding-left:0}.number-item:last-child{border-right:0}.number-item strong{font-family:var(--serif);font-size:53px;font-weight:500;line-height:1;color:var(--terracotta)}.number-item span{font-size:11px;line-height:1.5;color:#62736b}.number-copy{display:flex;flex-direction:column;gap:9px;padding-left:25px}.number-copy span{font-family:var(--serif);font-size:20px;line-height:1.1;color:var(--pine)}.number-copy small{font-family:var(--mono);font-size:8px;line-height:1.4;color:#9aa69f;text-transform:uppercase;letter-spacing:.05em}.story{background:var(--cream);width:100%;max-width:none;padding:120px max(5.5vw,calc((100vw - 1180px)/2));display:grid;grid-template-columns:1fr 3fr;gap:40px}.vertical-label{font-family:var(--mono);font-size:9px;letter-spacing:.16em;color:var(--moss);writing-mode:vertical-rl;transform:rotate(180deg);display:block}.story h2{font-size:clamp(42px,5.6vw,73px)}.story-columns{display:grid;grid-template-columns:1fr 1fr;gap:68px;margin-top:50px;max-width:730px}.story-columns p{color:#596b62;line-height:1.8;margin:0;font-size:15px}.story-signature{display:flex;gap:13px;align-items:center;margin-top:53px;font-family:var(--serif);color:var(--terracotta);font-size:18px;line-height:1}.signature-leaf{font-size:27px}.story-signature small{font-family:var(--mono);font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--moss);font-style:normal}.stay{padding:120px 0 128px}.section-heading{display:flex;justify-content:space-between;gap:50px;align-items:flex-end;margin-bottom:49px}.section-heading h2{font-size:clamp(40px,5vw,65px)}.section-intro{max-width:320px;color:#74837c;font-size:13px;line-height:1.7;margin:0 0 3px}.room-list{display:flex;flex-direction:column;gap:16px}.room-card{display:grid;grid-template-columns:36% 1fr;background:#fff;border:1px solid var(--line);min-height:285px;transition:box-shadow .3s ease,transform .3s ease}.room-card:hover{box-shadow:var(--shadow);transform:translateY(-3px)}.room-image{position:relative;overflow:hidden;background:var(--pine);min-height:285px}.room-image img{width:100%;height:100%;object-fit:cover;filter:saturate(.6) contrast(1.08);transition:transform .5s ease}.room-card:hover .room-image img{transform:scale(1.04)}.room-image-a img{object-position:25% 45%;}.room-image-b img{object-position:72% 47%;filter:saturate(.55) contrast(1.02) sepia(.12)}.room-image-c img{object-position:55% 80%;filter:saturate(.65) contrast(1.04)}.room-badge{position:absolute;top:15px;left:15px;padding:7px 9px;background:var(--terracotta);color:#fff8ed;font-family:var(--mono);font-size:8px;text-transform:uppercase;letter-spacing:.1em}.light-badge{background:rgba(250,248,242,.9);color:var(--pine)}.room-content{padding:29px 35px 24px;display:flex;flex-direction:column}.room-topline{display:flex;justify-content:space-between;align-items:center;gap:15px}.room-type{font-family:var(--mono);font-size:9px;color:var(--moss);text-transform:uppercase;letter-spacing:.08em}.room-price{font-family:var(--serif);font-size:19px;color:var(--terracotta)}.room-price small{font-family:var(--mono);font-size:8px;color:#8a9690}.room-content h3{font-family:var(--serif);font-size:31px;font-weight:500;letter-spacing:-.04em;color:var(--pine);margin:19px 0 8px}.room-content p{max-width:465px;color:#6d7d75;font-size:13px;line-height:1.65;margin:0}.room-meta{display:flex;gap:22px;margin-top:22px;padding-top:14px;border-top:1px solid var(--line);color:#708178;font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.05em}.room-meta span+span:before{content:'·';color:var(--terracotta);margin-right:22px}.room-actions{display:flex;gap:25px;align-items:center;margin-top:auto;padding-top:22px}.text-button{border:0;background:none;padding:0;color:var(--pine);font-size:11px;font-weight:700}.text-button span{color:var(--terracotta);font-size:15px;margin-left:5px}.room-actions .button{min-height:40px;padding:10px 15px;margin-left:auto}.demo-note{font-family:var(--mono);color:#a0aba5;font-size:8px;line-height:1.35;margin-top:9px}.cafe{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(40px,8vw,120px);align-items:center;background:var(--pine);max-width:none;width:100%;padding:105px max(5.5vw,calc((100vw - 1180px)/2));color:var(--cream)}.cafe-image{height:530px;position:relative;background:#25483c;overflow:hidden}.cafe-image img{width:100%;height:100%;object-fit:cover;object-position:63% 42%;filter:brightness(.65) saturate(.6)}.cafe-image:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(16,37,31,.7),transparent 60%)}.cafe-image .image-chip{color:var(--pine)}.cafe-orbit{position:absolute;z-index:1;right:25px;bottom:25px;border:1px solid rgba(243,239,230,.58);border-radius:50%;height:118px;width:118px;display:flex;align-items:center;justify-content:center;text-align:center;font-family:var(--serif);font-size:16px;line-height:1.05;transform:rotate(-11deg);color:#f3c1ac}.cafe-copy .kicker{color:#e39b7c}.cafe h2{color:var(--cream);font-size:clamp(44px,5.2vw,72px)}.cafe-copy>p:not(.kicker){color:#b5c2b7;max-width:385px;line-height:1.8;margin:30px 0}.cafe-menu{display:flex;flex-wrap:wrap;gap:9px;margin:34px 0 38px}.cafe-menu span{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;font-size:9px;padding:8px 10px;border:1px solid rgba(243,239,230,.26);color:#d3ded2}.cafe-copy .text-link{color:var(--cream);border-color:#db866a}.gallery{padding:125px 0 127px}.gallery-heading{margin-bottom:57px}.gallery-grid{display:grid;grid-template-columns:1.4fr .8fr 1fr;grid-template-rows:220px 160px;gap:14px}.gallery-tile{padding:0;border:0;background:var(--pine);overflow:hidden;position:relative;text-align:left;color:#fff;min-height:0}.gallery-tile img{width:100%;height:100%;object-fit:cover;filter:saturate(.58) contrast(1.08);transition:transform .5s ease,filter .5s ease}.gallery-tile:hover img{transform:scale(1.05);filter:saturate(.8) contrast(1.05)}.gallery-tile span{position:absolute;z-index:1;bottom:14px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;color:#fff;font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase}.gallery-tile span b{font-size:18px;font-weight:400;color:#e39b7c}.gallery-large{grid-row:1 / span 2}.gallery-large img{object-position:23% 44%}.gallery-tall{grid-row:1 / span 2}.gallery-tall img{object-position:74% 42%}.gallery-small img{object-position:56% 83%}.gallery-pullquote{background:var(--cream);padding:20px 25px;position:relative}.quote-mark{font-family:var(--serif);font-size:52px;line-height:.6;color:var(--terracotta)}.gallery-pullquote p{font-family:var(--serif);font-size:17px;line-height:1.25;color:var(--pine);margin:14px 0 13px}.gallery-pullquote small{font-family:var(--mono);font-size:8px;letter-spacing:.08em;color:var(--moss);text-transform:uppercase}.location{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center;padding:0 0 130px}.location h2{font-size:clamp(45px,5.2vw,70px)}.location-copy>p:not(.kicker){max-width:390px;color:#728078;line-height:1.75;margin:30px 0}.address-block{display:flex;gap:14px;align-items:flex-start;margin:34px 0 29px}.address-icon{color:var(--terracotta);font-size:24px;line-height:1}.address-block div{display:flex;flex-direction:column;gap:4px}.address-block strong{font-family:var(--serif);font-weight:500;color:var(--pine);font-size:17px}.address-block span{font-family:var(--mono);color:#7e8b84;font-size:9px;text-transform:uppercase;letter-spacing:.06em}.location-actions{display:flex;align-items:center;gap:28px}.map-card{height:420px;position:relative;overflow:hidden;background:#dfdfca;border:1px solid var(--line)}.map-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(53,83,67,.11) 1px,transparent 1px),linear-gradient(90deg,rgba(53,83,67,.11) 1px,transparent 1px);background-size:38px 38px;transform:rotate(-9deg) scale(1.3)}.map-card:before,.map-card:after{content:'';position:absolute;border:1px solid rgba(46,93,68,.22);border-radius:50%;height:270px;width:410px;left:2%;top:24%;transform:rotate(15deg)}.map-card:after{height:160px;width:270px;left:42%;top:3%;transform:rotate(-17deg)}.map-mountain{position:absolute;bottom:-45px;background:#90a796;clip-path:polygon(0 100%,0 70%,24% 41%,39% 59%,55% 14%,72% 56%,100% 29%,100% 100%);height:210px;width:100%;opacity:.55}.mountain-front{bottom:-76px;right:-30px;transform:scaleX(-1);background:#506f5d;opacity:.48}.map-pin{position:absolute;z-index:2;left:51%;top:47%;height:60px;width:60px;background:var(--terracotta);border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:flex;align-items:center;justify-content:center;color:#fff}.map-pin span{transform:rotate(45deg);font-size:22px}.map-pin small{position:absolute;transform:rotate(45deg);width:90px;left:33px;top:48px;color:var(--pine);font-family:var(--mono);font-size:8px;letter-spacing:.12em}.map-label{position:absolute;z-index:2;font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#456b56}.map-label-a{top:22%;left:17%}.map-label-b{bottom:23%;right:18%}.map-demo{position:absolute;z-index:3;left:14px;bottom:13px;background:rgba(250,248,242,.8);padding:7px 9px;color:#6a796f;font-family:var(--mono);font-size:8px;letter-spacing:.03em}.closing{width:100%;max-width:none;background:var(--terracotta);color:#fff4e6;text-align:center;padding:78px 5.5vw 92px;position:relative;overflow:hidden}.closing-topline{display:flex;justify-content:space-between;color:#f2c1ab;font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase}.closing h2{color:#fff4e6;font-size:clamp(52px,7.5vw,103px);margin:38px auto 38px;position:relative;z-index:1}.closing h2 i{color:#fff4e6}.closing-scribble{position:absolute;color:#edaa92;font-size:270px;right:7%;top:7%;font-family:var(--serif);font-weight:300;opacity:.35;transform:rotate(13deg)}.site-footer{background:var(--pine-deep);color:#d5e1d6;padding:48px 5.5vw 25px}.footer-main{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;align-items:start;padding-bottom:65px}.wordmark-footer{color:#dce7da}.wordmark-footer .wordmark-mark i{background:#b3c5b4}.wordmark-footer .wordmark-mark i:nth-child(3){background:#75907f}.footer-main p{margin:0;color:#9fb1a3;line-height:1.6;font-family:var(--serif);font-size:20px}.footer-links{display:flex;flex-direction:column;gap:9px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.footer-links a{color:#aabaae}.footer-links a:hover{color:#e6a284}.footer-bottom{border-top:1px solid rgba(214,228,214,.16);padding-top:19px;display:flex;justify-content:space-between;color:#809587;font-family:var(--mono);font-size:8px;letter-spacing:.05em;text-transform:uppercase}.footer-star{color:#e2987b;margin-left:4px}.modal-backdrop{position:fixed;z-index:30;inset:0;background:rgba(15,31,25,.7);display:flex;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(7px)}.modal-backdrop[hidden]{display:none}.modal{width:min(900px,100%);max-height:calc(100vh - 40px);overflow:auto;background:var(--paper);box-shadow:0 30px 90px rgba(0,0,0,.3);position:relative}.room-modal{display:grid;grid-template-columns:42% 1fr}.modal-close{position:absolute;z-index:3;right:13px;top:11px;border:0;background:rgba(250,248,242,.86);color:var(--pine);font-size:25px;width:34px;height:34px;line-height:25px}.modal-image{min-height:480px;background:var(--pine)}.modal-image img{width:100%;height:100%;object-fit:cover;object-position:45% 50%;filter:saturate(.65)}.modal-copy{padding:56px 48px 38px}.modal-copy h2,.booking-modal h2{font-family:var(--serif);font-size:43px;line-height:1;letter-spacing:-.05em;color:var(--pine);font-weight:500;margin:18px 0}.modal-copy>p,.modal-intro{color:#6f7e76;font-size:14px;line-height:1.7;margin:0 0 26px}.modal-specs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}.modal-specs span,.modal-points span{font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;font-size:8px;color:var(--moss);border:1px solid var(--line);padding:9px}.modal-points{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:15px 0;display:flex;flex-direction:column;gap:9px;margin-bottom:28px}.modal-points span{border:0;padding:0}.modal-points span:before{content:'✳';color:var(--terracotta);margin-right:8px}.modal-copy>.demo-note{display:block;margin-top:13px}.booking-modal{padding:42px 50px 45px;max-width:780px}.booking-modal-head{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding-bottom:17px}.progress{display:flex;gap:14px;font-family:var(--mono);font-size:8px;color:#a1aba5;text-transform:uppercase;letter-spacing:.04em}.progress .active{color:var(--terracotta)}.booking-modal h2{font-size:48px;margin:36px 0 12px}.selected-room{display:flex;align-items:center;gap:13px;background:var(--cream);padding:10px;margin:27px 0 25px}.selected-room img{width:52px;height:52px;object-fit:cover;filter:saturate(.65)}.selected-room div{display:flex;flex-direction:column;gap:2px;flex:1}.selected-room small{font-family:var(--mono);font-size:8px;color:var(--moss);letter-spacing:.1em}.selected-room strong{font-family:var(--serif);font-size:17px;font-weight:500;color:var(--pine)}.selected-room span{font-family:var(--mono);font-size:9px;color:#88958e}.selected-room>span{color:var(--terracotta);font-family:var(--serif);font-size:18px}.booking-modal form{display:flex;flex-direction:column;gap:16px}.booking-modal label{display:flex;flex-direction:column;gap:7px;font-family:var(--mono);font-size:9px;color:var(--moss);text-transform:uppercase;letter-spacing:.06em}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.booking-modal input,.booking-modal textarea{width:100%;border:1px solid var(--line);background:#fff;border-radius:0;padding:12px;color:var(--pine);font-family:var(--sans);font-size:13px;outline-color:var(--terracotta);resize:vertical}.form-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:8px}.form-foot>span{font-family:var(--mono);font-size:8px;line-height:1.4;color:#9aa49e;max-width:230px}.booking-success{text-align:center;padding:54px 20px 22px}.success-mark{width:70px;height:70px;border-radius:50%;background:var(--terracotta);color:#fff4e6;display:flex;align-items:center;justify-content:center;font-size:31px;margin:0 auto 25px}.booking-success h2{margin-top:17px}.booking-success p{max-width:410px;color:#6f7e76;margin:0 auto 29px}.toast{position:fixed;z-index:40;left:50%;bottom:25px;transform:translate(-50%,130px);background:var(--pine-deep);color:#fff4e6;padding:13px 17px;font-family:var(--mono);font-size:10px;box-shadow:var(--shadow);transition:transform .25s ease}.toast.show{transform:translate(-50%,0)}@media(max-width:900px){.site-header{padding:0 5vw}.main-nav{gap:18px}.hero{gap:45px}.numbers{grid-template-columns:1fr;gap:25px}.story{padding:90px 5.5vw;grid-template-columns:1fr}.vertical-label{writing-mode:initial;transform:none}.room-card{grid-template-columns:40% 1fr}.room-content{padding:23px}.cafe{gap:55px;padding-left:5.5vw;padding-right:5.5vw}.location{gap:55px}.booking-strip{grid-template-columns:1fr}.booking-fields{grid-template-columns:repeat(3,1fr)}.booking-fields .button{grid-column:1 / -1;width:max-content}.booking-disclaimer{position:static;margin-top:-16px}.gallery-grid{grid-template-columns:1.1fr .9fr;grid-template-rows:220px 180px 160px}.gallery-large{grid-row:1 / span 2}.gallery-tall{grid-row:1 / span 2}.gallery-small{grid-column:1}.gallery-pullquote{grid-column:2}.footer-main{grid-template-columns:1.2fr 1fr .7fr}}@media(max-width:640px){.announcement{font-size:8px;padding:0 10px}.announcement-separator{display:none}.site-header{height:72px}.menu-toggle{display:flex;flex-direction:column;gap:4px}.menu-toggle span:not(.sr-only){display:block;width:22px;height:1px;background:var(--pine)}.main-nav{display:none;position:absolute;top:72px;right:0;left:0;background:var(--paper);padding:20px 5vw 25px;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;box-shadow:0 17px 25px rgba(16,37,31,.08)}.main-nav.open{display:flex}.main-nav a{padding:11px 0;border-bottom:1px solid var(--line)}.main-nav .nav-cta{padding:12px 16px;margin-top:12px;border:0;text-align:center}.hero{display:flex;flex-direction:column;padding:62px 0 65px;gap:46px}.hero-copy{width:100%}h1{font-size:66px}.hero-lede{font-size:15px}.hero-note{margin-top:40px}.hero-visual{width:100%}.hero-image-wrap{height:113vw;min-height:380px;max-height:560px}.booking-strip{padding:27px 5vw 38px}.booking-fields{grid-template-columns:1fr 1fr;gap:14px 20px}.booking-fields label:nth-child(3){grid-column:1 / -1}.booking-fields .button{width:100%;grid-column:1 / -1;margin-top:4px}.numbers{padding:73px 0 79px}.number-grid{grid-template-columns:1fr 1fr;gap:0}.number-item{border-right:0;border-bottom:1px solid var(--line);padding:19px 7px 19px 0;min-height:96px}.number-item:nth-child(2n){padding-left:19px;border-left:1px solid var(--line)}.number-item:nth-last-child(-n+2){border-bottom:0}.number-item strong{font-size:42px}.number-copy{padding-left:0!important}.story{padding:78px 5vw}.story-columns{grid-template-columns:1fr;gap:17px;margin-top:32px}.story-signature{margin-top:34px}.stay{padding:79px 0 85px}.section-heading{display:block;margin-bottom:35px}.section-intro{margin-top:22px}.room-card{display:block}.room-image{min-height:230px;height:57vw;max-height:300px}.room-content{padding:23px 20px 21px}.room-content h3{font-size:28px}.room-meta{gap:13px}.room-meta span+span:before{margin-right:13px}.room-actions{gap:13px}.room-actions .button{padding:10px 11px;gap:10px}.cafe{display:flex;flex-direction:column;padding-top:72px;padding-bottom:79px;gap:48px}.cafe-image{height:92vw;width:100%;max-height:430px}.gallery{padding:82px 0}.gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:210px 180px 180px}.gallery-large{grid-column:1 / -1;grid-row:auto}.gallery-tall{grid-column:1;grid-row:auto}.gallery-small{grid-column:2;grid-row:auto}.gallery-pullquote{grid-column:1 / -1;grid-row:auto}.location{display:flex;flex-direction:column;gap:42px;padding-bottom:85px}.map-card{width:100%;height:330px}.closing{padding:58px 5vw 64px}.closing h2{font-size:63px;margin:30px 0}.closing-scribble{font-size:170px;right:-7%;top:12%}.footer-main{grid-template-columns:1fr 1fr;gap:37px;padding-bottom:42px}.footer-main p{grid-column:1 / -1;grid-row:2;font-size:18px}.footer-links{grid-column:2;grid-row:1 / span 2;align-self:end}.footer-bottom{flex-direction:column;gap:9px}.room-modal{display:flex;flex-direction:column}.modal-image{height:240px;min-height:0}.modal-copy{padding:35px 25px 28px}.modal-copy h2{font-size:35px}.booking-modal{padding:31px 22px 29px}.booking-modal-head{display:block}.progress{margin-top:14px}.booking-modal h2{font-size:39px;margin-top:29px}.form-row{grid-template-columns:1fr;gap:16px}.form-foot{align-items:stretch;flex-direction:column}.form-foot .button{width:100%}.selected-room>span{font-size:15px}.modal-close{top:8px;right:8px}}

/* Pine & Pour brand asset, Golden Loom-inspired calendar, and complete photo gallery */
.brand-logo{display:block;width:150px;height:60px;object-fit:contain;object-position:center;mix-blend-mode:multiply}
.wordmark-footer .brand-logo{width:165px;height:72px}
.booking-model-note{font-family:var(--mono);font-size:8px;color:#8da097;letter-spacing:.05em;text-transform:uppercase;margin-top:8px}
.date-trigger{border:0;border-bottom:1px solid rgba(243,239,230,.28);background:transparent;color:var(--cream);padding:7px 0;display:flex;justify-content:space-between;align-items:center;text-align:left;font-size:13px;line-height:1;min-width:116px}
.date-trigger b{font-size:14px;color:#cb8a71;font-weight:400}
.calendar-panel{position:absolute;z-index:20;right:5.5vw;top:calc(100% + 16px);width:min(420px,calc(100vw - 32px));background:var(--paper);color:var(--pine);box-shadow:0 24px 60px rgba(16,37,31,.28);padding:22px;border:1px solid rgba(25,55,46,.14)}
.calendar-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.calendar-head strong{display:block;font-family:var(--serif);font-size:19px;font-weight:500;margin-top:5px}
.calendar-head button{border:0;background:transparent;color:var(--terracotta);font-size:24px;line-height:1;padding:0}
.calendar-summary{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;margin:20px 0 14px;padding:11px;background:var(--cream);font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em}
.calendar-summary i{font-style:normal;color:var(--terracotta)}
.calendar-summary b{grid-column:1 / -1;font-weight:400;font-size:9px;color:var(--moss);padding-top:5px;border-top:1px solid var(--line);text-transform:none;letter-spacing:0}
.calendar-nav{display:grid;grid-template-columns:32px 1fr 32px;align-items:center;text-align:center;margin:7px 0 12px}
.calendar-nav button{border:0;background:transparent;color:var(--terracotta);font-size:17px;padding:5px}
.calendar-nav strong{font-family:var(--serif);font-size:18px;font-weight:500}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.calendar-weekdays{font-family:var(--mono);font-size:8px;color:#89968f;text-transform:uppercase;margin-bottom:5px}
.calendar-day{height:35px;border:0;background:transparent;color:var(--pine);font-size:12px;border-radius:50%;transition:background .15s ease,color .15s ease}
.calendar-day:hover:not(:disabled){background:var(--cream)}
.calendar-day.selected{background:var(--terracotta);color:#fff8ed}
.calendar-day.in-range{background:#ead8cf;border-radius:0;color:var(--pine)}
.calendar-day.unavailable{color:#c3c9c3;background:#eef0ea;cursor:not-allowed;text-decoration:line-through}
.calendar-note{display:flex;align-items:flex-start;gap:7px;color:#7e8b84;font-family:var(--mono);font-size:8px;line-height:1.4;margin:15px 0 0}
.calendar-key{width:8px;height:8px;display:inline-block;background:#eef0ea;border:1px solid #d9ded8;margin-top:2px;flex:none}
.full-gallery{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,180px);gap:12px}
.full-gallery .gallery-tile{grid-row:auto}
.full-gallery .gallery-tile:nth-child(1),.full-gallery .gallery-tile:nth-child(8){grid-row:span 2}
.full-gallery .gallery-tile:nth-child(2),.full-gallery .gallery-tile:nth-child(7),.full-gallery .gallery-tile:nth-child(12){grid-column:span 2}
.full-gallery .gallery-tile img{object-position:center}
@media(max-width:850px){.brand-logo{width:125px;height:54px}.wordmark-footer .brand-logo{width:140px}.booking-strip{grid-template-columns:1fr;gap:18px}.booking-fields{grid-template-columns:1fr 1fr;gap:16px}.booking-fields .button{grid-column:1 / -1}.calendar-panel{left:16px;right:auto;top:calc(100% + 10px)}.full-gallery{grid-template-columns:repeat(2,1fr);grid-template-rows:repeat(7,160px)}.full-gallery .gallery-tile:nth-child(2),.full-gallery .gallery-tile:nth-child(7),.full-gallery .gallery-tile:nth-child(12){grid-column:auto}}
@media(max-width:520px){.brand-logo{width:105px;height:46px}.booking-fields{grid-template-columns:1fr}.booking-fields .button{grid-column:auto}.calendar-panel{left:16px;width:calc(100vw - 32px)}.full-gallery{grid-template-rows:repeat(7,130px);gap:8px}.full-gallery .gallery-tile:nth-child(1),.full-gallery .gallery-tile:nth-child(8){grid-row:span 1}.calendar-day{height:31px}}


/* ==========================================================================
   PINE & POUR: OPEN CALENDAR (FLATPICKR) & DIRECT BOOKING EXTENSIONS
   ========================================================================== */

/* Flatpickr Base Styling Overrides */
.flatpickr-calendar {
  background: #ffffff !important;
  font-family: var(--sans) !important;
  border-radius: 4px !important;
  border: 1px solid var(--line) !important;
  box-shadow: 0 16px 40px rgba(16, 37, 31, 0.08) !important;
  z-index: 99999 !important;
}

.flatpickr-calendar.inline {
  width: auto !important;
  max-width: 100% !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  display: block !important;
}

.flatpickr-months {
  display: flex !important;
  justify-content: space-around !important;
  align-items: center !important;
  position: relative !important;
  padding: 8px 0 16px !important;
}

.flatpickr-months .flatpickr-month {
  flex: 1 !important;
  height: 38px !important;
  color: var(--pine-deep) !important;
  fill: var(--pine-deep) !important;
  text-align: center !important;
  position: relative !important;
}

.flatpickr-current-month {
  font-family: var(--serif) !important;
  font-size: 1.25rem !important;
  font-weight: 600 !important;
  color: var(--pine-deep) !important;
  position: static !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  padding: 0 !important;
}

.flatpickr-current-month .numInputWrapper {
  font-family: var(--serif) !important;
  font-weight: 500 !important;
}

.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
  position: absolute !important;
  top: 8px !important;
  z-index: 5 !important;
  padding: 6px 12px !important;
  cursor: pointer !important;
  color: var(--terracotta) !important;
  fill: var(--terracotta) !important;
}

.flatpickr-months .flatpickr-prev-month {
  left: 6px !important;
}

.flatpickr-months .flatpickr-next-month {
  right: 6px !important;
}

.flatpickr-innerContainer {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
  overflow: visible !important;
}

.flatpickr-rContainer {
  display: inline-block !important;
  width: auto !important;
  max-width: 100% !important;
}

.flatpickr-weekdays {
  display: flex !important;
  justify-content: center !important;
  width: 100% !important;
  gap: 32px !important;
  margin-bottom: 8px !important;
}

.flatpickr-weekdaycontainer {
  display: flex !important;
  width: 308px !important;
  min-width: 308px !important;
  max-width: 308px !important;
  justify-content: space-around !important;
}

span.flatpickr-weekday {
  font-family: var(--mono) !important;
  font-size: 10px !important;
  color: var(--moss) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
  font-weight: 700 !important;
  width: 39px !important;
  max-width: 39px !important;
  text-align: center !important;
}

.flatpickr-days {
  display: flex !important;
  justify-content: center !important;
  gap: 32px !important;
  width: auto !important;
  overflow: visible !important;
  height: auto !important;
}

.dayContainer {
  width: 308px !important;
  min-width: 308px !important;
  max-width: 308px !important;
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: space-around !important;
  padding: 0 !important;
  margin: 0 !important;
  outline: 0 !important;
}

.dayContainer + .dayContainer {
  border-left: 1px dashed rgba(24, 38, 33, 0.2) !important;
  padding-left: 0 !important;
  margin-left: -16px !important;
  padding-left: 16px !important;
  width: 324px !important;
  min-width: 324px !important;
  max-width: 324px !important;
}

.flatpickr-day {
  flex-basis: 14.2857% !important;
  width: 39px !important;
  max-width: 39px !important;
  height: 39px !important;
  line-height: 39px !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--pine-deep) !important;
  border-radius: 4px !important;
  transition: all 0.15s ease !important;
  text-align: center !important;
  margin: 1px 0 !important;
  cursor: pointer !important;
  pointer-events: auto !important;
}

.flatpickr-day.today {
  border-color: var(--terracotta) !important;
  color: var(--terracotta) !important;
}

.flatpickr-day:hover:not(.flatpickr-disabled) {
  background: var(--cream) !important;
  border-color: transparent !important;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
  background: var(--terracotta) !important;
  border-color: var(--terracotta) !important;
  color: #ffffff !important;
  font-weight: 700 !important;
}

.flatpickr-day.inRange {
  background: #f0ded6 !important;
  border-color: transparent !important;
  color: var(--pine-deep) !important;
  box-shadow: -5px 0 0 #f0ded6, 5px 0 0 #f0ded6 !important;
}

.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
  color: #c5cec8 !important;
  background: transparent !important;
}

/* Open Calendar Section Layout */
.booking-section-open {
  padding: 85px 0 95px;
  border-top: 1px solid var(--line);
  background: var(--paper);
}

.booking-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
  margin-bottom: 45px;
}

.booking-header h2 {
  font-size: clamp(38px, 4.8vw, 62px);
  color: var(--pine-deep);
}

.open-calendar-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr);
  gap: 34px;
  align-items: start;
  width: 100%;
  max-width: 100%;
}

/* Calendar Card */
.calendar-card {
  background: #ffffff;
  border: 1px solid var(--line);
  padding: 34px 34px 28px;
  box-shadow: 0 12px 35px rgba(25, 55, 46, 0.05);
  overflow-x: auto;
}

.calendar-card-header {
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
}

.calendar-card-header h3 {
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 500;
  color: var(--pine);
  margin: 6px 0 0;
}

.flatpickr-custom-inline {
  display: flex;
  justify-content: center;
  margin: 10px 0;
}

.cal-legend-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  font-family: var(--mono);
  font-size: 9px;
  color: var(--moss);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding-top: 18px;
  border-top: 1px solid var(--line);
  margin-top: 15px;
}

.legend-box {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 2px;
  vertical-align: middle;
  margin-right: 5px;
}

.legend-box.selected-box { background: var(--terracotta); }
.legend-box.today-box { border: 1px solid var(--terracotta); background: #ffffff; }
.legend-box.available-box { background: #eef3ef; }

/* Booking Configurator Card */
.booking-config-card {
  background: #ffffff;
  border: 1px solid var(--line);
  padding: 34px 36px;
  box-shadow: 0 12px 35px rgba(25, 55, 46, 0.05);
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.config-top h3 {
  font-family: var(--serif);
  font-size: 28px;
  color: var(--pine);
  margin: 4px 0 0;
}

.config-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.field-title {
  font-family: var(--mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--moss);
  font-weight: 600;
}

/* Room Pills */
.room-selector-pills {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.room-pill {
  border: 1px solid var(--line);
  background: var(--paper);
  padding: 14px 16px;
  text-align: left;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 10px;
  transition: all 0.2s ease;
  cursor: pointer;
}

.room-pill:hover {
  border-color: var(--terracotta);
}

.room-pill.active {
  background: #fff8f5;
  border-color: var(--terracotta);
  box-shadow: inset 0 0 0 1px var(--terracotta);
}

.pill-info strong {
  display: block;
  font-family: var(--serif);
  font-size: 16px;
  color: var(--pine);
}

.pill-info small {
  display: block;
  font-family: var(--mono);
  font-size: 8px;
  color: var(--moss);
  margin-top: 3px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.pill-rate {
  font-family: var(--serif);
  font-size: 18px;
  color: var(--terracotta);
  font-weight: 600;
}

.pill-rate small {
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 400;
  color: #929e97;
}

/* Styled Select */
.styled-select {
  width: 100%;
  border: 1px solid var(--line);
  background: #ffffff;
  padding: 12px 14px;
  font-family: var(--sans);
  font-size: 13px;
  color: var(--pine);
  outline: none;
  border-radius: 2px;
  cursor: pointer;
}

.guest-hint {
  font-family: var(--mono);
  font-size: 8px;
  color: #8da097;
  letter-spacing: 0.04em;
  margin-top: 5px;
  display: block;
}

/* Stay Date Badge */
.stay-date-badge {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto;
  align-items: center;
  gap: 10px;
  background: var(--cream);
  padding: 14px 16px;
  border: 1px solid rgba(24, 38, 33, 0.08);
}

.date-col small {
  display: block;
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--moss);
}

.date-col strong {
  display: block;
  font-family: var(--serif);
  font-size: 14px;
  color: var(--pine-deep);
  margin-top: 3px;
}

.date-arrow {
  color: var(--terracotta);
  font-size: 16px;
}

.nights-col {
  border-left: 1px solid var(--line);
  padding-left: 12px;
}

/* Pricing Card */
.pricing-card {
  background: var(--paper);
  border: 1px dashed var(--line);
  padding: 16px 18px;
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.price-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--mono);
  font-size: 11px;
  color: #63756c;
}

.price-line.secondary {
  font-size: 10px;
}

.text-terracotta {
  color: var(--terracotta);
  font-weight: 600;
}

.price-divider {
  height: 1px;
  background: var(--line);
  margin: 3px 0;
}

.price-line.total-line {
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 600;
  color: var(--pine-deep);
}

.price-line.total-line .total-amount {
  font-family: var(--serif);
  font-size: 26px;
  color: var(--terracotta);
  font-weight: 700;
}

.w-full {
  width: 100% !important;
}

.micro-guarantee {
  font-family: var(--mono);
  font-size: 8px;
  color: #929e97;
  text-align: center;
  margin: 0;
  line-height: 1.4;
}

/* Stay Section with 2 Rooms */
.room-list-two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}

.room-list-two .room-card {
  display: flex;
  flex-direction: column;
  min-height: auto;
}

.room-list-two .room-image {
  height: 280px;
  min-height: 280px;
}

/* ==========================================================================
   WHATSAPP DIRECT GROUP / BIG FAMILY DISCOUNT SECTION
   ========================================================================== */
.group-discount-section {
  padding: 100px 0 110px;
  background: #f7f3ec;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.discount-wrapper {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: start;
}

.discount-copy {
  display: flex;
  flex-direction: column;
}

.vertical-tag {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.16em;
  color: var(--terracotta);
  text-transform: uppercase;
  margin-bottom: 14px;
  display: block;
}

.discount-copy h2 {
  font-size: clamp(38px, 4.8vw, 64px);
  margin-bottom: 22px;
}

.discount-copy > p {
  color: #5c6e65;
  font-size: 15px;
  line-height: 1.75;
  max-width: 500px;
  margin-bottom: 35px;
}

.discount-perks {
  display: flex;
  flex-direction: column;
  gap: 18px;
  border-top: 1px solid var(--line);
  padding-top: 26px;
}

.perk-item strong {
  display: block;
  font-family: var(--serif);
  font-size: 17px;
  color: var(--pine);
  font-weight: 600;
}

.perk-item span {
  display: block;
  font-size: 13px;
  color: #697a72;
  margin-top: 3px;
  line-height: 1.5;
}

/* WhatsApp Form Card */
.discount-form-card {
  background: #ffffff;
  border: 1px solid rgba(24, 38, 33, 0.18);
  padding: 34px 38px 30px;
  box-shadow: 0 20px 48px rgba(25, 55, 46, 0.08);
  position: relative;
}

.discount-form-card:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: #25D366;
}

.whatsapp-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #e8f9ed;
  color: #1a743b;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 5px 10px;
  border-radius: 20px;
  margin-bottom: 12px;
}

.wa-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #25D366;
  box-shadow: 0 0 0 3px rgba(37, 211, 102, 0.25);
}

.form-header h3 {
  font-family: var(--serif);
  font-size: 26px;
  color: var(--pine-deep);
  margin: 0 0 6px;
}

.form-header p {
  color: #6d7f76;
  font-size: 12px;
  line-height: 1.6;
  margin: 0 0 24px;
}

.discount-form-card form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.discount-form-card label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-family: var(--mono);
  font-size: 9px;
  color: var(--moss);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.discount-form-card input,
.discount-form-card textarea {
  width: 100%;
  border: 1px solid var(--line);
  background: #fafaf8;
  padding: 11px 13px;
  font-family: var(--sans);
  font-size: 13px;
  color: var(--pine);
  border-radius: 2px;
  outline: none;
  transition: border-color 0.2s ease;
}

.discount-form-card input:focus,
.discount-form-card textarea:focus,
.discount-form-card select:focus {
  border-color: #25D366;
  background: #ffffff;
}

/* WhatsApp Button */
.button-whatsapp {
  background: #25D366;
  color: #ffffff;
  padding: 15px 22px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.03em;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  border-radius: 2px;
  transition: all 0.2s ease;
}

.button-whatsapp:hover {
  background: #1ebc59;
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(37, 211, 102, 0.28);
}

.button-whatsapp .wa-icon {
  font-size: 18px;
  font-style: normal;
}

.wa-disclaimer {
  font-family: var(--mono);
  font-size: 8px;
  color: #92a098;
  text-align: center;
  line-height: 1.4;
  margin-top: 4px;
  display: block;
}

/* Closing button strip */
.closing-btns {
  display: flex;
  justify-content: center;
  gap: 18px;
  flex-wrap: wrap;
  position: relative;
  z-index: 1;
}

.success-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 320px;
  margin: 0 auto;
}

/* Responsive Rules for Open Calendar, Mobile Flow & Zero Overflow */
@media (max-width: 1120px) {
  .open-calendar-layout {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}

@media (max-width: 980px) {
  .discount-wrapper {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .room-list-two {
    grid-template-columns: 1fr;
    gap: 24px;
  }
}

@media (max-width: 680px) {
  html, body {
    overflow-x: hidden !important;
    max-width: 100% !important;
    width: 100% !important;
  }
  .site-wrapper {
    overflow-x: clip !important;
    overflow-y: visible !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .section-shell {
    width: calc(100vw - 32px) !important;
    max-width: 100% !important;
    margin: 0 auto !important;
  }
  h1 {
    font-size: clamp(38px, 11vw, 52px) !important;
    line-height: 1.05 !important;
  }
  h2 {
    font-size: clamp(28px, 8.5vw, 40px) !important;
    line-height: 1.1 !important;
  }
  .announcement {
    font-size: 8px !important;
    padding: 6px 10px !important;
    min-height: 32px !important;
    height: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    white-space: normal !important;
    text-align: center !important;
    line-height: 1.35 !important;
  }
  .hero-actions {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    gap: 12px !important;
  }
  .hero-actions .button {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
  }
  .numbers {
    padding: 60px 0 65px !important;
  }
  .number-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }
  .number-item {
    border-right: none !important;
    border-left: none !important;
    border-bottom: 1px solid var(--line) !important;
    padding: 14px 0 !important;
    min-height: auto !important;
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
  }
  .number-item strong {
    font-size: 34px !important;
    min-width: 80px !important;
  }
  .number-copy {
    padding-left: 0 !important;
  }
  .room-actions {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
    width: 100% !important;
  }
  .room-actions .button,
  .room-actions .text-button {
    width: 100% !important;
    justify-content: center !important;
    margin-left: 0 !important;
    text-align: center !important;
  }
  .location-actions {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100% !important;
    gap: 12px !important;
  }
  .location-actions .button {
    width: 100% !important;
    justify-content: center !important;
  }
  .open-calendar-layout {
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }
  .calendar-card {
    padding: 18px 12px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
  }
  .flatpickr-custom-inline {
    width: 100% !important;
    max-width: 100% !important;
    justify-content: center !important;
    overflow-x: hidden !important;
  }
  .flatpickr-calendar.inline {
    width: 100% !important;
    max-width: 100% !important;
  }
  .flatpickr-innerContainer,
  .flatpickr-rContainer {
    width: 100% !important;
    max-width: 100% !important;
  }
  .flatpickr-weekdays {
    gap: 0 !important;
    width: 100% !important;
  }
  .flatpickr-weekdaycontainer,
  .dayContainer {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    justify-content: space-between !important;
  }
  .flatpickr-days {
    width: 100% !important;
    gap: 0 !important;
  }
  .flatpickr-day {
    flex: 0 0 14.28% !important;
    width: 14.28% !important;
    max-width: 42px !important;
    height: 38px !important;
    line-height: 38px !important;
    touch-action: manipulation !important;
  }
  span.flatpickr-weekday {
    flex: 0 0 14.28% !important;
    width: 14.28% !important;
    max-width: 42px !important;
    font-size: 10px !important;
  }
  .booking-config-card,
  .discount-form-card {
    padding: 20px 14px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .room-selector-pills {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  .stay-date-badge {
    grid-template-columns: 1fr auto 1fr !important;
    padding: 12px 10px !important;
    gap: 6px !important;
  }
  .nights-col {
    grid-column: 1 / -1 !important;
    border-left: none !important;
    border-top: 1px solid var(--line) !important;
    padding-left: 0 !important;
    padding-top: 8px !important;
    margin-top: 4px !important;
    text-align: center !important;
  }
  .booking-header {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 16px !important;
  }
  .story, .cafe, .closing {
    padding-left: 16px !important;
    padding-right: 16px !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .story-columns {
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }
  .full-gallery {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
    width: 100% !important;
  }
  .closing-scribble {
    display: none !important;
  }
}

@media (max-width: 370px) {
  .calendar-card {
    padding: 14px 4px !important;
  }
  .flatpickr-day {
    height: 34px !important;
    line-height: 34px !important;
    font-size: 11px !important;
  }
  span.flatpickr-weekday {
    font-size: 8px !important;
  }
}

/* ===== GUEST ID VERIFICATION STYLES ===== */
.guest-id-section {
  background: rgba(244, 237, 227, 0.6);
  border: 1px dashed var(--line);
  border-radius: 12px;
  padding: 14px 16px;
  margin: 12px 0 16px;
}
.guest-id-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 4px;
}
.guest-id-sub {
  font-size: 0.78rem;
  color: var(--muted);
  line-height: 1.4;
  margin-bottom: 12px;
}
.id-type-select {
  padding: 5px 8px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: #fff;
  font-size: 0.78rem;
  color: var(--ink);
  font-family: inherit;
  font-weight: 500;
  cursor: pointer;
}
.id-upload-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.id-upload-card {
  position: relative;
  min-height: 105px;
  background: #fff;
  border: 1.5px dashed #d1c7b7;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  transition: all 0.2s ease;
  cursor: pointer;
}
.id-upload-card:hover {
  border-color: var(--terracotta);
  background: rgba(255, 255, 255, 0.95);
}
.id-upload-prompt {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 10px 8px;
  text-align: center;
  pointer-events: none;
}
.id-camera-icon {
  font-size: 1.25rem;
  margin-bottom: 3px;
}
.id-slot-title {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--ink);
}
.id-slot-hint {
  font-size: 0.68rem;
  color: var(--muted);
  margin-top: 1px;
}
.id-preview-box {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.id-preview-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.id-overlay-actions {
  position: absolute;
  bottom: 6px;
  right: 6px;
  display: flex;
  gap: 4px;
  z-index: 2;
}
.id-change-btn, .id-remove-btn {
  font-size: 0.7rem;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 4px;
  cursor: pointer;
  border: none;
  box-shadow: 0 1px 3px rgba(0,0,0,0.25);
}
.id-change-btn {
  background: rgba(26, 26, 26, 0.85);
  color: #fff;
}
.id-change-btn:hover {
  background: #000;
}
.id-remove-btn {
  background: rgba(185, 28, 28, 0.85);
  color: #fff;
}
.id-remove-btn:hover {
  background: #b91c1c;
}
.id-compression-badge {
  margin-top: 10px;
  font-size: 0.72rem;
  color: #1b5e20;
  font-family: 'DM Mono', monospace;
  font-weight: 500;
  display: inline-block;
  background: rgba(46, 125, 50, 0.1);
  padding: 3px 8px;
  border-radius: 4px;
}
@media (max-width: 480px) {
  .id-upload-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }
}

/* ==========================================================================
   ROOM CARD MULTI-PHOTO CAROUSEL & MODAL GALLERY
   ========================================================================== */
.room-carousel {
  position: relative;
  overflow: hidden;
  user-select: none;
}
.room-carousel-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity 0.22s ease, transform 0.4s ease;
}
.room-carousel:hover .room-carousel-img {
  transform: scale(1.02);
}
.carousel-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(23, 37, 28, 0.74);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.28);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  line-height: 1;
  cursor: pointer;
  z-index: 6;
  transition: all 0.2s ease;
  backdrop-filter: blur(4px);
  padding: 0;
}
.carousel-arrow:hover {
  background: rgba(23, 37, 28, 0.96);
  transform: translateY(-50%) scale(1.1);
}
.carousel-arrow.prev-arrow {
  left: 10px;
}
.carousel-arrow.next-arrow {
  right: 10px;
}
.room-photo-counter {
  position: absolute;
  top: 12px;
  right: 12px;
  background: rgba(23, 37, 28, 0.82);
  color: #fff;
  font-family: var(--mono);
  font-size: 9px;
  padding: 4px 8px;
  border-radius: 3px;
  z-index: 5;
  letter-spacing: 0.05em;
  backdrop-filter: blur(4px);
}
.room-photo-caption {
  position: absolute;
  bottom: 24px;
  left: 12px;
  background: rgba(23, 37, 28, 0.84);
  color: #fff;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 500;
  padding: 4px 10px;
  border-radius: 3px;
  z-index: 5;
  max-width: calc(100% - 24px);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  backdrop-filter: blur(4px);
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
.room-carousel-dots {
  position: absolute;
  bottom: 8px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 5px;
  z-index: 5;
}
.room-carousel-dots .dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.45);
  cursor: pointer;
  transition: all 0.2s ease;
}
.room-carousel-dots .dot.active {
  background: #fff;
  width: 14px;
  border-radius: 3px;
}

/* Modal Multi-Photo Styling */
.modal-image-wrap-interactive {
  position: relative;
  overflow: hidden;
  background: #17251c;
  height: 250px;
}
.modal-image-wrap-interactive img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.modal-img-arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(23, 37, 28, 0.75);
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  cursor: pointer;
  z-index: 6;
  transition: all 0.2s ease;
  backdrop-filter: blur(4px);
  padding: 0;
}
.modal-img-arrow:hover {
  background: rgba(23, 37, 28, 0.95);
  transform: translateY(-50%) scale(1.08);
}
.modal-prev-arrow {
  left: 12px;
}
.modal-next-arrow {
  right: 12px;
}
.modal-img-caption {
  position: absolute;
  bottom: 12px;
  left: 12px;
  background: rgba(23, 37, 28, 0.85);
  color: #fff;
  font-family: var(--sans);
  font-size: 11.5px;
  padding: 4px 10px;
  border-radius: 3px;
  z-index: 5;
  backdrop-filter: blur(4px);
}
.modal-thumbnail-strip {
  display: flex;
  gap: 8px;
  padding: 8px 12px;
  background: #e6e2d8;
  overflow-x: auto;
  border-bottom: 1px solid var(--line);
}
.modal-thumb {
  width: 64px;
  height: 48px;
  border-radius: 3px;
  object-fit: cover;
  cursor: pointer;
  border: 2px solid transparent;
  opacity: 0.65;
  transition: all 0.2s ease;
  flex-shrink: 0;
}
.modal-thumb:hover, .modal-thumb.active {
  opacity: 1;
  border-color: var(--terracotta);
  transform: scale(1.04);
}
