    :root{
      --bg: #f4fbf6;
      --paper: #ffffff;
      --ink: #2b2b2b;
      --muted: #6b7280;

      --brand: #7fc8a9;      /* ほんのり緑ベース */
      --brand2: #a7ffb5;
      --accent: #f6c400;     /* 黄色アクセント（少し残す） */
      --accent2:#5bc0ff;     /* ほんのりブルー（使うなら） */
      --line: #dbece4;

      --shadow: 0 10px 30px rgba(0,0,0,.08);
      --shadow2: 0 6px 18px rgba(0,0,0,.10);
      --r: 18px;
    }

    *{ box-sizing:border-box; }
    body{
      margin:0;
      font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Hiragino Kaku Gothic ProN",
                   "Hiragino Sans", "Noto Sans JP", "Yu Gothic", "Meiryo", sans-serif;
      color:var(--ink);
      background: linear-gradient(180deg, #ffffff 0%, var(--bg) 45%, #ffffff 100%);
    }
    a{ color: inherit; }
    .container{
      width:min(1100px, calc(100% - 32px));
      margin:0 auto;
    }

    /* ====== Header ====== */
    .topbar{
      background: linear-gradient(90deg, var(--brand) 0%, var(--brand2) 100%);
      border-bottom: 1px solid rgba(0,0,0,.06);
    }
    .topbar .row{
      display:flex;
      align-items:center;
      gap:14px;
      padding:10px 0;
    }
    .logo{
      display:flex;
      align-items:center;
      gap:10px;
      font-weight:800;
      letter-spacing:.02em;
    }
    .logo-badge{
      width:34px;height:34px;
      border-radius:12px;
      background: #fff;
      display:grid;place-items:center;
      box-shadow: 0 6px 14px rgba(0,0,0,.12);
    }
    .nav{
      margin-left:auto;
      display:flex;
      flex-wrap:wrap;
      gap:8px;
      align-items:center;
    }
    .nav a{
      text-decoration:none;
      background: rgba(255,255,255,.55);
      border: 1px solid rgba(0,0,0,.06);
      padding:8px 10px;
      border-radius: 999px;
      font-weight:700;
      font-size: 14px;
      transition: .15s transform ease, .15s background ease;
    }
    .nav a:hover{ transform: translateY(-1px); background: rgba(255,255,255,.8); }

    /* ====== Hero ====== */
    .hero{
      position:relative;
      margin: 18px auto 0;
      border-radius: 22px;
      overflow:hidden;
      box-shadow: var(--shadow);
      background:
        radial-gradient(circle at 15% 30%, rgba(255,255,255,.9) 0 40%, transparent 41%),
        radial-gradient(circle at 85% 20%, rgba(255,255,255,.9) 0 35%, transparent 36%),
        radial-gradient(circle at 20% 85%, rgba(255,255,255,.8) 0 30%, transparent 31%),
        linear-gradient(135deg, #e8fff3 0%, #f6fffb 45%, #fff8d8 100%);
      border: 1px solid rgba(0,0,0,.06);
    }
    .hero-inner{
      display:grid;
      grid-template-columns: 1.2fr .8fr;
      gap: 16px;
      padding: 22px;
      align-items: center;
    }
    .hero h1{
      margin:0 0 6px;
      font-size: clamp(24px, 3.2vw, 40px);
      line-height: 1.15;
      letter-spacing: .02em;
    }
    .hero p{
      margin:0 0 14px;
      color: #3b3b3b;
      font-weight:600;
    }
    .hero .cta{
      display:flex;
      gap:10px;
      flex-wrap:wrap;
      align-items:center;
    }
    .btn{
      display:inline-flex;
      align-items:center;
      gap:10px;
      text-decoration:none;
      font-weight:800;
      padding: 10px 14px;
      border-radius: 999px;
      border: 1px solid rgba(0,0,0,.08);
      background: #fff;
      box-shadow: 0 10px 22px rgba(0,0,0,.08);
      transition: .15s transform ease;
    }
    .btn:hover{ transform: translateY(-1px); }
    .btn.primary{
      background: #2b2b2b;
      color:#fff;
      border-color: rgba(255,255,255,.2);
    }
    .hero-card{
      background: rgba(255,255,255,.88);
      border: 1px solid rgba(0,0,0,.06);
      border-radius: 18px;
      padding: 16px;
      box-shadow: 0 8px 18px rgba(0,0,0,.06);
    }
    .hero-card .tag{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding: 6px 10px;
      border-radius: 999px;
      font-weight:800;
      font-size: 13px;
      background: #fff;
      border:1px solid rgba(0,0,0,.08);
      margin-bottom: 10px;
    }
    .hero-card ul{
      margin: 0;
      padding-left: 18px;
      color: var(--muted);
      font-weight:600;
      line-height: 1.7;
    }

    /* ====== Main layout ====== */
    main{ padding: 18px 0 46px; }

    .section-title{
      display:flex;
      align-items:center;
      justify-content:center;
      gap:10px;
      margin: 26px 0 14px;
      font-size: 20px;
      letter-spacing:.02em;
    }
    .section-title small{
      color: var(--muted);
      font-weight:700;
      font-size: 13px;
    }

    .grid-2{
      display:grid;
      grid-template-columns: 1.35fr .65fr;
      gap: 16px;
      align-items: stretch;
    }
    .grid-2 > .card,
    .grid-2 > aside.card{
      height: 100%;
    }

    .card{
      background: var(--paper);
      border: 1px solid rgba(0,0,0,.06);
      border-radius: var(--r);
      box-shadow: var(--shadow2);
      overflow:hidden;
    }
    .card .hd{
      padding: 14px 16px;
      background: linear-gradient(90deg, rgba(127,200,169,.28), rgba(246,196,0,.16));
      border-bottom: 1px solid rgba(0,0,0,.06);
      font-weight:900;
      letter-spacing: .02em;
      display:flex;
      align-items:center;
      gap:10px;
    }
    .card .bd{ padding: 14px 16px; }

    /* ====== News list ====== */
    .news-list{
      display:flex;
      flex-direction:column;
      gap: 10px;
    }
    .news-item{
      display:grid;
      grid-template-columns: 86px 1fr;
      gap: 10px;
      padding: 10px;
      border-radius: 14px;
      border: 1px solid rgba(0,0,0,.06);
      background: #fff;
    }
    .news-link{
      text-decoration: none;
      color: inherit;
      transition: transform .15s ease, box-shadow .15s ease;
    }
    .news-link:hover{
      transform: translateY(-1px);
      box-shadow: 0 8px 18px rgba(0,0,0,.06);
    }
    .news-item-message{
      align-items: center;
    }
    .news-meta{
      display:flex;
      flex-direction:column;
      gap:6px;
      align-items:flex-start;
    }
    .badge{
      display:inline-block;
      font-weight:900;
      font-size: 12px;
      padding: 4px 8px;
      border-radius: 999px;
      border: 1px solid rgba(0,0,0,.08);
      background: #fff7c8;
    }
    .badge.blue{ background:#dff2ff; }
    .badge.green{ background:#e8ffe8; }
    .badge.red{ background:#ffe2e2; }
    .news-date{
      font-weight:800;
      color: var(--muted);
      font-size: 12px;
    }
    .news-title{
      margin:0;
      font-weight:900;
      line-height:1.5;
    }
    .more{
      margin-top: 10px;
      display:flex;
      justify-content:center;
    }

    /* ====== Sidebar promo ====== */
    .ajisai-card{
      height: 100%;
      display: flex;
      flex-direction: column;
    }
    .ajisai-card .bd{
      flex: 1;
    }
    .promo{
      display:flex;
      flex-direction:column;
      gap: 10px;
      height: 100%;
    }
    .img-ph{
      width:100%;
      height: 228px;
      border-radius: 14px;
      overflow: hidden;
      border: 1px solid rgba(0,0,0,.08);
      background: linear-gradient(135deg, rgba(127,200,169,.14), rgba(246,196,0,.10));
    }
    .img-ph img{
      display:block;
      width:100%;
      height:100%;
      object-fit: cover;
      object-position: center center;
    }
    .promo p{
      margin:0;
      color: var(--muted);
      font-weight:650;
      line-height: 1.7;
      font-size: 14px;
    }
    .ajisai-card .btn{
      margin-top: auto;
      align-self: center;
      min-width: 170px;
      justify-content: center;
      display: inline-flex;
      margin-bottom: 10px;
    }

    /* ====== Support icons section ====== */
    .support{
      margin-top: 18px;
      padding: 36px 0 42px;
      background: linear-gradient(180deg, rgba(169, 235, 207, 0.92), rgba(167, 227, 212, 0.95));
      border-top: 1px solid rgba(0,0,0,.06);
      border-bottom: 1px solid rgba(0,0,0,.06);
    }
    .support .section-title{
      margin: 0 0 18px;
    }
    .support-grid{
      display:grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 16px;
    }
    .support-item{
      background: #fff;
      border-radius: 22px;
      padding: 14px 12px 12px;
      border: 1px solid rgba(0,0,0,.08);
      box-shadow: 0 10px 22px rgba(0,0,0,.10);
      display:flex;
      flex-direction:column;
      gap: 8px;
      align-items:center;
      text-align:center;
      position:relative;
      overflow:hidden;
    }
    .support-item::before{
      content:"";
      position:absolute;
      inset:-60px -60px auto auto;
      width:140px;height:140px;
      border-radius: 999px;
      background: radial-gradient(circle at 40% 40%, rgba(252, 228, 97, 0.548), transparent 62%);
      transform: rotate(18deg);
    }
    .support-icon{
      width:84px;height:84px;
      border-radius: 999px;
      background: linear-gradient(180deg, #ffffff, #e9fff5);
      border: 1px solid rgba(0,0,0,.10);
      display:grid;
      place-items:center;
      box-shadow: 0 8px 16px rgba(0,0,0,.08);
      z-index: 1;
    }
    .support-item h3{
      margin:0;
      font-size: 15px;
      font-weight:950;
      z-index: 1;
    }
    .support-item p{
      margin:0;
      color: var(--muted);
      font-weight:650;
      font-size: 13px;
      line-height: 1.5;
      z-index: 1;
    }

    /* ====== Access / Map ====== */
    .map-wrap{
      margin-top: 18px;
    }
    .map-grid{
      display:grid;
      grid-template-columns: 1.35fr .65fr;
      gap: 16px;
      align-items: stretch;
    }
    .map-ph{
      min-height: 280px;
      border-radius: 18px;
      border: 1px solid rgba(0,0,0,.08);
      background:
        linear-gradient(135deg, rgba(91,192,255,.12), rgba(127,200,169,.14)),
        repeating-linear-gradient(0deg, rgba(0,0,0,.04) 0 10px, transparent 10px 20px),
        repeating-linear-gradient(90deg, rgba(0,0,0,.03) 0 10px, transparent 10px 20px);
      display:grid;
      place-items:center;
      font-weight:900;
      color: rgba(0,0,0,.55);
    }

    /* ====== Footer ====== */
    footer{
      margin-top: 26px;
      background: linear-gradient(180deg, rgba(127,200,169,.96), rgba(167,227,200,.98));
      border-top: 1px solid rgba(0,0,0,.06);
      padding: 24px 0 28px;
    }
    .footer-grid{
      display:grid;
      grid-template-columns: 1.2fr .8fr;
      gap: 16px;
      align-items:start;
    }
    .foot-card{
      background: rgba(255,255,255,.85);
      border: 1px solid rgba(0,0,0,.08);
      border-radius: 18px;
      padding: 14px 16px;
    }
    .foot-card h4{
      margin: 0 0 10px;
      font-size: 15px;
      font-weight:950;
    }
    .footer-brand{
      display:flex;
      align-items:center;
      min-height: 32px;
    }
    .footer-brand img{
      display:block;
      width:auto;
      height:32px;
      max-width:100%;
      object-fit: contain;
    }
    .foot-links{
      display:grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 8px;
      margin:0;
      padding:0;
      list-style:none;
      color:#2f2f2f;
      font-weight:800;
      font-size: 14px;
    }
    .foot-links a{
      display:block;
      padding: 8px 10px;
      border-radius: 12px;
      background: rgba(255,255,255,.7);
      border: 1px solid rgba(0,0,0,.06);
      text-decoration:none;
    }

    /* ====== Responsive ====== */
    @media (max-width: 900px){
      .hero-inner{ grid-template-columns: 1fr; }
      .grid-2{ grid-template-columns: 1fr; }
      .support-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
      .map-grid{ grid-template-columns: 1fr; }
      .footer-grid{ grid-template-columns: 1fr; }
    }
    @media (max-width: 520px){
      .nav{ display:none; }
      .support-grid{ grid-template-columns: 1fr; }
    }
/* ====== Related external links ====== */
.links-section{
  margin-top: 18px;
  padding: 26px 0 10px;
}

.links-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

/* 支援カードと同じ“雰囲気”で少しだけ軽め */
.link-card{
  background: #fff;
  border-radius: 20px;
  padding: 14px 14px 12px;
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 8px 18px rgba(0,0,0,.08);
  display: flex;
  flex-direction: column;
  gap: 4px;
  align-items: flex-start;
  text-decoration: none;
}

.link-label{
  font-size: 11px;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 999px;
  background: #e9fff5;
  color: #25634b;
}

.link-title{
  font-size: 14px;
  font-weight: 900;
}

.link-desc{
  font-size: 12px;
  color: var(--muted);
  font-weight: 650;
}

/* レスポンシブ調整 */
@media (max-width: 900px){
  .links-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 520px){
  .links-grid{
    grid-template-columns: 1fr;
  }
}

/* ====== Sub page common ====== */
.nav a.is-current{
  background: #2b2b2b;
  color: #fff;
  border-color: rgba(255,255,255,.22);
}

.page-hero{
  position: relative;
  margin: 22px auto 0;
  border-radius: 28px;
  overflow: hidden;
  box-shadow: var(--shadow);
  border: 1px solid rgba(0,0,0,.06);
  background:
    radial-gradient(circle at 12% 24%, rgba(255,255,255,.92) 0 18%, transparent 19%),
    radial-gradient(circle at 88% 18%, rgba(255,255,255,.75) 0 14%, transparent 15%),
    linear-gradient(135deg, #edf8f1 0%, #f9fcfa 52%, #f4f1e6 100%);
}

.page-hero-inner{
  padding: 46px 48px 48px;
}

.breadcrumb{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 12px;
  color: rgba(0,0,0,.6);
  font-size: 13px;
  font-weight: 800;
}

.breadcrumb a{
  text-decoration: none;
}

.breadcrumb .current{
  color: var(--ink);
}

.page-label{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.72);
  border: 1px solid rgba(0,0,0,.06);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
}

.page-hero h1{
  margin: 18px 0 10px;
  font-size: clamp(28px, 3.4vw, 42px);
  line-height: 1.12;
  letter-spacing: .05em;
}

.page-hero p{
  max-width: 620px;
  margin: 0;
  color: #525252;
  font-weight: 600;
  line-height: 1.9;
}

.subpage-main{
  padding-top: 54px;
}

.eyebrow{
  display: inline-block;
  margin-bottom: 10px;
  color: #5c7a6b;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .12em;
}

.concern-lead h2,
.section-heading h2{
  margin: 0;
  font-size: clamp(26px, 3vw, 34px);
  line-height: 1.2;
  letter-spacing: .04em;
}

.concern-section{
  margin-bottom: 72px;
  padding: 0;
  border-radius: 32px;
  background: transparent;
  border: 0;
}

.concern-lead{
  max-width: 640px;
  margin-bottom: 24px;
}

.concern-lead p{
  margin: 14px 0 0;
  color: #5e5e5e;
  font-weight: 600;
  line-height: 1.9;
}

.concern-support-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.concern-support-item{
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 8px;
  min-height: 0;
  padding: 18px 14px 14px;
  border-radius: 22px;
  border: 1px solid rgba(22, 37, 31, .08);
  background: #fff;
  box-shadow: 0 10px 22px rgba(0,0,0,.08);
  text-decoration: none;
  position: relative;
  overflow: hidden;
}

.concern-support-item::before{
  content:"";
  position:absolute;
  inset:-60px -60px auto auto;
  width:140px;
  height:140px;
  border-radius:999px;
  background: radial-gradient(circle at 40% 40%, rgba(252, 228, 97, 0.32), transparent 62%);
  transform: rotate(18deg);
}

.concern-support-item .support-icon{
  width: 82px;
  height: 82px;
  z-index: 1;
}

.concern-support-item h3{
  margin: 0;
  font-size: 16px;
  font-weight: 950;
  line-height: 1.55;
  letter-spacing: .02em;
  z-index: 1;
}

.concern-support-item p{
  margin: 0;
  color: #476654;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.5;
  z-index: 1;
}

.concern-support-item p::after{
  content: " →";
}

.concern-support-item-accent{
  background: linear-gradient(180deg, #ffffff, #f4faf6);
}

.service-listing{
  padding-top: 6px;
}

.section-heading{
  margin-bottom: 20px;
}

.service-menu-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px 14px;
}

.service-menu-item{
  display: block;
  padding: 15px 0 13px;
  border-radius: 0;
  border: 0;
  border-bottom: 1px solid rgba(22, 37, 31, .1);
  background: transparent;
  box-shadow: none;
  text-decoration: none;
}

.service-menu-item strong{
  display: block;
  font-size: 16px;
  font-weight: 900;
  letter-spacing: .02em;
}

.service-menu-item span{
  display: block;
  margin-top: 6px;
  color: #657168;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.65;
}

.cta-panel{
  margin-top: 72px;
  padding: 32px 34px;
  border-radius: 28px;
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: var(--shadow);
  background:
    radial-gradient(circle at 15% 25%, rgba(255,255,255,.72) 0 18%, transparent 19%),
    linear-gradient(135deg, rgba(218,236,226,.98), rgba(240,236,220,.96));
}

.cta-panel h2{
  margin: 0 0 10px;
  font-size: clamp(22px, 3vw, 32px);
  letter-spacing: .04em;
}

.cta-panel p{
  margin: 0;
  max-width: 640px;
  line-height: 1.8;
  color: rgba(0,0,0,.64);
  font-weight: 600;
}

.cta-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.page-stack{
  display: grid;
  gap: 36px;
}

.page-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 22px;
  align-items: start;
}

.content-card,
.side-card{
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(0,0,0,.06);
  border-radius: 24px;
  box-shadow: 0 10px 24px rgba(0,0,0,.06);
}

.content-card{
  padding: 34px;
}

.side-card{
  padding: 22px;
}

.section-kicker{
  display: inline-block;
  margin-bottom: 10px;
  color: #5c7a6b;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .12em;
}

.content-card h2,
.side-card h2{
  margin: 0 0 12px;
  font-size: clamp(22px, 2.2vw, 30px);
  line-height: 1.3;
  letter-spacing: .03em;
}

.content-card h3,
.side-card h3{
  margin: 0 0 10px;
  font-size: 18px;
  line-height: 1.4;
}

.content-card p,
.side-card p{
  margin: 0;
  color: #545454;
  font-weight: 600;
  line-height: 2;
  font-size: 15px;
}

.content-flow{
  display: grid;
  gap: 26px;
}

.message-copy{
  display: grid;
  gap: 18px;
}

.message-photo{
  margin: 0;
  padding: 10px;
  border-radius: 24px;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(240,246,242,.95));
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 12px 24px rgba(0,0,0,.08);
}

.message-photo-inline{
  width: min(100%, 220px);
  margin: 0 0 26px;
}

.message-photo img{
  display: block;
  width: 100%;
  height: auto;
  border-radius: 18px;
}

.feature-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.feature-card{
  padding: 20px;
  border-radius: 20px;
  border: 1px solid rgba(0,0,0,.06);
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(244,249,246,.96));
}

.feature-card h3{
  margin-bottom: 6px;
  font-size: 16px;
}

.feature-card p{
  font-size: 14px;
  line-height: 1.8;
}

.mini-link-grid{
  display: grid;
  gap: 12px;
}

.mini-link{
  display: block;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.06);
  background: rgba(255,255,255,.74);
  text-decoration: none;
}

.mini-link strong{
  display: block;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: .02em;
}

.mini-link span{
  display: block;
  margin-top: 4px;
  color: #657168;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.7;
}

.info-list{
  display: grid;
  gap: 14px;
}

.info-row{
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(0,0,0,.08);
}

.info-row:last-child{
  padding-bottom: 0;
  border-bottom: 0;
}

.info-row dt{
  margin-bottom: 6px;
  color: #476654;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
}

.info-row dd{
  margin: 0;
  color: #333;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.8;
}

.bullet-list{
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.bullet-list li{
  position: relative;
  padding-left: 18px;
  color: #4f4f4f;
  font-weight: 600;
  line-height: 1.8;
}

.bullet-list li::before{
  content: "";
  position: absolute;
  top: .8em;
  left: 0;
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--brand), var(--accent));
  transform: translateY(-50%);
}

.quote-card{
  padding: 22px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(236,247,241,.92), rgba(248,246,237,.9));
  border: 1px solid rgba(0,0,0,.05);
}

