.plan01Hero {
	position: relative;
	overflow: hidden;
	padding: 150px 0 72px;
	background: linear-gradient(115deg, #fbf6ee 0%, #f5eadc 50%, #ead8c7 100%)
}
.plan01Hero:before {
	content: "";
	position: absolute;
	inset: 0;
	background: url('../images/bg/paper.jpg') center/cover;
	opacity: .22;
	mix-blend-mode: multiply
}
.plan01HeroInner {
	position: relative;
	display: grid;
	grid-template-columns: 1.05fr .95fr;
	gap: 72px;
	align-items: center
}
.plan01HeroCopy {
	max-width: 650px
}
.planArea {
	display: inline-flex;
	margin: 16px 0 8px;
	padding: 7px 14px;
	border: 1px solid rgba(185, 130, 53, .28);
	border-radius: 999px;
	background: rgba(255, 255, 255, .5);
	font-size: 13px;
	color: #72513d
}
.plan01Hero h1 {
	font: 600 clamp(44px, 5vw, 72px)/1.2 "Noto Serif TC";
	letter-spacing: .08em;
	margin: 12px 0 18px
}
.heroLead {
	max-width: 600px;
	font-size: 17px;
	color: #6e5b50
}
.heroMeta {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 14px;
	margin: 30px 0
}
.heroMeta>div {
	padding: 18px 20px;
	border-radius: 16px;
	border: 1px solid rgba(91, 58, 43, .13);
	background: rgba(255, 255, 255, .72);
	box-shadow: 0 12px 35px rgba(70, 39, 22, .08)
}
.heroMeta small, .heroMeta span {
	display: block;
	color: #806e62;
	font-size: 12px
}
.heroMeta strong {
	display: block;
	font: 600 22px "Noto Serif TC";
	color: #4b2d21;
	margin: 3px 0
}
.heroActions {
	display: flex;
	flex-wrap: wrap;
	gap: 12px
}
.plan01HeroVisual {
	position: relative;
	min-height: 480px;
	border-radius: 38px 8px 38px 8px;
	overflow: hidden;
	box-shadow: 0 30px 70px rgba(69, 42, 28, .2)
}
.plan01HeroVisual:after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(47, 27, 19, .08), transparent 45%)
}
.plan01HeroVisual img {
	width: 100%;
	height: 100%;
	min-height: 480px;
	object-fit: cover
}
.planQuick {
	padding: 0;
	background: #fff
}
.quickGrid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	transform: translateY(-28px);
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 20px 55px rgba(66, 40, 27, .12);
	overflow: hidden
}
.quickGrid>div {
	padding: 27px 24px;
	border-right: 1px solid rgba(91, 58, 43, .1)
}
.quickGrid>div:last-child {
	border: 0
}
.quickGrid span {
	display: block;
	color: var(--gold);
	font: 600 13px "Noto Serif TC"
}
.quickGrid b {
	display: block;
	margin: 3px 0;
	font: 600 18px "Noto Serif TC"
}
.quickGrid small {
	color: #89786d
}
.planServiceSection {
	background: #fffdf9
}
.serviceDetailGrid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px
}
.serviceDetailCard {
	position: relative;
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 18px;
	padding: 25px;
	border: 1px solid rgba(91, 58, 43, .12);
	border-radius: 18px;
	background: linear-gradient(135deg, #fff, #fbf5ed);
	box-shadow: 0 10px 30px rgba(66, 40, 27, .06)
}
.serviceDetailCard.wide {
	grid-column: 1/-1
}
.serviceNo {
	width: 54px;
	height: 54px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: #5a382a;
	color: #fff;
	font: 600 14px "Noto Serif TC";
	box-shadow: 0 8px 20px rgba(73, 40, 25, .18)
}
.serviceDetailCard h3 {
	font: 600 21px "Noto Serif TC";
	margin: 0 0 10px
}
.serviceDetailCard h3 em {
	display: inline-block;
	margin-left: 8px;
	padding: 3px 9px;
	border-radius: 999px;
	background: #f4e3cf;
	color: #9b6226;
	font: 500 11px "Noto Sans TC"
}
.serviceDetailCard ul {
	margin: 0;
	padding: 0;
	list-style: none
}
.serviceDetailCard li {
	position: relative;
	padding-left: 20px;
	color: #6f5d52
}
.serviceDetailCard li:before {
	content: "";
	position: absolute;
	left: 0;
	top: .8em;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: var(--gold)
}
.inlineList {
	display: grid!important;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 4px 20px
}

/*
.ceremonySection {
	background: linear-gradient(180deg, #f6efe6, #fffaf4)
}
.ceremonyLayout {
	display: grid;
	grid-template-columns: .9fr 1.4fr;
	gap: 26px;
	align-items: stretch
}
.hallSupply {
	border-radius: 24px;
	overflow: hidden;
	background: #3c281e;
	color: #fff;
	box-shadow: 0 18px 45px rgba(58, 35, 23, .15)
}
.hallSupplyVisual {
	height: 330px
}
.hallSupplyVisual img {
	width: 100%;
	height: 100%;
	object-fit: cover
}
.hallSupplyBody {
	padding: 28px
}
.hallSupplyBody h3 {
	font: 600 30px "Noto Serif TC";
	margin: 5px 0 8px
}
.hallSupplyBody p {
	color: #f0e5dc;
	font-size: 16px
}
.hallSupplyBody small {
	color: #d9b98a
}
.ceremonyCards {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px
}
.ceremonyCard {
	overflow: hidden;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 10px 30px rgba(66, 40, 27, .08);
	border: 1px solid rgba(91, 58, 43, .1)
}
.ceremonyCard img {
	width: 100%;
	height: 180px;
	object-fit: cover
}
.ceremonyCard>div {
	padding: 20px
}
.ceremonyCard span {
	color: var(--gold);
	font-weight: 600
}
.ceremonyCard h3 {
	font: 600 21px "Noto Serif TC";
	margin: 2px 0 8px
}
.ceremonyCard ul {
	margin: 0;
	padding-left: 20px;
	color: #6e5d52;
	font-size: 14px
}
**/

.feeSection {
	background: url('../images/bg/contract.jpg') center/cover;
	position: relative;
	color: #fff
}
.feeSection:before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(38, 23, 17, .9), rgba(45, 27, 19, .72))
}
.feeGrid {
	position: relative;
	display: grid;
	grid-template-columns: .8fr 1.2fr;
	gap: 56px;
	align-items: center
}
.feeIntro h2 {
	font: 600 38px/1.4 "Noto Serif TC";
	margin: 8px 0 14px
}
.feeIntro p {
	color: #eadfd6
}
.priceBadge {
	display: inline-flex;
	align-items: baseline;
	gap: 12px;
	margin-top: 20px;
	padding: 16px 22px;
	border: 1px solid rgba(220, 183, 120, .5);
	border-radius: 14px;
	background: rgba(255, 255, 255, .08)
}
.priceBadge small, .priceBadge span {
	color: #d8c3af
}
.priceBadge strong {
	font: 600 31px "Noto Serif TC";
	color: #f0c982
}
.feeNotes {
	padding: 30px;
	border-radius: 20px;
	background: rgba(255, 255, 255, .94);
	color: #4c382d
}
.feeNotes ol {
	margin: 0;
	padding-left: 24px
}
.feeNotes li {
	padding: 7px 0;
	border-bottom: 1px dashed rgba(91, 58, 43, .15)
}
.feeNotes li:last-child {
	border: 0
}
.qualificationSection {
	background: #fff
}
.qualificationGrid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	align-items: start
}
.qualificationPanel {
	padding: 26px;
	border-radius: 20px;
	background: #fbf7f1;
	border: 1px solid rgba(91, 58, 43, .12);
	box-shadow: 0 12px 32px rgba(66, 40, 27, .06)
}
.qualificationTitle {
	padding-bottom: 16px;
	margin-bottom: 16px;
	border-bottom: 1px solid rgba(91, 58, 43, .13)
}
.qualificationTitle span {
	color: var(--gold);
	font-size: 11px;
	letter-spacing: .18em
}
.qualificationTitle h3 {
	font: 600 25px "Noto Serif TC";
	margin: 2px 0
}
.qualificationPanel ol, .qualificationPanel ul {
	padding-left: 22px;
	margin: 0
}
.qualificationPanel li {
	padding: 5px 0;
	color: #66564c
}
.qualificationPanel .warn {
	color: #a33b2f;
	font-weight: 500
}
.checkList {
	list-style: none!important;
	padding: 0!important;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px
}
.checkList li {
	padding: 10px!important;
	border-radius: 10px;
	background: #fff;
	border: 1px solid rgba(91, 58, 43, .08)
}
.familyNotice, .agencyBox {
	margin-top: 18px;
	padding: 16px;
	border-left: 3px solid var(--gold);
	background: #fff
}
.familyNotice h4, .agencyBox strong {
	font: 600 17px "Noto Serif TC";
	margin: 0 0 5px
}
.familyNotice p, .agencyBox p {
	margin: 0;
	font-size: 14px;
	color: #6d5d53
}
.originalDmSection {
	background: #f5eee5
}
.dmGallery {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	align-items: start
}
.dmPage {
	display: block;
	overflow: hidden;
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 12px 35px rgba(66, 40, 27, .1);
	transition: .3s
}
.dmPage:hover {
	transform: translateY(-5px);
	box-shadow: 0 18px 42px rgba(66, 40, 27, .15)
}
.dmPage img {
	width: 100%;
	aspect-ratio: 1448/2048;
	object-fit: cover;
	object-position: top
}
.dmPage span {
	display: block;
	padding: 14px 16px;
	font: 500 15px "Noto Serif TC";
	text-align: center
}
.planCta {
	padding: 72px 0;
	background: linear-gradient(120deg, #332017, #523528);
	color: #fff
}
.planCtaInner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 40px
}
.planCta h2 {
	font: 600 31px/1.45 "Noto Serif TC";
	margin: 5px 0
}
.planCta p {
	max-width: 760px;
	color: #d9cbc0
}
.planCtaInner>div:last-child {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: flex-end
}
@media(max-width:1050px) {
	.plan01HeroInner, .ceremonyLayout, .feeGrid {
		grid-template-columns: 1fr
	}
	.plan01HeroVisual {
		min-height: 380px
	}
	.plan01HeroVisual img {
		min-height: 380px
	}
	.qualificationGrid {
		grid-template-columns: 1fr 1fr
	}
	.dmGallery {
		grid-template-columns: repeat(2, 1fr)
	}
	.planCtaInner {
		display: block
	}
	.planCtaInner>div:last-child {
		justify-content: flex-start;
		margin-top: 22px
	}
}
@media(max-width:760px) {
	.plan01Hero {
		padding: 112px 0 58px
	}
	.plan01HeroInner {
		gap: 32px
	}
	.plan01Hero h1 {
		font-size: 42px
	}
	.heroMeta, .quickGrid, .serviceDetailGrid, .ceremonyCards, .qualificationGrid {
		grid-template-columns: 1fr
	}
	.quickGrid {
		transform: translateY(-18px)
	}
	.quickGrid>div {
		border-right: 0;
		border-bottom: 1px solid rgba(91, 58, 43, .1)
	}
	.serviceDetailCard.wide {
		grid-column: auto
	}
	.serviceDetailCard {
		grid-template-columns: 48px 1fr;
		padding: 20px
	}
	.serviceNo {
		width: 44px;
		height: 44px
	}
	.inlineList {
		grid-template-columns: 1fr
	}
	.hallSupplyVisual {
		height: 240px
	}
	.ceremonyCard img {
		height: 210px
	}
	.feeIntro h2 {
		font-size: 30px
	}
	.feeNotes {
		padding: 22px
	}
	.dmGallery {
		grid-template-columns: 1fr
	}
	.checkList {
		grid-template-columns: 1fr
	}
	.planCta h2 {
		font-size: 27px
	}
}
@media(max-width:480px) {
	.plan01HeroVisual {
		min-height: 280px;
		border-radius: 22px 6px 22px 6px
	}
	.plan01HeroVisual img {
		min-height: 280px
	}
	.heroMeta {
		gap: 10px
	}
	.heroMeta>div {
		padding: 15px
	}
	.serviceDetailCard {
		display: block
	}
	.serviceNo {
		margin-bottom: 12px
	}
	.priceBadge {
		display: flex;
		flex-wrap: wrap
	}
	.planCtaInner>div:last-child {
		display: grid
	}
	.planCtaInner .btn {
		width: 100%
	}
}










