/* Nicotto Design — WordPress production patch v1.3.9 VERIFIED SYNC */
#nicotto-app{min-height:100vh;isolation:isolate;overflow:clip}
#nicotto-app main{position:relative;z-index:0;overflow-x:clip}
#nicotto-app img{max-width:100%;height:auto}
#nicotto-app section{min-width:0}

/* 1) TOP hero readability */
#nicotto-app main>section:first-child .body-jp{color:rgba(39,31,27,.90)!important;text-shadow:0 1px 16px rgba(250,247,241,.72)}
#nicotto-app main>section:first-child .label-en{color:rgba(39,31,27,.70)!important;text-shadow:0 1px 14px rgba(250,247,241,.6)}

/* Header — original Lovable responsive breakpoint preserved. */

/* 2) "Nicottoなら" answer sizing */
#nicotto-app [data-nicotto="problem"] ul li .jp-head{font-size:clamp(1.45rem,2.35vw,2.35rem)!important;line-height:1.55!important}
#nicotto-app [data-nicotto="problem"] li .body-jp{font-size:clamp(1.05rem,2vw,1.7rem)!important;line-height:1.75!important}

/* 3) SELF / ORIGINAL / ONLINE SHOP content & CTA higher */
@media(min-width:768px){
  #nicotto-app [data-nicotto="services"] .shell>div:nth-child(2){transform:translateY(-5.5vh)!important}
}
@media(max-width:767px){
  #nicotto-app [data-nicotto="services"] .shell{padding-top:3.5rem!important;padding-bottom:3.5rem!important}
  #nicotto-app [data-nicotto="services"] .shell>div:nth-child(2){transform:translateY(-1rem)!important;min-height:21rem!important}
}

/* Ownership simulator top spacing */
#nicotto-app [data-nicotto="ownership"]>div{padding-top:clamp(6.5rem,11vh,9rem);padding-bottom:2.5rem}
#nicotto-app [data-nicotto="ownership"] h2{position:relative;z-index:2}

/* Organic edges */
#nicotto-app section>svg[viewBox="0 0 1440 140"]{display:block!important;position:absolute!important;left:0!important;right:0!important;width:100%!important;max-width:none!important;overflow:visible!important;pointer-events:none!important;transform-origin:center!important}

/* Reveal restoration */
#nicotto-app .rv{backface-visibility:hidden;-webkit-backface-visibility:hidden}
#nicotto-app .rv.rv-in{opacity:1!important;transform:none;clip-path:inset(0 0 0 0)!important}

/* Process */
@media(min-width:1024px){
  #nicotto-app #process>.shell>.grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;align-items:start!important}
}

/* 5) Creative — preserve layered/parallax composition and never leave it blank */
#nicotto-app #creative .relative.mx-auto.aspect-\[5\/4\]{min-height:clamp(360px,42vw,650px)!important}
#nicotto-app #creative .rv-mask,#nicotto-app #creative .rv-clipx{will-change:clip-path,transform,opacity}
#nicotto-app #creative .rv-in{opacity:1!important;clip-path:none!important}
@media(min-width:1024px){
  #nicotto-app #creative>.shell{display:grid!important;grid-template-columns:repeat(12,minmax(0,1fr))!important;align-items:center!important}
  #nicotto-app #creative>.shell>div:first-child{grid-column:span 7/span 7!important;order:1!important;display:block!important;visibility:visible!important;opacity:1!important}
  #nicotto-app #creative>.shell>div:last-child{grid-column:span 5/span 5!important;order:2!important}
}

