
229 P.3d 930 (2010)
CERTAIN UNDERWRITERS AT LLOYD'S LONDON, subscribing to Policy Nos. A02BF387 and CJ352084, a foreign entity, Appellant,
v.
VALIANT INSURANCE COMPANY, a corporation; Northern Insurance Company of New York, a corporation, Respondents, and
Does 1 to 100, Defendants.
No. 63692-8-I.
Court of Appeals of Washington, Division 1.
April 12, 2010.
*931 Les W. Robertson, Kathleen A. Harrison, Robertson & Clark LLP, Seattle, WA, for Appellant.
Jacquelyn Beatty, Walter Barton, Seattle, WA, for Respondents.
BECKER, J.
¶ 1 On summary judgment in this lawsuit between insurers of a construction company, the trial court enforced an anti-stacking provision by which one insurer limited its liability to a single policy limit per "occurrence." The court also ruled that water intrusion damage to a building continuing over a period of years was caused by one "occurrence" even though the damage occurred at different locations and different times. We affirm.
¶ 2 GCG Associates, LP, hired Stratford Constructors, LLC, to construct Chateau Pacific, a four story retirement center in Lynnwood, Washington. Stratford completed construction in early 2000. During the next five years, GCG observed a normal level of miscellaneous and sporadic leaks in the building. The 2004-2005 winter, however, exposed an unusual amount of leakage. Stratford conducted a moisture mapping survey of the building in March 2005 and found numerous points of water intrusion.
¶ 3 GCG filed two construction defect suits against Stratford in 2006 and commissioned its own invasive investigation. The reports of the investigations by Stratford and GCG described extensive water intrusion damage resulting from a variety of construction defects in the building envelope. For example, some leakage was the result of one subcontractor's improper installation of windows, and some was the result of another subcontractor's improper installation of roofing or stucco. It appeared that damage from water intrusion started soon after construction was complete and continued thereafter.
¶ 4 The actions against Stratford were consolidated in Snohomish County Superior Court. The case was settled in 2007 for approximately $5 million to be funded by Stratford's insurers and some of the subcontractors.
¶ 5 Stratford had purchased insurance from six insurers between June 1999 and June 2006. Stratford's insurance included primary commercial general liability insurance from two Zurich affiliated companies, Valiant Insurance Company and Northern Insurance Company of New York, for three successive years and from appellant Underwriters for two successive years. The first Zurich policy was from Valiant from June 1999 to 2000. This policy was renewed by Northern in June 2000 and in June 2001. Underwriters was the primary insurer from June 2002 to 2004. Stratford also purchased umbrella coverage from Great American from June 1999 to 2002.
¶ 6 Zurich contributed $1 million to the settlement for Valiant, fulfilling Valiant's $1 million "per occurrence" limit for the 1999-2000 policy. Zurich contributed nothing for Northern's policies that covered Stratford in June 2000-2002. Zurich, Great American, and Underwriters reserved their rights against each other concerning the amount of Zurich's contribution to the settlement. Great American later assigned its rights to Underwriters.
*932 ¶ 7 In June 2008, Underwriters sued Zurich for equitable contribution and subrogation. Underwriters claimed that Zurich failed to contribute its equitable share to the settlement, with the result that Underwriters and Great American overpaid. The trial court granted Zurich's motion for summary judgment. Underwriters appeals.[1]
¶ 8 Summary judgment is appropriate if there is no genuine issue of material fact and the moving party is entitled to judgment as a matter of law. CR 56(c). Our review is de novo. State Farm Fire & Cas. Co. v. English Cove Ass'n, 121 Wash.App. 358, 362, 88 P.3d 986 (2004).

