/* Onsite Shine — site theme (white and blue like the flyer, Inter, pill buttons).
   Useful classes in Elementor → Advanced → CSS Classes:
     os-display  big condensed heading      os-eyebrow  small label above a heading
     os-photo    photo with a slow zoom     os-par      photo that drifts gently while scrolling
     os-band     full-width photo band      os-card     simple bordered card                    */
/* Elementor buttons site-wide — everything below this line is also printed inline in the page head. */
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
:root{--os-ink:#111828;--os-text:#111828;--os-text-2:#4a5568;--os-muted:#7a8599;--os-line:#e3e8f2;--os-soft:#f1f4f9;--os-blue:#0061ff;--os-blue-dark:#004ed1;
	--os-cond:Inter,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--os-ease:cubic-bezier(.22,.7,.15,1);
	/* kept for older classes */--os-border:var(--os-line);--os-blue-bg:#eef4ff;--os-bg:var(--os-soft)}
html,body{background:#fff}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--os-text-2);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
::selection{background:#0061ff;color:#fff}

/* Booking widget always uses the full width of its section, whatever the Elementor widget width is set to. */
.elementor-widget-shortcode:has(.osb-root){width:100%!important;max-width:100%!important;flex:1 1 100%!important}

/* Elementor buttons: icon and text on one line. */
.elementor-button .elementor-button-content-wrapper{display:flex!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:center;gap:8px}
.elementor-button .elementor-button-icon{display:inline-flex!important;align-items:center;flex:0 0 auto}
.elementor-button .elementor-button-icon svg{width:1em;height:1em}
@media (min-width:768px){.elementor-button .elementor-button-text{white-space:nowrap}}

/* ---------------------------------------------------------------------
   Type
   --------------------------------------------------------------------- */
.os-display .elementor-heading-title{font-family:var(--os-cond)!important;font-weight:800!important;text-transform:none!important;letter-spacing:-.025em!important;line-height:1.08!important;color:var(--os-ink)}
.os-eyebrow .elementor-heading-title{font-family:var(--os-cond)!important;font-weight:600!important;text-transform:uppercase!important;letter-spacing:.14em!important;font-size:13px!important;line-height:1.2!important;color:#0061ff!important}
.os-caption,.os-caption p{font-size:13px!important;line-height:1.6!important;color:var(--os-text-2)!important;margin:0}
.elementor-widget-text-editor{color:var(--os-text-2)}
.elementor-widget-text-editor p{line-height:1.7}
.elementor-widget-text-editor a{color:var(--os-ink);text-decoration:underline;text-underline-offset:3px}

/* Buttons: black rectangles with condensed capitals; white on dark photos; outline */
.elementor-button{border-radius:999px!important;font-family:Inter,sans-serif!important;font-weight:600!important;text-transform:none!important;letter-spacing:0!important;box-shadow:none!important;transition:background-color 300ms var(--os-ease),color 300ms,border-color 300ms!important}
.os-btn-primary .elementor-button{background:#0061ff!important;color:#fff!important;border:1px solid #0061ff!important}
.os-btn-primary .elementor-button:hover{background:#004ed1!important;border-color:#004ed1!important}
.os-btn-white .elementor-button{background:#fff!important;color:#0061ff!important;border:1px solid #fff!important}
.os-btn-white .elementor-button:hover{background:#0061ff!important;border-color:#0061ff!important;color:#fff!important}
.os-btn-ghost .elementor-button{background:transparent!important;color:var(--os-ink)!important;border:1px solid var(--os-ink)!important}
.os-btn-ghost .elementor-button:hover{background:#0061ff!important;border-color:#0061ff!important;color:#fff!important}
.os-band .os-btn-ghost .elementor-button,.os-hero .os-btn-ghost .elementor-button,.os-darkband .os-btn-ghost .elementor-button{color:#fff!important;border-color:rgba(255,255,255,.7)!important}
.os-band .os-btn-ghost .elementor-button:hover,.os-hero .os-btn-ghost .elementor-button:hover{background:#0061ff!important;border-color:#0061ff!important;color:#fff!important}

/* Cards & photos */
.os-card{background:#ffffff!important;border:1px solid var(--os-line)!important;border-radius:12px!important;box-shadow:none!important}
.os-photo,.os-img{overflow:hidden}
.e-con>.elementor-widget-image.os-photo,.e-con>.elementor-widget-image.os-img{align-self:stretch;width:100%;max-width:100%}
.os-photo img,.os-img img{display:block;width:100%;object-fit:cover;transition:transform 1400ms var(--os-ease)}
.os-photo:hover img{transform:scale(1.03)}
.os-par{will-change:transform}

/* Dark sections: hero, full-width bands */
.os-hero .elementor-heading-title,.os-band .elementor-heading-title,.os-darkband .elementor-heading-title{color:#fff!important}
.os-hero .elementor-widget-text-editor,.os-band .elementor-widget-text-editor,.os-darkband .elementor-widget-text-editor{color:rgba(255,255,255,.82)!important}
.os-hero .os-eyebrow .elementor-heading-title,.os-band .os-eyebrow .elementor-heading-title,.os-darkband .os-eyebrow .elementor-heading-title{color:#8fb6ff!important}
.os-hero{position:relative;overflow:hidden}
.os-pagehead{border-bottom:1px solid var(--os-line)}

/* Staggered close-ups (asymmetric, like a magazine spread) */
.os-stagger>.e-con:nth-child(2),.os-stagger>.e-con-inner>.e-con:nth-child(2){margin-top:160px}
.os-stagger>.e-con:nth-child(3),.os-stagger>.e-con-inner>.e-con:nth-child(3){margin-top:56px}
@media (max-width:1024px){.os-stagger>.e-con:nth-child(n),.os-stagger>.e-con-inner>.e-con:nth-child(n){margin-top:0}}

/* Collage: heading in the middle, photos floating around it (desktop) */
.os-collage{position:relative;min-height:760px}
.os-collage .os-cimg{position:absolute!important;width:auto!important;z-index:0}
.os-collage .os-cimg img{width:100%;height:100%;object-fit:cover}
.os-collage .os-c1{left:1%;top:120px;width:230px!important}
.os-collage .os-c2{right:4%;top:110px;width:200px!important}
.os-collage .os-c3{left:9%;bottom:60px;width:190px!important}
.os-collage .os-c4{right:1%;bottom:90px;width:240px!important}
.os-collage .os-ccenter{position:relative;z-index:1;max-width:520px;margin:0 auto}
@media (max-width:1024px){
	.os-collage{min-height:0;flex-direction:row!important;flex-wrap:wrap!important;justify-content:center!important;gap:12px!important}
	.os-collage .os-ccenter{order:-1;width:100%!important;margin-bottom:28px}
	.os-collage .os-cimg{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;width:calc(50% - 6px)!important;transform:none!important}
	.os-collage .os-cimg img{height:220px!important}
}


/* FAQ / toggles */
.elementor-accordion .elementor-accordion-item,.elementor-toggle .elementor-toggle-item{border:0!important;border-bottom:1px solid var(--os-line)!important;border-radius:0;margin-bottom:0;background:transparent}
.elementor-toggle .elementor-tab-title{border:0!important;padding-left:0!important;padding-right:0!important}
.elementor-toggle .elementor-tab-content{border:0!important;padding-left:0!important}

/* ---------------------------------------------------------------------
   Header: menu button · logo · book (the page titles live in the menu and the footer)
   --------------------------------------------------------------------- */
body.osb-has-header .site-header,body.osb-has-header #site-header{display:none!important}

/* ---------------------------------------------------------------------
   My Account layout (WooCommerce) — sidebar menu + content card
   --------------------------------------------------------------------- */
body.osb-account-page .site-main,body.osb-account-page .page-content{max-width:1180px;margin-left:auto;margin-right:auto}
body.osb-account-page .page-header .entry-title{font-family:var(--os-cond);text-transform:uppercase;font-size:clamp(2.4rem,1.6rem + 2.6vw,3.6rem);font-weight:600;line-height:.95;margin:48px 0 28px;color:var(--os-ink)}
body.osb-account-page .woocommerce{display:grid!important;grid-template-columns:260px minmax(0,1fr);gap:32px;align-items:start;margin-bottom:64px}
body.osb-account-page .woocommerce::before,body.osb-account-page .woocommerce::after{display:none!important}
body.osb-account-page .woocommerce-MyAccount-navigation,body.osb-account-page .woocommerce-MyAccount-content{float:none!important;width:auto!important;margin:0!important}
body.osb-account-page .woocommerce-MyAccount-navigation ul{list-style:none!important;margin:0!important;padding:10px!important;background:#ffffff;border:1px solid var(--os-line);border-radius:12px}
body.osb-account-page .woocommerce-MyAccount-navigation li{margin:0!important;padding:0!important;list-style:none!important}
body.osb-account-page .woocommerce-MyAccount-navigation li a{display:block;padding:12px 14px;color:var(--os-ink)!important;text-decoration:none!important;font-weight:500;transition:background 200ms}
body.osb-account-page .woocommerce-MyAccount-navigation li a:hover{background:var(--os-soft)}
body.osb-account-page .woocommerce-MyAccount-navigation li.is-active a{background:#0061ff;color:#fff!important;border-radius:999px}
body.osb-account-page .woocommerce-MyAccount-navigation-link--customer-logout a{color:#d93025!important}
body.osb-account-page .woocommerce-MyAccount-content{min-width:0}
body.osb-account-page .woocommerce-MyAccount-content table{width:100%;border-collapse:collapse;border:1px solid var(--os-line);background:#ffffff}
body.osb-account-page .woocommerce-MyAccount-content table th,body.osb-account-page .woocommerce-MyAccount-content table td{padding:12px 14px;border:0;border-bottom:1px solid var(--os-line);text-align:left}
body.osb-account-page .woocommerce-MyAccount-content .button,body.osb-account-page .woocommerce-MyAccount-content button[type=submit]{background:#0061ff!important;color:#fff!important;border:0!important;border-radius:999px!important;padding:12px 20px!important;font-weight:600!important;text-decoration:none!important}
body.osb-account-page .woocommerce-MyAccount-content input.input-text{background:#fff;color:#111828;border:1px solid #cdd6e6;border-radius:10px;padding:12px 14px;min-height:48px}
@media (max-width:860px){
	body.osb-account-page .woocommerce{grid-template-columns:minmax(0,1fr);gap:20px}
	body.osb-account-page .woocommerce-MyAccount-navigation{min-width:0;max-width:100%}
	body.osb-account-page .woocommerce-MyAccount-navigation ul{display:flex;gap:6px;overflow-x:auto;padding:8px!important;-webkit-overflow-scrolling:touch}
	body.osb-account-page .woocommerce-MyAccount-navigation li a{white-space:nowrap;padding:10px 14px}
}

/* ---------------------------------------------------------------------
   Footer: logo · page titles as large links · small links · flag line
   --------------------------------------------------------------------- */
body.osb-has-footer .site-footer,body.osb-has-footer #site-footer{display:none!important}