/* Plan comparison horizontal swipe */
@media(max-width:1023px){#nicotto-app .swipe-x{overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch!important;scroll-snap-type:x proximity!important}#nicotto-app .swipe-x>div{min-width:720px!important}}

/* Competitor comparison */
.nicotto-competitor{background:var(--secondary);padding:clamp(5.5rem,9vw,9rem) 0;position:relative}
.nc-head{max-width:760px}.nc-head .label-en{display:flex;gap:1rem;color:var(--muted-foreground);margin-bottom:1.6rem}.nc-head .label-en span{color:var(--accent)}.nc-head h2{font-size:clamp(1.7rem,3.2vw,3rem);line-height:1.45}.nc-head p{margin-top:1.25rem;color:var(--muted-foreground)}
.nc-swipe{display:none;margin:2rem 0 1rem;color:var(--muted-foreground)}.nc-table-wrap{margin-top:3.2rem;overflow-x:auto;-webkit-overflow-scrolling:touch}.nc-table-wrap table{border-collapse:collapse;width:100%;min-width:940px;background:var(--background)}.nc-table-wrap th,.nc-table-wrap td{padding:1.05rem 1.2rem;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;font-size:.88rem;line-height:1.65}.nc-table-wrap thead th{font-family:var(--font-display,serif);font-size:1rem;font-weight:500}.nc-table-wrap tr>*:last-child{background:color-mix(in srgb,var(--accent) 10%,var(--background));font-weight:500}.nc-note{margin-top:1rem;font-size:.7rem;line-height:1.7;color:var(--muted-foreground)}
@media(max-width:1023px){.nc-swipe{display:block}.nc-table-wrap{margin-left:-1.25rem;margin-right:-1.25rem;padding:0 1.25rem}.nc-table-wrap tr>*:first-child{position:sticky;left:0;z-index:2;background:var(--background)}}

/* SELF builder */

@media(max-width:767px){#nicotto-app main{width:100%}#nicotto-app .shell{max-width:100%;box-sizing:border-box}#nicotto-app button,#nicotto-app a{max-width:100%}}

/* ===== NYANTOMO FINAL ===== */
body.nicotto-nyantomo-final{--ny-bg:var(--background);--ny-soft:var(--secondary);--ny-ink:var(--ink);--ny-fg:var(--foreground);--ny-accent:var(--accent)}
body.nicotto-nyantomo-final .ny-original-hidden{display:none!important}
.ny-final-page{background:var(--ny-bg);color:var(--ny-fg);overflow:clip}
.ny-final-page .label-en{text-transform:uppercase;letter-spacing:.22em}

.ny-hero-motion{height:220vh;position:relative;background:linear-gradient(180deg,var(--ny-bg),var(--ny-soft))}
.ny-hero-sticky{position:sticky;top:0;height:100svh;overflow:hidden;display:grid;place-items:center}
.ny-hero-copy{position:relative;z-index:10;text-align:center;max-width:850px;padding:0 1.4rem;transform:translateY(calc(var(--p,0)*-4vh));opacity:calc(1 - var(--p,0)*.72)}
.ny-hero-copy h1{font-family:var(--font-display,"Shippori Mincho",serif);font-weight:400;font-size:clamp(4.2rem,12vw,11rem);line-height:.82;letter-spacing:-.055em;margin:1.1rem 0 1.8rem}.ny-hero-copy h1 span{color:var(--ny-accent)}.ny-hero-copy>p:not(.label-en){font-family:var(--font-jp,"Zen Kaku Gothic New",sans-serif);font-size:clamp(.95rem,1.6vw,1.25rem);letter-spacing:.09em}.ny-scrollcue{margin:3rem auto 0;font-size:.68rem;letter-spacing:.24em;display:flex;align-items:center;justify-content:center;gap:1rem}.ny-scrollcue i{display:block;width:80px;height:1px;background:currentColor;position:relative;overflow:hidden}.ny-scrollcue i:after{content:"";position:absolute;inset:0;background:var(--ny-accent);animation:ny-line 2.4s ease-in-out infinite}@keyframes ny-line{0%{transform:translateX(-100%)}65%,100%{transform:translateX(100%)}}
.ny-hero-cast{position:absolute;inset:0;z-index:2;pointer-events:none}.ny-cast{position:absolute;filter:drop-shadow(0 24px 30px rgba(45,31,22,.13));will-change:transform;transition:filter .4s}.ny-cast.c1{width:clamp(160px,20vw,330px);left:-5%;top:12%;transform:translate(calc(var(--p)*18vw),calc(var(--p)*13vh)) rotate(calc(-8deg + var(--p)*7deg)) scale(calc(.85 + var(--p)*.2))}.ny-cast.c2{width:clamp(145px,18vw,300px);right:-4%;top:10%;transform:translate(calc(var(--p)*-17vw),calc(var(--p)*16vh)) rotate(calc(7deg - var(--p)*7deg))}.ny-cast.c3{width:clamp(145px,17vw,270px);left:7%;bottom:-4%;transform:translate(calc(var(--p)*21vw),calc(var(--p)*-10vh)) rotate(calc(5deg - var(--p)*4deg))}.ny-cast.c4{width:clamp(120px,14vw,220px);right:8%;bottom:8%;transform:translate(calc(var(--p)*-22vw),calc(var(--p)*-8vh)) scale(calc(.9 + var(--p)*.18))}.ny-cast.c5{width:clamp(125px,15vw,230px);left:31%;top:-8%;transform:translateY(calc(var(--p)*20vh)) rotate(calc(-4deg + var(--p)*4deg))}.ny-cast.c6{width:clamp(140px,18vw,280px);right:29%;bottom:-14%;transform:translateY(calc(var(--p)*-20vh)) rotate(calc(4deg - var(--p)*4deg))}

.ny-intro-stage{min-height:85vh;padding:clamp(6rem,10vw,10rem) 0;position:relative;background:var(--ny-ink);color:var(--background);overflow:hidden}.ny-intro-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(3rem,8vw,10rem);align-items:end;opacity:0;transform:translateY(60px);transition:1.2s var(--ease-luxe)}.ny-intro-grid.is-in{opacity:1;transform:none}.ny-intro-grid h2{font-family:var(--font-display,serif);font-size:clamp(2.4rem,5vw,5.6rem);line-height:1.08;margin-top:1.5rem}.ny-intro-grid>p{font-size:clamp(.95rem,1.4vw,1.15rem);line-height:2;color:color-mix(in srgb,var(--background) 74%,transparent)}.ny-runner{position:absolute;left:0;right:0;bottom:-3%;height:220px;pointer-events:none}.ny-runner img{position:absolute;height:100%;width:auto}.ny-runner img:first-child{left:-15%;animation:ny-run1 16s linear infinite}.ny-runner img:last-child{left:-25%;animation:ny-run1 20s linear 5s infinite}@keyframes ny-run1{to{left:110%}}

.ny-slide-cards{padding:clamp(6rem,10vw,10rem) 0;background:var(--ny-bg)}.ny-slide-cards>.shell>h2{font-family:var(--font-display,serif);font-size:clamp(2.5rem,5vw,5.5rem);line-height:1.08;margin:1.4rem 0 5rem}.ny-character-list{display:grid;gap:clamp(4rem,8vw,8rem)}.ny-slide-card{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(280px,.75fr);align-items:center;gap:clamp(2rem,7vw,8rem);min-height:58vh;opacity:0;transition:1.25s var(--ease-luxe);cursor:pointer}.ny-slide-card.from-left{transform:translateX(-15vw) rotate(-1deg)}.ny-slide-card.from-right{transform:translateX(15vw) rotate(1deg);grid-template-columns:minmax(280px,.75fr) minmax(0,1.05fr)}.ny-slide-card.from-right .ny-card-figure{order:2}.ny-slide-card.is-in{opacity:1;transform:none}.ny-card-figure{display:grid;place-items:center;min-height:360px;position:relative}.ny-card-figure:before{content:"";position:absolute;width:min(70%,420px);aspect-ratio:1;border-radius:50%;background:var(--ny-soft);transform:scale(.88);transition:transform 1.1s var(--ease-luxe)}.ny-slide-card:hover .ny-card-figure:before{transform:scale(1)}.ny-card-figure img{position:relative;z-index:1;max-height:490px;width:auto;filter:drop-shadow(0 28px 25px rgba(47,34,25,.12));transition:transform .75s var(--ease-luxe)}.ny-slide-card:hover .ny-card-figure img{transform:translateY(-12px) rotate(-1deg) scale(1.025)}.ny-card-copy span{color:var(--ny-accent);font-size:.7rem;letter-spacing:.2em}.ny-card-copy h3{font-family:var(--font-jp,"Shippori Mincho",serif);font-size:clamp(2rem,4.6vw,4.8rem);line-height:1.2;margin:.85rem 0 1rem}.ny-card-copy p{color:var(--muted-foreground);line-height:1.9}.ny-card-copy button{margin-top:2rem;border-bottom:1px solid currentColor;padding:0 0 .55rem;background:none;font-size:.72rem;letter-spacing:.2em}

.ny-gather{height:250vh;background:var(--ny-soft);position:relative}.ny-gather-sticky{height:100svh;position:sticky;top:0;overflow:hidden;display:grid;place-items:center}.ny-gather-copy{position:relative;z-index:9;text-align:center;opacity:calc(1 - var(--p)*.35);transform:scale(calc(1 - var(--p)*.08))}.ny-gather-copy h2{font-family:var(--font-display,serif);font-size:clamp(2.5rem,6vw,6.5rem);line-height:1.06;margin-top:1rem}.ny-gather-cast{position:absolute;inset:0;pointer-events:none}.ny-gather-cast img{position:absolute;width:clamp(105px,13vw,210px);max-height:30vh;object-fit:contain;filter:drop-shadow(0 20px 18px rgba(35,25,20,.1));will-change:transform}.ny-gather .g1{left:-4%;top:7%;transform:translate(calc(var(--p)*42vw),calc(var(--p)*37vh)) rotate(calc(-8deg + var(--p)*8deg))}.ny-gather .g2{right:-4%;top:8%;transform:translate(calc(var(--p)*-42vw),calc(var(--p)*37vh))}.ny-gather .g3{left:8%;bottom:5%;transform:translate(calc(var(--p)*32vw),calc(var(--p)*-33vh))}.ny-gather .g4{right:8%;bottom:5%;transform:translate(calc(var(--p)*-32vw),calc(var(--p)*-33vh))}.ny-gather .g5{left:27%;top:-7%;transform:translate(calc(var(--p)*13vw),calc(var(--p)*44vh))}.ny-gather .g6{right:27%;top:-6%;transform:translate(calc(var(--p)*-13vw),calc(var(--p)*44vh))}.ny-gather .g7{left:23%;bottom:-12%;transform:translate(calc(var(--p)*17vw),calc(var(--p)*-43vh))}.ny-gather .g8{right:23%;bottom:-12%;transform:translate(calc(var(--p)*-17vw),calc(var(--p)*-43vh))}

.ny-reels-final{padding:clamp(6rem,11vw,11rem) 0;background:var(--ny-ink);color:var(--background);overflow:hidden}.ny-reels-head{display:grid;grid-template-columns:1.1fr .9fr;gap:4rem;align-items:end}.ny-reels-head h2{font-family:var(--font-display,serif);font-size:clamp(2.6rem,5.5vw,5.8rem);line-height:1.05;margin-top:1.2rem}.ny-reels-head>p{line-height:1.9;color:color-mix(in srgb,var(--background) 72%,transparent)}.ny-phone-row{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.5rem,4vw,4rem);margin-top:5rem}.ny-phone-card{opacity:0;transform:translateY(80px) rotate(var(--r));transition:1.2s var(--ease-luxe)}.ny-phone-card.p1{--r:-4deg}.ny-phone-card.p2{--r:2deg;margin-top:5rem}.ny-phone-card.p3{--r:-2deg}.ny-phone-card.is-in{opacity:1;transform:rotate(var(--r))}.ny-phone{aspect-ratio:9/16;border:8px solid color-mix(in srgb,var(--background) 75%,#222);border-radius:28px;overflow:hidden;position:relative;background:#111;box-shadow:0 35px 80px rgba(0,0,0,.25)}.ny-phone video{width:100%;height:100%;object-fit:cover}.ny-play{position:absolute;left:50%;bottom:1.2rem;transform:translateX(-50%);background:rgba(255,255,255,.9);color:#241d19;padding:.7rem 1.1rem;border-radius:999px;font-size:.65rem;letter-spacing:.18em}.ny-phone-card>span{display:block;margin-top:1.2rem;font-size:.7rem;letter-spacing:.18em;color:color-mix(in srgb,var(--background) 60%,transparent)}.ny-phone-card h3{font-size:1rem;margin-top:.45rem}

.ny-finale{min-height:100svh;position:relative;display:flex;align-items:center;background:var(--ny-bg);overflow:hidden}.ny-finale>.shell{position:relative;z-index:5;max-width:900px;text-align:center}.ny-finale h2{font-family:var(--font-display,serif);font-size:clamp(2.6rem,6vw,6.4rem);line-height:1.06;margin:1.3rem 0 1.8rem}.ny-finale p{line-height:1.9;color:var(--muted-foreground)}.ny-finale a{display:inline-block;margin-top:2.4rem;background:var(--ny-ink);color:var(--background);padding:1.2rem 2rem;letter-spacing:.16em;font-size:.72rem}.ny-finale-cast img{position:absolute;width:clamp(120px,16vw,270px);filter:drop-shadow(0 20px 25px rgba(40,28,20,.1));animation:ny-bob 5s ease-in-out infinite}.ny-finale-cast img:nth-child(1){left:-2%;bottom:1%;animation-delay:-1s}.ny-finale-cast img:nth-child(2){right:-1%;bottom:3%;animation-delay:-2.2s}.ny-finale-cast img:nth-child(3){left:4%;top:10%;width:clamp(90px,11vw,180px);animation-delay:-3s}.ny-finale-cast img:nth-child(4){right:5%;top:9%;width:clamp(100px,13vw,210px);animation-delay:-4s}@keyframes ny-bob{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-14px) rotate(1deg)}}

