/* Castelube local theme — minimal restoration stylesheet
 * Covers two templates present in the mirror:
 *   1) Astra + Elementor (homepage, about, my-account, category, some product pages)
 *   2) Custom Bootstrap-style (news-events, stores, product category pages, most product pages)
 */

/* ---------- design tokens ---------- */
:root{
  --brand-red:#E9180C;
  --brand-red-dark:#b71008;
  --brand-navy:#1a2438;
  --brand-navy-2:#0f1626;
  --ink:#1f2937;
  --ink-soft:#4b5563;
  --muted:#6b7280;
  --line:#e5e7eb;
  --bg:#ffffff;
  --bg-soft:#f7f8fa;
  --max:1200px;

  /* Astra global colors used inline throughout the HTML — give them sane defaults */
  --ast-global-color-0:var(--brand-red);
  --ast-global-color-1:var(--brand-red-dark);
  --ast-global-color-2:var(--ink);
  --ast-global-color-3:var(--ink-soft);
  --ast-global-color-4:var(--bg-soft);
  --ast-global-color-5:var(--ink);
  --ast-global-color-6:var(--bg);
  --ast-global-color-7:var(--line);
  --ast-global-color-8:var(--brand-navy);
}

/* ---------- reset / base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{font-size:100%;-webkit-text-size-adjust:100%}
body{
  margin:0;
  font-family:'Open Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  font-size:16px;
  line-height:1.6;
  color:var(--ink);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
}
img,svg,video{max-width:100%;height:auto;display:block}
a{color:var(--brand-red);text-decoration:none;transition:color .15s}
a:hover{color:var(--brand-red-dark)}
h1,h2,h3,h4,h5,h6{
  font-family:'Montserrat','Open Sans',sans-serif;
  font-weight:700;
  line-height:1.25;
  color:var(--brand-navy);
  margin:0 0 .5em
}
h1{font-size:clamp(2rem,4vw,3rem)}
h2{font-size:clamp(1.5rem,3vw,2.2rem)}
h3{font-size:clamp(1.2rem,2vw,1.5rem)}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.25em}
button,input,select,textarea{font:inherit}
.screen-reader-text{position:absolute!important;clip:rect(0 0 0 0);width:1px;height:1px;overflow:hidden}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:1rem;top:1rem;background:#000;color:#fff;padding:.5rem 1rem;z-index:9999}

/* hide the inline social-icon styles' raw color (use brand instead of var) */
.ast-builder-social-element{color:var(--brand-navy)}
.ast-builder-social-element:hover{color:var(--brand-red)}
.ahfb-svg-iconset svg{width:18px;height:18px;fill:currentColor}

/* ---------- ASTRA layout grid ---------- */
.site,.hfeed{min-height:100vh;display:flex;flex-direction:column}
#content{flex:1}
.ast-container{
  width:100%;max-width:var(--max);
  margin:0 auto;padding:0 1.25rem
}
.ast-builder-grid-row-container{width:100%}
.ast-builder-grid-row-container-inner,.ast-builder-grid-row{
  display:flex;flex-wrap:wrap;align-items:center;gap:1rem;
  width:100%;max-width:var(--max);margin:0 auto;padding:0 1.25rem
}
.ast-builder-grid-row-has-sides{justify-content:space-between}
.ast-flex{display:flex;align-items:center;gap:.75rem}
.ast-flex-grow-1{flex:1}
.ast-inline-flex{display:inline-flex;align-items:center}
.ast-grid-right-section{margin-left:auto}

