/* Shared by the main page and the standalone layout document. */
/* Equal service choices use the same button treatment. */
#app #services .card .button{background:#ff008c;color:#fff;border:1px solid #ff008c;font-family:var(--lulu-body-font);font-size:14px;font-weight:700;line-height:1.5;min-height:48px;text-align:center;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 18px;box-sizing:border-box}
#app #services .card .button:hover{background:#d90076;border-color:#d90076;color:#fff}
#app #services .card .button:focus-visible{outline:2px solid #171717;outline-offset:4px}
:root {
  --lulu-body-font: Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  --lulu-title-size: clamp(30px, 4vw, 48px);
  --lulu-section-size: clamp(25px, 2.8vw, 36px);
  --lulu-item-size: clamp(18px, 1.7vw, 22px);
}
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body, .page { font-family: var(--lulu-body-font); }
#app h2, #layouts .fgHeading h2 {
  font-family: var(--lulu-body-font);
  font-weight: 500;
  font-synthesis: none;
}
/* NEWS remains an English label, matching the other dotted labels. */
#app .press-news h2 { font-family: LuluLatin, Arial, sans-serif; font-weight: 400; }
#layouts .fgHeading h2 {
  font-size: var(--lulu-section-size);
  line-height: 1.6;
  letter-spacing: normal;
}

/* One heading scale across service pages, articles and inquiry screens. */
#app h1{font-size:var(--lulu-title-size);font-weight:500;line-height:1.5;letter-spacing:.02em}
#app h2:not(.sp-label):not(.eyebrow),#app #services h2{
  font-size:var(--lulu-section-size);font-weight:500;line-height:1.6;letter-spacing:normal;white-space:normal;
}
#app h3,#app #services .card h3,#app .preparation-guide h4{
  font-family:var(--lulu-body-font);font-size:var(--lulu-item-size);font-weight:700;line-height:1.6;letter-spacing:normal;
}
/* Small catalog names and decorative English labels are not section headings. */
#app .wj-card h3{font-size:14px;line-height:1.5}
#app .press-news h2:not(.sp-label):not(.eyebrow){font-size:20px;font-weight:400}

