/* One thorn-and-rose border at each major content boundary. */
.thorn-divider{width:100%;height:42px;flex:none;position:relative;background:url('../img/ibara-divider.svg') center/320px 42px repeat-x;pointer-events:none;opacity:.9;margin:0;clear:both}
.ribbon:after,.cast-section:before,.page-banner:after,footer:before,.recruit-section:before{display:none!important}
.cast-section,.recruit-section,.page-banner,footer,.ribbon{border-top:0;border-bottom:0}
.page-content>.thorn-divider{margin:40px 0 25px}
.thorn-divider+footer{border-top:0}.thorn-divider+.cast-section{padding-top:65px}.thorn-divider+.section{padding-top:65px}
@media(max-width:700px){.thorn-divider{height:34px;background-size:260px 34px}.thorn-divider+.section,.thorn-divider+.cast-section{padding-top:45px}.page-content>.thorn-divider{margin:30px 0 20px}}
/* Use equal padding above and below each content section. */
.section:not(.hero),.thorn-divider+.section,.thorn-divider+.cast-section{padding-top:72px;padding-bottom:72px}
.section:not(.hero)>:first-child{margin-top:0}.section:not(.hero)>:last-child{margin-bottom:0}
.system-section{margin-top:0;margin-bottom:0}
@media(max-width:700px){.section:not(.hero),.thorn-divider+.section,.thorn-divider+.cast-section{padding-top:45px;padding-bottom:45px}.system-section{margin-top:0;margin-bottom:0}}
/* Give section openings and endings equal, generous breathing room. */
.section:not(.hero),.thorn-divider+.section,.thorn-divider+.cast-section{padding-top:90px;padding-bottom:90px}
.inner-page .page-content{padding-top:75px;padding-bottom:75px}
@media(max-width:700px){.section:not(.hero),.thorn-divider+.section,.thorn-divider+.cast-section{padding-top:60px;padding-bottom:60px}.inner-page .page-content{padding-top:55px;padding-bottom:55px}}

/* Keep the system section open while retaining individual plan cards. */
.system-section{background:transparent;border:0;border-radius:0;box-shadow:none}

/* Hero signature: restrained typography and a thorn flourish. */
.hero .hero-small{position:relative;display:inline-block;background:none;border:0;border-radius:0;box-shadow:none;padding:8px 0 12px 30px;margin:0 0 18px;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(12px,1.25vw,16px);letter-spacing:.19em;color:#fff0ed;text-shadow:0 2px 12px #17030d}
.hero .hero-small::before{content:"";position:absolute;left:0;top:5px;width:17px;height:30px;margin:0;background:url('../img/ibara-divider.svg') center/auto 30px no-repeat;transform:rotate(-35deg);opacity:.95}
.hero .hero-small::after{content:"";position:absolute;left:30px;right:0;bottom:0;height:1px;background:linear-gradient(90deg,#d94766,transparent)}
@media(max-width:700px){.hero .hero-small{font-size:11px;letter-spacing:.16em;margin-bottom:18px;padding-left:25px}.hero .hero-small::after{left:25px}}

/* Access details remain centered after removing the decorative photo. */
#access.access-section{grid-template-columns:minmax(0,1fr);gap:0}
#access>div.reveal{width:100%;max-width:860px;margin-inline:auto}
#access .access-map-action{display:flex;justify-content:center;margin-top:28px}

/* Separate the upper-left signature from the main hero message. */
.hero .hero-content{top:19%;bottom:16%;left:8%;right:7%;width:auto;transform:none;display:flex;flex-direction:column;justify-content:space-between;gap:32px;text-align:left}
.hero-identity>.eyebrow{font-size:clamp(11px,1.35vw,17px);letter-spacing:.12em;line-height:1.7;margin:0 0 14px}
.hero .hero-identity>.hero-small{font-size:clamp(16px,1.8vw,23px);letter-spacing:.13em;margin:0;padding-bottom:10px}
.hero .hero-message h1{font-size:clamp(44px,5.5vw,78px);line-height:1.42;letter-spacing:.06em;padding-top:0;padding-bottom:25px}
.hero .hero-message .hero-sub{font-size:clamp(13px,1.5vw,19px);letter-spacing:.1em;line-height:1.8;margin:28px 0 0}
@media(max-width:700px){
.hero .hero-content{top:19%;bottom:18%;gap:28px}
.hero-identity>.eyebrow{font-size:10px;letter-spacing:.08em;margin-bottom:14px}
.hero .hero-identity>.hero-small{font-size:15px;letter-spacing:.1em}
.hero .hero-message h1{font-size:clamp(34px,10vw,47px);line-height:1.42;letter-spacing:.04em;padding-right:0;padding-bottom:21px}
.hero .hero-message .hero-sub{font-size:13px;letter-spacing:.06em;margin-top:25px}
}

/* Match the hero closing line to the shop signature. */
.hero .hero-message .hero-sub{position:relative;width:fit-content;max-width:100%;font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;font-size:clamp(16px,1.8vw,23px);font-weight:500;letter-spacing:.13em;padding-bottom:24px;text-shadow:1px 2px 0 #5f1028,0 0 18px #16040be6}
.hero .hero-message .hero-sub::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:28px;background:url('../img/thorn-title.svg') center bottom/100% 100% no-repeat;pointer-events:none}
@media(max-width:700px){.hero .hero-message .hero-sub{font-size:15px;letter-spacing:.1em;padding-bottom:20px}.hero .hero-message .hero-sub::after{height:24px}}

/* Center the footer wordmark itself, with its emblem offset to the left. */
footer .footer-top{display:flex;flex-direction:column;align-items:center;gap:0}
footer .footer-top>.brand{position:relative;display:block;width:max-content;margin:0 auto 36px;min-height:65px;align-content:center}
footer .footer-top>.brand>span{display:block;text-align:center}
footer .footer-top>.brand>img{position:absolute;right:calc(100% + 15px);top:50%;transform:translateY(-50%);margin:0}
footer .footer-top>.socials{width:100%}
@media(max-width:700px){footer .footer-top>.brand{min-height:48px;margin-bottom:32px}footer .footer-top>.brand>img{right:calc(100% + 12px)}}

/* Open recruit section and consistent storybook typography throughout. */
.recruit-section{background:transparent;border:0;border-radius:0;box-shadow:none}
:root{--ibara-type:"Yu Mincho","Hiragino Mincho ProN","Hiragino Mincho Pro","Noto Serif JP",serif}
body,body *{font-family:var(--ibara-type)!important}

/* Number the final home section and keep the closing hero line plain. */
.footer-sns-title{text-align:center;font-size:12px;letter-spacing:.18em;margin:0 0 36px}
.hero .hero-message .hero-sub::after{content:none;display:none}
.hero .hero-message .hero-sub{padding-bottom:0}

/* Keep all numbered section labels at the same scale. */
body .numbered-title{font-size:12px!important;font-weight:500!important;line-height:1.8!important;letter-spacing:.18em!important;text-align:center}
