@charset "UTF-8";
/****************************************/
/*	inview															*/
/****************************************/
[data-inview]{
	opacity:0;
	transform:translateY(40px);
	transition:opacity .6s ease, transform .6s ease;
}

[data-inview].is-active{
	opacity:1;
	transform:translateY(0);
}

/****************************************/
/*	header															*/
/****************************************/
.h { position:relative; width:100%; z-index:101; margin-block-end:1em; padding:1.0em; background:rgba(var(--color-white),0.8); backdrop-filter:blur(0); }
.h-inner { display:flex; justify-content:space-between; align-items:center; gap:1.0em; position:relative; }
.h-logo { display:inline-flex; align-items:center; align-self:stretch; padding-left:1.0rem; }
.h-logo img { min-width:200px; max-width:270px; height:auto; aspect-ratio:474/52; }
.h-aside { display:flex; justify-content:flex-end; align-items:center; gap:1.0em; padding-right:1.0em; }
.h-link { display:flex; justify-content:flex-end; align-items:center; gap:1.0em; font-size:14px; }
.h-link a { color:rgb(var(--color-black)); }
.h-lang { display:flex; justify-content:center; align-items:center; position:relative; top:0.1em; }
.h-lang svg { position:relative; top:0.1em; width:auto; height:1em; margin-right:0.25em; fill:rgb(var(--color-black)); }
.h-lang button { margin:0; paddign:0; border:0; border-radius:0; background:transparent; appearance:none; cursor:pointer; }
.h-lang button span { font-weight:bold; }
.h-search { margin:0; padding:0; border:0; appearance:none; }
.h-search-group { display:flex; justify-content:center; align-items:center; margin:0; padding:0; border:0; appearance:none; }
.h-search-input { display:flex; align-self:stretch; margin:0; padding:0.75em 1.5em; border:0; border-radius:0.25em 0 0 0.25em; font-size:16px; background:rgb(var(--color-white)); appearance:none; }
.h-search-button { display:flex; justify-content:center; align-items:center; align-self:stretch; width:2.5rem; aspect-ratio:1 / 1; margin:0; paddign:0; border:0; border-radius:0 0.25em 0.25em 0; background:rgb(var(--color-primary-blue)); appearance:none; cursor:pointer; }
.h-search-button svg { width:auto; height:1.0rem; fill:rgb(var(--color-white)); }
@media (hover: hover) and (pointer: fine){
}
@media (max-width:960px) {
	.h-link { display:none; }
	.h-lang {  }
}
@media (max-width:768px) {
	.h { position:relative; width:100%; z-index:101; margin-block-end:1em; padding:15px; background:rgba(var(--color-white),0.8); backdrop-filter:blur(0); }
	.h-inner { display:flex; justify-content:space-between; align-items:center; gap:1.0em; position:relative; }
	.h-logo { display:inline-flex; align-items:center; align-self:stretch; padding-left:0; }
	.h-logo img { min-width:100px; max-width:180px; height:auto; aspect-ratio:474/52; }
	.h-aside { display:flex; justify-content:flex-end; align-items:center; gap:1.0em; padding-right:1.0em; }
	.h-link { display:none; }
	.h-lang {  }
	.h-search { display:none; margin:0; padding:0; border:0; appearance:none; }
	.h-search-group { display:flex; justify-content:center; align-items:center; margin:0; padding:0; border:0; appearance:none; }
	.h-search-input { display:flex; align-self:stretch; margin:0; padding:0.75em 1.5em; border:0; border-radius:0.25em 0 0 0.25em; font-size:16px; background:rgb(var(--color-white)); appearance:none; }
	.h-search-button { display:flex; justify-content:center; align-items:center; align-self:stretch; width:2.5rem; aspect-ratio:1 / 1; margin:0; paddign:0; border:0; border-radius:0 0.25em 0.25em 0; background:rgb(var(--color-primary-blue)); appearance:none; cursor:pointer; }
	.h-search-button svg { width:auto; height:1.0rem; fill:rgb(var(--color-white)); }
}

