/* ----------------------------------------------------------
   SNL Inquiry — Premium UI CSS (Green Theme) v2
   Goal: calm, modern, high-contrast, touch-friendly, consistent spacing.
   Notes:
   - Works with CF7 (lots of <p>/<br>) by normalizing margins.
   - Active lang supports .is-active and aria-current.
---------------------------------------------------------- */

/* ============ Theme Tokens ============ */
:root{
  --snl-bg:#f7fafc;
  --snl-text:#0f172a;
  --snl-muted:#556171;

  --snl-surface:#fff;
  --snl-border:#e6edf3;

  --snl-green:#059669;
  --snl-green-2:#047857;
  --snl-green-soft:#ecfdf5;
  --snl-green-soft-2:#d1fae5;

  --snl-ring:rgba(52,211,153,.38);

  --snl-shadow:0 18px 50px rgba(2,6,23,.10);
  --snl-shadow-soft:0 10px 26px rgba(2,6,23,.08);

  --snl-radius:18px;
  --snl-radius-2:24px;

  --snl-container-wide:1040px;
  --snl-container:960px;
  --snl-formw:720px;

  --snl-gap:12px;
}

/* ============ Base ============ */
.snl-inquiry{
  background:var(--snl-bg);
  color:var(--snl-text);
  line-height:1.75;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  font-feature-settings:"palt";
}

/* fixed header anchor offset */
#snl-form{ scroll-margin-top:110px; }

.snl-hide-hero .mg-breadcrumb-section{ display:none!important; }

/* Focus ring (accessible + pretty) */
.snl-inquiry :focus-visible{
  outline:3px solid var(--snl-ring);
  outline-offset:2px;
  border-radius:14px;
}

/* Links inside inquiry */
.snl-inquiry a{
  color:inherit;
  text-decoration-color:rgba(5,150,105,.35);
  text-underline-offset:.18em;
}
.snl-inquiry a:hover{
  text-decoration-color:rgba(5,150,105,.65);
}

/* ============ Language Bar ============ */
.snl-langbar{
  width:min(var(--snl-container-wide),94vw);
  margin:24px auto 0;
  padding:10px 12px;

  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;

  border:1px solid rgba(15,23,42,.10);
  border-radius:9999px;
  background:rgba(255,255,255,.65);
  backdrop-filter:blur(10px);
  box-shadow:var(--snl-shadow-soft);
}

.snl-langbar a{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  padding:9px 16px;
  border-radius:9999px;
  border:1px solid rgba(5,150,105,.25);

  background:linear-gradient(180deg,#f1fbf5,#e8f4ec);
  color:#1f5b44;

  font-weight:800;
  letter-spacing:.01em;
  white-space:nowrap;

  transition:transform .12s ease, box-shadow .12s ease, background .12s ease, border-color .12s ease;
}

.snl-langbar a:hover{
  transform:translateY(-1px);
  border-color:rgba(5,150,105,.45);
  box-shadow:0 12px 24px rgba(2,6,23,.10);
  background:linear-gradient(180deg,#e9f9f0,#dff1e7);
}

.snl-langbar a.is-active,
.snl-langbar a[aria-current="page"],
.snl-langbar a[aria-current="true"]{
  background:linear-gradient(180deg,var(--snl-green),var(--snl-green-2));
  border-color:rgba(5,150,105,.75);
  color:#fff;
  box-shadow:0 14px 28px rgba(5,150,105,.25);
}

@media (max-width:680px){
  .snl-langbar{
    border-radius:16px;
    padding:10px 8px;
    gap:8px;
  }
  .snl-langbar a{ padding:9px 12px; }
}

/* ============ Hero ============ */
.snl-hero{
  width:min(var(--snl-container),92vw);
  margin:18px auto 18px;
  text-align:center;

  padding:clamp(18px,3.2vw,34px);
  border-radius:clamp(16px,2vw,var(--snl-radius-2));
  border:1px solid rgba(15,23,42,.10);

  background:
    radial-gradient(1200px 520px at 12% 0%, rgba(5,150,105,.18), transparent 55%),
    radial-gradient(900px 420px at 96% 18%, rgba(14,165,233,.12), transparent 60%),
    linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,1));

  box-shadow:var(--snl-shadow);
  position:relative;
  overflow:hidden;
}

