/*
Theme Name: VY Host
Theme URI: https://digibrandbox.com/
Author: DigiBrandBox
Description: Demo-ready hospitality theme with 10 distinct layout presets. Requires VY Host Core plugin.
Version: 1.1.0
Text Domain: vy-host
*/
:root{--vy-primary:#315c45;--vy-secondary:#edf3ee;--vy-accent:#d3aa58;--vy-text:#202423;--vy-muted:#68716d;--vy-bg:#fff;--vy-surface:#fff;--vy-radius:18px;--vy-container:1180px;--vy-font:"Poppins",sans-serif;--vy-shadow:0 18px 55px rgba(18,32,29,.10)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--vy-font);color:var(--vy-text);background:var(--vy-bg);line-height:1.65}a{color:var(--vy-primary);text-decoration:none}img{max-width:100%;height:auto;display:block}.vy-container{width:min(92%,var(--vy-container));margin:auto}.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);backdrop-filter:blur(14px);border-bottom:1px solid rgba(0,0,0,.07)}.vy-header-inner{display:flex;align-items:center;justify-content:space-between;min-height:76px;gap:22px}.site-branding{display:flex;align-items:center;gap:12px}.site-branding img{max-height:50px;width:auto}.site-title{font-size:1.25rem;font-weight:800;color:var(--vy-text)}.main-navigation ul{display:flex;align-items:center;gap:24px;list-style:none;margin:0;padding:0}.main-navigation a{color:var(--vy-text);font-size:.93rem;font-weight:600}.menu-toggle{display:none}.vy-header-cta{background:var(--vy-primary);color:#fff;padding:11px 18px;border-radius:999px;font-weight:700}.vy-hero{min-height:680px;position:relative;display:grid;align-items:center;overflow:hidden;background:#17221f;color:#fff}.vy-hero__media{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,10,9,.74),rgba(5,10,9,.18)),var(--vy-hero-image);background-size:cover;background-position:center}.vy-hero__content{position:relative;z-index:2;padding:95px 0;max-width:760px}.vy-kicker,.vy-eyebrow{display:block;font-size:.75rem;letter-spacing:.16em;font-weight:800;text-transform:uppercase;color:var(--vy-accent);margin-bottom:12px}.vy-hero h1{font-size:clamp(3rem,6vw,6.3rem);line-height:.98;letter-spacing:-.04em;margin:0 0 24px}.vy-hero p{font-size:1.12rem;max-width:650px;margin:0 0 30px;color:rgba(255,255,255,.88)}.vy-hero__actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.vy-text-link{color:#fff;font-weight:700}.vy-hero__note{position:absolute;z-index:3;right:4%;bottom:40px;background:rgba(255,255,255,.94);color:var(--vy-text);padding:18px 22px;border-radius:14px;display:grid;box-shadow:var(--vy-shadow)}.vy-hero__note span{font-size:.78rem;color:var(--vy-muted)}.vy-btn{display:inline-flex;align-items:center;justify-content:center;background:var(--vy-primary);color:#fff;padding:14px 22px;border-radius:var(--vy-radius);font-weight:800;border:0;cursor:pointer}.vy-btn--accent{background:var(--vy-accent);color:#1d211f}.vy-intro{padding:52px 0;border-bottom:1px solid rgba(0,0,0,.08)}.vy-intro__grid{display:grid;grid-template-columns:.7fr 2fr 1.2fr;gap:42px;align-items:start}.vy-intro__grid>span{color:var(--vy-primary);font-weight:700}.vy-intro h2{font-size:clamp(1.8rem,3vw,3rem);line-height:1.16;margin:0}.vy-intro p{margin:0;color:var(--vy-muted)}.vy-section{padding:90px 0}.vy-section-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:32px;gap:20px}.vy-section-head h2,.vy-booking-copy h2{font-size:clamp(2rem,4vw,4rem);line-height:1.05;letter-spacing:-.035em;margin:0}.vy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.vy-card{background:var(--vy-surface);border:1px solid rgba(0,0,0,.08);border-radius:var(--vy-radius);overflow:hidden;box-shadow:var(--vy-shadow);transition:.25s transform,.25s box-shadow}.vy-card:hover{transform:translateY(-5px)}.vy-card__image{display:block;aspect-ratio:4/3;overflow:hidden}.vy-card__image img{width:100%;height:100%;object-fit:cover;transition:.5s transform}.vy-card:hover .vy-card__image img{transform:scale(1.04)}.vy-card__body{padding:24px}.vy-card h3{font-size:1.35rem;line-height:1.2;margin:0 0 10px}.vy-card p{color:var(--vy-muted)}.vy-price{font-size:1.3rem;font-weight:800;color:var(--vy-primary)!important}.vy-price small{font-size:.72rem;font-weight:500;color:var(--vy-muted)}.vy-booking-section{background:var(--vy-secondary)}.vy-booking-layout{display:grid;grid-template-columns:.85fr 1.35fr;gap:64px;align-items:start}.vy-booking-copy{position:sticky;top:110px}.vy-booking-copy ul{padding-left:20px}.vy-booking-card{background:#fff;padding:28px;border-radius:calc(var(--vy-radius) + 6px);box-shadow:var(--vy-shadow)}.vy-form{display:grid;gap:16px}.vy-form__row{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:12px}.vy-form__row--guest{grid-template-columns:repeat(4,1fr)}.vy-form label{display:grid;gap:6px;font-size:.83rem;font-weight:700}.vy-form input,.vy-form select,.vy-form textarea{width:100%;padding:13px 14px;border:1px solid #d8ddda;border-radius:12px;background:#fff;font:inherit}.vy-alert{padding:13px 15px;border-radius:12px;background:#e7f6ee;margin-bottom:16px}.vy-experience-section{background:#f7f5f0}.vy-food-section{background:var(--vy-bg)}.vy-reviews-section{background:#17211e;color:#fff}.vy-reviews-section .vy-card{box-shadow:none}.vy-review{margin:0}.vy-stars{color:var(--vy-accent)!important;letter-spacing:.08em}.site-footer{background:#0f1815;color:#fff;padding:64px 0 22px}.site-footer a{color:#fff}.vy-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:44px}.site-footer ul{list-style:none;padding:0;margin:0}.vy-copyright{margin-top:36px;border-top:1px solid rgba(255,255,255,.15);padding-top:20px;color:rgba(255,255,255,.65)}.vy-whatsapp{position:fixed;right:20px;bottom:20px;z-index:70;background:#25d366;color:#fff;padding:13px 18px;border-radius:999px;font-weight:800;box-shadow:0 12px 30px rgba(0,0,0,.22)}.vy-room-single__grid{display:grid;grid-template-columns:1.5fr .8fr;gap:52px}.vy-room-single aside{position:sticky;top:110px}.vy-amenities{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.vy-amenities span{background:var(--vy-secondary);padding:8px 12px;border-radius:999px;font-size:.83rem}.vy-page-content{max-width:900px}
/* 1 Nature Retreat: organic, centered, soft cards */
body.vy-theme-nature{--vy-primary:#315c45;--vy-secondary:#edf3ee;--vy-accent:#d3aa58;--vy-radius:22px}.vy-theme-nature .vy-hero__media{background:linear-gradient(rgba(17,42,32,.35),rgba(17,42,32,.58)),var(--vy-hero-image);background-size:cover;background-position:center}.vy-theme-nature .vy-hero__content{text-align:center;margin:auto;max-width:900px}.vy-theme-nature .vy-hero__actions{justify-content:center}.vy-theme-nature .vy-card:nth-child(2){transform:translateY(24px)}
/* 2 Luxury Split: 50/50 composition and sharp editorial cards */
body.vy-theme-luxury{--vy-primary:#7a5b25;--vy-secondary:#f5f0e8;--vy-accent:#caa75b;--vy-radius:3px}.vy-theme-luxury .site-header{background:#141414;border:0}.vy-theme-luxury .site-title,.vy-theme-luxury .main-navigation a{color:#fff}.vy-theme-luxury .vy-hero{background:#111;min-height:720px}.vy-theme-luxury .vy-hero__media{left:50%;background:var(--vy-hero-image);background-size:cover;background-position:center}.vy-theme-luxury .vy-hero__content{width:47%;margin-left:0;padding-right:55px}.vy-theme-luxury .vy-hero__note{right:52%;bottom:55px;background:#caa75b;border-radius:0}.vy-theme-luxury .vy-grid{gap:1px;background:#ddd}.vy-theme-luxury .vy-card{border:0;box-shadow:none}
/* 3 Minimal Editorial: lots of white space, asymmetric first card */
body.vy-theme-minimal{--vy-primary:#111;--vy-secondary:#f7f7f5;--vy-accent:#d9d9d3;--vy-radius:0;--vy-shadow:none}.vy-theme-minimal .site-header{position:relative}.vy-theme-minimal .vy-header-cta{border:1px solid #111;background:transparent;color:#111}.vy-theme-minimal .vy-hero{min-height:610px;background:#f3f3ef;color:#111}.vy-theme-minimal .vy-hero__media{left:56%;background:var(--vy-hero-image);background-size:cover}.vy-theme-minimal .vy-hero__content{width:52%;padding-right:60px}.vy-theme-minimal .vy-hero p,.vy-theme-minimal .vy-text-link{color:#555}.vy-theme-minimal .vy-grid{grid-template-columns:1.35fr .85fr .85fr}.vy-theme-minimal .vy-card{border-width:0 0 1px}.vy-theme-minimal .vy-card__body{padding-left:0;padding-right:0}
/* 4 Beach Escape: rounded wave-like visuals */
body.vy-theme-beach{--vy-primary:#087e8b;--vy-secondary:#eefbfb;--vy-accent:#ffbf69;--vy-radius:30px}.vy-theme-beach .vy-hero{min-height:700px;border-radius:0 0 8vw 8vw}.vy-theme-beach .vy-hero__media{background:linear-gradient(90deg,rgba(0,81,91,.72),rgba(0,81,91,.12)),var(--vy-hero-image);background-size:cover}.vy-theme-beach .vy-card__image{border-radius:30px 30px 45% 0}.vy-theme-beach .vy-booking-card{border:3px solid rgba(8,126,139,.13)}
/* 5 Mountain Lodge: left aligned compact hero with dark timber sections */
body.vy-theme-mountain{--vy-primary:#3f5364;--vy-secondary:#e9edef;--vy-accent:#d99b5f;--vy-radius:10px}.vy-theme-mountain .vy-hero{min-height:620px}.vy-theme-mountain .vy-hero__media{background:linear-gradient(90deg,rgba(21,31,39,.88),rgba(21,31,39,.1)),var(--vy-hero-image);background-size:cover}.vy-theme-mountain .vy-hero__content{max-width:660px}.vy-theme-mountain .vy-intro{background:#27343d;color:#fff}.vy-theme-mountain .vy-intro p{color:#ced7dc}.vy-theme-mountain .vy-card{box-shadow:0 8px 0 rgba(63,83,100,.12)}
/* 6 Boutique Layers: overlaps and alternating cards */
body.vy-theme-boutique{--vy-primary:#7d3c62;--vy-secondary:#f7eef4;--vy-accent:#ddadcf;--vy-radius:28px}.vy-theme-boutique .vy-hero{margin:24px;border-radius:34px;min-height:650px}.vy-theme-boutique .vy-hero__content{margin-left:5%}.vy-theme-boutique .vy-grid .vy-card:nth-child(2){transform:translateY(42px)}.vy-theme-boutique .vy-grid .vy-card:nth-child(3){transform:translateY(-18px)}.vy-theme-boutique .vy-card__image{aspect-ratio:3/4}
/* 7 Resort Booking Focus: booking panel overlaps hero */
body.vy-theme-resort{--vy-primary:#0d6670;--vy-secondary:#edf8f7;--vy-accent:#f2bb66;--vy-radius:16px}.vy-theme-resort .vy-hero{min-height:620px}.vy-theme-resort .vy-hero__content{text-align:center;margin:auto}.vy-theme-resort .vy-hero__actions{justify-content:center}.vy-theme-resort .vy-booking-section{margin-top:-70px;position:relative;z-index:8;background:transparent;padding-top:0}.vy-theme-resort .vy-booking-layout{display:block}.vy-theme-resort .vy-booking-copy{display:none}.vy-theme-resort .vy-booking-card{border-radius:18px;padding:20px}.vy-theme-resort .vy-form__row{grid-template-columns:1.4fr repeat(3,1fr)}
/* 8 Classic Heritage: framed sections and serif-like weight */
body.vy-theme-classic{--vy-primary:#6b3f2a;--vy-secondary:#f5eee9;--vy-accent:#b98959;--vy-radius:2px}.vy-theme-classic .vy-hero{margin:18px;border:10px double rgba(255,255,255,.7)}.vy-theme-classic .vy-hero__content{text-align:center;margin:auto}.vy-theme-classic .vy-hero__actions{justify-content:center}.vy-theme-classic .vy-section>.vy-container{border-left:1px solid #c9b5a6;border-right:1px solid #c9b5a6;padding-left:42px;padding-right:42px}.vy-theme-classic .vy-card{box-shadow:none;border:1px solid #bca99b}
/* 9 Dark Immersive: black surfaces and image-first cards */
body.vy-theme-dark{--vy-primary:#c9a85b;--vy-secondary:#1d1d1d;--vy-accent:#f2e3bd;--vy-text:#ececec;--vy-muted:#b7b7b7;--vy-bg:#101010;--vy-surface:#181818;--vy-shadow:0 18px 50px rgba(0,0,0,.35)}.vy-theme-dark .site-header{background:rgba(12,12,12,.92)}.vy-theme-dark .site-title,.vy-theme-dark .main-navigation a{color:#fff}.vy-theme-dark .vy-hero{min-height:760px}.vy-theme-dark .vy-hero__media{background:linear-gradient(rgba(0,0,0,.22),rgba(0,0,0,.78)),var(--vy-hero-image);background-size:cover}.vy-theme-dark .vy-hero__content{align-self:end;padding-bottom:100px}.vy-theme-dark .vy-card,.vy-theme-dark .vy-booking-card{border-color:#2b2b2b;background:#181818}.vy-theme-dark .vy-form input,.vy-theme-dark .vy-form select,.vy-theme-dark .vy-form textarea{background:#111;color:#fff;border-color:#333}.vy-theme-dark .vy-reviews-section{background:#080808}
/* 10 Modern Bento: modular grid and compact typography */
body.vy-theme-modern{--vy-primary:#3454d1;--vy-secondary:#f0f3ff;--vy-accent:#ff715b;--vy-radius:24px}.vy-theme-modern .vy-hero{width:min(96%,1400px);margin:22px auto;border-radius:32px;min-height:620px}.vy-theme-modern .vy-hero__content{max-width:720px}.vy-theme-modern .vy-rooms-section .vy-grid{grid-template-columns:2fr 1fr 1fr}.vy-theme-modern .vy-rooms-section .vy-card:first-child{grid-row:span 2}.vy-theme-modern .vy-rooms-section .vy-card:first-child .vy-card__image{aspect-ratio:1/1.15}.vy-theme-modern .vy-card{border:0}.vy-theme-modern .vy-booking-layout{grid-template-columns:1fr 1.6fr}.vy-theme-modern .vy-booking-card{outline:8px solid rgba(52,84,209,.08)}
@media(max-width:900px){.menu-toggle{display:block;background:none;border:0;font-size:1.4rem}.main-navigation ul{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;padding:20px;flex-direction:column;box-shadow:0 16px 30px rgba(0,0,0,.1)}.main-navigation ul.is-open{display:flex}.vy-header-cta{display:none}.vy-header-inner{position:relative}.vy-grid,.vy-theme-minimal .vy-grid,.vy-theme-modern .vy-rooms-section .vy-grid{grid-template-columns:1fr 1fr}.vy-intro__grid,.vy-booking-layout,.vy-room-single__grid{grid-template-columns:1fr}.vy-booking-copy,.vy-room-single aside{position:static}.vy-form__row,.vy-form__row--guest{grid-template-columns:1fr 1fr}.vy-theme-luxury .vy-hero__media,.vy-theme-minimal .vy-hero__media{left:0;opacity:.5}.vy-theme-luxury .vy-hero__content,.vy-theme-minimal .vy-hero__content{width:100%;color:#fff}.vy-theme-minimal .vy-hero p,.vy-theme-minimal .vy-text-link{color:#fff}.vy-theme-boutique .vy-grid .vy-card:nth-child(2),.vy-theme-boutique .vy-grid .vy-card:nth-child(3),.vy-theme-nature .vy-card:nth-child(2){transform:none}}
@media(max-width:620px){.vy-grid{grid-template-columns:1fr}.vy-hero{min-height:560px}.vy-hero__content{padding:75px 0}.vy-hero h1{font-size:2.8rem}.vy-hero__note{display:none}.vy-section{padding:64px 0}.vy-form__row,.vy-form__row--guest{grid-template-columns:1fr}.vy-footer-grid{grid-template-columns:1fr}.vy-section-head{align-items:start;flex-direction:column}.vy-theme-boutique .vy-hero,.vy-theme-classic .vy-hero,.vy-theme-modern .vy-hero{margin:8px}.vy-theme-classic .vy-section>.vy-container{padding-left:18px;padding-right:18px}}
