/* Warm ivory, charcoal text and soft brown accents across every page. */
:root {
  --paper: #f4efe8;
  --ink: #302a25;
  --muted: #655d54;
  --line: #b8aa98;
  --olive: #865d40;
  --panel: #e6d9c8;
  --deep: #e8dfd2;
  --cream: #d8c5af;
}
body { background: var(--paper); color: var(--ink); }
::selection { background: #865d40; color: #f4efe8; }
.header { background: #f8f4ed; border-bottom-color: #ad9b84; }
.brand small { color: #5d554b; }
.nav small { color: #6a6157; }
.nav a:hover, .nav a[aria-current="page"] { color: #805539; }
.nav-contact { color: #805539; border-color: #9c7856; }
.hero { background: #f4efe8; }
.hero-description { color: #665d53; }
.hero-copy>.eyebrow, .hero-foot { color: #655d54; }
.hero-image { box-shadow: 0 18px 55px #44302024; }
.hero-image img { filter: brightness(.9) saturate(.96); }
.hero-image::after { content: ""; position: absolute; inset: 45% 0 0; z-index: -1; background: linear-gradient(transparent,#37271910); }
.text-link { color: #845d41; border-color: #665d53; }
.text-link:hover, .back-top:hover { color: #4f3727; }
.statement-strip { border-color: #ad9b84; }
.statement-strip p { color: #665d53; }
.statement-strip .star { color: #8b6646; }
.works { background: var(--deep); margin-top: 35px; }
.section-intro { color: #665d53; }
.gallery-bar { border-bottom: 1px solid #b8aa98; padding-bottom: 15px; }
.filters button { color: #665d53; padding: 10px 3px; }
.filters button.active { color: #805539; border-color: #865d40; }
.demo-note, .work-caption small, .work-no { color: #655d54; }
.work-caption b { color: #302a25; }
.photo-wrap { background: #d8cdbf; }
.photo-wrap img { filter: saturate(.96) contrast(1.03); }
.photo-open { background: #ead9c5; color: #40352c; }
.about { background: #e7dcd0; border-top: 1px solid #ad9b84; border-bottom: 1px solid #ad9b84; }
.about-label.profile-card { background: #faf7f0; border-color: #ad9b84; box-shadow: 12px 12px 0 #6a503015; }
.profile-name, .profile-facts strong { color: #302a25; }
.profile-location, .profile-name>span, .profile-facts p { color: #665d53; }
.profile-promise>p { color: #79573f; }
.profile-promise>span, .about-copy p { color: #665d53; }
.about-tags>span { border-color: #ad9b84; background: #ded0be; color: #514336; }
.services { background: #f4efe8; }
.services .section-intro { color: #665d53; }
.pricing-notice { color: #665d53; }
.travel-banner { background: #dacebb; border-color: #ad9b84; border-left: 4px solid #9c7856; }
.travel-banner strong { color: #40362c; }
.travel-banner p { color: #665d53; }
.pricing-grid { border-color: #ad9b84; box-shadow: 0 18px 40px #40302012; }
.price-card { background: #faf7f1; }
.price-card+article { border-color: #ad9b84; }
.price-card>p { color: #665d53; }
.price-card li { color: #665d53; }
.price-card li>b { color: #302a25; }
.price-card .price { color: #332a22; }
.price-card .price small, .price-card .plan-top { color: #665d53; }
.plan-button { padding: 15px 17px; background: #40352c; border: 1px solid #40352c; color: #fff7ed; }
.plan-button:hover { background: #5b493a; border-color: #5b493a; color: #fff7ed; }
.price-card:hover { background: #40352c; color: #f4efe8; }
.price-card:hover h3, .price-card:hover .price, .price-card:hover .price>span, .price-card:hover li>b { color: #f4efe8; }
.price-card:hover>p, .price-card:hover li, .price-card:hover .plan-top, .price-card:hover .price small { color: #e2d3c0; }
.price-card:hover ul { border-color: #ad9b84; }
.price-card:hover .plan-button { background: #e2d2be; color: #40352c; border-color: #e2d2be; }
.price-card:hover .plan-button:hover { background: #f5e9d9; color: #40352c; }
.service-footnote { color: #665d53; }
.service-footnote strong { color: #795437; }
.process { background: #e9dfd2; border-color: #ad9b84; }
.process-list p { color: #665d53; }
.process-list h3 { color: #302a25; }
.faq { background: #faf6f0; }
.faq-list summary { color: #302a25; }
.faq-list details { border-color: #ad9b84; }
.faq-list details p { color: #665d53; }
.contact { background: #e9ded0; color: #302a25; border-top: 1px solid #ad9b84; }
.contact-copy h2>span { color: #865d40; }
.contact-copy .eyebrow, .form-title>span { color: #665d53; }
.contact-copy>p:not(.eyebrow) { color: #665d53; }
.contact-placeholder small, .form-note { color: #665d53; }
.contact-placeholder b { color: #302a25; }
.contact-icon { color: #7f5a3e; border-color: #ad9b84; }
.inquiry label { color: #40372f; }
.inquiry label small { color: #73685b; }
.inquiry select, .inquiry input, .inquiry textarea { color: #302a25; background: #fcf8f1; border-color: #ad9b84; }
.inquiry select option { background: #fcf8f1; color: #302a25; }
.inquiry input::placeholder, .inquiry textarea::placeholder { color: #756b5e; }
.copy-button, .brief-dialog .copy-button { background: #40352c; color: #fff7ed; }
.copy-button:hover, .brief-dialog .copy-button:hover { background: #5b493a; }
.footer { background: #e2d7ca; border-top: 1px solid #ad9b84; }
.footer-brand { color: #65482f; }
.draft-note { color: #665d53; border-color: #b8aa98; }
.brief-dialog { background: #faf6ef; color: #302a25; }
.brief-dialog textarea { background: #eee4d7; color: #3d332a; border-color: #ad9b84; }
.brief-dialog>p:not(.eyebrow) { color: #665d53; }
.copy-status { color: #6d4b31!important; }
.breadcrumb { color: #665d53; }
.breadcrumb a:hover { color: #805434; }
.subpage-intro, .me-copy>p:not(.eyebrow) { color: #665d53; }
.gear-card { background: #f9f5ef; border-color: #ad9b84; box-shadow: 0 12px 28px #40302012; }
.gear-card:target { border-color: #926b43; box-shadow: 0 0 0 2px #926b4344; }
.gear-image, .fuji-image { background: #e6ddd0; }
.gear-image img { mix-blend-mode: multiply; }
.iphone-image { background: #161512; }
.iphone-image img { mix-blend-mode: normal; }
.gear-info h2 { color: #302a25; }
.gear-info>.eyebrow, .gear-model { color: #7e5d40; }
.gear-info>p:not(.eyebrow):not(.gear-model) { color: #665d53; }
.gear-tags span { background: #e6d8c6; border-color: #ad9b84; color: #514336; }
.source-link { color: #805333; border-color: #665d53; }
.source-link:hover { color: #503a2b; }
.gear-note { color: #665d53; }
.personal-photo-placeholder { background: #dacfbe; border: 1px solid #ad9b84; }
.placeholder-monogram { color: #8b7661; }
.portrait-placeholder-label>span, .portrait-placeholder-label>small { color: #63584d; }
.portrait-placeholder-label>p { color: #302a25; }
.portrait-corner { border-color: #665d53; }
.gear-page .subpage-heading { padding-bottom: 35px; }
.gear-page-intro .subpage-intro { padding-bottom: 17px; }
.equipment-fee-note { display: flex; gap: 20px; flex-wrap: wrap; font-size: 14px; line-height: 1.9; color: #584a3c; border-left: 3px solid #9c7856; padding-left: 15px; }
.equipment-fee-note strong { color: #805434; font-weight: 500; }
.gear-directory { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid #ad9b84; margin-bottom: 35px; background: #e6d9c8; }
.gear-directory a { min-width: 0; padding: 23px 20px; }
.gear-directory a+a { border-left: 1px solid #ad9b84; }
.gear-directory small { display: block; font-size: 11px; color: #665d53; margin-bottom: 13px; }
.gear-directory a>span { display: flex; justify-content: space-between; gap: 10px; font-size: 15px; line-height: 1.8; }
.gear-directory b { color: #805434; font-weight: 400; white-space: nowrap; }
.gear-directory a:hover { background: #dacebb; }
.gear-card { scroll-margin-top: 35px; }
.gear-surcharge { display: flex; gap: 10px 17px; align-items: baseline; flex-wrap: wrap; padding: 14px 17px; margin: 0 0 22px; background: #eee0ca; border: 1px solid #a68863; }
.gear-surcharge>span { font-size: 13px; color: #635447; }
.gear-surcharge strong { font: 30px/1.4 Georgia,serif; color: #805536; }
.gear-surcharge small { font-size: 12px; color: #665d53; }
.ricoh-book-link { display: flex; justify-content: space-between; align-items: center; gap: 16px; background: #40352c; color: #f4efe8; padding: 14px 17px; margin: 22px 0 20px; font-size: 14px; }
.ricoh-book-link:hover { background: #5b493a; }
.equipment-teaser { background: #e3d8c9; padding-top: 65px; padding-bottom: 68px; border-bottom: 1px solid #ad9b84; }
.equipment-teaser-heading { display: flex; justify-content: space-between; gap: 25px; align-items: end; margin-bottom: 30px; }
.equipment-teaser-heading .eyebrow { color: #865d40; margin-bottom: 15px; }
.equipment-teaser-heading h2 { font-size: 33px; }
.equipment-teaser-heading p:not(.eyebrow) { margin-top: 13px; font-size: 15px; line-height: 1.9; color: #665d53; }
.equipment-view-link { padding: 13px 0; border-bottom: 1px solid #665d53; font-size: 14px; white-space: nowrap; color: #805434; }
.equipment-view-link>span { margin-left: 22px; }
.equipment-lineup { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; }
.equipment-lineup>a { display: block; background: #f9f4ec; border: 1px solid #ad9b84; padding: 12px 12px 18px; min-width: 0; }
.equipment-lineup>a:hover { border-color: #906845; }
.lineup-photo { height: 145px; background: #e6ddd0; display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 15px; margin-bottom: 17px; }
.lineup-photo img { object-fit: contain; mix-blend-mode: multiply; }
.lineup-fuji img { transform: scale(1.45); }
.lineup-iphone { background: #161512; padding: 0; }
.lineup-iphone img { object-fit: cover; mix-blend-mode: normal; }
.equipment-lineup>a>span { display: flex; gap: 6px; justify-content: space-between; align-items: baseline; font-size: 16px; line-height: 1.8; color: #302a25; }
.equipment-lineup b { color: #805434; font-size: 13px; font-weight: 400; white-space: nowrap; }
.equipment-lineup>a>small { display: block; color: #665d53; font-size: 12px; line-height: 1.8; margin-top: 6px; }
.inquiry label.ricoh-option { display: flex; align-items: center; gap: 12px; padding: 15px 14px; background: #e7d6bf; border: 1px solid #a4825f; margin: 0 0 22px; cursor: pointer; }
.ricoh-option input { width: 18px; height: 18px; min-height: 18px; margin: 0; padding: 0; flex-shrink: 0; accent-color: #40352c; }
.ricoh-option>span { font-size: 13px; line-height: 1.7; }
.inquiry .ricoh-option small { display: block; font-size: 11px; color: #665d53; margin: 5px 0 0; }
.ricoh-option>b { margin-left: auto; color: #805434; font: 20px Georgia,serif; white-space: nowrap; }
@media(max-width:1050px) {
  .nav { background: #f9f4eb; border-color: #ad9b84; box-shadow: 0 16px 35px #33281e20; }
  .equipment-lineup { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
  .lineup-photo { height: 190px; }
  .gear-directory { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .gear-directory a:nth-child(3) { border-left: 0; }
  .gear-directory a:nth-child(n+3) { border-top: 1px solid #ad9b84; }
  .gear-directory a>span { font-size: 16px; }
}
@media(max-width:700px) {
  .works { margin-top: 25px; }
  .about-label.profile-card { box-shadow: 7px 7px 0 #6a503018; }
  .equipment-teaser { padding-top: 43px; padding-bottom: 43px; }
  .equipment-teaser-heading { display: block; }
  .equipment-teaser-heading h2 { font-size: 27px; }
  .equipment-teaser-heading p:not(.eyebrow) { font-size: 14px; }
  .equipment-view-link { display: inline-flex; margin-top: 18px; font-size: 14px; }
  .equipment-lineup { gap: 12px; }
  .equipment-lineup>a { padding: 8px 8px 14px; }
  .lineup-photo { height: 125px; padding: 10px; margin-bottom: 12px; }
  .lineup-iphone { padding: 0; }
  .equipment-lineup>a>span { display: block; font-size: 14px; }
  .equipment-lineup b { display: inline-block; margin-left: 4px; font-size: 12px; }
  .equipment-lineup>a>small { font-size: 11px; }
  .gear-page .subpage-heading { padding-bottom: 28px; }
  .gear-directory { margin-bottom: 26px; }
  .gear-directory a { padding: 17px 13px; }
  .gear-directory small { font-size: 10px; line-height: 1.8; margin-bottom: 9px; }
  .gear-directory a>span { display: block; font-size: 14px; }
  .gear-directory b { margin-left: 7px; font-size: 12px; }
  .equipment-fee-note { font-size: 13px; gap: 8px 15px; }
  .gear-surcharge { padding: 12px; }
  .inquiry label.ricoh-option { padding: 13px 10px; gap: 9px; }
  .ricoh-option>span { font-size: 12px; }
  .inquiry .ricoh-option small { font-size: 10px; }
  .ricoh-option>b { font-size: 18px; }
  .ricoh-option input { width: 18px; height: 18px; min-height: 18px; }
}
.skip-link{background:#865d40;color:#f4efe8}

.inquiry select,.inquiry input,.inquiry textarea,.brief-dialog textarea{color-scheme:light}.ricoh-option input{accent-color:#865d40}

/* Expanded equipment options and customer-provided devices. */
.gear-book-link{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#40352c;color:#f4efe8;padding:14px 17px;margin:22px 0 20px;font-size:14px;line-height:1.8}
.gear-book-link:hover{background:#5b493a}
.own-gear-visual{flex-direction:column;gap:14px;color:#806046;background:#e6daca}
.own-gear-visual svg{width:115px;height:85px;flex-shrink:0}
.own-gear-visual strong{font:28px/1.5 var(--serif);color:#40352c;font-weight:400}
.own-gear-visual>span{font-size:13px;color:#665d53}
.lineup-own svg{width:88px;height:66px;color:#806046}
.equipment-picker{margin:0 0 22px;padding:17px;background:#e7d6bf;border:1px solid #a4825f}
.inquiry .equipment-picker select{margin-bottom:0}
.equipment-fee-hint{font-size:12px;line-height:1.9;color:#665344;margin-top:11px}
.own-equipment-field{margin-top:17px}
.own-equipment-field[hidden]{display:none}
@media(min-width:1051px){.equipment-lineup,.gear-directory{grid-template-columns:repeat(3,minmax(0,1fr))}.gear-directory a:nth-child(3n+1){border-left:0}.gear-directory a:nth-child(n+4){border-top:1px solid #ad9b84}}
@media(max-width:1050px){.gear-directory a:nth-child(2n+1){border-left:0}}
@media(max-width:700px){.equipment-picker{padding:14px}.equipment-fee-hint{font-size:12px}.gear-book-link{font-size:13px}.lineup-own svg{width:75px;height:56px}}

/* Personal portraits beside the introduction. */
.hero-personal{align-self:center;padding:18px 0 10px 15px;min-width:0}
.personal-photo-collection{min-width:0;width:100%}
.personal-photo-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:14px;align-items:stretch}
.personal-photo-grid figure{position:relative;overflow:hidden;margin:0;background:#e2d5c5;border:1px solid #b8aa98;min-width:0;min-height:0;box-shadow:0 8px 22px #40302012}
.personal-photo-grid img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.personal-photo-grid .personal-portrait{grid-row:1 / span 2}
.personal-portrait img{object-position:50% 35%}
.personal-photo-grid .personal-scene{aspect-ratio:16/9}
.personal-photo-caption{display:flex;justify-content:space-between;gap:15px;font-size:10px;line-height:1.8;color:#665d53;margin-top:17px;letter-spacing:.6px}
.about-copy p{font-size:15px;line-height:2.1;max-width:500px}
.about-tags>span{font-size:12px}
.me-layout{align-items:center}
@media(min-width:701px) and (max-width:1050px){.hero-personal{padding-left:5px}.personal-photo-grid{gap:10px}.personal-photo-caption{font-size:9px;letter-spacing:0}}
@media(max-width:700px){.hero-personal{padding:0}.personal-photo-grid{grid-template-columns:1fr 1fr;gap:11px}.personal-photo-grid .personal-portrait{grid-column:1 / -1;grid-row:auto;aspect-ratio:4/5}.personal-photo-caption{font-size:10px;letter-spacing:0;margin-top:14px}.about-copy p{font-size:15px}.about-tags>span{font-size:11px}.me-copy h1{font-size:clamp(26px,8vw,32px)}}

/* Uploaded portfolio photos, shown in their original frame ratios. */
.gallery{display:block;column-count:3;column-gap:26px}
.gallery .work-card{display:block;width:100%;break-inside:avoid;page-break-inside:avoid;margin:0 0 30px}
.gallery .work-card[hidden]{display:none}
.gallery .photo-wrap{width:100%;height:auto;background:#e6ddd0}
.gallery .photo-wrap img{filter:none}
.gallery .work-card:hover img{filter:none}
.gallery .work-caption b{font-size:14px;line-height:1.8}
.gallery .work-caption small{font-size:10px;line-height:1.8;letter-spacing:1px}
.works .gallery-bar{align-items:flex-start;gap:18px;flex-wrap:wrap}
.works .filters{flex-wrap:wrap;column-gap:24px;row-gap:6px}
.works .filters button{font-size:14px;line-height:1.8}
.works .filters sup{font-size:10px}
.works .demo-note{font-size:12px;line-height:2;padding-top:10px}
@media(max-width:1050px){.gallery{column-count:2;column-gap:20px}}
@media(max-width:700px){.gallery{column-count:2;column-gap:13px}.gallery .work-card{margin-bottom:22px}.gallery .work-caption b{font-size:12px;line-height:1.7}.gallery .work-caption small{font-size:8px;letter-spacing:.3px}.works .filters{column-gap:18px;row-gap:8px}.works .filters button{font-size:13px}.works .demo-note{padding-top:0;font-size:11px}}

/* Highlight only the pricing card under the pointer. */
.price-card{transition:background-color .22s ease,color .22s ease}
.price-card :is(h3,p,li,b,.price,.plan-top,small,.plan-button){transition:color .22s ease,background-color .22s ease,border-color .22s ease}
.price-card:hover .minimum-booking{color:#e2d3c0}
.price-card:hover .included-travel>b{color:#f4efe8!important}
@media(prefers-reduced-motion:reduce){.price-card,.price-card *{transition:none}}

/* Readable shooting steps and direct WeChat contact. */
.process-list{gap:30px}
.process-list li{gap:24px}
.process-list li>span{font-size:18px;line-height:1.7;padding-top:0}
.process-list h3{font-size:20px;line-height:1.6;margin-bottom:8px}
.process-list p{font-size:16px;line-height:1.9}
.wechat-contact{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin-top:32px}
.wechat-label{font-size:12px;line-height:1.7;letter-spacing:1.2px;color:#665d53}
.wechat-details strong{display:block;font-family:var(--sans);font-size:26px;line-height:1.6;font-weight:500;letter-spacing:.8px;margin-top:5px;user-select:all}
#copy-wechat{display:flex;justify-content:space-between;gap:30px;background:#40352c;color:#fff7ed;border:1px solid #40352c;padding:12px 16px;margin-top:14px;font-size:14px;line-height:1.6}
#copy-wechat:hover{background:#5b493a}
.wechat-copy-status{min-height:24px;font-size:13px;line-height:1.8;color:#795437;margin-top:7px}
.wechat-help{font-size:14px;line-height:1.9;color:#665d53;margin-top:3px}
.wechat-qr{width:220px;max-width:100%;flex-shrink:0}
.wechat-qr a{display:block;background:white;border:1px solid #c6b6a3;padding:7px}
.wechat-qr img{height:auto;object-fit:contain;width:100%}
.wechat-qr figcaption{font-size:11px;line-height:1.8;color:#665d53;text-align:center;margin-top:8px}
@media(max-width:700px){.process-list{gap:27px}.process-list li{gap:18px}.process-list li>span{font-size:16px}.process-list h3{font-size:18px}.process-list p{font-size:15px}.wechat-contact{gap:22px;margin-top:27px}.wechat-details strong{font-size:25px}.wechat-qr{width:215px}.wechat-help{font-size:14px}}