/* nav */
.n { position:sticky; top:1em; z-index:200; margin-inline:1em; padding:0.5em 1.0em; border-radius:0.5rem; background:rgba(var(--color-white),0.9); box-shadow:0 0 4px 0 rgba(var(--color-black),0.1); backdrop-filter:blur(20px); transition:border-radius 0.2s ease; }
.n-trigger { display:none; }
.n.is-submenu-open { border-radius:0.5rem 0.5rem 0 0; }
.n > ul { display:flex; flex-direction:row; justify-content:space-between; align-items:center; gap:1em; width:100%; max-width:100%; }
.n > ul > li { display:flex; justify-content:center; align-items:center; width:12.5%; }
.n a { display:block; padding:0.5em 1.0em; border-radius:0.25rem; color:rgb(var(--color-black)); font-weight:bold; white-space:nowrap; background:rgba(var(--color-primary-blue),0); transition:color 0.4s ease,background 0.4s ease; }
.n a:focus-visible { color:rgb(var(--color-primary-blue)); }
.n a:focus-visible::after { transform:scaleX(1); }
.n-has-sub { /*position:relative;*/ }
.n div.n-sub { display:flex; flex-direction:column; gap:0; position:absolute; left:0; top:100%; width:100%; min-width:12rem; margin:0; padding:0.6rem 0; border:1px solid rgba(var(--color-black),0.08); border-radius:0.5rem; color:rgb(var(--color-white)); list-style:none; background:rgba(var(--color-primary-green),0.9); box-shadow:0 16px 30px rgba(0,0,0,0.12); opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .18s ease, transform .18s ease, visibility .18s ease; z-index:1000; }
.n .n-has-sub:hover .n-sub, .n-has-sub:focus-within .n-sub { opacity:1; visibility:visible; transform:translateY(0); }
.n .n-sub li { display:block; }
.n .n-sub a { display:block; width:100%; padding:0; color:rgb(var(--color-white)); font-size:0.9rem; font-weight:bold; text-decoration:none; white-space:nowrap; }
.n .n-sub a:hover { color:rgb(var(--color-white)); background:rgba(var(--color-white),0.15); }
.n.is-active .n-sub { top:0; left:100%; gap:0.25em; }
.n.is-active .n-sub a { display:block; width:100%; padding:0.55rem 1rem; color:rgb(var(--color-black)); font-size:1.0rem; font-weight:normal; text-decoration:none; white-space:nowrap; }
.n-has-sub.is-open { border-radius:0.5rem 0.5rem 0 0; }
.n-has-sub.is-open > .n-sub { opacity:1; visibility:visible; transform:translateY(0); }

