/* Phone-first refinements shared by every public page. */
html,body{max-width:100%;overflow-x:hidden}
img,video,iframe{max-width:100%}

@media(max-width:760px){
  body{font-size:16px;-webkit-text-size-adjust:100%}
  .site-header{height:110px!important;padding:0 20px!important;gap:14px}
  .brand .brand-mark{width:92px!important;height:92px!important}
  .site-header .brand{transform:none!important}
  .site-header .nav{top:110px!important;padding:22px 24px!important;gap:20px!important;box-shadow:0 12px 25px rgba(16,50,55,.18)}
  .site-header .nav a{display:flex;align-items:center;min-height:44px;font-size:17px!important}
  .menu-toggle{min-width:48px;min-height:48px;padding:10px;font-size:16px!important;cursor:pointer}
  .back{display:flex;align-items:center;min-height:44px;font-size:16px!important;white-space:nowrap}

  .hero{min-height:610px!important;padding:135px 22px 54px!important;background-position:center!important}
  .hero-copy{width:100%;max-width:520px}
  .hero h1{font-size:clamp(44px,13vw,64px)!important;line-height:1!important;letter-spacing:-2px!important}
  .hero-text{font-size:17px!important;line-height:1.55;margin:22px 0!important}
  .hero-actions{width:100%;gap:14px!important}
  .hero-actions .button{width:100%;max-width:320px;min-height:50px;justify-content:space-between}
  .text-link{display:inline-flex;align-items:center;min-height:44px;font-size:15px}

  .intro,.listings,.journal{padding:62px 22px!important}
  .intro h2,.section-heading h2,.promise h2,.journal h2,.contact h2{font-size:clamp(38px,11vw,50px)!important;line-height:1.06!important;letter-spacing:-1px!important}
  .intro-grid p:not(.eyebrow),.promise-copy>p:not(.eyebrow){font-size:16px;line-height:1.72}
  .section-heading{margin-bottom:30px!important}
  .listing-grid{grid-template-columns:1fr!important;gap:34px!important}
  .listing.featured img,.listing img{height:235px!important}
  .listing h3{font-size:26px}
  .listing-info div p{font-size:14px;line-height:1.5}
  .listing strong{font-size:14px}
  .capacity-badge{top:8px!important;right:8px!important}
  .promise-image{min-height:300px!important}
  .promise-copy{padding:62px 22px!important}
  #why-us .about-photo{height:330px!important}
  .journal-grid{grid-template-columns:1fr!important;gap:18px!important}
  .journal-grid a{min-height:190px!important;padding:24px!important}
  .reviews-section{padding:0 22px 58px!important}
  .reviews-widget{padding:14px!important;overflow:hidden}
  .contact{padding:72px 22px!important}
  .contact h2{font-size:clamp(42px,12vw,56px)!important;margin-bottom:28px!important}
  .contact-note{font-size:16px;line-height:1.6}
  .contact-actions{width:100%;gap:22px!important}
  .contact-actions .button{width:100%;max-width:340px;justify-content:space-between;min-height:50px}
  .contact-phone{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;font-size:15px;line-height:1.65}
  .contact-phone a{display:inline-flex;align-items:center;min-height:38px}
  footer{padding:28px 22px!important;gap:16px!important}
  footer .brand .brand-mark{width:112px!important;height:112px!important}
  footer div{flex-wrap:wrap;gap:12px 22px!important}
  footer a{display:inline-flex;align-items:center;min-height:36px}

  .property-page .hero{min-height:0!important;padding:0 0 28px!important}
  .property-page .hero .gallery.hero-gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:190px 108px 108px 132px;gap:5px}
  .property-page .hero-gallery-grid .gallery-thumbnail:first-child{grid-column:1/span 2;grid-row:1}
  .property-page .hero-gallery-grid .gallery-thumbnail:nth-child(2){grid-column:1;grid-row:2}
  .property-page .hero-gallery-grid .gallery-thumbnail:nth-child(3){grid-column:2;grid-row:2}
  .property-page .hero-gallery-grid .gallery-thumbnail:nth-child(4){grid-column:1;grid-row:3}
  .property-page .hero-gallery-grid .gallery-thumbnail:nth-child(5){grid-column:2;grid-row:3}
  .property-page .hero-gallery-grid .gallery-thumbnail:nth-child(6){grid-column:1/span 2;grid-row:4}
  .hero-view-all{margin:12px 20px 0!important;padding:10px 0 6px!important;font-size:16px!important;min-height:44px}
  .property-main,.property-main.booking-horizontal,.property-main.ownerrez-side-layout{padding:30px 20px 64px!important;gap:30px!important}
