/* Shared reading scale for both generations of the GiftBuy.jp website. */
body{
  --reading-body:18px;
  --reading-ui:16px;
  --reading-small:14px;
  --reading-label:14px;
  font-size:var(--reading-body);
  line-height:1.85;
}

/* Titles keep the editorial hierarchy while ordinary copy becomes readable. */
h1{font-size:clamp(36px,3.8vw,52px);line-height:1.55}
h2,.editorial-copy h2,.packaging-copy h2,.closing h2{font-size:clamp(30px,3vw,40px);line-height:1.6}
h3,.category-body h3,.steps h3,.process-steps h3,.guide-grid h3{font-size:20px;line-height:1.6}
.hero h1{font-size:clamp(38px,3.8vw,52px);line-height:1.6}
.product-copy h1,.product-summary h1,.candidate-summary h1{font-size:clamp(32px,3.2vw,44px);line-height:1.55}
.page-intro h1,.candidate-intro h1,.general-contact h1,.inquiry-intro h1,.prose h1{font-size:clamp(34px,3.6vw,48px);line-height:1.6}
.gift-intro-layout .gift-intro-heading .catalog-promise{font-size:clamp(32px,3.05vw,44px);line-height:1.6}
.custom-section .section-heading h2,.candidate-custom-heading h2,.original-custom-heading h2{font-size:clamp(30px,3.1vw,42px);line-height:1.6}