.quote-card p{
  font-size: 15px;
}

.contact-layout{
  display: grid;
  gap: 36px;
}

.contact-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.contact-box{
  padding: 18px;
  border-radius: 20px;
  border: 1px solid rgba(0,0,0,.06);
  background: rgba(255,255,255,.8);
}

.contact-box h3{
  margin-bottom: 8px;
  font-size: 16px;
}

.contact-box p{
  font-size: 14px;
}

.note-box{
  padding: 20px 22px;
  border-radius: 20px;
  border: 1px solid rgba(0,0,0,.06);
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(244,249,246,.92));
}

.note-box p{
  font-size: 14px;
}

.source-list{
  display: grid;
  gap: 12px;
  margin: 0;
  padding-left: 1.2em;
  color: #4f4f4f;
  font-weight: 600;
  line-height: 1.9;
}

.source-list li{
  padding-left: 2px;
}

.contact-form{
  display: grid;
  gap: 18px;
}

.contact-field{
  display: grid;
  gap: 8px;
}

.contact-field label{
  font-size: 14px;
  font-weight: 800;
  color: #2f473a;
}

.contact-field input,
.contact-field textarea{
  width: 100%;
  padding: 14px 16px;
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.92);
  color: var(--ink);
  font: inherit;
}

.contact-field textarea{
  min-height: 180px;
  resize: vertical;
}

