/* Product pages only; shared homepage and privacy styles are unchanged. */
.products-page{margin:0;min-height:100svh;display:flex;flex-direction:column;background:#f8f6f1;color:#111;font-family:"Hiragino Sans","Yu Gothic",Meiryo,sans-serif;line-height:1.7}
.products-page a,.products-page summary{outline-offset:5px}
.products-page .home-header{margin:0 auto;flex-shrink:0;z-index:5}
.products-page .home-nav a[aria-current="page"]{text-decoration:underline;text-decoration-color:#a57832;text-underline-offset:10px}
.products-page .home-footer{margin-top:auto;flex-shrink:0;background:rgba(255,255,255,.94)}
.products-overview{background:#f8f6f1 url("assets/home-background.webp") center/cover no-repeat}
.overview-main{width:min(100% - 8.2vw,1780px);margin:0 auto;flex:1;display:flex;flex-direction:column;padding-bottom:12px}
.overview-intro{flex-shrink:0;min-height:clamp(132px,18.5vh,204px);display:grid;grid-template-columns:1.06fr 1.22fr .56fr;gap:clamp(20px,2vw,38px);align-items:end;padding:8px 0 12px}
.products-eyebrow{display:flex;align-items:center;gap:16px;margin:0 0 12px;font-family:Arial,sans-serif;font-size:clamp(.7rem,.86vw,.95rem);letter-spacing:.22em;line-height:1.5}
.products-eyebrow::after{content:"";height:1px;width:85px;flex:none;background:#b18748}
.products-page h1{margin:0;font-size:clamp(2.3rem,3.35vw,4.15rem);line-height:1.28;font-weight:800;letter-spacing:-.045em}
.overview-title h1{white-space:nowrap}
.overview-description{border-left:1px solid #bd9451;padding-left:clamp(18px,1.7vw,30px);margin-bottom:6px}
.overview-description>p:first-child{margin:0 0 9px;font-size:clamp(.9rem,1.04vw,1.12rem);line-height:1.7}
.products-motto{margin:0;font-family:Arial,sans-serif;font-size:clamp(.62rem,.73vw,.83rem);font-weight:600;letter-spacing:.23em;line-height:1.5}
.products-decoration{position:relative;align-self:center;margin:15px 0 0 22px;text-align:center;color:#a87b34;font-family:"Segoe Script","Brush Script MT",cursive;font-size:clamp(1.15rem,1.85vw,2.1rem);font-style:italic;line-height:1.25;transform:rotate(-8deg);opacity:.8}
.products-decoration>span{padding-left:25px}
.products-decoration::before{content:"";position:absolute;width:30px;height:1px;background:#a87b34;left:-28px;top:50%;transform:rotate(8deg)}
.overview-grid{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,2.4vw,46px);margin-top:50px;align-items:stretch}
.service-column{min-width:0;position:relative;display:flex;flex-direction:column;scroll-margin-top:20px}
.service-column+.service-column::before{content:"";position:absolute;left:calc(clamp(24px,2.4vw,46px)/-2);top:0;bottom:0;width:1px;background:rgba(125,132,139,.32)}
.service-photo{position:relative;flex-shrink:0;height:clamp(180px,19vh,220px);overflow:hidden;border-radius:3px 3px 0 0}
.service-photo img{display:block;width:100%;height:100%;object-fit:cover}
.photo-software img{object-position:50% 44%}
.photo-improvement img{object-position:50% 18%}
.photo-printing img{object-position:50% 45%}
.service-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 58%,rgba(255,255,255,.94))}
.service-content{position:relative;flex:1;display:flex;flex-direction:column;padding:24px clamp(24px,2.2vw,42px) 24px;background:linear-gradient(rgba(255,255,255,.9),rgba(255,255,255,.7))}
.service-icon{flex:none;width:clamp(38px,5.4vh,58px);height:clamp(38px,5.4vh,58px);margin:-20px 0 8px;fill:none;stroke:currentColor;stroke-width:5;stroke-linejoin:round;stroke-linecap:round}
.service-blue .service-icon{color:#3087c9}
.service-charcoal .service-icon{color:#333;fill:#333;stroke-width:0}
.service-charcoal .service-icon circle{fill:#fff}
.service-gold .service-icon{color:#ac7e3d;stroke-width:4}
.products-page .service-content h2{margin:0 0 8px;font-size:clamp(1.35rem,1.8vw,2rem);font-weight:800;letter-spacing:0;line-height:1.35}
.service-summary{margin:0;font-size:clamp(1rem,1.04vw,1.08rem);line-height:1.7;min-height:3.1em}
.service-divider{position:relative;height:1px;flex:none;margin:24px 0;background:#d2d5d8}
.service-divider::before{content:"";position:absolute;left:0;top:0;width:48px;height:1px;background:#b08747}
.service-body{margin:0 0 24px;color:#4e5055;font-size:clamp(.96rem,1vw,1.06rem);line-height:1.65}
.service-more{display:flex;align-items:center;gap:24px;margin-top:auto;align-self:flex-start;min-height:36px;color:#a2732d;font-size:clamp(.875rem,1vw,1.08rem);font-weight:700}
.service-more>span{display:grid;place-items:center;flex:none;width:35px;height:35px;border-radius:50%;background:linear-gradient(120deg,#ba8b41,#d6b071);color:#fff;font-size:1.6rem;font-weight:400;line-height:1}
.service-more:hover{text-decoration:underline;text-underline-offset:4px}
.service-detail-main{width:min(1100px,calc(100% - 80px));margin:0 auto;padding:36px 0 60px;flex:1}
.detail-back{display:inline-block;margin-bottom:32px;color:#8d672e;font-size:.9rem}
.detail-heading{display:flex;align-items:center;gap:28px}
.detail-heading .service-icon{margin:0;width:65px;height:65px}
.detail-heading .products-eyebrow{font-size:.75rem}
.detail-intro{margin:26px 0 34px;color:#4e5055;font-size:1.05rem}
.detail-category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.category-item{padding:28px;border:1px solid #e5dbc9;border-radius:5px;background:rgba(255,255,255,.88)}
.products-page .category-item h2{margin:0 0 12px;font-size:1.35rem;line-height:1.5;letter-spacing:0}
.category-item p{margin:0;color:#555;overflow-wrap:anywhere}
.detail-contact{margin-top:32px;max-width:100%;text-align:center}
@media(max-width:1150px){.overview-main{width:calc(100% - 56px)}.overview-intro{grid-template-columns:1.05fr 1.2fr}.products-decoration{display:none}.products-eyebrow::after{width:60px}.service-content{padding-left:20px;padding-right:20px}}
@media(max-width:900px){
  .products-overview{background-attachment:fixed}
  .overview-main{padding-bottom:34px}
  .overview-intro{grid-template-columns:1fr;gap:24px;padding:28px 0 14px}
  .overview-title h1{font-size:clamp(2.4rem,6vw,3.8rem)}
  .overview-description{max-width:650px}
  .overview-grid{grid-template-columns:1fr;gap:30px;max-width:640px;width:100%;margin:24px auto 0}
  .service-column+.service-column::before{display:none}
  .service-photo{height:200px}
  .service-content{padding:24px 28px 28px}
  .service-icon{width:52px;height:52px;margin-top:-18px}
  .products-page .service-content h2{font-size:1.65rem}
  .service-summary{font-size:1rem;min-height:0;margin-bottom:8px}
  .service-body{font-size:.96rem;margin-bottom:18px}
  .service-more{font-size:1rem}
  .service-divider{margin:12px 0}
}
@media(max-width:650px){
  .products-page .home-header{gap:8px}
  .overview-main{width:calc(100% - 40px)}
  .products-page h1,.overview-title h1{font-size:clamp(2rem,8.2vw,3rem)}
  .products-eyebrow{font-size:.7rem;letter-spacing:.16em;gap:12px}
  .products-eyebrow::after{width:42px}
  .overview-description>p:first-child{font-size:.9rem}
  .products-motto{font-size:.62rem;letter-spacing:.17em}
  .service-photo{height:160px}
  .service-content{padding:24px 20px 28px}
  .service-summary{font-size:.94rem}
  .service-body{font-size:.9rem}
  .service-detail-main{width:calc(100% - 40px);padding:24px 0 40px}
  .detail-heading{gap:18px}
  .detail-heading .service-icon{width:45px;height:45px}
  .detail-heading .products-eyebrow{font-size:.62rem}
  .detail-heading .products-eyebrow::after{display:none}
  .detail-category-grid{grid-template-columns:1fr;gap:16px}
  .category-item{padding:22px}
  .products-page .category-item h2{font-size:1.2rem}
}
@media(prefers-reduced-motion:reduce){.products-page *{scroll-behavior:auto!important;transition:none!important}}

@media(min-width:901px) and (min-height:850px){
  .overview-intro{min-height:clamp(190px,23vh,265px)}
  .service-photo{height:clamp(180px,22vh,245px)}
}

/* Readability refinement: allow natural page height at smaller desktop sizes. */
.service-heading{display:flex;align-items:center;gap:18px;margin-bottom:24px;min-height:52px}
.service-heading .service-icon{width:48px;height:48px;margin:0}
.products-page .service-heading h2{margin:0;font-size:clamp(1.5rem,1.8vw,2rem)}
.service-more{padding-top:8px}
.products-page .home-footer{min-height:84px;padding-top:20px;padding-bottom:20px;font-size:1rem;gap:24px}
.products-page .home-footer-links small{font-size:.875rem}
@media(max-width:900px){.overview-grid{margin-top:48px}.service-heading{margin-bottom:22px}.service-divider{margin:22px 0}.service-summary{font-size:1rem}.service-body{font-size:.96rem;margin-bottom:24px}.products-page .home-footer{font-size:.94rem}}
@media(max-width:650px){.service-photo{height:180px}.service-heading{gap:14px}.service-heading .service-icon{width:44px;height:44px}.products-page .service-heading h2{font-size:1.5rem}.products-page .home-footer-links{row-gap:16px}.products-page .home-footer-links small{font-size:.82rem}}
/* Supplied transparent logo: fit its visible bounds within the existing header box. */
.products-overview .home-brand{mix-blend-mode:normal}
.products-overview .home-brand-crop img{width:calc(var(--brand-size)*.96604);left:calc(var(--brand-size)*.01779);top:calc(var(--brand-size)*-.13233)}
/* Desktop overview fits the viewport; mobile keeps its natural vertical flow. */
@media(min-width:901px){
  .overview-intro{min-height:clamp(132px,18.5vh,204px)}
  .overview-grid{margin-top:32px}
  .service-photo{height:clamp(120px,17vh,184px)}
  .service-content{padding-top:16px;padding-bottom:16px}
  .service-heading{min-height:44px;margin-bottom:16px}
  .service-heading .service-icon{width:44px;height:44px}
  .service-divider{margin:16px 0}
  .service-body{margin-bottom:16px}
  .service-more{padding-top:0}
}
@media(min-width:901px) and (max-height:800px){
  .overview-intro{min-height:132px;padding-top:0;padding-bottom:8px}
  .overview-title h1{font-size:clamp(2.3rem,3vw,2.65rem)}
  .overview-grid{margin-top:24px}
  .service-photo{height:120px}
  .service-content{padding-top:12px;padding-bottom:12px}
  .service-heading{margin-bottom:12px}
  .service-divider{margin:12px 0}
  .service-body{margin-bottom:12px}
  .products-overview .home-footer{min-height:76px;padding-top:16px;padding-bottom:16px}
}
/* Final overview proportions, scoped to desktop product overview. */
@media(min-width:901px){
  .products-overview .home-header{min-height:72px}
  .products-overview .home-contact{min-height:46px}
  .overview-intro{min-height:clamp(132px,15vh,162px);padding:8px 0}
  .overview-grid{gap:24px;margin-top:24px}
  .service-column+.service-column::before{left:-12px}
  .service-photo{height:clamp(180px,20.4vh,220px)}
  .service-photo::after{display:none}
  .service-content{padding:18px clamp(20px,1.25vw,24px) 16px;background:rgba(255,255,255,.94);border-radius:0 0 3px 3px}
  .service-heading{gap:12px;margin-bottom:12px}
  .service-divider{margin:16px 0}
  .service-body{margin-bottom:18px}
  .products-overview .home-footer{min-height:60px;padding-top:12px;padding-bottom:12px;font-size:.94rem}
}
@media(min-width:901px) and (max-height:800px){
  .overview-intro{padding-top:0;padding-bottom:4px}
  .overview-grid{margin-top:20px}
  .service-content{padding-top:16px;padding-bottom:12px}
  .service-divider{margin:14px 0}
  .service-body{margin-bottom:16px}
}
@media(min-width:901px){
  .products-overview .home-brand-crop{--brand-size:clamp(230px,18vw,280px)}
  .overview-intro{padding-top:4px;padding-bottom:4px}
  .overview-title .products-eyebrow{margin-bottom:8px}
  .overview-title h1{line-height:1.15}
}
/* Keep each service column close to its content instead of stretching its CTA gap. */
@media(min-width:901px){
  .overview-main{justify-content:center}
  .overview-grid{flex:0}
  .service-body{margin-bottom:18px}
}
