website_designs

Mediterranean Design Reference

Overview

Mediterranean design is a warm, sun-drenched aesthetic rooted in the architectural traditions, natural landscapes, and cultural heritage of the countries surrounding the Mediterranean Sea – primarily Greece, Italy, Spain, southern France, Morocco, and Turkey. The style draws its visual language from whitewashed village walls, terracotta rooftops, azure coastal waters, olive groves, hand-painted ceramic tiles, and wrought-iron detailing. It is an aesthetic that embodies relaxed outdoor living, the warmth of baked earth under an open sky, and the timeless elegance of civilizations that built arched doorways and mosaic courtyards thousands of years ago.

In web and UI design, the Mediterranean aesthetic translates into warm earthy color palettes anchored by terracotta and sandy neutrals, accented with deep azure blues and olive greens. Layouts favor open, spacious compositions with generous whitespace that evokes sun-bleached courtyards. Arch-shaped containers, tile-inspired patterns, and textured backgrounds reference the region’s architectural motifs. Typography leans toward elegant serif display faces paired with clean, warm sans-serifs – reflecting the blend of ancient classical heritage and modern coastal simplicity. Surfaces may incorporate subtle stucco or linen textures, while ornamental details draw from Moorish geometric tilework and Greco-Roman decorative traditions.

The Mediterranean approach is neither minimalist nor maximalist. It occupies a balanced middle ground: curated warmth with intentional ornamentation. Every element should feel like it has been warmed by the sun and cooled by the sea – natural, inviting, and grounded in centuries of craft. The palette never strays into cold, sterile territory; even the blues carry warmth. The aesthetic is ideal for travel, hospitality, food and wine, real estate, lifestyle, and wellness brands seeking to communicate authenticity, warmth, relaxation, and timeless sophistication.


Visual Characteristics

Core Design Traits

Design Principles


Color Palette

The Mediterranean palette is drawn directly from the region’s natural environment: sun-baked earth, whitewashed architecture, azure sea, olive groves, and golden afternoon light. Warm tones dominate, with blues serving as the essential cool-temperature counterpoint.

Swatch Hex Role/Usage
Whitewash #FAF7F2 Primary background, open surfaces, breathing space
Stucco Cream #F0E6D6 Secondary background, card surfaces, warm panels
Sand Dune #D9C6A5 Tertiary surfaces, footer areas, subtle fills
Terracotta #C65D3B Primary warm accent, buttons, headings, key highlights
Burnt Sienna #A0432E Deep warm accent, hover states, active elements
Clay Pot #8B5E3C Body text on light backgrounds, earthy UI elements
Azure Sea #1B6B93 Primary cool accent, links, interactive elements
Aegean Blue #2E96C7 Secondary blue accent, badges, tags, info highlights
Santorini Sky #A8D4E6 Light blue tinted backgrounds, hover states
Olive Grove #6B7F3A Botanical accent, success states, nature elements
Sage Leaf #A3B18A Soft green backgrounds, secondary decorative accent
Golden Hour #D4A843 Warm metallic accent, ornamental details, star ratings
Cypress Shadow #3D3929 Dark text, deep header backgrounds, contrast surfaces
Lavender Field #9B8EC4 Tertiary accent, decorative highlights, tags
Pomegranate #B5334E Error states, urgent call-to-action, warm emphasis

CSS Custom Properties

:root {
  /* Backgrounds */
  --med-whitewash: #faf7f2;
  --med-stucco: #f0e6d6;
  --med-sand: #d9c6a5;

  /* Warm accents */
  --med-terracotta: #c65d3b;
  --med-sienna: #a0432e;
  --med-clay: #8b5e3c;
  --med-golden: #d4a843;
  --med-pomegranate: #b5334e;

  /* Cool accents */
  --med-azure: #1b6b93;
  --med-aegean: #2e96c7;
  --med-sky: #a8d4e6;
  --med-lavender: #9b8ec4;

  /* Greens */
  --med-olive: #6b7f3a;
  --med-sage: #a3b18a;

  /* Dark */
  --med-cypress: #3d3929;

  /* Functional mappings */
  --med-bg-primary: var(--med-whitewash);
  --med-bg-secondary: var(--med-stucco);
  --med-bg-accent: var(--med-sky);
  --med-text-primary: var(--med-cypress);
  --med-text-secondary: var(--med-clay);
  --med-accent-warm: var(--med-terracotta);
  --med-accent-cool: var(--med-azure);
  --med-accent-light: var(--med-sand);
  --med-border: rgba(139, 94, 60, 0.2);
  --med-cta: var(--med-terracotta);
}

