/*
Theme Name: followixx
Theme URI: https://followixx.com
Author: followixx
Description: フォロリックス（followixx）公式サイト用WordPressテーマ。ヘルスケア配送のフォーマル＆クリーンなコーポレートサイト。
Version: 1.0.0
License: GNU General Public License v2 or later
Text Domain: followixx
*/

:root{
  --teal:#00695C;--teal-dark:#004D40;--teal-light:#E0F2F1;
  --med-blue:#0277BD;--med-light:#E1F5FE;
  --dark:#1A2530;
  --text:#2D3E4A;--text-sub:#5A6E7A;--text-light:#94A3AD;
  --white:#FEFEFE;--bg:#FBFCFD;--bg-alt:#F4F7F9;
  --border:#D8E0E6;
  --ff-head:'Source Serif 4','Noto Serif JP',serif;
  --ff-body:'Noto Sans JP',sans-serif;
  --ff-en:'Source Serif 4',serif;
  --ease:cubic-bezier(.23,1,.32,1);
  --max-w:1000px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased}
body{font-family:var(--ff-body);font-weight:400;line-height:2;color:var(--text-sub);background:var(--bg);overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--teal);text-decoration:none;transition:.35s var(--ease)}a:hover{color:var(--med-blue)}
ul,ol{list-style:none}
.fw-wrap{max-width:var(--max-w);margin:0 auto;padding:0 40px}

.fw-label{font-family:var(--ff-en);font-size:.65rem;font-weight:400;font-style:italic;letter-spacing:.18em;color:var(--teal);display:block;margin-bottom:14px}
.fw-title{font-family:var(--ff-head);font-size:1.4rem;font-weight:600;color:var(--dark);line-height:1.85;margin-bottom:14px;letter-spacing:.03em}
.fw-lead{font-size:.88rem;color:var(--text-sub);max-width:540px;line-height:2.2}
.fw-line{width:32px;height:1px;background:var(--teal);border:none;margin:24px 0}

/* Loading */
.fw-load{position:fixed;inset:0;background:var(--bg);z-index:99999;display:flex;align-items:center;justify-content:center;transition:opacity .8s ease .3s,visibility .8s ease .3s}
.fw-load.done{opacity:0;visibility:hidden}
.fw-load img{width:200px;height:auto;animation:fwFade 2s ease-in-out infinite}
@keyframes fwFade{0%,100%{opacity:.25}50%{opacity:1}}

/* Header — Framed (top border + bottom border) */
.fw-header{position:fixed;top:0;left:0;width:100%;z-index:1000;background:var(--white);border-top:3px solid var(--teal);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 48px;height:72px;transition:.3s var(--ease)}

.fw-header-logo img{width:180px;height:auto !important;max-height:46px;object-fit:contain}

.fw-header-nav{display:flex;gap:28px}
.fw-header-nav a{font-family:var(--ff-en);font-size:.68rem;font-weight:400;font-style:italic;letter-spacing:.1em;color:var(--text-sub);position:relative}
.fw-header-nav a::after{content:'';position:absolute;bottom:-6px;left:0;width:0;height:1px;background:var(--teal);transition:.3s var(--ease)}
.fw-header-nav a:hover{color:var(--dark)}.fw-header-nav a:hover::after{width:100%}

.fw-burger{display:none;background:none;border:none;cursor:pointer;width:26px;height:18px;position:relative}
.fw-burger i{display:block;position:absolute;left:0;width:100%;height:1px;background:var(--dark);transition:.3s var(--ease)}
.fw-burger i:nth-child(1){top:0}.fw-burger i:nth-child(2){top:50%}.fw-burger i:nth-child(3){bottom:0}
.fw-burger.open i:nth-child(1){top:50%;transform:rotate(45deg)}.fw-burger.open i:nth-child(2){opacity:0}.fw-burger.open i:nth-child(3){bottom:50%;transform:rotate(-45deg)}
.fw-mnav{display:none;position:fixed;top:0;right:-100%;width:75%;max-width:300px;height:100vh;background:var(--white);flex-direction:column;padding:90px 36px;gap:0;transition:right .4s var(--ease);z-index:999;border-left:1px solid var(--border)}
.fw-mnav.on{right:0}
.fw-mnav a{font-family:var(--ff-en);font-size:.88rem;font-style:italic;color:var(--text);padding:14px 0;border-bottom:1px solid var(--border)}
.fw-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.1);z-index:998}.fw-overlay.on{display:block}

/* === Hero — White bg + vertical green line left + text right-aligned === */
.fw-hero{padding:160px 0 120px;position:relative}
.fw-hero-inner{display:flex;gap:56px;align-items:flex-start}

