/*
Theme Name: コスモスの里
Theme URI: https://breakthrough-co.jp/cosmos/
Author: インフォサクセス
Description: コスモスの里 公式ウェブサイトテーマ
Version: 1.0.0
License: Private
Text Domain: cosmos
*/

/* ===== SITE CSS ===== */

:root{--cream:#FFF9F0;--warm-white:#FFFDFB;--beige:#F5E6D3;--beige-light:#FAF0E6;--orange:#E07A3A;--orange-soft:#EE9A65;--orange-pale:#FFF3EA;--green:#5E9B50;--green-soft:#7DB870;--green-dark:#3D6E32;--green-pale:#EEF6EB;--brown:#7A5F3A;--text-dark:#332B22;--text-mid:#635850;--text-light:#9B8E82;--shadow-soft:0 4px 24px rgba(100,80,50,.07);--shadow-card:0 12px 40px rgba(100,80,50,.1);--shadow-heavy:0 20px 60px rgba(50,40,25,.15);--radius:20px;--radius-sm:12px}
*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}
body{font-family:'Noto Sans JP',sans-serif;color:var(--text-dark);background:var(--warm-white);line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:hidden}

.site-header{position:fixed;top:0;left:0;right:0;z-index:100;padding:16px 32px;display:flex;align-items:center;justify-content:space-between;transition:all .4s}
.site-header.scrolled{background:rgba(255,253,251,.96);backdrop-filter:blur(14px);box-shadow:0 2px 20px rgba(0,0,0,.06);padding:10px 32px}
.site-logo{font-family:'Zen Maru Gothic',sans-serif;font-size:18px;font-weight:700;color:#fff;text-decoration:none;text-shadow:0 1px 8px rgba(0,0,0,.3);transition:all .4s}
.site-header.scrolled .site-logo{color:var(--text-dark);text-shadow:none}
.header-cta svg{width:16px;height:16px;stroke:white;vertical-align:middle}
.header-cta{display:inline-flex;align-items:center;gap:6px;padding:10px 24px;border-radius:50px;font-family:'Zen Maru Gothic',sans-serif;font-size:13px;font-weight:700;text-decoration:none;color:#fff;background:var(--orange);box-shadow:0 4px 16px rgba(224,122,58,.35);transition:all .3s}
.header-cta:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(224,122,58,.45)}

.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#c4a86c}
.hero-bg{position:absolute;inset:0;background-image:url('') /* replaced by WP */;background-size:cover;background-position:center 55%}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(35,30,22,.15) 0%,rgba(35,30,22,.3) 30%,rgba(35,30,22,.65) 100%)}
.hero-inner{position:relative;z-index:2;text-align:center;padding:120px 24px 80px;max-width:880px;animation:fadeUp 1.2s ease both}
@keyframes fadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
.hero-badge{display:inline-block;background:rgba(255,255,255,.18);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.28);padding:8px 28px;border-radius:50px;font-size:12px;font-weight:500;color:rgba(255,255,255,.92);letter-spacing:3px;margin-bottom:36px}
.hero h1{font-family:'Shippori Mincho',serif;font-size:clamp(32px,7vw,68px);font-weight:700;color:#fff;margin-bottom:16px;line-height:1.35;letter-spacing:.05em;text-shadow:0 2px 24px rgba(0,0,0,.25)}
.hero h1 .accent{color:#ffcba4}
.hero-facility{font-family:'Shippori Mincho',serif;font-size:clamp(20px,4vw,32px);color:#fff;font-weight:700;letter-spacing:.08em;margin-bottom:12px;text-shadow:0 2px 16px rgba(0,0,0,.2)}
.hero-tagline{font-family:'Zen Maru Gothic',sans-serif;font-size:clamp(13px,2vw,16px);color:rgba(255,255,255,.8);margin-bottom:48px;letter-spacing:.04em}
.hero-cta-group{display:flex;gap:16px;justify-content:center;flex-wrap:wrap}
.btn-primary svg{width:18px;height:18px;stroke:white;flex-shrink:0}
.btn-primary{display:inline-flex;align-items:center;gap:8px;background:var(--orange);color:#fff;padding:18px 40px;border-radius:50px;font-family:'Zen Maru Gothic',sans-serif;font-size:15px;font-weight:700;text-decoration:none;letter-spacing:.03em;box-shadow:0 8px 28px rgba(224,122,58,.4);transition:all .35s}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 14px 36px rgba(224,122,58,.5)}
.btn-secondary{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.16);backdrop-filter:blur(8px);border:1.5px solid rgba(255,255,255,.35);color:#fff;padding:17px 36px;border-radius:50px;font-family:'Zen Maru Gothic',sans-serif;font-size:15px;font-weight:500;text-decoration:none;transition:all .35s;letter-spacing:.03em}
.btn-secondary:hover{background:rgba(255,255,255,.28);transform:translateY(-2px)}
.hero-scroll{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);z-index:2;color:rgba(255,255,255,.5);font-size:11px;letter-spacing:3px;text-align:center;animation:sb 2s ease infinite}
.hero-scroll::after{content:'';display:block;width:1px;height:32px;background:rgba(255,255,255,.3);margin:8px auto 0}
@keyframes sb{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(6px)}}

.gallery-strip{display:flex;gap:4px;overflow:hidden;height:280px}
.gallery-strip img{flex:1;min-width:0;object-fit:cover;height:100%;filter:brightness(.92);transition:all .5s}
.gallery-strip img:hover{filter:brightness(1);flex:1.5}
@media(max-width:768px){.gallery-strip{height:160px}}

section{padding:100px 24px}
.section-inner{max-width:1040px;margin:0 auto}
.section-header{text-align:center;margin-bottom:56px}
.section-label{display:inline-block;font-family:'Zen Maru Gothic',sans-serif;font-size:12px;font-weight:700;color:var(--green);letter-spacing:4px;margin-bottom:16px}
.section-label::before,.section-label::after{content:'';display:inline-block;width:24px;height:1px;background:var(--green-soft);vertical-align:middle;margin:0 12px}
.section-title{font-family:'Shippori Mincho',serif;font-size:clamp(26px,5vw,40px);font-weight:700;color:var(--text-dark);margin-bottom:16px;line-height:1.45;letter-spacing:.03em}
.section-desc{font-size:15px;color:var(--text-mid);max-width:600px;margin:0 auto;line-height:1.95}

.news{background:var(--warm-white);padding:60px 24px}
.news .section-inner{max-width:720px}
.news-list{border-top:1px solid var(--beige)}
.news-item{display:grid;grid-template-columns:auto auto 1fr;gap:0 12px;padding:16px 0;border-bottom:1px solid var(--beige);align-items:start}
.news-date{grid-column:1;grid-row:1;white-space:nowrap}
.news-tag{grid-column:2;grid-row:1}
.news-text{grid-column:3;grid-row:1;text-align:center}
@media(max-width:600px){.news-item{grid-template-columns:auto auto 1fr;grid-template-rows:auto auto}.news-date{grid-column:1;grid-row:1}.news-tag{grid-column:2;grid-row:1}.news-text{grid-column:1/-1;grid-row:2;padding-top:6px;text-align:left;padding-left:112px}}
.news-link{display:contents}
.news-date{font-family:'Zen Maru Gothic',sans-serif;font-size:13px;font-weight:700;color:var(--green);white-space:nowrap;min-width:100px}
.news-tag{font-size:11px;font-weight:700;background:var(--orange-pale);color:var(--orange);padding:2px 10px;border-radius:4px;white-space:nowrap}
.news-text{font-size:14px;color:var(--text-mid)}

.features{background:var(--cream);position:relative;overflow:hidden}
.features::before{content:'';position:absolute;top:-100px;right:-100px;width:400px;height:400px;border-radius:50%;background:rgba(224,122,58,.04)}
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
@media(max-width:768px){.features-grid{grid-template-columns:1fr}}
.feature-card{background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-soft);transition:transform .4s,box-shadow .4s}
.feature-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-card)}
.feature-img{height:210px;overflow:hidden;position:relative}
.feature-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.feature-card:hover .feature-img img{transform:scale(1.05)}
.feature-img::after{content:'';position:absolute;bottom:0;left:0;right:0;height:50px;background:linear-gradient(to top,#fff,transparent)}
.feature-body{padding:28px 28px 32px}
.feature-num{font-family:'Zen Maru Gothic',sans-serif;font-size:11px;font-weight:700;letter-spacing:2px;margin-bottom:8px}
.feature-card:nth-child(1) .feature-num{color:var(--orange)}
.feature-card:nth-child(2) .feature-num{color:var(--green)}
.feature-card:nth-child(3) .feature-num{color:var(--brown)}
.feature-body h3{font-family:'Zen Maru Gothic',sans-serif;font-size:19px;font-weight:700;margin-bottom:10px}
.feature-body p{font-size:14px;color:var(--text-mid);line-height:1.85}
.feature-stats{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap}
.feature-stat{background:var(--orange-pale);border-radius:8px;padding:5px 12px;font-family:'Zen Maru Gothic',sans-serif;font-size:11px;font-weight:700;color:var(--orange)}

.photo-break{position:relative;height:400px;overflow:hidden;background:#6b8f5e}
.photo-break-bg{position:absolute;inset:0}
.photo-break-bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.4) saturate(.85)}
.photo-break-content{position:relative;z-index:2;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px}
.photo-break-content blockquote{font-family:'Shippori Mincho',serif;font-size:clamp(18px,3.5vw,28px);color:#fff;font-weight:400;line-height:1.75;letter-spacing:.08em;max-width:640px}
.photo-break-content blockquote span{display:block;font-family:'Zen Maru Gothic',sans-serif;font-size:13px;color:rgba(255,255,255,.5);margin-top:20px;letter-spacing:2px}

.daily{background:var(--warm-white)}
.timeline{position:relative;max-width:680px;margin:0 auto}
.timeline::before{content:'';position:absolute;left:32px;top:0;bottom:0;width:2px;background:linear-gradient(to bottom,var(--orange-soft),var(--green-soft),var(--orange-soft))}
.tl-item{position:relative;padding-left:80px;margin-bottom:32px}
.tl-item:last-child{margin-bottom:0}
.tl-dot{position:absolute;left:22px;top:20px;width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid var(--orange-soft);box-shadow:0 0 0 6px rgba(224,122,58,.08);z-index:1}
.tl-item:nth-child(even) .tl-dot{border-color:var(--green-soft);box-shadow:0 0 0 6px rgba(94,155,80,.08)}
.tl-card{background:#fff;border-radius:var(--radius-sm);padding:22px 26px;box-shadow:var(--shadow-soft);transition:box-shadow .3s}
.tl-card:hover{box-shadow:var(--shadow-card)}
.tl-time{font-family:'Zen Maru Gothic',sans-serif;font-size:12px;font-weight:700;color:var(--orange);letter-spacing:1px;margin-bottom:2px}
.tl-item:nth-child(even) .tl-time{color:var(--green)}
.tl-title{font-family:'Zen Maru Gothic',sans-serif;font-size:16px;font-weight:700}

.usage{background:var(--green-pale);position:relative;overflow:hidden}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media(max-width:768px){.steps{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.steps{grid-template-columns:1fr}}
.step{background:#fff;border-radius:var(--radius);padding:36px 24px 32px;text-align:center;box-shadow:var(--shadow-soft);position:relative;transition:transform .3s,box-shadow .3s}
.step:hover{transform:translateY(-4px);box-shadow:var(--shadow-card)}
.step-num{position:absolute;top:-14px;left:50%;transform:translateX(-50%);width:28px;height:28px;border-radius:50%;background:var(--green);color:#fff;font-family:'Zen Maru Gothic',sans-serif;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(94,155,80,.25)}
.step-icon{font-size:32px;margin-bottom:14px;color:var(--orange)}
.step h3{font-family:'Zen Maru Gothic',sans-serif;font-size:15px;font-weight:700;margin-bottom:8px}
.step p{font-size:13px;color:var(--text-mid);line-height:1.75}

.company-section{background:var(--text-dark);color:#fff;position:relative;overflow:hidden}
.company-section .section-label{color:rgba(255,255,255,.5)}
.company-section .section-label::before,.company-section .section-label::after{background:rgba(255,255,255,.15)}
.company-section .section-title{color:#fff}
.company-layout{display:grid;grid-template-columns:1fr 1fr;gap:36px}
@media(max-width:768px){.company-layout{grid-template-columns:1fr}}
.company-card,.group-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:36px}
.company-card h3,.group-card h3{font-family:'Zen Maru Gothic',sans-serif;font-size:17px;font-weight:700;margin-bottom:20px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1);color:#fff}
.info-row{display:flex;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:14px}
.info-row:last-child{border-bottom:none}
.info-label{width:80px;flex-shrink:0;font-weight:500;color:rgba(255,255,255,.45)}
.info-value{color:rgba(255,255,255,.85);line-height:1.6}
.group-list{display:flex;flex-direction:column;gap:16px}
.group-item{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-sm);padding:18px 22px;transition:all .3s;display:block;text-decoration:none;color:inherit;cursor:pointer}
.group-item:hover{background:rgba(255,255,255,.08)}
.group-item-name{font-family:'Zen Maru Gothic',sans-serif;font-size:15px;font-weight:700;color:#fff;margin-bottom:4px}
.group-item-name a{color:#fff;text-decoration:none;transition:color .3s}
.group-item-name a:hover{color:var(--orange-soft)}
.group-item-addr{font-size:12px;color:rgba(255,255,255,.4);line-height:1.5}
.group-item-tel{font-size:12px;color:rgba(255,255,255,.5);margin-top:2px}

.contact-section{position:relative;overflow:hidden;padding:100px 24px;background:#4a7a3e}
.contact-bg{position:absolute;inset:0}
.contact-bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.3) saturate(.7)}
.contact-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(94,155,80,.3) 0%,rgba(224,122,58,.2) 100%)}
.contact-inner{position:relative;z-index:2;max-width:700px;margin:0 auto;text-align:center}
.contact-inner .section-label{color:rgba(255,255,255,.7)}
.contact-inner .section-label::before,.contact-inner .section-label::after{background:rgba(255,255,255,.3)}
.contact-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:40px}
@media(max-width:520px){.contact-cards{grid-template-columns:1fr}}
.contact-card{background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-radius:var(--radius);padding:32px 24px;text-decoration:none;color:var(--text-dark);transition:all .35s;box-shadow:var(--shadow-card)}
.contact-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-heavy)}
.contact-card .c-icon{font-size:28px;margin-bottom:12px;display:flex;align-items:center;justify-content:center}.contact-card .c-icon svg{width:36px;height:36px;stroke:var(--orange)}.contact-card.fax .c-icon svg{stroke:var(--text-mid)}
.contact-card .c-label{font-family:'Zen Maru Gothic',sans-serif;font-size:12px;font-weight:700;color:var(--text-light);letter-spacing:1px;margin-bottom:6px}
.contact-card .c-value{font-family:'Zen Maru Gothic',sans-serif;font-size:22px;font-weight:700;color:var(--orange)}
.contact-card.fax .c-value{font-size:18px;color:var(--text-mid)}
.contact-card .c-note{font-size:11px;color:var(--text-light);margin-top:6px}

footer{background:#1a1610;padding:40px 24px 28px;text-align:center}
.footer-logo{font-family:'Zen Maru Gothic',sans-serif;font-size:18px;font-weight:700;color:#fff;margin-bottom:8px}
.footer-address{font-size:13px;color:rgba(255,255,255,.4);margin-bottom:20px;line-height:1.7}
.footer-copy{font-size:11px;color:rgba(255,255,255,.25);padding-top:20px;border-top:1px solid rgba(255,255,255,.06)}

.float-cta svg{width:30px;height:30px;stroke:white;stroke-width:2}
.float-cta{position:fixed;bottom:24px;right:24px;z-index:100;width:64px;height:64px;border-radius:50%;background:var(--orange);color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;text-decoration:none;box-shadow:0 8px 28px rgba(224,122,58,.45);transition:all .35s}
.float-cta:hover{transform:scale(1.08);box-shadow:0 12px 36px rgba(224,122,58,.55)}
.mockup-badge{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:999;background:rgba(0,0,0,.75);backdrop-filter:blur(8px);color:#fff;padding:7px 20px;border-radius:50px;font-size:11px;font-weight:500;letter-spacing:1.5px;pointer-events:none}
.reveal{opacity:0;transform:translateY(32px);transition:opacity .8s ease,transform .8s ease}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-delay-1{transition-delay:.1s}.reveal-delay-2{transition-delay:.2s}.reveal-delay-3{transition-delay:.3s}

/* ===== NEWS MODAL ===== */
.news-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);z-index:2000;align-items:center;justify-content:center;padding:20px}
.news-modal-overlay.active{display:flex}
.news-modal{background:#fff;border-radius:20px;max-width:560px;width:100%;padding:44px 40px;position:relative;box-shadow:0 24px 80px rgba(0,0,0,.22);animation:modalIn .35s ease}
@keyframes modalIn{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.modal-close{position:absolute;top:16px;right:20px;background:none;border:none;font-size:22px;cursor:pointer;color:var(--text-light);line-height:1;padding:6px 10px;border-radius:50%;transition:.2s}
.modal-close:hover{background:var(--beige-light);color:var(--text-dark)}
.modal-meta{display:flex;gap:10px;align-items:center;margin-bottom:18px}
.modal-date{font-family:'Zen Maru Gothic',sans-serif;font-size:13px;color:var(--green);font-weight:700}
.modal-badge{font-size:11px;background:var(--green-pale);color:var(--green-dark);padding:3px 12px;border-radius:20px;font-weight:700}
.news-modal h2{font-family:'Zen Maru Gothic',sans-serif;font-size:19px;font-weight:700;margin-bottom:22px;color:var(--text-dark);line-height:1.55;padding-bottom:18px;border-bottom:2px solid var(--beige)}
.modal-body p{font-size:14.5px;line-height:2;color:var(--text-mid);margin-bottom:14px}
.modal-body p:last-child{margin-bottom:0}
.news-link{color:inherit;text-decoration:none;display:contents;cursor:pointer}
.news-link:hover .news-text{color:var(--green-dark);text-decoration:underline;text-underline-offset:3px}
.news-link .news-text::after{content:" ›";font-size:12px;color:var(--green);font-weight:700}

/* ===== PRICING ===== */
.pricing{padding:100px 24px;background:var(--warm-white)}
.pricing-inner{max-width:900px;margin:0 auto}
.pricing-note{font-size:13px;color:var(--text-light);margin-top:8px;text-align:center}
.pricing-tables{display:flex;flex-direction:column;gap:40px;margin-top:50px}
.pricing-table-wrap h3{font-family:'Zen Maru Gothic',sans-serif;font-size:16px;font-weight:700;color:var(--text-dark);margin-bottom:14px;padding-left:14px;border-left:4px solid var(--green)}
.pricing-table{width:100%;border-collapse:collapse;font-size:14px}
.pricing-table th,.pricing-table td{padding:13px 18px;border:1px solid var(--beige);text-align:center;line-height:1.5}
.pricing-table th{background:var(--green-pale);font-family:'Zen Maru Gothic',sans-serif;font-weight:700;color:var(--green-dark);font-size:13px}
.pricing-table td:first-child{text-align:left;font-weight:500}
.pricing-table th:first-child{text-align:left}
.pricing-table tr.total td{background:var(--green-pale);font-weight:700;color:var(--green-dark)}
.pricing-table tr.total td:first-child{color:var(--green-dark)}
@media(max-width:680px){.pricing-table{font-size:12px}.pricing-table th,.pricing-table td{padding:10px 10px}}

/* ===== SINGLE POST (お知らせ詳細) ===== */
.page-hero{background:linear-gradient(135deg,var(--green-dark) 0%,var(--green) 60%,var(--green-soft) 100%);padding:120px 24px 60px;text-align:center;position:relative;}
.breadcrumb{display:flex;gap:8px;align-items:center;justify-content:center;font-size:13px;color:rgba(255,255,255,.6);margin-bottom:20px;}
.breadcrumb a{color:rgba(255,255,255,.8);text-decoration:none;transition:color .3s;}
.breadcrumb a:hover{color:#fff;}
.page-meta{display:flex;gap:10px;align-items:center;justify-content:center;margin-bottom:16px;}
.page-date{font-family:'Zen Maru Gothic',sans-serif;font-size:13px;font-weight:700;color:rgba(255,255,255,.8);}
.page-tag{background:rgba(255,255,255,.2);color:#fff;font-size:11px;font-weight:700;padding:3px 12px;border-radius:20px;}
.page-title{font-family:'Zen Maru Gothic',sans-serif;font-size:clamp(20px,4vw,30px);font-weight:700;color:#fff;line-height:1.5;}
.article-wrap{max-width:720px;margin:0 auto;padding:60px 24px 100px;}
.article-body{background:#fff;border-radius:20px;padding:48px 52px;box-shadow:0 4px 32px rgba(139,111,71,.08);margin-bottom:32px;}
@media(max-width:600px){.article-body{padding:32px 20px;}}
.article-body p{font-size:15px;line-height:2.1;color:var(--text-mid);margin-bottom:20px;}
.article-body p:last-child{margin-bottom:0;}
.article-signature{text-align:right;font-family:'Zen Maru Gothic',sans-serif;font-size:14px;color:var(--text-mid);line-height:1.9;margin-top:-8px;margin-bottom:32px;}
.back-btn{display:inline-flex;align-items:center;gap:8px;padding:14px 32px;border-radius:50px;font-family:'Zen Maru Gothic',sans-serif;font-size:14px;font-weight:700;text-decoration:none;color:var(--green-dark);border:2px solid var(--green);transition:all .3s;}
.back-btn:hover{background:var(--green);color:#fff;}
.back-btn svg{width:16px;height:16px;stroke:currentColor;}
