/* TOPとアイコンメニューのレイアウト。 */
.sense-iphone-section { padding:36px 0 28px; background:#fff; color:#111; text-align:center; }
.sense-phone-frame { width:min(100%,430px); margin:0 auto; overflow:hidden; border:0; border-radius:0; background:transparent; box-shadow:none; box-sizing:border-box; }
.sense-iphone-frame { display:block; width:100%; height:600px; border:0; background:#fff; }
.sense-iphone-drawer { width:100%; max-width:none; height:100dvh; max-height:100dvh; margin:0; padding:0 16px 24px; border:0; background:#fff; color:#191919; box-sizing:border-box; overflow-y:auto; }
.sense-iphone-drawer::backdrop { background:#0009; }
.sense-iphone-drawer-head { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:flex-end; width:min(100%,430px); margin:0 auto 16px; padding:12px 0; background:#fff; }
.sense-iphone-drawer-head button { display:grid; place-items:center; width:48px; height:48px; border:1px solid #ccc; border-radius:50%; background:white; color:#191919; font-size:32px; cursor:pointer; }
html:has(.sense-iphone-drawer[open]) { overflow:hidden; }
.sense-iphone-drawer a:focus-visible, .sense-iphone-drawer button:focus-visible, .lower-menu-toggle:focus-visible { outline:3px solid #1670df; outline-offset:3px; }
html body.sense-hybrid-top { margin:0; padding:0 0 144px !important; background:white; color:#000; }
html body.sense-hybrid-top .hd { position:fixed; inset:0 0 auto; z-index:100; display:flex; align-items:center; justify-content:space-between; height:64px; padding:10px 16px; box-sizing:border-box; background:transparent; box-shadow:none; }
.sense-hybrid-top .hd-logo img { display:block; width:128px; height:auto; }
.sense-hybrid-top .lower-header-actions { display:flex; gap:16px; align-items:center; }
.sense-hybrid-top .lower-store-link { font-size:14px; color:#191919; }
.sense-hybrid-top .lower-menu-toggle { position:relative; width:44px; height:44px; padding:0; border:0; background:none; cursor:pointer; }
.sense-hybrid-top .lower-menu-toggle span, .sense-hybrid-top .lower-menu-toggle::before, .sense-hybrid-top .lower-menu-toggle::after { content:""; position:absolute; left:9px; width:26px; height:2px; background:#191919; }
.sense-hybrid-top .lower-menu-toggle span { top:21px; } .sense-hybrid-top .lower-menu-toggle::before { top:13px; } .sense-hybrid-top .lower-menu-toggle::after { top:29px; }
.sense-hybrid-top .sectiona, .sense-hybrid-top .title-slide-up, .sense-hybrid-top .fade-in-up { opacity:1; visibility:visible; }
.sense-hybrid-top .lower-site-footer { padding:48px 20px 160px; background:#111; color:white; }
.sense-hybrid-top .lower-footer-brand img { width:180px; filter:brightness(0) invert(1); }
.sense-hybrid-top .lower-footer-nav { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:24px; max-width:1100px; margin:32px auto; }
.sense-hybrid-top .lower-footer-nav h2 { font-size:15px; font-weight:700; margin:0 0 16px; }
.sense-hybrid-top .lower-footer-nav a { display:block; margin:10px 0; color:white; font-size:13px; }
.sense-hybrid-top .lower-footer-copy { text-align:center; font-size:12px; }
.sense-hybrid-top .current-live-entrance { display:none; position:fixed; inset:0; z-index:20000; }
html body.sense-hybrid-top.sense-entry-active { overflow:hidden !important; }
html body.sense-hybrid-top.sense-entry-active .ft-tabbar { display:none !important; }
.sense-hybrid-top .current-live-entrance { overflow-y:auto !important; }
@media(min-width:760px) { .sense-iphone-section { padding:48px 24px 36px; } .sense-iphone-drawer { padding:16px 24px 40px; } }
@media(max-width:430px) { .sense-phone-frame { width:100%; max-width:430px; border:0; border-radius:0; } .sense-iphone-section { padding-left:0; padding-right:0; } .sense-iphone-drawer { padding-left:0; padding-right:0; } }

.sense-hybrid-top .hero-bottom { left:50%; transform:translateX(-50%); margin-left:0 !important; margin-right:0 !important; }

.sense-hybrid-top.is-scrolled .hd { background:rgba(255,255,255,.96); backdrop-filter:blur(12px); }
.sense-iphone-drawer-head { padding-inline:16px; box-sizing:border-box; }
.sense-iphone-section { scroll-margin-top:64px; }
/* Native-size contact media and off-screen carousel slides must stay in their sections. */
.sense-hybrid-top #contact img { max-width:100%; height:auto; }
.sense-hybrid-top #before-after { overflow:hidden; }

.sense-hybrid-top .hd-logo { margin-right:auto; }
.sense-iphone-drawer { padding-bottom:calc(144px + env(safe-area-inset-bottom, 0px)); }

/* Keep the close row separate from the scrollable menu: no sticky white overlay. */
.sense-iphone-drawer { overflow:hidden; }
.sense-iphone-drawer[open] { display:flex; flex-direction:column; }
.sense-iphone-drawer-head { position:relative; flex:0 0 auto; margin-bottom:0; background:transparent; }
.sense-iphone-drawer > .sense-phone-frame { flex:1 1 auto; min-height:0; overflow-y:auto; overscroll-behavior:contain; }
@media(max-width:759px) {
  .sense-iphone-section { width:100vw; max-width:none; margin-left:calc(50% - 50vw); }
  .sense-iphone-section .sense-phone-frame { width:100%; max-width:none; }
}

/* Avoid a persistent blue ring when the drawer focuses its close control. */
.sense-iphone-drawer [data-iphone-menu-close]:focus { outline:none; box-shadow:none; }
.sense-iphone-drawer [data-iphone-menu-close]:focus-visible { outline:2px solid #191919; outline-offset:2px; }

/* Put the menu in the close-row area. Only the close button intercepts
   pointer events; the centered pager remains usable beneath this row. */
.sense-iphone-drawer .sense-iphone-drawer-head {
  position:absolute;
  top:0;
  left:50%;
  transform:translateX(-50%);
  width:min(calc(100% - 32px),430px);
  padding:12px 0;
  pointer-events:none;
  z-index:3;
}
.sense-iphone-drawer-head [data-iphone-menu-close] { pointer-events:auto; }

/* Tighten the space above the embedded menu pager. */
.sense-iphone-section { padding-top:18px; }
@media(min-width:760px) { .sense-iphone-section { padding-top:28px; } }

/* スタイル読み込み前後の位置変化を防ぐため、
   ヒーローの初期レイアウトを定義する。 */
body.sense-hybrid-top #hero-new1 > .parallax-bg {
  height:auto; position:absolute; top:0; left:0; right:0; z-index:0;
  overflow:hidden; display:flex; justify-content:center;
  clip-path:polygon(0 0,100% 0,100% 100%,0 85%);
}
@media(min-width:768px) {
  body.sense-hybrid-top #hero-new1 .pc-layout { display:table !important; width:100%; }
  body.sense-hybrid-top #hero-new1 .pc-layout-cell { display:table-cell !important; width:50%; vertical-align:top; padding:10px; }
  body.sense-hybrid-top #hero-new1 .mobile-only { display:none !important; }
}
@media(max-width:767px) {
  body.sense-hybrid-top #hero-new1 .pc-only { display:none !important; }
  body.sense-hybrid-top #hero-new1 .mobile-only { display:block !important; }
}
