@import url('/base.css');

/* Keep the room photography focused below the ceiling line. */
.hero-image img {
  object-position: center 78%;
}

.intro-grid > img,
.arrival-grid > img {
  aspect-ratio: 1 / 1.08;
  object-position: center bottom;
}

.review-summary { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin:2rem 0 3rem; }
.review-score { font-family:Georgia,serif; font-size:3.25rem; line-height:1; color:#d9aa52; }
.review-stars { color:#d9aa52; letter-spacing:.18em; font-size:1.15rem; }
.review-summary p { margin:.35rem 0 0; }
.review-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.review-card { padding:2rem; border:1px solid rgba(217,170,82,.35); background:rgba(255,255,255,.035); }
.review-card blockquote { margin:1rem 0 1.5rem; font-family:Georgia,serif; font-size:1.2rem; line-height:1.65; }
.review-card footer { display:flex; justify-content:space-between; gap:1rem; color:#d9aa52; font-size:.9rem; letter-spacing:.05em; }
.review-actions { display:flex; gap:1rem; flex-wrap:wrap; margin-top:2.5rem; }
@media (max-width:760px) { .review-grid { grid-template-columns:1fr; } .review-card { padding:1.5rem; } }

.social-links { display:flex; align-items:center; gap:.7rem; margin-top:1.35rem; }
.social-links a { width:2.65rem; height:2.65rem; display:grid; place-items:center; border:1px solid rgba(217,170,82,.55); border-radius:50%; color:#d9aa52; transition:background .2s ease,color .2s ease,transform .2s ease; }
.social-links a:hover,.social-links a:focus-visible { background:#d9aa52; color:#090909; transform:translateY(-2px); }
.social-links svg { width:1.15rem; height:1.15rem; fill:currentColor; stroke:currentColor; stroke-width:1.7; }
.social-links rect,.social-links circle:not(.social-fill) { fill:none; }
.social-links .social-fill { stroke:none; }

.appointment-only { color:#d9aa52; font-size:.78rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.appointment-note { margin:-.25rem 0 1.1rem; color:rgba(255,255,255,.68); font-style:italic; }
.appointment-strip { width:max-content; margin:-.2rem 0 1.35rem; padding:.35rem .7rem; border:1px solid rgba(217,170,82,.55); color:#d9aa52; font-size:.74rem; font-weight:700; line-height:1.3; letter-spacing:.16em; text-transform:uppercase; }
.service-badge { display:inline-block; margin-left:.65rem; padding:.22rem .5rem; border:1px solid rgba(217,170,82,.55); color:#d9aa52; font-family:Arial,Helvetica,sans-serif; font-size:.66rem; font-weight:700; line-height:1.2; letter-spacing:.12em; text-transform:uppercase; vertical-align:.12rem; }
@media (max-width:620px) { .service-badge { display:table; margin:.45rem 0 0; } }

.faq-wrap { max-width:900px; }
.faq-group + .faq-group { margin-top:3.5rem; }
.faq-group > h2 { margin-bottom:1.35rem; }
.faq-item { border-top:1px solid rgba(217,170,82,.35); }
.faq-item:last-child { border-bottom:1px solid rgba(217,170,82,.35); }
.faq-item summary { position:relative; cursor:pointer; list-style:none; padding:1.3rem 3rem 1.3rem 0; font-family:Georgia,serif; font-size:1.18rem; line-height:1.4; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::after { content:'+'; position:absolute; right:.3rem; top:50%; transform:translateY(-50%); color:#d9aa52; font-family:Arial,sans-serif; font-size:1.7rem; font-weight:300; }
.faq-item[open] summary::after { content:'−'; }
.faq-answer { max-width:760px; padding:0 2.5rem 1.4rem 0; color:rgba(255,255,255,.8); line-height:1.75; }
.faq-answer p { margin:.1rem 0 .7rem; }
.faq-answer a { color:#d9aa52; }