.ny-follower{position:fixed;left:0;top:0;z-index:35;width:74px;height:74px;pointer-events:none;margin:-37px 0 0 -37px;will-change:transform;filter:drop-shadow(0 12px 10px rgba(38,28,22,.12));transition:opacity .3s}.ny-follower img{width:100%;height:100%;object-fit:contain}
.ny-final-lightbox{position:fixed;inset:0;z-index:1000;background:rgba(25,20,18,.84);display:grid;place-items:center;padding:3rem;opacity:0;visibility:hidden;transition:.35s}.ny-final-lightbox.open{opacity:1;visibility:visible}.ny-final-lightbox>button{position:absolute;top:1.2rem;right:1.4rem;color:white;font-size:2.4rem;background:none}.ny-final-lightbox>div{max-width:min(960px,92vw);max-height:88vh;text-align:center}.ny-final-lightbox img{max-width:100%;max-height:80vh;object-fit:contain;background:white}.ny-final-lightbox p{color:white;margin-top:.8rem}

@media(max-width:800px){
  .ny-hero-motion{height:185vh}.ny-hero-copy h1{font-size:clamp(4rem,22vw,7rem)}.ny-cast.c5,.ny-cast.c6{display:none}.ny-cast.c1,.ny-cast.c2{width:36vw}.ny-cast.c3,.ny-cast.c4{width:30vw}.ny-intro-grid,.ny-reels-head{grid-template-columns:1fr;gap:2rem}.ny-runner{height:130px}.ny-slide-card,.ny-slide-card.from-right{grid-template-columns:1fr;gap:1rem;min-height:0}.ny-slide-card.from-right .ny-card-figure{order:0}.ny-card-figure{min-height:280px}.ny-slide-card.from-left{transform:translateX(-28vw)}.ny-slide-card.from-right{transform:translateX(28vw)}.ny-phone-row{grid-template-columns:1fr;max-width:320px;margin-left:auto;margin-right:auto}.ny-phone-card.p2{margin-top:0}.ny-follower{display:none}.ny-gather-cast img{width:24vw}.ny-gather-copy{padding:0 1.2rem}.ny-finale-cast img:nth-child(3),.ny-finale-cast img:nth-child(4){display:none}.ny-finale-cast img:nth-child(1),.ny-finale-cast img:nth-child(2){width:34vw;opacity:.55}}

@media(prefers-reduced-motion:reduce){.ny-runner img,.ny-finale-cast img{animation:none!important}.ny-slide-card,.ny-phone-card,.ny-intro-grid{opacity:1!important;transform:none!important}.ny-follower{display:none}}

/* v1.3.1 competitor-table refinement */
.nicotto-competitor{background:var(--background);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.nc-table-wrap table{border-collapse:separate!important;border-spacing:0!important}
.nc-table-wrap thead th:last-child,.nc-table-wrap tbody tr>*:last-child{
  background:color-mix(in srgb,var(--secondary) 70%,var(--background))!important;
  border-left:2px solid #2a211c!important;
  border-right:2px solid #2a211c!important;
  font-weight:600!important;
}
.nc-table-wrap thead th:last-child{
  border-top:2px solid #2a211c!important;
  background:#2a211c!important;
  color:#fffaf3!important;
}
.nc-table-wrap tbody tr:last-child>*:last-child{border-bottom:2px solid #2a211c!important}
.nc-note{font-size:.72rem!important;letter-spacing:.08em!important}

/* ===== v1.3.2 visual corrections ===== */

/* Ownership: stronger sales copy, Lovable-scale headline */
#nicotto-app [data-nicotto="ownership"] h2{
  font-size:clamp(2.4rem,4.2vw,4.8rem)!important;
  line-height:1.22!important;
  letter-spacing:.01em!important;
  max-width:12em!important;
}
#nicotto-app [data-nicotto="ownership"] h2 span{color:var(--background);opacity:.96}
@media(max-width:767px){
  #nicotto-app [data-nicotto="ownership"] h2{font-size:clamp(2rem,9vw,3.15rem)!important;max-width:none!important}
}

/* Process: restore Lovable desktop structure exactly — copy/photos LEFT, 01–04 rail RIGHT */
@media(min-width:1024px){
  #nicotto-app #process>.shell>.grid,
  #nicotto-app [data-nicotto="process"]>.shell>.grid{
    display:grid!important;
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)!important;
    gap:clamp(4rem,6vw,5rem)!important;
    align-items:start!important;
  }
  #nicotto-app .nicotto-process-left{grid-column:1!important;position:sticky!important;top:8rem!important;align-self:start!important}
  #nicotto-app .nicotto-process-right{grid-column:2!important}
  #nicotto-app .nicotto-process-photos{display:grid!important;grid-template-columns:1.2fr .8fr!important;gap:1rem!important;margin-top:3rem!important;visibility:visible!important;opacity:1!important}
  #nicotto-app .nicotto-process-photos img{display:block!important;visibility:visible!important;opacity:1!important;width:100%!important;height:100%!important;object-fit:cover!important}
  #nicotto-app .nicotto-process-mobile-photos{display:none!important}
}

/* Creative Design: guaranteed layered images on the left if the React reveal failed in WP */
#nicotto-app #creative>.shell>div:first-child,
#nicotto-app [data-nicotto="creative"]>.shell>div:first-child{position:relative!important;min-height:clamp(430px,44vw,700px)!important}
.nicotto-creative-fallback{position:absolute;inset:0;z-index:12;pointer-events:none;max-width:760px;margin:auto}
.nicotto-creative-fallback img{position:absolute!important;display:block!important;opacity:1!important;visibility:visible!important;object-fit:cover!important;box-shadow:0 26px 70px -35px rgba(41,29,23,.38);will-change:transform}
.nicotto-creative-fallback .ncf-logo{left:0;top:4%;width:64%;aspect-ratio:4/3;}
.nicotto-creative-fallback .ncf-flyer{right:2%;top:20%;width:39%;aspect-ratio:4/5;}
.nicotto-creative-fallback .ncf-card{left:8%;bottom:1%;width:31%;aspect-ratio:4/5;}
.nicotto-creative-fallback .ncf-sns{right:18%;bottom:-2%;width:24%;aspect-ratio:4/5;}
@keyframes ncfFloat1{0%,100%{transform:translate3d(0,0,0) rotate(-.7deg)}50%{transform:translate3d(0,-12px,0) rotate(.5deg)}}
@keyframes ncfFloat2{0%,100%{transform:translate3d(0,0,0) rotate(.8deg)}50%{transform:translate3d(0,14px,0) rotate(-.6deg)}}
@media(max-width:1023px){
  #nicotto-app #creative>.shell>div:first-child,
  #nicotto-app [data-nicotto="creative"]>.shell>div:first-child{min-height:clamp(360px,78vw,620px)!important;order:2!important}
  .nicotto-creative-fallback{max-width:650px}
}


