/* Client-specific content styling. The cloned layout and responsive header remain unchanged. */
.afei-wordmark { display:inline-flex; flex-direction:column; color:var(--wp--preset--color--contrast,#585858); line-height:1.05; text-decoration:none; white-space:nowrap; }
.afei-wordmark span { font-size:clamp(1.65rem,2.35vw,2.7rem); font-weight:800; letter-spacing:.12em; }
.afei-wordmark small { margin-top:.45rem; font-family:var(--wp--preset--font-family--commissioner,sans-serif); font-size:.6rem; letter-spacing:.16em; }
.afei-header-contact { display:flex; flex-direction:column; gap:.35rem; min-width:172px; font-size:.85rem; letter-spacing:.08em; text-align:center; white-space:nowrap; }
.afei-header-contact a { color:inherit; text-decoration:none; }
.afei-home-content { padding:clamp(1rem,3vw,2.5rem) 5vw 5vw; }
.afei-home-content h6 { margin:0 0 1rem; font-size:clamp(1.1rem,2vw,1.6rem); letter-spacing:.18em; }
.afei-lead { font-size:clamp(1.05rem,1.7vw,1.35rem); line-height:1.9; }
.afei-home-intro { max-width:760px; margin:2.5rem auto 0; text-align:center; line-height:2; }
.afei-page-content { padding-top:clamp(2rem,5vw,4.5rem) !important; padding-bottom:clamp(2rem,6vw,5rem) !important; }
.afei-page-content h3 { margin-top:3rem; letter-spacing:.12em; }
.afei-page-content > p { line-height:2; }
.afei-about-story { max-width:820px; margin:0 auto 2rem; }
.afei-page-content > .wp-block-image.alignwide {
  width:min(100%, 1100px) !important;
  margin-right:auto !important;
  margin-left:auto !important;
  overflow:hidden;
  aspect-ratio:4 / 3;
}
.afei-page-content > .wp-block-image.alignwide img {
  display:block;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  object-fit:cover;
}
.afei-image-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; margin:2.5rem 0; }
.afei-image-grid figure { margin:0; }
.afei-image-grid img,.afei-room-card img { width:100%; aspect-ratio:1/1; object-fit:cover; }
.afei-facility-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1.5rem,4vw,3rem); margin-top:3rem; }
.afei-facility-grid article { text-align:center; }
.afei-facility-grid h4 { margin:0 0 1rem; font-size:clamp(1.1rem,1.7vw,1.4rem); letter-spacing:.1em; }
.afei-facility-grid figure { margin:0; overflow:hidden; aspect-ratio:4 / 3; }
.afei-facility-grid img { width:100%; height:100%; object-fit:cover; }
.afei-facility-grid p { line-height:1.8; }
.afei-facility-carousel { overflow:hidden; border-radius:1.75rem .55rem 1.75rem .55rem; }
.afei-carousel-viewport { position:relative; aspect-ratio:4 / 3; background:#dfe3da; }
.afei-facility-carousel .afei-carousel-slide { position:absolute; inset:0; width:100%; height:100%; margin:0; overflow:hidden; aspect-ratio:auto; }
body > .wp-site-blocks main .afei-facility-grid .afei-facility-carousel .afei-carousel-slide { border-radius:0; }
.afei-facility-carousel .afei-carousel-slide img { display:block; width:100%; height:100%; object-fit:cover; }
.afei-carousel-controls { position:absolute; inset:0; display:flex; align-items:center; justify-content:space-between; padding:0 .75rem; pointer-events:none; }
.afei-carousel-controls button { display:inline-grid; width:2.75rem; height:2.75rem; place-items:center; padding:0; border:1px solid rgba(255,255,255,.46); border-radius:50%; background:rgba(25,59,43,.38); box-shadow:0 .2rem .65rem rgba(25,59,43,.16); color:#fff; cursor:pointer; font-size:1.35rem; line-height:1; opacity:.5; pointer-events:auto; transition:opacity .18s ease,background-color .18s ease,transform .18s ease; }
.afei-facility-carousel:hover .afei-carousel-controls button { opacity:.78; }
.afei-carousel-controls button:hover { background:rgba(25,59,43,.68); opacity:1; transform:scale(1.06); }
.afei-carousel-controls button:focus-visible,.afei-facility-carousel:focus-visible { outline:3px solid #c79b48; outline-offset:3px; opacity:1; }
.afei-visually-hidden { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important; }
.afei-room-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1.5rem,4vw,3rem); margin-top:3rem; }
.afei-room-card { display:block; color:inherit; text-align:center; text-decoration:none; }
.afei-room-card h3 { margin:0 0 1rem; font-size:clamp(1.2rem,2vw,1.6rem); }
.afei-room-card p { margin-top:.75rem; letter-spacing:.08em; }
.afei-room-card .wp-block-image { width:100%; max-width:100%; margin-right:auto; margin-left:auto; overflow:hidden; aspect-ratio:4 / 3; }
.afei-room-card .wp-block-image img { height:100%; object-fit:cover; }
.afei-room-card span { display:inline-block; margin-top:.25rem; font-size:.85rem; letter-spacing:.08em; text-decoration:underline; text-underline-offset:.25em; }
.afei-room-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:3rem auto; max-width:1100px; }
.afei-room-gallery figure { width:100%; margin:0; overflow:hidden; aspect-ratio:4 / 3; }
.afei-room-gallery img { width:100%; height:100%; object-fit:cover; }
.afei-line-button { display:inline-block; margin:1.5rem 0; padding:.85em 1.45em; background:#48594d; color:#fff !important; text-decoration:none; }
.afei-booking-details { max-width:900px; margin:3rem auto; padding:clamp(1.5rem,4vw,3rem); background:#e7e9e1; }
.afei-booking-details h3,.afei-booking-gallery h3 { margin-top:0; text-align:center; }
.afei-booking-details dl { margin:1.5rem 0 0; }
.afei-booking-details dl > div { display:grid; grid-template-columns:8rem 1fr; gap:1rem; padding:1rem 0; border-top:1px solid rgba(42,42,42,.16); }
.afei-booking-details dt { font-weight:700; letter-spacing:.1em; }
.afei-booking-details dd { margin:0; line-height:1.8; }
.afei-price-card { width:100% !important; max-width:none !important; margin:clamp(2rem,5vw,4rem) 0; }
.afei-pricing-table-wrap { width:min(100%,1075px); max-width:1075px; margin:0 auto; overflow:hidden; background:#fffdf8; border:1px solid #c6cdbf; border-radius:1.8rem .65rem 1.8rem .65rem; box-shadow:0 .8rem 2.3rem rgba(54,65,52,.1); }
.afei-pricing-table { width:100%; border-collapse:separate; border-spacing:0; color:#243329; table-layout:fixed; }
.afei-pricing-table caption { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.afei-pricing-table th,.afei-pricing-table td { border-right:1px solid rgba(58,71,56,.14); border-bottom:1px solid rgba(58,71,56,.14); }
.afei-pricing-table tr > :last-child { border-right:0; }
.afei-pricing-table tbody tr:last-child > * { border-bottom:0; }
.afei-pricing-table thead th { padding:1rem .55rem; background:#193b2b; color:#fff; font-size:clamp(.82rem,1.4vw,1rem); font-weight:700; letter-spacing:.06em; line-height:1.45; text-align:center; }
.afei-pricing-table thead th:first-child { width:29%; }
.afei-pricing-table thead th.is-holiday { background:linear-gradient(120deg,#b8924b,#a87b2e); }
.afei-pricing-table tbody th { padding:clamp(1rem,2.4vw,1.6rem) 1rem; background:#fffefb; font-weight:400; text-align:left; vertical-align:middle; }
.afei-pricing-table tbody th strong,.afei-pricing-table tbody th span,.afei-pricing-table tbody th small,.afei-pricing-table td strong,.afei-pricing-table td small { display:block; }
.afei-pricing-table tbody th strong { font-size:clamp(1.1rem,2.4vw,1.7rem); letter-spacing:.04em; }
.afei-pricing-table tbody th span { margin-top:.25rem; font-size:clamp(.86rem,1.4vw,1rem); letter-spacing:.06em; }
.afei-pricing-table tbody th small { margin-top:.18rem; color:#72776d; font-size:.78rem; letter-spacing:.08em; }
.afei-pricing-table td { padding:1rem .5rem; background:#fffdf8; text-align:center; vertical-align:middle; }
.afei-pricing-table td strong { font-family:Georgia,'Times New Roman',serif; font-size:clamp(1.25rem,3.1vw,2.25rem); font-weight:600; letter-spacing:.02em; }
.afei-pricing-table td small { margin-top:.35rem; color:#5f665e; font-size:clamp(.72rem,1.2vw,.92rem); letter-spacing:.06em; }
.afei-pricing-table td.is-holiday strong { color:#9d7126; }
.afei-pricing-table td.is-empty { color:transparent; }
.afei-reservation-flow,.afei-payment-info { max-width:900px; margin:clamp(3rem,7vw,5rem) auto; }
.afei-reservation-flow { padding:clamp(1.5rem,4vw,2.7rem); background:#dfe7dd; border-radius:2.3rem .75rem 2.3rem .75rem; box-shadow:0 .8rem 2rem rgba(54,65,52,.08); }
.afei-section-heading { margin-bottom:1.5rem; text-align:center; }
.afei-section-heading p { margin:0 0 .5rem; color:#587052; font-family:var(--wp--preset--font-family--commissioner,sans-serif); font-size:.7rem; font-weight:700; letter-spacing:.2em; }
.afei-section-heading h3 { margin:0; font-size:clamp(1.45rem,3vw,2rem); }
.afei-reservation-flow ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin:0; padding:0; list-style:none; counter-reset:reservation-step; }
.afei-reservation-flow li { position:relative; min-height:8.75rem; padding:1.3rem 1.25rem 1.25rem 4rem; background:#fffdf8; border:1px solid rgba(72,89,77,.14); border-radius:1.2rem .5rem 1.2rem .5rem; box-shadow:0 .4rem 1rem rgba(54,65,52,.06); counter-increment:reservation-step; }
.afei-reservation-flow li::before { content:counter(reservation-step, decimal-leading-zero); position:absolute; top:1.2rem; left:1.25rem; color:#4d6449; font-family:var(--wp--preset--font-family--commissioner,sans-serif); font-size:.75rem; font-weight:700; letter-spacing:.08em; }
.afei-reservation-flow strong,.afei-reservation-flow span { display:block; }
.afei-reservation-flow strong { margin-bottom:.55rem; color:#354333; font-size:1.1rem; letter-spacing:.08em; }
.afei-reservation-flow span { font-size:.95rem; line-height:1.8; }
.afei-payment-info { box-sizing:border-box; max-width:680px; padding:clamp(1.25rem,3vw,2rem); background:#f1f0e9; color:#3f473f; border:1px solid #d4d7cd; border-radius:1rem .4rem 1rem .4rem; }
.afei-payment-info .afei-section-heading { margin-bottom:1rem; }
.afei-payment-info .afei-section-heading p { color:#6b7768; font-size:.62rem; }
.afei-payment-info .afei-section-heading h3 { color:#3d463e; font-size:clamp(1.15rem,2.2vw,1.45rem); }
.afei-payment-info dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; margin:1.25rem 0 0; border-top:1px solid rgba(63,71,63,.18); }
.afei-payment-info dl > div { padding:.75rem 0; border-bottom:1px solid rgba(63,71,63,.18); }
.afei-payment-info dl > div:nth-child(odd) { padding-right:1.25rem; }
.afei-payment-info dl > div:nth-child(even) { padding-left:1.25rem; border-left:1px solid rgba(63,71,63,.18); }
.afei-payment-info dt { margin-bottom:.25rem; color:#677064; font-size:.68rem; font-weight:700; letter-spacing:.13em; }
.afei-payment-info dd { margin:0; font-size:.92rem; line-height:1.6; }
.afei-account-number { font-family:var(--wp--preset--font-family--commissioner,sans-serif); font-size:1rem !important; font-weight:700; letter-spacing:.04em; }
.afei-payment-notes { display:grid; grid-template-columns:1fr; gap:0; margin-top:1rem; }
.afei-payment-notes p { margin:0; padding:.85rem 0; border-bottom:1px solid rgba(63,71,63,.18); background:none; border-radius:0; font-size:.85rem; line-height:1.75; }
.afei-payment-notes strong { color:#3f473f; letter-spacing:.08em; }
.afei-signature { margin:1rem 0 0; color:#677064; font-size:.75rem; letter-spacing:.12em; text-align:right; }
.afei-booking-gallery { margin:3rem 0; }
.afei-booking-gallery > div { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.afei-booking-gallery figure { margin:0; overflow:hidden; aspect-ratio:4 / 3; }
.afei-booking-gallery img { width:100%; height:100%; object-fit:cover; }
.afei-contact a,.afei-footer a { color:inherit; }
.afei-footer-grid { gap:2rem; }
.afei-footer-label { font-size:.75rem; font-weight:700; letter-spacing:.14em; }
.afei-footer-bottom { padding:2.25rem 6vw 4rem; font-size:.75rem; letter-spacing:.16em; }
.afei-fixed-booking-cta { display:none; }
/* The custom wordmark is the only brand name in the site header. */
.wp-site-blocks > header .wp-block-site-title { display:none; }

/* Organic image frames: the photos retain their full rectangular storytelling
   area, while asymmetric corners add a light, handmade character. */
body > .wp-site-blocks main figure.wp-block-image.is-style-rounded {
  border-radius:1.75rem .55rem 1.75rem .55rem;
}
body > .wp-site-blocks main figure.wp-block-image.is-style-rounded img {
  border-radius:inherit !important;
}
.afei-home-content > .wp-block-image.is-style-rounded {
  box-sizing:border-box;
  padding:.35rem .55rem .6rem .35rem;
  background:linear-gradient(135deg,#d7ded1 0%,#e7e9e1 78%);
  border-radius:clamp(2.5rem,6vw,5rem) .9rem clamp(2.5rem,6vw,5rem) .9rem;
}
.afei-home-content > .wp-block-image.is-style-rounded img {
  display:block;
  border-radius:clamp(2.1rem,5vw,4.5rem) .55rem clamp(2.1rem,5vw,4.5rem) .55rem !important;
}
.afei-page-content > .wp-block-image.is-style-rounded,
.afei-contact > .wp-block-image.is-style-rounded {
  border-radius:clamp(2rem,4vw,3.5rem) .75rem clamp(2rem,4vw,3.5rem) .75rem;
}
body > .wp-site-blocks main .afei-image-grid figure:nth-child(even),
body > .wp-site-blocks main .afei-facility-grid article:nth-child(even) figure,
body > .wp-site-blocks main .afei-room-gallery figure:nth-child(even),
body > .wp-site-blocks main .afei-booking-gallery figure:nth-child(even) {
  border-radius:.55rem 1.75rem .55rem 1.75rem;
}
body > .wp-site-blocks main figure.wp-block-image.is-style-rounded:focus-within {
  outline:2px solid rgba(72,89,77,.45);
  outline-offset:4px;
}
@media (max-width:899px) {
  .afei-header-contact { display:none; }
  .afei-mobile-booking-source { display:none; }
  .afei-fixed-booking-cta { position:fixed; z-index:1001; right:1rem; bottom:calc(1rem + env(safe-area-inset-bottom)); display:inline-flex; align-items:center; justify-content:center; min-width:7.25rem; min-height:3.25rem; padding:.75rem 1.15rem; box-sizing:border-box; background:#193b2b; border:1px solid rgba(255,255,255,.38); border-radius:999px; box-shadow:0 .65rem 1.5rem rgba(25,59,43,.28); color:#fff !important; font-family:var(--wp--preset--font-family--commissioner,sans-serif); font-size:.95rem; font-weight:700; letter-spacing:.1em; line-height:1; text-decoration:none !important; touch-action:manipulation; }
  .afei-fixed-booking-cta:focus-visible { outline:3px solid #c79b48; outline-offset:3px; }
  body.afei-menu-open .afei-fixed-booking-cta { opacity:0; pointer-events:none; transform:translateY(.5rem); }
  body > .wp-site-blocks { padding-bottom:5rem; }
  .afei-image-grid,.afei-facility-grid,.afei-room-grid,.afei-room-gallery { grid-template-columns:1fr; }
  .afei-booking-gallery > div { grid-template-columns:1fr; }
  .afei-booking-details dl > div { grid-template-columns:1fr; gap:.25rem; }
  .afei-pricing-table-wrap { overflow:visible; border:0; border-radius:0; box-shadow:none; background:transparent; }
  .afei-pricing-table,.afei-pricing-table tbody,.afei-pricing-table tr,.afei-pricing-table th,.afei-pricing-table td { display:block; width:auto; }
  .afei-pricing-table thead { display:none; }
  .afei-pricing-table tbody { display:grid; gap:1rem; }
  .afei-pricing-table tbody tr { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:hidden; background:#fffdf8; border:1px solid #c6cdbf; border-radius:1.35rem .45rem 1.35rem .45rem; box-shadow:0 .5rem 1.4rem rgba(54,65,52,.07); }
  .afei-pricing-table th,.afei-pricing-table td,.afei-pricing-table tr > :last-child,.afei-pricing-table tbody tr:last-child > * { border:0; }
  .afei-pricing-table tbody th { grid-column:1 / -1; padding:1rem 1.15rem .9rem; background:#193b2b; color:#fff; }
  .afei-pricing-table tbody th strong { font-size:1.3rem; }
  .afei-pricing-table tbody th span,.afei-pricing-table tbody th small { color:#e4eadf; }
  .afei-pricing-table td { min-width:0; padding:1rem .8rem; border-top:1px solid rgba(58,71,56,.12); text-align:left; }
  .afei-pricing-table td:nth-of-type(odd) { border-right:1px solid rgba(58,71,56,.12); }
  .afei-pricing-table td::before { display:block; margin-bottom:.35rem; color:#687064; content:attr(data-label); font-size:.68rem; font-weight:700; letter-spacing:.08em; line-height:1.4; }
  .afei-pricing-table td strong { font-size:1.45rem; }
  .afei-pricing-table td small { margin-top:.18rem; font-size:.74rem; }
  .afei-pricing-table td.is-empty { display:none; }
  .afei-reservation-flow ol,.afei-payment-info dl,.afei-payment-notes { grid-template-columns:1fr; }
  .afei-reservation-flow li { min-height:0; }
  .afei-payment-info dl > div:nth-child(odd),.afei-payment-info dl > div:nth-child(even) { padding-right:0; padding-left:0; border-left:0; }
  .afei-footer-grid { display:grid !important; grid-template-columns:1fr 1fr; }
}
