/* ============================================================
   Main Street Woodbury - layout layer for the Divi 5 build.
   Loaded as a real stylesheet because Divi 5 no longer prints
   the legacy Theme Options "Custom CSS" field.
   ============================================================ */

:root{
  --msw-burgundy:#991E21;
  --msw-navy:#3F4658;
  --msw-teal:#55C5D4;
  --msw-slate:#4A4F5C;
  --msw-slate-2:#5F6673;
  --msw-line:#E2E4E8;
}

/* ---------- Buttons: the design's hover lift ---------- */
body #page-container .et_pb_section .et_pb_button,
.et-l--header .et_pb_button,
.et-l--footer .et_pb_button{
  transition:transform 150ms cubic-bezier(.4,0,.2,1),
             box-shadow 150ms cubic-bezier(.4,0,.2,1),
             font-size 150ms cubic-bezier(.4,0,.2,1),
             background-color 150ms cubic-bezier(.4,0,.2,1),
             background-image 150ms cubic-bezier(.4,0,.2,1);
}
body #page-container .et_pb_section .et_pb_button:hover,
.et-l--header .et_pb_button:hover,
.et-l--footer .et_pb_button:hover{
  transform:translateY(-1px);
  background-image:linear-gradient(rgba(0,0,0,.08),rgba(0,0,0,.08));
  font-size:19px!important;
}
/* smaller buttons step 16 -> 17, per the design tokens */
body #page-container .et_pb_section .msw-btn-block .et_pb_button:hover,
body #page-container .et_pb_section .msw-btn-sm .et_pb_button:hover,
.et-l--header .et_pb_button:hover,
.et-l--footer .et_pb_button:hover{
  font-size:17px!important;
}

/* ---------- Button groups: side by side with a real gap ---------- */
.msw-btn-inline{display:inline-block!important;width:auto!important;vertical-align:top;float:none!important}
.msw-btn-inline .et_pb_button{white-space:nowrap}
.msw-btn-group{text-align:center}
.msw-btn-group .msw-btn-inline{margin:12px 9px 0!important}
.msw-btn-left{text-align:left}
.msw-btn-left .msw-btn-inline{margin:12px 18px 0 0!important}

/* ---------- Cropped image frames ---------- */
.msw-crop-1x1 img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.msw-crop-150 img{width:100%;height:150px;object-fit:cover;display:block}
.msw-crop-300 img{width:100%;height:300px;object-fit:cover;display:block}
.msw-crop-345 img{width:100%;height:345px;object-fit:cover;display:block}
.msw-crop-400 img{width:100%;height:400px;object-fit:cover;display:block}
.msw-crop-454 img{width:100%;height:454px;object-fit:cover;display:block}
.msw-crop-560 img{width:100%;height:560px;object-fit:cover;display:block}
[class*="msw-crop-"]{line-height:0}
[class*="msw-crop-"] .et_pb_image_wrap{display:block;width:100%}

/* ---------- Card grids: equal height, buttons pinned to the bottom ---------- */
.msw-cards{display:flex!important;flex-wrap:wrap;align-items:stretch}
.msw-cards>.et_pb_column{float:none!important;display:flex;flex-direction:column}
.msw-card{display:flex!important;flex-direction:column;height:100%}
.msw-card>.et_pb_module:last-child{margin-top:auto!important}
.msw-card .et_pb_text p:last-of-type{margin-bottom:0}
.msw-btn-block .et_pb_button{display:block;text-align:center}

/* ---------- Two-column rows whose halves sit centred to each other ---------- */
.msw-vcenter{display:flex!important;align-items:center;flex-wrap:wrap}
.msw-vcenter>.et_pb_column{float:none!important}
@media (max-width:767px){.msw-vcenter{display:block!important}}

/* ---------- Trust items: teal circle + white check ---------- */
.msw-trust .et_pb_blurb_content{display:flex;align-items:center;justify-content:center;gap:8px;max-width:none}
.msw-trust .et_pb_main_blurb_image{margin:0;width:auto;display:block}
.msw-trust .et_pb_blurb_container{padding:0}
.msw-trust .et_pb_module_header{margin:0;padding:0}
.msw-trust .et-pb-icon{
  background:var(--msw-teal);color:#FFFFFF!important;border-radius:50%;
  width:22px;height:22px;font-size:12px!important;line-height:22px!important;
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 22px;
}

/* ---------- Icon badge used on the values / contact cards ---------- */
.msw-badge .et_pb_main_blurb_image{margin-bottom:14px}
.msw-badge .et-pb-icon{
  background:rgba(85,197,212,.14);color:var(--msw-teal)!important;border-radius:14px;
  width:56px;height:56px;font-size:26px!important;line-height:56px!important;
  display:inline-flex;align-items:center;justify-content:center;
}
.msw-badge .et_pb_blurb_container{padding:0}

