/* LINE image service. Shared brand styles are in styles.css / colorful.css. */
:root { --line-green:#07843f; --line-dark:#066735; --line-tint:#edf9f1; }
.line-button { display:inline-flex; align-items:center; justify-content:center; gap:15px; min-height:60px; padding:15px 27px; border-radius:40px; background:var(--line-green); color:#fff; font-size:1rem; font-weight:800; line-height:1.5; box-shadow:0 6px 0 #065c2c14; transition:background .15s,transform .15s; }
.line-button:hover { background:var(--line-dark); transform:translateY(-2px); }
.line-nav { background:var(--line-green); }
.line-nav:hover { background:var(--line-dark); }
.line-page .site-header { position:sticky; top:0; z-index:20; background:#fffffff5; }
.line-page h2 { font-size:clamp(1.8rem,2.65vw,2.5rem); letter-spacing:-.045em; }
.line-page p { text-wrap:pretty; }
.line-hero { background:radial-gradient(ellipse at 90% 35%,#eaf8ed 0,transparent 48%),radial-gradient(ellipse at 0 95%,#fff1f7 0,transparent 50%),#fffdfb; overflow:hidden; padding-bottom:58px; }
.breadcrumb { padding-block:20px; display:flex; flex-wrap:wrap; gap:12px; font-size:.7rem; color:#626b76; }
.breadcrumb a { text-decoration:underline; text-underline-offset:4px; }
.line-hero-grid { display:grid; grid-template-columns:1.22fr 1fr; gap:40px; align-items:center; padding-top:24px; }
.service-pill { display:inline-flex; gap:9px; align-items:center; border:1px solid #bce1c9; background:#fff; padding:6px 17px; border-radius:30px; font-size:.8rem; font-weight:800; color:var(--line-dark); margin-bottom:22px; }
.service-pill span { color:#06c755; font-size:.6rem; }
.line-hero h1 { font-size:clamp(1.8rem,3.1vw,2.75rem); line-height:1.65; letter-spacing:-.055em; white-space:nowrap; }
.line-hero h1>span { color:var(--pink); text-decoration:underline; text-decoration-color:#f9cf42; text-decoration-thickness:5px; text-underline-offset:9px; }
.line-lead { font-size:1rem; color:#4e596a; margin:25px 0 26px; line-height:2; }
.chat-icon { display:inline-flex; background:#fff; color:var(--line-green); border-radius:9px; width:26px; height:21px; justify-content:center; align-items:center; font-size:22px; line-height:1; position:relative; letter-spacing:-1px; padding-bottom:7px; }
.chat-icon:after { content:''; position:absolute; bottom:-4px; left:5px; border-top:6px solid #fff; border-right:6px solid transparent; }
.cta-note { color:#536275; font-size:.74rem; margin-top:13px; }
.quiet-link { display:inline-block; color:#466454; font-size:.73rem; text-decoration:underline; text-underline-offset:4px; margin-top:12px; }
.hero-demo { position:relative; padding:15px 28px 22px 12px; }
.chat-window { max-width:362px; margin:auto; border:6px solid #fff; border-radius:28px; box-shadow:0 16px 52px #16362916; overflow:hidden; transform:rotate(2deg); }
.chat-title { background:#fff; display:flex; gap:11px; align-items:center; padding:12px 16px 15px; font-size:.85rem; font-weight:800; line-height:1.5; }
.chat-title small { display:block; font-size:.6rem; font-weight:500; color:#68766d; }
.chat-avatar { border-radius:50%; background:#fff0f6; display:grid; place-items:center; color:var(--pink); font-size:1.1rem; width:38px; height:38px; font-weight:900; }
.chat-dots { margin-left:auto; color:#98a39d; letter-spacing:2px; }
.chat-body { padding:14px 20px 18px; background:#e5f1e9; }
.demo-label { font-size:.62rem; color:#4d6e58; text-align:center; margin-bottom:12px; }
.message-bubble { background:#fff; border-radius:14px 2px 14px 14px; width:fit-content; margin-left:auto; padding:13px 17px; font-size:.76rem; line-height:1.85; box-shadow:0 3px 6px #00000003; }
.chat-result { display:flex; justify-content:center; align-items:center; gap:10px; color:var(--line-dark); font-size:.76rem; font-weight:800; margin:10px 0; }
.result-arrow { font-size:1.6rem; line-height:1; }
.poster { position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; width:100%; aspect-ratio:1.12; padding:22px 15px; }
.poster-bread { background:#fff4d9; color:#764024; border:5px solid #f7d787; }
.poster-kicker { display:block; font-size:.56rem; font-weight:700; letter-spacing:.08em; }
.poster strong { font-size:1.5rem; letter-spacing:.035em; line-height:1.4; margin-top:8px; }
.bread-art { display:block; width:52%; height:auto; margin:3px auto; }
.poster-off { font-size:.8rem; display:flex; align-items:baseline; justify-content:center; gap:10px; }
.poster-off b { color:#c73836; font-size:2rem; line-height:1.2; font-family:Arial,sans-serif; }
.poster-off b span { font-size:.8rem; }
.poster-foot { display:block; font-size:.5rem; margin-top:10px; letter-spacing:.04em; }
.demo-disclaimer { font-size:.56rem; text-align:center; margin-top:8px; color:#52665a; }
.demo-sticker { position:absolute; right:-8px; bottom:1px; border:2px solid #fff; border-radius:50%; width:132px; height:132px; display:flex; flex-direction:column; justify-content:center; text-align:center; background:#f7cf42; color:#513f17; font-size:.72rem; transform:rotate(-10deg); box-shadow:0 5px 15px #af843516; }
.demo-sticker strong { font-size:1.2rem; }
.demo-decoration { position:absolute; font-size:54px; line-height:1; font-weight:800; }
.deco-one { left:-10px; top:3px; color:var(--pink); transform:rotate(12deg); }
.deco-two { right:-4px; top:75px; color:#4c9fca; font-size:67px; }
.line-benefits { background:#fff; border-block:1px solid #e7eae5; }
.line-benefits>.container { display:flex; justify-content:space-around; gap:20px; padding-block:21px; font-size:.85rem; font-weight:700; }
.line-benefits b { font-family:Arial,sans-serif; color:var(--pink); font-size:.73rem; margin-right:10px; }
.line-benefits span:nth-child(2) b { color:#168359; }
.line-benefits span:nth-child(3) b { color:#167bae; }
.intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:start; }
.intro-grid>div>p:not(.section-label) { color:var(--muted); font-size:.93rem; line-height:2; }
.intro-grid>div>p+p { margin-top:15px; }
.line-heading { text-align:center; margin-bottom:40px; }
.line-heading>p:last-child:not(.section-label) { margin-top:16px; font-size:.9rem; color:var(--muted); }
.line-examples { background:#fff6f9; }
.example-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.example-card { background:#fff; border:1px solid #f3e3e9; border-radius:17px; overflow:hidden; }
.example-art { padding:25px; background:#f9e8cb; }
.example-art .poster { aspect-ratio:1; box-shadow:0 6px 13px #57361a18; }
.example-art .poster strong { font-size:clamp(1.1rem,1.7vw,1.5rem); }
.example-art .bread-art { width:62%; }
.art-event { background:#e1eaf7; }
.poster-event { background:#254987; color:#ffefa5; border:5px solid #fff7de; }
.poster-event strong { font-size:2.1rem!important; letter-spacing:.13em; margin-top:14px; }
.event-flowers { display:flex; align-items:center; gap:10px; font-size:2.9rem; color:#f395a6; line-height:1.4; }
.event-flowers span:nth-child(2) { color:#f6d679; }
.event-tag { font-size:.43rem; letter-spacing:.08em; }
.art-social { background:#dcece2; }
.poster-social { background:#f2f0df; color:#255f4b; border:5px solid #83ac94; }
.poster-social strong { font-size:1.65rem!important; text-align:left; }
.cup-art { position:relative; margin:7px auto 1px; }
.cup-steam { font-size:1.45rem; line-height:1; opacity:.5; }
.cup { width:85px; height:63px; border-radius:5px 5px 30px 30px; background:#28735b; color:#fff7d9; font-family:Georgia,serif; line-height:1.1; font-size:.7rem; padding-top:12px; position:relative; }
.cup b { font-size:1.1rem; }
.cup:after { content:''; position:absolute; right:-19px; top:8px; width:19px; height:28px; border:6px solid #28735b; border-left:0; border-radius:0 18px 18px 0; }
.example-text { padding:23px; }
.example-text>span { font-size:.65rem; font-weight:800; letter-spacing:.1em; color:var(--pink); }
.example-text h3 { font-size:1.18rem; margin-top:9px; letter-spacing:-.02em; }
.example-text p { color:var(--muted); font-size:.84rem; margin-top:10px; }
.sample-note { font-size:.68rem; color:#6f6470; text-align:center; margin-top:22px; }
.line-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; padding:0; margin:0; gap:34px; counter-reset:steps; }
.line-steps li { padding:25px 26px 27px; border-radius:16px; background:#f4f9f5; position:relative; }
.line-steps li:not(:last-child):after { content:'→'; position:absolute; right:-26px; top:48%; color:#53926a; font-size:1.3rem; }
.step-circle { display:grid; place-items:center; width:43px; height:43px; border:1px solid #bdd9c5; border-radius:50%; font-family:Arial,sans-serif; font-size:.85rem; color:var(--line-dark); background:#fff; margin-bottom:17px; }
.line-steps h3 { font-size:1.15rem; }
.line-steps p { margin-top:11px; color:var(--muted); font-size:.85rem; }
.line-message { background:#f8f8f4; }
.message-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.message-points { list-style:none; padding:0; margin:27px 0 0; display:grid; gap:19px; }
.message-points li { display:flex; align-items:flex-start; gap:15px; color:var(--muted); font-size:.82rem; }
.message-points li>b { border-radius:50%; color:var(--pink); background:#f9e8f0; font-size:.76rem; width:29px; height:29px; display:grid; place-items:center; flex-shrink:0; }
.message-points strong { display:block; font-size:.94rem; color:var(--ink); }
.request-card { padding:28px; background:#fff; border:1px solid #e3e8e0; box-shadow:0 10px 32px #25422a06; border-radius:18px; }
.request-card-heading { display:flex; align-items:center; justify-content:space-between; font-size:.87rem; font-weight:800; margin-bottom:18px; }
.request-card-heading>span:last-child { color:var(--line-green); font-size:1.5rem; }
.request-card textarea { display:block; width:100%; border:1px solid #cdddce; border-radius:9px; background:#f5faf6; color:#304b38; resize:vertical; font:inherit; font-size:.85rem; line-height:1.9; padding:20px; min-height:270px; }
.request-card textarea:focus-visible { outline:3px solid #155fba; outline-offset:3px; }
.copy-button { width:100%; padding:12px; border:1px solid #bcd2c0; background:#fff; color:var(--line-dark); cursor:pointer; border-radius:9px; font-weight:700; font-size:.85rem; margin-top:15px; }
.copy-button:hover { background:#edf9f1; }
.copy-button[hidden] { display:none; }
.copy-status { font-size:.73rem; color:var(--line-dark); margin-top:9px; }
.copy-status:empty { display:none; }
.template-note { color:var(--muted); font-size:.72rem; margin-top:15px; }
.line-start { padding:77px 0; background:radial-gradient(ellipse at 0 0,#ffedf5,transparent 70%),#eff9f1; }
.start-grid { display:grid; grid-template-columns:1.2fr 1fr; align-items:center; gap:80px; max-width:990px; }
.line-start h2 { font-size:clamp(2rem,3.2vw,3rem); }
.start-lead { color:#526050; font-size:1rem; margin:22px 0 26px; }
.terms-note { font-size:.72rem; color:#536275; margin-top:23px; }
.qr-card { background:#fff; margin:0; padding:29px 28px 25px; border-radius:19px; box-shadow:0 8px 28px #1b5b2410; text-align:center; }
.qr-card figcaption>span { display:block; font-size:.67rem; color:var(--line-dark); margin-bottom:5px; }
.qr-card figcaption strong { font-size:.9rem; }
.qr-card img { display:block; width:100%; max-width:248px; height:auto; margin:13px auto 7px; }
.qr-card>p { font-size:.71rem; color:var(--muted); }
.line-mobile-cta { display:none; }
.home-line-section { padding:32px 0; background:#fff; }
.home-line-banner { display:flex; justify-content:space-between; align-items:center; gap:28px; background:linear-gradient(110deg,#fff1f7,#eef9f0); border:1px solid #e6eadd; border-radius:18px; padding:32px 38px; }
.home-line-banner .section-label { margin-bottom:8px; font-size:.7rem; }
.home-line-banner h2 { font-size:clamp(1.3rem,2.1vw,1.8rem); }
.home-line-banner p:last-child { font-size:.85rem; color:var(--muted); margin-top:10px; }
.home-line-banner .line-button { flex-shrink:0; font-size:.87rem; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media (min-width:851px) and (max-width:1250px) { body:not(.line-page) .site-nav { gap:13px; font-size:.72rem; } body:not(.line-page) .brand-name { font-size:1.2rem; } body:not(.line-page) .nav-contact { gap:8px; padding-inline:15px; } }
@media (max-width:1000px) { .line-hero-grid { gap:18px; grid-template-columns:1.2fr 1fr; } .line-hero h1 { font-size:clamp(1.5rem,3.05vw,2.75rem); } .hero-demo { padding:12px; } .chat-body { padding:12px; } .demo-sticker { width:105px; height:105px; right:-18px; font-size:.62rem; } .demo-sticker strong { font-size:1rem; } .intro-grid,.message-grid { gap:35px; } .example-grid { gap:16px; } .example-art { padding:16px; } .example-text { padding:19px; } .start-grid { gap:45px; } }
@media (max-width:850px) { .line-page .container { width:calc(100% - 48px); } .line-hero-grid { grid-template-columns:1fr; gap:28px; padding-top:15px; } .line-hero-copy { text-align:center; } .line-hero h1 { font-size:clamp(1.7rem,5vw,2.9rem); } .hero-demo { width:min(420px,95%); margin:auto; } .demo-sticker { right:-8px; } .line-lead { font-size:.95rem; } .line-hero { padding-bottom:35px; } .intro-grid { grid-template-columns:1fr; gap:23px; } .example-grid { grid-template-columns:1fr; max-width:500px; margin:auto; gap:25px; } .example-art { padding:28px 55px; } .example-art .poster { max-width:310px; margin:auto; } .example-art .poster strong { font-size:1.7rem; } .example-text { padding:24px; } .example-text h3 { font-size:1.3rem; } .line-steps { gap:23px; } .line-steps li { padding:23px 18px; } .line-steps li:not(:last-child):after { right:-20px; } .message-grid { grid-template-columns:1fr; gap:35px; } .request-card { max-width:540px; width:100%; } .start-grid { gap:30px; } .line-start .line-button { padding-inline:20px; font-size:.88rem; } .home-line-banner { flex-direction:column; align-items:flex-start; gap:22px; } }
@media (max-width:600px) { .line-page { padding-bottom:85px; } .line-page .container { width:calc(100% - 40px); } .line-page h2 { font-size:1.65rem; } .breadcrumb { font-size:.63rem; gap:8px; padding-block:15px; } .service-pill { font-size:.74rem; margin-bottom:20px; } .line-hero h1 { font-size:clamp(1.2rem,5.6vw,2rem); line-height:1.85; } .line-hero h1>span { text-decoration-thickness:4px; text-underline-offset:7px; } .line-lead { font-size:.88rem; line-height:1.95; margin-top:21px; } .line-button { font-size:.9rem; min-height:56px; padding-inline:24px; } .hero-demo { margin-top:5px; padding:10px 15px 20px 8px; } .chat-window { max-width:320px; } .demo-sticker { width:102px; height:102px; right:-5px; } .deco-one { font-size:41px; left:-7px; } .deco-two { font-size:46px; right:-8px; } .line-benefits>.container { gap:10px; flex-wrap:wrap; justify-content:center; font-size:.67rem; padding-block:17px; } .line-benefits b { font-size:.62rem; margin-right:3px; } .line-heading { margin-bottom:28px; } .line-heading>p:last-child:not(.section-label) { font-size:.82rem; } .intro-grid>div>p:not(.section-label) { font-size:.88rem; } .example-art { padding:25px 35px; } .sample-note { font-size:.65rem; text-align:left; } .line-steps { grid-template-columns:1fr; gap:24px; } .line-steps li { padding:24px; display:grid; grid-template-columns:45px 1fr; gap:6px 17px; } .step-circle { grid-row:1/3; margin:0; } .line-steps p { margin:0; } .line-steps li:not(:last-child):after { content:'↓'; right:50%; top:auto; bottom:-26px; } .request-card { padding:22px; } .request-card textarea { padding:16px; font-size:.82rem; } .request-card-heading { font-size:.8rem; } .start-grid { grid-template-columns:1fr; text-align:center; gap:32px; } .line-start { padding-block:55px; } .line-start h2 { font-size:2rem; } .qr-card { max-width:330px; width:100%; margin:auto; } .start-lead { font-size:.9rem; } .terms-note { font-size:.68rem; } .line-mobile-cta { display:block; position:fixed; bottom:0; left:0; right:0; z-index:30; padding:10px 18px max(10px,env(safe-area-inset-bottom)); background:#fffffff7; border-top:1px solid #d8e8dc; } .line-mobile-cta a { display:flex; align-items:center; justify-content:center; gap:20px; padding:12px; background:var(--line-green); color:#fff; border-radius:30px; font-size:.85rem; font-weight:800; } .home-line-banner { padding:27px 24px; } .home-line-banner .line-button { width:100%; font-size:.82rem; } .home-line-banner p:last-child { font-size:.81rem; } }
@media(prefers-reduced-motion:reduce) { .line-button { transition:none; } }
@media print { .line-mobile-cta,.copy-button { display:none!important; } .line-page { padding:0; } .line-page .site-header { position:static; } .line-start { break-inside:avoid; } .line-hero h1 { white-space:normal; } }

/* Print service contact at the bottom of the introduction page. */
.print-service { margin-top:0; padding:40px 0; border-top:1px solid #ebd5df; text-align:center; color:var(--ink); }
.print-service-message { font-size:clamp(1.125rem,1.6vw,1.375rem); font-weight:700; line-height:1.9; }
.print-service-contact { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:center; gap:4px 10px; margin-top:20px; font-size:1.125rem; font-weight:700; }
.print-service-contact a { display:inline-block; color:var(--pink); font-size:clamp(1.5rem,2.2vw,1.875rem); letter-spacing:.03em; text-decoration:underline; text-underline-offset:5px; }
.print-service-person { white-space:nowrap; }
.print-service-hours { margin-top:8px; font-size:1.125rem; font-weight:700; }
@media(max-width:600px) { .print-service { margin-top:0; padding:32px 0; } .print-service-contact { flex-direction:column; align-items:center; gap:4px; } }

.print-service-referral { margin-top:18px; }
.footer-legal-link { display:inline-block; margin-block:6px; font-size:.8rem; text-decoration:underline; text-underline-offset:4px; }

/* Supplied flyer examples; keep every image visible without cropping. */
.flyer-gallery { background:#f5f8fc; border-bottom:1px solid #e4eaf1; }
.flyer-gallery .line-heading h2 { font-size:clamp(1.55rem,2.55vw,2.35rem); }
.flyer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:30px 24px; }
.flyer-card { margin:0; padding:12px; background:#fff; border:1px solid #e0e6ed; border-radius:14px; box-shadow:0 8px 25px #20314708; min-width:0; }
.flyer-preview { display:block; position:relative; border-radius:6px; cursor:zoom-in; }
.flyer-preview img { display:block; width:100%; height:auto; aspect-ratio:2/3; object-fit:contain; background:#f0f2f5; border-radius:6px; }
.flyer-zoom { position:absolute; right:10px; bottom:10px; border-radius:30px; background:#ffffffed; color:#17243c; padding:5px 12px; font-size:.73rem; font-weight:700; box-shadow:0 2px 10px #0002; }
.flyer-preview:hover .flyer-zoom { background:#fff; color:var(--pink); }
.flyer-card figcaption { padding:15px 5px 5px; text-align:center; font-size:.87rem; font-weight:700; }
.flyer-dialog { width:fit-content; max-width:calc(100vw - 28px); max-height:92vh; padding:12px; margin:auto; border:0; border-radius:14px; background:#fff; color:var(--ink); box-shadow:0 20px 70px #0005; }
.flyer-dialog::backdrop { background:#102037d9; }
.flyer-dialog-bar { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:10px; }
.flyer-dialog-bar p { margin:0; font-size:.85rem; font-weight:700; }
.flyer-close { flex-shrink:0; cursor:pointer; border:1px solid #d9dfe6; border-radius:25px; padding:8px 15px; background:#f5f7fa; color:#17243c; font:inherit; font-size:.82rem; }
.flyer-large { display:block; width:auto; height:auto; max-width:100%; max-height:calc(92vh - 84px); object-fit:contain; margin:auto; }
html.flyer-modal-open { overflow:hidden; }
@media(max-width:1000px) { .flyer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .flyer-grid { grid-template-columns:1fr; gap:25px; } .flyer-card { padding:10px; } .flyer-gallery .line-heading h2 { font-size:1.55rem; } .flyer-dialog-bar { gap:10px; } .flyer-dialog-bar p { font-size:.72rem; } }
@media print { .flyer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .flyer-card { break-inside:avoid; } .flyer-zoom { display:none; } }
