.elementor-kit-7{--e-global-color-primary:#2D4E3C;--e-global-color-secondary:#493A32;--e-global-color-text:#493A32;--e-global-color-accent:#C37E60;--e-global-color-cream:#F8F6F1;--e-global-color-linen:#EBE7E0;--e-global-color-border:#E0DBD1;--e-global-color-muted:#70635C;--e-global-typography-primary-font-family:"Playfair Display";--e-global-typography-primary-font-weight:400;--e-global-typography-secondary-font-family:"Playfair Display";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Lato";--e-global-typography-text-font-weight:300;--e-global-typography-accent-font-family:"Lato";--e-global-typography-accent-font-weight:700;background-color:#F8F6F1;color:#493A32;font-family:"Lato", Sans-serif;font-size:17px;font-weight:300;line-height:1.7em;}.elementor-kit-7 button,.elementor-kit-7 input[type="button"],.elementor-kit-7 input[type="submit"],.elementor-kit-7 .elementor-button{background-color:#2D4E3C;font-family:"Lato", Sans-serif;font-weight:700;color:#F8F6F1;border-radius:0px 0px 0px 0px;}.elementor-kit-7 button:hover,.elementor-kit-7 button:focus,.elementor-kit-7 input[type="button"]:hover,.elementor-kit-7 input[type="button"]:focus,.elementor-kit-7 input[type="submit"]:hover,.elementor-kit-7 input[type="submit"]:focus,.elementor-kit-7 .elementor-button:hover,.elementor-kit-7 .elementor-button:focus{background-color:#223D2E;}.elementor-kit-7 e-page-transition{background-color:#FFBC7D;}.elementor-kit-7 a{color:#2D4E3C;}.elementor-kit-7 a:hover{color:#C37E60;}.elementor-kit-7 h1{font-family:"Playfair Display", Sans-serif;font-weight:400;line-height:1.4em;}.elementor-kit-7 h2{font-family:"Playfair Display", Sans-serif;font-weight:400;line-height:1.4em;}.elementor-kit-7 h3{font-family:"Playfair Display", Sans-serif;font-weight:400;line-height:1.4em;}.elementor-kit-7 h4{line-height:1.4em;}.elementor-kit-7 h5{line-height:1.4em;}.elementor-kit-7 h6{line-height:1.4em;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1180px;}.e-con{--container-max-width:1180px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}/* Start custom CSS *//* Serene Homestays: cream and forest green, Playfair Display + Lato (brief + willowstone.strbooking.site) */
:root {
  --sh-bg: #F8F6F1; --sh-card: #FCFAF8; --sh-ink: #493A32; --sh-green: #2D4E3C; --sh-green-dark: #223D2E;
  --sh-clay: #C37E60; --sh-linen: #EBE7E0; --sh-muted: #70635C; --sh-border: #E0DBD1;
  --sh-serif: "Playfair Display", Georgia, serif; --sh-sans: "Lato", "Helvetica Neue", Arial, sans-serif;
}

/* Base: one type system on every page, including the theme's own text */
body, body p, body li, body td, body input, body select, body textarea, .elementor-widget-text-editor, .elementor-icon-list-text {
  font-family: var(--sh-sans) !important; color: var(--sh-ink); font-weight: 300; letter-spacing: 0;
}
body { background: var(--sh-bg); }
body strong, body b { font-weight: 700; }
h1, h2, h3, h4, h5, h6, .elementor-heading-title, .elementor-image-box-title, .elementor-icon-box-title, .elementor-tab-title {
  font-family: var(--sh-serif) !important; font-weight: 400 !important; color: var(--sh-ink); text-transform: none !important;
  letter-spacing: 0 !important; line-height: 1.2 !important; text-wrap: balance;
}
.elementor-heading-title a { color: inherit; }
::selection { background: var(--sh-green); color: var(--sh-bg); }
a { color: var(--sh-green); }
a:hover { color: var(--sh-clay); }
:focus-visible { outline: 2px solid var(--sh-clay); outline-offset: 3px; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Header: same face and colours as the page, BOOK NOW in green */
#elementor_header .tg_navigation_wrapper .nav > li > a, #elementor_sticky_header .tg_navigation_wrapper .nav > li > a {
  font-family: var(--sh-sans) !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: .14em !important; text-transform: uppercase;
}
#elementor_sticky_header > .elementor > .elementor-section { background: var(--sh-bg) !important; border-bottom: 1px solid var(--sh-border); }
#elementor_header .qodef-qi-button, #elementor_sticky_header .qodef-qi-button {
  font-family: var(--sh-sans) !important; font-size: 12px !important; font-weight: 700 !important; letter-spacing: .16em !important; border-radius: 0 !important;
}
#elementor_sticky_header .qodef-qi-button { background: var(--sh-green) !important; border-color: var(--sh-green) !important; color: var(--sh-bg) !important; }
.tg_navigation_wrapper .nav li ul { background: var(--sh-card) !important; border: 1px solid var(--sh-border); box-shadow: none !important; }
.tg_navigation_wrapper .nav li ul li a { font-family: var(--sh-sans) !important; color: var(--sh-ink) !important; }