"OCCURRENCE"
¶ 9 The insuring agreement in the Zurich policies covered Stratford for damages it became legally obligated to pay because of property damage, if the property damage was caused by an "occurrence" in the coverage territory during the policy period. The Zurich policies limit recovery to one policy limit per "occurrence" when the insured holds two or more policies issued by companies affiliated with Zurich. The parties refer to this limitation as an "anti-stacking" provision:
Section IVCommercial General Liability Conditions
11. Two Or More Coverage Forms Or Policies Issued By Us
If this Coverage Form and any other Coverage Form or policy issued to you by us or any company affiliated with us apply to the same "occurrence," the maximum Limit of Insurance under all the Coverage Forms or policies shall not exceed the highest applicable Limit of Insurance under any one Coverage Form or policy. This condition does not apply to any Coverage Form or policy issued by us or an affiliated company specifically to apply as excess insurance over this Coverage Form.
¶ 10 Underwriters argues that a jury could find more than one cause of water damage and thus more than one "occurrence." If so, Zurich's anti-stacking provision would not apply, and Zurich would not be able to limit its contribution to $1 million.
¶ 11 One case cited by Underwriters is Transcontinental Ins. Co. v. Washington Public Utilities Districts' Utility System, 111 Wash.2d 452, 760 P.2d 337 (1988). Transcontinental states "that the number of triggering events depends on the number of causes underlying the alleged damage and resulting liability." Transcontinental, 111 Wash.2d at 467, 760 P.2d 337. In Transcontinental, the insurer argued that coverage was triggered by a single event, a failure to make payments that occurred during the period of coverage of a single policy. The court concluded, however, that coverage was triggered by various acts by utility system personnel, some of which were continuing in nature and conceivably caused damage during more than one policy period, and therefore a second policy might also provide coverage. Underwriters argues that, like the number of acts that allegedly caused the bond default in Transcontinental, the number of causes of water damage to Chateau Pacific is a question of fact that should not have been determined on summary judgment. According to Underwriters, there cannot be a single occurrence because the evidence shows the leaks had varying causes.
¶ 12 The key to the present case is the Zurich policy definition of "occurrence" as an "accident, including continuous and repeated exposure to substantially the same general harmful conditions." The continuous and repeated exposure of Chateau Pacific to harmful moisture that gradually intruded through the building envelope over a five year period from different sources fits this definition. The controlling precedents are Gruol Construction Co. v. Insurance Co. of North America, 11 Wash.App. 632, 524 P.2d 427, review denied, 84 Wash.2d 1014 (1974), and American National Fire Insurance Co. v. B & L Trucking & Construction Co., 134 Wash.2d 413, 951 P.2d 250 (1998).
*933 ¶ 13 In Gruol, Gruol Construction Company built and sold an apartment building. Several years later, the purchaser sued Gruol "for damage to the building caused by dry rot which resulted from dirt having been piled against the box sills of the building by backfilling during construction." Gruol, 11 Wash.App. at 633, 524 P.2d 427. Gruol's insurers refused to defend the suit, and Gruol sued them for breach of contract after settling with the purchaser. The trial court found that the injury and damage was a continuing process until its discovery and that it was covered by all three insurers who had issued policies to Gruol during the period from construction until the discovery of the damage. This court affirmed. Like here, the policies defined "occurrence" in part as a continuous or repeated exposure to harmful conditions. Gruol, 11 Wash.App. at 634, 524 P.2d 427. Thus, an "occurrence" can be a continuing condition or process; it need not be a single, isolated event. Gruol, 11 Wash.App. at 635, 524 P.2d 427. The dry rot caused damage continuously, and therefore was held to be an occurrence covered by all three policies.
¶ 14 In B & L Trucking, a trucking company had dumped arsenic-laced smelter slag into a landfill expecting it to be inert. But the contaminants leached into the landfill. Liability was assessed against the trucking company and other entities. The pollution occurred over many years, and the trucking company had coverage during only a portion of the entire polluting period. The insurer argued that the remediation costs should be allocated between insurer and insured, but our Supreme Court construed the policy as requiring the insurer to provide full coverage for all continuing damage once coverage was triggered in one or more policy periods. Coverage was triggered by damage caused by an "occurrence," defined as "`an accident, including continuous or repeated exposure to conditions, which results in bodily injury or property damage neither expected nor intended from the standpoint of the insured.'" B & L Trucking, 134 Wash.2d at 422, 951 P.2d 250. Relying in part on Gruol, the Supreme Court reasoned that the leaching was a single "occurrence," not a series of "multiple polluting events" as urged by the dissent. B & L Trucking, 134 Wash.2d at 426, 434, 951 P.2d 250.
¶ 15 Gruol and B & L Trucking are consistent with the general rule stated in Transcontinental that the number of occurrences equals the number of causes of liability. See Transcontinental, 111 Wash.2d at 465-66, 760 P.2d 337. In Gruol, the cause of continuous damage to the building was the single occurrence of dry rot. In B & L Trucking, the pollution liability was caused by the single "occurrence" of continuous leaching. Similarly here, the property damage was caused by a single occurrence of continuous exposure to water intrusion. Because the policies issued by Zurich's affiliated companies all applied to the same occurrence, the anti-stacking provision limited coverage to the highest applicable policy limit under any one of those policies.
¶ 16 The 2001-2002 policy issued by Northern, one of Zurich's affiliates, included an endorsement excluding coverage for continuous damage that first occurs before the effective date of the policy. Underwriters contends summary judgment was improperly granted to Northern on the issue whether this exclusion barred coverage for the continuous damage alleged in the underlying action. Having concluded that the anti-stacking provision bars recovery under that policy, we need not decide whether the exclusion has the same effect.