Typography

Mediterranean typography balances the region’s classical heritage with modern readability. Display and heading typefaces draw from elegant serif traditions reminiscent of Roman inscriptions, Italian Renaissance printing, and Spanish colonial signage. Body text uses warm, open sans-serifs that feel approachable and sunlit rather than cold or technical.

Font Weight(s) Style Usage
Cormorant Garamond 300, 400, 600, 700 Refined, high-contrast transitional serif Hero headlines, display text
Playfair Display 400, 600, 700 Elegant, high-contrast serif with dramatic terminals Section headings, editorial titles
Spectral 300, 400, 600 Warm, screen-optimized serif Subheadings, pull quotes, body alternative
Lato 300, 400, 700 Warm humanist sans-serif Primary body text, UI elements
Raleway 300, 400, 500, 600 Elegant geometric sans with thin weights Navigation, labels, subheadings
Forum 400 Antique Roman display serif Decorative headings, accent titles
Josefin Sans 300, 400, 600 Vintage geometric sans-serif Captions, tags, uppercase labels
Caveat 400, 700 Casual handwritten style Annotations, informal accents, taglines

Font Pairing Suggestions

Heading Body Mood
Cormorant Garamond 600 Lato 400 Classical elegance with warm readability
Playfair Display 700 Raleway 400 Sophisticated editorial, travel-magazine feel
Forum 400 Lato 300 Ancient-meets-modern, archaeological warmth
Cormorant Garamond 300 Italic Spectral 400 Refined literary, wine-label aesthetics
Playfair Display 600 Josefin Sans 300 Boutique hospitality, modern Mediterranean

CSS Example

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;0,700;1,400&family=Lato:wght@300;400;700&family=Raleway:wght@300;400;500;600&family=Caveat:wght@400;700&display=swap');

body {
  font-family: 'Lato', 'Raleway', sans-serif;
  font-weight: 400;
  font-size: 1.05rem;
  line-height: 1.8;
  letter-spacing: 0.01em;
  color: var(--med-clay);
  -webkit-font-smoothing: antialiased;
}

h1, h2, h3 {
  font-family: 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
  color: var(--med-cypress);
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.25;
}

/* Display / Hero text */
.med-display {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.5rem, 6vw, 5rem);
  font-weight: 300;
  font-style: italic;
  letter-spacing: 0.03em;
  line-height: 1.15;
  color: var(--med-cypress);
}

/* Handwritten accent */
.med-handwritten {
  font-family: 'Caveat', cursive;
  font-size: 1.5em;
  color: var(--med-terracotta);
  font-weight: 400;
}

/* Navigation and label text */
nav a, .med-label {
  font-family: 'Raleway', 'Josefin Sans', sans-serif;
  text-transform: uppercase;
  font-size: 0.82rem;
  letter-spacing: 0.14em;
  font-weight: 500;
  color: var(--med-clay);
}

Layout Principles


CSS / Design Techniques

Mediterranean Card Component

.med-card {
  background: var(--med-whitewash);
  border-radius: 16px;
  padding: 2rem 2.5rem;
  box-shadow:
    0 2px 8px rgba(61, 57, 41, 0.06),
    0 8px 24px rgba(61, 57, 41, 0.04);
  border: 1px solid rgba(198, 93, 59, 0.1);
  transition: box-shadow 0.3s ease, transform 0.3s ease;
  position: relative;
  overflow: hidden;
}

/* Subtle terracotta top accent line */
.med-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 10%;
  right: 10%;
  height: 3px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--med-terracotta),
    var(--med-golden),
    var(--med-terracotta),
    transparent
  );
  border-radius: 0 0 2px 2px;
}

.med-card:hover {
  box-shadow:
    0 4px 12px rgba(61, 57, 41, 0.08),
    0 16px 40px rgba(61, 57, 41, 0.06);
  transform: translateY(-3px);
}

/* Arch-topped card variant */
.med-card--arch {
  border-radius: 120px 120px 16px 16px;
  padding-top: 3rem;
  text-align: center;
}

Mediterranean Button Component