/* subtle noise-like sheen (cheap + effective) */
.snl-hero::after{
  content:"";
  position:absolute;
  inset:-40%;
  background:
    radial-gradient(circle at 30% 20%, rgba(255,255,255,.55), transparent 35%),
    radial-gradient(circle at 70% 30%, rgba(255,255,255,.35), transparent 40%);
  transform:rotate(8deg);
  pointer-events:none;
  opacity:.55;
}

.snl-hero__title{
  position:relative;
  z-index:1;
  margin:0;
  font-size:clamp(22px,3.4vw,36px);
  line-height:1.22;
  font-weight:900;
  letter-spacing:-.012em;
}

.snl-hero__lede{
  position:relative;
  z-index:1;
  margin:.65rem auto 0;
  max-width:min(720px,88vw);
  color:var(--snl-muted);
  font-weight:650;
  line-height:1.85;
}

.snl-hero__badge{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;

  margin:.75rem 0 1rem;
  padding:.38rem .75rem;

  border-radius:9999px;
  border:1px solid rgba(15,23,42,.12);
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(8px);

  font-size:.92rem;
  color:#334155;
}

/* CTA */
.snl-hero__cta{
  position:relative;
  z-index:1;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  padding:.9rem 1.35rem;
  border-radius:9999px;
  text-decoration:none;

  color:#fff;
  font-weight:900;
  letter-spacing:.01em;

  background:linear-gradient(180deg,var(--snl-green),var(--snl-green-2));
  box-shadow:0 16px 36px rgba(5,150,105,.22);
  transition:transform .12s ease, box-shadow .12s ease, filter .2s ease;
}
.snl-hero__cta:hover{
  transform:translateY(-1px);
  box-shadow:0 20px 44px rgba(5,150,105,.26);
  filter:saturate(1.05);
}

/* ============ Form Wrap / Card ============ */
.snl-formwrap{
  margin:18px 0 44px;
  display:flex;
  justify-content:center;
  padding:4px;
}

.snl-card{
  width:min(var(--snl-formw),92vw);
  background:var(--snl-surface);
  border:1px solid var(--snl-border);
  border-radius:var(--snl-radius);
  padding:clamp(16px,3.4vw,28px);
  box-shadow:var(--snl-shadow);
  overflow:hidden;
  box-sizing:border-box;
}

/* ============ CF7 Normalizing ============ */
.snl-inquiry .snl-form p{
  margin:0 0 .95rem;
}
.snl-inquiry .snl-form br{ display:none; } /* <br> だらけ対策（レイアウトの安定） */

/* help CF7 default wrappers */
.snl-inquiry .wpcf7-form-control-wrap{ display:block; }

/* Grid rows */
.snl-form__row{ margin:.8rem 0; }
.snl-form__row--grid2{
  display:grid;
  gap:var(--snl-gap);
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}

/* Labels */
.snl-label{
  display:block;
  margin:.15rem 0 .38rem;
  font-weight:850;
  color:#10243b;
  letter-spacing:.01em;
}