ANTI-STACKING
¶ 17 Underwriters argues that Zurich's anti-stacking provision is unenforceable because it conflicts with the statement of limits, thereby creating ambiguity in the contract as a whole.
¶ 18 We construe insurance policies as a whole, giving them a fair, reasonable, and sensible construction so as to give effect to every clause. Polygon Nw. Co. v. Am. Nat'l Fire Ins. Co., 143 Wash.App. 753, 766, 189 P.3d 777, review denied, 164 Wash.2d 1033, 197 P.3d 1184 (2008). An insurance contract is ambiguous only if it is susceptible to two or more reasonable interpretations. B & L Trucking, 134 Wash.2d at 428, 951 P.2d 250.
*934 ¶ 19 The "Limits of Insurance" section in the Zurich policies states that the liability limits apply separately to each consecutive annual period:
The limits of this Coverage Part apply separately to each consecutive annual period and to any remaining period of less than 12 months, starting with the beginning of the policy period shown in the Declarations, unless the policy period is extended after issuance for an additional period of less than 12 months. In that case, the additional period will be deemed part of the last preceding period for purposes of determining the Limits of Insurance.
Underwriters contends this language conflicts with the anti-stacking provision that limits recovery to a single $1 million policy limit per occurrence, including an occurrence that continues for several years as it did in this case. According to Underwriters, the conflict makes the contract subject to two reasonable interpretations: under the "Limits of Insurance" section, Stratford had $3 million available in coverage from Zurich ($1 million for each policy period), while under the anti-stacking section, it had only $1 million. We reject this argument because the limits section does not address the limits available per occurrence. The anti-stacking provision unambiguously makes a single policy limit available from affiliated companies for a single occurrence. These provisions are not in conflict.
¶ 20 We also reject Underwriters' argument that the anti-stacking provision violates public policy. Limitations in insurance contracts which are contrary to public policy and statute will not be enforced, but otherwise insurers are permitted to limit their contractual liability. Brown v. Snohomish County Physicians Corp., 120 Wash.2d 747, 753, 845 P.2d 334 (1993). Washington courts rarely invoke public policy to override the express terms of an insurance policy. Fluke Corp. v. Hartford Accident & Indem. Co., 145 Wash.2d 137, 144, 34 P.3d 809 (2001). Generally a contract does not violate public policy unless it is prohibited by statute, condemned by judicial decision, or contrary to the public morals. Brown, 120 Wash.2d at 753, 845 P.2d 334.
¶ 21 Underwriters contends that B & L Trucking states a public policy insisting upon full compensation for insureds in the context of commercial general liability policies. Underwriters reads too much into the following statement: "Once coverage is triggered in one or more policy periods, those policies provide full coverage for all continuing damage, without any allocation between insurer and insured." B & L Trucking, 134 Wash.2d at 429, 951 P.2d 250. This statement does not prevent an insurance company from limiting the amount of its coverage. Nothing in B & L Trucking prevents the issuer of a commercial policy from including policy provisions specifically aimed at allocating liability in a situation where there is joint and several liability among insurers. Polygon, 143 Wash.App. at 776, 189 P.3d 777; see B & L Trucking, 134 Wash.2d at 427, 951 P.2d 250. Underwriters also argues Zurich is using the anti-stacking provision to avoid joint and several liability, contrary to B & L Trucking. That is not the case; Zurich is merely limiting its liability to a specified dollar amount.
¶ 22 The anti-stacking provision does not, as Underwriters suggests, render the annual limits provision meaningless nor does it mean that the insured has paid premiums for illusory coverage. If Stratford had sustained damage from separate occurrences in each of the three separate policy periods covered by a Zurich affiliate, the anti-stacking provision would not apply and the full $1 million limit per period would be available for each occurrence. We conclude the anti-stacking provision does not violate public policy.
¶ 23 Affirmed.
WE CONCUR: LAU and COX, JJ.
NOTES
[1]  Underwriters contends the trial court erred by considering a supplemental declaration and exhibits pertaining to the settlement. We do not address this issue because Underwriters fails to show that the challenged documents are relevant to our analysis.