/* Primary -- Terracotta */
.med-btn {
  display: inline-block;
  padding: 0.8rem 2.2rem;
  border-radius: 8px;
  border: none;
  background: var(--med-terracotta);
  color: var(--med-whitewash);
  font-family: 'Raleway', sans-serif;
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 4px 14px rgba(198, 93, 59, 0.25);
  transition: all 0.3s ease;
}

.med-btn:hover {
  background: var(--med-sienna);
  box-shadow: 0 6px 20px rgba(198, 93, 59, 0.35);
  transform: translateY(-2px);
}

/* Secondary -- Outlined */
.med-btn--outline {
  background: transparent;
  color: var(--med-terracotta);
  border: 2px solid var(--med-terracotta);
  box-shadow: none;
}

.med-btn--outline:hover {
  background: var(--med-terracotta);
  color: var(--med-whitewash);
  box-shadow: 0 4px 14px rgba(198, 93, 59, 0.25);
}

/* Azure variant */
.med-btn--azure {
  background: var(--med-azure);
  box-shadow: 0 4px 14px rgba(27, 107, 147, 0.25);
}

.med-btn--azure:hover {
  background: #155a7d;
  box-shadow: 0 6px 20px rgba(27, 107, 147, 0.35);
}
.med-nav {
  background: rgba(250, 247, 242, 0.92);
  backdrop-filter: blur(16px) saturate(1.2);
  -webkit-backdrop-filter: blur(16px) saturate(1.2);
  border-bottom: 1px solid rgba(139, 94, 60, 0.12);
  padding: 1rem 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 100;
}

.med-nav__brand {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1.4rem;
  font-weight: 600;
  color: var(--med-cypress);
  letter-spacing: 0.04em;
}

.med-nav__links {
  display: flex;
  gap: 2rem;
  list-style: none;
}

.med-nav__links a {
  font-family: 'Raleway', sans-serif;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--med-clay);
  transition: color 0.3s ease;
  position: relative;
}

.med-nav__links a::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--med-terracotta);
  transition: width 0.3s ease;
}

.med-nav__links a:hover {
  color: var(--med-terracotta);
}

.med-nav__links a:hover::after {
  width: 100%;
}

Hero Section

.med-hero {
  position: relative;
  min-height: 75vh;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 6rem 2rem;
  overflow: hidden;
  background:
    linear-gradient(
      180deg,
      rgba(250, 247, 242, 0) 0%,
      rgba(250, 247, 242, 0.4) 40%,
      rgba(240, 230, 214, 0.7) 100%
    ),
    linear-gradient(
      135deg,
      var(--med-stucco) 0%,
      var(--med-whitewash) 50%,
      var(--med-sky) 100%
    );
}

/* Warm golden-hour radial glow */
.med-hero::before {
  content: '';
  position: absolute;
  top: -10%;
  right: -5%;
  width: 600px;
  height: 600px;
  background: radial-gradient(
    ellipse,
    rgba(212, 168, 67, 0.15) 0%,
    rgba(198, 93, 59, 0.06) 40%,
    transparent 70%
  );
  pointer-events: none;
}

.med-hero h1 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(2.8rem, 7vw, 5.5rem);
  font-weight: 300;
  font-style: italic;
  color: var(--med-cypress);
  line-height: 1.1;
  margin-bottom: 1rem;
  position: relative;
  z-index: 1;
}

.med-hero p {
  font-family: 'Raleway', sans-serif;
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: var(--med-clay);
  max-width: 520px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

/* Ornamental divider below hero heading */
.med-hero .ornament {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 1.5rem auto;
  max-width: 200px;
  position: relative;
  z-index: 1;
}

.med-hero .ornament::before,
.med-hero .ornament::after {
  content: '';
  flex: 1;
  height: 1px;
  background: linear-gradient(
    to right,
    transparent,
    var(--med-terracotta),
    transparent
  );
}

.med-hero .ornament span {
  width: 8px;
  height: 8px;
  background: var(--med-terracotta);
  border-radius: 50%;
  opacity: 0.6;
}

Stucco Texture Overlay

/* Subtle plaster/stucco texture for backgrounds */
.med-stucco-texture {
  position: relative;
}

.med-stucco-texture::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='0.55' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E");
  pointer-events: none;
  opacity: 0.5;
}

Mosaic Tile Pattern Border

