/* NYANKO / CONTACT CTA 3.0 — 20260910-r3-cta-news
   Shared, isolated styles for all seven pages. No .btn or page-specific rules.
   Edit this file instead of duplicating CTA styles in each page.
   Main CTA: 3 equal columns at >=900px, 1 column below.
   Dock: <=767px, three equal columns, safe-area padding included.
*/
:root {
  --ny-cta-ink:#315e79;
  --ny-cta-blue:#497e9f;
  --ny-cta-pale:#eef7fc;
  --ny-cta-fill:#dcecf6;
  --ny-cta-border:#b4d0e2;
  --ny-cta-green:#148347;
  --ny-cta-text:#4c687b;
  --ny-cta-font:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;
  --ny-safe-bottom:env(safe-area-inset-bottom,0px);
  --ny-dock-base:64px;
  --ny-dock-gap:8px;
  --ny-dock-radius:12px;
}
.ny-contact-section,.ny-contact-actions,.ny-contact-button,.ny-contact-dock {
  font-family:var(--ny-cta-font); font-style:normal; font-size:16px; font-weight:400; line-height:1.8; letter-spacing:normal;
  -webkit-text-size-adjust:100%; text-transform:none;
}
.ny-contact-section *,.ny-contact-section *::before,.ny-contact-section *::after,
.ny-contact-actions *,.ny-contact-button,.ny-contact-button *,.ny-contact-dock * {
  box-sizing:border-box;
}
.ny-contact-section {
  position:relative; margin:0; padding:60px 0 66px;
  border:0; border-top:1px solid #dcebf4;
  background:linear-gradient(180deg,#f5fbff 0%,#eaf5fb 100%);
  color:var(--ny-cta-text); text-align:center; overflow:visible;
}
.ny-contact-wrap {
  display:block; width:calc(100% - 48px); max-width:1080px; margin:0 auto; padding:0;
}
.ny-contact-section .ny-contact-mascot {
  display:block; position:static; width:88px; height:90px; max-width:100%; margin:0 auto 16px;
  object-fit:contain; border:0; border-radius:0; transform:none;
}
.ny-contact-section .ny-contact-eyebrow {
  margin:0 0 10px; padding:0; color:var(--ny-cta-blue);
  font:700 11px/1.5 var(--ny-cta-font); letter-spacing:.2em;
}
.ny-contact-section .ny-contact-title {
  margin:0; padding:0; color:var(--ny-cta-blue);
  font:700 28px/1.55 var(--ny-cta-font); letter-spacing:.025em;
  overflow-wrap:anywhere;
}
.ny-contact-section .ny-contact-description {
  max-width:760px; margin:16px auto 0; padding:0;
  color:var(--ny-cta-text); font:400 14px/1.95 var(--ny-cta-font);
}
.ny-contact-actions {
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px;
  width:100%; max-width:1080px; margin:0 auto; padding:0; align-items:stretch;
}
.ny-contact-section .ny-contact-actions { margin-top:30px; }
a.ny-contact-button {
  --ny-button-bg:var(--ny-cta-fill); --ny-button-fg:var(--ny-cta-ink); --ny-button-border:var(--ny-cta-border);
  display:flex; flex-direction:row; align-items:center; justify-content:center; gap:12px;
  box-sizing:border-box; position:relative; width:100%; min-width:0; min-height:84px;
  height:auto; margin:0; padding:16px; border:1px solid var(--ny-button-border); border-radius:16px;
  background:var(--ny-button-bg); background-image:none; color:var(--ny-button-fg);
  text-decoration:none; text-align:center; line-height:1.5; font-weight:700;
  box-shadow:0 5px 14px #315e7908; cursor:pointer;
  transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease;
  -webkit-tap-highlight-color:transparent;
}
a.ny-contact-button:visited { color:var(--ny-button-fg); }
a.ny-contact-button--line {
  --ny-button-bg:var(--ny-cta-green); --ny-button-fg:#fff; --ny-button-border:var(--ny-cta-green);
}
a.ny-contact-button--phone {
  --ny-button-bg:#f6fbfe; --ny-button-fg:var(--ny-cta-ink); --ny-button-border:var(--ny-cta-border);
}
a.ny-contact-button--form {
  --ny-button-bg:var(--ny-cta-fill); --ny-button-fg:var(--ny-cta-ink); --ny-button-border:var(--ny-cta-border);
}
a.ny-contact-button .ny-contact-icon {
  display:block; width:26px; height:26px; min-width:26px; flex:0 0 26px;
  fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round;
  margin:0; padding:0; border:0; border-radius:0;
}
a.ny-contact-button .ny-contact-labels {
  display:flex; flex-direction:column; align-items:center; gap:4px; min-width:0;
  color:inherit;
}
a.ny-contact-button .ny-contact-primary {
  display:block; margin:0; padding:0; color:inherit;
  font:700 18px/1.4 var(--ny-cta-font); letter-spacing:0; overflow-wrap:anywhere;
}
a.ny-contact-button--phone .ny-contact-primary {
  font:700 21px/1.2 Arial,sans-serif; white-space:nowrap; font-variant-numeric:tabular-nums;
}
a.ny-contact-button .ny-contact-secondary {
  display:block; margin:0; padding:0; color:inherit; opacity:1;
  font:500 11px/1.5 var(--ny-cta-font); letter-spacing:0;
}
a.ny-contact-button:focus-visible {
  outline:3px solid #284f68 !important; outline-offset:4px;
}
@media (hover:hover) {
  a.ny-contact-button:hover { text-decoration:none; border-color:#6e9fbb; box-shadow:0 6px 18px #315e7919; }
  a.ny-contact-button--line:hover { --ny-button-bg:#106d3b; --ny-button-border:#106d3b; }
  a.ny-contact-button--phone:hover { --ny-button-bg:#e6f2f9; }
  a.ny-contact-button--form:hover { --ny-button-bg:#cce2f0; }
}
.ny-contact-section .ny-contact-note {
  margin:20px 0 0; padding:0; color:var(--ny-cta-text); font:400 12px/1.9 var(--ny-cta-font);
}
.ny-contact-section .ny-contact-notice {
  margin:7px 0 0; padding:0; color:#4a6373; font:400 12px/1.9 var(--ny-cta-font);
}
.ny-contact-dock { display:none; }
/* Service-detail accordions use the same buttons, not independent colours or icons. */
.ny-contact-actions[data-cta-scope="service"] { margin-block:18px 0; }
/* Contact method cards retain their illustrations and copy, sharing the same button. */
.method-card > a.ny-contact-button { margin-top:20px; }
body.ny-has-contact-dock { padding-bottom:0; }
@media (max-width:899px) {
  .ny-contact-actions { grid-template-columns:1fr; gap:12px; max-width:480px; }
  a.ny-contact-button { min-height:78px; padding:14px 18px; }
}
@media (max-width:767px) {
  body.ny-has-contact-dock { padding-bottom:calc(var(--ny-dock-base) + var(--ny-safe-bottom)); }
  .ny-contact-section { padding-block:44px 48px; }
  .ny-contact-wrap { width:calc(100% - 32px); }
  .ny-contact-section .ny-contact-mascot { width:72px; height:76px; margin-bottom:14px; }
  .ny-contact-section .ny-contact-title { font-size:23px; line-height:1.6; letter-spacing:0; }
  .ny-contact-section .ny-contact-description { margin-top:12px; font-size:13px; }
  .ny-contact-section .ny-contact-actions { margin-top:25px; }
  .ny-contact-section .ny-contact-note,.ny-contact-section .ny-contact-notice { font-size:11px; }
  .ny-contact-dock {
    display:block; position:fixed; z-index:1500; left:0; right:0; bottom:0;
    box-sizing:border-box; margin:0; padding:8px max(8px,env(safe-area-inset-right,0px)) calc(8px + var(--ny-safe-bottom)) max(8px,env(safe-area-inset-left,0px));
    background:#fff; border:0; border-top:1px solid #cddfeb;
    box-shadow:0 -4px 18px #315e7912; color:var(--ny-cta-ink);
  }
  .ny-contact-dock-inner { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:var(--ny-dock-gap); margin:0 auto; padding:0; width:100%; max-width:600px; }
  .ny-contact-dock a.ny-contact-button {
    flex-direction:row; gap:0; min-height:44px; height:auto; padding:10px 4px;
    width:100%; min-width:0; margin:0; border:0; border-radius:var(--ny-dock-radius);
    box-shadow:none; font-size:12px; line-height:1.45;
  }
  /* Match the supplied reference: green LINE / muted teal phone / pale blue form. */
  .ny-contact-dock a.ny-contact-button--line { --ny-button-bg:#12a954; --ny-button-fg:#fff; }
  .ny-contact-dock a.ny-contact-button--phone { --ny-button-bg:#4b8d97; --ny-button-fg:#fff; }
  .ny-contact-dock a.ny-contact-button--form { --ny-button-bg:#dcecf6; --ny-button-fg:#315e79; }
  .ny-contact-dock a.ny-contact-button .ny-contact-icon { display:none; }
  .ny-contact-dock a.ny-contact-button .ny-contact-dock-label { display:block; margin:0; padding:0; color:inherit; font:700 12px/1.45 var(--ny-cta-font); letter-spacing:0; white-space:normal; overflow-wrap:anywhere; }
  /* Allow additional room when text is enlarged; no clipping of a label. */
  .ny-contact-dock a.ny-contact-button:focus-visible { outline-offset:2px; }
}
@media (max-width:359px) {
  a.ny-contact-button { padding-inline:10px; gap:8px; }
  a.ny-contact-button .ny-contact-primary { font-size:16px; }
  a.ny-contact-button--phone .ny-contact-primary { font-size:18px; }
  a.ny-contact-button .ny-contact-icon { width:22px; height:22px; min-width:22px; flex-basis:22px; }
}
@media (prefers-reduced-motion:no-preference) {
  .ny-contact-section .ny-contact-mascot:hover { animation:ny-cat-hello 1.2s ease-in-out 1; animation-timeline:auto; }
}
@media (prefers-reduced-motion:reduce) {
  a.ny-contact-button { transition:none; }
  .ny-contact-section .ny-contact-mascot { animation:none!important; translate:none!important; rotate:none!important; }
}
@media print {
  body.ny-has-contact-dock { padding-bottom:0; }
  .ny-contact-dock { display:none!important; }
  .ny-contact-section { break-inside:avoid; background:#fff; box-shadow:none; }
  a.ny-contact-button { box-shadow:none; }
}