/* n-nav rewrite */
.n div.n-sub .n-sub-inner { display:flex; justify-content:space-between; gap:1em; padding:1em 0; }
.n div.n-sub .n-sub-photo { display:flex; width:36%; align-self:stretch; position:relative; min-height:320px; }
.n div.n-sub .n-sub-photo figure { position:absolute; overflow:hidden; width:100%; height:100%; }
.n div.n-sub .n-sub-photo figure img { width:100%; height:auto; object-fit:cover; }
.n div.n-sub .n-sub-text { display:flex; flex-direction:column; align-self:stretch; width:58%; }
.n div.n-sub .n-sub-text h2 { padding-bottom:0.5em; font-size:clamp(1.4rem, 6vw, 1.65rem); font-weight:bold; }
.n div.n-sub .n-sub-text .n-sub-wrap { display:flex; gap:0.5em; padding-right:1em; }
.n div.n-sub .n-sub-text .n-sub-wrap.x3 > * { width:calc((100% - 2em) / 3); }
.n div.n-sub .n-sub-text .n-sub-wrap.x4 > * { width:calc((100% - 2em) / 4); }
.n div.n-sub .n-sub-text h3 { position:relative; margin-bottom:0.5em; padding:0 0 0.25em 1.0em; border-bottom:rgb(var(--color-white)) 1px solid; font-size:clamp(1.0rem, 1.25vw, 1.05rem); font-weight:bold; }
.n div.n-sub .n-sub-text h3 a { padding:0; font-size:clamp(1.0rem, 1.25vw, 1.05rem); }
.n div.n-sub .n-sub-text h3::before { content:''; position:absolute; top:0.6em; left:0; width:8px; height:8px; border-top:rgb(var(--color-white))1px solid; border-right:rgb(var(--color-white))1px solid; transform-origin:center center; transform:rotate(45deg); }
.n div.n-sub .n-sub-text .n-sub-list { display:flex; flex-direction:column; gap:0; }
.n div.n-sub .n-sub-text .n-sub-nav { display:flex; flex-direction:column; justify-content:flex-start; align-items:flex-start; gap:0; margin-block-end:0.5em; }
.n div.n-sub .n-sub-text .n-sub-nav.adjust { margin-block-end:2.115em; }
.n div.n-sub .n-sub-text .n-sub-nav li { position:relative; margin-bottom:0.1em; padding-left:1.0em; font-size:inherit; text-align:left; }
.n div.n-sub .n-sub-text .n-sub-nav li::before { content:''; position:absolute; top:0.6em; left:0.5em; border:transparent 3px solid; border-left:rgb(var(--color-white)) 3px solid; }
.n div.n-sub .n-sub-text .n-sub-nav a { position:relative; padding:0; font-size:1.0rem; text-align:left; }
.n div.n-sub .n-sub-text .n-sub-nav a:hover { background:transparent; }
.n div.n-sub .n-sub-text .n-sub-nav a::before { content:''; position:absolute; bottom:0; left:0; width:100%; height:1px; background:rgb(var(--color-white)); transform-origin:left center; transform:scaleX(0); transition:transform 0.2s ease; }
.n div.n-sub .n-sub-text .n-sub-nav a:hover::before { transform:scaleX(1); }
.n div.n-sub .n-sub-text .n-sub-nav li ul { flex-direction:column; }