/* Buttons: square, small caps label, three styles */
.sh-btn .elementor-button, .qodef-qi-button, .elementor-button {
  border-radius: 0 !important; font-family: var(--sh-sans) !important; font-weight: 700 !important; font-size: 12px !important;
  letter-spacing: .16em !important; text-transform: uppercase; padding: 17px 34px !important; transition: background-color .2s, color .2s, border-color .2s;
}
.sh-btn--solid .elementor-button { background: var(--sh-green) !important; color: var(--sh-bg) !important; border: 1px solid var(--sh-green); }
.sh-btn--solid .elementor-button:hover { background: var(--sh-green-dark) !important; }
.sh-btn--light .elementor-button { background: var(--sh-bg) !important; color: var(--sh-green) !important; border: 1px solid var(--sh-bg); }
.sh-btn--light .elementor-button:hover { background: transparent !important; color: var(--sh-bg) !important; }
.sh-btn--outline .elementor-button { background: transparent !important; color: var(--sh-green) !important; border: 1px solid var(--sh-green); }
.sh-btn--outline .elementor-button:hover { background: var(--sh-green) !important; color: var(--sh-bg) !important; }
.sh-btn--outline-light .elementor-button { background: transparent !important; color: var(--sh-bg) !important; border: 1px solid rgba(248,246,241,.75); }
.sh-btn--outline-light .elementor-button:hover { background: var(--sh-bg) !important; color: var(--sh-green) !important; }

/* Section rhythm */
.sh h2.elementor-heading-title { font-size: clamp(32px, 3.4vw, 46px); }
.sh h3.elementor-heading-title { font-size: 24px; }
.sh-lead .elementor-widget-container, .sh-lead p { font-size: 18px; color: var(--sh-muted); max-width: 680px; margin-left: auto; margin-right: auto; }
.sh .elementor-widget-heading + .elementor-widget-text-editor { margin-top: -4px; }
.sh .elementor-widget-wrap > .elementor-widget:not(:last-child) { margin-bottom: 20px; }