/* Inputs */
.snl-form input[type="text"],
.snl-form input[type="email"],
.snl-form input[type="url"],
.snl-form input[type="date"],
.snl-form select,
.snl-form textarea{
  width:100%;
  border:1px solid rgba(16,36,59,.18);
  border-radius:14px;
  padding:.82rem .92rem;
  line-height:1.45;

  background:linear-gradient(180deg,#ffffff,#fbfdff);
  color:var(--snl-text);

  box-shadow:inset 0 1px 0 rgba(2,6,23,.04);
  transition:border-color .15s ease, box-shadow .15s ease, transform .12s ease;
}

.snl-form textarea{
  min-height:150px;
  resize:vertical;
}

/* Focus */
.snl-form input:focus,
.snl-form textarea:focus,
.snl-form select:focus{
  outline:0;
  border-color:rgba(52,211,153,.85);
  box-shadow:0 0 0 4px rgba(167,243,208,.9);
}

/* ============ Fieldset ============ */
.snl-fieldset{
  border:1px solid rgba(15,23,42,.10);
  border-radius:16px;
  padding:1rem 1.05rem;
  background:rgba(255,255,255,.90);
}

.snl-legend{
  font-weight:900;
  color:#10243b;
  padding:0 .25rem;
  margin:0 0 .55rem;
}

/* Radio / Checkbox (bigger tap targets) */
span.wpcf7-list-item{ margin:0 14px 10px 0; display:inline-block; }
.wpcf7-radio label,
.wpcf7-checkbox label{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  cursor:pointer;
  user-select:none;
}

/* Make the actual input slightly larger (works on modern browsers) */
.wpcf7-radio input[type="radio"],
.wpcf7-checkbox input[type="checkbox"]{
  width:1.05rem;
  height:1.05rem;
  accent-color:var(--snl-green);
}

/* ============ Submit Button ============ */
.snl-actions{
  display:flex;
  justify-content:center;
  margin-top:1.25rem;
}

input.wpcf7-submit,
.snl-btn,
input.wpcf7-submit.snl-btn{
  appearance:none;
  border:0;
  cursor:pointer;

  border-radius:9999px;
  padding:.95rem 1.6rem;

  font-weight:900;
  letter-spacing:.01em;

  color:#fff;
  background:linear-gradient(180deg,var(--snl-green),var(--snl-green-2));
  box-shadow:0 16px 36px rgba(5,150,105,.22);

  transition:transform .12s ease, box-shadow .12s ease, filter .2s ease;
}

input.wpcf7-submit:hover,
.snl-btn:hover{
  transform:translateY(-1px);
  box-shadow:0 20px 44px rgba(5,150,105,.26);
  filter:saturate(1.05);
}

input.wpcf7-submit[disabled]{
  opacity:.6;
  cursor:not-allowed;
  transform:none;
  filter:none;
}

/* ============ CF7 Messages ============ */
.wpcf7 form .wpcf7-response-output{
  margin-top:14px;
  border-radius:16px;
  border:1px solid rgba(6,95,70,.18);
  background:rgba(240,253,244,.95);
  color:#065f46;
  padding:.95rem 1.05rem;
}

.wpcf7 form .wpcf7-not-valid-tip{
  font-size:.92rem;
  margin-top:.35rem;
  color:#b91c1c;
}

/* ============ Alt section ============ */
.snl-alt{ margin:0 0 56px; }
.snl-alt__inner{
  width:min(var(--snl-formw),92vw);
  margin:0 auto;
  text-align:center;

  color:#475569;
  border:1px solid rgba(15,23,42,.10);
  border-radius:var(--snl-radius);
  background:rgba(255,255,255,.65);
  backdrop-filter:blur(8px);
  box-shadow:var(--snl-shadow-soft);

  padding:14px 16px;
}

/* ============ Press Release Button ============ */
.snl-pressrelease-link{
  margin:2.2rem 0 3rem;
  padding:1.6rem 0 2.2rem;
  text-align:center;
}

.snl-pressrelease-link__inner{
  max-width:var(--snl-container);
  margin:0 auto;
}

.snl-btn-secondary{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  padding:.85rem 1.65rem;
  border-radius:9999px;

  background:linear-gradient(180deg,var(--snl-green-soft),var(--snl-green-soft-2));
  color:#065f46;

  font-weight:900;
  text-decoration:none;
  border:1px solid rgba(52,211,153,.50);

  box-shadow:0 10px 24px rgba(2,6,23,.08);
  transition:transform .12s ease, box-shadow .12s ease, filter .2s ease;
}
.snl-btn-secondary:hover{
  transform:translateY(-1px);
  box-shadow:0 14px 30px rgba(2,6,23,.10);
  filter:saturate(1.03);
}

/* ============ Responsive ============ */
@media (max-width:480px){
  .snl-card{
    padding:16px;
    border-radius:14px;
  }
  .snl-legend{ font-size:.98rem; }
}

/* ============ Reduced motion ============ */
@media (prefers-reduced-motion:reduce){
  .snl-langbar a,
  .snl-hero__cta,
  input.wpcf7-submit,
  .snl-btn,
  .snl-btn-secondary{
    transition:none!important;
  }
}