/* Compact floating contact entry, shared across service pages. */
.mobile-dock.inquiry-dock{display:flex;position:fixed;left:auto;right:max(24px,env(safe-area-inset-right));bottom:calc(24px + env(safe-area-inset-bottom));width:180px;padding:0;border:0;background:transparent;box-shadow:none;justify-content:center;}
.mobile-dock.inquiry-dock .dock-main{box-sizing:border-box;flex:1;width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;gap:14px;padding:12px 16px;border:0;border-radius:999px;background:var(--pink);color:#fff;font-size:14px;line-height:24px;white-space:nowrap;box-shadow:0 4px 14px #62003320;text-decoration:none;}
.mobile-dock.inquiry-dock .dock-main:hover{background:#df0079;}
.mobile-dock.inquiry-dock .dock-main:focus-visible{outline:2px solid #222;outline-offset:4px;}
.mobile-dock.inquiry-dock[hidden]{display:none!important;}
@media(max-width:700px){.mobile-dock.inquiry-dock{width:160px;right:max(16px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));}.mobile-dock.inquiry-dock .dock-main{font-size:13px;gap:10px;}}

/* Hide only the two requested home hero elements on mobile. */
@media(max-width:700px){.reference-hero .ref-ticket,.reference-hero .ref-cta{display:none!important;}}

/* The model selector uses product images, with accessible names retained. */
.ref-mobile-picker .ref-picker-label{display:none!important;}
.ref-models .ref-model{justify-content:space-between;}
@media(min-width:701px){
 .ref-models .ref-model{min-height:140px}
 .ref-models .ref-model-preview{position:absolute;left:55%;top:50%;transform:translate(-50%,-50%);width:clamp(60px,5vw,87px)}
 .ref-models .ref-model-text b{font-size:clamp(12px,1vw,18px)}
}

/* Keep the preview heading out of the visual layout. */
#app>.notice{display:none!important;}
.site-header{border-bottom:1px dotted #ff9dcd!important;}

/* Mobile specifications sit directly above pricing, in a compact grid. */
.reference-hero .ref-specs dt.ref-spec-heading{font-family:LuluLatin,monospace;font-size:13px;letter-spacing:.06em;color:#171717;line-height:1.4}
.reference-hero .ref-measure{display:block;white-space:nowrap;font-size:13px;letter-spacing:.015em}
.reference-hero .ref-specs .ref-unit{display:inline;font:10px Arial,sans-serif;color:inherit}
@media(max-width:700px){
 .reference-hero .ref-specs{grid-row:4;grid-column:1/-1;order:4;display:block;width:100%;min-width:0;margin:0;}
 .reference-hero .ref-specs dl{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:12px 16px;border-left:0;border-top:0;border-bottom:1px dotted #ff9dcd;padding:6px 0 14px;margin:0;}
 .reference-hero .ref-specs dl>div{margin:0;padding:0;min-width:0;}
 .reference-hero .ref-specs dl>div:after{display:none;}
 .reference-hero .ref-specs dl>div:first-child,.reference-hero .ref-specs dl>div:last-child{grid-column:1/-1;}
 .reference-hero .ref-specs dl>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px dotted #ddd;padding-bottom:10px;}
 .reference-hero .ref-specs dt{font-size:10px;}
 .reference-hero .ref-specs dd{font-size:12px;line-height:1.6;margin-top:4px;}
 .reference-hero .ref-specs #ref-model-label{margin:0;text-align:right;}
 .reference-hero .ref-specs .ref-color-name{font-size:18px;line-height:1.2;margin:0;white-space:nowrap;}
 .reference-hero .ref-specs #ref-model-label small{font-size:10px;margin-top:3px;}
 .reference-hero .ref-specs dl>div:last-child{display:flex;align-items:baseline;gap:16px;}
 .reference-hero .ref-specs dl>div:last-child dd{margin:0;}
 .reference-hero .ref-specs dl>div:last-child br{display:none;}
 .reference-hero .ref-price{margin-top:8px;}
}

/* Keep the selected color and its translation on one baseline. */
.reference-hero .ref-specs #ref-model-label{display:flex;align-items:baseline;justify-content:flex-end;gap:8px;white-space:nowrap;margin-top:5px}
.reference-hero .ref-specs #ref-model-label .ref-color-name{font-size:14px;line-height:1.4;margin:0;white-space:nowrap}
.reference-hero .ref-specs #ref-model-label small{display:inline;font-size:10px;line-height:1.4;margin:0;white-space:nowrap}
@media(max-width:700px){
 .reference-hero .ref-specs dl>div:first-child{align-items:baseline;gap:8px}
 .reference-hero .ref-specs dl>div:first-child dt{white-space:nowrap;font-size:9px}
 .reference-hero .ref-specs #ref-model-label{margin:0;gap:6px}
 .reference-hero .ref-specs #ref-model-label .ref-color-name{font-size:14px}
 .reference-hero .ref-specs #ref-model-label small{font-size:9px;margin:0}
}

.reference-hero .ref-spec-separator{display:none}
@media(max-width:700px){
 .reference-hero .ref-specs dl>div:last-child{gap:10px;flex-wrap:wrap}
 .reference-hero .ref-spec-separator{display:inline}
 .reference-hero .ref-specs #ref-model-label small{font-size:11px}
}
@media(max-width:360px){.reference-hero .ref-specs #ref-model-label .ref-color-name{font-size:12px}}

#site-menu .menu-social{gap:12px;align-items:center}
#site-menu .menu-social a{width:44px;height:44px;justify-content:center;border-radius:50%}
#site-menu .menu-social img{display:block;width:24px;height:24px;object-fit:contain}
#site-menu .menu-social a:hover{background:#fff0f8}
#site-menu .menu-social a:focus-visible{outline:2px solid #ff008c;outline-offset:3px}

/* Compact titles for cards, separate from section headings. */
#app .press-news h3,#app .press-banners h3{font-size:14px;font-weight:400;line-height:1.65}
#app #services .card{container-type:inline-size}
#app #services .card h3{font-size:min(18px,5.7cqi);font-weight:400;white-space:nowrap;line-height:1.6;letter-spacing:0}
#app #services .card h3 br{display:none}

/* Compact product specifications. */
.reference-hero .ref-specs dt,.reference-hero .ref-specs dt.ref-spec-heading{font-family:LuluLatin,monospace;font-size:11px;font-weight:400;letter-spacing:0;color:#171717;line-height:1.5}
.reference-hero .ref-specs #ref-model-label .ref-color-name{font-size:12px}
@media(min-width:701px){
 .reference-hero .ref-specs #ref-model-label{flex-direction:column;align-items:flex-start;gap:4px;white-space:normal}
 .reference-hero .ref-specs #ref-model-label small{display:block;font-size:11px}
}

.reference-hero .ref-price strong{font-family:LuluLatin,Lulu,monospace}

/* Hero type follows the available column width. */
@media(min-width:1101px){
 .reference-hero{align-items:end}
 .reference-hero .ref-copy,.reference-hero .ref-product,.reference-hero .ref-specs{align-self:end}
 .reference-hero .ref-booth-stage{padding-bottom:0}
 .reference-hero .ref-product{transform:translateX(-24px)}
 .reference-hero .ref-fine,.reference-hero .ref-spec-note{margin-bottom:0}
}
.ref-lineup-heading{display:none}
.reference-hero .ref-copy{container-type:inline-size;min-width:0}
#app .reference-hero h1{font-size:min(48px,12cqi);white-space:nowrap;line-height:1.55;letter-spacing:0;font-weight:400}
@media(max-width:700px){
 .reference-hero{container-type:inline-size}
 .reference-hero .ref-copy{container-type:normal}
 #app .reference-hero h1{font-size:min(25px,5.4cqi);width:100%;min-width:0}
}

/* Desktop contact: approved circular CTA; touch layout stays compact. */
@media(min-width:1101px){
.mobile-dock.inquiry-dock{width:128px;right:32px;bottom:32px}
.mobile-dock.inquiry-dock .dock-main{flex-direction:column;width:128px;height:128px;min-height:128px;padding:18px 8px;gap:8px;border-radius:50%;font-size:17px;white-space:normal;text-align:center;line-height:1.5}
.mobile-dock.inquiry-dock .dock-main span{font-size:28px;line-height:1}
}
@media(min-width:1101px) and (prefers-reduced-motion:no-preference){
.mobile-dock.inquiry-dock{animation:contact-enter .55s ease-out both}
.mobile-dock.inquiry-dock .dock-main,.mobile-dock.inquiry-dock .dock-main span{transition:transform .2s ease,background-color .2s ease,box-shadow .2s ease}
.mobile-dock.inquiry-dock .dock-main:hover{transform:translateY(-3px);box-shadow:0 8px 22px #62003326}
.mobile-dock.inquiry-dock .dock-main:hover span{transform:translate(3px,-3px)}
@keyframes contact-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
}

.fgHeading,.fgToolbar,.fgFoot{width:100%;max-width:none;margin-left:0;margin-right:0}
.fgTrack{padding-left:0;padding-right:0;scroll-padding-inline:0}
.shooting-guide{margin-top:28px;padding:0;list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.shooting-guide svg{width:38px;height:38px;fill:none;stroke:var(--pink,#ff0080);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:.1 4;display:inline-block;vertical-align:middle;margin-left:14px}
.shooting-guide .shoot-number{font-family:LuluLatin,Lulu,monospace;color:var(--pink,#ff0080);font-size:24px}
#app .shooting-guide h3{font-size:18px;font-weight:400;margin:20px 0 8px}
.shooting-guide p{font-size:14px;line-height:1.8;margin:0}
@media(max-width:700px){.shooting-guide{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}}

/* Shared action sizing: change here, verify all service routes. */
:root{--lulu-action-font:1rem;--lulu-action-height:56px}
@media(min-width:1101px){:root{--lulu-action-font:1.125rem}}
#app .button,#app .sp-button,#app #services .card .button{font-size:var(--lulu-action-font);min-height:var(--lulu-action-height);line-height:1.5;padding:14px 20px;box-sizing:border-box;max-width:100%;white-space:normal;text-align:center}

/* Keep the decorative barcode aligned with the model choices. */
.ref-lineup-barcode{display:none}
@media(min-width:701px){.ref-lineup-barcode{display:block;position:absolute;left:-2.7%;top:15px;width:14px;height:88px;pointer-events:none}}

/* Viewport rails: decorative elements stay outside the scrolling content. */
@media(min-width:701px){
 .reference-home{--rail-inset:max(20px,calc((100vw - 1800px)/2 + 2.5vw));--rail-top:104px}
 .reference-hero:before,.reference-hero:after{position:fixed;top:var(--rail-top);z-index:4;pointer-events:none}
 .reference-hero:before{left:var(--rail-inset)}
 .reference-hero:after{right:var(--rail-inset)}
 .reference-hero .ref-edge{position:fixed;left:var(--rail-inset);top:calc(var(--rail-top) + 64px);bottom:auto;z-index:4;pointer-events:none}
 .ref-lineup .ref-lineup-barcode{position:fixed;left:var(--rail-inset);top:auto;bottom:40px;z-index:4;pointer-events:none}
}
@media(min-width:701px) and (max-height:650px){.ref-edge span{font-size:9px;letter-spacing:1px}.ref-lineup .ref-lineup-barcode{height:60px;bottom:20px}}

/* Reserve the visible footer area for its own content. */
.mobile-dock.inquiry-dock{bottom:calc(24px + var(--footer-clearance,0px))}
@media(min-width:1101px){.mobile-dock.inquiry-dock{bottom:calc(32px + var(--footer-clearance,0px))}}
@media(max-width:700px){.mobile-dock.inquiry-dock{bottom:calc(16px + env(safe-area-inset-bottom) + var(--footer-clearance,0px))}}
.footer-in-view .ref-edge,.footer-in-view .ref-lineup-barcode{visibility:hidden}
.footer-in-view .reference-hero:before,.footer-in-view .reference-hero:after{visibility:hidden}

/* Shared page composition, October 2026. Keep overrides together. */
:root{--page-reading-width:1200px;--page-space:clamp(40px,5vw,72px);--page-line:#efbed7;--page-wash:#fff7fb;--page-muted:#625860}
body:not(.reference-home) #app{max-width:var(--page-reading-width);margin-inline:auto}
#app .sp-breadcrumb{margin:16px 0 32px;gap:12px;font-size:12px}
#app .sp-label{font-family:LuluLatin,monospace;font-size:13px;font-weight:400;letter-spacing:.06em;line-height:1.5}
#app .sp-section{padding-block:var(--page-space);border-color:var(--page-line)}
#app .sp-section h2{margin:12px 0 28px}
#app .sp-section h3,#app .wj-three h3,#app .rental-use-grid h3{font-size:20px;font-weight:500;line-height:1.55}
#app .sp-section p,#app .wj-three p,#app .wj-flow p{font-size:15px;line-height:1.95;color:var(--page-muted)}
#app .sp-hero h1{font-size:clamp(28px,3.3vw,44px);line-height:1.6}
#app .sp-hero figure{background:var(--page-wash);border:1px solid #f6e6ee;border-radius:16px}
#app .sp-payment{padding:32px;border:1px solid var(--page-line);background:var(--page-wash);gap:12px 40px}
#app .sp-payment strong{font-size:24px;font-weight:500}
#app .sp-steps{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:24px}
#app .sp-steps li{border-top:1px dotted var(--page-line);padding-top:20px}
#app .sp-faq details{padding:0;border-bottom:1px solid #e9e1e5}
#app .sp-faq summary{padding:22px 32px 22px 0;position:relative;font-size:16px;font-weight:500;list-style:none}
#app .sp-faq summary::-webkit-details-marker{display:none}
#app .sp-faq summary:after{content:'+';position:absolute;right:4px;color:#db0077;font-size:22px;font-weight:400;top:16px}
#app .sp-faq details[open]>summary:after{content:'−'}
#app .sp-faq details>p{margin:0 0 24px;max-width:65ch}
#app .rental-heading{max-width:none;display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:48px;padding:12px 0 40px}
#app .rental-heading h1{font-size:clamp(28px,3.1vw,42px);line-height:1.5;margin:16px 0 20px}
.rental-heading-break{display:block}
.rental-heading-copy>p:not(.sp-label){font-size:15px;line-height:1.95;max-width:36em;color:var(--page-muted)}
.rental-heading-visual{margin:0;background:var(--page-wash);border-radius:16px;padding:24px;text-align:center}
.rental-heading-visual img{display:block;width:100%;height:310px;object-fit:contain;mix-blend-mode:multiply}
.rental-heading-visual figcaption{font:11px LuluLatin,monospace;letter-spacing:.08em;margin-top:14px;color:#756970}
#app .rental-entry{gap:20px;margin-bottom:28px}
#app .rental-entry button{padding:24px;text-align:left;border-color:var(--page-line);background:white}
#app .rental-entry strong{font-size:18px;font-weight:500}
#app .rental-index{border-color:var(--page-line)}
#app .rental-index button{font-size:14px;min-height:48px}
#app .wj-heading{display:block;margin-bottom:24px}
#app .wj-heading h1{font-size:clamp(26px,3vw,40px);margin:12px 0 0}
#app .wj-hero-summary{align-items:flex-start;gap:24px;padding:24px 0}
#app .wj-hero-summary>p{font-size:15px}
#app .wj-hero-links{flex-wrap:wrap;justify-content:flex-end}
#app .wj-scene{height:clamp(320px,38vw,490px);border-radius:12px}
#app .wj-end{padding:40px 28px;border:1px solid var(--page-line);border-radius:16px;background:var(--page-wash)}
#app .wj-filter{padding:24px;background:var(--page-wash);border-radius:12px;gap:16px}
#app .wj-filter input,#app .wj-filter select{font-size:16px;min-height:48px;margin-top:8px}
#app .wj-card h3{font-size:16px;font-weight:500;line-height:1.6}
#app .wj-card img{border-radius:8px}
#app .wj-favorite{font-size:13px}
#app .press-card h3{font-size:18px;font-weight:400;line-height:1.65;margin:10px 0}
#app .press-card time,#app .press-read{font-size:12px}
#app .press-image{border-radius:8px}
#app .press-news .press-card h3{font-size:15px}
#app .press-grid{row-gap:40px}
#app .preparation-guide{padding:28px;border:1px solid #f3dfe9;background:var(--page-wash);border-radius:12px}
#app .preparation-guide>h3{font-size:18px;font-weight:500;margin:0 0 24px}
#app .preparation-guide li{display:grid;grid-template-columns:40px minmax(0,1fr);align-items:start;gap:16px}
#app .preparation-guide h4{font-size:17px;font-weight:500;margin:0 0 10px}
#app .preparation-guide p{font-size:14px;margin:0 0 8px;line-height:1.8}
#app .preparation-guide small{font-size:12px;line-height:1.8}
.photo-intro-copy .shooting-flow{padding:24px 0 0;margin-top:24px;border-top:1px dotted var(--page-line)}
.photo-intro-copy .shooting-guide{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:20px}
#app .photo-intro-copy .shooting-guide h3{font-size:16px;margin:12px 0 6px;font-weight:500}
.photo-intro-copy .shooting-guide p{font-size:13px;line-height:1.7}
.photo-intro-copy .shooting-guide svg{width:30px;height:30px}
.dock-over-action .inquiry-dock{visibility:hidden;pointer-events:none}
@media(prefers-reduced-motion:no-preference){
 #app .sp-button,#app .wj-favorite,#app .rental-entry button{transition:background-color .18s,border-color .18s,box-shadow .18s}
 #app .rental-entry button:hover{background:var(--page-wash);border-color:#ff008c}
 #app .wj-card>a:hover img{box-shadow:0 8px 24px #6a284018}
}
@media(max-width:850px){
 #app .rental-heading{gap:24px;grid-template-columns:1.2fr 1fr}
 .rental-heading-visual img{height:240px}
 #app .preparation-guide ul{grid-template-columns:1fr;gap:22px}
 #app .wj-hero-summary{display:block}
 #app .wj-hero-links{justify-content:flex-start}
}
@media(max-width:600px){
 #app .rental-heading{grid-template-columns:1fr;gap:24px;padding-top:8px}
 #app .rental-heading h1{font-size:28px}
 .rental-heading-visual{padding:20px}.rental-heading-visual img{height:240px}
 #app .rental-entry button{padding:20px}
 #app .sp-steps{grid-template-columns:1fr}
 #app .sp-payment{padding:24px}
 #app .sp-payment strong{font-size:21px}
 #app .wj-hero-links{display:grid;grid-template-columns:1fr}
 #app .wj-hero-links .sp-button{margin:0}
 #app .wj-filter{padding:18px}
 #app .press-card h3{font-size:15px}
 #app .preparation-guide{padding:20px}
 #app .sp-section h3{font-size:18px}
 #app .sp-section p{font-size:14px}
}
/* Photo presentation and lightweight illustrated pose ideas. */
.photo-viewer{box-sizing:border-box;position:fixed;inset:0;margin:auto;width:min(1120px,94vw);max-width:94vw;max-height:94dvh;padding:60px 24px 24px;border:1px solid #f0c6da;border-radius:14px;background:#fff;color:#171717;overflow:auto}
.photo-viewer::backdrop{background:#28151fd9}
.photo-viewer figure{margin:0}.photo-viewer img{display:block;width:100%;height:calc(88dvh - 120px);object-fit:contain}
.photo-viewer figcaption{font-size:12px;line-height:1.8;text-align:center;margin:12px 0 0;color:#665c62}
.photo-viewer-close{position:absolute;right:16px;top:10px;min-height:44px;border:0;background:white;font:14px var(--lulu-body-font);padding:8px 16px;cursor:pointer;color:#bd0066}
body.photo-viewer-open{overflow:hidden}
#app .photo-expand{display:block;margin:12px 0 0 auto;min-height:44px;padding:8px 14px;border:1px solid #efbed7;border-radius:999px;background:white;color:#ad005b;font:13px var(--lulu-body-font);cursor:pointer}
.photo-expand:focus-visible,.photo-viewer-close:focus-visible{outline:2px solid #171717;outline-offset:3px}
.pose-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:28px}
.pose-drawing{border:1px solid #f1cfdf;border-radius:12px;background:#fff8fc;padding:18px 20px 0}
.pose-drawing>span{font:12px LuluLatin,monospace;color:#c4006a;letter-spacing:.04em}
.pose-drawing svg{display:block;margin:12px auto 0;width:100%;max-width:260px;fill:#fff;stroke:#46333e;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pose-drawing .pose-accent{stroke:#ff008c;stroke-width:3}
#app .pose-guide h3{font-size:18px;margin:18px 0 8px;font-weight:500}
#app .pose-guide p{max-width:45em}
@media(max-width:600px){.pose-grid{grid-template-columns:1fr;gap:24px}.pose-grid article{display:grid;grid-template-columns:120px minmax(0,1fr);column-gap:18px;align-items:start}.pose-drawing{grid-row:1/3;padding:12px 8px 0}.pose-drawing>span{font-size:10px}#app .pose-guide h3{font-size:16px;margin:4px 0 8px}#app .pose-grid p{margin:0;font-size:13px}.photo-viewer{padding:60px 12px 20px}}

/* One route-independent set of desktop rails. */
.site-rails{display:none}
@media(min-width:701px){
 .reference-hero:before,.reference-hero:after,.reference-hero .ref-edge,.ref-lineup .ref-lineup-barcode{display:none!important}
 .site-rails{display:block;--rail-inset:max(20px,calc((100vw - 1800px)/2 + 2.5vw));pointer-events:none}
 .site-rails>*{position:fixed;z-index:4;pointer-events:none}
 .site-rail-plus{top:104px;font:23px monospace;color:#333}
 .site-rail-left,.site-rail-label,.site-rail-barcode{left:var(--rail-inset)}
 .site-rail-right{right:var(--rail-inset)}
 .site-rail-label{top:168px;writing-mode:vertical-rl;font:11px LuluLatin,monospace;letter-spacing:2px}
 .site-rail-label b{color:var(--pink);margin-top:24px}
 .site-rail-barcode{bottom:40px;width:14px;height:88px}
 body:not(.reference-home) #app{width:calc(100% - 120px);box-sizing:border-box}
 .footer-in-view .site-rails{visibility:hidden}
}
@media(min-width:701px) and (max-height:650px){.site-rail-label{font-size:9px;letter-spacing:1px}.site-rail-barcode{height:60px;bottom:20px}}

/* Reserve rail clearance at the compact desktop breakpoint. */
@media(min-width:701px) and (max-width:1100px){body.reference-home #app{width:calc(100% - 120px);padding-inline:0;margin-inline:auto;box-sizing:border-box}}

/* Wedding: guest timing and placement, scoped to this section. */
.wedding-use-grid{gap:0;border-top:1px dotted #ef8bbc;border-bottom:1px dotted #ef8bbc}
.wedding-use-grid article{padding:28px 26px;border-right:1px solid #f0dde7;min-width:0}
.wedding-use-grid article:first-child{padding-left:0}.wedding-use-grid article:last-child{border:0}
.wedding-use-number{font:13px LuluLatin,monospace;color:#bf0069;letter-spacing:.04em}
#app .wedding-use-guide h3{font-size:clamp(20px,1.7vw,27px);line-height:1.6;margin:15px 0}
#app .wedding-use-guide .wedding-use-place{font-size:14px;color:#a5005b;line-height:1.8;margin:0 0 16px}
#app .wedding-use-guide .wedding-use-tip{font-size:14px;line-height:1.8;color:#655960;margin-top:20px}
.wedding-placement{display:grid;grid-template-columns:1fr 1.3fr;gap:40px;align-items:center;margin:44px 0;background:#fff8fc;padding:32px}
.wedding-flow-map{margin:0}.wedding-flow-main{display:flex;align-items:center;justify-content:space-between;gap:8px}.wedding-flow-main>span{padding:12px 8px;background:white;border:1px solid #ead5e0;border-radius:6px;font-size:14px;text-align:center}.wedding-flow-main>b{color:#b60061;font-weight:400}
.wedding-flow-branch{display:flex;flex-direction:column;align-items:center;color:#c00068}.wedding-flow-branch>span{font-size:24px}.wedding-flow-branch strong{border:1px solid #ff008c;border-radius:8px;padding:14px 20px;background:white;text-align:center;font-size:22px;font-weight:500}.wedding-flow-branch small{font-size:12px}.wedding-flow-map figcaption{font-size:12px;color:#756973;line-height:1.8;margin-top:16px}
.wedding-placement-check{padding:clamp(20px,3vw,36px);margin:0 0 28px;background:#fff8fc;border:1px solid #efdce7;border-radius:12px}.wedding-placement-check h3{margin:0 0 24px;font-size:clamp(20px,2vw,24px)}.venue-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 32px}.venue-check-grid h4{margin:0 0 8px;color:#be006d;font-size:16px}.venue-check-grid p,.wedding-placement-check .venue-check-note{font-size:15px;line-height:1.8;margin:0}.wedding-placement-check .venue-check-note{margin-top:24px;padding-top:16px;border-top:1px dotted #e5bad2;color:#6f626a;font-size:13px}@media(max-width:600px){.venue-check-grid{grid-template-columns:1fr;gap:20px}}
@media(max-width:900px){.wedding-use-grid{grid-template-columns:1fr}.wedding-use-grid article,.wedding-use-grid article:first-child{padding:26px 0;border-right:0;border-bottom:1px solid #f0dde7;display:block}.wedding-placement{grid-template-columns:1fr;gap:20px;padding:24px}.wedding-flow-map{max-width:520px;width:100%;justify-self:center}}
@media(max-width:600px){#app .wedding-use-grid p{font-size:15px;margin:12px 0;line-height:1.9}.wedding-placement{padding:20px 14px}.wedding-flow-main>span{font-size:12px;padding:10px 6px}#app .wedding-use-guide h3{font-size:21px}}

/* Wedding venue and custom-frame entry points. */
.wedding-frame-options{margin-top:36px;padding:28px;background:#fff8fc;border:1px solid #f0dce6;border-radius:10px}.wedding-frame-options .wj-three{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.wedding-frame-options h4{font-size:18px;margin:18px 0 8px}.venue-entry{font-size:14px;line-height:1.8;margin-top:22px}.venue-entry a{text-decoration:underline;text-underline-offset:5px}.wedding-venue-entry{border-top:1px dotted #ef8bbc}.wedding-venue-entry p{max-width:55em}
@media(max-width:600px){.wedding-frame-options{padding:22px 18px}.wedding-frame-options .wj-three{grid-template-columns:1fr;gap:8px}}

body:has(select[name="usage"]) #sp-inquiry .sp-primary{color:#fff}

#services .home-venue-inquiry{display:block;min-height:44px;padding:12px 0 0;margin-top:8px;color:#c40068;font-size:16px;font-weight:600;text-align:center;text-decoration:underline;text-underline-offset:4px;background:transparent;border:0}
