.banlulu-editorial {
  --ink: #173f3a;
  --text: #303632;
  --line: #d8ded9;
  --soft: #f1f4f0;
  color: var(--text);
  border-top: 1px solid var(--line);
}

.banlulu-editorial * { box-sizing: border-box; }
.banlulu-editorial__inner { width: min(1180px, calc(100% - 64px)); margin: 0 auto; }
.banlulu-editorial__hero { display: grid; grid-template-columns: minmax(0, 1.02fr) minmax(360px, .98fr); min-height: 570px; }
.banlulu-editorial__hero-copy { display: flex; flex-direction: column; justify-content: center; padding: 72px max(48px, calc((100vw - 1180px) / 2)); background: var(--soft); }
.banlulu-editorial__eyebrow { margin: 0 0 14px; color: #887052; font-size: 13px; font-weight: 700; letter-spacing: 0; text-transform: uppercase; }
.banlulu-editorial h1, .banlulu-editorial h2, .banlulu-editorial h3 { color: var(--ink); }
.banlulu-editorial h1 { max-width: 700px; margin: 0 0 22px; font-size: 52px; line-height: 1.08; }
.banlulu-editorial h2 { margin: 0 0 18px; font-size: 36px; line-height: 1.16; }
.banlulu-editorial h3 { margin: 0 0 10px; font-size: 21px; line-height: 1.3; }
.banlulu-editorial p { font-size: 16px; line-height: 1.7; }
.banlulu-editorial__hero-copy > p { max-width: 630px; margin: 0 0 28px; font-size: 18px; }
.banlulu-editorial__hero-media, .banlulu-editorial__feature-media { min-height: 100%; overflow: hidden; }
.banlulu-editorial__hero-media img, .banlulu-editorial__feature-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.banlulu-editorial__links { display: flex; flex-wrap: wrap; gap: 10px; }
.banlulu-editorial__link { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: 10px 17px; border: 1px solid var(--ink); border-radius: 4px; color: var(--ink); font-weight: 600; text-decoration: none; }
.banlulu-editorial__link--solid { color: #fff; background: var(--ink); }
.banlulu-editorial__statement { padding: 88px 0; text-align: center; }
.banlulu-editorial__statement p { max-width: 790px; margin: 0 auto; font-size: 20px; }
.banlulu-editorial__feature { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); background: #fff; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.banlulu-editorial__feature-media { min-height: 470px; }
.banlulu-editorial__feature-copy { display: flex; flex-direction: column; justify-content: center; padding: 64px max(48px, calc((100vw - 1180px) / 2)); }
.banlulu-editorial__values { padding: 84px 0 92px; }
.banlulu-editorial__values h2 { text-align: center; }
.banlulu-editorial__value-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 34px; margin-top: 44px; }
.banlulu-editorial__icon { width: 40px; height: 40px; margin-bottom: 18px; color: var(--ink); }
.banlulu-editorial__icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; }
.banlulu-editorial__value p { margin: 0; color: #5a615d; font-size: 15px; }

.banlulu-contact-intro__hero { grid-template-columns: minmax(340px, .86fr) minmax(0, 1.14fr); }
.banlulu-contact-intro__hero-media img { object-position: center 42%; }
.banlulu-contact-intro__routes { padding: 78px 0; }
.banlulu-contact-intro__routes .banlulu-editorial__eyebrow { text-align: center; }
.banlulu-contact-intro__routes > h2 { text-align: center; }
.banlulu-contact-intro__route-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); margin-top: 38px; }
.banlulu-contact-intro__route { padding: 34px 30px; border-right: 1px solid var(--line); }
.banlulu-contact-intro__route:last-child { border-right: 0; }
.banlulu-contact-intro__route p { margin: 0; font-size: 15px; }
.banlulu-contact-intro__route a { color: var(--ink); font-weight: 600; }
.banlulu-contact-intro__guide { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; background: var(--soft); border-top: 1px solid var(--line); }
.banlulu-contact-intro__guide-copy { padding: 68px max(48px, calc((100vw - 1180px) / 2)); }
.banlulu-contact-intro__guide-copy ul { margin: 24px 0 0; padding: 0; list-style: none; }
.banlulu-contact-intro__guide-copy li { padding: 13px 0; border-bottom: 1px solid var(--line); }