@media (hover: hover) and (pointer: fine){
	.n a:hover { color:rgb(var(--color-primary-blue)); background:rgba(var(--color-primary-blue),0.2); }
}
@media (max-width:768px){
	.n { display:flex; justify-content:flex-end; position:sticky; top:1em; z-index:200; margin-inline:0.5em; padding:0.5em; border-radius:0.5rem; background:rgba(var(--color-white),0); box-shadow:0 0 0 0 rgba(var(--color-black),0); backdrop-filter:blur(0); transition:border-radius 0.2s ease; }
	.n-trigger { display:flex; justify-content:center; align-items:center; position:fixed; top:1rem; right:1rem; width:40px; height:40px; margin:0; padding:10px; border:0; border-radius:0.5rem; background:rgba(var(--color-white),0.9); box-shadow:0 0 4px 0 rgba(var(--color-black),0.1); backdrop-filter:blur(20px); cursor:pointer; appearance:none; z-index:400; }
	.n-trigger span { display:block; position:absolute; top:50%; left:50%; width:14px; height:2px; background:rgb(var(--color-black)); box-shadow:0 5px 0 0 rgb(var(--color-black)), 0 -5px 0 0 rgb(var(--color-black)); transform-origin:center center; transform:translate(-50%,-50%); transition:box-shadow 0.2s ease, transform 0.2s ease; }
	.n-trigger.is-active span { box-shadow:0 0 0 0 rgb(var(--color-black)), 0 0 0 0 rgb(var(--color-black)); transform:translate(-50%,-50%) rotate(45deg); }
	.n-trigger.is-active span::after { content:''; display:block; position:absolute; top:50%; left:50%; width:14px; height:2px; background:rgb(var(--color-black)); transform-origin:center center; transform:translate(-50%,-50%) rotate(-90deg); }
	.n.is-submenu-open { border-radius:0.5rem 0.5rem 0 0; }
	.n > ul { display:flex; flex-direction:column; justify-content:flex-start; align-items:flex-start; gap:0; position:fixed; top:-1.0em; right:-1.0em; bottom:0; width:min(70%, 22rem); height:100dvh; margin:0; padding:6rem 1.5rem 2rem; overflow-y:auto; border-radius:0; background:rgba(var(--color-primary-green),0.96); opacity:0; visibility:hidden; pointer-events:none; transform:translateX(100%); transition:opacity 0.4s ease, transform 0.4s ease, visibility 0.4s ease; z-index:300; }
	.n.is-active > ul { opacity:1; visibility:visible; pointer-events:auto; transform:translateX(0); }
	.n > ul > li { display:block; width:100%; }
	.n a { display:block; width:100%; padding:0.5em 1.0em; border-radius:0; color:rgb(var(--color-white)); font-size:1.1rem; font-weight:bold; white-space:normal; background:transparent; transition:color 0.4s ease, background 0.4s ease; }
	.n a:hover { color:rgb(var(--color-white)); background:rgba(var(--color-white),0.2); }
	.n a:focus-visible { color:rgb(var(--color-primary-blue)); }
	.n a:focus-visible::after { transform:scaleX(1); }
	.n-has-sub { position:relative; width:100%; }
	.n div.n-sub { display:none; flex-direction:column; gap:0; position:static; top:auto; right:auto; bottom:auto; left:auto; width:100%; min-width:0; margin:0; padding:0 0 0.75rem 1rem; overflow:visible; border:0; border-radius:0; color:rgb(var(--color-white)); list-style:none; background:transparent; box-shadow:none; opacity:1; visibility:visible; pointer-events:auto; transform:none; transition:none; z-index:auto; }
	.n-has-sub.is-open > .n-sub { display:flex; }
	.n .n-has-sub:hover .n-sub,
	.n .n-has-sub:focus-within .n-sub { display:none; opacity:1; visibility:visible; transform:none; }
	.n .n-has-sub.is-open:hover .n-sub,
	.n .n-has-sub.is-open:focus-within .n-sub { display:flex; opacity:1; visibility:visible; transform:none; }
	.n .n-sub li { display:block; width:100%; }
	.n .n-sub a { display:block; width:100%; padding:0.5rem 0; color:rgb(var(--color-white)); font-size:0.95rem; font-weight:normal; text-decoration:none; white-space:normal; background:transparent; }
	.n .n-sub a:hover { color:rgb(var(--color-white)); background:transparent; }
	.n.is-active .n-sub { top:auto; left:auto; gap:0; }
	.n.is-active .n-sub a { display:block; width:100%; padding:0.5rem 0; color:rgb(var(--color-white)); font-size:0.95rem; font-weight:normal; text-decoration:none; white-space:normal; }
	.n-has-sub.is-open { border-radius:0; }
	.n-has-sub.is-open > .n-sub { opacity:1; visibility:visible; transform:none; }

	.n div.n-sub .n-sub-inner,
	.n div.n-sub .n-sub-text,
	.n div.n-sub .n-sub-wrap,
	.n div.n-sub .n-sub-list { display:block; width:100%; padding:0; }
	.n div.n-sub .n-sub-photo { display:flex; }
	.n div.n-sub .n-sub-text h2 { display:flex; }
	.n div.n-sub .n-sub-text h3 { margin:0.5em 0 0.25em; padding:0; border:0; color:rgb(var(--color-white)); font-size:15px; font-weight:bold; }
	.n div.n-sub .n-sub-text h3::before { display:none; }
	.n div.n-sub .n-sub-text .n-sub-wrap.x3 > *,
	.n div.n-sub .n-sub-text .n-sub-wrap.x4 > * { width:100%; }
	.n div.n-sub .n-sub-text .n-sub-nav { display:block; margin:0; }
	.n div.n-sub .n-sub-text .n-sub-nav.adjust { margin:0; }
	.n div.n-sub .n-sub-text .n-sub-nav li { margin:0; padding:0; }
	.n div.n-sub .n-sub-text .n-sub-nav li::before {  }
	.n div.n-sub .n-sub-text .n-sub-nav a { position:static; padding:0.5em 0; font-size:14px; text-align:left; }
	.n div.n-sub .n-sub-text .n-sub-nav a::before { display:none; }
	.n div.n-sub .n-sub-text .n-sub-nav li ul { display:block; padding-left:1rem; }


	/* n-nav rewrite */
	.n div.n-sub .n-sub-inner { display:flex; flex-direction:column; justify-content:flex-start; gap:1em; padding:1em 0; }
	.n div.n-sub .n-sub-photo { display:none; width:100%; min-height:0; margin:0 0 1rem; overflow:hidden; }
	.n div.n-sub .n-sub-photo figure { display:block; position:relative; width:100%; height:140px; margin:0; overflow:hidden; }
	.n div.n-sub .n-sub-photo figure img { display:block; width:100%; height:100%; object-fit:cover; }
	
	.n div.n-sub .n-sub-text { display:flex; flex-direction:column; align-self:stretch; width:100%; }
	.n div.n-sub .n-sub-text h2 { display:none; padding-bottom:0.5em; font-size:16px; font-weight:bold; }
	.n div.n-sub .n-sub-text .n-sub-wrap { display:flex; flex-direction:column; gap:0; padding-right:1em; }
	.n div.n-sub .n-sub-text .n-sub-wrap.x3 > * { width:100%; }
	.n div.n-sub .n-sub-text .n-sub-wrap.x4 > * { width:100%; }
	.n div.n-sub .n-sub-text h3 { position:relative; margin-bottom:0.5em; padding:0 0 0.25em 0; border-bottom:rgb(var(--color-white)) 1px solid; font-size:15px; font-weight:bold; }
	.n div.n-sub .n-sub-text h3::before { content:''; position:absolute; top:0.6em; left:0; width:8px; height:8px; border-top:rgb(var(--color-white))1px solid; border-right:rgb(var(--color-white))1px solid; transform-origin:center center; transform:rotate(45deg); }
	.n div.n-sub .n-sub-text .n-sub-list { display:flex; flex-direction:column; gap:0; }
	.n div.n-sub .n-sub-text .n-sub-nav { display:flex; flex-direction:column; justify-content:flex-start; align-items:flex-start; gap:0; margin-block-end:0.5em; }
	.n div.n-sub .n-sub-text .n-sub-nav.adjust { margin-block-end:2.115em; }
	.n div.n-sub .n-sub-text .n-sub-nav li { position:relative; margin-bottom:0.1em; padding-left:1.0em; font-size:inherit; text-align:left; }
	.n div.n-sub .n-sub-text .n-sub-nav li::before { content:''; position:absolute; top:0.6em; left:0.5em; border:transparent 3px solid; border-left:rgb(var(--color-white)) 3px solid; }
	.n div.n-sub .n-sub-text .n-sub-nav a { position:relative; padding:0; font-size:14px; text-align:left; }
	.n div.n-sub .n-sub-text .n-sub-nav a:hover { background:transparent; }
	.n div.n-sub .n-sub-text .n-sub-nav a::before { content:none; }
	.n div.n-sub .n-sub-text .n-sub-nav li ul { flex-direction:column; }
}