/* Geometric tile-inspired repeating pattern border */
.med-tile-border {
  border: none;
  height: 12px;
  margin: 3rem auto;
  width: 80%;
  max-width: 600px;
  background: repeating-linear-gradient(
    90deg,
    var(--med-terracotta) 0px,
    var(--med-terracotta) 8px,
    var(--med-whitewash) 8px,
    var(--med-whitewash) 10px,
    var(--med-azure) 10px,
    var(--med-azure) 18px,
    var(--med-whitewash) 18px,
    var(--med-whitewash) 20px,
    var(--med-golden) 20px,
    var(--med-golden) 28px,
    var(--med-whitewash) 28px,
    var(--med-whitewash) 30px
  );
  border-radius: 2px;
}

/* Diamond-pattern mosaic background */
.med-mosaic-bg {
  background-image:
    linear-gradient(45deg, var(--med-sand) 25%, transparent 25%),
    linear-gradient(-45deg, var(--med-sand) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, var(--med-sand) 75%),
    linear-gradient(-45deg, transparent 75%, var(--med-sand) 75%);
  background-size: 24px 24px;
  background-position: 0 0, 0 12px, 12px -12px, -12px 0px;
  opacity: 0.3;
}

Arch Frame for Images

/* Arch-shaped image container */
.med-arch-frame {
  border-radius: 200px 200px 12px 12px;
  overflow: hidden;
  box-shadow:
    0 4px 16px rgba(61, 57, 41, 0.1),
    0 1px 4px rgba(61, 57, 41, 0.06);
  border: 4px solid var(--med-whitewash);
  outline: 1px solid rgba(139, 94, 60, 0.12);
}

.med-arch-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Warm overlay on arch image */
.med-arch-frame--warm {
  position: relative;
}

.med-arch-frame--warm::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 200px 200px 12px 12px;
  background: linear-gradient(
    180deg,
    rgba(212, 168, 67, 0.0) 40%,
    rgba(198, 93, 59, 0.15) 100%
  );
  pointer-events: none;
}

Wrought-Iron Ornamental Divider

/* Decorative wrought-iron-style divider */
.med-iron-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin: 3rem auto;
  max-width: 400px;
  color: var(--med-clay);
  opacity: 0.4;
}

.med-iron-divider::before,
.med-iron-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: currentColor;
}

/* Central ornament -- a diamond shape */
.med-iron-divider span {
  width: 10px;
  height: 10px;
  border: 1.5px solid currentColor;
  transform: rotate(45deg);
}

Design Do’s and Don’ts

Do

Don’t


Aesthetic Relationship to Mediterranean
Coastal Style Close sibling; shares ocean-inspired blues and airy layouts, but Coastal is cooler and more nautical while Mediterranean is warmer and more architectural
Earth Tones Overlapping warm palette foundations; Earth Tones is a broader, more muted aesthetic while Mediterranean has specific cultural and architectural references
Japandi Shared appreciation for natural materials and balanced simplicity; Japandi is more restrained and cool-toned, Mediterranean is warmer and more ornamental
Grandmillennial Both value traditional craft and classical decorative elements; Grandmillennial leans floral and preppy, Mediterranean leans terracotta and tile
Art Nouveau Shared love of organic curves and ornamental detail; Art Nouveau is more stylized and whiplash-curvilinear, Mediterranean is more grounded and architectural
Ethnic Chic Overlapping appreciation for handcrafted global motifs; Ethnic Chic draws from a broader cultural range while Mediterranean is geographically specific
Hygge Both create warm, inviting, lived-in atmospheres; Hygge is Nordic, cozy, and inward-facing while Mediterranean is Southern European, sun-drenched, and outward-facing
French Provincial Style Adjacent Southern European aesthetic; shares warm earthy palettes but French Provincial has lavender-countryside and toile-fabric emphasis

