.fm-zone{
  --fm-paper:#FFFFFF; --fm-soft:#FFF7F0; --fm-ink:#0D0B0A; --fm-dim:#6E6862;
  --fm-line:rgba(13,11,10,.12); --fm-acc:#FF8A3D; --fm-acc2:#F57323;
  --fm-ease:cubic-bezier(.22,1,.36,1);
  position:relative; padding:clamp(2.4rem,5vw,3.6rem) 0;
  background:var(--fm-paper); color:var(--fm-ink);
  font-family:"Schibsted Grotesk",system-ui,-apple-system,Segoe UI,sans-serif;
}
[data-theme="dark"] .fm-zone{
  --fm-paper:#0A0908; --fm-soft:#15100D; --fm-ink:#F6F1EB; --fm-dim:#9C938B;
  --fm-line:rgba(246,241,235,.14);
}

.fm-zone::before{ content:""; position:absolute; top:0; left:0; right:0; height:1px;
  background:var(--fm-line); }
.fm-zone::after{ content:""; position:absolute; top:0; height:3px;
  width:clamp(60px,7vw,110px);
  left:max(clamp(10px,2.5vw,30px), calc((100% - 1160px) / 2));
  background:linear-gradient(90deg,var(--fm-acc),var(--fm-acc2));
  border-radius:0 0 99px 0; box-shadow:0 0 18px -2px rgba(255,138,61,.7); }

.fm-zone *{ box-sizing:border-box; }
.fm-zone a{ color:inherit; text-decoration:none; }

.fm-wrap{ width:min(1160px,calc(100% - clamp(20px,5vw,60px))); margin:0 auto; }

.fm-grid{ display:grid; grid-template-columns:1.15fr .85fr 1.1fr;
  gap:clamp(1.6rem,3.5vw,3rem); align-items:start; }

.fm-brand .fm-logo{ display:inline-flex; align-items:center; gap:.6rem; }
.fm-brand .fm-logo img{ height:34px; width:auto; display:block; }
.fm-brand .fm-base{ display:flex; gap:.35rem; margin-top:.9rem;
  font-size:1.05rem; font-weight:850; letter-spacing:-.02em; }
.fm-brand .fm-base i{ font-style:normal; }
.fm-brand .fm-base i b{ color:var(--fm-acc); }
.fm-brand p{ margin:.9rem 0 0; max-width:34ch; font-size:.82rem; line-height:1.75; color:var(--fm-dim); }

.fm-contact{ margin-top:1.2rem; display:flex; flex-direction:column; gap:.45rem; }
.fm-contact a{ display:inline-flex; align-items:center; gap:.55rem;
  font-size:.82rem; font-weight:600; transition:color .3s; }
.fm-contact a:hover{ color:var(--fm-acc); }
.fm-contact svg{ width:15px; height:15px; flex:0 0 auto; fill:none;
  stroke:var(--fm-acc); stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }


.fm-contact a.fm-wa svg{ fill:#25D366; stroke:none; width:16px; height:16px; }
.fm-contact a.fm-wa:hover{ color:#25D366; }


#syo-wa{
  position:fixed; right:clamp(14px,2.5vw,26px); bottom:clamp(14px,2.5vw,26px);
  z-index:140; display:inline-flex; align-items:center; gap:.6rem;
  text-decoration:none; color:inherit;
  font-family:"Schibsted Grotesk",system-ui,-apple-system,Segoe UI,sans-serif;
  opacity:0; transform:translateY(14px) scale(.9); pointer-events:none;
  transition:opacity .45s cubic-bezier(.22,1,.36,1),
             transform .55s cubic-bezier(.34,1.4,.64,1);
}
#syo-wa.on{ opacity:1; transform:none; pointer-events:auto; }

#syo-wa .wa-tip{
  max-width:0; overflow:hidden; white-space:nowrap;
  padding:0; border-radius:999px;
  font-size:.72rem; font-weight:700; letter-spacing:-.01em; line-height:1;
  color:#0D0B0A; background:#FFFFFF;
  border:1px solid rgba(13,11,10,.1);
  box-shadow:0 16px 34px -22px rgba(13,11,10,.6);
  transition:max-width .5s cubic-bezier(.22,1,.36,1), padding .5s cubic-bezier(.22,1,.36,1);
}
[data-theme="dark"] #syo-wa .wa-tip{ color:#F6F1EB; background:#1A1615; border-color:rgba(246,241,235,.14); }
#syo-wa:hover .wa-tip{ max-width:240px; padding:.72rem 1rem; }

#syo-wa .wa-btn{
  position:relative; width:56px; height:56px; border-radius:50%; flex:0 0 auto;
  display:grid; place-items:center; color:#FFFFFF;
  background:linear-gradient(140deg,#4AE07E,#25D366 55%,#12A150);
  box-shadow:0 18px 34px -16px rgba(37,211,102,.85), 0 0 0 4px rgba(37,211,102,.14);
  transition:transform .35s cubic-bezier(.34,1.4,.64,1), box-shadow .35s;
}
#syo-wa:hover .wa-btn{ transform:scale(1.07);
  box-shadow:0 22px 40px -14px rgba(37,211,102,.95), 0 0 0 7px rgba(37,211,102,.18); }