/* Nyantomo hero: keep Hannyari and Hokori from colliding while scrolling */
.ny-cast.c4{right:3%!important;bottom:18%!important;width:clamp(95px,11vw,175px)!important;transform:translate(calc(var(--p)*-7vw),calc(var(--p)*-5vh)) scale(calc(.9 + var(--p)*.08))!important}
.ny-cast.c6{right:18%!important;bottom:-2%!important;width:clamp(125px,15vw,235px)!important;transform:translate(calc(var(--p)*-4vw),calc(var(--p)*-12vh)) rotate(calc(3deg - var(--p)*2deg))!important}

/* Runners remain fully visible inside viewport instead of entering half-clipped */
.ny-runner{overflow:hidden!important}
.ny-runner img:first-child{left:4%!important;animation:nyRunVisible1 15s ease-in-out infinite!important}
.ny-runner img:last-child{left:62%!important;animation:nyRunVisible2 18s ease-in-out -3s infinite!important}
@keyframes nyRunVisible1{0%,100%{transform:translateX(0)}50%{transform:translateX(48vw)}}
@keyframes nyRunVisible2{0%,100%{transform:translateX(0)}50%{transform:translateX(-48vw)}}

/* Gather into a readable ring around the copy, not one opaque pile */
.ny-gather-cast img{width:clamp(90px,10.5vw,170px)!important;max-height:24vh!important}
.ny-gather .g1{left:-2%;top:5%;transform:translate(calc(var(--p)*33vw),calc(var(--p)*23vh)) rotate(calc(-8deg + var(--p)*5deg))!important}
.ny-gather .g2{right:-2%;top:5%;transform:translate(calc(var(--p)*-33vw),calc(var(--p)*23vh))!important}
.ny-gather .g3{left:4%;bottom:4%;transform:translate(calc(var(--p)*30vw),calc(var(--p)*-22vh))!important}
.ny-gather .g4{right:4%;bottom:4%;transform:translate(calc(var(--p)*-30vw),calc(var(--p)*-22vh))!important}
.ny-gather .g5{left:22%;top:-6%;transform:translate(calc(var(--p)*16vw),calc(var(--p)*31vh))!important}
.ny-gather .g6{right:22%;top:-6%;transform:translate(calc(var(--p)*-16vw),calc(var(--p)*31vh))!important}
.ny-gather .g7{left:19%;bottom:-9%;transform:translate(calc(var(--p)*18vw),calc(var(--p)*-29vh))!important}
.ny-gather .g8{right:19%;bottom:-9%;transform:translate(calc(var(--p)*-18vw),calc(var(--p)*-29vh))!important}
.ny-gather-copy{z-index:20!important;background:transparent!important;padding:0!important;border-radius:0!important}

/* Reels autoplay, no manual PLAY badge */
.ny-phone video{display:block!important}.ny-play{display:none!important}

/* Preserve faces in repaired cutouts */
.ny-final-page img[src*="hannyari"],.ny-final-page img[src*="furunyan"]{opacity:1!important;mix-blend-mode:normal!important}

@media(max-width:800px){
  .ny-cast.c4{right:1%!important;bottom:16%!important;width:24vw!important}
  .ny-runner img{height:85%!important}
  .ny-gather-cast img{width:20vw!important;opacity:.88}
}
.nlw-legacy-hide{display:block!important}


