/* FrankiHolz 2026 hospitality refinements — layered over existing brand styles.
   Styling only: booking, payment and Admin authorization logic are unchanged. */
:root{
  --fh-cream:#f8fbfa;
  --fh-ink:#153b46;
  --fh-border:#deebe8;
  --fh-soft-shadow:0 16px 44px rgba(16,59,80,.07);
}
body{background-color:#f6faf8}
.section{padding-block:clamp(48px,6vw,78px)}
.section h2{line-height:1.14;max-width:22ch;text-wrap:balance}
.lead{max-width:70ch;color:#536b70}
.section-kicker{font-size:10px;letter-spacing:.1em}
.room-card{border-color:var(--fh-border);box-shadow:var(--fh-soft-shadow)}
.room-card .room-body{padding:clamp(19px,2.3vw,26px)}
.room-card img{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.room-card:hover img{transform:scale(1.025)}
.room-card:focus-within{border-color:#73b89a;box-shadow:0 0 0 3px rgba(47,143,107,.12),var(--fh-soft-shadow)}
#guestInfoPublic{background:linear-gradient(180deg,#f4faf8 0%,#eef7f3 100%);border-block:1px solid #e0eee7}
#guestInfoPublic .fh-guest-grid{gap:18px}
#guestInfoPublic .fh-info-card{padding:clamp(22px,3vw,31px);border-color:#d9e9e3;box-shadow:0 12px 35px rgba(16,59,80,.055)}
#guestInfoPublic .fh-info-card h3{font-size:clamp(19px,2vw,23px);line-height:1.25;letter-spacing:-.03em}
#guestInfoPublic .fh-rules>div{padding-bottom:15px}
#guestInfoPublic .fh-rules strong{font-size:13px;color:var(--fh-ink)}
#guestInfoPublic .fh-amenities{gap:11px}
#guestInfoPublic .fh-amenities li{display:flex;align-items:center;min-height:48px;background:#f5faf8;border:1px solid #e1ede7;font-size:13px}
#guestInfoPublic .fh-contact-number{display:inline-flex;padding:11px 0;color:#0f695c}
#guestInfoPublic .fh-about-text{line-height:1.8;color:#526c72}
.location-section{background:transparent}
.location-section .location-card.fh-location-layout{
  display:grid;
  grid-template-columns:minmax(280px,.85fr) minmax(0,1.15fr);
  gap:clamp(24px,4vw,58px);
  padding:clamp(24px,4.2vw,48px);
  border-color:#d6e7e0;
  box-shadow:0 18px 50px rgba(16,59,80,.075);
  align-items:stretch;
}
.fh-location-description{display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.fh-location-description h2{font-size:clamp(29px,3.6vw,42px);max-width:17ch}
.fh-location-description p{margin-bottom:20px}
.fh-location-description address{
  width:100%;padding:18px 20px;margin:0 0 23px!important;
  border-radius:15px;background:#f2f8f5;border:1px solid #e1ece7;
  line-height:1.85;color:#284a52;font-style:normal
}
.fh-location-description address strong{color:#123943}
.fh-directions-link{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;min-height:44px}
.fh-location-visual{min-width:0;display:flex;flex-direction:column}
.fh-location-map-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.fh-location-map-heading .section-kicker{margin:0}
.fh-location-map-heading h3{font-size:18px;letter-spacing:-.025em;margin:0;color:var(--fh-ink)}
.fh-map-embed{
  flex:1;min-height:360px;border-radius:20px;overflow:hidden;background:#e9f2f0;
  border:1px solid #cadfd8;box-shadow:0 12px 32px rgba(16,59,80,.09);
}
.fh-map-embed iframe{width:100%;height:100%;min-height:360px;display:block;border:0}
.fh-map-disclosure{margin:10px 0 0;color:#536b70;font-size:11px;line-height:1.5}
.admin-page .admin-header{padding:clamp(21px,3vw,32px);border-radius:25px}
.admin-page .admin-header h1{font-size:clamp(27px,3vw,34px)}
.admin-page .admin-tabs{border-color:#d8e8e1;box-shadow:0 10px 24px rgba(16,59,80,.07)}
.admin-page .admin-tab{min-height:42px;transition:background .2s ease,color .2s ease,box-shadow .2s ease}
.admin-page .panel{border-color:#dcebe5;box-shadow:0 15px 42px rgba(16,59,80,.06)}
.admin-page .admin-tab-panel>.panel{padding:clamp(19px,2.8vw,31px)}
.admin-page .stripe-environment-panel{border:1px solid #cbded8!important}
.admin-page .stripe-environment-panel .stripe-mode-control{background:linear-gradient(130deg,#f7faf9,#eef5f1);border-radius:16px}
.admin-page .stripe-environment-panel .section-heading h2{font-size:23px!important}
.admin-page .login-card:before{
  content:"";width:176px;height:106px;display:block;margin-bottom:22px;
  background:transparent url('/assets/images/frankiholz-logo-light-384.webp') left center/contain no-repeat;
  border-radius:0;box-shadow:none;
}
.admin-page .login-card{padding:clamp(24px,3vw,38px);box-shadow:0 26px 70px rgba(16,59,80,.11)}
.admin-page .login-card input{min-height:45px}
.admin-page .login-card button{min-height:46px}
a:focus-visible,button:focus-visible{outline:3px solid #63b590;outline-offset:3px}
@media (prefers-reduced-motion:no-preference){
  .fh-location-layout,.fh-guest-grid>.panel{animation:fhAppear .55s cubic-bezier(.2,.7,.2,1) both}
  .fh-guest-grid>.panel:nth-child(2){animation-delay:.065s}
  .fh-guest-grid>.panel:nth-child(3){animation-delay:.13s}
  .fh-guest-grid>.panel:nth-child(4){animation-delay:.195s}
  @keyframes fhAppear{from{opacity:.5;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
}
@media(max-width:850px){
  .location-section .location-card.fh-location-layout{grid-template-columns:1fr;gap:26px}
  .fh-location-description h2{max-width:none}
  .fh-map-embed,.fh-map-embed iframe{min-height:310px}
}
@media(max-width:600px){
  .location-section .location-card.fh-location-layout{padding:19px;border-radius:19px}
  .fh-location-map-heading{gap:7px}
  .fh-location-description address{padding:14px}
  .fh-map-embed,.fh-map-embed iframe{min-height:290px}
  .admin-page .admin-header{border-radius:20px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important}
}
