/* Header 01 Loop, adapted to the existing Odoo website shell. */
.bn-site-home {
  --bn-ink: #173e34; --bn-muted: #626e68; --bn-orange: #ff6b16;
  --bn-gutter: clamp(24px, 4.2vw, 72px); --bn-action: #be420a; --bn-paper: #fff; --bn-sage: #eef4ef; --bn-line: #e4ebe6;
  color: var(--bn-ink); background: var(--bn-paper);
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
}
.bn-site-home #wrapwrap { background: var(--bn-paper); }
.bn-site-home #top {
  width: calc(100% - var(--bn-gutter) * 2); max-width: 1440px; margin: 24px auto 0;
  border: 1px solid rgba(23,62,52,.07); border-radius: 999px;
  box-shadow: 0 2px 3px #173e3405, 0 12px 24px -12px #173e3433, 0 28px 48px -24px #173e3426;
  background: #fff; z-index: 50;
}
.bn-site-home #top .navbar { min-height: 72px; border-radius: inherit; background: #fff !important; padding: 8px 16px; }
.bn-site-home #top .navbar > .container { max-width: 100%; padding: 0 8px; gap: 8px; }
.bn-site-home #top .navbar-brand img { max-height: 40px; }
.bn-site-home #top .nav-link { font-size: 14px; font-weight: 500; }
.bn-site-home #top .btn { border-radius: 999px; }
.bn-site-home #top .btn-primary { color: #fff; background: var(--bn-ink); border-color: var(--bn-ink); }
.bn-site-home #top .dropdown-menu { border-radius: 16px; border: 1px solid var(--bn-line); box-shadow: 0 12px 40px #173e3414; }
.bn-site-home #top .navbar { box-shadow: none !important; }
.bn-site-home :focus-visible { outline: 3px solid #b4440d; outline-offset: 5px; }
.bn-home { color: var(--bn-ink); }
.bn-home * { box-sizing: border-box; }
.bn-home a { color: inherit; text-decoration: none; }
.bn-home svg { display: block; width: 24px; height: 24px; flex: none; }
.bn-home h1, .bn-home h2, .bn-home p { margin: 0; color: inherit; font-family: inherit; }
.bn-hero { --bn-ribbon-top: clamp(50px, calc(310px - 12vw), 180px); position: relative; isolation: isolate; overflow: hidden; padding-top: 72px; min-height: calc(66.667vw + var(--bn-ribbon-top)); }
.bn-ribbon { position: absolute; z-index: -1; pointer-events: none; width: 100%; height: auto; left: 0; top: var(--bn-ribbon-top); animation: bn-ribbon-reveal 1.6s cubic-bezier(.65,0,.35,1) both; }
.bn-hero-grid { width: calc(100% - var(--bn-gutter) * 2); max-width: 1440px; padding: 0 24px; margin: auto; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.08fr); gap: clamp(48px, 5vw, 80px); align-items: start; }
.bn-copy { padding-top: 55px; }
.bn-home h1 { margin-top: 0; font-size: clamp(54px, 5.2vw, 78px); line-height: 1.27; font-weight: 600; letter-spacing: -.055em; }
.bn-intro { margin-top: 24px !important; font-size: 16px; line-height: 1.95; color: var(--bn-muted) !important; }
.bn-actions { display: flex; gap: 12px; margin-top: 32px; }
.bn-button { display: inline-flex; justify-content: center; align-items: center; position: relative; overflow: hidden; height: 48px; padding: 0 24px; border-radius: 999px; font-size: 14px; font-weight: 600; white-space: nowrap; transition: background .2s, box-shadow .2s; }
.bn-button-primary { background: var(--bn-action); border: 1px solid #ab3b0b; color: #fff !important; box-shadow: inset 0 1px 0 #ffffff38, 0 3px 5px #be420a14; }
.bn-button-primary:hover { background: #a73808; box-shadow: 0 4px 12px #be420a29; }
.bn-button-secondary { background: #f0f2ee; border: 1px solid #e8ece5; }
.bn-button-secondary:hover { background: #e5ebe3; }
.bn-button-label, .bn-button-copy { display: flex; align-items: center; justify-content: center; gap: 24px; height: 100%; transition: transform .3s; }
.bn-button-copy { position: absolute; inset: 0; transform: translateY(100%); }
.bn-button:hover .bn-button-label { transform: translateY(-100%); }
.bn-button:hover .bn-button-copy { transform: translateY(0); }
.bn-service-band { position: relative; max-width: 1440px; width: calc(100% - var(--bn-gutter) * 2); margin: 0 auto; padding: 32px 24px 40px; }
/* Service links follow the complete ribbon instead of masking its lower curve. */
.bn-service-heading { display: flex; align-items: center; justify-content: space-between; color: var(--bn-muted); font-size: 12px; margin-bottom: 20px; }
.bn-service-heading > span:first-child { color: var(--bn-ink); font-weight: 500; }
.bn-services { display: grid; grid-template-columns: repeat(4, 1fr); padding: 24px 0; border-top: 1px solid #173e3420; border-bottom: 1px solid #173e3414; }
.bn-services > a { display: flex; align-items: center; gap: 12px; padding: 0 24px; min-width: 0; border-right: 1px solid var(--bn-line); }
.bn-services > a:first-child { padding-left: 0; }
.bn-services > a:last-child { border-right: 0; padding-right: 0; }
.bn-services > a:hover strong { color: var(--bn-action); }
.bn-service-icon { color: #47695c; }
.bn-services strong { display: block; font-size: 15px; font-weight: 600; white-space: nowrap; }
.bn-services small { display: block; color: var(--bn-muted); font-size: 10px; margin-top: 7px; white-space: normal; line-height: 1.6; }
.bn-service-arrow { margin-left: auto; color: #85958a; font-size: 16px; }
.bn-site-home #bottom { background: #f3f6f2 !important; color: #425b50; border-top: 1px solid var(--bn-line); }
.bn-site-home #bottom h5 { color: var(--bn-ink); font-size: 14px; font-weight: 600; }
.bn-site-home #bottom p, .bn-site-home #bottom li { font-size: 12px; line-height: 1.9; }
.bn-site-home #bottom a { color: #425b50; }
.bn-site-home #bottom a:hover { color: var(--bn-action); }
.bn-site-home #bottom .o_footer_copyright { background: #eaf0e9 !important; font-size: 11px; line-height: 1.9; }
.bn-site-home #bottom .o_footer_copyright span { color: #425b50 !important; }

/* Odoo's desktop navbar is display:block; centre its actual inner row. */
.bn-site-home #top .navbar > .container { min-height: 56px; align-items: center; }
.bn-site-home #top .navbar-brand { display: inline-flex; align-items: center; padding: 0; }
.bn-site-home #top .navbar-nav { align-items: center; }
.bn-site-home #top .navbar-brand img { display: block; }
.bn-home[data-locale="en"] h1 { font-size: clamp(52px, 5.1vw, 76px); line-height: 1.12; letter-spacing: -.06em; }
.bn-home[data-locale="en"] .bn-intro { max-width: 520px; }
.bn-home[data-locale="en"] .bn-desktop-break { display: none; }
/* An editorial window: one full-bleed scene, one function, one native service link. */
.bn-deck-stage { touch-action:pan-y pinch-zoom; user-select:none; -webkit-user-select:none; cursor:grab; }
.bn-deck-stage.is-dragging { cursor:grabbing; }
.owj-scene-photo { -webkit-user-drag:none; }
.owj-scene-nav { display:none; position:absolute; z-index:5; top:16px; left:30px; right:30px; align-items:center; justify-content:space-between; gap:12px; color:#23443a; }
.bn-deck.is-enhanced .owj-scene-nav { display:flex; }
/* Keep the naturally bright photo clear above the caption. */
.bn-deck.is-enhanced .bn-deck-stage::before { content:none; }
.owj-scene-current { font-size:12px; line-height:1.4; font-weight:500; letter-spacing:.03em; text-shadow:none; }
.owj-scene-selectors { display:flex; flex:none; align-items:center; }
.owj-scene-selectors button { display:grid; place-items:center; width:30px; height:40px; padding:0; border:0; border-radius:4px; background:transparent; color:#436457; cursor:pointer; transition:width .25s; }
.owj-scene-selectors button span { display:block; width:6px; height:6px; background:currentColor; opacity:.75; border-radius:999px; transition:width .25s,opacity .25s; box-shadow:none; }
.owj-scene-selectors button[aria-current="true"] { width:48px; }
.owj-scene-selectors button[aria-current="true"] span { width:32px; opacity:1; color:#d36520; }
.owj-scene-selectors button:hover span { opacity:1; }
.owj-scene-selectors button:focus-visible { outline:2px solid #be420a; outline-offset:0; }
.bn-visual { position:relative; width:100%; max-width:570px; justify-self:end; animation:bn-card-enter 1.2s cubic-bezier(.22,1,.36,1) 1.75s both; }
.bn-deck { position:relative; }
.owj-showcase-brand { margin:0 0 23px 2px; }
.owj-showcase-logo { display:block; width:205px; height:auto; }
.bn-deck-stage { position:relative; display:grid; isolation:isolate; border-radius:6px 72px 6px 72px; overflow:hidden; background:#f5f8f6; }
.owj-scene { position:relative; grid-area:1/1; min-width:0; aspect-ratio:1.22; overflow:hidden; color:#23443a; }
.owj-scene[hidden] { display:none!important; }
.owj-scene-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 30%; }
.owj-scene::after { content:""; position:absolute; inset:40% 0 0; background:linear-gradient(180deg,transparent 0%,rgba(250,252,250,.65) 35%,rgba(250,252,250,.97) 74%,#fafcfa 100%); pointer-events:none; }
.owj-scene-caption { position:absolute; z-index:1; left:36px; right:32px; bottom:32px; }
#wrapwrap #wrap .owj-scene-caption h2 { font-size:34px; font-weight:500; line-height:1.3; letter-spacing:.02em; color:#23443a; }
.bn-home .owj-scene-caption p { color:#52645b; font-size:14px; line-height:1.8; margin:10px 0 21px; min-height:26px; max-width:395px; }
.bn-home .owj-scene-link { display:inline-flex; gap:22px; align-items:center; color:#23443a; font-size:13px; font-weight:500; min-height:32px; padding-bottom:4px; border-bottom:1px solid #55706566; }
.owj-scene-link span { font-size:20px; transition:transform .2s; }
.owj-scene-link:hover span { transform:translate(3px,-3px); }
.bn-home .owj-scene-link:focus-visible { outline-color:#be420a; }
.owj-scene.is-leaving { z-index:2; pointer-events:none; animation:owj-scene-out .8s ease both; }
.owj-scene.is-arriving { z-index:3; animation:owj-scene-in .8s cubic-bezier(.2,.65,.25,1) both; }
.owj-scene.is-arriving .owj-scene-caption { animation:owj-caption-in .8s cubic-bezier(.2,.65,.25,1) both; }
.owj-keyboard-controls { position:absolute; z-index:10; top:72px; left:12px; right:12px; display:flex; justify-content:center; gap:8px; pointer-events:none; }
.owj-keyboard-controls button { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.owj-keyboard-controls:focus-within { padding:10px; background:#fff; border:1px solid #d5dfd1; border-radius:8px; }
.owj-keyboard-controls:focus-within button { position:static; width:auto; height:auto; clip-path:none; margin:0; padding:9px 12px; overflow:visible; white-space:normal; font-size:12px; border-radius:4px; background:#edf2e9; pointer-events:auto; }
.bn-enter { animation:bn-enter 1s cubic-bezier(.16,1,.3,1) both; }
.bn-delay-1 { animation-delay:.1s; }.bn-delay-2 { animation-delay:.2s; }.bn-delay-3 { animation-delay:.3s; }
@keyframes bn-enter { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
@keyframes bn-ribbon-reveal { from { clip-path:inset(0 100% 0 0); } to { clip-path:inset(0); } }
@keyframes bn-card-enter { from { opacity:0; transform:translateY(30px); } to { opacity:1; transform:none; } }
@keyframes owj-scene-out { 0% { opacity:1; } 100% { opacity:0; } }
@keyframes owj-scene-in { from { opacity:0; transform:translateX(20px); } to { opacity:1; transform:none; } }
@keyframes owj-caption-in { 0%,20% { opacity:0; transform:translateY(10px); } 100% { opacity:1; transform:none; } }
@media(max-width:1399px) { .bn-site-home #top .o_header_phone { display:none!important; } }
@media(max-width:1199px) {
  .bn-hero-grid { gap:40px; padding:0 12px; }.bn-hero { padding-top:60px; }.bn-copy { padding-top:50px; }
  .bn-home h1 { font-size:58px; }.bn-intro { font-size:14px; }.bn-desktop-break { display:none; }
  .owj-scene { aspect-ratio:1; }.owj-scene-caption { left:27px; right:24px; bottom:28px; }
  #wrapwrap #wrap .owj-scene-caption h2 { font-size:30px; }.bn-home .owj-scene-caption p { font-size:13px; }
  .bn-services>a { padding:0 16px; gap:10px; }.bn-service-arrow { display:none; }
  .bn-home[data-locale="en"] .bn-button { padding:0 18px; font-size:12px; }
}
@media(max-width:991px) {
  .bn-site-home #top { width:calc(100% - 40px); margin-top:16px; }
  .bn-site-home #top .navbar { min-height:64px; padding:8px 12px; }.bn-site-home #top .navbar>.container { min-height:48px; }
  .bn-site-home #top .navbar-nav { align-items:stretch; }.bn-site-home #top .offcanvas { border-radius:0; }
  .bn-hero { padding-top:56px; min-height:0; padding-bottom:max(190px,calc(66.667vw - 100px)); }
  .bn-hero-grid { width:100%; max-width:740px; padding:0 32px; grid-template-columns:minmax(0,1fr); gap:48px; }
  .bn-copy { padding:0; text-align:center; }.bn-home h1 { font-size:62px; line-height:1.2; }
  .bn-home[data-locale="en"] h1 { font-size:66px; }.bn-actions { justify-content:center; }
  .bn-intro { font-size:15px; max-width:540px; margin-left:auto!important; margin-right:auto!important; }
  .bn-visual { justify-self:center; max-width:550px; }.owj-showcase-brand { margin-bottom:18px; }.owj-showcase-logo { width:190px; }
  .owj-scene { aspect-ratio:1.22; }.bn-deck-stage { border-radius:4px 64px 4px 64px; }
  .owj-scene-caption { left:32px; right:28px; bottom:30px; }.bn-home .owj-scene-caption p { font-size:14px; }
  .bn-ribbon { top:auto; bottom:0; left:0; width:100%; max-width:none; }
  .bn-service-band { width:100%; max-width:740px; margin-top:32px; padding:24px 32px; }.bn-services { grid-template-columns:repeat(2,1fr); gap:28px 0; }
  .bn-services>a { padding:0 20px; }.bn-services>a:nth-child(3) { padding-left:0; }.bn-services>a:nth-child(2) { border:0; }.bn-services small { white-space:normal; }
}
@media(max-width:575px) {
  .owj-scene-nav { top:12px; left:23px; right:23px; gap:8px; }.owj-scene-current { font-size:11px; }
  .owj-scene-selectors button { width:28px; }.owj-scene-selectors button[aria-current="true"] { width:42px; }.owj-scene-selectors button[aria-current="true"] span { width:28px; }
  .bn-site-home #top { width:calc(100% - 24px); margin-top:12px; }.bn-site-home #top .navbar { min-height:60px; }.bn-site-home #top .navbar>.container { min-height:44px; }
  .bn-hero { padding-top:44px; padding-bottom:66.667vw; }.bn-hero-grid { padding:0 24px; gap:36px; }
  .bn-home h1 { font-size:48px; line-height:1.26; }.bn-home[data-locale="en"] h1 { font-size:50px; }
  .bn-intro { font-size:13px; line-height:1.9; margin-top:20px!important; }
  .bn-actions { gap:10px; margin-top:26px; }.bn-button { height:46px; padding:0 19px; font-size:12px; }.bn-button-label { gap:14px; }
  .bn-home[data-locale="en"] .bn-actions { flex-wrap:wrap; }.bn-home[data-locale="en"] .bn-button { font-size:12px; padding:0 18px; }
  .bn-visual { max-width:410px; }.owj-showcase-logo { width:170px; }.owj-showcase-brand { margin:0 0 16px; }
  .bn-deck-stage { border-radius:4px 48px 4px 48px; }.owj-scene { aspect-ratio:.94; }
  .owj-scene-caption { left:25px; right:23px; bottom:25px; }#wrapwrap #wrap .owj-scene-caption h2 { font-size:28px; }
  .bn-home .owj-scene-caption p { font-size:12px; min-height:44px; margin:9px 0 15px; }.bn-home .owj-scene-link { font-size:12px; }
  .bn-service-band { margin-top:22px; padding:24px; }.bn-service-heading { font-size:11px; }.bn-service-heading>span:last-child { display:none; }
  .bn-services { padding:22px 0; gap:26px 0; }.bn-services>a { padding:0 12px; gap:9px; }.bn-services strong { font-size:13px; }
  .bn-services small { font-size:9px; margin-top:6px; }.bn-service-icon svg { width:21px; height:21px; }
  .bn-site-home #bottom .o_footer_copyright { font-size:10px; overflow-wrap:anywhere; }
}
@media(max-width:359px) { .bn-home h1 { font-size:42px; }.bn-home[data-locale="en"] h1 { font-size:44px; }.bn-hero-grid { padding:0 18px; }.bn-button { padding:0 16px; }.bn-service-band { padding-left:18px; padding-right:18px; }.owj-scene { aspect-ratio:.86; }.owj-scene-caption { left:23px; right:20px; }#wrapwrap #wrap .owj-scene-caption h2 { font-size:25px; } }
@media(prefers-reduced-motion:reduce) {
  .bn-site-home *, .bn-site-home *::before, .bn-site-home *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .bn-enter, .bn-visual { opacity:1; filter:none; transform:none; }
}
