/* PEACH CONNECT / TOP v0.4.3 — photo-led challenges, aligned solutions, reasons */
.problems,.home-solutions,.home-reasons{isolation:isolate}
.problems .container,.home-solutions .container,.home-reasons .container{position:relative}
.problems .section-heading,.home-solutions .section-heading,.home-reasons .section-heading{position:relative;z-index:1}
.problems .section-heading h2,.home-solutions .section-heading h2,.home-reasons .section-heading h2{text-wrap:balance;max-width:980px;margin-inline:auto;overflow-wrap:normal;word-break:keep-all}
/* Human-scale photography replaces the icon-only challenge cards. */
.problems .problem-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:stretch}
.problems .problem-grid .problem-item{display:grid;grid-template-columns:minmax(136px,36%) minmax(0,1fr);align-items:stretch;gap:0;padding:0;min-height:248px;overflow:hidden;border:1px solid #e0ebec;border-radius:17px;background:#fff;box-shadow:0 9px 26px rgba(24,72,79,.063);transition:transform .34s cubic-bezier(.22,.76,.34,1),box-shadow .34s ease,border-color .34s ease}
.problems .problem-item .problem-photo{min-width:0;position:relative;overflow:hidden;isolation:isolate;background:#e5f1f0;align-self:stretch}
.problems .problem-item .problem-photo img{display:block;width:100%;height:100%;min-height:248px;object-fit:cover;object-position:center;transition:transform .8s cubic-bezier(.22,.77,.28,1),filter .55s ease}
.problems .problem-item--1 .problem-photo img{object-position:64% center}
.problems .problem-item--2 .problem-photo img{object-position:54% center}
.problems .problem-item--3 .problem-photo img{object-position:48% center}
.problems .problem-item--4 .problem-photo img{object-position:56% center}
.problems .problem-photo::after{content:"";position:absolute;inset:auto 0 0 0;height:40%;background:linear-gradient(0deg,rgba(13,60,69,.38),transparent);pointer-events:none}
.problems .problem-photo-index{position:absolute;left:13px;bottom:12px;z-index:2;padding:4px 10px;background:rgba(255,255,255,.88);backdrop-filter:blur(8px);border-radius:100px;color:#285a62;font-size:13px;font-weight:850;letter-spacing:.11em}
.problems .problem-item .problem-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;min-height:0;min-width:0;padding:22px 22px 20px;box-sizing:border-box}
.problems .problem-item .problem-copy h3{font-size:clamp(16px,1.33vw,19px);line-height:1.6;margin:0 0 8px;letter-spacing:-.023em;font-weight:850;word-break:keep-all;overflow-wrap:normal;text-wrap:pretty}
.problems .problem-item .problem-copy p{font-size:13.5px;line-height:1.82;margin:0 0 13px;color:#55747a;word-break:keep-all;overflow-wrap:normal;max-width:34ch}
.problems .problem-item .problem-copy .problem-action{display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;max-width:100%;min-height:42px;padding:9px 13px;margin-top:auto;gap:6px;white-space:normal;font-weight:750;font-size:12.5px;line-height:1.55;border-radius:100px;color:#1f5760;background:#eef8f8;border:1px solid #d1e4e5;transition:background .2s ease,transform .2s ease,box-shadow .2s ease}
.problems .problem-item--2 .problem-action--contact{color:#925233;background:#fff4eb;border-color:#f2d8c7}
.problems .problem-item .problem-action .cta-arrow{position:static;display:inline-flex!important;width:14px;height:14px;flex:0 0 14px;align-items:center;justify-content:center;background:none;color:inherit;border:0}
.problems .problem-callout{display:grid;grid-template-columns:116px minmax(0,1fr) auto;align-items:center;gap:21px;margin-top:22px;padding:14px 23px 14px 14px;border-radius:17px;background:#fff9f2;border:1px solid #efdac6;box-shadow:0 8px 24px rgba(139,91,40,.042)}
.problems .problem-callout-photo{width:116px;height:90px;overflow:hidden;border-radius:11px;position:relative}
.problems .problem-callout-photo img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.problems .problem-callout-copy{min-width:0;flex:1}
.problems .problem-callout h3{font-size:19px;line-height:1.5;margin-bottom:5px;word-break:keep-all}
.problems .problem-callout p{color:#6c777a;font-size:14px;line-height:1.7;margin:0}
.problems .problem-callout .button--line{background:#fff;color:#23616c;border-color:#d4e9e2;white-space:normal;min-height:46px;font-weight:800;font-size:13px;max-width:100%}
/* Transition from problems to a four-way, directly mapped solution section. */
.home-solutions{background:linear-gradient(180deg,#fff 0%,#fff 67%,#f9fcfc 100%);padding-block:clamp(80px,7.8vw,115px)}
.home-solutions .section-heading{margin-bottom:40px}
.home-solutions .section-heading>p{font-size:15px;max-width:680px;line-height:1.85}
.home-solutions .solutions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}
.home-solutions .solution-item{position:relative;isolation:isolate;display:grid;grid-template-columns:80px 1fr;gap:15px;min-height:205px;padding:27px 27px 24px 21px;border-radius:17px;border:1px solid #e3eced;background:#f8fcfc;overflow:hidden;transition:transform .32s cubic-bezier(.22,.8,.28,1),background .3s ease,box-shadow .3s ease}
.home-solutions .solution-item:nth-child(even){background:#fffaf5;border-color:#f1e6dc}
.home-solutions .solution-item::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#e8a06a,#76b3bc 75%,transparent);transform:scaleX(.14);transform-origin:0 50%;opacity:.55;transition:transform .65s cubic-bezier(.22,.8,.25,1),opacity .3s}
.home-solutions .solution-item.is-visible::before,.home-solutions .solution-item:hover::before{transform:scaleX(1);opacity:1}
.home-solutions .solution-number{min-width:0;display:flex;align-items:center;flex-direction:column;align-self:start;margin-top:0;color:#25636c}
.home-solutions .solution-number span{font-size:10px;letter-spacing:.16em;font-weight:750;color:#b37c59}
.home-solutions .solution-number strong{font-size:clamp(42px,4.8vw,66px);line-height:1.2;font-weight:700;letter-spacing:-.08em;font-variant-numeric:tabular-nums}
.home-solutions .solution-to{font-size:12px;display:block;color:#b27955;font-weight:800;letter-spacing:.035em;margin-bottom:8px}
.home-solutions .solution-copy h3{font-size:clamp(18px,1.4vw,21px);line-height:1.6;margin:0 0 10px;font-weight:850;color:#174e57;word-break:keep-all;overflow-wrap:normal}
.home-solutions .solution-copy p{font-size:14px;color:#56747a;line-height:1.95;margin:0;word-break:keep-all;overflow-wrap:normal}
.home-solutions .solution-note{display:flex;align-items:center;gap:17px;padding:20px 26px;margin-top:26px;border-radius:15px;background:#eaf5f6;border:1px solid #d2e6e8;position:relative;overflow:hidden}
.home-solutions .solution-note::after{content:"";position:absolute;width:135px;height:135px;border-radius:50%;border:1px solid #c5e5e7;right:-50px;top:-79px;pointer-events:none}
.home-solutions .solution-note-mark{font-size:30px;color:#d88a58;line-height:1;display:block;flex:0 0 auto}
.home-solutions .solution-note h3{font-size:18px;margin:0 0 4px;color:#285a63}
.home-solutions .solution-note p{font-size:14px;margin:0;color:#53747c;line-height:1.8}
/* Every reason now has a meaningful photo and a readable summary. */
.home-reasons .reasons-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-top:38px}
.home-reasons .reasons-grid .reason-card{border:1px solid #e1ebec;border-radius:15px;overflow:hidden;padding:0;display:flex;flex-direction:column;min-width:0;background:#fff;box-shadow:0 8px 27px rgba(19,67,77,.063);transition:transform .35s cubic-bezier(.2,.78,.32,1),box-shadow .35s ease}
.home-reasons .reason-visual{position:relative;overflow:hidden;aspect-ratio:1.38;isolation:isolate;min-width:0;background:#e6f1f1}
.home-reasons .reason-visual img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .85s cubic-bezier(.22,.77,.28,1)}
.home-reasons .reason-card:nth-child(1) .reason-visual img{object-position:50% center}
.home-reasons .reason-card:nth-child(2) .reason-visual img{object-position:42% center}
.home-reasons .reason-card:nth-child(3) .reason-visual img{object-position:52% center}
.home-reasons .reason-card:nth-child(4) .reason-visual img{object-position:48% center}
.home-reasons .reason-no{position:absolute;left:13px;bottom:12px;z-index:2;display:inline-flex;align-items:center;margin:0;padding:5px 11px;border-radius:100px;background:rgba(255,255,255,.91);backdrop-filter:blur(8px);font-size:11px!important;font-weight:850;color:#245a62;letter-spacing:.06em}
.home-reasons .reason-copy{padding:18px 18px 22px;flex:1;display:flex;flex-direction:column;align-items:flex-start}
.home-reasons .reason-card h3{font-size:clamp(17px,1.38vw,20px);line-height:1.65;margin:0 0 9px;font-weight:850;color:#224e57;word-break:keep-all;overflow-wrap:normal}
.home-reasons .reason-card p{font-size:14px;line-height:1.9;margin:0;color:#57747a;word-break:keep-all;overflow-wrap:normal}
.home-reasons .center-action{margin-top:35px}
/* Playful but understated motion — real imagery remains the focus. */
@media (hover:hover) and (prefers-reduced-motion:no-preference){
 .problems .problem-grid .problem-item:hover{transform:translateY(-6px) rotate(-.15deg);border-color:#bedade;box-shadow:0 23px 42px rgba(23,79,87,.15)}
 .problems .problem-grid .problem-item:nth-child(even):hover{transform:translateY(-6px) rotate(.15deg)}
 .problems .problem-item:hover .problem-photo img{transform:scale(1.075);filter:saturate(1.05)}
 .problems .problem-item:hover .problem-photo-index{transform:translateY(-4px)}
 .problems .problem-photo-index{transition:transform .36s cubic-bezier(.21,.85,.3,1)}
 .home-solutions .solution-item:hover{transform:translateY(-4px);box-shadow:0 15px 30px rgba(29,76,84,.10)}
 .home-reasons .reason-card:hover{transform:translateY(-7px);box-shadow:0 23px 40px rgba(24,73,78,.135)}
 .home-reasons .reason-card:hover img{transform:scale(1.06)}
 .home-solutions .solution-note:hover .solution-note-mark{transform:rotate(14deg) scale(1.1)}
 .home-solutions .solution-note-mark{transition:transform .4s cubic-bezier(.23,.8,.28,1)}
}
@media (prefers-reduced-motion:no-preference){
 @keyframes peach-home-in{from{opacity:.62;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
 .home-solutions .solution-item.is-visible,.home-solutions .solution-note.is-visible{animation:peach-home-in .65s cubic-bezier(.18,.8,.27,1) both}
 .home-solutions .solution-item:nth-child(2).is-visible{animation-delay:60ms}
 .home-solutions .solution-item:nth-child(3).is-visible{animation-delay:90ms}
 .home-solutions .solution-item:nth-child(4).is-visible{animation-delay:140ms}
 .home-solutions .solution-note.is-visible{animation-delay:70ms}
}
@media(max-width:1120px){
 .home-reasons .reasons-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
 .home-reasons .reason-visual{aspect-ratio:1.85}
 .problems .problem-grid .problem-item{grid-template-columns:minmax(115px,31%) minmax(0,1fr)}
 .problems .problem-item .problem-copy{padding:17px}
 .problems .problem-item .problem-copy .problem-action{font-size:12px}
}
@media(max-width:850px){
 .problems .problem-grid{grid-template-columns:1fr}
 .problems .problem-grid .problem-item{grid-template-columns:minmax(170px,34%) minmax(0,1fr);min-height:205px}
 .problems .problem-item .problem-photo img{min-height:205px}
 .problems .problem-callout{grid-template-columns:92px minmax(0,1fr);gap:16px;padding:15px}
 .problems .problem-callout-photo{width:92px;height:85px}
 .problems .problem-callout .button--line{grid-column:1/-1;justify-self:center;width:min(100%,380px)}
 .home-solutions .solution-item{grid-template-columns:61px 1fr;padding:22px 18px}
}
@media(max-width:640px){
 .problems .problem-grid{gap:14px}
 .problems .problem-grid .problem-item{grid-template-columns:1fr;min-height:0;border-radius:16px}
 .problems .problem-item .problem-photo{height:auto;aspect-ratio:2.25;overflow:hidden}
 .problems .problem-item .problem-photo img{min-height:0;height:100%;aspect-ratio:2.25;object-fit:cover}
 .problems .problem-item .problem-copy{padding:18px 19px 20px}
 .problems .problem-item .problem-copy h3{font-size:17px;line-height:1.56;margin-bottom:5px}
 .problems .problem-item .problem-copy p{font-size:14px;margin:0 0 13px}
 .problems .problem-item .problem-copy .problem-action{font-size:13px;min-height:41px;margin:0}
 .problems .problem-callout{grid-template-columns:70px minmax(0,1fr);gap:13px;padding:13px}
 .problems .problem-callout-photo{width:70px;height:78px}
 .problems .problem-callout h3{font-size:16px}
 .problems .problem-callout p{font-size:13px}
 .problems .problem-callout .button--line{font-size:13px}
 .home-solutions{padding-block:66px 74px}
 .home-solutions .solutions-grid{grid-template-columns:1fr;gap:13px}
 .home-solutions .solution-item{grid-template-columns:62px 1fr;min-height:0;padding:21px 17px;gap:12px}
 .home-solutions .solution-number strong{font-size:49px}
 .home-solutions .solution-copy h3{font-size:18px;margin-bottom:7px}
 .home-solutions .solution-copy p{font-size:14px}
 .home-solutions .solution-to{font-size:11px}
 .home-solutions .solution-note{padding:18px 17px;gap:12px;align-items:flex-start}
 .home-solutions .solution-note h3{font-size:16px}
 .home-solutions .solution-note p{font-size:13px}
 .home-solutions .solution-note-mark{font-size:22px;margin-top:4px}
 .home-reasons .reasons-grid{grid-template-columns:1fr;gap:15px;margin-top:30px}
 .home-reasons .reason-visual{aspect-ratio:2.15}
 .home-reasons .reason-copy{padding:18px 18px 21px}
 .home-reasons .reason-card h3{font-size:18px}
 .home-reasons .reason-card p{font-size:14px}
}
@media(max-width:360px){
 .problems .problem-item .problem-copy h3{font-size:16px}
 .problems .problem-item .problem-copy .problem-action{font-size:12px}
 .home-solutions .solution-item{grid-template-columns:51px 1fr;gap:10px;padding:17px 13px}
 .home-solutions .solution-number strong{font-size:41px}
 .home-solutions .solution-number span{font-size:9px}
 .home-solutions .solution-copy h3{font-size:16px}
 .home-solutions .solution-copy p{font-size:13px}
}
@media(prefers-reduced-motion:reduce){
 .problems .problem-photo img,.problems .problem-photo-index,.home-solutions .solution-item,.home-solutions .solution-item::before,.home-solutions .solution-note-mark,.home-reasons .reason-card,.home-reasons .reason-visual img{animation:none!important;transition:none!important;transform:none!important}
}

/* Author-defined phrase boundaries for respectful Japanese line breaking. */
.problems .home-phrase,.home-solutions .home-phrase,.home-reasons .home-phrase{display:inline-block;white-space:nowrap;vertical-align:baseline;max-width:100%}
.problems .home-phrase + wbr,.home-solutions .home-phrase + wbr,.home-reasons .home-phrase + wbr{display:inline}
/* If an editor enters an unusually long unsegmented word, keep the page inside the viewport. */
.problems h3,.problems p,.home-solutions h2,.home-solutions h3,.home-solutions p,.home-reasons h2,.home-reasons h3,.home-reasons p{overflow-wrap:anywhere!important}
.home-solutions .solution-copy{min-width:0}
@media(max-width:360px){.home-solutions .solution-copy p{font-size:12.5px;line-height:1.85}.home-solutions .solution-copy h3{font-size:15.5px}}

/* v0.4.4 — top page request adjustments */
.problems .problem-photo-index{font-size:11px;padding:3px 9px;letter-spacing:.13em}
.problems .problem-callout{grid-template-columns:136px minmax(0,1fr) auto;gap:24px;padding:18px 24px 18px 18px;align-items:center;min-height:128px;position:relative;overflow:hidden}
.problems .problem-callout::after{content:"";position:absolute;right:-34px;bottom:-38px;width:148px;height:148px;border-radius:50%;background:radial-gradient(circle,rgba(240,185,140,.18) 0%,rgba(240,185,140,0) 68%);pointer-events:none}
.problems .problem-callout-photo{width:136px;height:102px;border-radius:13px;box-shadow:0 10px 24px rgba(95,69,42,.10)}
.problems .problem-callout h3{font-size:20px;line-height:1.45;margin-bottom:6px}
.problems .problem-callout p{font-size:14px;line-height:1.8}
.problems .problem-callout .button--line{min-height:50px;padding-inline:18px}
.home-solutions .solution-item{grid-template-columns:66px 1fr;gap:16px;padding:25px 24px 23px 19px;min-height:196px}
.home-solutions .solution-number span{font-size:9px;letter-spacing:.18em}
.home-solutions .solution-number strong{font-size:clamp(34px,3.6vw,48px);line-height:1.08;font-weight:760}
.home-solutions .solution-copy h3{font-size:clamp(17px,1.34vw,20px);margin-bottom:9px}
.home-solutions .solution-copy p{font-size:13.5px;line-height:1.88}
.home-solutions .solution-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:24px}
.home-solutions .solution-cta .button{min-width:min(100%,220px)}
.home-solutions .solution-note{margin-top:24px}
.process .steps-grid li{transition:transform .45s cubic-bezier(.2,.78,.3,1),box-shadow .45s ease,opacity .45s ease}
.process .steps-grid li b{transition:transform .45s cubic-bezier(.2,.78,.3,1),box-shadow .45s ease,background .3s ease,border-color .3s ease}
.process .steps-grid li strong{transition:color .3s ease}
.process .steps-grid li.peach-inview{animation:peach-step-in .66s cubic-bezier(.18,.8,.27,1) both}
.process .steps-grid li:nth-child(2).peach-inview{animation-delay:60ms}
.process .steps-grid li:nth-child(3).peach-inview{animation-delay:110ms}
.process .steps-grid li:nth-child(4).peach-inview{animation-delay:160ms}
.process .steps-grid li:nth-child(5).peach-inview{animation-delay:210ms}
.process .steps-grid li:nth-child(6).peach-inview{animation-delay:260ms}
.process .steps-grid li.peach-inview b{box-shadow:0 0 0 7px #f4f9fa,0 10px 24px rgba(28,79,86,.10)}
.process .steps-grid li.peach-inview strong{color:#184c55}
@keyframes peach-step-in{from{opacity:.2;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@media (hover:hover) and (prefers-reduced-motion:no-preference){
 .process .steps-grid li:hover{transform:translateY(-5px)}
 .process .steps-grid li:hover b{transform:translateY(-2px) scale(1.04);border-color:#bcd8dc;box-shadow:0 0 0 7px #f4f9fa,0 12px 28px rgba(27,80,86,.13)}
}
@media(max-width:850px){
 .problems .problem-callout{grid-template-columns:108px minmax(0,1fr);gap:16px;padding:16px}
 .problems .problem-callout-photo{width:108px;height:92px}
 .problems .problem-callout .button--line{grid-column:1/-1;justify-self:center;width:min(100%,400px)}
 .home-solutions .solution-cta{margin-top:20px}
}
@media(max-width:640px){
 .problems .problem-photo-index{font-size:10px;padding:3px 8px}
 .problems .problem-callout{grid-template-columns:88px minmax(0,1fr);gap:14px;padding:16px}
 .problems .problem-callout-photo{width:88px;height:84px}
 .problems .problem-callout h3{font-size:17px}
 .problems .problem-callout p{font-size:13px}
 .home-solutions .solution-item{grid-template-columns:56px 1fr;gap:11px;padding:20px 16px}
 .home-solutions .solution-number strong{font-size:39px}
 .home-solutions .solution-number span{font-size:8px}
 .home-solutions .solution-copy h3{font-size:17px}
 .home-solutions .solution-copy p{font-size:13px}
 .home-solutions .solution-cta{flex-direction:column;align-items:stretch}
 .home-solutions .solution-cta .button{width:100%}
}
@media(max-width:360px){
 .home-solutions .solution-item{grid-template-columns:49px 1fr;padding:18px 13px}
 .home-solutions .solution-number strong{font-size:34px}
 .home-solutions .solution-copy h3{font-size:15.5px}
 .home-solutions .solution-copy p{font-size:12.5px}
}
@media(prefers-reduced-motion:reduce){
 .process .steps-grid li,.process .steps-grid li b{animation:none!important;transition:none!important;transform:none!important}
}