.property-main.booking-horizontal>.ownerrez-embed{order:-1;padding:16px 12px!important;border-radius:4px;overflow:hidden}
  .booking-widget{padding:18px!important;overflow:hidden}
  .booking-preview .button,.booking-form .button{min-height:50px;font-size:14px}
  .ownerrez-widget,.ownerrez-widget iframe{min-width:0!important;max-width:100%!important}
  .property-main h1{font-size:clamp(40px,12vw,54px)!important;line-height:1.04!important;letter-spacing:-1.4px!important}
  .facts{font-size:15px;line-height:1.6;margin:16px 0 26px!important}
  .description,.property-description-details p{font-size:16px!important;line-height:1.7!important}
  .property-description-details{margin-top:32px!important}
  .property-description-details h2,.section h2{font-size:30px!important}
  .property-description-details h3{font-size:23px!important;line-height:1.25}
  .amenities{grid-template-columns:1fr!important;font-size:16px!important;gap:13px!important}
  .nearby{padding:48px 22px!important}
  .nearby h2{font-size:34px!important;line-height:1.15}
  .nearby a{display:inline-flex;align-items:center;min-height:44px;font-size:15px}
  .photo-lightbox{height:100dvh;max-height:100dvh}
  .lightbox-frame{padding:58px 10px 104px!important}
  .lightbox-frame img,.lightbox-frame video{max-height:calc(100dvh - 184px)!important}
  .lightbox-frame figcaption{position:absolute;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 29px);transform:translateX(-50%);min-width:82px;height:48px;display:flex;align-items:center;justify-content:center;margin:0;font-size:14px!important;white-space:nowrap}
  .lightbox-close{width:48px!important;height:48px!important;right:10px!important;top:10px!important}
  .lightbox-arrow{top:auto!important;bottom:calc(env(safe-area-inset-bottom,0px) + 29px)!important;width:48px!important;height:48px!important;margin:0!important;border-radius:50%;font-size:38px!important;line-height:1}
  .lightbox-previous{left:calc(50% - 112px)!important}
  .lightbox-next{right:calc(50% - 112px)!important}

  .guide{padding:20px 20px 64px!important}
  .guide-header{margin:20px 0 38px!important}
  .guide-header h1{font-size:clamp(40px,12vw,52px)!important;line-height:1.04!important;letter-spacing:-1px}
  .guide-header p:last-child{font-size:16px!important;line-height:1.65!important}
  .guide-image{height:220px!important;margin-bottom:38px!important}
  .places{gap:12px!important}
  .place{grid-template-columns:1fr!important;gap:14px!important;padding:26px 0!important}
  .place-number,.place-photo,.place>div:last-child{grid-column:1!important}
  .place-number{font-size:27px!important}
  .place-photo{width:100%!important;max-width:none!important;aspect-ratio:16/10}
  .place h2{font-size:30px!important;line-height:1.1}
  .place p{font-size:15px!important;line-height:1.65!important}
  .place-links{display:grid!important;justify-items:start;gap:12px!important}
  .place a,.directions{display:inline-flex;align-items:center;min-height:40px;margin-top:0!important}
  .note{padding:20px!important;margin-top:34px!important}
  .stores{grid-template-columns:1fr!important;gap:18px!important}
  .store{min-height:0!important;padding:24px!important}
  .store-logo{margin-bottom:26px!important;max-width:100%}
  .store a{display:inline-flex;align-items:center;min-height:42px}

  .mini-calendars{grid-template-columns:1fr!important}
  .month-days{gap:4px!important}
  .day{min-height:34px;font-size:11px!important}
}

@media(max-width:390px){
  .site-header{height:100px!important;padding:0 14px!important}
  .brand .brand-mark{width:82px!important;height:82px!important}
  .site-header .nav{top:100px!important}
  .back{font-size:14px!important}
  .hero{padding-left:18px!important;padding-right:18px!important}
  .hero h1{font-size:42px!important}
  .property-main,.property-main.booking-horizontal,.property-main.ownerrez-side-layout{padding-left:16px!important;padding-right:16px!important}
  .property-page .hero .gallery.hero-gallery-grid{grid-template-rows:175px 100px 100px 120px}
  .intro,.listings,.journal,.promise-copy,.contact{padding-left:18px!important;padding-right:18px!important}
  .guide{padding-left:16px!important;padding-right:16px!important}
}
