:root{--teal:#156669;--lavender:#ead0f4;--cream:#f1efe5;--blue:#bcdff4;--lime:#d9f69b;--pink:#d5a8cf;--ink:#172a2a;--serif:"Yu Mincho","Hiragino Mincho ProN",serif;--sans:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--teal);background:var(--cream);font-family:var(--sans);line-height:1.75}img{display:block;width:100%}a{color:inherit}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;z-index:10;background:white;padding:.8rem}.page-section{min-height:47rem;padding:clamp(4.5rem,8vw,8rem) clamp(1.5rem,10vw,10rem)}h2{font:500 clamp(2rem,3.2vw,3.7rem)/1.35 var(--serif)}
.hero{position:relative;min-height:100svh;overflow:hidden;color:#17140f}.hero>img{position:absolute;inset:0;height:100%;object-fit:cover;object-position:center}.hero-copy{position:absolute;z-index:1;top:8%;left:47%;width:48%}.hero h1{margin:0;max-width:14ch;font:400 clamp(3rem,5vw,5.6rem)/1.08 var(--serif);letter-spacing:-.04em}.hero-copy p{margin:1.6rem 0 0;font:400 clamp(1rem,1.6vw,1.5rem)/1.7 var(--serif)}.hero small{position:absolute;z-index:1;left:26%;bottom:2.5%;color:rgba(255,255,255,.8)}
.about{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:clamp(3rem,8vw,8rem);background:var(--lavender)}.orb-wrap{position:relative;max-width:31rem;margin:auto}.orb-wrap img{position:relative;z-index:1;aspect-ratio:1;object-fit:cover;border-radius:50%}.color-orb{position:absolute;width:11rem;height:11rem;border-radius:50%;filter:blur(25px);opacity:.8}.orb-one{left:-2rem;top:-2rem;background:#fb785e}.orb-two{right:-2rem;bottom:-2rem;background:#4ab6b4}.ruby{margin:0 0 -.4rem;font-size:.75rem;font-weight:700;letter-spacing:.08em}.about h2{margin:0 0 1.4rem}.about-copy>p:not(.ruby):not(.medical-note){max-width:34rem;font-size:1.05rem}.resource-links{display:flex;gap:1.3rem;margin:2.4rem 0}.text-link{min-width:10rem;padding:.65rem 1.2rem;border:1px solid var(--teal);background:var(--cream);text-align:center;text-decoration:none;font-weight:700}.medical-note{max-width:40rem;font-size:.74rem}
.statement{position:relative;min-height:52rem;color:white}.statement>img{position:absolute;inset:0;height:100%;object-fit:cover}.statement-copy{position:relative;z-index:1;width:min(39rem,82vw);padding-top:clamp(5rem,10vw,10rem);margin-left:clamp(1.5rem,20vw,22rem)}.statement h2{margin:0 0 1.5rem}.statement p{font:400 clamp(1rem,1.6vw,1.35rem)/1.9 var(--serif);white-space:pre-line}.statement p:last-child{margin-top:2.2rem}
.story{position:relative;background:radial-gradient(circle at 52% 42%,rgba(249,167,115,.75),transparent 28%),var(--blue)}.story>h2,.progress>h2{margin:0 0 4rem;text-align:center}.story-pictures{display:flex;justify-content:space-between;position:absolute;inset:9rem 18% auto;pointer-events:none}.story-pictures img{width:clamp(8rem,13vw,13rem);aspect-ratio:1;border-radius:50%;object-fit:cover;opacity:.95}.timeline{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);align-items:start;gap:clamp(1rem,3vw,3rem);max-width:82rem;margin:auto;padding-top:10rem}.timeline-item{text-align:center}.timeline-date{margin-bottom:.8rem;font:600 1.3rem/1 var(--serif)}.timeline-card h3{margin:0 0 .6rem;font:600 1rem/1.4 var(--serif)}.timeline-card p{margin:0;font-size:.8rem;line-height:1.8}.timeline-item:nth-child(n+5){margin-top:2rem}.instagram-card{display:flex;justify-content:center;gap:1rem;margin:5rem auto 0;font-size:.85rem;text-decoration:none}
.progress{background:radial-gradient(circle at 75% 55%,rgba(208,255,94,.78),transparent 44%),radial-gradient(circle at 15% 20%,rgba(112,169,207,.45),transparent 48%),#eef5d0}.progress-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(2rem,6vw,7rem);max-width:74rem;margin:7rem auto 0;text-align:center}.progress h3{font:600 1.35rem/1.4 var(--serif)}.progress p{font-size:.85rem}
.profile{display:grid;grid-template-columns:1fr 1fr;gap:4rem;min-height:47rem;background:var(--cream);color:var(--ink)}.page-no{justify-self:center;font-size:.8rem}.profile-copy{max-width:30rem}.profile h2{margin:0 0 1rem;color:var(--ink)}.profile h3{margin-top:5rem;font:500 2rem/1.4 var(--serif)}.shop-link{display:inline-block;margin-top:1rem;text-underline-offset:.25rem}
.cats{min-height:70rem;background:var(--cream)}.cats>h2{text-align:center}.cats ul{display:grid;grid-template-columns:repeat(3,1fr);gap:4rem;max-width:62rem;margin:16rem auto 8rem;padding:0;list-style:none;text-align:center;font:500 1.15rem/1.7 var(--serif)}.cats li:last-child{grid-column:2}.albums{max-width:70rem;margin:auto;display:grid;grid-template-columns:repeat(2,1fr);gap:5rem 12rem}.albums h3{grid-column:1/-1;font:500 2.7rem/1.4 var(--serif)}.albums p{margin:0;font:500 1.6rem/1.5 var(--serif)}.albums small{display:block;font:.75rem/1.5 var(--sans)}
footer{min-height:35rem;padding:5rem 10%;text-align:center;color:white;background:var(--pink)}footer h2{margin:0 0 7rem;font-size:1.5rem}footer a{display:inline-block;margin-bottom:2rem;font-size:1.2rem}footer p{font:500 1rem/1.6 var(--serif)}footer small{display:block;margin-top:7rem;opacity:.7}
@media(max-width:760px){.page-section{min-height:auto;padding:4.5rem 1.5rem}.hero{min-height:46rem}.hero>img{object-position:36% center;filter:brightness(.9)}.hero-copy{top:auto;left:1.5rem;right:1.5rem;bottom:4.5rem;width:auto;color:white}.hero h1{font-size:3.1rem}.hero small{left:1.5rem}.about,.profile{grid-template-columns:1fr}.orb-wrap{width:82%}.statement{min-height:42rem}.statement>img{object-position:52% center}.statement-copy{margin:0;padding:4rem 1.5rem;width:72%;text-shadow:0 1px 8px rgba(0,0,0,.25)}.story-pictures{display:none}.timeline{grid-template-columns:1fr 1fr;padding-top:0;gap:3rem 1.2rem}.timeline-item:nth-child(n+5){margin-top:0}.progress-grid{grid-template-columns:1fr 1fr;margin-top:3rem}.cats ul{grid-template-columns:1fr 1fr;gap:2rem;margin:5rem auto}.cats li:last-child{grid-column:auto}.albums{grid-template-columns:1fr 1fr;gap:3rem 1.5rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* 記録の改行を保ち、短い行がさらに折り返されない列幅にする */
.story,.progress{padding-inline:clamp(24px,4vw,64px)}
.timeline{gap:24px;max-width:1200px;grid-template-columns:repeat(4,minmax(0,1fr))}
.timeline-date{font-size:22px;line-height:1.4}
.timeline-card h3,.progress-grid h4{font:600 16px/1.6 var(--serif);margin:0 0 16px}
.timeline-card p,.progress-grid p{white-space:pre-line;overflow-wrap:normal;word-break:normal;line-break:strict;font-size:14px;line-height:1.9;margin:0;letter-spacing:0}
.progress-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:64px 32px;max-width:1100px;margin-top:48px}
.progress-grid h3{margin:0 0 12px;font-size:22px}
@media(min-width:901px) and (max-width:1150px){.timeline-card p{font-size:12px;line-height:1.85}.timeline-date{font-size:20px}.timeline-card h3{font-size:14px}}
@media(max-width:900px){.timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:48px 32px;max-width:720px}.timeline-card p,.progress-grid p{font-size:15px}.progress-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px}}
@media(max-width:540px){.timeline,.progress-grid{grid-template-columns:1fr;gap:48px;max-width:360px}.timeline-card p,.progress-grid p{font-size:16px}.timeline-date,.progress-grid h3{font-size:24px}}

.diagnosis{padding:48px 24px;text-align:center;background:var(--blue)}.diagnosis h2{margin:0 0 24px;font-size:28px}.diagnosis h3{margin:0 0 8px;font:600 22px/1.5 var(--serif)}.diagnosis p{margin:0 0 12px;font-size:14px}.diagnosis strong{font-size:18px}

/* 抗体名と結果を一つの検査カードとして表示 */
.diagnosis{padding:32px 24px 64px}
.diagnosis-card{max-width:680px;margin:auto;padding:32px 40px;background:#f6fcff;border:1px solid #8bbdc4;border-radius:16px;text-align:left}
.diagnosis-card h2{font:600 24px/1.5 var(--serif);margin:0 0 24px}
.diagnosis-card dl{margin:0}
.diagnosis-test{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid #bfdade;padding-top:24px}
.diagnosis-test dt{font-size:22px;font-weight:700;line-height:1.5}
.diagnosis-test dt small{display:block;margin-top:6px;font-size:14px;font-weight:400}
.diagnosis-test dd{margin:0;flex-shrink:0;text-align:center}
.diagnosis-result-label{display:block;font-size:13px;margin-bottom:8px}
.diagnosis-test strong{display:block;background:#dbeeee;border:1px solid #a4ced0;border-radius:8px;padding:8px 24px;font-size:26px;line-height:1.4}
@media(max-width:540px){.diagnosis-card{padding:24px}.diagnosis-card h2{font-size:21px}.diagnosis-test{align-items:flex-start;flex-direction:column;gap:20px}.diagnosis-test dt{font-size:21px}.diagnosis-test dd{display:flex;align-items:center;gap:16px}.diagnosis-result-label{margin:0}}

.diagnosis-card h2{font:600 16px/1.5 var(--sans);margin:0 0 8px}.diagnosis-card .diagnosis-disease{font:600 32px/1.5 var(--serif);margin:0 0 28px}.diagnosis-test strong{font-size:22px}@media(max-width:540px){.diagnosis-card .diagnosis-disease{font-size:28px}}

.current-treatment{max-width:680px;margin:64px auto 0;padding:32px 40px;background:#f8fbed;border:1px solid #b3c888;border-radius:16px;text-align:left}
.current-treatment h3{font:600 26px/1.5 var(--serif);margin:0 0 20px}
.current-treatment .current-treatment-name{font-size:22px;font-weight:700;margin:0 0 24px}
.current-treatment-name span{display:block;font-size:16px;font-weight:400;margin-top:4px}
.current-treatment h4{font-size:16px;margin:0 0 12px;padding-top:20px;border-top:1px solid #c9d8a9}
.current-treatment ul{list-style:none;padding:0;margin:0;font-size:18px;line-height:2}.current-treatment li strong{margin-left:8px}
@media(max-width:540px){.current-treatment{padding:24px}}

/* Canva原本の写真3枚とプロフィール全文 */
.profile{grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:clamp(24px,4vw,64px);padding:40px clamp(24px,4vw,64px);align-items:start}
.profile-photos{display:grid;grid-template-columns:1.3fr 1fr;grid-template-rows:1.4fr 1fr;gap:12px;height:600px}
.profile-photos img{height:100%;min-height:0;object-fit:cover}.profile-photo-tall{grid-row:1/3}
.profile-copy{max-width:none;padding:24px 0;font-size:14px;line-height:1.65}
.profile-copy h2{font:500 28px/1.4 var(--sans);margin:0 0 16px}
.profile-details{margin:0 0 24px}.profile-details div{display:flex;gap:12px}.profile-details dt{min-width:4em}.profile-details dd{margin:0}
.profile-copy p{margin:0 0 24px}.profile-shop-banner{display:flex;align-items:center;gap:0;margin:8px 0 24px}.profile-shop-banner img:first-child{width:52px;height:52px;object-fit:contain}.profile-shop-banner img:last-child{width:calc(100% - 52px);height:40px;object-fit:cover}
.profile-copy h3{margin:24px 0 8px;font:500 28px/1.4 var(--sans)}
@media(max-width:760px){.profile{grid-template-columns:1fr}.profile-photos{height:480px}.profile-copy{font-size:16px;padding:0}.profile-copy h2{font-size:28px}}
@media(max-width:480px){.profile-photos{height:360px}}
.profile-photos img:nth-child(2){object-position:25% center}.profile-photos img:nth-child(3){object-position:75% center}

/* 猫4匹の原本写真と紹介 */
.cats{background:radial-gradient(ellipse at 52% 22%,rgba(235,185,204,.65),transparent 55%),radial-gradient(ellipse at 85% 15%,rgba(173,211,219,.5),transparent 45%),var(--cream);padding-inline:clamp(24px,4vw,64px)}
.cats ul{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1100px;gap:56px 48px;margin:64px auto 80px;font-family:var(--sans)}
.cats li>img{width:100%;max-width:280px;aspect-ratio:1;object-fit:cover;border-radius:50%;margin:0 auto 20px}
.cat-caption p{margin:0 0 12px;font-size:13px}.cat-caption h3{margin:0;font-size:24px;line-height:1.4;font-weight:500}.cat-caption span{display:block;font-size:14px}
.cats li:last-child{grid-column:1/-1;display:flex;justify-content:center;align-items:center;gap:24px;margin-top:8px}.cats li:last-child>img{width:100px;max-width:100px;margin:0}.cats li:last-child .cat-caption{text-align:center}
@media(max-width:760px){.cats ul{gap:40px 20px}.cat-caption h3{font-size:20px}.cat-caption p{font-size:12px}.cat-caption span{font-size:12px}}
@media(max-width:540px){.cats ul{grid-template-columns:1fr;max-width:320px}.cats li>img{max-width:240px}.cats li:last-child{gap:16px}.cat-caption h3{font-size:24px}}

.profile-age{display:inline-block;white-space:nowrap;font-size:.9em}

.cats>h2{margin-bottom:16px}.cats-subcatch{text-align:center;margin:0 auto;max-width:42rem;font-size:clamp(15px,1.5vw,18px);line-height:1.8}

.hero-copy .diagnosis-elapsed{margin-top:24px;font:400 clamp(12px,1.1vw,15px)/1.6 var(--sans)}

.hero-copy .diagnosis-elapsed{display:inline-flex;align-items:center;gap:12px;margin-top:28px;padding:10px 18px;border:1px solid rgba(21,102,105,.28);border-radius:999px;background:rgba(255,255,255,.58);color:#285858;backdrop-filter:blur(8px);font:400 13px/1.5 var(--sans)}
.elapsed-label{letter-spacing:.06em}.elapsed-duration{display:inline-flex;align-items:baseline;gap:3px}.elapsed-duration strong{font:500 23px/1.2 var(--serif);margin-left:3px}.elapsed-since{border-left:1px solid rgba(21,102,105,.22);padding-left:12px;font-size:10px;letter-spacing:.08em;opacity:.75}
@media(max-width:540px){.hero-copy .diagnosis-elapsed{padding:9px 14px;gap:9px;font-size:12px}.elapsed-duration strong{font-size:21px}.elapsed-since{padding-left:9px}}

.cats li:last-child{position:relative;min-height:100px}
.rabbit-note{position:absolute;right:0;width:220px;margin:0;text-align:left;font:400 12px/1.8 var(--sans)}
.rabbit-note span{display:block;margin-top:6px}
@media(max-width:900px){.cats li:last-child{flex-wrap:wrap}.rabbit-note{position:static;flex-basis:100%;max-width:320px;text-align:center;margin:8px auto 0}}

.cats li:last-child{display:grid;grid-template-columns:100px minmax(180px,240px) minmax(0,420px);gap:24px;justify-content:center;align-items:center}
.rabbit-note{position:static;width:auto;max-width:none;margin:0;display:flex;align-items:center;gap:16px;padding:16px;background:rgba(255,255,255,.48);border:1px solid rgba(21,102,105,.15);border-radius:16px;text-align:left;font:400 12px/1.8 var(--sans)}
.rabbit-note>img{width:112px;height:112px;flex-shrink:0;object-fit:cover;object-position:center;border-radius:12px}
.rabbit-note h4{margin:0 0 8px;font:500 17px/1.5 var(--serif)}
.rabbit-note p{margin:0;font-size:12px}.rabbit-note span{display:block;margin-top:8px;font-size:12px;line-height:1.8}
@media(max-width:900px){.cats li:last-child{grid-template-columns:100px minmax(0,240px)}.rabbit-note{grid-column:1/-1;margin:8px 0 0;max-width:420px;text-align:left}}
@media(max-width:540px){.cats li:last-child{gap:16px}.rabbit-note{padding:14px;gap:12px}.rabbit-note>img{width:90px;height:110px}.rabbit-note h4{font-size:16px}}

.profile-details .profile-previous-address{font-size:.85em;margin-top:4px}

.cats{min-height:auto}.cats ul{margin-bottom:0}.album-section{background:#fff;color:var(--teal);min-height:auto;padding-block:64px 80px}.album-section>h2{max-width:1100px;margin:0 auto 48px}.album-section .albums{max-width:1100px;gap:48px 64px}.album-section .albums p{padding:24px 0;border-top:1px solid #d6e2e1}

.footer-signature{width:110px;height:auto;max-height:80px;object-fit:contain;margin:40px auto 0}

.album-section .albums{grid-template-columns:1fr}
.travel-album h3{margin:0 0 24px;font:500 26px/1.5 var(--serif)}
.trip-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 40px;margin:0;padding:0;list-style:none}
.trip-list li{display:flex;align-items:baseline;gap:24px;padding:16px 0;border-bottom:1px solid #d6e2e1;font-size:16px;line-height:1.6}
.trip-list time{min-width:72px;font-size:14px;color:#527b7b;font-variant-numeric:tabular-nums}.trip-list span{font-weight:500}
@media(max-width:600px){.trip-list{grid-template-columns:1fr}.trip-list li{gap:20px}}

.trip-list li{gap:16px}.trip-transport{display:inline-flex;align-self:center;flex-shrink:0;width:28px;height:28px;align-items:center;justify-content:center;background:#edf5f3;border-radius:50%}.trip-transport svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}@media(max-width:600px){.trip-list li{gap:12px}}

.trip-cancelled time,.trip-cancelled>span:last-child{text-decoration:line-through;text-decoration-thickness:1px;text-decoration-color:currentColor}.trip-cancelled{opacity:.65}

.album-section>h2{margin-bottom:24px}.travel-introduction{max-width:1100px;margin:0 auto 48px}.travel-introduction p{max-width:800px;margin:0 0 16px;font-size:16px;line-height:1.95}.travel-introduction p:last-child{margin-bottom:0}

.album-section>h2{margin-bottom:12px}.travel-subtitle{max-width:1100px;margin:0 auto 28px;font:500 clamp(20px,2.2vw,26px)/1.6 var(--serif)}

.travel-map-wrap{max-width:1100px;margin:0 auto 48px;border:1px solid #d6e2e1;border-radius:18px;overflow:hidden;background:#f6f9f7}.travel-map-heading{padding:20px 24px;display:flex;align-items:baseline;justify-content:space-between;gap:16px}.travel-map-heading h3{margin:0;font:500 24px/1.5 var(--serif)}.travel-map-heading p{margin:0;font-size:13px}#travel-map{height:580px;background:#e6eef1;z-index:0}.travel-pin span{display:block;width:18px;height:18px;margin:2px;background:#156669;border:3px solid white;border-radius:50%;box-shadow:0 2px 7px #28585866}.trip-popup strong{color:#156669;font-size:16px}.trip-popup p{margin:8px 0!important;font-size:13px;line-height:1.7}.trip-popup span{font-size:12px;color:#527b7b}.leaflet-container{font-family:var(--sans)}@media(max-width:600px){#travel-map{height:480px}.travel-map-heading{display:block}.travel-map-heading p{margin-top:6px}}

.travel-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:40px;align-items:start;max-width:1100px;margin:0 auto 48px}
.travel-overview .travel-introduction{margin:0;max-width:none}.travel-overview .travel-map-wrap{width:100%;margin:0;min-width:0}.travel-overview .travel-map-heading{display:block;padding:16px 20px}.travel-overview .travel-map-heading p{margin-top:6px}.travel-overview #travel-map{height:440px}
@media(max-width:760px){.travel-overview{grid-template-columns:1fr;gap:28px}.travel-overview #travel-map{height:440px}}

.statement::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,40,44,.67),rgba(8,40,44,.3))}
.statement-copy{padding-bottom:6rem;width:min(44rem,76vw)}
.statement-purpose{margin-top:2.5rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,.35)}
.statement-purpose p{font:400 16px/2 var(--sans);margin:0 0 1.4rem;white-space:normal;letter-spacing:.025em}
.statement-purpose p:last-child{margin-top:0;margin-bottom:0}
.statement-wish{opacity:.9}
@media(max-width:760px){.statement-copy{width:100%;padding:4rem 1.5rem}.statement-purpose p{font-size:15px;line-height:1.95}.statement::after{background:rgba(8,40,44,.58)}}
