
/* =========================================================
   S10 — Public services
   One outer white Premium Glass.
   Two service columns, no nested glass cards.
   ========================================================= */

.public-wrap{
  max-width:1600px;
  margin:0 auto 74px;
  padding:0 28px;
  position:relative;
}

.public-glass{
  position:relative;
  overflow:hidden;
  border-radius:34px;
  background:rgba(249,252,255,.875);
  backdrop-filter:blur(30px) saturate(126%);
  -webkit-backdrop-filter:blur(30px) saturate(126%);
  box-shadow:
    0 24px 72px rgba(7,27,59,.18),
    inset 0 1px 0 rgba(255,255,255,.40),
    inset 0 -1px 0 rgba(59,106,171,.04);
}

.public-intro{
  padding:52px 58px 30px;
  text-align:center;
}

.public-kicker{
  margin:0 0 13px;
  color:#4d8aca;
  font-size:15px;
  line-height:1.6;
  font-weight:600;
  letter-spacing:.03em;
}

.public-intro h2{
  margin:0;
  color:#082f74;
  font-family:"Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
  font-size:clamp(44px,3.18vw,52px);
  line-height:1.28;
  font-weight:700;
  letter-spacing:.002em;
  word-break:normal;
  line-break:strict;
  text-wrap:balance;
}

.public-lead{
  max-width:1060px;
  margin:21px auto 0;
  color:#17395f;
  font-size:clamp(16px,1.02vw,19px);
  line-height:1.76;
  font-weight:400;
  text-wrap:pretty;
}

.public-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  margin:0 58px;
  border-top:1px solid rgba(47,98,161,.14);
  border-bottom:1px solid rgba(47,98,161,.14);
}

.public-service{
  min-width:0;
  padding:36px 38px 40px;
  display:flex;
  flex-direction:column;
}

.public-service + .public-service{
  border-left:1px solid rgba(47,98,161,.14);
}

.public-akiya{
  position:relative;
}

.public-akiya::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(
      135deg,
      rgba(214,231,250,.08),
      rgba(197,222,248,.13) 52%,
      rgba(212,230,249,.08));
  pointer-events:none;
}

.public-service-copy{
  min-height:238px;
}

.public-service-label{
  margin:0 0 8px;
  color:#4b88c8;
  font-size:13px;
  line-height:1.5;
  font-weight:600;
  letter-spacing:.08em;
}

.public-service h3{
  margin:0;
  color:#082f74;
  font-size:clamp(26px,1.85vw,34px);
  line-height:1.38;
  font-weight:700;
}

.public-service-catch{
  margin:12px 0 0;
  color:#0e3f7e;
  font-family:"Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro",serif;
  font-size:clamp(22px,1.50vw,28px);
  line-height:1.48;
  font-weight:600;
  text-wrap:balance;
}

.public-service-body{
  margin:14px 0 0;
  color:#29496c;
  font-size:clamp(15px,.98vw,18px);
  line-height:1.72;
  font-weight:400;
  text-wrap:pretty;
}

.public-figure{
  margin:0;
  min-width:0;
}

.public-figure img{
  display:block;
  width:100%;
  height:auto;
  max-height:410px;
  object-fit:cover;
  object-position:top center;
  border-radius:16px;
  box-shadow:
    0 18px 36px rgba(14,49,94,.14),
    0 1px 0 rgba(255,255,255,.42);
}

.public-figure figcaption{
  margin-top:9px;
  color:#61758d;
  font-size:13px;
  line-height:1.55;
  font-weight:400;
  text-align:center;
}

.public-primary-cta{
  margin:24px auto 0;
  width:min(100%,360px);
  background:
    radial-gradient(120% 180% at 8% -20%,
      rgba(255,255,255,.42) 0%,
      rgba(255,255,255,.14) 34%,
      transparent 60%),
    radial-gradient(70% 150% at 90% 110%,
      rgba(110,192,255,.24) 0%,
      rgba(255,255,255,.04) 50%,
      transparent 76%),
    linear-gradient(112deg,
      rgba(34,126,255,.86),
      rgba(19,87,207,.88) 46%,
      rgba(14,58,163,.92));
}