.fw-hero-line-deco{flex-shrink:0;width:3px;background:linear-gradient(to bottom,var(--teal),var(--med-blue));border-radius:2px;min-height:240px;margin-top:8px}

.fw-hero-content{flex:1}
.fw-hero-catch{font-family:var(--ff-head);font-size:2rem;font-weight:600;color:var(--dark);line-height:1.8;letter-spacing:.05em;margin-bottom:24px}
.fw-hero-catch .tl{color:var(--teal)}.fw-hero-catch .bl{color:var(--med-blue)}
.fw-hero-sub{font-size:.86rem;color:var(--text-sub);line-height:2.4;margin-bottom:40px;max-width:520px}
.fw-hero-btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--ff-en);font-size:.68rem;font-style:italic;letter-spacing:.15em;color:var(--teal);border:1px solid var(--border);padding:12px 32px;transition:.3s}
.fw-hero-btn:hover{border-color:var(--teal);background:var(--teal-light);color:var(--teal-dark)}
.fw-hero-btn svg{width:12px;height:12px}

/* Reveal */
.rv{opacity:0;transform:translateY(24px);transition:opacity .9s var(--ease),transform .9s var(--ease)}.rv.show{opacity:1;transform:none}

/* === Business — Fixed label left + numbered text right === */
.fw-business{padding:120px 0;background:var(--bg-alt);border-top:1px solid var(--border)}
.fw-biz-header{margin-bottom:72px}

.fw-biz-grid{display:grid;grid-template-columns:180px 1fr;gap:48px}
.fw-biz-side{position:sticky;top:100px}
.fw-biz-side-label{font-family:var(--ff-en);font-size:.6rem;font-style:italic;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);writing-mode:vertical-rl;transform:rotate(180deg)}

.fw-biz-items{display:flex;flex-direction:column;gap:0}
.fw-biz-item{display:grid;grid-template-columns:56px 1fr;gap:20px;padding:40px 0;border-bottom:1px solid var(--border)}
.fw-biz-item:last-child{border-bottom:none}
.fw-biz-num{font-family:var(--ff-en);font-size:2.5rem;font-weight:600;font-style:italic;color:var(--teal-light);line-height:1}
.fw-biz-text h3{font-family:var(--ff-head);font-size:1rem;font-weight:600;color:var(--dark);margin-bottom:10px}
.fw-biz-text p{font-size:.84rem;color:var(--text-sub);line-height:2.2}

/* Message */
.fw-message{padding:120px 0;background:var(--bg);border-top:1px solid var(--border)}
.fw-msg-grid{display:grid;grid-template-columns:240px 1fr;gap:56px;align-items:start}
.fw-msg-photo-frame{overflow:hidden;aspect-ratio:3/4;border:1px solid var(--border)}
.fw-msg-photo-frame img{width:100%;height:100%;object-fit:cover}
.fw-msg-photo-info{margin-top:12px}.fw-msg-photo-info .pos{font-size:.6rem;color:var(--text-light);letter-spacing:.08em}.fw-msg-photo-info .name{font-family:var(--ff-head);font-size:.88rem;color:var(--dark)}
.fw-msg-content .fw-title{font-size:1.25rem}
.fw-msg-text{font-size:.86rem;color:var(--text-sub);line-height:2.4}.fw-msg-text p{margin-bottom:20px}
.fw-msg-sig{margin-top:32px;font-family:var(--ff-head);font-size:.95rem;color:var(--dark);display:flex;align-items:baseline;gap:12px}
.fw-msg-sig .lbl{font-size:.6rem;color:var(--text-light);font-style:italic}

/* Recruit */
.fw-recruit{padding:120px 0;background:var(--bg-alt);border-top:1px solid var(--border)}
.fw-rec-header{margin-bottom:64px}
.fw-rec-tag{font-family:var(--ff-en);font-size:.55rem;font-style:italic;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);border:1px solid var(--border);padding:4px 14px;display:inline-block;margin-bottom:14px}

.fw-rec-features{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);margin-bottom:56px}
.fw-rec-feat{background:var(--bg-alt);padding:36px 28px}
.fw-rec-feat h3{font-family:var(--ff-head);font-size:.9rem;font-weight:600;color:var(--dark);margin-bottom:10px}
.fw-rec-feat p{font-size:.82rem;color:var(--text-sub);line-height:2.1}

.fw-rec-profile{border:1px solid var(--border);padding:36px 40px;background:var(--bg)}
.fw-rec-profile h3{font-family:var(--ff-en);font-size:.6rem;font-style:italic;letter-spacing:.18em;color:var(--teal);margin-bottom:24px}
.fw-rec-profile-items{display:flex;flex-direction:column;gap:14px}
.fw-rec-profile-item{font-size:.86rem;color:var(--text-sub);line-height:1.8;padding-left:20px;position:relative}
.fw-rec-profile-item::before{content:'—';position:absolute;left:0;color:var(--border)}

