XML 100 R24.htm IDEA: XBRL DOCUMENT
v3.24.0.1

Accumulated Other Comprehensive Income (Loss) | 12 Months Ended
--- | ---
Dec. 31, 2023
Comprehensive Income (Loss), Net of Tax, Including Portion Attributable to Noncontrolling Interest [Abstract] |
Accumulated Other Comprehensive Income (Loss) | 16.ACCUMULATED OTHER COMPREHENSIVE INCOME (LOSS) The changes in each component of accumulated other comprehensive income (loss) for the years ended December 31, 2023, 2022 and 2021 were as follows (in thousands): ​
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
​ | Cash Flow Hedges |  | Foreign Currency Translation |  | Total
BALANCE — January 1, 2021 | $ | (6,940) | ​ | $ | 1,488 | ​ | $ | (5,452)
Other comprehensive loss |  | (119) | ​ | ​ | (7,704) | ​ | ​ | (7,823)
Income taxes |  | (1,489) | ​ | ​ | 689 | ​ | ​ | (800)
Reclassifications to: | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Revenue | ​ | 5,592 | ​ | ​ | ​ | ​ | ​ | 5,592
Cost of sales | ​ | (1,017) | ​ | ​ | ​ | ​ | ​ | (1,017)
Interest expense | ​ | 1,509 | ​ | ​ | ​ | ​ | ​ | 1,509
Net other comprehensive income (loss) | ​ | 4,476 | ​ | ​ | (7,015) | ​ | ​ | (2,539)
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
BALANCE — December 31, 2021 | ​ | (2,464) | ​ | ​ | (5,527) | ​ | ​ | (7,991)
Other comprehensive income (loss) |  | 11,142 | ​ | ​ | (10,491) | ​ | ​ | 651
Income taxes |  | (2,177) | ​ | ​ | 102 | ​ | ​ | (2,075)
Reclassifications to: | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Revenue | ​ | (3,583) | ​ | ​ | ​ | ​ | ​ | (3,583)
Cost of sales | ​ | 1,436 | ​ | ​ | ​ | ​ | ​ | 1,436
Interest expense | ​ | 12 | ​ | ​ | ​ | ​ | ​ | 12
Net other comprehensive income (loss) | ​ | 6,830 | ​ | ​ | (10,389) | ​ | ​ | (3,559)
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
BALANCE — December 31, 2022 | ​ | 4,366 | ​ | ​ | (15,916) | ​ | ​ | (11,550)
Other comprehensive income |  | 4,518 | ​ | ​ | 2,959 | ​ | ​ | 7,477
Income taxes |  | 866 | ​ | ​ | (39) | ​ | ​ | 827
Reclassifications to: | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
Revenue | ​ | (4,081) | ​ | ​ | ​ | ​ | ​ | (4,081)
Cost of sales | ​ | (1,457) | ​ | ​ | ​ | ​ | ​ | (1,457)
Interest expense | ​ | (2,550) | ​ | ​ | ​ | ​ | ​ | (2,550)
Net other comprehensive income (loss) | ​ | (2,704) | ​ | ​ | 2,920 | ​ | ​ | 216
​ | ​ | ​ | ​ | ​ | ​ | ​ | ​ | ​
BALANCE — December 31, 2023 | $ | 1,662 | ​ | $ | (12,996) | ​ | $ | (11,334)
​

X
- References No definition available. + Details
Name: | us-gaap_ComprehensiveIncomeNetOfTaxIncludingPortionAttributableToNoncontrollingInterestAbstract
Namespace Prefix: | us-gaap_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition The entire disclosure for comprehensive income, which includes, but is not limited to, 1) the amount of income tax expense or benefit allocated to each component of other comprehensive income, including reclassification adjustments, 2) the reclassification adjustments for each classification of other comprehensive income and 3) the ending accumulated balances for each component of comprehensive income. + References Reference 1: http://www.xbrl.org/2003/role/disclosureRef -Topic 944 -SubTopic 220 -Name Accounting Standards Codification -Section S99 -Paragraph 1 -Subparagraph (SX 210.7-04(19)) -Publisher FASB -URI https://asc.fasb.org//1943274/2147483586/944-220-S99-1 Reference 2: http://www.xbrl.org/2003/role/disclosureRef -Topic 220 -SubTopic 10 -Name Accounting Standards Codification -Section S99 -Paragraph 2 -Subparagraph (SX 210.5-03(21)) -Publisher FASB -URI https://asc.fasb.org//1943274/2147483621/220-10-S99-2 Reference 3: http://www.xbrl.org/2003/role/disclosureRef -Topic 942 -SubTopic 220 -Name Accounting Standards Codification -Section S99 -Paragraph 1 -Subparagraph (SX 210.9-04(23)) -Publisher FASB -URI https://asc.fasb.org//1943274/2147483589/942-220-S99-1 Reference 4: http://fasb.org/us-gaap/role/ref/legacyRef -Topic 220 -Name Accounting Standards Codification -Publisher FASB -URI https://asc.fasb.org//220/tableOfContent + Details
Name: | us-gaap_ComprehensiveIncomeNoteTextBlock
Namespace Prefix: | us-gaap_
Data Type: | dtr-types:textBlockItemType
Balance Type: | na
Period Type: | duration