/* Hero: full-bleed photo, big serif title */
.sh-hero .elementor-container { max-width: 980px !important; margin: 0 auto; }
.sh-hero__title .elementor-heading-title { color: #FFFFFF !important; font-size: clamp(46px, 7vw, 92px) !important; line-height: 1.02 !important; }
.sh-hero__sub p { color: rgba(255,255,255,.92) !important; font-size: clamp(16px, 1.6vw, 20px); letter-spacing: .02em; max-width: 640px; margin: 0 auto; }
.sh-hero__row > .elementor-container { justify-content: center; }
.sh-hero__buttons > .elementor-widget-wrap { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.sh-hero__buttons .elementor-widget { margin: 0 !important; width: auto; }
.sh-hero--property .sh-hero__sub p { text-transform: uppercase; letter-spacing: .16em; font-size: 13px; font-weight: 700; }

/* Availability search band right under the hero */
.sh-search { background: var(--sh-card); border-bottom: 1px solid var(--sh-border); }
.sh-search__title .elementor-heading-title { font-size: 26px !important; }

/* Stats row (Sleeps 12, 5 Bedrooms...) */
.sh-stats { list-style: none; margin: 8px auto 0; padding: 26px 0; display: flex; justify-content: center; flex-wrap: wrap; gap: 18px 56px;
  border-top: 1px solid var(--sh-border); border-bottom: 1px solid var(--sh-border); max-width: 860px; }
.sh-stats li { display: flex; flex-direction: column; align-items: center; gap: 10px; font-size: 12px; font-weight: 700 !important;
  letter-spacing: .16em; text-transform: uppercase; color: var(--sh-ink); }
.sh-stats svg, .sh-cards svg, .sh-arrival svg, .sh-beds svg { width: 22px; height: 22px; color: var(--sh-clay); flex: none; }
.sh-main .sh-stats { justify-content: flex-start; margin-left: 0; gap: 16px 40px; }
.sh-main .sh-lead p, .sh-main .sh-lead .elementor-widget-container { margin-left: 0; max-width: none; }
.sh-main .sh-stats li { flex-direction: row; }

/* Split photo / text sections */
.sh-split > .elementor-container { align-items: stretch; }
.sh-split__media .elementor-widget-wrap, .sh-split__media .elementor-widget, .sh-split__media .elementor-widget-container { height: 100%; padding: 0 !important; }
.sh-split__img img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; display: block; }
.sh-split__text > .elementor-widget-wrap { padding: 72px clamp(24px, 6vw, 96px) !important; align-content: center; }
.sh-split__text p { color: var(--sh-muted); font-size: 17px; }
@media (max-width: 767px) { .sh-split__img img { min-height: 320px; } .sh-split__text > .elementor-widget-wrap { padding: 48px 20px !important; } }

/* Amenity cards */
.sh-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.sh-cards--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sh-card { background: var(--sh-card); border: 1px solid var(--sh-border); padding: 32px 28px; text-align: center; }
.sh-cards--two .sh-card { text-align: left; padding: 24px; }
.sh-card h3 { font-size: 20px !important; margin: 16px 0 8px; }
.sh-card p { font-size: 15px; color: var(--sh-muted) !important; margin: 0; line-height: 1.6; }
@media (max-width: 1024px) { .sh-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .sh-cards, .sh-cards--two { grid-template-columns: 1fr; } }

/* Photo strip */
.sh-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; padding: 8px; }
.sh-strip figure { margin: 0; aspect-ratio: 4 / 3; overflow: hidden; }
.sh-strip img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 767px) { .sh-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Our homes card (one today, more later) */
.sh-home-card { display: grid; grid-template-columns: 1.15fr 1fr; background: var(--sh-card); border: 1px solid var(--sh-border); }
.sh-home-card__img img { width: 100%; height: 100%; min-height: 380px; object-fit: cover; display: block; }
.sh-home-card__body { padding: 48px clamp(24px, 4vw, 56px); align-self: center; }
.sh-home-card__body h3 { font-size: 34px !important; margin: 6px 0 14px; }
.sh-home-card__place, .sh-home-card__facts { font-size: 12px; font-weight: 700 !important; letter-spacing: .16em; text-transform: uppercase; color: var(--sh-muted) !important; }
.sh-home-card__body p { color: var(--sh-muted); }
.sh-link { display: inline-block; margin-top: 10px; font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
  color: var(--sh-green); border-bottom: 1px solid currentColor; padding-bottom: 4px; }
@media (max-width: 767px) { .sh-home-card { grid-template-columns: 1fr; } .sh-home-card__img img { min-height: 260px; } }

/* FAQ / toggles */
.sh-faq .elementor-toggle-item { border: 0; border-bottom: 1px solid var(--sh-border) !important; }
.sh-faq .elementor-tab-title { padding: 20px 0 !important; border: 0 !important; font-size: 18px !important; }
.sh-faq .elementor-tab-title a { color: var(--sh-ink) !important; }
.sh-faq .elementor-toggle-icon { color: var(--sh-clay); font-size: 13px; }
.sh-faq .elementor-tab-content { border: 0 !important; padding: 0 0 22px !important; color: var(--sh-muted); }
.sh-faq .elementor-tab-content p { color: var(--sh-muted); }

/* Location & arrival */
.sh-arrival { margin: 0; display: grid; gap: 26px; }
.sh-arrival > div { display: grid; grid-template-columns: 22px 1fr; column-gap: 16px; }
.sh-arrival svg { grid-row: span 2; margin-top: 2px; }
.sh-arrival dt { font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--sh-ink); }
.sh-arrival dd { margin: 6px 0 0; color: var(--sh-muted); line-height: 1.7; }
.sh-faq-section > .elementor-container > .elementor-column:last-child > .elementor-widget-wrap { padding-left: clamp(20px, 5vw, 72px) !important; }

/* Reviews */
.sh-section--reviews { background: var(--sh-bg); }
.sh-vrbo:empty { display: none; }

/* Closing call to action */
.sh-cta .elementor-heading-title, .sh-cta p { color: var(--sh-bg) !important; }
.sh-cta p { opacity: .88; font-size: 18px; }

