/* ブランドの色と書体を継承。本文・補足・金額の役割をこのページ内で整理する。 */
html:has(> .wedding-page){scroll-behavior:auto;scroll-padding-top:0}
.wedding-page{--wedding-rule:var(--line);--wedding-gap:48px;--wedding-body:20px;--wedding-support:18px;--wedding-note:16px;min-width:0;line-height:1.8}
.wedding-page .seo-main{max-width:1424px;padding:32px 160px 64px 48px}
.wedding-page .seo-body{max-width:none}
.wedding-page .breadcrumbs{font-size:18px;margin-bottom:24px}
.wedding-page .wedding-reading{max-width:none}
.wedding-page .wedding-reading>p,.wedding-page #choose>p,.wedding-page .wedding-timing>p,.wedding-page .wedding-care{max-width:760px}
.wedding-page h2{font-size:32px;line-height:1.5;margin:0 0 16px;font-weight:700}
.wedding-page h3{font-size:24px;line-height:1.55;margin:0 0 16px;font-weight:700}
.wedding-page p{font-size:var(--wedding-body);margin:0 0 20px}
.wedding-page .wedding-hero{margin:0 0 32px;padding:0}
.wedding-page .wedding-hero h1{font-size:40px;line-height:1.5;margin:0 0 8px}
.wedding-page .wedding-hero>p{margin-bottom:20px}
.wedding-page .wedding-nav{display:flex;flex-wrap:wrap;gap:8px 32px;margin-top:20px;padding:12px 0;border-block:1px solid var(--wedding-rule)}
.wedding-page .wedding-nav a{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:44px;font-size:18px}
.wedding-page .wedding-nav a span{color:var(--brand-red)}
.wedding-page .wedding-nav a:hover{color:var(--brand-red);text-decoration:underline;text-underline-offset:6px}
.wedding-page .wedding-section{padding-top:var(--wedding-gap);scroll-margin-top:24px}
.wedding-page .wedding-section:first-child{padding-top:0}
.wedding-page #selection-details,.wedding-page #choose,.wedding-page #care,.wedding-page #questions{scroll-margin-top:24px}
.wedding-page .wedding-budget{margin:24px 0 16px;font-size:var(--wedding-support);line-height:1.7;border-top:1px solid var(--wedding-rule)}
.wedding-page .wedding-budget thead{background:transparent}
.wedding-page .wedding-budget thead th{font-size:16px;font-weight:500;color:var(--muted);padding-block:12px}
.wedding-page .wedding-budget th,.wedding-page .wedding-budget td{padding:20px 16px;border-bottom:1px solid var(--wedding-rule);vertical-align:middle}
.wedding-page .wedding-budget th:first-child{width:31%;padding-left:0}
.wedding-page .wedding-budget th:nth-child(2){width:27%}
.wedding-page .wedding-budget td:last-child{padding-right:0;color:var(--muted)}
.wedding-page .wedding-budget tbody th strong{display:block;font-size:22px}
.wedding-page .wedding-budget tbody th span{display:block;font-size:18px;font-weight:400;margin-top:4px}
.wedding-page .wedding-budget td:nth-child(2){white-space:nowrap;font-weight:400}
.wedding-page .wedding-budget td:nth-child(2) strong{font-size:30px;line-height:1.4;font-variant-numeric:tabular-nums}
.wedding-page .wedding-budget td:nth-child(2) span{font-size:16px;margin-left:8px;color:var(--muted)}
.wedding-page .wedding-budget td.wedding-budget-family strong{font-size:24px;color:var(--ink)}
.wedding-page .wedding-mobile-break{display:none}
.wedding-page .wedding-note,.wedding-page .wedding-photo-note,.wedding-page .wedding-stock-note{font-size:var(--wedding-note);color:var(--muted);line-height:1.75}
.wedding-page .wedding-note a,.wedding-page .wedding-return-note a{ text-decoration:underline;text-underline-offset:5px}
.wedding-page .wedding-note a:hover,.wedding-page .wedding-return-note a:hover{color:var(--brand-red-hover)}
.wedding-page .wedding-budget-tip{padding-left:20px;border-left:2px solid var(--wedding-rule);margin-top:24px;font-size:18px}
.wedding-page .wedding-budget-tip strong{display:block;font-size:20px;margin-bottom:4px}
.wedding-page .wedding-selection{margin-top:56px;padding:40px 0 0;border-top:1px solid var(--wedding-rule)}
.wedding-page .wedding-product-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px;margin-top:32px}
.wedding-page .wedding-product{min-width:0;display:flex;flex-direction:column}
.wedding-page .wedding-product-photo{display:block;background:white;margin-bottom:16px}
.wedding-page .wedding-product-photo img{width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.wedding-page .wedding-product-name{font-size:22px;font-weight:700;line-height:1.55;min-height:3.1em;margin-bottom:12px;overflow-wrap:anywhere}
.wedding-page .wedding-product-name a:hover{color:var(--brand-red)}
.wedding-page .wedding-price{font-size:28px;font-weight:700;color:var(--brand-red);line-height:1.5;margin-bottom:20px;font-variant-numeric:tabular-nums}
.wedding-page .wedding-price span{display:block;color:var(--muted);font-size:16px;font-weight:400;margin-top:4px}
.wedding-page .wedding-product-scene{font-size:18px;font-weight:700;margin-bottom:8px}
.wedding-page .wedding-product-reason{font-size:18px;line-height:1.8;margin-bottom:20px}
.wedding-page .wedding-product-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px;border-top:1px solid var(--wedding-rule);padding-top:16px;margin-top:auto}
.wedding-page .wedding-product-actions .text-link{font-size:18px;line-height:1.7;min-height:44px;gap:16px}
@supports(grid-template-rows:subgrid){
 .wedding-page .wedding-product{display:grid;grid-row:span 7;grid-template-rows:subgrid}
 .wedding-page .wedding-product-name{min-height:0}
 .wedding-page .wedding-product-actions{grid-row:7;margin-top:0}
}
.wedding-page .wedding-stock-note{margin:32px 0 0;padding-top:24px;border-top:1px solid var(--wedding-rule)}
.wedding-page .wedding-checks{max-width:960px;margin-top:0}
.wedding-page .wedding-checks dl{margin:0}
.wedding-page .wedding-checks dl>div{display:grid;grid-template-columns:260px minmax(0,1fr);gap:32px;border-top:1px solid var(--wedding-rule);padding:20px 0}
.wedding-page .wedding-checks dt{font-size:20px;font-weight:700}
.wedding-page .wedding-checks dd{margin:0;font-size:20px}
.wedding-page #meaning,.wedding-page #budget,.wedding-page #manners{border-top:1px solid var(--wedding-rule);margin-top:56px}
.wedding-page .wedding-meanings{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:24px}
.wedding-page .wedding-meanings>div{min-width:0}
.wedding-page .wedding-meanings h3{color:var(--brand-red-hover)}
.wedding-page .wedding-meaning-image{width:100%;aspect-ratio:3/2;margin:0 0 16px;display:block;overflow:hidden}
.wedding-page .wedding-meaning-image img{width:100%;height:100%;object-fit:cover}
@media(min-width:801px){.wedding-page .wedding-product:nth-child(n+4) .wedding-product-photo{margin-top:48px}}
.wedding-page .wedding-care{margin-top:32px;padding:24px 0 0;border-top:1px solid var(--wedding-rule)}
.wedding-page .wedding-care h3{font-size:22px;margin-bottom:12px}
.wedding-page .wedding-care p{font-size:18px}
.wedding-page .wedding-care p:last-child{margin-bottom:0}
.wedding-page .wedding-timing dl{margin:0 0 24px}
.wedding-page .wedding-timing dl>div{display:grid;grid-template-columns:200px minmax(0,1fr);gap:32px;padding:16px 0;border-bottom:1px solid var(--wedding-rule)}
.wedding-page .wedding-timing dt{font-size:20px;font-weight:700}
.wedding-page .wedding-timing dd{font-size:20px;margin:0;max-width:760px}
.wedding-page .wedding-timing>p{font-size:18px}
.wedding-page .wedding-noshi-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:48px;align-items:center;margin-top:40px;max-width:960px}
.wedding-page .wedding-noshi-figure{margin:0}
.wedding-page .wedding-noshi-paper{min-height:340px;background:#fff;border:1px solid var(--wedding-rule);display:grid;grid-template-rows:1fr auto 1fr;align-items:center;text-align:center;padding:24px 0}
.wedding-page .wedding-noshi-top{font-size:56px;font-family:"Yu Mincho",serif}
.wedding-page .wedding-noshi-band{font-size:18px;color:var(--brand-red-hover);border-block:1px solid #c18389;background:#fff8f7;padding:12px 0;margin:16px 0}
.wedding-page .wedding-noshi-name{font-size:30px;writing-mode:vertical-rl;justify-self:center;letter-spacing:.12em}
.wedding-page .wedding-noshi-figure figcaption{font-size:16px;color:var(--muted);margin-top:12px;text-align:center}
.wedding-page .wedding-noshi-copy dl{margin:0 0 24px}
.wedding-page .wedding-noshi-copy dl>div{padding:12px 0;border-bottom:1px solid var(--wedding-rule)}
.wedding-page .wedding-noshi-copy dt{font-size:16px;color:var(--muted)}
.wedding-page .wedding-noshi-copy dd{font-size:22px;font-weight:500;margin:0}
.wedding-page .wedding-noshi-copy p{font-size:18px;margin-bottom:0}
.wedding-page .wedding-message{margin-top:32px;padding:0;border-block:1px solid var(--wedding-rule);border-left:0}
.wedding-page .wedding-message summary{font-size:20px;padding:20px 0;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;list-style:none;font-weight:500}
.wedding-page .wedding-message summary::-webkit-details-marker{display:none}
.wedding-page .wedding-disclosure-icon::before{content:'＋';color:var(--brand-red-hover)}
.wedding-page .wedding-disclosure-icon{flex-shrink:0;transform:none}
.wedding-page .wedding-message[open] .wedding-disclosure-icon::before{content:'−'}
.wedding-page .wedding-message summary:hover{color:var(--brand-red)}
.wedding-page .wedding-message[open] summary{border-bottom:1px solid var(--wedding-rule)}
.wedding-page .wedding-message blockquote{font-size:20px;line-height:2;padding-left:24px;border-left:2px solid var(--wedding-rule);margin:24px 0;max-width:760px}
.wedding-page .wedding-message>.wedding-note{padding:0 0 0 24px}
.wedding-page .wedding-editorial{margin-top:40px}
.wedding-page .wedding-editorial p{font-size:16px;color:var(--muted)}
.wedding-page .wedding-consult{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:48px;padding:40px;background:var(--brand-soft);margin-top:56px;scroll-margin-top:24px}
.wedding-page .wedding-consult h2{font-size:36px}
.wedding-page .wedding-consult p{font-size:26px}
.wedding-page .wedding-consult .wedding-consult-prep{font-size:24px}
.wedding-page .wedding-consult-actions{display:flex;align-items:flex-start;flex-direction:column;gap:16px;margin-top:24px}
.wedding-page .wedding-consult-actions .button{font-size:24px;min-height:64px;padding:16px 24px;gap:16px;line-height:1.7}
.wedding-page .wedding-consult-actions>a:not(.button){font-size:24px;text-decoration:underline;text-underline-offset:5px}
.wedding-page .wedding-consult figure{margin:8px 0 0}
.wedding-page .wedding-consult figure img{width:100%;height:auto}
.wedding-page .wedding-consult figcaption{font-size:22px;line-height:1.7;margin-top:16px}
.wedding-page .wedding-consult figcaption a{ text-decoration:underline;text-underline-offset:5px}
.wedding-page .seo-related{padding-top:40px;margin-top:0}
.wedding-page .seo-related h2{font-size:28px;margin-bottom:16px}
.wedding-page .seo-link-grid{grid-template-columns:1fr 1fr}
.wedding-page .wedding-return-note{font-size:22px;margin-top:24px}
.wedding-page a:focus-visible,.wedding-page summary:focus-visible{outline:3px solid var(--brand-red-hover);outline-offset:5px}
/* 法人ページと同じPC用の追従相談ボタン。本文右側に余白を確保する。 */
.wedding-page .wedding-floating-consult{position:fixed;right:20px;top:50%;transform:translateY(-50%);z-index:20;width:112px;height:112px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--brand-red);border:2px solid var(--white);color:white;text-decoration:none;box-shadow:0 4px 16px #28252420;font-size:22px;font-weight:700;line-height:1.4;transition:background .16s}
.wedding-page .wedding-floating-consult:hover{color:white;background:#982a34}
.wedding-page .wedding-floating-consult:active{background:#7d202a}
.wedding-page .wedding-floating-consult:focus-visible{outline:3px solid var(--ink);outline-offset:4px}

/* 共有ヘッダー・フッターの内容は保ち、このページのみ狭い画面に収める。 */
@media(max-width:1100px){
 .wedding-page .seo-main{padding-left:32px}
 .wedding-page .wedding-budget td:nth-child(2) strong{font-size:26px}
 .wedding-page .wedding-budget td:nth-child(2) span{display:block;margin:4px 0 0}
 .wedding-page .wedding-product-grid{gap:0 24px}
 .wedding-page .wedding-checks dl>div{grid-template-columns:220px minmax(0,1fr);gap:24px}
 .wedding-page .wedding-noshi-layout{grid-template-columns:240px minmax(0,1fr);gap:32px}
 .wedding-page .wedding-consult{gap:32px;grid-template-columns:minmax(0,1fr) 160px;padding:32px}
}
@media(max-width:800px){
 .wedding-page{--wedding-body:17px;--wedding-support:17px;--wedding-note:16px}
 .wedding-page .wedding-heading-phrase{display:inline-block;max-width:100%}
 .wedding-page .seo-main{padding:24px 108px 48px 24px}
 .wedding-page .wedding-floating-consult{width:64px;height:64px}
 .wedding-page .wedding-floating-consult .consult-face-label{font-size:14px;padding:4px 8px;bottom:-28px}
 .wedding-page .wedding-product-grid{grid-template-columns:1fr;gap:40px;margin-top:24px}
 .wedding-page .wedding-product{display:block}
 .wedding-page .wedding-product-name{min-height:0;font-size:22px}
 .wedding-page .wedding-product-photo{max-width:420px}
 .wedding-page .wedding-product-actions{padding-top:8px}
 .wedding-page .wedding-product-reason,.wedding-page .wedding-care p{font-size:17px}
 .wedding-page .wedding-price{margin-bottom:16px}
 .wedding-page .wedding-checks dl>div{display:block;padding:20px 0}
 .wedding-page .wedding-checks dt{font-size:18px;margin-bottom:8px}
 .wedding-page .wedding-checks dd{font-size:17px}
 .wedding-page .wedding-meanings{grid-template-columns:1fr;gap:32px}
 .wedding-page .wedding-meaning-image{max-width:480px}
 .wedding-page .wedding-timing dl>div{display:block}
 .wedding-page .wedding-timing dt{font-size:18px;margin-bottom:8px}
 .wedding-page .wedding-timing dd{font-size:17px}
 .wedding-page .wedding-noshi-layout{grid-template-columns:1fr;gap:24px}
 .wedding-page .wedding-noshi-figure{width:100%;max-width:300px}
 .wedding-page .wedding-consult{grid-template-columns:1fr;gap:24px;padding:24px}
 .wedding-page .wedding-consult h2{font-size:28px}
 .wedding-page .wedding-consult p,.wedding-page .wedding-consult .wedding-consult-prep{font-size:18px}
 .wedding-page .wedding-consult figure{max-width:160px;margin:0}
 .wedding-page .wedding-consult figcaption{font-size:16px}
 .wedding-page .wedding-consult-actions .button{font-size:18px;min-height:48px;padding:12px;gap:8px;letter-spacing:0}
 .wedding-page .wedding-consult-actions .button span{flex-shrink:0}
 .wedding-page .wedding-consult-actions>a:not(.button){font-size:17px}
 .wedding-page .seo-link-grid{grid-template-columns:1fr}
 .wedding-page .seo-link-grid a,.wedding-page .wedding-return-note{font-size:18px}
}
@media(max-width:600px){
 .wedding-page .seo-main{padding:24px 100px 48px 20px}
 .wedding-page .seo-header{padding:20px 100px 16px 20px}
 .wedding-page .seo-header .taisei-logo{width:240px;max-width:100%;margin-left:0}
 .wedding-page .seo-header nav{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;margin-top:16px;font-size:14px;line-height:1.6}
 .wedding-page .seo-header nav a{display:flex;align-items:center;min-height:44px;padding:8px 0}
 .wedding-page .shared-contact-bar{padding:16px 100px 16px 20px}
 .wedding-page .shared-contact-inner{justify-content:flex-start;gap:12px}
 .wedding-page .shared-contact-title{font-size:16px;margin:0}
 .wedding-page .shared-phone-button{min-height:56px;padding:8px 12px;gap:8px;font-size:16px}
 .wedding-page .shared-phone-button span{gap:0 8px}
 .wedding-page .shared-phone-button strong{font-size:20px}
 .wedding-page .contact-phone-icon{width:20px;height:20px}
 .wedding-page .shared-line-control{gap:8px 12px;font-size:16px}
 .wedding-page .shared-line-status{font-size:14px}
 .wedding-page .shared-line-control{min-width:0;max-width:100%}
 .wedding-page .official-line-button{width:232px;max-width:100%;height:auto;aspect-ratio:232/72;flex-shrink:1}
 .wedding-page .official-line-button img{width:100%;height:auto;max-width:100%}
 .wedding-page .seo-footer{padding:24px 100px 32px 20px}
 .wedding-page .seo-footer-logo{max-width:100%;margin-bottom:24px}
 .wedding-page .seo-footer nav{font-size:16px;gap:12px 20px}
 .wedding-page .seo-footer nav a{display:inline-flex;align-items:center;min-height:44px}
 .wedding-page .seo-footer p{font-size:16px}
 .wedding-page .breadcrumbs{font-size:14px;margin-bottom:24px}
 .wedding-page .breadcrumbs ol{gap:8px}
 .wedding-page .breadcrumbs li+li:before{margin-right:8px}
 .wedding-page .wedding-hero{margin-bottom:32px}
 .wedding-page .wedding-hero h1{font-size:28px;line-height:1.5}
 .wedding-page .wedding-hero>p{font-size:17px}
 .wedding-page .wedding-nav{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;padding:8px 0}
 .wedding-page .wedding-nav a{font-size:15px;gap:4px}
 .wedding-page h2{font-size:24px;line-height:1.6;text-wrap:balance}
 .wedding-page .wedding-hero h1,.wedding-page h3{text-wrap:balance}
 .wedding-page h3{font-size:22px}
 .wedding-page .wedding-section{padding-top:32px}
 .wedding-page .wedding-selection,.wedding-page #meaning,.wedding-page #budget,.wedding-page #manners{margin-top:40px}
 .wedding-page .wedding-budget{display:block;margin-top:24px}
 .wedding-page .wedding-budget thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .wedding-page .wedding-budget tbody{display:block}
 .wedding-page .wedding-budget tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;padding:20px 0;border-bottom:1px solid var(--wedding-rule)}
 .wedding-page .wedding-budget tbody th,.wedding-page .wedding-budget td{border:0;padding:0;width:auto}
 .wedding-page .wedding-budget tbody th:first-child{width:auto}
 .wedding-page .wedding-budget tbody th strong{font-size:18px}
 .wedding-page .wedding-budget tbody th span{font-size:16px}
 .wedding-page .wedding-mobile-break{display:initial}
 .wedding-page .wedding-budget td:nth-child(2){text-align:right}
 .wedding-page .wedding-budget td:nth-child(2) strong{font-size:24px}
 .wedding-page .wedding-budget td.wedding-budget-family strong{font-size:18px}
 .wedding-page .wedding-budget td:last-child{grid-column:1/-1;font-size:16px}
 .wedding-page .wedding-budget-tip{padding-left:16px;font-size:17px}
 .wedding-page .wedding-budget-tip strong{font-size:18px}
 .wedding-page .wedding-product-name{font-size:21px}
 .wedding-page .wedding-care h3{font-size:20px}
 .wedding-page .wedding-noshi-copy dd{font-size:20px}
 .wedding-page .wedding-message summary{font-size:18px;gap:12px}
 .wedding-page .wedding-message blockquote{font-size:18px;padding-left:16px}
 .wedding-page .wedding-message>.wedding-note{padding-left:16px}
 .wedding-page .wedding-consult{padding:20px 16px}
 .wedding-page .wedding-consult h2{font-size:25px}
 .wedding-page .wedding-consult-actions .button{font-size:17px}
 .wedding-page .wedding-consult-actions>a:not(.button){font-size:16px;overflow-wrap:anywhere}
}