/* ---------- ASTRA header ---------- */
.site-header{
  background:#fff;
  border-bottom:1px solid var(--line);
  position:sticky;top:0;z-index:100;
  box-shadow:0 1px 3px rgba(0,0,0,.04);
}
.ast-primary-header-bar{padding:.75rem 0}
.site-branding img,.custom-logo{
  max-height:44px;width:auto;display:block
}
.site-title{font-size:1.25rem;margin:0}
.main-header-menu{
  list-style:none;margin:0;padding:0;
  display:flex;gap:.25rem;flex-wrap:wrap
}
.main-header-menu .menu-item>a,
.main-header-menu .menu-link{
  display:block;padding:.6rem 1rem;
  color:var(--brand-navy);
  font-weight:600;font-size:.95rem;
  border-radius:6px;
  transition:background .15s,color .15s
}
.main-header-menu .menu-link:hover,
.main-header-menu .current-menu-item>a{
  background:var(--bg-soft);color:var(--brand-red)
}
.header-social-inner-wrap{display:flex;gap:.4rem;margin-left:.5rem}
.ast-builder-social-element{
  width:34px;height:34px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--bg-soft);border:1px solid var(--line)
}
.ast-builder-social-element:hover{background:var(--brand-red);color:#fff}

/* mobile header */
#ast-mobile-header{display:none}
.menu-toggle{
  background:transparent;border:0;cursor:pointer;
  width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;
  color:var(--brand-navy)
}
.ast-mobile-svg{width:28px;height:28px}
.ast-close-svg{display:none}
.ast-mobile-header-content{display:none;width:100%}
.ast-mobile-header-content.is-open{display:block}

@media (max-width:921px){
  #ast-desktop-header{display:none}
  #ast-mobile-header{display:block}
  .ast-mobile-header-content .main-header-menu{flex-direction:column;gap:0;padding:1rem 0;background:#fff;border-top:1px solid var(--line)}
  .ast-mobile-header-content .menu-link{padding:.9rem 1.25rem;border-bottom:1px solid var(--line)}
}

/* ---------- ASTRA content ---------- */
.site-content{padding:2rem 0}
.entry-header{margin-bottom:1.5rem}
.entry-content{font-size:1rem;line-height:1.7}
.entry-content h1,.entry-content h2,.entry-content h3{margin-top:1.5em}

/* ---------- ELEMENTOR grid ---------- */
.elementor,.elementor-section{width:100%}
.elementor-element{width:100%}
.elementor-section,.e-con,.e-con-inner{
  display:flex;flex-wrap:wrap;align-items:stretch;gap:1.5rem;
  margin:0 auto;padding:2rem 1.25rem;
  width:100%;max-width:var(--max);
}
.e-con-boxed{padding:2.5rem 1.25rem}
.e-con-inner{padding:0;gap:1.5rem}
.elementor-container{
  display:flex;flex-wrap:wrap;gap:1.5rem;
  width:100%;max-width:var(--max);margin:0 auto;padding:2rem 1.25rem
}
.elementor-column,.elementor-row{flex:1 1 0;min-width:240px}
.elementor-widget{margin:0}
.elementor-widget-container{width:100%}
.elementor-heading-title{margin:0 0 .5em;font-family:'Montserrat',sans-serif;font-weight:700;color:var(--brand-navy)}
.elementor-button-wrapper{margin-top:1rem}
.elementor-button,.elementor-button-link{
  display:inline-block;padding:.7rem 1.4rem;
  background:var(--brand-red);color:#fff!important;
  font-weight:600;border-radius:6px;
  transition:background .15s,transform .15s
}
.elementor-button:hover{background:var(--brand-red-dark);transform:translateY(-1px)}

/* image carousel / swiper fallback */
.swiper,.elementor-image-carousel-wrapper{
  position:relative;overflow:hidden;border-radius:8px;
  background:var(--bg-soft)
}
.swiper-wrapper{display:flex;transition:transform .4s ease}
.swiper-slide{flex:0 0 100%;text-align:center}
.swiper-slide figure{margin:0}
.swiper-slide-image{width:100%;height:auto;object-fit:cover;max-height:520px}
.elementor-swiper-button{
  position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.92);color:var(--brand-navy);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.18)
}
.elementor-swiper-button-prev{left:1rem}
.elementor-swiper-button-next{right:1rem}
.elementor-swiper-button svg{width:22px;height:22px;fill:currentColor}