/* ===== v1.3.6 FINE FIX — additive only, v1.3.2 baseline preserved ===== */
.nicotto-hide-bubble{display:none!important}
#nicotto-app [data-nicotto="problem"] h2.jp-head{font-size:clamp(2.2rem,4.4vw,4.4rem)!important;line-height:1.25!important}
#nicotto-app [data-nicotto="plancompare"]{text-align:center}
#nicotto-app [data-nicotto="plancompare"]>div,#nicotto-app [data-nicotto="plancompare"] .shell{margin-inline:auto!important}
#nicotto-app [data-nicotto="plancompare"] .swipe-x{text-align:left}
#nicotto-app [data-nicotto="ownership"] h2{max-width:10em!important}
#nicotto-app [data-nicotto="ownership"] h2 span{display:contents}
.nicotto-top-faq{background:var(--background);padding:clamp(6rem,10vw,10rem) 0;border-top:1px solid var(--border)}
.nicotto-top-faq h2{font-size:clamp(2rem,4vw,4rem);margin-top:1.2rem}.ntf-list{margin-top:3rem;border-top:1px solid var(--border)}
.ntf-list details{border-bottom:1px solid var(--border);padding:0}.ntf-list summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.5rem 0;font-family:var(--font-jp,"Shippori Mincho",serif);font-size:clamp(1rem,1.7vw,1.25rem)}
.ntf-list summary::-webkit-details-marker{display:none}.ntf-list summary span{font-family:var(--font-sans,sans-serif);font-size:1.2rem;font-weight:300}.ntf-list details[open] summary span{transform:rotate(45deg)}.ntf-list details p{max-width:760px;padding:0 3rem 1.7rem 0;color:var(--muted-foreground);line-height:1.9}.ntf-more{display:inline-block;margin-top:2rem;border-bottom:1px solid var(--foreground);padding-bottom:.35rem}
/* Keep Lovable Selected Works composition visible; never replace/hide it. */
#nicotto-app #works .nlw-legacy-hide,#nicotto-app [data-nicotto="works"] .nlw-legacy-hide{display:revert!important}
/* About / Creative standalone pages: prevent curved edges from covering text. */
body:has(#nicotto-app main) #nicotto-app main>section{scroll-margin-top:5rem}
#nicotto-app main section:has(.label-en:first-child){position:relative}
@media(min-width:1024px){
  #nicotto-app main>section:first-of-type:not([data-nicotto]){padding-top:max(8rem,10vh)}
}
/* Nyantomo: keep repaired faces opaque and reduce final collisions. */
.ny-final-page img[src*="hannyari-fixed"],.ny-final-page img[src*="furunyan-fixed"]{opacity:1!important;mix-blend-mode:normal!important}
.ny-gather .g8{right:14%!important;bottom:-5%!important}.ny-gather .g4{right:3%!important;bottom:9%!important}.ny-gather .g7{left:14%!important;bottom:-6%!important}
@media(max-width:800px){.ny-gather .g8{right:5%!important}.ny-gather .g4{right:-2%!important}.ny-gather .g7{left:5%!important}}


/* ===== v1.3.6 fine fixes: requested corrections only ===== */
/* MY PAGE uses the original Lovable desktop/mobile visibility rules. */

/* Keep Lovable Selected Works animation, replace only the image viewport with the live demo. */
.nicotto-demo-viewport{position:relative!important;overflow:hidden!important;background:#fff!important}
.nicotto-demo-viewport .nicotto-demo-original{opacity:0!important;visibility:hidden!important}
.nicotto-demo-frame{position:absolute!important;left:0!important;top:0!important;width:1440px!important;height:900px!important;border:0!important;transform:scale(var(--demo-scale,.4))!important;transform-origin:0 0!important;pointer-events:none!important;background:#fff!important;z-index:2!important}

/* About / Creative: normalize vertical rhythm so edge SVGs never cover copy. */
.nicotto-route-about #nicotto-app main>section,
.nicotto-route-creative #nicotto-app main>section{position:relative;overflow:visible}
.nicotto-route-about #nicotto-app main>section:not(:first-child):not(:last-child),
.nicotto-route-creative #nicotto-app main>section:not(:first-child):not(:last-child){padding-top:clamp(5.5rem,8vw,8rem)!important;padding-bottom:clamp(7rem,10vw,11rem)!important}
.nicotto-route-about #nicotto-app main>section:first-child,
.nicotto-route-creative #nicotto-app main>section:first-child{padding-bottom:clamp(5rem,7vw,7rem)!important}
.nicotto-route-about #nicotto-app main>section:last-child,
.nicotto-route-creative #nicotto-app main>section:last-child{margin-top:clamp(2.5rem,5vw,5rem)}
.nicotto-route-about #nicotto-app main>section>svg,
.nicotto-route-creative #nicotto-app main>section>svg{z-index:0}
.nicotto-route-about #nicotto-app main>section>.shell,
.nicotto-route-creative #nicotto-app main>section>.shell{position:relative;z-index:1}

/* Page headlines remain readable on tablet/mobile without extreme section heights. */
@media(max-width:1023px){
  .nicotto-route-about #nicotto-app main>section,
  .nicotto-route-creative #nicotto-app main>section{min-height:0!important}
}
@media(max-width:767px){
  .nicotto-route-about #nicotto-app main>section:not(:first-child):not(:last-child),
  .nicotto-route-creative #nicotto-app main>section:not(:first-child):not(:last-child){padding-top:4.5rem!important;padding-bottom:6rem!important}
}

/* Plan/comparison tables: readable and swipeable at tablet/mobile widths. */
@media(max-width:1023px){
  #nicotto-app [data-nicotto="plancompare"] .swipe-x,
  .nc-table-wrap{overscroll-behavior-x:contain;scrollbar-width:thin}
}

/* Nyantomo: clean crops stay fully inside their figure areas. */
.ny-final-page .ny-card-figure{overflow:hidden!important}
.ny-final-page .ny-card-figure img{max-width:88%!important;max-height:88%!important;object-fit:contain!important}
.ny-final-page .ny-cast,.ny-final-page .ny-gather-cast img,.ny-final-page .ny-finale-cast img{object-fit:contain!important}
.ny-final-page img[src*="hannyari"],.ny-final-page img[src*="furunyan"]{opacity:1!important;mix-blend-mode:normal!important}
@media(max-width:800px){
  .ny-final-page .ny-card-figure img{max-width:82%!important;max-height:82%!important}
}

/* ===== v1.3.7: SELF desktop device preview switch (core Lovable builder untouched) ===== */
@media(min-width:1024px){
  #nicotto-app #builder .nicotto-self-preview>div:first-child{position:relative;padding-right:12.5rem}
  #nicotto-app #builder .nicotto-self-device-toggle{margin-left:auto;display:flex;gap:.25rem;align-items:center;position:absolute;right:.5rem;top:.3rem;height:1.7rem}
  #nicotto-app #builder .nicotto-self-device-toggle button{height:1.65rem;padding:0 .55rem;border:1px solid var(--border);font-family:var(--font-sans,sans-serif);font-size:.55rem;letter-spacing:.08em;background:var(--background);color:var(--muted-foreground)}
  #nicotto-app #builder .nicotto-self-device-toggle button.is-active{background:var(--ink);color:var(--background);border-color:var(--ink)}
  #nicotto-app #builder .nicotto-self-preview-content{position:relative;background:var(--secondary)}
  #nicotto-app #builder .nicotto-self-mobile-frame{display:none;border:0;width:min(390px,100%);height:100%;margin:0 auto;background:var(--background);box-shadow:0 0 0 1px var(--border)}
  #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original{position:absolute!important;inset:0!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}
  #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-mobile-frame{display:block}
}

/* MY PAGE: hide the internal month-simulation control; the real customer view uses the actual contract month. */
.nicotto-route-mypage #nicotto-app label:has(input[type="range"]){display:none!important}


/* ===== v1.4.0 guarded production: requested fixes only ===== */
@media(min-width:1024px){
  #nicotto-app #builder .nicotto-mobile-builder-tabs{display:none!important}
  #nicotto-app #builder .nicotto-self-preview>div:first-child{position:relative!important;padding-right:15rem!important;min-height:3.25rem!important;display:flex!important;align-items:center!important}
  #nicotto-app #builder .nicotto-self-device-toggle{position:absolute!important;right:1rem!important;top:50%!important;transform:translateY(-50%)!important;height:auto!important;display:flex!important;gap:.4rem!important;align-items:center!important;margin:0!important;z-index:20}
  #nicotto-app #builder .nicotto-self-device-toggle button{height:2.25rem!important;padding:0 .9rem!important;font-size:.68rem!important;letter-spacing:.07em!important;border:1px solid var(--border)!important;background:var(--background)!important;color:var(--foreground)!important;cursor:pointer!important}
  #nicotto-app #builder .nicotto-self-device-toggle button.is-active{background:var(--foreground)!important;color:var(--background)!important;border-color:var(--foreground)!important}
  #nicotto-app #builder .nicotto-self-preview-content{display:flex!important;justify-content:center!important;align-items:stretch!important;overflow:auto!important}
  #nicotto-app #builder .nicotto-self-mobile-frame{width:390px!important;max-width:100%!important;height:100%!important;min-height:720px!important;margin:0 auto!important;flex:0 0 390px!important;background:#fff!important}
  #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original{display:none!important}
  #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-mobile-frame{display:block!important}
}
.ny-gather-copy{background:transparent!important;padding:0!important;border-radius:0!important;box-shadow:none!important}
.nicotto-process-right{position:relative!important}
.nicotto-process-draw-line{position:absolute!important;left:1.1rem!important;top:1rem!important;width:2px!important;max-height:calc(100% - 2rem)!important;background:var(--accent,#b26d45)!important;z-index:4!important;pointer-events:none!important;transition:height .08s linear!important}
.nicotto-footer-nav{display:block!important;min-width:0!important;align-self:start!important}
.nicotto-footer-nav ul{margin-top:1.25rem!important;display:flex!important;flex-direction:column!important;gap:.75rem!important}
@media(min-width:640px){.nicotto-footer-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;column-gap:clamp(1.5rem,3vw,3rem)!important;row-gap:2rem!important;align-items:start!important}}
.nicotto-route-creative #nicotto-app main>section:first-child{padding-top:clamp(5.5rem,7vw,7rem)!important;padding-bottom:clamp(3.5rem,5vw,5rem)!important}
.nicotto-route-mypage .nicotto-production-status{display:flex!important;justify-content:space-between!important;width:100%!important;max-width:none!important;gap:0!important}
.nicotto-route-mypage .nicotto-production-status>li{flex:1 1 0!important;min-width:0!important}
.nicotto-route-mypage .nicotto-production-status>li:last-child{flex:0 0 auto!important}
.nicotto-confirm-overlay{position:fixed;inset:0;z-index:99999;background:rgba(24,20,18,.48);display:grid;place-items:center;padding:1.25rem}
.nicotto-confirm-dialog{width:min(680px,100%);max-height:min(82vh,760px);overflow:auto;background:var(--background,#fff);color:var(--foreground,#211d1a);padding:clamp(1.5rem,4vw,3rem);box-shadow:0 30px 90px rgba(0,0,0,.2)}
.nicotto-confirm-dialog h2{font-family:var(--font-jp,"Shippori Mincho",serif);font-size:clamp(1.5rem,3vw,2.25rem);margin:.5rem 0 1.5rem}
.nicotto-confirm-rows{display:grid;gap:0;border-top:1px solid var(--border,#ddd)}.nicotto-confirm-rows>div{display:grid;grid-template-columns:minmax(8rem,.36fr) 1fr;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border,#ddd)}
.nicotto-confirm-rows dt{font-size:.78rem;color:var(--muted-foreground,#666)}.nicotto-confirm-rows dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.nicotto-confirm-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:2rem}.nicotto-confirm-actions button,.nicotto-request-complete button{min-height:2.75rem;padding:0 1.25rem;border:1px solid var(--foreground,#222);background:transparent}.nicotto-confirm-actions [data-confirm-ok]{background:var(--foreground,#222);color:var(--background,#fff)}
.nicotto-request-complete{position:fixed;z-index:100000;left:50%;top:50%;transform:translate(-50%,-50%);width:min(560px,calc(100% - 2.5rem));background:var(--background,#fff);padding:clamp(2rem,5vw,3.5rem);box-shadow:0 30px 90px rgba(0,0,0,.24);text-align:center}.nicotto-request-complete h3{font-family:var(--font-jp,"Shippori Mincho",serif);font-size:clamp(1.4rem,3vw,2rem);margin:.6rem 0 1rem}.nicotto-request-complete button{margin-top:1.5rem}
@media(max-width:640px){.nicotto-confirm-rows>div{grid-template-columns:1fr;gap:.35rem}.nicotto-confirm-actions{flex-direction:column-reverse}.nicotto-confirm-actions button{width:100%}}

/* Desktop header: preserve every agreed navigation entry and MY PAGE login entrance. */
@media(min-width:1024px){
  #nicotto-app header nav{display:flex!important;min-width:0!important;flex:1 1 auto!important}
  #nicotto-app header .nicotto-desktop-menu{display:flex!important;align-items:center!important;gap:clamp(.7rem,1.15vw,1.35rem)!important;white-space:nowrap!important;margin:0!important;padding:0!important;list-style:none!important}
  #nicotto-app header .nicotto-desktop-menu a{display:inline-flex!important;font-size:clamp(.58rem,.68vw,.72rem)!important;letter-spacing:.055em!important;white-space:nowrap!important}
  #nicotto-app header .nicotto-mypage-link{display:inline-flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap!important}
}
/* CREATIVE page only: reduce the oversized PageHead top gap without changing other pages. */
body.nicotto-route-creative #nicotto-app main>section:first-child{padding-top:clamp(6rem,8vw,8rem)!important;padding-bottom:4rem!important}
@media(max-width:767px){body.nicotto-route-creative #nicotto-app main>section:first-child{padding-top:5.5rem!important;padding-bottom:3.5rem!important}}
/* Match Lovable's Process rail geometry exactly. */
.nicotto-process-draw-line{top:.5rem!important;left:1.1rem!important;width:1px!important;max-height:calc(100% - 1rem)!important}
@media(min-width:768px){.nicotto-process-draw-line{left:1.6rem!important}}

/* ===== v1.4.1 targeted fixes — ONLY the user-requested items ===== */
/* SELF desktop: keep edit + live preview side-by-side; only the EDIT/PREVIEW switching tabs are hidden. */
@media(min-width:1024px){
  #nicotto-app #builder .nicotto-mobile-builder-tabs{display:none!important}
  #nicotto-app #builder .nicotto-self-preview{display:block!important;visibility:visible!important;opacity:1!important;min-width:0!important}
  #nicotto-app #builder .nicotto-self-preview-content{display:flex!important;width:100%!important;height:calc(100% - 2.25rem)!important;min-width:0!important;justify-content:center!important;align-items:stretch!important;overflow:auto!important;background:var(--background)!important}
  #nicotto-app #builder .nicotto-self-preview-original{display:block!important;visibility:visible!important;opacity:1!important;width:100%!important;min-width:0!important;flex:1 1 100%!important;height:100%!important}
  #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original{display:none!important}
  #nicotto-app #builder .nicotto-self-device-toggle{right:1.25rem!important;top:50%!important;transform:translateY(-50%)!important;gap:.5rem!important}
  #nicotto-app #builder .nicotto-self-device-toggle button{min-width:5.8rem!important;height:2.5rem!important;padding:0 1rem!important;font-size:.72rem!important;letter-spacing:.08em!important}
  #nicotto-app #builder .nicotto-self-mobile-frame{display:none!important;width:390px!important;max-width:390px!important;min-width:390px!important;height:100%!important;min-height:720px!important;flex:0 0 390px!important;margin:0 auto!important;border:0!important;background:#fff!important}
  #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-mobile-frame{display:block!important}
}

/* CREATIVE DESIGN opening composition: keep the original Lovable reveal/parallax; JS only restores the missing reveal state. */
.nicotto-route-creative #nicotto-app [data-nicotto-creative-opening="1"]{padding-top:0!important}

/* SELF / ORIGINAL / ONLINE SHOP comparison: left labels must remain readable. */
#nicotto-app [data-nicotto="plancompare"] .swipe-x>div{
  grid-template-columns:12rem repeat(3,minmax(13rem,1fr))!important;
}
#nicotto-app [data-nicotto="plancompare"] .swipe-x>div>div:nth-child(4n+1){
  background:var(--secondary)!important;color:var(--foreground)!important;
  padding-left:1.25rem!important;padding-right:1rem!important;
  box-shadow:1px 0 0 var(--border)!important;
}
#nicotto-app [data-nicotto="plancompare"] .swipe-x>div>div:nth-child(4n+1) .label-en{
  color:var(--foreground)!important;font-weight:600!important;opacity:1!important;
}

/* MY PAGE production status: keep every connector, including 04 -> 05. */
@media(min-width:768px){
  .nicotto-route-mypage #nicotto-app .nicotto-production-status{display:grid!important;grid-template-columns:repeat(8,minmax(0,1fr))!important;width:100%!important;gap:0!important}
  .nicotto-route-mypage #nicotto-app .nicotto-production-status>li{position:relative!important;min-width:0!important;padding-right:.75rem!important}
  .nicotto-route-mypage #nicotto-app .nicotto-production-status>li:not(:last-child) .nicotto-status-line,
  .nicotto-route-mypage #nicotto-app .nicotto-production-status>li:not(:last-child)>span.absolute{
    display:block!important;visibility:visible!important;opacity:1!important;position:absolute!important;left:.75rem!important;right:0!important;top:5px!important;height:1px!important
  }
}


/* ===== v1.4.3 EXACT FIVE FIXES — 2026-09-06 ===== */
/* 1) TOP plan comparison only: the empty upper-left cell must visually disappear; only "構成の自由度" loses the accidental bold. */
body.nicotto-route-top #nicotto-app [data-nicotto="plancompare"] .swipe-x>div>.nicotto-plancompare-empty-head{
  background:var(--background)!important;
  box-shadow:none!important;
}
body.nicotto-route-top #nicotto-app [data-nicotto="plancompare"] .nicotto-plancompare-structure-label{
  font-weight:400!important;
}

/* 2) SELF desktop builder only: SMARTPHONE uses the real live preview at 390px, not an iframe clone. */
@media(min-width:1024px){
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview-content{
    justify-content:center!important;
    align-items:stretch!important;
    overflow:auto!important;
  }
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="desktop"] .nicotto-self-preview-original{
    display:block!important;
    position:relative!important;
    inset:auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    flex:1 1 100%!important;
    height:100%!important;
    margin:0!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original{
    display:block!important;
    position:relative!important;
    inset:auto!important;
    width:390px!important;
    min-width:390px!important;
    max-width:390px!important;
    flex:0 0 390px!important;
    height:100%!important;
    margin:0 auto!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-mobile-frame{
    display:none!important;
  }
}

/* 3) SELF structure only: paint the unused final grid slot with the page background; no extra slot on one-column mobile. */
@media(min-width:640px){
  body.nicotto-route-self #nicotto-app .nicotto-self-structure-grid::after{
    content:"";
    display:block;
    background:var(--background)!important;
  }
}

/* 4) SELF footer uses the same four-column footer alignment as the completed pages. The correct page footer is marked by JS. */
@media(min-width:640px){
  body.nicotto-route-self #nicotto-app footer .nicotto-footer-grid{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    column-gap:clamp(1.5rem,3vw,3rem)!important;
    row-gap:2rem!important;
    align-items:start!important;
  }
  body.nicotto-route-self #nicotto-app footer .nicotto-footer-grid>nav{
    min-width:0!important;
    align-self:start!important;
    margin:0!important;
  }
}

/* ===== v1.4.4 STRICT TARGETED FIXES — only approved TOP / SELF / CREATIVE items ===== */
/* TOP: only "構成の自由度 / Content flexibility" must be regular weight. Inline JS also enforces this to beat legacy !important rules. */
body.nicotto-route-top #nicotto-app [data-nicotto="plancompare"] .nicotto-plancompare-structure-label{
  font-weight:400!important;
}

/* SELF desktop builder: SMARTPHONE is a real 390px viewport mirror. The live React source stays alive off-screen at 390px so narrow-only React branches are rendered before mirroring. */
@media(min-width:1024px){
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview-content{position:relative!important;justify-content:center!important;align-items:stretch!important;overflow:auto!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="desktop"] .nicotto-self-preview-original{
    display:block!important;position:relative!important;left:auto!important;top:auto!important;width:100%!important;min-width:0!important;max-width:none!important;height:100%!important;flex:1 1 100%!important;margin:0!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important
  }
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original{
    display:block!important;position:absolute!important;left:-10000px!important;top:0!important;width:390px!important;min-width:390px!important;max-width:390px!important;height:100%!important;margin:0!important;visibility:hidden!important;opacity:0!important;pointer-events:none!important
  }
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-mobile-frame{display:none!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-mobile-mirror{
    display:block!important;width:390px!important;min-width:390px!important;max-width:390px!important;height:100%!important;min-height:100%!important;flex:0 0 390px!important;margin:0 auto!important;border:0!important;background:var(--background,#fff)!important
  }
}

/* CREATIVE opening: restore Lovable's three-layer composition without touching later work images. */
body.nicotto-route-creative #nicotto-app [data-nicotto-creative-opening="1"] .nicotto-creative-opening-stage{position:relative!important;margin-left:auto!important;margin-right:auto!important;width:100%!important;max-width:72rem!important;aspect-ratio:4/3!important}
body.nicotto-route-creative #nicotto-app [data-nicotto-creative-opening="1"] .nicotto-creative-opening-logo{position:absolute!important;top:0!important;left:0!important;width:62%!important;z-index:1!important}
body.nicotto-route-creative #nicotto-app [data-nicotto-creative-opening="1"] .nicotto-creative-opening-menu{position:absolute!important;top:30%!important;right:0!important;width:52%!important;z-index:2!important}
body.nicotto-route-creative #nicotto-app [data-nicotto-creative-opening="1"] .nicotto-creative-opening-card{position:absolute!important;bottom:0!important;left:22%!important;width:30%!important;z-index:3!important}
body.nicotto-route-creative #nicotto-app [data-nicotto-creative-opening="1"] .nicotto-creative-opening-media{position:relative!important;inset:auto!important;width:100%!important;max-width:none!important;display:block!important;visibility:visible!important;opacity:1!important}
body.nicotto-route-creative #nicotto-app [data-nicotto-creative-opening="1"] .rv{visibility:visible!important}
body.nicotto-route-creative #nicotto-app [data-nicotto-creative-opening="1"] .rv-in{opacity:1!important;clip-path:none!important;transform:none}
@media(min-width:768px){
  body.nicotto-route-creative #nicotto-app [data-nicotto-creative-opening="1"] .nicotto-creative-opening-stage{aspect-ratio:16/9!important}
  body.nicotto-route-creative #nicotto-app [data-nicotto-creative-opening="1"] .nicotto-creative-opening-logo{width:54%!important}
  body.nicotto-route-creative #nicotto-app [data-nicotto-creative-opening="1"] .nicotto-creative-opening-menu{top:22%!important;width:44%!important}
  body.nicotto-route-creative #nicotto-app [data-nicotto-creative-opening="1"] .nicotto-creative-opening-card{left:30%!important;width:22%!important}
}



/* ===== v1.5.1 SELF SMARTPHONE only: old-Nicotto device-state principle + current Nicotto live React preview =====
 * PC mode is intentionally untouched. In SMARTPHONE mode the original live React preview is shown at 390px;
 * the legacy iframe mirror is hidden. React receives device="sp", so hamburger / FAQ / GALLERY use native state.
 */
@media(min-width:1024px){
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-content{
    display:flex!important;justify-content:center!important;align-items:stretch!important;overflow:hidden!important;background:var(--background)!important;
  }
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original{
    display:block!important;position:relative!important;inset:auto!important;left:auto!important;top:auto!important;
    width:390px!important;min-width:390px!important;max-width:390px!important;height:100%!important;min-height:0!important;
    flex:0 0 390px!important;margin:0 auto!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important;overflow-x:hidden!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-y:contain!important;
  }
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-mobile-frame,
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-mobile-mirror{display:none!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original.no-scrollbar{
    height:100%!important;min-height:0!important;overflow-x:hidden!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-y:contain!important;
  }

  /* The React device state handles interactive SP branches. These rules only neutralize viewport-based md: layout
     because the builder itself is still viewed inside a desktop browser. Values match the current Lovable mobile classes. */
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original.no-scrollbar>.sticky>div:first-child{padding-left:1.25rem!important;padding-right:1.25rem!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="hero"] h1{font-size:39px!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="hero"] p.mt-6{font-size:.75rem!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="hero"].px-5{padding-left:1.25rem!important;padding-right:1.25rem!important;padding-top:6rem!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="hero"]:not(.px-5){padding-top:5rem!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="hero"]>.grid{grid-template-columns:minmax(0,1fr)!important;align-items:normal!important;gap:2rem!important;padding-left:1.25rem!important;padding-right:1.25rem!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="hero"]>.grid>.border-l-2{padding-left:1.25rem!important}

  /* v1.5.5: SELF SMARTPHONE preview only — fill the HERO media frame so no reserved 4:5 area remains blank below the photo. */
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="hero"].px-5{padding-bottom:1.5rem!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="hero"]:not(.px-5)>.grid{padding-bottom:1.5rem!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="hero"] img.object-cover{
    display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;
  }

  /* v1.5.5: SELF SMARTPHONE preview only — make the two hamburger strokes explicitly visible. */
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original>.sticky>div:first-child>button[aria-expanded]{
    color:#111!important;background:rgba(255,255,255,.9)!important;border:1px solid rgba(17,17,17,.18)!important;border-radius:9999px!important;box-shadow:0 1px 8px rgba(0,0,0,.12)!important;
  }
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original>.sticky>div:first-child>button[aria-expanded]>span{
    position:relative!important;display:block!important;width:20px!important;height:14px!important;
  }
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original>.sticky>div:first-child>button[aria-expanded]>span>span{
    position:absolute!important;left:0!important;display:block!important;width:20px!important;height:2px!important;min-height:2px!important;background-color:#111!important;opacity:1!important;border-radius:999px!important;
  }

  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="about"],
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="features"],
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="menu"],
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="news"],
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="info"],
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="access"],
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="faq"]{padding:4rem 1.25rem!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="gallery"]{padding-top:4rem!important;padding-bottom:4rem!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="gallery"]>:first-child{padding-left:1.25rem!important;padding-right:1.25rem!important}

  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="about"]>.grid,
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="features"]>.grid,
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="info"]>.grid,
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="access"]>.grid,
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="contact"]>.grid{grid-template-columns:minmax(0,1fr)!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="about"]>.grid{gap:2rem!important;align-items:normal!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="about"]>.grid>div{grid-column:auto!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="about"] h2{font-size:1.25rem!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="features"]>.grid{gap:2rem!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="features"] h3{font-size:1rem!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="menu"] p.text-sm{font-size:.875rem!important}

  /* SELF is a single-page site. NEWS remains informational in SP mode: no fake navigation arrow. */
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="news"] li>div>div{grid-template-columns:auto minmax(0,1fr)!important;gap:1rem!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="news"] li>div>div>span:last-child{display:none!important}

  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="info"]>.grid{gap:2.5rem!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="access"]>.grid{gap:1.5rem!important;align-items:normal!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="faq"]>div.mt-8{max-width:none!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="contact"]{padding:5rem 1.25rem!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="contact"]>.grid{gap:2.5rem!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original [data-sec="contact"] h2{font-size:1.25rem!important}
  body.nicotto-route-self #nicotto-app #builder .nicotto-self-preview[data-preview-device="mobile"] .nicotto-self-preview-original footer{padding:2.5rem 1.25rem!important}
}

