/* OMGF: small-screen adjustments. Desktop styles are preserved. */
@media screen and (max-width: 780px) {
  html { height: auto !important; }
  html body {
    height: auto;
    min-height: 100vh;
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    line-height: 1.5;
    background: #ffffff;
  }
  html body #pageFrame {
    box-sizing: border-box;
    width: 100% !important;
    max-width: 756px;
    min-height: 100vh;
    margin: 0 auto;
    background: #ffffff;
  }
  html body #header {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: 8px;
    height: 82px !important;
    padding: 6px 12px;
    background: #ffffff;
    border-bottom: 1px solid #eeeeee;
  }
  html body .headLeft,
  html body .headRight,
  html body .menuLeft,
  html body .menuRight,
  html body .menuDiv,
  html body .footLeft,
  html body .footRight { display: none; }
  html body .headMiddleL,
  html body .headCenter,
  html body .headMiddleR {
    float: none;
    height: 68px !important;
    min-width: 0;
    margin: 0;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
  }
  html body .headMiddleL { flex: 0 0 48px; width: 48px; }
  html body .headCenter { flex: 1 1 auto; width: auto; }
  html body .headMiddleR { flex: 0 0 42px; width: 42px; }
  html body #mainHome {
    box-sizing: border-box;
    width: 100%;
    padding: 0;
    border: 0;
    background: #ffffff;
  }
  html body #mainHome > img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
  }
  html body #enter {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    height: auto;
    padding: 14px 12px;
    background: #ffffff;
  }
  html body #enter > span:first-child,
  html body #enter .clear { display: none; }
  html body #enter .flag1,
  html body #enter .flag2,
  html body #enter .flag3 {
    display: block;
    float: none;
    width: auto;
    margin: 0 !important;
    border: 0;
  }
  html body #enter a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 56px;
    min-height: 48px;
  }
  html body #enter img { display: block; }
  html body #menu {
    display: flex;
    flex-wrap: wrap;
    height: auto !important;
    line-height: 1.3 !important;
    background: #f3f3f3;
    border-bottom: 2px solid #ff0000;
  }
  html body #menu .menuItem {
    box-sizing: border-box;
    float: none;
    flex: 1 0 30%;
    min-width: 0;
    height: auto !important;
    border-bottom: 1px solid #e1e1e1;
    text-align: center;
  }
  html body #menu .menuItem a {
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 46px;
    padding: 10px 5px;
    font-size: 13px;
    overflow-wrap: anywhere;
  }
  html body #menu .menuDate {
    box-sizing: border-box;
    flex: 1 0 100%;
    float: none;
    height: auto !important;
    padding: 5px 12px;
    font-size: 12px;
    text-align: right;
  }
  html body #main {
    box-sizing: border-box;
    min-width: 0;
    padding: 22px 16px 28px;
    font-size: 16px;
    line-height: 1.55;
    overflow-wrap: anywhere;
  }
  html body #main > * { box-sizing: border-box; max-width: 100%; }
  html body #main p { text-align: left; }
  html body #main .center,
  html body #main .products p { text-align: center; }
  html body #main h3 { font-size: 21px; line-height: 1.3; }
  html body #main h4 { font-size: 17px; line-height: 1.4; margin-top: 24px; }
  html body #main ul { padding-left: 22px; }
  html body #main li { margin-bottom: 10px; }
  html body #main img,
  html body #main iframe,
  html body #main object,
  html body #main embed { max-width: 100%; }
  html body #main img { height: auto; }
  html body #main .prodLeftCont,
  html body #main .prodRightCont,
  html body #main .prodCont,
  html body #main .fairsLeft,
  html body #main .fairsRight,
  html body #main .foretLeft,
  html body #main .foretRight,
  html body #main #certLeftCont,
  html body #main #certRightCont {
    box-sizing: border-box;
    float: none;
    width: 100%;
    margin: 0 0 20px;
  }
  html body #main .prodLeft,
  html body #main .prodRight,
  html body #main .catalogues {
    float: none;
    width: auto;
    margin: 0;
  }
  html body #main .prodLeft a,
  html body #main .prodRight a,
  html body #main .catalogues a {
    display: inline-block;
    padding: 9px 0;
    line-height: 1.4;
  }
  html body #main #distinctionContainer,
  html body #main #map { box-sizing: border-box; width: 100%; }
  html body #main .distinctionLeft,
  html body #main .distinctionCenter,
  html body #main .distinctionRight {
    box-sizing: border-box;
    float: none;
    width: 100%;
    margin: 0 0 16px;
    padding: 12px;
  }
  html body #main .fairsImg,
  html body #main .foretImg { height: auto; }
  html body #main .fairsSpacer,
  html body #main .foretSpacer { height: 22px; }
  html body #main table {
    box-sizing: border-box;
    display: block;
    max-width: 100%;
    width: auto !important;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  html body #main table.products td { padding: 8px 10px; font-size: 14px; }
  html body #main table.products {
    width: max-content !important;
    margin-left: auto;
    margin-right: auto;
  }
  html body #main input[type="text"],
  html body #main textarea,
  html body #main select {
    box-sizing: border-box;
    max-width: 100%;
    min-height: 44px;
    font-size: 16px;
  }
  html body #main button { max-width: 100%; min-height: 44px; }
  html body #main .floatRight { max-width: 100%; margin: 0 0 14px; }
  html body #main #topArrow { float: none; display: block; margin-top: 20px; }
  html body #main #topArrow a { display: inline-block; min-height: 44px; padding: 8px; }
  html body #footer {
    box-sizing: border-box;
    position: static;
    clear: both;
    width: 100% !important;
    height: auto !important;
    min-height: 70px;
    margin: 0;
    padding: 12px;
    background: #ff0000;
    line-height: 1.5 !important;
    text-align: center;
  }
  html body #footer .footCenter {
    display: block;
    float: none;
    height: auto !important;
    font-size: 12px !important;
  }
  html body #footer .footCenter a { display: inline-block; padding: 7px 3px; }
  html body #footer .footMdglab {
    display: block;
    float: none;
    margin-top: 6px;
    font-size: 11px;
    text-align: center;
  }
  html body #revision { float: none; margin: 6px 12px; font-size: 11px; }
  html body #cookieChoiceInfo {
    box-sizing: border-box;
    top: auto !important;
    bottom: 0;
    width: 100%;
    max-height: 45vh;
    overflow-y: auto;
    padding: 12px !important;
    background: #424242;
    border-top: 2px solid #ffffff;
    border-bottom: 0;
    font-size: 13px;
    line-height: 1.45;
    text-align: left;
  }
  html body #cookieChoiceInfo a {
    box-sizing: border-box;
    display: inline-block;
    min-height: 44px;
    margin: 8px 8px 0 0 !important;
    padding: 12px;
    font-size: 14px;
  }
}