Quick-Start HTML Template

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Mediterranean Style</title>
  <link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;0,700;1,300;1,400&family=Lato:wght@300;400;700&family=Raleway:wght@300;400;500;600&family=Caveat:wght@400;700&display=swap" rel="stylesheet">
  <style>
    :root {
      /* Backgrounds */
      --med-whitewash: #faf7f2;
      --med-stucco: #f0e6d6;
      --med-sand: #d9c6a5;

      /* Warm accents */
      --med-terracotta: #c65d3b;
      --med-sienna: #a0432e;
      --med-clay: #8b5e3c;
      --med-golden: #d4a843;

      /* Cool accents */
      --med-azure: #1b6b93;
      --med-aegean: #2e96c7;
      --med-sky: #a8d4e6;

      /* Greens */
      --med-olive: #6b7f3a;
      --med-sage: #a3b18a;

      /* Dark */
      --med-cypress: #3d3929;
    }

    *, *::before, *::after {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    body {
      background: var(--med-whitewash);
      color: var(--med-clay);
      font-family: 'Lato', sans-serif;
      font-weight: 400;
      font-size: 1.05rem;
      line-height: 1.8;
      letter-spacing: 0.01em;
      -webkit-font-smoothing: antialiased;
    }

    h1, h2, h3 {
      font-family: 'Cormorant Garamond', Georgia, serif;
      color: var(--med-cypress);
      font-weight: 600;
      letter-spacing: 0.02em;
      line-height: 1.25;
    }

    a {
      color: var(--med-azure);
      text-decoration: none;
      transition: color 0.3s ease;
    }

    a:hover {
      color: var(--med-terracotta);
    }

    /* ============================================
       NAVIGATION
       ============================================ */

    nav {
      background: rgba(250, 247, 242, 0.92);
      backdrop-filter: blur(16px) saturate(1.2);
      -webkit-backdrop-filter: blur(16px) saturate(1.2);
      border-bottom: 1px solid rgba(139, 94, 60, 0.12);
      padding: 1rem 2rem;
      display: flex;
      align-items: center;
      justify-content: space-between;
      position: sticky;
      top: 0;
      z-index: 100;
    }

    .nav-brand {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.5rem;
      font-weight: 600;
      color: var(--med-cypress);
      letter-spacing: 0.04em;
      text-decoration: none;
    }

    .nav-links {
      display: flex;
      gap: 2rem;
      list-style: none;
    }

    .nav-links a {
      font-family: 'Raleway', sans-serif;
      font-size: 0.8rem;
      font-weight: 500;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--med-clay);
      text-decoration: none;
      position: relative;
      transition: color 0.3s ease;
    }

    .nav-links a::after {
      content: '';
      position: absolute;
      bottom: -4px;
      left: 0;
      width: 0;
      height: 2px;
      background: var(--med-terracotta);
      transition: width 0.3s ease;
    }

    .nav-links a:hover {
      color: var(--med-terracotta);
    }

    .nav-links a:hover::after {
      width: 100%;
    }

    /* ============================================
       HERO
       ============================================ */

    .hero {
      position: relative;
      min-height: 80vh;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 8rem 2rem 6rem;
      overflow: hidden;
      background:
        linear-gradient(
          180deg,
          rgba(250, 247, 242, 0.0) 0%,
          rgba(240, 230, 214, 0.5) 60%,
          var(--med-stucco) 100%
        ),
        linear-gradient(
          135deg,
          var(--med-whitewash) 0%,
          #e8dfd2 50%,
          var(--med-sky) 100%
        );
    }

    /* Golden-hour ambient glow */
    .hero::before {
      content: '';
      position: absolute;
      top: -10%;
      right: -5%;
      width: 600px;
      height: 600px;
      background: radial-gradient(
        ellipse,
        rgba(212, 168, 67, 0.12) 0%,
        rgba(198, 93, 59, 0.05) 40%,
        transparent 70%
      );
      pointer-events: none;
    }

    .hero-script {
      font-family: 'Caveat', cursive;
      font-size: 1.6rem;
      color: var(--med-terracotta);
      margin-bottom: 0.5rem;
      position: relative;
      z-index: 1;
    }

    .hero h1 {
      font-size: clamp(2.8rem, 7vw, 5.5rem);
      font-weight: 300;
      font-style: italic;
      line-height: 1.1;
      color: var(--med-cypress);
      position: relative;
      z-index: 1;
    }

    .hero-subtitle {
      margin-top: 1.5rem;
      font-family: 'Raleway', sans-serif;
      font-size: 1rem;
      font-weight: 400;
      letter-spacing: 0.08em;
      color: var(--med-clay);
      max-width: 520px;
      position: relative;
      z-index: 1;
    }

    /* Ornamental divider */
    .ornament {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 12px;
      margin: 1.5rem auto;
      max-width: 200px;
      position: relative;
      z-index: 1;
    }

    .ornament::before,
    .ornament::after {
      content: '';
      flex: 1;
      height: 1px;
      background: linear-gradient(
        to right,
        transparent,
        var(--med-terracotta),
        transparent
      );
    }

    .ornament span {
      width: 8px;
      height: 8px;
      background: var(--med-terracotta);
      border-radius: 50%;
      opacity: 0.5;
    }

    /* ============================================
       TILE DIVIDER
       ============================================ */

    .tile-divider {
      height: 10px;
      border: none;
      background: repeating-linear-gradient(
        90deg,
        var(--med-terracotta) 0px,
        var(--med-terracotta) 8px,
        var(--med-whitewash) 8px,
        var(--med-whitewash) 10px,
        var(--med-azure) 10px,
        var(--med-azure) 18px,
        var(--med-whitewash) 18px,
        var(--med-whitewash) 20px,
        var(--med-golden) 20px,
        var(--med-golden) 28px,
        var(--med-whitewash) 28px,
        var(--med-whitewash) 30px
      );
    }

    /* ============================================
       CONTENT SECTIONS
       ============================================ */

    .section {
      max-width: 1100px;
      margin: 0 auto;
      padding: 5rem 2rem;
    }

    .section--stucco {
      background: var(--med-stucco);
      max-width: 100%;
    }

    .section--stucco .section-inner {
      max-width: 1100px;
      margin: 0 auto;
    }

    .section-header {
      text-align: center;
      margin-bottom: 3rem;
    }

    .section-header h2 {
      font-size: clamp(1.8rem, 4vw, 2.6rem);
      font-weight: 600;
      margin-bottom: 0.75rem;
    }

    .section-header p {
      font-size: 1rem;
      color: var(--med-clay);
      max-width: 560px;
      margin: 0 auto;
    }

    /* ============================================
       CARDS
       ============================================ */

    .card-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 2rem;
    }

    .card {
      background: var(--med-whitewash);
      border-radius: 16px;
      padding: 2rem 2rem 2.5rem;
      box-shadow:
        0 2px 8px rgba(61, 57, 41, 0.06),
        0 8px 24px rgba(61, 57, 41, 0.04);
      border: 1px solid rgba(198, 93, 59, 0.08);
      transition: box-shadow 0.3s ease, transform 0.3s ease;
      position: relative;
      overflow: hidden;
    }

    .card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 10%;
      right: 10%;
      height: 3px;
      background: linear-gradient(
        90deg,
        transparent,
        var(--med-terracotta),
        var(--med-golden),
        var(--med-terracotta),
        transparent
      );
      border-radius: 0 0 2px 2px;
    }

    .card:hover {
      box-shadow:
        0 4px 12px rgba(61, 57, 41, 0.08),
        0 16px 40px rgba(61, 57, 41, 0.06);
      transform: translateY(-3px);
    }

    .card h3 {
      font-size: 1.3rem;
      margin-bottom: 0.5rem;
    }

    .card p {
      color: var(--med-clay);
      line-height: 1.7;
    }

    .card .tag {
      display: inline-block;
      margin-top: 1rem;
      font-family: 'Raleway', sans-serif;
      font-size: 0.7rem;
      font-weight: 500;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      color: var(--med-terracotta);
      border: 1px solid rgba(198, 93, 59, 0.25);
      border-radius: 100px;
      padding: 0.3rem 1rem;
    }

    /* Arch card variant */
    .card--arch {
      border-radius: 120px 120px 16px 16px;
      padding-top: 3rem;
      text-align: center;
    }

    /* ============================================
       FEATURE SECTION (Image + Text)
       ============================================ */

    .feature {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 4rem;
      align-items: center;
    }

    .feature-image {
      border-radius: 200px 200px 16px 16px;
      overflow: hidden;
      box-shadow: 0 8px 32px rgba(61, 57, 41, 0.1);
      border: 4px solid var(--med-whitewash);
      outline: 1px solid rgba(139, 94, 60, 0.1);
      aspect-ratio: 3 / 4;
      background: linear-gradient(
        180deg,
        var(--med-sky) 0%,
        var(--med-stucco) 100%
      );
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .feature-image svg {
      width: 80px;
      height: 80px;
      opacity: 0.3;
    }

    .feature-text h2 {
      font-size: clamp(1.6rem, 3vw, 2.2rem);
      margin-bottom: 1rem;
    }

    .feature-text p {
      margin-bottom: 1.5rem;
    }

    /* ============================================
       BUTTONS
       ============================================ */

    .btn {
      display: inline-block;
      padding: 0.8rem 2.2rem;
      border-radius: 8px;
      border: none;
      background: var(--med-terracotta);
      color: var(--med-whitewash);
      font-family: 'Raleway', sans-serif;
      font-size: 0.85rem;
      font-weight: 500;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      text-decoration: none;
      cursor: pointer;
      box-shadow: 0 4px 14px rgba(198, 93, 59, 0.25);
      transition: all 0.3s ease;
    }

    .btn:hover {
      background: var(--med-sienna);
      color: var(--med-whitewash);
      box-shadow: 0 6px 20px rgba(198, 93, 59, 0.35);
      transform: translateY(-2px);
    }

    .btn--outline {
      background: transparent;
      color: var(--med-terracotta);
      border: 2px solid var(--med-terracotta);
      box-shadow: none;
    }

    .btn--outline:hover {
      background: var(--med-terracotta);
      color: var(--med-whitewash);
    }

    .btn--azure {
      background: var(--med-azure);
      box-shadow: 0 4px 14px rgba(27, 107, 147, 0.25);
    }

    .btn--azure:hover {
      background: #155a7d;
      box-shadow: 0 6px 20px rgba(27, 107, 147, 0.35);
    }

    /* ============================================
       IRON DIVIDER
       ============================================ */

    .iron-divider {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 16px;
      margin: 3rem auto;
      max-width: 400px;
      color: var(--med-clay);
      opacity: 0.35;
    }

    .iron-divider::before,
    .iron-divider::after {
      content: '';
      flex: 1;
      height: 1px;
      background: currentColor;
    }

    .iron-divider span {
      width: 10px;
      height: 10px;
      border: 1.5px solid currentColor;
      transform: rotate(45deg);
    }

    /* ============================================
       CTA SECTION
       ============================================ */

    .cta {
      text-align: center;
      padding: 5rem 2rem;
      background:
        linear-gradient(
          180deg,
          var(--med-whitewash) 0%,
          var(--med-stucco) 100%
        );
    }

    .cta h2 {
      font-size: clamp(1.8rem, 4vw, 2.5rem);
      font-style: italic;
      font-weight: 300;
      margin-bottom: 1rem;
    }

    .cta p {
      margin-bottom: 2rem;
      max-width: 480px;
      margin-left: auto;
      margin-right: auto;
    }

    .cta .btn-group {
      display: flex;
      gap: 1rem;
      justify-content: center;
      flex-wrap: wrap;
    }

    /* ============================================
       FOOTER
       ============================================ */

    footer {
      background: var(--med-cypress);
      color: var(--med-sand);
      text-align: center;
      padding: 3rem 2rem;
    }

    footer .footer-brand {
      font-family: 'Cormorant Garamond', serif;
      font-size: 1.3rem;
      font-weight: 600;
      color: var(--med-whitewash);
      letter-spacing: 0.04em;
      margin-bottom: 0.75rem;
    }

    footer p {
      font-family: 'Raleway', sans-serif;
      font-size: 0.75rem;
      letter-spacing: 0.1em;
      color: var(--med-sand);
      opacity: 0.7;
    }

    footer .footer-links {
      display: flex;
      justify-content: center;
      gap: 2rem;
      list-style: none;
      margin-bottom: 1.5rem;
    }

    footer .footer-links a {
      font-family: 'Raleway', sans-serif;
      font-size: 0.75rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--med-sand);
      text-decoration: none;
      transition: color 0.3s ease;
    }

    footer .footer-links a:hover {
      color: var(--med-terracotta);
    }

    /* ============================================
       RESPONSIVE
       ============================================ */

    @media (max-width: 768px) {
      nav {
        flex-direction: column;
        gap: 0.75rem;
      }

      .nav-links {
        gap: 1.25rem;
      }

      .hero h1 {
        font-size: clamp(2rem, 8vw, 3.5rem);
      }

      .feature {
        grid-template-columns: 1fr;
        gap: 2rem;
      }

      .card-grid {
        grid-template-columns: 1fr;
      }
    }
  </style>