/* ===== v1.5.7 — approved audit fixes only (v1.5.5 is the base) ===== */

/* 1) Internal page transitions: keep the proven full reload, but cover only the transient boot/error flash. */
html.nicotto-route-loading,
html.nicotto-route-loading body{background:var(--background,#f7f3ec)!important}
html.nicotto-route-loading #nicotto-app{visibility:hidden!important}

/* 2) Main-site mobile/tablet hamburger: same button/behavior, visible dark strokes only. */
@media(max-width:1023px){
  #nicotto-app header .shell button[aria-expanded]>span{position:relative!important;display:block!important;width:24px!important;height:14px!important}
  #nicotto-app header .shell button[aria-expanded]>span>span{
    display:block!important;width:24px!important;height:2px!important;min-height:2px!important;
    background-color:var(--ink,#211a17)!important;opacity:1!important;border-radius:999px!important;
  }
}

/* 3) TOP Hero photo: restore Lovable's full-cover image without changing other site images. */
#nicotto-app .hero-mask img{
  display:block!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;
}

/* 5) TOP plan comparison: SELF is the first visible plan; compact only the sticky label column. */
@media(max-width:1023px){
  #nicotto-app [data-nicotto="plancompare"] .swipe-x{scroll-snap-type:none!important}
  #nicotto-app [data-nicotto="plancompare"] .swipe-x>div{
    grid-template-columns:6.25rem repeat(3,minmax(11rem,1fr))!important;
  }
}