/* ---------- ASTRA footer ---------- */
.site-footer{
  background:var(--brand-navy);color:#cbd5e1;
  margin-top:3rem;padding:3rem 0 1.5rem
}
.site-footer h1,.site-footer h2,.site-footer h3,.site-footer h4,.site-footer h5,.site-footer h6{color:#fff}
.site-footer a{color:#fff}
.site-footer a:hover{color:var(--brand-red)}
.site-primary-footer-wrap .ast-builder-footer-grid-columns{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:2rem;max-width:var(--max);margin:0 auto;padding:0 1.25rem
}
.footer-widget-area .widget{margin-bottom:1rem}
.footer-widget-area ul{list-style:none;padding:0}
.footer-widget-area li{padding:.25rem 0;border-bottom:1px solid rgba(255,255,255,.08)}
.site-below-footer-wrap{
  border-top:1px solid rgba(255,255,255,.1);
  margin-top:2rem;padding-top:1.5rem;text-align:center
}
.ast-footer-copyright p{margin:0;font-size:.9rem;color:#94a3b8}

@media (max-width:768px){
  .site-primary-footer-wrap .ast-builder-footer-grid-columns{grid-template-columns:1fr}
}

/* ---------- WOOCOMMERCE products ---------- */
.woocommerce ul.products,
ul.products{
  list-style:none;padding:0;margin:0;
  display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:1.5rem
}
ul.products li.product{
  background:#fff;border:1px solid var(--line);border-radius:8px;
  padding:1rem;text-align:center;
  transition:transform .15s,box-shadow .15s
}
ul.products li.product:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.08)}
ul.products li.product img{margin:0 auto 1rem;max-height:200px;object-fit:contain}
.woocommerce-loop-product__title{font-size:1rem!important;color:var(--brand-navy);font-weight:600;margin:.5rem 0}
.woocommerce-Price-amount{font-weight:700;color:var(--brand-red)}
.add_to_cart_button,.button{
  display:inline-block;padding:.6rem 1.2rem;background:var(--brand-red);
  color:#fff!important;border-radius:6px;font-weight:600;border:0;cursor:pointer
}
.add_to_cart_button:hover,.button:hover{background:var(--brand-red-dark)}

/* my-account / forms */
.woocommerce-form,form{max-width:520px;margin:0 auto}
.woocommerce-form-row input,
.woocommerce form input[type=text],
.woocommerce form input[type=email],
.woocommerce form input[type=password],
input[type=text],input[type=email],input[type=password],input[type=tel],input[type=search],textarea{
  width:100%;padding:.7rem .9rem;border:1px solid var(--line);border-radius:6px;
  margin-bottom:1rem;background:#fff
}
input:focus,textarea:focus{outline:0;border-color:var(--brand-red);box-shadow:0 0 0 3px rgba(233,24,12,.12)}
label{display:block;margin-bottom:.3rem;font-weight:600;font-size:.9rem;color:var(--brand-navy)}

/* ---------- BOOTSTRAP-style pages (news-events, stores, product pages, etc.) ---------- */
body#home{
  background:#1a2438 linear-gradient(180deg,#1a2438 0%,#0f1626 100%);
  color:#e5e7eb;
}
body#home a{color:#fff}
body#home a:hover{color:var(--brand-red)}
body#home h1,body#home h2,body#home h3,body#home h4,body#home h5,body#home h6{color:#fff}

.loader{display:none}

/* Bootstrap-ish containers */
.container,.container-fluid{
  width:100%;margin:0 auto;padding:0 1rem
}
.container{max-width:var(--max)}
.container-fluid{max-width:100%}

.row{display:flex;flex-wrap:wrap;margin:0 -.75rem}
.row.no-gutters{margin:0}
.row.no-gutters>[class*=col-]{padding:0}
[class*=col-]{flex:1;padding:0 .75rem;min-width:0}