/* === Access — Formal table === */
.fw-access{padding:100px 0;background:var(--bg);border-top:1px solid var(--border)}
.fw-access-grid{display:grid;grid-template-columns:1fr 300px;gap:48px;align-items:start}
.fw-access-info h2{font-family:var(--ff-head);font-size:1.1rem;font-weight:600;color:var(--dark);margin-bottom:24px}
.fw-access-table{width:100%;border-collapse:collapse}
.fw-access-table tr{border-bottom:1px solid var(--border)}
.fw-access-table th{font-family:var(--ff-en);font-size:.62rem;font-weight:400;font-style:italic;letter-spacing:.1em;text-transform:uppercase;color:var(--teal);text-align:left;padding:14px 12px 14px 0;width:80px;vertical-align:top}
.fw-access-table td{font-size:.88rem;color:var(--text-sub);padding:14px 0;line-height:1.7}
.fw-access-table a{color:var(--teal);border-bottom:1px solid var(--border)}.fw-access-table a:hover{border-color:var(--teal)}

.fw-access-map{overflow:hidden;aspect-ratio:1/1;border:1px solid var(--border)}
.fw-access-map iframe{width:100%;height:100%;border:none}

/* === Contact — Text only, no buttons === */
.fw-contact{padding:64px 0;background:var(--bg-alt);border-top:1px solid var(--border);text-align:center}
.fw-contact-text{font-size:.86rem;color:var(--text-sub);margin-bottom:24px;line-height:2}
.fw-contact-links{display:flex;justify-content:center;gap:40px}
.fw-contact-link{font-family:var(--ff-en);font-size:.82rem;font-style:italic;color:var(--text);display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--border);padding-bottom:4px;transition:.3s}
.fw-contact-link svg{width:14px;height:14px;color:var(--teal)}
.fw-contact-link:hover{color:var(--teal);border-color:var(--teal)}

/* Footer */
.fw-footer{background:var(--dark);padding:40px 0 0;border-top:3px solid var(--teal)}
.fw-footer-inner{display:flex;justify-content:space-between;align-items:center;padding-bottom:28px}
.fw-footer-desc{font-size:.68rem;color:rgba(255,255,255,.15);max-width:220px}
.fw-footer-links{display:flex;gap:18px}
.fw-footer-links a{font-family:var(--ff-en);font-size:.55rem;font-style:italic;letter-spacing:.08em;color:rgba(255,255,255,.1)}.fw-footer-links a:hover{color:var(--teal)}
.fw-footer-copy{border-top:1px solid rgba(255,255,255,.03);padding:16px 0;text-align:center;font-family:var(--ff-en);font-size:.55rem;color:rgba(255,255,255,.06)}

.fw-totop{position:fixed;bottom:28px;right:28px;width:36px;height:36px;background:var(--bg);border:1px solid var(--border);color:var(--text-light);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;visibility:hidden;transition:.3s var(--ease);z-index:900}
.fw-totop.vis{opacity:1;visibility:visible}
.fw-totop:hover{border-color:var(--teal);color:var(--teal)}
.fw-totop svg{width:12px;height:12px}

@media(max-width:1024px){
  .fw-hero-inner{flex-direction:column;gap:0}
  .fw-hero-line-deco{width:100%;height:3px;min-height:auto;margin-bottom:28px}
  .fw-biz-grid{grid-template-columns:1fr}
  .fw-biz-side{position:static;writing-mode:horizontal-tb;transform:none}
  .fw-biz-side-label{writing-mode:horizontal-tb;transform:none}
  .fw-msg-grid{grid-template-columns:1fr;gap:40px}
  .fw-msg-photo-frame{aspect-ratio:16/9;max-height:320px}
  .fw-rec-features{grid-template-columns:1fr}
  .fw-access-grid{grid-template-columns:1fr}
  .fw-contact-links{flex-direction:column;gap:16px;align-items:center}
}
@media(max-width:768px){
  .fw-header{padding:0 24px;height:60px}
  .fw-header-logo img{width:140px !important;max-height:38px}
  .fw-header-nav{display:none}
  .fw-burger{display:block}.fw-mnav{display:flex}
  .fw-hero{padding:120px 0 80px}
  .fw-hero-catch{font-size:1.5rem}
  .fw-title{font-size:1.15rem}
  .fw-biz-item{grid-template-columns:40px 1fr}.fw-biz-num{font-size:1.8rem}
  .fw-rec-profile{padding:28px 20px}
  .fw-footer-inner{flex-direction:column;gap:16px;text-align:center}
  .fw-footer-links{flex-wrap:wrap;gap:12px;justify-content:center}
  body{padding-top:60px}
}