/* 6) TOP ownership section: keep the existing simulator layout; move only its heading row below the fixed header on phones. */
@media(max-width:767px){
  #nicotto-app [data-nicotto="ownership"]>div>.shell>div:first-child{position:relative!important;top:1.5rem!important}
}

/* 7) Competitor tables: the sticky first column must fully cover content sliding underneath its left gutter. */
@media(max-width:1023px){
  #nicotto-app .nicotto-existing-competitor .swipe-x{isolation:isolate!important}
  #nicotto-app .nicotto-existing-competitor .swipe-x .sticky.left-0{z-index:20!important;background:var(--background)!important;position:sticky!important}
  #nicotto-app .nicotto-existing-competitor .swipe-x .sticky.left-0::before{
    content:"";position:absolute;top:0;bottom:0;left:-1.25rem;width:1.25rem;background:var(--background);pointer-events:none;
  }
  #nicotto-app .nc-table-wrap tr>*:first-child{z-index:20!important;background:var(--background)!important}
  #nicotto-app .nc-table-wrap tr>*:first-child::before{
    content:"";position:absolute;top:0;bottom:0;left:-1.25rem;width:1.25rem;background:var(--background);pointer-events:none;
  }
}

/* 8) Nyantomo character introductions: on phones, use a vertical reveal so cards never remain horizontally clipped. */
@media(max-width:800px){
  #nicotto-app .ny-final-page .ny-slide-card.from-left,
  #nicotto-app .ny-final-page .ny-slide-card.from-right{transform:translateY(24px)!important}
  #nicotto-app .ny-final-page .ny-slide-card.is-in{transform:none!important}
}

