/* ==========================================================================
   Farmers Market B2B – main stylesheet
   Recreates the LadiPage design (960px desktop canvas) with responsive CSS.
   Colours come from CSS variables injected by functions.php (Customizer).
   ========================================================================== */

/* ---------- Fonts ---------- */
@font-face { font-family: 'Red Rose'; src: url('../fonts/RedRose-SemiBold.ttf') format('truetype'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Red Rose'; src: url('../fonts/RedRose-Bold.ttf') format('truetype'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'SVN-Jeko'; src: url('../fonts/SVN-Jeko-Regular.otf') format('opentype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'SVN-Jeko'; src: url('../fonts/SVN-Jeko-Medium.otf') format('opentype'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'SVN-Jeko'; src: url('../fonts/SVN-Jeko-SemiBold.otf') format('opentype'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'SVN-Jeko'; src: url('../fonts/SVN-Jeko-Bold.otf') format('opentype'); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'SVN-Jeko'; src: url('../fonts/SVN-Jeko-ExtraBold.otf') format('opentype'); font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: 'SVN-Jeko'; src: url('../fonts/SVN-Jeko-Black.otf') format('opentype'); font-weight: 900; font-style: normal; font-display: swap; }
/* Alias registered as weight 400 so that requesting bold triggers the browser's synthetic bold –
   exactly how the original LadiPage renders the form "TƯ VẤN NGAY" buttons (Jeko Black + font-weight: bold). */
@font-face { font-family: 'SVN-Jeko Black'; src: url('../fonts/SVN-Jeko-Black.otf') format('opentype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Samsung Sharp Sans SC'; src: url('../fonts/iCiel-SamsungSharpSans-Bold-SmCps.ttf') format('truetype'); font-weight: 700; font-style: normal; font-display: swap; }

/* ---------- Tokens ---------- */
:root {
  --fm-red: #ac080e;
  --fm-gold: #d6a346;
  --fm-gold-dark: #966100;
  --fm-gold-pale: #ffe99a;
  --fm-cream: #fff6e9;
  --fm-cream-light: #fefbf2;
  --fm-gold-bg: #c79640;
  --fm-img: '';

  --fm-font-display: 'Red Rose', 'Times New Roman', serif;
  --fm-font-body: 'SVN-Jeko', 'Mulish', Arial, sans-serif;
  --fm-font-price: 'Samsung Sharp Sans SC', 'SVN-Jeko', sans-serif;

  --fm-grad-gold-text: linear-gradient(#ffec9e 0%, #e7be61 100%);
  --fm-grad-gold-box: linear-gradient(90deg, #e6c067 20%, #fae496 100%);
  --fm-grad-gold-radial: radial-gradient(circle at 17% -34%, #ffe99a 10%, #b67709 100%);

  --fm-container: 960px;
  --fm-radius: 12px;
  --fm-radius-lg: 20px;
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--fm-font-body);
  font-size: 16px;
  line-height: 1.4;
  color: var(--fm-gold-dark);
  background: var(--fm-cream-light);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
ul { margin: 0; padding: 0; list-style: none; }
p, h1, h2, h3, h4 { margin: 0; }
button { font: inherit; cursor: pointer; border: 0; background: none; color: inherit; }
input, select, textarea { font: inherit; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link:focus { position: fixed; left: 8px; top: 8px; z-index: 100000; width: auto; height: auto; clip: auto; padding: 8px 12px; background: var(--fm-red); color: #fff; border-radius: 6px; }

.fm-site { overflow: hidden; position: relative; }
.fm-container { width: 100%; max-width: var(--fm-container); margin: 0 auto; position: relative; z-index: 2; }
@media (max-width: 991px) { .fm-container { padding-left: 16px; padding-right: 16px; } }

/* ---------- Utilities ---------- */
.fm-gold-text {
  background-image: var(--fm-grad-gold-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: var(--fm-gold-pale);
}

.fm-divider { display: block; width: 171px; height: 18px; margin: 6px auto 10px; background: center / contain no-repeat; }
.fm-divider--gold { background-image: url('../img/divider-gold.png'); }
.fm-divider--white { background-image: url('../img/divider-white.png'); width: 142px; height: 15px; }
.fm-divider--cream { background-image: url('../img/divider-cream.png'); width: 103px; height: 10px; margin: 4px auto 6px; }
.fm-divider--gold-line { background-image: url('../img/divider-gold.png'); width: 100%; height: 14px; margin: 4px 0 0; }

.fm-star-line { display: inline-block; width: 64px; height: 12px; vertical-align: middle; background: url('../img/divider-cream-star.png') center / contain no-repeat; margin: 0 8px; }
.fm-star-line:last-child { transform: scaleX(-1); }

/* Buttons – faithful to the LadiPage original: flat red, pale-gold text, no hover effect,
   "pulse" animation once the button scrolls into view (see .js-pulse). */
.fm-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  box-sizing: border-box; width: 227.5px; height: 48px; padding: 0 10px; border-radius: 12px;
  font-family: var(--fm-font-body); font-weight: 900; font-size: 23px; line-height: 1; letter-spacing: 0;
  white-space: nowrap; text-align: center;
  position: relative; overflow: hidden; -webkit-tap-highlight-color: transparent;
}
.fm-btn > span { display: block; line-height: 1; }
.fm-btn:active { transform: translateY(2px); transition: transform .2s linear; }
.fm-btn--red { background: var(--fm-red); color: var(--fm-gold-pale); }
.fm-btn--red > span { color: var(--fm-gold-pale); }
.fm-btn--outline { border: 2px solid var(--fm-gold-pale); }
/* Original centres "&nbsp; &nbsp; TẢI CATALOGUE" (≈25px of leading spaces) inside a 261.6px box. */
.fm-btn--icon { width: 261.6px; height: 49px; font-weight: 800; padding: 0 0 0 25.2px; }
.fm-btn--icon img { position: absolute; left: 14.7px; top: 50%; width: 24.6px; height: 23px; margin-top: -11.5px; object-fit: contain; }
.fm-btn--submit { width: 232.7px; height: 52px; border-radius: 61px; margin: 18px auto 0; display: flex; }
.fm-btn--submit > span { font-family: 'SVN-Jeko Black', var(--fm-font-body); font-weight: 700; }
.fm-btn--xl { width: 259px; height: 45px; border-radius: 100px; border: 1px solid var(--fm-gold-pale); }
.fm-btn__star { display: none; width: 22px; height: 22px; object-fit: contain; flex: 0 0 auto; }

/* ---------- Pulse animation – copied 1:1 from the original LadiPage CSS ----------
   #BUTTON35.ladi-animation > .ladi-button, … {
     animation-name: pulse; animation-delay: 0s; animation-duration: 1s; animation-iteration-count: infinite;
   }
   .ladi-animation-hidden { visibility: hidden !important; opacity: 0 !important; }   */
@-webkit-keyframes pulse {
  0%   { -webkit-transform: scale(1); transform: scale(1); }
  50%  { -webkit-transform: scale(1.1); transform: scale(1.1); }
  100% { opacity: 1; -webkit-transform: scale(1); transform: scale(1); }
}
@keyframes pulse {
  0%   { -webkit-transform: scale(1); -ms-transform: scale(1); transform: scale(1); }
  50%  { -webkit-transform: scale(1.1); -ms-transform: scale(1.1); transform: scale(1.1); }
  100% { opacity: 1; -webkit-transform: scale(1); -ms-transform: scale(1); transform: scale(1); }
}
/* hidden until the button scrolls into view (JS adds .is-in) */
.fm-js .js-pulse:not(.is-in) { visibility: hidden !important; opacity: 0 !important; pointer-events: none !important; }
.js-pulse.is-in {
  -webkit-animation-name: pulse; animation-name: pulse;
  -webkit-animation-delay: 0s; animation-delay: 0s;
  -webkit-animation-duration: 1s; animation-duration: 1s;
  -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite;
}
@media (prefers-reduced-motion: reduce) {
  .fm-js .js-pulse:not(.is-in) { visibility: visible !important; opacity: 1 !important; pointer-events: auto !important; }
  .js-pulse.is-in { animation: none; }
}

/* Bullets */
.fm-bullets li { position: relative; padding-left: 22px; }
.fm-bullets li + li { margin-top: .9em; }
.fm-bullets--dot li::before { content: ''; position: absolute; left: 4px; top: .55em; width: 5.5px; height: 5.5px; border-radius: 50%; background: var(--fm-gold-dark); }
.fm-bullets--star li::before { content: ''; position: absolute; left: 0; top: .22em; width: 12px; height: 12px; background: url('../img/star-gold.png') center / contain no-repeat; }

/* Section heading */
.fm-heading { text-align: center; margin: 0 auto 22px; max-width: 760px; }
.fm-heading__title { font-family: var(--fm-font-display); font-weight: 700; font-size: 30px; line-height: 1.1; color: var(--fm-red); text-transform: uppercase; }
.fm-heading__sub { font-family: var(--fm-font-display); font-weight: 600; font-size: 16px; line-height: 1.1; color: var(--fm-gold-dark); }
.fm-heading--light .fm-heading__title, .fm-heading--light .fm-heading__sub { color: var(--fm-cream-light); }
.fm-heading--light .fm-heading__sub { font-size: 20px; margin-top: 2px; }
.fm-heading--stars .fm-heading__title { display: inline-flex; align-items: center; gap: 14px; }
.fm-heading--stars .fm-heading__title::before, .fm-heading--stars .fm-heading__title::after { content: ''; width: 87px; height: 16px; background: url('../img/divider-white-star.png') center / contain no-repeat; }
.fm-heading--stars .fm-heading__title::after { transform: scaleX(-1); }
.fm-heading--stars .fm-heading__sub { margin-top: 10px; }

/* Generic section */
.fm-section { position: relative; padding: 38px 0 60px; background: var(--fm-cream-light) url('../img/bg-diamond.png') center top / 1472px auto repeat-y; }
.fm-section__corners { position: absolute; inset: 96px 0 auto 0; height: 183px; pointer-events: none; }
.fm-corner { position: absolute; top: 0; width: 183px; height: 183px; background: center / contain no-repeat; }
.fm-corner--l { left: calc(50% - 480px - 479px); background-image: url('../img/corner-left.png'); }
.fm-corner--r { left: calc(50% + 480px + 295px); background-image: url('../img/corner-right.png'); }

/* Stripes */
.fm-stripe { width: 100%; background-repeat: repeat-x; background-position: center; position: relative; }
.fm-stripe--top { height: 40px; background-image: url('../img/stripe-top.png'); background-size: auto 100%; }
.fm-stripe--top::before, .fm-stripe--top::after { content: ''; position: absolute; top: 0; width: 39px; height: 40px; background: url('../img/stripe-star.png') center / 100% 100% no-repeat; display: none; }
.fm-stripe--top::before { left: 0; }
.fm-stripe--top::after { right: 0; }
@media (min-width: 1600px) { .fm-stripe--top::before, .fm-stripe--top::after { display: block; } }
.fm-stripe--red { height: 42px; background-image: url('../img/stripe-red.webp'); background-size: auto 100%; }
.fm-stripe--bottom { height: 47px; background-image: url('../img/stripe-footer.png'); background-size: 1920px 100%; }

/* ==========================================================================
   HERO
   ========================================================================== */
.fm-hero { position: relative; background: var(--fm-cream); overflow: hidden; }
.fm-hero__deco { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.fm-hero__deco img, .fm-hero__diamond { position: absolute; }
.fm-hero__diamond { width: 494px; height: 494px; border: 2px solid #f1f3f4; background: #fff; transform: rotate(-45deg); }
.fm-hero__diamond--l { left: calc(50% - 480px - 793px); top: -295px; }
.fm-hero__diamond--r { left: calc(50% + 480px + 244px); top: -338px; }
.fm-hero__music { width: 339px; top: 101px; }
.fm-hero__music--l { left: calc(50% - 480px - 339px); }
.fm-hero__music--r { left: calc(50% + 480px); }
.fm-hero__building { display: none; }
.fm-hero__mountain-gold { width: 653px; left: calc(50% - 480px - 572px); top: 525px; }
.fm-hero__goat { width: 244px; left: calc(50% - 480px - 339px); top: 432px; }
.fm-hero__girl { width: 116px; left: calc(50% - 480px - 275px); top: 361px; }
.fm-hero__tower { width: 516px; left: calc(50% + 480px + 107px); top: 380px; }
.fm-hero__mountain-pale { width: 258px; left: calc(50% + 480px - 47px); top: 582px; }
.fm-hero__boy { width: 128px; left: calc(50% + 480px + 74px); top: 490px; }

.fm-hero__inner {
  display: flex;
  align-items: flex-start;
  gap: 33px;
  padding: 34px 0 0;
  min-height: 617px;
}
.fm-hero__left { flex: 0 0 597px; display: flex; flex-direction: column; }
.fm-hero__right { flex: 0 0 330px; display: flex; flex-direction: column; align-items: center; padding-top: 6px; }
.fm-hero__top { display: flex; align-items: flex-start; gap: 16px; }
.fm-hero__badge { width: 122px; flex: 0 0 122px; }
.fm-hero__headline { flex: 1; padding-top: 6px; }
.fm-hero__headline img { width: 424px; max-width: 100%; }
.fm-hero__h1 { font-family: var(--fm-font-display); font-weight: 700; line-height: .95; text-transform: uppercase; display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0 14px; }
.fm-hero__h1-main { font-size: 62px; color: var(--fm-red); max-width: 300px; }
.fm-hero__h1-sub { font-size: 24px; color: var(--fm-gold-dark); letter-spacing: 3px; max-width: 110px; padding-bottom: 6px; }
.fm-hero__tagline { font-family: var(--fm-font-body); font-weight: 500; font-size: 13.5px; letter-spacing: .5px; color: var(--fm-gold-dark); text-transform: uppercase; margin-top: 8px; }
.fm-hero__logo { width: 89px; display: block; margin: 0 0 18px 111px; align-self: flex-start; }
.fm-hero__mascots { display: none; }
/* Two cards side by side on desktop (multi slider with per-view 2 → arrows auto-hidden). */
.fm-hero__cards { --fm-per-view: 2; --fm-slide-gap: 15px; width: 563px; max-width: 100%; margin-top: 48px; }
.fm-hero__cards .fm-slider__arrow { top: 50%; }
.fm-hero__form { width: 100%; }
.fm-hero__mobile-cta { display: none; }

/* Hero cards */
.fm-hcard {
  width: 100%;
  background: var(--fm-red); border: 1px solid var(--fm-gold); border-radius: var(--fm-radius);
  padding: 8px 3px 5px; text-align: center;
}
.fm-hcard__title { font-family: var(--fm-font-body); font-weight: 800; font-size: 16px; line-height: 1.2; color: var(--fm-cream); text-transform: uppercase; min-height: 38px; display: flex; align-items: center; justify-content: center; }
.fm-hcard__sub { font-size: 10px; line-height: 1.1; color: var(--fm-gold-pale); min-height: 22px; }
.fm-hcard__img { margin-top: 7px; background: #fff; border: 1px solid var(--fm-gold); border-radius: var(--fm-radius); padding: 3px; height: 203px; overflow: hidden; }
.fm-hcard__img img { width: 100%; height: 100%; object-fit: cover; border-radius: 10px; }

/* Form box (hero, contact, popup) */
.fm-formbox { background: var(--fm-red); border: 1px solid var(--fm-gold); border-radius: 18px; padding: 10px 5px 5px; width: 100%; max-width: 330px; margin: 0 auto; }
.fm-formbox__head { text-align: center; padding: 2px 0 6px; }
.fm-formbox__title { font-family: var(--fm-font-body); font-weight: 700; font-size: 16px; line-height: 1.2; color: var(--fm-cream); }
.fm-formbox__head .fm-divider--white { width: 120px; height: 12px; margin: 4px auto 0; }
.fm-discount { display: flex; align-items: center; justify-content: center; gap: 10px; margin-top: 2px; }
.fm-discount__label { font-family: var(--fm-font-display); font-weight: 700; font-size: 20px; line-height: 1.1; text-align: right; text-transform: uppercase; max-width: 130px; }
.fm-discount__value { font-family: var(--fm-font-display); font-weight: 700; font-size: 65px; line-height: 1; background-image: radial-gradient(circle at 29% 73%, #ffec9e 0%, #e7be61 100%); }
.fm-formbox__body { background: var(--fm-cream); border-radius: 16px; padding: 14px 10px 0; }
.fm-formbox--popup { max-width: 358px; border: 2px solid #ffec9e; }
.fm-formbox--popup .fm-discount__label { font-size: 25px; max-width: 170px; }
.fm-formbox--popup .fm-discount__value { font-size: 90px; }
.fm-formbox--popup .fm-btn--submit { width: 256px; height: 48px; }
/* The submit button straddles the bottom edge of the box, as on the original. */
.fm-formbox .fm-btn--submit { margin: 6px auto -22px; position: relative; z-index: 2; }
.fm-formbox { margin-bottom: 22px; }

/* Form */
.fm-form { display: flex; flex-direction: column; gap: 10px; }
.fm-form__hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.fm-field { position: relative; }
.fm-field::before { content: ''; position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; background: center / contain no-repeat; pointer-events: none; }
.fm-field--user::before { background-image: url('../img/icon-user.png'); }
.fm-field--phone::before { background-image: url('../img/icon-phone.png'); }
.fm-field--mail::before { background-image: url('../img/icon-mail.png'); width: 21px; height: 18px; }
.fm-field--gift::before { background-image: url('../img/icon-gift-gold.png'); width: 18px; height: 17px; }
.fm-field--company::before { background-image: url('../img/icon-company.png'); width: 19px; height: 19px; }
.fm-field--chat::before { background-image: url('../img/icon-chat.png'); width: 18px; height: 15px; }
.fm-field input, .fm-field select {
  width: 100%; height: 36px; padding: 0 14px 0 44px;
  border: 1px solid var(--fm-gold); border-radius: 20px; background: #fff;
  font-family: var(--fm-font-body); font-weight: 500; font-size: 13px; color: var(--fm-gold-dark);
  outline: none; -webkit-appearance: none; appearance: none;
}
.fm-field input::placeholder { color: var(--fm-gold-dark); opacity: 1; }
.fm-field input:focus, .fm-field select:focus { border-color: var(--fm-red); box-shadow: 0 0 0 2px rgba(172, 8, 14, .12); }
.fm-field--select::after { content: ''; position: absolute; right: 16px; top: 50%; width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-top: 7px solid var(--fm-gold-dark); transform: translateY(-50%); pointer-events: none; }
.fm-field select { cursor: pointer; }
.fm-field.is-invalid input { border-color: #e01a1a; background: #fff5f5; }
.fm-form__msg { display: none; font-size: 13px; line-height: 1.3; text-align: center; padding: 6px 8px; border-radius: 8px; }
.fm-form__msg.is-error { display: block; color: #b00020; background: #ffe9e9; }
.fm-form__msg.is-success { display: block; color: #1f6b2a; background: #e7f6e9; font-weight: 600; }
.fm-form.is-sent .fm-field, .fm-form.is-sent .fm-btn--submit { display: none; }
.fm-form.is-sent .fm-form__msg { margin-bottom: 14px; }
.fm-form.is-sending .fm-btn--submit { opacity: .6; pointer-events: none; }

/* ==========================================================================
   USP BAR
   ========================================================================== */
.fm-usp {
  position: relative;
  background: linear-gradient(rgba(196, 148, 63, .92), rgba(196, 148, 63, .92)), url('../img/bg-diamond.png') center / 1200px auto;
  color: var(--fm-cream);
  min-height: 142px;
  display: flex; align-items: center;
}
.fm-usp__bird { position: absolute; width: 43px; top: 2px; left: calc(50% + 480px - 20px); }
.fm-usp__list { display: grid; grid-template-columns: auto auto auto auto; justify-content: space-between; align-items: center; padding: 24px 0; }
.fm-usp__item { display: flex; align-items: center; gap: 10px; padding: 0 22px; min-height: 62px; white-space: nowrap; }
.fm-usp__item:first-child { padding-left: 0; }
.fm-usp__item:last-child { padding-right: 0; }
.fm-usp__item + .fm-usp__item { border-left: 1.5px solid var(--fm-cream-light); }
.fm-usp__icon { width: 30px; height: 30px; flex: 0 0 30px; object-fit: contain; }
.fm-usp__title { display: block; font-family: var(--fm-font-display); font-weight: 600; font-size: 16px; line-height: 1.1; letter-spacing: 1px; text-transform: uppercase; }
.fm-usp__sub { display: block; font-weight: 500; font-size: 10px; line-height: 1.3; letter-spacing: 2px; text-transform: uppercase; margin-top: 3px; }

/* ==========================================================================
   PACKAGING CARDS
   ========================================================================== */
/* Three cards side by side (multi slider per-view 3 → arrows auto-hidden); 1-per-view carousel on mobile. */
.fm-packaging__grid { --fm-per-view: 3; --fm-slide-gap: 15px; }
.fm-packaging__grid.fm-cols-1 { --fm-per-view: 1; max-width: 320px; margin: 0 auto; }
.fm-packaging__grid.fm-cols-2 { --fm-per-view: 2; max-width: 655px; margin: 0 auto; }
.fm-packaging__grid .fm-slider__slide { display: flex; }
.fm-pcard { width: 100%; background: var(--fm-red); border: 1px solid var(--fm-gold); border-radius: var(--fm-radius); display: flex; flex-direction: column; min-height: 545px; }
.fm-pcard__head { height: 110px; text-align: center; padding: 14px 6px 0; }
.fm-pcard__title { font-family: var(--fm-font-display); font-weight: 700; font-size: 30px; line-height: 1.1; color: var(--fm-cream); text-transform: uppercase; }
.fm-pcard__line { display: flex; align-items: center; justify-content: center; gap: 4px; white-space: nowrap; }
.fm-pcard__title .fm-star-line { width: 44px; height: 9px; margin: 0; flex: 0 1 44px; min-width: 0; }
.fm-pcard__sub { font-size: 10px; line-height: 1.6; letter-spacing: 2px; color: var(--fm-gold-pale); text-transform: uppercase; margin-top: 2px; }
.fm-pcard__body { flex: 1; margin: 0 4px 4px; background: #fff; border: 1px solid var(--fm-gold); border-radius: var(--fm-radius); padding: 4px 4px 20px; }
.fm-pcard__img { border-radius: 10px; overflow: hidden; aspect-ratio: 293 / 221; }
.fm-pcard__img img { width: 100%; height: 100%; object-fit: cover; }
.fm-pcard .fm-bullets { margin: 26px 10px 0 10px; font-weight: 500; font-size: 14px; line-height: 1.2; }
.fm-pcard .fm-bullets li + li { margin-top: 14px; }

/* ==========================================================================
   CTA + CATALOGUE BANNERS
   ========================================================================== */
.fm-cta, .fm-catalogue {
  position: relative;
  min-height: 115px;
  border-radius: 12px; border: 1px solid var(--fm-gold);
  background: #fbe6a8 url('../img/bg-banner-gold.png') center / cover no-repeat;
  overflow: hidden;
}
.fm-cta { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 0 70px 0 68px; margin-top: 47px; }
.fm-cta__banner { display: contents; }
.fm-cta__text { font-family: var(--fm-font-display); font-weight: 700; font-size: 25px; line-height: 1.1; color: var(--fm-red); text-transform: uppercase; max-width: 280px; }
.fm-cta__value { font-family: var(--fm-font-display); font-weight: 700; font-size: 130px; line-height: 1; color: var(--fm-red); letter-spacing: -2px; margin-top: -6px; }
.fm-cta .fm-btn { width: 227.5px; height: 48px; }

.fm-catalogue { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; padding: 13px 20px 12px; margin: 6px 0; }
.fm-catalogue__title { font-family: var(--fm-font-display); font-weight: 700; font-size: 30px; line-height: 1.1; color: var(--fm-red); text-transform: uppercase; }
.fm-catalogue .fm-btn { width: 261.6px; height: 49px; }

/* ==========================================================================
   CONCEPT / PRODUCT CARDS
   ========================================================================== */
.fm-cards { display: flex; flex-direction: column; gap: 50px; }
.fm-ccard {
  position: relative;
  display: grid; grid-template-columns: 468px minmax(0, 1fr);
  min-height: 421px;
  background: #fff; border: 2px solid var(--fm-gold); border-radius: var(--fm-radius-lg);
}
.fm-ccard--panel-right { grid-template-columns: minmax(0, 1fr) 468px; }
.fm-ccard--panel-right .fm-ccard__panel { grid-column: 2; grid-row: 1; }
.fm-ccard--panel-right .fm-ccard__content { grid-column: 1; grid-row: 1; }

.fm-ccard__panel { margin: -1px; border-radius: var(--fm-radius-lg); border: 1px solid var(--fm-gold); padding: 14px 7px 7px; text-align: center; display: flex; flex-direction: column; }
.fm-ccard--red .fm-ccard__panel { background: var(--fm-red); }
.fm-ccard--gold .fm-ccard__panel { background: var(--fm-grad-gold-box); }
.fm-ccard__label { font-weight: 400; font-size: 20px; line-height: 1.2; letter-spacing: 5px; text-transform: uppercase; display: flex; align-items: center; justify-content: center; }
.fm-ccard__label .fm-star-line { width: 98px; height: 18px; background-image: url('../img/divider-gold-star.png'); margin: 0 6px; }
.fm-ccard--red .fm-ccard__label { color: var(--fm-gold-pale); }
.fm-ccard--gold .fm-ccard__label { color: var(--fm-gold-dark); }
.fm-ccard__name { font-family: var(--fm-font-display); font-weight: 700; font-size: 40px; line-height: 1.2; text-transform: uppercase; margin: 4px 0 8px; min-height: 48px; display: flex; align-items: center; justify-content: center; text-wrap: balance; }
.fm-ccard__name--long { font-size: 35px; }
.fm-ccard--gold .fm-ccard__name { color: var(--fm-red); }
.fm-products .fm-ccard__name { font-size: 35px; margin-top: 10px; min-height: 84px; padding: 0 20px; }
.fm-ccard__media { margin-top: auto; background: #fff; border: 1px solid var(--fm-gold); border-radius: var(--fm-radius-lg); padding: 3px; height: 314px; overflow: hidden; }
.fm-ccard__media > img, .fm-ccard__media > a > img { width: 100%; height: 100%; object-fit: cover; border-radius: 17px; }
.fm-ccard__media > a { display: block; height: 100%; }

.fm-ccard__content { position: relative; padding: 50px 18px 30px 10px; display: flex; flex-direction: column; }
.fm-ccard--panel-right .fm-ccard__content { padding: 50px 30px 30px 27px; }
.fm-ccard__content .fm-bullets { font-weight: 500; font-size: 18px; line-height: 1.2; text-align: justify; }
.fm-ccard__content .fm-bullets li { padding-left: 23px; }
.fm-ccard__content .fm-bullets li + li { margin-top: 20px; }
.fm-price {
  display: inline-flex; align-items: baseline; gap: 8px; align-self: flex-start;
  margin: 46px 0 40px 21px; min-height: 52px; padding: 0 22px 0 20px;
  border-radius: 12px; border: 1px solid var(--fm-gold);
  font-family: var(--fm-font-price); font-weight: 700; letter-spacing: 1px; white-space: nowrap;
  line-height: 52px;
}
.fm-ccard--red .fm-price { background: var(--fm-red); color: var(--fm-gold-pale); }
.fm-ccard--gold .fm-price { background: var(--fm-grad-gold-box); color: var(--fm-gold-dark); }
.fm-ccard--panel-right .fm-price { margin-left: 70px; }
.fm-price__value { font-size: 30px; }
.fm-price__unit { font-size: 20px; letter-spacing: 0; }

.fm-ccard__mascot { position: absolute; bottom: 0; right: 0; pointer-events: none; }
.fm-ccard__mascot--flower-yellow { width: 79px; right: 0; bottom: -14px; }
.fm-ccard__mascot--goat-music { width: 117px; right: 16px; bottom: 0; }
.fm-ccard__mascot--girl-trumpet { width: 111px; right: 17px; bottom: 0; }
.fm-ccard__mascot--boy-drum { width: 102px; left: 19px; right: auto; bottom: -4px; }
.fm-ccard__mascot--flower-pink { width: 72px; left: -4px; right: auto; bottom: -2px; }
.fm-ccard--panel-right .fm-ccard__content::after { content: ''; position: absolute; left: 13px; bottom: 0; width: 146px; height: 46px; background: url('../img/mountain-pale.png') center bottom / contain no-repeat; pointer-events: none; z-index: 0; }
.fm-ccard--panel-right .fm-ccard__mascot { z-index: 1; }
.fm-ccard--panel-left .fm-ccard__content::after { display: none; }

/* Slider */
.fm-slider { position: relative; overflow: hidden; height: 100%; border-radius: 17px; }
.fm-slider__track { display: flex; height: 100%; transition: transform .35s ease-in-out; will-change: transform; }
.fm-slider__slide { flex: 0 0 100%; min-width: 0; height: 100%; }
.fm-slider__slide img { width: 100%; height: 100%; object-fit: cover; }
/* Arrows – same SVG icons as the original LadiPage carousels (gold circle-chevron / gold caret). */
.fm-slider__arrow {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 3;
  width: 33px; height: 33px; padding: 0; border: 0; background: transparent center / 33px 33px no-repeat;
  cursor: pointer; -webkit-tap-highlight-color: transparent;
}
.fm-slider__arrow::before { display: none; }
.fm-slider__arrow--prev { left: 5px; transform: translateY(-50%) rotateY(180deg); }
.fm-slider__arrow--next { right: 5px; }
.fm-slider__arrow[disabled] { opacity: .35; cursor: default; }
.fm-slider__arrow {
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1536 1896.0833' fill='%23EDCF7E'%3E%3Cpath d='M717 1395l454-454q19-19 19-45t-19-45L717 397q-19-19-45-19t-45 19L525 499q-19 19-19 45t19 45l307 307-307 307q-19 19-19 45t19 45l102 102q19 19 45 19t45-19zm819-499q0 209-103 385.5T1153.5 1561 768 1664t-385.5-103T103 1281.5 0 896t103-385.5T382.5 231 768 128t385.5 103T1433 510.5 1536 896z'/%3E%3C/svg%3E");
}
.fm-slider__arrow--light {
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1408 1896.0833' fill='%23E2B971'%3E%3Cpath d='M1384 927L56 1665q-23 13-39.5 3T0 1632V160q0-26 16.5-36t39.5 3l1328 738q23 13 23 31t-23 31z'/%3E%3C/svg%3E");
}
.fm-slider--multi { height: auto; border-radius: 0; overflow: visible; }
.fm-slider--multi .fm-slider__viewport { overflow: hidden; }
.fm-slider--multi .fm-slider__track { height: auto; gap: var(--fm-slide-gap, 17px); }
.fm-slider--multi .fm-slider__slide { flex: 0 0 calc((100% - (var(--fm-per-view, 6) - 1) * var(--fm-slide-gap, 17px)) / var(--fm-per-view, 6)); height: auto; }
.fm-slider--multi .fm-slider__arrow--prev { left: 5px; }
.fm-slider--multi .fm-slider__arrow--next { right: 5px; }
/* Original desktop hides arrows on the "real photos" carousel (autoplay only). */
.fm-projects .fm-slider__arrow { display: none; }

/* ==========================================================================
   PARTNERS + PROJECTS (gold section)
   ========================================================================== */
.fm-partners {
  background: var(--fm-gold-bg) url('../img/bg-texture-gold.png') center top / 1070px auto repeat;
  padding: 60px 0 70px; overflow: hidden;
}
.fm-partners .fm-heading { margin-bottom: 38px; }
.fm-partners__bird { position: absolute; width: 69px; left: calc(50% - 480px + 891px); top: 407px; pointer-events: none; }
.fm-partners__ray { position: absolute; width: 147px; left: calc(50% - 480px - 498px); top: 754px; pointer-events: none; }
.fm-logos { --fm-per-view: 6; --fm-slide-gap: 17px; margin-bottom: 70px; }
.fm-logo { background: #fff; border-radius: 12px; aspect-ratio: 1 / 1; display: flex; align-items: center; justify-content: center; overflow: hidden; border: 1px solid rgba(255, 255, 255, .6); }
.fm-logo img { width: 100%; height: 100%; object-fit: contain; }
.fm-projects { --fm-per-view: 3; --fm-slide-gap: 30px; }
.fm-project { background: var(--fm-grad-gold-radial); border: 1px solid var(--fm-cream); border-radius: 12px; padding: 10px 12px 12px; min-height: 340px; }
.fm-project__title { font-family: var(--fm-font-display); font-weight: 600; font-size: 20px; line-height: 1; color: var(--fm-gold-dark); text-align: center; text-transform: uppercase; min-height: 44px; display: flex; flex-direction: column; justify-content: center; gap: 2px; }
.fm-project__title span { display: block; }
.fm-project__img { margin-top: 8px; background: #fff; border: 1px solid var(--fm-cream-light); border-radius: 12px; padding: 3px; aspect-ratio: 276 / 267; overflow: hidden; }
.fm-project__img img { width: 100%; height: 100%; object-fit: cover; border-radius: 10px; }

/* ==========================================================================
   REASONS
   ========================================================================== */
.fm-reasons { padding: 0 0 0; min-height: 874px; overflow: hidden; }
.fm-reasons__head { position: relative; padding-top: 42px; min-height: 176px; }
.fm-reasons__badge { position: absolute; left: 0; top: 0; width: 122px; }
.fm-reasons .fm-heading { max-width: 520px; }
.fm-reasons .fm-heading__sub { font-size: 20px; }
.fm-reasons__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 42px; position: relative; z-index: 2; }
.fm-rcard { background: var(--fm-grad-gold-box); border: 1px solid var(--fm-gold); border-radius: 12px; min-height: 339px; display: flex; flex-direction: column; }
.fm-rcard__head { min-height: 62px; text-align: center; padding: 8px 6px 4px; }
.fm-rcard__label { font-weight: 800; font-size: 13px; line-height: 1.6; letter-spacing: 1px; color: var(--fm-gold-dark); text-transform: uppercase; display: flex; align-items: center; justify-content: center; }
.fm-rcard__label .fm-star-line { width: 54px; height: 10px; background-image: url('../img/divider-gold-star.png'); margin: 0 6px; }
.fm-rcard__title { font-family: var(--fm-font-display); font-weight: 700; font-size: 20px; line-height: 1.1; color: var(--fm-red); text-transform: uppercase; }
.fm-rcard__body { flex: 1; margin: 0 4px 4px; background: #fff; border: 1px solid var(--fm-cream-light); border-radius: 12px; padding: 18px 10px 18px 10px; font-weight: 500; font-size: 18px; line-height: 1.1; }
.fm-rcard__body li + li { margin-top: 18px; }
.fm-reasons__opera { position: relative; z-index: 1; margin-top: 12px; display: flex; justify-content: center; }
.fm-reasons__opera img:first-child { width: 710px; max-width: 100%; }
.fm-reasons__bird { position: absolute; width: 69px; left: calc(50% - 480px + 895px); bottom: 20px; }

/* ==========================================================================
   CONTACT
   ========================================================================== */
.fm-contact { background: var(--fm-gold-bg); padding: 50px 0 0; min-height: 558px; overflow: visible; }
.fm-contact__bird { position: absolute; width: 77px; left: calc(50% - 480px + 883px); top: -56px; pointer-events: none; }
.fm-contact__ray { position: absolute; width: 152px; left: calc(50% - 480px - 437px); top: 384px; pointer-events: none; }
.fm-contact__inner { display: grid; grid-template-columns: 600px minmax(0, 1fr); align-items: start; }
.fm-contact__text { text-align: center; padding-top: 10px; }
.fm-contact .fm-heading { max-width: 625px; margin-bottom: 14px; }
.fm-contact__desc { font-size: 18px; line-height: 1.15; letter-spacing: 1px; color: var(--fm-cream-light); max-width: 600px; margin: 0 auto; }
.fm-contact__badge { width: 484px; max-width: 100%; margin: 10px auto 0; }
.fm-contact__form { padding-bottom: 50px; }
.fm-contact .fm-formbox { max-width: 358px; margin-left: auto; margin-right: 0; }
.fm-contact .fm-btn--submit { width: 232px; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.fm-footer { position: relative; background: var(--fm-cream-light); padding-top: 50px; overflow: hidden; color: var(--fm-gold-dark); }
.fm-footer__ray { position: absolute; width: 243px; left: calc(50% - 480px - 500px); top: 142px; pointer-events: none; }
.fm-footer__top { display: flex; align-items: flex-start; gap: 0; }
.fm-footer__logo { width: 117px; flex: 0 0 117px; margin-right: 50px; position: relative; }
.fm-footer__info { position: relative; padding-left: 0; }
.fm-footer__info::before { content: ''; position: absolute; left: -35px; top: 0; height: 170px; border-left: 1px solid var(--fm-gold-dark); }
.fm-footer__info .fm-footer__company { font-family: var(--fm-font-display); font-weight: 700; font-size: 30px; line-height: 1.1; text-transform: uppercase; margin-bottom: 10px; }
.fm-footer__info p { font-size: 16px; line-height: 1.6; }
.fm-footer__rule { border: 0; border-top: 1px solid var(--fm-gold-dark); margin: 36px 0 32px; }
.fm-footer__legal p { font-size: 16px; line-height: 1.5; }
.fm-footer .fm-stripe--bottom { margin-top: 28px; }

/* ==========================================================================
   POPUP
   ========================================================================== */
.fm-popup { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 16px; }
.fm-popup[hidden] { display: none; }
.fm-popup__backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, .55); }
.fm-popup__dialog { position: relative; width: 100%; max-width: 358px; max-height: 100%; overflow: auto; animation: fm-pop .25s ease; }
.fm-popup__close { position: absolute; right: 8px; top: 2px; z-index: 2; width: 32px; height: 32px; font-size: 28px; line-height: 1; color: var(--fm-cream); }
@keyframes fm-pop { from { opacity: 0; transform: translateY(14px) scale(.97); } to { opacity: 1; transform: none; } }
body.fm-popup-open { overflow: hidden; }

/* Generic inner pages */
.fm-generic { padding: 60px 0; }
.fm-article__title { font-family: var(--fm-font-display); color: var(--fm-red); font-size: 32px; margin-bottom: 20px; }
.fm-article__content { line-height: 1.7; }


/* Mobile-only vertical gold stripes along both edges (as on the original mobile page). */
.fm-vstripe { display: none; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1279px) {
  .fm-hero__music--l, .fm-hero__goat, .fm-hero__girl, .fm-hero__mountain-gold { display: none; }
  .fm-hero__music--r, .fm-hero__tower, .fm-hero__boy, .fm-hero__mountain-pale { display: none; }
  .fm-hero__diamond { display: none; }
}

/* ---------- Tablet & below ---------- */
@media (max-width: 991px) {
  :root { --fm-container: 100%; }
  .fm-section__corners, .fm-partners__ray, .fm-contact__ray, .fm-footer__ray, .fm-usp__bird { display: none; }

  /* Hero */
  .fm-hero__inner { flex-direction: column; align-items: center; padding: 18px 16px 36px; min-height: 0; gap: 0; }
  .fm-hero__left { flex: 0 0 auto; width: 100%; align-items: center; order: 2; }
  .fm-hero__right { flex: 0 0 auto; width: 100%; order: 1; padding-top: 0; }
  .fm-hero__logo { width: 112px; margin: 0 0 18px; align-self: center; }
  .fm-hero__top { flex-direction: row; justify-content: center; align-items: center; gap: 14px; width: 100%; max-width: 600px; }
  .fm-hero__badge { width: 104px; flex-basis: 104px; }
  .fm-hero__headline { padding-top: 0; }
  .fm-hero__cards { width: 100%; max-width: 600px; margin-top: 10px; }
  .fm-hcard { padding: 18px 14px 14px; }
  .fm-hcard__title { font-size: 26px; min-height: 0; }
  .fm-hcard__sub { font-size: 15px; line-height: 1.2; margin-top: 6px; min-height: 0; }
  .fm-hcard__img { height: auto; aspect-ratio: 4 / 3; margin-top: 14px; }
  .fm-hero__form { display: none; }
  .fm-hero__mobile-cta { display: flex; justify-content: center; width: 100%; margin-top: 28px; order: 3; }

  /* Mobile illustration: goat + boy on a mountain, buildings & music around (original mobile hero). */
  .fm-hero__mascots { display: block; position: relative; width: 100%; max-width: 420px; height: 200px; margin: 14px auto 0; }
  .fm-hero__mascots img { position: absolute; }
  .fm-hero__m-music { left: -14px; top: 0; width: 107px; }
  .fm-hero__m-star { right: 10px; top: 12px; width: 22px; }
  .fm-hero__m-building { top: 22px; width: 78px; opacity: .95; }
  .fm-hero__m-building--l { left: 0; }
  .fm-hero__m-building--r { right: 0; }
  .fm-hero__m-mountain { left: 50%; top: 150px; width: 190px; transform: translateX(-50%); }
  .fm-hero__m-goat { left: 50%; top: 34px; width: 150px; transform: translateX(-72%); z-index: 1; }
  .fm-hero__m-boy { left: 50%; top: 90px; width: 70px; transform: translateX(45%); z-index: 1; }

  /* USP */
  .fm-usp { min-height: 0; padding: 0 16px; }
  .fm-usp__list { display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding: 18px 0; }
  .fm-usp__item { padding: 14px 10px 14px 12px; border-left: 0 !important; white-space: normal; min-height: 0; }
  .fm-usp__item:nth-child(even) { border-left: 1.5px solid var(--fm-cream-light) !important; }
  .fm-usp__item:nth-child(n+3) { border-top: 1.5px solid var(--fm-cream-light); }
  .fm-usp__title { font-size: 17px; }
  .fm-usp__sub { font-size: 10.5px; }

  /* Headings */
  .fm-heading__title { font-size: 30px; }
  .fm-heading__sub { font-size: 18px; }

  /* Packaging */
  .fm-packaging__grid { --fm-per-view: 2; }
  .fm-packaging__grid.fm-cols-1 { --fm-per-view: 1; }
  .fm-pcard { min-height: 0; }
  .fm-pcard__title { font-size: 30px; }
  .fm-pcard__sub { font-size: 12px; }
  .fm-pcard .fm-bullets { font-size: 16px; margin: 20px 14px 6px; }

  /* CTA banner → gold box (text + 35%) with the button below, like the original mobile page. */
  .fm-cta { display: flex; flex-direction: column; align-items: center; gap: 16px; padding: 0; margin-top: 40px; background: none; border: 0; border-radius: 0; min-height: 0; overflow: visible; }
  .fm-cta__banner { display: flex; align-items: center; justify-content: center; gap: 18px; width: 100%; min-height: 115px; padding: 14px 20px; border-radius: 12px; border: 1px solid var(--fm-gold); background: #fbe6a8 url('../img/bg-banner-gold.png') center / cover no-repeat; }
  .fm-cta__text { max-width: 190px; font-size: 20px; text-align: right; }
  .fm-cta__value { font-size: 86px; margin-top: 0; }
  .fm-cta .fm-btn { width: 259px; height: 45px; border-width: 1px; border-radius: 14px; gap: 14px; }
  .fm-cta .fm-btn__star { display: block; }

  /* Catalogue */
  .fm-catalogue { margin: 10px 0; }
  .fm-catalogue__title { font-size: 26px; text-align: center; }
  .fm-catalogue .fm-btn { width: 263px; height: 40px; border: 1px solid var(--fm-gold-pale); border-radius: 10px; padding-left: 25px; }

  /* Form boxes */
  .fm-formbox .fm-btn--submit, .fm-formbox--popup .fm-btn--submit { width: 259px; height: 45px; }

  /* Concept / product cards */
  .fm-cards { gap: 36px; }
  .fm-ccard, .fm-ccard--panel-right { grid-template-columns: 1fr; min-height: 0; }
  .fm-ccard--panel-right .fm-ccard__panel, .fm-ccard--panel-right .fm-ccard__content { grid-column: 1; }
  .fm-ccard--panel-right .fm-ccard__panel { grid-row: 1; }
  .fm-ccard--panel-right .fm-ccard__content { grid-row: 2; }
  .fm-ccard__panel { padding: 16px 8px 8px; }
  .fm-ccard__name, .fm-products .fm-ccard__name { min-height: 0; padding: 0 6px; }
  .fm-ccard__media { height: auto; aspect-ratio: 448 / 309; }
  .fm-ccard__content, .fm-ccard--panel-right .fm-ccard__content { padding: 26px 20px 28px; }
  .fm-ccard__content .fm-bullets { font-size: 18px; }
  .fm-price, .fm-ccard--panel-right .fm-price { display: flex; justify-content: center; width: 100%; margin: 26px 0 0; align-self: stretch; }
  .fm-ccard__mascot { display: none; }
  .fm-ccard--panel-right .fm-ccard__content::after { display: none; }

  /* Partners */
  .fm-logos { --fm-per-view: 4; --fm-slide-gap: 8px; }
  .fm-projects { --fm-per-view: 2; --fm-slide-gap: 20px; }
  .fm-projects .fm-slider__arrow { display: block; }
  .fm-partners__bird { display: none; }
  .fm-partners { padding: 50px 0; }

  /* Reasons */
  .fm-reasons { min-height: 0; padding-top: 40px; }
  .fm-reasons__head { padding-top: 0; min-height: 0; display: flex; flex-direction: column; align-items: center; }
  .fm-reasons__badge { position: static; margin-bottom: 20px; }
  .fm-reasons__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 30px; }
  .fm-reasons__bird { display: none; }

  /* Contact */
  .fm-contact { padding-top: 40px; }
  .fm-contact__inner { grid-template-columns: 1fr; gap: 30px; }
  .fm-contact__text { padding-top: 0; }
  .fm-contact .fm-formbox { margin: 0 auto; }
  .fm-contact__bird { display: none; }

  /* Footer */
  .fm-footer__top { flex-direction: column; align-items: center; text-align: center; }
  .fm-footer__logo { margin: 0 0 20px; }
  .fm-footer__info::before { display: none; }
  .fm-footer__company, .fm-footer__info .fm-footer__company { font-size: 26px; }
}

/* ---------- Phones ---------- */
@media (max-width: 767px) {
  :root { --fm-radius-lg: 16px; }

  /* Gold vertical stripes on both edges + room for them. */
  .fm-vstripe { display: block; position: absolute; top: 0; bottom: 0; width: 12px; z-index: 30; pointer-events: none; background: url('../img/stripe-vertical.webp') center top / 12px auto repeat-y; }
  .fm-vstripe--l { left: 0; }
  .fm-vstripe--r { right: 0; }
  .fm-container { padding-left: 24px; padding-right: 24px; }
  .fm-usp { padding: 0 24px; }
  .fm-stripe--top::before, .fm-stripe--top::after { display: block; width: 24px; height: 100%; background-size: 100% 100%; }
  .fm-stripe--red { height: 40px; }

  /* Hero */
  .fm-hero__inner { padding: 12px 24px 30px; }
  .fm-hero__logo { width: 100px; margin-bottom: 16px; }
  .fm-hero__top { gap: 8px; }
  .fm-hero__badge { width: 76px; flex-basis: 76px; }
  .fm-hero__headline img { width: 100%; }
  .fm-hero__h1-main { font-size: 40px; }
  .fm-hero__h1-sub { font-size: 18px; letter-spacing: 2px; max-width: 90px; }
  .fm-hero__tagline { font-size: 10.5px; }
  .fm-hero__mascots { height: 190px; margin-top: 8px; }
  .fm-hero__m-goat { width: 140px; }
  .fm-hero__m-boy { width: 64px; top: 92px; }
  .fm-hero__m-mountain { top: 146px; width: 180px; }
  .fm-hero__cards { max-width: 325px; margin-top: 4px; }
  .fm-hcard { padding: 16px 12px 12px; }
  .fm-hcard__title { font-size: 21px; line-height: 1.15; }
  .fm-hcard__sub { font-size: 13.5px; }
  .fm-hcard__img { aspect-ratio: 1 / 1.05; }
  .fm-hero__cards .fm-slider__arrow--prev { left: -8px; }
  .fm-hero__cards .fm-slider__arrow--next { right: -8px; }
  .fm-hero__mobile-cta { margin-top: 22px; }

  /* USP – 2×2 grid with hairline dividers; the Vietnamese title stays on its own 2 lines (original mobile). */
  .fm-usp__list { padding: 14px 0; grid-template-columns: 1fr 1fr; }
  .fm-usp__item { padding: 12px 4px 12px 6px; gap: 6px; align-items: center; }
  .fm-usp__item:nth-child(even) { padding-left: 10px; }
  .fm-usp__icon { width: 22px; flex-basis: 22px; height: 22px; }
  .fm-usp__text { min-width: 0; }
  .fm-usp__title { font-size: 11.5px; letter-spacing: 0; line-height: 1.15; }
  .fm-usp__title br { display: inline; }
  .fm-usp__sub { font-size: 7.5px; letter-spacing: .5px; line-height: 1.25; margin-top: 3px; }
  .fm-usp__sub br { display: none; }

  /* Sections */
  .fm-section { padding: 34px 0 40px; background-size: 900px auto; }
  .fm-heading { margin-bottom: 18px; }
  .fm-heading__title { font-size: 26px; }
  .fm-heading__sub { font-size: 16px; }
  /* Original mobile: plain title + white star divider underneath (no side stars). */
  .fm-heading--stars .fm-heading__title { display: block; }
  .fm-heading--stars .fm-heading__title::before, .fm-heading--stars .fm-heading__title::after { display: none; }
  .fm-heading--stars .fm-heading__title + .fm-heading__sub::before { content: ''; display: block; width: 142px; height: 15px; margin: 6px auto 10px; background: url('../img/divider-white.png') center / contain no-repeat; }

  /* Packaging: one card per view + arrows (original mobile CAROUSEL4). */
  .fm-packaging__grid, .fm-packaging__grid.fm-cols-2, .fm-packaging__grid.fm-cols-1 { --fm-per-view: 1; max-width: 360px; margin: 0 auto; }
  .fm-packaging__grid .fm-slider__arrow { top: 46%; }
  .fm-pcard__head { height: auto; min-height: 0; padding: 16px 8px 6px; }
  .fm-pcard__title { font-size: 30px; letter-spacing: 1px; }
  .fm-pcard__title .fm-star-line { display: inline-block; width: 54px; }
  .fm-pcard__sub { font-size: 13px; letter-spacing: 3px; }
  .fm-pcard__body { padding-bottom: 18px; margin-top: 14px; }
  .fm-pcard .fm-bullets { font-size: 15px; margin: 18px 12px 0; }

  /* CTA */
  .fm-cta { margin-top: 30px; }
  .fm-cta__banner { min-height: 96px; gap: 14px; padding: 12px 16px; }
  .fm-cta__text { font-size: 16px; max-width: 150px; }
  .fm-cta__value { font-size: 72px; }

  /* Concept / product cards */
  .fm-cards { gap: 28px; }
  .fm-ccard__label { font-size: 15px; letter-spacing: 4px; }
  .fm-ccard__label .fm-star-line { width: 56px; }
  .fm-ccard__name, .fm-products .fm-ccard__name { font-size: 30px; line-height: 1.15; margin: 4px 0 10px; }
  .fm-ccard__name--long { font-size: 26px; }
  .fm-ccard__content, .fm-ccard--panel-right .fm-ccard__content { padding: 22px 16px 24px; }
  .fm-ccard__content .fm-bullets { font-size: 17px; }
  .fm-ccard__content .fm-bullets li + li { margin-top: 14px; }
  .fm-price { white-space: normal; text-align: center; line-height: 1.2; padding: 10px 14px; min-height: 48px; }
  .fm-price__value { font-size: 24px; }
  .fm-price__unit { font-size: 16px; }

  /* Partners */
  .fm-partners { padding: 40px 0; }
  .fm-partners .fm-heading { margin-bottom: 24px; }
  .fm-logos { --fm-per-view: 4; --fm-slide-gap: 4px; margin-bottom: 44px; }
  .fm-logos .fm-slider__arrow { display: none; }
  .fm-projects { --fm-per-view: 1; }
  .fm-project { max-width: 325px; margin: 0 auto; min-height: 0; }
  .fm-project__title { font-size: 18px; }
  .fm-projects .fm-slider__arrow--prev { left: -4px; }
  .fm-projects .fm-slider__arrow--next { right: -4px; }

  /* Reasons */
  .fm-reasons { padding-top: 34px; }
  .fm-reasons__grid { gap: 10px; margin-top: 24px; }
  .fm-rcard { min-height: 0; }
  .fm-rcard__label { font-size: 11px; letter-spacing: .5px; }
  .fm-rcard__label .fm-star-line { width: 34px; }
  .fm-rcard__title { font-size: 17px; }
  .fm-rcard__body { font-size: 14px; padding: 14px 8px; }
  .fm-rcard__body li + li { margin-top: 12px; }
  .fm-reasons__opera { margin-top: 20px; }

  /* Contact: only the form (original mobile hides the text block); button sits below the red box. */
  .fm-contact { padding-top: 30px; }
  .fm-contact__text { display: none; }
  .fm-contact__inner { gap: 0; }
  .fm-contact__form { padding-bottom: 36px; }
  /* Red box holds title + fields; the submit button sits below the box (original mobile layout). */
  .fm-formbox { max-width: 100%; padding-bottom: 5px; margin-bottom: 0; }
  .fm-formbox__body { padding-bottom: 14px; border-radius: 16px; }
  .fm-form { position: relative; }
  .fm-formbox .fm-btn--submit { position: absolute; left: 50%; bottom: -84px; transform: translateX(-50%); margin: 0; }
  .fm-formbox .fm-form.is-sent .fm-btn--submit { display: none; }
  .fm-contact .fm-formbox, .fm-hero .fm-formbox { margin-bottom: 70px; }
  .fm-contact__form { padding-bottom: 0; }
  .fm-contact { padding-bottom: 36px; min-height: 0; }
  .fm-formbox--popup { max-width: 100%; margin-bottom: 0; border: 2px solid #ffec9e; }
  .fm-formbox--popup .fm-btn--submit { position: relative; left: auto; bottom: auto; transform: none; margin: 6px auto -22px; }
  .fm-formbox--popup .fm-form { position: static; }
  .fm-formbox--popup .fm-discount__value { font-size: 76px; }
  .fm-formbox--popup .fm-discount__label { font-size: 21px; max-width: 150px; }
  .fm-popup__dialog { margin-bottom: 26px; }

  /* Footer */
  .fm-footer { padding-top: 34px; }
  .fm-footer__info p, .fm-footer__legal p { font-size: 14px; word-break: break-word; }
  .fm-footer__info .fm-footer__company { font-size: 22px; }
  .fm-footer__rule { margin: 24px 0 20px; }
}

@media (max-width: 400px) {
  .fm-hero__m-goat { width: 124px; }
  .fm-hero__cards { max-width: 300px; }
  .fm-cta__value { font-size: 62px; }
  .fm-cta__text { font-size: 15px; }
  .fm-formbox--popup .fm-discount__value { font-size: 66px; }
  .fm-formbox--popup .fm-discount__label { font-size: 19px; }
  .fm-usp__title { font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  .fm-slider__track { transition: none; }
  html { scroll-behavior: auto; }
}
