/* =========================================================
   Elementor で作ったページの見た目（2026-11-13）
   Elementor の部品の「高度な設定 → CSSクラス」に kwe-〇〇 を入れると、この見た目になる。
   色や大きさは main.css の変数（--navy など）を使う。
   ========================================================= */

/* Elementor の初期の余白をなくし、テーマの余白にそろえる */
body.kwe-page .elementor .e-con.e-con { --padding-top: 0px; --padding-right: 0px; --padding-bottom: 0px; --padding-left: 0px; --gap: 0px 0px; --row-gap: 0px; --column-gap: 0px; }
.kwe-page .elementor-widget:not(:last-child) { margin-block-end: 0; }
.kwe-page .elementor-heading-title { line-height: 1.4; }
.kwe-page .elementor-widget-text-editor p { margin: 0; }
.kwe-page .elementor-widget-text-editor p + p { margin-top: 1em; }
.kwe-page .elementor-widget-image img { height: auto; }

/* 囲み・幅 */
body.kwe-page .elementor .e-con.e-con.kwe-sec { --padding-top: var(--sec); --padding-bottom: var(--sec); }
body.kwe-page .elementor .e-con.e-con.kwe-tint { background: var(--off); }
body.kwe-page .elementor .e-con.e-con.kwe-wrap { width: 100%; max-width: calc(var(--wrap) + var(--gutter) * 2); margin-inline: auto; --padding-left: var(--gutter); --padding-right: var(--gutter); }
body.kwe-page .elementor .e-con.e-con.kwe-stack { --gap: 16px 16px; --row-gap: 16px; }

/* 見出しのまとまり（日本語の見出し・英語・「一覧を見る」） */
body.kwe-page .elementor .e-con.e-con.kwe-headrow { --display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; column-gap: 24px; row-gap: 4px; margin-bottom: clamp(24px, 4vw, 40px); }
.kwe-headrow > .kwe-h2, .kwe-headrow > .kwe-en, .kwe-headrow > .kwe-note { grid-column: 1; }
.kwe-headrow > .kwe-more { grid-column: 2; grid-row: 1 / span 2; }
.kwe-headrow > .kwe-note { grid-column: 1 / -1; }
.kwe-h2 .elementor-heading-title { font-family: var(--font); font-size: clamp(1.5rem, 3.2vw, 2.1rem); font-weight: 900; color: var(--navy); padding-left: 18px; position: relative; letter-spacing: .06em; }
.kwe-h2 .elementor-heading-title::before { content: ""; position: absolute; left: 0; top: .2em; bottom: .2em; width: 5px; background: var(--blue); }
.kwe-en .elementor-heading-title { font-family: var(--font-en); font-weight: 600; font-size: .72rem; letter-spacing: .28em; color: var(--blue-ink); padding-left: 18px; }
.kwe-note, .kwe-note p { color: var(--ink-soft); font-size: .92rem; padding-left: 18px; margin-top: 6px; }

/* 「一覧を見る」などの文字リンク型ボタン */
.kwe-more .elementor-button, .kwe-link .elementor-button { background: none !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; color: var(--blue-ink) !important; font-family: var(--font); font-weight: 700; font-size: .92rem; }
.kwe-more .elementor-button-text::after, .kwe-link .elementor-button-text::after { content: " →"; }
.kwe-more .elementor-button:hover, .kwe-link .elementor-button:hover { color: var(--navy) !important; }

/* ---------- ファーストビュー ---------- */
body.kwe-page .elementor .e-con.e-con.kwe-hero { position: relative; overflow: hidden; background-color: #eef5fb;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 360' preserveAspectRatio='xMidYMax slice'><path fill='%23b9d4ea' d='M0 300 L260 200 L420 250 L640 90 L720 60 L800 95 L1010 230 L1180 180 L1440 270 V360 H0Z'/><path fill='%23d6e6f3' d='M0 330 L300 270 L520 300 L760 230 L980 290 L1220 250 L1440 300 V360 H0Z'/></svg>"), linear-gradient(180deg, #dcebf7 0%, #eef5fb 55%, #ffffff 100%);
  background-repeat: no-repeat; background-position: center bottom, center; background-size: 100% 46%, cover; }
