@charset "UTF-8";
/*! kiso.css v1.2.4 | MIT License | https://github.com/tak-dcxi/kiso.css */
/* ======================================================
//  MARK: Universal
// ====================================================== */
*,
::before,
::after {
  /*
  * Includes `padding` and `border` in the element's specified dimensions.
  * It is highly recommended to set `box-sizing: border-box;` by default, as it makes styling much easier, especially when specifying `width: 100%;`.
  */
  box-sizing: border-box;
}
/* ======================================================
//  MARK: Document and Body Elements
// ====================================================== */
:where(:root) {
  /* In Safari, if `font-family` is not specified, a serif font is applied by default, so `sans-serif` is set as the default here. */
  font-family: sans-serif;

  /*
  * For accessibility, it is recommended to set the `line-height` to at least 1.5 times the text size within paragraphs.
  * @see https://waic.jp/translations/WCAG21/#visual-presentation
  */
  line-height: 1.5;

  /* Remove space when punctuation marks are adjacent, and also remove leading spaces in a line. */
  text-spacing-trim: trim-start;

  /* Improves readability by inserting a small space between Japanese and alphanumeric characters. */
  text-autospace: normal;

  /* Prevents misreading by applying strict line-breaking rules. */
  line-break: strict;

  /* Wraps English words mid-word. Specifying `anywhere` also prevents content from overflowing in layouts like `flex` or `grid`. */
  overflow-wrap: anywhere;

  /*
  * Mobile browsers have an algorithm that automatically adjusts font sizes to prevent text from becoming too small.
  * This controls the auto-adjustment feature to prevent unwanted resizing.
  */
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;

  /*
  * Prevents layout shift caused by the appearance or disappearance of the scrollbar.
  * Starting with Chrome 145, specifying `scrollbar-gutter: stable` will cause vw to be calculated without considering the scrollbar, which will also prevent horizontal scrolling.
  */
  scrollbar-gutter: stable;

  /* Suppresses the tap highlight on iOS. */
  -webkit-tap-highlight-color: transparent;
}
:where(body) {
  /*
  * When creating a sticky footer, a minimum height is often required.
  * Setting the `min-block-size` to the dynamic viewport height ensures enough space for the footer.
  */
  min-block-size: 100dvb;

  /* The `margin` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset here. */
  margin: unset;
}
/* ======================================================
// MARK: Sections
// ------------------------------------------------------ */
:where(:is(h1, h2, h3, h4, h5, h6):lang(en)) {
  /* Prevents the last line of text from ending with a single word, which can look awkward (known as an orphan). */
  text-wrap: pretty;
}
:where(h1) {
  /*
  * Adjusts user agent (UA) styles for `h1` elements within sectioning content.
  * This addresses DevTools warnings that appear when `h1` elements nested within sectioning content lack `font-size` and `margin` properties.
  * @see https://html.spec.whatwg.org/#sections-and-headings
  */
  margin-block: 0.67em;
  font-size: 2em;
}
:where(h2, h3, h4, h5, h6) {
  /* The `margin-block` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset. */
  margin-block: unset;
}
:where(search) {
  /*
  * The `<search>` element is supported from Safari 17.
  * This prevents it from being displayed as an inline element in unsupported environments.
  */
  display: block flow;
}
/* ======================================================
//  MARK: Grouping content
// ====================================================== */
:where(p, blockquote, figure, pre, address, ul, ol, dl, menu) {
  /* The `margin-block` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset. */
  margin-block: unset;
}
:where(blockquote, figure) {
  /* The `margin-inline` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset. */
  margin-inline: unset;
}
:where(p:lang(en)) {
  /*
  * In English, a single word on the last line is called a "widow" or "orphan" and is considered something to avoid as it makes the text harder to read.
  * Therefore, when lang="en", this prevents the last line from ending with a single word.
  */
  text-wrap: pretty;
}
:where(address:lang(ja)) {
  /* Italic style is not common in Japanese, so the `font-style` is reset. */
  font-style: unset;
}
:where(ul, ol, menu) {
  /* The `padding-inline-start` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset. */
  padding-inline-start: unset;

  /*
  * In Safari, using `list-style: none` prevents screen readers from announcing lists.
  * `list-style-type: ""` is used to hide markers without affecting accessibility.
  * @see https://matuzo.at/blog/2023/removing-list-styles-without-affecting-semantics
  */
  list-style-type: "";
}
:where(dt) {
  /* It is common to display `<dt>` elements in bold, so `font-weight: bolder;` is set by default. */
  font-weight: bolder;
}
:where(dd) {
  /* The `margin-inline-start` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset. */
  margin-inline-start: unset;
}
:where(pre) {
  /*
  * Since `text-spacing-trim` can affect spacing in `<pre>` elements even with its initial value, the final rendering may depend on the user's font settings.
  * To ensure consistent alignment, `space-all` is explicitly specified and inheritance is prevented.
  */
  text-spacing-trim: space-all;

  /* Set to `no-autospace` as it can cause misalignment with monospaced fonts. */
  text-autospace: no-autospace;
}
@media print {
  :where(pre) {
    /* Prevent text wrapping in print media. */
    text-wrap-mode: unset;
  }
}
/* ======================================================
//  MARK: Text-level semantics
// ====================================================== */
:where(em:lang(ja)) {
  /* In Japanese, emphasis is commonly represented by bold text, so `font-weight: bolder;` is set by default. */
  font-weight: bolder;
}
:where(:is(i, cite, em, dfn):lang(ja)) {
  /* Italic style is not common in Japanese, so the `font-style` is reset. */
  font-style: unset;
}
:where(u, s, del, ins) {
  /* Set the underline inset to `auto` and separate only the horizontal lines when underlines are consecutive. */
  text-decoration-inset: auto;
}
:where(code, kbd, samp) {
  /*
  * Set a monospace font family referencing Tailwind.
  * @see https://tailwindcss.com/docs/font-family
  */
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;

  /* Font feature settings can have adverse effects on monospaced fonts, so their values are explicitly set to `initial` to prevent inheritance. */
  font-feature-settings: initial;
  font-variation-settings: initial;

  /* Resets the `font-size` specified in the UA stylesheet to allow inheritance. */
  font-size: unset;

  /*
  * Disables font ligatures for programming fonts (like Fira Code)
  * to prevent character combinations like `=>` from being rendered as a single symbol (e.g., `⇒`).
  */
  font-variant-ligatures: none;
}
:where(abbr[title]) {
  /*
  * The `<abbr>` element with the `title` attribute isn't helpful regarding accessibility because support is inconsistent, and it's only accessible to some users.
  * This rule shows a dotted underline on abbreviations in all browsers (there's a bug in Safari) and changes the cursor.
  * @see https://adrianroselli.com/2024/01/using-abbr-element-with-title-attribute.html
  */
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-inset: auto;
  cursor: help;
}
:where(time) {
  /* Set to `no-autospace` because date notations in typography do not include spaces. */
  text-autospace: no-autospace;
}
@media (forced-colors: active) {
  :where(mark) {
    /*
    * In forced-colors mode, the color of the mark element may not change, which can be problematic. Use system colors in forced-colors mode.
    * @see https://adrianroselli.com/2017/12/tweaking-text-level-styles.html#MarkWHCM
    */
    background-color: Highlight;
    color: HighlightText;
  }
}
@media print {
  :where(mark) {
    /*
    * Not all printers support color, and users might print in grayscale.
    * It's worth adding a non-disruptive style that scales with the text, as an alternative to relying only on background color.
    * @see https://adrianroselli.com/2017/12/tweaking-text-level-styles.html#MarkPrint
    */
    border-width: 1px;
    border-style: dotted;
  }
}
/* ======================================================
//  MARK: Links
// ====================================================== */
:where(a) {
  /*
  * The default `color` from the UA stylesheet is rarely used as is, so it's reset to allow inheritance.
  * In Firefox on iOS, the user agent stylesheet’s text color is applied even when the text is not a link.
  * @see https://github.com/darkreader/darkreader/issues/9836
  */
  color: unset;
}
:where(a:any-link) {
  /*
  * While link underlines can be useful, they are often obstructive.
  * They are disabled by default.
  * If needed, restore them using `text-decoration-line: revert;`.
  */
  text-decoration-line: unset;

  /* Set the underline thickness to the font's default thickness. */
  text-decoration-thickness: from-font;

  /* Set the underline inset to `auto` and separate only the horizontal lines when underlines are consecutive. */
  text-decoration-inset: auto;
}
/* ======================================================
//  MARK: Embedded content
// ====================================================== */
:where(img, svg, picture, video, audio, canvas, model, iframe, embed, object) {
  /* Prevents overflow by setting the maximum width to `100%`. */
  max-inline-size: 100%;

  /* Prevents extra space from appearing at the bottom of the element. */
  vertical-align: bottom;
}
:where(img, svg, picture, video, canvas, model, iframe, embed, object) {
  /*
  * Automatically adjust block size based on content.
  * Exclude the <audio> element as it disappears when block-size is auto.
  * @see https://github.com/tak-dcxi/kiso.css/issues/5
  */
  block-size: auto;
}
:where(iframe) {
  /* The `border` specified in the UA stylesheet is often unnecessary, so it is reset. */
  border: unset;
}
/* ======================================================
//  MARK: Tabular data
// ====================================================== */
:where(table) {
  /* Collapse borders for a more refined table design. */
  border-collapse: collapse;
}
:where(caption, th) {
  /* The `text-align` specified in the UA stylesheet is often unnecessary, so it is reset. */
  text-align: unset;
}
:where(caption:lang(en)) {
  /* Prevents the last line of text from ending with a single word, which can look awkward (known as an orphan). */
  text-wrap: pretty;
}
/* ======================================================
//  MARK: Forms
// ====================================================== */
:where(button, input, select, textarea),
::file-selector-button {
  /*
  * These elements are often styled with a border, so a `1px` border is applied by default for consistency.
  * This ensures readability even for unstyled elements.
  * When resetting, it's recommended to use `border-color: transparent` instead of `border: none` to account for forced color modes.
  */
  border-width: 1px;
  border-style: solid;

  /* These styles specified in the UA stylesheet are often unnecessary, so they are reset to allow for inheritance. */
  border-color: unset;
  border-radius: unset;
  color: unset;
  font: unset;
  letter-spacing: unset;
  text-align: unset;
}
:where(input:is([type="radio" i], [type="checkbox" i])) {
  /* The `margin` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset here. */
  margin: unset;
}
:where(input[type="file" i]) {
  /* The `border` is often unnecessary, so it is reset here. */
  border: unset;
}
:where(input[type="search" i]) {
  /* Remove the rounded corners of search inputs on macOS and normalize the background color. */
  -webkit-appearance: textfield;
}
@supports (-webkit-touch-callout: none) {
  :where(input[type="search" i]) {
    /* normalize the background color on iOS. */
    background-color: Canvas;
  }
}
:where(input:is([type="tel" i], [type="url" i], [type="email" i], [type="number" i]):not(:placeholder-shown)) {
  /*
  * Certain input types need to maintain left alignment even in right-to-left (RTL) languages.
  * However, this only applies when the value is not empty, as the placeholder should be right-aligned.
  * @see https://rtlstyling.com/posts/rtl-styling#form-inputs
  */
  direction: ltr;
}
:where(textarea) {
  /* The `margin-block` specified in Firefox's UA stylesheet is often unnecessary, so it is reset. */
  margin-block: unset;

  /* Allows vertical resizing for `<textarea>` elements. */
  resize: block;
}
:where(input:not([type="button" i], [type="submit" i], [type="reset" i]), textarea, [contenteditable]) {
  /* Set to `no-autospace` because `text-autospace` can insert spaces during input, potentially causing erratic behavior. */
  text-autospace: no-autospace;
}
:where(button, input:is([type="button" i], [type="submit" i], [type="reset" i])),
::file-selector-button {
  /* The `background-color` specified in the User Agent (UA) stylesheet is often unnecessary, so it is reset here. */
  background-color: unset;
}
:where(button, input:is([type="button" i], [type="submit" i], [type="reset" i]), [role="tab" i], [role="button" i], [role="option" i]),
::file-selector-button {
  /*
  * On iOS, double-tapping a button can cause zooming, which harms usability.
  * `touch-action: manipulation` is specified to disable zooming on double-tap.
  * Third-party plugins such as Swiper sometimes use div elements with these roles as buttons, since double-tapping a div can still trigger zooming, it's advisable to specify this property.
  */
  touch-action: manipulation;
}
:where(
  button:enabled,
  label[for],
  select:enabled,
  input:is([type="button" i], [type="submit" i], [type="reset" i], [type="radio" i], [type="checkbox" i]):enabled,
  [role="tab" i],
  [role="button" i],
  [role="option" i]
),
:where(:enabled)::file-selector-button {
  /* Indicate clickable elements with a pointer cursor. */
  cursor: pointer;
}
:where(fieldset) {
  /*
  * Prevent fieldset from causing overflow.
  * Reset the default `min-inline-size: min-content` to prevent children from stretching fieldset.
  * @see https://github.com/twbs/bootstrap/issues/12359
  */
  min-inline-size: 0;

  /* The following default styles are often unnecessary, so they are reset. */
  margin-inline: unset;
  padding: unset;
  border: unset;
}
:where(legend) {
  /* The default `padding-inline` is often unnecessary, so it is reset. */
  padding-inline: unset;
}
:where(progress) {
  /* Resets the vertical alignment of the `<progress>` element to its initial value. */
  vertical-align: unset;
}
::placeholder {
  /* Standardize the opacity of placeholder text (it may be set lower by default in Firefox). */
  opacity: unset;
}
/* ======================================================
//  MARK: Interactive elements
// ====================================================== */
:where(summary) {
  /* The default triangle marker is often unnecessary, so it is disabled. */
  list-style-type: "";

  /* Changing the cursor to a pointer clarifies the clickability of the element. */
  cursor: pointer;
}
:where(summary)::-webkit-details-marker {
  /* In Safari versions earlier than 18.4 (released in April 2025), a triangle icon is displayed using the -webkit-details-marker CSS pseudo-element, so it should be removed. */
  display: none;
}
:where(dialog, [popover]) {
  /*
  * When these fixed-position elements are scrolled, preventing scroll chaining on the underlying page and bounce effects on mobile improves usability.
  * Disabling block-direction scroll chaining is recommended.
  */
  overscroll-behavior-block: contain;

  /* The following default styles are often unnecessary, so they are reset. */
  padding: unset;
  border: unset;
}
:where(dialog:not([open], [popover]), [popover]:not(:popover-open)) {
  /*
  * These elements can be easily displayed by explicitly setting their `display` property.
  * To prevent them from appearing when not in an open state, they are forcibly hidden.
  */
  display: none !important;
}
:where(dialog) {
  /*
  * The max width and height of a `<dialog>` element are typically determined by the design.
  * These UA stylesheet properties are reset as they can be obstructive, especially when trying to make the dialog full-screen.
  */
  max-inline-size: unset;
  max-block-size: unset;
}
:where(dialog)::backdrop {
  /* Normalize the background color of the `::backdrop` element. */
  background-color: oklch(0% 0 0deg / 30%);
}
:where([popover]) {
  /*
  * While the UA stylesheet's `margin` for `<dialog>` elements is useful for centering with `inset: 0`,
  * but `margin` for `popover` elements is often obstructive as they frequently use Anchor Positioning.
  */
  margin: unset;
}
/* ======================================================
//  MARK: Focus Styles
// ====================================================== */
:where(:focus-visible) {
  /* Add space between the content and the focus outline. */
  outline-offset: 3px;
}
[tabindex="-1"]:focus {
  /* Prevent programmatically focused elements from displaying an outline unless they are naturally focusable. */
  outline: none !important;
}
/* ======================================================
//  MARK: Misc
// ====================================================== */
:where(:disabled, [aria-disabled="true" i]) {
  /* Display the default cursor on disabled elements to reflect their non-interactive state. */
  cursor: default;
}
[hidden]:not([hidden="until-found" i]) {
  /* Ensure that elements intended to be hidden are not displayed, improving clarity and layout control. */
  display: none !important;
}
:where(h1, h2, h3, h4, h5, h6) {
  margin: 0;
}
:where(p) {
  margin: 0;
}
html {
  font-size: 100%;
}
a[href^="tel"] {
  text-decoration: none;
}
a {
  color: inherit;
  -webkit-tap-highlight-color: transparent;
  /* 強調をなくす */
}
a:hover {
  text-decoration: none;
}
img,
svg {
  vertical-align: middle;
}
img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
:where(:any-link, button, [type="button"], [type="reset"], [type="submit"], label[for], select, summary, [role="tab"], [role="button"]) {
  cursor: pointer;
}
:where(button, [type="button"], [type="reset"], [type="submit"]) {
  touch-action: manipulation;
}
:focus:not(:focus-visible) {
  outline: none;
}
input[type="text"] {
  font-size: 1rem;
  /* = 16px */
}
textarea {
  field-sizing: content;
}
body {
  color: var(--color-text);
  font-family: var(--base-font-family);
  font-weight: var(--fw-regular);
}
@property --root-font-size {
  syntax: "<length>";
  inherits: false;
  initial-value: 16px;
}
:root {
  /* inner */
  --inner: min(1280px, 100%);
  --inner-sp: min(1280px, 100%);
  --padding-inner: 20px;
  /* z-index */
  --z-index-header: 900;
  --z-index-drawer: 850;
  /* color */
  --color-white: #fff;
  --color-text: #0d2936;
  --color-black: #000;
  --color-gray: #f0f0f0;
  --color-border: #aaaaaf;
  --color-accent: #408f95;
  --color-primary: #234f5e;
  --color-secondary: #00f;
  --color-orange: #de8430;
  --color-header-accent: #f05b0a;
  --color-header-nav-bg: #f9f9f9;
  --color-header-button-start: #ed7737;
  --color-header-button-end: #ff9e00;
  --color-school-bg: #00b6e4;
  --color-school-badge: #764900;
  --color-school-btn-hover-bg: #e9fbff;
  --color-school-grid-line: rgb(255 255 255 / 9%);
  --color-pickup-news-badge-bg: #ffe2b1;
  --color-footer-cta-blue-start: #0077c7;
  --color-footer-deco: rgb(237 119 55 / 35%);
  --color-top-results-badge-bg: #f87900;
  --color-top-reason-media-bg: #0f0f0f;
  --color-overlay-black-0: rgb(0 0 0 / 0%);
  --color-overlay-black-30: rgb(0 0 0 / 30%);
  --color-overlay-black-70: rgb(0 0 0 / 70%);
  --color-white-14: rgb(255 255 255 / 14%);
  --color-white-60: rgb(255 255 255 / 60%);
  --color-white-90: rgb(255 255 255 / 90%);
  --color-header-accent-25: rgb(240 91 10 / 25%);
  --color-accent-soft-bg: rgb(64 143 149 / 10%);
  --color-dev-notice-bg: #fff3cd;
  --color-black-5: rgb(0 0 0 / 5%);
  --color-black-10: rgb(0 0 0 / 10%);
  /* SCSS 直書きを var に寄せるための拡張トークン */
  --color-border-gray: #dbdbdb;
  --color-border-light: #e8e8e8;
  --color-border-neutral: #d9d9d9;
  --color-border-grid: #e0e0e0;
  --color-surface-f5: #f5f5f5;
  --color-surface-f7: #f7f7f7;
  --color-surface-f8: #f8f8f8;
  --color-gray-d3: #d3d3d3;
  --color-gray-df: #dfdfdf;
  --color-achievement-beige: #fde7c2;
  --color-achievement-blue: #b8e3ff;
  --color-archive-notice-bg: #fff8e9;
  --color-about-admission-body: #4a392f;
  --color-about-text-dark: #1e0b01;
  /* 下層 MV（.p-sub-mv）：#1E0B01 を 35% */
  --p-sub-mv-overlay: rgb(30 11 1 / 35%);
  --color-breadcrumb-bg: #fff5e1;
  --color-top-results-row-border: #ffca72;
  --color-analysis-chart-1: #ffb11b;
  --color-analysis-chart-2: #ff9e0e;
  --color-analysis-chart-3: #e95e0d;
  --color-shadow-soft-8: rgb(0 0 0 / 8%);
  --color-shadow-soft-28: rgb(0 0 0 / 28%);
  --color-grid-line-4: rgb(0 0 0 / 4%);
  --color-grid-line-6: rgb(0 0 0 / 6%);
  --color-white-30: rgb(255 255 255 / 30%);
  --color-white-35: rgb(255 255 255 / 35%);
  --color-white-40: rgb(255 255 255 / 40%);
  --color-white-85: rgb(255 255 255 / 85%);
  --color-white-full: rgb(255 255 255 / 100%);
  --color-header-accent-80: rgb(240 91 10 / 80%);
  --color-header-button-end-80: rgb(255 158 0 / 80%);
  --color-mv-overlay-32: rgb(0 0 0 / 32%);
  --color-overlay-black-80: rgb(0 0 0 / 80%);
  --color-pagination-text-hover: #374151;
  --color-pagination-bg-hover: #f9fafb;
  --color-pagination-border: #d1d5db;
  --color-pagination-border-hover: #9ca3af;
  /* voice archive（合格者速報ブロック：年度・見出し） */
  --p-voice-archive-results-heading-color: var(--color-header-accent);
  --p-voice-archive-results-year-font-size: calc(24 * var(--to-rem));
  --p-voice-archive-results-headline-font-size: calc(32 * var(--to-rem));
  --p-voice-archive-results-heading-font-feature-settings: "halt" on;
  /* p-top school analysis */
  --p-top-school-analysis-grid-row-gap-sp: calc(12 * var(--to-rem));
  --p-top-school-analysis-card-aspect-w: 344;
  --p-top-school-analysis-card-aspect-h: 302;
  /* p-analysis-exam 特徴リスト枠（.p-analysis-exam__features） */
  --p-analysis-exam-features-max-width: calc(860 * var(--to-rem));
  --p-analysis-exam-features-padding-block: calc(42 * var(--to-rem));
  --p-analysis-exam-features-padding-inline-sp: calc(20 * var(--to-rem));
  --p-analysis-exam-features-padding-inline: calc(105 * var(--to-rem));
  --p-analysis-exam-features-radius: calc(20 * var(--to-rem));
  --p-analysis-exam-features-bg: var(--color-header-nav-bg);
  --p-analysis-exam-features-margin-top: calc(52 * var(--to-rem));
  /* p-analysis-school-body 目次（Table of Contents Plus #toc_container） */
  --p-analysis-school-toc-max-width: calc(742 * var(--to-rem));
  --p-analysis-school-toc-padding-block: calc(21 * var(--to-rem));
  --p-analysis-school-toc-padding-inline-sp: calc(20 * var(--to-rem));
  --p-analysis-school-toc-padding-inline: calc(76 * var(--to-rem));
  --p-analysis-school-toc-radius: calc(20 * var(--to-rem));
  --p-analysis-school-toc-bg: var(--color-header-nav-bg);
  /* font-weight */
  --fw-light: 300;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-bold: 700;
  /* font-family（本文: --base-font-family / タイトル・数字（Akshar）: --title-font-family） */
  --base-font-family: "Zen Kaku Gothic New", sans-serif;
  --title-font-family: "Akshar", sans-serif;
  --to-rem: calc(tan(atan2(1px, var(--root-font-size))) * 1rem);
  /* p-mv-banner: SP 時「詳細を見る」 */
  --color-mv-banner-detail: #006d83;
  --p-mv-banner-detail-font-size: calc(12 * var(--to-rem));
  --p-mv-banner-detail-icon-size: calc(12 * var(--to-rem));
  /* transition duration */
  --duration: 0.3s;
  /* header height */
  --header-height: 60px;
}
@media screen and (width >= 768px) {
  :root {
    /* 768〜1024px でヘッダー実寸に近づける（_p-header の fluid と概ね連動） */
    --header-height: clamp(140px, 140px + (100vw - 768px) * 20 / 256, 160px);
  }
}
.l-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: var(--z-index-header);
}
.l-inner {
  box-sizing: border-box;
  width: 100%;
  max-width: calc(1280px + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
.l-main {
  margin-block-start: var(--header-height);
}
.c-achievement-card {
  position: relative;
  display: grid;
  gap: calc(16 * var(--to-rem));
  width: 100%;
  box-shadow: none;
  color: inherit;
  text-decoration: none;
}
.c-achievement-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background: var(--color-white-40);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--duration) ease;
}
@media (any-hover: hover) {
  .c-achievement-card:hover::after {
    opacity: 1;
  }
}
.c-achievement-card:focus-visible {
  outline: 2px solid var(--color-header-button-end);
  outline-offset: calc(4 * var(--to-rem));
}
.c-achievement-card__image {
  --achievement-bg: var(--color-achievement-beige);
  position: relative;
  overflow: hidden;
  width: calc(320 * var(--to-rem));
  height: calc(213 * var(--to-rem));
  border: 1px solid var(--color-border-light);
  border-radius: calc(20 * var(--to-rem));
  background-color: var(--achievement-bg);
}
.c-achievement-card__image::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: linear-gradient(to right, var(--color-white-30) 8px, transparent 8px), linear-gradient(to bottom, var(--color-white-30) 8px, transparent 8px);
  background-size: calc(17 * var(--to-rem)) calc(17 * var(--to-rem));
  pointer-events: none;
}
.c-achievement-card__image--blue {
  --achievement-bg: var(--color-achievement-blue);
}
.c-achievement-card__figure {
  position: absolute;
  z-index: 1;
}
.c-achievement-card__figure--beige {
  top: calc(13 * var(--to-rem));
  left: calc(109 * var(--to-rem));
  width: calc(102 * var(--to-rem));
  height: calc(200 * var(--to-rem));
}
.c-achievement-card__figure--blue {
  top: calc(23 * var(--to-rem));
  left: calc(98 * var(--to-rem));
  width: calc(125 * var(--to-rem));
  height: calc(190 * var(--to-rem));
}
.c-achievement-card__title {
  color: var(--color-header-button-end);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(18 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: normal;
}
.c-achievement-card__text {
  color: var(--color-school-badge);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-regular);
  line-height: 1.4;
}
.c-achievement-card__meta {
  color: var(--color-school-badge);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-bold);
}
.c-button {
  position: relative;
  display: flex;
  box-sizing: border-box;
  gap: calc(6 * var(--to-rem));
  justify-content: center;
  align-items: center;
  width: 100%;
  max-width: calc(400 * var(--to-rem));
  padding: calc(23.5 * var(--to-rem)) calc(20 * var(--to-rem));
  /* SP: */
  border-radius: calc(100 * var(--to-rem));
  background: linear-gradient(94deg, var(--color-header-button-start) 1.5%, var(--color-header-button-end) 98.5%);
  color: var(--color-white);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-decoration: none;
  transition:
    filter var(--duration) ease,
    transform var(--duration) ease;
}
.c-button:has(.c-button__icon) {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 0;
}
@media screen and (min-width: 768px) {
  .c-button {
    width: calc(320 * var(--to-rem));
    max-width: none;
    padding: calc(23.5 * var(--to-rem)) calc(20 * var(--to-rem));
  }
  .c-button:has(.c-button__icon) {
    display: flex;
    gap: calc(6 * var(--to-rem));
  }
}
@media (any-hover: hover) {
  .c-button:hover {
    filter: brightness(1.08);
    transform: translateY(calc(-2 * var(--to-rem)));
  }
}
.c-button:has(.c-button__icon) > :not(.c-button__icon) {
  grid-column: 2;
  justify-self: center;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .c-button:has(.c-button__icon) > :not(.c-button__icon) {
    grid-column: unset;
    justify-self: unset;
    text-align: inherit;
  }
}
.c-button__icon {
  grid-column: 3;
  justify-self: end;
  flex-shrink: 0;
  width: calc(20 * var(--to-rem));
  height: calc(20 * var(--to-rem));
  aspect-ratio: 1/1;
}
@media screen and (min-width: 768px) {
  .c-button__icon {
    grid-column: unset;
    justify-self: unset;
  }
}
/* PC（md〜）のみ表示。SP は .c-contact-sp */
.c-contact {
  display: none;
}
@media screen and (min-width: 768px) {
  .c-contact {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: minmax(0, 1fr);
    gap: calc(26 * var(--to-rem));
    align-items: stretch;
    box-sizing: border-box;
    width: min(100% - 40 * var(--to-rem), 1080 * var(--to-rem));
    margin-inline: auto;
    min-height: calc(269 * var(--to-rem));
    height: auto;
    max-height: none;
    padding: calc(20 * var(--to-rem));
    padding-right: 70px;
    border-radius: calc(16 * var(--to-rem));
    background-image:
      linear-gradient(to right, var(--color-white-14) 1px, transparent 1px), linear-gradient(to bottom, var(--color-white-14) 1px, transparent 1px),
      linear-gradient(90deg, var(--color-header-button-end) 0%, var(--color-header-accent) 100%);
    background-position:
      0 0,
      0 0,
      0 0;
    background-size:
      calc(24 * var(--to-rem)) calc(24 * var(--to-rem)),
      calc(24 * var(--to-rem)) calc(24 * var(--to-rem)),
      100% 100%;
    background-color: var(--color-header-button-end);
  }
}
@media screen and (min-width: 1024px) {
  .c-contact {
    height: calc(269 * var(--to-rem));
    min-height: calc(269 * var(--to-rem));
    max-height: calc(269 * var(--to-rem));
  }
}
@media screen and (min-width: 768px) {
  .c-contact--main {
    margin-top: calc(74 * var(--to-rem));
  }
}
@media screen and (min-width: 768px) {
  .c-contact--about {
    margin-top: calc(98 * var(--to-rem));
  }
}
.c-contact__visual {
  display: none;
}
@media screen and (min-width: 768px) {
  .c-contact__visual {
    position: relative;
    display: block;
    place-self: end start;
    width: calc(240 * var(--to-rem));
    height: calc(290 * var(--to-rem));
    margin-top: 0;
    margin-right: 0;
    margin-left: calc(-20 * var(--to-rem));
  }
}
.c-contact__body {
  display: grid;
  gap: calc(16 * var(--to-rem));
  align-content: center;
  justify-items: center;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .c-contact__body {
    display: flex;
    flex-direction: column;
    gap: calc(40 * var(--to-rem));
    justify-content: center;
    align-items: center;
    min-width: 0;
    min-height: 0;
  }
}
@media screen and (min-width: 1024px) {
  .c-contact__body {
    flex-direction: row;
    align-items: stretch;
  }
}
.c-contact__main {
  color: var(--color-white);
  text-align: center;
}
@media screen and (min-width: 768px) {
  .c-contact__main {
    flex-shrink: 0;
    align-self: center;
    box-sizing: border-box;
    width: calc(335 * var(--to-rem));
    text-align: center;
  }
}
.c-contact__copy {
  color: var(--color-white);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .c-contact__copy {
    font-size: calc(24 * var(--to-rem));
  }
}
.c-contact__time {
  margin-top: calc(8 * var(--to-rem));
  color: var(--color-white);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .c-contact__time {
    margin-top: calc(18 * var(--to-rem));
    font-size: calc(18 * var(--to-rem));
  }
}
.c-contact__tel a {
  color: var(--color-white);
  font-family: var(--title-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(56 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .c-contact__tel a {
    font-size: calc(46 * var(--to-rem));
  }
}
.c-contact__side {
  display: grid;
  gap: calc(24 * var(--to-rem));
  justify-items: center;
}
@media screen and (min-width: 768px) {
  .c-contact__side {
    position: relative;
    align-content: center;
    justify-items: center;
    height: auto;
    padding-top: calc(24 * var(--to-rem));
    padding-left: 0;
    margin-top: 0;
    border-top: 1px solid var(--color-white-60);
  }
  .c-contact__side::before {
    display: none;
  }
}
@media screen and (min-width: 1024px) {
  .c-contact__side {
    height: 100%;
    padding-top: 0;
    margin-top: 0;
    border-top: none;
    padding-left: calc(40 * var(--to-rem));
  }
  .c-contact__side::before {
    display: block;
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    width: 1px;
    height: min(100%, 190 * var(--to-rem));
    background-color: var(--color-white-60);
    transform: translateY(-50%);
  }
}
@media screen and (min-width: 768px) {
  .c-contact__main,
  .c-contact__side {
    min-height: 0;
  }
}
.c-contact__side-copy {
  color: var(--color-white);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .c-contact__side-copy {
    font-size: calc(24 * var(--to-rem));
  }
}
.c-contact__button {
  display: flex;
  gap: calc(6 * var(--to-rem));
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  width: calc(330 * var(--to-rem));
  max-width: 100%;
  padding-block: calc(26 * var(--to-rem));
  padding-inline: calc(20 * var(--to-rem));
  border: 1px solid var(--color-white);
  border-radius: calc(999 * var(--to-rem));
  background: linear-gradient(94deg, var(--color-header-button-start) 1.5%, var(--color-header-button-end) 98.5%);
  color: var(--color-white);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-decoration: none;
  transition:
    filter var(--duration) ease,
    transform var(--duration) ease;
}
@media screen and (min-width: 768px) {
  .c-contact__button {
    font-size: calc(16 * var(--to-rem));
  }
}
@media (any-hover: hover) {
  .c-contact__button:hover {
    filter: brightness(1.08);
    transform: translateY(calc(-2 * var(--to-rem)));
  }
}
.c-contact__button img {
  width: calc(16 * var(--to-rem));
  height: calc(16 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .c-contact__visual img {
    position: absolute;
    bottom: calc(-20 * var(--to-rem));
    left: 50%;
    width: calc(240 * var(--to-rem));
    height: calc(290 * var(--to-rem));
    object-fit: contain;
    object-position: bottom center;
    transform: translateX(-50%);
  }
}
/* SP 専用PC は .c-contact を使用 */
.c-contact-sp {
  display: block;
  box-sizing: border-box;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .c-contact-sp {
    display: none;
  }
}
.c-contact-sp__inner {
  position: relative;
  overflow: hidden;
  min-height: calc(310 * var(--to-rem));
  padding: calc(29 * var(--to-rem)) calc(20 * var(--to-rem)) calc(39 * var(--to-rem));
  border-radius: calc(10 * var(--to-rem));
  background-color: var(--color-header-button-end);
  background-image:
    linear-gradient(to right, var(--color-white-14) 1px, transparent 1px), linear-gradient(to bottom, var(--color-white-14) 1px, transparent 1px),
    linear-gradient(-41.89deg, var(--color-header-accent) 26.82%, var(--color-header-button-end) 73.18%);
  background-position:
    0 0,
    0 0,
    0 0;
  background-size:
    calc(16 * var(--to-rem)) calc(16 * var(--to-rem)),
    calc(16 * var(--to-rem)) calc(16 * var(--to-rem)),
    100% 100%;
}
.c-contact-sp__bk {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
}
.c-contact-sp__content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(24 * var(--to-rem));
}
.c-contact-sp__heading {
  margin: 0;
  color: var(--color-white);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: center;
}
.c-contact-sp__actions {
  display: flex;
  flex-direction: column;
  gap: calc(18 * var(--to-rem));
  align-items: stretch;
  width: 100%;
  max-width: calc(360 * var(--to-rem));
}
.c-contact-sp__btn {
  display: flex;
  gap: calc(12 * var(--to-rem));
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  min-height: calc(65 * var(--to-rem));
  padding-inline: calc(16 * var(--to-rem));
  border: 1px solid var(--color-white);
  border-radius: calc(100 * var(--to-rem));
  text-decoration: none;
  transition:
    filter var(--duration) ease,
    transform var(--duration) ease;
}
.c-contact-sp__btn--tel {
  background-color: var(--color-header-accent-80);
}
.c-contact-sp__btn--apply {
  background-color: var(--color-header-button-end-80);
}
@media (any-hover: hover) {
  .c-contact-sp__btn:hover {
    filter: brightness(1.06);
    transform: translateY(calc(-1 * var(--to-rem)));
  }
}
.c-contact-sp__btn-icon {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: calc(21 * var(--to-rem));
  height: calc(21 * var(--to-rem));
}
.c-contact-sp__btn--apply .c-contact-sp__btn-icon {
  width: calc(16.65 * var(--to-rem));
  height: calc(16.65 * var(--to-rem));
}
.c-contact-sp__btn-icon img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.c-contact-sp__btn-text {
  color: var(--color-white);
  font-feature-settings: "halt" on;
  font-style: normal;
  line-height: normal;
}
/* Akshar はメトリクス上アイコンより文字が上に見えるため .p-top__results-value と同様に下げる */
.c-contact-sp__btn--tel .c-contact-sp__btn-text {
  display: inline-block;
  font-family: var(--title-font-family);
  font-size: calc(24 * var(--to-rem));
  font-weight: var(--fw-medium);
  line-height: 1;
  transform: translateY(calc(5 * var(--to-rem)));
}
.c-contact-sp__btn--apply .c-contact-sp__btn-text {
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-weight: var(--fw-bold);
}
/**
 * ページネーション共通コンポーネント
 *
 * 親（プロジェクト）から上書きする場合:
 *   - 呼び出し元で親クラスで wrap する（例: <div class="p-archive__pagination">...</div>）
 *   - プロジェクトの SCSS ではその wrapper クラスに --_pagination-* を設定する
 *   - 親の CSS ファイルに c-pagination のクラス名は書かない（コンポーネントのカプセル化）
 *
 * 上書き可能な変数: --_pagination-bg, --_pagination-text, --_pagination-text-hover,
 *   --_pagination-bg-hover, --_pagination-active-bg, --_pagination-active-text,
 *   --_pagination-border, --_pagination-border-hover
 */
.c-pagination {
  /* 色（ローカル変数。親の wrapper で上書き可能） */
  --_pagination-bg: var(--color-white, var(--color-white));
  --_pagination-text: var(--color-text);
  --_pagination-text-hover: var(--color-pagination-text-hover);
  --_pagination-bg-hover: var(--color-pagination-bg-hover);
  --_pagination-active-bg: var(--color-black);
  --_pagination-active-text: var(--color-white);
  --_pagination-border: var(--color-pagination-border);
  --_pagination-border-hover: var(--color-pagination-border-hover);
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
  justify-content: center;
}
.c-pagination__item {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  height: calc(40 * var(--to-rem));
  min-width: calc(40 * var(--to-rem));
  padding: 0 calc(12 * var(--to-rem));
  border: 1px solid var(--_pagination-border);
  background-color: var(--_pagination-bg);
  color: var(--_pagination-text);
  font-size: calc(14 * var(--to-rem));
  text-decoration: none;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease;
}
@media screen and (min-width: 768px) {
  .c-pagination__item {
    height: calc(44 * var(--to-rem));
    min-width: calc(44 * var(--to-rem));
    font-size: calc(15 * var(--to-rem));
  }
}
@media (any-hover: hover) {
  .c-pagination__item:hover:not([data-state="current"]) {
    border-color: var(--_pagination-border-hover);
    background-color: var(--_pagination-bg-hover);
    color: var(--_pagination-text-hover);
  }
}
.c-pagination__item[data-state="current"] {
  border-color: var(--_pagination-active-bg);
  background-color: var(--_pagination-active-bg);
  color: var(--_pagination-active-text);
}
.c-pagination__item[data-state="dots"] {
  border-color: transparent;
  background-color: transparent;
  cursor: default;
}
.c-pagination__item[data-state="dots"]:hover {
  border-color: transparent;
  background-color: transparent;
}
.c-pagination__item[data-state="prev"],
.c-pagination__item[data-state="next"] {
  font-weight: var(--fw-medium, 500);
}
.c-pagination__item[data-state="disabled"] {
  opacity: 0.6;
  cursor: default;
}
@media (any-hover: hover) {
  .c-pagination__item[data-state="disabled"]:hover {
    border-color: var(--_pagination-border);
    background-color: var(--_pagination-bg);
    color: var(--_pagination-text);
  }
}
.c-pill-badge {
  position: relative;
  display: flex;
  width: fit-content;
  padding: calc(10 * var(--to-rem)) calc(40 * var(--to-rem));
  justify-content: center;
  align-items: center;
  gap: calc(10 * var(--to-rem));
  border-radius: calc(100 * var(--to-rem));
  background: var(--color-header-button-end);
  color: var(--color-white);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .c-pill-badge {
    font-family: var(--base-font-family);
    font-size: calc(32 * var(--to-rem));
  }
}
.c-pill-badge::after {
  content: "";
  position: absolute;
  top: calc(100% - 3 * var(--to-rem));
  left: 50%;
  width: calc(25 * var(--to-rem));
  height: calc(17 * var(--to-rem));
  transform: translateX(-50%);
  background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='13' viewBox='0 0 22 13' fill='none'%3E%3Cpath d='M10.8253 12.75L21.6506 0H0L10.8253 12.75Z' fill='%23FF9E00'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.c-section-title {
  display: grid;
  gap: calc(8 * var(--to-rem));
  justify-items: center;
  width: max-content;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .c-section-title {
    gap: calc(12 * var(--to-rem));
  }
}
.c-section-title[data-align="center"] {
  justify-items: center;
  text-align: center;
}
.c-section-title[data-align="left"] {
  justify-items: start;
  text-align: left;
}
.c-section-title[data-align="right"] {
  justify-items: end;
  text-align: right;
}
.c-section-title::after {
  content: "";
  display: block;
  width: 60%;
  height: calc(3 * var(--to-rem));
  background-color: var(--color-orange);
}
@media screen and (min-width: 768px) {
  .c-section-title::after {
    width: 80%;
  }
}
.c-section-title__main {
  color: var(--color-text);
  font-family: var(--title-font-family);
  font-size: calc(32 * var(--to-rem));
  font-weight: var(--fw-medium);
  line-height: 1;
  text-transform: uppercase;
}
@media screen and (min-width: 768px) {
  .c-section-title__main {
    font-size: calc(48 * var(--to-rem));
  }
}
.c-section-title__sub {
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-regular);
  line-height: 1.4;
}
@media screen and (min-width: 768px) {
  .c-section-title__sub {
    font-size: calc(16 * var(--to-rem));
  }
}
.c-triangle {
  display: inline-block;
  width: calc(64 * var(--to-rem));
  aspect-ratio: 1/1;
  background-color: var(--color-black);
}
.c-triangle[data-direction="top"] {
  clip-path: var(--clip-triangle-top);
}
.c-triangle[data-direction="bottom"] {
  clip-path: var(--clip-triangle-bottom);
}
.c-triangle[data-direction="left"] {
  clip-path: var(--clip-triangle-left);
}
.c-triangle[data-direction="right"] {
  clip-path: var(--clip-triangle-right);
}
.c-triangle[data-direction="lower-left"] {
  clip-path: var(--clip-triangle-lower-left);
}
.c-triangle[data-direction="upper-left"] {
  clip-path: var(--clip-triangle-upper-left);
}
.c-triangle[data-direction="lower-right"] {
  clip-path: var(--clip-triangle-lower-right);
}
.c-triangle[data-direction="upper-right"] {
  clip-path: var(--clip-triangle-upper-right);
}
/* About: 入塾の流れ */
.p-about-admission-flow {
  box-sizing: border-box;
  width: 100%;
  padding-block: calc(119 * var(--to-rem)) calc(56 * var(--to-rem));
  background-color: var(--color-white);
  font-family: var(--base-font-family);
}
@media screen and (min-width: 768px) {
  .p-about-admission-flow {
    padding-block: calc(119 * var(--to-rem)) calc(72 * var(--to-rem));
  }
}
.p-about-admission-flow__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  max-width: calc(960 * var(--to-rem));
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-about-admission-flow__inner {
    max-width: min(1280 * var(--to-rem), 100%);
  }
}
@media screen and (min-width: 768px) {
  .p-about-admission-flow__inner.l-inner {
    /* l-inner: 片側 20 → 左 60 にしたぶん、1280+左右パディングを幅に反映 */
    max-width: min(1280px + 60 * var(--to-rem) + var(--padding-inner), 100%);
    padding-left: calc(60 * var(--to-rem));
    padding-right: var(--padding-inner);
  }
}
/* メイン見出し（オレンジの吹き出し・白文字） — 時間割セクションと同型 */
.p-about-admission-flow__badge {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  margin-inline: auto;
  padding: calc(8 * var(--to-rem)) calc(20 * var(--to-rem));
  border-radius: calc(100 * var(--to-rem));
  background: var(--color-header-button-end);
  color: var(--color-white);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-admission-flow__badge {
    padding: calc(10 * var(--to-rem)) calc(40 * var(--to-rem));
    font-size: calc(32 * var(--to-rem));
  }
}
.p-about-admission-flow__badge-text {
  color: inherit;
  font-family: inherit;
  font-feature-settings: inherit;
  font-size: inherit;
  font-style: inherit;
  font-weight: inherit;
  line-height: inherit;
}
.p-about-admission-flow__badge::after {
  content: "";
  position: absolute;
  bottom: calc(-9 * var(--to-rem));
  left: 50%;
  width: 0;
  height: 0;
  border-top: calc(10 * var(--to-rem)) solid var(--color-header-button-end);
  border-right: calc(10 * var(--to-rem)) solid transparent;
  border-left: calc(10 * var(--to-rem)) solid transparent;
  transform: translateX(-50%);
}
.p-about-admission-flow__intro {
  width: 100%;
  margin-block-start: calc(32 * var(--to-rem));
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-admission-flow__intro {
    margin-block-start: calc(37 * var(--to-rem));
  }
}
.p-about-admission-flow__intro-line {
  margin: 0;
  color: var(--color-school-badge);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
.p-about-admission-flow__steps {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: calc(793 * var(--to-rem));
  margin: 0;
  margin-block-start: calc(54 * var(--to-rem));
  margin-inline: auto;
  padding: 0;
  list-style: none;
}
.p-about-admission-flow__step {
  position: relative;
  margin: 0;
}
.p-about-admission-flow__step + .p-about-admission-flow__step {
  margin-block-start: calc(24 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-about-admission-flow__step + .p-about-admission-flow__step {
    margin-block-start: calc(20 * var(--to-rem));
  }
}
/* 白カード：左＝画像（300）・右＝テキスト（最小幅 493 を目標、狭い幅では伸縮） */
.p-about-admission-flow__step-card {
  box-sizing: border-box;
  min-height: calc(224 * var(--to-rem));
  display: flex;
  flex-direction: column;
  align-items: stretch;
  overflow: visible;
  padding-inline: calc(40 * var(--to-rem));
  border-radius: calc(16 * var(--to-rem));
  background-color: var(--color-white);
}
@media screen and (min-width: 768px) {
  .p-about-admission-flow__step-card {
    padding-inline: 0;
    flex-direction: row;
    align-items: stretch;
    width: 100%;
    min-width: 0;
  }
}
/* 画像＋バッジ（角丸・クリップは step-media、バッジは左にはみ出せるよう visual は visible） */
.p-about-admission-flow__step-visual {
  position: relative;
  z-index: 0;
  flex-shrink: 0;
  overflow: visible;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .p-about-admission-flow__step-visual {
    flex: 0 0 calc(300 * var(--to-rem));
    align-self: stretch;
    max-width: calc(300 * var(--to-rem));
  }
}
/* Step バッジ：左半円（右半分なし）・画像（step-media）上辺に合わせて左へはみ出す */
.p-about-admission-flow__step-badge {
  position: absolute;
  top: 8px;
  left: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: calc(32 * var(--to-rem));
  height: calc(64 * var(--to-rem));
  border-radius: calc(32 * var(--to-rem)) 0 0 calc(32 * var(--to-rem));
  color: var(--color-white);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  line-height: 1.1;
  text-align: center;
  pointer-events: none;
  transform: translateX(-100%);
}
@media screen and (min-width: 768px) {
  .p-about-admission-flow__step-badge {
    width: calc(40 * var(--to-rem));
    height: calc(80 * var(--to-rem));
    border-radius: calc(40 * var(--to-rem)) 0 0 calc(40 * var(--to-rem));
  }
}
.p-about-admission-flow__step:nth-child(odd) .p-about-admission-flow__step-badge {
  background-color: var(--color-header-button-end);
}
.p-about-admission-flow__step:nth-child(even) .p-about-admission-flow__step-badge {
  background-color: var(--color-header-accent);
}
.p-about-admission-flow__step-badge-label {
  font-size: calc(11 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
}
@media screen and (min-width: 768px) {
  .p-about-admission-flow__step-badge-label {
    font-size: calc(13 * var(--to-rem));
  }
}
.p-about-admission-flow__step-badge-num {
  margin-block-start: calc(2 * var(--to-rem));
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
}
@media screen and (min-width: 768px) {
  .p-about-admission-flow__step-badge-num {
    font-size: calc(22 * var(--to-rem));
  }
}
/* 横幅は基本 100%（親の step-visual の幅＝SP は全幅、md は 300） */
.p-about-admission-flow__step-media {
  position: relative;
  z-index: 1;
  overflow: hidden;
  width: 100%;
  min-height: calc(200 * var(--to-rem));
  max-width: 100%;
  margin: 0;
  border-radius: calc(10 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-about-admission-flow__step-media {
    position: absolute;
    inset: 0;
    width: 100%;
    min-height: 100%;
    max-width: calc(300 * var(--to-rem));
    border-radius: calc(10 * var(--to-rem)) 0 0 calc(10 * var(--to-rem));
  }
}
.p-about-admission-flow__step-img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: calc(200 * var(--to-rem));
  object-fit: cover;
}
@media screen and (min-width: 768px) {
  .p-about-admission-flow__step-img {
    position: absolute;
    inset: 0;
    min-height: 100%;
  }
}
.p-about-admission-flow__step-body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  box-sizing: border-box;
  min-width: 0;
  padding: calc(32 * var(--to-rem)) 0;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .p-about-admission-flow__step-body {
    padding: calc(32 * var(--to-rem));
    flex: 1 1 0;
    min-width: min(493 * var(--to-rem), 100% - 300 * var(--to-rem));
    max-width: 100%;
  }
}
.p-about-admission-flow__step-title {
  margin: 0;
  color: var(--color-header-button-end);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-about-admission-flow__step-text {
  margin-block-start: calc(12 * var(--to-rem));
  color: var(--color-school-badge);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-about-admission-flow__step-text p {
  margin: 0;
}
.p-about-admission-flow__step-bring {
  margin-block-start: calc(16 * var(--to-rem));
  padding: 0;
  color: var(--color-school-badge);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.p-about-admission-flow__step-bring-label {
  margin: 0;
  margin-block-end: calc(10 * var(--to-rem));
}
.p-about-admission-flow__step-bring-label::before {
  content: "<";
}
.p-about-admission-flow__step-bring-label::after {
  content: ">";
}
.p-about-admission-flow__step-bring-line {
  margin: 0;
}
/* About: よくある質問 */
.p-about-faq {
  box-sizing: border-box;
  width: 100%;
  margin-block-end: calc(98 * var(--to-rem));
  padding-block: calc(48 * var(--to-rem)) calc(56 * var(--to-rem));
  background-color: var(--color-header-button-end);
  font-family: var(--base-font-family);
}
@media screen and (min-width: 768px) {
  .p-about-faq {
    padding-block: calc(56 * var(--to-rem)) calc(72 * var(--to-rem));
  }
}
.p-about-faq__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  max-width: calc(960 * var(--to-rem));
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-about-faq__inner {
    max-width: min(1320 * var(--to-rem), 100%);
  }
}
/* 見出し：白カプセル＋下向き三角（学びのスタイルと同型） */
.p-about-faq__badge {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: calc(8 * var(--to-rem)) calc(20 * var(--to-rem));
  border-radius: calc(100 * var(--to-rem));
  background: var(--color-white);
  color: var(--color-header-button-end);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-faq__badge {
    padding: calc(10 * var(--to-rem)) calc(40 * var(--to-rem));
    font-size: calc(32 * var(--to-rem));
  }
}
.p-about-faq__badge-text {
  color: inherit;
  font-family: inherit;
  font-feature-settings: inherit;
  font-size: inherit;
  font-style: inherit;
  font-weight: inherit;
  line-height: inherit;
}
.p-about-faq__badge::after {
  content: "";
  position: absolute;
  bottom: calc(-9 * var(--to-rem));
  left: 50%;
  width: 0;
  height: 0;
  border-top: calc(10 * var(--to-rem)) solid var(--color-white);
  border-right: calc(10 * var(--to-rem)) solid transparent;
  border-left: calc(10 * var(--to-rem)) solid transparent;
  transform: translateX(-50%);
}
.p-about-faq__lead {
  margin: 0;
  margin-block-start: calc(28 * var(--to-rem));
  color: var(--color-white);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-about-faq__lead {
    margin-block-start: calc(36 * var(--to-rem));
  }
}
.p-about-faq__shell {
  box-sizing: border-box;
  align-self: stretch;
  width: 100%;
  max-width: min(1320 * var(--to-rem), 100%);
  margin-block-start: calc(32 * var(--to-rem));
  margin-inline: auto;
  padding-inline: calc(20 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-about-faq__shell {
    margin-block-start: calc(51 * var(--to-rem));
  }
}
/* タブはオレンジ地の上、白パネルは直下に接続（学びのスタイルと同型） */
.p-about-faq__tab-shell {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 0;
  text-align: left;
}
.p-about-faq__tab-bar {
  display: grid;
  box-sizing: border-box;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: calc(10 * var(--to-rem));
  align-items: stretch;
  width: 100%;
  margin: 0;
  padding: 0;
}
@media screen and (min-width: 768px) {
  .p-about-faq__tab-bar {
    display: flex;
    flex-wrap: nowrap;
    align-items: flex-end;
    gap: calc(12 * var(--to-rem));
    justify-content: flex-start;
  }
}
.p-about-faq__tab {
  display: flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  min-height: calc(80 * var(--to-rem));
  height: auto;
  margin: 0;
  padding: calc(8 * var(--to-rem)) calc(4 * var(--to-rem));
  border-radius: calc(10 * var(--to-rem));
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: 1.3;
  text-align: center;
  cursor: pointer;
  appearance: none;
  white-space: normal;
  -webkit-tap-highlight-color: transparent;
}
@media screen and (min-width: 768px) {
  .p-about-faq__tab {
    flex: 1 1 0;
    max-width: 100%;
    min-height: 0;
    height: calc(70 * var(--to-rem));
    padding: 0 calc(8 * var(--to-rem));
    border-radius: calc(20 * var(--to-rem)) calc(20 * var(--to-rem)) 0 0;
    font-size: calc(18 * var(--to-rem));
    line-height: normal;
  }
}
.p-about-faq__tab[aria-selected="true"] {
  border: 1px solid var(--color-white);
  background-color: var(--color-white);
  color: var(--color-header-button-end);
}
.p-about-faq__tab[aria-selected="false"] {
  border: 1px solid var(--color-header-accent);
  background-color: var(--color-header-accent);
  color: var(--color-white);
}
.p-about-faq__tab:focus-visible {
  outline: 2px solid var(--color-white);
  outline-offset: 2px;
}
.p-about-faq__panels {
  margin: 0;
  margin-block-start: calc(16 * var(--to-rem));
  padding-block: calc(32 * var(--to-rem)) calc(40 * var(--to-rem));
  padding-inline: calc(20 * var(--to-rem));
  border-radius: calc(20 * var(--to-rem));
  background-color: var(--color-white);
  box-shadow: 0 calc(4 * var(--to-rem)) calc(24 * var(--to-rem)) var(--color-shadow-soft-8);
}
@media screen and (min-width: 768px) {
  .p-about-faq__panels {
    margin-block-start: 0;
    padding-block: calc(71 * var(--to-rem)) calc(58 * var(--to-rem));
    border-radius: 0 0 calc(20 * var(--to-rem)) calc(20 * var(--to-rem));
  }
}
.p-about-faq__panel[hidden] {
  display: none !important;
}
.p-about-faq__list {
  box-sizing: border-box;
  max-width: min(880 * var(--to-rem), 100%);
  margin: 0;
  margin-inline: auto;
  padding: 0;
  list-style: none;
}
.p-about-faq__item + .p-about-faq__item {
  margin-block-start: calc(24 * var(--to-rem));
}
.p-about-faq__q {
  display: flex;
  align-items: center;
  gap: calc(8 * var(--to-rem));
}
.p-about-faq__q-icon {
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: calc(52 * var(--to-rem));
  height: calc(52 * var(--to-rem));
  border-radius: 50%;
  background-color: var(--color-header-button-end);
}
.p-about-faq__q-icon-text {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  margin: 0;
  color: var(--color-white);
  font-feature-settings: "halt" on;
  font-family: var(--title-font-family);
  font-size: calc(32 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: 1;
}
.p-about-faq__q-text {
  flex: 1 1 auto;
  margin: 0;
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
}
.p-about-faq__divider {
  height: 0;
  margin-block: calc(6 * var(--to-rem)) calc(21 * var(--to-rem));
  border: 0;
  border-block-end: 1px dashed var(--color-header-button-end);
}
.p-about-faq__a {
  display: flex;
  gap: calc(10 * var(--to-rem));
  padding-inline-start: calc(4 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-about-faq__a {
    padding-inline-start: calc(20 * var(--to-rem));
    gap: calc(23 * var(--to-rem));
  }
}
.p-about-faq__a-mark {
  display: inline-block;
  flex-shrink: 0;
  color: var(--color-header-button-end);
  font-feature-settings: "halt" on;
  font-family: var(--title-font-family);
  font-size: calc(32 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: 1;
}
.p-about-faq__a-text {
  flex: 1 1 auto;
  margin: 0;
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-regular);
  line-height: normal;
}
.p-about-guidance {
  position: relative;
  padding-block-start: 0;
}
.p-about-guidance__main {
  position: relative;
  z-index: 0;
  padding-block-start: 0;
  background-color: var(--color-white);
}
.p-about-guidance__inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  max-width: calc(1280 * var(--to-rem));
  margin-inline: auto;
  padding-block-end: calc(98 * var(--to-rem));
  border-radius: calc(20 * var(--to-rem));
  background-color: var(--color-header-nav-bg);
}
@media screen and (min-width: 768px) {
  .p-about-guidance__inner {
    padding-inline: calc(100 * var(--to-rem));
  }
}
.p-about-guidance__inner.l-inner {
  padding-block-start: calc(61 * var(--to-rem));
}
.p-about-guidance__head {
  display: flex;
  justify-content: center;
  width: 100%;
}
.p-about-guidance__lead {
  width: 100%;
  max-width: calc(960 * var(--to-rem));
  margin-block-start: calc(24 * var(--to-rem));
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-guidance__lead {
    margin-block-start: calc(40 * var(--to-rem));
  }
}
.p-about-guidance__lead p {
  margin: 0;
  color: var(--color-school-badge);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
/* TOP の .p-top__reason-grid と同一だが、カード間 gap のみ 12px */
.p-about-guidance__grid {
  width: 100%;
  margin-block-start: calc(57 * var(--to-rem));
}
.p-about-guidance__grid.p-top__reason-grid {
  gap: calc(12 * var(--to-rem));
  /* md〜lg 未満は1列。row-gap も必要なので 2 値の先頭に 0 を置かない */
}
@media screen and (min-width: 768px) {
  .p-about-guidance__grid.p-top__reason-grid {
    gap: calc(12 * var(--to-rem));
  }
}
@media screen and (min-width: 1024px) {
  .p-about-guidance__grid.p-top__reason-grid {
    gap: 0 calc(12 * var(--to-rem));
  }
}
.p-about-lead {
  padding-block: calc(40 * var(--to-rem)) calc(48 * var(--to-rem));
  background-color: var(--color-white);
}
@media screen and (min-width: 768px) {
  .p-about-lead {
    padding-block: calc(56 * var(--to-rem)) calc(64 * var(--to-rem));
  }
}
.p-about-lead__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.p-about-lead__logo {
  margin-block-end: calc(32 * var(--to-rem));
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-lead__logo {
    margin-block-end: calc(40 * var(--to-rem));
  }
}
.p-about-lead__logo-link {
  display: inline-flex;
}
.p-about-lead__logo-link:focus-visible {
  outline: 2px solid var(--color-header-accent);
  outline-offset: 4px;
}
/* .p-header__logo img と同寸 */
.p-about-lead__logo img {
  width: calc(72 * var(--to-rem));
  height: calc(40 * var(--to-rem));
  aspect-ratio: 9/5;
}
@media screen and (min-width: 768px) {
  .p-about-lead__logo img {
    width: clamp(88px, 88px + (100vw - 768px) * 22 / 256, 110px);
    height: auto;
    aspect-ratio: auto;
  }
}
.p-about-lead__intro {
  width: 100%;
  margin-inline: auto;
}
.p-about-lead__intro p {
  margin: 0 auto;
  color: var(--color-header-accent);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-lead__intro p {
    font-size: calc(24 * var(--to-rem));
  }
}
.p-about-lead__intro p br {
  display: block;
  margin-block-end: calc(16 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-about-lead__intro p br {
    margin-block-end: calc(24 * var(--to-rem));
  }
}
.p-about-lead__media {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--to-rem));
  align-items: center;
  width: 100%;
  max-width: calc(1120 * var(--to-rem));
  margin-block-start: calc(40 * var(--to-rem));
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-about-lead__media {
    flex-direction: row;
    gap: 0;
    justify-content: center;
    align-items: flex-end;
    margin-block-start: calc(40 * var(--to-rem));
  }
}
.p-about-lead__figure {
  position: relative;
  z-index: 2;
  overflow: hidden;
  width: 100%;
  max-width: calc(350 * var(--to-rem));
  aspect-ratio: 350/230;
  margin: 0;
  border-radius: calc(10 * var(--to-rem));
  background-color: var(--color-gray-d3);
}
@media screen and (min-width: 768px) {
  .p-about-lead__figure {
    flex: 0 0 calc(350 * var(--to-rem));
    width: calc(350 * var(--to-rem));
    max-width: none;
  }
}
.p-about-lead__img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
}
.p-about-lead__card {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  width: 100%;
  max-width: calc(493 * var(--to-rem));
  padding: calc(24 * var(--to-rem));
  border-radius: calc(10 * var(--to-rem));
  background-color: var(--color-header-button-end);
  color: var(--color-white);
}
@media screen and (min-width: 768px) {
  .p-about-lead__card {
    flex: 0 1 auto;
    align-self: flex-end;
    margin-block-end: calc(8 * var(--to-rem));
    margin-inline-start: calc(-32 * var(--to-rem));
    padding-block: calc(32 * var(--to-rem));
    padding-inline: calc(64 * var(--to-rem)) calc(32 * var(--to-rem));
    transform: translateY(calc(40 * var(--to-rem)));
  }
}
.p-about-lead__card-title {
  margin: 0;
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-about-lead__card-title {
    font-size: calc(18 * var(--to-rem));
  }
}
.p-about-lead__card-body {
  margin-block-start: calc(12 * var(--to-rem));
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-regular);
  line-height: normal;
}
/* タイトルバッジ: .p-top__classrooms-badge と同デザイン（クラスは about 用に分離） */
.p-about-learning-style {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  width: 100%;
  margin-block-start: calc(-115 * var(--to-rem));
  padding-block: calc(150 * var(--to-rem)) calc(104 * var(--to-rem));
  border-radius: 20px;
  background-color: var(--color-header-button-end);
  font-family: var(--base-font-family);
}
@media screen and (min-width: 768px) {
  .p-about-learning-style {
    padding-block: calc(176 * var(--to-rem)) calc(104 * var(--to-rem));
  }
}
.p-about-learning-style__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  width: calc(100% - 40 * var(--to-rem));
  max-width: calc(960 * var(--to-rem));
  margin-inline: auto;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__inner {
    max-width: min(1280 * var(--to-rem), 100% - 40 * var(--to-rem));
  }
}
.p-about-learning-style__badge {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: calc(8 * var(--to-rem)) calc(20 * var(--to-rem));
  border-radius: calc(100 * var(--to-rem));
  background: var(--color-white);
  color: var(--color-header-button-end);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__badge {
    padding: calc(10 * var(--to-rem)) calc(40 * var(--to-rem));
    font-size: calc(32 * var(--to-rem));
  }
}
.p-about-learning-style__badge-text {
  color: inherit;
  font-family: inherit;
  font-feature-settings: inherit;
  font-size: inherit;
  font-style: inherit;
  font-weight: inherit;
  line-height: inherit;
}
.p-about-learning-style__badge::after {
  content: "";
  position: absolute;
  bottom: calc(-9 * var(--to-rem));
  left: 50%;
  width: 0;
  height: 0;
  border-top: calc(10 * var(--to-rem)) solid var(--color-white);
  border-right: calc(10 * var(--to-rem)) solid transparent;
  border-left: calc(10 * var(--to-rem)) solid transparent;
  transform: translateX(-50%);
}
.p-about-learning-style__body {
  margin: 0;
  margin-block-start: calc(28 * var(--to-rem));
  padding: 0;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__body {
    margin-block-start: calc(36 * var(--to-rem));
  }
}
.p-about-learning-style__body p {
  margin: 0;
  color: var(--color-white);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
.p-about-learning-style__detail {
  width: 100%;
}
/* タブ＋パネル（添付1枚目：タブはオレンジ地の上、アクティブ白が下の白パネルと一体） */
.p-about-learning-style__tab-shell {
  box-sizing: border-box;
  width: 100%;
  margin-block-start: calc(24 * var(--to-rem));
  padding: 0;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__tab-shell {
    margin-block-start: calc(39 * var(--to-rem));
  }
}
.p-about-learning-style__tab-bar {
  display: flex;
  flex-direction: row;
  gap: calc(10 * var(--to-rem));
  justify-content: center;
  box-sizing: border-box;
  width: calc(100% - 80 * var(--to-rem));
  max-width: calc(852 * var(--to-rem));
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__tab-bar {
    gap: calc(12 * var(--to-rem));
  }
}
.p-about-learning-style__tab {
  display: flex;
  flex: 1 1 0;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  width: auto;
  min-width: 0;
  min-height: calc(70 * var(--to-rem));
  margin: 0;
  padding-inline: calc(20 * var(--to-rem));
  border-width: 0;
  border-style: solid;
  border-radius: calc(20 * var(--to-rem)) calc(20 * var(--to-rem)) 0 0;
  font-family: inherit;
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  cursor: pointer;
  appearance: none;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__tab {
    flex: 1 1 calc(420 * var(--to-rem));
    max-width: calc(420 * var(--to-rem));
    font-size: calc(18 * var(--to-rem));
  }
}
.p-about-learning-style__tab[aria-selected="true"] {
  border-color: transparent;
  background-color: var(--color-white);
  color: var(--color-header-button-end);
}
.p-about-learning-style__tab[aria-selected="false"] {
  border-color: transparent;
  background-color: var(--color-header-accent);
  color: var(--color-white);
}
.p-about-learning-style__tab:focus-visible {
  outline: 2px solid var(--color-white);
  outline-offset: 2px;
}
.p-about-learning-style__tab-panels {
  margin-block-start: 0;
  padding: calc(67 * var(--to-rem)) calc(16 * var(--to-rem)) calc(115 * var(--to-rem));
  border-radius: calc(16 * var(--to-rem)) calc(16 * var(--to-rem)) calc(20 * var(--to-rem)) calc(20 * var(--to-rem));
  background-color: var(--color-white);
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__tab-panels {
    padding: calc(67 * var(--to-rem)) calc(24 * var(--to-rem)) calc(115 * var(--to-rem));
    border-radius: calc(16 * var(--to-rem)) calc(16 * var(--to-rem)) calc(20 * var(--to-rem)) calc(20 * var(--to-rem));
  }
}
.p-about-learning-style__tab-panel-placeholder {
  margin: 0;
  padding: calc(24 * var(--to-rem)) calc(8 * var(--to-rem));
  color: var(--color-text);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-regular);
  line-height: 1.75;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__tab-panel-placeholder {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-about-learning-style__rows-heading {
  margin: 0;
  color: var(--color-header-button-end);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(32 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: center;
}
.p-about-learning-style__rows {
  display: flex;
  flex-direction: column;
  gap: calc(20 * var(--to-rem));
  width: 100%;
  max-width: calc(843 * var(--to-rem));
  margin-block-start: calc(39 * var(--to-rem));
  margin-inline: auto;
  text-align: left;
}
.p-about-learning-style__row {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: calc(10 * var(--to-rem));
  background-color: var(--color-header-nav-bg);
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__row {
    flex-direction: row;
    align-items: stretch;
    border-radius: calc(10 * var(--to-rem));
  }
}
.p-about-learning-style__media {
  position: relative;
  flex-shrink: 0;
  overflow: hidden;
  width: 100%;
  border-radius: calc(10 * var(--to-rem)) calc(10 * var(--to-rem)) 0 0;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__media {
    display: flex;
    flex: 0 0 calc(350 * var(--to-rem));
    flex-direction: column;
    align-self: stretch;
    width: calc(350 * var(--to-rem));
    min-height: 0;
    border-radius: calc(10 * var(--to-rem)) 0 0 calc(10 * var(--to-rem));
  }
}
.p-about-learning-style__media-img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 350/242;
  object-fit: cover;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__media-img {
    flex: 1 1 auto;
    width: 100%;
    height: 100%;
    min-height: 0;
    aspect-ratio: unset;
    object-fit: cover;
  }
}
.p-about-learning-style__panel {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: calc(12 * var(--to-rem));
  align-items: flex-start;
  padding: calc(24 * var(--to-rem));
  background-color: var(--color-header-nav-bg);
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__panel {
    flex: 1 1 auto;
    min-width: 0;
    padding: calc(32 * var(--to-rem));
    border-radius: 0 calc(10 * var(--to-rem)) calc(10 * var(--to-rem)) 0;
  }
}
.p-about-learning-style__panel-title {
  margin: 0;
  color: var(--color-header-button-end);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-about-learning-style__panel-body {
  width: 100%;
  color: var(--color-school-badge);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.p-about-learning-style__panel-body p {
  margin: 0;
}
/* 学校準拠クラス — ribbon は __school の外（__school-wrap で重ね配置） */
.p-about-learning-style__school-wrap {
  position: relative;
  width: 100%;
  margin-block-start: calc(48 * var(--to-rem));
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__school-wrap {
    margin-block-start: calc(120 * var(--to-rem));
  }
}
.p-about-learning-style__school-wrap .p-about-learning-style__ribbon-title {
  margin: 0;
}
.p-about-learning-style__school {
  width: 100%;
  margin-block-start: 0;
  text-align: center;
}
.p-about-learning-style__school h3 {
  margin: 0;
}
/* 学校準拠クラス枠線・影（Figma node 4515:5148 相当 / border var(--color-header-accent)） */
.p-about-learning-style__school-frame {
  width: 100%;
  max-width: calc(1080 * var(--to-rem));
  margin-inline: auto;
}
.p-about-learning-style__ribbon-title {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 2;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  justify-content: center;
  width: calc(100% - 32px);
  max-width: calc(596 * var(--to-rem));
  min-height: calc(80 * var(--to-rem));
  margin: 0;
  padding-block: calc(12 * var(--to-rem));
  padding-inline: calc(48 * var(--to-rem));
  background-image: url("data:image/svg+xml,%3csvg%20width='596'%20height='80'%20viewBox='0%200%20596%2080'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M62%2080H0L23%2050L0%2020H62V80Z'%20fill='%23832E00'/%3e%3cpath%20d='M62%2060L62%2080L39.0001%2060L62%2060Z'%20fill='%23A93C00'/%3e%3cpath%20d='M534%2080H596L573%2050L596%2020H534V80Z'%20fill='%23832E00'/%3e%3cpath%20d='M534%2060L534%2080L557%2060L534%2060Z'%20fill='%23A93C00'/%3e%3crect%20x='39'%20width='518'%20height='60'%20fill='%23F05B0A'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
  transform: translate(-50%, -50%);
}
.p-about-learning-style__ribbon-title-text {
  color: var(--color-white);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: 1.35;
  text-align: center;
  transform: translateY(calc(-4 * var(--to-rem)));
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__ribbon-title-text {
    font-size: calc(22 * var(--to-rem));
    transform: translateY(calc(-10 * var(--to-rem)));
  }
}
/* 上辺セミ円タブ（右端のオフセット影は不要のため box-shadow なし） */
.p-about-learning-style__school-panel,
.p-about-learning-style__school-panel-sub {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  width: 100%;
  border-radius: 0 0 calc(20 * var(--to-rem)) calc(20 * var(--to-rem));
  background-color: transparent;
}
.p-about-learning-style__school-panel {
  padding-block-start: calc(125 * var(--to-rem));
}
.p-about-learning-style__school-panel-sub {
  padding-block-start: calc(70 * var(--to-rem));
  margin-block-start: calc(32 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__school-panel-sub {
    margin-block-start: calc(40 * var(--to-rem));
  }
}
/* キッカー〜本文・対象校・カード（オレンジ枠・上部装飾は CSS） */
.p-about-learning-style__school-panel-body {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  padding: calc(50 * var(--to-rem)) calc(16 * var(--to-rem)) calc(61 * var(--to-rem));
  border: 3px solid var(--color-header-button-end);
  border-radius: calc(20 * var(--to-rem));
  box-shadow: calc(8 * var(--to-rem)) calc(8 * var(--to-rem)) 0 var(--color-header-button-end);
  background-color: var(--color-white);
  text-align: center;
  /* 直径188pxの円。下側70%を clip で除去し弧のみ。index は別途絶対配置 */
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__school-panel-body {
    padding: calc(50 * var(--to-rem)) calc(32 * var(--to-rem)) calc(61 * var(--to-rem));
  }
}
.p-about-learning-style__school-panel-body > *:not(.p-about-learning-style__school-index) {
  position: relative;
  z-index: 3;
}
.p-about-learning-style__school-panel-body > .p-about-learning-style__school-index {
  position: absolute;
  top: 10px;
  left: 50%;
  z-index: 4;
  margin: 0;
  color: var(--color-header-button-end);
  font-family: var(--title-font-family);
  font-size: calc(48 * var(--to-rem));
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  text-align: center;
  transform: translate(-50%, -50%);
}
.p-about-learning-style__school-panel-body::before {
  content: "";
  position: absolute;
  top: -56px;
  left: 50%;
  z-index: 2;
  clip-path: inset(0 0 70% 0);
  box-sizing: border-box;
  width: 188px;
  height: 188px;
  border: 3px solid var(--color-header-button-end);
  border-radius: 50%;
  background-color: var(--color-white);
  pointer-events: none;
  transform: translateX(-50%);
}
.p-about-learning-style__school-panel-body-sub {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  padding: calc(50 * var(--to-rem)) calc(16 * var(--to-rem)) calc(69 * var(--to-rem));
  border: 3px solid var(--color-header-accent);
  border-radius: calc(20 * var(--to-rem));
  box-shadow: calc(8 * var(--to-rem)) calc(8 * var(--to-rem)) 0 var(--color-header-accent);
  background-color: var(--color-white);
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__school-panel-body-sub {
    padding: calc(50 * var(--to-rem)) calc(32 * var(--to-rem)) calc(69 * var(--to-rem));
  }
}
.p-about-learning-style__school-panel-body-sub > *:not(.p-about-learning-style__school-index-sub) {
  position: relative;
  z-index: 3;
}
.p-about-learning-style__school-panel-body-sub > .p-about-learning-style__school-index-sub {
  position: absolute;
  top: 10px;
  left: 50%;
  z-index: 4;
  margin: 0;
  color: var(--color-header-accent);
  font-family: var(--title-font-family);
  font-size: calc(48 * var(--to-rem));
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  text-align: center;
  transform: translate(-50%, -50%);
}
.p-about-learning-style__school-panel-body-sub::before {
  content: "";
  position: absolute;
  top: -56px;
  left: 50%;
  z-index: 2;
  clip-path: inset(0 0 70% 0);
  box-sizing: border-box;
  width: 188px;
  height: 188px;
  border: 3px solid var(--color-header-accent);
  border-radius: 50%;
  background-color: var(--color-white);
  pointer-events: none;
  transform: translateX(-50%);
}
.p-about-learning-style__school-kicker {
  margin: 0;
  margin-block-start: calc(15 * var(--to-rem));
  color: var(--color-header-button-end);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(32 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
.p-about-learning-style__school-kicker-sub {
  margin: 0;
  margin-block-start: calc(15 * var(--to-rem));
  color: var(--color-header-accent);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(32 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
.p-about-learning-style__school-lead {
  margin: 0;
  margin-block-start: calc(12 * var(--to-rem));
  color: var(--color-school-badge);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
.p-about-learning-style__school-lead-sub {
  margin: 0;
  margin-block-start: calc(12 * var(--to-rem));
  color: var(--color-school-badge);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
/* 総合クラス：レベル × 志望大学の目安（表デザイン） */
.p-about-learning-style__level-guide {
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  margin-block-start: calc(45 * var(--to-rem));
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__level-guide {
    width: fit-content;
  }
}
.p-about-learning-style__level-guide-header {
  display: grid;
  grid-template-columns: 1fr;
  gap: calc(8 * var(--to-rem));
  align-items: stretch;
  margin-block-end: calc(8 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__level-guide-header {
    grid-template-columns: calc(82 * var(--to-rem)) calc(400 * var(--to-rem));
    gap: 0;
    align-items: end;
  }
}
.p-about-learning-style__level-guide-heading {
  display: block;
  box-sizing: border-box;
  margin: 0;
  padding-inline-start: 0;
  color: var(--color-about-text-dark);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  text-align: center;
}
.p-about-learning-style__level-guide-heading:last-child:not(:only-child) {
  color: var(--color-school-badge);
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__level-guide-heading {
    padding-inline-start: calc(20 * var(--to-rem));
  }
  .p-about-learning-style__level-guide-heading:last-child:not(:only-child) {
    text-align: left;
  }
}
.p-about-learning-style__level-guide-list {
  display: flex;
  flex-direction: column;
  gap: calc(4 * var(--to-rem));
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-about-learning-style__level-guide-row {
  display: grid;
  grid-template-columns: 1fr;
  align-items: stretch;
  margin: 0;
  padding: 0;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__level-guide-row {
    grid-template-columns: calc(82 * var(--to-rem)) calc(400 * var(--to-rem));
  }
}
.p-about-learning-style__level-guide-badge {
  display: grid;
  place-items: center;
  box-sizing: border-box;
  width: 100%;
  min-height: calc(44 * var(--to-rem));
  margin: 0;
  padding: calc(12 * var(--to-rem)) calc(20 * var(--to-rem));
  border-radius: calc(5 * var(--to-rem)) calc(5 * var(--to-rem)) 0 0;
  background-color: var(--color-header-accent);
  color: var(--color-white);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__level-guide-badge {
    width: calc(82 * var(--to-rem));
    border-radius: calc(5 * var(--to-rem)) 0 0 calc(5 * var(--to-rem));
  }
}
.p-about-learning-style__level-guide-text {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: calc(12 * var(--to-rem)) calc(20 * var(--to-rem));
  border-radius: 0 0 calc(5 * var(--to-rem)) calc(5 * var(--to-rem));
  background-color: var(--color-surface-f5);
  color: var(--color-school-badge);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__level-guide-text {
    border-radius: 0;
  }
}
.p-about-learning-style__feature-grid,
.p-about-learning-style__panel-sub-feature-grid {
  display: grid;
  gap: calc(24 * var(--to-rem));
  justify-items: center;
  margin-block-start: calc(28 * var(--to-rem));
  text-align: left;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__feature-grid,
  .p-about-learning-style__panel-sub-feature-grid {
    grid-template-columns: repeat(2, minmax(0, calc(430 * var(--to-rem))));
    gap: calc(32 * var(--to-rem)) calc(49 * var(--to-rem));
    justify-content: center;
    margin-block-start: calc(49 * var(--to-rem));
  }
}
.p-about-learning-style__feature-card,
.p-about-learning-style__panel-sub-feature-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: calc(20 * var(--to-rem));
  justify-self: center;
  box-sizing: border-box;
  width: 100%;
  max-width: calc(430 * var(--to-rem));
  padding: calc(20 * var(--to-rem));
  border: 1px solid var(--color-border-light);
  border-radius: calc(20 * var(--to-rem));
  background-image: linear-gradient(var(--color-grid-line-6) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid-line-6) 1px, transparent 1px);
  background-size: calc(27 * var(--to-rem)) calc(27 * var(--to-rem));
  background-color: var(--color-white);
}
.p-about-learning-style__feature-badge,
.p-about-learning-style__panel-sub-feature-badge {
  position: absolute;
  top: calc(-1 * var(--to-rem));
  left: calc(-26 * var(--to-rem));
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: calc(66 * var(--to-rem));
  height: calc(38 * var(--to-rem));
  padding: 0;
  padding-inline-start: calc(11 * var(--to-rem));
  background-image: url("data:image/svg+xml,%3csvg%20width='88'%20height='51'%20viewBox='0%200%2088%2051'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M33%2051H0L13%2030L0%209H33V51Z'%20fill='%23832E00'/%3e%3crect%20width='69'%20height='43'%20transform='matrix(-1%200%200%201%2088%200)'%20fill='%23F05B0A'/%3e%3c/svg%3e");
  background-position: center;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  background-color: transparent;
  line-height: 1.1;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__feature-badge,
  .p-about-learning-style__panel-sub-feature-badge {
    left: calc(-35 * var(--to-rem));
    width: calc(88 * var(--to-rem));
    height: calc(51 * var(--to-rem));
    padding-inline-start: calc(15 * var(--to-rem));
  }
}
.p-about-learning-style__panel-sub-feature-badge {
  background-image: url("data:image/svg+xml,%3csvg%20width='88'%20height='51'%20viewBox='0%200%2088%2051'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M33%2051H0L13%2030L0%209H33V51Z'%20fill='%23C04501'/%3e%3cpath%20d='M33%2043L33%2051L19%2043L33%2043Z'%20fill='%23F05B0A'/%3e%3crect%20width='69'%20height='43'%20transform='matrix(-1%200%200%201%2088%200)'%20fill='%23FF9E00'/%3e%3c/svg%3e");
}
.p-about-learning-style__feature-badge-label,
.p-about-learning-style__panel-sub-feature-badge-label {
  color: var(--color-white);
  font-family: var(--title-font-family);
  font-size: calc(12 * var(--to-rem));
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  text-align: center;
  transform: translateY(calc(2 * var(--to-rem)));
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__feature-badge-label,
  .p-about-learning-style__panel-sub-feature-badge-label {
    font-size: calc(16 * var(--to-rem));
    transform: translateY(calc(3 * var(--to-rem)));
  }
}
.p-about-learning-style__feature-badge-num,
.p-about-learning-style__panel-sub-feature-badge-num {
  color: var(--color-white);
  font-family: var(--title-font-family);
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  text-align: center;
  transform: translateY(calc(-2 * var(--to-rem)));
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__feature-badge-num,
  .p-about-learning-style__panel-sub-feature-badge-num {
    font-size: calc(24 * var(--to-rem));
    transform: translateY(calc(-3 * var(--to-rem)));
  }
}
.p-about-learning-style__feature-media,
.p-about-learning-style__panel-sub-feature-media {
  position: relative;
  z-index: 0;
  overflow: hidden;
  width: 100%;
  max-width: calc(390 * var(--to-rem));
  aspect-ratio: 390/260;
  margin-inline: auto;
  border-radius: calc(10 * var(--to-rem));
}
.p-about-learning-style__feature-media img,
.p-about-learning-style__panel-sub-feature-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-about-learning-style__feature-body,
.p-about-learning-style__panel-sub-feature-body {
  display: flex;
  flex-direction: column;
  gap: calc(10 * var(--to-rem));
  align-items: flex-start;
}
.p-about-learning-style__feature-heading,
.p-about-learning-style__panel-sub-feature-heading {
  margin: 0;
  color: var(--color-header-button-end);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__feature-heading,
  .p-about-learning-style__panel-sub-feature-heading {
    font-size: calc(24 * var(--to-rem));
  }
}
.p-about-learning-style__feature-text,
.p-about-learning-style__panel-sub-feature-text {
  width: 100%;
  color: var(--color-school-badge);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-about-learning-style__feature-text p,
.p-about-learning-style__panel-sub-feature-text p {
  margin: 0;
}
.p-about-learning-style__targets {
  position: relative;
  overflow: visible;
  box-sizing: border-box;
  width: 100%;
  max-width: calc(630 * var(--to-rem));
  margin-block-start: calc(65 * var(--to-rem));
  margin-inline: auto;
  padding: calc(30 * var(--to-rem)) calc(16 * var(--to-rem)) calc(24 * var(--to-rem));
  border-radius: calc(20 * var(--to-rem)) calc(20 * var(--to-rem)) 0 0;
  background-color: var(--color-header-button-end);
  color: var(--color-white);
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__targets {
    padding: calc(30 * var(--to-rem)) calc(24 * var(--to-rem)) calc(32 * var(--to-rem));
  }
}
/* .p-top__classrooms-card-header + .p-top__classrooms-icon-wrap と同様：上辺中央にピル状タブ */
.p-about-learning-style__targets-head {
  position: relative;
  width: 100%;
  height: calc(40 * var(--to-rem));
  margin: 0;
  padding: 0;
  background: transparent;
}
.p-about-learning-style__targets-icon-wrap {
  position: absolute;
  top: calc(-10 * var(--to-rem));
  left: 50%;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: calc(17 * var(--to-rem));
  align-items: center;
  width: 167px;
  max-width: calc(100% - 20px);
  margin-inline: 0;
  padding: calc(20 * var(--to-rem)) max(28px, min(6vw, 55px)) calc(10 * var(--to-rem));
  border-radius: calc(18 * var(--to-rem));
  background-color: var(--color-header-button-end);
  transform: translate(-50%, -50%);
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__targets-icon-wrap {
    width: auto;
  }
}
.p-about-learning-style__targets-icon {
  display: block;
  flex-shrink: 0;
  width: calc(24 * var(--to-rem));
  height: calc(24 * var(--to-rem));
  margin-inline: auto;
  object-fit: contain;
  filter: brightness(0) invert(1);
}
.p-about-learning-style__targets-label {
  margin: 0;
  color: var(--color-white);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
.p-about-learning-style__targets-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: calc(12 * var(--to-rem));
  max-width: calc(500 * var(--to-rem));
  margin-block-start: calc(12 * var(--to-rem));
  margin-inline: auto;
  color: var(--color-white);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-learning-style__targets-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.p-about-learning-style__targets-grid p {
  margin: 0;
}
.p-about-learning-style__targets-etc {
  grid-column: 1/-1;
  text-align: center;
}
.p-about-nav {
  padding-block-start: calc(24 * var(--to-rem));
  padding-block-end: calc(77 * var(--to-rem));
  background-color: var(--color-white);
}
@media screen and (min-width: 768px) {
  .p-about-nav {
    padding-block-start: calc(45 * var(--to-rem));
    padding-block-end: calc(77 * var(--to-rem));
  }
}
.p-about-nav__inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .p-about-nav__inner {
    align-items: stretch;
  }
}
.p-about-nav__list {
  display: flex;
  flex-flow: column nowrap;
  gap: calc(16 * var(--to-rem));
  justify-content: flex-start;
  align-items: stretch;
  width: calc(300 * var(--to-rem));
  margin: 0;
  margin-inline: auto;
  padding: 0;
  list-style: none;
}
@media screen and (min-width: 768px) {
  .p-about-nav__list {
    flex-flow: row wrap;
    justify-content: center;
    align-items: center;
    width: auto;
    margin-inline: 0;
  }
}
.p-about-nav__item-wrap {
  flex: 0 0 auto;
  width: 100%;
}
@media screen and (min-width: 768px) {
  .p-about-nav__item-wrap {
    width: auto;
  }
}
.p-about-nav__item {
  display: flex;
  gap: calc(12 * var(--to-rem));
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  min-height: calc(60 * var(--to-rem));
  max-width: 100%;
  margin-inline: 0;
  padding-inline: calc(20 * var(--to-rem));
  border: 1px solid var(--color-white);
  border-radius: 100px;
  background-image: linear-gradient(105.33deg, var(--color-header-button-start) 1.5%, var(--color-header-button-end) 98.5%);
  color: var(--color-white);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-decoration: none;
  transition:
    opacity var(--duration),
    transform var(--duration);
}
@media screen and (min-width: 768px) {
  .p-about-nav__item {
    display: inline-flex;
    width: auto;
    min-width: calc(220 * var(--to-rem));
    max-width: none;
    margin-inline: auto;
  }
}
@media (hover: hover) and (pointer: fine) {
  .p-about-nav__item:hover {
    opacity: 0.7;
  }
}
.p-about-nav__item:focus-visible {
  outline: 2px solid var(--color-header-accent);
  outline-offset: 3px;
}
.p-about-nav__item--wide {
  width: 100%;
  max-width: 100%;
}
@media screen and (min-width: 768px) {
  .p-about-nav__item--wide {
    width: auto;
    min-width: calc(260 * var(--to-rem));
    max-width: none;
  }
}
.p-about-nav__icon {
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  width: calc(20 * var(--to-rem));
  height: calc(20 * var(--to-rem));
}
.p-about-nav__icon svg {
  display: block;
  width: 100%;
  height: 100%;
}
/* About: 時間割・カリキュラム */
.p-about-timetable {
  box-sizing: border-box;
  width: 100%;
  padding-block: calc(100 * var(--to-rem)) 0;
  background-color: var(--color-white);
  font-family: var(--base-font-family);
}
.p-about-timetable__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  max-width: calc(960 * var(--to-rem));
  margin-inline: auto;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-timetable__inner {
    max-width: min(1280 * var(--to-rem), 100%);
  }
}
/* メイン見出し（オレンジの吹き出し・白文字） */
.p-about-timetable__badge {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin: 0;
  padding: calc(8 * var(--to-rem)) calc(20 * var(--to-rem));
  border-radius: calc(100 * var(--to-rem));
  background: var(--color-header-button-end);
  color: var(--color-white);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-timetable__badge {
    padding: calc(10 * var(--to-rem)) calc(40 * var(--to-rem));
    font-size: calc(32 * var(--to-rem));
  }
}
.p-about-timetable__badge-text {
  color: inherit;
  font-family: inherit;
  font-feature-settings: inherit;
  font-size: inherit;
  font-style: inherit;
  font-weight: inherit;
  line-height: inherit;
}
.p-about-timetable__badge::after {
  content: "";
  position: absolute;
  bottom: calc(-9 * var(--to-rem));
  left: 50%;
  width: 0;
  height: 0;
  border-top: calc(10 * var(--to-rem)) solid var(--color-header-button-end);
  border-right: calc(10 * var(--to-rem)) solid transparent;
  border-left: calc(10 * var(--to-rem)) solid transparent;
  transform: translateX(-50%);
}
.p-about-timetable__block {
  width: 100%;
  margin-block-start: calc(40 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-about-timetable__block {
    margin-block-start: calc(72 * var(--to-rem));
  }
}
/* 1文字ずつ円（白文字・奇偶で色交互・軽く重なるビーズ状） */
.p-about-timetable__circle-title {
  display: inline-flex;
  flex-wrap: nowrap;
  gap: 0;
  justify-content: center;
  max-width: 100%;
  margin: 0;
  margin-inline: auto;
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-weight: var(--fw-bold);
  line-height: normal;
}
.p-about-timetable__circle-char {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  width: calc(50 * var(--to-rem));
  height: calc(50 * var(--to-rem));
  border-radius: 50%;
  color: var(--color-white);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
/* 右の円が手前に（重なりの上側） */
.p-about-timetable__circle-title .p-about-timetable__circle-char:nth-child(1) {
  z-index: 1;
}
.p-about-timetable__circle-title .p-about-timetable__circle-char:nth-child(2) {
  z-index: 2;
}
.p-about-timetable__circle-title .p-about-timetable__circle-char:nth-child(3) {
  z-index: 3;
}
.p-about-timetable__circle-title .p-about-timetable__circle-char:nth-child(4) {
  z-index: 4;
}
.p-about-timetable__circle-title .p-about-timetable__circle-char:nth-child(5) {
  z-index: 5;
}
.p-about-timetable__circle-title .p-about-timetable__circle-char:nth-child(6) {
  z-index: 6;
}
.p-about-timetable__circle-title .p-about-timetable__circle-char:nth-child(7) {
  z-index: 7;
}
.p-about-timetable__circle-title .p-about-timetable__circle-char:nth-child(8) {
  z-index: 8;
}
.p-about-timetable__circle-title .p-about-timetable__circle-char:nth-child(9) {
  z-index: 9;
}
.p-about-timetable__circle-title .p-about-timetable__circle-char:nth-child(10) {
  z-index: 10;
}
.p-about-timetable__circle-title .p-about-timetable__circle-char:nth-child(11) {
  z-index: 11;
}
.p-about-timetable__circle-title .p-about-timetable__circle-char:nth-child(12) {
  z-index: 12;
}
.p-about-timetable__circle-char:nth-child(odd) {
  background-color: var(--color-header-button-end);
}
.p-about-timetable__circle-char:nth-child(even) {
  background-color: var(--color-header-accent);
}
/* 約 10〜12% 相当の重なり（2枚目デザイン） */
.p-about-timetable__circle-char + .p-about-timetable__circle-char {
  margin-inline-start: calc(-8 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-about-timetable__circle-char + .p-about-timetable__circle-char {
    margin-inline-start: calc(-10 * var(--to-rem));
  }
}
.p-about-timetable__subtitle {
  margin: 0;
  margin-block-end: calc(28 * var(--to-rem));
  color: var(--color-school-badge);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
/* プレースホルダー（チェッカー） */
.p-about-timetable__figure {
  overflow: hidden;
  box-sizing: border-box;
  width: 100%;
  max-width: calc(480 * var(--to-rem));
  margin-inline: auto;
  border-radius: calc(8 * var(--to-rem));
}
.p-about-timetable__figure--schedule {
  max-width: calc(980 * var(--to-rem));
}
.p-about-timetable__figure-placeholder,
.p-about-timetable__figure-placeholder--schedule {
  display: block;
  box-sizing: border-box;
  width: 100%;
  height: auto;
  margin-block-start: calc(8 * var(--to-rem));
  margin-inline: auto;
  background:
    linear-gradient(45deg, var(--color-border-grid) 25%, transparent 25%), linear-gradient(-45deg, var(--color-border-grid) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, var(--color-border-grid) 75%), linear-gradient(-45deg, transparent 75%, var(--color-border-grid) 75%);
  background-position:
    0 0,
    0 calc(30 * var(--to-rem)),
    calc(30 * var(--to-rem)) calc(-30 * var(--to-rem)),
    calc(-30 * var(--to-rem)) 0;
  background-size: calc(60 * var(--to-rem)) calc(60 * var(--to-rem));
  background-color: var(--color-surface-f5);
}
.p-about-timetable__figure-placeholder {
  max-width: calc(480 * var(--to-rem));
  aspect-ratio: 480/300;
}
.p-about-timetable__figure-placeholder--schedule {
  max-width: calc(980 * var(--to-rem));
  aspect-ratio: 980/460;
}
.p-about-timetable__two-col {
  display: grid;
  gap: calc(20 * var(--to-rem));
  width: 100%;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-timetable__two-col {
    grid-template-columns: repeat(2, minmax(0, calc(480 * var(--to-rem))));
    gap: calc(20 * var(--to-rem));
    justify-content: center;
    align-items: start;
  }
}
.p-about-timetable__col {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-self: center;
  width: min(100%, 480 * var(--to-rem));
}
.p-about-timetable__col-label {
  margin: 0;
  color: var(--color-header-button-end);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-about-timetable__col-label {
    font-size: calc(18 * var(--to-rem));
  }
}
/* 分析シングル：パンくず直下（Figma 吹き出し見出し + リード） */
.p-analysis-single-intro {
  box-sizing: border-box;
  width: 100%;
  padding-block: calc(32 * var(--to-rem)) calc(8 * var(--to-rem));
  background-color: var(--color-white);
}
@media screen and (min-width: 768px) {
  .p-analysis-single-intro {
    padding-block: calc(40 * var(--to-rem)) calc(16 * var(--to-rem));
  }
}
.p-analysis-single-intro__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 100%;
}
.p-analysis-single-intro__bubble-wrap {
  display: flex;
  justify-content: center;
  width: 100%;
  margin: 0 0 calc(24 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-analysis-single-intro__bubble-wrap {
    margin-bottom: calc(32 * var(--to-rem));
  }
}
/* オレンジのカプセル + 下向き三角（吹き出し） */
.p-analysis-single-intro__bubble {
  position: relative;
  box-sizing: border-box;
  margin: 0;
  padding: calc(14 * var(--to-rem)) calc(28 * var(--to-rem)) calc(20 * var(--to-rem));
  border-radius: calc(100 * var(--to-rem));
  background: linear-gradient(90deg, var(--color-header-button-end) 0%, var(--color-header-accent) 100%);
  box-shadow: 0 calc(4 * var(--to-rem)) calc(12 * var(--to-rem)) var(--color-header-accent-25);
  text-align: center;
}
.p-analysis-single-intro__bubble::after {
  content: "";
  position: absolute;
  bottom: calc(-1 * 12 * var(--to-rem));
  left: 50%;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: calc(12 * var(--to-rem)) calc(10 * var(--to-rem)) 0 calc(10 * var(--to-rem));
  border-color: var(--color-header-accent) transparent transparent transparent;
  transform: translateX(-50%);
}
@media screen and (min-width: 768px) {
  .p-analysis-single-intro__bubble {
    padding: calc(16 * var(--to-rem)) calc(40 * var(--to-rem)) calc(22 * var(--to-rem));
  }
}
.p-analysis-single-intro__bubble-text {
  display: block;
  color: var(--color-white);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: 1.45;
}
@media screen and (min-width: 768px) {
  .p-analysis-single-intro__bubble-text {
    font-size: calc(18 * var(--to-rem));
  }
}
.p-analysis-single-intro__lead {
  box-sizing: border-box;
  width: 100%;
  max-width: calc(800 * var(--to-rem));
  margin: 0;
  padding-inline: calc(4 * var(--to-rem));
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(15 * var(--to-rem));
  font-weight: var(--fw-medium);
  line-height: 1.75;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-analysis-single-intro__lead {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-analysis-single-intro__lead p {
  margin: 0;
}
.p-analysis-single-intro__lead p + p {
  margin-top: calc(12 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-analysis-single-intro__lead p + p {
    margin-top: calc(16 * var(--to-rem));
  }
}
/* 分析シングル：パンくず直下（Figma 4634:3267） */
.p-analysis-intro {
  padding-block: calc(56 * var(--to-rem)) calc(8 * var(--to-rem));
  background-color: var(--color-white);
}
.p-analysis-intro__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  max-width: 100%;
}
.p-analysis-intro .c-pill-badge.p-analysis-intro__badge {
  margin: 0;
  padding: calc(10 * var(--to-rem)) calc(40 * var(--to-rem));
  color: var(--color-white);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-analysis-intro .c-pill-badge.p-analysis-intro__badge {
    font-size: calc(32 * var(--to-rem));
  }
}
.p-analysis-intro__lead {
  margin: calc(33 * var(--to-rem)) 0 0;
  max-width: calc(920 * var(--to-rem));
  padding-inline: calc(8 * var(--to-rem));
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
/* 横 880 : 縦 400 */
.p-analysis-intro__media {
  box-sizing: border-box;
  width: 100%;
  max-width: calc(880 * var(--to-rem));
  aspect-ratio: 880/400;
  margin: calc(56 * var(--to-rem)) 0 0;
  overflow: hidden;
}
.p-analysis-intro__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* page-analysis-school1.php：分析イントロと同デザイン（クラス別名） */
.p-analysis-school1-intro {
  padding-block: calc(56 * var(--to-rem)) calc(8 * var(--to-rem));
  background-color: var(--color-white);
}
.p-analysis-school1-intro__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  max-width: 100%;
}
.p-analysis-school1-intro .c-pill-badge.p-analysis-school1-intro__badge {
  margin: 0;
  padding: calc(10 * var(--to-rem)) calc(40 * var(--to-rem));
  color: var(--color-white);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(32 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-analysis-school1-intro__lead {
  margin: calc(33 * var(--to-rem)) 0 0;
  max-width: calc(920 * var(--to-rem));
  padding-inline: calc(8 * var(--to-rem));
  color: var(--color-school-badge);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-analysis-school1-intro__lead p {
  margin: 0;
}
.p-analysis-school1-intro__lead p + p {
  margin-top: calc(12 * var(--to-rem));
}
/* page-analysis-school1：本文前ブロック（後から the_content 化予定） */
.p-analysis-school-body {
  padding-top: calc(185 * var(--to-rem));
  background-color: var(--color-white);
}
.p-analysis-school-body .l-inner {
  box-sizing: border-box;
  max-width: 100%;
}
.p-analysis-school-body h1 {
  margin: 0;
  color: var(--color-header-accent);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(32 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
/* intro の2段落のみ（TOC+ / 本文の p と区別） */
.p-analysis-school-body > .l-inner > p,
.p-analysis-school-body__opening {
  margin: calc(20 * var(--to-rem)) 0 0;
  color: var(--color-school-badge);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-analysis-school-body__opening p {
  margin: 0;
}
.p-analysis-school-body__opening p + p {
  margin-top: calc(12 * var(--to-rem));
}
/* 試験分析・詳細記事: アンカー到達位置を固定ヘッダー分オフセット（目次リンク・スムーススクロール共通） */
html:has(body.single-analysis_detail) {
  scroll-padding-top: var(--header-height);
}
/* スムーススクロール（OS の「動きを減らす」配慮） */
@media (prefers-reduced-motion: no-preference) {
  html:has(body.single-analysis_detail) {
    scroll-behavior: smooth;
  }
}
/* Table of Contents Plus（[toc] 先頭挿入・#toc_container）— 旧テーマ nav と同等の見た目 */
.p-analysis-school-body__editor #toc_container {
  margin-top: calc(90 * var(--to-rem));
  margin-bottom: calc(90 * var(--to-rem));
  margin-inline: auto;
  padding-block: var(--p-analysis-school-toc-padding-block);
  padding-inline: var(--p-analysis-school-toc-padding-inline-sp);
  box-sizing: border-box;
  width: 100%;
  max-width: var(--p-analysis-school-toc-max-width);
  border: none;
  border-radius: var(--p-analysis-school-toc-radius);
  background-color: var(--p-analysis-school-toc-bg);
}
@media screen and (min-width: 768px) {
  .p-analysis-school-body__editor #toc_container {
    padding-inline: var(--p-analysis-school-toc-padding-inline);
  }
}
.p-analysis-school-body__editor #toc_container .toc_title {
  margin: 0;
  color: var(--color-header-accent);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-analysis-school-body__editor #toc_container ul {
  margin: calc(16 * var(--to-rem)) auto 0;
  padding: 0;
  width: 100%;
  max-width: calc(438 * var(--to-rem));
  list-style: none;
}
.p-analysis-school-body__editor #toc_container ul > li {
  display: flex;
  align-items: center;
  gap: calc(8 * var(--to-rem));
  flex-wrap: wrap;
}
.p-analysis-school-body__editor #toc_container ul > li::before {
  content: "";
  flex-shrink: 0;
  width: calc(12 * var(--to-rem));
  height: calc(12 * var(--to-rem));
  border-radius: 50%;
  background-color: var(--color-header-accent);
}
.p-analysis-school-body__editor #toc_container ul > li + li {
  margin-top: calc(12 * var(--to-rem));
}
.p-analysis-school-body__editor #toc_container a {
  flex: 1 1 0;
  min-width: 0;
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: left;
  text-decoration: none;
}
#toc_container .toc_title + ul.toc_list ul {
  margin: 0 0 0 40px;
}

@media (any-hover: hover) {
  .p-analysis-school-body__editor #toc_container a:hover {
    text-decoration: underline;
  }
}
.p-analysis-school-body__editor #toc_container a:focus-visible {
  outline: 2px solid var(--color-header-accent);
  outline-offset: 2px;
}
/* ブロックエディタ本文（analysis_detail）：Table of Contents Plus + the_content */
.p-analysis-school-body__editor.entry-content {
  margin-top: calc(56 * var(--to-rem));
  box-sizing: border-box;
  width: 100%;
  max-width: calc(880 * var(--to-rem));
  margin-inline: auto;
}
.p-analysis-school-body__editor h2 {
  margin-top: 0;
  margin-right: 0;
  margin-bottom: 0;
  margin-left: 0;
  padding: calc(12 * var(--to-rem));
  box-sizing: border-box;
  width: 100%;
  border-top: 1px solid var(--color-header-button-end);
  border-bottom: 1px solid var(--color-header-button-end);
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: left;
}
.p-analysis-school-body__editor h2 ~ h2 {
  margin-top: calc(56 * var(--to-rem));
}
.p-analysis-school-body__editor h3 {
  margin: 40px auto 20px auto;
}

.p-analysis-school-body__editor h4 {
  margin: 30px auto 0 auto;
}
.p-analysis-school-body__editor p {
  margin: calc(37 * var(--to-rem)) 0 0;
  padding: 0;
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  text-align: left;
}
/* Figma 2445:2429：分析一覧へ戻る（page-analysis-school1 のみ） */
.p-analysis-school-body-after {
  margin-top: calc(130 * var(--to-rem));
  background-color: var(--color-white);
}
.p-analysis-school-body-after__inner {
  display: flex;
  justify-content: center;
}
.p-analysis-school-body-after__button.c-button {
  width: 100%;
  max-width: calc(367 * var(--to-rem));
}
.p-analysis-school-body-after__icon {
  flex-shrink: 0;
  width: calc(20 * var(--to-rem));
  height: calc(20 * var(--to-rem));
  transform: rotate(180deg);
}
.page-analysis-school1 .l-footer-cta,
.single-analysis_detail .l-footer-cta {
  padding-top: calc(236 * var(--to-rem));
}
/* 試験分析シングル: 紐づく analysis_detail 一覧（p-analysis-more と同系・カードは p-top__school-card） */
.p-analysis-detail-index {
  padding: calc(70 * var(--to-rem)) calc(20 * var(--to-rem));
  border-radius: calc(20 * var(--to-rem));
  background: var(--color-header-button-end);
}
.p-analysis-detail-index__inner.l-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  max-width: calc(1080 * var(--to-rem) + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
.p-analysis-detail-index__title {
  margin: 0;
  color: var(--color-white);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-analysis-detail-index__title {
    font-size: calc(32 * var(--to-rem));
  }
}
/* SP: 詳細記事カードは横 2 列にせず縦並び。
   md 以上は flex の justify-content:center を使わず Grid にし、3 列で左から詰め（最終行も左寄せ）。
   カードが 1〜2 枚のときだけ :has で列数を変え、グリッド全体を justify-content:center で中央に。 */
.p-analysis-detail-index__grid.p-analysis-more__school-grid {
  /* .p-analysis-detail-index__inner の align-items:center による横方向の縮みを防ぎ、
     グリッド（＝カード列の基準幅）をインナー全幅にそろえる */
  align-self: stretch;
  grid-template-columns: minmax(0, 1fr);
  z-index: 0;
  justify-items: center;
}
@media screen and (min-width: 768px) {
  .p-analysis-detail-index__grid.p-analysis-more__school-grid {
    display: grid;
    flex-wrap: unset;
    align-items: start;
    grid-template-columns: repeat(3, minmax(0, calc(344 * var(--to-rem))));
    justify-content: center;
    justify-items: stretch;
    column-gap: calc(24 * var(--to-rem));
    row-gap: calc(22 * var(--to-rem));
  }
  .p-analysis-detail-index__grid.p-analysis-more__school-grid:has(> *:only-child) {
    grid-template-columns: minmax(0, calc(344 * var(--to-rem)));
  }
  .p-analysis-detail-index__grid.p-analysis-more__school-grid:has(> *:nth-child(2):last-child) {
    grid-template-columns: repeat(2, minmax(0, calc(344 * var(--to-rem))));
  }
}
.p-analysis-detail-index__action {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: center;
  width: 100%;
  margin-top: 0;
}
.p-analysis-detail-index__cta {
  display: inline-flex;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  gap: calc(6 * var(--to-rem));
  max-width: 100%;
  margin-top: calc(52 * var(--to-rem));
  padding: calc(23.5 * var(--to-rem)) calc(20 * var(--to-rem));
  border: 1px solid var(--color-white);
  border-radius: calc(200 * var(--to-rem));
  background: linear-gradient(94deg, var(--color-header-button-start) 1.5%, var(--color-header-button-end) 98.5%);
  color: var(--color-white);
  text-align: center;
  text-decoration: none;
  transition:
    filter var(--duration) ease,
    transform var(--duration) ease;
}
@media (any-hover: hover) {
  .p-analysis-detail-index__cta:hover {
    filter: brightness(1.06);
    transform: translateY(calc(-2 * var(--to-rem)));
  }
}
.p-analysis-detail-index__cta-label {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--color-white);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-analysis-detail-index__cta-arrow {
  flex-shrink: 0;
  width: calc(8 * var(--to-rem));
  height: calc(8 * var(--to-rem));
  border: solid var(--color-white);
  border-width: 0 calc(2 * var(--to-rem)) calc(2 * var(--to-rem)) 0;
  transform: rotate(-45deg);
}
.p-analysis-school-body__article.entry-content {
  width: 100%;
}
/* Figma 4634:3268 学校準拠クラス */
.p-analysis-aligned {
  padding-top: calc(82 * var(--to-rem));
  background-color: var(--color-white);
}
.p-analysis-aligned__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  max-width: calc(880 * var(--to-rem));
  margin-inline: auto;
}
.p-analysis-aligned__heading {
  margin: 0;
}
.p-analysis-aligned__circles {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  max-width: 100%;
  padding: 0;
  margin: 0;
  overflow-x: auto;
  list-style: none;
  -webkit-overflow-scrolling: touch;
}
.p-analysis-aligned__circle {
  position: relative;
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  margin-left: calc(-10 * var(--to-rem));
  border-radius: 50%;
  color: var(--color-white);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-weight: var(--fw-bold);
  line-height: 1;
}
.p-analysis-aligned__circle:first-child {
  margin-left: 0;
}
.p-analysis-aligned__circle:nth-child(1) {
  z-index: 1;
}
.p-analysis-aligned__circle:nth-child(2) {
  z-index: 2;
}
.p-analysis-aligned__circle:nth-child(3) {
  z-index: 3;
}
.p-analysis-aligned__circle:nth-child(4) {
  z-index: 4;
}
.p-analysis-aligned__circle:nth-child(5) {
  z-index: 5;
}
.p-analysis-aligned__circle:nth-child(6) {
  z-index: 6;
}
.p-analysis-aligned__circle:nth-child(7) {
  z-index: 7;
}
.p-analysis-aligned__circle--light {
  width: calc(50 * var(--to-rem));
  height: calc(50 * var(--to-rem));
  background-color: var(--color-analysis-chart-1);
  font-size: calc(20 * var(--to-rem));
}
.p-analysis-aligned__circle--dark {
  width: calc(50 * var(--to-rem));
  height: calc(50 * var(--to-rem));
  background-color: var(--color-analysis-chart-3);
  font-size: calc(20 * var(--to-rem));
}
.p-analysis-aligned__lead {
  margin: calc(20 * var(--to-rem)) 0 0;
  max-width: calc(920 * var(--to-rem));
  padding-inline: calc(8 * var(--to-rem));
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
.p-analysis-aligned__specs {
  box-sizing: border-box;
  width: 100%;
  max-width: calc(512 * var(--to-rem));
  margin-top: calc(21 * var(--to-rem));
  margin-inline: auto;
}
.p-analysis-aligned__row {
  display: flex;
  width: 100%;
  min-width: 0;
}
.p-analysis-aligned__row + .p-analysis-aligned__row {
  margin-top: calc(2 * var(--to-rem));
}
@media screen and (max-width: 599px) {
  .p-analysis-aligned__row {
    flex-direction: column;
  }
  .p-analysis-aligned__row + .p-analysis-aligned__row {
    margin-top: calc(10 * var(--to-rem));
  }
  .p-analysis-aligned__row .p-analysis-aligned__label {
    flex: 0 0 auto;
    align-self: stretch;
    width: 100%;
    max-width: 100%;
    border-radius: calc(8 * var(--to-rem)) calc(8 * var(--to-rem)) 0 0;
  }
  .p-analysis-aligned__row .p-analysis-aligned__value {
    border: 1px solid var(--color-border-grid);
    border-radius: 0 0 calc(5 * var(--to-rem)) calc(5 * var(--to-rem));
  }
}
.p-analysis-aligned__label {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  box-sizing: border-box;
  flex: 0 0 calc(110 * var(--to-rem));
  width: calc(110 * var(--to-rem));
  max-width: calc(110 * var(--to-rem));
  padding: calc(12 * var(--to-rem)) calc(20 * var(--to-rem));
  border-radius: calc(8 * var(--to-rem)) 0 0 calc(8 * var(--to-rem));
  background-color: var(--color-analysis-chart-2);
  color: var(--color-white);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.4;
  text-align: left;
}
.p-analysis-aligned__value {
  box-sizing: border-box;
  flex: 1 1 auto;
  min-width: 0;
  padding: calc(12 * var(--to-rem)) calc(20 * var(--to-rem));
  border-radius: 0 calc(5 * var(--to-rem)) calc(5 * var(--to-rem)) 0;
  background-color: var(--color-header-nav-bg);
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: left;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}
/* Figma 4634:3269 定期テストについて・教科カード・準拠指導 */
.p-analysis-exam {
  padding-top: calc(82 * var(--to-rem));
  padding-bottom: calc(134 * var(--to-rem));
  padding-inline: calc(20 * var(--to-rem));
  background-color: var(--color-white);
}
.p-analysis-exam__intro {
  box-sizing: border-box;
  max-width: calc(920 * var(--to-rem));
  margin-inline: auto;
  padding-block: calc(8 * var(--to-rem)) 0;
  padding-inline: calc(8 * var(--to-rem));
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-analysis-exam__intro {
    padding-block: calc(12 * var(--to-rem)) 0;
  }
}
.p-analysis-exam__title {
  margin: 0;
  color: var(--color-header-accent);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-analysis-exam__title {
    font-size: calc(32 * var(--to-rem));
  }
}
.p-analysis-exam__lead {
  margin: calc(20 * var(--to-rem)) 0 0;
  color: var(--color-school-badge);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
@media screen and (max-width: 599px) {
  .p-analysis-exam__lead-br {
    display: none;
  }
}
.p-analysis-exam__cards {
  display: flex;
  flex-direction: column;
  gap: calc(20 * var(--to-rem));
  box-sizing: border-box;
  max-width: calc(520 * var(--to-rem));
  margin-top: calc(21 * var(--to-rem));
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-analysis-exam__cards {
    gap: calc(24 * var(--to-rem));
  }
}
.p-analysis-exam-card {
  box-sizing: border-box;
  padding: calc(20 * var(--to-rem)) calc(16 * var(--to-rem)) calc(24 * var(--to-rem));
  border: 1px solid var(--color-border-grid);
  border-radius: calc(12 * var(--to-rem));
  background-color: var(--color-white);
  background-image: linear-gradient(var(--color-grid-line-4) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid-line-4) 1px, transparent 1px);
  background-size: calc(19 * var(--to-rem)) calc(19 * var(--to-rem));
  background-position: center top;
}
@media screen and (min-width: 768px) {
  .p-analysis-exam-card {
    padding: calc(24 * var(--to-rem)) calc(24 * var(--to-rem)) calc(28 * var(--to-rem));
  }
}
.p-analysis-exam-card__heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: calc(6 * var(--to-rem));
  margin: 0;
}
.p-analysis-exam-card__glyphs {
  display: inline-flex;
  align-items: center;
}
.p-analysis-exam-card__glyph {
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  width: calc(40 * var(--to-rem));
  height: calc(40 * var(--to-rem));
  border-radius: 50%;
  background-color: var(--color-header-button-end);
  color: var(--color-white);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
/* Figma 2438:8831 英語・数学カード（枠・背景・中身は共通、数学のアクセント色のみ var(--color-footer-cta-blue-start)） */
.p-analysis-exam-card--english,
.p-analysis-exam-card--math {
  padding: calc(12 * var(--to-rem));
  border: 1px solid var(--color-border-neutral);
  border-radius: calc(10 * var(--to-rem));
  background-color: var(--color-white);
  background-image: url("/wp-content/themes/do-quest/assets/images/school-analysis-card-bg.png");
  background-position: 50% 50%;
  background-size: cover;
  background-repeat: no-repeat;
}
.p-analysis-exam-card--english .p-analysis-exam-card__heading-text,
.p-analysis-exam-card--math .p-analysis-exam-card__heading-text {
  color: var(--color-school-badge);
  font-size: calc(16 * var(--to-rem));
  font-weight: 700;
  line-height: normal;
}
.p-analysis-exam-card--english .p-analysis-exam-card__item,
.p-analysis-exam-card--math .p-analysis-exam-card__item {
  align-items: center;
}
.p-analysis-exam-card--english .p-analysis-exam-card__body,
.p-analysis-exam-card--math .p-analysis-exam-card__body {
  padding-top: 0;
}
.p-analysis-exam-card--math .p-analysis-exam-card__glyph {
  background-color: var(--color-footer-cta-blue-start);
}
.p-analysis-exam-card__heading-text {
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-analysis-exam-card__list {
  margin: calc(12 * var(--to-rem)) 0 0;
  padding: 0;
  list-style: none;
}
.p-analysis-exam-card__item {
  display: flex;
  align-items: flex-start;
  gap: calc(6 * var(--to-rem));
}
.p-analysis-exam-card__item + .p-analysis-exam-card__item {
  margin-top: calc(12 * var(--to-rem));
}
/* .p-top__results-value と同様、Akshar はメトリクス上やや上に見えるため translateY で下げる（11 を 14/56 で換算） */
.p-analysis-exam-card__num {
  box-sizing: border-box;
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  width: calc(30 * var(--to-rem));
  height: calc(30 * var(--to-rem));
  border: 1px solid var(--color-header-button-end);
  border-radius: 50%;
  background-color: var(--color-white);
  color: var(--color-header-button-end);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: var(--title-font-family);
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 500;
  line-height: 1;
  transform: translateY(calc(11 * var(--to-rem) * 14 / 56));
}
.p-analysis-exam-card--math .p-analysis-exam-card__num {
  border-color: var(--color-footer-cta-blue-start);
  color: var(--color-footer-cta-blue-start);
}
.p-analysis-exam-card__body {
  flex: 1 1 auto;
  min-width: 0;
  padding-top: calc(2 * var(--to-rem));
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: left;
}
.p-analysis-exam__features {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--p-analysis-exam-features-max-width);
  margin-block-start: var(--p-analysis-exam-features-margin-top);
  margin-inline: auto;
  padding-block: var(--p-analysis-exam-features-padding-block);
  padding-inline: var(--p-analysis-exam-features-padding-inline-sp);
  border-radius: var(--p-analysis-exam-features-radius);
  background-color: var(--p-analysis-exam-features-bg);
}
@media screen and (min-width: 768px) {
  .p-analysis-exam__features {
    padding-inline: var(--p-analysis-exam-features-padding-inline);
  }
}
.p-analysis-exam__features-inner.l-inner {
  box-sizing: border-box;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
  text-align: center;
}
.p-analysis-exam__features-title {
  margin: 0;
  color: var(--color-header-accent);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-analysis-exam__features-title {
    font-size: calc(32 * var(--to-rem));
  }
}
.p-analysis-exam-features-list {
  box-sizing: border-box;
  margin: calc(24 * var(--to-rem)) 0 0;
  padding: 0;
  list-style: none;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .p-analysis-exam-features-list {
    margin-top: calc(28 * var(--to-rem));
  }
}
.p-analysis-exam-features-list__item {
  display: flex;
  align-items: center;
  gap: calc(6 * var(--to-rem));
}
.p-analysis-exam-features-list__item + .p-analysis-exam-features-list__item {
  margin-top: calc(8 * var(--to-rem));
}
.p-analysis-exam-features-list__icon {
  position: relative;
  flex-shrink: 0;
  width: calc(30 * var(--to-rem));
  height: calc(30 * var(--to-rem));
  border-radius: 50%;
  background-color: var(--color-header-accent);
}
.p-analysis-exam-features-list__icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: calc(16 * var(--to-rem));
  height: calc(16 * var(--to-rem));
  background: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%20fill='none'%3e%3cmask%20id='mask0_2440_8915'%20style='mask-type:alpha'%20maskUnits='userSpaceOnUse'%20x='0'%20y='0'%20width='16'%20height='16'%3e%3crect%20width='16'%20height='16'%20fill='%23D9D9D9'/%3e%3c/mask%3e%3cg%20mask='url(%23mask0_2440_8915)'%3e%3cpath%20d='M6.36738%2012.0001L2.56738%208.20007L3.51738%207.25007L6.36738%2010.1001L12.4841%203.9834L13.4341%204.9334L6.36738%2012.0001Z'%20fill='white'/%3e%3c/g%3e%3c/svg%3e")
    center/contain no-repeat;
  transform: translate(-50%, -50%);
}
.p-analysis-exam-features-list__text {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
/* Figma 4634:3270 詳細な分析・対策 */
.p-analysis-more {
  padding: calc(70 * var(--to-rem)) calc(20 * var(--to-rem)) calc(68 * var(--to-rem));
  border-radius: calc(20 * var(--to-rem));
  background-color: var(--color-header-button-end);
}
/* トップ .p-top__school-analysis と同じコンテンツ幅（グリッド max 1080 に合わせる） */
.p-analysis-more__inner.l-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  width: 100%;
  max-width: calc(1080 * var(--to-rem) + var(--padding-inner) * 2);
  margin-inline: auto;
  padding-inline: var(--padding-inner);
}
.p-analysis-more__title {
  margin: 0;
  color: var(--color-white);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(32 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-analysis-more__action {
  display: flex;
  justify-content: center;
  width: 100%;
  margin-top: calc(28 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-analysis-more__action {
    margin-top: calc(36 * var(--to-rem));
  }
}
.p-analysis-more__cta {
  display: inline-flex;
  box-sizing: border-box;
  align-items: center;
  justify-content: center;
  gap: calc(6 * var(--to-rem));
  max-width: 100%;
  padding: calc(23.5 * var(--to-rem)) calc(20 * var(--to-rem));
  border: 1px solid var(--color-white);
  border-radius: calc(200 * var(--to-rem));
  background: linear-gradient(94deg, var(--color-header-button-start) 1.5%, var(--color-header-button-end) 98.5%);
  color: var(--color-white);
  text-align: center;
  text-decoration: none;
  transition:
    filter var(--duration) ease,
    transform var(--duration) ease;
}
@media (any-hover: hover) {
  .p-analysis-more__cta:hover {
    filter: brightness(1.06);
    transform: translateY(calc(-2 * var(--to-rem)));
  }
}
.p-analysis-more__cta-label {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--color-white);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-analysis-more__cta-arrow {
  flex-shrink: 0;
  width: calc(8 * var(--to-rem));
  height: calc(8 * var(--to-rem));
  border: solid var(--color-white);
  border-width: 0 calc(2 * var(--to-rem)) calc(2 * var(--to-rem)) 0;
  transform: rotate(-45deg);
}
/* Figma 4641:3294 授業対策相談リード */
.p-analysis-consult {
  padding-top: calc(87 * var(--to-rem));
  background-color: var(--color-white);
}
.p-analysis-consult__inner {
  box-sizing: border-box;
  max-width: calc(920 * var(--to-rem));
  margin-inline: auto;
  padding-inline: calc(8 * var(--to-rem));
  text-align: center;
}
.p-analysis-consult__title {
  margin: 0;
  color: var(--color-header-accent);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-analysis-consult__title {
    font-size: calc(32 * var(--to-rem));
  }
}
.p-analysis-consult__text-block {
  margin-top: calc(20 * var(--to-rem));
}
.p-analysis-consult__text {
  margin: 0;
  color: var(--color-school-badge);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
/* Figma 4641:3295 Feature グリッド（見た目は .p-about-learning-style__feature-card に合わせる） */
.p-analysis-consult__features {
  box-sizing: border-box;
  max-width: calc(920 * var(--to-rem));
  margin-inline: auto;
  padding-inline: calc(8 * var(--to-rem));
  padding-bottom: calc(8 * var(--to-rem));
}
.p-analysis-consult__features.l-inner {
  margin-top: calc(59 * var(--to-rem));
}
.p-analysis-consult-features {
  display: grid;
  gap: calc(24 * var(--to-rem));
  justify-items: center;
  margin: 0;
  padding: 0;
  padding-inline: calc(25 * var(--to-rem));
  list-style: none;
  text-align: left;
}
@media screen and (min-width: 768px) {
  .p-analysis-consult-features {
    grid-template-columns: repeat(2, minmax(0, calc(430 * var(--to-rem))));
    row-gap: calc(32 * var(--to-rem));
    column-gap: calc(49 * var(--to-rem));
    justify-content: center;
    padding-inline: 0;
  }
}
.p-analysis-consult-feature-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: calc(20 * var(--to-rem));
  justify-self: center;
  box-sizing: border-box;
  width: 100%;
  max-width: calc(430 * var(--to-rem));
  padding: calc(20 * var(--to-rem));
  border: 1px solid var(--color-border-light);
  border-radius: calc(20 * var(--to-rem));
  background-color: var(--color-white);
  background-image: linear-gradient(var(--color-grid-line-6) 1px, transparent 1px), linear-gradient(90deg, var(--color-grid-line-6) 1px, transparent 1px);
  background-size: calc(27 * var(--to-rem)) calc(27 * var(--to-rem));
}
.p-analysis-consult-feature-card__ribbon {
  position: absolute;
  top: calc(-1 * var(--to-rem));
  left: calc(-35 * var(--to-rem));
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: calc(88 * var(--to-rem));
  height: calc(51 * var(--to-rem));
  padding: 0;
  padding-inline-start: calc(15 * var(--to-rem));
  background-color: transparent;
  background-image: url("data:image/svg+xml,%3csvg%20width='88'%20height='51'%20viewBox='0%200%2088%2051'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M33%2051H0L13%2030L0%209H33V51Z'%20fill='%23832E00'/%3e%3crect%20width='69'%20height='43'%20transform='matrix(-1%200%200%201%2088%200)'%20fill='%23F05B0A'/%3e%3c/svg%3e");
  background-position: center;
  background-size: 100% 100%;
  background-repeat: no-repeat;
  line-height: 1.1;
}
.p-analysis-consult-feature-card__ribbon-label {
  color: var(--color-white);
  font-family: var(--title-font-family);
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  text-align: center;
  transform: translateY(calc(3 * var(--to-rem)));
}
.p-analysis-consult-feature-card__ribbon-num {
  color: var(--color-white);
  font-family: var(--title-font-family);
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 500;
  line-height: normal;
  text-align: center;
  transform: translateY(calc(-4 * var(--to-rem)));
}
.p-analysis-consult-feature-card__media {
  position: relative;
  z-index: 0;
  overflow: hidden;
  width: 100%;
  max-width: calc(390 * var(--to-rem));
  aspect-ratio: 390/260;
  margin-inline: auto;
  border-radius: calc(10 * var(--to-rem));
}
.p-analysis-consult-feature-card__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-analysis-consult-feature-card__body {
  display: flex;
  flex-direction: column;
  gap: calc(10 * var(--to-rem));
  align-items: flex-start;
  width: 100%;
}
.p-analysis-consult-feature-card__title {
  margin: 0;
  color: var(--color-header-button-end);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-analysis-consult-feature-card__text {
  width: 100%;
  color: var(--color-school-badge);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-analysis-consult-feature-card__text p {
  margin: 0;
}
.p-analysis {
  padding-block: calc(40 * var(--to-rem)) calc(92 * var(--to-rem));
  background-color: var(--color-white);
}
@media screen and (min-width: 768px) {
  .p-analysis {
    padding-block: calc(56 * var(--to-rem)) calc(92 * var(--to-rem));
  }
}
.p-analysis__inner {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}
.p-analysis--single .p-analysis__detail-body {
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-weight: 500;
  line-height: 1.75;
}
@media screen and (min-width: 768px) {
  .p-analysis--single .p-analysis__detail-body {
    max-width: calc(800 * var(--to-rem));
    margin-inline: auto;
  }
}
.p-analysis--single .p-analysis__detail-body > *:first-child {
  margin-top: 0;
}
.p-analysis--single .p-analysis__detail-body > *:last-child {
  margin-bottom: 0;
}
.p-analysis--single .p-analysis__detail-body p {
  margin-block: calc(16 * var(--to-rem));
}
.p-analysis--single .p-analysis__detail-body h2 {
  margin-block: calc(32 * var(--to-rem)) calc(16 * var(--to-rem));
  color: var(--color-school-badge);
  font-family: var(--title-font-family);
  font-size: calc(22 * var(--to-rem));
  font-weight: var(--fw-medium);
  line-height: 1.4;
}
.p-analysis--single .p-analysis__detail-body ul,
.p-analysis--single .p-analysis__detail-body ol {
  margin-block: calc(16 * var(--to-rem));
  padding-inline-start: calc(24 * var(--to-rem));
}
.p-analysis--single .p-analysis__detail-body a {
  color: var(--color-header-accent);
  text-decoration: underline;
}
@media (any-hover: hover) {
  .p-analysis--single .p-analysis__detail-body a:hover {
    text-decoration: none;
  }
}
.p-analysis__lead {
  color: var(--color-school-badge);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-analysis__lead-text {
  margin: 0;
}
.p-analysis__schools {
  margin-top: calc(56 * var(--to-rem));
  min-width: 0;
  max-width: 100%;
}
/* トップの学校カードグリッドを流用（セクション内では上マージンを打ち消し・親幅に収める） */
.p-analysis__schools .p-top__school-analysis-grid {
  margin-top: 0;
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  max-width: 100%;
}
@media screen and (min-width: 768px) {
  .p-analysis__schools .p-top__school-analysis-grid {
    max-width: calc(1080 * var(--to-rem));
  }
}
/* グリッドアイテムの min-width:auto による横はみ出し防止 */
.p-analysis__schools .p-top__school-card {
  min-width: 0;
  max-width: 100%;
}
.p-analysis__schools .p-top__school-card img {
  max-width: 100%;
  /* 768〜1024px: カード幅いっぱい・比率は TOP 同帯（120/79）に合わせる */
}
@media screen and (width >= 768px) and (width <= 1024px) {
  .p-analysis__schools .p-top__school-card img {
    width: 100%;
    height: auto;
    aspect-ratio: 120/79;
    object-fit: cover;
  }
}
.p-analysis__schools .p-top__school-card h3 {
  overflow-wrap: anywhere;
}
.p-analysis__pagination {
  margin-top: calc(83 * var(--to-rem));
}
.p-analysis__pagination .c-pagination {
  align-items: center;
  justify-content: center;
  gap: 0;
}
/* 矢印と数字の間 28 */
.p-analysis__pagination .c-pagination__item:first-child {
  margin-inline-end: calc(28 * var(--to-rem));
}
.p-analysis__pagination .c-pagination__item:last-child {
  margin-inline-start: calc(28 * var(--to-rem));
}
/* 数字同士の間 35（末尾の数字は次の矢印側で 28 を確保するため余白なし） */
.p-analysis__pagination .c-pagination__item[data-state="page"],
.p-analysis__pagination .c-pagination__item[data-state="current"] {
  margin-inline-end: calc(35 * var(--to-rem));
}
.p-analysis__pagination .c-pagination__item:nth-last-child(2) {
  margin-inline-end: 0;
}
/* 左右矢印（14×14） */
.p-analysis__pagination .c-pagination__item:first-child,
.p-analysis__pagination .c-pagination__item:last-child {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: calc(14 * var(--to-rem));
  height: calc(14 * var(--to-rem));
  min-width: calc(14 * var(--to-rem));
  aspect-ratio: 1;
  padding: 0;
  border: none;
  background-color: transparent;
  line-height: 0;
}
.p-analysis__pagination .c-pagination__item:first-child svg,
.p-analysis__pagination .c-pagination__item:last-child svg {
  display: block;
  width: 100%;
  height: 100%;
}
/* ページ番号（未選択） */
.p-analysis__pagination .c-pagination__item[data-state="page"] {
  box-sizing: border-box;
  min-width: auto;
  height: auto;
  padding: 0;
  border: none;
  background-color: transparent;
  color: var(--color-header-accent);
  font-feature-settings: "halt" on;
  font-family: var(--title-font-family);
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: normal;
  text-align: center;
  transform: translateY(calc(2 * var(--to-rem)));
}
/* active page: 32×32 circle (no translate on the circle itself) */
.p-analysis__pagination .c-pagination__item[data-state="current"] {
  box-sizing: border-box;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: calc(32 * var(--to-rem));
  height: calc(32 * var(--to-rem));
  min-width: calc(32 * var(--to-rem));
  aspect-ratio: 1;
  padding: 0;
  border: none;
  border-radius: 50%;
  background-color: var(--color-header-accent);
  color: var(--color-white);
  font-feature-settings: "halt" on;
  font-family: var(--title-font-family);
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: 1;
  text-align: center;
}
.p-analysis__pagination .c-pagination__item[data-state="current"] .p-analysis__pagination-current-digit {
  display: inline-block;
  transform: translateY(calc(2 * var(--to-rem)));
}
.p-analysis__pagination .c-pagination__item:first-child[data-state="disabled"],
.p-analysis__pagination .c-pagination__item:last-child[data-state="disabled"] {
  opacity: 0.35;
  cursor: default;
}
@media (any-hover: hover) {
  .p-analysis__pagination .c-pagination__item[data-state="page"]:hover {
    border-color: transparent;
    background-color: transparent;
    color: var(--color-header-accent);
  }
  .p-analysis__pagination .c-pagination__item[data-state="prev"]:hover,
  .p-analysis__pagination .c-pagination__item[data-state="next"]:hover {
    border-color: transparent;
    background-color: transparent;
  }
  .p-analysis__pagination .c-pagination__item:first-child[data-state="disabled"]:hover,
  .p-analysis__pagination .c-pagination__item:last-child[data-state="disabled"]:hover {
    border-color: transparent;
    background-color: transparent;
  }
}
.p-archive {
  padding-block: calc(40 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-archive {
    padding-block: calc(80 * var(--to-rem));
  }
}
.p-archive.p-archive--school-building {
  padding-top: calc(90 * var(--to-rem));
  padding-bottom: calc(158 * var(--to-rem));
}
.p-archive.p-archive--voice {
  padding-top: calc(94 * var(--to-rem));
  padding-bottom: calc(89 * var(--to-rem));
}
.p-archive__inner {
  max-width: calc(var(--inner) + var(--padding-inner) * 2);
}
.p-archive__inner.l-inner {
  max-width: calc(1080px + var(--padding-inner) * 2);
}
.p-archive__header {
  margin-block-end: calc(40 * var(--to-rem));
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-archive__header {
    margin-block-end: calc(60 * var(--to-rem));
  }
}
.p-archive__title {
  margin-block-end: calc(16 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-archive__title {
    margin-block-end: calc(24 * var(--to-rem));
  }
}
.p-archive__description {
  margin-block-start: calc(16 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  line-height: 1.8;
}
@media screen and (min-width: 768px) {
  .p-archive__description {
    margin-block-start: calc(24 * var(--to-rem));
    font-size: calc(16 * var(--to-rem));
  }
}
.p-archive__list {
  display: grid;
  gap: calc(24 * var(--to-rem));
  max-width: calc(1080 * var(--to-rem));
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-archive__list {
    grid-template-columns: repeat(2, 1fr);
    gap: calc(32 * var(--to-rem));
  }
}
@media screen and (min-width: 1024px) {
  .p-archive__list {
    grid-template-columns: repeat(3, 1fr);
  }
}
.p-archive__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: calc(16 * var(--to-rem));
  border: 1px solid var(--color-gray);
  border-radius: 12px;
  background-color: var(--color-white);
  text-decoration: none;
  transition:
    translate 0.3s ease,
    box-shadow 0.3s ease;
}
@media screen and (min-width: 768px) {
  .p-archive__link {
    padding: calc(20 * var(--to-rem));
  }
}
@media (any-hover: hover) {
  .p-archive__link:hover {
    box-shadow: 0 8px 24px oklch(from var(--color-black) l c h/10%);
    translate: 0 calc(-4 * var(--to-rem));
  }
}
.p-archive__thumbnail {
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16/9;
  margin-block-end: calc(16 * var(--to-rem));
  border-radius: 8px;
  background-color: var(--color-gray);
}
@media screen and (min-width: 768px) {
  .p-archive__thumbnail {
    margin-block-end: calc(20 * var(--to-rem));
  }
}
.p-archive__thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: scale 0.3s ease;
}
@media (any-hover: hover) {
  .p-archive__link:hover .p-archive__thumbnail img {
    scale: 1.05;
  }
}
.p-archive__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: calc(12 * var(--to-rem));
}
.p-archive__item-title {
  margin: 0;
  color: var(--color-text);
  font-size: calc(16 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .p-archive__item-title {
    font-size: calc(20 * var(--to-rem));
  }
}
.p-archive__meta {
  display: flex;
  flex-wrap: wrap;
  gap: calc(12 * var(--to-rem));
  align-items: center;
  color: var(--color-text);
  font-size: calc(12 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-archive__meta {
    font-size: calc(14 * var(--to-rem));
  }
}
.p-archive__date {
  display: inline-block;
}
.p-archive__categories {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
}
.p-archive__category {
  display: inline-block;
  padding: calc(4 * var(--to-rem)) calc(12 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-gray);
  color: var(--color-text);
  font-size: calc(11 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-archive__category {
    font-size: calc(12 * var(--to-rem));
  }
}
.p-archive__excerpt {
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  line-height: 1.8;
}
@media screen and (min-width: 768px) {
  .p-archive__excerpt {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-archive__pagination {
  margin-block-start: calc(48 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-archive__pagination {
    margin-block-start: calc(60 * var(--to-rem));
  }
}
.p-archive__empty {
  padding-block: calc(60 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(16 * var(--to-rem));
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-archive__empty {
    padding-block: calc(80 * var(--to-rem));
    font-size: calc(18 * var(--to-rem));
  }
}
.p-single__back {
  margin-block-start: calc(48 * var(--to-rem));
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-single__back {
    margin-block-start: calc(60 * var(--to-rem));
  }
}
.p-archive--works .p-archive__link {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  height: 100%;
  padding: 0;
  border: none;
  border-radius: 12px;
  box-shadow: 0 calc(2 * var(--to-rem)) calc(8 * var(--to-rem)) oklch(from var(--color-black) l c h/8%);
  background-color: var(--color-white);
  text-decoration: none;
}
.p-archive--works .p-archive__thumbnail {
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16/9;
  margin-block-end: 0;
  border-radius: 12px 12px 0 0;
}
.p-archive--works .p-archive__thumbnail img {
  transition: scale 0.5s ease;
}
@media (any-hover: hover) {
  .p-archive--works .p-archive__link:has(.p-archive__thumbnail):hover .p-archive__thumbnail img {
    scale: 1.1;
  }
}
.p-archive--works .p-archive__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: calc(12 * var(--to-rem));
  padding: calc(20 * var(--to-rem));
}
.p-archive--works .p-archive__meta {
  display: flex;
  flex-wrap: wrap;
  gap: calc(12 * var(--to-rem));
  align-items: center;
  margin-block-end: calc(8 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(12 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-archive--works .p-archive__meta {
    font-size: calc(14 * var(--to-rem));
  }
}
.p-archive--works .p-archive__date {
  display: inline-block;
}
.p-archive--works .p-archive__category {
  display: inline-block;
  padding: calc(4 * var(--to-rem)) calc(12 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-gray);
  color: var(--color-text);
  font-size: calc(11 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-archive--works .p-archive__category {
    font-size: calc(12 * var(--to-rem));
  }
}
.p-archive--works .p-archive__item-title {
  margin: 0;
  margin-block-end: calc(8 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(16 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.5;
}
@media screen and (min-width: 768px) {
  .p-archive--works .p-archive__item-title {
    margin-block-end: calc(12 * var(--to-rem));
    font-size: calc(18 * var(--to-rem));
    line-height: 1.6;
  }
}
.p-archive--works .p-archive__excerpt {
  display: -webkit-box;
  overflow: hidden;
  margin-block-start: 0;
  color: var(--color-text);
  font-size: calc(13 * var(--to-rem));
  line-height: 1.7;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
@media screen and (min-width: 768px) {
  .p-archive--works .p-archive__excerpt {
    font-size: calc(14 * var(--to-rem));
    line-height: 1.8;
  }
}
.p-archive--works .p-archive__client,
.p-archive--works .p-archive__period {
  display: flex;
  gap: calc(8 * var(--to-rem));
  align-items: center;
  color: var(--color-text);
  font-size: calc(12 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-archive--works .p-archive__client,
  .p-archive--works .p-archive__period {
    font-size: calc(14 * var(--to-rem));
  }
}
.p-archive--works .p-archive__client-label,
.p-archive--works .p-archive__period-label {
  font-weight: var(--fw-medium);
}
.p-archive--works .p-archive__technologies {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
  margin-block-start: calc(12 * var(--to-rem));
}
.p-archive--works .p-archive__technology {
  display: inline-block;
  padding: calc(4 * var(--to-rem)) calc(12 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-gray);
  color: var(--color-text);
  font-size: calc(11 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-archive--works .p-archive__technology {
    font-size: calc(12 * var(--to-rem));
  }
}
/* 合格者の声アーカイブ: 3 列グリッド + c-achievement-card（SP: 行 60 / PC: 行 32・列 60） */
.p-archive--voice .p-archive__list {
  gap: calc(60 * var(--to-rem)) calc(60 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-archive--voice .p-archive__list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: calc(32 * var(--to-rem));
  }
}
.p-archive--voice .c-achievement-card {
  width: 100%;
  max-width: calc(320 * var(--to-rem));
  min-width: 0;
  margin-inline: auto;
}
.p-archive--voice .c-achievement-card__image {
  width: 100%;
  height: auto;
  max-width: calc(320 * var(--to-rem));
  aspect-ratio: 320/213;
  margin-inline: auto;
}
.p-archive--voice .c-achievement-card__thumb,
.p-voice-more .c-achievement-card__thumb {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
}
.p-archive--voice .c-achievement-card__thumb--fallback,
.p-voice-more .c-achievement-card__thumb--fallback {
  object-fit: contain;
  object-position: center bottom;
}
/* シングル前置き 1 段落目と同じ文言：最大 4 行、超過分は末尾 …（アーカイブ / シングル下部スライダー共通） */
.p-archive--voice .c-achievement-card__text,
.p-voice-more .c-achievement-card__text {
  min-width: 0;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 4;
  line-clamp: 4;
}
/* archive-voice.php：パンくず直下リード */
.p-voice-archive-intro {
  margin-block: calc(56 * var(--to-rem)) 0;
  background-color: var(--color-white);
}
.p-voice-archive-intro__text {
  margin: 0;
  color: var(--color-school-badge);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
.p-school-building-archive-intro {
  margin-block-start: calc(56 * var(--to-rem));
}
.p-school-building-archive-intro__text {
  margin: 0;
  color: var(--color-school-badge);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: 1.65;
  text-align: center;
}
/* 校舎アーカイブ：オレンジパネル＋横並びカード */
.p-school-building-archive-panel {
  box-sizing: border-box;
  position: relative;
  width: 100%;
  max-width: calc(1080 * var(--to-rem));
  margin-block-start: calc(32 * var(--to-rem));
  margin-inline: auto;
  padding: calc(85 * var(--to-rem)) calc(20 * var(--to-rem)) calc(94 * var(--to-rem));
  border-radius: calc(20 * var(--to-rem));
  background-image: linear-gradient(var(--color-school-grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--color-school-grid-line) 1px, transparent 1px);
  background-position: center;
  background-size: calc(90 * var(--to-rem)) calc(90 * var(--to-rem));
  background-color: var(--color-header-button-end);
  font-family: var(--base-font-family);
}
@media screen and (min-width: 768px) {
  .p-school-building-archive-panel {
    margin-block-start: calc(40 * var(--to-rem));
    padding: calc(85 * var(--to-rem)) calc(40 * var(--to-rem)) calc(94 * var(--to-rem));
    background-position: 0 0;
    background-size: calc(40 * var(--to-rem)) calc(40 * var(--to-rem));
  }
}
.p-school-building-archive-panel__tab {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 2;
  transform: translate(-50%, calc(-50% - 40 * var(--to-rem)));
}
.p-school-building-archive-panel__tab-inner {
  display: flex;
  justify-content: center;
  align-items: center;
  width: calc(200 * var(--to-rem));
  height: calc(81 * var(--to-rem));
  border-radius: calc(20 * var(--to-rem)) calc(20 * var(--to-rem)) 0 0;
  background-color: var(--color-header-button-end);
  background-image: linear-gradient(var(--color-school-grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--color-school-grid-line) 1px, transparent 1px);
  background-position: center;
  background-size: calc(90 * var(--to-rem)) calc(90 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-school-building-archive-panel__tab-inner {
    width: calc(355 * var(--to-rem));
    background-position: 0 0;
    background-size: calc(40 * var(--to-rem)) calc(40 * var(--to-rem));
  }
}
.p-school-building-archive-panel__tab-icon {
  display: block;
  width: calc(45 * var(--to-rem));
  height: calc(45 * var(--to-rem));
  margin-block-start: calc(40 * var(--to-rem));
  flex-shrink: 0;
}
.p-school-building-archive-panel__list {
  display: flex;
  flex-direction: column;
  gap: calc(60 * var(--to-rem));
  max-width: calc(740 * var(--to-rem));
  margin: 0 auto;
  padding: 0;
  list-style: none;
}
@media screen and (min-width: 768px) {
  .p-school-building-archive-panel__list {
    gap: calc(32 * var(--to-rem));
  }
}
.p-school-building-archive-panel__item {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  padding: 0;
  max-width: min(400 * var(--to-rem), 100%);
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-school-building-archive-panel__item {
    width: auto;
    max-width: none;
    min-width: auto;
    margin-inline: 0;
  }
}
.p-school-building-archive-panel__row {
  display: flex;
  flex-direction: column;
  gap: calc(20 * var(--to-rem));
  align-items: stretch;
}
@media screen and (min-width: 768px) {
  .p-school-building-archive-panel__row {
    flex-direction: row;
    gap: calc(20 * var(--to-rem));
    align-items: flex-start;
  }
}
.p-school-building-archive-panel__content {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: calc(20 * var(--to-rem));
  min-width: 0;
}
.p-school-building-archive-panel__item-link {
  color: inherit;
  text-decoration: none;
}
.p-school-building-archive-panel__item-link--media {
  display: block;
  flex-shrink: 0;
}
.p-school-building-archive-panel__item-link--text {
  display: block;
}
.p-school-building-archive-panel__media {
  display: block;
  overflow: hidden;
  width: calc(420 * var(--to-rem));
  max-width: 100%;
  margin: 0;
  border-radius: calc(10 * var(--to-rem));
}
.p-school-building-archive-panel__image {
  display: block;
  box-sizing: border-box;
  width: calc(420 * var(--to-rem));
  max-width: 100%;
  height: auto;
  aspect-ratio: 3/2;
  border-radius: calc(10 * var(--to-rem));
  object-fit: cover;
}
.p-school-building-archive-panel__body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: calc(12 * var(--to-rem));
  min-width: 0;
}
.p-school-building-archive-panel__title {
  margin: 0;
  color: var(--color-white);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-school-building-archive-panel__address {
  margin: 0;
  color: var(--color-white);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.p-school-building-archive-panel__address p {
  margin: 0 0 calc(6 * var(--to-rem));
}
.p-school-building-archive-panel__address p:last-child {
  margin-bottom: 0;
}
.p-school-building-archive-panel__address-line {
  margin: 0;
}
.p-school-building-archive-panel__actions {
  flex-shrink: 0;
  padding-block-start: 0;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-school-building-archive-panel__actions {
    text-align: start;
  }
}
.p-school-building-archive-panel__btn {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  box-sizing: border-box;
  width: calc(300 * var(--to-rem));
  max-width: 100%;
  padding: calc(11 * var(--to-rem)) calc(20 * var(--to-rem));
  border: 1px solid var(--color-white);
  border-radius: calc(20 * var(--to-rem));
  background: var(--color-archive-notice-bg);
  color: var(--color-header-accent);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  text-align: center;
  text-decoration: none;
  transition:
    background var(--duration) ease,
    transform var(--duration) ease;
}
@media (any-hover: hover) {
  .p-school-building-archive-panel__btn:hover {
    background: var(--color-white-full);
    transform: translateY(calc(-2 * var(--to-rem)));
  }
}
.p-school-building-archive-panel__btn-label {
  text-align: center;
}
.p-school-building-archive-panel__btn-arrow {
  position: absolute;
  top: 50%;
  right: calc(13 * var(--to-rem));
  transform: translateY(-50%);
}
.p-school-building-archive-panel__btn-arrow img {
  display: block;
}
/* 校舎下層：概要（Figma node 4651:3317 付近） */
.p-school-building-detail {
  padding-block: calc(40 * var(--to-rem)) calc(80 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-school-building-detail {
    padding-block: calc(60 * var(--to-rem)) calc(100 * var(--to-rem));
  }
}
.p-school-building-detail.p-school-building-detail--shukugawa {
  padding-bottom: calc(65 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-school-building-detail.p-school-building-detail--shukugawa {
    padding-bottom: calc(65 * var(--to-rem));
  }
}
.p-school-building-detail.p-school-building-detail--nishinomiya-kitaguchi {
  padding-bottom: calc(65 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-school-building-detail.p-school-building-detail--nishinomiya-kitaguchi {
    padding-bottom: calc(65 * var(--to-rem));
  }
}
.p-school-building-overview {
  box-sizing: border-box;
  width: 100%;
  max-width: calc(1120 * var(--to-rem));
  margin-inline: auto;
  padding-inline: 0;
}
@media screen and (min-width: 768px) {
  .p-school-building-overview {
    padding-inline: calc(20 * var(--to-rem));
  }
}
.p-school-building-overview__row {
  display: flex;
  flex-direction: column;
  gap: calc(24 * var(--to-rem));
  align-items: center;
}
@media screen and (min-width: 768px) {
  .p-school-building-overview__row {
    flex-direction: row;
    gap: 0;
    align-items: flex-start;
  }
}
.p-school-building-overview__media {
  position: relative;
  z-index: 2;
  flex-shrink: 0;
  margin: 0;
  overflow: hidden;
  width: 100%;
  max-width: 100%;
  border-radius: calc(10 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-school-building-overview__media {
    box-sizing: border-box;
    flex: 0 1 auto;
    min-width: 0;
    max-width: min(520 * var(--to-rem), 45vw);
    width: min(520 * var(--to-rem), 45vw);
    margin-right: calc(-28 * var(--to-rem));
  }
}
.p-school-building-overview__image {
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: auto;
  aspect-ratio: 260/173;
  border-radius: calc(10 * var(--to-rem));
  object-fit: cover;
}
.p-school-building-overview__card {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  flex: 1;
  min-width: 0;
  width: 100%;
  padding: calc(20 * var(--to-rem));
  border-radius: calc(20 * var(--to-rem));
  background-color: var(--color-surface-f7);
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-school-building-overview__card {
    padding: calc(24 * var(--to-rem)) calc(20 * var(--to-rem)) calc(24 * var(--to-rem)) calc(56 * var(--to-rem));
    margin-top: calc(125 * var(--to-rem));
    text-align: left;
  }
}
.p-school-building-overview__title {
  margin: 0 0 calc(24 * var(--to-rem));
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-school-building-overview__title {
    text-align: left;
  }
}
.p-school-building-overview__contact {
  margin: 0 0 calc(24 * var(--to-rem));
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.p-school-building-overview__access {
  margin: 0 0 calc(24 * var(--to-rem));
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-school-building-overview__access strong {
  font-weight: 700;
}
.p-school-building-overview__tags {
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--to-rem));
}
.p-school-building-overview__tag-row {
  display: flex;
  flex-wrap: wrap;
  gap: calc(12 * var(--to-rem));
  align-items: flex-start;
  justify-content: center;
}
@media screen and (min-width: 768px) {
  .p-school-building-overview__tag-row {
    justify-content: flex-start;
  }
}
.p-school-building-overview__tag {
  flex-shrink: 0;
  padding: calc(2 * var(--to-rem)) calc(8 * var(--to-rem));
  border-radius: calc(50 * var(--to-rem));
  background: var(--color-header-accent);
  color: var(--color-white);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(12 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.p-school-building-overview__tag-text {
  flex: 1;
  min-width: min(100%, 200 * var(--to-rem));
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.p-school-building-map {
  margin-top: calc(65 * var(--to-rem));
}
.p-school-building-map__embed {
  position: relative;
  width: calc(880 * var(--to-rem));
  max-width: 100%;
  margin-inline: auto;
  overflow: hidden;
  aspect-ratio: 211/123;
}
.p-school-building-map__embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
/* 道順（Figma node 4652:3366） */
.p-school-building-access {
  box-sizing: border-box;
  max-width: calc(1120 * var(--to-rem));
  margin-top: calc(98 * var(--to-rem));
  margin-inline: auto;
  padding-inline: 0;
}
@media screen and (min-width: 768px) {
  .p-school-building-access {
    padding-inline: calc(20 * var(--to-rem));
  }
}
.p-school-building-access__title {
  margin: 0 0 calc(33 * var(--to-rem));
  color: var(--color-header-accent);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-school-building-access__title {
    font-size: calc(32 * var(--to-rem));
  }
}
.p-school-building-access__steps {
  display: grid;
  grid-template-columns: 1fr;
  gap: calc(24 * var(--to-rem));
  margin: 0;
  padding: 0;
  list-style: none;
}
@media screen and (min-width: 768px) {
  .p-school-building-access__steps {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: calc(24 * var(--to-rem));
  }
}
.p-school-building-access__step {
  position: relative;
  margin: 0;
}
@media screen and (min-width: 768px) {
  .p-school-building-access__step:nth-child(3n-2)::after,
  .p-school-building-access__step:nth-child(3n-1)::after {
    content: "";
    position: absolute;
    top: calc(150 * var(--to-rem));
    right: calc(-20 * var(--to-rem));
    z-index: 1;
    width: 0;
    height: 0;
    border-style: solid;
    border-width: calc(10 * var(--to-rem)) 0 calc(10 * var(--to-rem)) calc(14 * var(--to-rem));
    border-color: transparent transparent transparent var(--color-header-accent);
  }
}
.p-school-building-access__card {
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--to-rem));
  padding: calc(20 * var(--to-rem));
  overflow: hidden;
  border: 1px solid var(--color-border-neutral);
  border-radius: calc(10 * var(--to-rem));
  background-color: var(--color-white);
  background-image: linear-gradient(var(--color-black-5) 1px, transparent 1px), linear-gradient(90deg, var(--color-black-5) 1px, transparent 1px);
  background-position: 0 0;
  background-size: calc(32 * var(--to-rem)) calc(32 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-school-building-access__card {
    padding: calc(12 * var(--to-rem));
    aspect-ratio: 344/299;
  }
}
.p-school-building-access__figure {
  flex-shrink: 0;
  width: 100%;
  max-width: calc(320 * var(--to-rem));
  height: auto;
  margin: 0 auto;
  overflow: hidden;
  border-radius: calc(10 * var(--to-rem));
  aspect-ratio: 91/60;
  background-color: var(--color-gray-d3);
  background-position: 50% 50%;
  background-size: cover;
  background-repeat: no-repeat;
}
.p-school-building-access__body {
  display: flex;
  flex-shrink: 0;
  gap: calc(6 * var(--to-rem));
  align-items: flex-start;
  padding: 0;
}
.p-school-building-access__num {
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: center;
  width: calc(30 * var(--to-rem));
  height: calc(30 * var(--to-rem));
  border-radius: 50%;
  background: var(--color-header-button-end);
  color: var(--color-white);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: var(--title-font-family);
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: normal;
}
.p-school-building-access__num-text {
  display: block;
  transform: translateY(calc(2 * var(--to-rem)));
}
.p-school-building-access__text {
  flex: 1;
  margin: 0;
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
/* 雰囲気（西宮北口本校） */
.p-school-building-atmosphere {
  box-sizing: border-box;
  max-width: calc(1080 * var(--to-rem));
  margin-top: calc(98 * var(--to-rem));
  margin-inline: auto;
  padding-inline: calc(20 * var(--to-rem));
}
.p-school-building-atmosphere__title {
  margin: 0 0 calc(20 * var(--to-rem));
  color: var(--color-header-accent);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-school-building-atmosphere__title {
    font-size: calc(32 * var(--to-rem));
  }
}
.p-school-building-atmosphere__text {
  margin: 0;
  color: var(--color-school-badge);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
/* 雰囲気スライダー（Figma node 4657:3403）
   トップの .p-top__achievements-slider と同様、l-inner 内からビューポート幅いっぱいに表示 */
.p-school-building-atmosphere-slider-wrap {
  box-sizing: border-box;
  width: 100vw;
  max-width: 100vw;
  margin-top: calc(38 * var(--to-rem));
  margin-inline: calc(50% - 50vw);
  padding-inline: 0;
  overflow: visible;
}
/* DOM 順: arrows(prev,next) → track → pagination。.splide__arrows は display:contents で矢印を直下に。 */
.p-school-building-atmosphere-slider.splide {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin-inline: 0;
  column-gap: calc(30 * var(--to-rem));
  row-gap: calc(24 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-school-building-atmosphere-slider.splide {
    row-gap: calc(38 * var(--to-rem));
  }
}
/* Splide は .splide__track のみのマークアップでも使う（.splide__slider は SSR 用） */
.p-school-building-atmosphere-slider .splide__slider,
.p-school-building-atmosphere-slider .splide__track {
  flex: 0 0 100%;
  order: 1;
  width: 100%;
  min-width: 0;
}
.p-school-building-atmosphere-slider .splide__arrows {
  display: contents;
}
.p-school-building-atmosphere-slider .splide__arrow {
  position: static;
  transform: none;
  z-index: 1;
  box-sizing: border-box;
  flex: 0 0 auto;
  width: calc(42 * var(--to-rem));
  height: calc(42 * var(--to-rem));
  aspect-ratio: 1/1;
  padding: 0;
  opacity: 1;
  background: transparent;
  color: var(--color-header-button-end);
}
.p-school-building-atmosphere-slider .splide__arrow svg {
  display: block;
  width: 100%;
  height: 100%;
  fill: currentcolor;
}
.p-school-building-atmosphere-slider .splide__arrow--prev {
  order: 2;
}
.p-school-building-atmosphere-slider .splide__arrow--next {
  order: 4;
}
.p-school-building-atmosphere-slider .splide__pagination {
  position: static;
  inset: auto;
  order: 3;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  flex: 0 1 auto;
  width: auto;
  max-width: 100%;
  min-width: 0;
  gap: calc(30 * var(--to-rem));
  margin: 0;
  padding: 0;
}
.p-school-building-atmosphere-slider .splide__pagination li {
  margin: 0;
}
.p-school-building-atmosphere-slider .splide__pagination__page {
  box-sizing: border-box;
  width: calc(10 * var(--to-rem));
  height: calc(10 * var(--to-rem));
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--color-gray-df);
  opacity: 1;
  transform: none;
  transition: background-color 0.1s linear;
}
.p-school-building-atmosphere-slider .splide__pagination__page:hover {
  opacity: 1;
}
.p-school-building-atmosphere-slider .splide__pagination__page.is-active {
  background: var(--color-header-button-end);
  opacity: 1;
  transform: none;
}
.p-school-building-atmosphere-slider .splide__slide {
  box-sizing: border-box;
  min-width: 0;
}
@media screen and (width >= 769px) {
  .p-school-building-atmosphere-slider .splide__slide {
    width: calc(420 * var(--to-rem));
    flex-shrink: 0;
  }
}
.p-school-building-atmosphere-slider__card {
  box-sizing: border-box;
  width: 100%;
  max-width: calc(420 * var(--to-rem));
  min-width: 0;
  height: 100%;
}
.p-school-building-atmosphere-slider__media {
  margin: 0 0 calc(12 * var(--to-rem));
  overflow: hidden;
  border-radius: calc(10 * var(--to-rem));
}
.p-school-building-atmosphere-slider__img {
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: calc(420 * var(--to-rem));
  height: auto;
  aspect-ratio: 35/23;
  object-fit: cover;
  border-radius: calc(10 * var(--to-rem));
}
.p-school-building-atmosphere-slider__card-title {
  margin: 0 0 calc(8 * var(--to-rem));
  color: var(--color-header-button-end);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-school-building-atmosphere-slider__card-text {
  margin: 0;
  color: var(--color-school-badge);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
@media screen and (width <= 767px) {
  .p-school-building-atmosphere-slider-wrap {
    padding-inline: calc(20 * var(--to-rem));
  }
  .p-school-building-atmosphere-slider.splide {
    /* 矢印・ドット行が折り返さないよう、狭い幅ほど一括で縮小 */
    column-gap: clamp(2 * var(--to-rem), 2.5vw, 30 * var(--to-rem));
  }
  .p-school-building-atmosphere-slider .splide__arrow {
    flex-shrink: 0;
    width: clamp(24 * var(--to-rem), 6.5vw, 42 * var(--to-rem));
    height: clamp(24 * var(--to-rem), 6.5vw, 42 * var(--to-rem));
  }
  .p-school-building-atmosphere-slider .splide__pagination {
    gap: clamp(2 * var(--to-rem), 1.5vw, 30 * var(--to-rem));
  }
  .p-school-building-atmosphere-slider .splide__pagination__page {
    flex-shrink: 0;
    width: clamp(6 * var(--to-rem), 1.6vw, 10 * var(--to-rem));
    height: clamp(6 * var(--to-rem), 1.6vw, 10 * var(--to-rem));
  }
  .p-school-building-atmosphere-slider .splide__slide {
    display: flex;
    justify-content: center;
  }
  .p-school-building-atmosphere-slider__card {
    margin-inline: auto;
  }
}
/* 講師紹介（雰囲気スライダー直下） */
.p-school-building-teacher-intro {
  box-sizing: border-box;
  width: 100%;
  margin-top: calc(98 * var(--to-rem));
}
.p-school-building-teacher-intro__inner {
  box-sizing: border-box;
  max-width: calc(920 * var(--to-rem));
  margin-inline: auto;
  padding-inline: 0;
}
@media screen and (min-width: 768px) {
  .p-school-building-teacher-intro__inner {
    padding-inline: calc(20 * var(--to-rem));
  }
}
.p-school-building-teacher-intro__title {
  margin: 0 0 calc(20 * var(--to-rem));
  color: var(--color-header-accent);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-school-building-teacher-intro__title {
    font-size: calc(32 * var(--to-rem));
  }
}
.p-school-building-teacher-intro__lead {
  margin: 0 0 calc(38 * var(--to-rem));
  color: var(--color-school-badge);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: 1.65;
}
.p-school-building-teacher-intro__list {
  display: flex;
  flex-direction: column;
  gap: calc(26 * var(--to-rem));
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-school-building-teacher-intro__item {
  margin: 0;
}
.p-school-building-teacher-intro-card {
  display: flex;
  flex-direction: column;
  gap: calc(20 * var(--to-rem));
  box-sizing: border-box;
  width: 100%;
  padding: calc(20 * var(--to-rem));
  border: 1px solid var(--color-border-neutral);
  border-radius: calc(10 * var(--to-rem));
  background-color: var(--color-white);
  background-image: linear-gradient(var(--color-black-5) 1px, transparent 1px), linear-gradient(90deg, var(--color-black-5) 1px, transparent 1px);
  background-position: 0 0;
  background-size: calc(32 * var(--to-rem)) calc(32 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-school-building-teacher-intro-card {
    flex-direction: row;
    gap: calc(28 * var(--to-rem));
    align-items: flex-start;
  }
}
.p-school-building-teacher-intro-card__figure {
  flex-shrink: 0;
  margin: 0;
  overflow: hidden;
  width: 100%;
  max-width: 100%;
  border-radius: calc(10 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-school-building-teacher-intro-card__figure {
    width: calc(280 * var(--to-rem));
    max-width: 42%;
  }
}
.p-school-building-teacher-intro-card__img {
  display: block;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  height: auto;
  aspect-ratio: 35/23;
  object-fit: cover;
  border-radius: calc(10 * var(--to-rem));
}
.p-school-building-teacher-intro-card__body {
  flex: 1;
  min-width: 0;
  text-align: left;
}
.p-school-building-teacher-intro-card__label {
  margin: 0;
  color: var(--color-header-accent);
  text-align: left;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-school-building-teacher-intro-card__name {
  margin: 0 0 calc(12 * var(--to-rem));
  color: var(--color-school-badge);
  text-align: left;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-school-building-teacher-intro-card__text {
  margin: 0 0 calc(18 * var(--to-rem));
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.p-school-building-teacher-intro-card__subjects {
  display: inline-flex;
  flex-wrap: wrap;
  gap: calc(12 * var(--to-rem));
  align-items: stretch;
  margin: 0;
  overflow: hidden;
  border-radius: calc(100 * var(--to-rem));
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
}
.p-school-building-teacher-intro-card__subjects-tag {
  display: inline-flex;
  align-items: center;
  padding: calc(2 * var(--to-rem)) calc(8 * var(--to-rem));
  border-radius: calc(50 * var(--to-rem));
  background: var(--color-header-button-end);
  color: var(--color-white);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(12 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-school-building-teacher-intro-card__subjects-text {
  display: inline-flex;
  align-items: center;
  padding: 0;
  background-color: var(--color-white);
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-school-building-teacher-intro__actions {
  display: flex;
  justify-content: center;
  margin-top: calc(98 * var(--to-rem));
}
.p-school-building-teacher-intro__back.c-button {
  width: 100%;
  max-width: calc(320 * var(--to-rem));
  height: auto;
  padding: calc(23.5 * var(--to-rem)) calc(20 * var(--to-rem));
  gap: calc(24 * var(--to-rem));
  border-radius: calc(200 * var(--to-rem));
  background: linear-gradient(94deg, var(--color-header-button-start) 1.5%, var(--color-header-button-end) 98.5%);
  color: var(--color-white);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-school-building-teacher-intro__back-icon {
  flex-shrink: 0;
  width: calc(20 * var(--to-rem));
  height: calc(20 * var(--to-rem));
  aspect-ratio: 1/1;
  transform: rotate(180deg);
}
/* p-top__results と同じ見た目（archive-voice 用にクラス名のみ分離） */
.p-voice-archive-results {
  display: grid;
  justify-items: stretch;
  padding-block: calc(44 * var(--to-rem)) calc(50 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-voice-archive-results {
    justify-items: center;
    padding-block: calc(44 * var(--to-rem)) calc(0 * var(--to-rem));
  }
}
.p-voice-archive-results__badge {
  justify-self: center;
  width: calc(135 * var(--to-rem));
  height: auto;
  aspect-ratio: 135/70;
  margin-inline: auto;
  object-fit: contain;
}
.p-voice-archive-results__year {
  justify-self: center;
  margin: 0;
  padding-top: 0;
  color: var(--p-voice-archive-results-heading-color);
  font-family: var(--base-font-family);
  font-feature-settings: var(--p-voice-archive-results-heading-font-feature-settings);
  font-size: var(--p-voice-archive-results-year-font-size);
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: center;
}
.p-voice-archive-results__headline {
  justify-self: center;
  margin: 0;
  color: var(--p-voice-archive-results-heading-color);
  font-family: var(--base-font-family);
  font-feature-settings: var(--p-voice-archive-results-heading-font-feature-settings);
  font-size: var(--p-voice-archive-results-headline-font-size);
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: center;
}
.p-voice-archive-results__grid {
  box-sizing: border-box;
  display: grid;
  justify-self: stretch;
  width: 100%;
  min-width: 0;
  max-width: none;
}
@media screen and (min-width: 768px) {
  .p-voice-archive-results__grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0 calc(27 * var(--to-rem));
    justify-content: center;
    align-items: flex-start;
    justify-self: auto;
    width: auto;
    padding-top: calc(24 * var(--to-rem));
  }
}
.p-voice-archive-results__row-break {
  display: none;
}
@media screen and (min-width: 768px) {
  .p-voice-archive-results__row-break {
    display: block;
    flex-basis: 100%;
    overflow: hidden;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    border: 0;
  }
}
.p-voice-archive-results__item {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
  justify-content: flex-start;
  align-items: flex-end;
  width: 100%;
  margin: 0;
  padding: 0;
  padding-bottom: calc(6 * var(--to-rem));
  border-bottom: 1px solid var(--color-top-results-row-border);
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .p-voice-archive-results__item {
    flex: 0 1 auto;
    justify-content: center;
    width: fit-content;
    max-width: 100%;
    padding-bottom: 0;
    border-bottom: none;
  }
}
.p-voice-archive-results__amount {
  display: flex;
  align-items: flex-end;
  flex-shrink: 0;
  margin-left: auto;
}
@media screen and (min-width: 768px) {
  .p-voice-archive-results__amount {
    margin-left: 0;
    gap: calc(8 * var(--to-rem));
  }
}
.p-voice-archive-results__item.p-voice-archive-results__item--with-note {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  column-gap: calc(8 * var(--to-rem));
  row-gap: calc(8 * var(--to-rem));
  align-items: end;
}
.p-voice-archive-results__item.p-voice-archive-results__item--with-note .p-voice-archive-results__label {
  grid-column: 1;
  grid-row: 1/-1;
  align-self: end;
  text-align: left;
}
.p-voice-archive-results__item.p-voice-archive-results__item--with-note .p-voice-archive-results__amount {
  grid-column: 2;
  grid-row: 1;
  align-items: flex-end;
  justify-self: end;
  margin-left: 0;
}
.p-voice-archive-results__item.p-voice-archive-results__item--with-note .p-voice-archive-results__note {
  grid-column: 2;
  grid-row: 2;
  justify-self: end;
  width: max-content;
  max-width: 100%;
  text-align: right;
}
@media screen and (min-width: 768px) {
  .p-voice-archive-results__item.p-voice-archive-results__item--with-note {
    display: flex;
    flex-wrap: wrap;
    gap: calc(8 * var(--to-rem));
    align-items: flex-end;
    width: fit-content;
    max-width: 100%;
  }
  .p-voice-archive-results__item.p-voice-archive-results__item--with-note .p-voice-archive-results__label {
    text-align: right;
  }
  .p-voice-archive-results__item.p-voice-archive-results__item--with-note .p-voice-archive-results__note {
    width: auto;
  }
}
.p-voice-archive-results__label {
  min-width: 0;
  color: var(--color-header-button-end);
  text-align: right;
  leading-trim: both;
  text-edge: cap;
  font-feature-settings: "halt" on;
  font-family: var(--base-font-family);
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .p-voice-archive-results__label {
    color: var(--color-header-button-end);
    leading-trim: normal;
    text-edge: auto;
  }
}
.p-voice-archive-results__value {
  display: inline-block;
  flex-shrink: 0;
  font-feature-settings: "halt" on;
  font-family: var(--title-font-family);
  font-size: calc(56 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: 1;
  color: transparent;
  background: linear-gradient(180deg, var(--color-header-button-end) 0%, var(--color-header-accent) 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  transform: translateY(calc(11 * var(--to-rem)));
}
.p-voice-archive-results__unit {
  color: var(--color-header-button-end);
  font-feature-settings: "halt" on;
  font-family: var(--base-font-family);
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .p-voice-archive-results__unit {
    color: var(--color-header-button-end);
  }
}
.p-voice-archive-results__note {
  color: var(--color-header-button-end);
  font-feature-settings: "halt" on;
  font-family: var(--base-font-family);
  font-size: calc(12 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-voice-archive-results__note {
    color: var(--color-header-button-end);
    font-size: calc(18 * var(--to-rem));
    line-height: 1;
  }
}
.p-voice-archive-results__message {
  display: none;
  color: var(--color-header-accent);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-voice-archive-results__message {
    display: block;
    padding-top: calc(53 * var(--to-rem));
  }
}
/* パンくず区切り矢印（Figma 準拠・単体パス） */
.p-breadcrumb {
  border-top: 1px solid var(--color-black-10);
  background-color: var(--color-breadcrumb-bg);
}
.p-breadcrumb__inner {
  padding-block: calc(11 * var(--to-rem));
}
.p-breadcrumb__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-breadcrumb__item {
  display: inline-flex;
  align-items: center;
  color: var(--color-school-badge);
  font-family: var(--base-font-family);
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: 1.5;
}
.p-breadcrumb__item:not(:first-child)::before {
  content: ">";
  margin-inline: calc(8 * var(--to-rem));
  font-weight: var(--fw-regular);
}
.p-breadcrumb__item a {
  color: inherit;
  text-decoration: none;
  transition: opacity var(--duration);
}
.p-breadcrumb__item a:hover {
  opacity: 0.75;
}
.p-breadcrumb__item a:focus-visible {
  outline: 2px solid var(--color-header-accent);
  outline-offset: 2px;
}
@media screen and (min-width: 768px) {
  .p-breadcrumb__item {
    color: var(--color-school-badge);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-feature-settings: "halt" on;
    font-size: calc(14 * var(--to-rem));
    font-style: normal;
    font-weight: 400;
    line-height: normal;
  }
  .p-breadcrumb__item:not(:first-child)::before {
    content: "";
    display: inline-block;
    flex-shrink: 0;
    width: calc(12.552 * var(--to-rem));
    height: calc(12.552 * var(--to-rem));
    aspect-ratio: 1/1;
    margin-inline: calc(8 * var(--to-rem));
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 13 13' fill='none'%3E%3Cpath d='M4.19685 11.5057L3.26855 10.5774L7.57011 6.27581L3.26855 1.97426L4.19685 1.04596L9.4267 6.27581L4.19685 11.5057Z' fill='%23764900'/%3E%3C/svg%3E");
    background-position: center;
    background-size: contain;
    background-repeat: no-repeat;
    font-weight: inherit;
  }
}
.p-breadcrumb__current {
  color: inherit;
}
@media screen and (min-width: 768px) {
  .p-breadcrumb__current {
    color: var(--color-school-badge);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-feature-settings: "halt" on;
    font-size: calc(14 * var(--to-rem));
    font-style: normal;
    font-weight: 400;
    line-height: normal;
  }
}
.p-card-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(calc(320 * var(--to-rem)), 1fr));
  gap: calc(24 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-card-list {
    gap: calc(32 * var(--to-rem));
  }
}
.p-contact__complete {
  padding-block: calc(80 * var(--to-rem));
  text-align: center;
}
.p-contact__complete-title {
  font-size: calc(32 * var(--to-rem));
  font-weight: var(--fw-bold);
}
@media screen and (min-width: 768px) {
  .p-contact__complete-title {
    font-size: calc(40 * var(--to-rem));
  }
}
.p-contact__complete-text {
  margin-block-start: calc(30 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(16 * var(--to-rem));
  line-height: 1.8;
}
@media screen and (min-width: 768px) {
  .p-contact__complete-text {
    font-size: calc(18 * var(--to-rem));
  }
}
.p-contact__complete-button {
  margin-block-start: calc(50 * var(--to-rem));
  margin-inline: auto;
}
.p-contact {
  padding-block: calc(72 * var(--to-rem));
}
.p-contact__form {
  margin-block-start: calc(64 * var(--to-rem));
}
.p-contact__title {
  display: grid;
  place-items: center;
}
.p-dev-notice {
  padding-block: calc(24 * var(--to-rem));
  background-color: var(--color-dev-notice-bg);
}
@media screen and (min-width: 768px) {
  .p-dev-notice {
    padding-block: calc(32 * var(--to-rem));
  }
}
.p-dev-notice__inner {
  max-width: calc(var(--inner) + var(--padding-inner) * 2);
}
.p-dev-notice__content {
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  line-height: 1.8;
}
@media screen and (min-width: 768px) {
  .p-dev-notice__content {
    gap: calc(20 * var(--to-rem));
    font-size: calc(16 * var(--to-rem));
  }
}
.p-dev-notice__title {
  color: var(--color-text);
  font-size: calc(18 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .p-dev-notice__title {
    font-size: calc(20 * var(--to-rem));
  }
}
.p-dev-notice__text code {
  padding-block: calc(2 * var(--to-rem));
  padding-inline: calc(6 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-black-5);
  color: var(--color-primary);
  font-family: var(--base-font-family);
  font-size: calc(13 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-dev-notice__text code {
    font-size: calc(14 * var(--to-rem));
  }
}
.p-dev-notice__list {
  display: flex;
  flex-direction: column;
  gap: calc(12 * var(--to-rem));
  margin: 0;
  padding-inline-start: calc(24 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-dev-notice__list {
    gap: calc(16 * var(--to-rem));
    padding-inline-start: calc(32 * var(--to-rem));
  }
}
.p-dev-notice__item {
  display: flex;
  flex-direction: column;
  gap: calc(4 * var(--to-rem));
  line-height: 1.8;
}
.p-dev-notice__item strong {
  color: var(--color-primary);
  font-weight: var(--fw-bold);
}
.p-dev-notice__item code {
  padding-block: calc(2 * var(--to-rem));
  padding-inline: calc(6 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-black-5);
  color: var(--color-primary);
  font-family: var(--base-font-family);
  font-size: calc(13 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-dev-notice__item code {
    font-size: calc(14 * var(--to-rem));
  }
}
.p-error {
  padding-block: calc(60 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-error {
    padding-block: calc(80 * var(--to-rem));
  }
}
.p-error__header {
  margin-block-end: calc(24 * var(--to-rem));
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-error__header {
    margin-block-end: calc(32 * var(--to-rem));
  }
}
.p-error__title {
  color: var(--color-text);
  font-size: calc(24 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .p-error__title {
    font-size: calc(32 * var(--to-rem));
  }
}
.p-error__content {
  max-width: calc(640 * var(--to-rem));
  margin-inline: auto;
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  line-height: 1.8;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-error__content {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-error__content p + p {
  margin-block-start: calc(24 * var(--to-rem));
}
.p-error__content p:has(> .c-button) {
  display: flex;
  justify-content: center;
}
.p-error__content .c-button {
  margin-inline: auto;
}
/* .p-footer より手前（本文終わり〜フッター手前）にお問い合わせ CTA を置く */
.l-footer-cta {
  position: relative;
  z-index: 1;
}
@media screen and (min-width: 768px) {
  .l-footer-cta .c-contact--main,
  .l-footer-cta .c-contact--about {
    margin-top: 0;
  }
}
.p-footer {
  position: relative;
  overflow: visible;
  margin-block-start: calc(89 * var(--to-rem));
  padding-block: calc(32 * var(--to-rem)) calc(48 * var(--to-rem));
  padding-inline: 0;
  border-radius: calc(10 * var(--to-rem)) calc(10 * var(--to-rem)) 0 0;
  background-color: var(--color-header-button-end);
  color: var(--color-white);
  font-family: var(--base-font-family);
}
@media screen and (min-width: 768px) {
  .p-footer {
    border-radius: calc(20 * var(--to-rem)) calc(20 * var(--to-rem)) 0 0;
    margin-block-start: calc(125 * var(--to-rem));
    padding-block: calc(57 * var(--to-rem)) calc(40 * var(--to-rem));
  }
}
.p-footer__deco {
  position: absolute;
  right: 0;
  bottom: 0;
  width: calc(456 * var(--to-rem));
  height: calc(237 * var(--to-rem));
  /* data URI 内 fill は URL エンコード必須のため :root 変数を直接埋め込めない（色は --color-header-button-end / --color-header-accent に相当） */
  background-image:
    url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='237' viewBox='0 0 200 237'%3E%3Cpath d='M200 0L0 237H200V0Z' fill='rgba(255%2C158%2C0%2C0.6)'/%3E%3C/svg%3E"),
    url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='456' height='134' viewBox='0 0 456 134'%3E%3Cpath d='M456 0L0 134H456V0Z' fill='rgba(240%2C91%2C10%2C0.4)'/%3E%3C/svg%3E");
  background-position:
    right bottom,
    right bottom;
  background-size:
    calc(200 * var(--to-rem)) calc(237 * var(--to-rem)),
    calc(456 * var(--to-rem)) calc(134 * var(--to-rem));
  background-repeat: no-repeat, no-repeat;
  background-color: var(--color-header-button-end);
  background-blend-mode: multiply, multiply;
  pointer-events: none;
}
.p-footer__totop {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: calc(60 * var(--to-rem));
  height: calc(60 * var(--to-rem));
  margin: 0;
  border: 1px solid var(--color-white);
  border-radius: 50%;
  box-shadow: none;
  background-color: var(--color-header-accent-80);
  color: var(--color-white);
  text-decoration: none;
  transform: translate(-50%, -50%);
  transition:
    opacity 0.35s ease,
    filter var(--duration) ease,
    box-shadow var(--duration) ease;
}
@media (prefers-reduced-motion: reduce) {
  .p-footer__totop {
    transition-duration: 0.01ms;
  }
}
@media screen and (min-width: 768px) {
  .p-footer__totop {
    top: 0;
    right: calc(24 * var(--to-rem));
    left: auto;
    width: calc(72 * var(--to-rem));
    height: calc(72 * var(--to-rem));
    transform: translateY(-50%);
  }
}
/* JS: 追従中は fixed。フッター到達後は top をインラインで上書きし、最終位置で停止 */
.p-footer__totop--fixed {
  position: fixed;
  right: 0;
  left: auto;
  z-index: 100;
  transform: none;
  opacity: 1;
}
@media screen and (min-width: 768px) {
  .p-footer__totop--fixed {
    right: calc(70 * var(--to-rem));
    left: auto;
    transform: none;
  }
}
/* TOP ボタンが MV と重なる間だけ fixed 時フェードアウト（JS: .p-footer__totop--mv-hidden） */
.p-footer__totop--fixed.p-footer__totop--mv-hidden {
  opacity: 0;
  pointer-events: none;
}
@media (any-hover: hover) {
  .p-footer__totop:hover {
    box-shadow: 0 calc(4 * var(--to-rem)) calc(14 * var(--to-rem)) var(--color-shadow-soft-28);
    filter: brightness(1.08);
  }
}
.p-footer__totop:focus-visible {
  outline: 2px solid var(--color-white);
  outline-offset: calc(3 * var(--to-rem));
}
.p-footer__totop-icon {
  display: flex;
  margin-bottom: calc(2 * var(--to-rem));
}
.p-footer__totop-icon img,
.p-footer__totop-icon svg {
  display: block;
  width: calc(24 * var(--to-rem));
  height: auto;
}
.p-footer__totop-text {
  color: var(--color-white);
  font-family: var(--title-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-footer__totop-text {
    font-size: calc(19 * var(--to-rem));
  }
}
.p-footer__inner {
  position: relative;
  z-index: 1;
}
.p-footer__inner.l-inner {
  padding-inline: calc(16 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-footer__inner.l-inner {
    padding-inline: var(--padding-inner);
  }
}
/* SP: brand → office → nav → actions（ソース順）。md: 2×2 グリッドで従来の PC 配置 */
.p-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  margin-bottom: calc(32 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-footer__grid {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas: "brand nav" "office mid";
    gap: calc(40 * var(--to-rem));
    align-items: start;
    margin-bottom: calc(34 * var(--to-rem));
  }
}
@media screen and (min-width: 768px) {
  .p-footer__brand {
    grid-area: brand;
  }
  .p-footer__office {
    grid-area: office;
  }
  .p-footer__mid-secondary {
    grid-area: mid;
    justify-self: end;
  }
}
.p-footer__brand {
  display: flex;
  flex-direction: row;
  gap: calc(12 * var(--to-rem));
  align-items: center;
}
@media screen and (min-width: 768px) {
  .p-footer__brand {
    gap: calc(16 * var(--to-rem));
  }
}
.p-footer__logo img {
  display: block;
  width: calc(110 * var(--to-rem));
  height: calc(61 * var(--to-rem));
  aspect-ratio: 110/61;
}
.p-footer__catch {
  margin: 0;
  color: var(--color-white);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-footer__catch {
    margin-top: calc(20 * var(--to-rem));
  }
}
.p-footer__nav {
  margin-top: calc(32 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-footer__nav {
    display: flex;
    justify-content: flex-end;
    align-items: flex-start;
    grid-area: nav;
    width: 100%;
    min-width: 0;
    margin-top: calc(20 * var(--to-rem));
  }
}
.p-footer__nav-list {
  display: flex;
  flex-flow: column wrap;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}
@media screen and (min-width: 768px) {
  .p-footer__nav-list {
    flex: 1 1 auto;
    flex-flow: row wrap;
    gap: calc(16 * var(--to-rem));
    row-gap: calc(12 * var(--to-rem));
    justify-content: flex-end;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }
}
.p-footer__nav-item {
  margin-top: calc(16 * var(--to-rem));
  padding: calc(8 * var(--to-rem)) 0;
  border-bottom: 1px solid var(--color-white);
}
.p-footer__nav-item:first-child {
  margin-top: 0;
}
@media screen and (min-width: 768px) {
  .p-footer__nav-item {
    flex: 0 0 auto;
    min-width: 0;
    max-width: 100%;
    margin-top: 0;
    padding: 0;
    border-bottom: none;
  }
}
.p-footer__nav-item a {
  display: inline-block;
  max-width: 100%;
  color: var(--color-white);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  white-space: normal;
  overflow-wrap: break-word;
  text-decoration: none;
}
@media screen and (min-width: 768px) {
  .p-footer__nav-item a {
    white-space: nowrap;
  }
}
@media (any-hover: hover) {
  .p-footer__nav-item a:hover {
    text-decoration: underline;
  }
}
.p-footer__mid-secondary {
  display: flex;
  flex-direction: column;
  gap: calc(24 * var(--to-rem));
  width: 100%;
}
@media screen and (min-width: 768px) {
  .p-footer__mid-secondary {
    flex-shrink: 0;
    gap: calc(37 * var(--to-rem));
    align-items: flex-end;
    width: auto;
  }
}
.p-footer__office {
  display: flex;
  flex-direction: column;
  max-width: calc(360 * var(--to-rem));
  margin-top: calc(24 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-footer__office {
    gap: calc(16 * var(--to-rem));
    margin-top: 0;
  }
}
.p-footer__office-name {
  margin: 0;
  color: var(--color-white);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-footer__office-name br {
  display: none;
}
@media screen and (min-width: 768px) {
  .p-footer__office-name br {
    display: initial;
  }
}
.p-footer__address {
  margin: 0;
  margin-top: calc(8 * var(--to-rem));
  color: var(--color-white);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-footer__address {
    margin-top: 0;
  }
}
.p-footer__address br {
  display: none;
}
@media screen and (min-width: 768px) {
  .p-footer__address br {
    display: initial;
  }
}
.p-footer__tel-block {
  display: flex;
  flex-direction: column;
  gap: calc(2 * var(--to-rem));
}
.p-footer__hours {
  display: none;
  margin: 0;
  color: var(--color-white);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-footer__hours {
    display: block;
  }
}
.p-footer__tel {
  display: none;
  margin: 0;
}
@media screen and (min-width: 768px) {
  .p-footer__tel {
    display: block;
  }
}
.p-footer__tel a {
  color: var(--color-white);
  font-family: var(--title-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(40 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: normal;
  text-decoration: none;
}
.p-footer__actions {
  display: flex;
  flex-flow: column-reverse wrap;
  gap: calc(16 * var(--to-rem));
  margin-top: calc(32 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-footer__actions {
    flex-flow: row nowrap;
    justify-content: flex-end;
    margin-top: 0;
  }
}
.p-footer__cta {
  display: inline-flex;
  gap: calc(6 * var(--to-rem));
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: calc(23.5 * var(--to-rem)) calc(20 * var(--to-rem));
  border: 1px solid var(--color-white);
  border-radius: calc(100 * var(--to-rem));
  color: var(--color-white);
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: normal;
  white-space: nowrap;
  text-decoration: none;
  transition:
    filter var(--duration) ease,
    transform var(--duration) ease;
}
@media screen and (min-width: 768px) {
  .p-footer__cta {
    width: calc(226 * var(--to-rem));
    padding: calc(21.5 * var(--to-rem)) calc(20 * var(--to-rem));
  }
}
@media (any-hover: hover) {
  .p-footer__cta:hover {
    filter: brightness(1.08);
    transform: translateY(calc(-2 * var(--to-rem)));
  }
}
.p-footer__cta--consult {
  background: linear-gradient(94deg, var(--color-footer-cta-blue-start) 1.5%, var(--color-school-bg) 98.5%);
}
.p-footer__cta--contact {
  background: linear-gradient(94deg, var(--color-header-button-start) 1.5%, var(--color-header-button-end) 98.5%);
}
.p-footer__cta-icon {
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
}
.p-footer__cta-icon img,
.p-footer__cta-icon svg {
  display: block;
}
.p-footer__bottom {
  display: block;
}
.p-footer__copyright {
  margin: 0;
  color: var(--color-white);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(12 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-footer__copyright {
    font-size: calc(14 * var(--to-rem));
    text-align: start;
  }
}
.p-footer__meta {
  display: flex;
  flex-shrink: 0;
  flex-direction: column;
  gap: calc(20 * var(--to-rem));
  align-items: center;
}
@media screen and (min-width: 768px) {
  .p-footer__meta {
    gap: calc(37 * var(--to-rem));
    align-items: flex-end;
  }
}
.p-footer__privacy {
  color: var(--color-white);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  text-decoration: none;
}
@media (any-hover: hover) {
  .p-footer__privacy:hover {
    text-decoration: underline;
  }
}
.p-footer__social {
  display: flex;
  gap: calc(32 * var(--to-rem));
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-footer__social-link {
  display: flex;
  opacity: 1;
  line-height: 0;
  transition: opacity var(--duration) ease;
}
@media (any-hover: hover) {
  .p-footer__social-link:hover {
    opacity: 0.85;
  }
}
.p-footer__social-link:focus-visible {
  outline: 2px solid var(--color-white);
  outline-offset: calc(4 * var(--to-rem));
}
.p-footer__social-link img {
  display: block;
  width: calc(46 * var(--to-rem));
  height: calc(46 * var(--to-rem));
  object-fit: contain;
}
@media screen and (min-width: 768px) {
  .p-footer__social-link img {
    width: calc(30 * var(--to-rem));
    height: calc(30 * var(--to-rem));
  }
}
.p-form {
  --_form-color-text: var(--color-text);
  --_form-color-bg: var(--color-white);
  --_form-color-badge-text: var(--color-white);
  --_form-color-badge-bg: var(--color-orange);
  --_form-color-accent: var(--color-accent);
  --_form-color-border: var(--color-border);
  --_form-color-primary: var(--color-primary);
  max-width: calc(800 * var(--to-rem));
  margin-inline: auto;
}
.p-form > * {
  margin-block-start: calc(40 * var(--to-rem));
}
.p-form > *:nth-last-child(2) {
  margin-block-start: calc(20 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-form > * {
    margin-block-start: calc(48 * var(--to-rem));
  }
  .p-form > *:nth-last-child(2) {
    margin-block-start: calc(24 * var(--to-rem));
  }
}
.p-form__item {
  display: grid;
  gap: calc(8 * var(--to-rem));
}
.p-form__label {
  display: block;
  color: var(--_form-color-text);
  font-size: calc(16 * var(--to-rem));
  font-weight: var(--fw-bold);
}
.p-form__label--required {
  position: relative;
  padding-inline-end: calc(50 * var(--to-rem));
}
.p-form__label--required::after {
  content: "必須";
  position: absolute;
  top: 50%;
  right: 0;
  padding-block: calc(8 * var(--to-rem));
  padding-inline: calc(16 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--_form-color-badge-bg);
  color: var(--_form-color-badge-text);
  font-size: calc(12 * var(--to-rem));
  font-weight: var(--fw-medium);
  line-height: 1;
  translate: 0 -50%;
}
.p-form__input,
.p-form__select,
.p-form__textarea {
  width: 100%;
  padding: calc(14 * var(--to-rem)) calc(16 * var(--to-rem));
  border: 1px solid var(--_form-color-border);
  border-radius: 8px;
  background-color: var(--_form-color-bg);
  color: var(--_form-color-text);
  font-size: calc(16 * var(--to-rem));
  line-height: 1.5;
  transition:
    border-color 0.3s ease,
    box-shadow 0.3s ease;
}
@media screen and (min-width: 768px) {
  .p-form__input,
  .p-form__select,
  .p-form__textarea {
    padding: calc(16 * var(--to-rem)) calc(20 * var(--to-rem));
  }
}
.p-form__input::placeholder,
.p-form__select::placeholder,
.p-form__textarea::placeholder {
  color: oklch(from var(--_form-color-text) l c h/50%);
}
.p-form__input:focus,
.p-form__select:focus,
.p-form__textarea:focus {
  border-color: var(--_form-color-accent);
  box-shadow: 0 0 0 3px oklch(from var(--_form-color-accent) l c h/10%);
  outline: none;
}
.p-form__input:hover:not(:focus),
.p-form__select:hover:not(:focus),
.p-form__textarea:hover:not(:focus) {
  border-color: var(--_form-color-accent);
  opacity: 0.7;
}
.p-form__input.is-error,
.p-form__select.is-error,
.p-form__textarea.is-error {
  border-color: var(--_form-color-badge-bg);
}
.p-form__select {
  position: relative;
  padding-inline-end: calc(48 * var(--to-rem));
  cursor: pointer;
  appearance: none;
}
.p-form__select-wrap {
  position: relative;
}
.p-form__select-wrap::after {
  content: "";
  position: absolute;
  top: 50%;
  right: calc(16 * var(--to-rem));
  clip-path: var(--clip-triangle-bottom);
  width: calc(12 * var(--to-rem));
  height: calc(8 * var(--to-rem));
  border: none;
  background-color: var(--_form-color-primary);
  pointer-events: none;
  translate: 0 -50%;
}
.p-form__textarea {
  min-height: calc(160 * var(--to-rem));
}
.p-form__radio-group {
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-form__radio-group {
    flex-flow: row wrap;
    gap: calc(32 * var(--to-rem)) calc(40 * var(--to-rem));
  }
}
.p-form__radio {
  display: flex;
  flex-wrap: wrap;
  row-gap: calc(8 * var(--to-rem));
  align-items: center;
  cursor: pointer;
}
.p-form__radio input[type="radio"] {
  position: relative;
  width: calc(20 * var(--to-rem));
  height: calc(20 * var(--to-rem));
  margin: 0;
  margin-inline-end: calc(16 * var(--to-rem));
  border: 2px solid var(--_form-color-border);
  border-radius: 50%;
  cursor: pointer;
  appearance: none;
  transition: border-color 0.2s ease;
}
.p-form__radio input[type="radio"]:checked {
  border-color: var(--_form-color-accent);
  background-color: var(--_form-color-accent);
}
.p-form__radio input[type="radio"]:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: calc(8 * var(--to-rem));
  height: calc(8 * var(--to-rem));
  border-radius: 50%;
  background-color: var(--_form-color-bg);
  translate: -50% -50%;
}
.p-form__radio input[type="radio"]:hover:not(:checked) {
  border-color: var(--_form-color-accent);
  opacity: 0.5;
}
.p-form__radio input[type="radio"]:focus {
  box-shadow: 0 0 0 3px oklch(from var(--_form-color-accent) l c h/10%);
  outline: none;
}
.p-form__radio-text {
  color: var(--_form-color-text);
  font-size: calc(16 * var(--to-rem));
  user-select: none;
}
.p-form__checkbox {
  display: flex;
  align-items: center;
  cursor: pointer;
}
.p-form__checkbox input[type="checkbox"] {
  position: relative;
  width: calc(20 * var(--to-rem));
  height: calc(20 * var(--to-rem));
  margin: 0;
  margin-inline-end: calc(8 * var(--to-rem));
  border: 2px solid var(--_form-color-border);
  border-radius: 4px;
  cursor: pointer;
  appearance: none;
  transition: border-color 0.2s ease;
}
.p-form__checkbox input[type="checkbox"]:checked {
  border-color: var(--_form-color-accent);
  background-color: var(--_form-color-accent);
}
.p-form__checkbox input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  top: calc(2 * var(--to-rem));
  left: calc(5 * var(--to-rem));
  width: calc(6 * var(--to-rem));
  height: calc(10 * var(--to-rem));
  border: 2px solid var(--_form-color-bg);
  border-top: none;
  border-left: none;
  rotate: 45deg;
}
.p-form__checkbox input[type="checkbox"]:hover:not(:checked) {
  border-color: var(--_form-color-accent);
  opacity: 0.5;
}
.p-form__checkbox input[type="checkbox"]:focus {
  box-shadow: 0 0 0 3px oklch(from var(--_form-color-accent) l c h/10%);
  outline: none;
}
.p-form__checkbox-text {
  color: var(--_form-color-text);
  font-size: calc(16 * var(--to-rem));
  user-select: none;
}
.p-form__link {
  color: var(--_form-color-accent);
  text-decoration: underline;
  transition: opacity 0.2s ease;
}
@media (any-hover: hover) {
  .p-form__link:hover {
    opacity: 0.8;
  }
}
.p-form__button-wrap {
  text-align: center;
}
.p-form__error {
  display: block;
  color: var(--_form-color-badge-bg);
  font-size: calc(14 * var(--to-rem));
}
.p-form__success {
  padding: calc(24 * var(--to-rem));
  border: 1px solid var(--_form-color-accent);
  border-radius: 8px;
  background-color: var(--color-accent-soft-bg);
  color: var(--_form-color-accent);
  font-size: calc(16 * var(--to-rem));
  text-align: center;
}
.p-form__radio .wpcf7-list-item-label,
.p-form__radio .wpcf7-li label {
  color: var(--_form-color-text);
  font-size: calc(16 * var(--to-rem));
  line-height: 1.5;
  user-select: none;
}
.p-form__checkbox .wpcf7-form-control-wrap,
.p-form__checkbox .wpcf7-form-control {
  display: flex;
  align-items: center;
}
.p-form__radio .wpcf7-list-item label {
  display: flex;
  align-items: center;
}
.p-form__item .wpcf7-list-item {
  display: flex;
  align-items: center;
}
.p-header {
  background-color: var(--color-white);
}
/* SP: 固定ヘッダー高さ 60px（.l-header と同一要素） */
@media screen and (width <= 767px) {
  .p-header.l-header {
    height: 60px;
    box-sizing: border-box;
  }
}
.p-header__top {
  padding: calc(12 * var(--to-rem)) calc(16 * var(--to-rem));
}
@media screen and (width <= 767px) {
  .p-header__top {
    display: flex;
    align-items: center;
    box-sizing: border-box;
    height: 100%;
    padding: 0;
    padding-left: 20px;
    padding-right: 60px;
  }
}
@media screen and (min-width: 768px) {
  .p-header__top {
    padding: clamp(14 * var(--to-rem), 14 * var(--to-rem) + (100vw - 768px) * 3 * var(--to-rem) / 256, 17 * var(--to-rem)) clamp(28px, 28px + (100vw - 768px) * 51 / 256, 79px) 10px;
  }
}
.p-header__top-inner {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  gap: calc(12 * var(--to-rem));
  max-width: calc(1320 * var(--to-rem));
}
@media screen and (width <= 767px) {
  .p-header__top-inner {
    flex-wrap: nowrap;
  }
}
@media screen and (min-width: 768px) {
  .p-header__top-inner {
    gap: clamp(16 * var(--to-rem), 16 * var(--to-rem) + (100vw - 768px) * 8 * var(--to-rem) / 256, 24 * var(--to-rem));
    justify-content: space-between;
    align-items: center;
    width: 100%;
    margin-inline: auto;
    padding-block: calc(17 * var(--to-rem));
    padding-inline: calc(20 * var(--to-rem));
  }
}
.p-header__brand {
  display: flex;
  gap: calc(12 * var(--to-rem));
  align-items: center;
}
@media screen and (min-width: 768px) {
  .p-header__brand {
    gap: calc(33 * var(--to-rem));
  }
}
.p-header__logo a {
  display: flex;
}
.p-header__logo img {
  width: calc(72 * var(--to-rem));
  height: calc(40 * var(--to-rem));
  aspect-ratio: 9/5;
}
@media screen and (min-width: 768px) {
  .p-header__logo img {
    width: clamp(88px, 88px + (100vw - 768px) * 22 / 256, 110px);
    height: auto;
    aspect-ratio: auto;
  }
}
.p-header__catch {
  color: var(--color-header-accent);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(12 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-header__catch {
    font-size: clamp(12 * var(--to-rem), 12 * var(--to-rem) + (100vw - 768px) * 2 * var(--to-rem) / 256, 14 * var(--to-rem));
  }
}
.p-header__contact {
  display: flex;
  gap: calc(12 * var(--to-rem));
  align-items: center;
}
@media screen and (min-width: 768px) {
  .p-header__contact {
    gap: calc(24 * var(--to-rem));
  }
}
.p-header__contact-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  align-self: stretch;
}
.p-header__time,
.p-header__tel {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  margin: 0;
}
.p-header__time {
  margin-bottom: calc(-5 * var(--to-rem));
  transform: translateY(calc(5 * var(--to-rem)));
  color: var(--color-header-accent);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-regular);
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-header__time {
    font-size: clamp(12 * var(--to-rem), 12 * var(--to-rem) + (100vw - 768px) * 2 * var(--to-rem) / 256, 14 * var(--to-rem));
  }
}
.p-header__tel a {
  color: var(--color-header-accent);
  font-family: var(--title-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(40 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-header__tel a {
    font-size: clamp(28px, 28px + (100vw - 768px) * 12 / 256, 40px);
  }
}
.p-header__contact-button {
  display: inline-flex;
  gap: calc(6 * var(--to-rem));
  justify-content: center;
  align-items: center;
  height: calc(66 * var(--to-rem));
  padding: 0 calc(20 * var(--to-rem));
  border-radius: calc(100 * var(--to-rem));
  background: linear-gradient(94deg, var(--color-header-button-start) 1.5%, var(--color-header-button-end) 98.5%);
  color: var(--color-white);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-decoration: none;
  transition:
    filter var(--duration) ease,
    transform var(--duration) ease;
}
@media screen and (min-width: 768px) {
  .p-header__contact-button {
    height: clamp(54px, 54px + (100vw - 768px) * 12 / 256, 66px);
    padding-inline: clamp(14px, 14px + (100vw - 768px) * 6 / 256, 20px);
    font-size: clamp(14 * var(--to-rem), 14 * var(--to-rem) + (100vw - 768px) * 2 * var(--to-rem) / 256, 16 * var(--to-rem));
  }
}
@media (any-hover: hover) {
  .p-header__contact-button:hover {
    filter: brightness(1.08);
    transform: translateY(calc(-2 * var(--to-rem)));
  }
}
.p-header__contact-icon {
  width: calc(16 * var(--to-rem));
  height: calc(16 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-header__contact-icon {
    width: clamp(14 * var(--to-rem), 14 * var(--to-rem) + (100vw - 768px) * 2 * var(--to-rem) / 256, 16 * var(--to-rem));
    height: clamp(14 * var(--to-rem), 14 * var(--to-rem) + (100vw - 768px) * 2 * var(--to-rem) / 256, 16 * var(--to-rem));
  }
}
.p-header__bottom {
  display: none;
  justify-content: center;
  align-items: center;
  height: calc(60 * var(--to-rem));
  background-color: var(--color-header-nav-bg);
}
@media screen and (min-width: 768px) {
  .p-header__bottom {
    display: flex;
    box-sizing: border-box;
    height: auto;
    min-height: calc(60 * var(--to-rem));
    padding-block: calc(8 * var(--to-rem));
  }
}
@media screen and (min-width: 1024px) {
  .p-header__bottom {
    height: clamp(52px, 52px + (100vw - 768px) * 8 / 256, 60px);
    min-height: 0;
    padding-block: 0;
  }
}
.p-header__nav-list {
  display: flex;
  flex-wrap: nowrap;
  gap: calc(48 * var(--to-rem));
  /* 768〜1023px：2段折り返し可 */
}
@media screen and (min-width: 768px) {
  .p-header__nav-list {
    flex-wrap: wrap;
    justify-content: center;
    row-gap: calc(4 * var(--to-rem));
    column-gap: calc(48 * var(--to-rem));
    max-width: 100%;
    padding-inline: calc(16 * var(--to-rem));
  }
}
@media screen and (min-width: 1024px) {
  .p-header__nav-list {
    flex-wrap: nowrap;
    justify-content: flex-start;
    row-gap: 0;
    gap: clamp(28px, 28px + (100vw - 1024px) * 20 / 576, 48px);
    padding-inline: 0;
  }
}
@media screen and (min-width: 1440px) {
  .p-header__nav-list {
    gap: calc(48 * var(--to-rem));
  }
}
.p-header__nav-item a {
  position: relative;
  display: inline-block;
  color: var(--color-header-accent);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-decoration: none;
  transition: color var(--duration) ease;
}
.p-header__nav-item a::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  width: calc(20 * var(--to-rem));
  height: calc(2 * var(--to-rem));
  margin-top: calc(4 * var(--to-rem));
  background-color: var(--color-header-button-end);
  opacity: 0;
  transform: translateX(-50%);
  transition: opacity var(--duration) ease;
}
@media (prefers-reduced-motion: reduce) {
  .p-header__nav-item a {
    transition-duration: 0.01ms;
  }
  .p-header__nav-item a::after {
    transition-duration: 0.01ms;
  }
}
@media screen and (min-width: 768px) {
  .p-header__nav-item a {
    box-sizing: border-box;
    /* p-header__bottom 相当の行内で押し・ホバー範囲を確保（マージンは当たり判定に含まれない） */
    padding: calc(12.5 * var(--to-rem)) 0 calc(21.5 * var(--to-rem));
    white-space: nowrap;
    font-size: calc(16 * var(--to-rem));
    /* パディングで top:100% が下端に寄るため、1 行テキスト直下＋従来の 4px に合わせる */
  }
  .p-header__nav-item a::after {
    top: calc(12.5 * var(--to-rem) + 1lh + 4 * var(--to-rem));
    margin-top: 0;
  }
}
@media screen and (min-width: 1024px) {
  .p-header__nav-item a {
    font-size: clamp(8 * var(--to-rem), 8 * var(--to-rem) + (100vw - 1024px) * 8 * var(--to-rem) / 416, 16 * var(--to-rem));
  }
}
@media screen and (min-width: 1440px) {
  .p-header__nav-item a {
    font-size: calc(16 * var(--to-rem));
  }
}
@media (any-hover: hover) {
  .p-header__nav-item a:hover,
  .p-header__drawer-item a:hover {
    color: var(--color-header-button-end);
  }
  .p-header__nav-item a:hover::after,
  .p-header__drawer-item a:hover::after {
    opacity: 1;
  }
}
/* 現在ページ：ホバー時と同じ色・下線を常時表示（aria-current はヘッダーで付与） */
.p-header__nav-item a[aria-current="page"],
.p-header__drawer-item a[aria-current="page"] {
  color: var(--color-header-button-end);
}
.p-header__nav-item a[aria-current="page"]::after,
.p-header__drawer-item a[aria-current="page"]::after {
  opacity: 1;
}
.p-header__nav-item a:focus-visible,
.p-header__drawer-item a:focus-visible {
  color: var(--color-header-button-end);
  outline: 2px solid var(--color-header-button-end);
  outline-offset: calc(4 * var(--to-rem));
}
.p-header__nav-item a:focus-visible::after,
.p-header__drawer-item a:focus-visible::after {
  opacity: 1;
}
@media screen and (width <= 767px) {
  .p-header__brand {
    flex: 1 1 auto;
    min-width: 0;
  }
  .p-header__time,
  .p-header__tel,
  .p-header__contact-button {
    display: none;
  }
}
.p-header__hamburger {
  display: flex;
  flex-direction: column;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  gap: 5px;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background-color: var(--color-header-button-end);
  cursor: pointer;
  transition: filter var(--duration) ease;
}
@media screen and (width <= 767px) {
  .p-header__hamburger {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    width: 60px;
    height: 60px;
  }
}
@media screen and (min-width: 768px) {
  .p-header__hamburger {
    display: none;
  }
}
@media (any-hover: hover) {
  .p-header__hamburger:hover {
    filter: brightness(1.06);
  }
}
.p-header__hamburger-line {
  display: block;
  width: 24px;
  height: 2px;
  border-radius: 999px;
  background-color: var(--color-white);
  transition:
    transform var(--duration) ease,
    opacity var(--duration) ease;
}
.p-header__hamburger.is-open .p-header__hamburger-line:nth-child(1) {
  transform: translateY(7px) rotate(45deg);
}
.p-header__hamburger.is-open .p-header__hamburger-line:nth-child(2) {
  opacity: 0;
}
.p-header__hamburger.is-open .p-header__hamburger-line:nth-child(3) {
  transform: translateY(-7px) rotate(-45deg);
}
.p-header__drawer.l-drawer {
  position: fixed;
  top: var(--header-height);
  right: 0;
  bottom: 0;
  left: 0;
  z-index: var(--z-index-drawer);
  display: none;
  overflow-y: auto;
  background-color: var(--color-white);
  box-shadow: 0 4px 24px oklch(from var(--color-black) l c h/12%);
}
@media screen and (min-width: 768px) {
  .p-header__drawer.l-drawer {
    display: none !important;
  }
}
.p-header__drawer-nav {
  padding: calc(24 * var(--to-rem)) calc(20 * var(--to-rem)) calc(40 * var(--to-rem));
}
.p-header__drawer-list {
  text-align: center;
  display: grid;
  gap: calc(4 * var(--to-rem));
}
.p-header__drawer-item a {
  position: relative;
  display: inline-block;
  box-sizing: border-box;
  max-width: 100%;
  /* p-header__nav-item（md）と同じ押し・ホバー範囲＆下線 */
  padding: calc(12.5 * var(--to-rem)) 0 calc(21.5 * var(--to-rem));
  color: var(--color-header-accent);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-decoration: none;
  transition: color var(--duration) ease;
}
.p-header__drawer-item a::after {
  content: "";
  position: absolute;
  top: calc(12.5 * var(--to-rem) + 1lh + 4 * var(--to-rem));
  left: 50%;
  width: calc(20 * var(--to-rem));
  height: calc(2 * var(--to-rem));
  background-color: var(--color-header-button-end);
  opacity: 0;
  transform: translateX(-50%);
  transition: opacity var(--duration) ease;
}
@media (prefers-reduced-motion: reduce) {
  .p-header__drawer-item a {
    transition-duration: 0.01ms;
  }
  .p-header__drawer-item a::after {
    transition-duration: 0.01ms;
  }
}
.p-mv-banner {
  padding-block-start: calc(50 * var(--to-rem));
  padding-inline: calc(16 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-mv-banner {
    padding-block-start: calc(72 * var(--to-rem));
    padding-inline: calc(80 * var(--to-rem));
  }
}
.p-mv-banner__link {
  position: relative;
  display: block;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 400/192;
  border-radius: calc(8 * var(--to-rem));
}
.p-mv-banner__link::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  background: var(--color-white-40);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--duration) ease;
}
@media screen and (min-width: 768px) {
  .p-mv-banner__link {
    width: calc(720 * var(--to-rem));
    max-width: 100%;
    margin-inline: auto;
    aspect-ratio: 720/200;
    border-radius: calc(10 * var(--to-rem));
  }
}
.p-mv-banner__link picture {
  position: relative;
  z-index: 0;
  display: block;
  width: 100%;
  height: 100%;
}
.p-mv-banner__link picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-mv-banner__detail {
  position: absolute;
  right: calc(16 * var(--to-rem));
  bottom: calc(14 * var(--to-rem));
  z-index: 2;
  display: inline-flex;
  gap: calc(4 * var(--to-rem));
  align-items: center;
  text-decoration: none;
  color: var(--color-mv-banner-detail);
  transition: transform var(--duration) ease;
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: var(--p-mv-banner-detail-font-size);
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-mv-banner__detail {
    right: calc(22 * var(--to-rem));
    bottom: calc(16 * var(--to-rem));
    color: var(--color-white);
    font-size: calc(14 * var(--to-rem));
  }
}
.p-mv-banner__detail svg {
  flex-shrink: 0;
  width: var(--p-mv-banner-detail-icon-size);
  height: var(--p-mv-banner-detail-icon-size);
  color: var(--color-mv-banner-detail);
}
@media screen and (min-width: 768px) {
  .p-mv-banner__detail svg {
    width: calc(16 * var(--to-rem));
    height: calc(16 * var(--to-rem));
    color: var(--color-white);
  }
}
@media (any-hover: hover) {
  .p-mv-banner__link:has(.p-mv-banner__detail:hover)::after {
    opacity: 1;
  }
  .p-mv-banner__detail:hover {
    transform: translateX(calc(4 * var(--to-rem)));
  }
}
.p-mv-banner__detail:focus-visible {
  outline: 2px solid var(--color-header-button-end);
  outline-offset: calc(4 * var(--to-rem));
  transform: translateX(calc(4 * var(--to-rem)));
}
.p-mv-banner__link:has(.p-mv-banner__detail:focus-visible)::after {
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  .p-mv-banner__link::after,
  .p-mv-banner__detail {
    transition-duration: 0.01ms;
  }
  .p-mv-banner__detail:hover,
  .p-mv-banner__detail:focus-visible {
    transform: none;
  }
}
/* 近くの教室を探す（フロント MV 直下セクション） */
.p-top__classrooms,
.p-top__classrooms * {
  box-sizing: border-box;
}
.p-top__classrooms h2,
.p-top__classrooms h3,
.p-top__classrooms p,
.p-top__classrooms figure {
  margin: 0;
}
.p-top__classrooms ul {
  margin: 0;
  padding: 0;
}
.p-top__classrooms img {
  display: block;
  height: auto;
  max-width: 100%;
}
.p-top__classrooms a {
  text-decoration: none;
}
.p-top__classrooms {
  width: min(100% - 40 * var(--to-rem), 1280 * var(--to-rem));
  margin-block-start: calc(75 * var(--to-rem));
  margin-inline: auto;
  padding-top: calc(53 * var(--to-rem));
  padding-bottom: calc(54 * var(--to-rem));
  border-radius: calc(20 * var(--to-rem));
  background-image: linear-gradient(var(--color-school-grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--color-school-grid-line) 1px, transparent 1px);
  background-position: center;
  background-size: calc(90 * var(--to-rem)) calc(90 * var(--to-rem));
  background-color: var(--color-header-button-end);
  font-family: var(--base-font-family);
}
@media screen and (min-width: 768px) {
  .p-top__classrooms {
    background-position: 0 0;
    background-size: calc(40 * var(--to-rem)) calc(40 * var(--to-rem));
    padding-top: calc(55 * var(--to-rem));
    padding-bottom: calc(67 * var(--to-rem));
  }
}
.p-top__classrooms-inner {
  position: relative;
  max-width: 1200px;
  margin: 0 auto;
  /* バッジ＋吹き出し分をパディング内に確保（負の top で外に出さない） */
  padding-top: calc(120 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-top__classrooms-inner {
    padding-top: calc(160 * var(--to-rem));
  }
}
.p-top__classrooms-badge {
  position: absolute;
  top: 0;
  left: 50%;
  box-sizing: border-box;
  width: calc(144 * var(--to-rem));
  padding: calc(8 * var(--to-rem)) calc(20 * var(--to-rem));
  border-radius: calc(100 * var(--to-rem));
  background: var(--color-white);
  color: var(--color-header-button-end);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: center;
  transform: translateX(-50%);
}
@media screen and (min-width: 768px) {
  .p-top__classrooms-badge {
    width: auto;
    padding: calc(10 * var(--to-rem)) calc(40 * var(--to-rem));
    font-size: calc(32 * var(--to-rem));
  }
}
.p-top__classrooms-badge-text {
  color: inherit;
  font-family: inherit;
  font-feature-settings: inherit;
  font-size: inherit;
  font-style: inherit;
  font-weight: inherit;
  line-height: inherit;
}
.p-top__classrooms-badge::after {
  content: "";
  position: absolute;
  bottom: calc(-9 * var(--to-rem));
  left: 50%;
  width: 0;
  height: 0;
  border-top: calc(10 * var(--to-rem)) solid var(--color-white);
  border-right: calc(10 * var(--to-rem)) solid transparent;
  border-left: calc(10 * var(--to-rem)) solid transparent;
  transform: translateX(-50%);
}
.p-top__classrooms-cards {
  display: flex;
  flex-wrap: nowrap;
  gap: calc(47 * var(--to-rem));
  justify-content: center;
  margin-top: 0;
  padding-top: calc(85 * var(--to-rem));
  list-style: none;
}
.p-top__classrooms-button {
  position: relative;
  z-index: 1;
  margin: calc(43 * var(--to-rem)) auto 0;
  border: 1px solid var(--color-white);
}
@media screen and (min-width: 768px) {
  .p-top__classrooms-button {
    margin-top: calc(42 * var(--to-rem));
  }
}
.p-top__classrooms-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  overflow: visible;
  width: clamp(260px, (100% - 94px) / 3, 330px);
  border-radius: calc(17 * var(--to-rem)) calc(17 * var(--to-rem)) 0 0;
  box-shadow: none;
  background: var(--color-header-accent);
  text-align: center;
}
.p-top__classrooms-card-header {
  position: relative;
  width: 100%;
  height: calc(40 * var(--to-rem));
  background: transparent;
}
.p-top__classrooms-icon-wrap {
  position: absolute;
  top: calc(-10 * var(--to-rem));
  left: 50%;
  z-index: 1;
  max-width: calc(100% - 20px);
  padding: calc(15 * var(--to-rem)) max(28px, min(6vw, 72px)) calc(30 * var(--to-rem));
  border-radius: calc(18 * var(--to-rem));
  background: var(--color-header-accent);
  transform: translate(-50%, -50%);
}
.p-top__classrooms-icon-image {
  display: block;
  flex-shrink: 0;
  width: calc(24 * var(--to-rem));
  height: calc(24 * var(--to-rem));
  margin-inline: auto;
  object-fit: contain;
}
.p-top__classrooms-media {
  display: flex;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  width: calc(100% - 32px);
  max-width: 100%;
  margin: 0 auto;
  padding-top: calc(16 * var(--to-rem));
  border-radius: calc(10 * var(--to-rem));
}
.p-top__classrooms-image {
  display: block;
  width: 100%;
  max-width: 100%;
  aspect-ratio: 300/200;
  margin-inline: auto;
  border-radius: calc(10 * var(--to-rem));
  object-fit: cover;
  object-position: center;
}
.p-top__classrooms-content {
  width: 100%;
  padding: calc(16 * var(--to-rem)) calc(15 * var(--to-rem)) calc(20 * var(--to-rem));
}
.p-top__classrooms-title {
  position: relative;
  z-index: 2;
  margin-top: 0;
  margin-bottom: calc(10 * var(--to-rem));
  padding-top: calc(16 * var(--to-rem));
  color: var(--color-white);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: center;
}
.p-top__classrooms-address {
  margin-bottom: calc(10 * var(--to-rem));
  color: var(--color-white);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-regular);
  line-height: normal;
  text-align: left;
}
.p-top__classrooms-btn {
  position: relative;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  padding: calc(11 * var(--to-rem)) calc(13 * var(--to-rem) + 16 * var(--to-rem) + 6 * var(--to-rem));
  border: 1px solid var(--color-white);
  border-radius: calc(20 * var(--to-rem));
  background: var(--color-white-85);
  color: var(--color-header-accent);
  font-family: var(--base-font-family);
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-regular);
  line-height: normal;
  text-align: center;
  transition:
    background var(--duration) ease,
    color var(--duration) ease,
    filter var(--duration) ease,
    transform var(--duration) ease;
}
@media (any-hover: hover) {
  .p-top__classrooms-btn:hover {
    background: var(--color-white-full);
    filter: brightness(1.05);
    transform: translateY(calc(-2 * var(--to-rem)));
  }
}
.p-top__classrooms-btn-arrow {
  position: absolute;
  top: 50%;
  right: calc(13 * var(--to-rem));
  flex-shrink: 0;
  font-weight: var(--fw-bold);
  transform: translateY(-50%);
}
.p-top__classrooms-btn-arrow img {
  display: block;
}
@media screen and (width <= 1200px) {
  .p-top__classrooms-cards {
    gap: calc(32 * var(--to-rem));
  }
  .p-top__classrooms-card {
    width: clamp(240px, (100% - 64px) / 3, 330px);
  }
}
@media screen and (width <= 1080px) {
  .p-top__classrooms-cards {
    gap: calc(24 * var(--to-rem));
  }
  .p-top__classrooms-card {
    width: clamp(220px, (100% - 48px) / 3, 330px);
  }
}
/* 910px 以下は SP と同じ縦並び（3 列は 911px 以上のみ）
   wrap + max-width 330px だと「2+1」になり得るため column で 1 列に固定 */
@media screen and (width <= 910px) {
  .p-top__classrooms-cards {
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: center;
    gap: calc(60 * var(--to-rem));
    padding-top: calc(70 * var(--to-rem));
  }
  .p-top__classrooms-card {
    flex-shrink: 0;
    width: 100%;
    max-width: 330px;
    margin: 0 auto;
  }
  .p-top__classrooms-icon-wrap {
    width: 167px;
  }
}
.p-top__pickup-news {
  display: grid;
  justify-items: center;
  padding-block: calc(61 * var(--to-rem)) calc(134 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-top__pickup-news {
    padding-block: calc(65 * var(--to-rem)) calc(235 * var(--to-rem));
  }
}
.p-top__pickup-news-inner {
  width: 100%;
  max-width: calc(680 * var(--to-rem));
  margin-top: calc(42 * var(--to-rem));
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-top__pickup-news-inner {
    margin-top: calc(70 * var(--to-rem));
  }
}
.p-top__pickup-news-empty {
  margin: 0;
  color: var(--color-school-badge);
  text-align: center;
  font-family: var(--base-font-family);
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-regular);
  line-height: normal;
}
.p-top__pickup-news-button {
  margin-top: calc(34 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-top__pickup-news-button {
    margin-top: calc(57 * var(--to-rem));
  }
}
.p-top__pickup-news-list {
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--to-rem));
  margin: 0;
  padding: 0;
  list-style: none;
}
@media screen and (min-width: 768px) {
  .p-top__pickup-news-list {
    gap: calc(32 * var(--to-rem));
  }
}
.p-top__pickup-news-link {
  display: flex;
  flex-direction: column;
  gap: calc(10 * var(--to-rem));
  padding-bottom: calc(12 * var(--to-rem));
  border-bottom: 1px dashed var(--color-header-button-end);
  color: inherit;
  text-decoration: none;
  transition: opacity var(--duration) ease;
}
@media (any-hover: hover) {
  .p-top__pickup-news-link:hover {
    opacity: 0.7;
  }
}
.p-top__pickup-news-link:focus-visible {
  outline: 2px solid var(--color-header-accent);
  outline-offset: calc(4 * var(--to-rem));
}
.p-top__pickup-news-meta {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
  align-items: center;
}
.p-top__pickup-news-date {
  color: var(--color-header-accent);
  font-family: var(--title-font-family);
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: normal;
}
.p-top__pickup-news-category {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 1px calc(8 * var(--to-rem));
  border-radius: calc(100 * var(--to-rem));
  background: var(--color-pickup-news-badge-bg);
  color: var(--color-school-badge);
  font-family: var(--base-font-family);
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-regular);
  line-height: normal;
  text-align: center;
}
.p-top__pickup-news-title {
  display: -webkit-box;
  overflow: hidden;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  line-clamp: 1;
  margin: 0;
  color: var(--color-school-badge);
  font-family: var(--base-font-family);
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-top__pickup-news-title {
    font-size: calc(18 * var(--to-rem));
  }
}
.p-mv {
  padding: 0;
  height: 660px;
  box-sizing: border-box;
}
@media screen and (min-width: 768px) {
  .p-mv {
    height: auto;
    padding-block-start: calc(36 * var(--to-rem));
    padding-inline: calc(80 * var(--to-rem));
  }
}
/* SP: セクション高さ 660px（Figma） — PC は @include mq(md) で従来どおり */
.p-mv__visual {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) auto;
  height: 100%;
  min-height: 0;
  overflow: visible;
  border-radius: 0;
}
@media screen and (min-width: 768px) {
  .p-mv__visual {
    display: block;
    height: auto;
    min-height: 0;
    overflow: hidden;
    border-radius: calc(20 * var(--to-rem));
  }
}
.p-mv__visual > picture {
  display: contents;
}
.p-mv__visual > picture > img {
  display: block;
  grid-area: 1/1/-1/-1;
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
}
@media screen and (min-width: 768px) {
  .p-mv__visual > picture > img {
    grid-area: auto;
    height: calc(720 * var(--to-rem));
    min-height: 0;
  }
}
.p-mv__overlay {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(180deg, var(--color-overlay-black-0) 0%, var(--color-mv-overlay-32) 69.71%, var(--color-overlay-black-80) 100%);
  background-blend-mode: multiply;
  mix-blend-mode: multiply;
}
.p-mv__content {
  position: relative;
  grid-row: 1;
  grid-column: 1;
  z-index: 1;
  align-self: end;
  justify-self: center;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: min(100%, 408 * var(--to-rem));
  padding-bottom: 0;
  color: var(--color-white);
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: calc(16 * var(--to-rem));
  overflow-wrap: break-word;
}
@media screen and (max-width: 375px) {
  .p-mv__content {
    padding-inline: calc(10 * var(--to-rem));
  }
}
@media screen and (min-width: 768px) {
  .p-mv__content {
    display: block;
    position: absolute;
    inset-inline: unset;
    left: calc(72 * var(--to-rem));
    right: calc(72 * var(--to-rem));
    bottom: calc(140 * var(--to-rem));
    width: auto;
    align-self: auto;
    justify-self: auto;
    max-width: none;
    padding-inline: 0;
    padding-bottom: 0;
    text-align: left;
  }
}
@media screen and (min-width: 768px) {
  .p-mv__text-br {
    display: none;
  }
}
.p-mv__news {
  --mv-news-curve-radius: 20px;
  text-decoration: none;
  color: inherit;
  position: relative;
  display: grid;
  grid-template-rows: auto auto;
  align-content: start;
  align-items: start;
  grid-row: 2;
  grid-column: 1;
  z-index: 2;
  gap: 0;
  justify-self: center;
  width: min(400 * var(--to-rem), 100% - 40px);
  max-width: calc(400 * var(--to-rem));
  min-width: 0;
  min-height: calc(110 * var(--to-rem));
  margin-inline: auto;
  padding: 23px 16px 0;
  border-radius: 20px 20px 0 0;
  background-color: var(--color-white);
  overflow: visible;
  container-type: size;
  transform: translateY(40%);
}
@media screen and (min-width: 768px) {
  .p-mv__news {
    container-type: normal;
    --mv-news-curve-radius: calc(20 * var(--to-rem));
    transform: none;
    position: absolute;
    right: 0;
    bottom: 0;
    grid-row: auto;
    grid-column: auto;
    justify-self: auto;
    width: auto;
    gap: calc(4 * var(--to-rem));
    max-width: calc(335 * var(--to-rem));
    min-width: calc(300 * var(--to-rem));
    min-height: 0;
    margin-inline: 0;
    padding: calc(18 * var(--to-rem)) calc(22 * var(--to-rem));
    border-radius: 0;
    border-top-left-radius: var(--mv-news-curve-radius);
  }
}
.p-mv__news-date,
.p-mv__news-text {
  transition: opacity var(--duration) ease;
}
@media (any-hover: hover) {
  .p-mv__news:hover .p-mv__news-date,
  .p-mv__news:hover .p-mv__news-text {
    opacity: 0.7;
  }
}
.p-mv__news:focus-visible {
  outline: 2px solid var(--color-header-accent);
  outline-offset: calc(4 * var(--to-rem));
}
.p-mv__news:focus-visible .p-mv__news-date,
.p-mv__news:focus-visible .p-mv__news-text {
  opacity: 0.7;
}
/* SP: 左下 = ::after、右下 = ::before（::after の左右反転）
   親の translateY(35%) と相殺 */
.p-mv__news::before,
.p-mv__news::after {
  content: "";
  position: absolute;
  width: var(--mv-news-curve-radius);
  height: var(--mv-news-curve-radius);
  background-repeat: no-repeat;
  background-size: 100% 100%;
  pointer-events: none;
  transform: translateY(-49cqh);
}
@media screen and (min-width: 768px) {
  .p-mv__news::before,
  .p-mv__news::after {
    transform: none;
  }
}
.p-mv__news::after {
  bottom: 0;
  left: calc(var(--mv-news-curve-radius) * -1);
  background-image: radial-gradient(circle at top left, transparent 69%, var(--color-white) 71%);
}
.p-mv__news::before {
  bottom: 0;
  right: calc(var(--mv-news-curve-radius) * -1);
  background-image: radial-gradient(circle at top right, transparent 69%, var(--color-white) 71%);
}
@media screen and (min-width: 768px) {
  .p-mv__news::before {
    top: calc(var(--mv-news-curve-radius) * -1);
    right: 0;
    bottom: auto;
    left: auto;
    background-image: radial-gradient(circle at top left, transparent 69%, var(--color-white) 71%);
  }
}
.p-mv__news-date {
  margin: 0;
  padding: 0;
  color: var(--color-header-accent);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .p-mv__news-date {
    line-height: normal;
    color: var(--color-header-accent);
    font-family: var(--base-font-family);
    font-size: calc(14 * var(--to-rem));
    font-weight: var(--fw-bold);
  }
}
.p-mv__news-text {
  display: block;
  overflow: hidden;
  width: 100%;
  max-width: calc(367 * var(--to-rem));
  color: var(--color-school-badge);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 18px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
  text-overflow: ellipsis;
}
@media screen and (min-width: 768px) {
  .p-mv__news-text {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    align-self: stretch;
    width: 100%;
    max-width: 100%;
    white-space: normal;
    color: var(--color-school-badge);
    font-family: var(--base-font-family);
    font-size: calc(18 * var(--to-rem));
    font-weight: var(--fw-bold);
  }
}
.p-mv__logo {
  width: 100px;
  height: 56px;
  margin-block-end: 0;
}
@media screen and (min-width: 768px) {
  .p-mv__logo {
    width: calc(110 * var(--to-rem));
    height: calc(61.5 * var(--to-rem));
    margin-block-end: calc(30 * var(--to-rem));
  }
}
.p-mv__title {
  color: var(--color-white);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 24px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-mv__title {
    color: var(--color-white);
    font-family: var(--base-font-family);
    /* 1145px→768px で44→28（to-rem 係数）へ線形。それ以上は 44 で頭打ち */
    font-size: min(44 * var(--to-rem), var(--to-rem) * (28 + 16 * max(0px, 100vw - 768px) / 377px));
    font-weight: var(--fw-bold);
  }
}
.p-mv__text {
  margin-block-start: 0;
  color: var(--color-white);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: 14px;
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-mv__text {
    margin-block-start: calc(15 * var(--to-rem));
    color: var(--color-white);
    font-family: var(--base-font-family);
    /* 1145px→768px で 22→15（to-rem 係数）へ線形。それ以上は 22 で頭打ち */
    font-size: min(22 * var(--to-rem), var(--to-rem) * (15 + 7 * max(0px, 100vw - 768px) / 377px));
    font-weight: var(--fw-bold);
    text-align: left;
  }
}
.p-news-list {
  padding-block: calc(56 * var(--to-rem)) calc(92 * var(--to-rem));
}
.p-news-list__inner {
  display: flex;
  flex-direction: column;
}
.p-news-list__inner.l-inner {
  max-width: calc(1081px + var(--padding-inner) * 2);
}
.p-news-list__inner > .p-news-list__title {
  margin-block-end: 0;
}
.p-news-list__container {
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--to-rem));
  margin: 0;
  padding: 0;
  list-style: none;
}
@media screen and (min-width: 768px) {
  .p-news-list__container {
    gap: calc(32 * var(--to-rem));
  }
}
.p-news-list__item {
  display: block;
  color: inherit;
  text-decoration: none;
  transition: opacity var(--duration) ease;
}
@media (any-hover: hover) {
  .p-news-list__item:hover {
    opacity: 0.7;
  }
}
.p-news-list__item:focus-visible {
  outline: 2px solid var(--color-header-accent);
  outline-offset: calc(4 * var(--to-rem));
}
.p-news-list__card {
  display: flex;
  flex-direction: column;
  gap: calc(10 * var(--to-rem));
  padding-bottom: calc(12 * var(--to-rem));
  border-bottom: 1px dashed var(--color-header-button-end);
}
.p-news-list__meta {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
  align-items: center;
}
.p-news-list__date {
  color: var(--color-header-accent);
  font-family: var(--title-font-family);
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: normal;
}
.p-news-list__category {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 1px calc(8 * var(--to-rem));
  border-radius: calc(100 * var(--to-rem));
  background: var(--color-pickup-news-badge-bg);
  color: var(--color-school-badge);
  font-family: var(--base-font-family);
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-regular);
  line-height: normal;
  text-align: center;
}
.p-news-list__card .p-news-list__title {
  display: -webkit-box;
  margin: 0;
  overflow: hidden;
  color: var(--color-school-badge);
  font-family: var(--base-font-family);
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-overflow: ellipsis;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 1;
  line-clamp: 1;
}
@media screen and (min-width: 768px) {
  .p-news-list__card .p-news-list__title {
    font-size: calc(18 * var(--to-rem));
  }
}
.p-news-list__empty {
  padding: calc(60 * var(--to-rem));
  border-radius: 10px;
  box-shadow:
    0 1px 3px oklch(from var(--color-black) l c h/10%),
    0 1px 2px oklch(from var(--color-black) l c h/10%);
  background-color: var(--color-white);
  color: var(--color-border-gray);
  font-size: calc(16 * var(--to-rem));
  text-align: center;
}
.p-news-list__empty p {
  margin: 0;
}
.p-news-list__pagination {
  --_pagination-bg: var(--color-white);
  --_pagination-text: var(--color-text);
  --_pagination-text-hover: var(--color-text);
  --_pagination-bg-hover: oklch(from var(--color-gray) l c h / 50%);
  --_pagination-active-bg: var(--color-black);
  --_pagination-active-text: var(--color-white);
  --_pagination-border: var(--color-gray);
  --_pagination-border-hover: var(--color-text);
}
/* お知らせ詳細 .p-news-article などと共有 */
/* 合格者の声 詳細（Figma 4645:3363） */
.p-single.p-single--voice {
  padding-block-start: calc(32 * var(--to-rem));
  padding-block-end: 0;
}
@media screen and (min-width: 768px) {
  .p-single.p-single--voice {
    padding-block-start: calc(48 * var(--to-rem));
  }
}
.p-voice-single {
  width: 100%;
}
.p-voice-single__frame {
  box-sizing: border-box;
  width: 100%;
  padding: calc(24 * var(--to-rem)) calc(20 * var(--to-rem));
  border: 3px solid var(--color-header-button-end);
  border-radius: calc(20 * var(--to-rem));
  box-shadow: calc(8 * var(--to-rem)) calc(8 * var(--to-rem)) 0 var(--color-header-button-end);
  background-color: var(--color-white);
}
@media screen and (min-width: 768px) {
  .p-voice-single__frame {
    padding: calc(64 * var(--to-rem)) calc(100 * var(--to-rem)) calc(83 * var(--to-rem));
  }
}
.p-voice-single__lead {
  margin: 0;
}
.p-voice-single__date {
  display: block;
  width: 100%;
  color: var(--color-header-accent);
  text-align: left;
  font-feature-settings: "halt" on;
  font-family: var(--title-font-family);
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: normal;
}
/* kiso.css は h1 に margin-block / font-size:2em を当て、h2 は margin-block 解除。.p-single の本文用 h1 ルールは :not(.p-voice-single__catchcopy) で別扱い */
.p-single.p-single--voice .p-voice-single__lead h1.p-voice-single__catchcopy {
  margin-block: unset;
  margin-block-start: calc(16 * var(--to-rem));
  margin-block-end: 0;
  padding: 0;
  padding-block-end: 0;
  border: none;
  border-bottom: none;
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-voice-single__rule {
  height: calc(1 * var(--to-rem));
  margin-block-start: calc(12 * var(--to-rem));
  margin-block-end: 0;
  border: none;
  background-color: var(--color-header-button-end);
}
.p-voice-single__profile {
  display: flex;
  flex-direction: column;
  gap: calc(16 * var(--to-rem));
  align-items: stretch;
  box-sizing: border-box;
  width: 100%;
  max-width: calc(552 * var(--to-rem));
  margin-block-start: calc(32 * var(--to-rem));
  margin-inline: auto;
  padding: calc(12 * var(--to-rem));
  border-radius: calc(20 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-voice-single__profile {
    flex-direction: row;
    gap: calc(16 * var(--to-rem));
    align-items: center;
    background-color: var(--color-header-nav-bg);
  }
}
.p-voice-single__profile-media {
  position: relative;
  flex-shrink: 0;
  width: 100%;
  aspect-ratio: 320/213;
  overflow: hidden;
  border-radius: calc(20 * var(--to-rem));
  background-color: var(--color-achievement-beige);
}
@media screen and (min-width: 768px) {
  .p-voice-single__profile-media {
    width: calc(320 * var(--to-rem));
    max-width: none;
  }
}
.p-voice-single__profile-media::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image: linear-gradient(to right, var(--color-white-35) 1px, transparent 1px), linear-gradient(to bottom, var(--color-white-35) 1px, transparent 1px);
  background-size: calc(16 * var(--to-rem)) calc(16 * var(--to-rem));
  pointer-events: none;
}
.p-voice-single__profile-img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-voice-single__profile-img--fallback {
  object-fit: contain;
  object-position: center bottom;
}
.p-voice-single__profile-body {
  flex: 1;
  width: 100%;
  min-width: 0;
  text-align: left;
  align-self: stretch;
}
@media screen and (min-width: 768px) {
  .p-voice-single__profile-body {
    align-self: center;
  }
}
.p-single .p-voice-single__profile-label {
  margin: 0;
  color: var(--color-header-accent);
  text-align: left;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-single .p-voice-single__profile-university {
  margin-block-start: calc(12 * var(--to-rem));
  margin-block-end: 0;
  color: var(--color-school-badge);
  text-align: left;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-single .p-voice-single__profile-school {
  margin-block-start: calc(16 * var(--to-rem));
  margin-block-end: 0;
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-single .p-voice-single__profile-name {
  margin-block-start: calc(1 * var(--to-rem));
  margin-block-end: 0;
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
/* Figma 4645:3366 — プロフィール直下の前置き（本文は .p-voice-single__entry で the_content を包む） */
.p-single .p-voice-single__preface {
  margin-block-start: calc(52 * var(--to-rem));
}
/* preface 直下の entry は単体 .p-voice-single__entry の上余白を付けず、先頭段落は 24px */
.p-single .p-voice-single__preface > .p-voice-single__entry {
  margin-block-start: 0;
}
.p-single .p-voice-single__preface .p-voice-single__entry > p:first-of-type {
  margin-block-start: calc(24 * var(--to-rem));
}
.p-single .p-voice-single__preface p {
  margin: 0;
  margin-block-start: calc(24 * var(--to-rem));
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.p-voice-single__entry {
  margin-block-start: calc(40 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-voice-single__entry {
    margin-block-start: calc(48 * var(--to-rem));
  }
}
/* 本文見出し（中央の区切り線つき・Figma のブロック見出し）— preface 外のみ想定 */
.p-voice-single__entry h2 {
  margin-block: calc(32 * var(--to-rem));
  padding-block: calc(16 * var(--to-rem));
  border-block: 1px solid var(--color-border-light);
  color: var(--color-text);
  font-feature-settings: "halt" on;
  font-family: var(--base-font-family);
  font-size: calc(18 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.6;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-voice-single__entry h2 {
    margin-block: calc(40 * var(--to-rem));
    font-size: calc(22 * var(--to-rem));
  }
}
/* Figma 4645:3366 — preface 内 h2（.p-single__content h2 より詳細度高で帯見出しを固定） */
.p-single.p-single--voice .p-voice-single__preface .p-voice-single__entry h2 {
  margin-block: calc(32 * var(--to-rem)) 0;
  margin-inline: 0;
  padding: calc(12 * var(--to-rem));
  border: none;
  border-block: 1px solid var(--color-border-gray);
  border-inline: none;
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
  text-align: left;
}
.p-single.p-single--voice .p-voice-single__preface .p-voice-single__entry h2:first-child {
  margin-block-start: 0;
}
.p-voice-single__entry > *:first-child {
  margin-block-start: 0;
}
.p-voice-single__entry > *:first-child:is(h2) {
  margin-block-start: 0;
}
/* Figma 2450:1589：合格者の声一覧に戻る */
.p-voice-single-actions {
  margin-block-start: calc(67 * var(--to-rem));
  background-color: var(--color-white);
}
.p-voice-single-actions__inner {
  display: flex;
  justify-content: center;
}
.p-voice-single-actions__button.c-button {
  width: 100%;
  max-width: calc(320 * var(--to-rem));
}
.p-voice-single-actions__icon {
  flex-shrink: 0;
  width: calc(20 * var(--to-rem));
  height: calc(20 * var(--to-rem));
  transform: rotate(180deg);
}
.p-news-article {
  box-sizing: border-box;
  width: 100%;
  padding: calc(24 * var(--to-rem)) calc(20 * var(--to-rem));
  border: 3px solid var(--color-header-button-end);
  border-radius: calc(20 * var(--to-rem));
  box-shadow: calc(8 * var(--to-rem)) calc(8 * var(--to-rem)) 0 var(--color-header-button-end);
  background-color: var(--color-white);
  box-sizing: border-box;
  width: min(1280px, 100% - 2 * var(--padding-inner));
  max-width: 1280px;
  margin-inline: auto;
  padding-block-end: calc(72 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-news-article {
    padding: calc(64 * var(--to-rem)) calc(100 * var(--to-rem)) calc(83 * var(--to-rem));
  }
}
@media screen and (min-width: 768px) {
  .p-news-article {
    /* mixin 内の md 用 padding 下が 83 になるため、Figma どおり 72 で上書き */
    padding-bottom: calc(72 * var(--to-rem));
  }
}
.p-news-article .l-inner {
  box-sizing: border-box;
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}
.p-news-article header > div {
  display: flex;
  flex-wrap: wrap;
  gap: calc(6 * var(--to-rem));
  align-items: center;
}
/* 日付〜先頭カテゴリー間は 16、カテゴリー同士は gap 6（6 + 10 = 16） */
.p-news-article header > div:has(span) time {
  margin-inline-end: calc(10 * var(--to-rem));
}
/* Akshar はメトリクス上やや上に見えるため .p-top__results-value と同様に translateY で下げる（11 を 14/56 で換算） */
.p-news-article time {
  display: inline-block;
  color: var(--color-header-accent);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: var(--title-font-family);
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: normal;
  transform: translateY(calc(11 * var(--to-rem) * 14 / 56));
}
.p-news-article header > div span {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 1px calc(8 * var(--to-rem));
  border-radius: 100px;
  background: var(--color-pickup-news-badge-bg);
  color: var(--color-school-badge);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  text-align: center;
}
.p-single--news-detail .p-news-article header h1 {
  margin: calc(5 * var(--to-rem)) 0 0;
  padding-block-end: calc(12 * var(--to-rem));
  border-block-end: 1px solid var(--color-header-button-end);
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-single--news-detail .p-news-article > .l-inner > hr:first-of-type {
  margin: calc(20 * var(--to-rem)) 0 0;
  border: none;
  height: 1px;
  background: var(--color-header-button-end);
}
@media screen and (min-width: 768px) {
  .p-single--news-detail .p-news-article > .l-inner > hr:first-of-type {
    margin-block-start: calc(24 * var(--to-rem));
  }
}
.p-news-article > .l-inner > section {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: calc(12 * var(--to-rem));
  margin-block-start: calc(20 * var(--to-rem));
  padding-block: calc(12 * var(--to-rem));
  padding-inline: calc(12 * var(--to-rem));
  background: var(--color-header-nav-bg);
}
.p-news-article > .l-inner > section > span:first-of-type {
  flex-shrink: 0;
  display: inline;
  padding: 0;
  border-radius: 0;
  background: none;
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
.p-news-article > .l-inner > section > span[aria-hidden="true"] {
  flex-shrink: 0;
  display: block;
  width: 1px;
  height: calc(23 * var(--to-rem));
  padding: 0;
  border-radius: 0;
  background: var(--color-header-button-end);
}
.p-single.p-single--news-detail .p-news-article > .l-inner > section > p {
  flex: 1;
  margin: 0;
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
.p-single.p-single--news-detail .p-news-article h2 {
  margin-block-start: calc(40 * var(--to-rem));
  margin-block-end: 0;
  padding: calc(12 * var(--to-rem));
  border-block-start: 1px solid var(--color-border-gray);
  border-block-end: 1px solid var(--color-border-gray);
  border-inline-start: none;
  border-inline-end: none;
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-single.p-single--news-detail .p-news-article h2 {
    margin-block-start: calc(20 * var(--to-rem));
  }
}
.p-single.p-single--news-detail .p-news-article > .l-inner > h2 {
  margin-block-start: calc(32 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-single.p-single--news-detail .p-news-article > .l-inner > h2 {
    margin-block-start: calc(40 * var(--to-rem));
  }
}
.p-single.p-single--news-detail .p-news-article p {
  margin-block-start: calc(16 * var(--to-rem));
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: 400;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-single.p-single--news-detail .p-news-article p {
    margin-block-start: calc(29 * var(--to-rem));
  }
}
/* お知らせ一覧へ戻る */
.p-news-single-actions {
  padding-block-end: calc(110 * var(--to-rem));
  background-color: var(--color-white);
}
.p-news-single-actions__inner {
  display: flex;
  justify-content: center;
}
.p-news-single-actions__button.c-button {
  width: 100%;
  max-width: calc(320 * var(--to-rem));
}
.p-news-single-actions__icon {
  flex-shrink: 0;
  width: calc(20 * var(--to-rem));
  height: calc(20 * var(--to-rem));
  transform: rotate(180deg);
}
.p-page-about {
  padding-block: calc(24 * var(--to-rem)) calc(64 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-page-about {
    padding-block: calc(40 * var(--to-rem)) calc(96 * var(--to-rem));
  }
}
.p-page-about__content {
  color: var(--color-text);
  font-family: var(--base-font-family);
  font-size: calc(16 * var(--to-rem));
  line-height: 1.75;
}
.p-page-about__content > *:first-child {
  margin-block-start: 0;
}
.p-page-about__content > *:last-child {
  margin-block-end: 0;
}
.p-privacy-policy {
  padding-block: calc(32 * var(--to-rem)) calc(80 * var(--to-rem));
  background-color: var(--color-white);
}
@media screen and (min-width: 768px) {
  .p-privacy-policy {
    padding-block: calc(48 * var(--to-rem)) calc(120 * var(--to-rem));
  }
}
.p-privacy-policy__inner.l-inner {
  max-width: calc(960px + var(--padding-inner) * 2);
}
.p-privacy-policy__content {
  color: var(--color-school-badge);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(16 * var(--to-rem));
  font-weight: var(--fw-regular);
  line-height: 1.875;
}
.p-privacy-policy__lead {
  margin: 0;
}
.p-privacy-policy__section,
.p-privacy-policy__contact {
  margin-top: calc(32 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-privacy-policy__section,
  .p-privacy-policy__contact {
    margin-top: calc(40 * var(--to-rem));
  }
}
.p-privacy-policy__heading {
  margin: 0 0 calc(12 * var(--to-rem));
  color: var(--color-header-accent);
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-feature-settings: "halt" on;
  font-size: calc(18 * var(--to-rem));
  font-weight: 700;
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .p-privacy-policy__heading {
    margin-bottom: calc(16 * var(--to-rem));
    font-size: calc(20 * var(--to-rem));
  }
}
.p-privacy-policy__content p {
  margin: 0;
}
.p-privacy-policy__content p + p {
  margin-top: calc(12 * var(--to-rem));
}
.p-privacy-policy__content a {
  color: var(--color-header-accent);
  text-decoration: underline;
  text-underline-offset: calc(2 * var(--to-rem));
}
@media (any-hover: hover) {
  .p-privacy-policy__content a:hover {
    text-decoration: none;
  }
}
.p-privacy-policy__contact-list {
  margin: calc(16 * var(--to-rem)) 0 0;
}
.p-privacy-policy__contact-item {
  display: grid;
  gap: calc(4 * var(--to-rem));
  margin: 0;
  padding: calc(16 * var(--to-rem)) 0;
  border-top: 1px solid var(--color-border, #e5e5e5);
}
.p-privacy-policy__contact-item:last-child {
  border-bottom: 1px solid var(--color-border, #e5e5e5);
}
@media screen and (min-width: 768px) {
  .p-privacy-policy__contact-item {
    grid-template-columns: calc(140 * var(--to-rem)) minmax(0, 1fr);
    gap: calc(24 * var(--to-rem));
    align-items: start;
  }
}
.p-privacy-policy__contact-item dt {
  margin: 0;
  color: var(--color-header-accent);
  font-weight: 700;
}
.p-privacy-policy__contact-item dd {
  margin: 0;
}
.p-privacy-policy__closing {
  margin: calc(40 * var(--to-rem)) 0 0;
  text-align: end;
}
@media screen and (min-width: 768px) {
  .p-privacy-policy__closing {
    margin-top: calc(48 * var(--to-rem));
  }
}
.p-single {
  padding-block: calc(40 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-single {
    padding-block: calc(80 * var(--to-rem));
  }
}
.p-single.p-single--post.p-single--news-detail {
  padding-top: calc(58 * var(--to-rem));
  padding-bottom: calc(87 * var(--to-rem));
}
.p-single--news-detail .p-single__inner.l-inner {
  max-width: calc(1081px + var(--padding-inner) * 2);
}
.p-single__inner {
  max-width: calc(1280px + var(--padding-inner) * 2);
}
.p-single__header {
  margin-block-start: calc(32 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-single__header {
    margin-block-start: calc(48 * var(--to-rem));
  }
}
.p-single__subtitle {
  margin-block-end: calc(8 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-medium);
}
@media screen and (min-width: 768px) {
  .p-single__subtitle {
    margin-block-end: calc(12 * var(--to-rem));
    font-size: calc(16 * var(--to-rem));
  }
}
.p-single__title {
  margin-block-start: calc(16 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(24 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .p-single__title {
    margin-block-start: calc(24 * var(--to-rem));
    font-size: calc(32 * var(--to-rem));
  }
}
.p-single__summary {
  margin-block-start: calc(24 * var(--to-rem));
  padding-block: calc(16 * var(--to-rem));
  padding-inline: calc(16 * var(--to-rem));
  border-radius: 8px;
  background-color: var(--color-gray);
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  line-height: 1.8;
}
@media screen and (min-width: 768px) {
  .p-single__summary {
    margin-block-start: calc(32 * var(--to-rem));
    padding-block: calc(20 * var(--to-rem));
    padding-inline: calc(24 * var(--to-rem));
    font-size: calc(16 * var(--to-rem));
  }
}
.p-single__meta {
  display: flex;
  flex-wrap: wrap;
  gap: calc(16 * var(--to-rem));
  align-items: center;
  margin-block-start: calc(16 * var(--to-rem));
  color: var(--color-border-gray);
  font-size: calc(14 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-single__meta {
    margin-block-start: calc(24 * var(--to-rem));
  }
}
.p-single__author {
  display: inline-block;
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-single__author {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-single__date {
  display: inline-block;
}
.p-single__categories {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
}
.p-single__category {
  display: inline-block;
  padding-block: calc(4 * var(--to-rem));
  padding-inline: calc(12 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-gray);
  color: var(--color-primary);
  font-size: calc(12 * var(--to-rem));
  text-decoration: none;
  transition: opacity var(--duration);
}
@media (any-hover: hover) {
  .p-single__category:hover {
    opacity: 0.8;
  }
}
.p-single__thumbnail {
  overflow: hidden;
  margin-block-start: calc(32 * var(--to-rem));
  border-radius: 8px;
}
@media screen and (min-width: 768px) {
  .p-single__thumbnail {
    margin-block-start: calc(48 * var(--to-rem));
  }
}
.p-single__thumbnail img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
  object-fit: cover;
  transition: scale 0.3s ease;
}
@media screen and (min-width: 768px) {
  .p-single__thumbnail img {
    border-radius: 12px;
  }
}
.p-single__featured-image {
  overflow: hidden;
  margin-block-start: calc(32 * var(--to-rem));
  border-radius: 8px;
}
@media screen and (min-width: 768px) {
  .p-single__featured-image {
    margin-block-start: calc(48 * var(--to-rem));
  }
}
.p-single__featured-image img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 8px;
  object-fit: cover;
}
@media screen and (min-width: 768px) {
  .p-single__featured-image img {
    border-radius: 12px;
  }
}
.p-single__content {
  margin-block-start: calc(48 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-single__content {
    margin-block-start: calc(64 * var(--to-rem));
  }
}
.p-single__content h1,
.p-single h1:not(.p-single__title):not(#p-news-article-title):not(.p-voice-single__catchcopy),
.p-news-article [itemprop="articleBody"] h1 {
  margin-block-start: calc(48 * var(--to-rem));
  padding-block-end: calc(16 * var(--to-rem));
  border-bottom: calc(2 * var(--to-rem)) solid var(--color-gray);
  color: var(--color-text);
  font-size: calc(28 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .p-single__content h1,
  .p-single h1:not(.p-single__title):not(#p-news-article-title):not(.p-voice-single__catchcopy),
  .p-news-article [itemprop="articleBody"] h1 {
    margin-block-start: calc(64 * var(--to-rem));
    font-size: calc(36 * var(--to-rem));
  }
}
.p-single__content h2,
.p-single h2,
.p-news-article [itemprop="articleBody"] h2 {
  margin-block-start: calc(40 * var(--to-rem));
  padding-block-start: calc(16 * var(--to-rem));
  padding-inline-start: calc(16 * var(--to-rem));
  border-inline-start: calc(4 * var(--to-rem)) solid var(--color-accent);
  color: var(--color-text);
  font-size: calc(24 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .p-single__content h2,
  .p-single h2,
  .p-news-article [itemprop="articleBody"] h2 {
    margin-block-start: calc(56 * var(--to-rem));
    padding-inline-start: calc(20 * var(--to-rem));
    font-size: calc(28 * var(--to-rem));
  }
}
.p-single__content h3,
.p-single h3,
.p-news-article [itemprop="articleBody"] h3 {
  margin-block-start: calc(32 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(20 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .p-single__content h3,
  .p-single h3,
  .p-news-article [itemprop="articleBody"] h3 {
    margin-block-start: calc(40 * var(--to-rem));
    font-size: calc(24 * var(--to-rem));
  }
}
.p-single__content h4,
.p-single h4,
.p-news-article [itemprop="articleBody"] h4 {
  margin-block-start: calc(24 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(18 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .p-single__content h4,
  .p-single h4,
  .p-news-article [itemprop="articleBody"] h4 {
    margin-block-start: calc(32 * var(--to-rem));
    font-size: calc(20 * var(--to-rem));
  }
}
.p-single__content p,
.p-single p,
.p-news-article [itemprop="articleBody"] p {
  margin-block-start: calc(16 * var(--to-rem));
  color: var(--color-text);
  line-height: 1.8;
}
@media screen and (min-width: 768px) {
  .p-single__content p,
  .p-single p,
  .p-news-article [itemprop="articleBody"] p {
    margin-block-start: calc(20 * var(--to-rem));
  }
}
.p-single__content ul,
.p-single__content ol,
.p-single ul,
.p-single ol,
.p-news-article [itemprop="articleBody"] ul,
.p-news-article [itemprop="articleBody"] ol {
  margin-block-start: calc(16 * var(--to-rem));
  padding-inline-start: calc(24 * var(--to-rem));
  color: var(--color-text);
  line-height: 1.8;
}
@media screen and (min-width: 768px) {
  .p-single__content ul,
  .p-single__content ol,
  .p-single ul,
  .p-single ol,
  .p-news-article [itemprop="articleBody"] ul,
  .p-news-article [itemprop="articleBody"] ol {
    margin-block-start: calc(20 * var(--to-rem));
    padding-inline-start: calc(32 * var(--to-rem));
  }
}
.p-single__content ul,
.p-single ul,
.p-news-article [itemprop="articleBody"] ul {
  list-style-type: disc;
}
.p-single__content ol,
.p-single ol,
.p-news-article [itemprop="articleBody"] ol {
  list-style-type: decimal;
}
.p-single__content li,
.p-single li,
.p-news-article [itemprop="articleBody"] li {
  margin-block-start: calc(8 * var(--to-rem));
  line-height: 1.8;
}
.p-single__content a,
.p-news-article [itemprop="articleBody"] a {
  color: var(--color-accent);
  text-decoration: underline;
  text-underline-offset: calc(2 * var(--to-rem));
  transition: opacity var(--duration);
}
.p-single__content a:hover,
.p-news-article [itemprop="articleBody"] a:hover {
  opacity: 0.8;
}
.p-single__content img,
.p-news-article [itemprop="articleBody"] img {
  display: block;
  height: auto;
  max-width: 100%;
  margin-block-start: calc(24 * var(--to-rem));
  border-radius: 8px;
}
@media screen and (min-width: 768px) {
  .p-single__content img,
  .p-news-article [itemprop="articleBody"] img {
    margin-block-start: calc(32 * var(--to-rem));
  }
}
.p-single__content blockquote,
.p-single blockquote,
.p-news-article [itemprop="articleBody"] blockquote {
  margin-block-start: calc(24 * var(--to-rem));
  padding-block: calc(16 * var(--to-rem));
  padding-inline: calc(24 * var(--to-rem)) calc(24 * var(--to-rem));
  border-inline-start: calc(4 * var(--to-rem)) solid var(--color-accent);
  border-radius: 4px;
  background-color: var(--color-gray);
  color: var(--color-text);
  font-style: italic;
}
@media screen and (min-width: 768px) {
  .p-single__content blockquote,
  .p-single blockquote,
  .p-news-article [itemprop="articleBody"] blockquote {
    margin-block-start: calc(32 * var(--to-rem));
    padding-block: calc(20 * var(--to-rem));
    padding-inline: calc(32 * var(--to-rem)) calc(32 * var(--to-rem));
  }
}
.p-single__content blockquote p,
.p-single blockquote p,
.p-news-article [itemprop="articleBody"] blockquote p {
  margin-block-start: 0;
}
.p-single__content code,
.p-single code,
.p-news-article [itemprop="articleBody"] code {
  padding-block: calc(2 * var(--to-rem));
  padding-inline: calc(6 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-gray);
  color: var(--color-primary);
  font-family: var(--base-font-family);
  font-size: calc(14 * var(--to-rem));
}
.p-single__content pre,
.p-single pre,
.p-news-article [itemprop="articleBody"] pre {
  overflow-x: auto;
  margin-block-start: calc(24 * var(--to-rem));
  padding-block: calc(16 * var(--to-rem));
  padding-inline: calc(16 * var(--to-rem));
  border-radius: 8px;
  background-color: var(--color-gray);
  color: var(--color-text);
  font-family: var(--base-font-family);
  font-size: calc(14 * var(--to-rem));
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .p-single__content pre,
  .p-single pre,
  .p-news-article [itemprop="articleBody"] pre {
    padding-block: calc(24 * var(--to-rem));
    padding-inline: calc(24 * var(--to-rem));
  }
}
.p-single__content pre code,
.p-single pre code,
.p-news-article [itemprop="articleBody"] pre code {
  padding-block: 0;
  padding-inline: 0;
  background-color: transparent;
}
.p-single__content table,
.p-single table,
.p-news-article [itemprop="articleBody"] table {
  width: 100%;
  margin-block-start: calc(24 * var(--to-rem));
  border: calc(1 * var(--to-rem)) solid var(--color-border-gray);
  border-collapse: collapse;
}
@media screen and (min-width: 768px) {
  .p-single__content table,
  .p-single table,
  .p-news-article [itemprop="articleBody"] table {
    margin-block-start: calc(32 * var(--to-rem));
  }
}
.p-single__content th,
.p-single__content td,
.p-single th,
.p-single td,
.p-news-article [itemprop="articleBody"] th,
.p-news-article [itemprop="articleBody"] td {
  padding-block: calc(12 * var(--to-rem));
  padding-inline: calc(16 * var(--to-rem));
  border: calc(1 * var(--to-rem)) solid var(--color-border-gray);
  line-height: 1.6;
  text-align: start;
}
@media screen and (min-width: 768px) {
  .p-single__content th,
  .p-single__content td,
  .p-single th,
  .p-single td,
  .p-news-article [itemprop="articleBody"] th,
  .p-news-article [itemprop="articleBody"] td {
    padding-block: calc(16 * var(--to-rem));
    padding-inline: calc(20 * var(--to-rem));
  }
}
.p-single__content th,
.p-single th,
.p-news-article [itemprop="articleBody"] th {
  background-color: var(--color-gray);
  color: var(--color-text);
  font-weight: var(--fw-bold);
}
.p-single__content td,
.p-single td,
.p-news-article [itemprop="articleBody"] td {
  color: var(--color-text);
}
.p-single__content hr,
.p-single hr,
.p-news-article [itemprop="articleBody"] hr {
  margin-block-start: calc(32 * var(--to-rem));
  border: none;
  border-top: calc(1 * var(--to-rem)) solid var(--color-border-gray);
}
@media screen and (min-width: 768px) {
  .p-single__content hr,
  .p-single hr,
  .p-news-article [itemprop="articleBody"] hr {
    margin-block-start: calc(48 * var(--to-rem));
  }
}
.p-single__content strong,
.p-single strong,
.p-news-article [itemprop="articleBody"] strong {
  color: var(--color-text);
  font-weight: var(--fw-bold);
}
.p-single__content em,
.p-single em,
.p-news-article [itemprop="articleBody"] em {
  font-style: italic;
}
.p-single__tags {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
  margin-block-start: calc(48 * var(--to-rem));
  padding-block: calc(24 * var(--to-rem));
  border-top: calc(1 * var(--to-rem)) solid var(--color-border-gray);
}
@media screen and (min-width: 768px) {
  .p-single__tags {
    margin-block-start: calc(64 * var(--to-rem));
    padding-block: calc(32 * var(--to-rem));
  }
}
.p-single__tag {
  display: inline-block;
  padding-block: calc(4 * var(--to-rem));
  padding-inline: calc(12 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-gray);
  color: var(--color-accent);
  font-size: calc(12 * var(--to-rem));
  text-decoration: none;
  transition: opacity var(--duration);
}
@media screen and (min-width: 768px) {
  .p-single__tag {
    font-size: calc(14 * var(--to-rem));
  }
}
.p-single__tag:hover {
  opacity: 0.8;
}
.p-single__tag--custom {
  color: var(--color-text);
  cursor: default;
}
.p-single__navigation {
  display: grid;
  gap: calc(16 * var(--to-rem));
  margin-block-start: calc(48 * var(--to-rem));
  padding-block-start: calc(32 * var(--to-rem));
  border-top: calc(1 * var(--to-rem)) solid var(--color-border-gray);
}
@media screen and (min-width: 768px) {
  .p-single__navigation {
    grid-template-columns: repeat(2, 1fr);
    gap: calc(24 * var(--to-rem));
    margin-block-start: calc(64 * var(--to-rem));
    padding-block-start: calc(48 * var(--to-rem));
  }
}
.p-single__nav-item {
  display: flex;
  flex-direction: column;
}
@media screen and (min-width: 768px) {
  .p-single__nav-item--prev {
    text-align: start;
  }
}
@media screen and (min-width: 768px) {
  .p-single__nav-item--next {
    text-align: end;
  }
}
.p-single__nav-link {
  display: block;
  padding-block: calc(16 * var(--to-rem));
  padding-inline: calc(16 * var(--to-rem));
  border-radius: 8px;
  background-color: var(--color-gray);
  color: var(--color-text);
  text-decoration: none;
  transition: opacity var(--duration);
}
@media screen and (min-width: 768px) {
  .p-single__nav-link {
    padding-block: calc(20 * var(--to-rem));
    padding-inline: calc(20 * var(--to-rem));
  }
}
.p-single__nav-link:hover {
  opacity: 0.8;
}
.p-single__nav-label {
  display: block;
  margin-block-start: calc(8 * var(--to-rem));
  color: var(--color-border-gray);
  font-size: calc(12 * var(--to-rem));
}
.p-single__nav-title {
  display: block;
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-medium);
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .p-single__nav-title {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-single--works .p-single__works-info {
  display: grid;
  gap: calc(24 * var(--to-rem));
  margin-block-start: calc(32 * var(--to-rem));
  padding-block: calc(24 * var(--to-rem));
  padding-inline: calc(24 * var(--to-rem));
  border-radius: 8px;
  background-color: var(--color-gray);
}
@media screen and (min-width: 768px) {
  .p-single--works .p-single__works-info {
    gap: calc(32 * var(--to-rem));
    margin-block-start: calc(48 * var(--to-rem));
    padding-block: calc(32 * var(--to-rem));
    padding-inline: calc(32 * var(--to-rem));
  }
}
.p-single--works .p-single__works-item {
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-single--works .p-single__works-item {
    flex-direction: row;
    align-items: center;
  }
}
.p-single--works .p-single__works-label {
  min-width: calc(120 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-medium);
}
@media screen and (min-width: 768px) {
  .p-single--works .p-single__works-label {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-single--works .p-single__works-value {
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-single--works .p-single__works-value {
    font-size: calc(16 * var(--to-rem));
  }
}
.p-single--works .p-single__works-technologies {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
}
.p-single--works .p-single__works-technology {
  display: inline-block;
  padding: calc(4 * var(--to-rem)) calc(12 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-white);
  color: var(--color-text);
  font-size: calc(12 * var(--to-rem));
}
.p-single--works .p-single__works-url {
  color: var(--color-accent);
  font-size: calc(14 * var(--to-rem));
  text-decoration: underline;
  text-underline-offset: calc(2 * var(--to-rem));
  transition: opacity var(--duration);
}
@media screen and (min-width: 768px) {
  .p-single--works .p-single__works-url {
    font-size: calc(16 * var(--to-rem));
  }
}
@media (any-hover: hover) {
  .p-single--works .p-single__works-url:hover {
    opacity: 0.8;
  }
}
.p-single--works .p-single__gallery {
  margin-block-start: calc(48 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-single--works .p-single__gallery {
    margin-block-start: calc(64 * var(--to-rem));
  }
}
.p-single--works .p-single__gallery-title {
  margin-block-end: calc(24 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(20 * var(--to-rem));
  font-weight: var(--fw-bold);
}
@media screen and (min-width: 768px) {
  .p-single--works .p-single__gallery-title {
    margin-block-end: calc(32 * var(--to-rem));
    font-size: calc(24 * var(--to-rem));
  }
}
.p-single--works .p-single__gallery-list {
  display: grid;
  gap: calc(16 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-single--works .p-single__gallery-list {
    grid-template-columns: repeat(2, 1fr);
    gap: calc(24 * var(--to-rem));
  }
}
.p-single--works .p-single__gallery-item {
  overflow: hidden;
  border-radius: 8px;
  background-color: var(--color-gray);
}
.p-single--works .p-single__gallery-item img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}
.p-single--post .p-single__related {
  margin-block-start: calc(48 * var(--to-rem));
  padding-block-start: calc(32 * var(--to-rem));
  border-top: calc(1 * var(--to-rem)) solid var(--color-border-gray);
}
@media screen and (min-width: 768px) {
  .p-single--post .p-single__related {
    margin-block-start: calc(64 * var(--to-rem));
    padding-block-start: calc(48 * var(--to-rem));
  }
}
.p-single--post .p-single__related-title {
  margin-block-end: calc(24 * var(--to-rem));
  color: var(--color-text);
  font-size: calc(20 * var(--to-rem));
  font-weight: var(--fw-bold);
}
@media screen and (min-width: 768px) {
  .p-single--post .p-single__related-title {
    margin-block-end: calc(32 * var(--to-rem));
    font-size: calc(24 * var(--to-rem));
  }
}
.p-single--post .p-single__related-list {
  display: grid;
  gap: calc(16 * var(--to-rem));
}
@media screen and (min-width: 600px) {
  .p-single--post .p-single__related-list {
    grid-template-columns: repeat(2, 1fr);
    gap: calc(24 * var(--to-rem));
  }
}
@media screen and (min-width: 1024px) {
  .p-single--post .p-single__related-list {
    grid-template-columns: repeat(3, 1fr);
  }
}
.p-single--post .p-single__related-link {
  display: grid;
  gap: calc(12 * var(--to-rem));
  text-decoration: none;
  transition: opacity var(--duration);
}
@media screen and (min-width: 600px) {
  .p-single--post .p-single__related-link {
    grid-template-columns: calc(120 * var(--to-rem)) 1fr;
    align-items: start;
  }
}
@media (any-hover: hover) {
  .p-single--post .p-single__related-link:hover {
    opacity: 0.7;
  }
}
.p-single--post .p-single__related-thumbnail {
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: 8px;
  background-color: var(--color-gray);
}
@media screen and (min-width: 600px) {
  .p-single--post .p-single__related-thumbnail {
    aspect-ratio: 4/3;
  }
}
.p-single--post .p-single__related-thumbnail img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.p-single--post .p-single__related-content {
  display: flex;
  flex-direction: column;
  gap: calc(8 * var(--to-rem));
}
.p-single--post .p-single__related-date {
  color: var(--color-text);
  font-size: calc(12 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-single--post .p-single__related-date {
    font-size: calc(14 * var(--to-rem));
  }
}
.p-single--post .p-single__related-item-title {
  margin: 0;
  color: var(--color-text);
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-medium);
  line-height: 1.6;
}
@media screen and (min-width: 768px) {
  .p-single--post .p-single__related-item-title {
    font-size: calc(16 * var(--to-rem));
  }
}
/* トップの .p-top__achievements-slider と同一マークアップ・同一アニメーション */
.p-voice-more {
  padding-block-start: calc(74 * var(--to-rem));
  padding-block-end: calc(120 * var(--to-rem));
  background-color: var(--color-white);
}
.p-voice-more__head {
  display: grid;
  justify-items: center;
}
.p-voice-more__head.l-inner {
  margin-bottom: calc(28.5 * var(--to-rem));
}
.p-voice-more__title {
  margin: 0;
  max-width: 100%;
  color: var(--color-header-accent);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: 700;
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-voice-more__title {
    font-size: calc(32 * var(--to-rem));
  }
}
.p-sub-mv {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: calc(140 * var(--to-rem));
  padding: calc(40 * var(--to-rem)) calc(16 * var(--to-rem));
  background-image: linear-gradient(var(--p-sub-mv-overlay), var(--p-sub-mv-overlay)), var(--p-sub-mv-bg);
  background-position: center;
  background-size: cover;
  background-color: var(--color-black);
}
@media screen and (min-width: 768px) {
  .p-sub-mv {
    min-height: 0;
    aspect-ratio: 1440/240;
    padding: calc(48 * var(--to-rem)) calc(80 * var(--to-rem));
  }
}
.p-sub-mv__inner {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.p-sub-mv__en {
  margin: 0;
  color: var(--color-white);
  font-family: var(--title-font-family);
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: 1.2;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
@media screen and (min-width: 768px) {
  .p-sub-mv__en {
    color: var(--color-white);
    font-feature-settings: "halt" on;
    font-size: calc(20 * var(--to-rem));
    font-style: normal;
    font-weight: 500;
    line-height: normal;
    text-align: center;
  }
}
.p-sub-mv__ttl {
  margin: calc(8 * var(--to-rem)) 0 0;
  color: var(--color-white);
  font-family: var(--base-font-family);
  font-size: calc(22 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: 1.35;
}
@media screen and (min-width: 768px) {
  .p-sub-mv__ttl {
    margin-block-start: 0;
    color: var(--color-white);
    font-family: "Zen Kaku Gothic New", sans-serif;
    font-feature-settings: "halt" on;
    font-size: calc(32 * var(--to-rem));
    font-style: normal;
    font-weight: 700;
    line-height: normal;
    text-align: center;
  }
}
.p-top__achievements {
  padding: calc(75 * var(--to-rem)) 0 calc(12 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-top__achievements {
    padding: calc(89 * var(--to-rem)) 0 calc(24 * var(--to-rem));
  }
}
.p-top__achievements-head {
  display: grid;
  justify-items: center;
  margin-bottom: calc(39 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-top__achievements-head {
    margin-bottom: calc(59 * var(--to-rem));
  }
}
.p-top__achievements-empty {
  margin: 0;
  padding-inline: calc(20 * var(--to-rem));
  color: var(--color-school-badge);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: var(--base-font-family);
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-regular);
  line-height: normal;
}
/* 自動送り＋ドラッグは JS が scrollLeft を制御。アニメーションは使用しない */
.p-top__achievements-slider {
  --achievement-card-width: calc(320 * var(--to-rem));
  --achievement-gap: calc(24 * var(--to-rem));
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  cursor: grab;
  touch-action: pan-x pinch-zoom;
  -webkit-overflow-scrolling: touch;
}
.p-top__achievements-slider::-webkit-scrollbar {
  width: 0;
  height: 0;
}
.p-top__achievements-slider--dragging {
  cursor: grabbing;
  user-select: none;
}
.p-top__achievements-track {
  display: flex;
  width: max-content;
}
.p-top__achievements-list {
  display: flex;
  gap: var(--achievement-gap);
  margin: 0;
  padding: 0;
  list-style: none;
}
.p-top__achievements-item {
  flex-shrink: 0;
  width: var(--achievement-card-width);
}
/* トップ：合格者の声と同じカード。下層アイキャッチをアーカイブ同様に枠内へ（object-fit はシングル扉画像と同じ考え方） */
.p-top__achievements .c-achievement-card {
  width: 100%;
  max-width: calc(320 * var(--to-rem));
  min-width: 0;
  margin-inline: auto;
}
.p-top__achievements .c-achievement-card__image {
  width: 100%;
  height: auto;
  max-width: calc(320 * var(--to-rem));
  aspect-ratio: 320/213;
  margin-inline: auto;
}
.p-top__achievements .c-achievement-card__thumb {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
}
.p-top__achievements .c-achievement-card__thumb--fallback {
  object-fit: contain;
  object-position: center bottom;
}
.p-top__achievements-button {
  box-sizing: border-box;
  margin-top: calc(34 * var(--to-rem));
  margin-inline: auto;
  width: min(100% - 40 * var(--to-rem), 400 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-top__achievements-button {
    margin-top: calc(57 * var(--to-rem));
    width: calc(320 * var(--to-rem));
    max-width: none;
  }
}
.p-top__reason {
  display: grid;
  justify-items: center;
  padding-top: calc(76 * var(--to-rem));
  padding-bottom: calc(62 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-top__reason {
    gap: calc(50 * var(--to-rem));
    padding-top: calc(140 * var(--to-rem));
    padding-bottom: calc(73 * var(--to-rem));
  }
}
.p-top__reason-button {
  margin-inline: auto;
  margin-top: calc(54 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-top__reason-button {
    margin-top: 0;
  }
}
.p-top__reason-grid {
  display: grid;
  gap: 0;
  /* SP はカードの margin-top で行間。768〜1023px の1列時は gap で確保 */
}
@media screen and (min-width: 768px) {
  .p-top__reason-grid {
    /* 1列時は行間・段間の両方に同じ余白 */
    row-gap: calc(30 * var(--to-rem));
    column-gap: calc(30 * var(--to-rem));
  }
}
@media screen and (min-width: 1024px) {
  .p-top__reason-grid {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: auto auto auto;
    row-gap: 0;
    column-gap: calc(59 * var(--to-rem));
  }
}
.p-top__reason-card {
  position: relative;
  display: grid;
  gap: 0;
  justify-items: center;
  overflow: hidden;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  margin-inline: auto;
  margin-top: calc(16 * var(--to-rem));
  padding: calc(20 * var(--to-rem)) calc(16 * var(--to-rem));
  border-radius: calc(10 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-top__reason-card {
    margin-top: 0;
  }
}
@media screen and (min-width: 1024px) {
  .p-top__reason-card {
    grid-template-rows: subgrid;
    grid-row: span 3;
    min-width: 0;
    min-height: 0;
    aspect-ratio: 387/547;
    padding: calc(40 * var(--to-rem)) calc(32 * var(--to-rem));
  }
}
.p-top__reason-bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-position: center;
  background-color: var(--color-top-reason-media-bg);
}
.p-top__reason-overlay {
  position: absolute;
  inset: 0;
  background-color: var(--color-overlay-black-70);
}
.p-top__reason-icon,
.p-top__reason-title,
.p-top__reason-text {
  position: relative;
  z-index: 1;
}
.p-top__reason-icon-circle {
  position: relative;
  z-index: 1;
  display: grid;
  flex-shrink: 0;
  place-items: center;
  overflow: hidden;
  width: calc(80 * var(--to-rem));
  height: calc(80 * var(--to-rem));
  border: 1px solid var(--color-white-90);
  border-radius: 50%;
}
@media screen and (min-width: 1024px) {
  .p-top__reason-icon-circle {
    width: calc(120 * var(--to-rem));
    height: calc(120 * var(--to-rem));
  }
}
/* 円 80×80（SP）に対し、PC の 120 円×80 アイコンと同じ比率で収める */
.p-top__reason-icon {
  width: calc(53.3333333333 * var(--to-rem));
  height: calc(53.3333333333 * var(--to-rem));
  object-fit: contain;
}
@media screen and (min-width: 1024px) {
  .p-top__reason-icon {
    width: calc(80 * var(--to-rem));
    height: calc(80 * var(--to-rem));
  }
}
.p-top__reason-icon--small {
  width: calc(40 * var(--to-rem));
  height: calc(40 * var(--to-rem));
}
@media screen and (min-width: 1024px) {
  .p-top__reason-icon--small {
    width: calc(60 * var(--to-rem));
    height: calc(60 * var(--to-rem));
  }
}
.p-top__reason-title {
  margin-top: calc(22 * var(--to-rem));
  color: var(--color-white);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
}
@media screen and (min-width: 1024px) {
  .p-top__reason-title {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    align-self: stretch;
    box-sizing: border-box;
    width: 100%;
    min-height: 0;
    margin-top: 0;
    padding-top: calc(10 * var(--to-rem));
  }
}
.p-top__reason-text {
  margin-top: calc(25 * var(--to-rem));
  color: var(--color-white);
  font-feature-settings: "halt" on;
  font-family: "Zen Kaku Gothic New", sans-serif;
  font-size: calc(16 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-regular);
  line-height: normal;
}
@media screen and (min-width: 1024px) {
  .p-top__reason-text {
    align-self: stretch;
    width: 100%;
    margin-top: calc(16 * var(--to-rem));
  }
}
.p-about-guidance__grid .p-top__reason-card {
  padding-bottom: calc(27 * var(--to-rem));
}
.p-about-guidance__grid .p-top__reason-text {
  margin-top: 0;
}
.p-top__results {
  display: grid;
  justify-items: stretch;
  padding-block: calc(43 * var(--to-rem)) calc(50 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-top__results {
    justify-items: center;
    padding-block: calc(72 * var(--to-rem)) calc(0 * var(--to-rem));
  }
}
.p-top__results-badge {
  justify-self: center;
  width: calc(160 * var(--to-rem));
  height: calc(58 * var(--to-rem));
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-top__results-badge {
    width: calc(234 * var(--to-rem));
    height: calc(85 * var(--to-rem));
  }
}
/* SP: 上パディングなし（従来 PC は 0 のまま） */
.p-top__results-year {
  justify-self: center;
  padding-top: 0;
  color: var(--color-header-accent);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: center;
}
.p-top__results-grid {
  box-sizing: border-box;
  display: grid;
  justify-self: stretch;
  width: 100%;
  min-width: 0;
  max-width: none;
}
@media screen and (min-width: 768px) {
  .p-top__results-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0 calc(27 * var(--to-rem));
    justify-content: center;
    align-items: flex-start;
    justify-self: auto;
    width: auto;
    padding-top: calc(24 * var(--to-rem));
  }
}
.p-top__results-row-break {
  display: none;
}
@media screen and (min-width: 768px) {
  .p-top__results-row-break {
    display: block;
    flex-basis: 100%;
    overflow: hidden;
    width: 0;
    height: 0;
    margin: 0;
    padding: 0;
    border: 0;
  }
}
.p-top__results-item {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
  justify-content: flex-start;
  align-items: flex-end;
  width: 100%;
  margin: 0;
  padding: 0;
  padding-bottom: calc(6 * var(--to-rem));
  border-bottom: 1px solid var(--color-top-results-row-border);
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .p-top__results-item {
    flex: 0 1 auto;
    justify-content: center;
    width: fit-content;
    max-width: 100%;
    padding-bottom: 0;
    border-bottom: none;
  }
}
.p-top__results-amount {
  display: flex;
  align-items: flex-end;
  flex-shrink: 0;
  margin-left: auto;
}
@media screen and (min-width: 768px) {
  .p-top__results-amount {
    margin-left: 0;
    gap: calc(8 * var(--to-rem));
  }
}
/* 国公立大学推薦＋注釈行のみ。右列に amount → 注釈を積む */
.p-top__results-item.p-top__results-item--with-note {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  column-gap: calc(8 * var(--to-rem));
  row-gap: calc(8 * var(--to-rem));
  align-items: end;
}
.p-top__results-item.p-top__results-item--with-note .p-top__results-label {
  grid-column: 1;
  grid-row: 1/-1;
  align-self: end;
  text-align: left;
}
.p-top__results-item.p-top__results-item--with-note .p-top__results-amount {
  grid-column: 2;
  grid-row: 1;
  align-items: flex-end;
  justify-self: end;
  margin-left: 0;
}
.p-top__results-item.p-top__results-item--with-note .p-top__results-note {
  grid-column: 2;
  grid-row: 2;
  justify-self: end;
  width: max-content;
  max-width: 100%;
  text-align: right;
}
@media screen and (min-width: 768px) {
  .p-top__results-item.p-top__results-item--with-note {
    display: flex;
    flex-wrap: wrap;
    gap: calc(8 * var(--to-rem));
    align-items: flex-end;
    width: fit-content;
    max-width: 100%;
  }
  .p-top__results-item.p-top__results-item--with-note .p-top__results-label {
    text-align: right;
  }
  .p-top__results-item.p-top__results-item--with-note .p-top__results-note {
    width: auto;
  }
}
/* SP のみ指定。PC は mq(md) で従来の見た目 */
.p-top__results-label {
  min-width: 0;
  color: var(--color-header-button-end);
  text-align: right;
  leading-trim: both;
  text-edge: cap;
  font-feature-settings: "halt" on;
  font-family: var(--base-font-family);
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .p-top__results-label {
    color: var(--color-header-button-end);
    leading-trim: normal;
    text-edge: auto;
  }
}
/* グラデ文字: inline-block + color 透過で clip が効きやすくする（PC で数字が消える対策） */
/* Akshar はメトリクス上ラベルより数字が上に見えるため translateY で下げる */
.p-top__results-value {
  display: inline-block;
  flex-shrink: 0;
  font-feature-settings: "halt" on;
  font-family: var(--title-font-family);
  font-size: calc(56 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-medium);
  line-height: 1;
  color: transparent;
  background: linear-gradient(180deg, var(--color-header-button-end) 0%, var(--color-header-accent) 100%);
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  transform: translateY(calc(11 * var(--to-rem)));
}
.p-top__results-unit {
  color: var(--color-header-button-end);
  font-feature-settings: "halt" on;
  font-family: var(--base-font-family);
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: 1;
}
@media screen and (min-width: 768px) {
  .p-top__results-unit {
    color: var(--color-header-button-end);
  }
}
.p-top__results-note {
  color: var(--color-header-button-end);
  font-feature-settings: "halt" on;
  font-family: var(--base-font-family);
  font-size: calc(12 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-top__results-note {
    color: var(--color-header-button-end);
    font-size: calc(18 * var(--to-rem));
    line-height: 1;
  }
}
.p-top__results-message {
  display: none;
  color: var(--color-header-accent);
  font-family: var(--base-font-family);
  font-feature-settings: "halt" on;
  font-size: calc(24 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-top__results-message {
    display: block;
    padding-top: calc(90 * var(--to-rem));
  }
}
.p-top__school-analysis {
  position: relative;
  overflow: hidden;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: calc(88 * var(--to-rem)) calc(16 * var(--to-rem)) calc(104 * var(--to-rem));
  background: var(--color-header-nav-bg);
}
@media screen and (min-width: 768px) {
  .p-top__school-analysis {
    padding: calc(90 * var(--to-rem)) calc(120 * var(--to-rem)) calc(88 * var(--to-rem));
  }
}
.p-top__school-analysis::before,
.p-top__school-analysis::after {
  content: "";
  position: absolute;
  background-repeat: no-repeat, no-repeat;
  pointer-events: none;
}
.p-top__school-analysis::before {
  top: 0;
  left: 0;
  width: calc(220 * var(--to-rem));
  height: calc(114.342 * var(--to-rem));
  aspect-ratio: 152/79;
  background-image:
    url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='237' viewBox='0 0 200 237' fill='none'%3E%3Cpath d='M0 237L200 0H0V237Z' fill='%23ff9e00' fill-opacity='0.8'/%3E%3C/svg%3E"),
    url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='456' height='134' viewBox='0 0 456 134' fill='none'%3E%3Cpath d='M0 134L456 0H0V134Z' fill='%23f05b0a' fill-opacity='0.8'/%3E%3C/svg%3E");
  background-position:
    left top,
    left top;
  /* デスクトップ 456×237 に対する 220 幅の比率でスケール */
  background-size:
    calc(96.4912280702 * var(--to-rem)) calc(114.3421052632 * var(--to-rem)),
    calc(220 * var(--to-rem)) calc(64.649122807 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-top__school-analysis::before {
    width: calc(456 * var(--to-rem));
    height: calc(237 * var(--to-rem));
    aspect-ratio: auto;
    background-size:
      calc(200 * var(--to-rem)) calc(237 * var(--to-rem)),
      calc(456 * var(--to-rem)) calc(134 * var(--to-rem));
  }
}
.p-top__school-analysis::after {
  right: 0;
  bottom: 0;
  width: calc(220 * var(--to-rem));
  height: calc(114.342 * var(--to-rem));
  aspect-ratio: 152/79;
  background-image:
    url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='237' viewBox='0 0 200 237' fill='none'%3E%3Cpath d='M200 0L0 237H200V0Z' fill='%23ff9e00' fill-opacity='0.8'/%3E%3C/svg%3E"),
    url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='456' height='134' viewBox='0 0 456 134' fill='none'%3E%3Cpath d='M456 0L0 134H456V0Z' fill='%23f05b0a' fill-opacity='0.8'/%3E%3C/svg%3E");
  background-position:
    right bottom,
    right bottom;
  background-size:
    calc(96.4912280702 * var(--to-rem)) calc(114.3421052632 * var(--to-rem)),
    calc(220 * var(--to-rem)) calc(64.649122807 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-top__school-analysis::after {
    width: calc(456 * var(--to-rem));
    height: calc(237 * var(--to-rem));
    aspect-ratio: auto;
    background-size:
      calc(200 * var(--to-rem)) calc(237 * var(--to-rem)),
      calc(456 * var(--to-rem)) calc(134 * var(--to-rem));
  }
}
.p-top__school-analysis-head {
  position: relative;
  z-index: 1;
  display: grid;
  justify-items: center;
}
.p-top__school-analysis-title {
  margin-top: calc(40 * var(--to-rem));
  color: var(--color-header-accent);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: var(--base-font-family);
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-top__school-analysis-title {
    font-size: calc(24 * var(--to-rem));
  }
}
.p-top__school-analysis-lead {
  margin-top: calc(12 * var(--to-rem));
  color: var(--color-school-badge);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: var(--base-font-family);
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
}
@media screen and (min-width: 768px) {
  .p-top__school-analysis-lead {
    margin-top: calc(9 * var(--to-rem));
    font-size: calc(18 * var(--to-rem));
    line-height: 1.5;
  }
}
.p-top__school-analysis-empty {
  margin: 0;
  color: var(--color-school-badge);
  text-align: center;
  font-feature-settings: "halt" on;
  font-family: var(--base-font-family);
  font-size: calc(14 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
}
.p-top__school-analysis-grid,
.p-analysis-more__school-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  row-gap: var(--p-top-school-analysis-grid-row-gap-sp);
  column-gap: calc(12 * var(--to-rem));
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: min(100%, 1080 * var(--to-rem));
  margin-top: calc(34 * var(--to-rem));
  margin-inline: auto;
}
@media screen and (min-width: 768px) {
  .p-top__school-analysis-grid,
  .p-analysis-more__school-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: calc(22 * var(--to-rem));
    column-gap: calc(24 * var(--to-rem));
    margin-top: calc(28 * var(--to-rem));
  }
}
/* single-analysis 「詳細な分析・対策」・詳細記事導線：2枚中心・md 以上は中央寄せ */
.p-analysis-more__school-grid,
.p-analysis-detail-index__grid {
  margin-top: calc(52 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-analysis-more__school-grid,
  .p-analysis-detail-index__grid {
    margin-top: calc(52 * var(--to-rem));
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    column-gap: calc(24 * var(--to-rem));
    row-gap: calc(22 * var(--to-rem));
  }
}
@media screen and (min-width: 768px) {
  .p-analysis-more__school-card,
  .p-analysis-detail-index__grid .p-top__school-card {
    flex: 0 0 calc((100% - 2 * 24 * var(--to-rem)) / 3);
    max-width: calc((100% - 2 * 24 * var(--to-rem)) / 3);
    width: auto;
  }
  /* 詳細記事カード（.p-top__school-card と併用）のみ最大幅 344 */
  .p-top__school-card.p-analysis-more__school-card {
    flex: 0 0 calc(344 * var(--to-rem));
    max-width: calc(344 * var(--to-rem));
  }
}
.p-top__school-card,
.p-analysis-more__school-card {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  display: block;
  height: auto;
  /*
   * SP〜タブレット幅（<=1024 は下記メディアで 2 列相当）では aspect-ratio 固定高さにすると、
   * 実機 Safari の文字サイズ調整・line-height: normal 等で rem 由来の余白・見出しが膨らみ、
   * カード高さが足りず h3 がパディング外にはみ出す。PC の DevTools 幅エミュレーションでは
   * html 16px 固定になりがちで再現しにくい。
   */
  aspect-ratio: auto;
  padding: calc(12 * var(--to-rem));
  border-radius: calc(10 * var(--to-rem));
  background-color: var(--color-white);
  background-image: url("/wp-content/themes/do-quest/assets/images/school-analysis-card-bg.png");
  background-position: 50% 50%;
  background-size: cover;
  background-repeat: no-repeat;
  overflow: visible;
  color: inherit;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
@media (any-hover: hover) {
  .p-top__school-card:hover,
  .p-analysis-more__school-card:hover {
    opacity: 0.85;
  }
}
.p-top__school-card:focus-visible,
.p-analysis-more__school-card:focus-visible {
  outline: 2px solid var(--color-header-accent);
  outline-offset: 2px;
}
@media screen and (min-width: 1025px) {
  .p-top__school-card,
  .p-analysis-more__school-card {
    aspect-ratio: var(--p-top-school-analysis-card-aspect-w) / var(--p-top-school-analysis-card-aspect-h);
  }
}
.p-top__school-card.p-analysis-more__school-card {
  max-width: min(100%, 344 * var(--to-rem));
}
.p-top__school-card img,
.p-analysis-more__school-card img {
  width: 100%;
  height: auto;
  aspect-ratio: 120/79;
  border-radius: calc(10 * var(--to-rem));
  object-fit: cover;
}
@media screen and (min-width: 768px) {
  .p-top__school-card img,
  .p-analysis-more__school-card img {
    width: calc(320 * var(--to-rem));
    height: calc(211 * var(--to-rem));
    aspect-ratio: 91/60;
  }
}
.p-top__school-card p,
.p-analysis-more__school-card p {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
  margin-top: calc(12 * var(--to-rem));
  overflow: hidden;
  color: var(--color-header-accent);
  font-feature-settings: "halt" on;
  font-family: var(--base-font-family);
  font-size: calc(12 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media screen and (min-width: 768px) {
  .p-top__school-card p,
  .p-analysis-more__school-card p {
    font-size: calc(14 * var(--to-rem));
    text-align: center;
  }
}
.p-top__school-card h3,
.p-analysis-more__school-card h3 {
  box-sizing: border-box;
  max-width: 100%;
  min-width: 0;
  overflow: hidden;
  color: var(--color-school-badge);
  font-feature-settings: "halt" on;
  font-family: var(--base-font-family);
  font-size: calc(18 * var(--to-rem));
  font-style: normal;
  font-weight: var(--fw-bold);
  line-height: normal;
  text-align: left;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media screen and (min-width: 768px) {
  .p-top__school-card h3,
  .p-analysis-more__school-card h3 {
    font-size: calc(24 * var(--to-rem));
    text-align: center;
  }
}
.p-top__school-analysis-button {
  position: relative;
  z-index: 1;
  margin: calc(24 * var(--to-rem)) auto 0;
}
@media screen and (min-width: 768px) {
  .p-top__school-analysis-button {
    margin-top: calc(47 * var(--to-rem));
  }
}
/* 1024px 以下は校舎分析グリード・カードを SP と同仕様（768〜1024 の md 上書きを抑止） */
@media screen and (width <= 1024px) {
  .p-top__school-analysis-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    row-gap: var(--p-top-school-analysis-grid-row-gap-sp);
    column-gap: calc(12 * var(--to-rem));
    margin-top: calc(34 * var(--to-rem));
  }
  .p-top__school-analysis .p-top__school-card img {
    width: 100%;
    height: auto;
    aspect-ratio: 120/79;
  }
  .p-top__school-analysis .p-top__school-card p {
    font-size: calc(12 * var(--to-rem));
    text-align: left;
  }
  .p-top__school-analysis .p-top__school-card h3 {
    font-size: calc(18 * var(--to-rem));
    text-align: left;
  }
  .p-top__school-analysis-button {
    margin-top: calc(24 * var(--to-rem));
  }
}
.p-works-list {
  padding-block: calc(48 * var(--to-rem)) calc(32 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-works-list {
    padding-block: calc(40 * var(--to-rem)) calc(60 * var(--to-rem));
  }
}
.p-works-list__filter {
  display: flex;
  flex-wrap: wrap;
  gap: calc(8 * var(--to-rem));
  margin-block-start: calc(32 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-works-list__filter {
    gap: calc(12 * var(--to-rem));
  }
}
.p-works-list__filter-btn {
  padding: calc(10 * var(--to-rem)) calc(20 * var(--to-rem));
  border: 1px solid var(--color-border);
  border-radius: 8px;
  background-color: transparent;
  color: var(--color-text);
  font-family: inherit;
  font-size: calc(14 * var(--to-rem));
  font-weight: var(--fw-medium);
  cursor: pointer;
  transition:
    background-color 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease;
}
@media screen and (min-width: 768px) {
  .p-works-list__filter-btn {
    padding: calc(10 * var(--to-rem)) calc(24 * var(--to-rem));
    font-size: calc(15 * var(--to-rem));
  }
}
@media (any-hover: hover) {
  .p-works-list__filter-btn:hover:not(.is-active) {
    border-color: var(--color-border);
    background-color: var(--color-gray);
  }
}
.p-works-list__filter-btn.is-active {
  border-color: var(--color-accent);
  background-color: var(--color-accent);
  color: var(--color-white);
}
.p-works-list__grid {
  --_card-widht: calc(320 * var(--to-rem));
  display: grid;
  gap: calc(24 * var(--to-rem));
  margin-block-start: calc(24 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-works-list__grid {
    grid-template-columns: repeat(auto-fill, minmax(min(var(--_card-widht), 100%), 1fr));
    gap: calc(32 * var(--to-rem));
    margin-block-start: calc(32 * var(--to-rem));
  }
}
.p-works-list__card {
  overflow: hidden;
  border-radius: 12px;
  box-shadow: 0 1px 3px var(--color-black-10);
}
@media (any-hover: hover) {
  .p-works-list__card:hover .p-works-list__thumbnail img {
    scale: 1.05;
  }
}
.p-works-list__link {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
}
.p-works-list__thumbnail {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16/9;
}
.p-works-list__thumbnail img {
  transition: scale 0.4s ease;
}
.p-works-list__badge {
  position: absolute;
  top: calc(12 * var(--to-rem));
  left: calc(12 * var(--to-rem));
  padding: calc(6 * var(--to-rem)) calc(12 * var(--to-rem));
  border-radius: 4px;
  background-color: var(--color-accent);
  color: var(--color-white);
  font-size: calc(12 * var(--to-rem));
  font-weight: var(--fw-medium);
}
.p-works-list__content {
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  gap: calc(8 * var(--to-rem));
  padding: calc(20 * var(--to-rem));
}
.p-works-list__card-title {
  color: var(--color-text);
  font-size: calc(16 * var(--to-rem));
  font-weight: var(--fw-bold);
  line-height: 1.5;
}
@media screen and (min-width: 768px) {
  .p-works-list__card-title {
    font-size: calc(18 * var(--to-rem));
  }
}
.p-works-list__client {
  color: oklch(from var(--color-text) l c h/70%);
  font-size: calc(12 * var(--to-rem));
}
@media screen and (min-width: 768px) {
  .p-works-list__client {
    font-size: calc(13 * var(--to-rem));
  }
}
.p-works-list__date {
  color: oklch(from var(--color-text) l c h/70%);
  font-size: calc(12 * var(--to-rem));
}
.p-works-list__empty {
  padding-block: calc(60 * var(--to-rem));
  color: oklch(from var(--color-text) l c h/70%);
  font-size: calc(16 * var(--to-rem));
  text-align: center;
}
@media screen and (min-width: 768px) {
  .p-works-list__empty {
    padding-block: calc(80 * var(--to-rem));
    font-size: calc(18 * var(--to-rem));
  }
}
:root {
  --clip-triangle-top: polygon(50% 0, 100% 100%, 0 100%);
  --clip-triangle-bottom: polygon(0 0, 100% 0, 50% 100%);
  --clip-triangle-right: polygon(0 0, 100% 50%, 0 100%);
  --clip-triangle-left: polygon(0 50%, 100% 0, 100% 100%);
  --clip-triangle-lower-left: polygon(0 0, 100% 100%, 0 100%);
  --clip-triangle-upper-left: polygon(0 0, 100% 0, 0 100%);
  --clip-triangle-lower-right: polygon(100% 0, 100% 100%, 0 100%);
  --clip-triangle-upper-right: polygon(0 0, 100% 0, 100% 100%);
}
@media (width <= 767px) {
  [data-only-device="md"] {
    display: none;
  }
}
@media (width >= 768px) {
  [data-only-device="sm"] {
    display: none;
  }
}
.u-sr-only {
  position: absolute;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(100%);
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  white-space: nowrap;
}
.u-text__marker {
  background: linear-gradient(transparent 75%, var(--color-orange) 75%);
}
.u-text__inline-block {
  display: inline-block;
}
.u-text__indent {
  padding-inline-start: 1em;
  text-indent: -1em;
}

.p-school-building-access,
.p-school-building-atmosphere,
.p-school-building-teacher-intro,
.p-school-building-atmosphere-slider-wrap {
  display: none;
}