.ceremonySection{

    background:#faf8f4;

}

.ceremonyGrid{

    display:grid;

    grid-template-columns:repeat(2,1fr);

    gap:30px;

}

.ceremonyCard{

    background:#fff;

    border-radius:22px;

    padding:36px;

    box-shadow:0 18px 45px rgba(0,0,0,.06);

    transition:.35s;

}

.ceremonyCard:hover{

    transform:translateY(-5px);

    box-shadow:0 25px 55px rgba(0,0,0,.10);

}

.cardTop{

    display:flex;

    align-items:center;

    gap:18px;

    margin-bottom:25px;

}

.cardNo{

    width:58px;

    height:58px;

    border-radius:50%;

    background:#5b392b;

    color:#fff;

    display:flex;

    align-items:center;

    justify-content:center;

    font:600 20px "Noto Serif TC";

    flex:none;

}

.cardTop small{

    display:block;

    color:#a98b71;

    letter-spacing:2px;

    font-size:11px;

    margin-bottom:5px;

}

.cardTop h3{

    margin:0;

    color:#493326;

    font-size:28px;

}

.tagGroup{

    display:flex;

    flex-wrap:wrap;

    gap:10px;

}

.tagGroup span{

    padding:10px 18px;

    border-radius:30px;

    background:#f5f0ea;

    border:1px solid #e7ddd2;

    color:#5d4130;

    font-size:14px;

}

.ceremonyCard ul{

    margin:0;

    padding-left:20px;

}

.ceremonyCard li{

    line-height:2;

    color:#666;

}

.cardNote{

    margin-top:20px;

    color:#999;

    font-size:13px;

}

.ceremonyCard:last-child{

    grid-column:1 / -1;

}

@media(max-width:900px){

    .ceremonyGrid{

        grid-template-columns:1fr;

    }

    .ceremonyCard:last-child{

        grid-column:auto;

    }

    .ceremonyCard{

        padding:28px;

    }

    .cardTop h3{

        font-size:24px;

    }

}