</head>
<body>

  <!-- Navigation -->
  <nav>
    <a href="#" class="nav-brand">Mediterraneo</a>
    <ul class="nav-links">
      <li><a href="#about">About</a></li>
      <li><a href="#discover">Discover</a></li>
      <li><a href="#features">Features</a></li>
      <li><a href="#contact">Contact</a></li>
    </ul>
  </nav>

  <!-- Hero -->
  <header class="hero">
    <span class="hero-script">Welcome to the</span>
    <h1>Mediterranean Coast</h1>
    <div class="ornament">
      <span></span>
    </div>
    <p class="hero-subtitle">
      Sun-soaked terracotta, azure waters, and the timeless warmth
      of Southern European design -- where every detail is kissed by golden light.
    </p>
    <div style="margin-top: 2.5rem; position: relative; z-index: 1;">
      <a href="#discover" class="btn">Explore</a>
      <a href="#features" class="btn btn--outline" style="margin-left: 0.75rem;">Learn More</a>
    </div>
  </header>

  <!-- Tile Divider -->
  <hr class="tile-divider">

  <!-- Discover Section -->
  <section class="section" id="discover">
    <div class="section-header">
      <h2>Discover the Aesthetic</h2>
      <p>Ancient architecture meets sun-drenched simplicity in a design language
         shaped by centuries of Mediterranean craft and coastal living.</p>
    </div>
    <div class="card-grid">
      <div class="card">
        <h3>Terracotta & Earth</h3>
        <p>Warm, sun-baked clay tones ground every composition in the rich
           earth of Southern European hillsides and ancient pottery traditions.</p>
        <span class="tag">Warmth</span>
      </div>
      <div class="card">
        <h3>Azure Waters</h3>
        <p>Deep cerulean and bright sky blue provide the essential cool contrast,
           reflecting the endless Mediterranean horizon where sea meets sky.</p>
        <span class="tag">Contrast</span>
      </div>
      <div class="card">
        <h3>Arches & Columns</h3>
        <p>Rounded archways, vaulted ceilings, and columned courtyards define
           the architectural vocabulary, bringing classical grandeur to every frame.</p>
        <span class="tag">Structure</span>
      </div>
    </div>
  </section>

  <!-- Iron Divider -->
  <div class="iron-divider">
    <span></span>
  </div>

  <!-- Feature Section -->
  <section class="section--stucco" id="features">
    <div class="section-inner" style="padding: 5rem 2rem;">
      <div class="feature">
        <div class="feature-image">
          <svg viewBox="0 0 80 80" fill="none" xmlns="http://www.w3.org/2000/svg">
            <path d="M10 60 L10 30 Q10 10 40 10 Q70 10 70 30 L70 60 Z"
                  stroke="currentColor" stroke-width="2" fill="none"/>
            <line x1="25" y1="60" x2="25" y2="35" stroke="currentColor" stroke-width="1.5"/>
            <line x1="40" y1="60" x2="40" y2="30" stroke="currentColor" stroke-width="1.5"/>
            <line x1="55" y1="60" x2="55" y2="35" stroke="currentColor" stroke-width="1.5"/>
          </svg>
        </div>
        <div class="feature-text">
          <h2>Classical Proportions, Modern Craft</h2>
          <p>Mediterranean design draws from millennia of architectural tradition.
             Roman arches, Moorish geometric tilework, and Byzantine mosaics inform
             a visual language that feels both ancient and effortlessly contemporary.</p>
          <p>Every element is placed with the same care as a hand-painted ceramic tile --
             purposeful, warm, and built to endure.</p>
          <a href="#" class="btn btn--azure">View Gallery</a>
        </div>
      </div>
    </div>
  </section>

  <!-- CTA Section -->
  <section class="cta" id="contact">
    <h2>Begin Your Mediterranean Journey</h2>
    <p>Let the warmth of terracotta, the depth of azure, and the
       elegance of ancient craft guide your next design.</p>
    <div class="btn-group">
      <a href="#" class="btn">Get Started</a>
      <a href="#" class="btn btn--outline">View Collection</a>
    </div>
  </section>

  <!-- Footer -->
  <footer>
    <div class="footer-brand">Mediterraneo</div>
    <ul class="footer-links">
      <li><a href="#">Designs</a></li>
      <li><a href="#">Gallery</a></li>
      <li><a href="#">About</a></li>
      <li><a href="#">Contact</a></li>
    </ul>
    <p>Designed in the spirit of the sun-soaked Mediterranean coast.</p>
  </footer>

</body>
</html>

Implementation Tips