/* ---------- Parallax band ---------- */
.msw-parallax{background-attachment:fixed!important}
@media (max-width:980px){.msw-parallax{background-attachment:scroll!important}}

/* ---------- "At a glance" marquee (Farmers Market) ---------- */
.msw-marquee{overflow:hidden;position:relative}
.msw-marquee__track{display:flex;align-items:center;width:max-content;animation:mswMarquee 52s linear infinite}
.msw-marquee:hover .msw-marquee__track,.msw-marquee:focus-within .msw-marquee__track{animation-play-state:paused}
@keyframes mswMarquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.msw-glance{display:flex;gap:9px;align-items:baseline;padding:0 26px;border-right:1px solid #2E8B99;white-space:nowrap}
.msw-glance b{font:700 16px/24px Roboto,sans-serif;letter-spacing:1.2px;text-transform:uppercase;color:#1F3A40}
.msw-glance>span{font:500 18px/25px Roboto,sans-serif;color:var(--msw-navy)}

/* ---------- Map embed ---------- */
.msw-map{width:100%;height:420px;border:0;display:block}

/* ---------- Forminator, styled as the design's dark form card ---------- */
.msw-formcard .forminator-row{margin-bottom:18px!important}
.msw-formcard .forminator-label,.msw-formcard legend{font:700 16px/24px Roboto,sans-serif!important;letter-spacing:.3px!important;color:#DCE1E8!important;margin-bottom:8px!important}
.msw-formcard .forminator-required{color:var(--msw-teal)!important}
.msw-formcard .forminator-description,.msw-formcard .forminator-error-message{font:400 14px/22px Roboto,sans-serif!important;color:#C7CDD6!important}
.msw-formcard .forminator-input,.msw-formcard .forminator-textarea,.msw-formcard select{min-height:50px!important;border-radius:8px!important;border:2px solid #5A6273!important;background:#FFFFFF!important;padding:13px 14px!important;font:400 18px/1.2 Roboto,sans-serif!important;color:var(--msw-navy)!important;box-sizing:border-box;width:100%;box-shadow:none!important}
.msw-formcard .forminator-textarea{min-height:120px!important;line-height:1.5!important}
.msw-formcard .forminator-input:focus,.msw-formcard .forminator-textarea:focus,.msw-formcard select:focus{border-color:var(--msw-teal)!important;outline:none}
.msw-formcard input::placeholder,.msw-formcard textarea::placeholder{color:#9AA3B2;opacity:1}
.msw-formcard .forminator-checkbox,.msw-formcard .forminator-radio{font:400 16px/24px Roboto,sans-serif!important;color:#DCE1E8!important;align-items:flex-start}
.msw-formcard .forminator-checkbox span:first-child{border-color:#767676!important;background:#FFFFFF!important}
.msw-formcard .forminator-button-submit{background:var(--msw-burgundy)!important;color:#FFFFFF!important;border:1.5px solid rgba(0,0,0,0)!important;border-radius:9px!important;font:700 18px/26px Roboto,sans-serif!important;padding:12px 24px!important;box-shadow:0 0 10px rgba(0,0,0,.25)!important;transition:background-color .18s ease,transform .15s ease}
.msw-formcard .forminator-button-submit:hover{background:#7D181B!important;transform:translateY(-1px)}
.msw-formcard .forminator-response-message{color:#FFFFFF!important}

/* ---------- Header ---------- */
.msw-header-row{display:flex!important;align-items:center}
.msw-header-row>.et_pb_column{display:flex;flex-direction:column;justify-content:center;margin-bottom:0!important}
.msw-nav .et_pb_menu__wrap{justify-content:center}
.msw-nav .et_pb_menu__logo-wrap{display:none}
.msw-nav .et_pb_menu__menu>nav>ul>li>a{padding-bottom:0}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .msw-crop-560 img{height:420px}
  .msw-crop-454 img{height:380px}
  .msw-crop-400 img,.msw-crop-345 img{height:320px}
  .msw-header-row{flex-wrap:wrap}
  .msw-cards>.et_pb_column{width:47.25%!important}
}
@media (max-width:767px){
  .msw-crop-560 img,.msw-crop-454 img,.msw-crop-400 img,.msw-crop-345 img,.msw-crop-300 img{height:240px}
  .msw-glance{padding:0 16px}
  .msw-map{height:300px}
  .msw-cards{display:block!important}
  .msw-cards>.et_pb_column{width:100%!important}
  .msw-btn-group .msw-btn-inline,.msw-btn-left .msw-btn-inline{display:block!important;margin:12px 0 0!important}
  .msw-btn-inline .et_pb_button{white-space:normal}
}
@media (prefers-reduced-motion:reduce){
  .msw-marquee__track{animation:none!important}
  body #page-container .et_pb_section .et_pb_button:hover{transform:none}
}