#syo-wa .wa-btn svg{ width:29px; height:29px; }

#syo-wa .wa-btn::before{
  content:""; position:absolute; inset:0; border-radius:50%;
  border:2px solid #25D366; animation:waPulse 2.6s ease-out infinite;
}
@keyframes waPulse{
  0%{ transform:scale(1); opacity:.55; }
  100%{ transform:scale(1.55); opacity:0; }
}

#syo-wa .wa-dot{
  position:absolute; top:2px; right:2px; width:13px; height:13px; border-radius:50%;
  background:var(--fm-acc,#FF8A3D); border:2.5px solid #FFFFFF;
}
[data-theme="dark"] #syo-wa .wa-dot{ border-color:#0A0908; }

@media(max-width:600px){
  #syo-wa .wa-tip{ display:none; }
  #syo-wa .wa-btn{ width:52px; height:52px; }
  #syo-wa .wa-btn svg{ width:26px; height:26px; }
}
@media(prefers-reduced-motion:reduce){
  #syo-wa{ opacity:1; transform:none; pointer-events:auto; }
  #syo-wa .wa-btn::before{ animation:none; opacity:0; }
}

.fm-nav h3{ margin:0 0 1rem; font-size:.6rem; font-weight:800;
  letter-spacing:.22em; text-transform:uppercase; color:var(--fm-dim); }
.fm-nav ul{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:.15rem; }
.fm-nav a{ position:relative; display:inline-flex; align-items:center; gap:.6rem;
  padding:.42rem 0; font-size:.92rem; font-weight:700; letter-spacing:-.01em;
  transition:color .3s, transform .35s var(--fm-ease); }
.fm-nav a i{ width:0; height:1.5px; background:var(--fm-acc); border-radius:99px;
  transition:width .35s var(--fm-ease); }
.fm-nav a:hover{ color:var(--fm-acc); transform:translateX(4px); }
.fm-nav a:hover i{ width:16px; }

.fm-map{ position:relative; border-radius:18px; overflow:hidden;
  border:1px solid var(--fm-line); background:var(--fm-soft);
  box-shadow:0 26px 50px -38px rgba(13,11,10,.55); }
.fm-map iframe{ display:block; width:100%; height:230px; border:0;
  filter:grayscale(.35) contrast(1.03); transition:filter .6s var(--fm-ease); }
[data-theme="dark"] .fm-map iframe{ filter:grayscale(.5) invert(.9) hue-rotate(180deg) contrast(.9); }
.fm-map:hover iframe{ filter:none; }
[data-theme="dark"] .fm-map:hover iframe{ filter:invert(.9) hue-rotate(180deg); }

.fm-map .fm-pin{ position:absolute; left:12px; top:12px; z-index:2;
  display:inline-flex; align-items:center; gap:.45rem; padding:.42rem .8rem;
  border-radius:999px; font-size:.6rem; font-weight:800; letter-spacing:.14em;
  text-transform:uppercase; color:#160A02;
  background:linear-gradient(130deg,var(--fm-acc2),var(--fm-acc));
  box-shadow:0 10px 22px -12px rgba(255,138,61,.9); pointer-events:none; }

.fm-map .fm-open{ position:absolute; right:12px; bottom:12px; z-index:2;
  display:inline-flex; align-items:center; gap:.45rem; padding:.5rem .85rem;
  border-radius:999px; font-size:.62rem; font-weight:800; letter-spacing:.1em;
  color:var(--fm-ink); background:rgba(255,255,255,.92);
  border:1px solid var(--fm-line); backdrop-filter:blur(8px);
  transition:transform .3s var(--fm-ease), background .3s, color .3s; }
[data-theme="dark"] .fm-map .fm-open{ background:rgba(20,17,16,.92); }
.fm-map .fm-open:hover{ transform:translateY(-2px);
  background:var(--fm-acc); color:#160A02; border-color:transparent; }

.fm-addr{ margin:.8rem 0 0; font-size:.78rem; line-height:1.65; color:var(--fm-dim); }

.fm-bottom{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between;
  gap:1rem; margin-top:clamp(1.8rem,4vw,2.6rem); padding-top:1.2rem;
  border-top:1px solid var(--fm-line);
  font-size:.72rem; color:var(--fm-dim); }
.fm-bottom a:hover{ color:var(--fm-acc); }

@media(max-width:940px){
  .fm-grid{ grid-template-columns:1fr 1fr; }
  .fm-map-col{ grid-column:1 / -1; }
  .fm-map iframe{ height:260px; }
}
@media(max-width:600px){
  .fm-grid{ grid-template-columns:1fr; gap:1.8rem; }
  .fm-zone::after{ left:clamp(10px,2.5vw,30px); width:52px; }
  .fm-bottom{ flex-direction:column; align-items:flex-start; }
}
@media(prefers-reduced-motion:reduce){
  .fm-zone *{ transition:none !important; }
}