.map-embed{
  overflow: hidden;
  border-radius: 22px;
  border: 1px solid rgba(0,0,0,.06);
  box-shadow: 0 10px 24px rgba(0,0,0,.06);
}

.map-embed iframe{
  display: block;
  width: 100%;
  height: 320px;
  border: 0;
}

.blog-feed-section{
  padding-bottom: 38px;
}

.blog-feed-intro{
  margin: 8px 0 26px;
}

.blog-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px 20px;
}

.blog-card{
  display: grid;
  overflow: hidden;
  border-radius: 22px;
  border: 1px solid rgba(0,0,0,.06);
  background: #fff;
  box-shadow: 0 10px 24px rgba(0,0,0,.06);
}

.blog-card-image{
  aspect-ratio: 4 / 3;
  background: linear-gradient(180deg, rgba(236,247,241,.82), rgba(248,246,237,.9));
}

.blog-card-cover{
  display: grid;
  align-content: end;
  gap: 10px;
  min-height: 230px;
  padding: 24px 24px 22px;
  text-decoration: none;
}

.blog-card-cover-pdf{
  background:
    radial-gradient(circle at 82% 20%, rgba(255,255,255,.7) 0 16%, transparent 17%),
    linear-gradient(145deg, #d8e6dd 0%, #f7f3e6 52%, #ffffff 100%);
}

.blog-card-cover-label{
  color: #4e6a5b;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .14em;
}

.blog-card-cover strong{
  font-size: clamp(34px, 4vw, 46px);
  line-height: 1.05;
  letter-spacing: .04em;
}

.blog-card-image img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.blog-card-body{
  display: grid;
  gap: 12px;
  padding: 20px 20px 18px;
}

.blog-card-title{
  margin: 0;
  font-size: 20px;
  line-height: 1.5;
}

.blog-card-title a{
  text-decoration: none;
}

.blog-card-excerpt{
  margin: 0;
  color: #565656;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.85;
}

.blog-card-meta{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 12px;
  align-items: center;
}

.blog-card-tag{
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.1);
  background: #fff;
  font-size: 12px;
  font-weight: 800;
}