/* col widths (5 / 7 / 12 / 4 / 6 / 8) — enough to cover what's in the markup */
.col-lg-12,.col-md-12,.col-sm-12{flex:0 0 100%;max-width:100%}
.col-lg-8{flex:0 0 66.6667%;max-width:66.6667%}
.col-lg-7{flex:0 0 58.3333%;max-width:58.3333%}
.col-lg-6,.col-md-6{flex:0 0 50%;max-width:50%}
.col-lg-5{flex:0 0 41.6667%;max-width:41.6667%}
.col-lg-4,.col-md-4{flex:0 0 33.3333%;max-width:33.3333%}
.col-lg-3{flex:0 0 25%;max-width:25%}
.col-lg-2{flex:0 0 16.6667%;max-width:16.6667%}

@media (max-width:992px){
  .col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8{flex:0 0 100%;max-width:100%;margin-bottom:1rem}
}
@media (max-width:768px){
  .col-md-4,.col-md-6{flex:0 0 100%;max-width:100%;margin-bottom:1rem}
}

/* flex / alignment utilities */
.d-flex{display:flex!important}
.flex-column{flex-direction:column}
.justify-content-center{justify-content:center!important}
.justify-content-between{justify-content:space-between!important}
.align-items-center{align-items:center!important}
.text-center{text-align:center!important}
.img-fluid{max-width:100%;height:auto}