/* Reading copy, service explanations, and the consultation flow. */
p,li,dd{line-height:1.85}
.hero-description,.section-heading>p,.product-lead,.product-description,
.page-intro>p:last-child,.candidate-lead,.candidate-disclosure,
.editorial-copy p:not(.eyebrow),.packaging-copy>p:not(.eyebrow),
.closing p:not(.eyebrow),.steps p,.process-steps p,.guide-grid p,
.sample-note p,.contact-section>div>p,.inquiry-intro>p:last-of-type,
.prose p,.candidate-detail-note,.candidate-home-link p,
.candidate-custom-heading>p:last-child,.original-custom-heading>p:last-child,
.customization-methods-intro>p:last-child,
.gift-intro .gift-intro-copy,.gift-intro-home .gift-intro-copy{
  font-size:var(--reading-body);line-height:1.9;letter-spacing:.015em;
}
.gift-intro .gift-intro-copy{color:#425148}
.gift-intro .gift-consultation,.catalog-intro .gift-intro .gift-consultation{font-size:var(--reading-ui);line-height:1.85;color:#5d675f}
.category-body p{font-size:var(--reading-ui);line-height:1.85}
.gift-price-context,.gift-price-closing{font-size:var(--reading-small)}
.gift-price-currency{font-size:20px}
.gift-price-amount,.gift-intro-home .gift-price-amount{font-size:52px}

/* Navigation, catalog filters, and actions. */
.topline{font-size:13px;line-height:1.7;padding-block:8px}
.wordmark{font-size:32px}
.wordmark span,.footer-top .wordmark span{font-size:12px;line-height:1.7}
.header nav,.header-inner nav{font-size:var(--reading-ui);gap:24px}
.menu-toggle,.js .menu-toggle{font-size:var(--reading-ui);min-height:44px}
.button,.hero-actions .button,.closing .button,.contact-form .button,
.inquiry-form-panel .button,.review-actions .button{font-size:var(--reading-ui);line-height:1.65;min-height:50px}
.text-link,.hero-actions .text-link,.section-heading .text-link,.editorial-copy .text-link{font-size:var(--reading-ui);line-height:1.8}
.filters button{font-size:var(--reading-ui);line-height:1.65;min-height:44px;padding:10px 16px}
.filters small,.filters button span{font-size:var(--reading-small)}
.search input,.search-label input{font-size:var(--reading-ui);min-height:48px}
.result-count,.results-header,.results-header>span{font-size:var(--reading-small)}
.candidate-jumps a{font-size:var(--reading-ui)}
.product-card h3,.candidate-card h3{font-size:20px;line-height:1.65}
.product-card p,.candidate-card-copy>p:not(.candidate-code){font-size:var(--reading-ui);line-height:1.8}
.card-meta,.card-number,.candidate-code,.candidate-price{font-size:var(--reading-small)}
.product-number,.gb-item-code,.photo-product-code{font-size:var(--reading-ui)}
.group-number,.variant-options .item-number{font-size:var(--reading-small)}

/* Product photographs and explanatory captions. */
.breadcrumb,.gallery-head,.gallery-footer p,.gallery-footer button,
.gallery-tabs button,.gallery-tabs button small,.gallery-status,
.gallery-thumbs span,.gallery-thumbs span:first-of-type,.gallery-thumbs span:last-child,
.view-number,.img01-gallery-note,.candidate-gallery-note,.candidate-photos figcaption,
.gallery-panel figcaption>p,.packaging figcaption,.original-custom-figure figcaption{
  font-size:var(--reading-small);line-height:1.8;
}
.candidate-custom-illustrations figcaption{font-size:var(--reading-small);line-height:1.8}
.gallery-head{flex-wrap:wrap;gap:8px}
.gallery-tab-label{padding:9px 7px}
.gallery-tabs button,.gallery-thumbs span:last-child{font-size:var(--reading-ui)}
.view-caption-heading h3{font-size:20px;line-height:1.6}
.gallery-footer button,.dialog-close{font-size:var(--reading-ui);min-height:44px}
#dialog-caption{font-size:var(--reading-small);line-height:1.8}

/* Customization choices and the selected-plan summary. */
.custom-controls legend,.variant-picker legend,.preview-tools label,
.choice-row label>span,.surface-option b,.design-option span,
.custom-controls legend small,.selection-list p,.plan-summary,
.candidate-custom-quick>span,.candidate-custom-quick p,.candidate-custom-quick a{
  font-size:var(--reading-ui);line-height:1.8;
}
.surface-option>span{padding:12px 10px}
.surface-option small,.selection-list button,.plan-summary dt,
.preview-label,.custom-preview figcaption,.variant-picker legend>span,
.variant-options b,.sample-note>span,.guide-grid span,.optional{
  font-size:var(--reading-small);line-height:1.8;
}
.preview-label{gap:12px;flex-wrap:wrap}
.custom-preview figcaption{color:#5d675f}
.selection-list button{font-size:var(--reading-ui);padding:6px 4px}
.candidate-custom-details dt,.candidate-custom-details dd,
.customization-method h4,.customization-method dt,.customization-method dd{
  font-size:var(--reading-ui);line-height:1.85;
}

/* Contact details must be easy to read and edit. */
.contact-form label,.form-grid>label,.contact-details summary,
.contact-rule,.inquiry-guidance,.inquiry-form-panel h2{font-size:var(--reading-ui);line-height:1.8}
.contact-form input:not([type=checkbox]),.contact-form textarea,
.form-grid input,.form-grid select,.form-grid textarea{
  font-size:var(--reading-body);line-height:1.65;min-height:54px;
}
.form-grid input::placeholder,.form-grid textarea::placeholder{font-size:var(--reading-ui)}
details,details summary{font-size:var(--reading-ui);line-height:1.85}
details p{font-size:var(--reading-body);line-height:1.85}
.contact-form label.consent{font-size:var(--reading-small)!important;line-height:1.85}
.form-help,.form-footnote,.submit-status,.preview-notice,.cta-hint,
.product-notice,.quick-specs>div,.spec-table>div,.detail-information>div>p:last-child{
  font-size:var(--reading-small);line-height:1.85;
}

/* Supporting information stays smaller than the copy, never miniature. */
.eyebrow,.hero-copy .eyebrow,.section-heading .eyebrow,.category-body .eyebrow,
.closing .eyebrow,.product-summary>.eyebrow,.page-intro>.eyebrow,
.inquiry-intro>.eyebrow,.detail-information>div>.eyebrow,.editorial-copy .eyebrow,
.packaging-copy .eyebrow{font-size:var(--reading-label);line-height:1.7}
.subtle,.catalog-note,.sample-note,.image-note,.process-note,
.plain-list li,.plain-list span,.candidate-reference,.candidate-process li,
.candidate-end p,.candidate-custom-status,.customization-confirmation{
  font-size:var(--reading-small);line-height:1.85;
}
.english-name,.mobile-product-cta>span,.candidate-section-head span,
.candidate-image-label,.customization-method-top,main small{font-size:var(--reading-small);line-height:1.8}
.candidate-illustration-note{font-size:var(--reading-small)!important;line-height:1.85}
.value-strip,.hero-foot,.hero-caption,.hero-caption>span,
.footer p,.footer-links,.footer small,.footer-bottom,.legacy-links{
  font-size:var(--reading-small);line-height:1.8;
}
.header-inner,.product-copy,.custom-controls,.custom-preview,.contact-form{min-width:0}

@media(max-width:1050px) and (min-width:761px){
  .header nav,.header-inner nav{gap:16px}
  .header-inner nav>.nav-cta{padding-inline:15px}
}
@media(max-width:760px){
  body{--reading-body:16px;--reading-label:13px}
  h1,.hero h1{font-size:34px;line-height:1.6}
  .hero h1{font-size:clamp(26px,8.2vw,34px);letter-spacing:.015em;line-height:1.65}
  .hero-copy{padding-left:20px;padding-right:20px}
  .hero-actions{width:100%;flex-direction:column;align-items:flex-start;gap:18px}
  .hero-actions .button{width:100%;justify-content:space-between}
  .hero-foot{flex-wrap:wrap;gap:8px 16px}
  h2,.editorial-copy h2,.packaging-copy h2,.closing h2{font-size:28px;line-height:1.6}
  .product-copy h1,.product-summary h1,.candidate-summary h1{font-size:30px;line-height:1.55}
  .page-intro h1,.candidate-intro h1,.general-contact h1,.inquiry-intro h1,.prose h1{font-size:32px;line-height:1.6}
  .custom-section .section-heading h2,.candidate-custom-heading h2,.original-custom-heading h2{font-size:28px;line-height:1.65}
  .gift-intro-layout .gift-intro-heading .catalog-promise{font-size:clamp(28px,7.6vw,34px);line-height:1.6}
  .gift-price-amount,.gift-intro-home .gift-price-amount{font-size:46px}
  .gift-price-currency{font-size:18px}
  .product-card h3,.candidate-card h3,.category-body h3{font-size:18px}
  .wordmark,.footer-top .wordmark{font-size:30px}
  .surface-option>span{padding:10px 7px}
  .value-strip{gap:12px;flex-wrap:wrap}
  .gallery-footer{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
  .gallery-footer button{justify-self:end}
  .gallery-tabs button{line-height:1.7}
}
