/*!
Theme Name: meito_lp
Theme URI: http://underscores.me/
Author: Underscores.me
Author URI: http://underscores.me/
Description: Description
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: meito_lp
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

meito_lp is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/

/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------
# Generic
	- Normalize
	- Box sizing
# Base
	- Typography
	- Elements
	- Links
	- Forms
## Layouts
# Components
	- Navigation
	- Posts and pages
	- Comments
	- Widgets
	- Media
	- Captions
	- Galleries
# plugins
	- Jetpack infinite scroll
# Utilities
	- Accessibility
	- Alignments

--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Generic
--------------------------------------------------------------*/

/* Normalize
--------------------------------------------- */

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
	 ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%;
  scroll-behavior: smooth;
}

/* Sections
	 ========================================================================== */

/**
 * Remove the margin in all browsers.
 */
body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */
main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  margin: 0;
}

/* Grouping content
	 ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
}

/* Text-level semantics
	 ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */
a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  text-decoration: underline;
  text-decoration: underline dotted;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1em;
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
	 ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */
img {
  border-style: none;
}

/* Forms
	 ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 100%;
  line-height: 1.15;
  margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */
button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */
fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *		`fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal;
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */
[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  padding: 0;
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

/* Interactive
	 ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */
details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Misc
	 ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */
template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */
[hidden] {
  display: none;
}

/* Box sizing
--------------------------------------------- */

/* Inherit box-sizing to more easily change it's value on a component level.
@link http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ */
*,
*::before,
*::after {
  box-sizing: inherit;
}

html {
  box-sizing: border-box;
}

/*--------------------------------------------------------------
# Base
--------------------------------------------------------------*/

/* Typography
--------------------------------------------- */
body,
button,
input,
select,
optgroup,
textarea {
  color: #595757;
  font-family: "Noto Sans JP", sans-serif;
  /*
  font-size: 1rem;
  line-height: 1.5;
  */
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  clear: both;
}

p {
  margin: 0;
}

dfn,
cite,
em,
i {
  font-style: italic;
}

blockquote {
  margin: 0 1.5em;
}

address {
  margin: 0 0 1.5em;
}

pre {
  background: #eee;
  font-family: "Noto Sans JP", sans-serif;
  line-height: 1.6;
  margin-bottom: 1.6em;
  max-width: 100%;
  overflow: auto;
  padding: 1.6em;
}

code,
kbd,
tt,
var {
  font-family: "Noto Sans JP", sans-serif;
}

abbr,
acronym {
  border-bottom: 1px dotted #666;
  cursor: help;
}

mark,
ins {
  background: #fff9c0;
  text-decoration: none;
}

big {
  font-size: 125%;
}

/* Elements
--------------------------------------------- */
body {
  background: #fff;
}

hr {
  background-color: #ccc;
  border: 0;
  height: 1px;
  margin-bottom: 1.5em;
}

ul,
ol {
  margin: 0;
}

ul {
  list-style: disc;
}

ol {
  list-style: decimal;
}

li > ul,
li > ol {
  margin-bottom: 0;
  margin: 0;
}

dt {
  font-weight: 700;
}

dd {
  margin: 0;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
  max-width: 100%;
}

img {
  height: auto;
  max-width: 100%;
}

figure {
  margin: 0;
}

table {
  margin: 0;
  width: 100%;
}

/* Links
--------------------------------------------- */
a {
  color: #4169e1;
  text-decoration: none;
}

a:visited {
  color: #800080;
}

a:hover,
a:focus,
a:active {
  color: #191970;
}

a:focus {
  outline: thin dotted;
}

a:hover,
a:active {
  outline: 0;
}

/* Forms
--------------------------------------------- */
button,
input[type="button"],
input[type="reset"],
input[type="submit"] {
  border: 1px solid;
  border-color: #ccc #ccc #bbb;
  border-radius: 3px;
  background: #e6e6e6;
  color: rgba(0, 0, 0, 0.8);
  line-height: 1;
  padding: 0.6em 1em 0.4em;
}

button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover {
  border-color: #ccc #bbb #aaa;
}

button:active,
button:focus,
input[type="button"]:active,
input[type="button"]:focus,
input[type="reset"]:active,
input[type="reset"]:focus,
input[type="submit"]:active,
input[type="submit"]:focus {
  border-color: #aaa #bbb #bbb;
}

input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="range"],
input[type="date"],
input[type="month"],
input[type="week"],
input[type="time"],
input[type="datetime"],
input[type="datetime-local"],
input[type="color"],
textarea {
  color: #666;
  border: 1px solid #ccc;
  border-radius: 3px;
  padding: 3px;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
input[type="number"]:focus,
input[type="tel"]:focus,
input[type="range"]:focus,
input[type="date"]:focus,
input[type="month"]:focus,
input[type="week"]:focus,
input[type="time"]:focus,
input[type="datetime"]:focus,
input[type="datetime-local"]:focus,
input[type="color"]:focus,
textarea:focus {
  color: #111;
}

select {
  border: 1px solid #ccc;
}

textarea {
  width: 100%;
}

/*--------------------------------------------------------------
# Layouts
--------------------------------------------------------------*/

/*--------------------------------------------------------------
# Components
--------------------------------------------------------------*/

/* Navigation
--------------------------------------------- */
.main-navigation {
  display: block;
  width: 100%;
}

.main-navigation ul {
  display: none;
  list-style: none;
  margin: 0;
  padding-left: 0;
}

.main-navigation ul ul {
  box-shadow: 0 3px 3px rgba(0, 0, 0, 0.2);
  float: left;
  position: absolute;
  top: 100%;
  left: -999em;
  z-index: 99999;
}

.main-navigation ul ul ul {
  left: -999em;
  top: 0;
}

.main-navigation ul ul li:hover > ul,
.main-navigation ul ul li.focus > ul {
  display: block;
  left: auto;
}

.main-navigation ul ul a {
  width: 200px;
}

.main-navigation ul li:hover > ul,
.main-navigation ul li.focus > ul {
  left: auto;
}

.main-navigation li {
  position: relative;
}

.main-navigation a {
  display: block;
  text-decoration: none;
}

/* Small menu. */
.menu-toggle,
.main-navigation.toggled ul {
  display: block;
}

@media screen and (min-width: 37.5em) {
  .menu-toggle {
    display: none;
  }

  .main-navigation ul {
    display: flex;
  }
}

.site-main .comment-navigation,
.site-main .posts-navigation,
.site-main .post-navigation {
  margin: 0 0 1.5em;
}

.comment-navigation .nav-links,
.posts-navigation .nav-links,
.post-navigation .nav-links {
  display: flex;
}

.comment-navigation .nav-previous,
.posts-navigation .nav-previous,
.post-navigation .nav-previous {
  flex: 1 0 50%;
}

.comment-navigation .nav-next,
.posts-navigation .nav-next,
.post-navigation .nav-next {
  text-align: end;
  flex: 1 0 50%;
}

/* Posts and pages
--------------------------------------------- */
.sticky {
  display: block;
}

.post,
.page {
  margin: 0 0 1.5em;
}

.updated:not(.published) {
  display: none;
}

.page-content,
.entry-content,
.entry-summary {
  margin: 1.5em 0 0;
}

.page-links {
  clear: both;
  margin: 0 0 1.5em;
}

/* Comments
--------------------------------------------- */
.comment-content a {
  word-wrap: break-word;
}

.bypostauthor {
  display: block;
}

/* Widgets
--------------------------------------------- */
.widget {
  margin: 0 0 1.5em;
}

.widget select {
  max-width: 100%;
}

/* Media
--------------------------------------------- */
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
  border: none;
  margin-bottom: 0;
  margin-top: 0;
  padding: 0;
}

/* Make sure logo link wraps around logo image. */
.custom-logo-link {
  display: inline-block;
}

/* Captions
--------------------------------------------- */
.wp-caption {
  margin-bottom: 1.5em;
  max-width: 100%;
}

.wp-caption img[class*="wp-image-"] {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.wp-caption .wp-caption-text {
  margin: 0.8075em 0;
}

.wp-caption-text {
  text-align: center;
}

/* Galleries
--------------------------------------------- */
.gallery {
  margin-bottom: 1.5em;
  display: grid;
  grid-gap: 1.5em;
}

.gallery-item {
  display: inline-block;
  text-align: center;
  width: 100%;
}

.gallery-columns-2 {
  grid-template-columns: repeat(2, 1fr);
}

.gallery-columns-3 {
  grid-template-columns: repeat(3, 1fr);
}

.gallery-columns-4 {
  grid-template-columns: repeat(4, 1fr);
}

.gallery-columns-5 {
  grid-template-columns: repeat(5, 1fr);
}

.gallery-columns-6 {
  grid-template-columns: repeat(6, 1fr);
}

.gallery-columns-7 {
  grid-template-columns: repeat(7, 1fr);
}

.gallery-columns-8 {
  grid-template-columns: repeat(8, 1fr);
}

.gallery-columns-9 {
  grid-template-columns: repeat(9, 1fr);
}

.gallery-caption {
  display: block;
}

/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/

/* Jetpack infinite scroll
--------------------------------------------- */

/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
  display: none;
}

/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
  display: block;
}

/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/

/* Accessibility
--------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}

.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  clip-path: none;
  color: #21759b;
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
  outline: 0;
}

/* Alignments
--------------------------------------------- */
.alignleft {
  /*rtl:ignore*/
  float: left;

  /*rtl:ignore*/
  margin-right: 1.5em;
  margin-bottom: 1.5em;
}

.alignright {
  /*rtl:ignore*/
  float: right;

  /*rtl:ignore*/
  margin-left: 1.5em;
  margin-bottom: 1.5em;
}

.aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.5em;
}

/* add_css
--------------------------------------------- */

@font-face {
  font-family: "Helvetica";
  font-style: normal;
  font-weight: normal;
  src: local("Helvetica"), url("Helvetica.woff") format("woff");
}

/***** header *****/

.header {
  width: 100%;
  height: 98.5px;
  background-color: #fff;
  border-bottom: 1px solid #948e7d;
  padding: 0 20px;
  display: flex;
  position: fixed;
  top: 0;
  z-index: 10;
}

.h_logo {
  width: 300px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.hlogo_l {
  width: 56.5px;
}

.hlogo_r {
  width: 146px;
}

/***** contents *****/

.center {
  text-align: center;
}

main {
  padding-top: 98.5px;
}

.con_area {
  padding-left: calc(60 / 1440 * 100vw);
  padding-right: calc(60 / 1440 * 100vw);
}

h2.ttl {
  font-size: calc(80 / 1440 * 100vw);
  font-weight: 600;
}

.green {
  color: #1a9f4c !important;
}

section#top01 {
  background-image: url(images/top_bg.webp);
  background-size: cover;
  background-position: center top;
  position: relative;
  width: 100%;
  margin-top: calc(-437 / 1440 * 100vw);
  height: calc(3790 / 1440 * 100vw);
}

.top01_01 {
  display: block;
  position: absolute;
  top: calc(585 / 1440 * 100vw);
  left: calc(64 / 1440 * 100vw);
  width: calc(1300 / 1440 * 100vw);
  height: calc(552 / 1440 * 100vw);
}

.top01_02 {
  display: block;
  position: absolute;
  top: calc(802 / 1440 * 100vw);
  left: calc(60 / 1440 * 100vw);
  width: calc(1320 / 1440 * 100vw);
  height: calc(552 / 1440 * 100vw);
  z-index: 1;
}

.top01_05 {
  display: block;
  position: absolute;
  top: calc(1497 / 1440 * 100vw);
  left: calc(531 / 1440 * 100vw);
  width: calc(370 / 1440 * 100vw);
  height: calc(552 / 1440 * 100vw);
  z-index: 0;
}

.top01_03 {
  display: block;
  position: absolute;
  top: calc(1424 / 1440 * 100vw);
  left: calc(58 / 1440 * 100vw);
  width: calc(164 / 1440 * 100vw);
  height: calc(552 / 1440 * 100vw);
}

.top01_04 {
  display: block;
  position: absolute;
  top: calc(1499 / 1440 * 100vw);
  left: calc(181 / 1440 * 100vw);
  width: calc(424 / 1440 * 100vw);
  height: calc(552 / 1440 * 100vw);
  transform: rotate(-10deg);
  z-index: 1;
}

.top01_06 {
  display: block;
  position: absolute;
  top: calc(2107 / 1440 * 100vw);
  left: calc(209 / 1440 * 100vw);
  width: calc(1000 / 1440 * 100vw);
  height: calc(552 / 1440 * 100vw);
  z-index: 0;
}

.top01_07_bg {
  display: block;
  position: absolute;
  top: calc(2592 / 1440 * 100vw);
  left: 0;
  width: 100%;
  background-color: #e41423;
  /*padding: calc(30 / 1440 * 100vw) calc(30 / 1440 * 100vw);*/
  padding: 0;
  z-index: 0;
}

.top01_07_bg_txt {
  display: block;
  position: absolute;
  font-size: calc(32 / 1440 * 100vw);
  font-weight: bold;
  text-align: center;
  top: calc(3046 / 1440 * 100vw);
  left: 0;
  width: 100%;
}

.top01_08_bg {
  display: block;
  position: absolute;
  top: calc(3079 / 1440 * 100vw);
  left: 0;
  width: 100%;
  padding: calc(60 / 1440 * 100vw) calc(60 / 1440 * 100vw);
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 22px;
}

.top01_08_con {
  width: calc(304 / 1440 * 100vw);
}

.top01_09 {
  width: calc(349 / 1440 * 100vw);
}

section#top02 {
  background-color: #c5892a;
  color: #fff;
  padding-top: calc(15 / 1440 * 100vw);
  padding-bottom: calc(340 / 1440 * 100vw);
}

section#top02 h2 {
  font-size: calc(125 / 1440 * 100vw);
  font-weight: 600;
  line-height: calc(57 / 46);
  letter-spacing: calc(14 / 1440 * 100vw);
}

section#top02 p {
  font-size: calc(60 / 1440 * 100vw);
  font-weight: 600;
  line-height: calc(110 / 1440 * 100vw);
  margin-top: calc(84 / 1440 * 100vw);
  /* letter-spacing: calc(1 / 1440 * 100vw);*/
}

section#top03 {
  padding-bottom: calc(280 / 1440 * 100vw);
}

.top03_01 {
  display: block;
  position: relative;
  margin-top: calc(140 / 1440 * 100vw);
  width: calc(1115 / 1440 * 100vw);
  margin-left: auto;
  margin-right: auto;
}

section#top03 h2 {
  margin-top: calc(80 / 1440 * 100vw);
  margin-bottom: calc(200 / 1440 * 100vw);
}

section#top03 h3 {
  text-align: center;
  font-size: calc(57 / 1440 * 100vw);
  font-weight: 600;
  margin-bottom: calc(88 / 1440 * 100vw);
}

section#top03 p {
  font-size: calc(47 / 1440 * 100vw);
  line-height: calc(110 / 1440 * 100vw);
}

.link {
  text-align: center;
  margin: calc(263 / 1440 * 100vw) 0 calc(356 / 1440 * 100vw);
}

.link a {
  border: 1px solid #72ad3f;
  border-radius: calc(100 / 1440 * 100vw);
  font-size: calc(57 / 1440 * 100vw);
  font-weight: 600;
  color: #72ad3f;
  padding: calc(30 / 1440 * 100vw) calc(90 / 1440 * 100vw);
}

section#top04 {
  /*margin-top: calc(80 / 1440 * 100vw);*/
  margin-bottom: calc(200 / 1440 * 100vw);
}

section#top04 h2 {
  margin-bottom: calc(160 / 1440 * 100vw);
}

.top04_con {
  width: calc(1367.5 / 1440 * 100vw);
  height: calc(765 / 1440 * 100vw);
  background-size: cover;
  margin: 0 auto calc(50 / 1440 * 100vw);
  position: relative;
}

.top04_box {
  text-align: center;
  color: #fff;
  position: absolute;
  width: 100%;
  bottom: calc(60 / 1440 * 100vw);
}

.top04_box h3 {
  font-size: calc(75 / 1440 * 100vw);
}

.top04_box p {
  font-size: calc(40 / 1440 * 100vw);
  margin-top: calc(50 / 1440 * 100vw);
}

.top04_01 {
  background-image: url(images/top04_01.png);
}

.top04_02 {
  background-image: url(images/top04_02.png);
}

.top04_03 {
  background-image: url(images/top04_03.png);
}

.top04_04 {
  background-image: url(images/top04_04.png);
}

.top04_05 {
  background-image: url(images/top04_05.png);
}

section#top05 {
  background-color: #d8e9c4;
  padding-top: calc(80 / 1440 * 100vw);
  padding-bottom: calc(120 / 1440 * 100vw);
}

section#top05 h2 {
  margin-bottom: calc(180 / 1440 * 100vw);
}

.top05_01 {
  width: calc(1412 / 1440 * 100vw);
  padding-left: calc(60 / 1440 * 100vw);
}

.top05_02 {
  width: calc(1412 / 1440 * 100vw);
  padding-right: calc(60 / 1440 * 100vw);
}

section#top06 {
  padding-top: calc(150 / 1440 * 100vw);
  padding-bottom: calc(120 / 1440 * 100vw);
}

section#top06 h2 {
  margin-bottom: calc(80 / 1440 * 100vw);
}

section#top06 .con {
}

section#top06 .con .box {
  text-align: center;
}

section#top06 .con .box .suu_box {
  display: flex;
  justify-content: center;
  align-items: flex-end;
}

section#top06 .con .box .suu_box .suu_b {
  font-size: calc(400 / 1440 * 100vw);
  font-weight: 600;
}

section#top06 .con .box .suu_box .suu_s {
  font-size: calc(80 / 1440 * 100vw);
  font-weight: 600;
  padding-bottom: calc(48 / 1440 * 100vw);
  padding-left: calc(37 / 1440 * 100vw);
}

.suu01 {
  width: calc(428 / 1440 * 100vw);
}

.suu02 {
  width: calc(616.5 / 1440 * 100vw);
}

.suu03 {
  width: calc(447.5 / 1440 * 100vw);
}

.suu04 {
  width: calc(524 / 1440 * 100vw);
  padding-left: calc(80 / 1440 * 100vw);
}

section#top06 .con .box p {
  font-size: calc(60 / 1440 * 100vw);
  font-weight: 600;
  margin-bottom: calc(200 / 1440 * 100vw);
}

section#top07 {
}

section#top07 h2 {
  color: #c5892a;
  margin-bottom: calc(160 / 1440 * 100vw);
}

.simple-tabs {
  padding: 0 20px;
}

.tabs-head {
  border-bottom: 5px solid #875f1c;
  display: flex;
  justify-content: center;
}

button.tab {
  flex: 0.5;
  border-left: 1px solid #fff;
  border-right: 1px solid #fff;
  border-radius: calc(25 / 1440 * 100vw) calc(25 / 1440 * 100vw) 0 0;
  border-top: 1px solid #fff;
  border-bottom: 0;
  background: #eeeeee;
  padding: calc(44 / 1440 * 100vw) 0;
}

button.is-active {
  background: #f2e7ad;
}

button.tab h3 {
  font-size: calc(60 / 1440 * 100vw);
}

button.tab p {
  font-size: calc(40 / 1440 * 100vw);
  margin-top: calc(20 / 1440 * 100vw);
}

.tabs-body {
  margin-top: calc(100 / 1440 * 100vw);
}

.waku01 {
  background-color: #c5892a;
  text-align: center;
  color: #fff;
  border-radius: calc(25 / 1440 * 100vw);
  padding: calc(70 / 1440 * 100vw) 0;
}

.waku01 h4 {
  font-size: calc(75 / 1440 * 100vw);
  font-weight: 600;
}

.waku01 p {
  font-size: calc(40 / 1440 * 100vw);
  font-weight: 300;
  margin-top: calc(30 / 1440 * 100vw);
}

.related-works__heading {
  font-size: calc(50 / 1440 * 100vw);
  font-weight: 600;
  border-radius: calc(25 / 1440 * 100vw) calc(25 / 1440 * 100vw) 0 0;
  padding: calc(44 / 1440 * 100vw) calc(50 / 1440 * 100vw);
  margin: calc(60 / 1440 * 100vw) 0 calc(65 / 1440 * 100vw);
}

.related-works--odd .related-works__heading {
  background-color: #c5892a;
  color: #f2e7ad;
}

.related-works--even .related-works__heading {
  background-color: #fff;
  color: #c5892a;
  border: 1px solid #c5892a;
}

article.item {
  border: 1px solid #ca9433;
  border-radius: calc(25 / 1440 * 100vw);
  margin-bottom: calc(110 / 1440 * 100vw);
  position: relative;
}

article.item .tag {
  position: absolute !important;
  top: -10px;
  left: 12px;
  color: #fff;
  font-weight: bold;
  width: calc(300 / 1440 * 100vw);
  height: calc(100 / 1440 * 100vw);
  font-size: calc(50 / 1440 * 100vw);
  display: flex;
  align-items: center;
  justify-content: center;
}

article.item .tag.tab-a {
  background-color: #72af2d;
}
article.item .tag.tab-b {
  background-color: #ee730c;
}

article.item h5 {
  font-size: calc(75 / 1440 * 100vw);
  font-weight: 600;
  color: #000321;
  text-align: center;
  border-bottom: 1px solid #ca9433;
  padding: calc(70 / 1440 * 100vw) 0;
}

article.item .cost {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: calc(20 / 1440 * 100vw);
}

article.item .cost .cost_l {
  font-size: calc(330 / 1440 * 100vw);
  font-weight: 600;
  color: #000321;
  font-family: "Helvetica";
}

article.item .cost .cost_r {
  font-size: calc(75 / 1440 * 100vw);
  font-weight: 600;
  color: #000321;
  padding-top: calc(63 / 1440 * 100vw);
  line-height: calc(76 / 1440 * 100vw);
}

.cost_box {
  background-color: #e41423;
  color: #fff;
  font-size: calc(40 / 1440 * 100vw);
  margin: auto;
  border-radius: calc(25 / 1440 * 100vw);
  width: calc(600 / 1440 * 100vw);
  height: calc(115 / 1440 * 100vw);
  display: flex;
  justify-content: center;
  align-items: center;
}

.cost_box_link {
  width: 80%;
  height: calc(310 / 1440 * 100vw);
  font-size: calc(50 / 1440 * 100vw);
  background-color: unset;
  padding-bottom: 30px;
}

.cost_box_link a {
  width: 100%;
  height: 100%;
  /*
  background-color: #ee730c;
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: calc(25 / 1440 * 100vw);
  transition: 0.5s;
  */
}

.cost_box_link a:hover {
  /*
  border-radius: calc(25 / 1440 * 100vw);
  background-color: rgb(238 115 12 / 70%);
  transition: 0.5s;
  */
}

.cost_box_link_no {
  background-color: unset;
  color: #73af3d;
  width: 100%;
  font-size: calc(50 / 1440 * 100vw);
  font-weight: bold;
  margin-bottom: 30px;
}

article.item .schedule {
  display: flex;
  margin: calc(60 / 1440 * 100vw);
  align-items: center;
}

article.item .schedule .schedule_l {
  flex: 50%;
  text-align: center;
  font-size: calc(40 / 1440 * 100vw);
  color: #000321;
  font-weight: 600;
}

article.item .schedule .schedule_r {
  flex: 50%;
  text-align: center;
  font-size: calc(50 / 1440 * 100vw);
  color: #000321;
  font-weight: 400;
  border-left: 1px solid #f2e7ad;
  padding: calc(52 / 1440 * 100vw) calc(58 / 1440 * 100vw)
    calc(20 / 1440 * 100vw) calc(66 / 1440 * 100vw);
}

article.item .schedule .schedule_r .box {
  display: flex;
  justify-content: space-between;
  margin: 0 calc(50 / 1440 * 100vw) calc(40 / 1440 * 100vw);
}

article.item .subject {
  border-top: 1px solid #ca9433;
  padding: calc(70 / 1440 * 100vw) 0;
}

article.item .subject .box {
  font-size: calc(40 / 1440 * 100vw);
  color: #000321;
  display: flex;
  justify-content: center;
  gap: calc(30 / 1440 * 100vw);
  margin: 0 calc(40 / 1440 * 100vw);
}

article.item .subject .box .box_l {
  font-weight: 600;
  flex: calc(80 / 1440 * 100vw);
}

article.item .subject .box .box_r {
  font-weight: 300;
  flex: calc(1090 / 1440 * 100vw);
}

.related-works--odd article.item {
  background-color: #f2e7ad;
}

.related-works--odd article.item .schedule {
  background-color: #fff;
}

.related-works--even article.item .schedule {
  background-color: #f2e7ad;
  border: 1px solid #ca9433;
}

.related-works--even article.item .schedule .schedule_r {
  border-left: 1px solid #ca9433;
}

/* 親：スタック作成（z-index は付けない） */
article.item.item--ended {
  position: relative;
}

/* 最前面：背景画像（少し小さく） */
article.item.item--ended::before {
  content: "";
  position: absolute;
  inset: 0;
  background: url(images/top07_sumi.png) center/85% auto no-repeat; /* 85%は任意 */
  z-index: 2; /* 画像が一番上 */
  pointer-events: none; /* クリック貫通 */
}

/* 中間：色オーバーレイ（全面） */
article.item.item--ended::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgb(34 24 21 / 70%);
  z-index: 1; /* 色がその下 */
  pointer-events: none;
  border-radius: calc(25 / 1440 * 100vw);
}

/* 最下段：表示コンテンツ */
article.item.item--ended > * {
  position: relative;
  z-index: 0; /* コンテンツを最背面に固定 */
}

.merit {
}

.merit h2 {
  margin-top: calc(230 / 1440 * 100vw);
  margin-bottom: calc(160 / 1440 * 100vw);
}

section#top07 h2 span {
  color: #221815;
}

.etc-block {
}

article.merit-item {
  text-align: center;
}

h3.merit-title {
  color: #f2e7ad;
  background-color: #c5892a;
  border-radius: calc(100 / 1440 * 100vw);
  width: calc(1110 / 1440 * 100vw);
  height: calc(200 / 1440 * 100vw);
  font-size: calc(60 / 1440 * 100vw);
  display: flex;
  justify-content: center;
  align-items: center;
  margin: auto;
}

.merit-text {
  font-size: calc(40 / 1440 * 100vw);
  color: #221815;
  margin-top: calc(60 / 1440 * 100vw);
  margin-bottom: calc(150 / 1440 * 100vw);
  line-height: calc(64 / 1440 * 100vw);
}

.common {
  background-color: #eeeeee;
  padding-bottom: calc(200 / 1440 * 100vw);
}

section#top07 .common h2 {
  color: #221815 !important;
  padding-top: calc(100 / 1440 * 100vw);
  padding-bottom: calc(100 / 1440 * 100vw);
  border-bottom: 1px solid #817b7a;
  margin: 0;
}

.common article.merit-item {
  border-bottom: 1px solid #817b7a;
  text-align: left;
  padding: 0 calc(200 / 1440 * 100vw);
}

.common h3.merit-title {
  color: #271e1c;
  background: none;
  width: auto;
  height: auto;
  font-size: calc(40 / 1440 * 100vw);
  display: block;
  margin-top: calc(60 / 1440 * 100vw);
}

.common .merit-text {
  margin-top: calc(30 / 1440 * 100vw);
  margin-bottom: calc(60 / 1440 * 100vw);
  line-height: calc(64 / 1440 * 100vw);
}

section#top08 {
  padding-top: calc(150 / 1440 * 100vw);
  padding-bottom: calc(120 / 1440 * 100vw);
}

section#top08 .con {
  margin-top: calc(150 / 1440 * 100vw);
}

section#top08 .con .box:last-child {
  margin-top: calc(300 / 1440 * 100vw);
}

section#top08 .con .box .img {
}

section#top08 .con .box .name {
  font-size: calc(60 / 1440 * 100vw);
  font-weight: 600;
  color: #221815;
  text-align: center;
  margin-top: calc(90 / 1440 * 100vw);
}

section#top08 .con .box .sta {
  font-size: calc(50 / 1440 * 100vw);
  font-weight: 300;
  text-align: center;
  color: #221815;
  margin-top: calc(60 / 1440 * 100vw);
}

section#top08 .con .box p {
  font-size: calc(47 / 1440 * 100vw);
  font-weight: 300;
  color: #221815;
  line-height: calc(110 / 1440 * 100vw);
  margin-top: calc(130 / 1440 * 100vw);
}

section#top09 {
  padding-top: calc(150 / 1440 * 100vw);
  padding-bottom: calc(300 / 1440 * 100vw);
}

section#top09 .con {
  margin-top: calc(200 / 1440 * 100vw);
}

section#top09 .con .box {
}

section#top09 .con .box h3 {
  font-size: calc(60 / 1440 * 100vw);
  color: #f3e8aa;
  background-color: #259d53;
  border-radius: calc(100 / 1440 * 100vw);
  width: calc(1100 / 1440 * 100vw);
  height: calc(200 / 1440 * 100vw);
  display: flex;
  justify-content: center;
  align-items: center;
  margin: auto;
}

section#top09 .con .box p {
  font-size: calc(47 / 1440 * 100vw);
  line-height: calc(110 / 1440 * 100vw);
  text-align: center;
  margin-top: calc(60 / 1440 * 100vw);
}

section#top09 .con .ya {
  text-align: center;
  width: calc(60 / 1440 * 100vw);
  margin: calc(80 / 1440 * 100vw) auto;
}

section#top10 {
  background-color: #c5892a;
  padding-top: calc(150 / 1440 * 100vw);
  padding-bottom: calc(350 / 1440 * 100vw);
}

section#top10 h2 {
  color: #fff;
}

section#top10 .ttl_txt {
  font-size: calc(50 / 1440 * 100vw);
  padding-left: calc(60 / 1440 * 100vw);
  padding-right: calc(60 / 1440 * 100vw);
  margin: calc(130 / 1440 * 100vw) 0 calc(210 / 1440 * 100vw);
  color: #fff;
}

.contact {
}

.contact .box {
}

.contact .box .ttl {
  margin-top: calc(80 / 1440 * 100vw);
  margin-bottom: calc(40 / 1440 * 100vw);
}

.contact .box .ttl p {
  font-size: calc(50 / 1440 * 100vw);
  font-weight: 600;
  color: #fff;
}

.contact .box .ttl p span {
  color: #f3de9b;
}

.contact .box .txt {
  margin-bottom: calc(85 / 1440 * 100vw);
}

.contact .box .txt p {
}

.contact .box .txt span {
}

.contact .box .txt span input[type="text"],
.contact .box .txt span input[type="email"],
.contact .box .txt span input[type="tel"],
.contact .box .txt span select,
.contact .box p span textarea {
  width: 100%;
  height: calc(125 / 1440 * 100vw);
  font-size: calc(50 / 1440 * 100vw);
  font-weight: 300;
  border-radius: calc(20 / 1440 * 100vw);
  padding: 0 calc(50 / 1440 * 100vw);
}

.contact .box p span textarea {
  height: calc(300 / 1440 * 100vw);
  padding: calc(50 / 1440 * 100vw) calc(50 / 1440 * 100vw);
}

.con_area.bg_gr {
  background-color: #259d53;
  padding: calc(60 / 1440 * 100vw) calc(60 / 1440 * 100vw);
  margin-top: calc(130 / 1440 * 100vw);
}

.contact .box .pp {
  background-color: #fff;
  font-size: calc(30 / 1440 * 100vw);
  line-height: calc(60 / 1440 * 100vw);
  padding: calc(70 / 1440 * 100vw);
  height: calc(500 / 1440 * 100vw);
  overflow-y: auto;
  margin-top: calc(150 / 1440 * 100vw);
}

.contact .box .pp h3 {
  margin-bottom: calc(35 / 1440 * 100vw);
}

.contact .box .pp p {
  margin-bottom: calc(35 / 1440 * 100vw);
}

span.wpcf7-list-item {
  margin: auto;
  width: 100%;
}

span.wpcf7-list-item label {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: calc(40 / 1440 * 100vw);
  margin: calc(70 / 1440 * 100vw) 0 calc(180 / 1440 * 100vw);
}

span.wpcf7-list-item label input[type="checkbox"] {
  transform: scale(2);
  border: 0;
  border-radius: 0;
}

span.wpcf7-list-item label span {
  font-size: calc(40 / 1440 * 100vw);
  color: #fff;
  font-weight: 600;
}

.submit {
}

.submit p {
  width: 100%;
  display: flex;
  justify-content: center;
}

.submit p input {
  width: calc(1000 / 1440 * 100vw);
}

.multiform p {
  width: 100%;
}

.multiform .txt {
}

.multiform .txt span {
  width: 100%;
  height: calc(125 / 1440 * 100vw);
  font-size: calc(50 / 1440 * 100vw);
  font-weight: 300;
  border-radius: calc(20 / 1440 * 100vw);
  padding: 0 calc(50 / 1440 * 100vw);
  background-color: #fff;
  display: flex;
  align-items: center;
}

.retune {
  width: 100%;
  text-align: center;
  margin-top: calc(60 / 1440 * 100vw);
}

.retune input {
  font-size: calc(50 / 1440 * 100vw);
}

section#top11 {
  background-image: url(images/footer_bg.webp);
  background-size: cover;
  background-position: center top;
  position: relative;
  width: 100%;
  height: calc(1145 / 1440 * 100vw);
  margin-bottom: calc(350 / 1440 * 100vw);
}

section#top11 .top01_01 {
  display: block;
  position: absolute;
  top: calc(-60 / 1440 * 100vw);
  left: calc(64 / 1440 * 100vw);
  width: calc(1300 / 1440 * 100vw);
  height: calc(552 / 1440 * 100vw);
}

section#top11 .top01_02 {
  display: block;
  position: absolute;
  top: calc(155 / 1440 * 100vw);
  left: calc(60 / 1440 * 100vw);
  width: calc(1320 / 1440 * 100vw);
  height: calc(552 / 1440 * 100vw);
  z-index: 1;
}

section#top11 .top01_07_bg {
  display: block;
  position: absolute;
  top: calc(905 / 1440 * 100vw);
  left: 0;
  width: 100%;
  background-color: #e41423;
  padding: 0;
  z-index: 0;
}

/***** footer *****/

footer {
  text-align: center;
  margin: calc(120 / 1440 * 100vw) 0;
}

footer .img {
  width: calc(327.5 / 1440 * 100vw);
  margin: auto;
}

footer .add {
  font-size: calc(40 / 1440 * 100vw);
  font-weight: 400;
  line-height: calc(60 / 1440 * 100vw);
  margin-top: calc(120 / 1440 * 100vw);
}

footer .add address {
  font-style: normal;
  margin: 0;
}

footer .copy {
  font-size: calc(40 / 1440 * 100vw);
  font-weight: 600;
  margin-top: calc(120 / 1440 * 100vw);
}

.wpcf7-turnstile.cf-turnstile {
  text-align: center;
  margin-top: 60px;
}

/***** menu *****/

:root {
  --header-h: 98.5px; /* あなたのヘッダー高に合わせる */
  /* ▼ ハンバーガーの見た目を一元管理 */
  --hb-w: 24px; /* 棒の長さ */
  --hb-h: 2px; /* 棒の太さ */
  --hb-gap: 6px; /* 棒どうしの間隔 */
  --hb-color: #333; /* 棒の色 */

  /* ▼ toTop の高さ（目安）。重なり回避用の余白にも利用 */
  --totop-h: calc(120 / 1440 * 100vw);
  --totop-gap: clamp(24px, calc(40 / 1440 * 100vw), 40px);
}

.header .nav_menu {
  margin-left: auto;
  display: flex;
  align-items: center;
}

/* ===== ハンバーガー（3本とも同じ長さ & X でも同じ長さ） ===== */
.hamburger {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  cursor: pointer;
  position: relative;
}
.hamburger .bar {
  position: absolute;
  left: 50%;
  top: 50%;
  width: var(--hb-w);
  height: var(--hb-h);
  background: var(--hb-color);
  transform: translate(-50%, -50%);
  transform-origin: center center;
  transition: transform 0.25s ease, opacity 0.2s ease, background 0.2s ease;
}
.hamburger .bar::before,
.hamburger .bar::after {
  content: "";
  position: absolute;
  left: 50%;
  width: var(--hb-w);
  height: var(--hb-h);
  background: var(--hb-color);
  transform: translateX(-50%);
  transform-origin: center center;
  transition: transform 0.25s ease, top 0.25s ease, opacity 0.2s ease;
}
.hamburger .bar::before {
  top: calc(-1 * (var(--hb-gap) + var(--hb-h)));
}
.hamburger .bar::after {
  top: calc(var(--hb-gap) + var(--hb-h));
}
.hamburger.is-open .bar {
  transform: translate(-50%, -50%) rotate(45deg);
}
.hamburger.is-open .bar::before {
  opacity: 0;
}
.hamburger.is-open .bar::after {
  top: 0;
  transform: translateX(-50%) rotate(-90deg);
}

/* ===== ドロワー：ヘッダーの下から右側に出す ===== */
.drawer {
  position: fixed;
  top: var(--header-h);
  right: 0;
  width: calc(1200 / 1440 * 100vw);
  height: calc(100dvh - var(--header-h));
  background: #fff;
  transform: translateX(100%);
  transition: transform 0.3s;
  z-index: 20;
  padding: calc(60 / 1440 * 100vw);
  /* ▼ ここを変更：中身だけスクロールさせるため Drawer 自体は hidden */
  overflow: hidden;

  /* ▼ 最下段に固定エリアを作るためにグリッド化 */
  display: grid;
  grid-template-rows: 1fr auto; /* 上=スクロール領域、下=固定領域(totop) */
}
.drawer.is-open {
  transform: translateX(0);
}

/* 背面の暗幕（ヘッダーは覆わない） */
.drawer__overlay {
  position: fixed;
  top: var(--header-h);
  left: 0;
  width: 100%;
  height: calc(100dvh - var(--header-h));
  background: rgba(0, 0, 0, 0.4);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s;
  z-index: 15;
}
.drawer__overlay.is-open {
  opacity: 1;
  pointer-events: auto;
}

/* メニュー体裁（最低限） */
/* ▼ リスト自体をスクロール領域にする（Drawer の 1行目に収まる） */
.drawer__list {
  list-style: none;
  margin: 0;
  padding: 0;
  overflow: auto; /* スクロールはここで */
  -webkit-overflow-scrolling: touch; /* モバイル慣性 */
  padding-bottom: calc(var(--totop-h) + var(--totop-gap));
}
.drawer__list li {
  margin: 12px 0;
}
.drawer__list a {
  display: block;
  text-decoration: none;
  color: #000;
  padding: calc(20 / 1440 * 100vw) 0;
  font-size: calc(50 / 1440 * 100vw);
  font-weight: 600;
}

/* ▼ 最下段の固定エリア（Drawer の 2行目に常に表示） */
.totop {
  /* 以前の position:absolute は削除 */
  align-self: end; /* グリッドの最下段に配置 */
  justify-self: start; /* 位置はお好みで start/end/center */
  width: calc(292 / 1440 * 100vw);
  height: var(--totop-h); /* 目安の高さ */
  margin-bottom: calc(var(--totop-gap) + env(safe-area-inset-bottom));
  z-index: 1; /* リストより前に */
}

.drawer__back {
  display: inline-block;
  margin-top: 16px;
  font-size: 0.875rem;
  text-decoration: none;
}

body.nav-open {
  overflow: hidden;
}

[id] {
  scroll-margin-top: calc(var(--header-h) + 8px);
}

/***** PC用(1170px以上) *****/

@media screen and (min-width: 1170px) {
  .con_area {
    padding: 0 50px;
  }

  h2.ttl {
    font-size: 30px;
  }

  section#top03,
  section#top04,
  section#top05 .top05_area,
  section#top06,
  section#top07,
  section#top08,
  section#top09,
  section#top10 .contact {
    max-width: 1170px;
    margin: auto;
    padding-bottom: 150px;
  }

  .top03_01 {
    max-width: 500px;
  }

  section#top03 h2 {
    margin: 30px 0 50px;
  }

  section#top03 h3 {
    font-size: 24px;
    margin-bottom: 40px;
  }

  section#top03 p {
    font-size: 16px;
    line-height: 32px;
  }

  .link {
    margin: 80px 0 120px;
  }

  .link a {
    font-size: 24px;
  }

  .top03_02 {
    width: 500px;
    margin: auto;
  }

  .top04_flex {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
  }

  .top04_con {
    width: calc((100% / 2) - 20px);
    height: 330px;
    margin: 0;
    border-radius: 15px;
  }

  .top04_box {
    bottom: 40px;
  }

  .top04_box h3 {
    font-size: 24px;
  }

  .top04_box p {
    font-size: 20px;
    margin-top: 20px;
  }

  section#top04 h2,
  section#top05 h2,
  section#top06 h2,
  section#top07 h2,
  section#top09 h2,
  section#top10 h2 {
    margin-bottom: 100px;
  }

  section#top05 {
    padding: 150px 0 100px;
  }

  .top05_flex {
    display: flex;
  }

  .top05_01 {
  }

  .top05_02 {
    margin-top: -26px;
  }

  section#top06 .con {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
  }

  section#top06 .con .box {
    width: calc((100% / 2) - 20px);
  }

  .suu01,
  .suu02,
  .suu03,
  .suu04 {
    width: auto;
    padding-right: 10px;
  }

  .suu01 img,
  .suu02 img,
  .suu03 img,
  .suu04 img {
    width: auto;
    height: 150px;
  }

  section#top06 .con .box .suu_box .suu_b {
    font-size: unset;
  }

  section#top06 .con .box .suu_box .suu_s {
    font-size: 60px;
    padding: 0;
  }

  section#top06 .con .box p {
    font-size: 30px;
    margin: 40px;
  }

  button.tab h3 {
    font-size: 24px;
  }

  button.tab p {
    font-size: 16px;
    margin-top: 20px;
  }

  button.tab {
    padding: 30px;
  }

  .tabs-body {
    margin-top: 50px;
  }

  .waku01 {
    padding: 30px;
  }

  .waku01 h4 {
    font-size: 24px;
  }

  .waku01 p {
    font-size: 16px;
    margin-top: 20px;
  }

  .related-works__heading {
    font-size: 30px;
    text-align: center;
    padding: 30px;
    margin: 30px 0;
  }

  .related-works__list {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
  }

  article.item {
    width: calc((100% / 2) - 10px);
    margin: 0 0 30px;
  }

  article.item h5 {
    font-size: 30px;
    padding: 50px 0;
  }

  article.item .cost {
    margin: 30px 0;
  }

  article.item .cost .cost_l {
    font-size: 150px;
  }

  article.item .cost .cost_r {
    font-size: 70px;
    line-height: 65px;
    padding: 0;
  }

  .cost_box {
    font-size: 24px;
    width: 378px;
    height: 75px;
    border-radius: 15px;
  }

  .cost_box_link {
    width: 80%;
    height: 115px;
  }

  .cost_box_link_no {
    width: 100%;
  }

  article.item .schedule {
    margin: 20px;
  }

  article.item .schedule .schedule_l {
    font-size: 20px;
  }

  article.item .schedule .schedule_r {
    font-size: 20px;
    padding: 30px 0 20px;
  }

  article.item .schedule .schedule_r .box {
    margin: 0 30px 20px;
  }

  article.item .subject {
    padding: 30px 0;
  }

  article.item .subject .box {
    font-size: 20px;
    margin: 0 20px;
  }

  article.item .subject .box .box_l {
    flex: 6%;
  }

  article.item .subject .box .box_r {
    flex: 80%;
  }

  article.item .tag {
    top: -18px;
    left: 35px;
    width: 150px;
    height: 40px;
    font-size: 24px;
  }

  section#top07 h2 {
    margin-top: 100px;
  }

  .etc-block {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
  }

  article.merit-item {
    width: calc((100% / 2) - 20px);
  }

  h3.merit-title {
    width: 100%;
    height: 90px;
    font-size: 24px;
    border-radius: 50px;
  }

  .merit-text {
    font-size: 16px;
    margin: 30px 0 40px;
    line-height: 32px;
  }

  .common {
    padding-bottom: 100px;
  }

  section#top07 .common h2 {
    padding: 60px;
    margin-top: 60px;
  }

  .common .etc-block {
  }

  .common .etc-block article.merit-item {
    padding: 0 40px;
  }

  .common h3.merit-title {
    font-size: 20px;
    margin-top: 30px;
  }

  .common .merit-text {
    font-size: 16px;
    margin: 15px 0 30px;
    line-height: 32px;
  }

  section#top08 {
    padding: 0;
  }

  section#top08 .con {
    margin-top: 100px;
  }

  section#top08 .con .box .img {
    text-align: center;
  }

  section#top08 .con .box .img img {
    width: 300px;
  }

  section#top08 .con .box .name {
    font-size: 30px;
    margin-top: 30px;
  }

  section#top08 .con .box .sta {
    font-size: 24px;
    margin-top: 15px;
  }

  section#top08 .con .box p {
    font-size: 16px;
    line-height: 32px;
    margin-top: 30px;
  }

  section#top08 .con .box:last-child {
    margin-top: 100px;
  }

  section#top09 .con {
    margin-top: 30px;
  }

  section#top09 .con .box h3 {
    width: 80%;
    height: 90px;
    font-size: 30px;
  }

  section#top09 .con .box p {
    font-size: 16px;
    margin-top: 30px;
    line-height: 32px;
  }

  section#top09 .con .ya {
    width: 50px;
    margin: 60px auto;
  }

  section#top10 {
    padding: 100px 0 150px;
  }

  section#top10 .ttl_txt {
    font-size: 24px;
    padding-left: 0;
    padding-right: 0;
    max-width: 1170px;
    margin: 0 auto 90px;
  }

  .contact .box .ttl {
    margin: 30px 0 20px;
  }

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

  .contact .box .txt {
    margin-bottom: 45px;
  }

  .contact .box .txt span input[type="text"],
  .contact .box .txt span input[type="email"],
  .contact .box .txt span input[type="tel"],
  .contact .box .txt span select,
  .contact .box p span textarea {
    height: 60px;
    font-size: 20px;
    padding: 0 40px;
    border-radius: 15px;
  }

  .con_area.bg_gr {
    padding: 30px 55px;
    margin: 0;
  }

  .contact .box p span textarea {
    height: 300px;
    padding: 40px;
  }

  .txt_area {
  }

  .contact .box .pp {
    margin-top: 80px;
    font-size: 16px;
    line-height: 32px;
    height: 400px;
  }

  span.wpcf7-list-item label {
    margin: 60px 0 150px;
    gap: 30px;
  }

  span.wpcf7-list-item label span {
    font-size: 24px;
  }

  .submit p input {
    width: 700px;
  }

  footer {
    margin: 100px;
  }

  footer .img {
    width: 200px;
  }

  footer .add {
    font-size: 16px;
    line-height: 32px;
    margin-top: 50px;
  }

  footer .copy {
    font-size: 16px;
    margin-top: 80px;
  }

  section#top02 {
    padding: 60px 0 150px;
  }

  section#top02 h2 {
    font-size: 80px;
    letter-spacing: 4px;
  }

  section#top02 p {
    font-size: 45px;
    line-height: 103.76px;
    margin-top: 77px;
  }

  .drawer {
    height: 100vh;
    padding: 20px 60px;
  }

  .drawer__list {
    padding-bottom: 0;
  }

  .drawer__list a {
    font-size: 20px;
    padding: 10px 0;
  }

  .totop {
    width: 10%;
  }

  /* ★ PCブレイクポイントで舞台を固定する */

  /* 舞台：背景は横100%、コンテンツは1170px固定（前回案） */
  section#top01 {
    background: none !important;
    /* 既に使っているならこのままでもOK */
    margin-top: -534px; /* ← あなたの調整はそのままでOK */
    height: 2930px;
  }

  /* 2) 背景は top01_bg に“上固定＆全面貼り付け” */
  section#top01 .top01_bg {
    position: relative;
    width: 100%;
    height: 100%;
    /* ここ重要：TOP固定で、伸縮しても常に全域を塗り潰す */
    background-image: url(images/top_bg.webp);
    background-repeat: no-repeat;
    background-position: 50% calc(300 / 1440 * 100%);
    background-size: cover;
  }

  /* コンテンツは1170pxの舞台のまま */
  section#top01 .con {
    position: relative; /* ここが各 .top01_xx の基準 */
    width: 1170px;
    margin: 0 auto;
    /* 必要なら高さは既存のまま／不要ならautoでもOK */
    z-index: 2;
  }

  /* ▼▼ ここから “縦方向のvw禁止” のリセット ▼▼ */
  /* すべての top01_* の縦方向 vw 指定を潰す */
  .top01_01,
  .top01_02,
  .top01_03,
  .top01_04,
  .top01_05,
  .top01_06,
  .top01_07_bg,
  .top01_08_bg,
  .top01_08_con,
  .top01_09 {
    position: absolute; /* 既定の座標系は .con */
    height: auto; /* 高さの vw 指定があれば打ち消す */
    margin: 0; /* 余白は必要箇所だけ個別に付与する */
    padding: 0; /* 下でpxに付け直す */
  }

  /* 上部マージン（=top）を “舞台高” 比率で固定（例） */
  .top01_01 {
    left: calc(64 / 1440 * 100%);
    width: calc(1300 / 1440 * 100%);
    top: 580px;
  }
  .top01_02 {
    left: calc(60 / 1440 * 100%);
    width: calc(1320 / 1440 * 100%);
    top: 733px;
    z-index: 1;
  }
  .top01_03 {
    left: calc(42 / 1440 * 100%);
    width: calc(171 / 1440 * 100%);
    top: 1365px;
    z-index: 2;
  }
  .top01_04 {
    left: calc(137 / 1440 * 100%);
    width: calc(503 / 1440 * 100%);
    top: 1298px;
    transform: rotate(-10deg);
    z-index: 1;
  }
  .top01_05 {
    left: calc(576 / 1440 * 100%);
    width: calc(306 / 1440 * 100%);
    top: 1311px;
    z-index: 0;
  }
  .top01_06 {
    display: none;
  }

  /* コンテンツ間ブロックの余白は px 固定（=マージン固定） */
  .top01_07_bg {
    left: 0;
    width: 100%;
    top: 1900px;
    padding: 49px 49px;
    z-index: 2;
  }
  .top01_07 {
    width: 1170px;
    margin: auto;
  }

  .top01_07_bg_txt {
    left: 0;
    width: 100%;
    font-size: 20px;
    top: 2370px;
    z-index: 1;
  }

  .top01_08_bg {
    left: 0;
    width: 100%;
    /*top: 2555px;*/
    top: 2630px;
    padding: 49px 49px; /* ← 同上 */
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 22px; /* これはそのまま px でOK（固定） */
  }
  .top01_08_con {
    width: calc(304 / 1440 * 100%);
    left: 150px;
  }
  .top01_09 {
    width: calc(349 / 1440 * 100%);
  }

  .top01_08_con:last-child {
    left: 785px;
  }

  #top01 .top01_bg {
    position: relative; /* 擬似要素の基準にする */
    --grad-h: clamp(160px, 16vw, 360px); /* ← グラデの高さ（調整用） */
  }

  /* 最下段にだけ縦グラデを重ねる（背景の上・コンテンツの下） */
  #top01 .top01_bg::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: calc(1600 / 3790 * 100%);
    background: linear-gradient(to top, #c5892a 0%, rgba(197, 137, 42, 0) 100%);
    pointer-events: none;
    z-index: 0; /* 背景より前、コンテンツより後ろ */
  }

  .multiform .box .txt {
    margin-bottom: 45px;
  }

  .multiform .box p span {
    height: 60px;
    font-size: 20px;
    padding: 0 40px;
    border-radius: 15px;
  }

  .retune {
    margin-top: 60px;
  }

  .retune input {
    font-size: 34px;
  }

  section#top11 {
    background: none !important;
    margin-top: 100px;
    height: 1410px;
    margin-bottom: -400px;
  }

  .top11_bg {
    position: relative;
    width: 100%;
    height: calc(875 / 1440 * 100%);
    background-image: url(images/footer_bg.webp);
    background-repeat: no-repeat;
    background-position: 50% calc(300 / 1440 * 100%);
    background-size: cover;
  }

  section#top11 .con {
    position: relative;
    width: 1170px;
    margin: 0 auto;
    z-index: 2;
  }

  section#top11 .top01_01 {
    left: calc(64 / 1440 * 100%);
    width: calc(1300 / 1440 * 100%);
    top: -90px;
  }
  section#top11 .top01_02 {
    left: calc(60 / 1440 * 100%);
    width: calc(1320 / 1440 * 100%);
    top: 90px;
    z-index: 1;
  }
  section#top11 .top01_07_bg {
    top: unset;
    bottom: -190px;
  }
}

.pc {
  display: block;
}

.sp {
  display: none;
}

.pc_br {
  display: block;
}

.sp_br {
  display: none;
}

@media screen and (min-width: 1170px) {
  .pc {
    display: none;
  }

  .sp {
    display: block;
  }

  .pc_br {
    display: none;
  }

  .sp_br {
    display: block;
  }
}
