/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 License: none (public domain) */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; } /* HTML5 display-role reset for older browsers */ article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section { display: block; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; } table { border-collapse: collapse; border-spacing: 0; } :root { --lt-blue: #A7C7E7; --beige: #F5F0E6; --ch-gray: #333; --silver: #CCC; --black: #000; --white: #FFF; --font: 'Lato', sans-serif; } * { margin: 0; padding: 0; box-sizing: border-box; } html { font-size: 100%; } body { font-family: 'Lato', sans-serif; line-height: 1.6; color: var(--black); background-color: var(--white); background-image: url("https://www.transparenttextures.com/patterns/light-grey-floral-motif.png"); background-repeat: repeat; /* ensures the pattern tiles */ } /* === LAYOUT CONTAINER === */ .container { max-width: 1200px; margin: 0 auto; padding: 1rem; } /* === HEADER === */ .site-header { display: flex; flex-direction: column; align-items: center; border-bottom: 4px solid var(--lt-blue); padding: 4rem 1.5rem; margin-bottom: 1rem; background: url("images/swiss-valley.jpg") center center/cover no-repeat; color: var(--white); text-shadow: 0 0 8px var(--ch-gray); } .site-header h1 a { color: var(--ch-gray); text-decoration: none; font-size: 1.8rem; } .site-header h1 a:hover, .site-header h1 a:focus { color: var(--black); } .resort-name { font-family: 'Playfair Display', serif; font-size: 3.2rem; color: var(--black); } .tagline { margin-bottom: 1rem; font-family: var(--font); font-size: 1.25rem; color: var(--ch-gray); } /* === NAVIGATION === */ .main-nav ul { list-style: none; display: flex; gap: 1rem; } .main-nav a { text-decoration: none; color: var(--ch-gray); padding: 0.3rem 0.6rem; border-radius: 4px; } .main-nav a:hover, .main-nav a:focus { background-color: var(--lt-blue); color: var(--black); } .main-nav a.active { background-color: var(--lt-blue); color: var(--black); font-weight: bold; } /* === SECTIONS === */ main h2 { text-align: center; font-family: var(--font); font-weight: bold; font-size: 1.8rem; margin-bottom: 0.5rem; } main p { text-align: center; font-family: var(--font); max-width: 800px; margin: 0 auto 1.5rem auto; font-size: 1.1rem; color: var(--ch-gray); } main h3 { text-align: center; font-family: var(--font); font-weight: bold; margin-top: 1rem; margin-bottom: 0.5rem; } .feature-row { display: flex; flex-wrap: wrap; gap: 1rem; margin-bottom: 2rem; } .feature { flex: 1 1 calc(50% - 1rem); background-color: var(--beige); padding: 1rem; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } .feature img { max-width: 100%; height: auto; border-radius: 6px; margin-bottom: 0.5rem; } /* === CONTACT PAGE === */ .contact-main { display: flex; gap: 2rem; align-items: stretch; margin-bottom: 2rem; } .contact-left { flex: 1 1 45%; } .contact-left h2 { margin-bottom: 0.5rem; } .contact-left p { margin-bottom: 1.5rem; line-height: 1.5; color: var(--ch-gray); } .contact-left .contact-image { height: 100%; display: flex; justify-content: center; align-items: center; } .contact-left .contact-image img { max-height: 100%; width: auto; border-radius: 8px; display: block; margin: 0 auto; } .contact-right { flex: 1 1 55%; } .beige-box { background-color:var(--beige); padding: 1.5rem; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } .contact-form { display: flex; flex-direction: column; gap: 1rem; } .contact-form label { font-weight: bold; } .contact-form input, .contact-form textarea, .contact-form select, .contact-form button { font: inherit; padding: 0.4rem; border: 1px solid var(--silver); border-radius: 4px; width: 100%; box-sizing: border-box; } .contact-form input:hover, .contact-form textarea:hover, .contact-form select:hover { border-color: var(--lt-blue); } .contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus { border-color: var(--ch-gray); outline: 2px solid var(--lt-blue); } .contact-form input:invalid, .contact-form textarea:invalid { border-color: red; } .contact-method { display: flex; gap: 3.0rem; border: 2px solid var(--ch-gray); border-radius: 6px; padding: 1rem; margin-bottom: 1rem; } .contact-method label { margin-bottom: 0; cursor: pointer; } .contact-method legend { font-weight: bold; padding: 0 0.5rem; } .contact-method input[type="radio"] { margin: 0; width: auto; } .submit-btn { background-color: var(--lt-blue); color: var(--black); border: none; cursor: pointer; margin-top: 0.5rem; } .submit-btn:hover, .submit-btn:focus { background-color: #88B3DB; } @media (max-width: 768px) { .contact-main { flex-direction: column; } } /* === FOOTER === */ .site-footer { border-top: 4px solid var(--lt-blue); border-bottom: 4px solid var(--lt-blue); padding: 0.5rem 0.5rem; margin-top: 2rem; text-align: center; font-size: 0.9rem; font-weight: bold; color: var(--ch-gray); } /* === RESPONSIVE TWEAKS === */ @media (max-width: 768px) { .feature-row { flex-direction: column; } .contact-form { flex-direction: column; } }