/* Flushline branding on top of the native Razzi design. */
:root,
body {
  --rz-color-primary: #a58b6d;
  --rz-color-hover-primary: #765f48;
  --rz-background-color-primary: #a58b6d;
  --rz-border-color-primary: #a58b6d;
}

body { color: #303030; }
.site-header { --rz-header-color: #303030; }
.site-branding img { max-height: 36px; width: auto; }

.flushline-home { overflow: hidden; background: #fff; }
.flushline-home .rz-container { width: min(100% - 48px, 1320px); margin-inline: auto; }
.flushline-home__hero {
  position: relative;
  min-height: min(820px, 82vh);
  display: flex;
  align-items: flex-end;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.flushline-home__hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(26,25,23,.62) 0%, rgba(26,25,23,.18) 58%, rgba(26,25,23,.04) 100%);
}
.flushline-home__hero-inner {
  position: relative;
  z-index: 1;
  width: min(100% - 48px, 1320px);
  margin: 0 auto;
  padding: 110px 0 92px;
  color: #fff;
}
.flushline-home__eyebrow {
  margin: 0 0 20px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.flushline-home__hero h1 {
  max-width: 850px;
  margin: 0 0 22px;
  color: #fff;
  font-size: clamp(46px, 6vw, 86px);
  font-weight: 400;
  line-height: .98;
  letter-spacing: -.04em;
}
.flushline-home__hero p {
  max-width: 660px;
  margin: 0 0 34px;
  font-size: clamp(17px, 1.5vw, 21px);
  line-height: 1.65;
}
.flushline-home__button,
.flushline-quote-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 54px;
  padding: 0 28px;
  border: 1px solid #303030;
  background: #303030;
  color: #fff !important;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .08em;
  text-decoration: none !important;
  text-transform: uppercase;
}
.flushline-home__button:hover,
.flushline-quote-button:hover { border-color: #765f48; background: #765f48; color: #fff !important; }
.flushline-home__button--light { border-color: #fff; background: #fff; color: #303030 !important; }
.flushline-home__button--light:hover { border-color: #f3efe9; background: #f3efe9; color: #303030 !important; }
.flushline-home__intro,
.flushline-home__collection,
.flushline-home__split,
.flushline-home__steps,
.flushline-home__cta { padding: clamp(76px, 8vw, 128px) 0; }
.flushline-home__intro-grid,
.flushline-home__split-grid,
.flushline-home__steps-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 7vw, 110px);
  align-items: center;
}
.flushline-home__kicker { color: #765f48; font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; }
.flushline-home h2 { margin: 14px 0 24px; font-size: clamp(38px, 4vw, 62px); font-weight: 400; line-height: 1.03; letter-spacing: -.035em; }
.flushline-home h3 { font-size: 24px; font-weight: 400; }
.flushline-home__lead { font-size: clamp(19px, 2vw, 26px); line-height: 1.55; color: #4c4945; }
.flushline-home__muted { color: #716c66; }
.flushline-home__collection { background: #f5f3ef; }
.flushline-home__section-head { max-width: 760px; margin-bottom: 46px; }
.flushline-home__collection .woocommerce ul.products { margin-bottom: 0; }
.flushline-home__split-media img { display:block; width:100%; min-height: 560px; object-fit: cover; }
.flushline-home__facts { display:grid; gap:20px; margin: 34px 0 0; }
.flushline-home__fact { padding-top:20px; border-top:1px solid #ded9d2; }
.flushline-home__fact strong { display:block; margin-bottom:5px; font-size:17px; }
.flushline-home__steps { background:#2b2a27; color:#f7f5f1; }
.flushline-home__steps h2, .flushline-home__steps h3 { color:#fff; }
.flushline-home__steps-grid { grid-template-columns: repeat(3, 1fr); align-items:start; gap: 48px; }
.flushline-home__step-num { color:#bca78f; font-size:12px; letter-spacing:.18em; }
.flushline-home__cta { text-align:center; }
.flushline-home__cta-inner { max-width: 820px; margin: 0 auto; }
.flushline-home__cta p { max-width: 650px; margin: 0 auto 30px; color:#716c66; }

.woocommerce .flushline-price-request { color:#765f48; font-weight:600; }
.single-product .flushline-quote-wrap { margin-top: 22px; }
.single-product .flushline-quote-wrap p { margin: 10px 0 0; color:#767676; font-size:13px; }

@media (max-width: 900px) {
  .flushline-home .rz-container,
  .flushline-home__hero-inner { width: min(100% - 32px, 1320px); }
  .flushline-home__intro-grid,
  .flushline-home__split-grid,
  .flushline-home__steps-grid { grid-template-columns: 1fr; gap: 34px; }
  .flushline-home__split-media img { min-height: 380px; }
  .flushline-home__hero { min-height: 680px; }
  .flushline-home__hero-inner { padding: 86px 0 64px; }
}

/* Flushline Razzi v2 — designed inner pages and catalog */
#flushline-header,
#flushline-footer { display: none !important; }

.flushline-page,
.flushline-shop-hero,
.flushline-product-story { background: #fff; }
.flushline-page .rz-container,
.flushline-shop-hero .rz-container,
.flushline-product-story .rz-container { width: min(100% - 48px, 1320px); margin-inline: auto; }

.flushline-page__hero { padding: 72px 0 0; }
.flushline-page__hero-grid { display:grid; grid-template-columns: .82fr 1.18fr; min-height: 610px; background:#f4f1ec; }
.flushline-page__hero-copy { display:flex; flex-direction:column; justify-content:center; padding: clamp(46px, 6vw, 90px); }
.flushline-page__hero h1 { margin:18px 0 26px; max-width:650px; font-size:clamp(46px,5vw,76px); font-weight:400; line-height:1.01; letter-spacing:-.045em; }
.flushline-page__hero p { margin:0; max-width:590px; color:#655f58; font-size:clamp(18px,1.5vw,22px); line-height:1.65; }
.flushline-page__hero-media { min-height:610px; background-position:center; background-size:cover; }

.flushline-page__body { padding: clamp(78px,8vw,128px) 0; }
.flushline-page__body-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:clamp(48px,7vw,110px); align-items:start; }
.flushline-page__content { max-width:none !important; margin:0 !important; }
.flushline-page__content > *:first-child { margin-top:0; }
.flushline-page__content h2 { margin:0 0 28px; font-size:clamp(36px,4vw,58px); font-weight:400; line-height:1.05; letter-spacing:-.035em; }
.flushline-page__content h3 { margin:52px 0 16px; font-size:clamp(25px,2.4vw,34px); font-weight:400; line-height:1.15; }
.flushline-page__content p,
.flushline-page__content li { color:#55504a; font-size:17px; line-height:1.8; }
.flushline-page__content ul { margin:22px 0 32px; padding-left:0; list-style:none; border-top:1px solid #ddd7cf; }
.flushline-page__content li { position:relative; padding:15px 0 15px 28px; border-bottom:1px solid #ddd7cf; }
.flushline-page__content li::before { content:'—'; position:absolute; left:0; color:#8c745b; }
.flushline-page__content a { color:#765f48; border-bottom:1px solid #bca78f; }
.flushline-page__aside { position:sticky; top:120px; }
.flushline-page__aside img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; }
.flushline-page__aside-note { padding:30px 32px; background:#2b2a27; color:#fff; }
.flushline-page__aside-note .flushline-home__kicker { color:#cbb59d; }
.flushline-page__aside-note p { margin:15px 0 0; color:#eee9e2; line-height:1.65; }

.flushline-page__cta { padding:90px 0 100px; background:#f4f1ec; text-align:center; }
.flushline-page__cta-inner { max-width:820px; }
.flushline-page__cta h2 { margin:14px auto 30px; font-size:clamp(38px,4vw,60px); font-weight:400; line-height:1.05; letter-spacing:-.035em; }
.flushline-page__cta-buttons { display:flex; gap:24px; justify-content:center; align-items:center; flex-wrap:wrap; }
.flushline-page__text-link { color:#303030; font-weight:600; text-decoration:none; border-bottom:1px solid #303030; padding-bottom:5px; }

.flushline-page__contact-strip { padding:90px 0; background:#2b2a27; color:#fff; }
.flushline-page__contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:end; }
.flushline-page__contact-strip h2 { margin:14px 0 0; color:#fff; font-size:clamp(38px,4vw,60px); font-weight:400; line-height:1.06; }
.flushline-page__contact-list { display:grid; gap:0; border-top:1px solid rgba(255,255,255,.25); }
.flushline-page__contact-list span { padding:16px 0; border-bottom:1px solid rgba(255,255,255,.25); color:#eee9e2; }

.flushline-shop-hero { padding:72px 0 80px; }
.flushline-shop-hero__grid { display:grid; grid-template-columns:.9fr 1.1fr; min-height:540px; background:#f4f1ec; }
.flushline-shop-hero__copy { display:flex; flex-direction:column; justify-content:center; padding:clamp(42px,6vw,86px); }
.flushline-shop-hero h1 { margin:18px 0 24px; font-size:clamp(46px,5vw,74px); font-weight:400; line-height:1.01; letter-spacing:-.045em; }
.flushline-shop-hero p { margin:0; color:#655f58; font-size:18px; line-height:1.7; }
.flushline-shop-hero__media { background-size:cover; background-position:center; }
.flushline-shop-hero__links { display:flex; gap:24px; flex-wrap:wrap; margin-top:30px; }
.flushline-shop-hero__links a { color:#303030; font-size:13px; font-weight:600; letter-spacing:.05em; text-transform:uppercase; border-bottom:1px solid #303030; text-decoration:none; }

body.razzi-catalog-page .site-content { padding-top:0; }
body.razzi-catalog-page #primary { width:min(100% - 48px,1320px); margin:0 auto; }
body.razzi-catalog-page .woocommerce-products-header { display:none; }
body.razzi-catalog-page ul.products { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)); gap:34px 24px !important; }
body.razzi-catalog-page ul.products::before,
body.razzi-catalog-page ul.products::after { display:none !important; }
body.razzi-catalog-page ul.products li.product { width:auto !important; margin:0 !important; float:none !important; }
body.razzi-catalog-page ul.products li.product .product-thumbnail { overflow:hidden; background:#f1eee9; }
body.razzi-catalog-page ul.products li.product img { aspect-ratio:4/5; object-fit:cover; transition:transform .5s ease; }
body.razzi-catalog-page ul.products li.product:hover img { transform:scale(1.025); }
body.razzi-catalog-page .woocommerce-pagination { margin-top:58px; }

.flushline-product-story { padding:96px 0 120px; }
.flushline-product-story__features { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#ded9d2; border:1px solid #ded9d2; margin-bottom:110px; }
.flushline-product-story__features > div { background:#f7f5f1; padding:38px; }
.flushline-product-story__features span { color:#8c745b; font-size:12px; letter-spacing:.15em; }
.flushline-product-story__features h3 { margin:14px 0 12px; font-size:26px; font-weight:400; }
.flushline-product-story__features p { margin:0; color:#6b655f; line-height:1.7; }
.flushline-product-story__split { display:grid; grid-template-columns:1fr 1fr; gap:clamp(50px,8vw,120px); align-items:center; }
.flushline-product-story__split h2 { margin:14px 0 24px; font-size:clamp(40px,4vw,62px); font-weight:400; line-height:1.04; letter-spacing:-.035em; }
.flushline-product-story__split p { margin:0 0 30px; color:#615c56; font-size:18px; line-height:1.75; }
.flushline-product-story__image { min-height:570px; background-position:center; background-size:cover; }

.single-product .summary .product_title { font-weight:400; letter-spacing:-.03em; }
.single-product .summary .woocommerce-product-details__short-description { color:#66605a; line-height:1.75; }
.single-product .product_meta { border-top:1px solid #e2ddd6; padding-top:22px; }

@media (max-width: 980px) {
  .flushline-page .rz-container,
  .flushline-shop-hero .rz-container,
  .flushline-product-story .rz-container,
  body.razzi-catalog-page #primary { width:min(100% - 32px,1320px); }
  .flushline-page__hero-grid,
  .flushline-shop-hero__grid { grid-template-columns:1fr; }
  .flushline-page__hero-media,
  .flushline-shop-hero__media { min-height:430px; order:-1; }
  .flushline-page__body-grid,
  .flushline-page__contact-grid,
  .flushline-product-story__split { grid-template-columns:1fr; }
  .flushline-page__aside { position:static; display:grid; grid-template-columns:1fr 1fr; }
  .flushline-page__aside img { aspect-ratio:4/3; }
  body.razzi-catalog-page ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .flushline-product-story__features { grid-template-columns:1fr; }
}

@media (max-width: 620px) {
  .flushline-page__hero { padding-top:34px; }
  .flushline-page__hero-copy,
  .flushline-shop-hero__copy { padding:38px 26px 44px; }
  .flushline-page__hero-media,
  .flushline-shop-hero__media { min-height:330px; }
  .flushline-page__body { padding:64px 0; }
  .flushline-page__aside { grid-template-columns:1fr; }
  body.razzi-catalog-page ul.products { grid-template-columns:1fr; }
  .flushline-product-story { padding:70px 0 90px; }
  .flushline-product-story__features { margin-bottom:70px; }
  .flushline-product-story__image { min-height:390px; }
}

/* The native Razzi page layout constrains non-Elementor pages. Our Flushline
   templates already provide their own Razzi containers, so remove that outer box. */
.page-template-template-flushline-home .site-content,
.page-template-template-flushline-page .site-content,
.page-template-template-flushline-home.page.full-content:not(.elementor-page) .site-content,
.page-template-template-flushline-page.page.full-content:not(.elementor-page) .site-content {
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  float:none !important;
}

/* Flushline Razzi v3 — guaranteed full footer */
.flushline-site-footer {
  margin-top: 0;
  background: #282724;
  color: #e9e5de;
  border-top: 0 !important;
}
.flushline-site-footer .rz-container {
  width: min(100% - 48px, 1320px);
  margin-inline: auto;
}
.flushline-site-footer__main { padding: clamp(72px, 7vw, 108px) 0 68px; }
.flushline-site-footer__grid {
  display: grid;
  grid-template-columns: minmax(260px, 1.55fr) repeat(3, minmax(150px, .7fr));
  gap: clamp(38px, 5vw, 78px);
  align-items: start;
}
.flushline-site-footer__logo { display: inline-flex; margin-bottom: 28px; }
.flushline-site-footer__logo-image {
  display: block;
  width: auto;
  max-width: 245px;
  max-height: 42px;
  filter: brightness(0) invert(1);
}
.flushline-site-footer__brand > p {
  max-width: 390px;
  margin: 0 0 25px;
  color: #c8c2ba;
  font-size: 15px;
  line-height: 1.75;
}
.flushline-site-footer__brand-link {
  display: inline-block;
  color: #fff !important;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .1em;
  text-decoration: none !important;
  text-transform: uppercase;
  border-bottom: 1px solid #a58b6d;
  padding-bottom: 6px;
}
.flushline-site-footer__column h3 {
  margin: 2px 0 23px;
  color: #fff;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.flushline-site-footer__column ul { margin: 0; padding: 0; list-style: none; }
.flushline-site-footer__column li { margin: 0 0 13px; padding: 0; }
.flushline-site-footer__column a {
  color: #c8c2ba !important;
  font-size: 14px;
  line-height: 1.55;
  text-decoration: none !important;
  transition: color .2s ease;
}
.flushline-site-footer__column a:hover { color: #fff !important; }
.flushline-site-footer__bottom { border-top: 1px solid rgba(255,255,255,.13); }
.flushline-site-footer__bottom-grid {
  min-height: 78px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 28px;
}
.flushline-site-footer__bottom p {
  margin: 0;
  color: #918c85;
  font-size: 12px;
  line-height: 1.65;
}
.flushline-site-footer__bottom p:last-child { text-align: right; }
.flushline-site-footer__bottom a { color: #b8b1a8 !important; text-decoration: none !important; }

@media (max-width: 980px) {
  .flushline-site-footer .rz-container { width: min(100% - 32px, 1320px); }
  .flushline-site-footer__grid { grid-template-columns: 1.4fr 1fr 1fr; }
  .flushline-site-footer__brand { grid-column: 1 / -1; padding-bottom: 12px; }
  .flushline-site-footer__brand > p { max-width: 620px; }
  .flushline-site-footer__bottom-grid { align-items: flex-start; flex-direction: column; padding: 24px 0; gap: 8px; }
  .flushline-site-footer__bottom p:last-child { text-align: left; }
}
@media (max-width: 620px) {
  .flushline-site-footer__main { padding: 60px 0 48px; }
  .flushline-site-footer__grid { grid-template-columns: 1fr 1fr; gap: 38px 24px; }
  .flushline-site-footer__brand { grid-column: 1 / -1; }
  .flushline-site-footer__column:last-child { grid-column: 1 / -1; }
  .flushline-site-footer__logo-image { max-width: 215px; max-height: 36px; }
}
