/* Arrival and guestbook: a few intentional changes to the homepage. */
.hero .hero-copy{width:65%;height:calc(100% - 145px);padding:38px 0 0;justify-content:center}
.hero h1{font-size:clamp(69px,7.4vw,112px);margin:24px 0;line-height:1.03}
.hero .hero-description{max-width:390px;font-size:15px;line-height:1.85;margin-bottom:23px}
.hero-explore{display:inline-flex;gap:30px;align-items:center;font-size:12px;letter-spacing:.025em;color:#fbe6d1;width:max-content;border-bottom:1px solid #e9c5a77a;padding:8px 0;transition:gap .3s}
.hero-explore:hover{gap:39px}
.hero-arrival{position:absolute;z-index:4;bottom:32px;left:7%;right:7%;display:flex;align-items:center;justify-content:space-between;gap:35px;border-top:1px solid #f3d4b64d;padding-top:24px}
.hero-arrival address{font-style:normal;color:#fbe9d5;display:flex;flex-direction:column;gap:9px}
.hero-arrival address>span{font-size:9px;letter-spacing:.16em;color:#e6c5a8}
.hero-arrival address>a{font:22px/1.3 var(--serif)}.hero-arrival address>a>span{font:15px/1 var(--sans);margin-left:14px}
.hero-directions{display:flex;gap:12px;flex:none}
.hero-directions>a{display:flex;gap:28px;align-items:center;justify-content:center;min-width:156px;border:1px solid #f4d8bd91;border-radius:40px;padding:14px 22px;background:#442c3761;backdrop-filter:blur(15px);color:#ffefdb;font-size:12px;transition:background .3s,transform .3s}
.hero-directions>a:first-child{background:linear-gradient(110deg,#fbe9cf,#e3b89b);color:#4d2e38;border-color:#f1d0ad}
.hero-directions>a:hover{transform:translateY(-3px);background:#8d6268}.hero-directions>a:first-child:hover{background:#fff0dc}
.hero>.video-toggle:not([hidden]){top:25px;bottom:auto;right:28px;width:39px;height:39px;background:#3926387a}
.hero:after{background:linear-gradient(90deg,#2a202fee 0%,#382336cf 26%,#51304470 48%,transparent 76%),linear-gradient(0deg,#2c2236db 0%,#64425563 20%,transparent 47%)}
.guestbook{padding:75px 7% 40px;background:radial-gradient(ellipse at 5% 100%,#c58c7063,transparent 55%),radial-gradient(ellipse at 95% 0,#bd9abf62,transparent 65%),#eee0d2}
.guestbook-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:36px}
.guestbook-heading .eyebrow{font-size:10px;letter-spacing:.15em;color:#89665e}.guestbook-heading h2{font-size:clamp(42px,4.7vw,68px);margin-top:19px}
.google-rating{display:flex;align-items:center;gap:17px;padding-bottom:5px}.google-rating>strong{font:56px/1 var(--serif);letter-spacing:-2px}.google-rating>strong>span{font:16px/1 var(--serif);letter-spacing:0;margin-left:4px;color:#8a6d68}.google-rating>span{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#79625e}.guest-stars{font-size:15px;color:#aa713c;letter-spacing:4px}
.guestbook-stage{border:1px solid #fff4e599;border-radius:7px;overflow:hidden;box-shadow:0 20px 50px #61404319;background:#f7ecdf}
.guest-slide:not([hidden]){display:grid;grid-template-columns:45% 1fr;min-height:420px}.guest-slide[hidden]{display:none!important}
.guest-photo{position:relative;display:block;height:420px;background:#b29c88;overflow:hidden}
.guest-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.guest-photo:after{content:'';position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#241d24a6);pointer-events:none}
.guest-photo>span{position:absolute;z-index:1;left:25px;bottom:24px;font-size:9px;letter-spacing:.14em;color:#fff1df}.guest-photo small{display:block;font-size:11px;letter-spacing:0;margin-top:7px;color:#eedbd0}
.guest-quote{display:flex;flex-direction:column;justify-content:center;padding:36px 9%;background:radial-gradient(ellipse at 100% 100%,#dbc0cd4a,transparent 70%),#f8ecdf}
.guest-quote blockquote{font:clamp(28px,2.75vw,40px)/1.2 var(--serif);letter-spacing:-.015em;margin:25px 0 32px;color:#65424b;min-height:145px}
.guest-person{display:flex;align-items:center;gap:14px}.guest-avatar{width:46px;height:46px;border-radius:50%;overflow:hidden;position:relative;background:#d6b8a1;flex:none;display:grid;place-items:center;color:#6c424b;font:19px var(--serif)}.guest-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.guest-person>div{display:flex;flex-direction:column;gap:4px}.guest-person strong{font-size:12px;font-weight:500;color:#51333e}.guest-person>div>span{font-size:10px;color:#9a7a70}.guest-person>a{margin-left:auto;border:1px solid #aa817646;border-radius:50%;height:38px;width:38px;display:grid;place-items:center;color:#83535b}
.guestbook-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:23px}.guestbook-footer>p{font-size:9px;color:#96766e}.guestbook-controls{display:flex;align-items:center;gap:16px}.guestbook-controls button{border:1px solid #b18c7c77;width:40px;height:40px;background:#fff1e659;border-radius:50%;color:#83535b;transition:background .3s}.guestbook-controls button:hover{background:#ead3be}.guest-count{font-size:10px;letter-spacing:.14em;color:#865b62;min-width:46px;text-align:center}.guestbook-controls .guest-pause{font-size:12px;width:32px;height:32px;margin-left:2px}
.guest-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(max-width:1000px) and (min-width:761px){.hero-arrival{gap:20px;left:6%;right:6%}.hero-directions{gap:8px}.hero-directions>a{padding:13px 16px;min-width:130px;gap:16px}.hero-arrival address>a{font-size:20px}.hero .hero-copy{width:72%}}
@media(max-width:760px){
 .hero{display:block;height:calc(100svh - 110px);min-height:680px;max-height:850px;padding:0 7%}
 .hero .hero-copy{height:calc(100% - 170px);padding:0 0 28px;width:100%;justify-content:flex-end;display:flex}
 .hero h1{font-size:clamp(51px,13.9vw,72px);line-height:1.02;margin:19px 0 21px;letter-spacing:-.035em}
 .hero .eyebrow{font-size:9px;letter-spacing:.13em}.hero .eyebrow:before{width:20px}
 .hero .hero-description{font-size:13px;line-height:1.8;max-width:310px;margin-bottom:14px}
 .hero-explore{font-size:11px;padding:7px 0;gap:22px}
 .hero:after{background:linear-gradient(180deg,#2a203217 0%,#34243665 16%,#352339d9 37%,#362638ce 61%,#342234ed 100%)}
 .hero-image>img,.hero-video{object-position:center 34%}
 .hero-arrival{bottom:25px;left:7%;right:7%;padding-top:19px;display:flex;flex-direction:column;align-items:stretch;gap:17px}
 .hero-arrival address{gap:7px}.hero-arrival address>span{font-size:8px;letter-spacing:.13em}.hero-arrival address>a{font-size:20px}.hero-arrival address>a>span{font-size:12px;margin-left:10px}
 .hero-directions{width:100%;gap:10px}.hero-directions>a{flex:1;min-width:0;gap:19px;padding:13px 14px;font-size:11px}
 .hero>.video-toggle:not([hidden]){top:18px;right:19px;width:34px;height:34px;font-size:12px}
 .guestbook{padding:45px 6% 26px}.guestbook-heading{display:block;margin-bottom:25px}.guestbook-heading .eyebrow{font-size:8px}.guestbook-heading h2{font-size:40px;margin-top:16px}.google-rating{margin-top:23px;gap:13px}.google-rating>strong{font-size:41px}.google-rating>span{font-size:10px;gap:4px}.google-rating .guest-stars{font-size:11px;letter-spacing:3px}
 .guest-slide:not([hidden]){display:flex;flex-direction:column;min-height:0}.guest-photo{width:100%;height:220px;flex:none}.guest-photo>span{left:19px;bottom:17px;font-size:8px}.guest-photo small{font-size:9px}
 .guest-quote{padding:24px 23px 27px;min-height:300px}.guest-quote>.guest-stars{font-size:12px;letter-spacing:3px}.guest-quote blockquote{font-size:27px;line-height:1.2;min-height:130px;margin:18px 0 23px}.guest-avatar{width:40px;height:40px}.guest-person{gap:11px}.guest-person strong{font-size:11px}.guest-person>div>span{font-size:9px}
 .guestbook-footer{flex-direction:column-reverse;gap:17px;margin-top:20px}.guestbook-footer>p{font-size:8px;text-align:center}.guestbook-footer>p>span{display:block;margin-top:4px}.guestbook-controls{gap:19px}.guestbook-controls button{width:40px;height:40px}
}
@media(max-width:360px){.hero h1{font-size:48px}.hero .hero-description{font-size:12px}.hero-arrival address>a{font-size:18px}.guest-quote blockquote{font-size:25px}}
@media(prefers-reduced-motion:reduce){.hero-explore,.hero-directions>a,.guestbook-controls button{transition:none}}
/* Reserve the quote area so changing reviews never shifts the page. */
.guest-quote blockquote{min-height:192px}
@media(max-width:760px){.guest-quote blockquote{font-size:25px;line-height:1.24;min-height:186px}.guest-quote{min-height:332px}}
@media(max-width:360px){.guest-quote blockquote{font-size:24px;min-height:209px}.guest-quote{min-height:355px}}
/* Profile portraits only: the review itself is the centrepiece. */
.guestbook{display:grid;grid-template-columns:.9fr 1.1fr;column-gap:7%;padding-top:80px;padding-bottom:48px;align-items:center}
.guestbook-heading{display:block;margin:0}.guestbook-heading h2{font-size:clamp(43px,4.3vw,65px)}.guestbook-heading .google-rating{margin-top:32px}
.guestbook-stage{align-self:stretch;background:linear-gradient(120deg,#fff4e5d9,#f2e2dcba);border:1px solid #fff9edf2;border-radius:9px;box-shadow:0 20px 60px #72464f15}
.guest-slide:not([hidden]){display:block;min-height:0}.guest-quote{padding:36px 35px;min-height:354px;background:none;position:relative;isolation:isolate}
.guest-quote:before{content:'“';position:absolute;right:25px;top:0;font:180px/1 var(--serif);color:#b3847517;z-index:-1;pointer-events:none}
.guest-quote blockquote{font-size:32px;line-height:1.22;min-height:158px;margin:22px 0 27px}
.guest-avatar{width:48px;height:48px;box-shadow:0 0 0 3px #fff4e4}
.guestbook-footer{grid-column:1/-1;margin-top:27px}.guestbook-footer>p{max-width:50%}
@media(max-width:760px){.guestbook{display:block;padding:44px 7% 26px}.guestbook-heading{margin-bottom:25px}.guestbook-heading h2{font-size:39px}.guestbook-heading .google-rating{margin-top:21px}.guestbook-stage{border-radius:7px}.guest-quote{padding:27px 23px;min-height:332px}.guest-quote blockquote{font-size:26px;line-height:1.24;min-height:194px;margin:19px 0 24px}.guest-quote:before{font-size:150px;right:16px;top:7px}.guest-avatar{width:42px;height:42px}.guestbook-footer{margin-top:21px}.guestbook-footer>p{max-width:none}}
@media(max-width:360px){.guest-quote blockquote{font-size:24px;min-height:209px}.guest-quote{min-height:355px}}
@media(min-width:1001px){.guest-quote blockquote{min-height:200px}}
@media(min-width:761px) and (max-width:1000px){.guestbook{display:block}.guestbook-heading{display:flex;margin-bottom:30px}.guestbook-heading h2{font-size:44px}.guest-quote{min-height:285px}.guest-quote blockquote{min-height:108px;font-size:30px}}
/* Contact messages stay in the form through retryable delivery failures. */
#contact-form .contact-trap { display: none; }
#contact-form button:disabled { opacity: .65; cursor: wait; }
#contact-form .form-status:not(:empty) { font-size: 14px; line-height: 1.65; padding: 15px 18px; border: 1px solid #9a697a50; border-radius: 4px; margin-top: 18px; }
#contact-form .form-status[data-state="success"] { background: #ffffff60; color: #384f42; }
#contact-form .form-status[data-state="error"] { background: #fff2e9; color: #7a3542; }
