diff --git a/public/css/style.css b/public/css/style.css index cdca900..3350b86 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -9,64 +9,292 @@ --border: #e6e6e6; --shadow: 0 10px 30px rgba(0,0,0,0.08); } -*{box-sizing:border-box}html,body{margin:0;padding:0} -body{font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;color:var(--text);background:var(--bg);line-height:1.6;overflow-x:hidden} -a{text-decoration:none;color:inherit}img{max-width:100%;display:block} -.container{width:min(1200px,calc(100% - 2rem));margin-inline:auto}.section{padding:4.5rem 0}.section-alt{background:var(--bg-alt)} -.site-header{position:sticky;top:0;z-index:999;background:rgba(255,255,255,.9);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)} -.nav-wrap{display:flex;align-items:center;justify-content:space-between;min-height:76px;gap:1rem} -.brand{display:inline-flex;align-items:center;gap:.65rem;font-weight:700}.brand img{width:44px;height:44px;object-fit:contain} -.site-nav{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;justify-content:flex-end}.site-nav a{color:var(--muted);font-weight:500}.site-nav a.active,.site-nav a:hover{color:var(--accent)} -.mobile-toggle{display:none;border:0;background:transparent}.mobile-toggle span{display:block;width:22px;height:2px;background:#222;margin:5px 0} +* { box-sizing: border-box; } +html, body { margin: 0; padding: 0; } -.hero{padding:6rem 0 3.5rem;position:relative;overflow:clip} -.hero-bg{position:absolute;inset:0;background:radial-gradient(700px 350px at 70% -30%,rgba(209,32,32,.12),transparent),radial-gradient(500px 280px at 20% 0%,rgba(220,0,0,.08),transparent)} -.hero-orb{position:absolute;border-radius:50%;filter:blur(2px);opacity:.35;pointer-events:none;animation:drift 10s ease-in-out infinite alternate} -.hero-orb-1{width:260px;height:260px;right:-70px;top:60px;background:radial-gradient(circle at 30% 30%,#ff6a6a,#d12020)} -.hero-orb-2{width:180px;height:180px;left:-60px;bottom:20px;background:radial-gradient(circle at 30% 30%,#ffb2b2,#dc0000);animation-duration:14s} -@keyframes drift{from{transform:translateY(-8px)}to{transform:translateY(14px)}} - -.hero-grid{position:relative;display:grid;grid-template-columns:1.1fr .9fr;gap:2rem;align-items:center} -.eyebrow{color:var(--accent);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em} -h1{font-size:clamp(2.2rem,5vw,4rem);line-height:1.1;margin:.25rem 0 .75rem}h2{font-size:clamp(1.7rem,3.2vw,2.4rem);margin-top:0} -.lead{color:var(--muted);font-size:1.08rem}.hero-actions{display:flex;gap:.8rem;margin-top:1.2rem;flex-wrap:wrap} -.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.1rem;border-radius:999px;border:1px solid transparent;font-weight:600;transition:.25s ease} -.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(209,32,32,.3)} -.btn-ghost{border-color:#ccc;background:#fff}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)} - -.glass-card{background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,255,255,.98));border:1px solid var(--border);border-radius:18px;padding:1.2rem;box-shadow:var(--shadow);transition:transform .25s ease, box-shadow .25s ease} -.glass-card:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(0,0,0,.11)} -.media-card{padding:.75rem}.media-card img{border-radius:12px;width:100%;object-fit:cover} -.video-frame{padding:.5rem}.video-frame iframe{width:100%;aspect-ratio:16/9;border:0;border-radius:12px} -.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem} -.split{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;align-items:center}.page-hero{padding:5rem 0 1.5rem} - -.stats-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.stat-card h3{font-size:2rem;margin:.2rem 0;color:var(--accent)} -.chip-list{display:flex;flex-wrap:wrap;gap:.55rem}.chip{border:1px solid #f0b7b7;background:#fff5f5;color:#961717;padding:.45rem .7rem;border-radius:999px;font-weight:600;font-size:.9rem} -.cta-card{text-align:center}.text-link{color:var(--accent);font-weight:600} - -.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.gallery-grid img{border-radius:12px;min-height:150px;object-fit:cover;border:1px solid var(--border)} -.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.team-card img{border-radius:12px;margin-bottom:.7rem;height:260px;width:100%;object-fit:cover} -.profile-card{max-width:820px}.profile-card img{width:220px;height:220px;border-radius:24px;object-fit:cover;margin-bottom:1rem} - -.timeline{display:grid;gap:1rem}.news-card .date,.date{color:#a61c1c;font-weight:700;font-size:.9rem} -.quote-card p{font-size:1.05rem} - -.inquiry-form label{display:block;font-weight:500;margin-bottom:.8rem}.inquiry-form input,.inquiry-form textarea{width:100%;margin-top:.35rem;padding:.7rem .8rem;border-radius:12px;border:1px solid #ccc} -.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.alert{margin-top:1rem;padding:.8rem .9rem;border:1px solid #f0b3b3;background:#fff1f1;color:#b42323;border-radius:12px} -.form-status{margin-top:.8rem;font-weight:600}.form-status.success{color:#146c2f}.form-status.error{color:#b42323}.form-status.pending{color:#8a5a00} - -.site-footer{border-top:1px solid #2a2a2a;margin-top:3rem;padding-top:2.5rem;background:#1a1a1a;color:#f2f2f2} -.footer-grid{display:grid;grid-template-columns:1.2fr .8fr 1fr;gap:1.2rem}.footer-links{list-style:none;padding:0;margin:0}.footer-links li{margin:.5rem 0;color:#bdbdbd} -.footer-bottom{padding:1.25rem 0 1.8rem;color:#bdbdbd}.legal{color:#bdbdbd} - -.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease} -.reveal.is-visible{opacity:1;transform:translateY(0)} - -@media (max-width:980px){ - .hero-grid,.split,.grid-3,.grid-2,.footer-grid,.form-grid,.gallery-grid,.team-grid,.stats-grid{grid-template-columns:1fr} - .mobile-toggle{display:inline-block} - .site-nav{position:absolute;top:76px;right:1rem;left:1rem;background:#fff;border:1px solid var(--border);border-radius:14px;padding:.9rem;flex-direction:column;align-items:stretch;transform-origin:top;transform:scaleY(0);opacity:0;pointer-events:none} - .site-nav.open{transform:scaleY(1);opacity:1;pointer-events:auto} +body { + font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + color: var(--text); + background: var(--bg); + line-height: 1.68; + letter-spacing: 0.01em; + overflow-x: hidden; +} + +a { text-decoration: none; color: inherit; } +img { max-width: 100%; display: block; } + +.container { width: min(1200px, calc(100% - 2rem)); margin-inline: auto; } +.section { padding: 5rem 0; } +.section-alt { background: var(--bg-alt); } + +h1, h2, h3, h4 { line-height: 1.2; letter-spacing: -0.01em; } +p { margin: 0 0 1rem; } + +.site-header { + position: sticky; + top: 0; + z-index: 999; + background: rgba(255,255,255,.88); + backdrop-filter: blur(10px); + border-bottom: 1px solid rgba(0,0,0,0.05); + transition: background-color .25s ease, box-shadow .25s ease, border-color .25s ease; +} + +.site-header.is-scrolled { + background: rgba(255,255,255,.98); + border-bottom-color: rgba(0,0,0,0.08); + box-shadow: 0 10px 24px rgba(0,0,0,0.08); +} + +.nav-wrap { + display: flex; + align-items: center; + justify-content: space-between; + min-height: 78px; + gap: 1rem; +} + +.brand { display: inline-flex; align-items: center; gap: .65rem; font-weight: 700; flex-shrink: 0; } +.brand img { width: 44px; height: 44px; object-fit: contain; } + +.site-nav { + display: flex; + align-items: center; + gap: .9rem; + justify-content: flex-end; + flex-wrap: nowrap; + min-width: 0; +} + +.nav-links { + display: flex; + align-items: center; + gap: .4rem; + flex-wrap: nowrap; + min-width: 0; +} + +.nav-links a, +.site-nav > a { + color: var(--muted); + font-weight: 600; + font-size: .95rem; + line-height: 1; + padding: .62rem .9rem; + border-radius: 999px; + border: 1px solid transparent; + white-space: nowrap; + transition: color .2s ease, background-color .2s ease, border-color .2s ease, transform .2s ease; +} + +.nav-links a:hover, +.site-nav > a:hover { + color: var(--accent); + background: rgba(209,32,32,.08); + border-color: rgba(209,32,32,.16); +} + +.nav-links a.active, +.site-nav > a.active { + color: var(--accent); + background: rgba(209,32,32,.12); + border-color: rgba(209,32,32,.2); +} + +.nav-cta { + display: inline-flex; + align-items: center; + justify-content: center; + padding: .64rem 1rem; + border-radius: 999px; + border: 1px solid rgba(209,32,32,.35); + background: linear-gradient(180deg, #ffffff, #fff8f8); + color: var(--accent); + font-weight: 700; + white-space: nowrap; + transition: background-color .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease; +} + +.nav-cta:hover { + background: #fff3f3; + border-color: rgba(209,32,32,.52); + box-shadow: 0 8px 16px rgba(209,32,32,.18); + transform: translateY(-1px); +} + +.mobile-toggle { display: none; border: 1px solid transparent; border-radius: 10px; background: transparent; padding: .3rem .35rem; } +.mobile-toggle span { display: block; width: 22px; height: 2px; background: #222; margin: 5px 0; border-radius: 2px; } + +.hero { padding: 6rem 0 4rem; position: relative; overflow: clip; } +.hero-bg { position: absolute; inset: 0; background: radial-gradient(700px 350px at 70% -30%, rgba(209,32,32,.12), transparent), radial-gradient(500px 280px at 20% 0%, rgba(220,0,0,.08), transparent); } +.hero-orb { position: absolute; border-radius: 50%; filter: blur(2px); opacity: .35; pointer-events: none; animation: drift 10s ease-in-out infinite alternate; } +.hero-orb-1 { width: 260px; height: 260px; right: -70px; top: 60px; background: radial-gradient(circle at 30% 30%, #ff6a6a, #d12020); } +.hero-orb-2 { width: 180px; height: 180px; left: -60px; bottom: 20px; background: radial-gradient(circle at 30% 30%, #ffb2b2, #dc0000); animation-duration: 14s; } +@keyframes drift { from { transform: translateY(-8px); } to { transform: translateY(14px); } } + +.hero-grid { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; gap: 2rem; align-items: center; } +.eyebrow { color: var(--accent); font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; } +h1 { font-size: clamp(2.2rem, 5vw, 4rem); margin: .25rem 0 .85rem; } +h2 { font-size: clamp(1.7rem, 3.2vw, 2.4rem); margin: 0 0 .8rem; } +.lead { color: var(--muted); font-size: 1.08rem; max-width: 68ch; } +.hero-actions { display: flex; gap: .8rem; margin-top: 1.35rem; flex-wrap: wrap; } + +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + padding: .78rem 1.15rem; + border-radius: 999px; + border: 1px solid transparent; + font-weight: 600; + transition: .25s ease; +} +.btn-primary { background: var(--accent); color: #fff; } +.btn-primary:hover { transform: translateY(-1px); box-shadow: 0 8px 20px rgba(209,32,32,.3); } +.btn-ghost { border-color: #ccc; background: #fff; } +.btn-ghost:hover { border-color: var(--accent); color: var(--accent); background: #fff8f8; } + +.glass-card { + background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.98)); + border: 1px solid var(--border); + border-radius: 18px; + padding: 1.25rem; + box-shadow: var(--shadow); + transition: transform .25s ease, box-shadow .25s ease, border-color .2s ease; +} +.glass-card:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(0,0,0,.11); border-color: #dcdcdc; } +.media-card { padding: .75rem; } +.media-card img { border-radius: 12px; width: 100%; object-fit: cover; } +.video-frame { padding: .5rem; } +.video-frame iframe { width: 100%; aspect-ratio: 16/9; border: 0; border-radius: 12px; } +.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1.2rem; } +.grid-3 { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1.2rem; } +.split { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; align-items: center; } +.page-hero { padding: 5.2rem 0 1.8rem; } + +.stats-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1rem; } +.stat-card h3 { font-size: 2rem; margin: .2rem 0; color: var(--accent); } +.chip-list { display: flex; flex-wrap: wrap; gap: .55rem; } +.chip { border: 1px solid #f0b7b7; background: #fff5f5; color: #961717; padding: .45rem .7rem; border-radius: 999px; font-weight: 600; font-size: .9rem; } +.cta-card { text-align: center; } +.text-link { color: var(--accent); font-weight: 600; } + +.gallery-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: .85rem; } +.gallery-grid img { border-radius: 12px; min-height: 150px; object-fit: cover; border: 1px solid var(--border); } +.team-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 1rem; } +.team-card img { border-radius: 12px; margin-bottom: .75rem; height: 260px; width: 100%; object-fit: cover; } +.profile-card { max-width: 820px; } +.profile-card img { width: 220px; height: 220px; border-radius: 24px; object-fit: cover; margin-bottom: 1rem; } + +.timeline { display: grid; gap: 1rem; } +.news-card .date, .date { color: #a61c1c; font-weight: 700; font-size: .9rem; } +.quote-card p { font-size: 1.05rem; } + +.inquiry-form label { display: block; font-weight: 500; margin-bottom: .85rem; } +.inquiry-form input, +.inquiry-form textarea, +.inquiry-form select { + width: 100%; + margin-top: .35rem; + padding: .72rem .85rem; + border-radius: 12px; + border: 1px solid #ccc; + background: #fff; + color: var(--text); + transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease; +} + +.inquiry-form input:hover, +.inquiry-form textarea:hover, +.inquiry-form select:hover { border-color: #b8b8b8; } + +.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem; } +.alert { margin-top: 1rem; padding: .8rem .9rem; border: 1px solid #f0b3b3; background: #fff1f1; color: #b42323; border-radius: 12px; } +.form-status { margin-top: .8rem; font-weight: 600; } +.form-status.success { color: #146c2f; } +.form-status.error { color: #b42323; } +.form-status.pending { color: #8a5a00; } + +.site-footer { + border-top: 1px solid #2a2a2a; + margin-top: 3.5rem; + padding-top: 2.7rem; + background: #1a1a1a; + color: #f2f2f2; +} +.footer-grid { display: grid; grid-template-columns: 1.2fr .8fr 1fr; gap: 1.3rem; } +.footer-links { list-style: none; padding: 0; margin: 0; } +.footer-links li { margin: .5rem 0; color: #bdbdbd; } +.footer-links a:hover { color: #ffffff; } +.footer-bottom { padding: 1.3rem 0 1.9rem; color: #bdbdbd; } +.legal { color: #bdbdbd; } + +.reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; } +.reveal.is-visible { opacity: 1; transform: translateY(0); } + +a:focus-visible, +button:focus-visible, +.btn:focus-visible, +.mobile-toggle:focus-visible, +input:focus-visible, +textarea:focus-visible, +select:focus-visible { + outline: 3px solid rgba(209,32,32,.28); + outline-offset: 2px; + box-shadow: 0 0 0 1px rgba(209,32,32,.36); + border-color: rgba(209,32,32,.5); +} + +@media (max-width: 980px) { + .hero-grid, .split, .grid-3, .grid-2, .footer-grid, .form-grid, .gallery-grid, .team-grid, .stats-grid { grid-template-columns: 1fr; } + + .mobile-toggle { display: inline-block; } + + .site-nav { + position: absolute; + top: 78px; + right: 1rem; + left: 1rem; + background: rgba(255,255,255,.98); + border: 1px solid var(--border); + box-shadow: 0 14px 35px rgba(0,0,0,.14); + border-radius: 16px; + padding: .85rem; + flex-direction: column; + align-items: stretch; + gap: .7rem; + transform-origin: top center; + transform: translateY(-8px) scale(.98); + opacity: 0; + pointer-events: none; + visibility: hidden; + transition: transform .22s ease, opacity .22s ease, visibility .22s ease; + } + + .site-nav.open { + transform: translateY(0) scale(1); + opacity: 1; + pointer-events: auto; + visibility: visible; + } + + .nav-links { + width: 100%; + flex-direction: column; + align-items: stretch; + gap: .4rem; + } + + .nav-links a, + .site-nav > a, + .nav-cta { + width: 100%; + justify-content: center; + text-align: center; + border-radius: 12px; + } + + .section { padding: 4rem 0; } }