/* ============================================================
   そよ株式会社 — site styles
   Extracted verbatim from the original inline styles.
   Declarations are unchanged; only moved out and given class names.
   ============================================================ */

/* ---- global resets (was the helmet <style> block) ---- */
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background:#E8F1EC;}

/* ---- app root ---- */
.app{position:relative;}

/* ---- fixed background breeze ---- */
.bg-breeze{position:fixed;inset:0;z-index:0;background:radial-gradient(120% 60% at 18% 0%, rgba(56,180,139,.16), transparent 60%), radial-gradient(120% 55% at 82% 100%, rgba(0,134,173,.16), transparent 60%), linear-gradient(168deg,#E8F1EC 0%, #E3ECEF 52%, #E9F1EC 100%);}

/* ---- fixed hero ---- */
.hero-frame{position:fixed;top:0;bottom:0;left:50%;transform:translateX(-50%);width:min(420px,100vw);z-index:1;overflow:hidden;}
.hero-frame__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}

.hero{position:fixed;top:0;bottom:0;left:50%;transform:translateX(-50%);width:min(420px,100vw);z-index:2;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;text-align:center;padding:0 16px 40px;pointer-events:none;}
.hero__msg{display:flex;flex-direction:column;align-items:center;}
.hero__lead{margin:0 0 14px;}
.hero__phrase{display:inline-block;font-family:'Shippori Mincho',serif;font-weight:600;font-size:15px;line-height:2.05;letter-spacing:.06em;color:#0086AD;transition:opacity .85s cubic-bezier(.2,.72,.18,1), transform .85s cubic-bezier(.2,.72,.18,1);}
.hero__sub{margin:0;font-family:'Shippori Mincho',serif;font-weight:600;font-size:14px;line-height:1.6;letter-spacing:.06em;color:rgba(26,30,101,.72);}
.hero__logo{display:block;width:80px;height:auto;margin:26px auto 0;}

/* ---- scrolling sheet column ---- */
.sheets{position:relative;z-index:3;width:min(420px,100vw);margin:0 auto 100vh;}
.hero-spacer{height:100vh;}

/* ---- sheet (card) ---- */
.sheet{position:relative;background:#FFFDF9;border-radius:10px;padding:24px 16px;margin:0 16px 16px;box-shadow:0 26px 60px -28px rgba(26,30,101,.4), 0 8px 20px -12px rgba(26,30,101,.2);overflow:hidden;}
.sheet--z1{z-index:1;}
.sheet--z2{z-index:2;}
.sheet--z3{z-index:3;}
.sheet--z4{z-index:4;}
.sheet--z5{z-index:5;}

/* ---- sheet header row ---- */
.sheet-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;font-family:'Noto Sans JP',sans-serif;font-weight:300;color:#1A1E65;}
.sheet-head__labels{display:flex;align-items:baseline;gap:11px;white-space:nowrap;flex:0 0 auto;}
.sheet-head__num{font-size:10px;letter-spacing:.12em;white-space:nowrap;}

.label-en{font-size:10px;letter-spacing:.12em;}
.label-sep{font-size:10px;opacity:.5;}
.label-ja{font-size:10px;letter-spacing:.1em;}

/* ---- shared sheet body ---- */
.sheet-body{padding:144px 0 96px;}
.sheet-body--news{padding:144px 0 0;}

/* ---- shared typography ---- */
.eyebrow{display:block;margin-bottom: 4px;font-family:'Shippori Mincho',serif;font-weight:400;font-size:10px;letter-spacing:.14em;color:#1A1E65;}
.eyebrow--mt{margin-top:48px;}
.heading{margin:0;font-family:'Shippori Mincho',serif;font-weight:600;font-size:18px;line-height:1.5;letter-spacing:.14em;color:#1A1E65;}

/* ---- shared links ---- */
.text-link{color:#1A1E65;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;cursor:pointer;}
.text-link-alt{color: rgb(26, 30, 101); text-decoration: underline 1px; text-underline-offset: 3px; cursor: pointer;}
.inline-link{color:#1A1E65;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}

/* ---- 01 Business ---- */
.biz-body{display:flex;flex-direction:column;gap:160px;padding:144px 0 96px;}
.lead-copy{margin:4px 0 0;font-size:12px;line-height:1.95;letter-spacing:.03em;color:#1A1E65;text-wrap:pretty;}

/* ---- 02 Profile ---- */
.profile-name{margin-top:0;font-family:'Shippori Mincho',serif;font-size:18px;font-weight:500;letter-spacing:.08em;color:#1A1E65;}
.profile-copy{font-size:12px;line-height:1.95;letter-spacing:.03em;color:#1A1E65;margin:44px 0 0;text-wrap:pretty;}

/* ---- 03 Company ---- */
.company-list{display:flex;flex-direction:column;gap:52px;}
.company-row{display:flex;align-items:flex-start;gap:30px;}
.company-term{flex:0 0 auto;writing-mode:vertical-rl;text-orientation:upright;font-family:'Noto Sans JP',sans-serif;font-size:10px;font-weight:300;letter-spacing:.3em;color:#1A1E65;}
.company-desc{flex:1;margin:0;font-family:'Shippori Mincho',serif;font-size:14px;font-weight:500;letter-spacing:.06em;color:#1A1E65;}
.company-desc--lh{line-height:1.7;}

/* ---- 04 News ---- */
.news-list{display:flex;flex-direction:column;gap:160px;}
.archive-link{display:block;text-align:right;margin-top:96px;font-family:'Noto Sans JP',sans-serif;font-size:10px;letter-spacing:.03em;color:#1A1E65;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;cursor:pointer;}

/* news items injected by JS */
.news-item{display:flex;flex-direction:column;gap:6px;}
.news-item__inner{display:flex;flex-direction:column;gap:10px;}
.news-item__title{display:block;font-family:'Shippori Mincho',serif;font-weight:500;font-size:18px;line-height:1.5;letter-spacing:.14em;color:#1A1E65;}
.news-item__excerpt{margin:0;font-size:12px;line-height:1.95;letter-spacing:.03em;color:#1A1E65;text-wrap:pretty;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.news-item__link{align-self:flex-start;font-family:'Noto Sans JP',sans-serif;font-size:12px;letter-spacing:.03em;color:#1A1E65;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;cursor:pointer;}

/* ---- 05 Contact ---- */
.contact-copy{font-size:12px;line-height:2.0;letter-spacing:.04em;color:#1A1E65;margin:40px 0 0;text-wrap:pretty;}

/* ---- footer ---- */
.site-footer{position:relative;z-index:3;width:min(420px,100vw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:32px 30px;}
.site-footer__symbol{width:30px;height:auto;display:block;}
.site-footer__name{height:20px;width:auto;display:block;}

/* ---- modals (shared) ---- */
.modal{position:fixed;inset:0;z-index:70;display:flex;justify-content:center;pointer-events:none;background:rgba(233,241,236,0);-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);transition:background .8s cubic-bezier(.2,.72,.18,1), backdrop-filter .8s cubic-bezier(.2,.72,.18,1), -webkit-backdrop-filter .8s cubic-bezier(.2,.72,.18,1);}
.modal__panel{width:100%;max-width:420px;height:100%;background:rgba(255,253,249,.96);-webkit-backdrop-filter:blur(18px) saturate(1.05);backdrop-filter:blur(18px) saturate(1.05);opacity:0;transform:translateY(22px) scale(.985);transition:opacity .8s cubic-bezier(.2,.72,.18,1), transform 1s cubic-bezier(.2,.72,.18,1);display:flex;flex-direction:column;padding:24px 16px;}
.modal-head{display:flex;align-items:center;justify-content:space-between;flex:0 0 auto;}
.modal-head__labels{display:flex;align-items:baseline;gap:9px;font-family:'Noto Sans JP',sans-serif;font-weight:300;color:#1A1E65;}
.modal-close{appearance:none;border:0;background:none;cursor:pointer;width:44px;height:34px;display:grid;place-items:center;position:relative;}
.modal-close__bar{position:absolute;width:24px;height:1.5px;background:#1A1E65;border-radius:2px;}
.modal-close__bar--a{transform:rotate(45deg);}
.modal-close__bar--b{transform:rotate(-45deg);}
.modal-body{flex:1 1 auto;overflow-y:auto;padding:32px 0 0;}
.modal-paragraph{margin:0;font-size:12px;line-height:1.95;letter-spacing:.03em;color:#1A1E65;text-wrap:pretty;}

/* profile modal */
.profile-photo{width:140px;height:140px;display:block;margin:0 0 30px;object-fit:cover;border-radius:10px;}
.profile-modal__name{margin-top:12px;font-family:'Shippori Mincho',serif;font-size:18px;font-weight:500;letter-spacing:.08em;color:#1A1E65;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;}
.profile-modal__name-en{font-family:'Noto Sans JP',sans-serif;font-size:11px;letter-spacing:.08em;color:rgba(26,30,101,.45);font-weight:400;}
.profile-modal__bio{margin-top:34px;display:flex;flex-direction:column;gap:22px;}
.profile-modal__links{margin-top:40px;display:flex;gap:26px;padding-bottom:8px;}
.social-link{font-size:12px;letter-spacing:.04em;color:#1A1E65;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}

/* news modal */
.modal-news__date{font-family:'Noto Sans JP',sans-serif;font-weight:400;font-size:10px;letter-spacing:.14em;color:#1A1E65;margin:0 0 14px;}
.modal-news__title{font-family:'Shippori Mincho',serif;font-weight:500;font-size:18px;line-height:1.5;letter-spacing:.14em;color:#1A1E65;margin:0 0 28px;}
.modal-news__content{display:flex;flex-direction:column;gap:18px;}
.modal-news__permalink{display:inline-block;margin-top:64px;font-family:'Noto Sans JP',sans-serif;font-size:10px;letter-spacing:.03em;color:#1A1E65;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px;}

/* works modal + services modal (shared UI) */
.works-list,.services-list{display:flex;flex-direction:column;gap:72px;}
.works-item,.services-item{display:flex;flex-direction:column;gap:8px;}
.works-item:last-child{margin-bottom: 34px;}
.works-item__desc,.services-item__desc{margin:6px 0 0;font-size:12px;line-height:1.95;letter-spacing:.03em;color:#1A1E65;text-wrap:pretty;}
.works-note,.services-note{margin:30px 0 8px;font-size:12px;line-height:1.8;letter-spacing:.03em;color:rgba(26,30,101,.5);text-wrap:pretty;}