/****************************************/
/*	foot																*/
/****************************************/
.m.ct-top { padding:max(318px, 23.25vw) 0 0; }


/****************************************/
/*	foot																*/
/****************************************/
.f-banner { display:none; }
.f-banner > li { position:relative; width:50%; }
.f-banner a { color:rgb(var(--color-white)); font-size:14px; }
.f-banner-corp { position:relative; z-index:2; padding:2em; color:rgb(var(--color-white)); }
.f-banner-corp h3 { padding-bottom:0.5em; line-height:1.4; font-size:40px; font-weight:bold; }
.f-banner-corp h3 small { display:block; font-size:14px; font-weight:normal; }
.f-banner-corp ul { display:flex; flex-flow:row wrap; }
.f-banner-corp ul > li { position:relative; width:40%; padding-left:0.5em; }
.f-banner-corp ul > li::before { content:''; position:absolute; top:0.7em; left:0; border:transparent 3px solid; border-left:rgb(var(--color-white)) 3px solid; }
.f-banner-ir { position:relative; z-index:2; padding:2em; color:rgb(var(--color-white)); }
.f-banner-ir h3 { padding-bottom:0.25em; line-height:1.4; font-size:40px; font-weight:bold; }
.f-banner-ir h3 small { display:block; font-size:14px; font-weight:normal; }
.f-banner-ir ul { display:flex; flex-flow:row wrap; }
.f-banner-ir ul > li { position:relative; width:40%; padding-left:0.5em; }
.f-banner-ir ul > li::before { content:''; position:absolute; top:0.7em; left:0; border:transparent 3px solid; border-left:rgb(var(--color-white)) 3px solid; }
.f-banner .c-media { position:absolute; top:0; left:0; overflow:hidden; width:100%; height:100%; }
.f-banner .c-media img { width:100%; height:100%; object-fit:cover; }