@media (max-width: 989px) {
  .banlulu-editorial__inner { width: min(100% - 40px, 760px); }
  .banlulu-editorial__hero { grid-template-columns: 1fr; min-height: 0; }
  .banlulu-editorial__hero-copy { padding: 54px 40px; }
  .banlulu-editorial__hero-media { min-height: 460px; }
  .banlulu-editorial h1 { font-size: 42px; }
  .banlulu-editorial__value-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .banlulu-contact-intro__route-grid { grid-template-columns: 1fr; }
  .banlulu-contact-intro__route { border-right: 0; border-bottom: 1px solid var(--line); }
  .banlulu-contact-intro__route:last-child { border-bottom: 0; }
}

@media (max-width: 767px) {
  .banlulu-editorial__inner { width: calc(100% - 32px); }
  .banlulu-editorial__hero-copy { order: 2; padding: 36px 20px 42px; }
  .banlulu-editorial__hero-media { order: 1; min-height: 320px; max-height: 430px; }
  .banlulu-editorial h1 { font-size: 34px; }
  .banlulu-editorial h2 { font-size: 29px; }
  .banlulu-editorial__hero-copy > p { font-size: 16px; }
  .banlulu-editorial__links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .banlulu-editorial__statement { padding: 56px 0; }
  .banlulu-editorial__statement p { font-size: 17px; }
  .banlulu-editorial__feature, .banlulu-contact-intro__guide { grid-template-columns: 1fr; }
  .banlulu-editorial__feature-media { min-height: 300px; }
  .banlulu-editorial__feature-copy, .banlulu-contact-intro__guide-copy { padding: 42px 20px 48px; }
  .banlulu-editorial__values { padding: 56px 0 62px; }
  .banlulu-editorial__value-grid { grid-template-columns: 1fr; gap: 30px; margin-top: 34px; }
  .banlulu-editorial__value { display: grid; grid-template-columns: 42px 1fr; column-gap: 16px; }
  .banlulu-editorial__icon { grid-row: 1 / span 2; margin: 0; }
  .banlulu-contact-intro__routes { padding: 54px 0; }
  .banlulu-contact-intro__route { padding: 28px 8px; }
}
/* 4377 editorial refinement: use the wide canvas instead of oversized inner gutters. */
.banlulu-editorial__inner { width: min(1480px, calc(100% - 64px)); }
.banlulu-editorial__hero-copy,
.banlulu-editorial__feature-copy,
.banlulu-contact-intro__guide-copy { padding-left: clamp(32px, 5vw, 104px); padding-right: clamp(32px, 5vw, 104px); }
.banlulu-editorial__hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.banlulu-editorial__hero-copy > p { max-width: 720px; }
.banlulu-editorial h1 { max-width: 820px; }
.banlulu-editorial__feature-copy { max-width: none; }
.banlulu-contact-intro__hero { grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); }
.banlulu-contact-intro__hero-copy { min-width: 0; }
/* The contact form is the primary action on this page. */
.banlulu-contact-intro__routes,
.banlulu-contact-intro__guide { display: none; }
.f-contact-form > .container { width: min(1600px, calc(100% - 64px)); max-width: none; }
.f-contact-form .f-contact-form__main { flex: 1 1 auto; width: 100%; max-width: none; }
.f-contact-form .f-row { align-items: flex-start; }
.f-contact-form .f-contact-form__heading { font-size: clamp(28px, 3vw, 42px); }
.f-contact-form .f-contact-form__description { max-width: 760px; }
@media (min-width: 990px) {
 .f-contact-form .f-contact-form__main { width: 72%; }
 .f-contact-form .banlulu-contact-image { width: 28%; }
}
@media (max-width: 767px) {
 .banlulu-editorial__inner { width: calc(100% - 32px); }
 .banlulu-editorial__hero-copy,
 .banlulu-editorial__feature-copy,
 .banlulu-contact-intro__guide-copy { padding-left: 20px; padding-right: 20px; }
 .f-contact-form > .container { width: calc(100% - 32px); }
 .f-contact-form .f-contact-form__main,
 .f-contact-form .banlulu-contact-image { width: 100%; }
}
/* Final responsive and density pass for 4377. */
.banlulu-editorial__hero { min-height: 0; }
.banlulu-editorial__hero-media { min-height: 480px; max-height: 620px; }
.banlulu-editorial__hero-copy { min-width: 0; }
.banlulu-editorial__hero-copy > p { max-width: 760px; }
.banlulu-editorial__feature-copy { min-width: 0; }
.banlulu-editorial__feature-copy > p { max-width: 760px; }
.banlulu-editorial__feature { min-height: 460px; }
/* Keep informational columns visually balanced even when copy lengths differ. */
.banlulu-editorial__value-grid { align-items: stretch; }
.banlulu-editorial__value { min-height: 170px; }
.banlulu-editorial__value p { max-width: 260px; }
/* Link interaction: readable gap plus a single animated underline. */
#f-theme :is(.f-button--link,.f-link-underline,.f-section__description a,.rte a:not(.spr-summary-actions-newreview)) { text-decoration: none; position: relative; padding-bottom: 4px; }
#f-theme :is(.f-button--link,.f-link-underline,.f-section__description a,.rte a:not(.spr-summary-actions-newreview))::before { content: ""; display: block; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px; background: currentColor; transform: scaleX(.32); transform-origin: left center; transition: transform .28s ease, height .28s ease; }
#f-theme :is(.f-button--link,.f-link-underline,.f-section__description a,.rte a:not(.spr-summary-actions-newreview)):hover::before,
#f-theme :is(.f-button--link,.f-link-underline,.f-section__description a,.rte a:not(.spr-summary-actions-newreview)):focus-visible::before { transform: scaleX(1); height: 2px; }
/* Preview control stays at the side and clears the floating contact/back-to-top controls. */
#f-theme banlulu-subscription .bl-sub__preview { position: fixed; right: 16px; bottom: 112px; width: 300px; max-width: calc(100vw - 32px); margin: 0; z-index: 48; }
#f-theme .banlulu-categories .f-collection-card__info { min-height: 112px; display: flex; flex-direction: column; justify-content: flex-start; }
#f-theme .banlulu-categories .f-collection-card__description { min-height: 40px; }
@media (min-width:990px) {
 .banlulu-contact-intro__hero-media { min-height: 420px; max-height: 560px; }
 .banlulu-contact-intro__hero-copy { padding-top: 52px; padding-bottom: 52px; }
 .banlulu-contact-intro + .f-contact-form { margin-top: 0; }
}
@media (max-width:767px) {
 .banlulu-editorial__hero-media { min-height: 0; max-height: none; height: 270px; }
 .banlulu-editorial__hero-copy { min-height: 0; padding-top: 28px; padding-bottom: 32px; }
 .banlulu-editorial h1 { font-size: 32px; line-height: 1.12; }
 .banlulu-editorial__hero-copy > p { font-size: 15px; line-height: 1.55; }
 .banlulu-editorial__links { gap: 8px; }
 .banlulu-editorial__link { min-height: 40px; padding: 8px 10px; font-size: 14px; }
 .banlulu-editorial__feature { min-height: 0; }
 .banlulu-editorial__feature-media { min-height: 260px; height: 260px; }
 .banlulu-editorial__feature-copy { padding-top: 30px; padding-bottom: 34px; }
 .banlulu-editorial__value { min-height: 0; }
 .banlulu-contact-intro__hero-media { height: 250px; max-height: 250px; }
 .banlulu-contact-intro__hero-copy { padding-top: 26px; padding-bottom: 28px; }
 #f-theme .banlulu-categories .f-mixed-layout__inner > .m\:column { flex: 0 0 78vw; min-width: 78vw; }
 #f-theme .banlulu-categories .f-collection-card__info { min-height: 100px; }
 #f-theme banlulu-subscription .bl-sub__preview { right: 12px; bottom: 92px; width: 280px; }
}
/* 4377 correction: mobile rules must win over the desktop split layout. */
.banlulu-editorial__hero { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.banlulu-contact-intro__hero { grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr); }
@media (max-width:989px) {
 .banlulu-editorial__hero,
 .banlulu-contact-intro__hero { grid-template-columns: 1fr; }
}
@media (max-width:767px) {
 .banlulu-editorial__hero,
 .banlulu-contact-intro__hero { display: grid; grid-template-columns: 1fr; }
 .banlulu-editorial__hero-media,
 .banlulu-contact-intro__hero-media { order: 1; width: 100%; height: 270px; min-height: 270px; max-height: 270px; }
 .banlulu-editorial__hero-copy { order: 2; width: 100%; }
 .banlulu-contact-intro__hero-copy { order: 2; width: 100%; }
 .banlulu-contact-intro__hero-media img { object-position: center; }
}
/* Equalize the information cards without leaving the row ragged. */
.banlulu-values .f-icon-box__content,
.banlulu-product-values .f-icon-box__content { min-height: 138px; }
.banlulu-values .f-icon-box__heading,
.banlulu-product-values .f-icon-box__heading { min-height: 2.6em; }
.banlulu-values .f-icon-box__description,
.banlulu-product-values .f-icon-box__description { min-height: 3.2em; }
/* Give split text panels a visual surface and use the available width. */
.banlulu-material-edit .f-image-with-text__content,
.banlulu-story-edit .f-image-with-text__content { background: linear-gradient(135deg,#f1f4f0 0%,#e6eeea 100%); padding: clamp(28px,5vw,80px); }
.banlulu-material-edit .f-content-box,
.banlulu-story-edit .f-content-box { width: 100%; max-width: 760px; }
.banlulu-material-edit .f-content-box__description,
.banlulu-story-edit .f-content-box__description { max-width: 680px; }
.banlulu-material-edit .f-content-box::after,
.banlulu-story-edit .f-content-box::after { content: ""; display: block; width: min(220px,35%); height: 1px; margin-top: 34px; background: #9a3f24; opacity: .65; }
/* Remove the FAQ's unused side space when no menu is configured. */
.f-faqs-section__content { width: 100%; max-width: 1120px; margin-inline: auto; }
.f-faqs-section .f-collapsible--button { padding-inline: 0; }
/* Apply the underline interaction in preview mode and on every page. */
:is(.f-button--link,.f-link-underline,.f-section__description a,.rte a:not(.spr-summary-actions-newreview)) { text-decoration: none; position: relative; padding-bottom: 5px; }
:is(.f-button--link,.f-link-underline,.f-section__description a,.rte a:not(.spr-summary-actions-newreview))::before { content: ""; display: block; position: absolute; left: 0; bottom: 0; width: 100%; height: 1px; background: currentColor; transform: scaleX(.25); transform-origin: left center; transition: transform .3s ease,height .3s ease; }
:is(.f-button--link,.f-link-underline,.f-section__description a,.rte a:not(.spr-summary-actions-newreview)):hover::before,
:is(.f-button--link,.f-link-underline,.f-section__description a,.rte a:not(.spr-summary-actions-newreview)):focus-visible::before { transform: scaleX(1); height: 2px; }
/* The preview control is a side utility, clear of contact and scroll controls. */
banlulu-subscription .bl-sub__preview { position: fixed; right: 16px; bottom: 104px; left: auto; width: 300px; max-width: calc(100vw - 32px); margin: 0; z-index: 48; }
@media (max-width:767px) { banlulu-subscription .bl-sub__preview { right: 10px; bottom: 86px; width: min(280px,calc(100vw - 20px)); } }
/* Category cards keep descriptions on a common baseline. */
.banlulu-categories .f-collection-card__info { min-height: 116px; display:flex; flex-direction:column; justify-content:flex-start; }
.banlulu-categories .f-collection-card__description { min-height: 40px; line-height:1.4; }
@media (max-width:767px) {
 .banlulu-categories .f-mixed-layout__inner { display:flex !important; gap:12px; }
 .banlulu-categories .f-mixed-layout__inner > .m\:column { flex:0 0 78vw !important; width:78vw !important; min-width:78vw !important; }
 .banlulu-categories .f-collection-card__info { position:static; min-height:94px; padding:10px; }
 .banlulu-categories .f-collection-card__description { min-height:36px; font-size:13px; }
}
@media (max-width:767px) {
 .banlulu-editorial__hero,
 .banlulu-contact-intro__hero { grid-template-columns: 1fr !important; display:grid !important; }
 .banlulu-editorial__hero-media,
 .banlulu-contact-intro__hero-media { grid-column:1 / -1 !important; width:100% !important; height:270px !important; min-height:270px !important; max-height:270px !important; }
 .banlulu-editorial__hero-copy,
 .banlulu-contact-intro__hero-copy { grid-column:1 / -1 !important; width:100% !important; height:auto !important; min-height:0 !important; }
 banlulu-subscription .bl-sub__preview { position:fixed !important; right:10px !important; left:auto !important; bottom:86px !important; width:min(280px,calc(100vw - 20px)) !important; }
}

/* 4377 mobile hero repair: keep the image above the copy on narrow touch layouts. */
@media screen and (max-width: 1200px) {
  .banlulu-editorial__hero,
  .banlulu-contact-intro__hero {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
  }
  .banlulu-editorial__hero-media,
  .banlulu-contact-intro__hero-media,
  .banlulu-editorial__hero-copy,
  .banlulu-contact-intro__hero-copy {
    order: initial !important;
    width: 100% !important;
    min-width: 0 !important;
    grid-column: auto !important;
  }
  .banlulu-editorial__hero-media,
  .banlulu-contact-intro__hero-media {
    height: 270px !important;
    min-height: 270px !important;
    max-height: 270px !important;
  }
  .banlulu-editorial__hero-media,
  .banlulu-contact-intro__hero-media { order: 1 !important; }
  .banlulu-editorial__hero-copy,
  .banlulu-contact-intro__hero-copy { order: 2 !important; }
}
