.jeps-photo-wedding-page {
  --pw-ink: #26231f;
  --pw-charcoal: #2c2025;
  --pw-olive: #775564;
  --pw-gold: #b48a4c;
  --pw-burgundy: #743247;
  --pw-blush: #ead3d5;
  --pw-paper: #fffaf7;
  --pw-line: #e5d5d0;
  color: var(--pw-ink);
  background: var(--pw-paper);
}

.jeps-photo-wedding-page #main_contents,
.jeps-photo-wedding-page #main_col,
.jeps-photo-wedding-page #contents {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}

.jeps-photo-wedding-page #footer,
.jeps-photo-wedding-page #footer_top,
.jeps-photo-wedding-page #return_top {
  display: none !important;
}

.jeps-photo-wedding-page .jeps-pw,
.jeps-photo-wedding-page .jeps-pw * { box-sizing: border-box; }
.jeps-photo-wedding-page .jeps-pw { width: 100%; overflow: hidden; color: var(--pw-ink); background: var(--pw-paper); font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif; font-size: 17px; line-height: 1.85; }
.jeps-photo-wedding-page .jeps-pw a { color: inherit; text-decoration: none; font-size: 17px; }
.jeps-photo-wedding-page .jeps-pw p,
.jeps-photo-wedding-page .jeps-pw span,
.jeps-photo-wedding-page .jeps-pw dt,
.jeps-photo-wedding-page .jeps-pw dd,
.jeps-photo-wedding-page .jeps-pw figcaption,
.jeps-photo-wedding-page .jeps-pw li { font-size: 17px; }
.jeps-photo-wedding-page .jeps-pw img { display: block; width: 100%; max-width: none; }
.jeps-pw-wrap { width: min(1180px, 88vw); margin-right: auto; margin-left: auto; }
.jeps-pw-kicker { margin: 0; color: var(--pw-gold); font: 700 17px/1.5 Georgia, serif; letter-spacing: .16em; }
.jeps-pw-placeholder { display: grid; width: 100%; height: 100%; min-height: 220px; place-items: center; color: #8a777d; background: linear-gradient(135deg, #f0e5e3, #e2cdd0); border: 1px solid rgba(116, 50, 71, .12); text-align: center; }
.jeps-pw-placeholder span { font-family: Georgia, serif; letter-spacing: .12em; }

.jeps-pw-nav { min-height: 72px; display: flex; justify-content: center; align-items: center; gap: 30px; padding: 0 4vw; background: rgba(255,250,247,.98); border-bottom: 1px solid rgba(116,50,71,.15); position: relative; z-index: 8; }
.jeps-pw-nav a { font-weight: 700; }
.jeps-pw-nav a:hover { color: var(--pw-burgundy); }
.jeps-pw-nav-cta { padding: 10px 24px; color: #fff !important; background: var(--pw-burgundy); }

.jeps-pw-hero { min-height: 720px; position: relative; display: flex; align-items: center; color: #fff; background: #171015; }
.jeps-pw-hero-photo { position: absolute; inset: 0; }
.jeps-pw-hero-photo > img,
.jeps-pw-hero-photo > .jeps-pw-placeholder { height: 100%; object-fit: cover; }
.jeps-pw-hero-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20,9,14,.02) 25%, rgba(31,14,23,.77) 63%, rgba(23,10,17,.94)); }
.jeps-pw-hero-copy { position: relative; z-index: 1; width: min(820px, 58vw); margin-right: 3vw; margin-left: auto; }
.jeps-pw-hero h1 { margin: 18px 0 24px; font: 500 clamp(40px, 3.8vw, 56px)/1.42 "Yu Mincho", "Hiragino Mincho ProN", serif; letter-spacing: .04em; text-wrap: balance; }
.jeps-pw-hero-copy > p:not(.jeps-pw-kicker) { margin: 0; color: rgba(255,255,255,.86); font-size: 19px; line-height: 2; }
.jeps-pw-actions { margin-top: 32px; display: flex; flex-wrap: wrap; gap: 12px; }
.jeps-pw-button { min-height: 58px; padding: 0 28px; display: inline-flex; justify-content: center; align-items: center; font-weight: 700; }
.jeps-pw-button-gold { color: #fff !important; background: linear-gradient(135deg,#c69b58,#a87839); box-shadow: 0 12px 30px rgba(180,138,76,.25); }
.jeps-pw-button-line { color: #fff !important; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.65); }

.jeps-pw-facts { width: min(1180px,92vw); margin: -46px auto 0; position: relative; z-index: 2; display: grid; grid-template-columns: repeat(4,1fr); background: var(--pw-paper); border-top: 4px solid var(--pw-gold); box-shadow: 0 18px 55px rgba(68,31,44,.14); }
.jeps-pw-facts div { min-height: 118px; padding: 20px; display: flex; flex-direction: column; justify-content: center; align-items: center; border-right: 1px solid var(--pw-line); text-align: center; }
.jeps-pw-facts div:last-child { border-right: 0; }
.jeps-pw-facts span { color: var(--pw-olive); font-family: Georgia,serif; letter-spacing: .08em; }
.jeps-pw-facts strong { font: 500 20px/1.55 "Yu Mincho",serif; }

.jeps-pw-story { padding: 125px 0; display: grid; grid-template-columns: .82fr 1.18fr; gap: 78px; align-items: center; }
.jeps-pw-story h2,
.jeps-pw-heading h2,
.jeps-pw-walk h2,
.jeps-pw-reserve h2,
.jeps-pw-information h2 { margin: 12px 0 27px; font: 500 clamp(34px,4vw,52px)/1.5 "Yu Mincho","Hiragino Mincho ProN",serif; letter-spacing: .035em; }
.jeps-pw-area { margin: 16px 0 0; color: var(--pw-olive); font-family: Georgia,serif; letter-spacing: .08em; }
.jeps-pw-prose { color: #68645e; font-size: 17px; }
.jeps-pw-prose p { margin: 0 0 1em; }
.jeps-pw-story figure { margin: 0; position: relative; }
.jeps-pw-story figure::before { content: ""; position: absolute; z-index: -1; inset: 28px -28px -28px 28px; background: linear-gradient(135deg,var(--pw-blush),#d9b8aa); border-radius: 140px 8px 140px 8px; }
.jeps-pw-story-image { height: 610px; overflow: hidden; border-radius: 140px 8px 140px 8px; }
.jeps-pw-story-image > img,
.jeps-pw-story-image > .jeps-pw-placeholder { height: 100%; object-fit: cover; }
.jeps-pw-story figcaption { margin-top: 12px; color: #77736b; text-align: right; }

.jeps-pw-styles { padding: 115px 0 140px; background: linear-gradient(135deg,#fbf5f1,#f3e4e3 55%,#f8efe9); }
.jeps-pw-heading { max-width: 820px; margin: 0 0 50px; }
.jeps-pw-heading h2 { margin-bottom: 0; }
.jeps-pw-style-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.jeps-pw-style-grid article { min-width: 0; }
.jeps-pw-style-image { height: 490px; margin-bottom: 24px; overflow: hidden; background: #ddd8ce; border: 1px solid rgba(180,138,76,.4); border-radius: 180px 180px 8px 8px; box-shadow: 0 18px 40px rgba(89,46,59,.11); }
.jeps-pw-style-image > img,
.jeps-pw-style-image > .jeps-pw-placeholder { height: 100%; object-fit: cover; }
.jeps-pw-card-label { margin: 0 0 8px; color: var(--pw-burgundy); font-family: Georgia,serif; letter-spacing: .08em; }
.jeps-pw-style-grid h3 { margin: 0 0 10px; font: 500 25px/1.5 "Yu Mincho",serif; }
.jeps-pw-style-grid article > p:last-child { margin: 0; color: #68645e; }

.jeps-pw-points { padding: 120px 0 135px; color: #fff; background: linear-gradient(125deg,#45212e,#743247 58%,#322027); }
.jeps-pw-heading-light .jeps-pw-kicker { color: #d1b885; }
.jeps-pw-heading-light h2 { color: #fff; }
.jeps-pw-point-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 19px; align-items: stretch; }
.jeps-pw-point-grid article { min-width: 0; height: 100%; display: flex; flex-direction: column; color: var(--pw-ink); background: var(--pw-paper); border: 1px solid rgba(216,180,133,.45); box-shadow: 0 18px 45px rgba(31,10,18,.2); }
.jeps-pw-point-image { height: 285px; flex: 0 0 auto; overflow: hidden; }
.jeps-pw-point-image > img,
.jeps-pw-point-image > .jeps-pw-placeholder { height: 100%; object-fit: cover; }
.jeps-pw-point-grid article > div:last-child { min-height: 300px; flex: 1; padding: 28px 28px 34px; border-top: 4px solid var(--pw-gold); }
.jeps-pw-point-grid article > div > span { color: var(--pw-gold); font: italic 25px/1.3 Georgia,serif; }
.jeps-pw-point-grid h3 { margin: 8px 0 12px; font: 500 25px/1.5 "Yu Mincho",serif; }
.jeps-pw-point-grid p { margin: 0; color: #69655d; }

.jeps-pw-plans { padding: 125px 0 110px; }
.jeps-pw-plan-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 21px; align-items: stretch; }
.jeps-pw-plan-grid article { min-width: 0; height: 100%; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--pw-line); box-shadow: 0 14px 38px rgba(94,48,61,.08); }
.jeps-pw-plan-image { height: 290px; position: relative; overflow: hidden; }
.jeps-pw-plan-image > img,
.jeps-pw-plan-image > .jeps-pw-placeholder { height: 100%; object-fit: cover; }
.jeps-pw-plan-image > span { position: absolute; top: 16px; left: 16px; padding: 7px 13px; color: #fff; background: rgba(116,50,71,.93); border: 1px solid rgba(255,226,188,.5); font-family: Georgia,serif; letter-spacing: .05em; }
.jeps-pw-plan-body { padding: 28px; display: flex; flex: 1; flex-direction: column; }
.jeps-pw-plan-body h3 { margin: 0; font: 500 26px/1.5 "Yu Mincho",serif; }
.jeps-pw-price { margin: 16px 0 0; color: var(--pw-olive); font: 500 34px/1.25 Georgia,serif; }
.jeps-pw-plan-note { margin: 7px 0 14px; color: #77736b; }
.jeps-pw-plan-body > p:last-of-type { color: #68645e; }
.jeps-pw-plan-body a { margin-top: auto; padding-top: 18px; display: flex; justify-content: space-between; color: var(--pw-olive); border-top: 1px solid var(--pw-line); font-weight: 700; }
.jeps-pw-caution { margin: 24px 0 0; color: #6f6b64; text-align: right; }

.jeps-pw-flow { padding: 105px 0; background: linear-gradient(120deg,#f3e8e4,#e8d5d7); }
.jeps-pw-flow-inner { display: grid; grid-template-columns: 300px 1fr; gap: 64px; align-items: start; }
.jeps-pw-flow-inner .jeps-pw-heading { margin: 0; }
.jeps-pw-flow-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; }
.jeps-pw-flow-grid article { min-height: 230px; padding: 28px; background: var(--pw-paper); border-top: 4px solid var(--pw-gold); box-shadow: 0 12px 30px rgba(87,43,57,.07); }
.jeps-pw-flow-grid span { color: var(--pw-gold); font: italic 27px/1.2 Georgia,serif; }
.jeps-pw-flow-grid h3 { margin: 8px 0; font: 500 23px/1.5 "Yu Mincho",serif; }
.jeps-pw-flow-grid p { margin: 0; color: #68645e; }

.jeps-pw-walk { min-height: 700px; display: grid; grid-template-columns: 1.15fr .85fr; color: #fff; background: linear-gradient(135deg,#281920,#512737); }
.jeps-pw-walk-photo { min-height: 700px; overflow: hidden; border-right: 5px solid var(--pw-gold); }
.jeps-pw-walk-photo > img,
.jeps-pw-walk-photo > .jeps-pw-placeholder { height: 100%; object-fit: cover; }
.jeps-pw-walk-copy { padding: 85px clamp(44px,6vw,92px); align-self: center; }
.jeps-pw-walk-copy > p:not(.jeps-pw-kicker) { color: rgba(255,255,255,.78); }
.jeps-pw-walk-copy dl { margin: 32px 0 0; }
.jeps-pw-walk-copy dl div { padding: 15px 0; display: grid; grid-template-columns: 120px 1fr; gap: 18px; border-top: 1px solid rgba(255,255,255,.2); }
.jeps-pw-walk-copy dt { color: #d3bb8d; }
.jeps-pw-walk-copy dd { margin: 0; }
.jeps-pw-walk-gallery { padding: 10px; display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; background: #2b1920; }
.jeps-pw-walk-gallery figure { height: 430px; margin: 0; position: relative; overflow: hidden; }
.jeps-pw-walk-gallery figure > img,
.jeps-pw-walk-gallery figure > .jeps-pw-placeholder { height: 100%; object-fit: cover; }
.jeps-pw-walk-gallery figcaption { position: absolute; inset: auto 0 0; padding: 50px 22px 17px; color: #fff; background: linear-gradient(transparent,rgba(34,13,21,.78)); font-family: Georgia,serif; letter-spacing: .1em; }

.jeps-pw-gallery { padding: 125px 0 115px; }
.jeps-pw-gallery-grid { display: grid; grid-template-columns: repeat(3,1fr); grid-auto-rows: 360px; gap: 14px; }
.jeps-pw-gallery-grid figure { margin: 0; overflow: hidden; background: #ddd8ce; border: 1px solid rgba(180,138,76,.32); }
.jeps-pw-gallery-grid figure:first-child { grid-column: span 2; grid-row: span 2; }
.jeps-pw-gallery-grid figure > img,
.jeps-pw-gallery-grid figure > .jeps-pw-placeholder { height: 100%; object-fit: cover; }

.jeps-pw-instagram { padding: 110px 0 115px; background: linear-gradient(135deg,#f1dfdf,#f8eee9 58%,#ead3d5); }
.jeps-pw-instagram header { margin-bottom: 28px; display: flex; justify-content: space-between; align-items: end; gap: 30px; }
.jeps-pw-instagram header h2 { margin: 7px 0 0; color: var(--pw-burgundy); font: 500 clamp(36px,5vw,58px)/1.35 Georgia,serif; letter-spacing: .06em; }
.jeps-pw-instagram header > a { color: var(--pw-burgundy); border-bottom: 1px solid var(--pw-burgundy); font-weight: 700; }
.jeps-pw-instagram-note { color: #796c6d; }
.jeps-pw-instagram-track { padding: 8px 2px 20px; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(280px,340px); gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; }
.jeps-pw-instagram-track a { aspect-ratio: 4/5; position: relative; overflow: hidden; color: #fff !important; background: #6c4b56; scroll-snap-align: start; }
.jeps-pw-instagram-track a > img,
.jeps-pw-instagram-track a > .jeps-pw-placeholder { position: absolute; inset: 0; height: 100%; object-fit: cover; }
.jeps-pw-instagram-track a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 45%,rgba(37,13,22,.82)); }
.jeps-pw-instagram-track a > span { position: absolute; z-index: 1; right: 20px; bottom: 18px; left: 20px; border-bottom: 1px solid rgba(255,255,255,.75); }

.jeps-pw-reserve { width: min(1180px,92vw); margin: 0 auto 110px; padding: 68px clamp(34px,7vw,88px); display: flex; justify-content: space-between; align-items: center; gap: 42px; color: #fff; background: linear-gradient(125deg,#8b4057,#4e2433 62%,#281920); box-shadow: 0 22px 55px rgba(75,31,45,.16); }
.jeps-pw-reserve h2 { margin-bottom: 7px; font-size: clamp(32px,3.5vw,46px); }
.jeps-pw-reserve > div > p:last-child { margin: 0; color: rgba(255,255,255,.78); }
.jeps-pw-button-light { flex: 0 0 auto; color: var(--pw-burgundy) !important; background: #fffaf4; box-shadow: 0 12px 28px rgba(35,12,21,.2); }

.jeps-pw-information { padding: 0 0 120px; display: grid; grid-template-columns: .42fr 1fr; gap: 72px; }
.jeps-pw-information dl { margin: 0; border-top: 1px solid var(--pw-line); }
.jeps-pw-information dl div { padding: 19px 0; display: grid; grid-template-columns: 150px 1fr; gap: 24px; border-bottom: 1px solid var(--pw-line); }
.jeps-pw-information dt { color: #77736b; }
.jeps-pw-information dd { margin: 0; font-weight: 700; }
.jeps-pw-info-links { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 28px; }
.jeps-pw-info-links a { padding-bottom: 3px; color: var(--pw-olive); border-bottom: 1px solid var(--pw-olive); font-weight: 700; }

@media (max-width: 980px) {
  .jeps-pw-nav { gap: 18px; }
  .jeps-pw-nav a:not(.jeps-pw-nav-cta) { display: none; }
  .jeps-pw-story { grid-template-columns: 1fr; gap: 45px; }
  .jeps-pw-style-grid,
  .jeps-pw-point-grid,
  .jeps-pw-plan-grid { grid-template-columns: repeat(2,1fr); }
  .jeps-pw-style-grid article:last-child,
  .jeps-pw-point-grid article:last-child,
  .jeps-pw-plan-grid article:last-child { grid-column: 1/-1; width: calc(50% - 12px); margin: auto; }
  .jeps-pw-flow-inner { grid-template-columns: 1fr; gap: 28px; }
  .jeps-pw-walk { grid-template-columns: 1fr; }
  .jeps-pw-information { grid-template-columns: 1fr; gap: 24px; }
}

@media (max-width: 680px) {
  .jeps-photo-wedding-page .jeps-pw { font-size: 17px; }
  .jeps-pw-wrap { width: min(88vw, 560px); }
  .jeps-pw-nav { min-height: 62px; justify-content: flex-end; padding: 0 18px; }
  .jeps-pw-hero { min-height: 0; display: grid; }
  .jeps-pw-hero-photo { position: relative; inset: auto; aspect-ratio: 4/3; }
  .jeps-pw-hero-photo > img { object-position: center; }
  .jeps-pw-hero-shade { display: none; }
  .jeps-pw-hero-copy { width: auto; margin: 0; padding: 44px 7vw 52px; background: linear-gradient(145deg,#24131a,#0f0b0d); }
  .jeps-pw-hero h1 { font-size: 38px; }
  .jeps-pw-hero-copy > p:not(.jeps-pw-kicker) { font-size: 17px; line-height: 1.85; }
  .jeps-pw-actions { display: grid; }
  .jeps-pw-button { width: 100%; }
  .jeps-pw-facts { width: 100%; margin: 0; grid-template-columns: repeat(2,1fr); }
  .jeps-pw-facts div:nth-child(2) { border-right: 0; }
  .jeps-pw-story { padding: 82px 0; }
  .jeps-pw-story h2,
  .jeps-pw-heading h2,
  .jeps-pw-walk h2,
  .jeps-pw-information h2 { font-size: 33px; }
  .jeps-pw-story-image { height: 460px; }
  .jeps-pw-styles,
  .jeps-pw-points { padding: 82px 0 92px; }
  .jeps-pw-heading { margin-bottom: 34px; }
  .jeps-pw-style-grid,
  .jeps-pw-point-grid,
  .jeps-pw-plan-grid { grid-template-columns: 1fr; }
  .jeps-pw-style-grid article:last-child,
  .jeps-pw-point-grid article:last-child,
  .jeps-pw-plan-grid article:last-child { grid-column: auto; width: auto; }
  .jeps-pw-style-image { height: 470px; }
  .jeps-pw-point-grid article > div:last-child { min-height: 0; }
  .jeps-pw-plans { padding: 88px 0 82px; }
  .jeps-pw-flow { padding: 78px 0; }
  .jeps-pw-flow-grid { grid-template-columns: 1fr; }
  .jeps-pw-flow-grid article { min-height: 0; }
  .jeps-pw-walk-photo { min-height: 470px; height: 470px; border-right: 0; border-bottom: 5px solid var(--pw-gold); }
  .jeps-pw-walk-copy { padding: 66px 7vw; }
  .jeps-pw-walk-copy dl div { grid-template-columns: 95px 1fr; }
  .jeps-pw-walk-gallery { grid-template-columns: 1fr; padding: 7px; gap: 7px; }
  .jeps-pw-walk-gallery figure { height: 380px; }
  .jeps-pw-gallery { padding: 88px 0 78px; }
  .jeps-pw-gallery-grid { grid-template-columns: 1fr; grid-auto-rows: 320px; }
  .jeps-pw-gallery-grid figure:first-child { grid-column: auto; grid-row: auto; height: 430px; }
  .jeps-pw-instagram { padding: 82px 0 88px; }
  .jeps-pw-instagram header { align-items: flex-start; flex-direction: column; }
  .jeps-pw-instagram-track { grid-auto-columns: 80vw; }
  .jeps-pw-reserve { margin-bottom: 82px; padding: 52px 27px; align-items: flex-start; flex-direction: column; }
  .jeps-pw-information { padding-bottom: 88px; }
  .jeps-pw-information dl div { grid-template-columns: 92px 1fr; gap: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .jeps-photo-wedding-page .jeps-pw * { scroll-behavior: auto !important; transition: none !important; }
}