.f-nav { padding:4rem; background:rgb(var(--color-primary-blue)); }
.f-nav-inner { display:grid; grid-template-columns:repeat(5, 1fr); gap:2rem; position:relative; margin-inline:auto; }
.f-nav h4 { margin-block-end:1em; padding-bottom:1em; border-bottom:rgb(var(--color-white)) 1px solid; color:rgb(var(--color-white)); font-size:1.0em; font-weight:bold; }
.f-nav h4 a { font-size:1.0em; }
.f-nav ul { display:flex; flex-direction:column; }
.f-nav a { font-size:0.85rem; color:rgb(var(--color-white)); }
.f-nav-media { position:absolute; right:0; bottom:0; }

.f-bottom { display:flex; justify-content:space-between; align-items:center; margin-top:1px; padding:1rem 4rem; font-size:0.7rem; background:rgb(var(--color-primary-blue)); }
.f-bottom p { display:flex; gap:1.5rem; }
.f-bottom a { color:rgb(var(--color-white)); }
.f-bottom small { color:rgb(var(--color-white)); }

@media (max-width:768px){
	.f-banner { display:none; flex-direction:column; }
	.f-banner > li { position:relative; width:100%; }
	.f-banner a { color:rgb(var(--color-white)); font-size:12px; }
	.f-banner-corp { position:relative; z-index:2; padding:2em; color:rgb(var(--color-white)); }
	.f-banner-corp h3 { padding-bottom:20px; line-height:1.4; font-size:24px; font-weight:bold; }
	.f-banner-corp h3 small { display:block; font-size:12px; font-weight:normal; }
	.f-banner-corp ul { display:flex; flex-flow:row wrap; justify-content:space-between; }
	.f-banner-corp ul > li { position:relative; width:48%; padding-left:4px; }
	.f-banner-corp ul > li::before { content:''; position:absolute; top:0.7em; left:0; border:transparent 3px solid; border-left:rgb(var(--color-white)) 3px solid; }
	.f-banner-ir { position:relative; z-index:2; padding:2em; color:rgb(var(--color-white)); }
	.f-banner-ir h3 { padding-bottom:12px; line-height:1.4; font-size:24px; font-weight:bold; }
	.f-banner-ir h3 small { display:block; font-size:12px; font-weight:normal; }
	.f-banner-ir ul { display:flex; flex-flow:row wrap; justify-content:space-between; }
	.f-banner-ir ul > li { position:relative; width:48%; padding-left:0.5em; }
	.f-banner-ir ul > li::before { content:''; position:absolute; top:0.7em; left:0; border:transparent 3px solid; border-left:rgb(var(--color-white)) 3px solid; }
	.f-banner .c-media { position:absolute; top:0; left:0; overflow:hidden; width:100%; height:100%; }
	.f-banner .c-media img { width:100%; height:100%; object-fit:cover; }

	.f-nav { display:none; }
	.f-bottom { flex-direction:column; gap:0.5rem; margin-top:0; padding:1rem 6%; text-align:center; }
	.f-bottom p { display:flex; flex-flow:row wrap; justify-content:center; gap:0.5em; width:88%; margin-inline:auto; padding:20px 10px 0; margin-inline:auto; }
	.f-bottom a { color:rgb(var(--color-white)); white-space:nowrap; }
	.f-bottom p + p { width:100%; }
	.f-bottom small { color:rgb(var(--color-white)); font-size:9px; }
}

