/* LuluPri visual grammar: existing fonts and motifs, no new palette. */
:root{--lulu-display:'Lulu','Lulu Font Japanese',sans-serif}
.page #layouts .fgHeading h2,.page #experience>h2,.page #frames h2,
.page .newsHeading h2,.page .newsHeading h1,.page #contact h2{
 font-family:var(--lulu-display);font-weight:450;font-synthesis:none;letter-spacing:.025em;
}
.page .fgIndex,.page .fgSlot>span,.page .fgStageLabel{font-family:'Lulu',monospace;font-weight:400;font-synthesis:none}
.page .fgIndex{font-size:14px;letter-spacing:.08em}
.page .fgSlot>span{font-size:24px;color:#000}
.page .fgStageLabel{font-size:11px;letter-spacing:.08em}
/* Crop corners: a photographic motif on the gallery, kept off the actual print. */
.fgStage:after{content:'';position:absolute;right:16px;top:16px;width:25px;height:25px;pointer-events:none;background-color:var(--lulu-accent);mask:url('/assets/lulu-focus.svg') center/contain no-repeat;-webkit-mask:url('/assets/lulu-focus.svg') center/contain no-repeat}
/* A vertical signature in the heading's empty right edge. */
.page .newsHeading{position:relative;padding-right:30px}
.newsHeading:after{content:'';position:absolute;right:0;top:0;width:12px;height:64px;background-color:var(--lulu-accent);mask:url('/assets/lulu-barcode-vertical.svg') center/100% 100% no-repeat;-webkit-mask:url('/assets/lulu-barcode-vertical.svg') center/100% 100% no-repeat;pointer-events:none}
.page .newsLabel:before{content:'';display:inline-block;width:8px;height:8px;margin-right:10px;background:var(--lulu-accent);border-radius:50%;vertical-align:1px}
/* Printed dotted rules carry the top-page vocabulary down the page. */
.page .newsCard,.page #experience .benefitGrid article,.page #pricing .planGrid article{border-top-style:dotted}
.page #experience .benefitGrid article{position:relative}
.page #experience .featureNumber{display:block;padding-right:42px;font-weight:400;font-synthesis:none}
.page #experience .benefitGrid article:after{content:'';position:absolute;right:0;top:18px;width:28px;height:28px;pointer-events:none;background-color:var(--lulu-accent);mask:url('/assets/lulu-focus.svg') center/contain no-repeat;-webkit-mask:url('/assets/lulu-focus.svg') center/contain no-repeat}
.page #experience .benefitGrid article:nth-child(2):after{mask-image:url('/assets/lulu-frames.svg');-webkit-mask-image:url('/assets/lulu-frames.svg')}
/* The final invitation keeps the existing heart; no decorative UI in fields. */
@media(max-width:700px){.page .newsHeading h1{font-size:clamp(21px,6.1vw,28px)}.page .newsHeading:after{height:48px;width:10px}}
/* Keep the layout heading's existing line intact on narrow screens. */
@media(max-width:700px){.page #layouts .fgHeading h2{font-size:clamp(23px,6.65vw,29px)}}

/* Fullwidth digits belong to Japanese Lulu; ASCII stays in Latin Lulu. */
@font-face{font-family:"Lulu Fullwidth Digits";src:url("/fonts/LuluFont-Japanese-Medium.woff") format("woff");font-weight:450;font-display:swap;unicode-range:U+FF10-FF19}
:root{--lulu-display:"Lulu Fullwidth Digits","Lulu","Lulu Font Japanese",sans-serif}

/* Introductory rental: brand display price, readable supporting terms. */
.page .introPrice .priceAmount{display:block;font-family:var(--lulu-display);font-size:clamp(32px,3.3vw,46px);font-weight:450;font-synthesis:none;letter-spacing:.01em;line-height:1.3;color:#ff0080}
.page .introPrice .pricePeriod{display:block;font-family:var(--lulu-display);font-size:24px;font-weight:450;font-synthesis:none;letter-spacing:.03em;line-height:1.5;color:#ff0080}
.page .introPrice small{color:#000;font-family:"Hiragino Kaku Gothic ProN",sans-serif}
.page .heroPrice .introPrice{display:block;margin-top:8px}
.page .heroPrice .priceAmount{font-size:34px}

.page .introPrice .regularPrice{display:block;color:#000;font-family:"Hiragino Kaku Gothic ProN",sans-serif;font-weight:400;font-size:14px;line-height:1.6;margin-bottom:8px}.page .introPrice .regularPrice s{text-decoration-thickness:1px}

/* Frame example removed: keep the service copy in a readable single column. */
.page #frames{grid-template-columns:minmax(0,1fr);gap:0}.page #frames>div{max-width:760px}

/* Fluid layout v1: bounded scale, readable copy, product-first proportions. */
.page{--layout-max:1600px;--layout-gutter:clamp(22px,5.5vw,112px);--layout-pad:max(var(--layout-gutter),calc((100vw - var(--layout-max))/2));--section-space:clamp(56px,6vw,112px)}
.page .header{max-width:1920px;margin-inline:auto;padding-inline:var(--layout-gutter);gap:clamp(12px,1.5vw,28px)}
.page .newHero{max-width:1920px;grid-template-columns:minmax(0,1.05fr) minmax(0,1.2fr) minmax(170px,.43fr);gap:clamp(20px,2.4vw,46px);padding:clamp(32px,3vw,64px) var(--layout-gutter);min-height:0}
.page .newHero h1{font-size:clamp(32px,3.1vw,64px);line-height:1.65}
.page .productHero{min-width:0;width:100%}
.page .productHero>img{display:block;width:100%;height:auto;max-height:820px;object-fit:contain}
.page .heroLead{font-size:clamp(13px,.9vw,17px);max-width:34em}
.page .heroWords>.kicker{font-size:clamp(10px,.7vw,13px);margin-bottom:clamp(20px,2vw,36px)}
.page .heroWords .primaryCta{min-width:0;max-width:360px;width:100%;font-size:clamp(12px,.85vw,16px);min-height:56px}
.page .heroWords>.fineprint{max-width:38em;font-size:clamp(11px,.72vw,13px)!important}
.page .productHero figcaption{max-width:38em;font-size:clamp(10px,.7vw,12px);margin-top:20px}
.page .productTicket{padding:clamp(14px,1.2vw,22px);gap:clamp(10px,.85vw,16px)}
.page .productTicket>b{margin-left:calc(-1 * clamp(14px,1.2vw,22px));font-size:clamp(22px,1.6vw,30px)}
.page .ticketEyebrow,.page .ticketCaption,.page .productSpecs dt{font-size:clamp(10px,.75vw,14px)}
.page .productSpecs dd{font-size:clamp(12px,.85vw,16px)}
.page .productSpecs small{font-size:11px}
.page .featureRibbon{grid-column:1/-1;margin-top:clamp(24px,3vw,52px)}
.page .featureRibbon b{font-size:clamp(13px,1vw,18px)}
.page .featureRibbon span{font-size:clamp(11px,.8vw,14px);line-height:1.7}
.page .featureRibbon i{width:clamp(28px,2.3vw,42px);height:clamp(28px,2.3vw,42px)}
.page .proof,.page .sectionNav{margin-inline:var(--layout-pad);max-width:none}
.page .sectionNav{gap:clamp(16px,2vw,32px);flex-wrap:wrap}
.page .photoShowcase,.page .editorial,.page .frameSection,.page .machineSection,.page .plans,.page .faq,.page .contact,.page .newsSection{max-width:none;margin-inline:0;padding-inline:var(--layout-pad);padding-block:var(--section-space)}
.page .photoShowcase,.page .machineSection{gap:clamp(32px,5vw,88px);grid-template-columns:repeat(2,minmax(0,1fr))}
.page .photoShowcase .heroSample{min-width:0;width:100%;padding:clamp(16px,2vw,36px)}
.page .photoShowcase .heroSample>img{width:100%;height:auto;max-height:740px;object-fit:contain}
.page .machinePhoto{min-width:0;padding:clamp(16px,2vw,36px)}
.page .machinePhoto img{width:100%;height:auto;max-height:640px;object-fit:contain}
.page .editorial h2,.page .photoShowcase h2,.page .frameSection h2,.page .machineSection h2,.page .plans>h2,.page .faq h2,.page .contact h2{font-size:clamp(27px,2.55vw,48px);line-height:1.6}
.page .sectionIntro,.page .benefitGrid p,.page .photoShowcase p,.page .frameSection p{font-size:clamp(14px,.95vw,17px);max-width:42em;line-height:1.95}
.page #frames>div{max-width:960px}
.page .planGrid{gap:clamp(20px,2vw,36px)}
.page .planGrid article{min-width:0}
.page .planGrid h3{font-size:clamp(22px,1.65vw,30px)}
.page .sceneBand{max-width:1920px;margin-inline:auto;grid-template-columns:1.1fr 1fr}
.page .sceneBand>div{padding:clamp(32px,4vw,72px)}
.page .sceneBand>img{min-width:0;object-fit:cover}
.page .newsGrid{gap:clamp(24px,3vw,52px)}
.page .newsArt{height:clamp(200px,20vw,360px)}
.page .newsArticle{max-width:860px;line-height:1.95}
.page .fgHeading,.page .fgFoot{max-width:var(--layout-max);width:calc(100% - 2 * var(--layout-pad))}
.page .fgTrack{padding-inline:var(--layout-pad);scroll-padding-inline:var(--layout-pad);gap:clamp(18px,2vw,32px)}
.page .fgCard{flex-basis:clamp(280px,25vw,420px);max-width:none}
.page .fgStage{height:clamp(340px,28vw,440px)}
.page .fgPaper{height:clamp(250px,20vw,330px)}
.page .fgPaper.fgLandscape{height:auto;width:94%;max-width:340px}
.page .contactFields,.page .contactChoices{max-width:880px}
.page .contactFields input,.page .contactFields textarea{max-width:100%;font-size:16px}
@media(max-width:1199px) and (min-width:721px){
 .page .headerNav{display:none}
 .page .newHero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px}
 .page .newHero h1{font-size:clamp(30px,3.55vw,42px)}
 .page .productDossier{grid-column:1/-1;display:grid;grid-template-columns:minmax(180px,1fr) 2fr;gap:32px;width:100%;padding:0}
 .page .productSpecs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;margin:0}
 .page .productSpecs>div{margin:0}
 .page .planGrid{grid-template-columns:1fr}
 .page .planGrid article{padding:28px}
 .page .featureRibbon{margin-top:12px}
}
@media(max-width:720px){
 .page{--layout-gutter:clamp(20px,6vw,40px);--section-space:52px}
 .page .newHero{grid-template-columns:minmax(0,1fr);gap:0;padding-top:28px}
 .page .newHero h1{font-size:clamp(28px,7.5vw,46px)}
 .page .productHero{max-width:440px;justify-self:center;margin-bottom:20px}
 .page .productHero>img{height:auto;max-height:520px}
 .page .productDossier{grid-template-columns:minmax(130px,.9fr) minmax(0,1fr);gap:20px;width:100%;max-width:520px;justify-self:center}
 .page .heroWords .primaryCta{max-width:none}
 .page .featureRibbon{grid-column:1;gap:28px 0;margin-top:32px}
 .page .featureRibbon>a{padding-inline:14px;min-width:0}
 .page .featureRibbon>a:nth-child(odd){padding-left:0}
 .page .photoShowcase,.page .machineSection,.page .sceneBand,.page .faq{grid-template-columns:minmax(0,1fr)}
 .page .heroLead{font-size:14px}
 .page .sectionNav{flex-wrap:nowrap}
 .page .newsGrid{grid-template-columns:minmax(0,1fr)}
 .page .fgHeading{display:block}
 .page .fgCard{flex-basis:82vw;min-width:0}
 .page .fgStage{height:340px}
 .page .fgPaper{height:250px}
 .page .fgFoot{display:block}
 .page .contactFields,.page .contactChoices{grid-template-columns:minmax(0,1fr)}
 .page .saveFlow{gap:12px}
 .page .saveFlow b{width:100%}
 .page .contactCta{max-width:100%;min-width:0}
}