@media screen and (max-width: 360px) {
  html body #menu .menuItem { flex-basis: 45%; }
}

/* Mobile redesign: semantic brand, compact navigation, clear hierarchy. */
@media screen and (max-width:780px) {
  html body { background:#fff; color:#242424; font-family:Arial,Helvetica,sans-serif; }
  html body #header { display:block; position:relative; height:auto!important; padding:0; border-bottom:1px solid #e9e6e2; background:#fff; }
  html body #header > span { display:none; }
  html body .omgf-mobile-brand { display:flex!important; position:relative; z-index:50; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:4px; padding:8px 18px 10px; box-sizing:border-box; }
  html body .omgf-brand { display:block; flex:0 0 100%; width:100%; max-width:610px; margin:0 auto; text-decoration:none; }
  html body .omgf-brand-art { display:block; position:relative; width:100%; aspect-ratio:610 / 84; overflow:hidden; }
  html body .omgf-brand-art img { display:block; position:absolute; top:-21.428571%; height:121.428571%; max-width:none; margin:0; padding:0; border:0; }
  html body .omgf-brand-art .omgf-brand-symbol { left:0; width:14.754098%; }
  html body .omgf-brand-art .omgf-brand-wordmark { left:18.032787%; width:81.967213%; }
  html body .omgf-navigation { flex:0 0 auto; }
  html body .omgf-navigation summary { display:flex; align-items:center; justify-content:center; gap:7px; min-height:44px; padding:0 10px; border:1px solid #ddd8d2; border-radius:8px; cursor:pointer; font-size:12px; font-weight:700; list-style:none; }
  html body .omgf-navigation summary::-webkit-details-marker { display:none; }
  html body .omgf-navigation summary > span { font-size:16px; line-height:1; }
  html body .omgf-navigation[open] summary { border-color:#ff0000; color:#ff0000; background:#fff8f8; }
  html body .omgf-navigation nav { position:absolute; top:calc(100% - 1px); left:12px; right:12px; display:grid; grid-template-columns:1fr 1fr; padding:10px; border:1px solid #e5dfd9; border-radius:0 0 14px 14px; background:#fff; box-shadow:0 14px 26px #0002; }
  html body .omgf-navigation nav > a { display:flex; align-items:center; min-height:46px; padding:0 12px; color:#222; border-radius:8px; font-size:14px; font-weight:600; }
  html body .omgf-navigation nav > a:hover { color:#ff0000; background:#f7f4ef; }
  html body .omgf-menu-languages { display:flex; flex-wrap:wrap; align-items:center; gap:12px; grid-column:1/-1; margin-top:8px; padding:10px 12px 0; border-top:1px solid #eee; font-size:12px; }
  html body .omgf-menu-languages > span { flex:1 0 100%; color:#777; font-size:11px; }
  html body .omgf-menu-languages a { padding:8px 0; color:#ff0000; }
  html body #menu { display:none; }
  html body #omgf-mobile-home { display:block!important; }
  html body #omgf-mobile-home ~ #mainHome { display:none; }
  html body .omgf-hero { padding:28px 20px 0; }
  html body .omgf-eyebrow { margin:0 0 14px; color:#ff0000; font-size:9px; line-height:1.4; font-weight:700; letter-spacing:1.65px; text-align:left; }
  html body #omgf-mobile-home h1, html body .omgf-catalog-title h1 { margin:0; color:#242424; font-size:34px; font-weight:700; line-height:1.08; letter-spacing:-1.15px; }
  html body #omgf-mobile-home h1 em, html body .omgf-catalog-title h1 em { color:#ff0000; font-style:normal; }
  html body .omgf-introduction { max-width:310px; margin:16px 0 20px; color:#666; font-size:14px; line-height:1.6; text-align:left; }
  html body .omgf-actions { display:flex; align-items:stretch; gap:8px; }
  html body .omgf-actions a { box-sizing:border-box; display:flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:10px 13px; border:1px solid #ded8d1; border-radius:8px; font-size:12px; font-weight:700; }
  html body .omgf-actions .omgf-primary { flex:1; color:#fff; background:#ff0000; border-color:#ff0000; }
  html body .omgf-actions .omgf-primary span { font-size:20px; }
  html body .omgf-actions .omgf-secondary { color:#242424; background:#fff; }
  html body .omgf-hero-image { margin-top:24px; overflow:hidden; border-radius:12px; background:#f2eeea; }
  html body .omgf-hero-image img { display:block; width:calc(100% + 12px); max-width:none; height:174px; margin-left:-6px; object-fit:cover; object-position:center; }
  html body .omgf-languages { display:flex; align-items:center; justify-content:center; gap:24px; min-height:58px; font-size:12px; }
  html body .omgf-languages a { padding:12px 0; color:#777; }
  html body .omgf-languages > span { padding:12px 0; color:#ff0000; font-weight:700; border-bottom:2px solid #ff0000; }
  html body .omgf-categories { margin-top:8px; padding:24px 20px; border-top:1px solid #ece8e2; }
  html body .omgf-section-title { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }
  html body #omgf-mobile-home h2 { margin:0; color:#242424; font-size:21px; line-height:1.2; letter-spacing:-.45px; }
  html body .omgf-section-title > a { flex:0 0 auto; padding:12px 0; color:#ff0000; font-size:10px; font-weight:700; }
  html body .omgf-category-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; }
  html body .omgf-category-grid > a { display:block; position:relative; box-sizing:border-box; min-height:144px; padding:15px 13px 28px; border:1px solid #e9e3dc; border-radius:10px; color:#242424; background:#faf9f6; }
  html body .omgf-category-number { color:#ff0000; font-size:10px; font-weight:700; }
  html body #omgf-mobile-home .omgf-category-grid h3 { margin:13px 0 7px; color:#242424; font-size:15px; line-height:1.25; letter-spacing:-.25px; }
  html body .omgf-category-grid p { margin:0; color:#777; font-size:11px; line-height:1.5; text-align:left; }
  html body .omgf-category-arrow { position:absolute; right:13px; bottom:10px; color:#ff0000; font-size:18px; }
  html body .omgf-contact-card { margin:4px 20px 28px; padding:22px 18px; border-radius:12px; background:#f1ede7; }
  html body .omgf-contact-card .omgf-eyebrow { display:block; margin-bottom:10px; }
  html body .omgf-contact-card p { margin:12px 0; color:#666; font-size:13px; line-height:1.6; text-align:left; }
  html body .omgf-contact-card > a { display:flex; align-items:center; justify-content:space-between; min-height:44px; color:#ff0000; font-size:13px; font-weight:700; }
  html body .omgf-contact-card > a span { font-size:22px; }
  html body .omgf-catalog-title { display:block!important; padding:30px 20px 4px; }
  html body .omgf-catalog-title h1 { font-size:32px; }
  html body .omgf-catalog-description { margin:16px 0 0; color:#777; font-size:14px; line-height:1.6; text-align:left; }
  html body .omgf-catalog-title ~ #main > p:first-child,
  html body .omgf-catalog-title ~ #main > br,
  html body .omgf-catalog-title ~ #main .prodRightCont > p { display:none; }
  html body #main { padding:22px 20px 32px; color:#444; font-size:15px; line-height:1.65; }
  html body #main h3 { color:#242424; }
  html body #main .prodLeftCont, html body #main .prodRightCont { margin:0; }
  html body #main .prodLeft br, html body #main .prodRight br { display:none; }
  html body #main .prodLeft a, html body #main .prodRight a { display:flex; align-items:center; justify-content:space-between; gap:12px; box-sizing:border-box; width:100%; min-height:58px; margin:0 0 9px; padding:14px 15px; border:1px solid #e8e2db; border-radius:9px; background:#faf9f6; color:#242424; font-size:14px; font-weight:700; }
  html body #main .prodLeft a::after, html body #main .prodRight a::after { content:"\2192"; color:#ff0000; font-size:20px; font-weight:400; }
  html body #main .catalogues { margin-top:24px; padding-top:20px; border-top:1px solid #e5dfd7; font-size:14px; }
  html body #main .catalogues a { color:#ff0000; font-size:13px; }
  html body #footer { border-top:1px solid #e8e2da; background:#faf9f6; color:#777; padding:20px 18px; }
  html body #footer .footCenter { color:#777; font-size:10px!important; line-height:1.7; }
  html body #footer a:link, html body #footer a:visited, html body #footer a:hover { color:#ff0000; }
  html body #footer .footCenter a { padding:7px 4px; color:#ff0000; font-size:12px; }
  html body #footer .footMdglab { margin-top:8px; font-size:9px; opacity:.7; }
  html body #revision { color:#aaa; font-size:9px; }
  html body #cookieChoiceInfo { border-top:1px solid #e4ded6; box-shadow:0 -4px 20px #0001; background:#fff; color:#666; padding:12px 16px!important; font-size:11px; line-height:1.55; }
  html body #cookieChoiceInfo #cookieMore-info { color:#ff0000; font-size:12px; }
  html body #cookieChoiceInfo #cookieChoiceDismiss { border-radius:7px; background:#242424; color:#fff; font-size:12px; }
}
@media screen and (max-width:340px) {
  html body .omgf-mobile-brand { gap:6px; padding:8px 12px; }
  html body #omgf-mobile-home h1 { font-size:30px; }
  html body .omgf-hero, html body .omgf-categories { padding-left:16px; padding-right:16px; }
  html body .omgf-section-title > a { font-size:9px; }
  html body #omgf-mobile-home .omgf-section-title h2 { font-size:19px; }
}