.public-note{
  margin:0 58px;
  padding:28px 0 38px;
  color:#61758d;
  font-size:13px;
  line-height:1.68;
  font-weight:400;
  text-align:center;
}

/* Tablet */
@media(max-width:1200px){
  .public-wrap{padding:0 20px;margin-bottom:56px}
  .public-intro{padding:44px 42px 27px}
  .public-grid{margin:0 42px}
  .public-service{padding:32px 28px 36px}
  .public-service-copy{min-height:230px}
  .public-figure img{max-height:350px}
  .public-note{margin:0 42px;padding:25px 0 34px}
}

/* Mobile */
@media(max-width:760px){
  .public-wrap{padding:0 10px;margin-bottom:40px}

  .public-glass{
    border-radius:26px;
    background:rgba(249,252,255,.875);
  }

  .public-intro{
    padding:31px 20px 23px;
    text-align:left;
  }

  .public-kicker{
    margin-bottom:10px;
    font-size:13px;
  }

  .public-intro h2{
    font-size:31px;
    line-height:1.34;
    text-wrap:pretty;
  }

  .public-desktop-break{display:none}

  .public-lead{
    margin-top:17px;
    font-size:15px;
    line-height:1.72;
  }

  .public-grid{
    display:block;
    margin:0 20px;
  }

  .public-service{
    padding:28px 0 31px;
  }

  .public-service + .public-service{
    border-left:0;
    border-top:1px solid rgba(47,98,161,.14);
  }

  .public-akiya::before{
    inset:0 -10px;
  }

  .public-service-copy{
    min-height:0;
  }

  .public-service h3{
    font-size:27px;
  }

  .public-service-catch{
    font-size:21px;
    line-height:1.48;
  }

  .public-service-body{
    font-size:15px;
    line-height:1.72;
  }

  .public-figure{
    margin-top:20px;
  }

  .public-figure img{
    max-height:none;
    border-radius:14px;
  }

  .public-primary-cta{
    width:min(100%,330px);
    margin-top:20px;
  }

  .public-note{
    margin:0 20px;
    padding:24px 0 30px;
    text-align:left;
    font-size:13px;
  }
}

@media(max-width:370px){
  .public-intro h2{font-size:28px}
}


/* =========================================================
   V47 — S10 approved screenshots / equal PC visual height
   ========================================================= */

/* Desktop / tablet: both service columns use the same content rhythm. */
@media(min-width:761px){
  .public-service{
    display:grid;
    grid-template-rows:auto auto auto;
    align-content:start;
  }

  .public-service-copy{
    min-height:238px;
  }

  .public-figure{
    align-self:start;
  }

  .public-image-frame{
    width:100%;
    aspect-ratio:1.66 / 1;
    overflow:hidden;
    border-radius:16px;
    background:rgba(237,244,252,.64);
    box-shadow:
      0 18px 36px rgba(14,49,94,.14),
      0 1px 0 rgba(255,255,255,.42);
  }

  .public-image-frame img{
    width:100%;
    height:100%;
    max-height:none;
    object-fit:cover;
    object-position:top center;
    border-radius:0;
    box-shadow:none;
  }

  .public-primary-cta{
    align-self:end;
    justify-self:center;
  }
}

/* Mobile: preserve each screenshot's natural ratio for readability. */
@media(max-width:760px){
  .public-image-frame{
    width:100%;
    aspect-ratio:auto;
    overflow:visible;
    border-radius:14px;
    background:transparent;
    box-shadow:none;
  }

  .public-image-frame img{
    width:100%;
    height:auto;
    object-fit:contain;
    border-radius:14px;
    box-shadow:
      0 14px 28px rgba(14,49,94,.13),
      0 1px 0 rgba(255,255,255,.40);
  }
}