/* spacing utilities (m/p × t/b/l/r/x/y × 1..5) — minimal set used in markup */
.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}
.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}
.my-1{margin:.25rem 0!important}.my-2{margin:.5rem 0!important}.my-3{margin:1rem 0!important}.my-4{margin:1.5rem 0!important}.my-5{margin:3rem 0!important}
.mx-3{margin-left:1rem!important;margin-right:1rem!important}.mx-4{margin-left:1.5rem!important;margin-right:1.5rem!important}.mx-5{margin-left:3rem!important;margin-right:3rem!important}
.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}
.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}
.py-3{padding:1rem 0!important}.py-4{padding:1.5rem 0!important}.py-5{padding:3rem 0!important}
.px-3{padding-left:1rem!important;padding-right:1rem!important}.px-4{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-5{padding-left:3rem!important;padding-right:3rem!important}
.pl-3{padding-left:1rem!important}.pl-4{padding-left:1.5rem!important}.pr-1{padding-right:.25rem!important}.pr-3{padding-right:1rem!important}

/* navbar */
.navbar{
  display:flex;flex-wrap:wrap;align-items:center;padding:.75rem 1rem;border-radius:8px;
  margin:1rem auto;max-width:var(--max)
}
.bg-nav{background:linear-gradient(90deg,var(--brand-red) 0%,#b71008 100%);box-shadow:0 4px 14px rgba(233,24,12,.25)}
.navbar-nav{display:flex;flex-wrap:wrap;list-style:none;padding:0;margin:0;align-items:center}
.nav-item{position:relative}
.nav-link{
  color:#fff!important;padding:.5rem 1rem;display:inline-flex;align-items:center;gap:.4rem;
  font-weight:600;border-radius:6px;transition:background .15s
}
.nav-link:hover{background:rgba(255,255,255,.1);color:#fff!important}
.navbar-toggler{
  background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;
  padding:.4rem .6rem;border-radius:4px;cursor:pointer;margin-left:auto
}
.navbar-toggler-icon{
  display:inline-block;width:24px;height:18px;
  background-image:linear-gradient(#fff,#fff);background-size:100% 2px;
  background-repeat:no-repeat;background-position:0 0,0 50%,0 100%;
  box-shadow:inset 0 8px 0 -6px #fff,inset 0 16px 0 -6px #fff
}
.navbar-collapse{display:flex;flex:1;justify-content:center}
.collapse:not(.show){display:none}
@media (min-width:992px){
  .navbar-expand-lg .navbar-collapse{display:flex!important}
  .navbar-expand-lg .navbar-toggler{display:none}
}
@media (max-width:991px){
  .navbar-collapse{flex-basis:100%;flex-direction:column}
  .navbar-collapse.show{display:flex}
  .navbar-nav{flex-direction:column;width:100%}
  .nav-item{width:100%}
  .nav-link{width:100%}
}

/* dropdown */
.dropdown{position:relative}
.dropdown-menu{
  position:absolute;top:100%;left:0;z-index:1000;display:none;
  min-width:200px;padding:.5rem 0;margin:.25rem 0 0;
  background:#fff;border:1px solid var(--line);border-radius:8px;
  box-shadow:0 8px 24px rgba(0,0,0,.12)
}
.dropdown:hover>.dropdown-menu,
.dropdown-submenu:hover>.dropdown-menu{display:block}
.dropdown-item{
  display:block;padding:.5rem 1rem;color:var(--brand-navy)!important;
  font-weight:500;white-space:nowrap
}
.dropdown-item:hover{background:var(--bg-soft);color:var(--brand-red)!important}
.dropdown-submenu{position:relative}
.dropdown-submenu>.dropdown-menu{top:0;left:100%;margin-left:0}
.dropdown-toggle::after{
  content:"";display:inline-block;margin-left:.4em;
  border:4px solid transparent;border-top-color:currentColor;vertical-align:middle
}

/* hero / header-title (used on bootstrap pages) */
.header-title{
  min-height:180px;
  background:linear-gradient(135deg,rgba(233,24,12,.15) 0%,rgba(15,22,38,.65) 100%);
  border-radius:12px;margin:2rem 0;padding:2.5rem 1rem;
}
.header-title h1{
  font-family:'Montserrat',sans-serif;font-weight:800;letter-spacing:.04em;
  text-transform:uppercase;text-shadow:0 2px 8px rgba(0,0,0,.4)
}

/* item-desc (product listings) */
.item-desc{
  background:#fff;color:var(--ink);border-radius:8px;padding:1.5rem;
  margin-bottom:1.5rem;box-shadow:0 4px 16px rgba(0,0,0,.06)
}
.item-desc h2,.item-desc h3,.item-desc h4{color:var(--brand-navy)}

/* bootstrap-page footer */
body#home .footer{
  background:rgba(0,0,0,.25);border-top:1px solid rgba(255,255,255,.1);
  margin-top:3rem;padding:2.5rem 1rem 1rem
}
body#home .footer .row{max-width:var(--max);margin:0 auto}
body#home .footer h5{color:#fff;font-weight:700;letter-spacing:.05em}
body#home .footer-contact p{margin:.3rem 0;color:#cbd5e1}
body#home .footer i{font-size:1.1rem;flex-shrink:0;margin-top:.25rem}

/* Font Awesome fallback — when the font isn't loaded, icons would just be empty
 * Hide them so they don't leave gaps in layout. */
i.fas,i.fa,i.fab,i.far{display:inline-block;width:1em;height:1em;text-align:center}
i.fas:empty,i.fa:empty,i.fab:empty,i.far:empty{font-style:normal}

/* generic image placeholder styling (the fallback.js script applies this class) */
img.is-placeholder{
  background:#e5e7eb;border:1px dashed #cbd5e1;border-radius:4px;
  object-fit:contain;color:#9ca3af
}

/* hide leftover noisy bits that won't render correctly */
.elementor-widget-icon-list .elementor-icon-list-icon{display:none}
.wp-block-list,.wp-block-heading{margin:0 0 .75em}

/* small responsive cleanup */
@media (max-width:600px){
  h1{font-size:1.75rem}
  h2{font-size:1.4rem}
  .ast-container,.container{padding:0 1rem}
  .elementor-section,.e-con,.e-con-inner,.elementor-container{padding:1.25rem 1rem;gap:1rem}
  ul.products{grid-template-columns:repeat(2,1fr);gap:1rem}
}