.blog-card-date{
  color: #7a7a7a;
  font-size: 12px;
  font-weight: 700;
}

.blog-card-loading .blog-card-body{
  min-height: 140px;
  place-content: center;
}

.blog-feed-actions{
  margin-top: 28px;
}

.archive-list{
  display: grid;
  gap: 12px;
}

.archive-item{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 20px;
  border-radius: 18px;
  border: 1px solid rgba(0,0,0,.06);
  background: rgba(255,255,255,.92);
  color: var(--ink);
  font-size: 15px;
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 8px 18px rgba(0,0,0,.04);
}

.archive-item span:first-child{
  line-height: 1.6;
}

.archive-item-muted{
  color: #666;
  background: rgba(247,247,247,.92);
}

.archive-badge{
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 12px;
  border-radius: 999px;
  background: rgba(0,0,0,.05);
  color: #3d5848;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
  white-space: nowrap;
}

@media (max-width: 900px){
  .message-photo-inline{
    width: min(100%, 200px);
  }

  .blog-grid,
  .feature-grid,
  .contact-grid,
  .concern-support-grid,
  .service-menu-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px){
  .page-hero-inner,
  .content-card,
  .side-card,
  .cta-panel{
    padding: 18px;
  }

  .page-hero{
    border-radius: 22px;
  }

  .page-hero-inner{
    padding: 28px 22px 30px;
  }

  .message-photo-inline{
    margin: 0 0 22px;
  }

  .concern-section{
    margin-bottom: 56px;
  }

  .blog-grid,
  .concern-support-grid,
  .feature-grid,
  .contact-grid,
  .service-menu-grid{
    grid-template-columns: 1fr;
  }

  .archive-item{
    align-items: flex-start;
    flex-direction: column;
  }
}
  
