/*
Theme Name: Petite Florence Website PF14
Theme URI: https://example.invalid/
Author: Petite Florence
Description: WordPress staging theme based on the approved Petite Florence complete-clickable mock-up.
Version: 3.2.5
Text Domain: petite-florence
*/

/* Protect WordPress admin bar from page-level image styles. */
#wpadminbar img,#wpadminbar .avatar{width:auto!important;height:auto!important;max-width:26px!important;max-height:26px!important;object-fit:contain!important;display:inline-block!important}

/* Front-end staging: suppress the account dropdown that conflicts with page-level mock-up CSS. */
#wpadminbar #wp-admin-bar-my-account{display:none!important}
#wpadminbar .ab-sub-wrapper{max-height:none}

.pf-site-brand-link,.pf-site-brand-link:link,.pf-site-brand-link:visited,.pf-site-brand-link:hover,.pf-site-brand-link:active,.pf-site-brand-link:focus{color:#fff!important;text-decoration:none!important}

/* v1.6: never allow page image rules to distort managed WordPress toolbar UI. */
#wpadminbar #wp-admin-bar-my-account,
#wpadminbar #wp-admin-bar-user-info,
#wpadminbar #wp-admin-bar-user-actions {display:none!important}
html,body{margin:0;padding:0}

/* Shared responsive polish. Templates contain their own visual design; these
   rules provide consistent mobile behaviour without changing desktop layouts. */
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{overflow-x:hidden}
img{max-width:100%}
a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font:inherit}
.pf-menu-toggle{display:none!important}
.pf-site-brand-link{display:inline-block!important;color:#fff!important;text-decoration:none!important;line-height:1.2}
.pf-site-brand-link:hover,.pf-site-brand-link:focus-visible{color:#fff!important;text-decoration:none!important;opacity:1}
.pf-site-brand-link:focus-visible{outline:2px solid #fff;outline-offset:5px;border-radius:3px}
.pf-language-switcher{display:inline-flex!important;align-items:center;justify-content:center;min-width:42px;min-height:38px;padding:8px 10px!important;border:1px solid currentColor;border-radius:999px;font-size:.76rem!important;letter-spacing:.08em;text-decoration:none!important}

@media (max-width:900px){
  .topbar .inner,.pf-topbar .pf-wrap,body>nav{position:relative}
  .topbar .nav,.pf-topbar .pf-mainnav,body>nav .links{display:flex!important;position:relative;margin-left:auto;z-index:50}
  .topbar .nav:not(.pf-menu-open) a,
  .pf-topbar .pf-mainnav:not(.pf-menu-open) a,
  body>nav .links:not(.pf-menu-open) a{display:none!important}
  .pf-menu-toggle{display:inline-flex!important;position:relative;align-items:center;justify-content:center;width:46px;height:46px;padding:0;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(23,63,79,.35);color:#fff;cursor:pointer;font-size:0}
  body>nav .pf-menu-toggle{border-color:#344b3b;background:#344b3b}
  .pf-menu-toggle::before,.pf-menu-toggle::after{content:none!important;display:none!important}
  .pf-menu-toggle svg{display:block!important;width:24px!important;height:24px!important;overflow:visible!important;flex:0 0 24px!important}
  .pf-menu-toggle svg path{display:block!important;fill:none!important;stroke:#fff!important;stroke-width:2.5!important;opacity:1!important}
  .topbar .nav.pf-menu-open,.pf-topbar .pf-mainnav.pf-menu-open,body>nav .links.pf-menu-open{position:absolute;top:0;right:0;width:min(250px,calc(100vw - 32px));padding:10px 12px 16px;display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:2px!important;border-radius:20px;background:#173f4f;box-shadow:0 18px 45px rgba(0,0,0,.28)}
  body>nav .links.pf-menu-open{top:8px}
  .pf-menu-open .pf-menu-toggle{align-self:flex-end;border-color:rgba(255,255,255,.55)}
  .topbar .nav.pf-menu-open a,.pf-topbar .pf-mainnav.pf-menu-open a,body>nav .links.pf-menu-open a{display:flex!important;align-items:center;justify-content:flex-start;min-height:46px;padding:9px 14px!important;border-radius:12px;color:#fff!important;font-size:.95rem!important;text-decoration:none!important}
  .topbar .nav.pf-menu-open a:hover,.topbar .nav.pf-menu-open a:focus-visible,.pf-topbar .pf-mainnav.pf-menu-open a:hover,.pf-topbar .pf-mainnav.pf-menu-open a:focus-visible,body>nav .links.pf-menu-open a:hover,body>nav .links.pf-menu-open a:focus-visible{background:rgba(255,255,255,.12)}
  .topbar .nav.pf-menu-open .btn,.pf-topbar .pf-mainnav.pf-menu-open .pf-bookbtn,body>nav .links.pf-menu-open .pf-book{align-self:center!important;width:auto!important;min-width:0!important;justify-content:center!important;margin-top:6px;padding-left:16px!important;padding-right:16px!important;background:#f6c84c!important;color:#163744!important}
}

/* Tablet portrait: give Explore copy a comfortable reading width while
   retaining the paired photography. Landscape keeps the desktop composition. */
@media (min-width:601px) and (max-width:1100px) and (orientation:portrait){
  body.pf-explore-page section{padding:64px 7%!important}
  body.pf-explore-page .grid,
  body.pf-explore-page .grid.reverse{grid-template-columns:minmax(0,1fr)!important;gap:34px!important;max-width:820px!important}
  body.pf-explore-page .grid.reverse .duo{order:-1}
  body.pf-explore-page .duo{grid-template-columns:1fr 1fr!important;gap:18px!important}
  body.pf-explore-page .duo img{height:340px!important}
  body.pf-explore-page .copy{max-width:760px;margin-left:auto;margin-right:auto;text-align:center}
  body.pf-explore-page .copy h3{font-size:clamp(2.25rem,5.5vw,3.1rem)!important;line-height:1.08!important}
  body.pf-explore-page .copy p{font-size:1.08rem!important;line-height:1.72!important}
  body.pf-explore-page .cards{grid-template-columns:1fr!important;max-width:760px!important}
  body.pf-explore-page .card{min-height:0!important}

  body.pf-booking-page section{padding-left:7%!important;padding-right:7%!important}
  body.pf-booking-page section>.grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:34px!important;width:100%!important;max-width:820px!important;margin-left:auto!important;margin-right:auto!important}
  body.pf-booking-page section>.grid>.panel,
  body.pf-booking-page section>.grid>.calendar{width:100%!important;max-width:100%!important;margin-left:auto!important;margin-right:auto!important;justify-self:center!important}
  body.pf-booking-page section>.grid>.panel{padding:42px!important;text-align:center!important}
  body.pf-booking-page section>.grid>.panel .lead{max-width:640px;margin-left:auto!important;margin-right:auto!important}
  body.pf-booking-page section>.grid>.panel .facts{grid-template-columns:1fr 1fr!important;max-width:680px;margin-left:auto!important;margin-right:auto!important}
  body.pf-booking-page section>.grid>.calendar{padding:38px!important}
  body.pf-booking-page .pf-embedded-availability,
  body.pf-booking-page .pf-embedded-availability .pfbs,
  body.pf-booking-page .pf-embedded-availability .pfbs>.panel{width:100%!important;max-width:100%!important;margin-left:auto!important;margin-right:auto!important}
}

@media (max-width:600px){
  .wrap,.pf-wrap{width:calc(100% - 32px)!important}
  .topbar,.pf-topbar{padding:14px 0!important}
  .topbar .inner,.pf-wrap{gap:12px!important}
  .brand,.pf-brand{font-size:.96rem!important;line-height:1.2}
  .brand small,.pf-brand small{font-size:.58rem!important;line-height:1.4;letter-spacing:.1em!important}
  .nav,.pf-mainnav{margin-left:auto;flex:0 0 auto}
  .nav .btn,.pf-mainnav .pf-bookbtn{min-height:44px;padding:11px 15px!important;font-size:.78rem!important;white-space:nowrap}

  .hero{min-height:560px!important;height:auto!important}
  .hero-content{padding:112px 0 38px!important}
  .hero h1{font-size:clamp(2.65rem,13vw,3.65rem)!important;line-height:.98!important}
  .hero p{font-size:1rem!important;line-height:1.55!important;margin-bottom:20px!important}
  .hero-actions{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
  .hero-actions .btn{width:100%;min-height:48px}
  .microfacts{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px 12px!important;margin-top:20px!important}
  .microfacts span{font-size:.78rem!important}

  section{padding-top:56px!important;padding-bottom:56px!important}
  h2{font-size:clamp(2rem,10vw,2.65rem)!important;line-height:1.08!important}
  .site-footer{padding:34px 20px!important}
  .footer-nav{display:grid!important;grid-template-columns:1fr 1fr;gap:0!important;margin-top:22px!important}
  .footer-nav a{display:flex;align-items:center;min-height:44px;font-size:.82rem!important}

  .form{padding:22px 18px!important}
  input,select,textarea{font-size:16px!important;min-height:44px}
  textarea{min-height:140px}

  /* Your Stay: balanced, genuinely centred introductory copy on phones. */
  body.pf-booking-page section{padding-left:20px!important;padding-right:20px!important}
  body.pf-booking-page section>.wrap{width:100%!important;max-width:100%!important;margin-left:auto!important;margin-right:auto!important}
  body.pf-booking-page section>.grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important}
  body.pf-booking-page .grid>*{min-width:0;max-width:100%}
  body.pf-booking-page .grid>.panel{padding:28px 22px!important;text-align:center!important}
  body.pf-booking-page .grid>.panel .tag,
  body.pf-booking-page .grid>.panel h2,
  body.pf-booking-page .grid>.panel .lead{text-align:center!important}
  body.pf-booking-page .grid>.panel h2{max-width:12ch;margin:8px auto 18px!important;font-size:clamp(2.15rem,10.5vw,2.7rem)!important;line-height:1.04!important;overflow-wrap:normal;word-break:normal}
  body.pf-booking-page .grid>.panel .lead{max-width:31rem;margin:0 auto!important;font-size:1.05rem!important;line-height:1.65!important}
  body.pf-booking-page .grid>.panel .facts{margin-top:26px!important}
  body.pf-booking-page .grid>.calendar{width:100%!important;max-width:100%!important;margin-left:auto!important;margin-right:auto!important;justify-self:center!important;text-align:center!important}
  body.pf-booking-page .grid>.calendar>p{max-width:31rem;margin-left:auto!important;margin-right:auto!important}
  body.pf-booking-page .pf-embedded-availability{width:100%!important;max-width:100%!important;margin-left:auto!important;margin-right:auto!important}
  body.pf-booking-page .pf-embedded-availability .pfbs{width:100%!important;max-width:100%!important;margin-left:auto!important;margin-right:auto!important}
  body.pf-booking-page .pf-embedded-availability .pfbs>.panel{width:100%!important;max-width:100%!important;margin:20px auto 0!important}
  body.pf-booking-page .pf-embedded-availability .head,
  body.pf-booking-page .pf-embedded-availability .week,
  body.pf-booking-page .pf-embedded-availability .days,
  body.pf-booking-page .pf-embedded-availability .legend,
  body.pf-booking-page .pf-embedded-availability .selection{width:100%!important;margin-left:auto!important;margin-right:auto!important}
  body.pf-booking-page .pf-embedded-availability .head,
  body.pf-booking-page .pf-embedded-availability .week,
  body.pf-booking-page .pf-embedded-availability .days,
  body.pf-booking-page .pf-embedded-availability .legend{position:relative!important;left:-18px!important}
  body.pf-booking-page .pf-embedded-availability .head{left:0!important}
  body.pf-booking-page .pf-embedded-availability .head{display:grid!important;grid-template-columns:1fr 1fr!important;grid-template-rows:auto auto!important;align-items:stretch!important;gap:8px!important}
  body.pf-booking-page .pf-embedded-availability .head button{width:100%!important;min-width:0!important;max-width:none!important;margin:0!important;padding:10px 8px!important}
  body.pf-booking-page .pf-embedded-availability .head #pf-prev{grid-column:1!important;grid-row:2!important}
  body.pf-booking-page .pf-embedded-availability .head #pf-next{grid-column:2!important;grid-row:2!important}
  body.pf-booking-page .pf-embedded-availability .month{grid-column:1/-1!important;grid-row:1!important;display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;min-width:0!important;padding:0 4px 6px!important;text-align:center!important;font-size:clamp(1.75rem,8vw,2.15rem)!important;line-height:1.08!important;white-space:normal!important;overflow:visible!important}

  .cmplz-cookiebanner{left:12px!important;right:12px!important;bottom:12px!important;width:auto!important;max-width:none!important;max-height:calc(100dvh - 24px)!important;overflow:auto!important;padding:18px!important;border-radius:18px!important}
  .cmplz-cookiebanner .cmplz-header{min-height:24px!important}
  .cmplz-cookiebanner .cmplz-title{font-size:1.05rem!important}
  .cmplz-cookiebanner .cmplz-message{font-size:.82rem!important;line-height:1.45!important}
  .cmplz-cookiebanner .cmplz-buttons{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
  .cmplz-cookiebanner .cmplz-btn{min-height:44px!important;padding:10px 12px!important;font-size:.85rem!important}
  .cmplz-cookiebanner .cmplz-manage-options{grid-column:1/-1}
  .cmplz-cookiebanner .cmplz-links{font-size:.72rem!important}
}

@media (max-width:360px){
  .wrap,.pf-wrap{width:calc(100% - 24px)!important}
  .brand small,.pf-brand small{display:none!important}
  .microfacts{grid-template-columns:1fr!important}
}

/* The Gîte: keep the four summary cards aligned with the main content. */
body.pf-gite-page .intro>.atglance{
  width:min(1180px,calc(100% - 40px));
  margin:38px auto 0!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  align-items:stretch;
}
body.pf-gite-page .intro>.atglance .glance{height:100%;min-height:116px}
body.pf-gite-page .photo.exterior-photo{height:auto!important;min-height:0!important;align-self:start!important}
body.pf-gite-page .photo.exterior-photo img{display:block!important;width:100%!important;height:auto!important;min-height:0!important;object-fit:contain!important}

@media (max-width:600px){
  body.pf-gite-page .intro>.atglance{width:calc(100% - 28px)!important;grid-template-columns:1fr!important}
  body.pf-gite-page .intro>.atglance .glance{min-height:0}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
