.vh-do,.vh-do *{box-sizing:border-box}
.vh-do{--ink:#1f2a44;--sap:#2c3e8f;--gold:#c9a24b;--gold-soft:#f6ecd2;--muted:#8d94aa;--blush:#fbeff2;--rose:#b4506a;--line:#e6e9f2;max-width:560px;margin:0 auto;background:#fff;border-radius:26px;overflow:hidden;font-family:'Jost',Arial,sans-serif;color:var(--ink);box-shadow:0 24px 60px rgba(44,62,143,.14),0 2px 6px rgba(44,62,143,.06)}
.vh-do .vh-hero{padding:30px 32px 26px;color:#fff;position:relative;background:linear-gradient(135deg,#1f2a44 0%,#2c3e8f 100%)}
.vh-do .vh-hero:after{content:"";position:absolute;left:32px;bottom:0;width:56px;height:3px;background:var(--gold)}
.vh-do .vh-hero small{display:block;font-size:12px;letter-spacing:3px;text-transform:uppercase;opacity:.7;margin-bottom:6px}
.vh-do .vh-hero h2{margin:0;padding:0;font-family:'Playfair Display',serif;font-weight:700;font-size:40px;line-height:1.1;color:#fff}
.vh-do .vh-hero h2 span{color:var(--gold)}
.vh-do .vh-body{padding:22px 24px 24px}
.vh-do .vh-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.vh-do .vh-dow{text-align:center;font-size:12px;font-weight:500;color:var(--muted);letter-spacing:1px;padding-bottom:4px}
.vh-do .vh-tile{height:76px;border:1px solid var(--line);border-radius:14px;padding:9px 0 8px;display:flex;flex-direction:column;align-items:center;justify-content:space-between;background:#fff}
.vh-do .vh-gap{border:0}
.vh-do .vh-d{font-size:14px;font-weight:500;line-height:1.2}
.vh-do .vh-box{min-width:34px;padding:2px 8px;border:1.5px solid var(--sap);border-radius:8px;color:var(--sap);font-family:'Playfair Display',serif;font-weight:700;font-size:14px;text-align:center;line-height:1.3}
.vh-do .vh-holiday{background:var(--blush);border-color:#f3d5dd}
.vh-do .vh-holiday .vh-d{color:var(--rose)}
.vh-do .vh-holiday .vh-box{border-color:#ecc4cf;color:#c79aa7;font-family:'Jost',Arial,sans-serif;font-weight:500}
.vh-do .vh-none .vh-box{border-color:var(--line);color:var(--muted);font-family:'Jost',Arial,sans-serif;font-weight:500}
.vh-do .vh-special{background:linear-gradient(180deg,#fff 0,var(--gold-soft) 100%);border-color:var(--gold);cursor:pointer;position:relative}
.vh-do .vh-special .vh-box{background:var(--sap);color:#fff;border-color:var(--sap)}
.vh-do .vh-special:after{content:"\2726";position:absolute;top:4px;right:7px;font-size:10px;color:var(--gold)}
.vh-do .vh-legend{display:flex;gap:20px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.vh-do .vh-legend i{display:inline-block;width:11px;height:11px;border-radius:4px;margin-right:7px;vertical-align:-1px}
.vh-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(31,42,68,.5);display:none;align-items:center;justify-content:center;padding:20px;z-index:99999;font-family:'Jost',Arial,sans-serif}
.vh-overlay.open{display:flex}
.vh-modal{background:#fff;border-radius:20px;width:100%;max-width:350px;overflow:hidden;box-shadow:0 24px 60px rgba(31,42,68,.35);text-align:center}
.vh-modal .vh-top{padding:22px 20px 16px;background:linear-gradient(135deg,#1f2a44,#2c3e8f);color:#fff}
.vh-modal .vh-star{color:#c9a24b;font-size:22px}
.vh-modal .vh-when{font-size:12px;letter-spacing:2px;text-transform:uppercase;opacity:.75;margin-top:4px}
.vh-modal .vh-in{padding:20px 24px 22px;color:#1f2a44}
.vh-modal h3{margin:0 0 8px;font-family:'Playfair Display',serif;font-size:22px;color:#1f2a44}
.vh-modal p{margin:0 0 20px;font-size:14px;line-height:1.55;color:#5d647d}
.vh-modal button{border:0;background:#1f2a44;color:#fff;font:inherit;font-weight:500;padding:11px 34px;border-radius:30px;cursor:pointer}
@media(max-width:480px){.vh-do .vh-hero{padding:24px 20px 22px}.vh-do .vh-hero h2{font-size:30px}.vh-do .vh-hero:after{left:20px}.vh-do .vh-body{padding:16px 12px 18px}.vh-do .vh-grid{gap:5px}.vh-do .vh-tile{height:62px;border-radius:10px}.vh-do .vh-box{min-width:26px;font-size:12px;padding:1px 5px}.vh-do .vh-d{font-size:12px}}
.vh-do .vh-today .vh-d{background:#1f2a44;color:#fff;border-radius:8px;padding:0 8px}
.vh-do .vh-nav{position:absolute;right:24px;top:50%;transform:translateY(-50%);display:flex;gap:8px}
.vh-do .vh-nav a{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;text-decoration:none;display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1;box-shadow:none}
.vh-do .vh-nav a:hover{background:rgba(255,255,255,.28)}
.vh-do .vh-tile:not(.vh-gap){transition:transform .15s,box-shadow .15s}
.vh-do .vh-tile:not(.vh-gap):hover{transform:translateY(-2px);box-shadow:0 6px 16px rgba(44,62,143,.1)}
.vh-do .vh-special:focus-visible{outline:2px solid #2c3e8f;outline-offset:2px}
@media(prefers-reduced-motion:reduce){.vh-do .vh-tile{transition:none!important}}
@media(max-width:480px){.vh-do .vh-nav{right:12px}}