/* 9) TOP primary dark CTA: undo the Hero label readability override only inside the dark button. */
body.nicotto-route-top #nicotto-app main>section:first-child a.bg-ink.label-en{
  color:var(--background,#f7f3ec)!important;text-shadow:none!important;
}

/* 10) SELF / ORIGINAL / ONLINE SHOP input areas: clearer form surfaces using only the current Nicotto palette. */
body.nicotto-route-original #nicotto-app main form>.mt-10.space-y-10,
body.nicotto-route-ec #nicotto-app main form>.mt-10.space-y-10{
  border:1px solid var(--border)!important;
  background:color-mix(in srgb,var(--secondary) 28%,var(--background))!important;
  padding:clamp(1.25rem,3.5vw,2.5rem)!important;
}
body.nicotto-route-original #nicotto-app main form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body.nicotto-route-original #nicotto-app main form textarea,
body.nicotto-route-original #nicotto-app main form select,
body.nicotto-route-ec #nicotto-app main form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
body.nicotto-route-ec #nicotto-app main form textarea,
body.nicotto-route-ec #nicotto-app main form select{
  border:1px solid var(--border)!important;background:var(--background)!important;
  padding:.85rem 1rem!important;min-height:3rem!important;
  transition:border-color .3s ease,box-shadow .3s ease!important;
}
body.nicotto-route-original #nicotto-app main form input:focus,
body.nicotto-route-original #nicotto-app main form textarea:focus,
body.nicotto-route-original #nicotto-app main form select:focus,
body.nicotto-route-ec #nicotto-app main form input:focus,
body.nicotto-route-ec #nicotto-app main form textarea:focus,
body.nicotto-route-ec #nicotto-app main form select:focus{
  border-color:var(--accent)!important;box-shadow:0 0 0 1px var(--accent)!important;
}
body.nicotto-route-self #nicotto-app #builder>.shell>.mt-6.grid>div:first-child input:not([type="file"]),
body.nicotto-route-self #nicotto-app #builder>.shell>.mt-6.grid>div:first-child textarea,
body.nicotto-route-self #nicotto-app #builder>.shell>.mt-6.grid>div:first-child select{
  border:1px solid var(--border)!important;background:var(--background)!important;
  padding:.72rem .85rem!important;min-height:2.75rem!important;
  transition:border-color .3s ease,box-shadow .3s ease!important;
}
body.nicotto-route-self #nicotto-app #builder>.shell>.mt-6.grid>div:first-child input:focus,
body.nicotto-route-self #nicotto-app #builder>.shell>.mt-6.grid>div:first-child textarea:focus,
body.nicotto-route-self #nicotto-app #builder>.shell>.mt-6.grid>div:first-child select:focus{
  border-color:var(--accent)!important;box-shadow:0 0 0 1px var(--accent)!important;
}


/* ===== v1.5.8 — ONLY the six user-requested follow-up fixes on top of v1.5.7 ===== */

/* 1) TOP Hero secondary CTA: keep the outline design, but make it readable over the photo. */
body.nicotto-route-top #nicotto-app main>section:first-child a.label-en.border:not(.bg-ink){
  color:var(--background,#f7f3ec)!important;
  border-color:color-mix(in srgb,var(--background,#f7f3ec) 72%,transparent)!important;
  background:color-mix(in srgb,var(--ink,#211a17) 28%,transparent)!important;
  text-shadow:0 1px 8px rgba(0,0,0,.22)!important;
}

/* 2+3) TOP WORKS: static Lovable mockups stay light; an invisible semantic link covers each mockup. */
body.nicotto-route-top #nicotto-app [data-nicotto="works"] .nicotto-home-work-link-wrap{position:relative!important}
body.nicotto-route-top #nicotto-app [data-nicotto="works"] .nicotto-home-work-link{
  position:absolute!important;inset:0!important;z-index:30!important;display:block!important;
  cursor:pointer!important;text-decoration:none!important;
}
body.nicotto-route-top #nicotto-app [data-nicotto="works"] .nicotto-home-work-link:focus-visible{
  outline:2px solid var(--accent)!important;outline-offset:3px!important;
}

/* 5) Real-phone SELF preview: apply the already-approved v1.5.5 HERO fix to the native mobile Builder preview too. */
@media(max-width:1023px){
  body.nicotto-route-self #nicotto-app #builder>.shell>.mt-6.grid>div:nth-child(2) .no-scrollbar [data-sec="hero"].px-5{
    padding-bottom:1.5rem!important;
  }
  body.nicotto-route-self #nicotto-app #builder>.shell>.mt-6.grid>div:nth-child(2) .no-scrollbar [data-sec="hero"]:not(.px-5)>.grid{
    padding-bottom:1.5rem!important;
  }
  body.nicotto-route-self #nicotto-app #builder>.shell>.mt-6.grid>div:nth-child(2) .no-scrollbar [data-sec="hero"] img.object-cover{
    display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;
  }
}

/* 6) TOP Nyantomo teaser: remove only the Monyariza cutout; text and link remain unchanged. */
body.nicotto-route-top #nicotto-app #nyantomo img[src*="monyariza-cutout"]{display:none!important}

/* 7) Nyantomo character list on phones: show only the six requested main characters. */
@media(max-width:800px){
  body.nicotto-route-nyantomo #nicotto-app .ny-character-list .ny-slide-card:not([data-mobile-main="1"]){display:none!important}
  body.nicotto-route-nyantomo #nicotto-app .ny-mobile-line-more{
    display:inline-block!important;margin-top:3.5rem!important;border-bottom:1px solid currentColor!important;
    padding-bottom:.45rem!important;color:var(--foreground)!important;font-size:.76rem!important;letter-spacing:.14em!important;
  }
}
@media(min-width:801px){body.nicotto-route-nyantomo #nicotto-app .ny-mobile-line-more{display:none!important}}