/****************************************/
/*	.bread-crumb												*/
/****************************************/
.bread-crumb { padding-top:1.0em; }
.bread-crumb ol { display:flex; font-size:14px; }
.bread-crumb li, .bread-crumb a { color:rgb(var(--color-white)); }
.bread-crumb li {  }
.bread-crumb li::after { content:'>'; padding-inline:0.5em; }
.bread-crumb li:last-child::after { content:none; }
@media (max-width:768px){
	.bread-crumb { display:none; }
}

/****************************************/
/*	.backtotop													*/
/****************************************/
.backtotop{ position:fixed; right:clamp(1rem, 4vw, 2rem); bottom:clamp(1rem, 4vw, 2rem); opacity:0; visibility:hidden; transform:translateY(20px); transition:opacity .3s ease, transform .3s ease, visibility .3s ease; z-index:90; }
.backtotop.is-visible{ opacity:1; visibility:visible; transform:translateY(0); }
.backtotop a{ display:flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:50%; color:rgb(var(--color-white)); background:rgb(var(--color-black)); cursor:pointer; }
body.is-nav-open .backtotop { display:none; }

/* =================================
	 Container
================================= */
.l-container-sm { display:block; width:100%; max-width:960px; margin-inline:auto; padding-inline:clamp(1.25rem,4vw,2rem); }
.l-container-md { display:block; width:100%; max-width:1080px; margin-inline:auto; padding-inline:clamp(1.5rem,4vw,2.5rem); }
.l-container-lg { display:block; width:100%; max-width:1280px; margin-inline:auto; padding-inline:clamp(2rem,4vw,3rem); }

/* =================================
	 Section
================================= */
.l-section { display:block; padding-block:clamp(2rem,8vw,3rem); }
.l-section-sm { display:block; padding-block:clamp(2.5rem,6vw,4rem); }
.l-section-lg { display:block; padding-block:clamp(6rem,10vw,10rem); }

/* =================================
	 Grid
================================= */
.l-grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1.5rem,4vw,2rem); }
.l-grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(1.5rem,4vw,2rem); }
.l-grid-4 { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(1.5rem,4vw,2rem); }
.l-grid-aside { display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:clamp(2rem,4vw,4rem); }
@media (max-width:768px){
	.l-grid-2,.l-grid-3,.l-grid-4,.l-grid-aside { grid-template-columns:1fr; }
}

/* =================================
	 Component – Media Grid
================================= */
.c-media-grid { display:grid; gap:0; margin-top:clamp(1.0rem,4vw,1.5rem); }
.c-media-grid-item { display:block; overflow:hidden; background:rgb(var(--color-palegray)); }
.c-media-grid-item img { display:block; width:100%; height:160px; object-fit:cover; }
@media (max-width:768px){
	.c-media-grid-item img { height:160px; }
}

/* =================================
	 Flex Utilities
================================= */
.l-flex { display:flex; gap:clamp(1.5rem,4vw,2rem); }
.l-flex-center { display:flex; justify-content:center; align-items:center; gap:clamp(1.5rem,4vw,2rem); }
.l-flex-between { display:flex; justify-content:space-between; align-items:center; gap:clamp(1.5rem,4vw,2rem); }
.l-col-1-3 { flex:0 0 33.333%; width:33.333%; }
.l-col-2-3 { flex:0 0 66.666%; width:66.666%; }
@media (max-width:768px){
	.l-col-1-3,.l-col-2-3 { flex:0 0 100%; width:100%; }
}

/* =================================
	 Utility
================================= */
.u-text-left{ text-align:left; }
.u-text-center{ text-align:center; }
.u-text-right{ text-align:right; }

/* Indent Utilities */
.u-pt-0 { padding-top:0; }
.u-pt-1 { padding-top:1em; }
.u-pt-2 { padding-top:2em; }
.u-pt-3 { padding-top:3em; }
.u-pb-0 { padding-top:0em; }
.u-pb-1 { padding-top:1em; }
.u-pb-2 { padding-top:2em; }
.u-pl-1 { padding-left:1em; }
.u-pl-2 { padding-left:2em; }
.u-pl-3 { padding-left:3em; }

hr.u-pt-2 { margin:0; border:0; }