/* Property page */
.sh-property > .elementor-container { align-items: flex-start; }
.sh-main > .elementor-widget-wrap { padding-right: clamp(0px, 3vw, 48px) !important; }
.sh-subhead { padding-top: 28px; border-top: 1px solid var(--sh-border); margin-top: 20px !important; }
.sh-subhead .elementor-heading-title { font-size: 26px !important; }
.sh-book { position: sticky; top: 110px; }
.sh-book > .elementor-widget-wrap { background: var(--sh-card); border: 1px solid var(--sh-border); padding: 32px 28px !important; }
.sh-book__note p { font-size: 15px; color: var(--sh-muted); }
.sh-book__help { font-size: 14px; color: var(--sh-muted); margin: 0; border-top: 1px solid var(--sh-border); padding-top: 18px; }
.sh-beds { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.sh-beds li { border: 1px solid var(--sh-border); background: var(--sh-card); padding: 20px; display: flex; flex-direction: column; gap: 8px; }
.sh-beds strong { font-family: var(--sh-serif); font-weight: 400; font-size: 18px; }
.sh-beds span { font-size: 14px; color: var(--sh-muted); }
.sh-offers { list-style: none; padding: 0; margin: 0; columns: 2; column-gap: 40px; }
.sh-offers li { padding: 10px 0; border-bottom: 1px solid var(--sh-border); break-inside: avoid; font-size: 16px; }
.sh-more .elementor-tab-title { font-family: var(--sh-sans) !important; font-size: 12px !important; font-weight: 700 !important; letter-spacing: .16em !important; text-transform: uppercase !important; }
.sh-more .elementor-tab-content p { margin-bottom: 14px; }
@media (max-width: 1024px) { .sh-book { position: static; } .sh-beds { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .sh-beds { grid-template-columns: 1fr; } .sh-offers { columns: 1; } }

/* Gallery grid: same crop for every photo */
.sh-gallery .gallery { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 !important; }
.sh-gallery .gallery-item { width: auto !important; max-width: none !important; padding: 0 !important; margin: 0 !important; }
.sh-gallery .gallery-item img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; display: block; transition: opacity .25s; }
.sh-gallery .gallery-item a:hover img { opacity: .88; }
.sh-gallery br { display: none; }
@media (max-width: 1024px) { .sh-gallery .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .sh-gallery .gallery { grid-template-columns: 1fr; } }

/* Footer in forest green */
#footer_wrapper .elementor-section { background-color: var(--sh-green) !important; background-image: none !important; }
#footer_wrapper .elementor-background-overlay { display: none; }
#footer_wrapper .elementor-section:last-child { background-color: var(--sh-green-dark) !important; }
#footer_wrapper, #footer_wrapper p, #footer_wrapper a, #footer_wrapper .elementor-heading-title, #footer_wrapper .elementor-icon-list-text { color: var(--sh-bg) !important; }
#footer_wrapper .elementor-heading-title { font-size: 22px !important; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

/* Fixes after the first review */
.sh-main .sh-stats { border-bottom: 0; padding-bottom: 8px; }
@media (max-width: 767px) {
  .sh-hero > .elementor-container { padding-top: 120px; padding-bottom: 48px; }
  .sh-hero__sub p { font-size: 16px; }
}
#book, #gallery, #availability, #accommodations { scroll-margin-top: 110px; }
@media (max-width: 767px) {
  .sh-hero > .elementor-container { padding-left: 20px; padding-right: 20px; }
  .sh-card, .sh-cards--two .sh-card { display: grid; grid-template-columns: 22px 1fr; column-gap: 16px; text-align: left; padding: 18px 20px; }
  .sh-card svg { grid-row: span 2; margin-top: 3px; }
  .sh-card h3 { margin: 0 0 4px; font-size: 18px !important; }
  .sh-cards { gap: 10px; }
}

/* Vrbo review cards (styled like the inspiration site's guest experiences) */
.sh-vrbo { margin-top: 56px; text-align: center; }
.sh-vrbo h3 { font-size: 28px !important; margin: 0 0 6px; }
.sh-vrbo__score { font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--sh-muted) !important; margin: 0 0 28px; }
.sh-vrbo__score strong { color: var(--sh-ink); }
.sh-reviews-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; text-align: left; }
.sh-review { background: var(--sh-card); border: 1px solid var(--sh-border); padding: 28px; display: flex; flex-direction: column; }
.sh-review__stars { display: flex; gap: 3px; color: var(--sh-clay); margin-bottom: 16px; }
.sh-review__stars svg { width: 15px; height: 15px; fill: currentColor; }
.sh-review blockquote { text-align: left; margin: 0; padding: 0; border: 0; font-family: var(--sh-serif); font-style: italic; font-size: 16px; line-height: 1.65; color: var(--sh-ink); flex: 1; }
.sh-review blockquote::before, .sh-review blockquote::after { content: none; }
.sh-review__who { margin: 20px 0 0; font-size: 12px; font-weight: 700 !important; letter-spacing: .14em; text-transform: uppercase; color: var(--sh-muted) !important; }
@media (max-width: 1024px) { .sh-reviews-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .sh-reviews-grid { grid-template-columns: 1fr; } }/* End custom CSS */