/* Shared offer: full card on desktop, tap-to-expand bottom card on mobile. */
.floating-contact{display:none}
.floating-contact-summary{display:none}
@media(min-width:901px){
  .floating-contact:not([hidden]){display:block}
  .floating-contact{position:fixed;z-index:900;right:var(--pad);bottom:clamp(24px,7.4vh,80px);width:clamp(300px,17.71vw,340px);max-height:calc(100dvh - 140px);padding:22px 23px 24px;overflow-y:auto;border:1px solid #3b3b3b;border-radius:12px;background:#000;color:#fff;box-shadow:0 0 0 1px rgba(255,255,255,.035);font-family:"Roboto","Noto Sans JP",sans-serif;font-feature-settings:"palt" 1;line-height:1.65;letter-spacing:0;animation:dz-floating-contact-in .2s ease-out}
  .floating-contact-close{position:absolute;top:9px;right:9px;width:28px;height:28px;padding:0;border:0;background:none;color:#aaa;cursor:pointer}
  .floating-contact-close span:before,.floating-contact-close span:after{content:"";position:absolute;left:8px;top:13px;width:13px;height:1px;background:currentColor;transform:rotate(45deg)}
  .floating-contact-close span:after{transform:rotate(-45deg)}
  .floating-contact-close:hover{color:#fff}
  .floating-contact-close:focus-visible,.floating-contact-cta:focus-visible{outline:2px solid #d9d4c4;outline-offset:3px}
  .floating-contact-badge{width:calc(100% - 36px);min-height:38px;margin:0 0 12px;padding:6px 10px;border:1px solid #777;border-radius:999px;text-align:center;font-size:14px;font-weight:700;line-height:1.65}
  .floating-contact-title{margin:0 0 6px;font-size:clamp(16px,1.04vw,18px);font-weight:700;line-height:1.5;font-feature-settings:"palt" 1;overflow-wrap:anywhere}
  .floating-contact-description{margin:0 0 13px;color:#999;font-size:clamp(12px,.73vw,14px);line-height:1.75;overflow-wrap:anywhere}
  .floating-contact-cta{display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:52px;padding:11px 12px;border:1px solid #666;background:#d9d4c4;color:#000;font-size:clamp(12px,.84vw,16px);font-weight:700;line-height:1.4;text-decoration:none}
  .floating-contact-cta>span:last-child{flex-shrink:0}
  .floating-contact-cta:hover{background:#ece8dc}
  html:not([lang="ja"]) .floating-contact-title{font-size:17px}
  html:not([lang="ja"]) .floating-contact-description{font-size:13px;line-height:1.65}
  html:not([lang="ja"]) .floating-contact-cta{font-size:14px}
}
@keyframes dz-floating-contact-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){
  .floating-contact:not([hidden]){display:block}
  .floating-contact{position:fixed;z-index:900;left:4%;right:4%;bottom:calc(12px + env(safe-area-inset-bottom,0px));max-height:calc(85dvh - env(safe-area-inset-bottom,0px));overflow-y:auto;border:1px solid #444;border-radius:12px;background:#000;color:#fff;font-family:"Roboto","Noto Sans JP",sans-serif;font-feature-settings:"palt" 1;letter-spacing:0;line-height:1.6;overscroll-behavior:contain;animation:dz-floating-contact-in .2s ease-out}
  .floating-contact:not(.is-expanded)>:not(.floating-contact-summary){display:none}
  .floating-contact-summary{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:6px 12px;width:100%;padding:12px 24px;border:0;background:none;color:inherit;text-align:left;font:inherit;cursor:pointer}
  .floating-contact-summary-badge{grid-column:1;color:#999;font-size:14px;line-height:1.4}
  .floating-contact-summary-title{grid-column:1;font-size:18px;line-height:1.45;overflow-wrap:anywhere}
  .floating-contact-summary-arrow{grid-column:2;grid-row:1 / span 2;align-self:center;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#d9d4c4;color:#000;font-size:24px;line-height:1}
  .floating-contact.is-expanded{padding:30px 24px 24px}
  .floating-contact.is-expanded .floating-contact-summary{position:absolute;left:0;top:0;height:25px;padding:0;display:block}
  .floating-contact.is-expanded .floating-contact-summary:after{content:"";position:absolute;top:12px;left:44%;width:12%;height:2px;background:#444}
  .floating-contact.is-expanded .floating-contact-summary>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .floating-contact-close{position:absolute;top:21px;right:12px;width:36px;height:36px;padding:0;border:0;background:none;color:#ddd;cursor:pointer}
  .floating-contact-close span:before,.floating-contact-close span:after{content:"";position:absolute;left:9px;top:17px;width:18px;height:1px;background:currentColor;transform:rotate(45deg)}
  .floating-contact-close span:after{transform:rotate(-45deg)}
  .floating-contact-badge{width:calc(100% - 34px);margin:0 0 14px;padding:7px 8px;border:1px solid #777;border-radius:999px;text-align:center;font-size:16px;font-weight:700;line-height:1.6}
  .floating-contact-title{margin:0 0 10px;font-size:20px;line-height:1.5;overflow-wrap:anywhere}
  .floating-contact-description{margin:0 0 16px;color:#999;font-size:14px;line-height:1.8;overflow-wrap:anywhere}
  .floating-contact-cta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:54px;padding:12px 14px;background:#d9d4c4;color:#000;font-size:16px;font-weight:700;line-height:1.5;text-decoration:none}
  .floating-contact-cta>span:last-child{flex-shrink:0}
  .floating-contact-summary:focus-visible,.floating-contact-close:focus-visible,.floating-contact-cta:focus-visible{outline:2px solid #d9d4c4;outline-offset:-3px}
  html:not([lang="ja"]) .floating-contact-summary-title{font-size:16px}
  html:not([lang="ja"]) .floating-contact-title{font-size:18px}
  html:not([lang="ja"]) .floating-contact-cta{font-size:14px}
}
@media(prefers-reduced-motion:reduce){.floating-contact{animation:none}}
