/* Vitis Global - academic wine style, per client design sheet */
:root{
  --bg:#FFFFFF; --block-bg:#F2F2F2; --text:#4A4A4A; --heading:#3A3A3A;
  --accent:#7A1F3D; --dark-bar:#3D3D3D; --divider:#DDDDDD;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--bg); color:var(--text); font-family:'Lato','Open Sans',Arial,sans-serif;
  font-size:17px; line-height:1.6;
}
h1,h2,h3,blockquote{font-family:'Roboto Slab',Georgia,serif; color:var(--heading); font-weight:600}
h1{font-size:34px; line-height:1.25; margin:0 0 20px}
h2{font-size:24px; margin:40px 0 16px}
h3{font-size:19px; margin:28px 0 10px}
p{margin:0 0 16px}
a{color:var(--accent); text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%; display:block}
.container{max-width:1140px; margin:0 auto; padding:0 20px}
table{border-collapse:collapse; width:100%; margin:0 0 24px; font-size:15px}
table caption{text-align:left; font-size:13px; color:#888; margin-bottom:6px}
th,td{border:1px solid var(--divider); padding:10px 12px; text-align:left; vertical-align:top}
th{background:var(--block-bg); color:var(--heading)}
ul,ol{padding-left:22px}
li{margin-bottom:6px}

/* header */
.site-header{background:var(--bg); border-bottom:1px solid var(--divider)}
.site-header .inner{display:flex; align-items:center; justify-content:space-between; padding:18px 20px; max-width:1140px; margin:0 auto}
.logo{font-family:'Roboto Slab',serif; font-size:24px; font-weight:700; color:var(--heading); letter-spacing:.5px}
.logo span{color:var(--accent)}
.header-icon{color:var(--heading); font-size:18px; opacity:.7}

/* menu bar */
.menu-bar{background:var(--block-bg); border-bottom:1px solid var(--divider)}
.menu-bar nav{max-width:1140px; margin:0 auto; display:flex; justify-content:center; flex-wrap:wrap}
.menu-bar ul{list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; justify-content:center}
.menu-bar > nav > ul > li{position:relative; border-right:1px solid var(--divider)}
.menu-bar > nav > ul > li:last-child{border-right:none}
.menu-bar a{
  display:block; padding:14px 18px; font-size:12.5px; letter-spacing:1px; text-transform:uppercase;
  color:var(--heading); font-weight:700; text-decoration:none;
}
.menu-bar a:hover, .menu-bar li.current > a{color:var(--accent)}
.menu-bar li.has-dropdown:hover > ul.dropdown{display:block}
ul.dropdown{
  display:none; position:absolute; left:0; top:100%; background:#fff; min-width:240px;
  box-shadow:0 8px 20px rgba(0,0,0,.12); z-index:20; border:1px solid var(--divider); border-top:3px solid var(--accent);
}
ul.dropdown li{border:none}
ul.dropdown a{text-transform:none; letter-spacing:0; font-size:14px; font-weight:400; padding:10px 18px}
ul.dropdown a:hover{background:var(--block-bg)}

/* breadcrumbs */
.breadcrumbs{font-size:13px; color:#888; margin:24px 0 10px}
.breadcrumbs a{color:#888}
.breadcrumbs a:hover{color:var(--accent)}
.breadcrumbs .sep{margin:0 6px; color:#bbb}
.breadcrumbs .current{color:#888}

/* banners */
.banner{position:relative; height:400px; background-size:cover; background-position:center; display:flex; align-items:flex-end}
.banner .label-bar{background:var(--dark-bar); color:#fff; padding:10px 20px; font-size:13px; text-transform:uppercase; letter-spacing:1px; font-weight:700}
.banner-short{height:220px}

/* home sections */
.about-block{text-align:center; padding:64px 20px}
.about-block h1{font-size:30px; margin:0 auto 22px; max-width:820px}
.about-block blockquote{font-size:22px; line-height:1.5; margin:0 auto 24px; max-width:760px; font-weight:400}
.about-block .cta{color:var(--accent); font-weight:700; letter-spacing:.5px; text-transform:uppercase; font-size:13px}
.section-gray{background:var(--block-bg); padding:56px 20px}
.section-gray h2, .section-title{text-align:center; margin-bottom:36px}

.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:10px}
@media (max-width:760px){.card-grid{grid-template-columns:1fr}}
.card{display:block; color:inherit}
.card .card-photo{aspect-ratio:16/9; overflow:hidden; background:#ddd}
.card .card-photo img{width:100%; height:100%; object-fit:cover}
.card .card-title{font-family:'Roboto Slab',serif; font-size:16px; color:var(--heading); text-align:center; margin:14px 0 10px; padding:0 6px}
.card .card-divider{width:40px; height:2px; background:var(--divider); margin:0 auto}
.card:hover .card-title{color:var(--accent)}

.resources-banner{position:relative; height:380px; background-size:cover; background-position:center}
.resources-banner .overlay-text{position:absolute; left:0; bottom:0; right:0; padding:20px; background:linear-gradient(transparent,rgba(0,0,0,.55))}
.resources-banner .label-bar{display:inline-block}
.resources-banner p{color:#fff; margin:10px 0 0; max-width:640px}

.contact-title-bar{background:var(--dark-bar); color:#fff; text-align:center; padding:26px 20px}
.contact-title-bar h2{color:#fff; margin:0}
.contact-photo-wrap{position:relative; height:380px; background-size:cover; background-position:center; display:flex; align-items:center; justify-content:center}
.contact-photo-wrap::before{content:"";position:absolute; inset:0; background:rgba(20,20,20,.55)}
.contact-card{position:relative; background:#fff; padding:36px 40px; max-width:420px; text-align:center; box-shadow:0 10px 30px rgba(0,0,0,.25)}
.contact-card h3{margin-top:0}

/* article layout */
.article-main{padding:36px 0 64px}
.article-meta{color:#888; font-size:14px; margin-bottom:24px}
.article-cover{aspect-ratio:16/9; overflow:hidden; margin:0 0 32px; background:#ddd}
.article-cover img{width:100%; height:100%; object-fit:cover}
.article-body{max-width:760px; margin:0 auto}
.article-body h2{font-size:23px}
.related-block{background:var(--block-bg); padding:48px 20px; margin-top:48px}
.related-block h2{text-align:center}

/* catalog layout */
.catalog-main{padding:36px 0 64px}
.catalog-intro{max-width:760px; margin:0 auto 20px}

/* buttons / forms */
.btn{display:inline-block; background:var(--dark-bar); color:#fff; padding:12px 26px; font-size:13px; text-transform:uppercase; letter-spacing:1px; font-weight:700; border:none; cursor:pointer}
.btn:hover{background:var(--accent); text-decoration:none}
.contact-form{max-width:520px; margin:32px auto 0}
.contact-form label{display:block; font-size:13px; text-transform:uppercase; letter-spacing:.5px; color:var(--heading); margin-bottom:6px; font-weight:700}
.contact-form input, .contact-form textarea{
  width:100%; padding:11px 12px; margin-bottom:18px; border:1px solid var(--divider); font-family:inherit; font-size:15px; color:var(--text);
}
.contact-form textarea{min-height:120px}

/* footer */
.site-footer{background:var(--dark-bar); color:#cfcfcf; padding:48px 0 24px; margin-top:0}
.footer-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:32px}
@media (max-width:760px){.footer-grid{grid-template-columns:1fr}}
.site-footer h4{color:#fff; font-size:13px; text-transform:uppercase; letter-spacing:1px; margin:0 0 16px}
.site-footer a{color:#cfcfcf}
.site-footer a:hover{color:#fff}
.site-footer ul{list-style:none; padding:0; margin:0}
.site-footer li{margin-bottom:8px}
.footer-disclaimer{max-width:1140px; margin:32px auto 0; padding:20px 20px 0; border-top:1px solid #555; font-size:13px; color:#aaa}
.footer-copy{max-width:1140px; margin:0 auto; padding:16px 20px 0; font-size:12px; color:#999}

.error-page{padding:80px 20px; text-align:center}
.error-page h1{margin-bottom:16px}
.error-links{margin-top:28px}
.error-links a{margin:0 10px}

.breadcrumb-jsonld{display:none}