body.kwe-page .elementor .e-con.e-con.kwe-hero::after { content: ""; position: absolute; left: 0; bottom: 0; width: 42%; height: 10px; background: var(--navy); clip-path: polygon(0 0, 100% 0, calc(100% - 10px) 100%, 0 100%); }
body.kwe-page .elementor .e-con.e-con.kwe-hero-grid { --display: grid; grid-template-columns: minmax(0, 1fr); grid-template-areas: "copy" "photo" "act"; --padding-top: clamp(28px, 6vw, 56px); }
.kwe-hero-copy { grid-area: copy; position: relative; z-index: 2; }
.kwe-hero-photo { grid-area: photo; }
.kwe-hero-actions { grid-area: act; position: relative; z-index: 2; }
body.kwe-page .elementor .e-con.e-con.kwe-hero-copy { --gap: 14px 14px; --row-gap: 14px; }
.kwe-catch-sm .elementor-heading-title { font-family: var(--font); font-size: clamp(1.55rem, 5.8vw, 2.7rem); font-weight: 900; color: var(--navy); letter-spacing: .04em; white-space: nowrap; }
.kwe-catch-big .elementor-heading-title { font-family: var(--font); font-size: clamp(2.9rem, 12vw, 5.6rem); font-weight: 900; color: var(--navy); line-height: 1.15; letter-spacing: .02em; position: relative; display: inline-block; white-space: nowrap; }
.kwe-catch-big .elementor-heading-title::after { content: ""; position: absolute; left: -.1em; right: .3em; bottom: .02em; height: .08em; background: var(--salmon); transform: skewX(-30deg) rotate(-1.5deg); z-index: -1; }
.kwe-sub, .kwe-sub p { font-size: clamp(1.05rem, 2.6vw, 1.45rem); font-weight: 700; color: var(--navy); line-height: 1.6; letter-spacing: .08em; }
.kwe-name-sm .elementor-heading-title { font-family: var(--font); font-size: .78rem; font-weight: 700; color: var(--navy); letter-spacing: .08em; }
.kwe-name .elementor-heading-title { font-family: var(--font); font-size: clamp(1.6rem, 4vw, 2.2rem); font-weight: 900; color: var(--navy); letter-spacing: .14em; line-height: 1.2; }
.kwe-hero-photo .elementor-widget-image { text-align: right; }
.kwe-hero-photo img { width: min(86vw, 440px) !important; max-width: 100%; filter: drop-shadow(0 12px 22px rgba(15, 42, 74, .18)); margin-bottom: -2px; display: block; margin-left: auto; }
body.kwe-page .elementor .e-con.e-con.kwe-hero-photo { margin-right: calc(-1 * var(--gutter)); }
.kwe-hero-actions .kw-actions { display: grid; gap: 10px; padding: 16px 0 36px; }
@media (min-width: 600px) {
  body.kwe-page .elementor .e-con.e-con.kwe-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "copy photo" "act act"; align-items: end; }
  body.kwe-page .elementor .e-con.e-con.kwe-hero-copy { align-self: center; --padding-bottom: 24px; }
}
@media (min-width: 1280px) {
  body.kwe-page .elementor .e-con.e-con.kwe-hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, .85fr) minmax(300px, .9fr); grid-template-areas: "copy photo act"; min-height: 560px; --padding-top: 48px; }
  body.kwe-page .elementor .e-con.e-con.kwe-hero-grid { align-items: center; min-height: 600px; }
  body.kwe-page .elementor .e-con.e-con.kwe-hero-copy { --padding-top: 24px; --padding-bottom: 72px; }
  body.kwe-page .elementor .e-con.e-con.kwe-hero-photo { align-self: end; }
  body.kwe-page .elementor .e-con.e-con.kwe-hero-photo { margin-right: 0; }
  .kwe-hero-photo .elementor-widget-image { text-align: center; }
  .kwe-hero-photo img { width: 100% !important; max-width: 440px; margin-inline: auto; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent 100%); mask-image: linear-gradient(90deg, #000 88%, transparent 100%); }
  body.kwe-page .elementor .e-con.e-con.kwe-hero-actions { align-self: center; --margin-bottom: 48px; }
  .kwe-hero-actions .kw-actions { padding: 24px; background: rgba(255,255,255,.9); box-shadow: 0 12px 32px rgba(15, 42, 74, .1); }
}

