/* A-307: responsive LINE inquiry CTA candidate. Local/predeploy only. */
:root{
  --a307-line-green:#06c755;
  --a307-line-green-deep:#05a848;
}
.a307-inquiry-mobile,
.a307-inquiry-desktop{display:none;}

@media (max-width: 767px){
  body.a307-inquiry-visible{padding-bottom:72px;}
  .a307-inquiry-mobile{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:999;
    display:flex;
    align-items:center;
    gap:10px;
    padding:9px max(10px, env(safe-area-inset-right)) calc(9px + env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));
    background:rgba(255,250,248,.97);
    border-top:1px solid #ead7d0;
    box-shadow:0 -8px 22px rgba(53,24,23,.10);
    transform:translateY(120%);
    opacity:0;
    pointer-events:none;
    transition:transform .22s ease, opacity .22s ease;
  }
  body.a307-inquiry-visible .a307-inquiry-mobile{
    transform:translateY(0);
    opacity:1;
    pointer-events:auto;
  }
  .a307-inquiry-mobile-copy{
    min-width:0;
    flex:1 1 auto;
    color:#351817;
    font-size:12.5px;
    line-height:1.35;
    font-weight:700;
  }
  .a307-inquiry-mobile-link{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:44px;
    padding:0 15px;
    border-radius:999px;
    background:var(--a307-line-green);
    color:#fff;
    text-decoration:none;
    font-size:13px;
    line-height:1;
    font-weight:800;
    box-shadow:0 6px 14px rgba(6,199,85,.22);
  }
  .a307-inquiry-mobile-link:active{background:var(--a307-line-green-deep);}
}

@media (min-width: 768px){
  .a307-inquiry-desktop{
    position:fixed;
    right:24px;
    bottom:24px;
    z-index:999;
    display:block;
    opacity:0;
    transform:translateY(16px);
    pointer-events:none;
    transition:opacity .22s ease, transform .22s ease;
  }
  body.a307-inquiry-visible .a307-inquiry-desktop{
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
  }
  .a307-inquiry-trigger{
    display:inline-flex;
    align-items:center;
    gap:9px;
    min-height:52px;
    padding:0 18px;
    border:0;
    border-radius:999px;
    background:var(--a307-line-green);
    color:#fff;
    font:inherit;
    font-size:14px;
    font-weight:800;
    cursor:pointer;
    box-shadow:0 12px 26px rgba(53,24,23,.19);
  }
  .a307-inquiry-trigger::before{
    content:'?';
    display:grid;
    place-items:center;
    width:24px;
    height:24px;
    border:2px solid currentColor;
    border-radius:50%;
    font-size:14px;
    font-weight:900;
  }
  .a307-inquiry-panel{
    position:absolute;
    right:0;
    bottom:64px;
    width:294px;
    padding:20px;
    border:1px solid #ead7d0;
    border-radius:18px;
    background:#fffaf8;
    box-shadow:0 18px 44px rgba(53,24,23,.20);
    opacity:0;
    transform:translateY(8px) scale(.98);
    transform-origin:bottom right;
    pointer-events:none;
    visibility:hidden;
    transition:opacity .18s ease, transform .18s ease, visibility .18s ease;
  }
  .a307-inquiry-desktop.is-open .a307-inquiry-panel{
    opacity:1;
    transform:translateY(0) scale(1);
    pointer-events:auto;
    visibility:visible;
  }
  .a307-inquiry-close{
    position:absolute;
    top:9px;
    right:10px;
    width:32px;
    height:32px;
    border:0;
    border-radius:50%;
    background:transparent;
    color:#625653;
    font-size:22px;
    line-height:1;
    cursor:pointer;
  }
  .a307-inquiry-title{margin:0 28px 6px 0;font-size:17px;line-height:1.45;color:#351817;font-weight:800;}
  .a307-inquiry-lead{margin:0 0 14px;color:#625653;font-size:13px;line-height:1.7;}
  .a307-inquiry-qr-wrap{
    display:grid;
    place-items:center;
    width:178px;
    height:178px;
    margin:0 auto 12px;
    padding:8px;
    border:1px solid #ead7d0;
    border-radius:14px;
    background:#fff;
  }
  .a307-inquiry-qr{display:block;width:160px;height:160px;object-fit:contain;}
  .a307-inquiry-qr-note{margin:0 0 13px;text-align:center;color:#625653;font-size:12px;line-height:1.55;}
  .a307-inquiry-open-line{
    display:flex;
    min-height:46px;
    align-items:center;
    justify-content:center;
    width:100%;
    border-radius:999px;
    background:var(--a307-line-green);
    color:#fff;
    text-decoration:none;
    font-size:14px;
    font-weight:800;
  }
}

@media (prefers-reduced-motion: reduce){
  .a307-inquiry-mobile,.a307-inquiry-desktop,.a307-inquiry-panel{transition:none!important;}
}