/* ---------- 目指す伊勢原 ---------- */
body.kwe-page .elementor .e-con.e-con.kwe-vision-grid { --display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
body.kwe-page .elementor .e-con.e-con.kwe-vision-lead { --gap: 8px 8px; --row-gap: 8px; }
.kwe-vision-lead .elementor-widget-text-editor { color: var(--ink-soft); max-width: 22em; margin-top: 8px; }
@media (min-width: 1000px) { body.kwe-page .elementor .e-con.e-con.kwe-vision-grid { grid-template-columns: minmax(0, 300px) minmax(0, 1fr); align-items: center; gap: 48px; } }

/* ---------- 3期目に実現したこと ---------- */
body.kwe-page .elementor .e-con.e-con.kwe-achv { --display: grid; grid-template-columns: minmax(0, 1fr); background: var(--off); }
body.kwe-page .elementor .e-con.e-con.kwe-achv-label { background: var(--navy); --padding-top: 40px; --padding-bottom: 40px; --padding-left: var(--gutter); --padding-right: var(--gutter); --gap: 10px 10px; --row-gap: 10px; justify-content: center; }
.kwe-achv-title .elementor-heading-title { font-family: var(--font); color: #fff; font-size: clamp(1.7rem, 4vw, 2.4rem); font-weight: 900; letter-spacing: .08em; line-height: 1.35; }
.kwe-achv-label .kwe-en .elementor-heading-title { color: #a9cbe6; padding-left: 0; }
body.kwe-page .elementor .e-con.e-con.kwe-achv-body { --padding-top: 36px; --padding-bottom: 44px; --padding-left: var(--gutter); --padding-right: var(--gutter); justify-content: center; }
.kwe-achv-body .kw-checks { margin-bottom: 24px; }
@media (min-width: 900px) {
  body.kwe-page .elementor .e-con.e-con.kwe-achv { grid-template-columns: minmax(280px, 34%) minmax(0, 1fr); }
  body.kwe-page .elementor .e-con.e-con.kwe-achv-label { --padding-top: 64px; --padding-bottom: 64px; --padding-right: 72px; --padding-left: max(var(--gutter), calc((100vw - var(--wrap)) / 2)); clip-path: polygon(0 0, 100% 0, calc(100% - 64px) 100%, 0 100%); }
  body.kwe-page .elementor .e-con.e-con.kwe-achv-body { --padding-top: 56px; --padding-bottom: 56px; --padding-left: 24px; --padding-right: max(var(--gutter), calc((100vw - var(--wrap)) / 2)); }
  .kwe-achv-body .kw-checks { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
}

/* ---------- 議会での取り組み＋活動報告 ---------- */
body.kwe-page .elementor .e-con.e-con.kwe-split { --display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--sec); }
@media (min-width: 1100px) { body.kwe-page .elementor .e-con.e-con.kwe-split { grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 64px; } }

/* ---------- プロフィール ---------- */
body.kwe-page .elementor .e-con.e-con.kwe-profile { background: var(--blue-pale); }
body.kwe-page .elementor .e-con.e-con.kwe-profile-grid { --display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; }
.kwe-profile-photo .elementor-widget-image { text-align: center; }
.kwe-profile-photo img { width: min(70vw, 380px) !important; }
body.kwe-page .elementor .e-con.e-con.kwe-profile-text { --gap: 16px 16px; --row-gap: 16px; justify-content: center; }
.kwe-lead .elementor-heading-title { font-family: var(--font); font-size: clamp(1.3rem, 3vw, 1.7rem); font-weight: 900; color: var(--navy); letter-spacing: .06em; }
.kwe-profile-text .elementor-widget-text-editor { max-width: 34em; }
@media (min-width: 900px) {
  body.kwe-page .elementor .e-con.e-con.kwe-profile-grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 64px; }
  body.kwe-page .elementor .e-con.e-con.kwe-profile { --padding-bottom: 0px; }
  body.kwe-page .elementor .e-con.e-con.kwe-profile-photo { justify-content: flex-end; }
  body.kwe-page .elementor .e-con.e-con.kwe-profile-text { --padding-bottom: var(--sec); }
  .kwe-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ---------- 市民とのつながり ---------- */
body.kwe-page .elementor .e-con.e-con.kwe-join { background: var(--navy); color: #fff; }
body.kwe-page .elementor .e-con.e-con.kwe-join-inner { --padding-top: 48px; --padding-bottom: 56px; --gap: 24px 24px; --row-gap: 24px; }
.kwe-join-title .elementor-heading-title { font-family: var(--font); color: #fff; font-size: clamp(1.3rem, 3.4vw, 1.9rem); font-weight: 900; letter-spacing: .06em; line-height: 1.55; }
.kw-actions--band { display: grid; gap: 12px; }
@media (min-width: 900px) { .kw-actions--band { grid-template-columns: repeat(3, minmax(0, 1fr)); } body.kwe-page .elementor .e-con.e-con.kwe-join-inner { --padding-top: 64px; --padding-bottom: 64px; } }

/* 編集画面で、ショートコードの部品が空に見えないように */
.elementor-editor-active .kwe-page .elementor-widget-shortcode:empty::before { content: "（自動で表示される部分）"; color: var(--ink-soft); }

/* Astra のページの題名（「ホーム」など）は、Elementor のページでは出さない */
.kwe-page .entry-header, .kwe-page .ast-single-post-order .entry-header { display: none; }
/* Astra・Elementor の「リンクに下線」を、このテーマの部品では付けない */
body.kwe-page .elementor a, .kw-full a, .kw-header a, .kw-footer a, .kw-dock a { text-decoration: none; }
body.kwe-page .elementor .elementor-widget-text-editor a { text-decoration: underline; }

/* 2つ並びの欄（議会・活動報告）の見出しは少し小さく */
body.kwe-page .kwe-split .kwe-h2 .elementor-heading-title { font-size: clamp(1.3rem, 2.6vw, 1.75rem); }
/* ショートコードの中の段落・リストに、Astra の余白が付かないように */
body.kwe-page .elementor-shortcode p, body.kwe-page .elementor-shortcode ul { margin: 0; }
body.kwe-page .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
